* Copyright (C) 2013-2016 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'; // Class 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/html.formventilation.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'); $id = GETPOST('id', 'int'); $rowid = GETPOST('rowid', 'int'); $cancel = GETPOST('cancel'); // Security check if (! $user->admin) accessforbidden(); $object = new AccountingAccount($db); // Action if ($action == 'add') { 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 $account_number = clean_account(GETPOST('account_number')); // Accounting account without zero on the right if (GETPOST('account_category') <= 0) { $account_parent = ''; } else { $account_parent = GETPOST('account_category','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"; } if ($res == - 4) { $error = 2; $action = "create"; } } header("Location: account.php"); exit; } else if ($action == 'edit') { if (! GETPOST('cancel', 'alpha')) { $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 $account_number = clean_account(GETPOST('account_number')); // Accounting account without zero on the right if (GETPOST('account_category') <= 0) { $account_parent = ''; } else { $account_parent = GETPOST('account_category','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) { header("Location: " . $_SERVER["PHP_SELF"] . "?id=" . $id); exit(); } else { $mesg = $object->error; } } else { header("Location: " . $_SERVER["PHP_SELF"] . "?id=" . $id); exit(); } } else if ($action == 'delete') { $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 */ llxheader('', $langs->trans('AccountAccounting')); $form = new Form($db); $htmlacc = new FormVentilation($db); $formaccounting = new FormAccounting($db); // Create mode if ($action == 'create') { print load_fiche_titre($langs->trans('NewAccount')); print '
' . "\n"; print ''; print ''; dol_fiche_head(); 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("AccountNumber") . '
' . $langs->trans("Label") . '
' . $langs->trans("Accountparent") . ''; print $htmlacc->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 $htmlacc->select_pcgtype($object->pcg_type, 'pcg_type'); print '
' . $langs->trans("Pcgsubtype") . ''; print $htmlacc->select_pcgsubtype($object->pcg_subtype, 'pcg_subtype'); 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 ''; // 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 $htmlacc->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 $htmlacc->select_pcgtype($object->pcg_type, 'pcg_type'); print '
' . $langs->trans("Pcgsubtype") . ''; print $htmlacc->select_pcgsubtype($object->pcg_subtype, 'pcg_subtype'); 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("Activated") . ''; 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 ($user->admin) { print '' . $langs->trans('Modify') . ''; } else { print '' . $langs->trans('Modify') . ''; } if ($user->admin) { print '' . $langs->trans('Delete') . ''; } else { print '' . $langs->trans('Delete') . ''; } print '
'; } } else { dol_print_error($db); } } llxFooter(); $db->close();