diff -BNaur '--exclude=CVS' '--exclude=*.patch' '--exclude=.#*' '--exclude=*~' '--exclude=*.rej' '--exclude=*.orig' '--exclude=*.bak' '--exclude=conf.php' '--exclude=documents' ./dolibarr111007_dt/htdocs/compta/class/journal.class.php ./dolibarr/htdocs/compta/class/journal.class.php --- ./dolibarr111007_dt/htdocs/compta/class/journal.class.php 2011-10-03 18:01:09.000000000 +0200 +++ ./dolibarr/htdocs/compta/class/journal.class.php 1970-01-01 01:00:00.000000000 +0100 @@ -1,174 +0,0 @@ - - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -/** - * \file htdocs/compta/class/journal.class.php - * \ingroup compta - * \brief Fichier de la classe des journaux comptable - * \version $Id:journal.class.php,v 1.0 2011/10/01 14:42:22 DTux Exp $ - */ - - -/** \class journal - * \brief Classe permettant l'édition des journaux comptables - */ - -class Journal -{ - var $db ; - var $date; - var $n_piece; - var $n_facture; - var $compte; - var $type; - var $debit; - var $credit; - var $ligne = array(); - - -/** - * \brief Constructeur de la classe - * \param DB handler acces base de donnees **/ - - function Journal($DB) - { - global $langs; - $this->db = $DB; - $this->date = $langs->trans("Date"); - $this->n_piece = html_entity_decode($langs->trans("Piece"),3,'UTF-8'); - $this->n_facture = html_entity_decode($langs->trans("InvoiceRef"),3,'UTF-8'); - $this->compte = html_entity_decode($langs->trans("Account"),3,'UTF-8'); - $this->type = html_entity_decode($langs->trans("Type"),3,'UTF-8'); - $this->debit = html_entity_decode($langs->trans("Debit"),3,'UTF-8'); - $this->credit = html_entity_decode($langs->trans("Credit"),3,'UTF-8'); - - } - - function JournalLoad($sql) - { - global $langs,$bc; - $tabfac = array(); - $tabht = array(); - $tabtva = array(); - $tabttc = array(); - $url = array(); - $result = $this->db->query($sql); - if ($result) - { - $num = $this->db->num_rows($result); - $i=0; - $resligne=array(); - $invoicestatic=new Facture($db); - while ($i < $num) - { - $obj = $this->db->fetch_object($result); - // les variables - $cptcli = (! empty($conf->global->COMPTA_ACCOUNT_CUSTOMER))?$conf->global->COMPTA_ACCOUNT_CUSTOMER:$langs->trans("CodeNotDef"); - $compta_soc = (! empty($obj->code_compta))?$obj->code_compta:$cptcli; - $compta_prod = $obj->accountancy_code_sell; - if (empty($compta_prod)) - { - if($obj->product_type == 0) $compta_prod = (! empty($conf->global->COMPTA_PRODUCT_SOLD_ACCOUNT))?$conf->global->COMPTA_PRODUCT_SOLD_ACCOUNT:$langs->trans("CodeNotDef") ; - else $compta_prod = (! empty($conf->global->COMPTA_SERVICE_SOLD_ACCOUNT))?$conf->global->COMPTA_SERVICE_SOLD_ACCOUNT:$langs->trans("CodeNotDef") ; - } - $cpttva = (! empty($conf->global->COMPTA_VAT_ACCOUNT))?$conf->global->COMPTA_VAT_ACCOUNT:$langs->trans("CodeNotDef"); - $compta_tva = (! empty($obj->accountancy_code))?$obj->accountancy_code:$cpttva; - - //la ligne facture - $invoicestatic->id=$obj->rowid; - $invoicestatic->ref=$obj->facnumber; - $tabfac[$obj->rowid]["client"] = $obj->nom; - $tabfac[$obj->rowid]["url"] = $invoicestatic->getNomUrl(1); - $tabfac[$obj->rowid]["date"] = $obj->datef; - $tabfac[$obj->rowid]["ref"] = $obj->facnumber; - $tabfac[$obj->rowid]["type"] = $obj->type; - $tabttc[$obj->rowid][$compta_soc] += $obj->total_ttc; - $tabht[$obj->rowid][$compta_prod] += $obj->total_ht; - $tabtva[$obj->rowid][$compta_tva] += $obj->total_tva; - $i++; - } - $var = TRUE; - $i = 0; //numéro de ligne - $piece = 1; //numero de piece - foreach ($tabfac as $key => $val) - { - - $date_a = substr($val["date"],8,2) . '/' . substr($val["date"],5,2) .'/'. substr($val["date"],0,4); - - - foreach ($tabttc[$key] as $k => $mt) - { - $this->JournalLigne($i, $val, $date_a, $k, $langs->trans("ThirdParty"), $mt); - $i++; - } - - foreach ($tabht[$key] as $k => $mt) - { - if ($mt) - { - $this->JournalLigne($i, $val, $date_a, $k, $langs->trans("Products"), -$mt); - $i++; - - } - } - // vat - //var_dump($tabtva); - foreach ($tabtva[$key] as $k => $mt) - { - if ($mt) - { - $this->JournalLigne($i, $val, $date_a, $k, $langs->trans("VAT"), -$mt); - $i++; - } - } - $var = !$var; - $i++; - } - //$this->db->close(); - /**foreach($this->ligne as $n_ligne => $val) - { - foreach($val as $key => $val2) - { - echo "key :".$key." val :".$val2."
"; - } - }**/ - - - - }else - { - dol_print_error($db); - } - - - } - function JournalLigne($i, $val, $date_a, $k, $type, $mt) - { - $this->ligne[$i]->libelle = html_entity_decode($val["ref"] . " ". $val["client"],3,'UTF-8'); - $this->ligne[$i]->n_piece = $val["ref"]; - $this->ligne[$i]->date = $date_a; - $this->ligne[$i]->url = $val["url"]; - $this->ligne[$i]->compte = html_entity_decode($k,3,'UTF-8'); - $this->ligne[$i]->type = html_entity_decode($type,3,'UTF-8'); - $this->ligne[$i]->debit = ($mt>=0?$mt:''); - $this->ligne[$i]->credit = ($mt<0?-$mt:''); - } - - -} -?> \ Pas de fin de ligne à la fin du fichier. diff -BNaur '--exclude=CVS' '--exclude=*.patch' '--exclude=.#*' '--exclude=*~' '--exclude=*.rej' '--exclude=*.orig' '--exclude=*.bak' '--exclude=conf.php' '--exclude=documents' ./dolibarr111007_dt/htdocs/compta/class/journalexport_csv.class.php ./dolibarr/htdocs/compta/class/journalexport_csv.class.php --- ./dolibarr111007_dt/htdocs/compta/class/journalexport_csv.class.php 2011-10-03 17:22:21.000000000 +0200 +++ ./dolibarr/htdocs/compta/class/journalexport_csv.class.php 1970-01-01 01:00:00.000000000 +0100 @@ -1,88 +0,0 @@ - - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - - /** - * \file htdocs/compta/class/journalexport_csv.class.php - * \ingroup compta - * \brief Classe d'exportation des journaux comptable - * \version $Id:journal.class.php,v 1.0 2011/10/01 14:42:22 DTux Exp $ - */ - - - /** \class journal - * \brief Classe permettant l'édition des journaux comptables - */ - - - class JournalExport - { - function JournalExport($journal,$db) - { - $this->entete($journal); - $this->ligne($journal); - $this->finexport($journal); - } - - - // génère l'entête de fichier - function entete() - { - global $langs, $date, $year, $month, $nom; - header("Content-Type: text/csv"); - header('Content-Disposition: attachment; filename=' . $year . ($month < 10 ? "0".$month : $month) . "_" . str_replace(" ","_",$nom).".csv"); - - header('Last-Modified: '. $date . ' GMT'); - header('Expires: ' . $date); - //header specifique IE :s parce que sinon il aime pas - if(preg_match('/msie|(microsoft internet explorer)/i', $_SERVER['HTTP_USER_AGENT'])) - { - header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); - header('Pragma: public'); - }else - { - header('Pragma: no-cache'); - } - print '"'.$langs->trans("Date").'","'.html_entity_decode($langs->trans("Piece"),3,'UTF-8').' ('.html_entity_decode($langs->trans("InvoiceRef"),3,'UTF-8').')","'; - print html_entity_decode($langs->trans("Account"),3,'UTF-8').'","'; - print html_entity_decode($langs->trans("Wording"),3,'UTF-8').'","'; - print html_entity_decode($langs->trans("Type"),3,'UTF-8').'","'.html_entity_decode($langs->trans("Debit"),3,'UTF-8').'","'.html_entity_decode($langs->trans("Credit"),3,'UTF-8').'"'; - print "\n"; - } - - - function ligne($journal) - { - foreach($journal->ligne as $val) - { - print '"'.$val->date.'","'; - print $val->n_piece . '","'; - print $val->compte .'","'; - print $val->libelle .'","'; - print $val->type .'",'; - print $val->debit .','; - print $val->credit ."\n"; - } - } - - function finexport($journal) - { - } - - -} -?> \ Pas de fin de ligne à la fin du fichier. diff -BNaur '--exclude=CVS' '--exclude=*.patch' '--exclude=.#*' '--exclude=*~' '--exclude=*.rej' '--exclude=*.orig' '--exclude=*.bak' '--exclude=conf.php' '--exclude=documents' ./dolibarr111007_dt/htdocs/compta/journal/purchasesjournal.php ./dolibarr/htdocs/compta/journal/purchasesjournal.php --- ./dolibarr111007_dt/htdocs/compta/journal/purchasesjournal.php 2011-05-28 17:58:25.000000000 +0200 +++ ./dolibarr/htdocs/compta/journal/purchasesjournal.php 2011-01-05 16:15:20.000000000 +0100 @@ -25,7 +25,6 @@ $langs->load("companies"); $langs->load("other"); $langs->load("compta"); -$langs->load("products"); // Protection if external user if ($user->societe_id > 0) @@ -49,81 +48,33 @@ * Put here all code to build page ****************************************************/ -$exportlink=dol_buildpath("/compta/journal/purchasesjournal.php"); -$nom=$langs->trans("PurchasesJournal"); +llxHeader('','',''); + +$html=new Form($db); + $year_current = strftime("%Y",dol_now()); $pastmonth = strftime("%m",dol_now()) - 1; -$pastmonthyear = $year_current; -if ($pastmonth == 0) +$pastmonthyear = $year_current; +if ($pastmonth == 0) { $pastmonth = 12; $pastmonthyear--; } -if ($_REQUEST["yearid"] != NULL) -{ - $year=$_REQUEST["yearid"]; -}else -{ - $year=$year_current; -} - -if ($_REQUEST["monthid"] != NULL) -{ - $month=$_REQUEST["monthid"]; - $date_start=dol_mktime(0,0,0,$_REQUEST["date_startmonth"],$_REQUEST["date_startday"],$_REQUEST["date_startyear"]); - $date_end=dol_mktime(23,59,59,$_REQUEST["date_endmonth"],$_REQUEST["date_endday"],$_REQUEST["date_endyear"]); - $year=$_REQUEST["date_startyear"]; - -}else -{ - $month=$pastmonth; - $date_start=dol_get_first_day($year_current,$month); - $date_end=dol_get_last_day($year_current,$month); - $year=$year_current; - -} - +$date_start=dol_mktime(0,0,0,$_REQUEST["date_startmonth"],$_REQUEST["date_startday"],$_REQUEST["date_startyear"]); +$date_end=dol_mktime(23,59,59,$_REQUEST["date_endmonth"],$_REQUEST["date_endday"],$_REQUEST["date_endyear"]); if (empty($date_start) || empty($date_end)) // We define date_start and date_end { $date_start=dol_get_first_day($pastmonthyear,$pastmonth,false); $date_end=dol_get_last_day($pastmonthyear,$pastmonth,false); - $date_end=dol_get_last_day($pastmonthyear,$pastmonth,false); -} - -if ($_REQUEST["action"] == $langs->trans("Export")) -{ - $export = TRUE; - //date actuelle - $date = gmdate('D, d M Y H:i:s'); - - - header("Content-Type: text/csv"); - header('Content-Disposition: attachment; filename=' . $year . ($month < 10 ? "0".$month : $month) . "_" . str_replace(" ","_",$nom).".csv"); - header('Last-Modified: '. $date . ' GMT'); - header('Expires: ' . $date); - - //header specifique IE :s parce que sinon il aime pas - if(preg_match('/msie|(microsoft internet explorer)/i', $_SERVER['HTTP_USER_AGENT'])) - { - header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); - header('Pragma: public'); - }else - { - header('Pragma: no-cache'); - } -}else -{ - llxHeader('','',''); - $html=new Form($db); - $period=$html->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$html->select_date($date_end,'date_end',0,0,0,'',1,0,1) . "ou choisissez un mois et une année" . $html->select_month($month,'monthid', 0, 1) . "-" . $html->select_year($year,'yearid',0, 10, 0, 1); - } - +$nom=$langs->trans("PurchasesJournal"); //$nomlink=; $builddate=time(); $description=$langs->trans("DescPurchasesJournal"); +$period=$html->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$html->select_date($date_end,'date_end',0,0,0,'',1,0,1); +report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink); $p = explode(":", $conf->global->MAIN_INFO_SOCIETE_PAYS); $idpays = $p[0]; @@ -180,30 +131,20 @@ else { dol_print_error($db); } -$db->close(); + /* - * Show result array ... or not :-) + * Show result array */ +$i = 0; +print ""; +print ""; +///print ""; +print ""; +print ""; +print ""; +print ""; +print "\n"; -if ($export == TRUE) -{ - print '"'.$langs->trans("Date").'","'.html_entity_decode($langs->trans("Piece"),3,'UTF-8').' ('.html_entity_decode($langs->trans("InvoiceRef"),3,'UTF-8').')","'; - print html_entity_decode($langs->trans("Account"),3,'UTF-8').'","'; - print html_entity_decode($langs->trans("Type"),3,'UTF-8').'","'.html_entity_decode($langs->trans("Debit"),3,'UTF-8').'","'.html_entity_decode($langs->trans("Credit"),3,'UTF-8').'"'; - print "\n"; -}else -{ - report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink); - $i = 0; - print "
".$langs->trans("JournalNum")."".$langs->trans("Date")."".$langs->trans("Piece").' ('.$langs->trans("InvoiceRef").")".$langs->trans("Account")."".$langs->trans("Type")."".$langs->trans("Debit")."".$langs->trans("Credit")."
"; - print ""; - ///print ""; - print ""; - print ""; - print ""; - print ""; - print "\n"; -} $var=true; $r=''; @@ -215,50 +156,27 @@ $invoicestatic->ref=$val["ref"]; $invoicestatic->type=$val["type"]; - if ($export == TRUE) - { - print '"'.$val["date"].'",'; - print '"'.$invoicestatic->ref.'",'; - }else - { - print ""; - // third party - //print ""; - print ""; - print ""; - } + print ""; + // third party + //print ""; + print ""; + print ""; + foreach ($tabttc[$key] as $k => $mt) { - if ($export == TRUE) - { - print '"'.html_entity_decode($k,3,'UTF-8').'","'.$langs->trans("ThirdParty").'",'.($mt>=0?$mt:'0').','.($mt<0?-$mt:'0')."\n"; - }else - { - print ""; - } - } - if ($export != TRUE) - { - print ""; + print ""; } - // product + print ""; + // product foreach ($tabht[$key] as $k => $mt) { if ($mt) { - if ($export == TRUE) - { - print '"'.$val["date"].'",'; - print '"'.$invoicestatic->ref.'",'; - print '"'.html_entity_decode($k,3,'UTF-8').'","'.$langs->trans("Products").'",'.($mt<0?-$mt:'0').','.($mt>=0?$mt:'0')."\n"; - }else - { - print ""; - //print ""; - print ""; - print ""; - print ""; - } + print ""; + //print ""; + print ""; + print ""; + print ""; } } // vat @@ -267,32 +185,21 @@ { if ($mt) { - if ($export == TRUE) - { - print '"'.$val["date"].'",'; - print '"'.$invoicestatic->ref.'",'; - print '"'.html_entity_decode($k,3,'UTF-8').'","'.$langs->trans("VAT").'",'.($mt<0?-$mt:'0').','.($mt>=0?$mt:'0'); - }else - { - print ""; - //print ""; - print ""; - print ""; - print ""; - } - } - if ($export == TRUE) - { - print "\n"; + print ""; + //print ""; + print ""; + print ""; + print ""; } } $var = !$var; } -if ($export != TRUE) -{ - print "
".$langs->trans("JournalNum")."".$langs->trans("Date")."".$langs->trans("Piece").' ('.$langs->trans("InvoiceRef").")".$langs->trans("Account")."".$langs->trans("Type")."".$langs->trans("Debit")."".$langs->trans("Credit")."
".$conf->global->COMPTA_JOURNAL_BUY."".$val["date"]."".$invoicestatic->getNomUrl(1)."
".$conf->global->COMPTA_JOURNAL_BUY."".$val["date"]."".$invoicestatic->getNomUrl(1)."".$k."".$langs->trans("ThirdParty")."".($mt>=0?$mt:'')."".($mt<0?-$mt:'')."
".$k."".$langs->trans("ThirdParty")."".($mt>=0?$mt:'')."".($mt<0?-$mt:'')."
".$conf->global->COMPTA_JOURNAL_BUY."".$val["date"]."".$invoicestatic->getNomUrl(1)."".$k."".$langs->trans("Products")."".($mt<0?-$mt:'')."".($mt>=0?$mt:'')."
".$conf->global->COMPTA_JOURNAL_BUY."".$val["date"]."".$invoicestatic->getNomUrl(1)."".$k."".$langs->trans("Products")."".($mt<0?-$mt:'')."".($mt>=0?$mt:'')."
".$conf->global->COMPTA_JOURNAL_BUY."".$val["date"]."".$invoicestatic->getNomUrl(1)."".$k."".$langs->trans("VAT")." ".$key."".($mt<0?-$mt:'')."".($mt>=0?$mt:'')."
".$conf->global->COMPTA_JOURNAL_BUY."".$val["date"]."".$invoicestatic->getNomUrl(1)."".$k."".$langs->trans("VAT")." ".$key."".($mt<0?-$mt:'')."".($mt>=0?$mt:'')."
"; - llxFooter('$Date: 2011/01/05 15:15:20 $ - $Revision: 1.7 $'); -} + +print ""; + + // End of page +$db->close(); +llxFooter('$Date: 2011/01/05 15:15:20 $ - $Revision: 1.7 $'); ?> \ Pas de fin de ligne à la fin du fichier. diff -BNaur '--exclude=CVS' '--exclude=*.patch' '--exclude=.#*' '--exclude=*~' '--exclude=*.rej' '--exclude=*.orig' '--exclude=*.bak' '--exclude=conf.php' '--exclude=documents' ./dolibarr111007_dt/htdocs/compta/journal/sellsjournal.php ./dolibarr/htdocs/compta/journal/sellsjournal.php --- ./dolibarr111007_dt/htdocs/compta/journal/sellsjournal.php 2011-10-03 19:07:31.000000000 +0200 +++ ./dolibarr/htdocs/compta/journal/sellsjournal.php 2011-01-05 16:15:20.000000000 +0100 @@ -21,9 +21,6 @@ require_once(DOL_DOCUMENT_ROOT."/lib/report.lib.php"); require_once(DOL_DOCUMENT_ROOT."/lib/date.lib.php"); require_once(DOL_DOCUMENT_ROOT."/compta/facture/class/facture.class.php"); -require_once(DOL_DOCUMENT_ROOT ."/compta/class/journal.class.php"); -//require_once(DOL_DOCUMENT_ROOT ."/compta/class/journalmodules.class.php"); - $langs->load("companies"); @@ -35,66 +32,57 @@ { accessforbidden(); } -$nom=$langs->trans("SellsJournal"); -//$nomlink=; +/******************************************************************* +* ACTIONS +* +* Put here all code to do according to value of "action" parameter +********************************************************************/ + + +/*************************************************** +* PAGE +* +* Put here all code to build page +****************************************************/ + +llxHeader('','',''); + +$html=new Form($db); + // Put here content of your page // ... -$builddate=time(); -$description=$langs->trans("DescSellsJournal"); -$exportlink=dol_buildpath("/compta/journal/sellsjournal.php"); $year_current = strftime("%Y",dol_now()); $pastmonth = strftime("%m",dol_now()) - 1; -$pastmonthyear = $year_current; - -if ($pastmonth == 0) +$pastmonthyear = $year_current; +if ($pastmonth == 0) { $pastmonth = 12; $pastmonthyear--; } -if ($_REQUEST["yearid"] != NULL) -{ - $year=$_REQUEST["yearid"]; -}else -{ - $year=$year_current; -} +$date_start=dol_mktime(0,0,0,$_REQUEST["date_startmonth"],$_REQUEST["date_startday"],$_REQUEST["date_startyear"]); +$date_end=dol_mktime(23,59,59,$_REQUEST["date_endmonth"],$_REQUEST["date_endday"],$_REQUEST["date_endyear"]); - -if ($_REQUEST["monthid"] != NULL) -{ - //echo "monthid non nul"; - $month=$_REQUEST["monthid"]; - $date_start=dol_get_first_day($year,$month); - $date_end=dol_get_last_day($year,$month); - -}else +if (empty($date_start) || empty($date_end)) // We define date_start and date_end { - //echo "monthid nul"; - $month=$pastmonth; - $date_start=dol_mktime(0,0,0,$_REQUEST["date_startmonth"],$_REQUEST["date_startday"],$_REQUEST["date_startyear"]); - $date_end=dol_mktime(23,59,59,$_REQUEST["date_endmonth"],$_REQUEST["date_endday"],$_REQUEST["date_endyear"]); - if (isset($_REQUEST["date_startyear"])) - { - $year=$_REQUEST["date_startyear"]; - } - + $date_start=dol_get_first_day($pastmonthyear,$pastmonth,false); $date_end=dol_get_last_day($pastmonthyear,$pastmonth,false); } +$nom=$langs->trans("SellsJournal"); +//$nomlink=; +$builddate=time(); +$description=$langs->trans("DescSellsJournal"); +$period=$html->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$html->select_date($date_end,'date_end',0,0,0,'',1,0,1); +report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink); -if (empty($date_start) || empty($date_end)) // We define date_start and date_end -{ - $date_start=dol_get_first_day($pastmonthyear,$pastmonth,false); - $date_end=dol_get_last_day($pastmonthyear,$pastmonth,false); -} $p = explode(":", $conf->global->MAIN_INFO_SOCIETE_PAYS); $idpays = $p[0]; $sql = "SELECT f.rowid, f.facnumber, f.type, f.datef, f.ref_client , fd.product_type, fd.total_ht, fd.total_tva, fd.tva_tx, fd.total_ttc,"; -$sql .= " p.accountancy_code_sell, s.code_compta , s.nom , ct.accountancy_code"; +$sql .= " p.accountancy_code_sell, s.code_compta , ct.accountancy_code"; $sql .= " FROM ".MAIN_DB_PREFIX."facturedet fd "; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product p ON p.rowid = fd.fk_product "; $sql .= " JOIN ".MAIN_DB_PREFIX."facture f ON f.rowid = fd.fk_facture "; @@ -102,59 +90,118 @@ $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_tva ct ON fd.tva_tx = ct.taux AND ct.fk_pays = '".$idpays."'"; $sql .= " WHERE f.fk_statut > 0 AND f.entity IN (0,".$conf->entity.")"; if ($date_start && $date_end) $sql .= " AND f.datef >= '".$db->idate($date_start)."' AND f.datef <= '".$db->idate($date_end)."'"; -$sql .= " order by f.datef"; -$journal = new Journal($db); -$journal->JournalLoad($sql); -if ($_REQUEST["action"] == $langs->trans("Export")) -{ - - $export = TRUE; - /**$format_export = $_REQUEST["export_format"]; - echo $format_export;**/ - //date actuelle - $date = gmdate('D, d M Y H:i:s'); - - /**switch($format_export) - { - case "csv": - {**/ - include_once(DOL_DOCUMENT_ROOT ."/compta/class/journalexport_csv.class.php"); - //} - - $export = new JournalExport($journal,$db); - //} -}else +$sql .= " order by f.rowid"; + +$result = $db->query($sql); +if ($result) { - llxHeader('','',''); - $html=new Form($db); - $period=$html->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$html->select_date($date_end,'date_end',0,0,0,'',1,0,1) . "ou choisissez un mois et une année" . $html->select_month($month,'monthid',0 ,1) . "-" . $html->select_year($year,'yearid',0, 10, 0, 1); - report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink); - $i = 0; - print ""; - print ""; - //print ""; - print '"; - print '"; - print ""; - print ""; - - - $r=''; - foreach($journal->ligne as $val) - { - print "\n"; - //print "".$k."".$langs->trans("ThirdParty").""; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print "\n"; - } + $tabfac = array(); + $tabht = array(); + $tabtva = array(); + $tabttc = array(); + + $num = $db->num_rows($result); + $i=0; + $resligne=array(); + while ($i < $num) + { + $obj = $db->fetch_object($result); + // les variables + $cptcli = (! empty($conf->global->COMPTA_ACCOUNT_CUSTOMER))?$conf->global->COMPTA_ACCOUNT_CUSTOMER:$langs->trans("CodeNotDef"); + $compta_soc = (! empty($obj->code_compta))?$obj->code_compta:$cptcli; + $compta_prod = $obj->accountancy_code_sell; + if (empty($compta_prod)) + { + if($obj->product_type == 0) $compta_prod = (! empty($conf->global->COMPTA_PRODUCT_SOLD_ACCOUNT))?$conf->global->COMPTA_PRODUCT_SOLD_ACCOUNT:$langs->trans("CodeNotDef") ; + else $compta_prod = (! empty($conf->global->COMPTA_SERVICE_SOLD_ACCOUNT))?$conf->global->COMPTA_SERVICE_SOLD_ACCOUNT:$langs->trans("CodeNotDef") ; + } + $cpttva = (! empty($conf->global->COMPTA_VAT_ACCOUNT))?$conf->global->COMPTA_VAT_ACCOUNT:$langs->trans("CodeNotDef"); + $compta_tva = (! empty($obj->accountancy_code))?$obj->accountancy_code:$cpttva; + + //la ligne facture + $tabfac[$obj->rowid]["date"] = $obj->datef; + $tabfac[$obj->rowid]["ref"] = $obj->facnumber; + $tabfac[$obj->rowid]["type"] = $obj->type; + $tabttc[$obj->rowid][$compta_soc] += $obj->total_ttc; + $tabht[$obj->rowid][$compta_prod] += $obj->total_ht; + $tabtva[$obj->rowid][$compta_tva] += $obj->total_tva; + + $i++; + } +} +else { + dol_print_error($db); +} + + +/* + * Show result array + */ + + +$i = 0; +print "
".$langs->trans("JournalNum")."'.$langs->trans("Date").''.$langs->trans("Piece").' ('.$langs->trans("InvoiceRef").")'.$langs->trans("Account")."".$langs->trans("Wording")."".$langs->trans("Type")."".$langs->trans("Debit")."".$langs->trans("Credit")."
".($mt>=0?$mt:'')."".($mt<0?-$mt:'')."'.$val->date.''.$val->n_piece . ''.$val->compte .''.$val->libelle .''.$val->type .''.$val->debit .''.$val->credit .'
"; +print ""; +//print ""; +print ""; +print ""; +print ""; +print "\n"; + +$var=true; +$r=''; + +$invoicestatic=new Facture($db); + +foreach ($tabfac as $key => $val) +{ + $invoicestatic->id=$key; + $invoicestatic->ref=$val["ref"]; + $invoicestatic->type=$val["type"]; + + print ""; + // third party + //print ""; + print ""; + print ""; + foreach ($tabttc[$key] as $k => $mt) + { + print ""; + } + print ""; + // product + foreach ($tabht[$key] as $k => $mt) + { + if ($mt) + { + print ""; + //print ""; + print ""; + print ""; + print ""; + } + } + // vat + //var_dump($tabtva); + foreach ($tabtva[$key] as $k => $mt) + { + if ($mt) + { + print ""; + //print ""; + print ""; + print ""; + print ""; + } + } + $var = !$var; } +print "
".$langs->trans("JournalNum")."".$langs->trans("Date")."".$langs->trans("Piece").' ('.$langs->trans("InvoiceRef").")".$langs->trans("Account")."".$langs->trans("Type")."".$langs->trans("Debit")."".$langs->trans("Credit")."
".$conf->global->COMPTA_JOURNAL_SELL."".$val["date"]."".$invoicestatic->getNomUrl(1)."".$k."".$langs->trans("ThirdParty")."".($mt>=0?$mt:'')."".($mt<0?-$mt:'')."
".$conf->global->COMPTA_JOURNAL_SELL."".$val["date"]."".$invoicestatic->getNomUrl(1)."".$k."".$langs->trans("Products")."".($mt<0?-$mt:'')."".($mt>=0?$mt:'')."
".$conf->global->COMPTA_JOURNAL_SELL."".$val["date"]."".$invoicestatic->getNomUrl(1)."".$k."".$langs->trans("VAT")." ".$key."".($mt<0?-$mt:'')."".($mt>=0?$mt:'')."
"; + -?> +// End of page +$db->close(); +llxFooter('$Date: 2011/01/05 15:15:20 $ - $Revision: 1.7 $'); +?> \ Pas de fin de ligne à la fin du fichier. diff -BNaur '--exclude=CVS' '--exclude=*.patch' '--exclude=.#*' '--exclude=*~' '--exclude=*.rej' '--exclude=*.orig' '--exclude=*.bak' '--exclude=conf.php' '--exclude=documents' ./dolibarr111007_dt/htdocs/core/class/html.form.class.php ./dolibarr/htdocs/core/class/html.form.class.php --- ./dolibarr111007_dt/htdocs/core/class/html.form.class.php 2011-05-28 15:50:58.000000000 +0200 +++ ./dolibarr/htdocs/core/class/html.form.class.php 2011-05-25 18:53:40.000000000 +0200 @@ -3081,83 +3081,6 @@ return; } - - /** - * \brief Return HTML combo list of month - * \param selected Preselected value - * \param htmlname Nom de la zone select - * \param useempty Affiche valeur vide dans liste - * TODO Move into html.formother - */ - function select_month($selected='',$htmlname='monthid',$useempty=0, $nooutput=0) - { - $month = monthArrayOrSelected(-1); // Get array - - $select_month = ''; - if ($nooutput != 1) - { - print $select_month; - } - return $select_month; - } - - /** - * \brief Return HTML combo list of years - * \param selected Preselected value (''=current year, -1=none, year otherwise) - * \param htmlname Name of HTML select object - * \param useempty Affiche valeur vide dans liste - * \param $min_year Offset of minimum year into list (by default current year -10) - * \param $max_year Offset of maximum year into list (by default current year + 5) - * TODO Move into html.formother - */ - function select_year($selected='',$htmlname='yearid',$useempty=0, $min_year=10, $max_year=5, $nooutput=0) - { - $currentyear = date("Y"); - $max_year = $currentyear+$max_year; - $min_year = $currentyear-$min_year; - if(empty($selected)) $selected = $currentyear; - - $output= '\n"; - if ($nooutput != 1) - { - print $output; - } - return $output; - } - - - - - /** * Function to show a form to select a duration on a page * @param prefix prefix diff -BNaur '--exclude=CVS' '--exclude=*.patch' '--exclude=.#*' '--exclude=*~' '--exclude=*.rej' '--exclude=*.orig' '--exclude=*.bak' '--exclude=conf.php' '--exclude=documents' ./dolibarr111007_dt/htdocs/includes/modules/modComptabilite.class.php ./dolibarr/htdocs/includes/modules/modComptabilite.class.php --- ./dolibarr111007_dt/htdocs/includes/modules/modComptabilite.class.php 2011-07-09 17:04:41.000000000 +0200 +++ ./dolibarr/htdocs/includes/modules/modComptabilite.class.php 2010-02-03 00:23:20.000000000 +0100 @@ -121,39 +121,6 @@ $this->rights[$r][3] = 0; $this->rights[$r][4] = 'ventilation'; $this->rights[$r][5] = 'creer'; - - - $r++; - $this->rights[$r][0] = 99; - $this->rights[$r][1] = 'Exporter les écritures de vente'; - $this->rights[$r][2] = 'r'; - $this->rights[$r][3] = 1; - $this->rights[$r][4] = 'compta'; - $this->rights[$r][5] = 'export'; - - - - // Exports - //-------- - $r=1; - - $this->export_code[$r]=$this->rights_class.'_'.$r; - $this->export_label[$r]='Comptabilité-journal des ventes'; // Translation key (used only if key ExportDataset_xxx_z not found) - $this->export_icon[$r]='bill'; - $this->export_permission[$r]=array(array("compta","compta","export")); - $this->export_fields_array[$r]=array('f.facnumber'=>"NumeroFacture",'f.type'=>"TypeFacture",'f.datef'=>"DateFacture",'f.ref_client'=>"ReferenceClient",'fd.product_type'=>"TypeProduit",'fd.total_ht'=>"TotalHT",'fd.total_tva'=>"TotalTVA",'fd.tva_tx'=>"TauxTVA",'fd.total_ttc'=>"TotalTTC",'p.accountancy_code_sell'=>"NumeroCompteVente",'s.code_compta'=>"NumeroCompteClient",'ct.accountancy_code'=>"NumeroCompteTVA"); - - $this->export_entities_array[$r]=array('f.facnumber'=>"invoice",'f.type'=>"invoice",'f.datef'=>"invoice",'f.ref_client'=>"invoice",'fd.product_type'=>"invoicedetail",'fd.total_ht'=>"invoicedetail",'fd.total_tva'=>"invoicedetail",'fd.tva_tx'=>"invoicedetail",'fd.total_ttc'=>"invoicedetail",'p.accountancy_code_sell'=>"product",'s.code_compta'=>"company",'ct.accountancy_code'=>"tva"); - - $this->export_sql_start[$r]='SELECT DISTINCT '; - $this->export_sql_end[$r] =" FROM ".MAIN_DB_PREFIX."facturedet fd "; - $this->export_sql_end[$r] .=" LEFT JOIN ".MAIN_DB_PREFIX."product p ON p.rowid = fd.fk_product "; - $this->export_sql_end[$r] .=" JOIN ".MAIN_DB_PREFIX."facture f ON f.rowid = fd.fk_facture "; - $this->export_sql_end[$r] .=" JOIN ".MAIN_DB_PREFIX."societe s ON s.rowid = f.fk_soc"; - $this->export_sql_end[$r] .=" LEFT JOIN ".MAIN_DB_PREFIX."c_tva ct ON fd.tva_tx = ct.taux AND ct.fk_pays = '".$idpays."'"; - $this->export_sql_end[$r] .=" WHERE f.fk_statut > 0 AND f.entity IN (0,".$conf->entity.") order by f.datef"; - - $r++; } diff -BNaur '--exclude=CVS' '--exclude=*.patch' '--exclude=.#*' '--exclude=*~' '--exclude=*.rej' '--exclude=*.orig' '--exclude=*.bak' '--exclude=conf.php' '--exclude=documents' ./dolibarr111007_dt/htdocs/includes/modules/propale/pdf_propale_azur_photos.modules.php ./dolibarr/htdocs/includes/modules/propale/pdf_propale_azur_photos.modules.php --- ./dolibarr111007_dt/htdocs/includes/modules/propale/pdf_propale_azur_photos.modules.php 2011-07-09 15:43:28.000000000 +0200 +++ ./dolibarr/htdocs/includes/modules/propale/pdf_propale_azur_photos.modules.php 1970-01-01 01:00:00.000000000 +0100 @@ -1,1076 +0,0 @@ - - * Copyright (C) 2005-2011 Regis Houssin - * Copyright (C) 2008 Raphael Bertrand - * Copyright (C) 2010-2011 Juanjo Menent - * Copyright (C) 2011 Daniel Tartavel - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * or see http://www.gnu.org/ - */ - -/** - * \file htdocs/includes/modules/propale/pdf_propale_azur_photos.modules.php - * \ingroup propale - * \brief Fichier de la classe permettant de generer les propales au modele photos - * \author Laurent Destailleur - * \version $Id: pdf_propale_azur_photos.modules.php,v 1.3 2011/07/09 10:24:00 DTux Exp $ - */ -require_once(DOL_DOCUMENT_ROOT."/includes/modules/propale/modules_propale.php"); -require_once(DOL_DOCUMENT_ROOT."/product/class/product.class.php"); -require_once(DOL_DOCUMENT_ROOT."/lib/company.lib.php"); -require_once(DOL_DOCUMENT_ROOT."/lib/functions2.lib.php"); -require_once(DOL_DOCUMENT_ROOT.'/lib/pdf.lib.php'); - - -/** - * \class pdf_propale_azur_photos - * \brief Classe permettant de generer les propales au modele Azur + Photos des produits - */ -class pdf_propale_azur_photos extends ModelePDFPropales -{ - var $emetteur; // Objet societe qui emet - - - /** - * \brief Constructeur - * \param db Handler acces base de donnee - */ - function pdf_propale_azur_photos($db) - { - global $conf,$langs,$mysoc; - - $langs->load("main"); - $langs->load("bills"); - - $this->db = $db; - $this->name = "azur"; - $this->description = $langs->trans('DocModelAzurDescription'); - - // Dimension page pour format A4 - $this->type = 'pdf'; - $this->page_largeur = 210; - $this->page_hauteur = 297; - $this->format = array($this->page_largeur,$this->page_hauteur); - $this->marge_gauche=10; - $this->marge_droite=10; - $this->marge_haute=10; - $this->marge_basse=10; - - $this->option_logo = 1; // Affiche logo - $this->option_tva = 1; // Gere option tva FACTURE_TVAOPTION - $this->option_modereg = 1; // Affiche mode reglement - $this->option_condreg = 1; // Affiche conditions reglement - $this->option_codeproduitservice = 1; // Affiche code produit-service - $this->option_multilang = 1; // Dispo en plusieurs langues - $this->option_escompte = 1; // Affiche si il y a eu escompte - $this->option_credit_note = 1; // Gere les avoirs - $this->option_freetext = 1; // Support add of a personalised text - $this->option_draft_watermark = 1; //Support add of a watermark on drafts - - $this->franchise=!$mysoc->tva_assuj; - - // Recupere emmetteur - $this->emetteur=$mysoc; - if (! $this->emetteur->pays_code) $this->emetteur->pays_code=substr($langs->defaultlang,-2); // Par defaut, si n'etait pas defini - - // Defini position des colonnes - $this->posxdesc=$this->marge_gauche+1; - $this->posxtva=111; - $this->posxup=126; - $this->posxqty=145; - $this->posxdiscount=162; - $this->postotalht=174; - - $this->tva=array(); - $this->localtax1=array(); - $this->localtax2=array(); - $this->atleastoneratenotnull=0; - $this->atleastonediscount=0; - } - - /** - * Function to build pdf onto disk - * @param object Id of object to generate - * @param outputlangs Lang output object - * @param srctemplatepath Full path of source filename for generator using a template file - * @param hidedetails Do not show line details - * @param hidedesc Do not show desc - * @param hideref Do not show ref - * @return int 1=OK, 0=KO - */ - function write_file($object,$outputlangs,$srctemplatepath='',$hidedetails=0,$hidedesc=0,$hideref=0) - { - global $user,$langs,$conf; - $default_font_size = pdf_getPDFFontSize($outputlangs); - - if (! is_object($outputlangs)) $outputlangs=$langs; - // For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO - $sav_charset_output=$outputlangs->charset_output; - if (!class_exists('TCPDF')) $outputlangs->charset_output='ISO-8859-1'; - - $outputlangs->load("main"); - $outputlangs->load("dict"); - $outputlangs->load("companies"); - $outputlangs->load("bills"); - $outputlangs->load("propal"); - $outputlangs->load("products"); - - if ($conf->propale->dir_output) - { - $object->fetch_thirdparty(); - - $deja_regle = ""; - - $product_p = new Product($this->db); - - - // Definition de $dir et $file - if ($object->specimen) - { - $dir = $conf->propale->dir_output; - $file = $dir . "/SPECIMEN.pdf"; - } - else - { - $objectref = dol_sanitizeFileName($object->ref); - $dir = $conf->propale->dir_output . "/" . $objectref; - $file = $dir . "/" . $objectref . ".pdf"; - } - - if (! file_exists($dir)) - { - if (create_exdir($dir) < 0) - { - $this->error=$langs->trans("ErrorCanNotCreateDir",$dir); - return 0; - } - } - - if (file_exists($dir)) - { - $nblignes = sizeof($object->lines); - - // Create pdf instance - $pdf=pdf_getInstance($this->format); - - if (class_exists('TCPDF')) - { - $pdf->setPrintHeader(false); - $pdf->setPrintFooter(false); - } - $pdf->SetFont(pdf_getPDFFont($outputlangs)); - - $pdf->Open(); - $pagenb=0; - $pdf->SetDrawColor(128,128,128); - - $pdf->SetTitle($outputlangs->convToOutputCharset($object->ref)); - $pdf->SetSubject($outputlangs->transnoentities("CommercialProposal")); - $pdf->SetCreator("Dolibarr ".DOL_VERSION); - $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); - $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("CommercialProposal")); - if ($conf->global->MAIN_DISABLE_PDF_COMPRESSION) $pdf->SetCompression(false); - - $pdf->SetMargins($this->marge_gauche, $this->marge_haute, $this->marge_droite); // Left, Top, Right - $pdf->SetAutoPageBreak(1,0); - - // Positionne $this->atleastonediscount si on a au moins une remise - for ($i = 0 ; $i < $nblignes ; $i++) - { - if ($object->lines[$i]->remise_percent) - { - $this->atleastonediscount++; - } - } - - // New page - $pdf->AddPage(); - $pagenb++; - $this->_pagehead($pdf, $object, 1, $outputlangs); - $pdf->SetFont('','', $default_font_size - 1); - $pdf->MultiCell(0, 4, ''); // Set interline to 4 - $pdf->SetTextColor(0,0,0); - - $tab_top = 90; - $tab_top_middlepage = 50; - $tab_top_newpage = 50; - $tab_height = 130; - $tab_height_middlepage = 200; - $tab_height_endpage = 170; - - // Affiche notes - if (! empty($object->note_public)) - { - $tab_top = 88; - - $pdf->SetFont('','', $default_font_size - 1); // Dans boucle pour gerer multi-page - $pdf->SetXY ($this->posxdesc-1, $tab_top); - $pdf->MultiCell(190, 4, $outputlangs->convToOutputCharset($object->note_public), 0, 'L'); - $nexY = $pdf->GetY(); - $height_note=$nexY-$tab_top; - - // Rect prend une longueur en 3eme param - $pdf->SetDrawColor(192,192,192); - $pdf->Rect($this->marge_gauche, $tab_top-1, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $height_note+1); - - $tab_height = $tab_height - $height_note; - $tab_top = $nexY+6; - } - else - { - $height_note=0; - } - - $iniY = $tab_top + 7; - $curY = $tab_top + 7; - $nexY = $tab_top + 7; - - // dossier du produit - $sdir = (!empty($conf->product->dir_output)?$conf->product->dir_output:$conf->service->dir_output); - // Loop on each lines - - for ($i = 0 ; $i < $nblignes ; $i++) - { - $id=$object->lines[$i]->fk_product; - - $product_p->fetch($id); - $curY = $nexY; - - $pdf->SetFont('','', $default_font_size - 1); // Dans boucle pour gerer multi-page - - // Description de la ligne produit - $curX = $this->posxdesc-1; - pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->posxtva-$curX,4,$curX,$curY,$hideref,$hidedesc); - $pdf->SetFont('','', $default_font_size - 1); // On repositionne la police par defaut - $nexY = $pdf->GetY(); - - - //photos du produit - - $pdir = get_exdir($id,2) . $id ."/photos/"; - $photosdir = $sdir . '/'. $pdir; - - // renvoi un tableau avec les 4 premieres photos - $photos = $product_p->liste_photos($photosdir,4); - //$pdf->MultiCell($this->posxup-$this->posxtva-1, 4, "#" . $product_p->id. "+", 0, 'R', 0); - $nbphotos = 0; - foreach($photos as $val) - { - $pdf->Image($photosdir.$val["photo"],$curX + $nbphotos*20,$nexY,0,20,'jpg'); - $nbphotos++; - } - - if ($nbphotos != 0) $nexY += 20; //$pdf->GetY(); - - // TVA - if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) - { - $vat_rate = pdf_getlinevatrate($object, $i, $outputlangs, $hidedetails); - $pdf->SetXY ($this->posxtva, $curY); - $pdf->MultiCell($this->posxup-$this->posxtva-1, 4, $vat_rate, 0, 'R'); - } - - // Prix unitaire HT avant remise - $up_excl_tax = pdf_getlineupexcltax($object, $i, $outputlangs, $hidedetails); - $pdf->SetXY ($this->posxup, $curY); - $pdf->MultiCell($this->posxqty-$this->posxup-1, 4, $up_excl_tax, 0, 'R', 0); - - // Quantity - $qty = pdf_getlineqty($object, $i, $outputlangs, $hidedetails); - $pdf->SetXY ($this->posxqty, $curY); - $pdf->MultiCell($this->posxdiscount-$this->posxqty-1, 4, $qty, 0, 'R'); - - // Remise sur ligne - $pdf->SetXY ($this->posxdiscount, $curY); - if ($object->lines[$i]->remise_percent) - { - $remise_percent = pdf_getlineremisepercent($object, $i, $outputlangs, $hidedetails); - $pdf->MultiCell($this->postotalht-$this->posxdiscount-1, 4, $remise_percent, 0, 'R'); - } - - // Total HT ligne - $total_excl_tax = pdf_getlinetotalexcltax($object, $i, $outputlangs, $hidedetails); - $pdf->SetXY ($this->postotalht, $curY); - $pdf->MultiCell(26, 4, $total_excl_tax, 0, 'R', 0); - - // Collecte des totaux par valeur de tva dans $this->tva["taux"]=total_tva - $tvaligne=$object->lines[$i]->total_tva; - $localtax1ligne=$object->lines[$i]->total_localtax1; - $localtax2ligne=$object->lines[$i]->total_localtax2; - - if ($object->remise_percent) $tvaligne-=($tvaligne*$object->remise_percent)/100; - if ($object->remise_percent) $localtax1ligne-=($localtax1ligne*$object->remise_percent)/100; - if ($object->remise_percent) $localtax2ligne-=($localtax2ligne*$object->remise_percent)/100; - - $vatrate=(string) $object->lines[$i]->tva_tx; - $localtax1rate=(string) $object->lines[$i]->localtax1_tx; - $localtax2rate=(string) $object->lines[$i]->localtax2_tx; - - if (($object->lines[$i]->info_bits & 0x01) == 0x01) $vatrate.='*'; - - $this->tva[$vatrate] += $tvaligne; - $this->localtax1[$localtax1rate]+=$localtax1ligne; - $this->localtax2[$localtax2rate]+=$localtax2ligne; - - $nexY+=2; // Passe espace entre les lignes - - // Cherche nombre de lignes a venir pour savoir si place suffisante - if ($i < ($nblignes - 1) && empty($hidedesc)) // If it's not last line - { - //on recupere la description du produit suivant - $follow_descproduitservice = $object->lines[$i+1]->desc; - //on compte le nombre de ligne afin de verifier la place disponible (largeur de ligne 52 caracteres) - $nblineFollowDesc = (dol_nboflines_bis($follow_descproduitservice,52,$outputlangs->charset_output)*4); - //on verifie si il y a des photos - $nblineFollowDesc = $product_p->is_photo_available($sdir) * 20; - - } - else // If it's last line - { - $nblineFollowDesc = 0; - } - - // Test if a new page is required - if ($pagenb == 1) - { - $tab_top_in_current_page=$tab_top; - $tab_height_in_current_page=$tab_height; - } - else - { - $tab_top_in_current_page=$tab_top_newpage; - $tab_height_in_current_page=$tab_height_middlepage; - } - if (($nexY+$nblineFollowDesc) > ($tab_top_in_current_page+$tab_height_in_current_page) && $i < ($nblignes - 1)) - { - if ($pagenb == 1) - { - $this->_tableau($pdf, $tab_top, $tab_height + 20, $nexY, $outputlangs); - } - else - { - $this->_tableau($pdf, $tab_top_newpage, $tab_height_middlepage, $nexY, $outputlangs); - } - - $this->_pagefoot($pdf,$object,$outputlangs); - - // New page - $pdf->AddPage(); - $pagenb++; - $this->_pagehead($pdf, $object, 0, $outputlangs); - $pdf->SetFont('','', $default_font_size - 1); - $pdf->MultiCell(0, 3, ''); // Set interline to 3 - $pdf->SetTextColor(0,0,0); - - $nexY = $tab_top_newpage + 7; - } - - } - - // Show square - if ($pagenb == 1) - { - $this->_tableau($pdf, $tab_top, $tab_height, $nexY, $outputlangs); - $bottomlasttab=$tab_top + $tab_height + 1; - } - else - { - $this->_tableau($pdf, $tab_top_newpage, $tab_height_endpage, $nexY, $outputlangs); - $bottomlasttab=$tab_top_newpage + $tab_height_endpage + 1; - } - - // Affiche zone infos - $posy=$this->_tableau_info($pdf, $object, $bottomlasttab, $outputlangs); - - // Affiche zone totaux - $posy=$this->_tableau_tot($pdf, $object, $deja_regle, $bottomlasttab, $outputlangs); - - // Affiche zone versements - if ($deja_regle) - { - $posy=$this->_tableau_versements($pdf, $object, $posy, $outputlangs); - } - - // Pied de page - $this->_pagefoot($pdf,$object,$outputlangs); - $pdf->AliasNbPages(); - - $pdf->Close(); - - $pdf->Output($file,'F'); - if (! empty($conf->global->MAIN_UMASK)) - @chmod($file, octdec($conf->global->MAIN_UMASK)); - - // Add external file - //$pdfConcat = new concat_pdf(); - //$pdfConcat->setFiles(array($file, DOL_DOCUMENT_ROOT."/includes/modules/propale/morefile.pdf")); - //$pdfConcat->concat(); - //$pdf->AliasNbPages(); - //$pdfConcat->Output($file,'F'); - - $outputlangs->charset_output=$sav_charset_output; - return 1; // Pas d'erreur - } - else - { - $this->error=$langs->trans("ErrorCanNotCreateDir",$dir); - return 0; - } - } - else - { - $this->error=$langs->trans("ErrorConstantNotDefined","PROP_OUTPUTDIR"); - return 0; - } - - $this->error=$langs->trans("ErrorUnknown"); - return 0; // Erreur par defaut - } - - /* - * \brief Affiche tableau des versement - * \param pdf Objet PDF - * \param object Objet propale - */ - function _tableau_versements(&$pdf, $object, $posy, $outputlangs) - { - - } - - - /** - * \brief Affiche infos divers - * \param pdf Objet PDF - * \param object Objet facture - * \param posy Position depart - * \param outputlangs Objet langs - * \return y Position pour suite - */ - function _tableau_info(&$pdf, $object, $posy, $outputlangs) - { - global $conf; - $default_font_size = pdf_getPDFFontSize($outputlangs); - - $pdf->SetFont('','', $default_font_size - 1); - - // If France, show VAT mention if not applicable - if ($this->emetteur->pays_code == 'FR' && $this->franchise == 1) - { - $pdf->SetFont('','B', $default_font_size - 2); - $pdf->SetXY($this->marge_gauche, $posy); - $pdf->MultiCell(100, 3, $outputlangs->transnoentities("VATIsNotUsedForInvoice"), 0, 'L', 0); - - $posy=$pdf->GetY()+4; - } - - // Show availability conditions - if ($object->type != 2 && ($object->availability_code || $object->availability)) - { - $pdf->SetFont('','B', $default_font_size - 2); - $pdf->SetXY($this->marge_gauche, $posy); - $titre = $outputlangs->transnoentities("AvailabilityPeriod").':'; - $pdf->MultiCell(80, 4, $titre, 0, 'L'); - $pdf->SetTextColor(0,0,0); - $pdf->SetFont('','', $default_font_size - 2); - $pdf->SetXY(82, $posy); - $lib_availability=$outputlangs->transnoentities("AvailabilityPeriod".$object->availability_code)!=('AvailabilityPeriod'.$object->availability_code)?$outputlangs->transnoentities("AvailabilityPeriod".$object->availability_code):$outputlangs->convToOutputCharset($object->availability); - $lib_availability=str_replace('\n',"\n",$lib_availability); - $pdf->MultiCell(80, 4, $lib_availability,0,'L'); - - $posy=$pdf->GetY()+1; - } - - // Show payments conditions - if ($object->type != 2 && ($object->cond_reglement_code || $object->cond_reglement)) - { - $pdf->SetFont('','B', $default_font_size - 2); - $pdf->SetXY($this->marge_gauche, $posy); - $titre = $outputlangs->transnoentities("PaymentConditions").':'; - $pdf->MultiCell(80, 4, $titre, 0, 'L'); - - $pdf->SetFont('','', $default_font_size - 2); - $pdf->SetXY(52, $posy); - $lib_condition_paiement=$outputlangs->transnoentities("PaymentCondition".$object->cond_reglement_code)!=('PaymentCondition'.$object->cond_reglement_code)?$outputlangs->transnoentities("PaymentCondition".$object->cond_reglement_code):$outputlangs->convToOutputCharset($object->cond_reglement_doc); - $lib_condition_paiement=str_replace('\n',"\n",$lib_condition_paiement); - $pdf->MultiCell(80, 4, $lib_condition_paiement,0,'L'); - - $posy=$pdf->GetY()+3; - } - - - if ($object->type != 2) - { - // Check a payment mode is defined - if (empty($object->mode_reglement_code) - && ! $conf->global->FACTURE_CHQ_NUMBER - && ! $conf->global->FACTURE_RIB_NUMBER) - { - $pdf->SetXY($this->marge_gauche, $posy); - $pdf->SetTextColor(200,0,0); - $pdf->SetFont('','B', $default_font_size - 2); - $pdf->MultiCell(90, 3, $outputlangs->transnoentities("ErrorNoPaiementModeConfigured"),0,'L',0); - $pdf->SetTextColor(0,0,0); - - $posy=$pdf->GetY()+1; - } - - // Shown payment mode - if ($object->mode_reglement_code - && $object->mode_reglement_code != 'CHQ' - && $object->mode_reglement_code != 'VIR') - { - $pdf->SetFont('','B', $default_font_size - 2); - $pdf->SetXY($this->marge_gauche, $posy); - $titre = $outputlangs->transnoentities("PaymentMode").':'; - $pdf->MultiCell(80, 5, $titre, 0, 'L'); - $pdf->SetFont('','', $default_font_size - 2); - $pdf->SetXY(50, $posy); - $lib_mode_reg=$outputlangs->transnoentities("PaymentType".$object->mode_reglement_code)!=('PaymentType'.$object->mode_reglement_code)?$outputlangs->transnoentities("PaymentType".$object->mode_reglement_code):$outputlangs->convToOutputCharset($object->mode_reglement); - $pdf->MultiCell(80, 5, $lib_mode_reg,0,'L'); - - $posy=$pdf->GetY()+2; - } - - // Show payment mode CHQ - if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'CHQ') - { - // Si mode reglement non force ou si force a CHQ - if ($conf->global->FACTURE_CHQ_NUMBER) - { - if ($conf->global->FACTURE_CHQ_NUMBER > 0) - { - $account = new Account($this->db); - $account->fetch($conf->global->FACTURE_CHQ_NUMBER); - - $pdf->SetXY($this->marge_gauche, $posy); - $pdf->SetFont('','B', $default_font_size - 2); - $pdf->MultiCell(90, 3, $outputlangs->transnoentities('PaymentByChequeOrderedTo',$account->proprio).':',0,'L',0); - $posy=$pdf->GetY()+1; - - $pdf->SetXY($this->marge_gauche, $posy); - $pdf->SetFont('','', $default_font_size - 2); - $pdf->MultiCell(80, 3, $outputlangs->convToOutputCharset($account->adresse_proprio), 0, 'L', 0); - $posy=$pdf->GetY()+2; - } - if ($conf->global->FACTURE_CHQ_NUMBER == -1) - { - $pdf->SetXY($this->marge_gauche, $posy); - $pdf->SetFont('','B', $default_font_size - 2); - $pdf->MultiCell(90, 3, $outputlangs->transnoentities('PaymentByChequeOrderedToShort').' '.$outputlangs->convToOutputCharset($this->emetteur->name).' '.$outputlangs->transnoentities('SendTo').':',0,'L',0); - $posy=$pdf->GetY()+1; - - $pdf->SetXY($this->marge_gauche, $posy); - $pdf->SetFont('','', $default_font_size - 2); - $pdf->MultiCell(80, 3, $outputlangs->convToOutputCharset($this->emetteur->getFullAddress()), 0, 'L', 0); - $posy=$pdf->GetY()+2; - } - } - } - - // If payment mode not forced or forced to VIR, show payment with BAN - if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'VIR') - { - if (! empty($conf->global->FACTURE_RIB_NUMBER)) - { - $account = new Account($this->db); - $account->fetch($conf->global->FACTURE_RIB_NUMBER); - - $curx=$this->marge_gauche; - $cury=$posy; - - $posy=pdf_bank($pdf,$outputlangs,$curx,$cury,$account); - - $posy+=2; - } - } - } - - return $posy; - } - - - /* - * \brief Affiche le total a payer - * \param pdf Objet PDF - * \param object Objet propale - * \param deja_regle Montant deja regle - * \param posy Position depart - * \param outputlangs Objet langs - * \return y Position pour suite - */ - function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs) - { - global $conf,$mysoc; - $default_font_size = pdf_getPDFFontSize($outputlangs); - - $tab2_top = $posy; - $tab2_hl = 4; - $pdf->SetFont('','', $default_font_size - 1); - - // Tableau total - $lltot = 200; $col1x = 120; $col2x = 170; $largcol2 = $lltot - $col2x; - - // Total HT - $pdf->SetFillColor(255,255,255); - $pdf->SetXY ($col1x, $tab2_top + 0); - $pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalHT"), 0, 'L', 1); - - $pdf->SetXY ($col2x, $tab2_top + 0); - $pdf->MultiCell($largcol2, $tab2_hl, price($object->total_ht + $object->remise), 0, 'R', 1); - - $index = 0; - - // Show VAT by rates and total - $pdf->SetFillColor(248,248,248); - - $this->atleastoneratenotnull=0; - if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) - { - foreach( $this->tva as $tvakey => $tvaval ) - { - if ($tvakey > 0) // On affiche pas taux 0 - { - $this->atleastoneratenotnull++; - - $index++; - $pdf->SetXY ($col1x, $tab2_top + $tab2_hl * $index); - - $tvacompl=''; - if (preg_match('/\*/',$tvakey)) - { - $tvakey=str_replace('*','',$tvakey); - $tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")"; - } - $totalvat =$outputlangs->transnoentities("TotalVAT").' '; - $totalvat.=vatrate($tvakey,1).$tvacompl; - $pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1); - - $pdf->SetXY ($col2x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($largcol2, $tab2_hl, price($tvaval), 0, 'R', 1); - } - } - - if (! $this->atleastoneratenotnull) // If not vat at all - { - $index++; - $pdf->SetXY ($col1x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalVAT"), 0, 'L', 1); - - $pdf->SetXY ($col2x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($largcol2, $tab2_hl, price($object->total_tva), 0, 'R', 1); - - // Total LocalTax1 - if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on' && $object->total_localtax1>0) - { - $index++; - $pdf->SetXY ($col1x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalLT1".$mysoc->pays_code), $useborder, 'L', 1); - $pdf->SetXY ($col2x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($largcol2, $tab2_hl, price($object->total_localtax1), $useborder, 'R', 1); - } - - // Total LocalTax2 - if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on' && $object->total_localtax2>0) - { - $index++; - $pdf->SetXY ($col1x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalLT2".$mysoc->pays_code), $useborder, 'L', 1); - $pdf->SetXY ($col2x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($largcol2, $tab2_hl, price($object->total_localtax2), $useborder, 'R', 1); - } - } - else - { - //Local tax 1 - if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') - { - foreach( $this->localtax1 as $tvakey => $tvaval ) - { - if ($tvakey>0) // On affiche pas taux 0 - { - //$this->atleastoneratenotnull++; - - $index++; - $pdf->SetXY ($col1x, $tab2_top + $tab2_hl * $index); - - $tvacompl=''; - if (preg_match('/\*/',$tvakey)) - { - $tvakey=str_replace('*','',$tvakey); - $tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")"; - } - $totalvat = $outputlangs->transnoentities("TotalLT1".$mysoc->pays_code).' '; - $totalvat.=vatrate($tvakey,1).$tvacompl; - $pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1); - - $pdf->SetXY ($col2x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($largcol2, $tab2_hl, price($tvaval), 0, 'R', 1); - } - } - } - - //Local tax 2 - if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on') - { - foreach( $this->localtax2 as $tvakey => $tvaval ) - { - if ($tvakey>0) // On affiche pas taux 0 - { - //$this->atleastoneratenotnull++; - - $index++; - $pdf->SetXY ($col1x, $tab2_top + $tab2_hl * $index); - - $tvacompl=''; - if (preg_match('/\*/',$tvakey)) - { - $tvakey=str_replace('*','',$tvakey); - $tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")"; - } - $totalvat = $outputlangs->transnoentities("TotalLT2".$mysoc->pays_code).' '; - $totalvat.=vatrate($tvakey,1).$tvacompl; - $pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1); - - $pdf->SetXY ($col2x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($largcol2, $tab2_hl, price($tvaval), 0, 'R', 1); - - } - } - } - } - } - - $useborder=0; - - // Total TTC - if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) - { - $index++; - $pdf->SetXY ($col1x, $tab2_top + $tab2_hl * $index); - $pdf->SetTextColor(0,0,60); - $pdf->SetFillColor(224,224,224); - $pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalTTC"), $useborder, 'L', 1); - - $pdf->SetXY ($col2x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($largcol2, $tab2_hl, price($object->total_ttc), $useborder, 'R', 1); - $pdf->SetTextColor(0,0,0); - } - - if ($deja_regle > 0) - { - $index++; - - $pdf->SetXY ($col1x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("AlreadyPaid"), 0, 'L', 0); - - $pdf->SetXY ($col2x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($largcol2, $tab2_hl, price($deja_regle), 0, 'R', 0); - - $resteapayer = $object->total_ttc - $deja_regle; - if ($object->paye) $resteapayer=0; - - if ($object->close_code == 'discount_vat') - { - $index++; - $pdf->SetFillColor(255,255,255); - - $pdf->SetXY ($col1x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("EscompteOffered"), $useborder, 'L', 1); - - $pdf->SetXY ($col2x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($largcol2, $tab2_hl, price($object->total_ttc - $deja_regle), $useborder, 'R', 1); - - $resteapayer=0; - } - - $index++; - $pdf->SetTextColor(0,0,60); - $pdf->SetFillColor(224,224,224); - $pdf->SetXY ($col1x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("RemainderToPay"), $useborder, 'L', 1); - - $pdf->SetXY ($col2x, $tab2_top + $tab2_hl * $index); - $pdf->MultiCell($largcol2, $tab2_hl, price($resteapayer), $useborder, 'R', 1); - - // Fin - $pdf->SetFont('','', $default_font_size - 1); - $pdf->SetTextColor(0,0,0); - } - - $index++; - return ($tab2_top + ($tab2_hl * $index)); - } - - /** - * \brief Affiche la grille des lignes de propales - * \param pdf objet PDF - */ - function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs) - { - global $conf; - $default_font_size = pdf_getPDFFontSize($outputlangs); - - // Montants exprimes en (en tab_top - 1) - $pdf->SetTextColor(0,0,0); - $pdf->SetFont('','',$default_font_size - 2); - $titre = $outputlangs->transnoentities("AmountInCurrency",$outputlangs->transnoentitiesnoconv("Currency".$conf->monnaie)); - $pdf->SetXY($this->page_largeur - $this->marge_droite - ($pdf->GetStringWidth($titre) + 3), $tab_top-4); - $pdf->MultiCell(($pdf->GetStringWidth($titre) + 3), 2, $titre); - - $pdf->SetDrawColor(128,128,128); - - // Rect prend une longueur en 3eme param - $pdf->Rect($this->marge_gauche, $tab_top, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $tab_height); - // line prend une position y en 3eme param - $pdf->line($this->marge_gauche, $tab_top+5, $this->page_largeur-$this->marge_droite, $tab_top+5); - - $pdf->SetFont('','',$default_font_size - 1); - - $pdf->SetXY ($this->posxdesc-1, $tab_top+1); - $pdf->MultiCell(108,2, $outputlangs->transnoentities("Designation"),'','L'); - - if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) - { - $pdf->line($this->posxtva-1, $tab_top, $this->posxtva-1, $tab_top + $tab_height); - $pdf->SetXY ($this->posxtva-3, $tab_top+1); - $pdf->MultiCell($this->posxup-$this->posxtva+3,2, $outputlangs->transnoentities("VAT"),'','C'); - } - - $pdf->line($this->posxup-1, $tab_top, $this->posxup-1, $tab_top + $tab_height); - $pdf->SetXY ($this->posxup-1, $tab_top+1); - $pdf->MultiCell($this->posxqty-$this->posxup-1,2, $outputlangs->transnoentities("PriceUHT"),'','C'); - - $pdf->line($this->posxqty-1, $tab_top, $this->posxqty-1, $tab_top + $tab_height); - $pdf->SetXY ($this->posxqty-1, $tab_top+1); - $pdf->MultiCell($this->posxdiscount-$this->posxqty-1,2, $outputlangs->transnoentities("Qty"),'','C'); - - $pdf->line($this->posxdiscount-1, $tab_top, $this->posxdiscount-1, $tab_top + $tab_height); - if ($this->atleastonediscount) - { - $pdf->SetXY ($this->posxdiscount-1, $tab_top+1); - $pdf->MultiCell($this->postotalht-$this->posxdiscount+1,2, $outputlangs->transnoentities("ReductionShort"),'','C'); - } - - if ($this->atleastonediscount) - { - $pdf->line($this->postotalht, $tab_top, $this->postotalht, $tab_top + $tab_height); - } - $pdf->SetXY ($this->postotalht-1, $tab_top+1); - $pdf->MultiCell(30,2, $outputlangs->transnoentities("TotalHT"),'','C'); - - } - - /** - * Show header of document - * @param pdf Object PDF - * @param object Object commercial proposal - * @param showaddress 0=no, 1=yes - * @param outputlangs Object lang for output - */ - function _pagehead(&$pdf, $object, $showaddress=1, $outputlangs) - { - global $conf,$langs; - $default_font_size = pdf_getPDFFontSize($outputlangs); - - $outputlangs->load("main"); - $outputlangs->load("bills"); - $outputlangs->load("propal"); - $outputlangs->load("companies"); - - pdf_pagehead($pdf,$outputlangs,$this->page_hauteur); - - //Affiche le filigrane brouillon - Print Draft Watermark - if($object->statut==0 && (! empty($conf->global->PROPALE_DRAFT_WATERMARK)) ) - { - pdf_watermark($pdf,$outputlangs,$this->page_hauteur,$this->page_largeur,'mm',$conf->global->PROPALE_DRAFT_WATERMARK); - } - - //Prepare la suite - $pdf->SetTextColor(0,0,60); - $pdf->SetFont('','B', $default_font_size + 3); - - $posy=$this->marge_haute; - - $pdf->SetXY($this->marge_gauche,$posy); - - // Logo - $logo=$conf->mycompany->dir_output.'/logos/'.$this->emetteur->logo; - if ($this->emetteur->logo) - { - if (is_readable($logo)) - { - $pdf->Image($logo, $this->marge_gauche, $posy, 0, 24); - } - else - { - $pdf->SetTextColor(200,0,0); - $pdf->SetFont('','B',$default_font_size - 2); - $pdf->MultiCell(100, 3, $outputlangs->transnoentities("ErrorLogoFileNotFound",$logo), 0, 'L'); - $pdf->MultiCell(100, 3, $outputlangs->transnoentities("ErrorGoToGlobalSetup"), 0, 'L'); - } - } - else - { - $text=$this->emetteur->name; - $pdf->MultiCell(100, 4, $outputlangs->convToOutputCharset($text), 0, 'L'); - } - - $pdf->SetFont('','B',$default_font_size + 3); - $pdf->SetXY(100,$posy); - $pdf->SetTextColor(0,0,60); - $title=$outputlangs->transnoentities("CommercialProposal"); - $pdf->MultiCell(100, 4, $title, '' , 'R'); - - $pdf->SetFont('','B',$default_font_size + 2); - - $posy+=6; - $pdf->SetXY(100,$posy); - $pdf->SetTextColor(0,0,60); - $pdf->MultiCell(100, 4, $outputlangs->transnoentities("Ref")." : " . $outputlangs->convToOutputCharset($object->ref), '', 'R'); - - $posy+=1; - $pdf->SetFont('','', $default_font_size); - - if ($object->ref_client) - { - $posy+=5; - $pdf->SetXY(100,$posy); - $pdf->SetTextColor(0,0,60); - $pdf->MultiCell(100, 3, $outputlangs->transnoentities("RefCustomer")." : " . $outputlangs->convToOutputCharset($object->ref_client), '', 'R'); - } - - $posy+=5; - $pdf->SetXY(100,$posy); - $pdf->SetTextColor(0,0,60); - $pdf->MultiCell(100, 3, $outputlangs->transnoentities("Date")." : " . dol_print_date($object->date,"day",false,$outputlangs,true), '', 'R'); - - $posy+=5; - $pdf->SetXY(100,$posy); - $pdf->SetTextColor(0,0,60); - $pdf->MultiCell(100, 3, $outputlangs->transnoentities("DateEndPropal")." : " . dol_print_date($object->fin_validite,"day",false,$outputlangs,true), '', 'R'); - - if ($object->client->code_client) - { - $posy+=5; - $pdf->SetXY(100,$posy); - $pdf->SetTextColor(0,0,60); - $pdf->MultiCell(100, 3, $outputlangs->transnoentities("CustomerCode")." : " . $outputlangs->transnoentities($object->client->code_client), '', 'R'); - } - - if ($showaddress) - { - // Sender properties - $carac_emetteur=''; - // Add internal contact of proposal if defined - $arrayidcontact=$object->getIdContact('internal','SALESREPFOLL'); - if (sizeof($arrayidcontact) > 0) - { - $object->fetch_user($arrayidcontact[0]); - $carac_emetteur .= ($carac_emetteur ? "\n" : '' ).$outputlangs->transnoentities("Name").": ".$outputlangs->convToOutputCharset($object->user->getFullName($outputlangs))."\n"; - } - - $carac_emetteur .= pdf_build_address($outputlangs,$this->emetteur); - - // Show sender - $posx=$this->marge_gauche; - $posy=42; - $hautcadre=40; - if (! empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx=118; - - // Show sender frame - $pdf->SetTextColor(0,0,0); - $pdf->SetFont('','', $default_font_size - 2); - $pdf->SetXY($posx,$posy-5); - $pdf->MultiCell(66,5, $outputlangs->transnoentities("BillFrom").":", 0, 'L'); - $pdf->SetXY($posx,$posy); - $pdf->SetFillColor(230,230,230); - $pdf->MultiCell(82, $hautcadre, "", 0, 'R', 1); - - // Show sender name - $pdf->SetXY($posx+2,$posy+3); - $pdf->SetTextColor(0,0,60); - $pdf->SetFont('','B',$default_font_size); - $pdf->MultiCell(80, 3, $outputlangs->convToOutputCharset($this->emetteur->name), 0, 'L'); - - // Show sender information - $pdf->SetFont('','', $default_font_size - 1); - $pdf->SetXY($posx+2,$posy+8); - $pdf->MultiCell(80, 4, $carac_emetteur, 0, 'L'); - - - // If CUSTOMER contact defined, we use it - $usecontact=false; - $arrayidcontact=$object->getIdContact('external','CUSTOMER'); - if (sizeof($arrayidcontact) > 0) - { - $usecontact=true; - $result=$object->fetch_contact($arrayidcontact[0]); - } - - // Recipient name - if (! empty($usecontact)) - { - // On peut utiliser le nom de la societe du contact - if ($conf->global->MAIN_USE_COMPANY_NAME_OF_CONTACT) $socname = $object->contact->socname; - else $socname = $object->client->nom; - $carac_client_name=$outputlangs->convToOutputCharset($socname); - } - else - { - $carac_client_name=$outputlangs->convToOutputCharset($object->client->nom); - } - - $carac_client=pdf_build_address($outputlangs,$this->emetteur,$object->client,$object->contact,$usecontact,'target'); - - // Show recipient - $posy=42; - $posx=100; - if (! empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx=$this->marge_gauche; - - // Show recipient frame - $pdf->SetTextColor(0,0,0); - $pdf->SetFont('','', $default_font_size - 2); - $pdf->SetXY($posx,$posy-5); - $pdf->MultiCell(80, 4, $outputlangs->transnoentities("BillTo").":", 0, 'L'); - $pdf->rect($posx, $posy, 100, $hautcadre); - $pdf->SetTextColor(0,0,0); - - // Show recipient name - $pdf->SetXY($posx+2,$posy+3); - $pdf->SetFont('','B', $default_font_size); - $pdf->MultiCell(96,4, $carac_client_name, 0, 'L'); - - // Show recipient information - $pdf->SetFont('','', $default_font_size - 1); - $pdf->SetXY($posx+2,$posy+8); - $pdf->MultiCell(86,4, $carac_client, 0, 'L'); - } - } - - /** - * \brief Show footer of page - * \param pdf PDF factory - * \param object Object invoice - * \param outputlangs Object lang for output - * \remarks Need this->emetteur object - */ - function _pagefoot(&$pdf,$object,$outputlangs) - { - return pdf_pagefoot($pdf,$outputlangs,'PROPALE_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object); - } - -} - -?> diff -BNaur '--exclude=CVS' '--exclude=*.patch' '--exclude=.#*' '--exclude=*~' '--exclude=*.rej' '--exclude=*.orig' '--exclude=*.bak' '--exclude=conf.php' '--exclude=documents' ./dolibarr111007_dt/htdocs/langs/fr_FR/compta.lang ./dolibarr/htdocs/langs/fr_FR/compta.lang --- ./dolibarr111007_dt/htdocs/langs/fr_FR/compta.lang 2011-10-03 17:21:16.000000000 +0200 +++ ./dolibarr/htdocs/langs/fr_FR/compta.lang 2011-05-18 21:28:01.000000000 +0200 @@ -77,7 +77,6 @@ ByThirdParties=Par tiers ByUserAuthorOfInvoice=Par auteur de la facture AccountancyExport=Export comptable -Export=Exporter ErrorWrongAccountancyCodeForCompany=Code compta client incorrect pour %s SuppliersProductsSellSalesTurnover=Chiffre d'affaires généré par la vente des produits des fournisseurs CheckReceipt=Bordereau de remise de chèques @@ -138,5 +137,4 @@ COMPTA_ACCOUNT_CUSTOMER=Code comptable client par défaut (si non défini sur fiche tiers) COMPTA_ACCOUNT_SUPPLIER=Code comptable fournisseur par défaut (si non défini sur fiche tiers) AddRemind=Ventiler montant disponible -RemainToDivide=Reste à répartir : -Wording=Libellé \ Pas de fin de ligne à la fin du fichier. +RemainToDivide=Reste à répartir : \ Pas de fin de ligne à la fin du fichier. diff -BNaur '--exclude=CVS' '--exclude=*.patch' '--exclude=.#*' '--exclude=*~' '--exclude=*.rej' '--exclude=*.orig' '--exclude=*.bak' '--exclude=conf.php' '--exclude=documents' ./dolibarr111007_dt/htdocs/lib/pdf.lib.php ./dolibarr/htdocs/lib/pdf.lib.php --- ./dolibarr111007_dt/htdocs/lib/pdf.lib.php 2011-07-09 15:08:39.000000000 +0200 +++ ./dolibarr/htdocs/lib/pdf.lib.php 2011-05-27 10:44:52.000000000 +0200 @@ -713,7 +711,7 @@ // Description long of product line if ($desc && ($desc != $label)) { - if ( $libelleproduitservice && empty($hidedesc) ) $libelleproduitservice.="\n"; //"
"; + if ( $libelleproduitservice && empty($hidedesc) ) $libelleproduitservice.="
"; if ($desc == '(CREDIT_NOTE)' && $object->lines[$i]->fk_remise_except) { @@ -725,11 +723,11 @@ { if ($idprod) { - if ( empty($hidedesc) ) $libelleproduitservice.=$desc ."\n"; + if ( empty($hidedesc) ) $libelleproduitservice.=$desc; } else { - $libelleproduitservice.=$desc."\n"; + $libelleproduitservice.=$desc; } } } @@ -784,7 +782,7 @@ $period='('.$outputlangs->transnoentitiesnoconv('DateUntil',dol_print_date($object->lines[$i]->date_end, $format, false, $outputlangs)).')'; } //print '>'.$outputlangs->charset_output.','.$period; - $libelleproduitservice.="\n".dol_htmlentitiesbr($period,1); + $libelleproduitservice.="
".dol_htmlentitiesbr($period,1); //print $libelleproduitservice; } @@ -1007,7 +1005,7 @@ function pdf_getlineremisepercent($object,$i,$outputlangs,$hidedetails=0) { include_once(DOL_DOCUMENT_ROOT."/lib/functions2.lib.php"); - + if ($object->lines[$i]->special_code != 3) { if (! empty($object->hooks) && ( ($object->lines[$i]->product_type == 9 && !empty($object->lines[$i]->special_code) ) || ! empty($object->lines[$i]->fk_parent_line) ) ) diff -BNaur '--exclude=CVS' '--exclude=*.patch' '--exclude=.#*' '--exclude=*~' '--exclude=*.rej' '--exclude=*.orig' '--exclude=*.bak' '--exclude=conf.php' '--exclude=documents' ./dolibarr111007_dt/htdocs/lib/report.lib.php ./dolibarr/htdocs/lib/report.lib.php --- ./dolibarr111007_dt/htdocs/lib/report.lib.php 2011-10-03 18:43:20.000000000 +0200 +++ ./dolibarr/htdocs/lib/report.lib.php 2011-01-10 23:36:34.000000000 +0100 @@ -34,7 +34,7 @@ * @param builddate Date generation * @param exportlink Link for export or '' */ -function report_header($nom,$variante='',$period,$periodlink,$description,$builddate,$exportlink='',$exportbutton='') +function report_header($nom,$variante='',$period,$periodlink,$description,$builddate,$exportlink='') { global $langs; @@ -77,19 +77,14 @@ // Ligne d'export print ''; print ''.$langs->trans("GeneratedOn").''; - print '' . dol_print_date($builddate) .''; - print ''; - - print ''; - print ''; - print ''; - if ($exportlink) - { - print ''; - print ''; - } - + if (! $exportlink) print ''; + else print ''; + print dol_print_date($builddate); + if ($exportlink) print ''.$langs->trans("Export").''.$exportlink; + print ''; + print ''; + print ''; print ''; print '';