diff --git a/htdocs/compta/sociales/class/chargesociales.class.php b/htdocs/compta/sociales/class/chargesociales.class.php index f62b2fcc594..4efd90c10aa 100644 --- a/htdocs/compta/sociales/class/chargesociales.class.php +++ b/htdocs/compta/sociales/class/chargesociales.class.php @@ -35,6 +35,7 @@ class ChargeSociales extends CommonObject public $table_element='chargesociales'; var $id; + var $ref; var $date_ech; var $lib; var $type; diff --git a/htdocs/fourn/class/paiementfourn.class.php b/htdocs/fourn/class/paiementfourn.class.php index a1324f774ae..03dbc54f697 100644 --- a/htdocs/fourn/class/paiementfourn.class.php +++ b/htdocs/fourn/class/paiementfourn.class.php @@ -380,6 +380,8 @@ class PaiementFourn extends Paiement $sql.= ' FROM '.MAIN_DB_PREFIX.'paiementfourn_facturefourn as pf, '.MAIN_DB_PREFIX.'facture_fourn as f'; $sql.= ' WHERE pf.fk_facturefourn = f.rowid AND fk_paiementfourn = '.$this->id; if ($filter) $sql.= ' AND '.$filter; + + dol_syslog(get_class($this).'::getBillsArray sql='.$sql); $resql = $this->db->query($sql); if ($resql) { @@ -399,7 +401,7 @@ class PaiementFourn extends Paiement else { $this->error=$this->db->error(); - dol_syslog('PaiementFourn::getBillsArray Error '.$this->error.' - sql='.$sql); + dol_syslog(get_class($this).'::getBillsArray Error '.$this->error); return -1; } } diff --git a/htdocs/langs/fr_FR/compta.lang b/htdocs/langs/fr_FR/compta.lang index 227b6b734ad..a86676b36b9 100644 --- a/htdocs/langs/fr_FR/compta.lang +++ b/htdocs/langs/fr_FR/compta.lang @@ -140,7 +140,7 @@ SellsJournal=Journal des ventes PurchasesJournal=Journal des achats Journaux=Journaux InvoiceRef=Réf facture -Piece=Piece compta +Piece=Pièce compta DescSellsJournal=Journal des ventes DescPurchasesJournal=Journal des achats JournalNum=Journal diff --git a/scripts/bank/export-bank-receipts.php b/scripts/bank/export-bank-receipts.php index 7c4b0baec74..72908976016 100755 --- a/scripts/bank/export-bank-receipts.php +++ b/scripts/bank/export-bank-receipts.php @@ -43,6 +43,10 @@ require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/tva/class/tva.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/paiementfourn.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/tva/class/tva.class.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/paymentsocialcontribution.class.php'; // Global variables $version=DOL_VERSION; @@ -64,12 +68,15 @@ $model=$argv[3]; $newlangid='en_EN'; // To force a new lang id +$invoicestatic=new Facture($db); +$invoicesupplierstatic=new FactureFournisseur($db); $societestatic=new Societe($db); -$chargestatic=new ChargeSociales($db); +$chargestatic=new ChargeSociales($db); $memberstatic=new Adherent($db); $paymentstatic=new Paiement($db); -$paymentsupplierstatic=new PaiementFourn($db); -$paymentvatstatic=new TVA($db); +$paymentsupplierstatic=new PaiementFourn($db); +$paymentsocialcontributionstatic=new PaymentSocialContribution($db); +$paymentvatstatic=new Tva($db); $bankstatic=new Account($db); $banklinestatic=new AccountLine($db); @@ -100,7 +107,9 @@ if (! empty($newlangid)) $outputlangs->load("main"); $outputlangs->load("bills"); $outputlangs->load("companies"); -$outputlangs->load("banks"); +$outputlangs->load("banks"); +$outputlangs->load("members"); +$outputlangs->load("compta"); $acct=new Account($db); @@ -141,20 +150,23 @@ if ($result >= 0) $array_fields=array( 'bankreceipt'=>$outputlangs->transnoentitiesnoconv("AccountStatementShort"), 'bankaccount'=>$outputlangs->transnoentitiesnoconv("BankAccount"), 'dateop'=>$outputlangs->transnoentitiesnoconv("DateOperationShort"),'dateval'=>$outputlangs->transnoentitiesnoconv("DateValueShort"),'type'=>$outputlangs->transnoentitiesnoconv("Type"), - 'description'=>$outputlangs->transnoentitiesnoconv("Description"), 'thirdparty'=>$outputlangs->transnoentitiesnoconv("Tiers"), 'invoices'=>$outputlangs->transnoentitiesnoconv("Invoices"), - 'debit'=>$outputlangs->transnoentitiesnoconv("Debit"), 'credit'=>$outputlangs->transnoentitiesnoconv("Credit"), 'sold'=>$outputlangs->transnoentitiesnoconv("Solde"), 'comment'=>$outputlangs->transnoentitiesnoconv("Comment") + 'description'=>$outputlangs->transnoentitiesnoconv("Description"), 'thirdparty'=>$outputlangs->transnoentitiesnoconv("Tiers"), 'accountelem'=>$outputlangs->transnoentitiesnoconv("Piece"), + 'debit'=>$outputlangs->transnoentitiesnoconv("Debit"), 'credit'=>$outputlangs->transnoentitiesnoconv("Credit"), 'sold'=>$outputlangs->transnoentitiesnoconv("Solde"), + 'comment'=>$outputlangs->transnoentitiesnoconv("Comment") ); $array_selected=array( 'bankreceipt'=>'bankreceipt', 'bankaccount'=>'bankaccount', 'dateop'=>'dateop','dateval'=>'dateval','type'=>'type', - 'description'=>'description', 'thirdparty'=>'thirdparty', 'invoices'=>'invoices', - 'debit'=>'debit', 'credit'=>'credit', 'sold'=>'sold', 'comment'=>'comment' + 'description'=>'description', 'thirdparty'=>'thirdparty', 'accountelem'=>'accountelem', + 'debit'=>'debit', 'credit'=>'credit', 'sold'=>'sold', + 'comment'=>'comment' ); $array_export_TypeFields=array( 'bankreceipt'=>'Text', 'bankaccount'=>'Text', 'dateop'=>'Date','dateval'=>'Date','type'=>'Text', - 'description'=>'Text', 'thirdparty'=>'Text', 'invoices'=>'Text', - 'debit'=>'Number', 'credit'=>'Number', 'sold'=>'Number', 'comment'=>'Text' + 'description'=>'Text', 'thirdparty'=>'Text', 'accountelem'=>'Text', + 'debit'=>'Number', 'credit'=>'Number', 'sold'=>'Number', + 'comment'=>'Text' ); // Genere en-tete @@ -184,9 +196,12 @@ if ($result >= 0) $i=0; while ($i < $numrows) { - print "Lines ".$i."\n"; - - $objp = $db->fetch_object($result); + //print "Lines ".($i+1)."\n"; + $thirdparty=''; + $accountelem=''; + $comment=''; + + $objp = $db->fetch_object($resql); $total = $total + $objp->amount; $var=!$var; @@ -203,126 +218,148 @@ if ($result >= 0) // Libelle $reg=array(); preg_match('/\((.+)\)/i',$objp->label,$reg); // Si texte entoure de parenthese on tente recherche de traduction - if ($reg[1] && $langs->trans($reg[1])!=$reg[1]) $desc=$langs->trans($reg[1]); - else $desc=$objp->label; - + if ($reg[1] && $langs->trans($reg[1])!=$reg[1]) $description=$langs->trans($reg[1]); + else $description=$objp->label; + /* * Ajout les liens (societe, company...) */ - $newline=1; $links = $acct->get_url($objp->rowid); foreach($links as $key=>$val) { - if (! $newline) print ' - '; - else print '
'; if ($links[$key]['type']=='payment') { - $paymentstatic->id=$links[$key]['url_id']; - $paymentstatic->ref=$langs->trans("Payment"); - print ' '.$paymentstatic->getNomUrl(1); - $newline=0; + $paymentstatic->fetch($links[$key]['url_id']); + $tmparray=$paymentstatic->getBillsArray(''); + foreach($tmparray as $key => $val) + { + $invoicestatic->fetch($val); + if ($accountelem) $accountelem.= ', '; + $accountelem.=$invoicestatic->ref; + } } elseif ($links[$key]['type']=='payment_supplier') { - $paymentsupplierstatic->id=$links[$key]['url_id']; - $paymentsupplierstatic->ref=$langs->trans("Payment");; - print ' '.$paymentsupplierstatic->getNomUrl(1); - $newline=0; + $paymentsupplierstatic->fetch($links[$key]['url_id']); + $tmparray=$paymentsupplierstatic->getBillsArray(''); + foreach($tmparray as $key => $val) + { + $invoicesupplierstatic->fetch($val); + if ($accountelem) $accountelem.= ', '; + $accountelem.=$invoicesupplierstatic->ref; + } } elseif ($links[$key]['type']=='payment_sc') - { - print ''; - print ' '.img_object($langs->trans('ShowPayment'),'payment').' '; - print $langs->trans("SocialContributionPayment"); - print ''; - $newline=0; + { + $paymentsocialcontributionstatic->fetch($links[$key]['url_id']); + if ($accountelem) $accountelem.= ', '; + $accountelem.=$langs->trans("SocialContribution").' '.$paymentsocialcontributionstatic->ref; } elseif ($links[$key]['type']=='payment_vat') { - $paymentvatstatic->id=$links[$key]['url_id']; - $paymentvatstatic->ref=$langs->trans("Payment"); - print ' '.$paymentvatstatic->getNomUrl(2); + $paymentvatstatic->fetch($links[$key]['url_id']); + if ($accountelem) $accountelem.= ', '; + $accountelem.=$langs->trans("VATPayments").' '.$paymentvatstatic->ref; } - elseif ($links[$key]['type']=='banktransfert') { - // Do not show link to transfer since there is no transfer card (avoid confusion). Can already be accessed from transaction detail. + elseif ($links[$key]['type']=='banktransfert') + { + $comment=$outputlangs->transnoentitiesnoconv("Transfer"); if ($objp->amount > 0) { + if ($comment) $comment.= ' '; $banklinestatic->fetch($links[$key]['url_id']); $bankstatic->id=$banklinestatic->fk_account; $bankstatic->label=$banklinestatic->bank_account_label; - print ' ('.$langs->trans("from").' '; - print $bankstatic->getNomUrl(1,'transactions'); - print ' '.$langs->trans("toward").' '; + $comment.= ' ('.$langs->trans("from").' '; + $comment.= $bankstatic->getNomUrl(1,'transactions'); + $comment.= ' '.$langs->trans("toward").' '; $bankstatic->id=$objp->bankid; $bankstatic->label=$objp->bankref; - print $bankstatic->getNomUrl(1,''); - print ')'; + $comment.= $bankstatic->getNomUrl(1,''); + $comment.= ')'; } else { + if ($comment) $comment.= ' '; $bankstatic->id=$objp->bankid; $bankstatic->label=$objp->bankref; - print ' ('.$langs->trans("from").' '; - print $bankstatic->getNomUrl(1,''); - print ' '.$langs->trans("toward").' '; + $comment.= ' ('.$langs->trans("from").' '; + $comment.= $bankstatic->getNomUrl(1,''); + $comment.= ' '.$langs->trans("toward").' '; $banklinestatic->fetch($links[$key]['url_id']); $bankstatic->id=$banklinestatic->fk_account; $bankstatic->label=$banklinestatic->bank_account_label; - print $bankstatic->getNomUrl(1,'transactions'); - print ')'; + $comment.= $bankstatic->getNomUrl(1,'transactions'); + $comment.= ')'; } } - elseif ($links[$key]['type']=='company') { - print ''; - print img_object($langs->trans('ShowCustomer'),'company').' '; - print dol_trunc($links[$key]['label'],24); - print ''; + elseif ($links[$key]['type']=='company') + { + if ($thirdparty) $thirdparty.= ', '; + $thirdparty.= dol_trunc($links[$key]['label'],24); $newline=0; } - elseif ($links[$key]['type']=='member') { - print ''; - print img_object($langs->trans('ShowMember'),'user').' '; - print $links[$key]['label']; - print ''; + elseif ($links[$key]['type']=='member') + { + if ($thirdparty) $accountelem.= ', '; + $thirdparty.= $links[$key]['label']; $newline=0; } - elseif ($links[$key]['type']=='sc') { - print ''; - print img_object($langs->trans('ShowBill'),'bill').' '; - print $langs->trans("SocialContribution"); - print ''; + /*elseif ($links[$key]['type']=='sc') + { + if ($accountelem) $accountelem.= ', '; + //$accountelem.= ''; + //$accountelem.= img_object($langs->trans('ShowBill'),'bill').' '; + $accountelem.= $langs->trans("SocialContribution"); + //$accountelem.= ''; $newline=0; } - else { - print ''; - print $links[$key]['label']; - print ''; + else + { + if ($accountelem) $accountelem.= ', '; + //$accountelem.= ''; + $accountelem.= $links[$key]['label']; + //$accountelem.= ''; $newline=0; - } + }*/ } - + $debit=$credit=''; if ($objp->amount < 0) { $totald = $totald + abs($objp->amount); - $debit=price($objp->amount * -1); + $debit=price2num($objp->amount * -1); } else { $totalc = $totalc + abs($objp->amount); - $credit=price($objp->amount); + $credit=price2num($objp->amount); } $i++; + $rec=new stdClass(); + $rec->bankreceipt=$objp->num_releve; + $rec->bankaccount=$objp->banklabel; + $rec->dateop=dol_print_date($dateop,'dayrfc'); + $rec->dateval=dol_print_date($datevalue,'dayrfc'); + $rec->type=$objp->fk_type.' '.($objp->num_chq?$objp->num_chq:''); + $rec->description=$description; + $rec->thirdparty=$thirdparty; + $rec->accountelem=$accountelem; + $rec->debit=$debit; + $rec->credit=$credit; + $rec->sold=$sold; + $rec->comment=$comment; + // end of special operation processing - $objmodel->write_record($array_selected,$objp,$outputlangs,$array_export_TypeFields); + $objmodel->write_record($array_selected,$rec,$outputlangs,$array_export_TypeFields); } } else dol_print_error($db); - print "Found ".$numrows." records\n"; + print "Found ".$numrows." records for receipt ".$num."\n"; // Genere en-tete $objmodel->write_footer($outputlangs);