diff --git a/htdocs/admin/compta.php b/htdocs/admin/compta.php index 685e86843273e6692d421b7527dcc225d2636454..9bfa452e1622a4610bc0f3de705bed376a93ddae 100644 --- a/htdocs/admin/compta.php +++ b/htdocs/admin/compta.php @@ -55,7 +55,7 @@ $typeconst=array('yesno','texte','chaine'); if ($_POST['action'] == 'update' || $_POST['action'] == 'add') { - if (! dolibarr_set_const($db, $_POST['constname'], $_POST['constvalue'], $typeconst[$_POST['consttype']], 0, isset($_POST['constnote']) ? $_POST['constnote'] : '',$conf->entity)); + if (! dolibarr_set_const($db, $_POST['constname'], $_POST['constvalue'], $_POST['consttype'], 0, isset($_POST['constnote']) ? $_POST['constnote'] : '',$conf->entity)); { print $db->error(); } @@ -145,13 +145,17 @@ if ($result) print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; print '<input type="hidden" name="action" value="update">'; print '<input type="hidden" name="rowid" value="'.$rowid.'">'; + print '<input type="hidden" name="consttype" value="'.$obj->type.'">'; print '<input type="hidden" name="constname" value="'.$obj->name.'">'; - + print '<input type="hidden" name="constnote" value="'.$obj->note.'">'; + print '<tr '.$bc[$var].' class="value">'; // Param - print '<td>'.stripslashes(nl2br($obj->note)); - print $obj->name; + if ($langs->trans($obj->name) == $obj->name) $libelle = stripslashes(nl2br($obj->note)); + else $libelle = $langs->trans($obj->name); + print '<td>'.$libelle; + print ' ('.$obj->name.')'; print "</td>\n"; // Value diff --git a/htdocs/compta/journaux/index.php b/htdocs/compta/journaux/index.php new file mode 100644 index 0000000000000000000000000000000000000000..ac11326a838a7ca88c451e72259a226d7877da21 --- /dev/null +++ b/htdocs/compta/journaux/index.php @@ -0,0 +1,76 @@ +<?php +/* Copyright (C) 2007-2010 Laurent Destailleur <eldy@users.sourceforge.net> + * Copyright (C) ---Put here your own copyright and developer email--- + * + * 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. + */ + +require("../../main.inc.php"); + + +$langs->load("companies"); +$langs->load("other"); +$langs->load("compta"); + +// Protection if external user +if ($user->societe_id > 0) +{ + accessforbidden(); +} + + +/******************************************************************* +* ACTIONS +* +* Put here all code to do according to value of "action" parameter +********************************************************************/ + + +/*************************************************** +* PAGE +* +* Put here all code to build page +****************************************************/ + +llxHeader('','MyPageName',''); + +$form=new Form($db); + + +// Put here content of your page +// ... + +/*************************************************** +* LINKED OBJECT BLOCK +* +* Put here code to view linked object +****************************************************/ +/* + +$myobject->load_object_linked($myobject->id,$myobject->element); + +foreach($myobject->linked_object as $linked_object => $linked_objectid) +{ + if ($conf->$linked_object->enabled) + { + $somethingshown=$myobject->showLinkedObjectBlock($linked_object,$linked_objectid,$somethingshown); + } +} +*/ + +// End of page +$db->close(); +llxFooter('$Date$ - $Revision$'); +?> \ No newline at end of file diff --git a/htdocs/compta/journaux/journalachat.php b/htdocs/compta/journaux/journalachat.php new file mode 100644 index 0000000000000000000000000000000000000000..d76f1a8e2a205d010cbd30230464cb0c98e828bc --- /dev/null +++ b/htdocs/compta/journaux/journalachat.php @@ -0,0 +1,195 @@ +<?php +/* Copyright (C) 2007-2010 Laurent Destailleur <eldy@users.sourceforge.net> + * Copyright (C) ---Put here your own copyright and developer email--- + * + * 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. + */ + +require("../../main.inc.php"); +require_once(DOL_DOCUMENT_ROOT."/lib/report.lib.php"); +require_once(DOL_DOCUMENT_ROOT."/lib/date.lib.php"); + +$langs->load("companies"); +$langs->load("other"); +$langs->load("compta"); + +// Protection if external user +if ($user->societe_id > 0) +{ + accessforbidden(); +} + + +/******************************************************************* +* 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 +// ... + + +$year_current = strftime("%Y",dol_now()); +$pastmonth = strftime("%m",dol_now()) - 1; +if ($pastmonth == 0) $pastmonth = 12; + +$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($year_current,$pastmonth,false); $date_end=dol_get_last_day($year_current,$pastmonth,false); +} + +$nom=$langs->trans("JournalAchat"); +//$nomlink=; +$builddate=time(); +$description=$langs->trans("DescJournalAchat"); +$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]; + +$sql = "SELECT f.rowid, f.facnumber, f.datef, f.libelle, f.total_ttc, "; +$sql .= "fd.tva_tx, fd.total_ht, fd.tva, fd.product_type "; +$sql .= " ,s.code_compta_fournisseur, p.accountancy_code_buy , ct.accountancy_code"; +$sql .= " FROM ".MAIN_DB_PREFIX."facture_fourn_det fd "; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_tva ct ON fd.tva_tx = ct.taux AND ct.fk_pays = '".$idpays."'"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product p ON p.rowid = fd.fk_product "; +$sql .= " JOIN ".MAIN_DB_PREFIX."facture_fourn f ON f.rowid = fd.fk_facture_fourn "; +$sql .= " JOIN ".MAIN_DB_PREFIX."societe s ON s.rowid = f.fk_soc" ; +$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)."'"; + + $result = $db->query($sql); + if ($result) + { + $num = $db->num_rows($result); + // les variables + $cptfour = isset($conf->global->COMPTA_ACCOUNT_SUPPLIER)?$conf->global->COMPTA_ACCOUNT_SUPPLIER:$langs->trans("CodeNotDef"); + $cpttva = isset($conf->global->COMPTA_VAT_ACCOUNT)?$conf->global->COMPTA_VAT_ACCOUNT:$langs->trans("CodeNotDef"); + + $tabfac = array(); + $tabht = array(); + $tabtva = array(); + $tabttc = array(); + + $i=0; + while ($i < $num) + { + $obj = $db->fetch_object($result); + // contrôles + $compta_soc = isset($obj->code_compta_fournisseur)?$obj->code_compta_fournisseur:$cptfour; + $compta_prod = $obj->accountancy_code_buy; + if (!isset($compta_prod) || empty($compta_prod)) + { + if($obj->product_type == 0) $compta_prod = isset($conf->global->COMPTA_PRODUCT_BUY_ACCOUNT)?$conf->global->COMPTA_PRODUCT_BUY_ACCOUNT:$langs->trans("CodeNotDef") ; + else $compta_prod = isset($conf->global->COMPTA_SERVICE_BUY_ACCOUNT)?$conf->global->COMPTA_SERVICE_BUY_ACCOUNT:$langs->trans("CodeNotDef") ; + } + $compta_tva = isset($obj->accountancy_code)?$obj->accountancy_code:$cpttva; + + $tabfac[$obj->rowid]["date"] = $obj->datef; + $tabfac[$obj->rowid]["ref"] = $obj->facnumber; + $tabfac[$obj->rowid]["piece"] = ''; // todo + $tabfac[$obj->rowid]["lib"] = $obj->libelle; + $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 "<table class=\"noborder\" width=\"100%\">"; +print "<tr class=\"liste_titre\">"; +print "<td>".$langs->trans("JournalNum")."</td><td>".$langs->trans("Invoicedate")."</td><td>".$langs->trans("InvoiceRef")."</td>"; +print "<td>".$langs->trans("Piece")."</td><td>".$langs->trans("Account")."</td>"; +print "<t><td>".$langs->trans("InvoiceLib")."</td><td>".$langs->trans("AmountDbt")."</td><td>".$langs->trans("AmountCdt")."</td>"; +print "</tr>\n"; + +$var=true; +$r=''; + +foreach ($tabfac as $key => $val) +{ + print "<tr $bc[$var] >"; + //facture + print "<td>".$conf->global->COMPTA_JOURNAL_BUY."</td><td>".$val["date"]."</td><td>".$val["ref"]."</td><td>".$val["piece"]."</td>"; + foreach ($tabttc[$key] as $k => $mt) + { + print "<td>".$k."</td><td>".$val["lib"]."</td><td>".$mt."</td><td></td>"; + } + print "</tr>"; + // produit + foreach ($tabht[$key] as $k => $mt) + { + print "<tr><td>".$conf->global->COMPTA_JOURNAL_BUY."</td><td>".$val["date"]."</td><td>".$val["ref"]."</td><td>".$val["piece"]."</td>"; + print "<td>".$k."</td><td>".$val["lib"]."</td><td></td><td>".$mt."</td></tr>"; + } + // tva + foreach ($tabtva[$key] as $k => $mt) + { + print "<tr><td>".$conf->global->COMPTA_JOURNAL_BUY."</td><td>".$val["date"]."</td><td>".$val["ref"]."</td><td>".$val["piece"]."</td>"; + print "<td>".$k."</td><td>".$val["lib"]."</td><td></td><td>".$mt."</td></tr>"; + } + + $val = !$val; +} + +print "</table>"; + +/*************************************************** +* LINKED OBJECT BLOCK +* +* Put here code to view linked object +****************************************************/ +/* + +$myobject->load_object_linked($myobject->id,$myobject->element); + +foreach($myobject->linked_object as $linked_object => $linked_objectid) +{ + if ($conf->$linked_object->enabled) + { + $somethingshown=$myobject->showLinkedObjectBlock($linked_object,$linked_objectid,$somethingshown); + } +} +*/ + +// End of page +$db->close(); +llxFooter('$Date$ - $Revision$'); +?> \ No newline at end of file diff --git a/htdocs/compta/journaux/journalvente.php b/htdocs/compta/journaux/journalvente.php new file mode 100644 index 0000000000000000000000000000000000000000..96a3ffd0a65c6c82b2f237d0cdbd86a4a20ebcd4 --- /dev/null +++ b/htdocs/compta/journaux/journalvente.php @@ -0,0 +1,197 @@ +<?php +/* Copyright (C) 2007-2010 Laurent Destailleur <eldy@users.sourceforge.net> + * Copyright (C) ---Put here your own copyright and developer email--- + * + * 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. + */ + +require("../../main.inc.php"); +require_once(DOL_DOCUMENT_ROOT."/lib/report.lib.php"); +require_once(DOL_DOCUMENT_ROOT."/lib/date.lib.php"); + + +$langs->load("companies"); +$langs->load("other"); +$langs->load("compta"); + +// Protection if external user +if ($user->societe_id > 0) +{ + accessforbidden(); +} + + +/******************************************************************* +* 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 +// ... + +$year_current = strftime("%Y",dol_now()); +$pastmonth = strftime("%m",dol_now()) - 1; +if ($pastmonth == 0) $pastmonth = 12; + +$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($year_current,$pastmonth,false); $date_end=dol_get_last_day($year_current,$pastmonth,false); +} + +$nom=$langs->trans("JournalVente"); +//$nomlink=; +$builddate=time(); +$description=$langs->trans("DescJournalvente"); +$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]; + +$sql = "SELECT f.rowid, f.facnumber, f.datef, f.ref_client , fd.product_type, fd.total_ht, fd.total_tva, fd.tva_tx "; +$sql .= " , fd.total_ttc,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 "; +$sql .= " JOIN ".MAIN_DB_PREFIX."societe s ON s.rowid = f.fk_soc"; +$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.rowid"; + +$result = $db->query($sql); +if ($result) +{ + $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 = isset($conf->global->COMPTA_ACCOUNT_CUSTOMER)?$conf->global->COMPTA_ACCOUNT_CUSTOMER:$langs->trans("CodeNotDef"); + $compta_soc = isset($obj->code_compta)?$obj->code_compta:$cptcli; + $compta_prod = $obj->accountancy_code_sell; + if (!isset($compta_prod)) + { + if($obj->product_type == 0) $compta_prod = isset($conf->global->COMPTA_PRODUCT_SOLD_ACCOUNT)?$conf->global->COMPTA_PRODUCT_SOLD_ACCOUNT:$langs->trans("CodeNotDef") ; + else $compta_prod = isset($conf->global->COMPTA_SERVICE_SOLD_ACCOUNT)?$conf->global->COMPTA_SERVICE_SOLD_ACCOUNT:$langs->trans("CodeNotDef") ; + } + $cpttva = isset($conf->global->COMPTA_VAT_ACCOUNT)?$conf->global->COMPTA_VAT_ACCOUNT:$langs->trans("CodeNotDef"); + $compta_tva = isset($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]["piece"] = ''; // todo + $tabfac[$obj->rowid]["lib"] = $obj->ref_client; + $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 "<table class=\"noborder\" width=\"100%\">"; +print "<tr class=\"liste_titre\">"; +print "<td>".$langs->trans("JournalNum")."</td><td>".$langs->trans("Invoicedate")."</td><td>".$langs->trans("InvoiceRef")."</td>"; +print "<td>".$langs->trans("Piece")."</td><td>".$langs->trans("Account")."</td>"; +print "<t><td>".$langs->trans("InvoiceLib")."</td><td>".$langs->trans("AmountDbt")."</td><td>".$langs->trans("AmountCdt")."</td>"; +print "</tr>\n"; + +$var=true; +$r=''; + +foreach ($tabfac as $key => $val) +{ + print "<tr $bc[$var] >"; + //facture + print "<td>".$conf->global->COMPTA_JOURNAL_SELL."</td><td>".$val["date"]."</td><td>".$val["ref"]."</td><td>".$val["piece"]."</td>"; + foreach ($tabttc[$key] as $k => $mt) + { + print "<td>".$k."</td><td>".$val["lib"]."</td><td>".$mt."</td><td></td>"; + } + print "</tr>"; + // produit + foreach ($tabht[$key] as $k => $mt) + { + print "<tr><td>".$conf->global->COMPTA_JOURNAL_SELL."</td><td>".$val["date"]."</td><td>".$val["ref"]."</td><td>".$val["piece"]."</td>"; + print "<td>".$k."</td><td>".$val["lib"]."</td><td></td><td>".$mt."</td></tr>"; + } + // tva + foreach ($tabtva[$key] as $k => $mt) + { + print "<tr><td>".$conf->global->COMPTA_JOURNAL_SELL."</td><td>".$val["date"]."</td><td>".$val["ref"]."</td><td>".$val["piece"]."</td>"; + print "<td>".$k."</td><td>".$val["lib"]."</td><td></td><td>".$mt."</td></tr>"; + } + + $val = !$val; +} + +print "</table>"; + +/*************************************************** +* LINKED OBJECT BLOCK +* +* Put here code to view linked object +****************************************************/ +/* + +$myobject->load_object_linked($myobject->id,$myobject->element); + +foreach($myobject->linked_object as $linked_object => $linked_objectid) +{ + if ($conf->$linked_object->enabled) + { + $somethingshown=$myobject->showLinkedObjectBlock($linked_object,$linked_objectid,$somethingshown); + } +} +*/ + +// End of page +$db->close(); +llxFooter('$Date$ - $Revision$'); +?> \ No newline at end of file diff --git a/htdocs/install/mysql/tables/llx_c_tva.sql b/htdocs/install/mysql/tables/llx_c_tva.sql index 20b1eea1d2153dad15c0f10f2a36dd5e69d3b652..ad03d573acdbae947c3b18beb02410228228931b 100644 --- a/htdocs/install/mysql/tables/llx_c_tva.sql +++ b/htdocs/install/mysql/tables/llx_c_tva.sql @@ -28,7 +28,8 @@ create table llx_c_tva localtax2 double NOT NULL DEFAULT 0, recuperableonly integer NOT NULL DEFAULT 0, note varchar(128), - active tinyint DEFAULT 1 NOT NULL + active tinyint DEFAULT 1 NOT NULL, + accountancy_code varchar(15) DEFAULT NULL )type=innodb; diff --git a/htdocs/langs/fr_FR/compta.lang b/htdocs/langs/fr_FR/compta.lang index 940c38b3b66504b6e8ffc476aa6ccc6e3ca8e48e..e0b39f4e07c47181300705f237e683934ade74e1 100644 --- a/htdocs/langs/fr_FR/compta.lang +++ b/htdocs/langs/fr_FR/compta.lang @@ -117,4 +117,26 @@ OrderStats=Statistiques sur les commandes Dispatch=Ventilation Dispatched=Ventilés ToDispatch=A ventiler -ThirdPartyMustBeEditAsCustomer=Le tiers doit être défini comme client \ No newline at end of file +ThirdPartyMustBeEditAsCustomer=Le tiers doit être défini comme client +JournalVente=Journal des ventes +JournalAchat=Journal des achats +Journaux=Journaux +Invoicedate=Date Facture +InvoiceRef=Référence Fourn. +Piece=Piece compta +InvoiceLib=Libellé +AmountDbt=Débit +AmountCdt=Crédit +DescJournalAchat=Journal des Achats Fournisseurs +DescJournalvente=Journal des ventes +JournalNum=Journal +CodeNotDef=Non Déf. +COMPTA_JOURNAL_SELL=Numéro compotable du Journal des Achats +COMPTA_JOURNAL_BUY=Numéro comptable du Journal des Ventes +COMPTA_PRODUCT_BUY_ACCOUNT=Compte par défaut pour produits achetés (si non défini sur fiche produit) +COMPTA_PRODUCT_SOLD_ACCOUNT=Compte par défaut pour produits vendus (si non défini sur fiche produit) +COMPTA_SERVICE_BUY_ACCOUNT=Compte par défaut pour services achetés (si non défini sur fiche service) +COMPTA_SERVICE_SOLD_ACCOUNT1=Compte par défaut pour services vendus (si non défini sur fiche service) +COMPTA_VAT_ACCOUNT=Compte par défaut pour TVA (si non défini dans dictionnaire) +COMPTA_ACCOUNT_CUSTOMER=Compte client par défaut (si non défini sur fiche tiers) +COMPTA_ACCOUNT_SUPPLIER=Compte fournisseur par défaut (si non défini sur fiche tiers) \ No newline at end of file