* Copyright (C) 2018 Alexandre Spangaro * Copyright (C) 2024 MDW * * 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 3 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/asset/depreciation.php * \ingroup asset * \brief Card with depreciation on Asset */ // Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/asset.lib.php'; require_once DOL_DOCUMENT_ROOT . '/asset/class/asset.class.php'; require_once DOL_DOCUMENT_ROOT . '/asset/class/assetdepreciationoptions.class.php'; // Load translation files required by the page $langs->loadLangs(array("assets", "companies")); // Get parameters $id = GETPOSTINT('id'); $ref = GETPOST('ref', 'alpha'); $action = GETPOST('action', 'aZ09'); $cancel = GETPOST('cancel', 'aZ09'); $backtopage = GETPOST('backtopage', 'alpha'); // Initialize a technical objects $object = new Asset($db); $assetdepreciationoptions = new AssetDepreciationOptions($db); $extrafields = new ExtraFields($db); $diroutputmassaction = $conf->asset->dir_output.'/temp/massgeneration/'.$user->id; $hookmanager->initHooks(array('assetdepreciation', 'globalcard')); // Note that conf->hooks_modules contains array // Fetch optionals attributes and labels $extrafields->fetch_name_optionals_label($object->table_element); // Load object include DOL_DOCUMENT_ROOT . '/core/actions_fetchobject.inc.php'; // Must be 'include', not 'include_once'. Include fetch and fetch_thirdparty but not fetch_optionals if ($id > 0 || !empty($ref)) { $upload_dir = $conf->asset->multidir_output[$object->entity] . "/" . $object->id; } // Security check (enable the most restrictive one) if ($user->socid > 0) { accessforbidden(); } $isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0); restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft); if (!isModEnabled('asset')) { accessforbidden(); } if (!empty($object->not_depreciated)) { accessforbidden(); } $object->asset_depreciation_options = &$assetdepreciationoptions; $result = $assetdepreciationoptions->fetchDeprecationOptions($object->id); if ($result < 0) { setEventMessages($assetdepreciationoptions->error, $assetdepreciationoptions->errors, 'errors'); } $result = $object->fetchDepreciationLines(); if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); } /* * Actions */ $parameters = array(); $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); } if (empty($reshook)) { } /* * View */ $form = new Form($db); $help_url = ''; llxHeader('', $langs->trans('Asset'), $help_url, '', 0, 0, '', '', '', 'mod-asset page-card_depreciation'); if ($id > 0 || !empty($ref)) { $head = assetPrepareHead($object); print dol_get_fiche_head($head, 'depreciation', $langs->trans("Asset"), -1, $object->picto); // Object card // ------------------------------------------------------------ $linkback = '' . $langs->trans("BackToList") . ''; $morehtmlref = '
'; $morehtmlref .= '
'; dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); print '
'; print '
'; print '
'; print dol_get_fiche_end(); $parameters = array(); $reshook = $hookmanager->executeHooks('listAssetDeprecation', $parameters, $object, $action); print $hookmanager->resPrint; if ($reshook < 0) { setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); } elseif (empty($reshook)) { $bookkeeping_icon = ''; $future_icon = ''; $now = dol_now(); foreach ($assetdepreciationoptions->deprecation_options_fields as $mode_key => $fields) { $lines = $object->depreciation_lines[$mode_key]; if (!empty($lines)) { $mode_info = $assetdepreciationoptions->deprecation_options_fields[$mode_key]; $depreciation_info = $assetdepreciationoptions->getGeneralDepreciationInfoForMode($mode_key); print load_fiche_titre($langs->trans($mode_info['label']), '', ''); // Depreciation general info //--------------------------------- print '
'; print '
'; print '
'; print '' . "\n"; print ''; print ''; print '
' . $langs->trans('AssetBaseDepreciationHT') . '' . price($depreciation_info['base_depreciation_ht']) . '
' . $langs->trans('AssetDepreciationBeginDate') . '' . dol_print_date($object->date_start > $object->date_acquisition ? $object->date_start : $object->date_acquisition, 'day') . '
'; // We close div and reopen for second column print '
'; print '
'; print '
'; print ''; print ''; print ''; print '
' . $langs->trans('AssetDepreciationDuration') . '' . $depreciation_info['duration'] . ' ( ' . $depreciation_info['duration_type'] . ' )
' . $langs->trans('AssetDepreciationRate') . '' . $depreciation_info['rate'] . '
'; print '
'; print '
'; print '
'; // Depreciation lines //--------------------------------- print '
'; print '
'; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; if (empty($lines)) { print ''; } else { foreach ($lines as $line) { print ''; print ''; print ''; print ''; print ''; print ''; print ''; print "\n"; } } print '
' . $langs->trans("Ref") . '' . $langs->trans("AssetDepreciationDate") . '' . $langs->trans("AssetDepreciationHT") . '' . $langs->trans("AssetCumulativeDepreciationHT") . '' . $langs->trans("AssetResidualHT") . '
' . $langs->trans("None") . '
' . ($line['bookkeeping'] ? $bookkeeping_icon : ($line['depreciation_date'] > $now ? $future_icon : '')) . '' . (empty($line['ref']) ? $langs->trans('AssetDepreciationReversal') : $line['ref']) . '' . dol_print_date($line['depreciation_date'], 'day') . ''; print price($line['depreciation_ht']); print ''; print price($line['cumulative_depreciation_ht']); print ''; print price(price2num((float) $depreciation_info['base_depreciation_ht'] - $line['cumulative_depreciation_ht'], 'MT')); print '
'; print '
'; } } } } // End of page llxFooter(); $db->close();