diff --git a/scripts/bank/export-bank-receipts.php b/scripts/bank/export-bank-receipts.php index 15f1e53d767..7c4b0baec74 100755 --- a/scripts/bank/export-bank-receipts.php +++ b/scripts/bank/export-bank-receipts.php @@ -33,19 +33,9 @@ if (substr($sapi_type, 0, 3) == 'cgi') { exit; } -if (! isset($argv[2]) || ! $argv[2]) { - print "Usage: $script_file bank_receipt_number (csv|tsv|excel|excel2007)\n"; - exit; -} -$num=$argv[1]; -$model=$argv[2]; - -// Recupere env dolibarr -$version='1.10'; - -require_once($path."../../htdocs/master.inc.php"); -require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php'; +require_once($path."../../htdocs/master.inc.php"); +require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/chargesociales.class.php'; @@ -54,6 +44,24 @@ 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'; +// Global variables +$version=DOL_VERSION; +$error=0; + + + +// -------------------- START OF YOUR CODE HERE -------------------- +@set_time_limit(0); +print "***** ".$script_file." (".$version.") *****\n"; + +if (! isset($argv[3]) || ! $argv[3]) { + print "Usage: $script_file bank_ref bank_receipt_number (csv|tsv|excel|excel2007) [lang=xx_XX]\n"; + exit; +} +$bankref=$argv[1]; +$num=$argv[2]; +$model=$argv[3]; +$newlangid='en_EN'; // To force a new lang id $societestatic=new Societe($db); @@ -66,9 +74,42 @@ $bankstatic=new Account($db); $banklinestatic=new AccountLine($db); -$dirname = $conf->banque->dir_temp; -$filename = 'export-bank-receipts-'.$num.'.xls'; +// Parse parameters +foreach ($argv as $key => $value) +{ + $found=false; + + // Define options + if (preg_match('/^lang=/i',$value)) + { + $found=true; + $valarray=explode('=',$value); + $newlangid=$valarray[1]; + print 'Use language '.$newlangid.".\n"; + } +} +$outputlangs = $langs; +if (! empty($newlangid)) +{ + if ($outputlangs->defaultlang != $newlangid) + { + $outputlangs = new Translate("",$conf); + $outputlangs->setDefaultLang($newlangid); + } +} +$outputlangs->load("main"); +$outputlangs->load("bills"); +$outputlangs->load("companies"); +$outputlangs->load("banks"); + +$acct=new Account($db); +$result=$acct->fetch('',$bankref); +if ($result <= 0) +{ + print "Failed to find bank account with ref ".$bankref."\n"; + exit; +} // Creation de la classe d'export du model ExportXXX $dir = DOL_DOCUMENT_ROOT . "/core/modules/export/"; @@ -83,18 +124,44 @@ require_once $dir.$file; $objmodel = new $classname($db); +// Define target path +$dirname = $conf->banque->dir_temp; +$filename = 'export-bank-receipts-'.$bankref.'-'.$num.'.'.$objmodel->extension; + + // Open file print 'Create file '.$filename.' into directory '.$dirname."\n"; dol_mkdir($dirname); -$result=$objmodel->open_file($dirname."/".$filename, $langs); +$result=$objmodel->open_file($dirname."/".$filename, $outputlangs); if ($result >= 0) { + $numrows=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") + ); + $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' + ); + $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' + ); + // Genere en-tete $objmodel->write_header($outputlangs); - // Genere ligne de titre - $objmodel->write_title($this->array_export_fields[$indice],$array_selected,$outputlangs); + // Genere ligne de titre + $objmodel->write_title($array_fields,$array_selected,$outputlangs); // Recherche les ecritures pour le releve @@ -105,51 +172,43 @@ if ($result >= 0) $sql.= ", ".MAIN_DB_PREFIX."bank as b"; $sql.= " WHERE b.num_releve='".$db->escape($num)."'"; if (!isset($num)) $sql.= " OR b.num_releve is null"; - $sql.= " AND b.fk_account = ".$acct->id; + //$sql.= " AND b.fk_account = ".$acct->id; $sql.= " AND b.fk_account = ba.rowid"; $sql.= $db->order("b.datev, b.datec", "ASC"); // We add date of creation to have correct order when everything is done the same day $resql=$db->query($sql); if ($resql) { - $num = $db->num_rows($resql); - - print "Lines ".$num."\n"; + $numrows = $db->num_rows($resql); + $i=0; while ($i < $numrows) { + print "Lines ".$i."\n"; + $objp = $db->fetch_object($result); $total = $total + $objp->amount; $var=!$var; - print "