diff --git a/htdocs/admin/accounting.php b/htdocs/admin/accounting.php index 4928aa2a172..571fc5a5672 100644 --- a/htdocs/admin/accounting.php +++ b/htdocs/admin/accounting.php @@ -1,6 +1,9 @@ - * Copyright (C) 2004-2009 Laurent Destailleur + * 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 @@ -17,9 +20,9 @@ */ /** - * \file htdocs/admin/accounting.php - * \ingroup accounting - * \brief Page de configuration du module comptabilite expert + * \file htdocs/admin/accounting.php + * \ingroup compta + * \brief Page to setup accountancy module */ require '../main.inc.php'; @@ -29,43 +32,81 @@ $langs->load('admin'); $langs->load('compta'); if (!$user->admin) - accessforbidden(); - +accessforbidden(); +$action = GETPOST('action','alpha'); $compta_mode = defined('COMPTA_MODE')?COMPTA_MODE:'RECETTES-DEPENSES'; -if ($_POST['action'] == 'setcomptamode') +if ($action == 'setcomptamode') { - $compta_mode = $_POST['compta_mode']; - if (! dolibarr_set_const($db, 'COMPTA_MODE', $compta_mode,'chaine',0,'',$conf->entity)) { print $db->error(); } + $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").""; + } } -$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 ($action == 'delete') { if (! dolibarr_del_const($db, $_GET['constname'],$conf->entity)); { - print $db->error(); + print $db->error(); } -} - +}*/ /* - * View + * Affichage page */ llxHeader(); @@ -81,92 +122,162 @@ print '
'; print ''; // Cas du parametre COMPTA_MODE -print ''; +print ''; print ''; print ''; print ''; print ''; -print ''; +print ''; print "\n"; print ''; -print '\n"; +print '\n"; print ''; -print '\n"; +print '\n"; print ''; print "
'.$langs->trans('OptionMode').''.$langs->trans('Description').'
'.$langs->trans('OptionModeTrue').''.nl2br($langs->trans('OptionModeTrueDesc'))."
'.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').''.$langs->trans('OptionModeVirtualDesc')."
'.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 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')"; +// 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; - $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 ''; - + $list[$obj->name]=$obj->value; $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"; - } +$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 6f45e70bc98..6f3fc1a52a0 100644 --- a/htdocs/admin/compta.php +++ b/htdocs/admin/compta.php @@ -2,7 +2,7 @@ /* 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 * * 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 diff --git a/htdocs/core/modules/modAccounting.class.php b/htdocs/core/modules/modAccounting.class.php index 65e93734777..84f13e501db 100644 --- a/htdocs/core/modules/modAccounting.class.php +++ b/htdocs/core/modules/modAccounting.class.php @@ -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