dolibarr  20.0.0-alpha
closure.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) 2019-2024 Alexandre Spangaro <aspangaro@easya.solutions>
3  * Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program. If not, see <https://www.gnu.org/licenses/>.
17  *
18  */
19 
26 // Load Dolibarr environment
27 require '../../main.inc.php';
28 require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
29 require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
30 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
31 
32 // Load translation files required by the page
33 $langs->loadLangs(array("compta", "admin", "accountancy"));
34 
35 // Security check
36 if (!$user->hasRight('accounting', 'chartofaccount')) {
38 }
39 
40 $action = GETPOST('action', 'aZ09');
41 
42 
43 $list_account_main = array(
44  'ACCOUNTING_RESULT_PROFIT',
45  'ACCOUNTING_RESULT_LOSS'
46 );
47 
48 /*
49  * Actions
50  */
51 
52 if ($action == 'update') {
53  $error = 0;
54 
55  $defaultjournal = GETPOST('ACCOUNTING_CLOSURE_DEFAULT_JOURNAL', 'alpha');
56 
57  if (!empty($defaultjournal)) {
58  if (!dolibarr_set_const($db, 'ACCOUNTING_CLOSURE_DEFAULT_JOURNAL', $defaultjournal, 'chaine', 0, '', $conf->entity)) {
59  $error++;
60  }
61  } else {
62  $error++;
63  }
64 
65  $accountinggroupsusedforbalancesheetaccount = GETPOST('ACCOUNTING_CLOSURE_ACCOUNTING_GROUPS_USED_FOR_BALANCE_SHEET_ACCOUNT', 'alphanohtml');
66  if (!empty($accountinggroupsusedforbalancesheetaccount)) {
67  if (!dolibarr_set_const($db, 'ACCOUNTING_CLOSURE_ACCOUNTING_GROUPS_USED_FOR_BALANCE_SHEET_ACCOUNT', $accountinggroupsusedforbalancesheetaccount, 'chaine', 0, '', $conf->entity)) {
68  $error++;
69  }
70  } else {
71  $error++;
72  }
73 
74  $accountinggroupsusedforincomestatement = GETPOST('ACCOUNTING_CLOSURE_ACCOUNTING_GROUPS_USED_FOR_INCOME_STATEMENT', 'alpha');
75  if (!empty($accountinggroupsusedforincomestatement)) {
76  if (!dolibarr_set_const($db, 'ACCOUNTING_CLOSURE_ACCOUNTING_GROUPS_USED_FOR_INCOME_STATEMENT', $accountinggroupsusedforincomestatement, 'chaine', 0, '', $conf->entity)) {
77  $error++;
78  }
79  } else {
80  $error++;
81  }
82 
83  foreach ($list_account_main as $constname) {
84  $constvalue = GETPOST($constname, 'alpha');
85  if (!dolibarr_set_const($db, $constname, $constvalue, 'chaine', 0, '', $conf->entity)) {
86  $error++;
87  }
88  }
89 
90  if (!$error) {
91  setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
92  } else {
93  setEventMessages($langs->trans("Error"), null, 'errors');
94  }
95 }
96 
97 
98 /*
99  * View
100  */
101 
102 $form = new Form($db);
103 $formaccounting = new FormAccounting($db);
104 
105 $title = $langs->trans('Closure');
106 
107 $help_url = 'EN:Module_Double_Entry_Accounting#Setup|FR:Module_Comptabilit&eacute;_en_Partie_Double#Configuration';
108 
109 llxHeader('', $title, $help_url);
110 
111 $linkback = '';
112 print load_fiche_titre($langs->trans('MenuClosureAccounts'), $linkback, 'title_accountancy');
113 
114 print '<span class="opacitymedium">'.$langs->trans("DefaultClosureDesc").'</span><br>';
115 print '<br>';
116 
117 print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
118 print '<input type="hidden" name="token" value="'.newToken().'">';
119 print '<input type="hidden" name="action" value="update">';
120 
121 // Define main accounts for closure
122 print '<table class="noborder centpercent">';
123 
124 foreach ($list_account_main as $key) {
125  print '<tr class="oddeven value">';
126  // Param
127  $label = $langs->trans($key);
128  $keydesc = $key.'_Desc';
129 
130  $htmltext = $langs->trans($keydesc);
131  print '<td class="fieldrequired" width="50%">';
132  print $form->textwithpicto($label, $htmltext);
133  print '</td>';
134  // Value
135  print '<td>'; // Do not force class=right, or it align also the content of the select box
136  print $formaccounting->select_account(getDolGlobalString($key), $key, 1, array(), 1, 1);
137  print '</td>';
138  print '</tr>';
139 }
140 
141 // Journal
142 print '<tr class="oddeven">';
143 print '<td class="fieldrequired">'.$langs->trans("ACCOUNTING_CLOSURE_DEFAULT_JOURNAL").'</td>';
144 print '<td>';
145 $defaultjournal = getDolGlobalString('ACCOUNTING_CLOSURE_DEFAULT_JOURNAL');
146 print $formaccounting->select_journal($defaultjournal, "ACCOUNTING_CLOSURE_DEFAULT_JOURNAL", 9, 1, 0, 0);
147 print '</td></tr>';
148 
149 // Accounting groups used for the balance sheet account
150 print '<tr class="oddeven">';
151 print '<td class="fieldrequired">'.$langs->trans("ACCOUNTING_CLOSURE_ACCOUNTING_GROUPS_USED_FOR_BALANCE_SHEET_ACCOUNT").'</td>';
152 print '<td>';
153 print '<input type="text" size="100" id="ACCOUNTING_CLOSURE_ACCOUNTING_GROUPS_USED_FOR_BALANCE_SHEET_ACCOUNT" name="ACCOUNTING_CLOSURE_ACCOUNTING_GROUPS_USED_FOR_BALANCE_SHEET_ACCOUNT" value="' . dol_escape_htmltag(getDolGlobalString('ACCOUNTING_CLOSURE_ACCOUNTING_GROUPS_USED_FOR_BALANCE_SHEET_ACCOUNT')). '">';
154 print '</td></tr>';
155 
156 // Accounting groups used for the income statement
157 print '<tr class="oddeven">';
158 print '<td class="fieldrequired">'.$langs->trans("ACCOUNTING_CLOSURE_ACCOUNTING_GROUPS_USED_FOR_INCOME_STATEMENT").'</td>';
159 print '<td>';
160 print '<input type="text" size="100" id="ACCOUNTING_CLOSURE_ACCOUNTING_GROUPS_USED_FOR_INCOME_STATEMENT" name="ACCOUNTING_CLOSURE_ACCOUNTING_GROUPS_USED_FOR_INCOME_STATEMENT" value="' . dol_escape_htmltag(getDolGlobalString('ACCOUNTING_CLOSURE_ACCOUNTING_GROUPS_USED_FOR_INCOME_STATEMENT')). '">';
161 print '</td></tr>';
162 
163 print "</table>\n";
164 
165 print '<div class="center"><input type="submit" class="button button-edit" name="button" value="'.$langs->trans('Modify').'"></div>';
166 
167 print '</form>';
168 
169 // End of page
170 llxFooter();
171 $db->close();
if(GETPOST('button_removefilter_x', 'alpha')||GETPOST('button_removefilter.x', 'alpha')||GETPOST('button_removefilter', 'alpha')) if(GETPOST('button_search_x', 'alpha')||GETPOST('button_search.x', 'alpha')||GETPOST('button_search', 'alpha')) if($action=="save" &&empty($cancel)) $help_url
View.
Definition: agenda.php:118
dolibarr_set_const($db, $name, $value, $type='chaine', $visible=0, $note='', $entity=1)
Insert a parameter (key,value) into database (delete old key then insert it again).
Definition: admin.lib.php:655
if(!defined('NOREQUIRESOC')) if(!defined('NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined('NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined('NOREQUIREAJAX')) llxHeader()
Empty header.
Definition: wrapper.php:56
llxFooter()
Empty footer.
Definition: wrapper.php:70
Class to manage generation of HTML components for accounting management.
Class to manage generation of HTML components Only common components must be here.
if($cancel &&! $id) if($action=='add' &&! $cancel) if($action=='delete') if($id) $form
Actions.
Definition: card.php:143
load_fiche_titre($titre, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0)
Set event messages in dol_events session object.
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.