* Copyright (C) 2013-2017 Alexandre Spangaro * Copyright (C) 2014 Florian Henry * * 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/accountancy/admin/card.php * \ingroup Advanced accountancy * \brief Card of accounting account */ require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php'; require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingaccount.class.php'; require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountancysystem.class.php'; require_once DOL_DOCUMENT_ROOT . '/core/class/html.formaccounting.class.php'; $error = 0; // Langs $langs->load("bills"); $langs->load("accountancy"); $mesg = ''; $action = GETPOST('action','aZ09'); $backtopage = GETPOST('backtopage'); $id = GETPOST('id', 'int'); $rowid = GETPOST('rowid', 'int'); $cancel = GETPOST('cancel'); // Security check $object = new AccountingAccount($db); /* * Action */ if (GETPOST('cancel')) { $urltogo=$backtopage?$backtopage:dol_buildpath('/accountancy/admin/account.php',1); header("Location: ".$urltogo); exit; } if ($action == 'add' && $user->rights->accounting->chartofaccount) { if (! $cancel) { $sql = 'SELECT pcg_version FROM ' . MAIN_DB_PREFIX . 'accounting_system WHERE rowid=' . $conf->global->CHARTOFACCOUNTS; dol_syslog('accountancy/admin/card.php:: $sql=' . $sql); $result = $db->query($sql); $obj = $db->fetch_object($result); // Clean code // To manage zero or not at the end of the accounting account if($conf->global->ACCOUNTING_MANAGE_ZERO == 1) { $account_number = GETPOST('account_number'); } else { $account_number = clean_account(GETPOST('account_number')); } if (GETPOST('account_parent') <= 0) { $account_parent = 0; } else { $account_parent = GETPOST('account_parent','int'); } $object->fk_pcg_version = $obj->pcg_version; $object->pcg_type = GETPOST('pcg_type'); $object->pcg_subtype = GETPOST('pcg_subtype'); $object->account_number = $account_number; $object->account_parent = $account_parent; $object->account_category = GETPOST('account_category'); $object->label = GETPOST('label', 'alpha'); $object->active = 1; $res = $object->create($user); if ($res == - 3) { $error = 1; $action = "create"; setEventMessages($object->error, $object->errors, 'errors'); } elseif ($res == - 4) { $error = 2; $action = "create"; setEventMessages($object->error, $object->errors, 'errors'); } elseif ($res < 0) { $error++; setEventMessages($object->error, $object->errors, 'errors'); $action = "create"; } if (! $error) { setEventMessages("RecordCreatedSuccessfully",null,'mesgs'); $urltogo=$backtopage?$backtopage:dol_buildpath('/accountancy/admin/account.php',1); header("Location: ".$urltogo); exit; } } } else if ($action == 'edit' && $user->rights->accounting->chartofaccount) { if (! $cancel) { $result = $object->fetch($id); $sql = 'SELECT pcg_version FROM ' . MAIN_DB_PREFIX . 'accounting_system WHERE rowid=' . $conf->global->CHARTOFACCOUNTS; dol_syslog('accountancy/admin/card.php:: $sql=' . $sql); $result2 = $db->query($sql); $obj = $db->fetch_object($result2); // Clean code // To manage zero or not at the end of the accounting account if($conf->global->ACCOUNTING_MANAGE_ZERO == 1) { $account_number = GETPOST('account_number'); } else { $account_number = clean_account(GETPOST('account_number')); } if (GETPOST('account_parent') <= 0) { $account_parent = 0; } else { $account_parent = GETPOST('account_parent','int'); } $object->fk_pcg_version = $obj->pcg_version; $object->pcg_type = GETPOST('pcg_type'); $object->pcg_subtype = GETPOST('pcg_subtype'); $object->account_number = $account_number; $object->account_parent = $account_parent; $object->account_category = GETPOST('account_category'); $object->label = GETPOST('label', 'alpha'); $result = $object->update($user); if ($result > 0) { $urltogo=$backtopage?$backtopage:($_SERVER["PHP_SELF"]."?id=".$id); header("Location: " . $urltogo); exit(); } else { $mesg = $object->error; } } else { $urltogo=$backtopage?$backtopage:($_SERVER["PHP_SELF"]."?id=".$id); header("Location: " . $urltogo); exit(); } } else if ($action == 'delete' && $user->rights->accounting->chartofaccount) { $result = $object->fetch($id); if (! empty($object->id)) { $result = $object->delete($user); if ($result > 0) { header("Location: account.php"); exit; } } if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); } } /* * View */ $title = $langs->trans('AccountAccounting') ." - ". $langs->trans('Card'); $helpurl = ''; llxheader('', $title, $helpurl); $form = new Form($db); $formaccounting = new FormAccounting($db); $accountsystem = new AccountancySystem($db); $accountsystem->fetch($conf->global->CHARTOFACCOUNTS); // Create mode if ($action == 'create') { print load_fiche_titre($langs->trans('NewAccountingAccount')); print '
' . "\n"; print ''; print ''; dol_fiche_head(); print ''; // Chart of account print ''; print ''; // Account number print ''; print ''; // Label print ''; print ''; // Account parent print ''; print ''; // Category print ''; print ''; // Chart of accounts type print ''; print ''; // Chart of acounts subtype print ''; print ''; print '
' . $langs->trans("Chartofaccounts") . ''; print $accountsystem->ref; print '
' . $langs->trans("AccountNumber") . '
' . $langs->trans("Label") . '
' . $langs->trans("Accountparent") . ''; print $formaccounting->select_account($object->account_parent, 'account_parent', 1, null, 0, 0, 'minwidth200'); print '
' . $langs->trans("AccountingCategory") . ''; $formaccounting->select_accounting_category($object->account_category, 'account_category', 1, 0, 1); print '
' . $langs->trans("Pcgtype") . ''; print ''; print '
' . $langs->trans("Pcgsubtype") . ''; print ''; print '
'; dol_fiche_end(); print '
'; print ''; print '     '; print ''; print '
'; print '
'; } else if ($id) { $result = $object->fetch($id); if ($result > 0) { dol_htmloutput_mesg($mesg); $head = accounting_prepare_head($object); // Edit mode if ($action == 'update') { dol_fiche_head($head, 'card', $langs->trans('AccountAccounting'), 0, 'billr'); print '
' . "\n"; print ''; print ''; print ''; print ''; print ''; // Account number print ''; print ''; // Label print ''; print ''; // Account parent print ''; print ''; // Category print ''; print ''; // Chart of accounts type print ''; print ''; // Chart of accounts subtype print ''; print ''; print '
' . $langs->trans("AccountNumber") . '
' . $langs->trans("Label") . '
' . $langs->trans("Accountparent") . ''; print $formaccounting->select_account($object->account_parent, 'account_parent', 1); print '
'.$langs->trans("AccountingCategory").''; $formaccounting->select_accounting_category($object->account_category, 'account_category', 1); print '
' . $langs->trans("Pcgtype") . ''; print ''; print '
' . $langs->trans("Pcgsubtype") . ''; print ''; print '
'; dol_fiche_end(); print '
'; print ''; print '     '; print ''; print '
'; print '
'; } else { // View mode $linkback = '' . $langs->trans("BackToChartofaccounts") . ''; dol_fiche_head($head, 'card', $langs->trans('AccountAccounting'), 0, 'billr'); print ''; // Account number print ''; print ''; print ''; // Label print ''; print ''; // Account parent $accp = new AccountingAccount($db); if (! empty($object->account_parent)) { $accp->fetch($object->account_parent, ''); } print ''; print ''; // Category print ""; // Chart of accounts type print ''; print ''; // Chart of accounts subtype print ''; print ''; // Active print ''; print ''; print '
' . $langs->trans("AccountNumber") . '' . $object->account_number . '' . $linkback . '
' . $langs->trans("Label") . '' . $object->label . '
' . $langs->trans("Accountparent") . '' . $accp->account_number . ' - ' . $accp->label . '
".$langs->trans("AccountingCategory")."".$object->account_category_label."
' . $langs->trans("Pcgtype") . '' . $object->pcg_type . '
' . $langs->trans("Pcgsubtype") . '' . $object->pcg_subtype . '
' . $langs->trans("Status") . ''; print $object->getLibStatut(4); /*if (empty($object->active)) { print img_picto($langs->trans("Disabled"), 'switch_off'); } else { print img_picto($langs->trans("Activated"), 'switch_on'); }*/ print '
'; dol_fiche_end(); /* * Actions buttons */ print '
'; if (! empty($user->rights->accounting->chartofaccount)) { print '' . $langs->trans('Modify') . ''; } else { print '' . $langs->trans('Modify') . ''; } if (! empty($user->rights->accounting->chartofaccount)) { print '' . $langs->trans('Delete') . ''; } else { print '' . $langs->trans('Delete') . ''; } print '
'; } } else { dol_print_error($db); } } llxFooter(); $db->close();