dolibarr 21.0.0-beta
accountancy_codes.php
1<?php
2/* Copyright (C) 2007-2017 Laurent Destailleur <eldy@users.sourceforge.net>
3 * Copyright (C) 2018 Alexandre Spangaro <aspangaro@open-dsi.fr>
4 * Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <https://www.gnu.org/licenses/>.
18 */
19
26// Load Dolibarr environment
27require '../main.inc.php';
28require_once DOL_DOCUMENT_ROOT . '/core/lib/asset.lib.php';
29require_once DOL_DOCUMENT_ROOT . '/asset/class/asset.class.php';
30require_once DOL_DOCUMENT_ROOT . '/asset/class/assetaccountancycodes.class.php';
31require_once DOL_DOCUMENT_ROOT . '/asset/class/assetdepreciationoptions.class.php';
32
41// Load translation files required by the page
42$langs->loadLangs(array("assets", "companies"));
43
44// Get parameters
45$id = GETPOSTINT('id');
46$ref = GETPOST('ref', 'alpha');
47$action = GETPOST('action', 'aZ09');
48$cancel = GETPOST('cancel', 'aZ09');
49$backtopage = GETPOST('backtopage', 'alpha');
50$backtopageforcancel = GETPOST('backtopageforcancel', 'alpha');
51
52// Initialize a technical objects
53$object = new Asset($db);
54$assetaccountancycodes = new AssetAccountancyCodes($db);
55$assetdepreciationoptions = new AssetDepreciationOptions($db);
56$extrafields = new ExtraFields($db);
57$diroutputmassaction = $conf->asset->dir_output . '/temp/massgeneration/' . $user->id;
58$hookmanager->initHooks(array('assetaccountancycodes', 'globalcard')); // Note that conf->hooks_modules contains array
59// Fetch optionals attributes and labels
60$extrafields->fetch_name_optionals_label($object->table_element);
61
62// Load object
63include DOL_DOCUMENT_ROOT . '/core/actions_fetchobject.inc.php'; // Must be 'include', not 'include_once'. Include fetch and fetch_thirdparty but not fetch_optionals
64if ($id > 0 || !empty($ref)) {
65 $upload_dir = $conf->asset->multidir_output[isset($object->entity) ? $object->entity : 1] . "/" . $object->id;
66}
67
68$permissiontoadd = $user->hasRight('asset', 'write'); // Used by the include of actions_addupdatedelete.inc.php
69
70// Security check (enable the most restrictive one)
71if ($user->socid > 0) {
73}
74$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0);
75restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft);
76if (!isModEnabled('asset')) {
78}
79
80$object->asset_depreciation_options = &$assetdepreciationoptions;
81$object->asset_accountancy_codes = &$assetaccountancycodes;
82if (!empty($id)) {
83 $depreciationoptionserrors = $assetdepreciationoptions->fetchDeprecationOptions($object->id, 0);
84 $accountancycodeserrors = $assetaccountancycodes->fetchAccountancyCodes($object->id, 0);
85
86 if ($depreciationoptionserrors < 0) {
87 setEventMessages($assetdepreciationoptions->error, $assetdepreciationoptions->errors, 'errors');
88 }
89 if ($accountancycodeserrors < 0) {
90 setEventMessages($assetaccountancycodes->error, $assetaccountancycodes->errors, 'errors');
91 }
92}
93
94
95/*
96 * Actions
97 */
98
99$reshook = $hookmanager->executeHooks('doActions', array(), $object, $action); // Note that $action and $object may have been modified by some hooks
100if ($reshook < 0) {
101 setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
102}
103if (empty($reshook)) {
104 $backurlforlist = DOL_URL_ROOT.'/asset/list.php';
105
106 if (empty($backtopage) || ($cancel && empty($id))) {
107 if (empty($backtopage) || ($cancel && strpos($backtopage, '__ID__'))) {
108 if (empty($id) && (($action != 'add' && $action != 'create') || $cancel)) {
109 $backtopage = $backurlforlist;
110 } else {
111 $backtopage = DOL_URL_ROOT.'/asset/accountancy_codes.php?id='.((!empty($id) && $id > 0) ? $id : '__ID__');
112 }
113 }
114 }
115
116 if ($cancel) {
117 /*var_dump($cancel);var_dump($backtopage);var_dump($backtopageforcancel);exit;*/
118 if (!empty($backtopageforcancel)) {
119 header("Location: ".$backtopageforcancel);
120 exit;
121 } elseif (!empty($backtopage)) {
122 header("Location: ".$backtopage);
123 exit;
124 }
125 $action = '';
126 }
127
128 if ($action == "update" && $permissiontoadd) {
129 $assetaccountancycodes->setAccountancyCodesFromPost();
130
131 $result = $assetaccountancycodes->updateAccountancyCodes($user, $object->id);
132 if ($result < 0) {
133 setEventMessages($assetaccountancycodes->error, $assetaccountancycodes->errors, 'errors');
134 $action = 'edit';
135 } else {
136 setEventMessage($langs->trans('RecordSaved'));
137 header("Location: " . $_SERVER["PHP_SELF"] . '?id=' . $object->id);
138 exit;
139 }
140 }
141}
142
143
144/*
145 * View
146 */
147
148$form = new Form($db);
149
150$help_url = '';
151llxHeader('', $langs->trans('Asset'), $help_url, '', 0, 0, '', '', '', 'mod-asset page-card_accountancy');
152
153if ($id > 0 || !empty($ref)) {
154 $head = assetPrepareHead($object);
155 print dol_get_fiche_head($head, 'accountancy_codes', $langs->trans("Asset"), -1, $object->picto);
156
157 // Object card
158 // ------------------------------------------------------------
159 $linkback = '<a href="' . DOL_URL_ROOT . '/asset/list.php?restore_lastsearch_values=1' . (!empty($socid) ? '&socid=' . $socid : '') . '">' . $langs->trans("BackToList") . '</a>';
160
161 $morehtmlref = '<div class="refidno">';
162 $morehtmlref .= '</div>';
163
164 dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
165
166 print '<div class="fichecenter">';
167 print '<div class="underbanner clearboth"></div>';
168 print '</div>';
169
170 if ($action == 'edit') {
171 print '<form method="POST" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '">';
172 print '<input type="hidden" name="token" value="' . newToken() . '">';
173 print '<input type="hidden" name="action" value="update">';
174 if ($backtopage) {
175 print '<input type="hidden" name="backtopage" value="' . $backtopage . '">';
176 }
177 if ($backtopageforcancel) {
178 print '<input type="hidden" name="backtopageforcancel" value="' . $backtopageforcancel . '">';
179 }
180
181 print dol_get_fiche_head(array(), '');
182
183 include DOL_DOCUMENT_ROOT . '/asset/tpl/accountancy_codes_edit.tpl.php';
184
185 print dol_get_fiche_end();
186
187 print $form->buttonsSaveCancel();
188
189 print '</form>';
190 } else {
191 include DOL_DOCUMENT_ROOT . '/asset/tpl/accountancy_codes_view.tpl.php';
192 }
193
194 print dol_get_fiche_end();
195
196 if ($action != 'edit') {
197 print '<div class="tabsAction">' . "\n";
198 $parameters = array();
199 $reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
200 if ($reshook < 0) {
201 setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
202 }
203
204 if (empty($reshook)) {
205 if ($object->status == $object::STATUS_DRAFT/* && !empty($object->enabled_modes)*/) {
206 print dolGetButtonAction($langs->trans('Modify'), '', 'default', $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=edit&token=' . newToken(), '', $permissiontoadd);
207 }
208 }
209 print '</div>' . "\n";
210 }
211}
212
213// End of page
214llxFooter();
215$db->close();
$id
Definition account.php:48
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
Definition card.php:66
assetPrepareHead(Asset $object)
Prepare array of tabs for Asset.
Definition asset.lib.php:88
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $morecssonbody='', $replacemainareaby='', $disablenofollow=0, $disablenoindex=0)
Empty header.
Definition wrapper.php:71
Class for AssetAccountancyCodes.
Class for AssetDepreciationOptions.
Class for Asset.
Class to manage standard extra fields.
Class to manage generation of HTML components Only common components must be here.
llxFooter()
Footer empty.
Definition document.php:107
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0)
Show tabs of a record.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
setEventMessage($mesgs, $style='mesgs', $noduplicate=0, $attop=0)
Set event message in dol_events session object.
newToken()
Return the value of token currently saved into session with name 'newtoken'.
dolGetButtonAction($label, $text='', $actionType='default', $url='', $id='', $userRight=1, $params=array())
Function dolGetButtonAction.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
global $conf
The following vars must be defined: $type2label $form $conf, $lang, The following vars may also be de...
Definition member.php:79
restrictedArea(User $user, $features, $object=0, $tableandshare='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid', $isdraft=0, $mode=0)
Check permissions of a user to show a page and an object.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.