From 3e4fd761a597d6d90ab8b0887cbc0ede88a7a524 Mon Sep 17 00:00:00 2001 From: Spangaro Alexandre Date: Sun, 30 Sep 2012 11:52:15 +0200 Subject: [PATCH 1/4] Add function to choose chart of accounts --- htdocs/admin/accounting.php | 172 -------------------- htdocs/admin/compta.php | 79 ++++++++- htdocs/core/modules/modAccounting.class.php | 74 ++++----- htdocs/langs/fr_FR/admin.lang | 5 + htdocs/langs/fr_FR/compta.lang | 2 +- 5 files changed, 121 insertions(+), 211 deletions(-) delete mode 100644 htdocs/admin/accounting.php diff --git a/htdocs/admin/accounting.php b/htdocs/admin/accounting.php deleted file mode 100644 index 4928aa2a172..00000000000 --- a/htdocs/admin/accounting.php +++ /dev/null @@ -1,172 +0,0 @@ - - * Copyright (C) 2004-2009 Laurent Destailleur - * - * 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, see . - */ - -/** - * \file htdocs/admin/accounting.php - * \ingroup accounting - * \brief Page de configuration du module comptabilite expert - */ - -require '../main.inc.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; - -$langs->load('admin'); -$langs->load('compta'); - -if (!$user->admin) - accessforbidden(); - - - -$compta_mode = defined('COMPTA_MODE')?COMPTA_MODE:'RECETTES-DEPENSES'; - -if ($_POST['action'] == 'setcomptamode') -{ - $compta_mode = $_POST['compta_mode']; - if (! dolibarr_set_const($db, 'COMPTA_MODE', $compta_mode,'chaine',0,'',$conf->entity)) { print $db->error(); } -} - - -$form = new Form($db); -$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)); - { - print $db->error(); - } -} - - -if ($_GET['action'] == 'delete') -{ - if (! dolibarr_del_const($db, $_GET['constname'],$conf->entity)); - { - print $db->error(); - } -} - - -/* - * View - */ - -llxHeader(); - -$form=new Form($db); - -$linkback=''.$langs->trans("BackToModuleList").''; -print_fiche_titre($langs->trans('ComptaSetup'),$linkback,'setup'); - - -print '
'; - -print ''; - -// Cas du parametre COMPTA_MODE -print ''; -print ''; -print ''; -print ''; -print ''; -print ''; -print "\n"; -print ''; -print '\n"; -print ''; -print '\n"; -print ''; - -print "
'.$langs->trans('OptionMode').''.$langs->trans('Description').'
'.$langs->trans('OptionModeTrue').''.nl2br($langs->trans('OptionModeTrueDesc'))."
'.$langs->trans('OptionModeVirtual').''.$langs->trans('OptionModeVirtualDesc')."
\n"; - -print "
\n"; - -// Cas des autres param�tres COMPTA_* -/* -$sql ="SELECT rowid, name, value, type, note"; -$sql.=" FROM ".MAIN_DB_PREFIX."const"; -$sql.=" WHERE name like 'COMPTA_%' and name not in ('COMPTA_MODE')"; -$result = $db->query($sql); -if ($result) -{ - $num = $db->num_rows($result); - $i = 0; - $var=true; - - if ($num) - { - print ''; - print ''; - print ''; - print "\n"; - } - - while ($i < $num) - { - $obj = $db->fetch_object($result); - $var=!$var; - - print ''; - print ''; - print ''; - print ''; - print ''; - - print ''; - print '\n"; - - print '\n"; - - print ''; - - $i++; - } - - if ($num) - { - print "
'.$langs->trans('OtherOptions').'
'.stripslashes(nl2br($obj->note))."'; - if ($obj->type == 'yesno') - { - print $form->selectyesno('constvalue',$obj->value,1); - } - elseif ($obj->type == 'texte') - { - print '\n"; - } - else - { - print ''; - } - print ''; - print '   '; - print "
\n"; - } -} -*/ - - -$db->close(); - - -llxFooter(); - -?> diff --git a/htdocs/admin/compta.php b/htdocs/admin/compta.php index 6f45e70bc98..407dca5200d 100644 --- a/htdocs/admin/compta.php +++ b/htdocs/admin/compta.php @@ -2,7 +2,8 @@ /* Copyright (C) 2004 Rodolphe Quiedeville * Copyright (C) 2004-2008 Laurent Destailleur * Copyright (C) 2005-2009 Regis Houssin - * Copyright (C) 2011-2012 Juanjo Menent + * Copyright (C) 2011-2012 Juanjo Menent + * Copyright (C) 2011-2012 Alexandre Spangaro * * 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 @@ -56,6 +57,26 @@ if ($action == 'setcomptamode') } +$chartofaccounts = defined('CHARTOFACCOUNTS')?CHARTOFACCOUNTS:''; + +if ($action == 'setchart') +{ + $chartofaccounts = GETPOST('chartofaccounts','alpha'); + + $res = dolibarr_set_const($db, 'CHARTOFACCOUNTS', $chartofaccounts,'chaine',0,'',$conf->entity); + + if (! $res > 0) $error++; + + if (! $error) + { + $mesg = "".$langs->trans("SetupSaved").""; + } + else + { + $mesg = "".$langs->trans("Error").""; + } +} + if ($action == 'update' || $action == 'add') { $constname = GETPOST('constname','alpha'); @@ -130,6 +151,62 @@ print ''; print "\n"; +/* + * Define Chart of accounts + * + */ +if (! empty($conf->global->ACCOUNTING_SELECTCHART) && ! empty($conf->accounting->enabled)) +{ + print '
'; + print_titre($langs->trans("Definechartofaccounts")); + + print '
'; + print ''; + + print ''; + $var=True; + + print ''; + print ''; + print ''; + print "\n"; + $var=!$var; + print ''; + print ""; + print ""; + print "
'; + print ''; + print $langs->trans("Chartofaccounts").'
".$langs->trans("Selectchartofaccounts").""; + print '"; + print "
"; + print "
"; +} + print "
\n"; // Cas des autres parametres COMPTA_* diff --git a/htdocs/core/modules/modAccounting.class.php b/htdocs/core/modules/modAccounting.class.php index 65e93734777..38a04db07f1 100644 --- a/htdocs/core/modules/modAccounting.class.php +++ b/htdocs/core/modules/modAccounting.class.php @@ -61,7 +61,7 @@ class modAccounting extends DolibarrModules $this->special = 0; // Config pages - $this->config_page_url = array("accounting.php"); + $this->config_page_url = array("compta.php"); // Dependancies $this->depends = array("modFacture","modBanque","modTax"); @@ -85,47 +85,47 @@ class modAccounting extends DolibarrModules $this->rights = array(); $this->rights_class = 'accounting'; - $this->rights[1][0] = 50401; - $this->rights[1][1] = 'Lire le plan de compte'; - $this->rights[1][2] = 'r'; - $this->rights[1][3] = 1; - $this->rights[1][4] = 'plancompte'; - $this->rights[1][5] = 'lire'; + $this->rights[$r][0] = 50401; + $this->rights[$r][1] = 'Lire le plan de compte'; + $this->rights[$r][2] = 'r'; + $this->rights[$r][3] = 1; + $this->rights[$r][4] = 'plancompte'; + $this->rights[$r][5] = 'lire'; - $this->rights[2][0] = 50402; - $this->rights[2][1] = 'Creer/modifier un plan de compte'; - $this->rights[2][2] = 'w'; - $this->rights[2][3] = 0; - $this->rights[2][4] = 'plancompte'; - $this->rights[2][5] = 'creer'; + $this->rights[$r][0] = 50402; + $this->rights[$r][1] = 'Creer/modifier un plan de compte'; + $this->rights[$r][2] = 'w'; + $this->rights[$r][3] = 0; + $this->rights[$r][4] = 'plancompte'; + $this->rights[$r][5] = 'creer'; - $this->rights[3][0] = 50403; - $this->rights[3][1] = 'Cloturer plan de compte'; - $this->rights[3][2] = 'w'; - $this->rights[3][3] = 0; - $this->rights[3][4] = 'plancompte'; - $this->rights[3][5] = 'cloturer'; + $this->rights[$r][0] = 50403; + $this->rights[$r][1] = 'Cloturer plan de compte'; + $this->rights[$r][2] = 'w'; + $this->rights[$r][3] = 0; + $this->rights[$r][4] = 'plancompte'; + $this->rights[$r][5] = 'cloturer'; - $this->rights[4][0] = 50411; - $this->rights[4][1] = 'Lire les mouvements comptables'; - $this->rights[4][2] = 'r'; - $this->rights[4][3] = 1; - $this->rights[4][4] = 'mouvements'; - $this->rights[4][5] = 'lire'; + $this->rights[$r][0] = 50411; + $this->rights[$r][1] = 'Lire les mouvements comptables'; + $this->rights[$r][2] = 'r'; + $this->rights[$r][3] = 1; + $this->rights[$r][4] = 'mouvements'; + $this->rights[$r][5] = 'lire'; - $this->rights[5][0] = 50412; - $this->rights[5][1] = 'Creer/modifier/annuler les mouvements comptables'; - $this->rights[5][2] = 'w'; - $this->rights[5][3] = 0; - $this->rights[5][4] = 'mouvements'; - $this->rights[5][5] = 'creer'; + $this->rights[$r][0] = 50412; + $this->rights[$r][1] = 'Creer/modifier/annuler les mouvements comptables'; + $this->rights[$r][2] = 'w'; + $this->rights[$r][3] = 0; + $this->rights[$r][4] = 'mouvements'; + $this->rights[$r][5] = 'creer'; - $this->rights[6][0] = 50415; - $this->rights[6][1] = 'Lire CA, bilans, resultats, journaux, grands livres'; - $this->rights[6][2] = 'r'; - $this->rights[6][3] = 0; - $this->rights[6][4] = 'comptarapport'; - $this->rights[6][5] = 'lire'; + $this->rights[$r][0] = 50415; + $this->rights[$r][1] = 'Lire CA, bilans, resultats, journaux, grands livres'; + $this->rights[$r][2] = 'r'; + $this->rights[$r][3] = 0; + $this->rights[$r][4] = 'comptarapport'; + $this->rights[$r][5] = 'lire'; } diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang index 5fd957fe11b..98f2a9df43d 100644 --- a/htdocs/langs/fr_FR/admin.lang +++ b/htdocs/langs/fr_FR/admin.lang @@ -1355,3 +1355,8 @@ TestGeoIPResult=Test de conversion IP -> Pays ProjectsNumberingModules=Modèles de numérotation des références projets ProjectsSetup=Configuration du module Projets ProjectsModelModule=Modèles de document de rapport projets +#### Accountancy #### +Chartofaccounts=Plan comptable +Definechartofaccounts=Définir un plan comptable +Selectchartofaccounts=Sélection d'un plan comptable +DoNotSuggestChart=Ne pas suggérer de plan comptable diff --git a/htdocs/langs/fr_FR/compta.lang b/htdocs/langs/fr_FR/compta.lang index abc6603d4e6..ede4691ef72 100644 --- a/htdocs/langs/fr_FR/compta.lang +++ b/htdocs/langs/fr_FR/compta.lang @@ -159,4 +159,4 @@ RemainToDivide=Reste à répartir : WarningDepositsNotIncluded=Les factures d'accomptes ne sont pas encore prises en compte dans cette version avec ce module de comptabilité. Pcg_version=Version du plan Pcg_type=Classe de compte -Pcg_subtype=Sous classe de compte \ No newline at end of file +Pcg_subtype=Sous classe de compte From 8a99eedc6cb6655e4e1cb1fb3449d601511ea83a Mon Sep 17 00:00:00 2001 From: Spangaro Alexandre Date: Sun, 30 Sep 2012 14:40:31 +0200 Subject: [PATCH 2/4] Hum... Now it's work ! Little fix --- htdocs/admin/compta.php | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/htdocs/admin/compta.php b/htdocs/admin/compta.php index 407dca5200d..23e0ea845f1 100644 --- a/htdocs/admin/compta.php +++ b/htdocs/admin/compta.php @@ -57,8 +57,6 @@ if ($action == 'setcomptamode') } -$chartofaccounts = defined('CHARTOFACCOUNTS')?CHARTOFACCOUNTS:''; - if ($action == 'setchart') { $chartofaccounts = GETPOST('chartofaccounts','alpha'); @@ -176,7 +174,7 @@ if (! empty($conf->global->ACCOUNTING_SELECTCHART) && ! empty($conf->accounting- print ''; print "".$langs->trans("Selectchartofaccounts").""; print ""; - print ''; print ''; $sql = "SELECT rowid, pcg_version, fk_pays, label, active"; @@ -196,7 +194,7 @@ if (! empty($conf->global->ACCOUNTING_SELECTCHART) && ! empty($conf->accounting- print ''; + print '>'.$row[1].' - '.$row[3].''; $i++; } From 5c56bd629ba8e46d58720e7ac4ec2bae4a6b9b19 Mon Sep 17 00:00:00 2001 From: Spangaro Alexandre Date: Sun, 30 Sep 2012 17:10:41 +0200 Subject: [PATCH 3/4] Fix: add country in request --- htdocs/admin/compta.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/admin/compta.php b/htdocs/admin/compta.php index 23e0ea845f1..33ebec240b1 100644 --- a/htdocs/admin/compta.php +++ b/htdocs/admin/compta.php @@ -180,7 +180,7 @@ if (! empty($conf->global->ACCOUNTING_SELECTCHART) && ! empty($conf->accounting- $sql = "SELECT rowid, pcg_version, fk_pays, label, active"; $sql.= " FROM ".MAIN_DB_PREFIX."accountingsystem"; $sql.= " WHERE active = 1"; -// $sql.= " AND fk_pays = ".substr($conf->global->MAIN_INFO_SOCIETE_PAYS,0,1); Ne fonctionne pas avec un rowid pays > 9 + $sql.= " AND fk_pays = ".$mysoc->country_id; $var=True; $resql=$db->query($sql); if ($resql) From 3ae6117e16336e35ad4d9b18bc15bbf5cfd8cf90 Mon Sep 17 00:00:00 2001 From: Spangaro Alexandre Date: Tue, 2 Oct 2012 06:07:57 +0200 Subject: [PATCH 4/4] Reintegrate accounting.php in admin --- htdocs/admin/accounting.php | 283 ++++++++++++++++++++ htdocs/admin/compta.php | 75 ------ htdocs/core/modules/modAccounting.class.php | 2 +- 3 files changed, 284 insertions(+), 76 deletions(-) create mode 100644 htdocs/admin/accounting.php diff --git a/htdocs/admin/accounting.php b/htdocs/admin/accounting.php new file mode 100644 index 00000000000..571fc5a5672 --- /dev/null +++ b/htdocs/admin/accounting.php @@ -0,0 +1,283 @@ + + * Copyright (C) 2004-2008 Laurent Destailleur + * Copyright (C) 2005-2009 Regis Houssin + * Copyright (C) 2011-2012 Juanjo Menent + * Copyright (C) 2011-2012 Alexandre Spangaro + * + * 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, see . + */ + +/** + * \file htdocs/admin/accounting.php + * \ingroup compta + * \brief Page to setup accountancy module + */ + +require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; + +$langs->load('admin'); +$langs->load('compta'); + +if (!$user->admin) +accessforbidden(); + +$action = GETPOST('action','alpha'); + +$compta_mode = defined('COMPTA_MODE')?COMPTA_MODE:'RECETTES-DEPENSES'; + +if ($action == 'setcomptamode') +{ + $compta_mode = GETPOST('compta_mode','alpha'); + + $res = dolibarr_set_const($db, 'COMPTA_MODE', $compta_mode,'chaine',0,'',$conf->entity); + + if (! $res > 0) $error++; + + if (! $error) + { + $mesg = "".$langs->trans("SetupSaved").""; + } + else + { + $mesg = "".$langs->trans("Error").""; + } + +} + +if ($action == 'setchart') +{ + $chartofaccounts = GETPOST('chartofaccounts','alpha'); + + $res = dolibarr_set_const($db, 'CHARTOFACCOUNTS', $chartofaccounts,'chaine',0,'',$conf->entity); + + if (! $res > 0) $error++; + + if (! $error) + { + $mesg = "".$langs->trans("SetupSaved").""; + } + else + { + $mesg = "".$langs->trans("Error").""; + } +} + +if ($action == 'update' || $action == 'add') +{ + $constname = GETPOST('constname','alpha'); + $constvalue = GETPOST('constvalue','alpha'); + $consttype = GETPOST('consttype','alpha'); + $constnote = GETPOST('constnote','alpha'); + + $res = dolibarr_set_const($db, $constname, $constvalue, $consttype, 0, $constnote, $conf->entity); + + if (! $res > 0) $error++; + + if (! $error) + { + $mesg = "".$langs->trans("SetupSaved").""; + } + else + { + $mesg = "".$langs->trans("Error").""; + } +} + + +/*if ($action == 'delete') +{ + if (! dolibarr_del_const($db, $_GET['constname'],$conf->entity)); + { + print $db->error(); + } +}*/ + +/* + * Affichage page + */ + +llxHeader(); + +$form=new Form($db); + +$linkback=''.$langs->trans("BackToModuleList").''; +print_fiche_titre($langs->trans('ComptaSetup'),$linkback,'setup'); + + +print '
'; + +print ''; + +// Cas du parametre COMPTA_MODE +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; +print "\n"; +print ''; +print '\n"; +print ''; +print '\n"; +print ''; + +print "
'.$langs->trans('OptionMode').''.$langs->trans('Description').'
'.$langs->trans('OptionModeTrue').''.nl2br($langs->trans('OptionModeTrueDesc')); +// Write info on way to count VAT +if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) +{ + // print "
\n"; + // print nl2br($langs->trans('OptionModeTrueInfoModuleComptabilite')); +} +else +{ + // print "
\n"; + // print nl2br($langs->trans('OptionModeTrueInfoExpert')); +} +print "
'.$langs->trans('OptionModeVirtual').''.nl2br($langs->trans('OptionModeVirtualDesc'))."
\n"; + +/* + * Define Chart of accounts + * + */ +if (! empty($conf->global->ACCOUNTING_SELECTCHART) && ! empty($conf->accounting->enabled)) +{ + print '
'; + print_titre($langs->trans("Definechartofaccounts")); + + print '
'; + print ''; + + print ''; + $var=True; + + print ''; + print ''; + print ''; + print "\n"; + $var=!$var; + print ''; + print ""; + print ""; + print "
'; + print ''; + print $langs->trans("Chartofaccounts").'
".$langs->trans("Selectchartofaccounts").""; + print '"; + print "
"; + print "
"; +} + +print "
\n"; + +// Cas des autres parametres COMPTA_* +$list=array('COMPTA_PRODUCT_BUY_ACCOUNT','COMPTA_PRODUCT_SOLD_ACCOUNT','COMPTA_SERVICE_BUY_ACCOUNT','COMPTA_SERVICE_SOLD_ACCOUNT', +'COMPTA_VAT_ACCOUNT','COMPTA_ACCOUNT_CUSTOMER','COMPTA_ACCOUNT_SUPPLIER' +); + +/*$sql = "SELECT rowid, name, value, type, note"; +$sql.= " FROM ".MAIN_DB_PREFIX."const"; +$sql.= " WHERE name LIKE 'COMPTA_%'"; +$sql.= " AND name NOT IN ('COMPTA_MODE')"; +$sql.= " AND entity = ".$conf->entity; +$result = $db->query($sql); +if ($result) +{ + $num = $db->num_rows($result); + $i = 0; + + while ($i < $num) + { + $obj = $db->fetch_object($result); + $var=!$var; + $list[$obj->name]=$obj->value; + $i++; + } +}*/ + +$num=count($list); +if ($num) +{ + print ''; + print ''; + print ''; + print "\n"; +} + +foreach ($list as $key) +{ + $var=!$var; + + print ''; + print ''; + print ''; + print ''; + print ''; + + print ''; + + // Param + $libelle = $langs->trans($key); + print '\n"; + + // Value + print '\n"; + print ''; + + $i++; +} + +if ($num) +{ + print "
'.$langs->trans('OtherOptions').'
'.$libelle; + //print ' ('.$key.')'; + print "'; + print ''; + print ''; + print '   '; + print "
\n"; +} + +dol_htmloutput_mesg($mesg); + +$db->close(); + +llxFooter(); +?> diff --git a/htdocs/admin/compta.php b/htdocs/admin/compta.php index 33ebec240b1..6f3fc1a52a0 100644 --- a/htdocs/admin/compta.php +++ b/htdocs/admin/compta.php @@ -3,7 +3,6 @@ * Copyright (C) 2004-2008 Laurent Destailleur * Copyright (C) 2005-2009 Regis Houssin * Copyright (C) 2011-2012 Juanjo Menent - * Copyright (C) 2011-2012 Alexandre Spangaro * * 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 @@ -57,24 +56,6 @@ if ($action == 'setcomptamode') } -if ($action == 'setchart') -{ - $chartofaccounts = GETPOST('chartofaccounts','alpha'); - - $res = dolibarr_set_const($db, 'CHARTOFACCOUNTS', $chartofaccounts,'chaine',0,'',$conf->entity); - - if (! $res > 0) $error++; - - if (! $error) - { - $mesg = "".$langs->trans("SetupSaved").""; - } - else - { - $mesg = "".$langs->trans("Error").""; - } -} - if ($action == 'update' || $action == 'add') { $constname = GETPOST('constname','alpha'); @@ -149,62 +130,6 @@ print ''; print "\n"; -/* - * Define Chart of accounts - * - */ -if (! empty($conf->global->ACCOUNTING_SELECTCHART) && ! empty($conf->accounting->enabled)) -{ - print '
'; - print_titre($langs->trans("Definechartofaccounts")); - - print '
'; - print ''; - - print ''; - $var=True; - - print ''; - print ''; - print ''; - print "\n"; - $var=!$var; - print ''; - print ""; - print ""; - print "
'; - print ''; - print $langs->trans("Chartofaccounts").'
".$langs->trans("Selectchartofaccounts").""; - print '"; - print "
"; - print "
"; -} - print "
\n"; // Cas des autres parametres COMPTA_* diff --git a/htdocs/core/modules/modAccounting.class.php b/htdocs/core/modules/modAccounting.class.php index 38a04db07f1..84f13e501db 100644 --- a/htdocs/core/modules/modAccounting.class.php +++ b/htdocs/core/modules/modAccounting.class.php @@ -61,7 +61,7 @@ class modAccounting extends DolibarrModules $this->special = 0; // Config pages - $this->config_page_url = array("compta.php"); + $this->config_page_url = array("accounting.php"); // Dependancies $this->depends = array("modFacture","modBanque","modTax");