diff --git a/htdocs/accountancy/admin/account.php b/htdocs/accountancy/admin/account.php index e82522df26f..a7ad5d14e90 100644 --- a/htdocs/accountancy/admin/account.php +++ b/htdocs/accountancy/admin/account.php @@ -1,6 +1,6 @@ - * Copyright (C) 2013-2016 Alexandre Spangaro + * Copyright (C) 2013-2017 Alexandre Spangaro * Copyright (C) 2016 Laurent Destailleur * * This program is free software; you can redistribute it and/or modify @@ -41,6 +41,7 @@ $action = GETPOST('action'); $cancel = GETPOST('cancel'); $id = GETPOST('id', 'int'); $rowid = GETPOST('rowid', 'int'); + $search_account = GETPOST("search_account"); $search_label = GETPOST("search_label"); $search_accountparent = GETPOST("search_accountparent"); @@ -68,6 +69,15 @@ if (! $sortfield) if (! $sortorder) $sortorder = "ASC"; +$arrayfields=array( + 'aa.account_number'=>array('label'=>$langs->trans("AccountNumber"), 'checked'=>1), + 'aa.label'=>array('label'=>$langs->trans("Label"), 'checked'=>1), + 'aa.account_parent'=>array('label'=>$langs->trans("Accountparent"), 'checked'=>0), + 'aa.pcg_type'=>array('label'=>$langs->trans("Pcgtype"), 'checked'=>0), + 'aa.pcg_subtype'=>array('label'=>$langs->trans("Pcgsubtype"), 'checked'=>0), + 'aa.active'=>array('label'=>$langs->trans("Activated"), 'checked'=>1) +); + $accounting = new AccountingAccount($db); @@ -95,6 +105,7 @@ if (empty($reshook)) $search_accountparent = ""; $search_pcgtype = ""; $search_pcgsubtype = ""; + $search_array_options=array(); } if (GETPOST('change_chart')) @@ -135,6 +146,7 @@ if (empty($reshook)) /* * View */ +$form=new Form($db); llxHeader('', $langs->trans("ListAccounts")); @@ -145,8 +157,6 @@ if ($action == 'delete') { $pcgver = $conf->global->CHARTOFACCOUNTS; - - $sql = "SELECT aa.rowid, aa.fk_pcg_version, aa.pcg_type, aa.pcg_subtype, aa.account_number, aa.account_parent , aa.label, aa.active, "; $sql .= " a2.rowid as rowid2, a2.label as label2, a2.account_number as account_number2"; $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as aa"; @@ -154,21 +164,12 @@ $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_vers $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as a2 ON aa.account_parent = a2.rowid"; $sql .= " WHERE asy.rowid = " . $pcgver; -if (strlen(trim($search_account))) { - $sql .= natural_search("aa.account_number", $search_account); -} -if (strlen(trim($search_label))) { - $sql .= natural_search("aa.label", $search_label); -} -if (strlen(trim($search_accountparent))) { - $sql .= natural_search("aa.account_parent", $search_accountparent); -} -if (strlen(trim($search_pcgtype))) { - $sql .= natural_search("aa.pcg_type", $search_pcgtype); -} -if (strlen(trim($search_pcgsubtype))) { - $sql .= natural_search("aa.pcg_subtype", $search_pcgsubtype); -} +if (strlen(trim($search_account))) $sql .= natural_search("aa.account_number", $search_account); +if (strlen(trim($search_label))) $sql .= natural_search("aa.label", $search_label); +if (strlen(trim($search_accountparent))) $sql .= natural_search("aa.account_parent", $search_accountparent); +if (strlen(trim($search_pcgtype))) $sql .= natural_search("aa.pcg_type", $search_pcgtype); +if (strlen(trim($search_pcgsubtype))) $sql .= natural_search("aa.pcg_subtype", $search_pcgsubtype); + $sql .= $db->order($sortfield, $sortorder); // Count total nb of records @@ -184,18 +185,19 @@ $sql .= $db->plimit($limit + 1, $offset); dol_syslog('accountancy/admin/account.php:: $sql=' . $sql); $resql = $db->query($sql); -if ($resql) { - +if ($resql) +{ $num = $db->num_rows($resql); - + $params=''; - if ($search_account != "") $params.= '&search_account='.urlencode($search_account); - if ($search_label != "") $params.= '&search_label='.urlencode($search_label); - if ($search_accountparent != "") $params.= '&search_accountparent='.urlencode($search_accountparent); - if ($search_pcgtype != "") $params.= '&search_pcgtype='.urlencode($search_pcgtype); - if ($search_pcgsubtype != "") $params.= '&search_pcgsubtype='.urlencode($search_pcgsubtype); - if ($optioncss != '') $param.='&optioncss='.$optioncss; - + if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage; + if ($search_account) $params.= '&search_account='.urlencode($search_account); + if ($search_label) $params.= '&search_label='.urlencode($search_label); + if ($search_accountparent) $params.= '&search_accountparent='.urlencode($search_accountparent); + if ($search_pcgtype) $params.= '&search_pcgtype='.urlencode($search_pcgtype); + if ($search_pcgsubtype) $params.= '&search_pcgsubtype='.urlencode($search_pcgsubtype); + if ($optioncss) $param.='&optioncss='.$optioncss; + print_barre_liste($langs->trans('ListAccounts'), $page, $_SERVER["PHP_SELF"], $params, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_accountancy'); print '
'; @@ -207,7 +209,7 @@ if ($resql) { $sql = "SELECT rowid, pcg_version, label, active"; $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_system"; $sql .= " WHERE active = 1"; - dol_syslog('accountancy/admin/index.php:: $sql=' . $sql); + dol_syslog('accountancy/admin/account.php:: $sql=' . $sql); $resqlchart = $db->query($sql); $var = true; if ($resqlchart) { @@ -228,34 +230,53 @@ if ($resql) { print ''; print '
'; print "
\n"; + + print '
'; + $i = 0; + print '
'."\n"; + if ($optioncss != '') print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print '' . $langs->trans("Addanaccount") . ''; print '' . $langs->trans("ApplyMassCategories") . ''; // print '' . $langs->trans("ImportAccount") . ''; // print '' . $langs->trans("CheckProductAccountancyCode") . ''; print '

'; - print ''; - print ''; - print_liste_field_titre($langs->trans("AccountNumber"), $_SERVER["PHP_SELF"], "aa.account_number", "", $params, "", $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Label"), $_SERVER["PHP_SELF"], "aa.label", "", $params, "", $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Accountparent"), $_SERVER["PHP_SELF"], "aa.account_parent", "", $params, "", $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Pcgtype"), $_SERVER["PHP_SELF"], "aa.pcg_type", "", $params, "", $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Pcgsubtype"), $_SERVER["PHP_SELF"], "aa.pcg_subtype", "", $params, "", $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Activated"), $_SERVER["PHP_SELF"], "aa.active", "", $params, "", $sortfield, $sortorder); - print_liste_field_titre('', $_SERVER["PHP_SELF"], "", $params, "", 'width="60" align="center"', $sortfield, $sortorder); - print ''; + $varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage; + $selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields + print '
'; + print '
'."\n"; + print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; + + if (! empty($arrayfields['aa.account_number']['checked'])) print_liste_field_titre($arrayfields['aa.account_number']['label'], $_SERVER["PHP_SELF"],"aa.account_number","",$param,'',$sortfield,$sortorder); + if (! empty($arrayfields['aa.label']['checked'])) print_liste_field_titre($arrayfields['aa.label']['label'], $_SERVER["PHP_SELF"],"aa.label","",$param,'',$sortfield,$sortorder); + if (! empty($arrayfields['aa.account_parent']['checked'])) print_liste_field_titre($arrayfields['aa.account_parent']['label'], $_SERVER["PHP_SELF"],"aa.account_parent", "", $param,'align="left"',$sortfield,$sortorder); + if (! empty($arrayfields['aa.pcg_type']['checked'])) print_liste_field_titre($arrayfields['aa.pcg_type']['label'],$_SERVER["PHP_SELF"],'aa.pcg_type','',$param,'',$sortfield,$sortorder); + if (! empty($arrayfields['aa.pcg_subtype']['checked'])) print_liste_field_titre($arrayfields['aa.pcg_subtype']['label'],$_SERVER["PHP_SELF"],'aa.pcg_subtype','',$param,'',$sortfield,$sortorder); + if (! empty($arrayfields['aa.active']['checked'])) print_liste_field_titre($arrayfields['aa.active']['label'],$_SERVER["PHP_SELF"],'aa.active','',$param,'',$sortfield,$sortorder); + + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="right"',$sortfield,$sortorder,'maxwidthsearch '); + print "\n"; + + // Line for search fields + print ''; + if (! empty($arrayfields['aa.account_number']['checked'])) print ''; + if (! empty($arrayfields['aa.label']['checked'])) print ''; + if (! empty($arrayfields['aa.account_parent']['checked'])) print ''; + if (! empty($arrayfields['aa.pcg_type']['checked'])) print ''; + if (! empty($arrayfields['aa.pcg_subtype']['checked'])) print ''; + if (! empty($arrayfields['aa.active']['checked'])) print ''; print ''; print ''; @@ -263,8 +284,7 @@ if ($resql) { $accountstatic = new AccountingAccount($db); $accountparent = new AccountingAccount($db); - - $i = 0; + while ( $i < min($num, $limit) ) { $obj = $db->fetch_object($resql); @@ -274,35 +294,81 @@ if ($resql) { $accountstatic->account_number = $obj->account_number; print ''; - print ''; - print ''; - if (! empty($obj->account_parent)) - { - $accountparent->id = $obj->rowid2; - $accountparent->label = $obj->label2; - $accountparent->account_number = $obj->account_number2; - - print ''; - } - else + // Account number + if (! empty($arrayfields['aa.account_number']['checked'])) { - print ''; + print "\n"; + if (! $i) $totalarray['nbfield']++; } - print ''; - print ''; - print '\n"; + if (! $i) $totalarray['nbfield']++; } - print ''; - + + // Account parent + if (! empty($arrayfields['aa.account_parent']['checked'])) + { + if (! empty($obj->account_parent)) + { + $accountparent->id = $obj->rowid2; + $accountparent->label = $obj->label2; + $accountparent->account_number = $obj->account_number2; + + print "\n"; + if (! $i) $totalarray['nbfield']++; + } + else + { + print ''; + if (! $i) $totalarray['nbfield']++; + } + } + + // Chart of accounts type + if (! empty($arrayfields['aa.pcg_type']['checked'])) + { + print "\n"; + if (! $i) $totalarray['nbfield']++; + } + + // Chart of accounts subtype + if (! empty($arrayfields['aa.pcg_subtype']['checked'])) + { + print "\n"; + if (! $i) $totalarray['nbfield']++; + } + + // Activated or not + if (! empty($arrayfields['aa.active']['checked'])) + { + print ''; + if (! $i) $totalarray['nbfield']++; + } + // Action print '' . "\n"; + if (! $i) $totalarray['nbfield']++; print "\n"; $var = ! $var; @@ -322,6 +389,7 @@ if ($resql) { } print "
 
 '; - $searchpitco=$form->showFilterAndCheckAddButtons($massactionbutton?1:0, 'checkforselect', 1); - print $searchpitco; + $searchpicto=$form->showFilterAndCheckAddButtons($massactionbutton?1:0, 'checkforselect', 1); + print $searchpicto; print '
' . $accountstatic->getNomUrl(1) . '' . $obj->label . '' . $accountparent->getNomUrl(1) . ' "; + print $accountstatic->getNomUrl(1); + print "' . $obj->pcg_type . '' . $obj->pcg_subtype . ''; - if (empty($obj->active)) { - print ''; - print img_picto($langs->trans("Disabled"), 'switch_off'); - print ''; - } else { - print ''; - print img_picto($langs->trans("Activated"), 'switch_on'); - print ''; + + // Account label + if (! empty($arrayfields['aa.label']['checked'])) + { + print ""; + print $obj->label; + print ""; + print $accountparent->getNomUrl(1); + print " "; + print $obj->pcg_type; + print ""; + print $obj->pcg_subtype; + print "'; + if (empty($obj->active)) { + print ''; + print img_picto($langs->trans("Disabled"), 'switch_off'); + print ''; + } else { + print ''; + print img_picto($langs->trans("Activated"), 'switch_on'); + print ''; + } + print ''; if ($user->admin) { @@ -315,6 +381,7 @@ if ($resql) { print ''; } print '
"; + print ""; print '
'; } else { dol_print_error($db);