From c7b25ec49719f6d5ec543addc726001721104c90 Mon Sep 17 00:00:00 2001 From: aspangaro <alexandre.spangaro@gmail.com> Date: Mon, 21 Dec 2015 06:51:46 +0100 Subject: [PATCH] Review page init accountancy --- htdocs/accountancy/admin/productaccount.php | 107 ++++++++++---------- htdocs/langs/en_US/accountancy.lang | 15 +-- 2 files changed, 60 insertions(+), 62 deletions(-) diff --git a/htdocs/accountancy/admin/productaccount.php b/htdocs/accountancy/admin/productaccount.php index 0bea58fd75c..58cf5768595 100644 --- a/htdocs/accountancy/admin/productaccount.php +++ b/htdocs/accountancy/admin/productaccount.php @@ -22,17 +22,18 @@ /** * \file htdocs/accountancy/admin/productaccount.php * \ingroup Accounting Expert - * \brief Onglet de gestion de parametrages des ventilations + * \brief To define accounting account on product / service */ require '../../main.inc.php'; // Class -require_once DOL_DOCUMENT_ROOT . '/core/lib/report.lib.php'; -require_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php'; -require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php'; -require_once DOL_DOCUMENT_ROOT . '/accountancy/class/html.formventilation.class.php'; -require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingaccount.class.php'; -require_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/report.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/accountancy/class/html.formventilation.class.php'; +require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php'; +require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; // Langs $langs->load("companies"); @@ -40,6 +41,10 @@ $langs->load("compta"); $langs->load("main"); $langs->load("accountancy"); +// Security check +if (!$user->admin) accessforbidden(); +if (empty($conf->accounting->enabled)) accessforbidden(); + // search & action GETPOST $action = GETPOST('action'); $codeventil_buy = GETPOST('codeventil_buy', 'array'); @@ -79,7 +84,7 @@ if (! $sortfield) if (! $sortorder) $sortorder = "ASC"; - // sales or purchase +// Sales or Purchase mode ? if ($action == 'update') { if (! empty($btn_changetype)) { $error = 0; @@ -128,12 +133,12 @@ if ($action == 'update') { $sql .= " SET accountancy_code_sell = " . $accounting->account_number; } $sql .= " WHERE rowid = " . $productid; - + dol_syslog("/accountancy/admin/productaccount.php sql=" . $sql, LOG_DEBUG); if ($db->query($sql)) { - $msg .= '<div><font color="green">' . $langs->trans("Product") . ' ' . $productid . ' ' . $langs->trans("VentilatedinAccount") . ' : ' . $monCompte . '</font></div>'; + $msg .= '<div><font color="green">' . $langs->trans("Product") . ' ' . $productid . ' ' . $langs->trans("VentilatedinAccount") . ' : ' . length_accountg($accounting->account_number) . '</font></div>'; } else { - $msg .= '<div><font color="red">' . $langs->trans("ErrorDB") . ' : ' . $langs->trans("Product") . ' ' . $productid . ' ' . $langs->trans("NotVentilatedinAccount") . ' : ' . $accounting->account_number . '<br/> <pre>' . $sql . '</pre></font></div>'; + $msg .= '<div><font color="red">' . $langs->trans("ErrorDB") . ' : ' . $langs->trans("Product") . ' ' . $productid . ' ' . $langs->trans("NotVentilatedinAccount") . ' : ' . length_accountg($accounting->account_number) . '<br/> <pre>' . $sql . '</pre></font></div>'; } } @@ -147,13 +152,6 @@ if ($action == 'update') { } } -// Security check -if ($user->societe_id > 0) - accessforbidden(); - // TODO after adding menu - // if (! $user->rights->accounting->ventilation->dispatch) - // accessforbidden(); - $form = new FormVentilation($db); // Defaut AccountingAccount RowId Product / Service @@ -179,13 +177,12 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both $search_desc = ''; } -// debug move header to top -llxHeader('', $langs->trans("Accounts")); - /* * View */ +llxHeader('', $langs->trans("Accounts")); + print '<script type="text/javascript"> $(function () { $(\'#select-all\').click(function(event) { @@ -209,7 +206,7 @@ $sql .= " WHERE ("; $pcgver = $conf->global->CHARTOFACCOUNTS; -IF ($accounting_product_mode == 'ACCOUNTANCY_BUY' ? ' checked' : '') { +if ($accounting_product_mode == 'ACCOUNTANCY_BUY' ? ' checked' : '') { $sql .= " p.accountancy_code_buy ='' OR p.accountancy_code_buy IS NULL"; $sql .= " OR (p.accountancy_code_buy IS NOT NULL AND p.accountancy_code_buy != '' AND p.accountancy_code_buy NOT IN (SELECT aa.account_number FROM " . MAIN_DB_PREFIX . "accounting_account as aa , " . MAIN_DB_PREFIX . "accounting_system as asy WHERE fk_pcg_version = asy.pcg_version AND asy.rowid = " . $pcgver . "))"; @@ -241,28 +238,29 @@ if ($result) { $num_lines = $db->num_rows($result); $i = 0; - /* - * View - */ - print_barre_liste($langs->trans("ProductAccountingAccountSelect"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num_lines); - + print load_fiche_titre($langs->trans("InitAccountancy"),'','title_setup'); + print '<br>'; + + print $langs->trans("InitAccountancyDesc").'<br>'; + print '<br>'; + print '<form action="' . $_SERVER["PHP_SELF"] . '" method="post">'; print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">'; print '<input type="hidden" name="action" value="update">'; print '<table class="noborder" width="100%">'; print '<tr class="liste_titre">'; - print '<td>' . $langs->trans('OptionMode') . '</td><td>' . $langs->trans('Description') . '</td>'; + print '<td>' . $langs->trans('Options') . '</td><td>' . $langs->trans('Description') . '</td>'; print "</tr>\n"; - print '<tr ' . $bc[false] . '><td width="200"><input type="radio" name="accounting_product_mode" value="ACCOUNTANCY_SELL"' . ($accounting_product_mode != 'ACCOUNTANCY_BUY' ? ' checked' : '') . '> ' . $langs->trans('Accountancy_code_sell') . '</td>'; - print '<td colspan="2">' . nl2br($langs->trans('OptionModeProductSell')); + print '<tr ' . $bc[false] . '><td width="25%"><input type="radio" name="accounting_product_mode" value="ACCOUNTANCY_SELL"' . ($accounting_product_mode != 'ACCOUNTANCY_BUY' ? ' checked' : '') . '> ' . $langs->trans('OptionModeProductSell') . '</td>'; + print '<td colspan="2">' . nl2br($langs->trans('OptionModeProductSellDesc')); print "</td></tr>\n"; - print '<tr ' . $bc[true] . '><td width="200"><input type="radio" name="accounting_product_mode" value="ACCOUNTANCY_BUY"' . ($accounting_product_mode == 'ACCOUNTANCY_BUY' ? ' checked' : '') . '> ' . $langs->trans('Accountancy_code_buy') . '</td>'; - print '<td colspan="2">' . nl2br($langs->trans('OptionModeProductBuy')) . "</td></tr>\n"; + print '<tr ' . $bc[true] . '><td><input type="radio" name="accounting_product_mode" value="ACCOUNTANCY_BUY"' . ($accounting_product_mode == 'ACCOUNTANCY_BUY' ? ' checked' : '') . '> ' . $langs->trans('OptionModeProductBuy') . '</td>'; + print '<td colspan="2">' . nl2br($langs->trans('OptionModeProductBuyDesc')) . "</td></tr>\n"; print "</table>\n"; - print '<br /><div style="text-align:center"><input type="submit" class="button" value="' . $langs->trans('Modify') . '" name="changetype"></div>'; + print '<br /><div align="right"><input type="submit" class="button" value="' . $langs->trans('Modify') . '" name="changetype"></div>'; print "<br>\n"; @@ -270,33 +268,29 @@ if ($result) { print $msg; } - // print '<td align="left"><b>' . $langs->trans("DescProductAccountingAccount") . '</b></td> '; - // print_liste_field_titre($langs->trans("RowId"), $_SERVER["PHP_SELF"], "p.rowid", "", $param, '', $sortfield, $sortorder); - print ' '; - print '<table class="noborder" width="100%">'; print '<tr class="liste_titre">'; print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder); print_liste_field_titre($langs->trans("Label"), $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder); print_liste_field_titre($langs->trans("Description"), $_SERVER["PHP_SELF"], "l.description", "", $param, '', $sortfield, $sortorder); + /* if ($accounting_product_mode == 'ACCOUNTANCY_BUY') { - print '<th align="left">' . $langs->trans("Accountancy_code_buy") . '</td>'; - print '<th align="left">' . $langs->trans("Accountancy_code_buy_suggest") . '</td>'; + print_liste_field_titre($langs->trans("Accountancy_code_buy")); } else { - print '<th align="left">' . $langs->trans("Accountancy_code_sell") . '</td>'; - print '<th align="left">' . $langs->trans("Accountancy_code_sell_suggest") . '</td>'; + print_liste_field_titre($langs->trans("Accountancy_code_sell")); } - // print_liste_field_titre(''); - print_liste_field_titre($langs->trans("Ventilate") . '<br><label id="select-all">' . $langs->trans('All') . '</label> / <label id="unselect-all">' . $langs->trans('None') . '</label>'); + */ + print_liste_field_titre($langs->trans("AccountAccounting")); + print_liste_field_titre($langs->trans("Modify") . '<br><label id="select-all">' . $langs->trans('All') . '</label> / <label id="unselect-all">' . $langs->trans('None') . '</label>','','','','','align="center"'); print '</tr>'; print '<tr class="liste_titre">'; - print '<td class="liste_titre"><input type="text" class="flat" size="20" name="search_ref" value="' . $search_ref . '"></td>'; + print '<td class="liste_titre"><input type="text" class="flat" size="10" name="search_ref" value="' . $search_ref . '"></td>'; print '<td class="liste_titre"><input type="text" class="flat" size="20" name="search_label" value="' . $search_label . '"></td>'; print '<td class="liste_titre"><input type="text" class="flat" size="30" name="search_desc" value="' . $search_desc . '"></td>'; - print '<td class="liste_titre" colspan="2"> </td>'; - print '<td align="right" class="liste_titre">'; + print '<td class=liste_titre"> </td>'; + print '<td align="center" class="liste_titre">'; print '<input type="image" class="liste_titre" src="' . img_picto($langs->trans("Search"), 'search.png', '', '', 1) . '" name="button_search" value="' . dol_escape_htmltag($langs->trans("Search")) . '" title="' . dol_escape_htmltag($langs->trans("Search")) . '">'; print ' '; print '<input type="image" class="liste_titre" src="' . img_picto($langs->trans("Search"), 'searchclear.png', '', '', 1) . '" name="button_removefilter" value="' . dol_escape_htmltag($langs->trans("RemoveFilter")) . '" title="' . dol_escape_htmltag($langs->trans("RemoveFilter")) . '">'; @@ -349,13 +343,13 @@ if ($result) { // TODO ADJUST DESCRIPTION SIZE // print '<td align="left">' . $obj->description . '</td>'; // TODO: we shoul set a user defined value to adjust user square / wide screen size - $trunclengh = defined('ACCOUNTING_LENGTH_DESCRIPTION') ? ACCOUNTING_LENGTH_DESCRIPTION : 32; + $trunclengh = defined('ACCOUNTING_LENGTH_DESCRIPTION') ? ACCOUNTING_LENGTH_DESCRIPTION : 64; print '<td style="' . $code_sell_p_l_differ . '">' . nl2br(dol_trunc($obj->description, $trunclengh)) . '</td>'; - // acountingaccount buy - - if ($accounting_product_mode == 'ACCOUNTANCY_BUY') { - print '<td align="left">' . $obj->accountancy_code_buy . '</td>'; + // Accounting account buy + if ($accounting_product_mode == 'ACCOUNTANCY_BUY') + { + // print '<td align="left">' . $obj->accountancy_code_buy . '</td>'; // TODO: replace by select // print '<td align="left">' . $compta_prodbuy . '</td>'; // TODO: we shoul set a user defined value to adjust user square / wide screen size @@ -363,10 +357,11 @@ if ($result) { print '<td align="left">'; print $form->select_account($compta_prodbuy_id, 'codeventil_'.$product_static->id, 1); print '</td>'; - } else { - - // acountingaccount sel - print '<td align="left">' . $obj->accountancy_code_sell . '</td>'; + } + else + { + // Accounting account sell + // print '<td align="left">' . $obj->accountancy_code_sell . '</td>'; // TODO: replace by select // TODO: we shoul set a user defined value to adjust user square / wide screen size // $trunclenghform = defined('ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT') ? ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT : 50; @@ -383,7 +378,7 @@ if ($result) { $i ++; } print '</table>'; - print '<br><div align="center"><input type="submit" class="butAction" name="changeaccount" value="' . $langs->trans("Change_Account") . '"></div>'; + print '<br><div align="right"><input type="submit" class="butAction" name="changeaccount" value="' . $langs->trans("Validate") . '"></div>'; print '</form>'; $db->free($result); diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index dad6b236d92..c959e141910 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -26,7 +26,6 @@ Selectmodelcsv=Select a model of export Modelcsv_normal=Classic export Modelcsv_CEGID=Export towards CEGID Expert BackToChartofaccounts=Return chart of accounts -Back=Return Definechartofaccounts=Define a chart of accounts Selectchartofaccounts=Select a chart of accounts @@ -109,10 +108,6 @@ DelBookKeeping=Delete the records of the general ledger DescSellsJournal=Sales journal DescPurchasesJournal=Purchases journal -BankJournal=Bank journal -DescBankJournal=Bank journal including all the types of payments other than cash -CashJournal=Cash journal -DescCashJournal=Cash journal including the type of payment cash FinanceJournal=Finance journal DescFinanceJournal=Finance journal including all the types of payments by bank account @@ -167,5 +162,13 @@ Headername=Name in header Type=Type of fields Param=Additionnal parameters EnabledProduct=In Product -EnabledTiers=In Tiers +EnabledTiers=In third party EnabledVat=In Vat +## Tools - Init accounting account on product / service +InitAccountancy=Init accountancy +InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accountancy account defined for sales and purchases. Check before that setup of module accountancy is complete. +Options=Options +OptionModeProductSell=Mode sales +OptionModeProductBuy=Mode purchases +OptionModeProductSellDesc=Show all products with no accounting account defined for sales. +OptionModeProductBuyDesc=Show all products with no accounting account defined for purchases. \ No newline at end of file -- GitLab