* Copyright (C) 2017 Alexandre Spangaro * * 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/categories.php * \ingroup Advanced accountancy * \brief Page to assign mass categories to accounts */ require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php'; require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountancycategory.class.php'; require_once DOL_DOCUMENT_ROOT . '/core/class/html.formaccounting.class.php'; $error = 0; $langs->load("bills"); $langs->load("accountancy"); $mesg = ''; $id = GETPOST('id', 'int'); $rowid = GETPOST('rowid', 'int'); $cancel = GETPOST('cancel'); $action = GETPOST('action','aZ09'); $cat_id = GETPOST('account_category'); $selectcpt = GETPOST('cpt_bk', 'array'); $cpt_id = GETPOST('cptid'); if ($cat_id == 0) { $cat_id = null; } // Security check if (empty($user->rights->accounting->chartofaccount)) { accessforbidden(); } $accountingcategory = new AccountancyCategory($db); // si ajout de comptes if (! empty($selectcpt)) { $cpts = array (); foreach ( $selectcpt as $selectedoption ) { if (! array_key_exists($selectedoption, $cpts)) $cpts[$selectedoption] = "'" . $selectedoption . "'"; } $return= $accountingcategory->updateAccAcc($cat_id, $cpts); if ($return<0) { setEventMessages($langs->trans('errors'), $accountingcategory->errors, 'errors'); } else { setEventMessages($langs->trans('Saved'), null, 'mesgs'); } } if ($action == 'delete') { if ($cpt_id) { if ($accountingcategory->deleteCptCat($cpt_id)) { setEventMessages($langs->trans('CategoryDeleted'), null, 'mesgs'); } else { setEventMessages($langs->trans('errors'), null, 'errors'); } } } /* * View */ $form = new Form($db); $formaccounting = new FormAccounting($db); llxheader('', $langs->trans('AccountAccounting')); print load_fiche_titre($langs->trans('AccountingCategory')); print '
' . "\n"; print ''; print ''; dol_fiche_head(); print ''; // Category print ''; print ''; if (! empty($cat_id)) { $return = $accountingcategory->getAccountsWithNoCategory($cat_id); if ($return < 0) { setEventMessages(null, $accountingcategory->errors, 'errors'); } print ''; print ''; } print '
' . $langs->trans("AccountingCategory") . ''; $formaccounting->select_accounting_category($cat_id, 'account_category', 1, 0, 0, 1); print ''; print '
' . $langs->trans("AddAccountFromBookKeepingWithNoCategories") . ''; if (is_array($accountingcategory->lines_cptbk) && count($accountingcategory->lines_cptbk) > 0) { print '
'; print ' '; } print '
'; dol_fiche_end(); print '
'; if ($action == 'display' || $action == 'delete') { print "\n"; print ''; print '"; print '"; print "\n"; if (! empty($cat_id)) { $return = $accountingcategory->display($cat_id); if ($return < 0) { setEventMessages(null, $accountingcategory->errors, 'errors'); } if (is_array($accountingcategory->lines_display) && count($accountingcategory->lines_display) > 0) { foreach ( $accountingcategory->lines_display as $cpt ) { print ''; print ''; print ''; print '"; print "\n"; } } } print "
'.$langs->trans("AccountAccounting")."'.$langs->trans("Label")."
' . length_accountg($cpt->account_number) . '' . $cpt->label . ''; print ""; print img_delete($langs->trans("DeleteFromCat")).' '; print $langs->trans("DeleteFromCat").""; print "
"; } llxFooter(); $db->close();