dolibarr 21.0.0-alpha
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 *
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
25// Load Dolibarr environment
26require '../main.inc.php';
27require_once DOL_DOCUMENT_ROOT . '/core/lib/asset.lib.php';
28require_once DOL_DOCUMENT_ROOT . '/asset/class/asset.class.php';
29require_once DOL_DOCUMENT_ROOT . '/asset/class/assetaccountancycodes.class.php';
30require_once DOL_DOCUMENT_ROOT . '/asset/class/assetdepreciationoptions.class.php';
31
32// Load translation files required by the page
33$langs->loadLangs(array("assets", "companies"));
34
35// Get parameters
36$id = GETPOSTINT('id');
37$ref = GETPOST('ref', 'alpha');
38$action = GETPOST('action', 'aZ09');
39$cancel = GETPOST('cancel', 'aZ09');
40$backtopage = GETPOST('backtopage', 'alpha');
41$backtopageforcancel = GETPOST('backtopageforcancel', 'alpha');
42
43// Initialize a technical objects
44$object = new Asset($db);
45$assetaccountancycodes = new AssetAccountancyCodes($db);
46$assetdepreciationoptions = new AssetDepreciationOptions($db);
47$extrafields = new ExtraFields($db);
48$diroutputmassaction = $conf->asset->dir_output . '/temp/massgeneration/' . $user->id;
49$hookmanager->initHooks(array('assetaccountancycodes', 'globalcard')); // Note that conf->hooks_modules contains array
50// Fetch optionals attributes and labels
51$extrafields->fetch_name_optionals_label($object->table_element);
52
53// Load object
54include DOL_DOCUMENT_ROOT . '/core/actions_fetchobject.inc.php'; // Must be 'include', not 'include_once'. Include fetch and fetch_thirdparty but not fetch_optionals
55if ($id > 0 || !empty($ref)) {
56 $upload_dir = $conf->asset->multidir_output[isset($object->entity) ? $object->entity : 1] . "/" . $object->id;
57}
58
59$permissiontoadd = $user->hasRight('asset', 'write'); // Used by the include of actions_addupdatedelete.inc.php
60
61// Security check (enable the most restrictive one)
62if ($user->socid > 0) {
64}
65$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0);
66restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft);
67if (!isModEnabled('asset')) {
69}
70
71$object->asset_depreciation_options = &$assetdepreciationoptions;
72$object->asset_accountancy_codes = &$assetaccountancycodes;
73if (!empty($id)) {
74 $depreciationoptionserrors = $assetdepreciationoptions->fetchDeprecationOptions($object->id, 0);
75 $accountancycodeserrors = $assetaccountancycodes->fetchAccountancyCodes($object->id, 0);
76
77 if ($depreciationoptionserrors < 0) {
78 setEventMessages($assetdepreciationoptions->error, $assetdepreciationoptions->errors, 'errors');
79 }
80 if ($accountancycodeserrors < 0) {
81 setEventMessages($assetaccountancycodes->error, $assetaccountancycodes->errors, 'errors');
82 }
83}
84
85
86/*
87 * Actions
88 */
89
90$reshook = $hookmanager->executeHooks('doActions', array(), $object, $action); // Note that $action and $object may have been modified by some hooks
91if ($reshook < 0) {
92 setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
93}
94if (empty($reshook)) {
95 $backurlforlist = DOL_URL_ROOT.'/asset/list.php';
96
97 if (empty($backtopage) || ($cancel && empty($id))) {
98 if (empty($backtopage) || ($cancel && strpos($backtopage, '__ID__'))) {
99 if (empty($id) && (($action != 'add' && $action != 'create') || $cancel)) {
100 $backtopage = $backurlforlist;
101 } else {
102 $backtopage = DOL_URL_ROOT.'/asset/accountancy_codes.php?id='.((!empty($id) && $id > 0) ? $id : '__ID__');
103 }
104 }
105 }
106
107 if ($cancel) {
108 /*var_dump($cancel);var_dump($backtopage);var_dump($backtopageforcancel);exit;*/
109 if (!empty($backtopageforcancel)) {
110 header("Location: ".$backtopageforcancel);
111 exit;
112 } elseif (!empty($backtopage)) {
113 header("Location: ".$backtopage);
114 exit;
115 }
116 $action = '';
117 }
118
119 if ($action == "update" && $permissiontoadd) {
120 $assetaccountancycodes->setAccountancyCodesFromPost();
121
122 $result = $assetaccountancycodes->updateAccountancyCodes($user, $object->id);
123 if ($result < 0) {
124 setEventMessages($assetaccountancycodes->error, $assetaccountancycodes->errors, 'errors');
125 $action = 'edit';
126 } else {
127 setEventMessage($langs->trans('RecordSaved'));
128 header("Location: " . $_SERVER["PHP_SELF"] . '?id=' . $object->id);
129 exit;
130 }
131 }
132}
133
134
135/*
136 * View
137 */
138
139$form = new Form($db);
140
141$help_url = '';
142llxHeader('', $langs->trans('Asset'), $help_url, '', 0, 0, '', '', '', 'mod-asset page-card_accountancy');
143
144if ($id > 0 || !empty($ref)) {
145 $head = assetPrepareHead($object);
146 print dol_get_fiche_head($head, 'accountancy_codes', $langs->trans("Asset"), -1, $object->picto);
147
148 // Object card
149 // ------------------------------------------------------------
150 $linkback = '<a href="' . DOL_URL_ROOT . '/asset/list.php?restore_lastsearch_values=1' . (!empty($socid) ? '&socid=' . $socid : '') . '">' . $langs->trans("BackToList") . '</a>';
151
152 $morehtmlref = '<div class="refidno">';
153 $morehtmlref .= '</div>';
154
155 dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
156
157 print '<div class="fichecenter">';
158 print '<div class="underbanner clearboth"></div>';
159 print '</div>';
160
161 if ($action == 'edit') {
162 print '<form method="POST" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '">';
163 print '<input type="hidden" name="token" value="' . newToken() . '">';
164 print '<input type="hidden" name="action" value="update">';
165 if ($backtopage) {
166 print '<input type="hidden" name="backtopage" value="' . $backtopage . '">';
167 }
168 if ($backtopageforcancel) {
169 print '<input type="hidden" name="backtopageforcancel" value="' . $backtopageforcancel . '">';
170 }
171
172 print dol_get_fiche_head(array(), '');
173
174 include DOL_DOCUMENT_ROOT . '/asset/tpl/accountancy_codes_edit.tpl.php';
175
176 print dol_get_fiche_end();
177
178 print $form->buttonsSaveCancel();
179
180 print '</form>';
181 } else {
182 include DOL_DOCUMENT_ROOT . '/asset/tpl/accountancy_codes_view.tpl.php';
183 }
184
185 print dol_get_fiche_end();
186
187 if ($action != 'edit') {
188 print '<div class="tabsAction">' . "\n";
189 $parameters = array();
190 $reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
191 if ($reshook < 0) {
192 setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
193 }
194
195 if (empty($reshook)) {
196 if ($object->status == $object::STATUS_DRAFT/* && !empty($object->enabled_modes)*/) {
197 print dolGetButtonAction($langs->trans('Modify'), '', 'default', $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=edit&token=' . newToken(), '', $permissiontoadd);
198 }
199 }
200 print '</div>' . "\n";
201 }
202}
203
204// End of page
205llxFooter();
206$db->close();
$id
Definition account.php:39
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
Definition card.php:58
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:70
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.
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.