diff --git a/build/perl/virtualmin/dolibarr.pl b/build/perl/virtualmin/dolibarr.pl index f105a89bc4d..31578905202 100644 --- a/build/perl/virtualmin/dolibarr.pl +++ b/build/perl/virtualmin/dolibarr.pl @@ -242,7 +242,7 @@ if ($upgrade) { [ "versionfrom", $upgrade->{'version'} ], [ "versionto", $ver ], ); - local $err = &call_dolibarr_wizard_page(\@params, "etape5", $d, $opts); + local $err = &call_dolibarr_wizard_page(\@params, "step5", $d, $opts); return (-1, "Dolibarr wizard failed : $err") if ($err); # Remove the installation directory. @@ -268,12 +268,12 @@ else { [ "usealternaterootdir", "1" ], [ "main_alt_dir_name", "custom" ], ); - local $err = &call_dolibarr_wizard_page(\@params, "etape1", $d, $opts); + local $err = &call_dolibarr_wizard_page(\@params, "step1", $d, $opts); return (-1, "Dolibarr wizard failed : $err") if ($err); # Second page (Populate database) local @params = ( [ "action", "set" ] ); - local $err = &call_dolibarr_wizard_page(\@params, "etape2", $d, $opts); + local $err = &call_dolibarr_wizard_page(\@params, "step2", $d, $opts); return (-1, "Dolibarr wizard failed : $err") if ($err); # Third page (Add administrator account) @@ -282,7 +282,7 @@ else { [ "pass", $dompass ], [ "pass_verif", $dompass ], ); - local $err = &call_dolibarr_wizard_page(\@params, "etape5", $d, $opts); + local $err = &call_dolibarr_wizard_page(\@params, "step5", $d, $opts); return (-1, "Dolibarr wizard failed : $err") if ($err); # Remove the installation directory and protect config file. diff --git a/dev/skeletons/modMyModule.class.php b/dev/skeletons/modMyModule.class.php index 7c207e9877b..7eebdee8bcd 100644 --- a/dev/skeletons/modMyModule.class.php +++ b/dev/skeletons/modMyModule.class.php @@ -34,11 +34,11 @@ include_once DOL_DOCUMENT_ROOT .'/core/modules/DolibarrModules.class.php'; class modMyModule extends DolibarrModules { /** - * Constructor. Define names, constants, directories, boxes, permissions + * Constructor. Define names, constants, directories, boxes, permissions * - * @param DoliDB $db Database handler + * @param DoliDB $db Database handler */ - function __construct($db) + public function __construct($db) { global $langs,$conf; @@ -249,24 +249,24 @@ class modMyModule extends DolibarrModules * @param string $options Options when enabling module ('', 'noboxes') * @return int 1 if OK, 0 if KO */ - function init($options='') + public function init($options='') { $sql = array(); - $result=$this->_load_tables('/mymodule/sql/'); + //$this->_load_tables('/mymodule/sql/'); return $this->_init($sql, $options); } /** - * Function called when module is disabled. - * Remove from database constants, boxes and permissions from Dolibarr database. - * Data directories are not deleted + * Function called when module is disabled. + * Remove from database constants, boxes and permissions from Dolibarr database. + * Data directories are not deleted * - * @param string $options Options when enabling module ('', 'noboxes') - * @return int 1 if OK, 0 if KO + * @param string $options Options when enabling module ('', 'noboxes') + * @return int 1 if OK, 0 if KO */ - function remove($options='') + public function remove($options = '') { $sql = array(); diff --git a/dev/test/testdiv.php b/dev/test/testdiv.php index 2f1bd9182ae..5b57f0a3667 100644 --- a/dev/test/testdiv.php +++ b/dev/test/testdiv.php @@ -9,10 +9,10 @@ Login Dolibarr 3.4.0-alpha - + - + diff --git a/htdocs/accountancy/admin/card.php b/htdocs/accountancy/admin/card.php index 51517993bb5..092122a653d 100644 --- a/htdocs/accountancy/admin/card.php +++ b/htdocs/accountancy/admin/card.php @@ -39,6 +39,7 @@ $mesg = ''; $action = GETPOST('action'); $id = GETPOST('id', 'int'); $rowid = GETPOST('rowid', 'int'); +$cancel = GETPOST('cancel'); // Security check if (!$user->admin) @@ -49,7 +50,7 @@ $accounting = new AccountingAccount($db); // Action if ($action == 'add') { - if (! GETPOST('cancel', 'alpha')) { + 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); @@ -59,7 +60,7 @@ if ($action == 'add') $accounting->fk_pcg_version = $obj->pcg_version; $accounting->pcg_type = GETPOST('pcg_type'); $accounting->pcg_subtype = GETPOST('pcg_subtype'); - $accounting->account_number = GETPOST('account_number', 'int'); + $accounting->account_number = GETPOST('account_number'); $accounting->account_parent = GETPOST('account_parent', 'int'); $accounting->label = GETPOST('label', 'alpha'); $accounting->active = 1; @@ -94,7 +95,7 @@ else if ($action == 'edit') $accounting->fk_pcg_version = $obj->pcg_version; $accounting->pcg_type = GETPOST('pcg_type'); $accounting->pcg_subtype = GETPOST('pcg_subtype'); - $accounting->account_number = GETPOST('account_number', 'int'); + $accounting->account_number = GETPOST('account_number'); $accounting->account_parent = GETPOST('account_parent', 'int'); $accounting->label = GETPOST('label', 'alpha'); @@ -261,7 +262,7 @@ else if ($id) print '' . $langs->trans("Pcgsubtype") . ''; print '' . $accounting->pcg_subtype . ''; - print '' . $langs->trans("Active") . ''; + print '' . $langs->trans("Activated") . ''; print ''; if (empty($accounting->active)) { diff --git a/htdocs/accountancy/admin/index.php b/htdocs/accountancy/admin/index.php index dba04aafa05..dfc25161718 100644 --- a/htdocs/accountancy/admin/index.php +++ b/htdocs/accountancy/admin/index.php @@ -2,7 +2,7 @@ /* Copyright (C) 2013-2014 Olivier Geffroy * Copyright (C) 2013-2014 Florian Henry * Copyright (C) 2013-2015 Alexandre Spangaro - * Copyright (C) 2014 Ari Elbaz (elarifr) + * Copyright (C) 2014-2015 Ari Elbaz (elarifr) * Copyright (C) 2014 Marcos García * Copyright (C) 2014 Juanjo Menent * Copyright (C) 2015 Jean-François Ferry @@ -48,6 +48,8 @@ $action = GETPOST('action', 'alpha'); // Other parameters ACCOUNTING_* $list = array ( 'ACCOUNTING_LIMIT_LIST_VENTILATION', + 'ACCOUNTING_LENGTH_DESCRIPTION', // adjust size displayed for lines description for dol_trunc + 'ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT', // adjust size displayed for select account description for dol_trunc 'ACCOUNTING_LENGTH_GACCOUNT', 'ACCOUNTING_LENGTH_AACCOUNT', 'ACCOUNTING_ACCOUNT_CUSTOMER', @@ -287,7 +289,6 @@ if (! empty($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_DONE)) { } print ''; - print "\n"; print '

'; diff --git a/htdocs/accountancy/admin/productaccount.php b/htdocs/accountancy/admin/productaccount.php index 402ff72ed84..52c4a0d1862 100644 --- a/htdocs/accountancy/admin/productaccount.php +++ b/htdocs/accountancy/admin/productaccount.php @@ -2,7 +2,9 @@ /* * Copyright (C) 2013-2014 Olivier Geffroy * Copyright (C) 2013-2014 Alexandre Spangaro - * Copyright (C) 2014 Florian Henry + * Copyright (C) 2014 Florian Henry + * Copyright (C) 2015 Ari Elbaz (elarifr) + * * 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 @@ -19,129 +21,404 @@ */ /** - * \file htdocs/accountancy/admin/productaccount.php - * \ingroup Accounting Expert - * \brief Onglet de gestion de parametrages des ventilations + * \file htdocs/accountancy/admin/productaccount.php + * \ingroup Accounting Expert + * \brief Onglet de gestion de parametrages des ventilations */ -// Dolibarr environment -$res = @include ("../main.inc.php"); -if (! $res && file_exists("../main.inc.php")) - $res = @include ("../main.inc.php"); -if (! $res && file_exists("../../main.inc.php")) - $res = @include ("../../main.inc.php"); -if (! $res && file_exists("../../../main.inc.php")) - $res = @include ("../../../main.inc.php"); -if (! $res) - die("Include of main fails"); +require '../../main.inc.php'; - // Class -dol_include_once("/core/lib/report.lib.php"); -dol_include_once("/core/lib/date.lib.php"); -dol_include_once("/product/class/product.class.php"); +// Class +require_once DOL_DOCUMENT_ROOT.'/core/lib/report.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"); $langs->load("compta"); $langs->load("main"); $langs->load("accountancy"); -// Security check -if (!$user->admin) - accessforbidden(); +// Search & action GETPOST +$action = GETPOST('action'); +$codeventil_buy = GETPOST('codeventil_buy', 'array'); +$codeventil_sell = GETPOST('codeventil_sell', 'array'); +$mesCasesCochees = GETPOST('mesCasesCochees', 'array'); +$account_number_buy = GETPOST('account_number_buy'); +$account_number_sell = GETPOST('account_number_sell'); +$changeaccount = GETPOST('changeaccount','array'); +$changeaccount_buy = GETPOST('changeaccount_buy','array'); +$changeaccount_sell = GETPOST('changeaccount_sell','array'); +$search_ref = GETPOST('search_ref','alpha'); +$search_label = GETPOST('search_label','alpha'); +$search_desc = GETPOST('search_desc','alpha'); +$sortfield = GETPOST('sortfield','alpha'); +$sortorder = GETPOST('sortorder','alpha'); +$page = GETPOST('page','int'); +if ($page < 0) $page = 0; +$pageprev = $page - 1; +$pagenext = $page + 1; +//bug in page limit if ACCOUNTING_LIMIT_LIST_VENTILATION < $conf->liste_limit there is no pagination displayed ! +if (! empty($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION) && $conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION >= $conf->liste_limit) { + $limit = $conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION; +//} else if ($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION <= 0) { +// $limit = $conf->liste_limit; +} else { + $limit = $conf->liste_limit; +} +$offset = $limit * $page; + +if (! $sortfield) $sortfield="p.ref"; +if (! $sortorder) $sortorder="ASC"; + +// 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 +//at this time ACCOUNTING_SERVICE_SOLD_ACCOUNT & ACCOUNTING_PRODUCT_SOLD_ACCOUNT are account number not accountingacount rowid +//so we need to get those default value rowid first +$accounting = new AccountingAccount($db); +//TODO: we should need to check if result is a really exist accountaccount rowid..... +$aarowid_servbuy = $accounting->fetch('', ACCOUNTING_SERVICE_BUY_ACCOUNT); +$aarowid_prodbuy = $accounting->fetch('', ACCOUNTING_PRODUCT_BUY_ACCOUNT); +$aarowid_servsell = $accounting->fetch('', ACCOUNTING_SERVICE_SOLD_ACCOUNT); +$aarowid_prodsell = $accounting->fetch('', ACCOUNTING_PRODUCT_SOLD_ACCOUNT); + +$aacompta_servbuy = (! empty($conf->global->ACCOUNTING_SERVICE_BUY_ACCOUNT) ? $conf->global->ACCOUNTING_SERVICE_BUY_ACCOUNT : $langs->trans("CodeNotDef")); +$aacompta_prodbuy = (! empty($conf->global->ACCOUNTING_PRODUCT_BUY_ACCOUNT) ? $conf->global->ACCOUNTING_PRODUCT_BUY_ACCOUNT : $langs->trans("CodeNotDef")); +$aacompta_servsell = (! empty($conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT) ? $conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT : $langs->trans("CodeNotDef")); +$aacompta_prodsell = (! empty($conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT) ? $conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT : $langs->trans("CodeNotDef")); + +// Purge search criteria +if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers +{ + $search_ref=''; + $search_label=''; + $search_desc=''; +} + +//debug move header to top llxHeader('', $langs->trans("Accounts")); -$form = new Form($db); -print ''; +//TODO: modify to update all selected product with a sell account +if (is_array($changeaccount) && count($changeaccount) > 0 && $action == $langs->trans("Accountancy_code_sell")) { +//print_r ($changeaccount); + $error = 0; + + $db->begin(); + + $sql1 = "UPDATE " . MAIN_DB_PREFIX . "product as p"; + $sql1 .= " SET p.accountancy_code_sell=" . $account_number_sell; + $sql1 .= ' WHERE p.rowid IN (' . implode(',', $changeaccount) . ')'; + + dol_syslog('accountancy/customer/lines.php::changeaccount product sell sql= ' . $sql1); +print_r ($sql1); + $resql1 = $db->query($sql1); + if (! $resql1) { + $error ++; + setEventMessage($db->lasterror(), 'errors'); + } + if (! $error) { + $db->commit(); + setEventMessage($langs->trans('Save'), 'mesgs'); + } else { + $db->rollback(); + setEventMessage($db->lasterror(), 'errors'); + } +} -print ' - '; -$sql = "SELECT p.rowid, p.ref , p.label, p.description , p.accountancy_code_sell as codesell, p.accountancy_code_buy, p.tms, p.fk_product_type as product_type , p.tosell , p.tobuy "; -$sql .= " FROM " . MAIN_DB_PREFIX . "product as p"; -$sql .= " WHERE p.accountancy_code_sell IS NULL AND p.tosell = 1 OR p.accountancy_code_buy IS NULL AND p.tobuy = 1"; +//TODO For select box +print ''; -dol_syslog('accountancy/admin/productaccount.php:: $sql=' . $sql); -$resql = $db->query($sql); -if ($resql) { - $num = $db->num_rows($resql); - $i = 0; +/* + * Action + */ +//TODO +/* +if ($action == 'ventil') { + print '
' . $langs->trans("Processing") . '...
'; + if (! empty($codeventil_buy) && ! empty($mesCasesCochees)) { + if (! empty($codeventil_sell) && ! empty($mesCasesCochees)) { - /* -* view -*/ - - print '

'; - - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - - $var = true; - - while ( $i < min($num, 250) ) { - $obj = $db->fetch_object($resql); - $var = ! $var; - - $compta_prodsell = $obj->accountancy_code_sell; - if (empty($compta_prodsell)) { - if ($obj->product_type == 0) - $compta_prodsell = (! empty($conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT) ? $conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT : $langs->trans("CodeNotDef")); - else - $compta_prodsell = (! empty($conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT) ? $conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT : $langs->trans("CodeNotDef")); - } - - $compta_prodbuy = $obj->accountancy_code_buy; - if (empty($compta_prodbuy)) { - if ($obj->product_type == 0) - $compta_prodbuy = (! empty($conf->global->ACCOUNTING_PRODUCT_BUY_ACCOUNT) ? $conf->global->ACCOUNTING_PRODUCT_BUY_ACCOUNT : $langs->trans("CodeNotDef")); - else - $compta_prodbuy = (! empty($conf->global->ACCOUNTING_SERVICE_BUY_ACCOUNT) ? $conf->global->ACCOUNTING_SERVICE_BUY_ACCOUNT : $langs->trans("CodeNotDef")); - } - - $product_static = new Product($db); - - print ""; - // Ref produit - $product_static->ref = $objp->ref; - $product_static->id = $objp->rowid; - $product_static->type = $objp->type; - print ''; - print ''; - print ''; - print ''; - - print ''; - print ''; - - print ''; - print ''; - - print "\n"; - $i ++; - } - print "
' . $langs->trans("Ref") . '' . $langs->trans("Label") . '' . $langs->trans("Description") . '' . $langs->trans("Accountancy_code_buy") . '' . $langs->trans("Accountancy_code_buy_suggest") . '' . $langs->trans("Accountancy_code_sell") . '' . $langs->trans("Accountancy_code_sell_suggest") . '
'; - if ($product_static->id) - print $product_static->getNomUrl(1); - else - print ' '; - print '' . $obj->ref . '' . $obj->label . '' . $obj->description . '' . $obj->accountancy_code_buy . '' . $compta_prodbuy . '' . $obj->accountancy_code_sell . '' . $compta_prodsell . '
"; - $db->free($resql); -} else { - dol_print_error($db); + } else { + print '
' . $langs->trans("AnyLineVentilate") . '
'; + } + print '
' . $langs->trans("EndProcessing") . '
'; } +*/ +//do we really need to exclude old product not tosell / tobuy ? +//$sql = "SELECT p.rowid, p.ref , p.label, p.description , p.accountancy_code_sell, p.accountancy_code_buy, p.tms, p.fk_product_type as product_type , p.tosell , p.tobuy "; +//$sql .= " WHERE p.accountancy_code_sell IS NULL AND p.tosell = 1 OR p.accountancy_code_buy IS NULL AND p.tobuy = 1"; +//$sql .= " WHERE p.accountancy_code_sell ='' AND p.tosell = 1 OR p.accountancy_code_buy ='' AND p.tobuy = 1"; +$sql = "SELECT p.rowid, p.ref , p.label, p.description , p.accountancy_code_sell, p.accountancy_code_buy, p.tms, p.fk_product_type as product_type"; +$sql .= " FROM " . MAIN_DB_PREFIX . "product as p"; +//$sql .= " , " . MAIN_DB_PREFIX . "accountingaccount as aa"; +$sql .= " WHERE ("; +$sql .= " p.accountancy_code_sell ='' OR p.accountancy_code_sell IS NULL OR p.accountancy_code_buy ='' OR p.accountancy_code_buy IS NULL"; + +//Search on correct pcg version +$pcgver = $conf->global->CHARTOFACCOUNTS; +$sql .= " OR (p.accountancy_code_sell IS NOT NULL AND p.accountancy_code_sell != '' AND p.accountancy_code_sell NOT IN + (SELECT aa.account_number FROM " . MAIN_DB_PREFIX . "accountingaccount as aa , " . MAIN_DB_PREFIX . "accounting_system as asy WHERE fk_pcg_version = asy.pcg_version AND asy.rowid = " . $pcgver . "))"; + //(SELECT account_number FROM " . MAIN_DB_PREFIX . "accountingaccount as aa WHERE fk_pcg_version='PCG99-BASE'))"; +$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 . "accountingaccount as aa , " . MAIN_DB_PREFIX . "accounting_system as asy WHERE fk_pcg_version = asy.pcg_version AND asy.rowid = " . $pcgver . "))"; + //(SELECT account_number FROM " . MAIN_DB_PREFIX . "accountingaccount as aa WHERE fk_pcg_version='PCG99-BASE'))"; +$sql .= ")"; +//Add search filter like +if (strlen(trim($search_ref))) { + $sql .= " AND (p.ref like '" . $search_ref . "%')"; +} +if (strlen(trim($search_label))) { + $sql .= " AND (p.label like '" . $search_label . "%')"; +} +if (strlen(trim($search_desc))) { + $sql .= " AND (p.description like '%" . $search_desc . "%')"; +} +$sql.= $db->order($sortfield,$sortorder); + +$sql .= $db->plimit($limit + 1, $offset); + +dol_syslog("/accountancy/admin/productaccount.php:: sql=" . $sql, LOG_DEBUG); +$result = $db->query($sql); +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 '' . $langs->trans("DescProductAccountingAccount") . ' '; + print_liste_field_titre($langs->trans("RowId"), $_SERVER["PHP_SELF"],"p.rowid","",$param,'',$sortfield,$sortorder); + print '  '; + + +//DEBUG +//print $sql; + + print '

'; +// print ''; + + print ''; + print ''; + print ''; + + print ''; + print ''; + print ''; + print '
'; + print '
' . $langs->trans("ChangeAccount") . '
'; + print $langs->trans("Accountancy_code_buy") . ': ' . $form->select_account($account_number_buy, 'account_number_buy', 1,'', 0, 1); + print '
'; + print '
'; + print '
' . $langs->trans("ChangeAccount") . '
'; + print $langs->trans("Accountancy_code_sell") . ': ' . $form->select_account($account_number_sell, 'account_number_sell', 1, '', 0, 1); + print '
'; + print '
'; + //TODO change button + print ''; + print '
'; + + print ''; + print ''; +// print ''; +// print ''; +// print ''; + 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); + print ''; + print ''; + print ''; + print ''; + print_liste_field_titre(''); +// print_liste_field_titre(''); + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + + print ''; + print ''; +// print ''; + print ''; + + $var = true; + + + while ( $i < min($num_lines, 250) ) { + $obj = $db->fetch_object($result); + $var = ! $var; + + + $compta_prodsell = $obj->accountancy_code_sell; + if (empty($compta_prodsell)) { + if ($obj->product_type == 0) { + $compta_prodsell = (! empty($conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT) ? $conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT : $langs->trans("CodeNotDef")); + $compta_prodsell_id = $aarowid_prodsell; + } else { + $compta_prodsell = (! empty($conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT) ? $conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT : $langs->trans("CodeNotDef")); + $compta_prodsell_id = $aarowid_servsell; + } + } + + + $compta_prodbuy = $obj->accountancy_code_buy; + if (empty($compta_prodbuy)) { + if ($obj->product_type == 0) { + $compta_prodbuy = (! empty($conf->global->ACCOUNTING_PRODUCT_BUY_ACCOUNT) ? $conf->global->ACCOUNTING_PRODUCT_BUY_ACCOUNT : $langs->trans("CodeNotDef")); + $compta_prodbuy_id = $aarowid_prodbuy; + } else { + $compta_prodbuy = (! empty($conf->global->ACCOUNTING_SERVICE_BUY_ACCOUNT) ? $conf->global->ACCOUNTING_SERVICE_BUY_ACCOUNT : $langs->trans("CodeNotDef")); + $compta_prodbuy_id = $aarowid_servbuy; + } + } + + + $product_static = new Product($db); + + print ""; +//debug +print ''; + + print ""; + print ""; + // Ref produit as link + $product_static->ref = $obj->ref; + $product_static->id = $obj->rowid; + $product_static->type = $obj->type; + print ''; + + print ''; +//TODO ADJUST DESCRIPTION SIZE +// print ''; + //TODO: we shoul set a user defined value to adjust user square / wide screen size + $trunclengh = defined('ACCOUNTING_LENGTH_DESCRIPTION') ? ACCOUNTING_LENGTH_DESCRIPTION : 32; + print ''; + + //acountingaccount buy + print ''; +//TODO: replace by select +// print ''; + //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; + print ''; + + //acountingaccount sel + print ''; + +//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; + print ''; + //action edit & select box + print ''; + print ''; + //Checkbox select + print ''; + + print ""; + $i ++; + } + + $db->free($result); +} else { +// print $db->error(); + dol_print_error($db); +} + +print "
' . $langs->trans("Ref") . '' . $langs->trans("Label") . '' . $langs->trans("Description") . '' . $langs->trans("Accountancy_code_buy") . '' . $langs->trans("Accountancy_code_buy_suggest") . '' . $langs->trans("Accountancy_code_sell") . '' . $langs->trans("Accountancy_code_sell_suggest") . '' . $langs->trans("Ventilate") . '
/'.'
%% '; + print ''; +// print ''; + print ' '; + print ''; +// print ''; + print ' 
Compte Suggeres compta_prodbuy=' . $compta_prodbuy . ' -- compta_prodbuy_id' . $compta_prodbuy_id . '-- compta_prodsell:' . $compta_prodsell . '-- compta_prodsell_id' . $compta_prodsell_id . '
'; + if ($product_static->id) + print $product_static->getNomUrl(1); + else + print '- '; + print '' . $obj->label . '' . $obj->description . '' . nl2br(dol_trunc($obj->description, $trunclengh)) . '' . $obj->accountancy_code_buy . '' . $compta_prodbuy . ''; + print $form->select_account($compta_prodbuy_id, 'codeventil[]', 1); + print '' . $obj->accountancy_code_sell . ''; + print $form->select_account($compta_prodsell_id, 'codeventil[]', 1); + print '' . $obj->rowid . ''; + print img_edit(); + print ''; + print '
"; llxFooter(); $db->close(); \ No newline at end of file diff --git a/htdocs/accountancy/bookkeeping/card.php b/htdocs/accountancy/bookkeeping/card.php index 3656ae9f929..c1101fb6349 100644 --- a/htdocs/accountancy/bookkeeping/card.php +++ b/htdocs/accountancy/bookkeeping/card.php @@ -1,7 +1,7 @@ - * Copyright (C) 2013-2014 Florian Henry - * Copyright (C) 2013-2015 Alexandre Spangaro +/* Copyright (C) 2013-2014 Olivier Geffroy + * Copyright (C) 2013-2014 Florian Henry + * Copyright (C) 2013-2015 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 @@ -18,23 +18,23 @@ */ /** - * \file htdocs/accountancy/bookkeeping/card.php - * \ingroup Accounting Expert - * \brief Page to show account + * \file htdocs/accountancy/bookkeeping/card.php + * \ingroup Accounting Expert + * \brief Page to show account */ require '../../main.inc.php'; - + // Class require_once DOL_DOCUMENT_ROOT.'/accountancy/class/bookkeeping.class.php'; // Langs -$langs->load("accounting"); +$langs->load("accountancy"); // Security check $id = GETPOST('id', 'int'); if ($user->societe_id > 0) - accessforbidden(); + accessforbidden(); $action = GETPOST('action'); $piece_num = GETPOST("piece_num"); @@ -48,132 +48,132 @@ $debit = price2num(GETPOST('debit')); $credit = price2num(GETPOST('credit')); if ($action == "confirm_update") { - - $error = 0; - - if ((intval($debit) != 0) && (intval($credit) != 0)) { - setEventMessage($langs->trans('ErrorDebitCredit'), 'errors'); - $error ++; - } - - if (empty($error)) { - $book = new BookKeeping($db); - - $result = $book->fetch($id); - if ($result < 0) { - setEventMessage($book->errors, 'errors'); - } else { - $book->numero_compte = $numero_compte; - $book->code_tiers = $code_tiers; - $book->label_compte = $label_compte; - $book->debit = $debit; - $book->credit = $credit; - - if (! empty($debit)) { - $book->montant = $debit; - $book->sens = 'D'; - } - if (! empty($credit)) { - $book->montant = $credit; - $book->sens = 'C'; - } - - $result = $book->update(); - if ($result < 0) { - setEventMessage($book->errors, 'errors'); - } else { - setEventMessage($langs->trans('Saved'), 'mesgs'); - $action = ''; - } - } - } -} + + $error = 0; + + if ((intval($debit) != 0) && (intval($credit) != 0)) { + setEventMessage($langs->trans('ErrorDebitCredit'), 'errors'); + $error ++; + } + + if (empty($error)) { + $book = new BookKeeping($db); + + $result = $book->fetch($id); + if ($result < 0) { + setEventMessage($book->errors, 'errors'); + } else { + $book->numero_compte = $numero_compte; + $book->code_tiers = $code_tiers; + $book->label_compte = $label_compte; + $book->debit = $debit; + $book->credit = $credit; + + if (! empty($debit)) { + $book->montant = $debit; + $book->sens = 'D'; + } + if (! empty($credit)) { + $book->montant = $credit; + $book->sens = 'C'; + } + + $result = $book->update(); + if ($result < 0) { + setEventMessage($book->errors, 'errors'); + } else { + setEventMessage($langs->trans('Saved'), 'mesgs'); + $action = ''; + } + } + } +} else if ($action == "add") { - - $error = 0; - if ((intval($debit) != 0) && (intval($credit) != 0)) { - setEventMessage($langs->trans('ErrorDebitCredit'), 'errors'); - $error ++; - } - - if (empty($error)) { - $book = new BookKeeping($db); - - $book->numero_compte = $numero_compte; - $book->code_tiers = $code_tiers; - $book->label_compte = $label_compte; - $book->debit = $debit; - $book->credit = $credit; - $book->doc_date = GETPOST('doc_date'); - $book->doc_type = GETPOST('doc_type'); - $book->piece_num = $piece_num; - $book->doc_ref = GETPOST('doc_ref'); - $book->code_journal = GETPOST('code_journal'); - $book->fk_doc = GETPOST('fk_doc'); - $book->fk_docdet = GETPOST('fk_docdet'); - - if (! empty($debit)) { - $book->montant = $debit; - $book->sens = 'D'; - } - if (! empty($credit)) { - $book->montant = $credit; - $book->sens = 'C'; - } - - $result = $book->create_std($user); - if ($result < 0) { - setEventMessage($book->errors, 'errors'); - } else { - setEventMessage($langs->trans('Saved'), 'mesgs'); - $action = ''; - } - } -} + $error = 0; + + if ((intval($debit) != 0) && (intval($credit) != 0)) { + setEventMessage($langs->trans('ErrorDebitCredit'), 'errors'); + $error ++; + } + + if (empty($error)) { + $book = new BookKeeping($db); + + $book->numero_compte = $numero_compte; + $book->code_tiers = $code_tiers; + $book->label_compte = $label_compte; + $book->debit = $debit; + $book->credit = $credit; + $book->doc_date = GETPOST('doc_date'); + $book->doc_type = GETPOST('doc_type'); + $book->piece_num = $piece_num; + $book->doc_ref = GETPOST('doc_ref'); + $book->code_journal = GETPOST('code_journal'); + $book->fk_doc = GETPOST('fk_doc'); + $book->fk_docdet = GETPOST('fk_docdet'); + + if (! empty($debit)) { + $book->montant = $debit; + $book->sens = 'D'; + } + if (! empty($credit)) { + $book->montant = $credit; + $book->sens = 'C'; + } + + $result = $book->create_std($user); + if ($result < 0) { + setEventMessage($book->errors, 'errors'); + } else { + setEventMessage($langs->trans('Saved'), 'mesgs'); + $action = ''; + } + } +} else if ($action == "confirm_delete") { - $book = new BookKeeping($db); - - $result = $book->fetch($id); - - $piece_num = $book->piece_num; - - if ($result < 0) { - setEventMessage($book->errors, 'errors'); - } else { - $result = $book->delete($user); - if ($result < 0) { - setEventMessage($book->errors, 'errors'); - } - } - $action = ''; -} + $book = new BookKeeping($db); + + $result = $book->fetch($id); + + $piece_num = $book->piece_num; + + if ($result < 0) { + setEventMessage($book->errors, 'errors'); + } else { + $result = $book->delete($user); + if ($result < 0) { + setEventMessage($book->errors, 'errors'); + } + } + $action = ''; +} else if ($action == "confirm_create") { - $book = new BookKeeping($db); - - $book->label_compte = ''; - $book->debit = 0; - $book->credit = 0; - $book->doc_date = $date_start = dol_mktime(0, 0, 0, GETPOST('doc_datemonth'), GETPOST('doc_dateday'), GETPOST('doc_dateyear')); - $book->doc_type = GETPOST('doc_type'); - $book->piece_num = GETPOST('next_num_mvt'); - $book->doc_ref = GETPOST('doc_ref'); - $book->code_journal = GETPOST('code_journal'); - $book->fk_doc = 0; - $book->fk_docdet = 0; - - $book->montant = 0; - - $result = $book->create_std($user); - if ($result < 0) { - setEventMessage($book->errors, 'errors'); - } else { - setEventMessage($langs->trans('Saved'), 'mesgs'); - $action = ''; - $piece_num = $book->piece_num; - } + $book = new BookKeeping($db); + + $book->label_compte = ''; + $book->debit = 0; + $book->credit = 0; + $book->doc_date = $date_start = dol_mktime(0, 0, 0, GETPOST('doc_datemonth'), GETPOST('doc_dateday'), GETPOST('doc_dateyear')); + $book->doc_type = GETPOST('doc_type'); + $book->piece_num = GETPOST('next_num_mvt'); + $book->doc_ref = GETPOST('doc_ref'); + $book->code_journal = GETPOST('code_journal'); + $book->fk_doc = 0; + $book->fk_docdet = 0; + + $book->montant = 0; + + $result = $book->create_std($user); + if ($result < 0) { + setEventMessage($book->errors, 'errors'); + } else { + setEventMessage($langs->trans('Saved'), 'mesgs'); + $action = ''; + $piece_num = $book->piece_num; + } } llxHeader(); @@ -181,197 +181,194 @@ llxHeader(); $html = new Form($db); /* - * Confirmation to delete the command + * Confirmation to delete the command */ if ($action == 'delete') { - $formconfirm = $html->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $id, $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvt'), 'confirm_delete', '', 0, 1); - print $formconfirm; + $formconfirm = $html->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $id, $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvt'), 'confirm_delete', '', 0, 1); + print $formconfirm; } if ($action == 'create') { - - print_fiche_titre($langs->trans("CreateMvts")); - - $code_journal_array = array ( - $conf->global->ACCOUNTING_SELL_JOURNAL => $conf->global->ACCOUNTING_SELL_JOURNAL, - $conf->global->ACCOUNTING_PURCHASE_JOURNAL => $conf->global->ACCOUNTING_PURCHASE_JOURNAL, - $conf->global->ACCOUNTING_BANK_JOURNAL => $conf->global->ACCOUNTING_BANK_JOURNAL, - $conf->global->ACCOUNTING_SOCIAL_JOURNAL => $conf->global->ACCOUNTING_SOCIAL_JOURNAL - ); - - $book = new BookKeeping($db); - $next_num_mvt = $book->getNextNumMvt(); - - print '
'; - print '' . "\n"; - print '' . "\n"; + print_fiche_titre($langs->trans("CreateMvts")); - dol_fiche_head(); + $code_journal_array = array ( + $conf->global->ACCOUNTING_SELL_JOURNAL => $conf->global->ACCOUNTING_SELL_JOURNAL, + $conf->global->ACCOUNTING_PURCHASE_JOURNAL => $conf->global->ACCOUNTING_PURCHASE_JOURNAL, + $conf->global->ACCOUNTING_SOCIAL_JOURNAL => $conf->global->ACCOUNTING_SOCIAL_JOURNAL, + $conf->global->ACCOUNTING_MISCELLANEOUS_JOURNAL => $conf->global->ACCOUNTING_MISCELLANEOUS_JOURNAL, + $conf->global->ACCOUNTING_EXPENSEREPORT_JOURNAL => $conf->global->ACCOUNTING_EXPENSEREPORT_JOURNAL + ); - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - - print ''; - print ''; - print ''; - - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print '
' . $langs->trans("NumMvts") . '' . $next_num_mvt . '
' . $langs->trans("Docdate") . ''; - print $html->select_date('', 'doc_date', '', '', '', "create_mvt", 1, 1); - print '
' . $langs->trans("Codejournal") . '' . $html->selectarray('code_journal', $code_journal_array) . '
' . $langs->trans("Docref") . '
' . $langs->trans("Doctype") . '
'; + $book = new BookKeeping($db); + $next_num_mvt = $book->getNextNumMvt(); + + print ''; + print '' . "\n"; + print '' . "\n"; + + dol_fiche_head(); + + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + + print ''; + print ''; + print ''; + + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print '
' . $langs->trans("NumMvts") . '' . $next_num_mvt . '
' . $langs->trans("Docdate") . ''; + print $html->select_date('', 'doc_date', '', '', '', "create_mvt", 1, 1); + print '
' . $langs->trans("Codejournal") . '' . $html->selectarray('code_journal', $code_journal_array) . '
' . $langs->trans("Docref") . '
' . $langs->trans("Doctype") . '
'; dol_fiche_end(); - print '
'; + print '
'; print '     '; print '
'; - print ''; -} -else -{ - $book = new BookKeeping($db); - $result = $book->fetch_per_mvt($piece_num); - if ($result < 0) { - setEventMessage($book->errors, 'errors'); - } - if (! empty($book->piece_num)) { - - print_fiche_titre($langs->trans("UpdateMvts")); - - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print '
' . $langs->trans("NumMvts") . '' . $book->piece_num . '
' . $langs->trans("Docdate") . '' . dol_print_date($book->doc_date, 'daytextshort') . '
' . $langs->trans("Codejournal") . '' . $book->code_journal . '
' . $langs->trans("Docref") . '' . $book->doc_ref . '
' . $langs->trans("Doctype") . '' . $book->doc_type . '
'; - - $result = $book->fetch_all_per_mvt($piece_num); - if ($result < 0) { - setEventMessage($book->errors, 'errors'); - } else { - - print_fiche_titre($langs->trans("ListeMvts")); - print ""; - if (count($book->linesmvt) > 0) { - - print ''; - - print_liste_field_titre($langs->trans("Numerocompte")); - print_liste_field_titre($langs->trans("Code_tiers")); - print_liste_field_titre($langs->trans("Labelcompte")); - print_liste_field_titre($langs->trans("Debit")); - print_liste_field_titre($langs->trans("Credit")); - print_liste_field_titre($langs->trans("Amount")); - print_liste_field_titre($langs->trans("Sens")); - print_liste_field_titre(''); + print ''; +} else { + $book = new BookKeeping($db); + $result = $book->fetch_per_mvt($piece_num); + if ($result < 0) { + setEventMessage($book->errors, 'errors'); + } + if (! empty($book->piece_num)) { - print "\n"; - - foreach ( $book->linesmvt as $line ) { - $var = ! $var; - print ""; - - if ($action == 'update' && $line->id == $id) { - - print ''; - print '' . "\n"; - print '' . "\n"; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - } - else { - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - - print ''; - } - print "\n"; - } - - if ($action == "" || $action == 'add') { - $var = ! $var; - print ""; - - print ''; - print '' . "\n"; - print '' . "\n"; - print '' . "\n"; - print '' . "\n"; - print '' . "\n"; - print '' . "\n"; - print '' . "\n"; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - } - print '
' . $line->montant . '' . $line->sens . ''; - print ''; - print ''; - print '' . $line->numero_compte . '' . $line->code_tiers . '' . $line->label_compte . '' . $line->debit . '' . $line->credit . '' . $line->montant . '' . $line->sens . ''; - print ''; - print img_edit(); - print ' '; - print ''; - print img_delete(); - print ''; - - print '
'; - print ''; - } - } - } - else { - print_fiche_titre($langs->trans("NoRecords")); - } + print_fiche_titre($langs->trans("UpdateMvts")); + + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print '
' . $langs->trans("NumMvts") . '' . $book->piece_num . '
' . $langs->trans("Docdate") . '' . dol_print_date($book->doc_date, 'daytextshort') . '
' . $langs->trans("Codejournal") . '' . $book->code_journal . '
' . $langs->trans("Docref") . '' . $book->doc_ref . '
' . $langs->trans("Doctype") . '' . $book->doc_type . '
'; + + $result = $book->fetch_all_per_mvt($piece_num); + if ($result < 0) { + setEventMessage($book->errors, 'errors'); + } else { + + print_fiche_titre($langs->trans("ListeMvts")); + print ""; + if (count($book->linesmvt) > 0) { + + print ''; + + print_liste_field_titre($langs->trans("Numerocompte")); + print_liste_field_titre($langs->trans("Code_tiers")); + print_liste_field_titre($langs->trans("Labelcompte")); + print_liste_field_titre($langs->trans("Debit")); + print_liste_field_titre($langs->trans("Credit")); + print_liste_field_titre($langs->trans("Amount")); + print_liste_field_titre($langs->trans("Sens")); + print_liste_field_titre(''); + + print "\n"; + + foreach ( $book->linesmvt as $line ) { + $var = ! $var; + print ""; + + if ($action == 'update' && $line->id == $id) { + + print ''; + print '' . "\n"; + print '' . "\n"; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + } else { + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + + print ''; + } + print "\n"; + } + + if ($action == "" || $action == 'add') { + $var = ! $var; + print ""; + + print ''; + print '' . "\n"; + print '' . "\n"; + print '' . "\n"; + print '' . "\n"; + print '' . "\n"; + print '' . "\n"; + print '' . "\n"; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + } + print '
' . $line->montant . '' . $line->sens . ''; + print ''; + print ''; + print '' . $line->numero_compte . '' . $line->code_tiers . '' . $line->label_compte . '' . $line->debit . '' . $line->credit . '' . $line->montant . '' . $line->sens . ''; + print ''; + print img_edit(); + print ' '; + print ''; + print img_delete(); + print ''; + + print '
'; + print ''; + } + } + } + else { + print_fiche_titre($langs->trans("NoRecords")); + } } llxFooter(); diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php index 6c06c2ba3d7..cc90b3873db 100644 --- a/htdocs/accountancy/bookkeeping/list.php +++ b/htdocs/accountancy/bookkeeping/list.php @@ -1,7 +1,7 @@ * Copyright (C) 2013-2014 Florian Henry - * Copyright (C) 2013-2014 Alexandre Spangaro + * Copyright (C) 2013-2015 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 @@ -31,6 +31,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; require_once DOL_DOCUMENT_ROOT.'/accountancy/class/html.formventilation.class.php'; require_once DOL_DOCUMENT_ROOT.'/accountancy/class/bookkeeping.class.php'; +// Langs +$langs->load("accountancy"); $page = GETPOST("page"); $sortorder = GETPOST("sortorder"); @@ -155,8 +157,6 @@ else { print ''; - print '' . $langs->trans("NewAccountingMvt") . '
'; - print '
'; print ''; print ''; @@ -209,7 +209,7 @@ else { print ""; print '' . $obj->doc_type . ''; - print '' . dol_print_date($db->jdate($obj->doc_date), 'day') . ''; + print '' . dol_print_date($db->jdate($obj->doc_date), 'day') . ''; print '' . $obj->doc_ref . ''; print '' . length_accountg($obj->numero_compte) . ''; print '' . length_accounta($obj->code_tiers) . ''; @@ -224,6 +224,11 @@ else { $i ++; } print ""; + + print ''; + $db->free($resql); } else { dol_print_error($db); diff --git a/htdocs/accountancy/class/accountingaccount.class.php b/htdocs/accountancy/class/accountingaccount.class.php index f3ad3e23a47..5fc546a8ce9 100644 --- a/htdocs/accountancy/class/accountingaccount.class.php +++ b/htdocs/accountancy/class/accountingaccount.class.php @@ -3,6 +3,7 @@ * Copyright (C) 2013-2015 Alexandre Spangaro * Copyright (C) 2013-2014 Florian Henry * Copyright (C) 2014 Juanjo Menent + * Copyright (C) 2015 Ari Elbaz (elarifr) * * 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 @@ -119,8 +120,6 @@ class AccountingAccount extends CommonObject $error = 0; $now = dol_now(); - $now=dol_now(); - // Clean parameters if (isset($this->fk_pcg_version)) $this->fk_pcg_version = trim($this->fk_pcg_version); diff --git a/htdocs/accountancy/class/html.formventilation.class.php b/htdocs/accountancy/class/html.formventilation.class.php index abd66a7885d..a596d481d9c 100644 --- a/htdocs/accountancy/class/html.formventilation.class.php +++ b/htdocs/accountancy/class/html.formventilation.class.php @@ -2,6 +2,7 @@ /* Copyright (C) 2013-2014 Florian Henry * Copyright (C) 2013-2014 Olivier Geffroy * Copyright (C) 2013-2014 Alexandre Spangaro + * Copyright (C) 2015 Ari Elbaz (elarifr) * * 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 @@ -91,10 +92,13 @@ class FormVentilation extends Form * @param string $htmlname Name of field in html form * @param int $showempty Add an empty field * @param array $event Event options + * @param int $select_in $selectid value is a aa.rowid (0 default) or aa.account_number (1) + * @param int $select_out set value returned by select 0=rowid (default), 1=account_number + * @param int $aabase set accountingaccount base class to display empty=all or from 1 to 8 will display only account beginning by * * @return string String with HTML select */ - function select_account($selectid, $htmlname = 'account', $showempty = 0, $event = array()) + function select_account($selectid, $htmlname = 'account', $showempty = 0, $event = array(), $select_in = 0, $select_out = 0, $aabase = '') { global $conf; @@ -116,21 +120,26 @@ class FormVentilation extends Form if ($showempty) $out .= ''; $num = $this->db->num_rows($resql); + $trunclength = defined('ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT') ? $conf->global->ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT : '50'; $i = 0; if ($num) { while ( $i < $num ) { $obj = $this->db->fetch_object($resql); $label = $obj->account_number . ' - ' . $obj->label; - + $label = dol_trunc($label, $trunclength); + if ($select_in == 0 ) $select_value_in = $obj->rowid; + if ($select_in == 1 ) $select_value_in = $obj->account_number; + if ($select_out == 0 ) $select_value_out = $obj->rowid; + if ($select_out == 1 ) $select_value_out = $obj->account_number; // Remember guy's we store in database llx_facturedet the rowid of accountingaccount and not the account_number // Because same account_number can be share between different accounting_system and do have the same meaning - if (($selectid != '') && $selectid == $obj->rowid) { + if (($selectid != '') && $selectid == $select_value_in) { // $out .= ''; - $out .= ''; + $out .= ''; } else { // $out .= ''; - $out .= ''; + $out .= ''; } $i ++; } diff --git a/htdocs/accountancy/customer/lines.php b/htdocs/accountancy/customer/lines.php index 2bbb839459f..d00296ed2b9 100644 --- a/htdocs/accountancy/customer/lines.php +++ b/htdocs/accountancy/customer/lines.php @@ -1,7 +1,7 @@ * Copyright (C) 2013-2015 Alexandre Spangaro - * Copyright (C) 2014 Ari Elbaz (elarifr) + * Copyright (C) 2014-2015 Ari Elbaz (elarifr) * Copyright (C) 2014 Florian Henry * Copyright (C) 2014 Juanjo Menent * @@ -39,7 +39,7 @@ $langs->load("accountancy"); $account_parent = GETPOST('account_parent'); $changeaccount = GETPOST('changeaccount'); $search_ref = GETPOST('search_ref','alpha'); -$search_facture = GETPOST('search_facture','alpha'); +$search_invoice = GETPOST('search_invoice','alpha'); $search_label = GETPOST('search_label','alpha'); $search_desc = GETPOST('search_desc','alpha'); $search_amount = GETPOST('search_amount','alpha'); @@ -49,13 +49,37 @@ $sortfield = GETPOST('sortfield','alpha'); $sortorder = GETPOST('sortorder','alpha'); $page = GETPOST('page','int'); -if ($page == -1) { $page = 0; } -$offset = $conf->liste_limit * $page; +//if ($page == -1) { $page = 0; } +if ($page < 0) $page = 0; + $pageprev = $page - 1; $pagenext = $page + 1; -$limit = $conf->liste_limit; -if (! $sortfield) $sortfield="f.facnumber"; -if (! $sortorder) $sortorder="DESC"; +//$limit = $conf->liste_limit; +if (! empty($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION)) { + $limit = $conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION; +} else if ($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION <= 0) { + $limit = $conf->liste_limit; +} else { + $limit = $conf->liste_limit; +} +//$offset = $conf->liste_limit * $page; +$offset = $limit * $page; + +// TODO : remove comment +//elarifr we can not use only +//$sql .= " ORDER BY l.rowid"; +// f.datef will order like FA08 FA09 FA10 FA05 FA06 FA07 FA04... +// f.facnumber will not order properly invoice / avoir / accompte you can have All AC then All AV and all FA +// l.rowid when an invoice is edited rowid are added at end of table & facturedet.rowid are not ordered +//if (! $sortfield) $sortfield="f.facnumber"; +if (! $sortfield) $sortfield="f.datef, f.facnumber, l.rowid"; + +//if (! $sortorder) $sortorder="DESC"; +if (! $sortorder) { + if ($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_DONE > 0) { + $sortorder = " DESC "; + } +} // Security check if ($user->societe_id > 0) @@ -69,7 +93,7 @@ $formventilation = new FormVentilation($db); if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers { $search_ref=''; - $search_facture=''; + $search_invoice=''; $search_label=''; $search_desc=''; $search_amount=''; @@ -106,6 +130,31 @@ if (is_array($changeaccount) && count($changeaccount) > 0) { llxHeader('', $langs->trans("CustomersVentilation") . ' - ' . $langs->trans("Dispatched")); +print ''; + +/* + * Action + */ + + +/* + * Customer Invoice lines + */ $sql = "SELECT l.rowid , f.facnumber, f.rowid as facid, l.fk_product, l.description, l.total_ht, l.qty, l.tva_tx, l.fk_code_ventilation, aa.label, aa.account_number,"; $sql .= " p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.fk_product_type as type"; $sql .= " FROM " . MAIN_DB_PREFIX . "facture as f"; @@ -114,8 +163,8 @@ $sql .= " , " . MAIN_DB_PREFIX . "facturedet as l"; $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = l.fk_product"; $sql .= " WHERE f.rowid = l.fk_facture AND f.fk_statut >= 1 AND l.fk_code_ventilation <> 0 "; $sql .= " AND aa.rowid = l.fk_code_ventilation"; -if (strlen(trim(GETPOST("search_facture")))) { - $sql .= " AND f.facnumber like '%" . $search_facture . "%'"; +if (strlen(trim($search_invoice))) { + $sql .= " AND f.facnumber like '%" . $search_invoice . "%'"; } if (strlen(trim($search_ref))) { $sql .= " AND p.ref like '%" . $search_ref . "%'"; @@ -151,7 +200,7 @@ if ($result) { print ''; print ''; - print '

' . $langs->trans("ChangeAccount") . '
'; + print '
' . $langs->trans("ChangeAccount") . '
'; print $formventilation->select_account($account_parent, 'account_parent', 1); print '
'; @@ -164,10 +213,11 @@ if ($result) { print_liste_field_titre($langs->trans("Account"), $_SERVER["PHP_SELF"],"aa.account_number","",$param,'align="center"',$sortfield,$sortorder); print_liste_field_titre(''); print_liste_field_titre(''); - print_liste_field_titre(''); + print_liste_field_titre($langs->trans("Ventilate").'
/','','','','','align="center"'); print "\n"; - - print '
'; + + print ''; + print ''; print ''; print ''; print ''; @@ -188,12 +238,12 @@ if ($result) { print ""; - // Ref facture + // Ref Invoice $facture_static->ref = $objp->facnumber; $facture_static->id = $objp->facid; print ''; - // Ref produit + // Ref Product $product_static->ref = $objp->product_ref; $product_static->id = $objp->product_id; $product_static->type = $objp->type; @@ -208,8 +258,8 @@ if ($result) { print ''; print ''; print ''; - print ''; - print ''; + print ''; diff --git a/htdocs/accountancy/customer/list.php b/htdocs/accountancy/customer/list.php index ac1c3429658..eb6446ae13d 100644 --- a/htdocs/accountancy/customer/list.php +++ b/htdocs/accountancy/customer/list.php @@ -1,7 +1,7 @@ - * Copyright (C) 2013-2014 Alexandre Spangaro - * Copyright (C) 2014 Ari Elbaz (elarifr) + * Copyright (C) 2013-2015 Alexandre Spangaro + * Copyright (C) 2014-2015 Ari Elbaz (elarifr) * Copyright (C) 2013-2014 Florian Henry * Copyright (C) 2014 Juanjo Menent * @@ -31,16 +31,52 @@ require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; require_once DOL_DOCUMENT_ROOT.'/accountancy/class/html.formventilation.class.php'; +require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php'; // Langs $langs->load("compta"); $langs->load("bills"); +$langs->load("other"); $langs->load("main"); $langs->load("accountancy"); $action = GETPOST('action'); $codeventil = GETPOST('codeventil', 'array'); $mesCasesCochees = GETPOST('mesCasesCochees', 'array'); +$search_ref = GETPOST('search_ref','alpha'); +$search_label = GETPOST('search_label','alpha'); +$search_desc = GETPOST('search_desc','alpha'); + +$sortfield = GETPOST('sortfield','alpha'); +$sortorder = GETPOST('sortorder','alpha'); +//Should move to top with all GETPOST +$page = GETPOST('page'); +if ($page < 0) $page = 0; + +if (! empty($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION)) { + $limit = $conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION; +} else if ($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION <= 0) { + $limit = $conf->liste_limit; +} else { + $limit = $conf->liste_limit; +} +$offset = $limit * $page; +//End Should move to top with all GETPOST + +// TODO : remove comment +//elarifr we can not use only +//$sql .= " ORDER BY l.rowid"; +// f.datef will order like FA08 FA09 FA10 FA05 FA06 FA07 FA04... +// f.facnumber will not order properly invoice / avoir / accompte you can have All AC then All AV and all FA +// l.rowid when an invoice is edited rowid are added at end of table & facturedet.rowid are not ordered +//if (! $sortfield) $sortfield="l.rowid"; +if (! $sortfield) $sortfield="f.datef, f.facnumber, l.rowid"; +//if (! $sortorder) $sortorder="DESC"; +if (! $sortorder) { + if ($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_TODO > 0) { + $sortorder = " DESC "; + } +} // Security check if ($user->societe_id > 0) @@ -50,8 +86,31 @@ if (! $user->rights->accounting->ventilation->dispatch) $formventilation = new FormVentilation($db); +//Defaut AccountingAccount RowId Product / Service +//at this time ACCOUNTING_SERVICE_SOLD_ACCOUNT & ACCOUNTING_PRODUCT_SOLD_ACCOUNT are account number not accountingacount rowid +//so we need to get those default value rowid first +$accounting = new AccountingAccount($db); +//TODO: we should need to check if result is a really exist accountaccount rowid..... +$aarowid_s = $accounting->fetch('', ACCOUNTING_SERVICE_SOLD_ACCOUNT); +$aarowid_p = $accounting->fetch('', ACCOUNTING_PRODUCT_SOLD_ACCOUNT); + +// Purge search criteria +if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers +{ + $search_ref=''; + $search_label=''; + $search_desc=''; +} +/* + * View + */ + llxHeader('', $langs->trans("Ventilation")); +//debug +//print_r($aarowid_s); +//print_r($aarowid_p); + print ''; + /* * Action */ @@ -123,7 +183,13 @@ $offset = $limit * $page; $sql = "SELECT f.facnumber, f.rowid as facid, l.fk_product, l.description, l.total_ht, l.rowid, l.fk_code_ventilation,"; $sql .= " p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.fk_product_type as type, p.accountancy_code_sell as code_sell"; +// A REVOIR elarifr si vraiment necessaire de rajouter , p.fk_product_type as type. le type produit / service est de facto defini pour chaque ligne de facturedet.product_type +// il est donc plus logique de se servir de l.product_type au lieu de p.fk_product_type $sql .= " , aa.rowid as aarowid"; +// we need f.datef to reorder lines +$sql .= " , f.datef"; +// we need to use llx_facturedet l.product_type as used at the time on invoice. if llx_product fk_product_type is changed later it could not change the sell already made ! +$sql .= " , l.product_type as type_l"; $sql .= " FROM " . MAIN_DB_PREFIX . "facture as f"; $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "facturedet as l ON f.rowid = l.fk_facture"; $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = l.fk_product"; @@ -131,14 +197,27 @@ $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accountingaccount as aa ON p.accountan $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_system as accsys ON accsys.pcg_version = aa.fk_pcg_version"; $sql .= " WHERE f.fk_statut > 0 AND fk_code_ventilation <= 0"; $sql .= " AND (accsys.rowid='" . $conf->global->CHARTOFACCOUNTS . "' OR p.accountancy_code_sell IS NULL OR p.accountancy_code_sell ='')"; +// Add search filter like +if (strlen(trim($search_ref))) { + $sql .= " AND (p.ref like '%" . $search_ref . "%')"; +} +if (strlen(trim($search_label))) { + $sql .= " AND (p.label like '%" . $search_label . "%')"; +} +if (strlen(trim($search_desc))) { + $sql .= " AND (l.description like '%" . $search_desc . "%')"; +} if (! empty($conf->multicompany->enabled)) { $sql .= " AND f.entity IN (" . getEntity("facture", 1) . ")"; } +//TODO: Remove comment +//replaced by default value $sortfield,$sortorder +//$sql .= " ORDER BY l.rowid"; +//if ($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_TODO > 0) { +// $sql .= " DESC "; +//} +$sql.= $db->order($sortfield,$sortorder); -$sql .= " ORDER BY l.rowid"; -if ($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_TODO > 0) { - $sql .= " DESC "; -} $sql .= $db->plimit($limit + 1, $offset); dol_syslog("/accountancy/customer/list.php sql=" . $sql, LOG_DEBUG); @@ -156,58 +235,96 @@ if ($result) { print ''; print '
' . $facture_static->getNomUrl(1) . '' . nl2br(dol_trunc($objp->description, 32)) . '' . price($objp->total_ht) . '' . $codecompta . '' . $objp->rowid . ''; + print '' . $objp->rowid . ''; print img_edit(); print '
'; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; + print ''; + print_liste_field_titre($langs->trans("Invoice"), $_SERVER["PHP_SELF"],"f.facnumber","",$param,'',$sortfield,$sortorder); + 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); + print_liste_field_titre($langs->trans("Amount"),'','','','','align="right"'); + print_liste_field_titre($langs->trans("AccountAccounting"),'','','','','align="center"'); + print_liste_field_titre($langs->trans("IntoAccount"),'','','','','align="center"'); + print_liste_field_titre(''); + print_liste_field_titre($langs->trans("Ventilate") . '
/','','','','','align="center"'); print ''; +// We add search filter +/* But Hit Enter will validate ventilation.... + print ''; + print ''; + print ''; + print ''; + print ''; + + print ''; + print ''; + print ''; +*/ $facture_static = new Facture($db); $product_static = new Product($db); $form = new Form($db); - $var = True; + $var = true; while ( $i < min($num_lines, $limit) ) { $objp = $db->fetch_object($result); $var = ! $var; // product_type: 0 = service ? 1 = product - // if product does not exist we use the value of product_type provided in facturedet to define if this is a product or service - // issue : if we change product_type value in product DB it should differ from the value stored in facturedet DB ! - $code_sell_notset = ''; + // C'est le contraire dans les base !!!!!! IT IS INVERTED IN LLX_PRODUCT & LLX_FACTUREDET + // elarifr define account numbercode comptable si pas defini dans la fiche produit a partir des lignes de facturation + // product_type: 1 = service ? 0 = product + // because some modules like subtotal module l.product_type can be other than 0 or 1 ! and we don't put in account lines with product_type=9 + // first we check product.fk_product_type as type and l.product_type as type_l + // if product does not exist we use the value of l.product_type provided in facturedet to define if this is a product or service + // issue : if we change product_type value in product DB it should differ from the value stored in facturedet DB ! so we report both and user make choice of accounting account. + $objp->code_sell_l = ''; + $objp->code_sell_p = ''; + $objp->aarowid_suggest = ''; + $code_sell_p_l_differ = ''; - if (empty($objp->code_sell)) { - $code_sell_notset = 'color:red'; - - if (! empty($objp->type)) { - if ($objp->type == 1) { - $objp->code_sell = (! empty($conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT) ? $conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT : $langs->trans("CodeNotDef")); - } else { - $objp->code_sell = (! empty($conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT) ? $conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT : $langs->trans("CodeNotDef")); - } - } else { - $code_sell_notset = 'color:blue'; - - if ($objp->type == 1) { - $objp->code_sell = (! empty($conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT) ? $conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT : $langs->trans("CodeNotDef")); - } else { - $objp->code_sell = (! empty($conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT) ? $conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT : $langs->trans("CodeNotDef")); - } + //check if code_sell defined in product or set default value according p.fk_product_type do not care lines when product_type value not 0 || 1 + //and we set suggested accounting account rowid as $objp->aarowid_s + $code_sell_p_notset = ''; + $objp->aarowid_suggest = $objp->aarowid; + if ( ! empty($objp->code_sell)) { + $objp->code_sell_p = $objp->code_sell; + } else { + $code_sell_p_notset = 'color:red'; + if ($objp->type == 1) { + $objp->code_sell_p = (! empty($conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT) ? $conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT : $langs->trans("CodeNotDef")); + } + elseif ($objp->type == 0) { + $objp->code_sell_p = (! empty($conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT) ? $conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT : $langs->trans("CodeNotDef")); } } + // check facturedet.product_type & set default value according l.type_l, do not care lines when product_type value not 0 || 1 +// if ( ! empty($objp->type_l)) { +// $objp->code_sell_l = $objp->type_l; +// } else { + if ($objp->type_l == 1) { + $objp->code_sell_l = (! empty($conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT) ? $conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT : $langs->trans("CodeNotDef")); + if ($objp->aarowid == '') $objp->aarowid_suggest = $aarowid_s; + } + elseif ($objp->type_l == 0) { + $objp->code_sell_l = (! empty($conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT) ? $conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT : $langs->trans("CodeNotDef")); + if ($objp->aarowid == '') $objp->aarowid_suggest = $aarowid_p; + } +// } + + + //if not same code for product fk_prouct_type and facturedet.product_type, product has been change after sale and must report + if ($objp->code_sell_l <> $objp->code_sell_p) $code_sell_p_l_differ = 'color:red'; print ""; - // Ref facture + // Ref Invoice $facture_static->ref = $objp->facnumber; $facture_static->id = $objp->facid; print ''; - - // Ref produit + // Ref Customer Invoice $product_static->ref = $objp->product_ref; $product_static->id = $objp->product_id; $product_static->type = $objp->type; @@ -218,27 +335,39 @@ if ($result) { print ' '; print ''; - print ''; - print ''; + print ''; + //TODO: we should set a user defined value to adjust user square / wide screen size + $trunclength = defined('ACCOUNTING_LENGTH_DESCRIPTION') ? ACCOUNTING_LENGTH_DESCRIPTION : 32; + print ''; print ''; - print ''; // Colonne choix du compte print ''; + print ''; // Colonne choix ligne a ventiler print ''; - +//debug +//print ''; print ''; $i ++; } @@ -250,5 +379,5 @@ if ($result) { print $db->error(); } -$db->close(); llxFooter(); +$db->close(); diff --git a/htdocs/accountancy/supplier/lines.php b/htdocs/accountancy/supplier/lines.php index 917ee15f1d4..80f7bc5e6ee 100644 --- a/htdocs/accountancy/supplier/lines.php +++ b/htdocs/accountancy/supplier/lines.php @@ -1,7 +1,7 @@ * Copyright (C) 2013-2015 Alexandre Spangaro - * Copyright (C) 2014 Ari Elbaz (elarifr) + * Copyright (C) 2014-2015 Ari Elbaz (elarifr) * Copyright (C) 2013-2014 Florian Henry * Copyright (C) 2014 Juanjo Menent * @@ -40,7 +40,7 @@ $langs->load("accountancy"); $account_parent = GETPOST('account_parent'); $changeaccount = GETPOST('changeaccount'); $search_ref = GETPOST('search_ref','alpha'); -$search_facture = GETPOST('search_facture','alpha'); +$search_invoice = GETPOST('search_invoice','alpha'); $search_label = GETPOST('search_label','alpha'); $search_desc = GETPOST('search_desc','alpha'); $search_amount = GETPOST('search_amount','alpha'); @@ -70,7 +70,7 @@ $formventilation = new FormVentilation($db); if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers { $search_ref=''; - $search_facture=''; + $search_invoice=''; $search_label=''; $search_desc=''; $search_amount=''; @@ -107,6 +107,30 @@ if (is_array($changeaccount) && count($changeaccount) > 0) { llxHeader('', $langs->trans("SuppliersVentilation") . ' - ' . $langs->trans("Dispatched")); +print ''; + +/* + * Action + */ + +/* + * Supplier Invoice lines + */ $sql = "SELECT f.ref as facnumber, f.rowid as facid, l.fk_product, l.description, l.total_ht , l.qty, l.rowid, l.tva_tx, aa.label, aa.account_number, "; $sql .= " p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.fk_product_type as type"; $sql .= " FROM " . MAIN_DB_PREFIX . "facture_fourn as f"; @@ -115,8 +139,8 @@ $sql .= " , " . MAIN_DB_PREFIX . "facture_fourn_det as l"; $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = l.fk_product"; $sql .= " WHERE f.rowid = l.fk_facture_fourn and f.fk_statut >= 1 AND l.fk_code_ventilation <> 0 "; $sql .= " AND aa.rowid = l.fk_code_ventilation"; -if (strlen(trim($search_facture))) { - $sql .= " AND f.ref like '%" . $search_facture . "%'"; +if (strlen(trim($search_invoice))) { + $sql .= " AND f.ref like '%" . $search_invoice . "%'"; } if (strlen(trim($search_ref))) { $sql .= " AND p.ref like '%" . $search_ref . "%'"; @@ -150,10 +174,10 @@ if ($result) { print ''; - print ''; + print ''; print '
' . $langs->trans("Invoice") . '' . $langs->trans("Ref") . '' . $langs->trans("Label") . '' . $langs->trans("Description") . '' . $langs->trans("Amount") . '' . $langs->trans("AccountAccounting") . '' . $langs->trans("IntoAccount") . '' . $langs->trans("Ventilate") . '
/'.'
  '; + print ''; + print ' '; + print ''; + print '
' . $facture_static->getNomUrl(1) . '' . dol_trunc($objp->product_label, 24) . '' . nl2br(dol_trunc($objp->description, 32)) . '' . dol_trunc($objp->product_label, 24) . '' . nl2br(dol_trunc($objp->description, $trunclength)) . ''; print price($objp->total_ht); print ''; - print $objp->code_sell; + print ''; + // if not same kind of product_type stored in product & facturedet we display both account and let user choose + if ($objp->code_sell_l == $objp->code_sell_p) { + print $objp->code_sell_l; + } else { + print 'lines='.$objp->code_sell_l . '
product=' . $objp->code_sell_p; + } print '
'; - print $formventilation->select_account($objp->aarowid, 'codeventil[]', 1); + // TODO: we should set a user defined value to adjust user square / wide screen size + // $trunclengthform = defined('ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT') ? ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT : 50; + print $formventilation->select_account($objp->aarowid_suggest, 'codeventil[]', 1); print '' . $objp->rowid . ''; - print 'aarowid ? "checked" : "") . '/>'; + //TODO checked only if account exist in product, if only suggested do not check, user must validate + print 'aarowid_suggest ? "checked" : "") . '/>'; print '
Product: p.type='. $objp->type .' - p.code_sell='. $objp->code_sell .' --- Check code_sell_product=' . $objp->code_sell_p .' ---Check facturedet l.type_l='. $objp->type_l .' - code_sell_lines=' . $objp->code_sell_l . ' -- aarowid_suggest=' . $objp->aarowid_suggest.'
' . $langs->trans("DescVentilDoneSupplier") . '
'; - print '

'. $langs->trans("ChangeAccount") . '
'; + print '
'. $langs->trans("ChangeAccount") . '
'; print $formventilation->select_account(GETPOST('account_parent'), 'account_parent', 1); print '
'; @@ -166,10 +190,10 @@ if ($result) { print_liste_field_titre($langs->trans("Account"), $_SERVER["PHP_SELF"],"aa.account_number","",$param,'align="center"',$sortfield,$sortorder); print_liste_field_titre(''); print_liste_field_titre(''); - print_liste_field_titre(''); + print_liste_field_titre($langs->trans("Ventilate").'
/','','','','','align="center"'); print "\n"; - print '
'; + print ''; print ''; print ''; print ''; @@ -211,8 +235,8 @@ if ($result) { print ''; print ''; print ''; - print ''; - print ''; + print ''; diff --git a/htdocs/accountancy/supplier/list.php b/htdocs/accountancy/supplier/list.php index bf14ebc185e..02057b31255 100644 --- a/htdocs/accountancy/supplier/list.php +++ b/htdocs/accountancy/supplier/list.php @@ -1,7 +1,7 @@ - * Copyright (C) 2013-2014 Alexandre Spangaro - * Copyright (C) 2014 Ari Elbaz (elarifr) + * Copyright (C) 2013-2015 Alexandre Spangaro + * Copyright (C) 2014-2015 Ari Elbaz (elarifr) * Copyright (C) 2013-2014 Florian Henry * Copyright (C) 2014 Juanjo Menent s * @@ -31,6 +31,7 @@ require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php'; require_once DOL_DOCUMENT_ROOT.'/accountancy/class/html.formventilation.class.php'; +require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php'; // Langs $langs->load("compta"); @@ -42,6 +43,42 @@ $langs->load("accountancy"); $action = GETPOST('action'); $codeventil = GETPOST('codeventil', 'array'); $mesCasesCochees = GETPOST('mesCasesCochees', 'array'); +$search_ref = GETPOST('search_ref','alpha'); +$search_label = GETPOST('search_label','alpha'); +$search_desc = GETPOST('search_desc','alpha'); + +$sortfield = GETPOST('sortfield','alpha'); +$sortorder = GETPOST('sortorder','alpha'); +//Should move to top with all GETPOST +$page = GETPOST('page'); +if ($page < 0) $page = 0; + + +if (! empty($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION)) { + $limit = $conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION; +} else if ($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION <= 0) { + $limit = $conf->liste_limit; +} else { + $limit = $conf->liste_limit; +} +$offset = $limit * $page; +//End Should move to top with all GETPOST + + +// TODO : remove comment +//elarifr we can not use only +//$sql .= " ORDER BY l.rowid"; +// f.datef will order like FA08 FA09 FA10 FA05 FA06 FA07 FA04... +// f.ref will not order properly invoice / avoir / accompte you can have All AC then All AV and all FA +// l.rowid when an invoice is edited rowid are added at end of table & facturedet.rowid are not ordered +//if (! $sortfield) $sortfield="l.rowid"; +if (! $sortfield) $sortfield="f.datef, f.ref, l.rowid"; +//if (! $sortorder) $sortorder="DESC"; +if (! $sortorder) { + if ($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_TODO > 0) { + $sortorder = " DESC "; + } +} // Security check if ($user->societe_id > 0) @@ -51,8 +88,31 @@ if (! $user->rights->accounting->ventilation->dispatch) $formventilation = new FormVentilation($db); +//Defaut AccountingAccount RowId Product / Service +//at this time ACCOUNTING_SERVICE_SOLD_ACCOUNT & ACCOUNTING_PRODUCT_SOLD_ACCOUNT are account number not accountingacount rowid +//so we need to get those default value rowid first +$accounting = new AccountingAccount($db); + +//TODO: we should need to check if result is a really exist accountaccount rowid..... +$aarowid_s = $accounting->fetch('', ACCOUNTING_SERVICE_BUY_ACCOUNT); +$aarowid_p = $accounting->fetch('', ACCOUNTING_PRODUCT_BUY_ACCOUNT); + +// Purge search criteria +if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers +{ + $search_ref=''; + $search_label=''; + $search_desc=''; +} + +/* + * View + */ llxHeader('', $langs->trans("Ventilation")); +//debug +//print_r($aarowid_s); +//print_r($aarowid_p); print ''; +dolibarr_install_syslog("--- check: end"); pFooter(true); // Never display next button diff --git a/htdocs/install/fileconf.php b/htdocs/install/fileconf.php index 04f8a3caf4c..92d2fc963a8 100644 --- a/htdocs/install/fileconf.php +++ b/htdocs/install/fileconf.php @@ -36,7 +36,7 @@ $langs->setDefaultLang($setuplang); $langs->load("install"); $langs->load("errors"); -dolibarr_install_syslog("Fileconf: Entering fileconf.php page"); +dolibarr_install_syslog("--- fileconf: entering fileconf.php page"); // You can force preselected values of the config step of Dolibarr by adding a file // install.forced.php into directory htdocs/install (This is the case with some wizard @@ -71,12 +71,14 @@ if (@file_exists($forcedfile)) { session_start(); // To be able to keep info into session (used for not loosing pass during navigation. pass must not transit throug parmaeters) -pHeader($langs->trans("ConfigurationFile"),"etape1","set","",(empty($force_dolibarr_js_JQUERY)?'':$force_dolibarr_js_JQUERY.'/')); +pHeader($langs->trans("ConfigurationFile"),"step1","set","",(empty($force_dolibarr_js_JQUERY)?'':$force_dolibarr_js_JQUERY.'/')); // Test if we can run a first install process if (! is_writable($conffile)) { - print $langs->trans("ConfFileIsNotWritable",$conffiletoshow); + print $langs->trans("ConfFileIsNotWritable", $conffiletoshow); + dolibarr_install_syslog("fileconf: config file is not writable", LOG_WARNING); + dolibarr_install_syslog("--- fileconf: end"); pFooter(1,$setuplang,'jscheckparam'); exit; } @@ -584,4 +586,5 @@ function jscheckparam() // $db->close(); Not database connexion yet +dolibarr_install_syslog("--- fileconf: end"); pFooter($err,$setuplang,'jscheckparam'); diff --git a/htdocs/install/inc.php b/htdocs/install/inc.php index bac0ffe6eda..36d12421055 100644 --- a/htdocs/install/inc.php +++ b/htdocs/install/inc.php @@ -375,13 +375,13 @@ function pHeader($subtitle,$next,$action='set',$param='',$forcejqueryurl='') print ''."\n"; if ($jQueryUiCustomPath) print ''."\n"; // JQuery - else print ''."\n"; // JQuery + else print ''."\n"; // JQuery print ''."\n"; if ($jQueryCustomPath) print ''."\n"; - else print ''."\n"; + else print ''."\n"; if ($jQueryUiCustomPath) print ''."\n"; - else print ''."\n"; + else print ''."\n"; print ''.$langs->trans("DolibarrSetup").''."\n"; print ''."\n"; diff --git a/htdocs/install/index.php b/htdocs/install/index.php index 4508a266b08..9b0ac71931b 100644 --- a/htdocs/install/index.php +++ b/htdocs/install/index.php @@ -28,8 +28,7 @@ include_once '../core/class/html.formadmin.class.php'; $err = 0; -// Si fichier conf existe deja et rempli, on est pas sur une premiere install, -// on ne passe donc pas par la page de choix de langue +// If the config file exists and is filled, we're not on first install so we skip the language selection page if (file_exists($conffile) && isset($dolibarr_main_url_root)) { header("Location: check.php?testget=ok"); @@ -45,7 +44,7 @@ $langs->load("admin"); $formadmin=new FormAdmin(''); // Note: $db does not exist yet but we don't need it, so we put ''. -pHeader("", "check"); // Etape suivante = check +pHeader("", "check"); // Next step = check // Ask installation language @@ -62,6 +61,6 @@ print '
' . nl2br(dol_trunc($objp->description, 32)) . '' . price($objp->total_ht) . '' . $codeCompta . '' . $objp->rowid . ''; + print '' . $objp->rowid . ''; print img_edit(); print '
'; print '

'.$langs->trans("SomeTranslationAreUncomplete"); -// Si pas d'erreur, on affiche le bouton pour passer a l'etape suivante +// If there's no error, we display the next step button if ($err == 0) pFooter(0); diff --git a/htdocs/install/repair.php b/htdocs/install/repair.php index 786a8efb430..c8a77e9d8e7 100644 --- a/htdocs/install/repair.php +++ b/htdocs/install/repair.php @@ -2,6 +2,7 @@ /* Copyright (C) 2004 Rodolphe Quiedeville * Copyright (C) 2004-2012 Laurent Destailleur * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2015 Raphaël Doursenaud * * 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 @@ -18,7 +19,7 @@ */ /** - * \file htdocs/install/repair.php + * \file htdocs/install/repair.php * \brief Run repair script */ @@ -29,7 +30,7 @@ require_once $dolibarr_main_document_root.'/core/class/extrafields.class.php'; require_once 'lib/repair.lib.php'; $grant_query=''; -$etape = 2; +$step = 2; $ok = 0; @@ -54,8 +55,8 @@ if ($dolibarr_main_db_type == "pgsql") $choix=2; if ($dolibarr_main_db_type == "mssql") $choix=3; -dolibarr_install_syslog("repair: Entering upgrade.php page"); -if (! is_object($conf)) dolibarr_install_syslog("repair: conf file not initialized",LOG_ERR); +dolibarr_install_syslog("--- repair: entering upgrade.php page"); +if (! is_object($conf)) dolibarr_install_syslog("repair: conf file not initialized", LOG_ERR); /* @@ -105,13 +106,13 @@ if ($db->connected) { print ''; print $langs->trans("ServerConnection")." : $dolibarr_main_db_host".$langs->trans("OK").""; - dolibarr_install_syslog("repair: ".$langs->transnoentities("ServerConnection")." : $dolibarr_main_db_host ".$langs->transnoentities("OK")); + dolibarr_install_syslog("repair: " . $langs->transnoentities("ServerConnection") . ": " . $dolibarr_main_db_host . $langs->transnoentities("OK")); $ok = 1; } else { print "".$langs->trans("ErrorFailedToConnectToDatabase",$dolibarr_main_db_name)."".$langs->transnoentities("Error").""; - dolibarr_install_syslog("repair: ".$langs->transnoentities("ErrorFailedToConnectToDatabase",$dolibarr_main_db_name)); + dolibarr_install_syslog("repair: " . $langs->transnoentities("ErrorFailedToConnectToDatabase", $dolibarr_main_db_name)); $ok = 0; } @@ -121,13 +122,13 @@ if ($ok) { print ''; print $langs->trans("DatabaseConnection")." : ".$dolibarr_main_db_name."".$langs->trans("OK").""; - dolibarr_install_syslog("repair: Database connection successfull : $dolibarr_main_db_name"); + dolibarr_install_syslog("repair: database connection successful: " . $dolibarr_main_db_name); $ok=1; } else { print "".$langs->trans("ErrorFailedToConnectToDatabase",$dolibarr_main_db_name)."".$langs->trans("Error").""; - dolibarr_install_syslog("repair: ".$langs->transnoentities("ErrorFailedToConnectToDatabase",$dolibarr_main_db_name)); + dolibarr_install_syslog("repair: " . $langs->transnoentities("ErrorFailedToConnectToDatabase", $dolibarr_main_db_name)); $ok=0; } } @@ -139,7 +140,7 @@ if ($ok) $versionarray=$db->getVersionArray(); print ''.$langs->trans("ServerVersion").''; print ''.$version.''; - dolibarr_install_syslog("repair: ".$langs->transnoentities("ServerVersion")." : $version"); + dolibarr_install_syslog("repair: " . $langs->transnoentities("ServerVersion") . ": " . $version); //print ''.join('.',$versionarray).''; } @@ -514,6 +515,7 @@ print ''; +dolibarr_install_syslog("--- repair: end"); pFooter(1,$setuplang); if ($db->connected) $db->close(); diff --git a/htdocs/install/etape1.php b/htdocs/install/step1.php similarity index 92% rename from htdocs/install/etape1.php rename to htdocs/install/step1.php index 5817af81e9b..d1eca1211ba 100644 --- a/htdocs/install/etape1.php +++ b/htdocs/install/step1.php @@ -4,6 +4,7 @@ * Copyright (C) 2004 Benoit Mortier * Copyright (C) 2004 Sebastien Di Cintio * Copyright (C) 2005-2011 Regis Houssin + * Copyright (C) 2015 Raphaël Doursenaud * * 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 @@ -20,7 +21,7 @@ */ /** - * \file htdocs/install/etape1.php + * \file htdocs/install/step1.php * \ingroup install * \brief Build conf file on disk */ @@ -64,7 +65,7 @@ $forcedfile="./install.forced.php"; if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php"; if (@file_exists($forcedfile)) { $useforcedwizard=true; include_once $forcedfile; } -dolibarr_install_syslog("--- etape1: Entering etape1.php page"); +dolibarr_install_syslog("--- step1: entering step1.php page"); $error = 0; @@ -74,7 +75,7 @@ $error = 0; */ -pHeader($langs->trans("ConfigurationFile"),"etape2"); +pHeader($langs->trans("ConfigurationFile"),"step2"); // Test if we can run a first install process if (! is_writable($conffile)) @@ -185,7 +186,7 @@ if (! $error) $db=getDoliDBInstance($db_type, $db_host, $userroot, $passroot, $databasefortest, $db_port); - dol_syslog("databasefortest=".$databasefortest." connected=".$db->connected." database_selected=".$db->database_selected, LOG_DEBUG); + dol_syslog("databasefortest=" . $databasefortest . " connected=" . $db->connected . " database_selected=" . $db->database_selected, LOG_DEBUG); //print "databasefortest=".$databasefortest." connected=".$db->connected." database_selected=".$db->database_selected; if (empty($_POST["db_create_database"]) && $db->connected && ! $db->database_selected) @@ -276,7 +277,7 @@ if (! $error && $db->connected) print ''; $db_character_set=$defaultCharacterSet; $db_collation=$defaultDBSortingCollation; - dolibarr_install_syslog("db_character_set=".$db_character_set." db_collation=".$db_collation); + dolibarr_install_syslog("step1: db_character_set=" . $db_character_set . " db_collation=" . $db_collation); } @@ -286,8 +287,9 @@ if (! $error && $db->connected && $action == "set") umask(0); foreach($_POST as $key => $value) { - if (! preg_match('/^db_pass/i', $key)) - dolibarr_install_syslog("Choice for ".$key." = ".$value); + if (! preg_match('/^db_pass/i', $key)) { + dolibarr_install_syslog("step1: choice for " . $key . " = " . $value); + } } // Show title of step @@ -299,7 +301,7 @@ if (! $error && $db->connected && $action == "set") { if (! is_dir($main_dir)) { - dolibarr_install_syslog("etape1: Repertoire '".$main_dir."' inexistant ou non accessible"); + dolibarr_install_syslog("step1: directory '" . $main_dir . "' is unavailable or can't be accessed"); print ""; print $langs->trans("ErrorDirDoesNotExists",$main_dir).'
'; @@ -314,7 +316,7 @@ if (! $error && $db->connected && $action == "set") if (! $error) { - dolibarr_install_syslog("etape1: Directory '".$main_dir."' exists"); + dolibarr_install_syslog("step1: directory '" . $main_dir . "' exists"); } @@ -343,7 +345,7 @@ if (! $error && $db->connected && $action == "set") $pathhtaccess=$main_data_dir.'/.htaccess'; if (! file_exists($pathhtaccess)) { - dolibarr_install_syslog("etape1: .htaccess file does not exists, we create it in '".$main_data_dir."'"); + dolibarr_install_syslog("step1: .htaccess file did not exist, we created it in '" . $main_data_dir . "'"); $handlehtaccess=@fopen($pathhtaccess,'w'); if ($handlehtaccess) { @@ -351,7 +353,7 @@ if (! $error && $db->connected && $action == "set") fwrite($handlehtaccess,'Deny from all'."\n"); fclose($handlehtaccess); - dolibarr_install_syslog("etape1: .htaccess file created"); + dolibarr_install_syslog("step1: .htaccess file created"); } } @@ -372,7 +374,7 @@ if (! $error && $db->connected && $action == "set") { if (is_dir($dir[$i])) { - dolibarr_install_syslog("etape1: Directory '".$dir[$i]."' exists"); + dolibarr_install_syslog("step1: directory '" . $dir[$i] . "' exists"); } else { @@ -387,7 +389,7 @@ if (! $error && $db->connected && $action == "set") } else { - dolibarr_install_syslog("etape1: Directory '".$dir[$i]."' created"); + dolibarr_install_syslog("step1: directory '" . $dir[$i] . "' created"); } } } @@ -475,7 +477,7 @@ if (! $error && $db->connected && $action == "set") // Si creation utilisateur admin demandee, on le cree if (isset($_POST["db_create_user"]) && $_POST["db_create_user"] == "on") { - dolibarr_install_syslog("etape1: Create database user: ".$dolibarr_main_db_user); + dolibarr_install_syslog("step1: create database user: " . $dolibarr_main_db_user); //print $conf->db->host." , ".$conf->db->name." , ".$conf->db->user." , ".$conf->db->port; $databasefortest=$conf->db->name; @@ -523,7 +525,7 @@ if (! $error && $db->connected && $action == "set") || $db->errno() == 'DB_ERROR_KEY_NAME_ALREADY_EXISTS' || $db->errno() == 'DB_ERROR_USER_ALREADY_EXISTS') { - dolibarr_install_syslog("etape1: User already exists"); + dolibarr_install_syslog("step1: user already exists"); print ''; print $langs->trans("UserCreation").' : '; print $dolibarr_main_db_user; @@ -532,7 +534,7 @@ if (! $error && $db->connected && $action == "set") } else { - dolibarr_install_syslog("etape1: Failed to create user"); + dolibarr_install_syslog("step1: failed to create user", LOG_ERR); print ''; print $langs->trans("UserCreation").' : '; print $dolibarr_main_db_user; @@ -569,7 +571,7 @@ if (! $error && $db->connected && $action == "set") // If database creation is asked, we create it if (! $error && (isset($_POST["db_create_database"]) && $_POST["db_create_database"] == "on")) { - dolibarr_install_syslog("etape1: Create database : ".$dolibarr_main_db_name." ".$dolibarr_main_db_character_set." ".$dolibarr_main_db_collation." ".$dolibarr_main_db_user, LOG_DEBUG); + dolibarr_install_syslog("step1: create database: " . $dolibarr_main_db_name . " " . $dolibarr_main_db_character_set . " " . $dolibarr_main_db_collation . " " . $dolibarr_main_db_user); $newdb=getDoliDBInstance($conf->db->type,$conf->db->host,$userroot,$passroot,'',$conf->db->port); //print 'eee'.$conf->db->type." ".$conf->db->host." ".$userroot." ".$passroot." ".$conf->db->port." ".$newdb->connected." ".$newdb->forcecharset;exit; @@ -587,11 +589,11 @@ if (! $error && $db->connected && $action == "set") $check1=$newdb->getDefaultCharacterSetDatabase(); $check2=$newdb->getDefaultCollationDatabase(); - dolibarr_install_syslog('etape1: Note that default server was charset='.$check1.' collation='.$check2, LOG_DEBUG); + dolibarr_install_syslog('step1: note that default server was charset=' . $check1 . ' collation=' . $check2); // If values differs, we save conf file again - //if ($check1 != $dolibarr_main_db_character_set) dolibarr_install_syslog('etape1: Value for character_set is not the one asked for database creation', LOG_WARNING); - //if ($check2 != $dolibarr_main_db_collation) dolibarr_install_syslog('etape1: Value for collation is not the one asked for database creation', LOG_WARNING); + //if ($check1 != $dolibarr_main_db_character_set) dolibarr_install_syslog('step1: value for character_set is not the one asked for database creation', LOG_WARNING); + //if ($check2 != $dolibarr_main_db_collation) dolibarr_install_syslog('step1: value for collation is not the one asked for database creation', LOG_WARNING); } else { @@ -603,7 +605,7 @@ if (! $error && $db->connected && $action == "set") print '
'; print ''; - dolibarr_install_syslog('etape1: Failed to create database '.$dolibarr_main_db_name.' '.$newdb->lasterrno().' '.$newdb->lasterror(), LOG_ERR); + dolibarr_install_syslog('step1: failed to create database ' . $dolibarr_main_db_name . ' ' . $newdb->lasterrno() . ' ' . $newdb->lasterror(), LOG_ERR); $error++; } $newdb->close(); @@ -632,14 +634,14 @@ if (! $error && $db->connected && $action == "set") // We test access with dolibarr database user (not admin) if (! $error) { - dolibarr_install_syslog("etape1: connexion de type=".$conf->db->type." sur host=".$conf->db->host." port=".$conf->db->port." user=".$conf->db->user." name=".$conf->db->name, LOG_DEBUG); + dolibarr_install_syslog("step1: connection type=" . $conf->db->type . " on host=" . $conf->db->host . " port=" . $conf->db->port . " user=" . $conf->db->user . " name=" . $conf->db->name); //print "connexion de type=".$conf->db->type." sur host=".$conf->db->host." port=".$conf->db->port." user=".$conf->db->user." name=".$conf->db->name; $db=getDoliDBInstance($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port); if ($db->connected) { - dolibarr_install_syslog("etape1: connexion to server by user ".$conf->db->user." is ok", LOG_DEBUG); + dolibarr_install_syslog("step1: connection to server by user " . $conf->db->user . " ok"); print ""; print $langs->trans("ServerConnection")." (".$langs->trans("User")." ".$conf->db->user.") : "; print $dolibarr_main_db_host; @@ -650,7 +652,7 @@ if (! $error && $db->connected && $action == "set") // si acces serveur ok et acces base ok, tout est ok, on ne va pas plus loin, on a meme pas utilise le compte root. if ($db->database_selected) { - dolibarr_install_syslog("etape1: connexion to database : ".$conf->db->name.", by user : ".$conf->db->user." is ok", LOG_DEBUG); + dolibarr_install_syslog("step1: connection to database " . $conf->db->name . " by user " . $conf->db->user . " ok"); print ""; print $langs->trans("DatabaseConnection")." (".$langs->trans("User")." ".$conf->db->user.") : "; print $dolibarr_main_db_name; @@ -662,7 +664,7 @@ if (! $error && $db->connected && $action == "set") } else { - dolibarr_install_syslog("etape1: connexion to database ".$conf->db->name.", by user : ".$conf->db->user." has failed", LOG_ERR); + dolibarr_install_syslog("step1: connection to database " . $conf->db->name . " by user " . $conf->db->user . " failed", LOG_ERR); print ""; print $langs->trans("DatabaseConnection")." (".$langs->trans("User")." ".$conf->db->user.") : "; print $dolibarr_main_db_name; @@ -682,7 +684,7 @@ if (! $error && $db->connected && $action == "set") } else { - dolibarr_install_syslog("etape1: la connexion au serveur par le user ".$conf->db->user." est rate"); + dolibarr_install_syslog("step1: connection to server by user " . $conf->db->user . " failed", LOG_ERR); print ""; print $langs->trans("ServerConnection")." (".$langs->trans("User")." ".$conf->db->user.") : "; print $dolibarr_main_db_host; @@ -723,7 +725,7 @@ function jsinfo() '); fclose($fp); } } @@ -766,7 +767,6 @@ function write_master_file($masterfile,$main_dir) fputs($fp, ''); fclose($fp); } } @@ -928,7 +928,6 @@ function write_conf_file($conffile) fputs($fp, '$dolibarr_font_DOL_DEFAULT_TTF_BOLD=\''.$force_dolibarr_font_DOL_DEFAULT_TTF_BOLD.'\';'); fputs($fp,"\n"); - fputs($fp, '?>'); fclose($fp); if (file_exists("$conffile")) diff --git a/htdocs/install/etape2.php b/htdocs/install/step2.php similarity index 91% rename from htdocs/install/etape2.php rename to htdocs/install/step2.php index 8de44812222..8f27aa53767 100644 --- a/htdocs/install/etape2.php +++ b/htdocs/install/step2.php @@ -1,7 +1,8 @@ * Copyright (C) 2004-2010 Laurent Destailleur - * Copyright (C) 2015 Cedric GROSS + * Copyright (C) 2015 Cedric GROSS + * Copyright (C) 2015 Raphaël Doursenaud * * 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 @@ -18,8 +19,8 @@ */ /** - * \file htdocs/install/etape2.php - * \ingroup install + * \file htdocs/install/step2.php + * \ingroup install * \brief Create tables, primary keys, foreign keys, indexes and functions into database and then load reference data */ @@ -27,7 +28,7 @@ include 'inc.php'; require_once $dolibarr_main_document_root.'/core/class/conf.class.php'; require_once $dolibarr_main_document_root.'/core/lib/admin.lib.php'; -$etape = 2; +$step = 2; $ok = 0; @@ -54,7 +55,7 @@ if ($dolibarr_main_db_type == "mssql") $choix=3; if ($dolibarr_main_db_type == "sqlite") $choix=4; if ($dolibarr_main_db_type == "sqlite3") $choix=5; -//if (empty($choix)) dol_print_error('','Database type '.$dolibarr_main_db_type.' not supported into etape2.php page'); +//if (empty($choix)) dol_print_error('','Database type '.$dolibarr_main_db_type.' not supported into step2.php page'); // Now we load forced value from install.forced.php file. $useforcedwizard=false; @@ -62,14 +63,14 @@ $forcedfile="./install.forced.php"; if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php"; if (@file_exists($forcedfile)) { $useforcedwizard=true; include_once $forcedfile; } -dolibarr_install_syslog("--- etape2: Entering etape2.php page"); +dolibarr_install_syslog("--- step2: entering step2.php page"); /* * View */ -pHeader($langs->trans("CreateDatabaseObjects"),"etape4"); +pHeader($langs->trans("CreateDatabaseObjects"),"step4"); // Test if we can run a first install process if (! is_writable($conffile)) @@ -103,11 +104,11 @@ if ($action == "set") { if($db->database_selected) { - dolibarr_install_syslog("etape2: Connexion successful to database : ".$conf->db->name); + dolibarr_install_syslog("step2: successful connection to database: " . $conf->db->name); } else { - dolibarr_install_syslog("etape2: Connexion failed to database : ".$conf->db->name); + dolibarr_install_syslog("step2: failed connection to database :" . $conf->db->name, LOG_ERR); print "Failed to select database ".$conf->db->name.'Error'; $ok = 0 ; } @@ -131,7 +132,7 @@ if ($action == "set") $requestnb=0; // To disable some code, so you can call step2 with url like - // http://localhost/dolibarrnew/install/etape2.php?action=set&createtables=0&createkeys=0&createfunctions=0&createdata=llx_20_c_departements + // http://localhost/dolibarrnew/install/step2.php?action=set&createtables=0&createkeys=0&createfunctions=0&createdata=llx_20_c_departements $createtables=isset($_GET['createtables'])?GETPOST('createtables'):1; $createkeys=isset($_GET['createkeys'])?GETPOST('createkeys'):1; $createfunctions=isset($_GET['createfunctions'])?GETPOST('createfunction'):1; @@ -155,7 +156,7 @@ if ($action == "set") $ok = 0; $handle=opendir($dir); - dolibarr_install_syslog("Open tables directory ".$dir." handle=".$handle,LOG_DEBUG); + dolibarr_install_syslog("step2: open tables directory " . $dir . " handle=" . $handle); $tablefound = 0; $tabledata=array(); if (is_resource($handle)) @@ -211,7 +212,7 @@ if ($action == "set") //print "Creation de la table $name/td>"; $requestnb++; - dolibarr_install_syslog("Request: ".$buffer,LOG_DEBUG); + dolibarr_install_syslog("step2: request: " . $buffer); $resql=$db->query($buffer,0,'dml'); if ($resql) { @@ -241,7 +242,7 @@ if ($action == "set") print ""; print ''.$langs->trans("Error").' Failed to open file '.$dir.$file.''; $error++; - dolibarr_install_syslog("Failed to open file ".$dir.$file,LOG_ERR); + dolibarr_install_syslog("step2: failed to open file " . $dir . $file, LOG_ERR); } } @@ -257,7 +258,7 @@ if ($action == "set") else { print ''.$langs->trans("ErrorFailedToFindSomeFiles",$dir).'Error'; - dolibarr_install_syslog("Failed to find files to create database in directory ".$dir,LOG_ERR); + dolibarr_install_syslog("step2: failed to find files to create database in directory " . $dir, LOG_ERR); } } @@ -275,7 +276,7 @@ if ($action == "set") $okkeys = 0; $handle=opendir($dir); - dolibarr_install_syslog("Open keys directory ".$dir." handle=".$handle,LOG_DEBUG); + dolibarr_install_syslog("step2: open keys directory " . $dir . " handle=" . $handle); $tablefound = 0; $tabledata=array(); if (is_resource($handle)) @@ -354,7 +355,7 @@ if ($action == "set") //print "Creation des cles et index de la table $name: '$buffer'"; $requestnb++; - dolibarr_install_syslog("Request: ".$buffer,LOG_DEBUG); + dolibarr_install_syslog("step2: request: " . $buffer); $resql=$db->query($buffer,0,'dml'); if ($resql) { @@ -390,7 +391,7 @@ if ($action == "set") print ""; print ''.$langs->trans("Error")." Failed to open file ".$dir.$file.""; $error++; - dolibarr_install_syslog("Failed to open file ".$dir.$file,LOG_ERR); + dolibarr_install_syslog("step2: failed to open file " . $dir . $file, LOG_ERR); } } @@ -421,7 +422,7 @@ if ($action == "set") if (file_exists($dir.$file)) { $fp = fopen($dir.$file,"r"); - dolibarr_install_syslog("Open function file ".$dir.$file." handle=".$fp,LOG_DEBUG); + dolibarr_install_syslog("step2: open function file " . $dir . $file . " handle=" . $fp); if ($fp) { $buffer=''; @@ -444,7 +445,7 @@ if ($action == "set") $buffer=trim($buffer); if ($buffer) { - dolibarr_install_syslog("Request: ".$buffer,LOG_DEBUG); + dolibarr_install_syslog("step2: request: " . $buffer); print "\n"; $resql=$db->query($buffer,0,'dml'); if ($resql) @@ -500,7 +501,7 @@ if ($action == "set") // Insert data $handle=opendir($dir); - dolibarr_install_syslog("Open directory data ".$dir." handle=".$handle,LOG_DEBUG); + dolibarr_install_syslog("step2: open directory data " . $dir . " handle=" . $handle); $tablefound = 0; $tabledata=array(); if (is_resource($handle)) @@ -526,7 +527,7 @@ if ($action == "set") { $name = substr($file, 0, dol_strlen($file) - 4); $fp = fopen($dir.$file,"r"); - dolibarr_install_syslog("Open data file ".$dir.$file." handle=".$fp,LOG_DEBUG); + dolibarr_install_syslog("step2: open data file " . $dir . $file . " handle=" . $fp); if ($fp) { $arrayofrequests=array(); @@ -555,7 +556,7 @@ if ($action == "set") } fclose($fp); - dolibarr_install_syslog("Found ".$linefound." records, defined ".count($arrayofrequests)." group(s).",LOG_DEBUG); + dolibarr_install_syslog("step2: found " . $linefound . " records, defined " . count($arrayofrequests) . " group(s)."); $okallfile=1; $db->begin(); @@ -569,7 +570,7 @@ if ($action == "set") $buffer=preg_replace('/llx_/i',$dolibarr_main_db_prefix,$buffer); } - //dolibarr_install_syslog("Request: ".$buffer,LOG_DEBUG); + //dolibarr_install_syslog("step2: request: " . $buffer); $resql=$db->query($buffer,1); if ($resql) { @@ -613,7 +614,7 @@ else print 'Parameter action=set not defined'; } -dolibarr_install_syslog("--- install/etape2.php end", LOG_INFO); +dolibarr_install_syslog("--- step2: end"); pFooter(!$ok,$setuplang); diff --git a/htdocs/install/etape4.php b/htdocs/install/step4.php similarity index 92% rename from htdocs/install/etape4.php rename to htdocs/install/step4.php index fc4f47f4611..5952080f475 100644 --- a/htdocs/install/etape4.php +++ b/htdocs/install/step4.php @@ -3,6 +3,7 @@ * Copyright (C) 2004 Benoit Mortier * Copyright (C) 2004 Sebastien DiCintio * Copyright (C) 2004-2008 Laurent Destailleur + * Copyright (C) 2015 Raphaël Doursenaud * * 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 @@ -19,7 +20,7 @@ */ /** - * \file htdocs/install/etape4.php + * \file htdocs/install/step4.php * \ingroup install * \brief Ask login and password of Dolibarr admin user */ @@ -42,7 +43,7 @@ $forcedfile="./install.forced.php"; if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php"; if (@file_exists($forcedfile)) { $useforcedwizard=true; include_once $forcedfile; } -dolibarr_install_syslog("--- etape4: Entering etape4.php page"); +dolibarr_install_syslog("--- step4: entering step4.php page"); $err=0; $ok = 0; @@ -53,7 +54,7 @@ $ok = 0; * View */ -pHeader($langs->trans("AdminAccountCreation"),"etape5"); +pHeader($langs->trans("AdminAccountCreation"),"step5"); // Test if we can run a first install process if (! is_writable($conffile)) @@ -106,7 +107,7 @@ if ($db->ok) } -dolibarr_install_syslog("--- install/etape4.php end", LOG_INFO); +dolibarr_install_syslog("--- step4: end"); pFooter($err,$setuplang); diff --git a/htdocs/install/etape5.php b/htdocs/install/step5.php similarity index 86% rename from htdocs/install/etape5.php rename to htdocs/install/step5.php index da871508176..2651c45c05c 100644 --- a/htdocs/install/etape5.php +++ b/htdocs/install/step5.php @@ -1,9 +1,10 @@ - * Copyright (C) 2004-2012 Laurent Destailleur - * Copyright (C) 2004 Benoit Mortier - * Copyright (C) 2004 Sebastien DiCintio - * Copyright (C) 2005-2012 Regis Houssin +/* Copyright (C) 2004 Rodolphe Quiedeville + * Copyright (C) 2004-2012 Laurent Destailleur + * Copyright (C) 2004 Benoit Mortier + * Copyright (C) 2004 Sebastien DiCintio + * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2015 Raphaël Doursenaud * * 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 @@ -20,8 +21,8 @@ */ /** - * \file htdocs/install/etape5.php - * \ingroup install + * \file htdocs/install/step5.php + * \ingroup install * \brief Last page of upgrade or install process */ @@ -68,7 +69,7 @@ $forcedfile="./install.forced.php"; if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php"; if (@file_exists($forcedfile)) { $useforcedwizard=true; include_once $forcedfile; } -dolibarr_install_syslog("--- etape5: Entering etape5.php page", LOG_INFO); +dolibarr_install_syslog("--- step5: entering step5.php page"); /* @@ -80,19 +81,19 @@ if ($action == "set") { if ($_POST["pass"] <> $_POST["pass_verif"]) { - header("Location: etape4.php?error=1&selectlang=$setuplang".(isset($_POST["login"])?'&login='.$_POST["login"]:'')); + header("Location: step4.php?error=1&selectlang=$setuplang".(isset($_POST["login"])?'&login='.$_POST["login"]:'')); exit; } if (dol_strlen(trim($_POST["pass"])) == 0) { - header("Location: etape4.php?error=2&selectlang=$setuplang".(isset($_POST["login"])?'&login='.$_POST["login"]:'')); + header("Location: step4.php?error=2&selectlang=$setuplang".(isset($_POST["login"])?'&login='.$_POST["login"]:'')); exit; } if (dol_strlen(trim($_POST["login"])) == 0) { - header("Location: etape4.php?error=3&selectlang=$setuplang".(isset($_POST["login"])?'&login='.$_POST["login"]:'')); + header("Location: step4.php?error=3&selectlang=$setuplang".(isset($_POST["login"])?'&login='.$_POST["login"]:'')); exit; } } @@ -102,7 +103,7 @@ if ($action == "set") * View */ -pHeader($langs->trans("SetupEnd"),"etape5"); +pHeader($langs->trans("SetupEnd"),"step5"); print '
'; // Test if we can run a first install process @@ -153,7 +154,7 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i',$action)) // Active module user $modName='modUser'; $file = $modName . ".class.php"; - dolibarr_install_syslog('install/etape5.php Load module user '.DOL_DOCUMENT_ROOT ."/core/modules/".$file, LOG_INFO); + dolibarr_install_syslog('step5: load module user ' . DOL_DOCUMENT_ROOT . "/core/modules/" . $file, LOG_INFO); include_once DOL_DOCUMENT_ROOT ."/core/modules/".$file; $objMod = new $modName($db); $result=$objMod->init(); @@ -188,13 +189,13 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i',$action)) { if ($newuser->error == 'ErrorLoginAlreadyExists') { - dolibarr_install_syslog('install/etape5.php AdminLoginAlreadyExists', LOG_WARNING); + dolibarr_install_syslog('step5: AdminLoginAlreadyExists', LOG_WARNING); print '
'.$langs->trans("AdminLoginAlreadyExists",$_POST["login"])."

"; $success = 1; } else { - dolibarr_install_syslog('install/etape5.php FailedToCreateAdminLogin '.$newuser->error, LOG_ERR); + dolibarr_install_syslog('step5: FailedToCreateAdminLogin ' . $newuser->error, LOG_ERR); print '
'.$langs->trans("FailedToCreateAdminLogin").' '.$newuser->error.'


'; } } @@ -203,7 +204,7 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i',$action)) { $db->begin(); - dolibarr_install_syslog('install/etape5.php set MAIN_VERSION_LAST_INSTALL const to '.$targetversion, LOG_DEBUG); + dolibarr_install_syslog('step5: set MAIN_VERSION_LAST_INSTALL const to ' . $targetversion, LOG_DEBUG); $resql=$db->query("DELETE FROM ".MAIN_DB_PREFIX."const WHERE ".$db->decrypt('name')."='MAIN_VERSION_LAST_INSTALL'"); if (! $resql) dol_print_error($db,'Error in setup program'); $resql=$db->query("INSERT INTO ".MAIN_DB_PREFIX."const(name,value,type,visible,note,entity) values(".$db->encrypt('MAIN_VERSION_LAST_INSTALL',1).",".$db->encrypt($targetversion,1).",'chaine',0,'Dolibarr version when install',0)"); @@ -212,7 +213,7 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i',$action)) if ($useforcedwizard) { - dolibarr_install_syslog('install/etape5.php set MAIN_REMOVE_INSTALL_WARNING const to 1', LOG_DEBUG); + dolibarr_install_syslog('step5: set MAIN_REMOVE_INSTALL_WARNING const to 1', LOG_DEBUG); $resql=$db->query("DELETE FROM ".MAIN_DB_PREFIX."const WHERE ".$db->decrypt('name')."='MAIN_REMOVE_INSTALL_WARNING'"); if (! $resql) dol_print_error($db,'Error in setup program'); $resql=$db->query("INSERT INTO ".MAIN_DB_PREFIX."const(name,value,type,visible,note,entity) values(".$db->encrypt('MAIN_REMOVE_INSTALL_WARNING',1).",".$db->encrypt(1,1).",'chaine',1,'Disable install warnings',0)"); @@ -232,7 +233,7 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i',$action)) print $langs->trans("ActivateModule",$modtoactivatenew).'
'; $file=$modtoactivatenew.'.class.php'; - dolibarr_install_syslog('install/etape5.php Activate module file='.$file); + dolibarr_install_syslog('step5: activate module file=' . $file); $res=dol_include_once("/core/modules/".$file); $res=activateModule($modtoactivatenew,1); @@ -240,7 +241,7 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i',$action)) } } - dolibarr_install_syslog('install/etape5.php Remove MAIN_NOT_INSTALLED const', LOG_DEBUG); + dolibarr_install_syslog('step5: remove MAIN_NOT_INSTALLED const'); $resql=$db->query("DELETE FROM ".MAIN_DB_PREFIX."const WHERE ".$db->decrypt('name')."='MAIN_NOT_INSTALLED'"); if (! $resql) dol_print_error($db,'Error in setup program'); @@ -271,7 +272,7 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i',$action)) if ($tagdatabase) { - dolibarr_install_syslog('install/etape5.php set MAIN_VERSION_LAST_UPGRADE const to value '.$targetversion, LOG_DEBUG); + dolibarr_install_syslog('step5: set MAIN_VERSION_LAST_UPGRADE const to value ' . $targetversion); $resql=$db->query("DELETE FROM ".MAIN_DB_PREFIX."const WHERE ".$db->decrypt('name')."='MAIN_VERSION_LAST_UPGRADE'"); if (! $resql) dol_print_error($db,'Error in setup program'); $resql=$db->query("INSERT INTO ".MAIN_DB_PREFIX."const(name,value,type,visible,note,entity) VALUES (".$db->encrypt('MAIN_VERSION_LAST_UPGRADE',1).",".$db->encrypt($targetversion,1).",'chaine',0,'Dolibarr version for last upgrade',0)"); @@ -280,7 +281,7 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i',$action)) } else { - dolibarr_install_syslog('install/etape5.php We run an upgrade to version '.$targetversion.' but database was already upgraded to '.$conf->global->MAIN_VERSION_LAST_UPGRADE.'. We keep MAIN_VERSION_LAST_UPGRADE as it is.', LOG_DEBUG); + dolibarr_install_syslog('step5: we run an upgrade to version ' . $targetversion . ' but database was already upgraded to ' . $conf->global->MAIN_VERSION_LAST_UPGRADE . '. We keep MAIN_VERSION_LAST_UPGRADE as it is.'); } } else @@ -290,7 +291,7 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i',$action)) } else { - dol_print_error('','install/etape5.php Unknown choice of action'); + dol_print_error('','step5.php: unknown choice of action'); } // May fail if parameter already defined @@ -404,7 +405,7 @@ elseif (empty($action) || preg_match('/upgrade/i',$action)) } else { - dol_print_error('','install/etape5.php Unknown choice of action'); + dol_print_error('','step5.php: unknown choice of action'); } @@ -413,6 +414,6 @@ else clearstatcache(); -dolibarr_install_syslog("--- install/etape5.php Dolibarr setup finished", LOG_INFO); +dolibarr_install_syslog("--- step5: Dolibarr setup finished"); pFooter(1,$setuplang); diff --git a/htdocs/install/upgrade.php b/htdocs/install/upgrade.php index 9c2832f3623..7c9cc7fd325 100644 --- a/htdocs/install/upgrade.php +++ b/htdocs/install/upgrade.php @@ -2,6 +2,7 @@ /* Copyright (C) 2004 Rodolphe Quiedeville * Copyright (C) 2004-2010 Laurent Destailleur * Copyright (C) 2005-2010 Regis Houssin + * Copyright (C) 2015 Raphaël Doursenaud * * 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 @@ -41,7 +42,7 @@ require_once $conffile; if (! isset($dolibarr_main_db_type)) $dolibarr_main_db_t require_once $dolibarr_main_document_root.'/core/lib/admin.lib.php'; $grant_query=''; -$etape = 2; +$step = 2; $ok = 0; @@ -70,8 +71,8 @@ if ($dolibarr_main_db_type == "pgsql") $choix=2; if ($dolibarr_main_db_type == "mssql") $choix=3; -dolibarr_install_syslog("upgrade: Entering upgrade.php page"); -if (! is_object($conf)) dolibarr_install_syslog("upgrade2: conf file not initialized",LOG_ERR); +dolibarr_install_syslog("--- upgrade: Entering upgrade.php page"); +if (! is_object($conf)) dolibarr_install_syslog("upgrade2: conf file not initialized", LOG_ERR); /* @@ -145,13 +146,13 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action'))) { print ''; print $langs->trans("ServerConnection")." : $dolibarr_main_db_host".$langs->trans("OK")."\n"; - dolibarr_install_syslog("upgrade: ".$langs->transnoentities("ServerConnection")." : $dolibarr_main_db_host ".$langs->transnoentities("OK")); + dolibarr_install_syslog("upgrade: " . $langs->transnoentities("ServerConnection") . ": $dolibarr_main_db_host " . $langs->transnoentities("OK")); $ok = 1; } else { print "".$langs->trans("ErrorFailedToConnectToDatabase",$dolibarr_main_db_name)."".$langs->transnoentities("Error")."\n"; - dolibarr_install_syslog("upgrade: ".$langs->transnoentities("ErrorFailedToConnectToDatabase",$dolibarr_main_db_name)); + dolibarr_install_syslog("upgrade: " . $langs->transnoentities("ErrorFailedToConnectToDatabase", $dolibarr_main_db_name)); $ok = 0; } @@ -161,13 +162,13 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action'))) { print ''; print $langs->trans("DatabaseConnection")." : ".$dolibarr_main_db_name."".$langs->trans("OK")."\n"; - dolibarr_install_syslog("upgrade: Database connection successfull : $dolibarr_main_db_name"); + dolibarr_install_syslog("upgrade: Database connection successful: " . $dolibarr_main_db_name); $ok=1; } else { print "".$langs->trans("ErrorFailedToConnectToDatabase",$dolibarr_main_db_name)."".$langs->trans("Error")."\n"; - dolibarr_install_syslog("upgrade: ".$langs->transnoentities("ErrorFailedToConnectToDatabase",$dolibarr_main_db_name)); + dolibarr_install_syslog("upgrade: " . $langs->transnoentities("ErrorFailedToConnectToDatabase", $dolibarr_main_db_name)); $ok=0; } } @@ -179,7 +180,7 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action'))) $versionarray=$db->getVersionArray(); print ''.$langs->trans("ServerVersion").''; print ''.$version.''; - dolibarr_install_syslog("upgrade: ".$langs->transnoentities("ServerVersion")." : $version"); + dolibarr_install_syslog("upgrade: " . $langs->transnoentities("ServerVersion") . ": " .$version); // Test database version requirement $versionmindb=$db::VERSIONMIN; @@ -189,7 +190,7 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action'))) { // Warning: database version too low. print "".$langs->trans("ErrorDatabaseVersionTooLow",join('.',$versionarray),join('.',$versionmindb))."".$langs->trans("Error")."\n"; - dolibarr_install_syslog("upgrade: ".$langs->transnoentities("ErrorDatabaseVersionTooLow",join('.',$versionarray),join('.',$versionmindb))); + dolibarr_install_syslog("upgrade: " . $langs->transnoentities("ErrorDatabaseVersionTooLow", join('.', $versionarray), join('.', $versionmindb))); $ok=0; } @@ -216,7 +217,7 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action'))) { // Warning: database version too low. print '
'.$langs->trans("ErrorDatabaseVersionForbiddenForMigration",join('.',$versionarray),$listofforbiddenversion)."
".$langs->trans("Error")."\n"; - dolibarr_install_syslog("upgrade: ".$langs->transnoentities("ErrorDatabaseVersionForbiddenForMigration",join('.',$versionarray),$listofforbiddenversion)); + dolibarr_install_syslog("upgrade: " . $langs->transnoentities("ErrorDatabaseVersionForbiddenForMigration", join('.', $versionarray), $listofforbiddenversion)); $ok=0; break; } @@ -246,7 +247,7 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action'))) $filles=array(); $sql = "SELECT fk_categorie_mere, fk_categorie_fille"; $sql.= " FROM ".MAIN_DB_PREFIX."categorie_association"; - dolibarr_install_syslog("upgrade: search duplicate", LOG_DEBUG); + dolibarr_install_syslog("upgrade: search duplicate"); $resql = $db->query($sql); if ($resql) { @@ -263,7 +264,7 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action'))) } } - dolibarr_install_syslog("upgrade: result is num=".$num." count(couples)=".count($couples)); + dolibarr_install_syslog("upgrade: result is num=" . $num . " count(couples)=" . count($couples)); // If there is duplicates couples or child with two parents if (count($couples) > 0 && $num > count($couples)) @@ -274,7 +275,7 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action'))) // We delete all $sql="DELETE FROM ".MAIN_DB_PREFIX."categorie_association"; - dolibarr_install_syslog("upgrade: delete association", LOG_DEBUG); + dolibarr_install_syslog("upgrade: delete association"); $resqld=$db->query($sql); if ($resqld) { @@ -283,7 +284,7 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action'))) { $sql ="INSERT INTO ".MAIN_DB_PREFIX."categorie_association(fk_categorie_mere,fk_categorie_fille)"; $sql.=" VALUES(".$val['mere'].", ".$val['fille'].")"; - dolibarr_install_syslog("upgrade: insert association", LOG_DEBUG); + dolibarr_install_syslog("upgrade: insert association"); $resqli=$db->query($sql); if (! $resqli) $error++; } @@ -481,6 +482,7 @@ $ret=0; if (! $ok && isset($argv[1])) $ret=1; dol_syslog("Exit ".$ret); +dolibarr_install_syslog("--- upgrade: end"); pFooter(((! $ok && empty($_GET["ignoreerrors"])) || $dirmodule),$setuplang); if ($db->connected) $db->close(); diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php index 7b5f299d758..214a6c54fbf 100644 --- a/htdocs/install/upgrade2.php +++ b/htdocs/install/upgrade2.php @@ -3,6 +3,7 @@ * Copyright (C) 2005-2012 Laurent Destailleur * Copyright (C) 2005-2011 Regis Houssin * Copyright (C) 2010 Juanjo Menent + * Copyright (C) 2015 Raphaël Doursenaud * * 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 @@ -47,7 +48,7 @@ require_once $dolibarr_main_document_root . '/core/class/menubase.class.php'; require_once $dolibarr_main_document_root . '/core/lib/files.lib.php'; $grant_query=''; -$etape = 2; +$step = 2; $error = 0; @@ -74,8 +75,8 @@ if ($dolibarr_main_db_type == 'pgsql') $choix=2; if ($dolibarr_main_db_type == 'mssql') $choix=3; -dolibarr_install_syslog("upgrade2: Entering upgrade2.php page"); -if (! is_object($conf)) dolibarr_install_syslog("upgrade2: conf file not initialized",LOG_ERR); +dolibarr_install_syslog("--- upgrade2: entering upgrade2.php page"); +if (! is_object($conf)) dolibarr_install_syslog("upgrade2: conf file not initialized", LOG_ERR); @@ -98,7 +99,7 @@ if (! $versionfrom && ! $versionto) exit; } -pHeader('','etape5',GETPOST("action")?GETPOST("action"):'upgrade','versionfrom='.$versionfrom.'&versionto='.$versionto); +pHeader('','step5',GETPOST("action")?GETPOST("action"):'upgrade','versionfrom='.$versionfrom.'&versionto='.$versionto); if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action'))) @@ -137,7 +138,7 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action'))) if (!$db->connected) { print ''.$langs->trans("ErrorFailedToConnectToDatabase",$conf->db->name).''.$langs->trans('Error').''; - dolibarr_install_syslog('upgrade2: Failed to connect to database : '.$conf->db->name.' on '.$conf->db->host.' for user '.$conf->db->user, LOG_ERR); + dolibarr_install_syslog('upgrade2: failed to connect to database :' . $conf->db->name . ' on ' . $conf->db->host . ' for user ' . $conf->db->user, LOG_ERR); $error++; } @@ -145,7 +146,7 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action'))) { if($db->database_selected) { - dolibarr_install_syslog('upgrade2: Database connection successfull : '.$dolibarr_main_db_name); + dolibarr_install_syslog('upgrade2: database connection successful :' . $dolibarr_main_db_name); } else { @@ -421,6 +422,7 @@ $ret=0; if ($error && isset($argv[1])) $ret=1; dol_syslog("Exit ".$ret); +dolibarr_install_syslog("--- upgrade2: end"); pFooter($error,$setuplang); if ($db->connected) $db->close(); @@ -455,7 +457,7 @@ function migrate_paiements($db,$langs,$conf) $resql = $db->query($sql); - dolibarr_install_syslog("upgrade2::migrate_paiements", LOG_DEBUG); + dolibarr_install_syslog("upgrade2::migrate_paiements"); if ($resql) { $i = 0; @@ -555,7 +557,7 @@ function migrate_paiements_orphelins_1($db,$langs,$conf) $resql = $db->query($sql); - dolibarr_install_syslog("upgrade2::migrate_paiements_orphelins_1", LOG_DEBUG); + dolibarr_install_syslog("upgrade2::migrate_paiements_orphelins_1"); $row = array(); if ($resql) { @@ -681,7 +683,7 @@ function migrate_paiements_orphelins_2($db,$langs,$conf) $resql = $db->query($sql); - dolibarr_install_syslog("upgrade2::migrate_paiements_orphelins_2", LOG_DEBUG); + dolibarr_install_syslog("upgrade2::migrate_paiements_orphelins_2"); $row = array(); if ($resql) { @@ -821,7 +823,7 @@ function migrate_contracts_det($db,$langs,$conf) $sql.= " WHERE cd.rowid IS NULL AND p.rowid IS NOT NULL"; $resql = $db->query($sql); - dolibarr_install_syslog("upgrade2::migrate_contracts_det", LOG_DEBUG); + dolibarr_install_syslog("upgrade2::migrate_contracts_det"); if ($resql) { $i = 0; @@ -917,7 +919,7 @@ function migrate_links_transfert($db,$langs,$conf) $sql.= " AND bu.fk_bank IS NULL"; $resql = $db->query($sql); - dolibarr_install_syslog("upgrade2::migrate_links_transfert", LOG_DEBUG); + dolibarr_install_syslog("upgrade2::migrate_links_transfert"); if ($resql) { $i = 0; @@ -941,7 +943,7 @@ function migrate_links_transfert($db,$langs,$conf) $sql.= ")"; print $sql.'
'; - dolibarr_install_syslog("migrate_links_transfert", LOG_DEBUG); + dolibarr_install_syslog("migrate_links_transfert"); if (! $db->query($sql)) { @@ -992,7 +994,7 @@ function migrate_contracts_date1($db,$langs,$conf) print ''.$langs->trans('MigrationContractsEmptyDatesUpdate')."
\n"; $sql="update llx_contrat set date_contrat=tms where date_contrat is null"; - dolibarr_install_syslog("upgrade2::migrate_contracts_date1", LOG_DEBUG); + dolibarr_install_syslog("upgrade2::migrate_contracts_date1"); $resql = $db->query($sql); if (! $resql) dol_print_error($db); if ($db->affected_rows($resql) > 0) @@ -1001,7 +1003,7 @@ function migrate_contracts_date1($db,$langs,$conf) print $langs->trans('MigrationContractsEmptyDatesNothingToUpdate')."
\n"; $sql="update llx_contrat set datec=tms where datec is null"; - dolibarr_install_syslog("upgrade2::migrate_contracts_date1", LOG_DEBUG); + dolibarr_install_syslog("upgrade2::migrate_contracts_date1"); $resql = $db->query($sql); if (! $resql) dol_print_error($db); if ($db->affected_rows($resql) > 0) @@ -1031,7 +1033,7 @@ function migrate_contracts_date2($db,$langs,$conf) $sql.= " GROUP BY c.rowid, c.date_contrat"; $resql = $db->query($sql); - dolibarr_install_syslog("upgrade2::migrate_contracts_date2", LOG_DEBUG); + dolibarr_install_syslog("upgrade2::migrate_contracts_date2"); if ($resql) { $i = 0; @@ -1092,7 +1094,7 @@ function migrate_contracts_date3($db,$langs,$conf) print ''.$langs->trans('MigrationContractsIncoherentCreationDateUpdate')."
\n"; $sql="update llx_contrat set datec=date_contrat where datec is null or datec > date_contrat"; - dolibarr_install_syslog("upgrade2::migrate_contracts_date3", LOG_DEBUG); + dolibarr_install_syslog("upgrade2::migrate_contracts_date3"); $resql = $db->query($sql); if (! $resql) dol_print_error($db); if ($db->affected_rows($resql) > 0) @@ -1120,7 +1122,7 @@ function migrate_contracts_open($db,$langs,$conf) $sql = "SELECT c.rowid as cref FROM llx_contrat as c, llx_contratdet as cd"; $sql.= " WHERE cd.statut = 4 AND c.statut=2 AND c.rowid=cd.fk_contrat"; - dolibarr_install_syslog("upgrade2::migrate_contracts_open", LOG_DEBUG); + dolibarr_install_syslog("upgrade2::migrate_contracts_open"); $resql = $db->query($sql); if (! $resql) dol_print_error($db); if ($db->affected_rows($resql) > 0) { @@ -1190,7 +1192,7 @@ function migrate_paiementfourn_facturefourn($db,$langs,$conf) $select_sql.= ' FROM '.MAIN_DB_PREFIX.'paiementfourn'; $select_sql.= ' WHERE fk_facture_fourn IS NOT NULL'; - dolibarr_install_syslog("upgrade2::migrate_paiementfourn_facturefourn", LOG_DEBUG); + dolibarr_install_syslog("upgrade2::migrate_paiementfourn_facturefourn"); $select_resql = $db->query($select_sql); if ($select_resql) { @@ -1306,7 +1308,7 @@ function migrate_price_facture($db,$langs,$conf) $sql.= " AND (((fd.total_ttc = 0 AND fd.remise_percent != 100) or fd.total_ttc IS NULL) or f.total_ttc IS NULL)"; //print $sql; - dolibarr_install_syslog("upgrade2::migrate_price_facture", LOG_DEBUG); + dolibarr_install_syslog("upgrade2::migrate_price_facture"); $resql=$db->query($sql); if ($resql) { @@ -1340,7 +1342,7 @@ function migrate_price_facture($db,$langs,$conf) $facligne->total_tva = $total_tva; $facligne->total_ttc = $total_ttc; - dolibarr_install_syslog("upgrade2: Line $rowid: facid=$obj->facid pu=$pu qty=$qty vatrate=$vatrate remise_percent=$remise_percent remise_global=$remise_percent_global -> $total_ht, $total_tva, $total_ttc"); + dolibarr_install_syslog("upgrade2: line " . $rowid . ": facid=" . $obj->facid . " pu=" . $pu ." qty=" . $qty . " vatrate=" . $vatrate . " remise_percent=" . $remise_percent . " remise_global=" . $remise_percent_global . " -> " . $total_ht . ", " . $total_tva . ", " . $total_ttc); print ". "; $facligne->update_total(); @@ -1419,7 +1421,7 @@ function migrate_price_propal($db,$langs,$conf) $sql.= " WHERE pd.fk_propal = p.rowid"; $sql.= " AND ((pd.total_ttc = 0 AND pd.remise_percent != 100) or pd.total_ttc IS NULL)"; - dolibarr_install_syslog("upgrade2::migrate_price_propal", LOG_DEBUG); + dolibarr_install_syslog("upgrade2::migrate_price_propal"); $resql=$db->query($sql); if ($resql) { @@ -1452,7 +1454,7 @@ function migrate_price_propal($db,$langs,$conf) $propalligne->total_tva = $total_tva; $propalligne->total_ttc = $total_ttc; - dolibarr_install_syslog("upgrade2: Line $rowid: propalid=$obj->rowid pu=$pu qty=$qty vatrate=$vatrate remise_percent=$remise_percent remise_global=$remise_percent_global -> $total_ht, $total_tva, $total_ttc"); + dolibarr_install_syslog("upgrade2: Line " . $rowid . ": propalid=" . $obj->rowid . " pu=" . $pu . " qty=" . $qty . " vatrate=" . $vatrate . " remise_percent=" . $remise_percent . " remise_global=" . $remise_percent_global . " -> " . $total_ht . ", " . $total_tva. ", " . $total_ttc); print ". "; $propalligne->update_total(); @@ -1528,7 +1530,7 @@ function migrate_price_contrat($db,$langs,$conf) $sql.= " WHERE cd.fk_contrat = c.rowid"; $sql.= " AND ((cd.total_ttc = 0 AND cd.remise_percent != 100 AND cd.subprice > 0) or cd.total_ttc IS NULL)"; - dolibarr_install_syslog("upgrade2::migrate_price_contrat", LOG_DEBUG); + dolibarr_install_syslog("upgrade2::migrate_price_contrat"); $resql=$db->query($sql); if ($resql) { @@ -1561,7 +1563,7 @@ function migrate_price_contrat($db,$langs,$conf) $contratligne->total_tva = $total_tva; $contratligne->total_ttc = $total_ttc; - dolibarr_install_syslog("upgrade2: Line $rowid: contratdetid=$obj->rowid pu=$pu qty=$qty vatrate=$vatrate remise_percent=$remise_percent -> $total_ht, $total_tva, $total_ttc"); + dolibarr_install_syslog("upgrade2: Line " . $rowid . ": contratdetid=" . $obj->rowid . " pu=" . $pu . " qty=" . $qty . " vatrate=" . $vatrate . " remise_percent=" . $remise_percent. " -> " . $total_ht . ", " . $total_tva. " , " . $total_ttc); print ". "; $contratligne->update_total(); @@ -1613,7 +1615,7 @@ function migrate_price_commande($db,$langs,$conf) $sql.= " WHERE cd.fk_commande = c.rowid"; $sql.= " AND ((cd.total_ttc = 0 AND cd.remise_percent != 100) or cd.total_ttc IS NULL)"; - dolibarr_install_syslog("upgrade2::migrate_price_commande", LOG_DEBUG); + dolibarr_install_syslog("upgrade2::migrate_price_commande"); $resql=$db->query($sql); if ($resql) { @@ -1646,7 +1648,7 @@ function migrate_price_commande($db,$langs,$conf) $commandeligne->total_tva = $total_tva; $commandeligne->total_ttc = $total_ttc; - dolibarr_install_syslog("upgrade2: Line $rowid: commandeid=$obj->rowid pu=$pu qty=$qty vatrate=$vatrate remise_percent=$remise_percent remise_global=$remise_percent_global -> $total_ht, $total_tva, $total_ttc"); + dolibarr_install_syslog("upgrade2: Line " . $rowid . " : commandeid=" . $obj->rowid . " pu=" . $pu . " qty=" . $qty . " vatrate=" . $vatrate . " remise_percent=" . $remise_percent . " remise_global=" . $remise_percent_global. " -> " . $total_ht . ", " . $total_tva . ", " . $total_ttc); print ". "; $commandeligne->update_total(); @@ -1727,7 +1729,7 @@ function migrate_price_commande_fournisseur($db,$langs,$conf) $sql.= " WHERE cd.fk_commande = c.rowid"; $sql.= " AND ((cd.total_ttc = 0 AND cd.remise_percent != 100) or cd.total_ttc IS NULL)"; - dolibarr_install_syslog("upgrade2::migrate_price_commande_fournisseur", LOG_DEBUG); + dolibarr_install_syslog("upgrade2::migrate_price_commande_fournisseur"); $resql=$db->query($sql); if ($resql) { @@ -1760,7 +1762,7 @@ function migrate_price_commande_fournisseur($db,$langs,$conf) $commandeligne->total_tva = $total_tva; $commandeligne->total_ttc = $total_ttc; - dolibarr_install_syslog("upgrade2: Line $rowid: commandeid=$obj->rowid pu=$pu qty=$qty vatrate=$vatrate remise_percent=$remise_percent remise_global=$remise_percent_global -> $total_ht, $total_tva, $total_ttc"); + dolibarr_install_syslog("upgrade2: Line " . $rowid . ": commandeid=" . $obj->rowid . " pu=" . $pu . " qty=" . $qty . " vatrate=" . $vatrate . " remise_percent=" . $remise_percent . " remise_global=" . $remise_percent_global . " -> " . $total_ht . ", " . $total_tva . ", " . $total_ttc); print ". "; $commandeligne->update_total(); @@ -2448,7 +2450,7 @@ function migrate_restore_missing_links($db,$langs,$conf) $sql.= " (SELECT t2.rowid FROM ".MAIN_DB_PREFIX.$table2." as t2"; $sql.= " WHERE t1.rowid = t2.".$field2.")"; - dolibarr_install_syslog("upgrade2:migrate_restore_missing_links DIRECTION 1", LOG_DEBUG); + dolibarr_install_syslog("upgrade2::migrate_restore_missing_links DIRECTION 1"); $resql = $db->query($sql); if ($resql) { @@ -2514,7 +2516,7 @@ function migrate_restore_missing_links($db,$langs,$conf) $sql.= " (SELECT t2.rowid FROM ".MAIN_DB_PREFIX.$table2." as t2"; $sql.= " WHERE t1.rowid = t2.".$field2.")"; - dolibarr_install_syslog("upgrade2:migrate_restore_missing_links DIRECTION 2", LOG_DEBUG); + dolibarr_install_syslog("upgrade2::migrate_restore_missing_links DIRECTION 2"); $resql = $db->query($sql); if ($resql) { @@ -2779,7 +2781,7 @@ function migrate_relationship_tables($db,$langs,$conf,$table,$fk_source,$sourcet if ($db->DDLInfoTable(MAIN_DB_PREFIX.$table)) { - dolibarr_install_syslog("upgrade2::migrate_relationship_tables table = ".MAIN_DB_PREFIX.$table); + dolibarr_install_syslog("upgrade2::migrate_relationship_tables table = " . MAIN_DB_PREFIX . $table); $db->begin(); @@ -3304,7 +3306,7 @@ function migrate_actioncomm_element($db,$langs,$conf) $obj = $db->fetch_object($result); if ($obj) { - dolibarr_install_syslog("upgrade2::migrate_actioncomm_element field=".$field); + dolibarr_install_syslog("upgrade2::migrate_actioncomm_element field=" . $field); $db->begin(); @@ -3367,7 +3369,7 @@ function migrate_mode_reglement($db,$langs,$conf) { $error=0; - dolibarr_install_syslog("upgrade2::migrate_mode_reglement code=".$elements['code'][$key]); + dolibarr_install_syslog("upgrade2::migrate_mode_reglement code=" . $elements['code'][$key]); $sqlSelect = "SELECT id"; $sqlSelect.= " FROM ".MAIN_DB_PREFIX."c_paiement"; @@ -3624,7 +3626,7 @@ function migrate_directories($db,$langs,$conf,$oldname,$newname) if (is_dir(DOL_DATA_ROOT.$oldname) && ! file_exists(DOL_DATA_ROOT.$newname)) { - dolibarr_install_syslog("upgrade2::migrate_directories move ".DOL_DATA_ROOT.$oldname.' into '.DOL_DATA_ROOT.$newname); + dolibarr_install_syslog("upgrade2::migrate_directories move " . DOL_DATA_ROOT . $oldname . ' into ' . DOL_DATA_ROOT . $newname); @rename(DOL_DATA_ROOT.$oldname,DOL_DATA_ROOT.$newname); } } @@ -3774,7 +3776,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) if ($moduletoreload == 'MAIN_MODULE_AGENDA') { - dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module Agenda"); + dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate Agenda module"); $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modAgenda.class.php'; if ($res) { $mod=new modAgenda($db); @@ -3784,7 +3786,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) } if ($moduletoreload == 'MAIN_MODULE_BARCODE') { - dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module Barcode"); + dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate Barcode module"); $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modBarcode.class.php'; if ($res) { $mod=new modBarcode($db); @@ -3794,7 +3796,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) } if ($moduletoreload == 'MAIN_MODULE_CRON') { - dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module Cron"); + dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate Cron module"); $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modCron.class.php'; if ($res) { $mod=new modCron($db); @@ -3804,7 +3806,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) } if ($moduletoreload == 'MAIN_MODULE_SOCIETE') { - dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module Societe"); + dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate Societe module"); $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modSociete.class.php'; if ($res) { $mod=new modSociete($db); @@ -3814,7 +3816,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) } if ($moduletoreload == 'MAIN_MODULE_PRODUIT') // Permission has changed into 2.7 { - dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module Produit"); + dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate Produit module"); $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modProduct.class.php'; if ($res) { $mod=new modProduct($db); @@ -3824,7 +3826,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) } if ($moduletoreload == 'MAIN_MODULE_SERVICE') // Permission has changed into 2.7 { - dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module Service"); + dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate Service module"); $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modService.class.php'; if ($res) { @@ -3835,7 +3837,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) } if ($moduletoreload == 'MAIN_MODULE_COMMANDE') // Permission has changed into 2.9 { - dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module Commande"); + dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate Commande module"); $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modCommande.class.php'; if ($res) { @@ -3846,7 +3848,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) } if ($moduletoreload == 'MAIN_MODULE_FACTURE') // Permission has changed into 2.9 { - dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module Facture"); + dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate Facture module"); $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modFacture.class.php'; if ($res) { $mod=new modFacture($db); @@ -3856,7 +3858,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) } if ($moduletoreload == 'MAIN_MODULE_FOURNISSEUR') // Permission has changed into 2.9 { - dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module Fournisseur"); + dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate Fournisseur module"); $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modFournisseur.class.php'; if ($res) { $mod=new modFournisseur($db); @@ -3866,7 +3868,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) } if ($moduletoreload == 'MAIN_MODULE_DEPLACEMENT') // Permission has changed into 3.0 { - dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module Deplacement"); + dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate Deplacement module"); $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modDeplacement.class.php'; if ($res) { $mod=new modDeplacement($db); @@ -3876,7 +3878,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) } if ($moduletoreload == 'MAIN_MODULE_DON') // Permission has changed into 3.0 { - dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module Don"); + dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate Don module"); $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modDon.class.php'; if ($res) { $mod=new modDon($db); @@ -3886,7 +3888,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) } if ($moduletoreload == 'MAIN_MODULE_ECM') // Permission has changed into 3.0 and 3.1 { - dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module ECM"); + dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate ECM module"); $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modECM.class.php'; if ($res) { $mod=new modECM($db); @@ -3896,7 +3898,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) } if ($moduletoreload == 'MAIN_MODULE_PAYBOX') // Permission has changed into 3.0 { - dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module Paybox"); + dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate Paybox module"); $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modPaybox.class.php'; if ($res) { $mod=new modPaybox($db); @@ -3906,7 +3908,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) } if ($moduletoreload == 'MAIN_MODULE_OPENSURVEY') // Permission has changed into 3.0 { - dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module Opensurvey"); + dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate Opensurvey module"); $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modOpenSurvey.class.php'; if ($res) { $mod=new modOpenSurvey($db); @@ -3916,7 +3918,7 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array()) } if ($moduletoreload == 'MAIN_MODULE_USER') // Permission has changed into 3.0 { - dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module User"); + dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate User module"); $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modUser.class.php'; if ($res) { $mod=new modUser($db); diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index c119a002641..c63ce9f1ddf 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -48,6 +48,7 @@ NewAccount=New accounting account Update=Update List=List Create=Create +CreateMvts=Create movement UpdateAccount=Modification of an accounting account UpdateMvts=Modification of a movement WriteBookKeeping=Record accounts in general ledger @@ -83,6 +84,8 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the breakdown pages " AccountLength=Length of the accounting accounts shown in Dolibarr AccountLengthDesc=Function allowing to feign a length of accounting account by replacing spaces by the zero figure. This function touches only the display, it does not modify the accounting accounts registered in Dolibarr. For the export, this function is necessary to be compatible with certain software. +ACCOUNTING_LENGTH_DESCRIPTION=Length for displaying product & services description in listings (Best = 50) +ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Length for displaying product & services account description form in listings (Best = 50) ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounts ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounts diff --git a/htdocs/paypal/lib/paypal.lib.php b/htdocs/paypal/lib/paypal.lib.php index 5eb4549f0fa..a7b39cd5f34 100644 --- a/htdocs/paypal/lib/paypal.lib.php +++ b/htdocs/paypal/lib/paypal.lib.php @@ -69,7 +69,7 @@ function llxHeaderPaypal($title, $head = "") // JQuery. Must be before other includes print ''."\n"; - print ''."\n"; + print ''."\n"; // jQuery jnotify if (empty($conf->global->MAIN_DISABLE_JQUERY_JNOTIFY)) { diff --git a/htdocs/public/test/test_arrays.php b/htdocs/public/test/test_arrays.php index 698046cf708..77d92e5d8eb 100644 --- a/htdocs/public/test/test_arrays.php +++ b/htdocs/public/test/test_arrays.php @@ -30,14 +30,14 @@ if (empty($usedolheader)) Test page - + " /> - +