From 8a786758b7d9fb7e3abb50044f8da0a9605ff37c Mon Sep 17 00:00:00 2001 From: John BOTELLA Date: Thu, 4 Apr 2019 11:45:54 +0200 Subject: [PATCH 001/484] NEW browser mobil app support --- htdocs/main.inc.php | 13 ++++ .../theme/common/appli_dolibarr_256x256.png | Bin 0 -> 4008 bytes htdocs/theme/eldy/manifest.json.php | 57 ++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 htdocs/theme/common/appli_dolibarr_256x256.png create mode 100644 htdocs/theme/eldy/manifest.json.php diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 74069429043..25a64966b79 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -1234,6 +1234,19 @@ function top_htmlhead($head, $title = '', $disablejs = 0, $disablehead = 0, $arr //if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) print ''."\n"; //if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) print ''."\n"; + // Mobile appli like icon + $manifest=dol_buildpath('/theme/'.$conf->theme.'/manifest.json.php', 1, 1); + if(!empty($manifest)){ + print ''."\n"; + } + + if(!empty($conf->global->THEME_ELDY_TOPMENU_BACK1)) { + // TODO: use auto theme color switch + print '' . "\n"; + } + + + // Auto refresh page if (GETPOST('autorefresh', 'int') > 0) print ''; diff --git a/htdocs/theme/common/appli_dolibarr_256x256.png b/htdocs/theme/common/appli_dolibarr_256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..970f841001bbd165a955f094f6505a75fe7b5fb6 GIT binary patch literal 4008 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 Q3RVMc4Sigxnr*~?0Ios=rvLx| literal 0 HcmV?d00001 diff --git a/htdocs/theme/eldy/manifest.json.php b/htdocs/theme/eldy/manifest.json.php new file mode 100644 index 00000000000..ef5459cf600 --- /dev/null +++ b/htdocs/theme/eldy/manifest.json.php @@ -0,0 +1,57 @@ + + * Copyright (C) 2006 Rodolphe Quiedeville + * Copyright (C) 2007-2017 Regis Houssin + * Copyright (C) 2011 Philippe Grand + * Copyright (C) 2012 Juanjo Menent + * Copyright (C) 2018 Ferran Marcet + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FI8TNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file htdocs/theme/eldy/manifest.json.php + * \brief File for The Web App + */ + +//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Not disabled because need to load personalized language +//if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); // Not disabled to increase speed. Language code is found on url. +if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC', '1'); +//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); // Not disabled because need to do translations +if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK', 1); +if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', 1); +if (! defined('NOLOGIN')) define('NOLOGIN', 1); // File must be accessed by logon page so without login +//if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU',1); // We need top menu content +if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML', 1); +if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); + +require_once __DIR__.'/../../main.inc.php'; + +$appli=constant('DOL_APPLICATION_TITLE'); +if (!empty($conf->global->MAIN_APPLICATION_TITLE)) $appli=$conf->global->MAIN_APPLICATION_TITLE; + +?> +{ + "name": "", + "icons": [ + { + "src": "", + "sizes": "256x256", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} From 788e7a40a8f784e221b1f2f3204408af6a9f8977 Mon Sep 17 00:00:00 2001 From: John BOTELLA Date: Thu, 4 Apr 2019 11:47:07 +0200 Subject: [PATCH 002/484] remove space --- htdocs/main.inc.php | 2 -- htdocs/theme/eldy/manifest.json.php | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 25a64966b79..9b12f892ea9 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -1245,8 +1245,6 @@ function top_htmlhead($head, $title = '', $disablejs = 0, $disablehead = 0, $arr print '' . "\n"; } - - // Auto refresh page if (GETPOST('autorefresh', 'int') > 0) print ''; diff --git a/htdocs/theme/eldy/manifest.json.php b/htdocs/theme/eldy/manifest.json.php index ef5459cf600..afaa3a4258c 100644 --- a/htdocs/theme/eldy/manifest.json.php +++ b/htdocs/theme/eldy/manifest.json.php @@ -54,4 +54,4 @@ if (!empty($conf->global->MAIN_APPLICATION_TITLE)) $appli=$conf->global->MAIN_AP "theme_color": "#ffffff", "background_color": "#ffffff", "display": "standalone" -} +} \ No newline at end of file From 9957b8aed5a1a7863c4d9992d6190c870acaeea3 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Mon, 15 Apr 2019 09:07:36 +0200 Subject: [PATCH 003/484] WIP - FEC - Validate --- htdocs/accountancy/closure/index.html | 0 htdocs/accountancy/closure/index.php | 416 ++++++++++++++++++++++++ htdocs/core/menus/standard/eldy.lib.php | 13 +- 3 files changed, 427 insertions(+), 2 deletions(-) create mode 100644 htdocs/accountancy/closure/index.html create mode 100644 htdocs/accountancy/closure/index.php diff --git a/htdocs/accountancy/closure/index.html b/htdocs/accountancy/closure/index.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/htdocs/accountancy/closure/index.php b/htdocs/accountancy/closure/index.php new file mode 100644 index 00000000000..9786734ab82 --- /dev/null +++ b/htdocs/accountancy/closure/index.php @@ -0,0 +1,416 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +/** + * \file htdocs/accountancy/customer/index.php + * \ingroup Accountancy + * \brief Home closure page + */ + +require '../../main.inc.php'; +require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php'; +require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php'; +require_once DOL_DOCUMENT_ROOT . '/accountancy/class/bookkeeping.class.php'; + +// Load translation files required by the page +$langs->loadLangs(array("compta","bills","other","main","accountancy")); + +// Security check +if (empty($conf->accounting->enabled)) { + accessforbidden(); +} +if ($user->societe_id > 0) + accessforbidden(); +if (! $user->rights->accounting->closure->read) + accessforbidden(); + + +$month_start= ($conf->global->SOCIETE_FISCAL_MONTH_START?($conf->global->SOCIETE_FISCAL_MONTH_START):1); +if (GETPOST("year", 'int')) $year_start = GETPOST("year", 'int'); +else +{ + $year_start = dol_print_date(dol_now(), '%Y'); + if (dol_print_date(dol_now(), '%m') < $month_start) $year_start--; // If current month is lower that starting fiscal month, we start last year +} +$year_end = $year_start + 1; +$month_end = $month_start - 1; +if ($month_end < 1) +{ + $month_end = 12; + $year_end--; +} +$search_date_start = dol_mktime(0, 0, 0, $month_start, 1, $year_start); +$search_date_end = dol_get_last_day($year_end, $month_end); +$year_current = $year_start; + +// Validate History +$action = GETPOST('action', 'aZ09'); + + +/* + * Actions + */ + +if ($action == 'clean' || $action == 'validatehistory') +{ + // Clean database + $db->begin(); + $sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet as fd"; + $sql1 .= " SET fk_code_ventilation = 0"; + $sql1 .= ' WHERE fd.fk_code_ventilation NOT IN'; + $sql1 .= ' (SELECT accnt.rowid '; + $sql1 .= ' FROM ' . MAIN_DB_PREFIX . 'accounting_account as accnt'; + $sql1 .= ' INNER JOIN ' . MAIN_DB_PREFIX . 'accounting_system as syst'; + $sql1 .= ' ON accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=' . $conf->global->CHARTOFACCOUNTS . ' AND accnt.entity = '.$conf->entity.')'; + $sql1 .= ' AND fd.fk_facture IN (SELECT rowid FROM ' . MAIN_DB_PREFIX . 'facture WHERE entity = '.$conf->entity.')'; + $sql1 .= ' AND fk_code_ventilation <> 0'; + + dol_syslog("htdocs/accountancy/customer/index.php fixaccountancycode", LOG_DEBUG); + $resql1 = $db->query($sql1); + if (! $resql1) { + $error ++; + $db->rollback(); + setEventMessages($db->lasterror(), null, 'errors'); + } else { + $db->commit(); + } + // End clean database +} + +if ($action == 'validatehistory') { + + $error = 0; + $db->begin(); + + // Now make the binding. Bind automatically only for product with a dedicated account that exists into chart of account, others need a manual bind + if ($db->type == 'pgsql') { + $sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet"; + $sql1 .= " SET fk_code_ventilation = accnt.rowid"; + $sql1 .= " FROM " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst"; + $sql1 .= " WHERE " . MAIN_DB_PREFIX . "facturedet.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . $conf->global->CHARTOFACCOUNTS.' AND accnt.entity = '.$conf->entity; + $sql1 .= " AND accnt.active = 1 AND p.accountancy_code_sell=accnt.account_number"; + $sql1 .= " AND " . MAIN_DB_PREFIX . "facturedet.fk_code_ventilation = 0"; + } else { + $sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet as fd, " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst"; + $sql1 .= " SET fk_code_ventilation = accnt.rowid"; + $sql1 .= " WHERE fd.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . $conf->global->CHARTOFACCOUNTS.' AND accnt.entity = '.$conf->entity; + $sql1 .= " AND accnt.active = 1 AND p.accountancy_code_sell=accnt.account_number"; + $sql1 .= " AND fd.fk_code_ventilation = 0"; + } + + dol_syslog('htdocs/accountancy/customer/index.php'); + + $resql1 = $db->query($sql1); + if (! $resql1) { + $error ++; + $db->rollback(); + setEventMessages($db->lasterror(), null, 'errors'); + } else { + $db->commit(); + setEventMessages($langs->trans('AutomaticBindingDone'), null, 'mesgs'); + } +} + + +/* + * View + */ + +llxHeader('', $langs->trans("CustomersVentilation")); + +$textprevyear = '' . img_previous() . ''; +$textnextyear = ' ' . img_next() . ''; + + +print load_fiche_titre($langs->trans("CustomersVentilation") . " " . $textprevyear . " " . $langs->trans("Year") . " " . $year_start . " " . $textnextyear, '', 'title_accountancy'); + +print $langs->trans("DescVentilCustomer") . '
'; +print $langs->trans("DescVentilMore", $langs->transnoentitiesnoconv("ValidateHistory"), $langs->transnoentitiesnoconv("ToBind")) . '
'; +print '
'; + + +$y = $year_current; + +$buttonbind = '' . $langs->trans("ValidateHistory") . ''; + +print_barre_liste($langs->trans("OverviewOfAmountOfLinesNotBound"), '', '', '', '', '', '', -1, '', '', 0, $buttonbind, '', 0, 1, 1); +//print load_fiche_titre($langs->trans("OverviewOfAmountOfLinesNotBound"), $buttonbind, ''); + +print '
'; +print ''; +print ''; +print ''; +for($i = 1; $i <= 12; $i ++) { + $j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START?$conf->global->SOCIETE_FISCAL_MONTH_START:1) - 1; + if ($j > 12) $j-=12; + print ''; +} +print ''; + +$sql = "SELECT " . $db->ifsql('aa.account_number IS NULL', "'tobind'", 'aa.account_number') . " AS codecomptable,"; +$sql .= " " . $db->ifsql('aa.label IS NULL', "'tobind'", 'aa.label') . " AS intitule,"; +for($i = 1; $i <= 12; $i ++) { + $j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START?$conf->global->SOCIETE_FISCAL_MONTH_START:1) - 1; + if ($j > 12) $j-=12; + $sql .= " SUM(" . $db->ifsql('MONTH(f.datef)=' . $j, 'fd.total_ht', '0') . ") AS month" . str_pad($j, 2, '0', STR_PAD_LEFT) . ","; +} +$sql .= " SUM(fd.total_ht) as total"; +$sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as fd"; +$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_facture"; +$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON aa.rowid = fd.fk_code_ventilation"; +$sql .= " WHERE f.datef >= '" . $db->idate($search_date_start) . "'"; +$sql .= " AND f.datef <= '" . $db->idate($search_date_end) . "'"; +$sql .= " AND f.fk_statut > 0"; +$sql .= " AND f.entity IN (" . getEntity('invoice', 0) . ")"; // We don't share object for accountancy +$sql .= " AND aa.account_number IS NULL"; +if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { + $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_SITUATION . ")"; +} else { + $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_DEPOSIT . "," . Facture::TYPE_SITUATION . ")"; +} +$sql .= " GROUP BY fd.fk_code_ventilation,aa.account_number,aa.label"; + +dol_syslog('htdocs/accountancy/customer/index.php sql=' . $sql, LOG_DEBUG); +$resql = $db->query($sql); +if ($resql) { + $num = $db->num_rows($resql); + + while ( $row = $db->fetch_row($resql)) { + + print ''; + print ''; + for($i = 2; $i <= 12; $i ++) { + print ''; + } + print ''; + print ''; + print ''; + } + $db->free($resql); +} else { + print $db->lasterror(); // Show last sql error +} +print "
' . $langs->trans("Account") . '' . $langs->trans("Label") . '' . $langs->trans('MonthShort' . str_pad($j, 2, '0', STR_PAD_LEFT)) . '' . $langs->trans("Total") . '
'; + if ($row[0] == 'tobind') + { + print $langs->trans("Unknown"); + } + else print length_accountg($row[0]); + print ''; + if ($row[0] == 'tobind') + { + print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/customer/list.php?search_year='.$y, $langs->transnoentitiesnoconv("ToBind")); + } + else print $row[1]; + print '' . price($row[$i]) . '' . price($row[13]) . '' . price($row[14]) . '
\n"; +print '
'; + + +print '
'; + + +print_barre_liste($langs->trans("OverviewOfAmountOfLinesBound"), '', '', '', '', '', '', -1, '', '', 0, '', '', 0, 1, 1); +//print load_fiche_titre($langs->trans("OverviewOfAmountOfLinesBound"), '', ''); + +print '
'; +print ''; +print ''; +print ''; +for($i = 1; $i <= 12; $i ++) { + $j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START?$conf->global->SOCIETE_FISCAL_MONTH_START:1) - 1; + if ($j > 12) $j-=12; + print ''; +} +print ''; + +$sql = "SELECT " . $db->ifsql('aa.account_number IS NULL', "'tobind'", 'aa.account_number') . " AS codecomptable,"; +$sql .= " " . $db->ifsql('aa.label IS NULL', "'tobind'", 'aa.label') . " AS intitule,"; +for($i = 1; $i <= 12; $i ++) { + $j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START?$conf->global->SOCIETE_FISCAL_MONTH_START:1) - 1; + if ($j > 12) $j-=12; + $sql .= " SUM(" . $db->ifsql('MONTH(f.datef)=' . $j, 'fd.total_ht', '0') . ") AS month" . str_pad($j, 2, '0', STR_PAD_LEFT) . ","; +} +$sql .= " SUM(fd.total_ht) as total"; +$sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as fd"; +$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_facture"; +$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON aa.rowid = fd.fk_code_ventilation"; +$sql .= " WHERE f.datef >= '" . $db->idate($search_date_start) . "'"; +$sql .= " AND f.datef <= '" . $db->idate($search_date_end) . "'"; +$sql .= " AND f.entity IN (" . getEntity('invoice', 0) . ")"; // We don't share object for accountancy +$sql .= " AND f.fk_statut > 0"; +if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { + $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_SITUATION . ")"; +} else { + $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_DEPOSIT . "," . Facture::TYPE_SITUATION . ")"; +} +$sql .= " AND aa.account_number IS NOT NULL"; +$sql .= " GROUP BY fd.fk_code_ventilation,aa.account_number,aa.label"; + +dol_syslog('htdocs/accountancy/customer/index.php'); +$resql = $db->query($sql); +if ($resql) { + $num = $db->num_rows($resql); + + while ( $row = $db->fetch_row($resql)) { + + print ''; + + print ''; + + for($i = 2; $i <= 12; $i++) { + print ''; + } + print ''; + print ''; + print ''; + } + $db->free($resql); +} else { + print $db->lasterror(); // Show last sql error +} +print "
' . $langs->trans("Account") . '' . $langs->trans("Label") . '' . $langs->trans('MonthShort' . str_pad($j, 2, '0', STR_PAD_LEFT)) . '' . $langs->trans("Total") . '
'; + if ($row[0] == 'tobind') + { + print $langs->trans("Unknown"); + } + else print length_accountg($row[0]); + print ''; + if ($row[0] == 'tobind') + { + print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/customer/list.php?search_year='.$y, $langs->transnoentitiesnoconv("ToBind")); + } + else print $row[1]; + print '' . price($row[$i]) . '' . price($row[13]) . '' . price($row[14]) . '
\n"; +print '
'; + + +if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. Why showing a report that should rely on result of this step ? +{ + print '
'; + print '
'; + + print_barre_liste($langs->trans("OtherInfo"), '', '', '', '', '', '', -1, '', '', 0, '', '', 0, 1, 1); + //print load_fiche_titre($langs->trans("OtherInfo"), '', ''); + + print '
'; + print ''; + print ''; + for($i = 1; $i <= 12; $i ++) { + $j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START?$conf->global->SOCIETE_FISCAL_MONTH_START:1) - 1; + if ($j > 12) $j-=12; + print ''; + } + print ''; + + $sql = "SELECT '" . $langs->trans("TotalVente") . "' AS total,"; + for($i = 1; $i <= 12; $i ++) { + $j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START?$conf->global->SOCIETE_FISCAL_MONTH_START:1) - 1; + if ($j > 12) $j-=12; + $sql .= " SUM(" . $db->ifsql('MONTH(f.datef)=' . $j, 'fd.total_ht', '0') . ") AS month" . str_pad($j, 2, '0', STR_PAD_LEFT) . ","; + } + $sql .= " SUM(fd.total_ht) as total"; + $sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as fd"; + $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_facture"; + $sql .= " WHERE f.datef >= '" . $db->idate($search_date_start) . "'"; + $sql .= " AND f.datef <= '" . $db->idate($search_date_end) . "'"; + $sql .= " AND f.entity IN (" . getEntity('invoice', 0) . ")"; // We don't share object for accountancy + $sql .= " AND f.fk_statut > 0"; + if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { + $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_SITUATION . ")"; + } else { + $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_DEPOSIT . "," . Facture::TYPE_SITUATION . ")"; + } + + dol_syslog('htdocs/accountancy/customer/index.php'); + $resql = $db->query($sql); + if ($resql) { + $num = $db->num_rows($resql); + + while ($row = $db->fetch_row($resql)) { + print ''; + for($i = 1; $i <= 12; $i ++) { + print ''; + } + print ''; + print ''; + } + $db->free($resql); + } else { + print $db->lasterror(); // Show last sql error + } + print "
' . $langs->trans("TotalVente") . '' . $langs->trans('MonthShort' . str_pad($j, 2, '0', STR_PAD_LEFT)) . '' . $langs->trans("Total") . '
' . $row[0] . '' . price($row[$i]) . '' . price($row[13]) . '
\n"; + print '
'; + + + if (! empty($conf->margin->enabled)) { + print "
\n"; + print '
'; + print ''; + print ''; + for($i = 1; $i <= 12; $i ++) { + $j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START?$conf->global->SOCIETE_FISCAL_MONTH_START:1) - 1; + if ($j > 12) $j-=12; + print ''; + } + print ''; + + $sql = "SELECT '" . $langs->trans("Vide") . "' AS marge,"; + for($i = 1; $i <= 12; $i ++) { + $j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START?$conf->global->SOCIETE_FISCAL_MONTH_START:1) - 1; + if ($j > 12) $j-=12; + $sql .= " SUM(" . $db->ifsql('MONTH(f.datef)=' . $j, '(fd.total_ht-(fd.qty * fd.buy_price_ht))', '0') . ") AS month" . str_pad($j, 2, '0', STR_PAD_LEFT) . ","; + } + $sql .= " SUM((fd.total_ht-(fd.qty * fd.buy_price_ht))) as total"; + $sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as fd"; + $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_facture"; + $sql .= " WHERE f.datef >= '" . $db->idate($search_date_start) . "'"; + $sql .= " AND f.datef <= '" . $db->idate($search_date_end) . "'"; + $sql .= " AND f.entity IN (" . getEntity('invoice', 0) . ")"; // We don't share object for accountancy + $sql .= " AND f.fk_statut > 0"; + if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { + $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_SITUATION . ")"; + } else { + $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_DEPOSIT . "," . Facture::TYPE_SITUATION . ")"; + } + + dol_syslog('htdocs/accountancy/customer/index.php'); + $resql = $db->query($sql); + if ($resql) { + $num = $db->num_rows($resql); + + while ($row = $db->fetch_row($resql)) { + + print ''; + for($i = 1; $i <= 12; $i ++) { + print ''; + } + print ''; + print ''; + } + $db->free($resql); + } else { + print $db->lasterror(); // Show last sql error + } + print "
' . $langs->trans("TotalMarge") . '' . $langs->trans('MonthShort' . str_pad($j, 2, '0', STR_PAD_LEFT)) . '' . $langs->trans("Total") . '
' . $row[0] . '' . price(price2num($row[$i])) . '' . price(price2num($row[13])) . '
\n"; + print '
'; + } +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 7491556bebd..9382e3d4984 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -1303,9 +1303,9 @@ function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabM $newmenu->add("/compta/resultat/index.php?mainmenu=accountancy&leftmenu=accountancy_report", $langs->trans("Reportings"), 1, $user->rights->accounting->comptarapport->lire, '', $mainmenu, 'ca'); - if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/', $leftmenu)) { + if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/', $leftmenu)) { $newmenu->add("/compta/resultat/index.php?leftmenu=accountancy_report", $langs->trans("MenuReportInOut"), 2, $user->rights->accounting->comptarapport->lire); - $newmenu->add("/compta/resultat/clientfourn.php?leftmenu=accountancy_report", $langs->trans("ByPredefinedAccountGroups"), 3, $user->rights->accounting->comptarapport->lire); + $newmenu->add("/compta/resultat/clientfourn.php?leftmenu=accountancy_report", $langs->trans("ByPredefinedAccountGroups"), 3, $user->rights->accounting->comptarapport->lire); $newmenu->add("/compta/resultat/result.php?leftmenu=accountancy_report", $langs->trans("ByPersonalizedAccountGroups"), 3, $user->rights->accounting->comptarapport->lire); } @@ -1335,6 +1335,15 @@ function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabM } } + // Closure + if (! empty($conf->global->MAIN_FEATURES_LEVEL) && $conf->global->MAIN_FEATURES_LEVEL >= 2) { + $newmenu->add("/accountancy/closure/index.php?mainmenu=accountancy&leftmenu=accountancy_closure", $langs->trans("Closure"), 1, $user->rights->accounting->closure->read, '', $mainmenu, 'closure'); + + if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_closure/', $leftmenu)) { + $newmenu->add("/accountancy/closure/validation.php?leftmenu=accountancy_closure", $langs->trans("MenuAccountancyValidationMovements"), 2, $user->rights->accounting->closure->read); + } + } + // Accountancy (simple) if (! empty($conf->comptabilite->enabled)) { From face07ece1577311119b2df0bf2243003a62f9ba Mon Sep 17 00:00:00 2001 From: Christophe Battarel Date: Wed, 1 May 2019 15:15:20 +0200 Subject: [PATCH 004/484] new constant PRODUCT_STATS_WITH_PARENT_PROD_IF_INCDEC --- htdocs/product/class/product.class.php | 87 +++++++++++++++++++++++++- 1 file changed, 86 insertions(+), 1 deletion(-) diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 3796f5b022e..6afd42e3aae 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -2410,6 +2410,28 @@ class Product extends CommonObject $this->stats_propale['nb']=$obj->nb; $this->stats_propale['rows']=$obj->nb_rows; $this->stats_propale['qty']=$obj->qty?$obj->qty:0; + + // if it's a virtual product, maybe it is in proposal by extension + if (! empty($conf->global->PRODUCT_STATS_WITH_PARENT_PROD_IF_INCDEC)) { + $TFather = $this->getFather(); + if (is_array($TFather) && !empty($TFather)) { + foreach($TFather as &$fatherData) { + $pFather = new Product($this->db); + $pFather->id = $fatherData['id']; + $qtyCoef = $fatherData['qty']; + + if ($fatherData['incdec']) { + $pFather->load_stats_propale($socid); + + $this->stats_propale['customers']+=$pFather->stats_propale['customers']; + $this->stats_propale['nb']+=$pFather->stats_propale['nb']; + $this->stats_propale['rows']+=$pFather->stats_propale['rows']; + $this->stats_propale['qty']+=$pFather->stats_propale['qty'] * $qtyCoef; + } + } + } + } + return 1; } else @@ -2512,7 +2534,7 @@ class Product extends CommonObject $this->stats_commande['qty']=$obj->qty?$obj->qty:0; // if it's a virtual product, maybe it is in order by extension - if (! empty($conf->global->ORDER_ADD_ORDERS_WITH_PARENT_PROD_IF_INCDEC)) { + if (! empty($conf->global->PRODUCT_STATS_WITH_PARENT_PROD_IF_INCDEC)) { $TFather = $this->getFather(); if (is_array($TFather) && !empty($TFather)) { foreach($TFather as &$fatherData) { @@ -2665,6 +2687,27 @@ class Product extends CommonObject $this->stats_expedition['nb']=$obj->nb; $this->stats_expedition['rows']=$obj->nb_rows; $this->stats_expedition['qty']=$obj->qty?$obj->qty:0; + + // if it's a virtual product, maybe it is in sending by extension + if (! empty($conf->global->PRODUCT_STATS_WITH_PARENT_PROD_IF_INCDEC)) { + $TFather = $this->getFather(); + if (is_array($TFather) && !empty($TFather)) { + foreach($TFather as &$fatherData) { + $pFather = new Product($this->db); + $pFather->id = $fatherData['id']; + $qtyCoef = $fatherData['qty']; + + if ($fatherData['incdec']) { + $pFather->load_stats_sending($socid, $filtrestatut, $forVirtualStock); + + $this->stats_expedition['customers']+=$pFather->stats_expedition['customers']; + $this->stats_expedition['nb']+=$pFather->stats_expedition['nb']; + $this->stats_expedition['rows']+=$pFather->stats_expedition['rows']; + $this->stats_expedition['qty']+=$pFather->stats_expedition['qty'] * $qtyCoef; + } + } + } + } return 1; } else @@ -2762,6 +2805,27 @@ class Product extends CommonObject $this->stats_contrat['nb']=$obj->nb; $this->stats_contrat['rows']=$obj->nb_rows; $this->stats_contrat['qty']=$obj->qty?$obj->qty:0; + + // if it's a virtual product, maybe it is in contract by extension + if (! empty($conf->global->PRODUCT_STATS_WITH_PARENT_PROD_IF_INCDEC)) { + $TFather = $this->getFather(); + if (is_array($TFather) && !empty($TFather)) { + foreach($TFather as &$fatherData) { + $pFather = new Product($this->db); + $pFather->id = $fatherData['id']; + $qtyCoef = $fatherData['qty']; + + if ($fatherData['incdec']) { + $pFather->load_stats_contrat($socid); + + $this->stats_contrat['customers']+=$pFather->stats_contrat['customers']; + $this->stats_contrat['nb']+=$pFather->stats_contrat['nb']; + $this->stats_contrat['rows']+=$pFather->stats_contrat['rows']; + $this->stats_contrat['qty']+=$pFather->stats_contrat['qty'] * $qtyCoef; + } + } + } + } return 1; } else @@ -2811,6 +2875,27 @@ class Product extends CommonObject $this->stats_facture['nb']=$obj->nb; $this->stats_facture['rows']=$obj->nb_rows; $this->stats_facture['qty']=$obj->qty?$obj->qty:0; + + // if it's a virtual product, maybe it is in invoice by extension + if (! empty($conf->global->PRODUCT_STATS_WITH_PARENT_PROD_IF_INCDEC)) { + $TFather = $this->getFather(); + if (is_array($TFather) && !empty($TFather)) { + foreach($TFather as &$fatherData) { + $pFather = new Product($this->db); + $pFather->id = $fatherData['id']; + $qtyCoef = $fatherData['qty']; + + if ($fatherData['incdec']) { + $pFather->load_stats_facture($socid); + + $this->stats_facture['customers']+=$pFather->stats_facture['customers']; + $this->stats_facture['nb']+=$pFather->stats_facture['nb']; + $this->stats_facture['rows']+=$pFather->stats_facture['rows']; + $this->stats_facture['qty']+=$pFather->stats_facture['qty'] * $qtyCoef; + } + } + } + } return 1; } else From 4e16992796061f3c4a0f051dfd721934a93b6f00 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Sun, 5 May 2019 14:07:42 +0200 Subject: [PATCH 005/484] WIP --- htdocs/accountancy/closure/index.php | 2 +- htdocs/core/menus/standard/eldy.lib.php | 4 ++-- htdocs/core/modules/modAccounting.class.php | 8 ++++++++ htdocs/langs/en_US/accountancy.lang | 2 ++ 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/htdocs/accountancy/closure/index.php b/htdocs/accountancy/closure/index.php index 9786734ab82..8d2b93ccb6f 100644 --- a/htdocs/accountancy/closure/index.php +++ b/htdocs/accountancy/closure/index.php @@ -36,7 +36,7 @@ if (empty($conf->accounting->enabled)) { } if ($user->societe_id > 0) accessforbidden(); -if (! $user->rights->accounting->closure->read) +if (! $user->rights->accounting->fiscalyear->closure) accessforbidden(); diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 6e935d4bc49..0ccd2b671a1 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -1304,10 +1304,10 @@ function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabM // Closure if (! empty($conf->global->MAIN_FEATURES_LEVEL) && $conf->global->MAIN_FEATURES_LEVEL >= 2) { - $newmenu->add("/accountancy/closure/index.php?mainmenu=accountancy&leftmenu=accountancy_closure", $langs->trans("Closure"), 1, $user->rights->accounting->closure->read, '', $mainmenu, 'closure'); + $newmenu->add("/accountancy/closure/index.php?mainmenu=accountancy&leftmenu=accountancy_closure", $langs->trans("MenuAccountancyClosure"), 1, $user->rights->accounting->fiscalyear->closure, '', $mainmenu, 'closure'); if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_closure/', $leftmenu)) { - $newmenu->add("/accountancy/closure/validation.php?leftmenu=accountancy_closure", $langs->trans("MenuAccountancyValidationMovements"), 2, $user->rights->accounting->closure->read); + $newmenu->add("/accountancy/closure/validation.php?leftmenu=accountancy_closure", $langs->trans("MenuAccountancyValidationMovements"), 2, $user->rights->accounting->fiscalyear->closure); } } diff --git a/htdocs/core/modules/modAccounting.class.php b/htdocs/core/modules/modAccounting.class.php index 8250549b9e1..54187b16d6c 100644 --- a/htdocs/core/modules/modAccounting.class.php +++ b/htdocs/core/modules/modAccounting.class.php @@ -228,6 +228,14 @@ class modAccounting extends DolibarrModules $this->rights[$r][5] = ''; $r++; + $this->rights[$r][0] = 50431; + $this->rights[$r][1] = 'Validate movements of a fiscal year'; + $this->rights[$r][2] = 'w'; + $this->rights[$r][3] = 0; + $this->rights[$r][4] = 'fiscalyear'; + $this->rights[$r][5] = 'closure'; + $r++; + // Menus //------- diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index a2195784bef..ffc097f23a0 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -97,6 +97,8 @@ MenuExpenseReportAccounts=Expense report accounts MenuLoanAccounts=Loan accounts MenuProductsAccounts=Product accounts MenuClosureAccounts=Closure accounts +MenuAccountancyClosure=Closure +MenuAccountancyValidationMovements=Validate movements ProductsBinding=Products accounts TransferInAccounting=Transfer in accounting RegistrationInAccounting=Registration in accounting From b30929af6d7d63344d9a003d11ce4b3f1247eef7 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Mon, 6 May 2019 11:05:00 +0200 Subject: [PATCH 006/484] WIP --- htdocs/accountancy/closure/index.php | 217 +-------------------------- 1 file changed, 2 insertions(+), 215 deletions(-) diff --git a/htdocs/accountancy/closure/index.php b/htdocs/accountancy/closure/index.php index 8d2b93ccb6f..25fdf013f9a 100644 --- a/htdocs/accountancy/closure/index.php +++ b/htdocs/accountancy/closure/index.php @@ -17,7 +17,7 @@ */ /** - * \file htdocs/accountancy/customer/index.php + * \file htdocs/accountancy/closure/index.php * \ingroup Accountancy * \brief Home closure page */ @@ -140,7 +140,6 @@ $textnextyear = ' trans("DescVentilCustomer") . '
'; -print $langs->trans("DescVentilMore", $langs->transnoentitiesnoconv("ValidateHistory"), $langs->transnoentitiesnoconv("ToBind")) . '
'; print '
'; @@ -149,12 +148,9 @@ $y = $year_current; $buttonbind = '
' . $langs->trans("ValidateHistory") . ''; print_barre_liste($langs->trans("OverviewOfAmountOfLinesNotBound"), '', '', '', '', '', '', -1, '', '', 0, $buttonbind, '', 0, 1, 1); -//print load_fiche_titre($langs->trans("OverviewOfAmountOfLinesNotBound"), $buttonbind, ''); print '
'; print ''; -print ''; -print ''; for($i = 1; $i <= 12; $i ++) { $j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START?$conf->global->SOCIETE_FISCAL_MONTH_START:1) - 1; if ($j > 12) $j-=12; @@ -178,11 +174,6 @@ $sql .= " AND f.datef <= '" . $db->idate($search_date_end) . "'"; $sql .= " AND f.fk_statut > 0"; $sql .= " AND f.entity IN (" . getEntity('invoice', 0) . ")"; // We don't share object for accountancy $sql .= " AND aa.account_number IS NULL"; -if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { - $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_SITUATION . ")"; -} else { - $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_DEPOSIT . "," . Facture::TYPE_SITUATION . ")"; -} $sql .= " GROUP BY fd.fk_code_ventilation,aa.account_number,aa.label"; dol_syslog('htdocs/accountancy/customer/index.php sql=' . $sql, LOG_DEBUG); @@ -192,20 +183,7 @@ if ($resql) { while ( $row = $db->fetch_row($resql)) { - print ''; - print ''; + print ''; for($i = 2; $i <= 12; $i ++) { print ''; } @@ -220,197 +198,6 @@ if ($resql) { print "
' . $langs->trans("Account") . '' . $langs->trans("Label") . '
'; - if ($row[0] == 'tobind') - { - print $langs->trans("Unknown"); - } - else print length_accountg($row[0]); - print ''; - if ($row[0] == 'tobind') - { - print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/customer/list.php?search_year='.$y, $langs->transnoentitiesnoconv("ToBind")); - } - else print $row[1]; - print '
' . price($row[$i]) . '
\n"; print '
'; - -print '
'; - - -print_barre_liste($langs->trans("OverviewOfAmountOfLinesBound"), '', '', '', '', '', '', -1, '', '', 0, '', '', 0, 1, 1); -//print load_fiche_titre($langs->trans("OverviewOfAmountOfLinesBound"), '', ''); - -print '
'; -print ''; -print ''; -print ''; -for($i = 1; $i <= 12; $i ++) { - $j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START?$conf->global->SOCIETE_FISCAL_MONTH_START:1) - 1; - if ($j > 12) $j-=12; - print ''; -} -print ''; - -$sql = "SELECT " . $db->ifsql('aa.account_number IS NULL', "'tobind'", 'aa.account_number') . " AS codecomptable,"; -$sql .= " " . $db->ifsql('aa.label IS NULL', "'tobind'", 'aa.label') . " AS intitule,"; -for($i = 1; $i <= 12; $i ++) { - $j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START?$conf->global->SOCIETE_FISCAL_MONTH_START:1) - 1; - if ($j > 12) $j-=12; - $sql .= " SUM(" . $db->ifsql('MONTH(f.datef)=' . $j, 'fd.total_ht', '0') . ") AS month" . str_pad($j, 2, '0', STR_PAD_LEFT) . ","; -} -$sql .= " SUM(fd.total_ht) as total"; -$sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as fd"; -$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_facture"; -$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON aa.rowid = fd.fk_code_ventilation"; -$sql .= " WHERE f.datef >= '" . $db->idate($search_date_start) . "'"; -$sql .= " AND f.datef <= '" . $db->idate($search_date_end) . "'"; -$sql .= " AND f.entity IN (" . getEntity('invoice', 0) . ")"; // We don't share object for accountancy -$sql .= " AND f.fk_statut > 0"; -if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { - $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_SITUATION . ")"; -} else { - $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_DEPOSIT . "," . Facture::TYPE_SITUATION . ")"; -} -$sql .= " AND aa.account_number IS NOT NULL"; -$sql .= " GROUP BY fd.fk_code_ventilation,aa.account_number,aa.label"; - -dol_syslog('htdocs/accountancy/customer/index.php'); -$resql = $db->query($sql); -if ($resql) { - $num = $db->num_rows($resql); - - while ( $row = $db->fetch_row($resql)) { - - print ''; - - print ''; - - for($i = 2; $i <= 12; $i++) { - print ''; - } - print ''; - print ''; - print ''; - } - $db->free($resql); -} else { - print $db->lasterror(); // Show last sql error -} -print "
' . $langs->trans("Account") . '' . $langs->trans("Label") . '' . $langs->trans('MonthShort' . str_pad($j, 2, '0', STR_PAD_LEFT)) . '' . $langs->trans("Total") . '
'; - if ($row[0] == 'tobind') - { - print $langs->trans("Unknown"); - } - else print length_accountg($row[0]); - print ''; - if ($row[0] == 'tobind') - { - print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/customer/list.php?search_year='.$y, $langs->transnoentitiesnoconv("ToBind")); - } - else print $row[1]; - print '' . price($row[$i]) . '' . price($row[13]) . '' . price($row[14]) . '
\n"; -print '
'; - - -if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. Why showing a report that should rely on result of this step ? -{ - print '
'; - print '
'; - - print_barre_liste($langs->trans("OtherInfo"), '', '', '', '', '', '', -1, '', '', 0, '', '', 0, 1, 1); - //print load_fiche_titre($langs->trans("OtherInfo"), '', ''); - - print '
'; - print ''; - print ''; - for($i = 1; $i <= 12; $i ++) { - $j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START?$conf->global->SOCIETE_FISCAL_MONTH_START:1) - 1; - if ($j > 12) $j-=12; - print ''; - } - print ''; - - $sql = "SELECT '" . $langs->trans("TotalVente") . "' AS total,"; - for($i = 1; $i <= 12; $i ++) { - $j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START?$conf->global->SOCIETE_FISCAL_MONTH_START:1) - 1; - if ($j > 12) $j-=12; - $sql .= " SUM(" . $db->ifsql('MONTH(f.datef)=' . $j, 'fd.total_ht', '0') . ") AS month" . str_pad($j, 2, '0', STR_PAD_LEFT) . ","; - } - $sql .= " SUM(fd.total_ht) as total"; - $sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as fd"; - $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_facture"; - $sql .= " WHERE f.datef >= '" . $db->idate($search_date_start) . "'"; - $sql .= " AND f.datef <= '" . $db->idate($search_date_end) . "'"; - $sql .= " AND f.entity IN (" . getEntity('invoice', 0) . ")"; // We don't share object for accountancy - $sql .= " AND f.fk_statut > 0"; - if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { - $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_SITUATION . ")"; - } else { - $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_DEPOSIT . "," . Facture::TYPE_SITUATION . ")"; - } - - dol_syslog('htdocs/accountancy/customer/index.php'); - $resql = $db->query($sql); - if ($resql) { - $num = $db->num_rows($resql); - - while ($row = $db->fetch_row($resql)) { - print ''; - for($i = 1; $i <= 12; $i ++) { - print ''; - } - print ''; - print ''; - } - $db->free($resql); - } else { - print $db->lasterror(); // Show last sql error - } - print "
' . $langs->trans("TotalVente") . '' . $langs->trans('MonthShort' . str_pad($j, 2, '0', STR_PAD_LEFT)) . '' . $langs->trans("Total") . '
' . $row[0] . '' . price($row[$i]) . '' . price($row[13]) . '
\n"; - print '
'; - - - if (! empty($conf->margin->enabled)) { - print "
\n"; - print '
'; - print ''; - print ''; - for($i = 1; $i <= 12; $i ++) { - $j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START?$conf->global->SOCIETE_FISCAL_MONTH_START:1) - 1; - if ($j > 12) $j-=12; - print ''; - } - print ''; - - $sql = "SELECT '" . $langs->trans("Vide") . "' AS marge,"; - for($i = 1; $i <= 12; $i ++) { - $j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START?$conf->global->SOCIETE_FISCAL_MONTH_START:1) - 1; - if ($j > 12) $j-=12; - $sql .= " SUM(" . $db->ifsql('MONTH(f.datef)=' . $j, '(fd.total_ht-(fd.qty * fd.buy_price_ht))', '0') . ") AS month" . str_pad($j, 2, '0', STR_PAD_LEFT) . ","; - } - $sql .= " SUM((fd.total_ht-(fd.qty * fd.buy_price_ht))) as total"; - $sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as fd"; - $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_facture"; - $sql .= " WHERE f.datef >= '" . $db->idate($search_date_start) . "'"; - $sql .= " AND f.datef <= '" . $db->idate($search_date_end) . "'"; - $sql .= " AND f.entity IN (" . getEntity('invoice', 0) . ")"; // We don't share object for accountancy - $sql .= " AND f.fk_statut > 0"; - if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { - $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_SITUATION . ")"; - } else { - $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_DEPOSIT . "," . Facture::TYPE_SITUATION . ")"; - } - - dol_syslog('htdocs/accountancy/customer/index.php'); - $resql = $db->query($sql); - if ($resql) { - $num = $db->num_rows($resql); - - while ($row = $db->fetch_row($resql)) { - - print ''; - for($i = 1; $i <= 12; $i ++) { - print ''; - } - print ''; - print ''; - } - $db->free($resql); - } else { - print $db->lasterror(); // Show last sql error - } - print "
' . $langs->trans("TotalMarge") . '' . $langs->trans('MonthShort' . str_pad($j, 2, '0', STR_PAD_LEFT)) . '' . $langs->trans("Total") . '
' . $row[0] . '' . price(price2num($row[$i])) . '' . price(price2num($row[13])) . '
\n"; - print '
'; - } -} - // End of page llxFooter(); $db->close(); From 876e1147d134386d87aff4ad74e096f29aa0558e Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Sat, 18 May 2019 09:41:29 +0200 Subject: [PATCH 007/484] WIP Correct right on fiscal year --- htdocs/core/menus/standard/eldy.lib.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 0ccd2b671a1..d0962f454be 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -1317,8 +1317,8 @@ function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabM $newmenu->add("/accountancy/admin/index.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("General"), 1, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_general', 10); // Fiscal year - Not really yet used. In a future will lock some periods. - if ($conf->global->MAIN_FEATURES_LEVEL > 1) { - $newmenu->add("/accountancy/admin/fiscalyear.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("FiscalPeriod"), 1, $user->rights->accounting->fiscalyear, '', $mainmenu, 'fiscalyear', 20); + if (! empty($conf->global->MAIN_FEATURES_LEVEL) && $conf->global->MAIN_FEATURES_LEVEL >= 2) { + $newmenu->add("/accountancy/admin/fiscalyear.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("FiscalPeriod"), 1, $user->rights->accounting->chartofaccount, '', $mainmenu, 'fiscalyear', 20); } $newmenu->add("/accountancy/admin/journals_list.php?id=35&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("AccountingJournals"), 1, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_journal', 30); From d993d80a130f72efdcb4d067645951b9966a3bb9 Mon Sep 17 00:00:00 2001 From: ATM John BOTELLA Date: Sat, 18 May 2019 16:27:57 +0200 Subject: [PATCH 008/484] FIX url --- htdocs/main.inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index da077045cdc..e386a4ad2cf 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -1227,7 +1227,7 @@ function top_htmlhead($head, $title = '', $disablejs = 0, $disablehead = 0, $arr print ''."\n"; // Favicon - $favicon=dol_buildpath('/theme/'.$conf->theme.'/img/favicon.ico', 1); + $favicon = DOL_MAIN_URL_ROOT . '/theme/'.$conf->theme.'/img/favicon.ico'; if (! empty($conf->global->MAIN_FAVICON_URL)) $favicon=$conf->global->MAIN_FAVICON_URL; if (empty($conf->dol_use_jmobile)) print ''."\n"; // Not required into an Android webview //if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) print ''."\n"; @@ -1235,7 +1235,7 @@ function top_htmlhead($head, $title = '', $disablejs = 0, $disablehead = 0, $arr //if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) print ''."\n"; // Mobile appli like icon - $manifest=dol_buildpath('/theme/'.$conf->theme.'/manifest.json.php', 1, 1); + $manifest = DOL_MAIN_URL_ROOT . '/theme/'.$conf->theme.'/manifest.json.php'; if(!empty($manifest)){ print ''."\n"; } From b6615eab36be93a520550536803cd3feaa1a335e Mon Sep 17 00:00:00 2001 From: ATM John BOTELLA Date: Sat, 18 May 2019 23:47:22 +0200 Subject: [PATCH 009/484] FIX travis --- htdocs/public/payment/newpayment.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/public/payment/newpayment.php b/htdocs/public/payment/newpayment.php index 51b4c0580e0..49ca337f800 100644 --- a/htdocs/public/payment/newpayment.php +++ b/htdocs/public/payment/newpayment.php @@ -1947,7 +1947,7 @@ if (preg_match('/^dopayment/', $action)) { print info_admin($langs->trans("ErrorModuleSetupNotComplete", "stripe"), 0, 0, 'error'); } - else + else { print ''."\n"; From 65070afce447d2ad7d728d1f6063b2759347bc91 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 22 May 2019 17:22:49 +0200 Subject: [PATCH 010/484] WIP --- htdocs/accountancy/closure/index.php | 103 +++----------------- htdocs/core/menus/standard/eldy.lib.php | 4 +- htdocs/core/modules/modAccounting.class.php | 2 +- htdocs/langs/en_US/accountancy.lang | 4 + 4 files changed, 23 insertions(+), 90 deletions(-) diff --git a/htdocs/accountancy/closure/index.php b/htdocs/accountancy/closure/index.php index 25fdf013f9a..f060be19440 100644 --- a/htdocs/accountancy/closure/index.php +++ b/htdocs/accountancy/closure/index.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2019 Open-DSI * * 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 @@ -58,96 +58,32 @@ $search_date_start = dol_mktime(0, 0, 0, $month_start, 1, $year_start); $search_date_end = dol_get_last_day($year_end, $month_end); $year_current = $year_start; -// Validate History -$action = GETPOST('action', 'aZ09'); - - /* * Actions */ -if ($action == 'clean' || $action == 'validatehistory') -{ - // Clean database - $db->begin(); - $sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet as fd"; - $sql1 .= " SET fk_code_ventilation = 0"; - $sql1 .= ' WHERE fd.fk_code_ventilation NOT IN'; - $sql1 .= ' (SELECT accnt.rowid '; - $sql1 .= ' FROM ' . MAIN_DB_PREFIX . 'accounting_account as accnt'; - $sql1 .= ' INNER JOIN ' . MAIN_DB_PREFIX . 'accounting_system as syst'; - $sql1 .= ' ON accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=' . $conf->global->CHARTOFACCOUNTS . ' AND accnt.entity = '.$conf->entity.')'; - $sql1 .= ' AND fd.fk_facture IN (SELECT rowid FROM ' . MAIN_DB_PREFIX . 'facture WHERE entity = '.$conf->entity.')'; - $sql1 .= ' AND fk_code_ventilation <> 0'; - - dol_syslog("htdocs/accountancy/customer/index.php fixaccountancycode", LOG_DEBUG); - $resql1 = $db->query($sql1); - if (! $resql1) { - $error ++; - $db->rollback(); - setEventMessages($db->lasterror(), null, 'errors'); - } else { - $db->commit(); - } - // End clean database -} - -if ($action == 'validatehistory') { - - $error = 0; - $db->begin(); - - // Now make the binding. Bind automatically only for product with a dedicated account that exists into chart of account, others need a manual bind - if ($db->type == 'pgsql') { - $sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet"; - $sql1 .= " SET fk_code_ventilation = accnt.rowid"; - $sql1 .= " FROM " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst"; - $sql1 .= " WHERE " . MAIN_DB_PREFIX . "facturedet.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . $conf->global->CHARTOFACCOUNTS.' AND accnt.entity = '.$conf->entity; - $sql1 .= " AND accnt.active = 1 AND p.accountancy_code_sell=accnt.account_number"; - $sql1 .= " AND " . MAIN_DB_PREFIX . "facturedet.fk_code_ventilation = 0"; - } else { - $sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet as fd, " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst"; - $sql1 .= " SET fk_code_ventilation = accnt.rowid"; - $sql1 .= " WHERE fd.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . $conf->global->CHARTOFACCOUNTS.' AND accnt.entity = '.$conf->entity; - $sql1 .= " AND accnt.active = 1 AND p.accountancy_code_sell=accnt.account_number"; - $sql1 .= " AND fd.fk_code_ventilation = 0"; - } - - dol_syslog('htdocs/accountancy/customer/index.php'); - - $resql1 = $db->query($sql1); - if (! $resql1) { - $error ++; - $db->rollback(); - setEventMessages($db->lasterror(), null, 'errors'); - } else { - $db->commit(); - setEventMessages($langs->trans('AutomaticBindingDone'), null, 'mesgs'); - } -} - /* * View */ -llxHeader('', $langs->trans("CustomersVentilation")); +llxHeader('', $langs->trans("Closure")); $textprevyear = '' . img_previous() . ''; $textnextyear = ' ' . img_next() . ''; -print load_fiche_titre($langs->trans("CustomersVentilation") . " " . $textprevyear . " " . $langs->trans("Year") . " " . $year_start . " " . $textnextyear, '', 'title_accountancy'); +print load_fiche_titre($langs->trans("Closure") . " " . $textprevyear . " " . $langs->trans("Year") . " " . $year_start . " " . $textnextyear, '', 'title_accountancy'); -print $langs->trans("DescVentilCustomer") . '
'; +print $langs->trans("DescClosure") . '
'; print '
'; $y = $year_current; -$buttonbind = '' . $langs->trans("ValidateHistory") . ''; +$buttonbind = '' . $langs->trans("ValidateMovements") . ''; -print_barre_liste($langs->trans("OverviewOfAmountOfLinesNotBound"), '', '', '', '', '', '', -1, '', '', 0, $buttonbind, '', 0, 1, 1); +print_barre_liste($langs->trans("OverviewOfMovementsNotValidated"), '', '', '', '', '', '', -1, '', '', 0, $buttonbind, '', 0, 1, 1); print '
'; print ''; @@ -158,25 +94,19 @@ for($i = 1; $i <= 12; $i ++) { } print ''; -$sql = "SELECT " . $db->ifsql('aa.account_number IS NULL', "'tobind'", 'aa.account_number') . " AS codecomptable,"; -$sql .= " " . $db->ifsql('aa.label IS NULL', "'tobind'", 'aa.label') . " AS intitule,"; +$sql = "SELECT COUNT(b.rowid) as detail,"; for($i = 1; $i <= 12; $i ++) { $j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START?$conf->global->SOCIETE_FISCAL_MONTH_START:1) - 1; if ($j > 12) $j-=12; - $sql .= " SUM(" . $db->ifsql('MONTH(f.datef)=' . $j, 'fd.total_ht', '0') . ") AS month" . str_pad($j, 2, '0', STR_PAD_LEFT) . ","; + $sql .= " SUM(" . $db->ifsql('MONTH(b.doc_date)=' . $j, '1', '0') . ") AS month" . str_pad($j, 2, '0', STR_PAD_LEFT) . ","; } -$sql .= " SUM(fd.total_ht) as total"; -$sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as fd"; -$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_facture"; -$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON aa.rowid = fd.fk_code_ventilation"; -$sql .= " WHERE f.datef >= '" . $db->idate($search_date_start) . "'"; -$sql .= " AND f.datef <= '" . $db->idate($search_date_end) . "'"; -$sql .= " AND f.fk_statut > 0"; -$sql .= " AND f.entity IN (" . getEntity('invoice', 0) . ")"; // We don't share object for accountancy -$sql .= " AND aa.account_number IS NULL"; -$sql .= " GROUP BY fd.fk_code_ventilation,aa.account_number,aa.label"; +$sql .= " COUNT(b.rowid) as total"; +$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as b"; +$sql .= " WHERE b.doc_date >= '" . $db->idate($search_date_start) . "'"; +$sql .= " AND b.doc_date <= '" . $db->idate($search_date_end) . "'"; +$sql .= " AND b.entity IN (" . getEntity('bookkeeping', 0) . ")"; // We don't share object for accountancy -dol_syslog('htdocs/accountancy/customer/index.php sql=' . $sql, LOG_DEBUG); +dol_syslog('htdocs/accountancy/closure/index.php sql=' . $sql, LOG_DEBUG); $resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); @@ -184,11 +114,10 @@ if ($resql) { while ( $row = $db->fetch_row($resql)) { print ''; - for($i = 2; $i <= 12; $i ++) { + for($i = 1; $i <= 12; $i ++) { print ''; } - print ''; - print ''; + print ''; print ''; } $db->free($resql); diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 47ff76d6b56..a432069c9fa 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -1298,7 +1298,7 @@ function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabM $newmenu->add("/accountancy/closure/index.php?mainmenu=accountancy&leftmenu=accountancy_closure", $langs->trans("MenuAccountancyClosure"), 1, $user->rights->accounting->fiscalyear->closure, '', $mainmenu, 'closure'); if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_closure/', $leftmenu)) { - $newmenu->add("/accountancy/closure/validation.php?leftmenu=accountancy_closure", $langs->trans("MenuAccountancyValidationMovements"), 2, $user->rights->accounting->fiscalyear->closure); + $newmenu->add("/accountancy/closure/validate.php?leftmenu=accountancy_closure", $langs->trans("MenuAccountancyValidationMovements"), 2, $user->rights->accounting->fiscalyear->closure); } } @@ -1309,7 +1309,7 @@ function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabM // Fiscal year - Not really yet used. In a future will lock some periods. if (! empty($conf->global->MAIN_FEATURES_LEVEL) && $conf->global->MAIN_FEATURES_LEVEL >= 2) { - $newmenu->add("/accountancy/admin/fiscalyear.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("FiscalPeriod"), 1, $user->rights->accounting->chartofaccount, '', $mainmenu, 'fiscalyear', 20); + $newmenu->add("/accountancy/admin/fiscalyear.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("FiscalPeriod"), 1, $user->rights->accounting->fiscalyear->write, '', $mainmenu, 'fiscalyear', 20); } $newmenu->add("/accountancy/admin/journals_list.php?id=35&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("AccountingJournals"), 1, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_journal', 30); diff --git a/htdocs/core/modules/modAccounting.class.php b/htdocs/core/modules/modAccounting.class.php index 956f7ea24fc..d1a9de7bef4 100644 --- a/htdocs/core/modules/modAccounting.class.php +++ b/htdocs/core/modules/modAccounting.class.php @@ -225,7 +225,7 @@ class modAccounting extends DolibarrModules $this->rights[$r][2] = 'r'; $this->rights[$r][3] = 0; $this->rights[$r][4] = 'fiscalyear'; - $this->rights[$r][5] = ''; + $this->rights[$r][5] = 'write'; $r++; $this->rights[$r][0] = 50431; diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index 17bbfc41f66..01c5752f4b5 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -242,6 +242,10 @@ DescVentilExpenseReport=Consult here the list of expense report lines bound (or DescVentilExpenseReportMore=If you setup accounting account on type of expense report lines, the application will be able to make all the binding between your expense report lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on fees dictionary or if you still have some lines not bound to any account, you will have to make a manual binding from the menu "%s". DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account +DescClosure=Consult here the number of movements by month who are not validated & fiscal years already open +OverviewOfMovementsNotValidated=Step 1/ Overview of movements not validated. (Necessary to close a fiscal year) +ValidateMovements=Validate movements + ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done From d4384f507d48c6f92d276de930d0110d86a419e1 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Thu, 23 May 2019 09:25:09 +0200 Subject: [PATCH 011/484] WIP --- htdocs/accountancy/closure/index.php | 4 +- htdocs/accountancy/closure/validate.php | 158 ++++++++++++++++++++++++ htdocs/langs/en_US/accountancy.lang | 2 + 3 files changed, 162 insertions(+), 2 deletions(-) create mode 100644 htdocs/accountancy/closure/validate.php diff --git a/htdocs/accountancy/closure/index.php b/htdocs/accountancy/closure/index.php index f060be19440..1c9fa255fed 100644 --- a/htdocs/accountancy/closure/index.php +++ b/htdocs/accountancy/closure/index.php @@ -115,9 +115,9 @@ if ($resql) { print ''; for($i = 1; $i <= 12; $i ++) { - print ''; + print ''; } - print ''; + print ''; print ''; } $db->free($resql); diff --git a/htdocs/accountancy/closure/validate.php b/htdocs/accountancy/closure/validate.php new file mode 100644 index 00000000000..7271ef4d98e --- /dev/null +++ b/htdocs/accountancy/closure/validate.php @@ -0,0 +1,158 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +/** + * \file htdocs/accountancy/closure/validate.php + * \ingroup Accountancy + * \brief Validate entries page + */ + +require '../../main.inc.php'; +require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php'; +require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php'; +require_once DOL_DOCUMENT_ROOT . '/accountancy/class/bookkeeping.class.php'; + +// Load translation files required by the page +$langs->loadLangs(array("compta","bills","other","main","accountancy")); + +// Security check +if (empty($conf->accounting->enabled)) { + accessforbidden(); +} +if ($user->societe_id > 0) + accessforbidden(); +if (! $user->rights->accounting->fiscalyear->closure) + accessforbidden(); + + +$month_start= ($conf->global->SOCIETE_FISCAL_MONTH_START?($conf->global->SOCIETE_FISCAL_MONTH_START):1); +if (GETPOST("year", 'int')) $year_start = GETPOST("year", 'int'); +else +{ + $year_start = dol_print_date(dol_now(), '%Y'); + if (dol_print_date(dol_now(), '%m') < $month_start) $year_start--; // If current month is lower that starting fiscal month, we start last year +} +$year_end = $year_start + 1; +$month_end = $month_start - 1; +if ($month_end < 1) +{ + $month_end = 12; + $year_end--; +} +$search_date_start = dol_mktime(0, 0, 0, $month_start, 1, $year_start); +$search_date_end = dol_get_last_day($year_end, $month_end); +$year_current = $year_start; + +/* + * Actions + */ + +if ($action == 'validate') +{ + $now = dol_now(); + + // Update database + $db->begin(); + $sql = "UPDATE " . MAIN_DB_PREFIX . "accounting_bookkeeping as b"; + $sql .= " SET b.date_validated = '" . $db->idate($now) . "'"; + $sql .= ' WHERE b.date_validated IS NULL'; + + dol_syslog("htdocs/accountancy/closure/validate.php validate", LOG_DEBUG); + $resql = $db->query($sql); + if (! $resql1) { + $error ++; + $db->rollback(); + setEventMessages($db->lasterror(), null, 'errors'); + } else { + $db->commit(); + } + // End clean database +} + + +/* + * View + */ + +llxHeader('', $langs->trans("ValidateMovements")); + +$textprevyear = '' . img_previous() . ''; +$textnextyear = ' ' . img_next() . ''; + + +print load_fiche_titre($langs->trans("ValidateMovements") . " " . $textprevyear . " " . $langs->trans("Year") . " " . $year_start . " " . $textnextyear, '', 'title_accountancy'); + +print $langs->trans("DescValidateMovements") . '
'; +print '
'; + + +$y = $year_current; + +print_barre_liste($langs->trans("SelectMonthAndValidate"), '', '', '', '', '', '', -1, '', '', 0, '', 'class="right"', 0, 1, 1); + +print '
'; +print '
' . $langs->trans("Total") . '
' . price($row[$i]) . '' . price($row[13]) . '' . price($row[14]) . '' . price($row[13]) . '
' . price($row[$i]) . '' . $row[$i] . '' . price($row[13]) . '' . $row[13] . '
'; +print ''; +for($i = 1; $i <= 12; $i ++) { + $j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START?$conf->global->SOCIETE_FISCAL_MONTH_START:1) - 1; + if ($j > 12) $j-=12; + print ''; +} +print ''; + +print ''; +$sql = "SELECT COUNT(b.rowid) as detail,"; +for($i = 1; $i <= 12; $i ++) { + $j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START?$conf->global->SOCIETE_FISCAL_MONTH_START:1) - 1; + if ($j > 12) $j-=12; + $sql .= " SUM(" . $db->ifsql('MONTH(b.doc_date)=' . $j, '1', '0') . ") AS month" . str_pad($j, 2, '0', STR_PAD_LEFT) . ","; +} +$sql .= " COUNT(b.rowid) as total"; +$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as b"; +$sql .= " WHERE b.doc_date >= '" . $db->idate($search_date_start) . "'"; +$sql .= " AND b.doc_date <= '" . $db->idate($search_date_end) . "'"; +$sql .= " AND b.entity IN (" . getEntity('bookkeeping', 0) . ")"; // We don't share object for accountancy + +dol_syslog('htdocs/accountancy/closure/index.php sql=' . $sql, LOG_DEBUG); +$resql = $db->query($sql); +if ($resql) { + $num = $db->num_rows($resql); + + while ( $row = $db->fetch_row($resql)) { + + for($i = 1; $i <= 12; $i ++) { + print '' ; + } + print ''; + } + print + $db->free($resql); +} else { + print $db->lasterror(); // Show last sql error +} +print ''; +print "
' . $langs->trans('MonthShort' . str_pad($j, 2, '0', STR_PAD_LEFT)) . '' . $langs->trans("Total") . '
' . $row[$i] . '

'; + print ''; + print '
' . $row[13] . '
\n"; + +print '
'; +print '
'; + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index 01c5752f4b5..2819ff372ec 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -245,6 +245,8 @@ DescVentilDoneExpenseReport=Consult here the list of the lines of expenses repor DescClosure=Consult here the number of movements by month who are not validated & fiscal years already open OverviewOfMovementsNotValidated=Step 1/ Overview of movements not validated. (Necessary to close a fiscal year) ValidateMovements=Validate movements +DescValidateMovements=Any modification or deletion of writing, lettering and deletes will be prohibited. All entries for an exercise must be validated otherwise closing will not be possible +SelectMonthAndValidate=Select month and validate movements ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done From c6ab092af18efd3e75a72ccf082a48630cc08e48 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Fri, 14 Jun 2019 09:12:53 +0200 Subject: [PATCH 012/484] add capacity value for product --- htdocs/install/mysql/tables/llx_product.sql | 2 ++ 1 file changed, 2 insertions(+) diff --git a/htdocs/install/mysql/tables/llx_product.sql b/htdocs/install/mysql/tables/llx_product.sql index fb6e4cf5f1a..953a087f189 100755 --- a/htdocs/install/mysql/tables/llx_product.sql +++ b/htdocs/install/mysql/tables/llx_product.sql @@ -69,6 +69,8 @@ create table llx_product accountancy_code_sell_export varchar(32), -- Selling accountancy code for vat export accountancy_code_buy varchar(32), -- Buying accountancy code partnumber varchar(32), -- Part/Serial number. TODO To use it into screen if not a duplicate of barcode. + capacity float DEFAULT NULL, + capcity_units tinyint DEFAULT NULL, weight float DEFAULT NULL, weight_units tinyint DEFAULT NULL, length float DEFAULT NULL, From 695a00f21caf4f797f8fd928cd3cbd7311b08536 Mon Sep 17 00:00:00 2001 From: Abbes Bahfir Date: Wed, 19 Jun 2019 14:04:01 +0100 Subject: [PATCH 013/484] New:Show labels of countries in modulebuilder --- htdocs/core/class/ccountry.class.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/htdocs/core/class/ccountry.class.php b/htdocs/core/class/ccountry.class.php index a97d992bf89..d5a929be0dd 100644 --- a/htdocs/core/class/ccountry.class.php +++ b/htdocs/core/class/ccountry.class.php @@ -30,7 +30,7 @@ /** * Class to manage dictionary Countries (used by imports) */ -class Ccountry // extends CommonObject +class Ccountry extends CommonObject { /** * @var DoliDB Database handler. @@ -332,4 +332,19 @@ class Ccountry // extends CommonObject return 1; } } + /** + * Return a link to the object card (with optionaly the picto) + * + * @param int $withpicto Include picto in link (0=No picto, 1=Include picto into link, 2=Only picto) + * @param string $option On what the link point to ('nolink', ...) + * @param int $notooltip 1=Disable tooltip + * @param string $morecss Add more css on link + * @param int $save_lastsearch_value -1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking + * @return string String with URL + */ + function getNomUrl($withpicto=0, $option='', $notooltip=0, $morecss='', $save_lastsearch_value=-1) + { + global $langs; + return $langs->trans($this->label); + } } From 7f34a03034e835e2e7344b67cfdc648ca48a4eac Mon Sep 17 00:00:00 2001 From: Bahfir Abbes Date: Thu, 20 Jun 2019 20:55:48 +0100 Subject: [PATCH 014/484] It's just a mistake. In order to declare a getnomUrl method, Ccountry does not need to extend Commonobject --- htdocs/core/class/ccountry.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/ccountry.class.php b/htdocs/core/class/ccountry.class.php index d5a929be0dd..71df0784fba 100644 --- a/htdocs/core/class/ccountry.class.php +++ b/htdocs/core/class/ccountry.class.php @@ -30,7 +30,7 @@ /** * Class to manage dictionary Countries (used by imports) */ -class Ccountry extends CommonObject +class Ccountry// extends CommonObject { /** * @var DoliDB Database handler. From f7134340e8946fcc32ff14674a4431d95b1b3cfb Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sun, 4 Aug 2019 13:22:01 +0200 Subject: [PATCH 015/484] Update llx_product.sql --- htdocs/install/mysql/tables/llx_product.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/install/mysql/tables/llx_product.sql b/htdocs/install/mysql/tables/llx_product.sql index 953a087f189..1603ee52eff 100755 --- a/htdocs/install/mysql/tables/llx_product.sql +++ b/htdocs/install/mysql/tables/llx_product.sql @@ -70,7 +70,7 @@ create table llx_product accountancy_code_buy varchar(32), -- Buying accountancy code partnumber varchar(32), -- Part/Serial number. TODO To use it into screen if not a duplicate of barcode. capacity float DEFAULT NULL, - capcity_units tinyint DEFAULT NULL, + capacity_units tinyint DEFAULT NULL, weight float DEFAULT NULL, weight_units tinyint DEFAULT NULL, length float DEFAULT NULL, From f5f6882583398a27c45861c86794d552a3c703b4 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sun, 4 Aug 2019 13:42:50 +0200 Subject: [PATCH 016/484] Update product.class.php --- htdocs/product/class/product.class.php | 158 ++++++++++++++++++------- 1 file changed, 114 insertions(+), 44 deletions(-) diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index de0d28cee83..7d323ebadcf 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -59,7 +59,10 @@ class Product extends CommonObject */ public $fk_element='fk_product'; - protected $childtables=array('supplier_proposaldet', 'propaldet','commandedet','facturedet','contratdet','facture_fourn_det','commande_fournisseurdet'); // To test if we can delete object + /** + * @var array List of child tables. To test if we can delete object. + */ + protected $childtables=array('supplier_proposaldet', 'propaldet', 'commandedet', 'facturedet', 'contratdet', 'facture_fourn_det', 'commande_fournisseurdet'); /** * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe @@ -254,6 +257,8 @@ class Product extends CommonObject public $url; //! Unites de mesure + public $capacity; + public $capacity_units; public $weight; public $weight_units; public $length; @@ -269,13 +274,26 @@ class Product extends CommonObject public $accountancy_code_buy; /** - * Main barcode - * barcode value + * Main Barcode value * * @var string */ public $barcode; + /** + * Main Barcode type ID + * + * @var int + */ + public $barcode_type; + + /** + * Main Barcode type code + * + * @var string + */ + public $barcode_type_code; + /** * Additional barcodes (Some products have different barcodes according to the country of origin of manufacture) * @@ -291,7 +309,7 @@ class Product extends CommonObject public $multilangs=array(); - //! Taille de l'image + //! Size of image public $imgWidth; public $imgHeight; @@ -345,16 +363,7 @@ class Product extends CommonObject public $fields = array( - 'rowid' => array( - 'type'=>'integer', - 'label'=>'TechnicalID', - 'enabled'=>1, - 'visible'=>-2, - 'notnull'=>1, - 'index'=>1, - 'position'=>1, - 'comment'=>'Id', - ), + 'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'index'=>1, 'position'=>1, 'comment'=>'Id'), 'ref' =>array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1, 'comment'=>'Reference of object'), 'entity' =>array('type'=>'integer', 'label'=>'Entity', 'enabled'=>1, 'visible'=>0, 'default'=>1, 'notnull'=>1, 'index'=>1, 'position'=>20), 'note_public' =>array('type'=>'html', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>0, 'position'=>61), @@ -799,6 +808,8 @@ class Product extends CommonObject $this->label = trim($this->label); $this->description = trim($this->description); $this->note = (isset($this->note) ? trim($this->note) : null); + $this->capacity = price2num($this->capacity); + $this->capacity_units = trim($this->capacity_units); $this->weight = price2num($this->weight); $this->weight_units = trim($this->weight_units); $this->length = price2num($this->length); @@ -945,6 +956,8 @@ class Product extends CommonObject $sql.= ", tobuy = " . (int) $this->status_buy; $sql.= ", tobatch = " . ((empty($this->status_batch) || $this->status_batch < 0) ? '0' : (int) $this->status_batch); $sql.= ", finished = " . ((! isset($this->finished) || $this->finished < 0) ? "null" : (int) $this->finished); + $sql.= ", capacity = " . ($this->capacity!='' ? "'".$this->db->escape($this->capacity)."'" : 'null'); + $sql.= ", capacity_units = " . ($this->capacity_units!='' ? "'".$this->db->escape($this->capacityt_units)."'": 'null'); $sql.= ", weight = " . ($this->weight!='' ? "'".$this->db->escape($this->weight)."'" : 'null'); $sql.= ", weight_units = " . ($this->weight_units!='' ? "'".$this->db->escape($this->weight_units)."'": 'null'); $sql.= ", length = " . ($this->length!='' ? "'".$this->db->escape($this->length)."'" : 'null'); @@ -2101,6 +2114,8 @@ class Product extends CommonObject $this->duration_value = substr($obj->duration, 0, dol_strlen($obj->duration)-1); $this->duration_unit = substr($obj->duration, -1); $this->canvas = $obj->canvas; + $this->capacity = $obj->capacity; + $this->capacity_units = $obj->capacity_units; $this->weight = $obj->weight; $this->weight_units = $obj->weight_units; $this->length = $obj->length; @@ -3246,6 +3261,57 @@ class Product extends CommonObject return $this->_get_stats($sql, $mode, $year); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + /** + * Return nb of units or orders in which product is included + * + * @param int $socid Limit count on a particular third party id + * @param string $mode 'byunit'=number of unit, 'bynumber'=nb of entities + * @param int $filteronproducttype 0=To filter on product only, 1=To filter on services only + * @param int $year Year (0=last 12 month) + * @param string $morefilter More sql filters + * @return array <0 if KO, result[month]=array(valuex,valuey) where month is 0 to 11 + */ + public function get_nb_contract($socid, $mode, $filteronproducttype = -1, $year = 0, $morefilter = '') + { + // phpcs:enable + global $conf, $user; + + $sql = "SELECT sum(d.qty), date_format(c.date_contrat, '%Y%m')"; + if ($mode == 'bynumber') { + $sql.= ", count(DISTINCT c.rowid)"; + } + $sql.= " FROM ".MAIN_DB_PREFIX."contratdet as d, ".MAIN_DB_PREFIX."contrat as c, ".MAIN_DB_PREFIX."societe as s"; + if ($filteronproducttype >= 0) { + $sql.=", ".MAIN_DB_PREFIX."product as p"; + } + if (!$user->rights->societe->client->voir && !$socid) { + $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + } + $sql.= " WHERE c.rowid = d.fk_contrat"; + if ($this->id > 0) { + $sql.= " AND d.fk_product =".$this->id; + } else { + $sql.=" AND d.fk_product > 0"; + } + if ($filteronproducttype >= 0) { + $sql.= " AND p.rowid = d.fk_product AND p.fk_product_type =".$filteronproducttype; + } + $sql.= " AND c.fk_soc = s.rowid"; + $sql.= " AND c.entity IN (".getEntity('contract').")"; + if (!$user->rights->societe->client->voir && !$socid) { + $sql.= " AND c.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id; + } + if ($socid > 0) { + $sql.= " AND c.fk_soc = ".$socid; + } + $sql.=$morefilter; + $sql.= " GROUP BY date_format(c.date_contrat,'%Y%m')"; + $sql.= " ORDER BY date_format(c.date_contrat,'%Y%m') DESC"; + + return $this->_get_stats($sql, $mode, $year); + } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Link a product/service to a parent product/service @@ -3662,7 +3728,7 @@ class Product extends CommonObject // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Fonction recursive uniquement utilisee par get_arbo_each_prod, recompose l'arborescence des sousproduits - * Define value of this->res + * Define value of this->res * * @param array $prod Products array * @param string $compl_path Directory path of parents to add before @@ -3676,7 +3742,7 @@ class Product extends CommonObject // phpcs:enable global $conf,$langs; - $product = new Product($this->db); + $tmpproduct = null; //var_dump($prod); foreach($prod as $id_product => $desc_pere) // $id_product is 0 (first call starting with root top) or an id of a sub_product { @@ -3692,23 +3758,26 @@ class Product extends CommonObject } //print "XXX We add id=".$id." - label=".$label." - nb=".$nb." - multiply=".$multiply." fullpath=".$compl_path.$label."\n"; - $this->fetch($id); // Load product - $this->load_stock('nobatch,novirtual'); // Load stock to get true this->stock_reel + if (is_null($tmpproduct)) $tmpproduct = new Product($this->db); // So we initialize tmpproduct only once for all loop. + $tmpproduct->fetch($id); // Load product to get ->ref + $tmpproduct->load_stock('nobatch,novirtual'); // Load stock to get true ->stock_reel + //$this->fetch($id); // Load product to get ->ref + //$this->load_stock('nobatch,novirtual'); // Load stock to get true ->stock_reel $this->res[]= array( - 'id'=>$id, // Id product - 'id_parent'=>$id_parent, - 'ref'=>$this->ref, // Ref product - 'nb'=>$nb, // Nb of units that compose parent product - 'nb_total'=>$nb*$multiply, // Nb of units for all nb of product - 'stock'=>$this->stock_reel, // Stock - 'stock_alert'=>$this->seuil_stock_alerte, // Stock alert - 'label'=>$label, - 'fullpath'=>$compl_path.$label, // Label - 'type'=>$type, // Nb of units that compose parent product - 'desiredstock'=>$this->desiredstock, - 'level'=>$level, - 'incdec'=>$incdec, - 'entity'=>$this->entity + 'id'=>$id, // Id product + 'id_parent'=>$id_parent, + 'ref'=>$tmpproduct->ref, // Ref product + 'nb'=>$nb, // Nb of units that compose parent product + 'nb_total'=>$nb*$multiply, // Nb of units for all nb of product + 'stock'=>$tmpproduct->stock_reel, // Stock + 'stock_alert'=>$tmpproduct->seuil_stock_alerte, // Stock alert + 'label'=>$label, + 'fullpath'=>$compl_path.$label, // Label + 'type'=>$type, // Nb of units that compose parent product + 'desiredstock'=>$tmpproduct->desiredstock, + 'level'=>$level, + 'incdec'=>$incdec, + 'entity'=>$tmpproduct->entity ); // Recursive call if there is childs to child @@ -4030,14 +4099,11 @@ class Product extends CommonObject } $linkclose.= ' title="'.dol_escape_htmltag($label, 1, 1).'"'; - $linkclose.= ' class="classfortooltip"'; - - /* - $hookmanager->initHooks(array('productdao')); - $parameters=array('id'=>$this->id); - $reshook=$hookmanager->executeHooks('getnomurltooltip',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks - if ($reshook > 0) $linkclose = $hookmanager->resPrint; - */ + $linkclose.= ' class="nowraponall classfortooltip"'; + } + else + { + $linkclose = ' class="nowraponall"'; } if ($option == 'supplier' || $option == 'category') { @@ -4066,9 +4132,11 @@ class Product extends CommonObject $result.=$linkstart; if ($withpicto) { - if ($this->type == Product::TYPE_PRODUCT) { $result.=(img_object(($notooltip?'':$label), 'product', ($notooltip?'class="paddingright"':'class="paddingright classfortooltip"'), 0, 0, $notooltip?0:1)); + if ($this->type == Product::TYPE_PRODUCT) { + $result.=(img_object(($notooltip?'':$label), 'product', ($notooltip?'class="paddingright"':'class="paddingright classfortooltip"'), 0, 0, $notooltip?0:1)); } - if ($this->type == Product::TYPE_SERVICE) { $result.=(img_object(($notooltip?'':$label), 'service', ($notooltip?'class="paddinright"':'class="paddingright classfortooltip"'), 0, 0, $notooltip?0:1)); + if ($this->type == Product::TYPE_SERVICE) { + $result.=(img_object(($notooltip?'':$label), 'service', ($notooltip?'class="paddinright"':'class="paddingright classfortooltip"'), 0, 0, $notooltip?0:1)); } } $result.= $newref; @@ -4078,8 +4146,10 @@ class Product extends CommonObject $hookmanager->initHooks(array('productdao')); $parameters=array('id'=>$this->id, 'getnomurl'=>$result); $reshook=$hookmanager->executeHooks('getNomUrl', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks - if ($reshook > 0) { $result = $hookmanager->resPrint; - } else { $result .= $hookmanager->resPrint; + if ($reshook > 0) { + $result = $hookmanager->resPrint; + } else { + $result .= $hookmanager->resPrint; } return $result; From c9e481d6f7b60a3a28edbea0b63ed3a1876782d5 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sun, 4 Aug 2019 14:09:59 +0200 Subject: [PATCH 017/484] Update product.class.php --- htdocs/product/class/product.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 7d323ebadcf..8cebf3a2ce4 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -957,7 +957,7 @@ class Product extends CommonObject $sql.= ", tobatch = " . ((empty($this->status_batch) || $this->status_batch < 0) ? '0' : (int) $this->status_batch); $sql.= ", finished = " . ((! isset($this->finished) || $this->finished < 0) ? "null" : (int) $this->finished); $sql.= ", capacity = " . ($this->capacity!='' ? "'".$this->db->escape($this->capacity)."'" : 'null'); - $sql.= ", capacity_units = " . ($this->capacity_units!='' ? "'".$this->db->escape($this->capacityt_units)."'": 'null'); + $sql.= ", capacity_units = " . ($this->capacity_units!='' ? "'".$this->db->escape($this->capacity_units)."'": 'null'); $sql.= ", weight = " . ($this->weight!='' ? "'".$this->db->escape($this->weight)."'" : 'null'); $sql.= ", weight_units = " . ($this->weight_units!='' ? "'".$this->db->escape($this->weight_units)."'": 'null'); $sql.= ", length = " . ($this->length!='' ? "'".$this->db->escape($this->length)."'" : 'null'); From 2d77bfd873df6cc3b382f2dd0c8f2d2830c81a26 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sun, 4 Aug 2019 14:50:25 +0200 Subject: [PATCH 018/484] Update product.class.php --- htdocs/product/class/product.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 8cebf3a2ce4..bdc4fa9be51 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -2050,7 +2050,7 @@ class Product extends CommonObject $sql = "SELECT rowid, ref, ref_ext, label, description, url, note as note_private, customcode, fk_country, price, price_ttc,"; $sql.= " price_min, price_min_ttc, price_base_type, cost_price, default_vat_code, tva_tx, recuperableonly as tva_npr, localtax1_tx, localtax2_tx, localtax1_type, localtax2_type, tosell,"; - $sql.= " tobuy, fk_product_type, duration, fk_default_warehouse, seuil_stock_alerte, canvas, weight, weight_units,"; + $sql.= " tobuy, fk_product_type, duration, fk_default_warehouse, seuil_stock_alerte, canvas, capacity, capacity_units, weight, weight_units,"; $sql.= " length, length_units, width, width_units, height, height_units,"; $sql.= " surface, surface_units, volume, volume_units, barcode, fk_barcode_type, finished,"; $sql.= " accountancy_code_buy, accountancy_code_sell, accountancy_code_sell_intra, accountancy_code_sell_export, stock, pmp,"; From d22c2960b7878e4eee53fc6242d6b6c0bca0abc5 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Tue, 6 Aug 2019 00:14:19 +0200 Subject: [PATCH 019/484] Update product.class.php --- htdocs/product/class/product.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index bdc4fa9be51..09038866e45 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -258,7 +258,7 @@ class Product extends CommonObject //! Unites de mesure public $capacity; - public $capacity_units; + public $capacity_units; public $weight; public $weight_units; public $length; @@ -957,7 +957,7 @@ class Product extends CommonObject $sql.= ", tobatch = " . ((empty($this->status_batch) || $this->status_batch < 0) ? '0' : (int) $this->status_batch); $sql.= ", finished = " . ((! isset($this->finished) || $this->finished < 0) ? "null" : (int) $this->finished); $sql.= ", capacity = " . ($this->capacity!='' ? "'".$this->db->escape($this->capacity)."'" : 'null'); - $sql.= ", capacity_units = " . ($this->capacity_units!='' ? "'".$this->db->escape($this->capacity_units)."'": 'null'); + $sql.= ", capacity_units = " . ($this->capacity_units!='' ? "'".$this->db->escape($this->capacity_units)."'": 'null'); $sql.= ", weight = " . ($this->weight!='' ? "'".$this->db->escape($this->weight)."'" : 'null'); $sql.= ", weight_units = " . ($this->weight_units!='' ? "'".$this->db->escape($this->weight_units)."'": 'null'); $sql.= ", length = " . ($this->length!='' ? "'".$this->db->escape($this->length)."'" : 'null'); From 1b4788c6d0d33a9fa6890f0c4a1a39b8cd74e4d3 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sat, 24 Aug 2019 14:21:41 +0200 Subject: [PATCH 020/484] Update product.class.php --- htdocs/product/class/product.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 09038866e45..6b1877d0b51 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -3288,7 +3288,8 @@ class Product extends CommonObject if (!$user->rights->societe->client->voir && !$socid) { $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; } - $sql.= " WHERE c.rowid = d.fk_contrat"; + $sql.= " WHERE c.entity IN (".getEntity('contract').")"; + $sql.= " AND c.rowid = d.fk_contrat"; if ($this->id > 0) { $sql.= " AND d.fk_product =".$this->id; } else { @@ -3298,7 +3299,6 @@ class Product extends CommonObject $sql.= " AND p.rowid = d.fk_product AND p.fk_product_type =".$filteronproducttype; } $sql.= " AND c.fk_soc = s.rowid"; - $sql.= " AND c.entity IN (".getEntity('contract').")"; if (!$user->rights->societe->client->voir && !$socid) { $sql.= " AND c.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id; } From b535bc0cb96c919312d26ed7b203f87f143ad936 Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Mon, 2 Sep 2019 11:27:04 +0200 Subject: [PATCH 021/484] start dev --- htdocs/core/lib/company.lib.php | 1 + .../install/mysql/migration/10.0.0-11.0.0.sql | 17 +++++++++-- .../mysql/tables/llx_societe_contact.key.sql | 22 ++++++++++++++ .../mysql/tables/llx_societe_contact.sql | 29 +++++++++++++++++++ 4 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 htdocs/install/mysql/tables/llx_societe_contact.key.sql create mode 100644 htdocs/install/mysql/tables/llx_societe_contact.sql diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index 2f6c474e632..8d862d3a9af 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -896,6 +896,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') 't.name'=>array('label'=>"Name", 'checked'=>1, 'position'=>10), 't.poste'=>array('label'=>"PostOrFunction", 'checked'=>1, 'position'=>20), 't.address'=>array('label'=>(empty($conf->dol_optimize_smallscreen) ? $langs->trans("Address").' / '.$langs->trans("Phone").' / '.$langs->trans("Email") : $langs->trans("Address")), 'checked'=>1, 'position'=>30), + 't.address'=>array('label'=>(empty($conf->dol_optimize_smallscreen) ? $langs->trans("Address").' / '.$langs->trans("Phone").' / '.$langs->trans("Email") : $langs->trans("Address")), 'checked'=>1, 'position'=>30), 't.statut'=>array('label'=>"Status", 'checked'=>1, 'position'=>40, 'class'=>'center'), ); // Extra fields diff --git a/htdocs/install/mysql/migration/10.0.0-11.0.0.sql b/htdocs/install/mysql/migration/10.0.0-11.0.0.sql index 8efe44db103..5bc114c2294 100644 --- a/htdocs/install/mysql/migration/10.0.0-11.0.0.sql +++ b/htdocs/install/mysql/migration/10.0.0-11.0.0.sql @@ -89,5 +89,18 @@ ALTER TABLE llx_projet ADD COLUMN usage_organize_event integer DEFAULT 0; UPDATE llx_projet set usage_opportunity = 1 WHERE fk_opp_status > 0; - - \ No newline at end of file +create table llx_societe_contact +( + rowid integer AUTO_INCREMENT PRIMARY KEY, + datec datetime NULL, -- date de creation de l'enregistrement + statut smallint DEFAULT 5, -- 5 inactif, 4 actif + + element_id int NOT NULL, -- la reference de l'element. + fk_c_type_contact int NOT NULL, -- nature du contact. + fk_socpeople integer NOT NULL +)ENGINE=innodb; + +ALTER TABLE llx_societe_contact ADD UNIQUE INDEX idx_societe_contact_idx1 (element_id, fk_c_type_contact, fk_socpeople); + +ALTER TABLE llx_societe_contact ADD CONSTRAINT fk_societe_contact_fk_c_type_contact FOREIGN KEY (fk_c_type_contact) REFERENCES llx_c_type_contact(rowid); +ALTER TABLE llx_societe_contact ADD CONSTRAINT fk_societe_contact_fk_socpeople FOREIGN KEY (fk_socpeople) REFERENCES llx_socpeople(rowid); diff --git a/htdocs/install/mysql/tables/llx_societe_contact.key.sql b/htdocs/install/mysql/tables/llx_societe_contact.key.sql new file mode 100644 index 00000000000..1409e7edc24 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_societe_contact.key.sql @@ -0,0 +1,22 @@ +-- ======================================================================== +-- Copyright (C) 2019 Florian HENRY +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +-- +-- ======================================================================== + +ALTER TABLE llx_societe_contact ADD UNIQUE INDEX idx_societe_contact_idx1 (element_id, fk_c_type_contact, fk_socpeople); + +ALTER TABLE llx_societe_contact ADD CONSTRAINT fk_societe_contact_fk_c_type_contact FOREIGN KEY (fk_c_type_contact) REFERENCES llx_c_type_contact(rowid); +ALTER TABLE llx_societe_contact ADD CONSTRAINT fk_societe_contact_fk_socpeople FOREIGN KEY (fk_socpeople) REFERENCES llx_socpeople(rowid); diff --git a/htdocs/install/mysql/tables/llx_societe_contact.sql b/htdocs/install/mysql/tables/llx_societe_contact.sql new file mode 100644 index 00000000000..040f8ded124 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_societe_contact.sql @@ -0,0 +1,29 @@ +-- ======================================================================== +-- Copyright (C) 2019 Florian HENRY +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +-- +-- ======================================================================== + + +create table llx_societe_contact +( + rowid integer AUTO_INCREMENT PRIMARY KEY, + datec datetime NULL, -- date de creation de l'enregistrement + statut smallint DEFAULT 5, -- 5 inactif, 4 actif + + element_id int NOT NULL, -- la reference de l'element. + fk_c_type_contact int NOT NULL, -- nature du contact. + fk_socpeople integer NOT NULL +)ENGINE=innodb; From 405c92640c077c4fbda99604123f4574681b1816 Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Mon, 2 Sep 2019 14:47:32 +0200 Subject: [PATCH 022/484] on going --- htdocs/contact/class/contact.class.php | 50 +++++++++++++- htdocs/core/class/commonobject.class.php | 69 +++++++++++++++++++ htdocs/core/lib/company.lib.php | 44 ++++++++++-- .../install/mysql/migration/10.0.0-11.0.0.sql | 23 ++++--- ...t.key.sql => llx_societe_contacts.key.sql} | 8 +-- ...e_contact.sql => llx_societe_contacts.sql} | 17 ++--- htdocs/langs/en_US/main.lang | 14 +++- 7 files changed, 195 insertions(+), 30 deletions(-) rename htdocs/install/mysql/tables/{llx_societe_contact.key.sql => llx_societe_contacts.key.sql} (61%) rename htdocs/install/mysql/tables/{llx_societe_contact.sql => llx_societe_contacts.sql} (69%) diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index e064b93504d..db6ab29b802 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -82,7 +82,7 @@ class Contact extends CommonObject public $civility_id; // In fact we store civility_code public $civility_code; - public $civility; + public $civility; public $address; public $zip; public $town; @@ -139,6 +139,8 @@ class Contact extends CommonObject public $oldcopy; // To contains a clone of this when we need to save old properties of object + public $roles=array(); + /** * Constructor @@ -1449,4 +1451,50 @@ class Contact extends CommonObject return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); } + + /** + * Fetch Role for a contact + * + * @return float|int + * @throws Exception + */ + public function fetchRole() + { + + global $langs; + $error= 0; + $num=0; + + $sql ="SELECT tc.rowid, tc.element, tc.source, tc.code, tc.libelle"; + $sql.=" FROM ".MAIN_DB_PREFIX."societe_contacts as sc "; + $sql.=" INNER JOIN ".MAIN_DB_PREFIX."c_type_contact as tc"; + $sql.=" ON tc.rowid = sc.fk_c_type_contact"; + $sql.=" AND sc.fk_socpeople = ". $this->id; + $sql.=" AND tc.source = 'external' AND tc.active=1"; + $sql.=" AND sc.entity IN (".getEntity('societe').')'; + + dol_syslog(get_class($this)."::".__METHOD__, LOG_DEBUG); + + $this->roles=array(); + $resql=$this->db->query($sql); + if ($resql) { + $num = $this->db->num_rows($resql); + if ($num > 0) { + while ($obj = $this->db->fetch_object($resql)) { + $transkey="TypeContact_".$obj->element."_".$obj->source."_".$obj->code; + $this->roles[$this->id]=array('id'=>$obj->rowid,'element'=>$obj->element,'source'=>$obj->source,'code'=>$obj->code,'label'=>($langs->trans($transkey)!=$transkey ? $langs->trans($transkey) : $obj->libelle)); + } + } + } else { + $error++; + $this->errors[]=$this->db->lasterror(); + } + + if (empty($error)) { + return $num; + } else { + return $error * -1; + } + } + } diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index c57148124be..0eea968ecd2 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -1210,6 +1210,75 @@ abstract class CommonObject } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + /** + * Return array with list of possible values for type of contacts + * + * @param string $source 'internal', 'external' or 'all' + * @param int $option 0=Return array id->label, 1=Return array code->label + * @param int $activeonly 0=all status of contact, 1=only the active + * @param string $code Type of contact (Example: 'CUSTOMER', 'SERVICE') + * @param string $element Filter Element Type + * @return array Array list of type of contacts (id->label if option=0, code->label if option=1) + */ + public function listeTypeContacts($source = 'internal', $option = 0, $activeonly = 0, $code = '', $element = '') + { + // phpcs:enable + global $langs; + + if (empty($order)) $order='position'; + if ($order == 'position') $order.=',code'; + + $tab = array(); + $sql = "SELECT DISTINCT tc.rowid, tc.code, tc.libelle, tc.position, tc.element"; + $sql.= " FROM ".MAIN_DB_PREFIX."c_type_contact as tc"; + + $sqlWhere=array(); + if (!empty($element)) + $sqlWhere[]=" tc.element='".$this->db->escape($element)."'"; + + if ($activeonly == 1) + $sqlWhere[]=" tc.active=1"; // only the active types + + if (! empty($source) && $source != 'all') + $sqlWhere[]=" tc.source='".$this->db->escape($source)."'"; + + if (! empty($code)) + $sqlWhere[]=" tc.code='".$this->db->escape($code)."'"; + + if (count($sqlWhere)>0) { + $sql .= " WHERE ". implode(' AND ', $sqlWhere); + } + + $sql.= $this->db->order('tc.element, tc.position', 'ASC'); + + dol_syslog(get_class($this)."::".__METHOD__, LOG_DEBUG); + $resql=$this->db->query($sql); + if ($resql) + { + $num=$this->db->num_rows($resql); + $i=0; + while ($i < $num) + { + $obj = $this->db->fetch_object($resql); + + $libelle_element = $langs->trans('ContactDefault_'.ucfirst($obj->element)); + $transkey="TypeContact_".$this->element."_".$source."_".$obj->code; + $libelle_type=($langs->trans($transkey)!=$transkey ? $langs->trans($transkey) : $obj->libelle); + if (empty($option)) $tab[$obj->rowid]=$libelle_element.' - '.$libelle_type; + else $tab[$obj->code]=$libelle_element.' - '.$libelle_type; + $i++; + } + return $tab; + } + else + { + $this->error=$this->db->lasterror(); + //dol_print_error($this->db); + return null; + } + } + /** * Return id of contacts for a source and a contact code. * Example: contact client de facturation ('external', 'BILLING') diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index 8d862d3a9af..cfc1fcfb30f 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -869,6 +869,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') if ($search_status=='') $search_status=1; // always display active customer first $search_name = GETPOST("search_name", 'alpha'); $search_addressphone = GETPOST("search_addressphone", 'alpha'); + $search_role = GETPOST("search_role", 'array'); if (! $sortorder) $sortorder="ASC"; if (! $sortfield) $sortfield="t.lastname"; @@ -887,7 +888,8 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') 'name' =>array('type'=>'varchar(128)', 'label'=>'Name', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1), 'poste' =>array('type'=>'varchar(128)', 'label'=>'PostOfFunction', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>20), 'address' =>array('type'=>'varchar(128)', 'label'=>'Address', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>30), - 'statut' =>array('type'=>'integer', 'label'=>'Status', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'default'=>0, 'index'=>1, 'position'=>40, 'arrayofkeyval'=>array(0=>$contactstatic->LibStatut(0, 1), 1=>$contactstatic->LibStatut(1, 1))), + 'role' =>array('type'=>'checkbox', 'label'=>'Role', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>40), + 'statut' =>array('type'=>'integer', 'label'=>'Status', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'default'=>0, 'index'=>1, 'position'=>50, 'arrayofkeyval'=>array(0=>$contactstatic->LibStatut(0, 1), 1=>$contactstatic->LibStatut(1, 1))), ); // Definition of fields for list @@ -896,8 +898,8 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') 't.name'=>array('label'=>"Name", 'checked'=>1, 'position'=>10), 't.poste'=>array('label'=>"PostOrFunction", 'checked'=>1, 'position'=>20), 't.address'=>array('label'=>(empty($conf->dol_optimize_smallscreen) ? $langs->trans("Address").' / '.$langs->trans("Phone").' / '.$langs->trans("Email") : $langs->trans("Address")), 'checked'=>1, 'position'=>30), - 't.address'=>array('label'=>(empty($conf->dol_optimize_smallscreen) ? $langs->trans("Address").' / '.$langs->trans("Phone").' / '.$langs->trans("Email") : $langs->trans("Address")), 'checked'=>1, 'position'=>30), - 't.statut'=>array('label'=>"Status", 'checked'=>1, 'position'=>40, 'class'=>'center'), + 'sc.role'=>array('label'=>"Role", 'checked'=>1, 'position'=>40), + 't.statut'=>array('label'=>"Status", 'checked'=>1, 'position'=>50, 'class'=>'center'), ); // Extra fields if (is_array($extrafields->attributes[$contactstatic->table_element]['label']) && count($extrafields->attributes[$contactstatic->table_element]['label'])) @@ -927,6 +929,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') { $search_status = ''; $search_name = ''; + $search_role = ''; $search_addressphone = ''; $search_array_options=array(); @@ -968,6 +971,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') $param="socid=".urlencode($object->id); if ($search_status != '') $param.='&search_status='.urlencode($search_status); + if (count($search_role)>0) $param.=implode('&search_role[]=', $search_role); if ($search_name != '') $param.='&search_name='.urlencode($search_name); if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss); // Add $param from extra fields @@ -978,9 +982,15 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') $sql .= " t.civility as civility_id, t.address, t.zip, t.town"; $sql .= " FROM ".MAIN_DB_PREFIX."socpeople as t"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople_extrafields as ef on (t.rowid = ef.fk_object)"; + if (count($search_role)>0) { + $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_contacts as sc on (sc.fk_socpeople = t.rowid)"; + } $sql .= " WHERE t.fk_soc = ".$object->id; if ($search_status!='' && $search_status != '-1') $sql .= " AND t.statut = ".$db->escape($search_status); if ($search_name) $sql .= natural_search(array('t.lastname', 't.firstname'), $search_name); + if (count($search_role)>0) { + $sql .= ' AND sc.fk_c_type_contact IN ('.implode(',',$search_role).')'; + } // Add where from extra fields $extrafieldsobjectkey=$contactstatic->table_element; include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; @@ -993,6 +1003,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') $num = $db->num_rows($result); + // Fields title search // -------------------------------------------------------------------- print ''; @@ -1002,11 +1013,16 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') if (in_array($val['type'], array('date','datetime','timestamp'))) $align.=($align?' ':'').'center'; if (in_array($val['type'], array('timestamp'))) $align.=($align?' ':'').'nowrap'; if ($key == 'status' || $key == 'statut') $align.=($align?' ':'').'center'; - if (! empty($arrayfields['t.'.$key]['checked'])) + if (! empty($arrayfields['t.'.$key]['checked']) || ! empty($arrayfields['sc.'.$key]['checked'])) { + print ''; if (in_array($key, array('lastname','name'))) print ''; elseif (in_array($key, array('statut'))) print $form->selectarray('search_status', array('-1'=>'','0'=>$contactstatic->LibStatut(0, 1),'1'=>$contactstatic->LibStatut(1, 1)), $search_status); + elseif (in_array($key, array('role'))) { + $contactType=$contactstatic->listeTypeContacts('external', '', 1); + print $form->multiselectarray('search_role', $contactType, $search_role); + } print ''; } } @@ -1035,7 +1051,10 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') if (in_array($val['type'], array('date','datetime','timestamp'))) $align.=($align?' ':'').'center'; if (in_array($val['type'], array('timestamp'))) $align.=($align?' ':'').'nowrap'; if ($key == 'status' || $key == 'statut') $align.=($align?' ':'').'center'; - if (! empty($arrayfields['t.'.$key]['checked'])) print getTitleFieldOfList($arrayfields['t.'.$key]['label'], 0, $_SERVER['PHP_SELF'], 't.'.$key, '', $param, ($align?'class="'.$align.'"':''), $sortfield, $sortorder, $align.' ')."\n"; + if ($key == 'role') $align.=($align?' ':'').'center'; + if (! empty($arrayfields['t.'.$key]['checked']) || ! empty($arrayfields['sc.'.$key]['checked'])) { + print getTitleFieldOfList($arrayfields['t.'.$key]['label'], 0, $_SERVER['PHP_SELF'], 't.'.$key, '', $param, ($align?'class="'.$align.'"':''), $sortfield, $sortorder, $align.' ')."\n"; + } } // Extra fields $extrafieldsobjectkey=$contactstatic->table_element; @@ -1082,6 +1101,11 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') $contactstatic->setGenderFromCivility(); $contactstatic->fetch_optionals(); + $resultRole=$contactstatic->fetchRole(); + if ($resultRole<0) { + setEventMessages(null, $contactstatic->errors,'errors'); + } + if (is_array($contactstatic->array_options)) { foreach($contactstatic->array_options as $key => $val) @@ -1125,6 +1149,16 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') print ''; } + // Role + if (! empty($arrayfields['sc.role']['checked'])) + { + print ''; + foreach($contactstatic->roles as $key=>$val) { + print '
    '.implode(' ', $val['label']).'
'; + } + print ''; + } + // Status if (! empty($arrayfields['t.statut']['checked'])) { diff --git a/htdocs/install/mysql/migration/10.0.0-11.0.0.sql b/htdocs/install/mysql/migration/10.0.0-11.0.0.sql index 5bc114c2294..1b705133a19 100644 --- a/htdocs/install/mysql/migration/10.0.0-11.0.0.sql +++ b/htdocs/install/mysql/migration/10.0.0-11.0.0.sql @@ -89,18 +89,19 @@ ALTER TABLE llx_projet ADD COLUMN usage_organize_event integer DEFAULT 0; UPDATE llx_projet set usage_opportunity = 1 WHERE fk_opp_status > 0; -create table llx_societe_contact +create table llx_societe_contacts ( rowid integer AUTO_INCREMENT PRIMARY KEY, - datec datetime NULL, -- date de creation de l'enregistrement - statut smallint DEFAULT 5, -- 5 inactif, 4 actif - - element_id int NOT NULL, -- la reference de l'element. - fk_c_type_contact int NOT NULL, -- nature du contact. - fk_socpeople integer NOT NULL + entity integer DEFAULT 1 NOT NULL, + date_creation datetime NOT NULL, + fk_soc integer NOT NULL, + fk_c_type_contact int NOT NULL, + fk_socpeople integer NOT NULL, + tms TIMESTAMP, + import_key VARCHAR(14) )ENGINE=innodb; -ALTER TABLE llx_societe_contact ADD UNIQUE INDEX idx_societe_contact_idx1 (element_id, fk_c_type_contact, fk_socpeople); - -ALTER TABLE llx_societe_contact ADD CONSTRAINT fk_societe_contact_fk_c_type_contact FOREIGN KEY (fk_c_type_contact) REFERENCES llx_c_type_contact(rowid); -ALTER TABLE llx_societe_contact ADD CONSTRAINT fk_societe_contact_fk_socpeople FOREIGN KEY (fk_socpeople) REFERENCES llx_socpeople(rowid); +ALTER TABLE llx_societe_contacts ADD UNIQUE INDEX idx_societe_contacts_idx1 (entity, fk_soc, fk_c_type_contact, fk_socpeople); +ALTER TABLE llx_societe_contacts ADD CONSTRAINT fk_societe_contacts_fk_c_type_contact FOREIGN KEY (fk_c_type_contact) REFERENCES llx_c_type_contact(rowid); +ALTER TABLE llx_societe_contacts ADD CONSTRAINT fk_societe_contacts_fk_soc FOREIGN KEY (fk_soc) REFERENCES llx_societe(rowid); +ALTER TABLE llx_societe_contacts ADD CONSTRAINT fk_societe_contacts_fk_socpeople FOREIGN KEY (fk_socpeople) REFERENCES llx_socpeople(rowid); diff --git a/htdocs/install/mysql/tables/llx_societe_contact.key.sql b/htdocs/install/mysql/tables/llx_societe_contacts.key.sql similarity index 61% rename from htdocs/install/mysql/tables/llx_societe_contact.key.sql rename to htdocs/install/mysql/tables/llx_societe_contacts.key.sql index 1409e7edc24..2b2eae8b2ca 100644 --- a/htdocs/install/mysql/tables/llx_societe_contact.key.sql +++ b/htdocs/install/mysql/tables/llx_societe_contacts.key.sql @@ -16,7 +16,7 @@ -- -- ======================================================================== -ALTER TABLE llx_societe_contact ADD UNIQUE INDEX idx_societe_contact_idx1 (element_id, fk_c_type_contact, fk_socpeople); - -ALTER TABLE llx_societe_contact ADD CONSTRAINT fk_societe_contact_fk_c_type_contact FOREIGN KEY (fk_c_type_contact) REFERENCES llx_c_type_contact(rowid); -ALTER TABLE llx_societe_contact ADD CONSTRAINT fk_societe_contact_fk_socpeople FOREIGN KEY (fk_socpeople) REFERENCES llx_socpeople(rowid); +ALTER TABLE llx_societe_contacts ADD UNIQUE INDEX idx_societe_contacts_idx1 (entity, fk_soc, fk_c_type_contact, fk_socpeople); +ALTER TABLE llx_societe_contacts ADD CONSTRAINT fk_societe_contacts_fk_c_type_contact FOREIGN KEY (fk_c_type_contact) REFERENCES llx_c_type_contact(rowid); +ALTER TABLE llx_societe_contacts ADD CONSTRAINT fk_societe_contacts_fk_soc FOREIGN KEY (fk_soc) REFERENCES llx_societe(rowid); +ALTER TABLE llx_societe_contacts ADD CONSTRAINT fk_societe_contacts_fk_socpeople FOREIGN KEY (fk_socpeople) REFERENCES llx_socpeople(rowid); diff --git a/htdocs/install/mysql/tables/llx_societe_contact.sql b/htdocs/install/mysql/tables/llx_societe_contacts.sql similarity index 69% rename from htdocs/install/mysql/tables/llx_societe_contact.sql rename to htdocs/install/mysql/tables/llx_societe_contacts.sql index 040f8ded124..31d82f3003d 100644 --- a/htdocs/install/mysql/tables/llx_societe_contact.sql +++ b/htdocs/install/mysql/tables/llx_societe_contacts.sql @@ -17,13 +17,14 @@ -- ======================================================================== -create table llx_societe_contact +create table llx_societe_contacts ( - rowid integer AUTO_INCREMENT PRIMARY KEY, - datec datetime NULL, -- date de creation de l'enregistrement - statut smallint DEFAULT 5, -- 5 inactif, 4 actif - - element_id int NOT NULL, -- la reference de l'element. - fk_c_type_contact int NOT NULL, -- nature du contact. - fk_socpeople integer NOT NULL + rowid integer AUTO_INCREMENT PRIMARY KEY, + entity integer DEFAULT 1 NOT NULL, + date_creation datetime NOT NULL, + fk_soc integer NOT NULL, + fk_c_type_contact int NOT NULL, + fk_socpeople integer NOT NULL, + tms TIMESTAMP, + import_key VARCHAR(14) )ENGINE=innodb; diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index 5c3e30967de..2b92ed783fe 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -989,4 +989,16 @@ ToApprove=To approve GlobalOpenedElemView=Global view NoArticlesFoundForTheKeyword=No article found for the keyword '%s' NoArticlesFoundForTheCategory=No article found for the category -ToAcceptRefuse=To accept | refuse \ No newline at end of file +ToAcceptRefuse=To accept | refuse +ContactDefault_agenda=Event +ContactDefault_commande=Order +ContactDefault_contrat=Contract +ContactDefault_facture=Invoice +ContactDefault_fichinter=Intervention +ContactDefault_invoice_supplier=Supplier Invoice +ContactDefault_order_supplier=Supplier Order +ContactDefault_project=Project +ContactDefault_project_task=Task +ContactDefault_propal=Proposal +ContactDefault_supplier_proposal=Supplier Proposal +ContactDefault_ticketsup=Ticket From d811de4da2e7028d4ffd4150532dcd95ffeb5548 Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Mon, 2 Sep 2019 22:01:48 +0200 Subject: [PATCH 023/484] let only triggers part --- htdocs/contact/card.php | 28 ++++++- htdocs/contact/class/contact.class.php | 93 +++++++++++++++++++++++- htdocs/contact/list.php | 10 +++ htdocs/core/class/commonobject.class.php | 7 +- htdocs/core/class/html.form.class.php | 40 ++++++++++ htdocs/core/lib/company.lib.php | 29 ++++---- 6 files changed, 179 insertions(+), 28 deletions(-) diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php index 76d0e3911b5..20a61ec4e3e 100644 --- a/htdocs/contact/card.php +++ b/htdocs/contact/card.php @@ -371,6 +371,7 @@ if (empty($reshook)) $object->priv = GETPOST("priv", 'int'); $object->note_public = GETPOST("note_public", 'none'); $object->note_private = GETPOST("note_private", 'none'); + $object->roles = GETPOST("roles", 'array'); // Fill array 'array_options' with data from add form $ret = $extrafields->setOptionalsFromPost($extralabels, $object); @@ -474,9 +475,6 @@ else // Si edition contact deja existant $object = new Contact($db); $res=$object->fetch($id, $user); - if ($res < 0) { dol_print_error($db, $object->error); exit; } - $res=$object->fetch_optionals(); - if ($res < 0) { dol_print_error($db, $object->error); exit; } // Show tabs $head = contact_prepare_head($object); @@ -724,6 +722,15 @@ else print ""; } + //Role + if (!empty($socid)) { + print '' . $langs->trans("Role") . ''; + print ''; + $contactType = $object->listeTypeContacts('external', '', 1); + print $form->multiselectarray('roles', $contactType); + print ''; + } + // Other attributes $parameters=array('socid' => $socid, 'objsoc' => $objsoc, 'colspan' => ' colspan="3"', 'cols' => 3); $reshook=$hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action); // Note that $action and $object may have been modified by hook @@ -1040,6 +1047,14 @@ else print ""; } + //Role + if (!empty($object->socid)) { + print '' . $langs->trans("Role") . ''; + print ''; + print $form->showRoles("roles", $object, 'edit' ,$object->roles); + print ''; + } + // Other attributes $parameters=array('colspan' => ' colspan="3"', 'cols'=>3); $reshook=$hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action); // Note that $action and $object may have been modified by hook @@ -1238,6 +1253,13 @@ else print ''; } + if (!empty($object->socid)) { + print '' . $langs->trans("Roles") . ''; + print ''; + print $form->showRoles("roles", $object, 'view'); + print ''; + } + // Other attributes $cols = 3; $parameters=array('socid'=>$socid); diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index db6ab29b802..d718a898f2d 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -399,6 +399,14 @@ class Contact extends CommonObject } } + if (! $error) { + $result=$this->updateRoles(); + if ($result < 0) + { + $error++; + } + } + if (! $error && $this->user_id > 0) { $tmpobj = new User($this->db); @@ -861,6 +869,11 @@ class Contact extends CommonObject // fetch optionals attributes and labels $this->fetch_optionals(); + $resultRole=$this->fetchRoles(); + if ($resultRole<0) { + return $resultRole; + } + return 1; } else @@ -995,6 +1008,20 @@ class Contact extends CommonObject } } + if (! $error) + { + // Remove Roles + $sql = "DELETE FROM ".MAIN_DB_PREFIX."societe_contacts WHERE fk_socpeople = ".$this->id; + dol_syslog(get_class($this)."::delete", LOG_DEBUG); + $resql=$this->db->query($sql); + if (! $resql) + { + $error++; + $this->error .= $this->db->lasterror(); + $errorflag=-1; + } + } + if (! $error) { // Remove category @@ -1458,14 +1485,13 @@ class Contact extends CommonObject * @return float|int * @throws Exception */ - public function fetchRole() + public function fetchRoles() { - global $langs; $error= 0; $num=0; - $sql ="SELECT tc.rowid, tc.element, tc.source, tc.code, tc.libelle"; + $sql ="SELECT tc.rowid, tc.element, tc.source, tc.code, tc.libelle, sc.rowid as contactroleid"; $sql.=" FROM ".MAIN_DB_PREFIX."societe_contacts as sc "; $sql.=" INNER JOIN ".MAIN_DB_PREFIX."c_type_contact as tc"; $sql.=" ON tc.rowid = sc.fk_c_type_contact"; @@ -1482,11 +1508,13 @@ class Contact extends CommonObject if ($num > 0) { while ($obj = $this->db->fetch_object($resql)) { $transkey="TypeContact_".$obj->element."_".$obj->source."_".$obj->code; - $this->roles[$this->id]=array('id'=>$obj->rowid,'element'=>$obj->element,'source'=>$obj->source,'code'=>$obj->code,'label'=>($langs->trans($transkey)!=$transkey ? $langs->trans($transkey) : $obj->libelle)); + $libelle_element = $langs->trans('ContactDefault_'.$obj->element); + $this->roles[$obj->contactroleid]=array('id'=>$obj->rowid,'element'=>$obj->element,'source'=>$obj->source,'code'=>$obj->code,'label'=>$libelle_element. ' - '.($langs->trans($transkey)!=$transkey ? $langs->trans($transkey) : $obj->libelle)); } } } else { $error++; + $this->error=$this->db->lasterror(); $this->errors[]=$this->db->lasterror(); } @@ -1497,4 +1525,61 @@ class Contact extends CommonObject } } + /** + * Updates Roles + * + * @return float|int + * @throws Exception + */ + public function updateRoles() + { + global $conf; + + $error=0; + + $this->db->begin(); + + $sql = "DELETE FROM ".MAIN_DB_PREFIX."societe_contacts WHERE fk_soc=".$this->socid; + + dol_syslog(get_class($this)."::".__METHOD__, LOG_DEBUG); + $result = $this->db->query($sql); + if (!$result) { + $this->errors[]=$this->db->lasterror().' sql='.$sql; + $error++; + } else { + if (count($this->roles)>0) { + foreach ($this->roles as $keyRoles => $valRoles) { + $sql = "INSERT INTO " . MAIN_DB_PREFIX . "societe_contacts"; + $sql .= " (entity,"; + $sql .= "date_creation,"; + $sql .= "fk_soc,"; + $sql .= "fk_c_type_contact,"; + $sql .= "fk_socpeople) "; + $sql .= " VALUES (" . $conf->entity . ","; + $sql .= "'" . $this->db->idate(dol_now()) . "',"; + $sql .= $this->socid . ", "; + $sql .= $valRoles . " , " ; + $sql .= $this->id; + $sql .= ")"; + dol_syslog(get_class($this) . "::".__METHOD__, LOG_DEBUG); + + $result = $this->db->query($sql); + if (!$result) + { + $this->errors[]=$this->db->lasterror().' sql='.$sql; + $error++; + } + } + } + } + if (empty($error)) { + $this->db->commit(); + return 1; + } else { + $this->error=implode(' ', $this->errors); + $this->db->rollback(); + return $error*-1; + } + } + } diff --git a/htdocs/contact/list.php b/htdocs/contact/list.php index b0db8b0affb..585d6db499d 100644 --- a/htdocs/contact/list.php +++ b/htdocs/contact/list.php @@ -84,6 +84,7 @@ $search_zip=GETPOST('search_zip', 'alpha'); $search_town=GETPOST('search_town', 'alpha'); $search_import_key=GETPOST("search_import_key", "alpha"); $search_country=GETPOST("search_country", 'intcomma'); +$search_roles=GETPOST("search_roles", 'array'); if ($search_status=='') $search_status=1; // always display active customer first @@ -242,6 +243,7 @@ if (empty($reshook)) $search_import_key=''; $toselect=''; $search_array_options=array(); + $search_roles=array(); } // Mass actions @@ -334,6 +336,9 @@ if (strlen($search_linkedin)) $sql.= natural_search('p.linkedin', $search_ if (strlen($search_email)) $sql.= natural_search('p.email', $search_email); if (strlen($search_zip)) $sql.= natural_search("p.zip", $search_zip); if (strlen($search_town)) $sql.= natural_search("p.town", $search_town); +if (count($search_roles)>0) { + $sql .= " AND p.rowid IN (SELECT sc.fk_socpeople FROM ".MAIN_DB_PREFIX."societe_contacts as sc WHERE sc.fk_c_type_contact IN (".implode(',', $search_roles)."))"; +} if ($search_no_email != '' && $search_no_email >= 0) $sql.= " AND p.no_email = ".$db->escape($search_no_email); if ($search_status != '' && $search_status >= 0) $sql.= " AND p.statut = ".$db->escape($search_status); @@ -438,6 +443,7 @@ if ($search_status != '') $param.='&search_status='.urlencode($search_status if ($search_priv == '0' || $search_priv == '1') $param.="&search_priv=".urlencode($search_priv); if ($search_import_key != '') $param.='&search_import_key='.urlencode($search_import_key); if ($optioncss != '') $param.='&optioncss='.$optioncss; +if (count($search_roles)>0) $param.=implode('&search_roles[]=', $search_roles); // Add $param from extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; @@ -510,6 +516,10 @@ if (! empty($conf->categorie->enabled)) $moreforfilter.=$formother->select_categories(Categorie::TYPE_SUPPLIER, $search_categ_supplier, 'search_categ_supplier', 1); $moreforfilter.=''; } + $moreforfilter.='
'; + $moreforfilter.=$langs->trans('Roles'). ': '; + $moreforfilter.=$form->showRoles("search_roles", $objecttmp, 'edit', $search_roles); + $moreforfilter.='
'; } if ($moreforfilter) { diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 0eea968ecd2..716b615f503 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -1226,9 +1226,6 @@ abstract class CommonObject // phpcs:enable global $langs; - if (empty($order)) $order='position'; - if ($order == 'position') $order.=',code'; - $tab = array(); $sql = "SELECT DISTINCT tc.rowid, tc.code, tc.libelle, tc.position, tc.element"; $sql.= " FROM ".MAIN_DB_PREFIX."c_type_contact as tc"; @@ -1262,11 +1259,11 @@ abstract class CommonObject { $obj = $this->db->fetch_object($resql); - $libelle_element = $langs->trans('ContactDefault_'.ucfirst($obj->element)); + $libelle_element = $langs->trans('ContactDefault_'.$obj->element); $transkey="TypeContact_".$this->element."_".$source."_".$obj->code; $libelle_type=($langs->trans($transkey)!=$transkey ? $langs->trans($transkey) : $obj->libelle); if (empty($option)) $tab[$obj->rowid]=$libelle_element.' - '.$libelle_type; - else $tab[$obj->code]=$libelle_element.' - '.$libelle_type; + else $tab[$obj->rowid]=$libelle_element.' - '.$libelle_type; $i++; } return $tab; diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 5ee969a73a0..4eca1ef0f85 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -6484,6 +6484,46 @@ class Form return 'ErrorBadValueForParameterRenderMode'; // Should not happened } + /** + * showContactRoles on view and edit mode + * + * @param string $htmlname Html component name and id + * @param Contact $contact Contact Obejct + * @param string $rendermode view, edit + * @param array $selected $key=>$val $val is selected Roles for input mode + * @return string String with contacts roles + */ + public function showRoles($htmlname = '', Contact $contact, $rendermode = 'view', $selected = array()) + { + if ($rendermode === 'view') { + $toprint = array(); + foreach ($contact->roles as $key => $val) { + $toprint[] = '
  • ' . $val['label'] . '
  • '; + } + return '
      ' . implode(' ', $toprint) . '
    '; + } + + if ($rendermode === 'edit') + { + $contactType=$contact->listeTypeContacts('external', '', 1); + + if (count($selected)>0) { + $newselected=array(); + foreach($selected as $key=>$val) { + if (is_array($val) && array_key_exists('id', $val) && in_array($val['id'], array_keys($contactType))) { + $newselected[]=$val['id']; + } else { + break; + } + } + if (count($newselected)>0) $selected=$newselected; + } + return $this->multiselectarray($htmlname, $contactType, $selected); + } + + return 'ErrorBadValueForParameterRenderMode'; // Should not happened + } + /** * Show linked object block. diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index cfc1fcfb30f..14b20bbe46b 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -869,7 +869,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') if ($search_status=='') $search_status=1; // always display active customer first $search_name = GETPOST("search_name", 'alpha'); $search_addressphone = GETPOST("search_addressphone", 'alpha'); - $search_role = GETPOST("search_role", 'array'); + $search_roles = GETPOST("search_roles", 'array'); if (! $sortorder) $sortorder="ASC"; if (! $sortfield) $sortfield="t.lastname"; @@ -898,7 +898,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') 't.name'=>array('label'=>"Name", 'checked'=>1, 'position'=>10), 't.poste'=>array('label'=>"PostOrFunction", 'checked'=>1, 'position'=>20), 't.address'=>array('label'=>(empty($conf->dol_optimize_smallscreen) ? $langs->trans("Address").' / '.$langs->trans("Phone").' / '.$langs->trans("Email") : $langs->trans("Address")), 'checked'=>1, 'position'=>30), - 'sc.role'=>array('label'=>"Role", 'checked'=>1, 'position'=>40), + 'sc.role'=>array('label'=>"Roles", 'checked'=>1, 'position'=>40), 't.statut'=>array('label'=>"Status", 'checked'=>1, 'position'=>50, 'class'=>'center'), ); // Extra fields @@ -929,7 +929,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') { $search_status = ''; $search_name = ''; - $search_role = ''; + $search_roles = array(); $search_addressphone = ''; $search_array_options=array(); @@ -971,7 +971,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') $param="socid=".urlencode($object->id); if ($search_status != '') $param.='&search_status='.urlencode($search_status); - if (count($search_role)>0) $param.=implode('&search_role[]=', $search_role); + if (count($search_roles)>0) $param.=implode('&search_roles[]=', $search_roles); if ($search_name != '') $param.='&search_name='.urlencode($search_name); if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss); // Add $param from extra fields @@ -982,14 +982,11 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') $sql .= " t.civility as civility_id, t.address, t.zip, t.town"; $sql .= " FROM ".MAIN_DB_PREFIX."socpeople as t"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople_extrafields as ef on (t.rowid = ef.fk_object)"; - if (count($search_role)>0) { - $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe_contacts as sc on (sc.fk_socpeople = t.rowid)"; - } $sql .= " WHERE t.fk_soc = ".$object->id; if ($search_status!='' && $search_status != '-1') $sql .= " AND t.statut = ".$db->escape($search_status); if ($search_name) $sql .= natural_search(array('t.lastname', 't.firstname'), $search_name); - if (count($search_role)>0) { - $sql .= ' AND sc.fk_c_type_contact IN ('.implode(',',$search_role).')'; + if (count($search_roles)>0) { + $sql .= " AND t.rowid IN (SELECT sc.fk_socpeople FROM ".MAIN_DB_PREFIX."societe_contacts as sc WHERE sc.fk_c_type_contact IN (".implode(',', $search_roles)."))"; } // Add where from extra fields $extrafieldsobjectkey=$contactstatic->table_element; @@ -1020,8 +1017,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') if (in_array($key, array('lastname','name'))) print ''; elseif (in_array($key, array('statut'))) print $form->selectarray('search_status', array('-1'=>'','0'=>$contactstatic->LibStatut(0, 1),'1'=>$contactstatic->LibStatut(1, 1)), $search_status); elseif (in_array($key, array('role'))) { - $contactType=$contactstatic->listeTypeContacts('external', '', 1); - print $form->multiselectarray('search_role', $contactType, $search_role); + print $form->showRoles("search_roles", $contactstatic, 'edit', $search_roles); } print ''; } @@ -1052,9 +1048,12 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') if (in_array($val['type'], array('timestamp'))) $align.=($align?' ':'').'nowrap'; if ($key == 'status' || $key == 'statut') $align.=($align?' ':'').'center'; if ($key == 'role') $align.=($align?' ':'').'center'; - if (! empty($arrayfields['t.'.$key]['checked']) || ! empty($arrayfields['sc.'.$key]['checked'])) { + if (! empty($arrayfields['t.'.$key]['checked'])) { print getTitleFieldOfList($arrayfields['t.'.$key]['label'], 0, $_SERVER['PHP_SELF'], 't.'.$key, '', $param, ($align?'class="'.$align.'"':''), $sortfield, $sortorder, $align.' ')."\n"; } + if (! empty($arrayfields['sc.'.$key]['checked'])) { + print getTitleFieldOfList($arrayfields['sc.'.$key]['label'], 0, $_SERVER['PHP_SELF'], 'sc.'.$key, '', $param, ($align?'class="'.$align.'"':''), $sortfield, $sortorder, $align.' ')."\n"; + } } // Extra fields $extrafieldsobjectkey=$contactstatic->table_element; @@ -1101,7 +1100,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') $contactstatic->setGenderFromCivility(); $contactstatic->fetch_optionals(); - $resultRole=$contactstatic->fetchRole(); + $resultRole=$contactstatic->fetchRoles(); if ($resultRole<0) { setEventMessages(null, $contactstatic->errors,'errors'); } @@ -1153,9 +1152,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') if (! empty($arrayfields['sc.role']['checked'])) { print ''; - foreach($contactstatic->roles as $key=>$val) { - print '
      '.implode(' ', $val['label']).'
    '; - } + print $form->showRoles("roles", $contactstatic, 'view'); print ''; } From 6c20fbafdf0c5811a5802da2c11468b0798a0359 Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Tue, 3 Sep 2019 17:04:42 +0200 Subject: [PATCH 024/484] add trigger files --- htdocs/contact/card.php | 4 +- htdocs/contact/class/contact.class.php | 43 +++++++ htdocs/contact/list.php | 4 +- htdocs/core/class/commonobject.class.php | 42 +++--- htdocs/core/class/html.form.class.php | 41 ------ htdocs/core/class/html.formcompany.class.php | 64 +++++++--- htdocs/core/lib/company.lib.php | 6 +- ...rface_90_modSociete_ContactRoles.class.php | 120 ++++++++++++++++++ 8 files changed, 241 insertions(+), 83 deletions(-) create mode 100644 htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php index 20a61ec4e3e..5861cc71d38 100644 --- a/htdocs/contact/card.php +++ b/htdocs/contact/card.php @@ -1051,7 +1051,7 @@ else if (!empty($object->socid)) { print '' . $langs->trans("Role") . ''; print ''; - print $form->showRoles("roles", $object, 'edit' ,$object->roles); + print $formcompany->showRoles("roles", $object, 'edit' ,$object->roles); print ''; } @@ -1256,7 +1256,7 @@ else if (!empty($object->socid)) { print '' . $langs->trans("Roles") . ''; print ''; - print $form->showRoles("roles", $object, 'view'); + print $formcompany->showRoles("roles", $object, 'view'); print ''; } diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index d718a898f2d..6b46e32f532 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -1525,6 +1525,49 @@ class Contact extends CommonObject } } + /** + * Get Contact roles for a thirdparty + * + * @param string $element element type + * @return array|int + * @throws Exception + */ + public function getContactRoles($element = '') + { + $tab=array(); + + $sql = "SELECT sc.fk_socpeople as id, sc.fk_c_type_contact"; + $sql.= " FROM ".MAIN_DB_PREFIX."c_type_contact tc"; + $sql.= ", ".MAIN_DB_PREFIX."societe_contacts sc"; + $sql.= " WHERE sc.fk_soc =".$this->socid; + $sql.= " AND sc.fk_c_type_contact=tc.rowid"; + $sql.= " AND tc.element='".$element."'"; + $sql.= " AND tc.active=1"; + + dol_syslog(get_class($this)."::liste_contact", LOG_DEBUG); + $resql=$this->db->query($sql); + if ($resql) + { + $num=$this->db->num_rows($resql); + $i=0; + while ($i < $num) + { + $obj = $this->db->fetch_object($resql); + $tab[]=array('fk_socpeople'=>$obj->id, 'type_contact'=>$obj->fk_c_type_contact); + + $i++; + } + + return $tab; + } + else + { + $this->error=$this->db->error(); + dol_print_error($this->db); + return -1; + } + } + /** * Updates Roles * diff --git a/htdocs/contact/list.php b/htdocs/contact/list.php index 585d6db499d..6b595a05860 100644 --- a/htdocs/contact/list.php +++ b/htdocs/contact/list.php @@ -36,6 +36,7 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; // Load translation files required by the page $langs->loadLangs(array("companies", "suppliers", "categories")); @@ -264,6 +265,7 @@ if ($search_priv < 0) $search_priv=''; $form=new Form($db); $formother=new FormOther($db); +$formcompany=new FormCompany($db); $contactstatic=new Contact($db); $title = (! empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("Contacts") : $langs->trans("ContactsAddresses")); @@ -518,7 +520,7 @@ if (! empty($conf->categorie->enabled)) } $moreforfilter.='
    '; $moreforfilter.=$langs->trans('Roles'). ': '; - $moreforfilter.=$form->showRoles("search_roles", $objecttmp, 'edit', $search_roles); + $moreforfilter.=$formcompany->showRoles("search_roles", $objecttmp, 'edit', $search_roles); $moreforfilter.='
    '; } if ($moreforfilter) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 716b615f503..1a1b5c597ce 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -1224,9 +1224,10 @@ abstract class CommonObject public function listeTypeContacts($source = 'internal', $option = 0, $activeonly = 0, $code = '', $element = '') { // phpcs:enable - global $langs; + global $langs, $conf; $tab = array(); + $sql = "SELECT DISTINCT tc.rowid, tc.code, tc.libelle, tc.position, tc.element"; $sql.= " FROM ".MAIN_DB_PREFIX."c_type_contact as tc"; @@ -1251,27 +1252,36 @@ abstract class CommonObject dol_syslog(get_class($this)."::".__METHOD__, LOG_DEBUG); $resql=$this->db->query($sql); - if ($resql) - { - $num=$this->db->num_rows($resql); - $i=0; - while ($i < $num) - { - $obj = $this->db->fetch_object($resql); - - $libelle_element = $langs->trans('ContactDefault_'.$obj->element); - $transkey="TypeContact_".$this->element."_".$source."_".$obj->code; - $libelle_type=($langs->trans($transkey)!=$transkey ? $langs->trans($transkey) : $obj->libelle); - if (empty($option)) $tab[$obj->rowid]=$libelle_element.' - '.$libelle_type; - else $tab[$obj->rowid]=$libelle_element.' - '.$libelle_type; - $i++; + if ($resql) { + $num = $this->db->num_rows($resql); + if ($num > 0) { + while ($obj = $this->db->fetch_object($resql)) { + if (strpos($obj->element, 'project')!==false) { + $element='projet'; + } elseif($obj->element=='contrat') { + $element='contract'; + } elseif(strpos($obj->element, 'supplier')!==false && $obj->element!='supplier_proposal') { + $element='fournisseur'; + } elseif(strpos($obj->element, 'supplier')!==false && $obj->element!='supplier_proposal') { + $element='fournisseur'; + } else { + $element=$obj->element; + } + if ($conf->{$element}->enabled) { + $libelle_element = $langs->trans('ContactDefault_' . $obj->element); + $transkey = "TypeContact_" . $this->element . "_" . $source . "_" . $obj->code; + $libelle_type = ($langs->trans($transkey) != $transkey ? $langs->trans($transkey) : $obj->libelle); + if (empty($option)) + $tab[$obj->rowid] = $libelle_element . ' - ' . $libelle_type; + else $tab[$obj->rowid] = $libelle_element . ' - ' . $libelle_type; + } + } } return $tab; } else { $this->error=$this->db->lasterror(); - //dol_print_error($this->db); return null; } } diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 4eca1ef0f85..f351a361d14 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -6484,47 +6484,6 @@ class Form return 'ErrorBadValueForParameterRenderMode'; // Should not happened } - /** - * showContactRoles on view and edit mode - * - * @param string $htmlname Html component name and id - * @param Contact $contact Contact Obejct - * @param string $rendermode view, edit - * @param array $selected $key=>$val $val is selected Roles for input mode - * @return string String with contacts roles - */ - public function showRoles($htmlname = '', Contact $contact, $rendermode = 'view', $selected = array()) - { - if ($rendermode === 'view') { - $toprint = array(); - foreach ($contact->roles as $key => $val) { - $toprint[] = '
  • ' . $val['label'] . '
  • '; - } - return '
      ' . implode(' ', $toprint) . '
    '; - } - - if ($rendermode === 'edit') - { - $contactType=$contact->listeTypeContacts('external', '', 1); - - if (count($selected)>0) { - $newselected=array(); - foreach($selected as $key=>$val) { - if (is_array($val) && array_key_exists('id', $val) && in_array($val['id'], array_keys($contactType))) { - $newselected[]=$val['id']; - } else { - break; - } - } - if (count($newselected)>0) $selected=$newselected; - } - return $this->multiselectarray($htmlname, $contactType, $selected); - } - - return 'ErrorBadValueForParameterRenderMode'; // Should not happened - } - - /** * Show linked object block. * diff --git a/htdocs/core/class/html.formcompany.class.php b/htdocs/core/class/html.formcompany.class.php index 2207ab8ab2b..81b87b6f340 100644 --- a/htdocs/core/class/html.formcompany.class.php +++ b/htdocs/core/class/html.formcompany.class.php @@ -29,28 +29,11 @@ * Class to build HTML component for third parties management * Only common components are here. */ -class FormCompany + +require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php'; + +class FormCompany extends Form { - /** - * @var DoliDB Database handler. - */ - public $db; - - /** - * @var string Error code (or message) - */ - public $error=''; - - /** - * Constructor - * - * @param DoliDB $db Database handler - */ - public function __construct($db) - { - $this->db = $db; - } - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** @@ -763,6 +746,45 @@ class FormCompany } } + /** + * showContactRoles on view and edit mode + * + * @param string $htmlname Html component name and id + * @param Contact $contact Contact Obejct + * @param string $rendermode view, edit + * @param array $selected $key=>$val $val is selected Roles for input mode + * @return string String with contacts roles + */ + public function showRoles($htmlname = '', Contact $contact, $rendermode = 'view', $selected = array()) + { + if ($rendermode === 'view') { + $toprint = array(); + foreach ($contact->roles as $key => $val) { + $toprint[] = '
  • ' . $val['label'] . '
  • '; + } + return '
      ' . implode(' ', $toprint) . '
    '; + } + + if ($rendermode === 'edit') + { + $contactType=$contact->listeTypeContacts('external', '', 1); + if (count($selected)>0) { + $newselected=array(); + foreach($selected as $key=>$val) { + if (is_array($val) && array_key_exists('id', $val) && in_array($val['id'], array_keys($contactType))) { + $newselected[]=$val['id']; + } else { + break; + } + } + if (count($newselected)>0) $selected=$newselected; + } + return $this->multiselectarray($htmlname, $contactType, $selected); + } + + return 'ErrorBadValueForParameterRenderMode'; // Should not happened + } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Return a select list with zip codes and their town diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index 14b20bbe46b..331b03bacc4 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -859,6 +859,8 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') global $user,$conf,$extrafields,$hookmanager; global $contextpage; + require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; + $formcompany = new FormCompany($db); $form = new Form($db); $optioncss = GETPOST('optioncss', 'alpha'); @@ -1017,7 +1019,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') if (in_array($key, array('lastname','name'))) print ''; elseif (in_array($key, array('statut'))) print $form->selectarray('search_status', array('-1'=>'','0'=>$contactstatic->LibStatut(0, 1),'1'=>$contactstatic->LibStatut(1, 1)), $search_status); elseif (in_array($key, array('role'))) { - print $form->showRoles("search_roles", $contactstatic, 'edit', $search_roles); + print $formcompany->showRoles("search_roles", $contactstatic, 'edit', $search_roles); } print ''; } @@ -1152,7 +1154,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') if (! empty($arrayfields['sc.role']['checked'])) { print ''; - print $form->showRoles("roles", $contactstatic, 'view'); + print $formcompany->showRoles("roles", $contactstatic, 'view'); print ''; } diff --git a/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php b/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php new file mode 100644 index 00000000000..8fba51e7a69 --- /dev/null +++ b/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php @@ -0,0 +1,120 @@ + + * Copyright (C) 2009-2017 Regis Houssin + * Copyright (C) 2011-2014 Juanjo Menent + * Copyright (C) 2013 Cedric GROSS + * Copyright (C) 2014 Marcos García + * Copyright (C) 2015 Bahfir Abbes + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php + * \ingroup agenda + * \brief Trigger file for agenda module + */ + +require_once DOL_DOCUMENT_ROOT.'/core/triggers/dolibarrtriggers.class.php'; + + +/** + * Class of triggered functions for agenda module + */ +class InterfaceContactRoles extends DolibarrTriggers +{ + public $family = 'agenda'; + public $description = "Triggers of this module add actions in agenda according to setup made in agenda setup."; + + /** + * Version of the trigger + * @var string + */ + public $version = self::VERSION_DOLIBARR; + + /** + * @var string Image of the trigger + */ + public $picto = 'action'; + + /** + * Function called when a Dolibarrr business event is done. + * All functions "runTrigger" are triggered if file is inside directory htdocs/core/triggers or htdocs/module/code/triggers (and declared) + * + * Following properties may be set before calling trigger. The may be completed by this trigger to be used for writing the event into database: + * $object->actiontypecode (translation action code: AC_OTH, ...) + * $object->actionmsg (note, long text) + * $object->actionmsg2 (label, short text) + * $object->sendtoid (id of contact or array of ids) + * $object->socid (id of thirdparty) + * $object->fk_project + * $object->fk_element + * $object->elementtype + * + * @param string $action Event action code + * @param Object $object Object + * @param User $user Object user + * @param Translate $langs Object langs + * @param conf $conf Object conf + * @return int <0 if KO, 0 if no triggered ran, >0 if OK + */ + public function runTrigger($action, $object, User $user, Translate $langs, Conf $conf) + { + // Lors de la création d'un document, récupération des contacts et rôle associés à la société et association avec le document + if ($action === 'PROPAL_CREATE' || $action === 'ORDER_CREATE' || $action === 'BILL_CREATE' || $action === 'ORDER_SUPPLIER_CREATE' || $action === 'BILL_SUPPLIER_CREATE' + || $action === 'CONTRACT_CREATE' || $action === 'FICHINTER_CREATE' || $action === 'PROJECT_CREATE' || $action === 'TICKET_CREATE' || $action === 'ACTION_CREATE') { + + if(!empty($object->socid) && $object->socid != '-1') { + global $db, $langs; + + $contactdefault = new Contact($this->db); + $contactdefault->socid=$object->socid; + $TContact = $contactdefault->getContactRoles(); + + // Le trigger est appelé avant que le core n'ajoute lui-même des contacts (contact propale, clone), il ne faut pas les associer avant sinon bug + $TContactAlreadyLinked = array(); + if ($object->id > 0) + { + $class = get_class($object); + $cloneFrom = new $class($db); + $r = $cloneFrom->fetch($object->id); + + if (!empty($cloneFrom->id)) $TContactAlreadyLinked = array_merge($cloneFrom->liste_contact(-1,'external'), $cloneFrom->liste_contact(-1,'internal')); + } + + foreach($TContact as $i => $infos) { + // Gestion du cas du clone + foreach ($TContactAlreadyLinked as $contactData) { + if($contactData['id'] == $infos['fk_socpeople'] && $contactData['fk_c_type_contact'] == $infos['type_contact']) unset($TContact[$i]); + } + } + + $nb = 0; + foreach($TContact as $infos) { + // Gestion du cas spécifique de la création de propale avec sélection du contact, cela créé un bug si le contact est ajouté par le module contactdefault + $res = $object->add_contact($infos['fk_socpeople'], $infos['type_contact']); + if($res > 0) $nb++; + } + + if($nb > 0) { + setEventMessage($langs->trans('ContactAddedAutomatically', $nb)); + } + } + + dol_syslog( + "Trigger '" . $this->name . "' for action '$action' launched by " . __FILE__ . ". id=" . $object->id + ); + } + } +} From d50114df649a0d7752f4a549e5d541da1dc27eeb Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Fri, 6 Sep 2019 09:20:18 +0200 Subject: [PATCH 025/484] mostlyDone --- htdocs/contact/class/contact.class.php | 2 +- ...rface_90_modSociete_ContactRoles.class.php | 20 +++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index 6b46e32f532..fad72d69637 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -1544,7 +1544,7 @@ class Contact extends CommonObject $sql.= " AND tc.element='".$element."'"; $sql.= " AND tc.active=1"; - dol_syslog(get_class($this)."::liste_contact", LOG_DEBUG); + dol_syslog(get_class($this)."::".__METHOD__, LOG_DEBUG); $resql=$this->db->query($sql); if ($resql) { diff --git a/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php b/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php index 8fba51e7a69..36a8274c602 100644 --- a/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php +++ b/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php @@ -71,16 +71,20 @@ class InterfaceContactRoles extends DolibarrTriggers */ public function runTrigger($action, $object, User $user, Translate $langs, Conf $conf) { - // Lors de la création d'un document, récupération des contacts et rôle associés à la société et association avec le document + if ($action === 'PROPAL_CREATE' || $action === 'ORDER_CREATE' || $action === 'BILL_CREATE' || $action === 'ORDER_SUPPLIER_CREATE' || $action === 'BILL_SUPPLIER_CREATE' || $action === 'CONTRACT_CREATE' || $action === 'FICHINTER_CREATE' || $action === 'PROJECT_CREATE' || $action === 'TICKET_CREATE' || $action === 'ACTION_CREATE') { - if(!empty($object->socid) && $object->socid != '-1') { - global $db, $langs; + dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id); + $socid=(property_exists($object, 'socid')?$object->socid:$object->fk_soc); + + if(!empty($socid) && $socid != '-1') { + global $db, $langs; + var_dump($socid); $contactdefault = new Contact($this->db); - $contactdefault->socid=$object->socid; - $TContact = $contactdefault->getContactRoles(); + $contactdefault->socid=$socid; + $TContact = $contactdefault->getContactRoles($object->element); // Le trigger est appelé avant que le core n'ajoute lui-même des contacts (contact propale, clone), il ne faut pas les associer avant sinon bug $TContactAlreadyLinked = array(); @@ -90,7 +94,7 @@ class InterfaceContactRoles extends DolibarrTriggers $cloneFrom = new $class($db); $r = $cloneFrom->fetch($object->id); - if (!empty($cloneFrom->id)) $TContactAlreadyLinked = array_merge($cloneFrom->liste_contact(-1,'external'), $cloneFrom->liste_contact(-1,'internal')); + if (!empty($cloneFrom->id)) $TContactAlreadyLinked = array_merge($cloneFrom->liste_contact(-1, 'external'), $cloneFrom->liste_contact(-1, 'internal')); } foreach($TContact as $i => $infos) { @@ -111,10 +115,6 @@ class InterfaceContactRoles extends DolibarrTriggers setEventMessage($langs->trans('ContactAddedAutomatically', $nb)); } } - - dol_syslog( - "Trigger '" . $this->name . "' for action '$action' launched by " . __FILE__ . ". id=" . $object->id - ); } } } From e55c7bc378295bd6db964434bb6e8b604484f814 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Fri, 6 Sep 2019 11:22:22 +0200 Subject: [PATCH 026/484] Update llx_facture.sql --- htdocs/install/mysql/tables/llx_facture.sql | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/install/mysql/tables/llx_facture.sql b/htdocs/install/mysql/tables/llx_facture.sql index 742c63d0a6e..3c678699a7e 100644 --- a/htdocs/install/mysql/tables/llx_facture.sql +++ b/htdocs/install/mysql/tables/llx_facture.sql @@ -41,6 +41,7 @@ create table llx_facture date_pointoftax date DEFAULT NULL, -- date point of tax (for GB) date_valid date, -- date validation tms timestamp, -- date creation/modification + date_cloture datetime, -- date de cloture paye smallint DEFAULT 0 NOT NULL, amount double(24,8) DEFAULT 0 NOT NULL, remise_percent real DEFAULT 0, -- remise relative @@ -62,7 +63,8 @@ create table llx_facture fk_user_author integer, -- user making creation fk_user_modif integer, -- user making last change fk_user_valid integer, -- user validating - + fk_user_cloture integer, -- user closing + module_source varchar(32), -- name of module when invoice generated by a dedicated module (POS, ...) pos_source varchar(32), -- name of POS station when invoice is generated by a POS module fk_fac_rec_source integer, -- facture rec source From ead8d29ed32ecd8cc65ad90254e912a2dc8cf097 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Fri, 6 Sep 2019 11:32:46 +0200 Subject: [PATCH 027/484] Update 10.0.0-11.0.0.sql --- htdocs/install/mysql/migration/10.0.0-11.0.0.sql | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/htdocs/install/mysql/migration/10.0.0-11.0.0.sql b/htdocs/install/mysql/migration/10.0.0-11.0.0.sql index 64de0364139..065104164c9 100644 --- a/htdocs/install/mysql/migration/10.0.0-11.0.0.sql +++ b/htdocs/install/mysql/migration/10.0.0-11.0.0.sql @@ -47,7 +47,8 @@ ALTER TABLE llx_entrepot_extrafields ADD INDEX idx_entrepot_extrafields (fk_obje ALTER TABLE llx_facture ADD COLUMN retained_warranty real DEFAULT NULL after situation_final; ALTER TABLE llx_facture ADD COLUMN retained_warranty_date_limit date DEFAULT NULL after retained_warranty; ALTER TABLE llx_facture ADD COLUMN retained_warranty_fk_cond_reglement integer DEFAULT NULL after retained_warranty_date_limit; - +ALTER TABLE llx_facture ADD COLUMN date_cloture datetime DEFAULT NULL after date_valid; +ALTER TABLE llx_facture ADD COLUMN fk_user_cloture integer DEFAULT NULL after fk_user_valid; ALTER TABLE llx_c_shipment_mode ADD COLUMN entity integer DEFAULT 1 NOT NULL; @@ -105,4 +106,4 @@ create table llx_c_hrm_public_holiday )ENGINE=innodb; - \ No newline at end of file + From fc75d72290578cb488ba1480b75c1ed51122dbba Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Fri, 6 Sep 2019 11:35:52 +0200 Subject: [PATCH 028/484] Update list.php --- htdocs/compta/facture/list.php | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php index ad9e2295d6d..54f0fdb6d08 100644 --- a/htdocs/compta/facture/list.php +++ b/htdocs/compta/facture/list.php @@ -180,6 +180,7 @@ $arrayfields=array( 'rtp'=>array('label'=>"Rest", 'checked'=>0), 'f.datec'=>array('label'=>"DateCreation", 'checked'=>0, 'position'=>500), 'f.tms'=>array('label'=>"DateModificationShort", 'checked'=>0, 'position'=>500), + 'f.date_cloture'=>array('label'=>"DateClosing", 'checked'=>0, 'position'=>500), 'f.fk_statut'=>array('label'=>"Status", 'checked'=>1, 'position'=>1000), ); @@ -381,7 +382,7 @@ $sql.= ' f.rowid as id, f.ref, f.ref_client, f.type, f.note_private, f.note_publ $sql.= ' f.localtax1 as total_localtax1, f.localtax2 as total_localtax2,'; $sql.= ' f.datef as df, f.date_lim_reglement as datelimite,'; $sql.= ' f.paye as paye, f.fk_statut,'; -$sql.= ' f.datec as date_creation, f.tms as date_update,'; +$sql.= ' f.datec as date_creation, f.tms as date_update, f.date_cloture as date_cloture,'; if($conf->global->INVOICE_USE_SITUATION && $conf->global->INVOICE_USE_SITUATION_RETAINED_WARRANTY) { $sql.= ' f.retained_warranty, f.retained_warranty_date_limit, f.situation_final,f.situation_cycle_ref,f.situation_counter,'; @@ -495,7 +496,7 @@ if (! $sall) $sql.= ' f.localtax1, f.localtax2,'; $sql.= ' f.datef, f.date_lim_reglement,'; $sql.= ' f.paye, f.fk_statut,'; - $sql.= ' f.datec, f.tms,'; + $sql.= ' f.datec, f.tms, f.date_cloture,'; $sql.= ' s.rowid, s.nom, s.email, s.town, s.zip, s.fk_pays, s.client, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur,'; $sql.= ' typent.code,'; $sql.= ' state.code_departement, state.nom,'; @@ -864,6 +865,12 @@ if ($resql) print ''; print ''; } + if (! empty($arrayfields['f.date_cloture']['checked'])) + { + print ''; + print ''; + } + // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php'; @@ -930,6 +937,7 @@ if ($resql) print $hookmanager->resPrint; if (! empty($arrayfields['f.datec']['checked'])) print_liste_field_titre($arrayfields['f.datec']['label'], $_SERVER["PHP_SELF"], "f.datec", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder); if (! empty($arrayfields['f.tms']['checked'])) print_liste_field_titre($arrayfields['f.tms']['label'], $_SERVER["PHP_SELF"], "f.tms", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder); + if (! empty($arrayfields['f.date_cloture']['checked'])) print_liste_field_titre($arrayfields['f.date_cloture']['label'], $_SERVER["PHP_SELF"], "f.date_cloture", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder); if (! empty($arrayfields['f.fk_statut']['checked'])) print_liste_field_titre($arrayfields['f.fk_statut']['label'], $_SERVER["PHP_SELF"], "f.fk_statut,f.paye,f.type,dynamount_payed", "", $param, 'class="right"', $sortfield, $sortorder); print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch '); print "\n"; @@ -1260,6 +1268,14 @@ if ($resql) print ''; if (! $i) $totalarray['nbfield']++; } + // Date cloture + if (! empty($arrayfields['f.date_cloture']['checked'])) + { + print ''; + print dol_print_date($db->jdate($obj->date_cloture), 'dayhour', 'tzuser'); + print ''; + if (! $i) $totalarray['nbfield']++; + } // Status if (! empty($arrayfields['f.fk_statut']['checked'])) { From 5d81b0271d6a6eedae203ddaaefcf6c598aaa16c Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Fri, 6 Sep 2019 11:40:26 +0200 Subject: [PATCH 029/484] Update facture.class.php --- htdocs/compta/facture/class/facture.class.php | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index 131f0ee90fd..73323235448 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -2136,6 +2136,8 @@ class Facture extends CommonInvoice if ($this->paye != 1) { $this->db->begin(); + + $now=dol_now(); dol_syslog(get_class($this)."::set_paid rowid=".$this->id, LOG_DEBUG); @@ -2144,6 +2146,8 @@ class Facture extends CommonInvoice if (! $close_code) $sql.= ', paye=1'; if ($close_code) $sql.= ", close_code='".$this->db->escape($close_code)."'"; if ($close_note) $sql.= ", close_note='".$this->db->escape($close_note)."'"; + $sql.= ', fk_user_cloture = '.$user->id; + $sql.= ", date_cloture = '".$this->db->idate($now)."'"; $sql.= ' WHERE rowid = '.$this->id; $resql = $this->db->query($sql); @@ -2196,6 +2200,8 @@ class Facture extends CommonInvoice $sql = 'UPDATE '.MAIN_DB_PREFIX.'facture'; $sql.= ' SET paye=0, fk_statut='.self::STATUS_VALIDATED.', close_code=null, close_note=null'; + $sql.= ' date_cloture as datecloture,'; + $sql.= ' fk_user_author, fk_user_valid, fk_user_cloture'; $sql.= ' WHERE rowid = '.$this->id; dol_syslog(get_class($this)."::set_unpaid", LOG_DEBUG); @@ -3521,7 +3527,8 @@ class Facture extends CommonInvoice public function info($id) { $sql = 'SELECT c.rowid, datec, date_valid as datev, tms as datem,'; - $sql.= ' fk_user_author, fk_user_valid'; + $sql.= ' date_cloture as datecloture,'; + $sql.= ' fk_user_author, fk_user_valid, fk_user_cloture'; $sql.= ' FROM '.MAIN_DB_PREFIX.'facture as c'; $sql.= ' WHERE c.rowid = '.$id; @@ -3536,7 +3543,7 @@ class Facture extends CommonInvoice { $cuser = new User($this->db); $cuser->fetch($obj->fk_user_author); - $this->user_creation = $cuser; + $this->user_creation = $cuser; } if ($obj->fk_user_valid) { @@ -3544,9 +3551,17 @@ class Facture extends CommonInvoice $vuser->fetch($obj->fk_user_valid); $this->user_validation = $vuser; } + if ($obj->fk_user_cloture) + { + $cluser = new User($this->db); + $cluser->fetch($obj->fk_user_cloture); + $this->user_cloture = $cluser; + } + $this->date_creation = $this->db->jdate($obj->datec); $this->date_modification = $this->db->jdate($obj->datem); - $this->date_validation = $this->db->jdate($obj->datev); // Should be in log table + $this->date_validation = $this->db->jdate($obj->datev); + $this->date_cloture = $this->db->jdate($obj->datecloture); } $this->db->free($result); } From 2d3b0a7d43b529913dce11579207d4b34c50a9f2 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sun, 8 Sep 2019 20:05:13 +0200 Subject: [PATCH 030/484] Update adherent.class.php --- htdocs/adherents/class/adherent.class.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php index 1b516e1c94e..28667cb047f 100644 --- a/htdocs/adherents/class/adherent.class.php +++ b/htdocs/adherents/class/adherent.class.php @@ -581,6 +581,7 @@ class Adherent extends CommonObject $sql.= ", fk_adherent_type = ".$this->db->escape($this->typeid); $sql.= ", morphy = '".$this->db->escape($this->morphy)."'"; $sql.= ", birth = ".($this->birth?"'".$this->db->idate($this->birth)."'":"null"); + if ($this->socid) $sql.= ", fk_soc = '".$this->db->escape($this->socid)."'"; // Must be modified only when creating from a thirdpart if ($this->datefin) $sql.= ", datefin = '".$this->db->idate($this->datefin)."'"; // Must be modified only when deleting a subscription if ($this->datevalid) $sql.= ", datevalid = '".$this->db->idate($this->datevalid)."'"; // Must be modified only when validating a member $sql.= ", fk_user_mod = ".($user->id>0?$user->id:'null'); // Can be null because member can be create by a guest From a83c0670811683075c684ff07d92dbeccb79475e Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sun, 8 Sep 2019 20:08:32 +0200 Subject: [PATCH 031/484] Update card.php --- htdocs/adherents/card.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/htdocs/adherents/card.php b/htdocs/adherents/card.php index 5836bf48332..d443eb6e462 100644 --- a/htdocs/adherents/card.php +++ b/htdocs/adherents/card.php @@ -866,6 +866,18 @@ else $object->country_code=$tmparray['code']; $object->country=$tmparray['label']; } + + if (!empty($socid)) { +$object = new Societe($db); +if ($socid > 0) $object->fetch($socid); + +if (! ($object->id > 0)) +{ + $langs->load("errors"); + print($langs->trans('ErrorRecordNotFound')); + exit; +} + } $adht = new AdherentType($db); @@ -905,6 +917,7 @@ else print '
    '; print ''; print ''; + print ''; if ($backtopage) print ''; dol_fiche_head(''); From 1368236d29c060e59235ef88b9c30f2ff7ac2ae5 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sun, 8 Sep 2019 20:15:05 +0200 Subject: [PATCH 032/484] Update card.php --- htdocs/societe/card.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index ab224245de8..2d26747df32 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -2664,6 +2664,16 @@ else { print ''."\n"; } + + if (! empty($conf->adherent->enabled)) + { + $adh = new Adherent($db); + $result=$adh->fetch('','',$object->id); + if (!$result && $object->client == 1) + { + print ''.$langs->trans("NewMember").''; + } + } if ($user->rights->societe->supprimer) { From e37875f70a597e011514b233d5dcaded2a0851be Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sun, 8 Sep 2019 20:16:05 +0200 Subject: [PATCH 033/484] Update card.php --- htdocs/societe/card.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index 2d26747df32..ee6ca0288ef 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -47,7 +47,8 @@ require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; if (! empty($conf->adherent->enabled)) require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; -$langs->loadLangs(array("companies","commercial","bills","banks","users")); +$langs->loadLangs(array("companies", "commercial", "bills", "banks", "users")); +if (! empty($conf->adherent->enabled)) $langs->load("members"); if (! empty($conf->categorie->enabled)) $langs->load("categories"); if (! empty($conf->incoterm->enabled)) $langs->load("incoterm"); if (! empty($conf->notification->enabled)) $langs->load("mails"); From 2e63e7bc27ffcd53e9c3c89764244613451ed019 Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Sun, 8 Sep 2019 18:17:51 +0000 Subject: [PATCH 034/484] Fixing style errors. --- htdocs/societe/card.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index ee6ca0288ef..8c1db93c53b 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -2669,11 +2669,11 @@ else if (! empty($conf->adherent->enabled)) { $adh = new Adherent($db); - $result=$adh->fetch('','',$object->id); + $result=$adh->fetch('', '', $object->id); if (!$result && $object->client == 1) { print ''.$langs->trans("NewMember").''; - } + } } if ($user->rights->societe->supprimer) From 617e430998034d71b59b5b864f5a7e0911be9b9a Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Mon, 9 Sep 2019 12:31:17 +0200 Subject: [PATCH 035/484] fix stravis and sticker --- htdocs/core/class/html.formcompany.class.php | 2 +- htdocs/install/mysql/migration/10.0.0-11.0.0.sql | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/htdocs/core/class/html.formcompany.class.php b/htdocs/core/class/html.formcompany.class.php index 81b87b6f340..c7467922da5 100644 --- a/htdocs/core/class/html.formcompany.class.php +++ b/htdocs/core/class/html.formcompany.class.php @@ -755,7 +755,7 @@ class FormCompany extends Form * @param array $selected $key=>$val $val is selected Roles for input mode * @return string String with contacts roles */ - public function showRoles($htmlname = '', Contact $contact, $rendermode = 'view', $selected = array()) + public function showRoles($htmlname, Contact $contact, $rendermode = 'view', $selected = array()) { if ($rendermode === 'view') { $toprint = array(); diff --git a/htdocs/install/mysql/migration/10.0.0-11.0.0.sql b/htdocs/install/mysql/migration/10.0.0-11.0.0.sql index ec124c8a1a1..2caf438b471 100644 --- a/htdocs/install/mysql/migration/10.0.0-11.0.0.sql +++ b/htdocs/install/mysql/migration/10.0.0-11.0.0.sql @@ -175,4 +175,5 @@ INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, m INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('IN-REPUBLICDAY', 0, 117, '', 0, 1, 26, 1); INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('IN-GANDI', 0, 117, '', 0, 10, 2, 1); - +ALTER TABLE llx_supplier_proposaldet ADD COLUMN date_start datetime DEFAULT NULL AFTER product_type; +ALTER TABLE llx_supplier_proposaldet ADD COLUMN date_end datetime DEFAULT NULL AFTER date_start; From 42b3640a5a0cdb0ffc463e720c5f6e0a04fe9c15 Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Mon, 9 Sep 2019 14:12:28 +0200 Subject: [PATCH 036/484] fix travis --- .../triggers/interface_90_modSociete_ContactRoles.class.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php b/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php index 36a8274c602..8d2418a8a94 100644 --- a/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php +++ b/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php @@ -81,12 +81,11 @@ class InterfaceContactRoles extends DolibarrTriggers if(!empty($socid) && $socid != '-1') { global $db, $langs; - var_dump($socid); + require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; $contactdefault = new Contact($this->db); $contactdefault->socid=$socid; $TContact = $contactdefault->getContactRoles($object->element); - // Le trigger est appelé avant que le core n'ajoute lui-même des contacts (contact propale, clone), il ne faut pas les associer avant sinon bug $TContactAlreadyLinked = array(); if ($object->id > 0) { @@ -98,7 +97,6 @@ class InterfaceContactRoles extends DolibarrTriggers } foreach($TContact as $i => $infos) { - // Gestion du cas du clone foreach ($TContactAlreadyLinked as $contactData) { if($contactData['id'] == $infos['fk_socpeople'] && $contactData['fk_c_type_contact'] == $infos['type_contact']) unset($TContact[$i]); } @@ -106,7 +104,6 @@ class InterfaceContactRoles extends DolibarrTriggers $nb = 0; foreach($TContact as $infos) { - // Gestion du cas spécifique de la création de propale avec sélection du contact, cela créé un bug si le contact est ajouté par le module contactdefault $res = $object->add_contact($infos['fk_socpeople'], $infos['type_contact']); if($res > 0) $nb++; } From ee931d0f25dfe42fa9138b180815a9beca1f7ceb Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Mon, 9 Sep 2019 14:53:23 +0200 Subject: [PATCH 037/484] fix travis --- .../interface_90_modSociete_ContactRoles.class.php | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php b/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php index 8d2418a8a94..e9bf9d38a50 100644 --- a/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php +++ b/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php @@ -53,14 +53,8 @@ class InterfaceContactRoles extends DolibarrTriggers * All functions "runTrigger" are triggered if file is inside directory htdocs/core/triggers or htdocs/module/code/triggers (and declared) * * Following properties may be set before calling trigger. The may be completed by this trigger to be used for writing the event into database: - * $object->actiontypecode (translation action code: AC_OTH, ...) - * $object->actionmsg (note, long text) - * $object->actionmsg2 (label, short text) - * $object->sendtoid (id of contact or array of ids) - * $object->socid (id of thirdparty) - * $object->fk_project - * $object->fk_element - * $object->elementtype + * $object->socid or $object->fk_soc(id of thirdparty) + * $object->element (element type of object) * * @param string $action Event action code * @param Object $object Object @@ -113,5 +107,6 @@ class InterfaceContactRoles extends DolibarrTriggers } } } - } + return 0; + } } From ad92efaee14e8ad5e8523fd6064928ad917cee7a Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Mon, 9 Sep 2019 14:58:29 +0200 Subject: [PATCH 038/484] add trans --- htdocs/langs/en_US/main.lang | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index c4611836a51..04f45f8de4b 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -1004,3 +1004,4 @@ ContactDefault_project_task=Task ContactDefault_propal=Proposal ContactDefault_supplier_proposal=Supplier Proposal ContactDefault_ticketsup=Ticket +ContactAddedAutomatically=Contact added from contact thirdparty roles From 95417d4c86129b1a55283d097ebece7857b87265 Mon Sep 17 00:00:00 2001 From: Christophe Battarel Date: Tue, 10 Sep 2019 16:24:04 +0200 Subject: [PATCH 039/484] allow standalone credit note even if no invoice --- htdocs/compta/facture/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index d81467d64e4..3d363b60bb2 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -3047,7 +3047,7 @@ if ($action == 'create') { print '
    '; $tmp='global->INVOICE_CREDIT_NOTE_STANDALONE) ) $tmp.=' disabled'; $tmp.= '> '; // Show credit note options only if we checked credit note print ''; - print "
    \n"; - print $langs->trans("AccountancyAreaDescActionOnceBis"); - print "
    \n"; - print "
    \n"; + print '
    '; // hideobject is to start hidden + print "
    \n"; + print ''.$langs->trans("AccountancyAreaDescIntro")."
    \n"; + print "
    \n";print "
    \n"; - $step++; - print img_picto('', 'puce') . ' ' . $langs->trans("AccountancyAreaDescDefault", $step, - '' . '' . $langs->transnoentitiesnoconv("Setup") . ' - ' . $langs->transnoentitiesnoconv("MenuDefaultAccounts") . '' . ''); - print "
    \n"; + print load_fiche_titre(' '.$langs->trans("AccountancyAreaDescActionOnce"), '', '')."\n"; + print '
    '; + print "
    \n"; - $step++; - print img_picto('', 'puce') . ' ' . $langs->trans("AccountancyAreaDescBank", $step, - '' . '' . $langs->transnoentitiesnoconv("Setup") . ' - ' . $langs->transnoentitiesnoconv("MenuBankAccounts") . '' . '') . "\n"; - print "
    \n"; + // STEPS + $step++; + print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescJournalSetup", $step, ''.''.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("AccountingJournals").''.''); + print "
    \n"; + $step++; + print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescChartModel", $step, ''.''.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("Pcg_version").''.''); + print "
    \n"; + $step++; + print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescChart", $step, ''.''.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("Chartofaccounts").''.''); + print "
    \n"; - $step++; - $textlink = '' . '' . $langs->transnoentitiesnoconv("Setup") . ' - ' . $langs->transnoentitiesnoconv("MenuVatAccounts") . '' . ''; - print img_picto('', 'puce') . ' ' . $langs->trans("AccountancyAreaDescVat", $step, $textlink); - print "
    \n"; - if (!empty($conf->tax->enabled)) { - $textlink = '' . '' . $langs->transnoentitiesnoconv("Setup") . ' - ' . $langs->transnoentitiesnoconv("MenuTaxAccounts") . '' . ''; - $step++; - print img_picto('', 'puce') . ' ' . $langs->trans("AccountancyAreaDescContrib", $step, $textlink); - print "
    \n"; - } - /*if (! empty($conf->salaries->enabled)) - { - $step++; - print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescSal", $step, ''.$langs->transnoentitiesnoconv("MenuFinancial").'-'.$langs->transnoentitiesnoconv("MenuAccountancy").' - '.$langs->transnoentitiesnoconv("MenuDefaultAccounts").''); - // htdocs/admin/salaries.php - print "
    \n"; - print "
    \n"; - }*/ - if (!empty($conf->expensereport->enabled)) // TODO Move this in the default account page because this is only one accounting account per purpose, not several. - { - $step++; - print img_picto('', 'puce') . ' ' . $langs->trans("AccountancyAreaDescExpenseReport", $step, - '' . '' . $langs->transnoentitiesnoconv("Setup") . ' - ' . $langs->transnoentitiesnoconv("MenuExpenseReportAccounts") . '' . ''); - print "
    \n"; - } - /* - if (! empty($conf->loan->enabled)) - { - $step++; - print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescLoan", $step, ''.$langs->transnoentitiesnoconv("MenuSpecialExpenses").' - '.$langs->transnoentitiesnoconv("Loans").' '.$langs->transnoentitiesnoconv("or").' '.$langs->transnoentitiesnoconv("MenuFinancial").'-'.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuDefaultAccounts").''); - print "
    \n"; - } - if (! empty($conf->don->enabled)) - { - $step++; - print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescDonation", $step, ''.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuDefaultAccounts").''); - print "
    \n"; - } - if (! empty($conf->adherents->enabled)) - { - $step++; - print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescSubscription", $step, ''.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuDefaultAccounts").''); - print "
    \n"; - }*/ + print "
    \n"; + print $langs->trans("AccountancyAreaDescActionOnceBis"); + print "
    \n"; + print "
    \n"; - $step++; - print img_picto('', 'puce') . ' ' . $langs->trans("AccountancyAreaDescProd", $step, - '' . '' . $langs->transnoentitiesnoconv("Setup") . ' - ' . $langs->transnoentitiesnoconv("ProductsBinding") . '' . ''); - print "
    \n"; + $step++; + print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescDefault", $step, ''.''.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuDefaultAccounts").''.''); + print "
    \n"; - print '
    '; + $step++; + print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBank", $step, ''.''.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuBankAccounts").''.'')."\n"; + print "
    \n"; - // Step A - E - - print "
    \n"; - print load_fiche_titre(' ' . $langs->trans("AccountancyAreaDescActionFreq"), - '', ''); - print '
    '; - print "
    \n"; - $step = 0; - - $langs->loadLangs(array('bills', 'trips')); - - $step++; - print img_picto('', 'puce') . ' ' . $langs->trans("AccountancyAreaDescBind", chr(64 + $step), - $langs->transnoentitiesnoconv("BillsCustomers"), - '' . '' . $langs->transnoentitiesnoconv("TransferInAccounting") . ' - ' . $langs->transnoentitiesnoconv("CustomersVentilation") . '' . '') . "\n"; - print "
    \n"; - - $step++; - print img_picto('', 'puce') . ' ' . $langs->trans("AccountancyAreaDescBind", chr(64 + $step), - $langs->transnoentitiesnoconv("BillsSuppliers"), - '' . '' . $langs->transnoentitiesnoconv("TransferInAccounting") . ' - ' . $langs->transnoentitiesnoconv("SuppliersVentilation") . '' . '') . "\n"; - print "
    \n"; - - if (!empty($conf->expensereport->enabled) || !empty($conf->deplacement->enabled)) { - $step++; - print img_picto('', 'puce') . ' ' . $langs->trans("AccountancyAreaDescBind", chr(64 + $step), - $langs->transnoentitiesnoconv("ExpenseReports"), - '' . '' . $langs->transnoentitiesnoconv("TransferInAccounting") . ' - ' . $langs->transnoentitiesnoconv("ExpenseReportsVentilation") . '' . '') . "\n"; - print "
    \n"; - } - - $step++; - print img_picto('', 'puce') . ' ' . $langs->trans("AccountancyAreaDescWriteRecords", chr(64 + $step), - $langs->transnoentitiesnoconv("TransferInAccounting") . ' - ' . $langs->transnoentitiesnoconv("RegistrationInAccounting"), - $langs->transnoentitiesnoconv("WriteBookKeeping")) . "\n"; - print "
    \n"; - - $step++; - print img_picto('', 'puce') . ' ' . $langs->trans("AccountancyAreaDescAnalyze", chr(64 + $step)) . "
    \n"; - print "
    \n"; - } - - print '
    '; - - print '
    '; - - /* - * Show boxes - */ - $boxlist.='
    '; - - $boxlist.='
    '; - if(!empty($nbworkboardcount)) + $step++; + $textlink = ''.''.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuVatAccounts").''.''; + print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescVat", $step, $textlink); + print "
    \n"; + if (! empty($conf->tax->enabled)) { - $boxlist.=$boxwork; + $textlink = ''.''.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuTaxAccounts").''.''; + $step++; + print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescContrib", $step, $textlink); + print "
    \n"; + } + /*if (! empty($conf->salaries->enabled)) + { + $step++; + print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescSal", $step, ''.$langs->transnoentitiesnoconv("MenuFinancial").'-'.$langs->transnoentitiesnoconv("MenuAccountancy").' - '.$langs->transnoentitiesnoconv("MenuDefaultAccounts").''); + // htdocs/admin/salaries.php + print "
    \n"; + print "
    \n"; + }*/ + if (! empty($conf->expensereport->enabled)) // TODO Move this in the default account page because this is only one accounting account per purpose, not several. + { + $step++; + print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescExpenseReport", $step, ''.''.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuExpenseReportAccounts").''.''); + print "
    \n"; + } + /* + if (! empty($conf->loan->enabled)) + { + $step++; + print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescLoan", $step, ''.$langs->transnoentitiesnoconv("MenuSpecialExpenses").' - '.$langs->transnoentitiesnoconv("Loans").' '.$langs->transnoentitiesnoconv("or").' '.$langs->transnoentitiesnoconv("MenuFinancial").'-'.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuDefaultAccounts").''); + print "
    \n"; + } + if (! empty($conf->don->enabled)) + { + $step++; + print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescDonation", $step, ''.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuDefaultAccounts").''); + print "
    \n"; + } + if (! empty($conf->adherents->enabled)) + { + $step++; + print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescSubscription", $step, ''.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuDefaultAccounts").''); + print "
    \n"; + }*/ + + $step++; + print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescProd", $step, ''.''.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("ProductsBinding").''.''); + print "
    \n"; + + + print '
    '; + + // Step A - E + + print "
    \n"; + print load_fiche_titre(' '.$langs->trans("AccountancyAreaDescActionFreq"), '', ''); + print '
    '; + print "
    \n"; + $step = 0; + + $langs->loadLangs(array('bills', 'trips')); + + $step++; + print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBind", chr(64+$step), $langs->transnoentitiesnoconv("BillsCustomers"), ''.''.$langs->transnoentitiesnoconv("TransferInAccounting").' - '.$langs->transnoentitiesnoconv("CustomersVentilation").''.'')."\n"; + print "
    \n"; + + $step++; + print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBind", chr(64+$step), $langs->transnoentitiesnoconv("BillsSuppliers"), ''.''.$langs->transnoentitiesnoconv("TransferInAccounting").' - '.$langs->transnoentitiesnoconv("SuppliersVentilation").''.'')."\n"; + print "
    \n"; + + if (! empty($conf->expensereport->enabled) || ! empty($conf->deplacement->enabled)) + { + $step++; + print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBind", chr(64+$step), $langs->transnoentitiesnoconv("ExpenseReports"), ''.''.$langs->transnoentitiesnoconv("TransferInAccounting").' - '.$langs->transnoentitiesnoconv("ExpenseReportsVentilation").''.'')."\n"; + print "
    \n"; } - $boxlist.=$resultboxes['boxlista']; + $step++; + print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescWriteRecords", chr(64+$step), $langs->transnoentitiesnoconv("TransferInAccounting").' - '.$langs->transnoentitiesnoconv("RegistrationInAccounting"), $langs->transnoentitiesnoconv("WriteBookKeeping"))."\n"; + print "
    \n"; - $boxlist.= '
    '; - - $boxlist.= '
    '; - - $boxlist.=$boxstat; - $boxlist.=$resultboxes['boxlistb']; - - $boxlist.= '
    '; - $boxlist.= "\n"; - - $boxlist.='
    '; - - - print $boxlist; + $step++; + print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescAnalyze", chr(64+$step))."
    \n"; + print "
    \n"; print '
    '; + + print '
    '; + + print '
    '; + + /* + * Show boxes + */ + $boxlist.='
    '; + + $boxlist.='
    '; + if(!empty($nbworkboardcount)) + { + $boxlist.=$boxwork; + } + + $boxlist.=$resultboxes['boxlista']; + + $boxlist.= '
    '; + + $boxlist.= '
    '; + + $boxlist.=$boxstat; + $boxlist.=$resultboxes['boxlistb']; + + $boxlist.= '
    '; + $boxlist.= "\n"; + + $boxlist.='
    '; + + + print $boxlist; + + print '
    '; } else { + print load_fiche_titre($langs->trans("AccountancyArea"), '', 'accountancy'); + print $langs->trans("Module10Desc")."
    \n"; } diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index 38b0798d47d..30b060fb4d3 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -257,6 +257,7 @@ ListOfProductsWithoutAccountingAccount=List of products not bound to any account ChangeBinding=Change the binding Accounted=Accounted in ledger NotYetAccounted=Not yet accounted in ledger +ShowFAQ=Show FAQ ## Admin ApplyMassCategories=Apply mass categories From 6d4f3f308e524fecebdaeea11d4871989b558ad6 Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Wed, 2 Oct 2019 08:43:40 +0200 Subject: [PATCH 089/484] NEW expense request and holiday validator fields --- htdocs/expensereport/card.php | 2 +- htdocs/holiday/card.php | 2 +- htdocs/user/card.php | 82 +++++++++++++++++++++++++++++++++++ 3 files changed, 84 insertions(+), 2 deletions(-) diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php index 140d3dcc612..4df08b46004 100644 --- a/htdocs/expensereport/card.php +++ b/htdocs/expensereport/card.php @@ -1492,7 +1492,7 @@ if ($action == 'create') if (empty($include_users)) print img_warning().' '.$langs->trans("NobodyHasPermissionToValidateExpenseReport"); else { - $defaultselectuser=$user->fk_user; // Will work only if supervisor has permission to approve so is inside include_users + $defaultselectuser=!empty($user->fk_user_expense_validator) ? $user->fk_user_expense_validator : $user->fk_user; // Will work only if supervisor has permission to approve so is inside include_users if (! empty($conf->global->EXPENSEREPORT_DEFAULT_VALIDATOR)) $defaultselectuser=$conf->global->EXPENSEREPORT_DEFAULT_VALIDATOR; // Can force default approver if (GETPOST('fk_user_validator', 'int') > 0) $defaultselectuser=GETPOST('fk_user_validator', 'int'); $s=$form->select_dolusers($defaultselectuser, "fk_user_validator", 1, "", ((empty($defaultselectuser) || empty($conf->global->EXPENSEREPORT_DEFAULT_VALIDATOR_UNCHANGEABLE))?0:1), $include_users); diff --git a/htdocs/holiday/card.php b/htdocs/holiday/card.php index fdb9a498778..0e97ef5857d 100644 --- a/htdocs/holiday/card.php +++ b/htdocs/holiday/card.php @@ -1092,7 +1092,7 @@ if ((empty($id) && empty($ref)) || $action == 'add' || $action == 'request' || $ if (empty($include_users)) print img_warning().' '.$langs->trans("NobodyHasPermissionToValidateHolidays"); else { - $defaultselectuser=$user->fk_user; // Will work only if supervisor has permission to approve so is inside include_users + $defaultselectuser=!empty($user->fk_user_holiday_validator) ? $user->fk_user_holiday_validator : $user->fk_user; // Will work only if supervisor has permission to approve so is inside include_users if (! empty($conf->global->HOLIDAY_DEFAULT_VALIDATOR)) $defaultselectuser=$conf->global->HOLIDAY_DEFAULT_VALIDATOR; // Can force default approver if (GETPOST('valideur', 'int') > 0) $defaultselectuser=GETPOST('valideur', 'int'); $s=$form->select_dolusers($defaultselectuser, "valideur", 1, "", 0, $include_users); diff --git a/htdocs/user/card.php b/htdocs/user/card.php index d47a8bf4f7d..d5e6776a223 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -223,6 +223,8 @@ if (empty($reshook)) { $object->note = GETPOST("note", 'none'); $object->ldap_sid = GETPOST("ldap_sid", 'alphanohtml'); $object->fk_user = GETPOST("fk_user", 'int') > 0 ? GETPOST("fk_user", 'int') : 0; + $object->fk_user_expense_validator = GETPOST("fk_user_expense_validator", 'int') > 0 ? GETPOST("fk_user_expense_validator", 'int') : 0; + $object->fk_user_holiday_validator = GETPOST("fk_user_holiday_validator", 'int') > 0 ? GETPOST("fk_user_holiday_validator", 'int') : 0; $object->employee = GETPOST('employee', 'alphanohtml'); $object->thm = GETPOST("thm", 'alphanohtml') != '' ? GETPOST("thm", 'alphanohtml') : ''; @@ -376,6 +378,8 @@ if (empty($reshook)) { $object->accountancy_code = GETPOST("accountancy_code", 'alphanohtml'); $object->openid = GETPOST("openid", 'alphanohtml'); $object->fk_user = GETPOST("fk_user", 'int') > 0 ? GETPOST("fk_user", 'int') : 0; + $object->fk_user_expense_validator = GETPOST("fk_user_expense_validator", 'int') > 0 ? GETPOST("fk_user_expense_validator", 'int') : 0; + $object->fk_user_holiday_validator = GETPOST("fk_user_holiday_validator", 'int') > 0 ? GETPOST("fk_user_holiday_validator", 'int') : 0; $object->employee = GETPOST('employee', 'int'); $object->thm = GETPOST("thm", 'alphanohtml') != '' ? GETPOST("thm", 'alphanohtml') : ''; @@ -965,6 +969,26 @@ if ($action == 'create' || $action == 'adduserldap') print ''; print "\n"; + // Expense report validator + if(!empty($conf->expensereport->enabled)) + { + print ''.$langs->trans("UserExpenseValidator").''; + print ''; + print $form->select_dolusers($object->fk_user_expense_validator, 'fk_user_expense_validator', 1, array($object->id), 0, '', 0, $conf->entity, 0, 0, '', 0, '', 'maxwidth300'); + print ''; + print "\n"; + } + + // Holiday request validator + if(!empty($conf->holiday->enabled)) + { + print '' . $langs->trans("UserHolidayValidator") . ''; + print ''; + print $form->select_dolusers($object->fk_user_holiday_validator, 'fk_user_holiday_validator', 1, array($object->id), 0, '', 0, $conf->entity, 0, 0, '', 0, '', 'maxwidth300'); + print ''; + print "\n"; + } + print '
    '; @@ -1562,6 +1586,30 @@ else print ''; print "\n"; + // Expense report validator + print ''; + print ''; + print "\n"; + + // Holiday request validator + print ''; + print ''; + print "\n"; + // Position/Job print ''; print ''; @@ -2243,6 +2291,40 @@ else print ''; print "\n"; + // Expense report validator + print ''; + print ''; + print "\n"; + + // Holiday request validator + print ''; + print ''; + print "\n"; + print '
    '.$langs->trans("UserExpenseValidator").''; + if (empty($object->fk_user_expense_validator)) print $langs->trans("None"); + else { + $evuser=new User($db); + $evuser->fetch($object->fk_user_expense_validator); + print $evuser->getNomUrl(1); + } + print '
    '.$langs->trans("UserHolidayValidator").''; + if (empty($object->fk_user_holiday_validator)) print $langs->trans("None"); + else { + $hvuser=new User($db); + $hvuser->fetch($object->fk_user_holiday_validator); + print $hvuser->getNomUrl(1); + } + print '
    '.$langs->trans("PostOrFunction").''.$object->job.'
    '.$langs->trans("UserExpenseValidator").''; + if ($caneditfield) + { + print $form->select_dolusers($object->fk_user_expense_validator, 'fk_user_expense_validator', 1, array($object->id), 0, '', 0, $object->entity, 0, 0, '', 0, '', 'maxwidth300'); + } + else + { + print ''; + $evuser=new User($db); + $evuser->fetch($object->fk_user_expense_validator); + print $evuser->getNomUrl(1); + } + print '
    '.$langs->trans("UserHolidayValidator").''; + if ($caneditfield) + { + print $form->select_dolusers($object->fk_user_holiday_validator, 'fk_user_holiday_validator', 1, array($object->id), 0, '', 0, $object->entity, 0, 0, '', 0, '', 'maxwidth300'); + } + else + { + print ''; + $hvuser=new User($db); + $hvuser->fetch($object->fk_user_holiday_validator); + print $hvuser->getNomUrl(1); + } + print '

    '; From 848acb6096c5b370da5890e4e13e959a1b704f2a Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 2 Oct 2019 08:49:33 +0200 Subject: [PATCH 090/484] Update index --- htdocs/core/modules/modAccounting.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/modules/modAccounting.class.php b/htdocs/core/modules/modAccounting.class.php index cd117bd4d96..a806cab111f 100644 --- a/htdocs/core/modules/modAccounting.class.php +++ b/htdocs/core/modules/modAccounting.class.php @@ -163,8 +163,8 @@ class modAccounting extends DolibarrModules // Boxes $this->boxes = array( - 0=>array('file'=>'box_accountancy_last_manual_entries.php', 'enabledbydefaulton'=>'Accountancy'), - 1=>array('file'=>'box_accountancy_suspense_account.php', 'enabledbydefaulton'=>'Accountancy') + 0=>array('file'=>'box_accountancy_last_manual_entries.php', 'enabledbydefaulton'=>'accountancyindex'), + 1=>array('file'=>'box_accountancy_suspense_account.php', 'enabledbydefaulton'=>'accountancyindex') ); // Permissions From 94179f712d33e8a8fc951fa25580a0c7bdf9f7ff Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 2 Oct 2019 08:58:25 +0200 Subject: [PATCH 091/484] Update areacode --- htdocs/accountancy/index.php | 2 +- htdocs/core/class/html.formother.class.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/accountancy/index.php b/htdocs/accountancy/index.php index 25e9a1fecd3..36ebaf07c94 100644 --- a/htdocs/accountancy/index.php +++ b/htdocs/accountancy/index.php @@ -64,7 +64,7 @@ if ($conf->accounting->enabled) { $step = 0; - $resultboxes=FormOther::getBoxesArea($user, "1"); // Load $resultboxes (selectboxlist + boxactivated + boxlista + boxlistb) + $resultboxes=FormOther::getBoxesArea($user, "27"); // Load $resultboxes (selectboxlist + boxactivated + boxlista + boxlistb) print load_fiche_titre($langs->trans("AccountancyArea"), $resultboxes['selectboxlist'], 'accountancy'); diff --git a/htdocs/core/class/html.formother.class.php b/htdocs/core/class/html.formother.class.php index e890a2e05e7..48db977255f 100644 --- a/htdocs/core/class/html.formother.class.php +++ b/htdocs/core/class/html.formother.class.php @@ -989,7 +989,7 @@ class FormOther * Class 'Form' must be known. * * @param User $user Object User - * @param String $areacode Code of area for pages - 0 = Home page / 1 = Accountancy page + * @param String $areacode Code of area for pages - 0 = Home page ... See getListOfPagesForBoxes() * @return array array('selectboxlist'=>, 'boxactivated'=>, 'boxlista'=>, 'boxlistb'=>) */ public static function getBoxesArea($user, $areacode) From ad3cbd17c2a2918cb1bb6c6fc10011258151e2f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Wed, 2 Oct 2019 11:12:30 +0200 Subject: [PATCH 092/484] backport commit for setmulticurrency https://github.com/Dolibarr/dolibarr/commit/a4892071227156be6a0c8729c91b46eb6474aca2#diff-48f18024fb928ce21b76ef02fc967c67 --- htdocs/core/class/commonobject.class.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 251ca43694d..61a94438841 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -1876,10 +1876,16 @@ abstract class CommonObject { foreach ($this->lines as &$line) { + // Amounts in company currency will be recalculated if($mode == 1) { $line->subprice = 0; } + // Amounts in foreign currency will be recalculated + if($mode == 2) { + $line->multicurrency_subprice = 0; + } + switch ($this->element) { case 'propal': $this->updateline( From 8c9cee156590c001b9346de882f3ec9e75d182e0 Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Wed, 2 Oct 2019 12:49:38 +0200 Subject: [PATCH 093/484] resolve conflict --- htdocs/core/lib/company.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index 5729270fe73..669c1936a50 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -920,7 +920,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') $contactstatic->fields=array( 'name' =>array('type'=>'varchar(128)', 'label'=>'Name', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1), - 'poste' =>array('type'=>'varchar(128)', 'label'=>'PostOfFunction', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>20), + 'poste' =>array('type'=>'varchar(128)', 'label'=>'PostOrFunction', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>20), 'address' =>array('type'=>'varchar(128)', 'label'=>'Address', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>30), 'role' =>array('type'=>'checkbox', 'label'=>'Role', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>40), 'statut' =>array('type'=>'integer', 'label'=>'Status', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'default'=>0, 'index'=>1, 'position'=>50, 'arrayofkeyval'=>array(0=>$contactstatic->LibStatut(0, 1), 1=>$contactstatic->LibStatut(1, 1))), From eb40d51dda1f4b3d2f69d13926df0bd2c05940a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Wed, 2 Oct 2019 18:32:23 +0200 Subject: [PATCH 094/484] Update dav.php --- htdocs/admin/dav.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/admin/dav.php b/htdocs/admin/dav.php index cb3f7ab2072..90b82421702 100644 --- a/htdocs/admin/dav.php +++ b/htdocs/admin/dav.php @@ -123,7 +123,9 @@ else { print ''; // Link -print ''; // Link -print ''; print ''; // Img of credit card print ''; } } - + print '
    '; $tooltiphelp = (($langs->trans($key.'Tooltip') != $key.'Tooltip') ? $langs->trans($key.'Tooltip') : ''); - print $form->textwithpicto($langs->trans($key), $tooltiphelp); + $label = $langs->trans($key); + if ($key == 'DAV_RESTICT_ON_IP') $label = $langs->trans("RESTRICT_ON_IP"); + print $form->textwithpicto($label, $tooltiphelp); print ''; if ($key == 'DAV_ALLOW_PRIVATE_DIR') { From fe0f1902095666302292aa1e204e51e7613e2194 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Wed, 2 Oct 2019 18:49:05 +0200 Subject: [PATCH 095/484] Update dav.php --- htdocs/admin/dav.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/htdocs/admin/dav.php b/htdocs/admin/dav.php index 90b82421702..53971743b20 100644 --- a/htdocs/admin/dav.php +++ b/htdocs/admin/dav.php @@ -168,6 +168,9 @@ print "
    "; // Define $urlwithroot $urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT, '/').'$/i', '', trim($dolibarr_main_url_root)); $urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file +if ($_SERVER['HTTPS'] == 'on' || $_SERVER['REQUEST_SCHEME'] == 'https') { + $urlwithroot = str_replace('http://', 'https://', $urlwithroot); +} //$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current From 0d41216624ba6c5b4f464b8dba7d48e48a84d763 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Thu, 3 Oct 2019 00:22:14 +0200 Subject: [PATCH 096/484] Update dolgraph.class.php --- htdocs/core/class/dolgraph.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/dolgraph.class.php b/htdocs/core/class/dolgraph.class.php index d7850871ee0..8bf7b471473 100644 --- a/htdocs/core/class/dolgraph.class.php +++ b/htdocs/core/class/dolgraph.class.php @@ -944,7 +944,7 @@ class DolGraph $tag=dol_escape_htmltag(dol_string_unaccent(dol_string_nospecial(basename($file), '_', array('-','.')))); $this->stringtoshow =''."\n"; - if (! empty($this->title)) $this->stringtoshow.='
    '.$this->title.'
    '; + if (! empty($this->title)) $this->stringtoshow.='
    '.$this->title.'
    '; if (! empty($this->shownographyet)) { $this->stringtoshow.='
    '; From 9f2ac7cae308734c38e951b5d5a49e1d8ae84788 Mon Sep 17 00:00:00 2001 From: oscim Date: Thu, 3 Oct 2019 09:47:06 +0200 Subject: [PATCH 097/484] Fix error in triggers process If methode create_from_contact is called; In process this method containt call create methode, but trigger by action USER_CREATE is called twice. the call to the create method should not trigger triggers same for the create_from_members method --- htdocs/user/class/user.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php index 04ec5bf0698..30eb6f1cd27 100644 --- a/htdocs/user/class/user.class.php +++ b/htdocs/user/class/user.class.php @@ -1298,7 +1298,7 @@ class User extends CommonObject $this->db->begin(); // Cree et positionne $this->id - $result=$this->create($user); + $result=$this->create($user, 1); if ($result > 0) { $sql = "UPDATE ".MAIN_DB_PREFIX."user"; @@ -1371,7 +1371,7 @@ class User extends CommonObject $this->db->begin(); // Create and set $this->id - $result=$this->create($user); + $result=$this->create($user, 1); if ($result > 0) { $newpass=$this->setPassword($user, $this->pass); From d368bc1b6a6039dd4766426ef4f2eaee3f7ed443 Mon Sep 17 00:00:00 2001 From: oscim Date: Thu, 3 Oct 2019 15:58:40 +0200 Subject: [PATCH 098/484] Update user.class.php actually the create_from_member method does not require this change --- htdocs/user/class/user.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php index 30eb6f1cd27..57ded5e6c1c 100644 --- a/htdocs/user/class/user.class.php +++ b/htdocs/user/class/user.class.php @@ -1371,7 +1371,7 @@ class User extends CommonObject $this->db->begin(); // Create and set $this->id - $result=$this->create($user, 1); + $result=$this->create($user); if ($result > 0) { $newpass=$this->setPassword($user, $this->pass); From ae01bd8f07e43dbcbb8fc5278a0d682e0ef5177e Mon Sep 17 00:00:00 2001 From: atm-lena Date: Thu, 3 Oct 2019 17:23:16 +0200 Subject: [PATCH 099/484] FIX missing begin() --- htdocs/fourn/class/fournisseur.commande.class.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index f32d9d24c01..eed1bbf9eda 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -3363,6 +3363,8 @@ class CommandeFournisseurLigne extends CommonOrderLine $error=0; + $this->db->begin(); + // Mise a jour ligne en base $sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element." SET"; $sql.= " description='".$this->db->escape($this->desc)."'"; From 02af9b8fa4638d993a1725155f8f941c5926b058 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 3 Oct 2019 17:56:55 +0200 Subject: [PATCH 100/484] Update card.php --- htdocs/expensereport/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php index 4df08b46004..7e51d059bf6 100644 --- a/htdocs/expensereport/card.php +++ b/htdocs/expensereport/card.php @@ -1492,7 +1492,7 @@ if ($action == 'create') if (empty($include_users)) print img_warning().' '.$langs->trans("NobodyHasPermissionToValidateExpenseReport"); else { - $defaultselectuser=!empty($user->fk_user_expense_validator) ? $user->fk_user_expense_validator : $user->fk_user; // Will work only if supervisor has permission to approve so is inside include_users + $defaultselectuser=(empty($user->fk_user_expense_validator) ? $user->fk_user : $user->fk_user_expense_validator); // Will work only if supervisor has permission to approve so is inside include_users if (! empty($conf->global->EXPENSEREPORT_DEFAULT_VALIDATOR)) $defaultselectuser=$conf->global->EXPENSEREPORT_DEFAULT_VALIDATOR; // Can force default approver if (GETPOST('fk_user_validator', 'int') > 0) $defaultselectuser=GETPOST('fk_user_validator', 'int'); $s=$form->select_dolusers($defaultselectuser, "fk_user_validator", 1, "", ((empty($defaultselectuser) || empty($conf->global->EXPENSEREPORT_DEFAULT_VALIDATOR_UNCHANGEABLE))?0:1), $include_users); From 1f3e25005365ae4145764cebe8343da38bc02f34 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 3 Oct 2019 17:58:07 +0200 Subject: [PATCH 101/484] Update card.php --- htdocs/holiday/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/holiday/card.php b/htdocs/holiday/card.php index 0e97ef5857d..90afdb18747 100644 --- a/htdocs/holiday/card.php +++ b/htdocs/holiday/card.php @@ -1092,7 +1092,7 @@ if ((empty($id) && empty($ref)) || $action == 'add' || $action == 'request' || $ if (empty($include_users)) print img_warning().' '.$langs->trans("NobodyHasPermissionToValidateHolidays"); else { - $defaultselectuser=!empty($user->fk_user_holiday_validator) ? $user->fk_user_holiday_validator : $user->fk_user; // Will work only if supervisor has permission to approve so is inside include_users + $defaultselectuser=(empty($user->fk_user_holiday_validator) ? $user->fk_user : $user->fk_user_holiday_validator); // Will work only if supervisor has permission to approve so is inside include_users if (! empty($conf->global->HOLIDAY_DEFAULT_VALIDATOR)) $defaultselectuser=$conf->global->HOLIDAY_DEFAULT_VALIDATOR; // Can force default approver if (GETPOST('valideur', 'int') > 0) $defaultselectuser=GETPOST('valideur', 'int'); $s=$form->select_dolusers($defaultselectuser, "valideur", 1, "", 0, $include_users); From ee42cd000e13a364b861897ef8afdd5afec13b5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Thu, 3 Oct 2019 19:07:26 +0200 Subject: [PATCH 102/484] duration of fichinter rec --- htdocs/fichinter/class/fichinterrec.class.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/fichinter/class/fichinterrec.class.php b/htdocs/fichinter/class/fichinterrec.class.php index 4fabf64be49..f88653e70eb 100644 --- a/htdocs/fichinter/class/fichinterrec.class.php +++ b/htdocs/fichinter/class/fichinterrec.class.php @@ -155,7 +155,7 @@ class FichinterRec extends Fichinter $sql.= ", ".($this->socid >0 ? $this->socid : 'null'); $sql.= ", ".$conf->entity; $sql.= ", '".$this->db->idate($now)."'"; - $sql.= ", ".(!empty($fichintsrc->duree)?$fichintsrc->duree:'0'); + $sql.= ", ".(!empty($fichintsrc->duration)?$fichintsrc->duration:'0'); $sql.= ", ".(!empty($this->description)?("'".$this->db->escape($this->description)."'"):"null"); $sql.= ", ".(!empty($fichintsrc->note_private)?("'".$this->db->escape($fichintsrc->note_private)."'"):"null"); $sql.= ", ".(!empty($fichintsrc->note_public)?("'".$this->db->escape($fichintsrc->note_public)."'"):"null"); @@ -271,6 +271,7 @@ class FichinterRec extends Fichinter $this->ref = $obj->titre; $this->description = $obj->description; $this->datec = $obj->datec; + $this->duration = $obj->duree; $this->socid = $obj->fk_soc; $this->statut = 0; $this->fk_project = $obj->fk_projet; From 14381927c73f3ef825c4bf7ce38c0e331d2501dd Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Thu, 3 Oct 2019 20:32:15 +0200 Subject: [PATCH 103/484] Fix Bank Fa-icon --- htdocs/compta/bank/list.php | 2 +- htdocs/core/lib/functions.lib.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/compta/bank/list.php b/htdocs/compta/bank/list.php index 2bdea48487e..7cb6dbb6968 100644 --- a/htdocs/compta/bank/list.php +++ b/htdocs/compta/bank/list.php @@ -242,7 +242,7 @@ print ''; print ''; print ''; -print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_bank.png', 0, $newcardbutton, '', $limit, 1); +print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'bank', 0, $newcardbutton, '', $limit, 1); $topicmail="Information"; //$modelmail="subscription"; diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index aa594a694cd..17388f1c32d 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -3045,9 +3045,9 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ 'address'=> 'address-book', 'setup'=>'cog', 'companies'=>'building', 'products'=>'cube', 'commercial'=>'suitcase', 'invoicing'=>'coins', 'accountancy'=>'money-check-alt', 'project'=>'sitemap', 'hrm'=>'umbrella-beach', 'members'=>'users', 'ticket'=>'ticket-alt', 'generic'=>'folder-open', 'switch_off'=>'toggle-off', 'switch_on'=>'toggle-on', - 'bank'=>'bank', 'close_title'=>'window-close', 'delete'=>'trash', 'edit'=>'pencil', 'filter'=>'filter', 'split'=>'code-fork', + 'bank'=>'university', 'close_title'=>'window-close', 'delete'=>'trash', 'edit'=>'pencil', 'filter'=>'filter', 'split'=>'code-fork', 'object_list'=>'list-alt','object_calendar'=>'calendar-alt', 'object_calendarweek'=>'calendar-week', 'object_calendarmonth'=>'calendar-alt', 'object_calendarday'=>'calendar-day', 'object_calendarperuser'=>'table', - 'title_setup'=>'tools', 'title_accountancy'=>'money-check-alt', 'title_bank'=>'bank', 'title_hrm'=>'umbrella-beach', 'title_agenda'=>'calendar-alt' + 'title_setup'=>'tools', 'title_accountancy'=>'money-check-alt', 'title_bank'=>'university', 'title_hrm'=>'umbrella-beach', 'title_agenda'=>'calendar-alt' ); if ($pictowithouttext == 'switch_off') { From d0840b038f06d27f5960b71da9cb0c2cf4c27a0f Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Thu, 3 Oct 2019 20:42:02 +0200 Subject: [PATCH 104/484] Remove constant MAIN_DISABLE_FONT_AWESOME_5 --- htdocs/core/lib/functions.lib.php | 37 +++++++++---------------------- htdocs/theme/eldy/global.inc.php | 4 ++-- htdocs/theme/md/style.css.php | 6 ++--- 3 files changed, 16 insertions(+), 31 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 17388f1c32d..a8922ecfa6b 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -3036,8 +3036,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ 'title_setup', 'title_accountancy', 'title_bank', 'title_hrm', 'title_agenda' ) )) { - $fa='fa'; - if (empty($conf->global->MAIN_DISABLE_FONT_AWESOME_5)) $fa='fas'; + $fa='fas'; $fakey = $pictowithouttext; $facolor = ''; $fasize = ''; @@ -3061,21 +3060,13 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ $fakey = 'fa-'.$arrayconvpictotofa[$pictowithouttext]; } elseif ($pictowithouttext == 'off') { - $fakey = 'fa-square-o'; - if (empty($conf->global->MAIN_DISABLE_FONT_AWESOME_5)) - { - $fakey = 'fa-square'; - $fa='far'; - } + $fakey = 'fa-square'; + $fa='far'; $fasize = '1.3em'; } elseif ($pictowithouttext == 'on') { - $fakey = 'fa-check-square-o'; - if (empty($conf->global->MAIN_DISABLE_FONT_AWESOME_5)) - { - $fakey = 'fa-check-square'; - $fa='far'; - } + $fakey = 'fa-check-square'; + $fa='far'; $fasize = '1.3em'; } elseif ($pictowithouttext == 'bank') { @@ -3088,12 +3079,10 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ } elseif ($pictowithouttext == 'edit') { $facolor = '#444'; - $fakey = 'fa-'.$arrayconvpictotofa[$pictowithouttext]; - if (empty($conf->global->MAIN_DISABLE_FONT_AWESOME_5)) $fakey = 'fa-pencil-alt'; + $fakey = 'fa-pencil-alt'; } elseif ($pictowithouttext == 'grip_title' || $pictowithouttext == 'grip') { - $fakey = 'fa-arrows'; - if (empty($conf->global->MAIN_DISABLE_FONT_AWESOME_5)) $fakey = 'fa-arrows-alt'; + $fakey = 'fa-arrows-alt'; } elseif ($pictowithouttext == 'listlight') { $fakey = 'fa-download'; @@ -3110,11 +3099,8 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ $facolor = '#444'; } elseif ($pictowithouttext == 'note') { - $fakey = 'fa-sticky-note-o'; - if (empty($conf->global->MAIN_DISABLE_FONT_AWESOME_5)) - { - $fakey = 'fa-sticky-note'; $fa = 'far'; - } + $fakey = 'fa-sticky-note'; + $fa = 'far'; $facolor = '#999'; $marginleftonlyshort=1; } @@ -3129,9 +3115,8 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ $marginleftonlyshort = 1; } elseif ($pictowithouttext == 'sign-out') { - $fakey = 'fa-sign-out'; + $fakey = 'fa-sign-out-alt'; $marginleftonlyshort=0; - if (empty($conf->global->MAIN_DISABLE_FONT_AWESOME_5)) $fakey = 'fa-sign-out-alt'; } elseif ($pictowithouttext == 'unlink') { $fakey = 'fa-chain-broken'; @@ -3150,7 +3135,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ } elseif (in_array($pictowithouttext, array('skype', 'twitter', 'facebook', 'linkedin'))) { $fakey = 'fa-'.$pictowithouttext; - if (empty($conf->global->MAIN_DISABLE_FONT_AWESOME_5)) $fa = 'fab'; + $fa = 'fab'; } // Img for type of views elseif (in_array($pictowithouttext, array('object_list', 'object_calendar', 'object_calendarweek', 'object_calendarmonth', 'object_calendarday', 'object_calendarperuser'))) { diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index 98bfddc196d..904f6a197d5 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -1660,7 +1660,7 @@ a.tmenuimage:hover{ /* Do not load menu img for other if hidden to save bandwidth */ - global->MAIN_DISABLE_FONT_AWESOME_5)) { ?> + div.mainmenu.home{ @@ -1794,7 +1794,7 @@ a.tmenuimage:hover{ // Img file not found if (! $found) { - if (! defined('DISABLE_FONT_AWSOME') && empty($conf->global->MAIN_DISABLE_FONT_AWESOME_5)) { + if (! defined('DISABLE_FONT_AWSOME')) { print "/* A mainmenu entry was found but img file ".$val.".png not found (check /".$val."/img/".$val.".png), so we use a generic one */\n"; print 'div.mainmenu.'.$val.'::before { content: "\f249"; diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index ec1f04ab9db..dcbbbd1cf4f 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -1786,7 +1786,7 @@ div.mainmenu { /* Do not load menu img if hidden to save bandwidth */ - global->MAIN_DISABLE_FONT_AWESOME_5)) { ?> + @@ -1926,7 +1926,7 @@ foreach($mainmenuusedarray as $val) // Img file not found if (! $found) { - if (! defined('DISABLE_FONT_AWSOME') && empty($conf->global->MAIN_DISABLE_FONT_AWESOME_5)) { + if (! defined('DISABLE_FONT_AWSOME')) { print "/* A mainmenu entry was found but img file ".$val.".png not found (check /".$val."/img/".$val.".png), so we use a generic one */\n"; print 'div.mainmenu.'.$val.'::before { content: "\f249"; @@ -5805,7 +5805,7 @@ border-top-right-radius: 6px; -global->MAIN_DISABLE_FONT_AWESOME_5)) { ?> + Date: Thu, 3 Oct 2019 21:00:59 +0200 Subject: [PATCH 105/484] Add bookmark fa-icon --- htdocs/core/boxes/box_bookmarks.php | 6 +++--- htdocs/core/lib/functions.lib.php | 8 ++++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/htdocs/core/boxes/box_bookmarks.php b/htdocs/core/boxes/box_bookmarks.php index 5d4f51840fa..eec82f0e091 100644 --- a/htdocs/core/boxes/box_bookmarks.php +++ b/htdocs/core/boxes/box_bookmarks.php @@ -29,7 +29,7 @@ include_once DOL_DOCUMENT_ROOT.'/core/boxes/modules_boxes.php'; class box_bookmarks extends ModeleBoxes { public $boxcode="bookmarks"; - public $boximg="object_bookmark"; + public $boximg="bookmark"; public $boxlabel="BoxMyLastBookmarks"; public $depends = array("bookmark"); @@ -77,12 +77,12 @@ class box_bookmarks extends ModeleBoxes 'sublink' => DOL_URL_ROOT.'/bookmarks/list.php', ); if ($user->rights->bookmark->creer) { - $this->info_box_head['subpicto']='object_bookmark'; + $this->info_box_head['subpicto']='bookmark'; $this->info_box_head['subtext']=$langs->trans("BookmarksManagement"); } else { - $this->info_box_head['subpicto']='object_bookmark'; + $this->info_box_head['subpicto']='bookmark'; $this->info_box_head['subtext']=$langs->trans("ListOfBookmark"); } diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index a8922ecfa6b..943c5778dce 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -3026,7 +3026,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ //if (in_array($picto, array('switch_off', 'switch_on', 'off', 'on'))) if (empty($srconly) && in_array($pictowithouttext, array( '1downarrow', '1uparrow', '1leftarrow', '1rightarrow', '1uparrow_selected', '1downarrow_selected', '1leftarrow_selected', '1rightarrow_selected', - 'address', 'bank', 'building', 'cash-register', 'close_title', 'cubes', 'delete', 'edit', 'ellipsis-h', 'filter', 'grip', 'grip_title', 'list', 'listlight', 'note', + 'address', 'bank', 'building', 'cash-register', 'close_title', 'cubes', 'delete', 'edit', 'ellipsis-h', 'bookmark', 'filter', 'grip', 'grip_title', 'list', 'listlight', 'note', 'object_list','object_calendar', 'object_calendarweek', 'object_calendarmonth', 'object_calendarday', 'object_calendarperuser', 'off', 'on', 'play', 'playdisabled', 'printer', 'resize', 'note', 'setup', 'sign-out', 'split', 'switch_off', 'switch_on', 'tools', 'unlink', 'uparrow', 'user', 'wrench', @@ -3043,7 +3043,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ $arrayconvpictotofa = array( 'address'=> 'address-book', 'setup'=>'cog', 'companies'=>'building', 'products'=>'cube', 'commercial'=>'suitcase', 'invoicing'=>'coins', 'accountancy'=>'money-check-alt', 'project'=>'sitemap', 'hrm'=>'umbrella-beach', 'members'=>'users', 'ticket'=>'ticket-alt', 'generic'=>'folder-open', - 'switch_off'=>'toggle-off', 'switch_on'=>'toggle-on', + 'switch_off'=>'toggle-off', 'switch_on'=>'toggle-on', 'bookmark'=>'star', 'bank'=>'university', 'close_title'=>'window-close', 'delete'=>'trash', 'edit'=>'pencil', 'filter'=>'filter', 'split'=>'code-fork', 'object_list'=>'list-alt','object_calendar'=>'calendar-alt', 'object_calendarweek'=>'calendar-week', 'object_calendarmonth'=>'calendar-alt', 'object_calendarday'=>'calendar-day', 'object_calendarperuser'=>'table', 'title_setup'=>'tools', 'title_accountancy'=>'money-check-alt', 'title_bank'=>'university', 'title_hrm'=>'umbrella-beach', 'title_agenda'=>'calendar-alt' @@ -3084,6 +3084,10 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ elseif ($pictowithouttext == 'grip_title' || $pictowithouttext == 'grip') { $fakey = 'fa-arrows-alt'; } + elseif ($pictowithouttext == 'bookmark') { + $fakey = 'fa-'.$arrayconvpictotofa[$pictowithouttext]; + $fa='far'; + } elseif ($pictowithouttext == 'listlight') { $fakey = 'fa-download'; $facolor = '#999'; From edc4dc3727dd0fed9e04e17287fe54ca6bae67e1 Mon Sep 17 00:00:00 2001 From: ATM john Date: Thu, 3 Oct 2019 21:20:07 +0200 Subject: [PATCH 106/484] Fix project libStatus to use new dolGetStatus --- htdocs/projet/class/project.class.php | 51 ++++++++------------------- 1 file changed, 15 insertions(+), 36 deletions(-) diff --git a/htdocs/projet/class/project.class.php b/htdocs/projet/class/project.class.php index 027fe6503b2..2382f93c17a 100644 --- a/htdocs/projet/class/project.class.php +++ b/htdocs/projet/class/project.class.php @@ -942,48 +942,27 @@ class Project extends CommonObject /** * Renvoi status label for a status * - * @param int $statut id statut - * @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto + * @param int $status id status + * @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 6=Long label + Picto * @return string Label */ - public function LibStatut($statut, $mode = 0) + public function LibStatut($status, $mode = 0) { // phpcs:enable - global $langs; - if ($mode == 0) { - return $langs->trans($this->statuts_long[$statut]); - } elseif ($mode == 1) { - return $langs->trans($this->statuts_short[$statut]); - } elseif ($mode == 2) { - if ($statut == 0) - return img_picto($langs->trans($this->statuts_long[$statut]), 'statut0') . ' ' . $langs->trans($this->statuts_short[$statut]); - elseif ($statut == 1) - return img_picto($langs->trans($this->statuts_long[$statut]), 'statut4') . ' ' . $langs->trans($this->statuts_short[$statut]); - elseif ($statut == 2) - return img_picto($langs->trans($this->statuts_long[$statut]), 'statut6') . ' ' . $langs->trans($this->statuts_short[$statut]); - } elseif ($mode == 3) { - if ($statut == 0) - return img_picto($langs->trans($this->statuts_long[$statut]), 'statut0'); - elseif ($statut == 1) - return img_picto($langs->trans($this->statuts_long[$statut]), 'statut4'); - elseif ($statut == 2) - return img_picto($langs->trans($this->statuts_long[$statut]), 'statut6'); - } elseif ($mode == 4) { - if ($statut == 0) - return img_picto($langs->trans($this->statuts_long[$statut]), 'statut0') . ' ' . $langs->trans($this->statuts_long[$statut]); - elseif ($statut == 1) - return img_picto($langs->trans($this->statuts_long[$statut]), 'statut4') . ' ' . $langs->trans($this->statuts_long[$statut]); - if ($statut == 2) - return img_picto($langs->trans($this->statuts_long[$statut]), 'statut6') . ' ' . $langs->trans($this->statuts_long[$statut]); - } elseif ($mode == 5) { - if ($statut == 0) - return $langs->trans($this->statuts_short[$statut]) . ' ' . img_picto($langs->trans($this->statuts_long[$statut]), 'statut0'); - elseif ($statut == 1) - return $langs->trans($this->statuts_short[$statut]) . ' ' . img_picto($langs->trans($this->statuts_long[$statut]), 'statut4'); - elseif ($statut == 2) - return $langs->trans($this->statuts_short[$statut]) . ' ' . img_picto($langs->trans($this->statuts_long[$statut]), 'statut6'); + $statustrans = array( + 0 => 'status0', + 1 => 'status4', + 2 => 'status6', + ); + + $statusClass = 'status0'; + if(!empty($statustrans[$status])){ + $statusClass = $statustrans[$status]; } + + return dolGetStatus($this->statuts_long[$status], $this->statuts_short[$status], '', $statusClass, $mode); + } /** From 77f666a23695c441d79334e6e3678c851089693d Mon Sep 17 00:00:00 2001 From: ATM john Date: Thu, 3 Oct 2019 21:28:11 +0200 Subject: [PATCH 107/484] Fix dolGetStatus param --- htdocs/core/lib/functions.lib.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index aa594a694cd..7b617471fca 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -8164,13 +8164,13 @@ function dolGetStatus($statusLabel = '', $statusLabelShort = '', $html = '', $st $statusLabelShort = !empty($statusLabelShort)?$statusLabelShort:$statusLabel; if ($displayMode == 3) { - $return = dolGetBadge($statusLabel, '', $statusType, 'dot'); + $return = dolGetBadge($statusLabel, '', $statusType, 'dot', $url); } elseif ($displayMode === 5) { - $return = dolGetBadge($statusLabelShort, $html, $statusType); + $return = dolGetBadge($statusLabelShort, $html, $statusType, '', $url); } else { - $return = dolGetBadge($statusLabel, $html, $statusType); + $return = dolGetBadge($statusLabel, $html, $statusType, '', $url); } } From ddadff5731fe7842154c2dacac56095e60525969 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Thu, 3 Oct 2019 21:32:55 +0200 Subject: [PATCH 108/484] Add globe fa-icon --- htdocs/adherents/admin/website.php | 2 +- htdocs/admin/agenda_xcal.php | 6 +++--- htdocs/admin/dav.php | 4 ++-- htdocs/admin/translation.php | 2 +- htdocs/api/admin/explorer.php | 4 ++-- htdocs/api/admin/index.php | 4 ++-- htdocs/core/class/html.formfile.class.php | 4 ++-- htdocs/core/lib/cron.lib.php | 4 ++-- htdocs/core/lib/functions.lib.php | 4 ++-- htdocs/core/lib/payments.lib.php | 2 +- htdocs/core/lib/signature.lib.php | 2 +- htdocs/core/tpl/onlinepaymentlinks.tpl.php | 12 ++++++------ htdocs/ecm/file_card.php | 4 ++-- htdocs/opensurvey/card.php | 2 +- htdocs/opensurvey/results.php | 2 +- htdocs/paypal/lib/paypal.lib.php | 2 +- htdocs/societe/paymentmodes.php | 12 ++++++------ htdocs/stripe/admin/stripe.php | 4 ++-- htdocs/stripe/charge.php | 4 ++-- htdocs/stripe/lib/stripe.lib.php | 2 +- htdocs/stripe/payout.php | 2 +- htdocs/stripe/transaction.php | 2 +- htdocs/webservices/admin/index.php | 4 ++-- htdocs/website/index.php | 2 +- 24 files changed, 46 insertions(+), 46 deletions(-) diff --git a/htdocs/adherents/admin/website.php b/htdocs/adherents/admin/website.php index 47bd51bdc98..ead5e767243 100644 --- a/htdocs/adherents/admin/website.php +++ b/htdocs/adherents/admin/website.php @@ -225,7 +225,7 @@ if (! empty($conf->global->MEMBER_ENABLE_PUBLIC)) { print '
    '; //print $langs->trans('FollowingLinksArePublic').'
    '; - print img_picto('', 'object_globe.png').' '.$langs->trans('BlankSubscriptionForm').':
    '; + print img_picto('', 'globe').' '.$langs->trans('BlankSubscriptionForm').':
    '; if ($conf->multicompany->enabled) { $entity_qr='?entity='.$conf->entity; } else { diff --git a/htdocs/admin/agenda_xcal.php b/htdocs/admin/agenda_xcal.php index 65074cbe8f1..f3c16941ebc 100644 --- a/htdocs/admin/agenda_xcal.php +++ b/htdocs/admin/agenda_xcal.php @@ -161,13 +161,13 @@ $urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain // Show message $message=''; $urlvcal=''.$urlwithroot.'/public/agenda/agendaexport.php?format=vcal&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY):'KEYNOTDEFINED').''; -$message.=img_picto('', 'object_globe.png').' '.$langs->trans("WebCalUrlForVCalExport", 'vcal', $urlvcal); +$message.=img_picto('', 'globe').' '.$langs->trans("WebCalUrlForVCalExport", 'vcal', $urlvcal); $message.='
    '; $urlical=''.$urlwithroot.'/public/agenda/agendaexport.php?format=ical&type=event&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY):'KEYNOTDEFINED').''; -$message.=img_picto('', 'object_globe.png').' '.$langs->trans("WebCalUrlForVCalExport", 'ical/ics', $urlical); +$message.=img_picto('', 'globe').' '.$langs->trans("WebCalUrlForVCalExport", 'ical/ics', $urlical); $message.='
    '; $urlrss=''.$urlwithroot.'/public/agenda/agendaexport.php?format=rss&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY):'KEYNOTDEFINED').''; -$message.=img_picto('', 'object_globe.png').' '.$langs->trans("WebCalUrlForVCalExport", 'rss', $urlrss); +$message.=img_picto('', 'globe').' '.$langs->trans("WebCalUrlForVCalExport", 'rss', $urlrss); $message.='
    '; $message.='
    '; print $message; diff --git a/htdocs/admin/dav.php b/htdocs/admin/dav.php index cb3f7ab2072..778f79ff4ce 100644 --- a/htdocs/admin/dav.php +++ b/htdocs/admin/dav.php @@ -172,13 +172,13 @@ $urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain // Show message $message=''; $url=''.$urlwithroot.'/dav/fileserver.php'; -$message.=img_picto('', 'object_globe.png').' '.$langs->trans("WebDavServer", 'WebDAV', $url); +$message.=img_picto('', 'globe').' '.$langs->trans("WebDavServer", 'WebDAV', $url); $message.='
    '; if (! empty($conf->global->DAV_ALLOW_PUBLIC_DIR)) { $urlEntity = (! empty($conf->multicompany->enabled)?'?entity='.$conf->entity:''); $url=''.$urlwithroot.'/dav/fileserver.php/public/'.$urlEntity.''; - $message.=img_picto('', 'object_globe.png').' '.$langs->trans("WebDavServer", 'WebDAV public', $url); + $message.=img_picto('', 'globe').' '.$langs->trans("WebDavServer", 'WebDAV public', $url); $message.='
    '; } print $message; diff --git a/htdocs/admin/translation.php b/htdocs/admin/translation.php index 693ad3d1f47..ad7a2278991 100644 --- a/htdocs/admin/translation.php +++ b/htdocs/admin/translation.php @@ -553,7 +553,7 @@ if ($mode == 'searchkey') //$transifexurl = 'https://www.transifex.com/dolibarr-association/dolibarr/translate/#'.$langcode.'/'.$transifexlangfile.'?key='.$key; $transifexurl = 'https://www.transifex.com/dolibarr-association/dolibarr/translate/#'.$langcode.'/'.$transifexlangfile.'?q=key%3A'.$key; - print '   '.img_picto('FixOnTransifex', 'object_globe').''; + print '   '.img_picto('FixOnTransifex', 'globe').''; } } else diff --git a/htdocs/api/admin/explorer.php b/htdocs/api/admin/explorer.php index 278c2750cd4..0f541b93708 100644 --- a/htdocs/api/admin/explorer.php +++ b/htdocs/api/admin/explorer.php @@ -179,7 +179,7 @@ print '
    '; $message=''; $url=''.$urlwithroot.'/api/index.php/login?login='.urlencode($user->login).'&password=yourpassword[&reset=1]'; $message.=$langs->trans("UrlToGetKeyToUseAPIs").':
    '; -$message.=img_picto('', 'object_globe.png').' '.$url; +$message.=img_picto('', 'globe').' '.$url; print $message; print '
    '; print '
    '; @@ -208,7 +208,7 @@ foreach($listofapis['v1'] as $key => $val) //print $key.' - '.$val['classname'].' - '.$val['fullpath']." - ".DOL_MAIN_URL_ROOT.'/api/index.php/'.strtolower(preg_replace('/Api$/','',$val['classname']))."/xxx
    \n"; $url=$urlwithroot.'/api/index.php/'.$key; $url.='?api_key=token'; - print img_picto('', 'object_globe.png').' '.$method.' '.$url."
    \n"; + print img_picto('', 'globe').' '.$method.' '.$url."
    \n"; } } } diff --git a/htdocs/api/admin/index.php b/htdocs/api/admin/index.php index b005f257160..f8a354683e0 100644 --- a/htdocs/api/admin/index.php +++ b/htdocs/api/admin/index.php @@ -152,7 +152,7 @@ $urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain $message=''; $url=$urlwithroot.'/api/index.php/login?login=auserlogin&password=thepassword[&reset=1]'; $message.=$langs->trans("UrlToGetKeyToUseAPIs").':
    '; -$message.=img_picto('', 'object_globe.png').' '.$url; +$message.=img_picto('', 'globe').' '.$url; print $message; print '
    '; print '
    '; @@ -162,7 +162,7 @@ print ''.$langs->trans("ApiExporerIs").':
    '; if (dol_is_dir(DOL_DOCUMENT_ROOT.'/includes/restler/framework/Luracast/Restler/explorer')) { $url=DOL_MAIN_URL_ROOT.'/api/index.php/explorer'; - print img_picto('', 'object_globe.png').' '.$url."
    \n"; + print img_picto('', 'globe').' '.$url."
    \n"; } else { diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php index 8b6b10a4f5f..edf6bd5b050 100644 --- a/htdocs/core/class/html.formfile.class.php +++ b/htdocs/core/class/html.formfile.class.php @@ -1334,7 +1334,7 @@ class FormFile $fulllink=$urlwithroot.'/document.php'.($paramlink?'?'.$paramlink:''); - print img_picto($langs->trans("FileSharedViaALink"), 'object_globe.png').' '; + print img_picto($langs->trans("FileSharedViaALink"), 'globe').' '; print ''; } else @@ -1851,7 +1851,7 @@ class FormFile else { print '
    '; - print img_picto('', 'object_globe').' '; + print img_picto('', 'globe').' '; print ''; print dol_escape_htmltag($link->label); print ''; diff --git a/htdocs/core/lib/cron.lib.php b/htdocs/core/lib/cron.lib.php index 57af5cc5a59..4088b00c151 100644 --- a/htdocs/core/lib/cron.lib.php +++ b/htdocs/core/lib/cron.lib.php @@ -95,10 +95,10 @@ function dol_print_cron_urls() print '
    '; print $langs->trans("URLToLaunchCronJobs").':
    '; $url=$urlwithroot.'/public/cron/cron_run_jobs.php?'.(empty($conf->global->CRON_KEY)?'':'securitykey='.$conf->global->CRON_KEY.'&').'userlogin='.$user->login; - print img_picto('', 'object_globe.png').' '.$url."
    \n"; + print img_picto('', 'globe').' '.$url."
    \n"; print ' '.$langs->trans("OrToLaunchASpecificJob").'
    '; $url=$urlwithroot.'/public/cron/cron_run_jobs.php?'.(empty($conf->global->CRON_KEY)?'':'securitykey='.$conf->global->CRON_KEY.'&').'userlogin='.$user->login.'&id=cronjobid'; - print img_picto('', 'object_globe.png').' '.$url."
    \n"; + print img_picto('', 'globe').' '.$url."
    \n"; print '
    '; print '
    '; diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 943c5778dce..c9eef4db1c8 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -2134,7 +2134,7 @@ function dol_print_url($url, $target = '_blank', $max = 32, $withpicto = 0) if (! preg_match('/^http/i', $url)) $link.='http://'; $link.=dol_trunc($url, $max); $link.=''; - return '
    '.($withpicto?img_picto($langs->trans("Url"), 'object_globe.png').' ':'').$link.'
    '; + return '
    '.($withpicto?img_picto($langs->trans("Url"), 'globe').' ':'').$link.'
    '; } /** @@ -7695,7 +7695,7 @@ function showDirectDownloadLink($object) if ($url) { - $out.= img_picto('', 'object_globe.png').' '.$langs->trans("DirectDownloadLink").'
    '; + $out.= img_picto('', 'globe').' '.$langs->trans("DirectDownloadLink").'
    '; $out.= ''; $out.= ajax_autoselect("directdownloadlink", 0); } diff --git a/htdocs/core/lib/payments.lib.php b/htdocs/core/lib/payments.lib.php index e0943be416e..f653662754f 100644 --- a/htdocs/core/lib/payments.lib.php +++ b/htdocs/core/lib/payments.lib.php @@ -132,7 +132,7 @@ function showOnlinePaymentUrl($type, $ref) $servicename='Online'; - $out = img_picto('', 'object_globe.png').' '.$langs->trans("ToOfferALinkForOnlinePayment", $servicename).'
    '; + $out = img_picto('', 'globe').' '.$langs->trans("ToOfferALinkForOnlinePayment", $servicename).'
    '; $url = getOnlinePaymentUrl(0, $type, $ref); $out.= ''; $out.= ajax_autoselect("onlinepaymenturl", 0); diff --git a/htdocs/core/lib/signature.lib.php b/htdocs/core/lib/signature.lib.php index 3ed4fb764d0..c9527c54840 100644 --- a/htdocs/core/lib/signature.lib.php +++ b/htdocs/core/lib/signature.lib.php @@ -33,7 +33,7 @@ function showOnlineSignatureUrl($type, $ref) $servicename='Online'; - $out = img_picto('', 'object_globe.png').' '.$langs->trans("ToOfferALinkForOnlineSignature", $servicename).'
    '; + $out = img_picto('', 'globe').' '.$langs->trans("ToOfferALinkForOnlineSignature", $servicename).'
    '; $url = getOnlineSignatureUrl(0, $type, $ref); $out.= ''; $out.= ajax_autoselect("onlinesignatureurl", 0); diff --git a/htdocs/core/tpl/onlinepaymentlinks.tpl.php b/htdocs/core/tpl/onlinepaymentlinks.tpl.php index ef43fd585e2..c06772d8bca 100644 --- a/htdocs/core/tpl/onlinepaymentlinks.tpl.php +++ b/htdocs/core/tpl/onlinepaymentlinks.tpl.php @@ -28,12 +28,12 @@ print ''; // Url list print ''.$langs->trans("FollowingUrlAreAvailableToMakePayments").':

    '; -print img_picto('', 'object_globe.png').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnFreeAmount", $servicename).':
    '; +print img_picto('', 'globe').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnFreeAmount", $servicename).':
    '; print ''.getOnlinePaymentUrl(1, 'free')."

    \n"; if (! empty($conf->commande->enabled)) { print '
    '; - print img_picto('', 'object_globe.png').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnOrder", $servicename).':
    '; + print img_picto('', 'globe').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnOrder", $servicename).':
    '; print ''.getOnlinePaymentUrl(1, 'order')."
    \n"; if (! empty($conf->global->PAYMENT_SECURITY_TOKEN) && ! empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { @@ -56,7 +56,7 @@ if (! empty($conf->commande->enabled)) if (! empty($conf->facture->enabled)) { print '
    '; - print img_picto('', 'object_globe.png').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnInvoice", $servicename).':
    '; + print img_picto('', 'globe').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnInvoice", $servicename).':
    '; print ''.getOnlinePaymentUrl(1, 'invoice')."
    \n"; if (! empty($conf->global->PAYMENT_SECURITY_TOKEN) && ! empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { @@ -79,7 +79,7 @@ if (! empty($conf->facture->enabled)) if (! empty($conf->contrat->enabled)) { print '
    '; - print img_picto('', 'object_globe.png').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnContractLine", $servicename).':
    '; + print img_picto('', 'globe').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnContractLine", $servicename).':
    '; print ''.getOnlinePaymentUrl(1, 'contractline')."
    \n"; if (! empty($conf->global->PAYMENT_SECURITY_TOKEN) && ! empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { @@ -102,7 +102,7 @@ if (! empty($conf->contrat->enabled)) if (! empty($conf->adherent->enabled)) { print '
    '; - print img_picto('', 'object_globe.png').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnMemberSubscription", $servicename).':
    '; + print img_picto('', 'globe').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnMemberSubscription", $servicename).':
    '; print ''.getOnlinePaymentUrl(1, 'membersubscription')."
    \n"; if (! empty($conf->global->PAYMENT_SECURITY_TOKEN) && ! empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { @@ -125,7 +125,7 @@ if (! empty($conf->adherent->enabled)) if (! empty($conf->don->enabled)) { print '
    '; - print img_picto('', 'object_globe.png').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnDonation", $servicename).':
    '; + print img_picto('', 'globe').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnDonation", $servicename).':
    '; print ''.getOnlinePaymentUrl(1, 'donation')."
    \n"; if (! empty($conf->global->PAYMENT_SECURITY_TOKEN) && ! empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { diff --git a/htdocs/ecm/file_card.php b/htdocs/ecm/file_card.php index b796dcfd26f..38504088068 100644 --- a/htdocs/ecm/file_card.php +++ b/htdocs/ecm/file_card.php @@ -318,7 +318,7 @@ if ($forcedownload) $rellink.='&attachment=1'; if (! empty($object->entity)) $rellink.='&entity='.$object->entity; $rellink.='&file='.urlencode($filepath); $fulllink=$urlwithroot.$rellink; -print img_picto('', 'object_globe.png').' '; +print img_picto('', 'globe').' '; if ($action != 'edit') print ''; else print $fulllink; if ($action != 'edit') print ' '.$langs->trans("Download").''; // No target here. @@ -343,7 +343,7 @@ if (! empty($object->share)) //if (! empty($object->ref)) $fulllink.='&hashn='.$object->ref; // Hash of file path //elseif (! empty($object->label)) $fulllink.='&hashc='.$object->label; // Hash of file content - print img_picto('', 'object_globe.png').' '; + print img_picto('', 'globe').' '; if ($action != 'edit') print ''; else print $fulllink; if ($action != 'edit') print ' '.$langs->trans("Download").''; // No target here diff --git a/htdocs/opensurvey/card.php b/htdocs/opensurvey/card.php index ae40a13701d..1cdab974833 100644 --- a/htdocs/opensurvey/card.php +++ b/htdocs/opensurvey/card.php @@ -327,7 +327,7 @@ if ($object->fk_user_creat) { print '
    '.img_picto('', 'object_globe.png').' '.$langs->trans("UrlForSurvey", '').''; +print '
    '.img_picto('', 'globe').' '.$langs->trans("UrlForSurvey", '').''; // Define $urlwithroot $urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT, '/').'$/i', '', trim($dolibarr_main_url_root)); diff --git a/htdocs/opensurvey/results.php b/htdocs/opensurvey/results.php index d30f24694e9..ad31d99e645 100644 --- a/htdocs/opensurvey/results.php +++ b/htdocs/opensurvey/results.php @@ -474,7 +474,7 @@ if ($object->fk_user_creat) { print '
    '.img_picto('', 'object_globe.png').' '.$langs->trans("UrlForSurvey", '').''; +print '
    '.img_picto('', 'globe').' '.$langs->trans("UrlForSurvey", '').''; // Define $urlwithroot $urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT, '/').'$/i', '', trim($dolibarr_main_url_root)); diff --git a/htdocs/paypal/lib/paypal.lib.php b/htdocs/paypal/lib/paypal.lib.php index 4a528c449a2..22356994008 100644 --- a/htdocs/paypal/lib/paypal.lib.php +++ b/htdocs/paypal/lib/paypal.lib.php @@ -70,7 +70,7 @@ function showPaypalPaymentUrl($type, $ref) $langs->load("paybox"); $servicename='PayPal'; $out='

    '; - $out.=img_picto('', 'object_globe.png').' '.$langs->trans("ToOfferALinkForOnlinePayment", $servicename).'
    '; + $out.=img_picto('', 'globe').' '.$langs->trans("ToOfferALinkForOnlinePayment", $servicename).'
    '; $url=getPaypalPaymentUrl(0, $type, $ref); $out.=''; $out.=ajax_autoselect("paypalurl", 0); diff --git a/htdocs/societe/paymentmodes.php b/htdocs/societe/paymentmodes.php index 4fc28ed070b..5076d1e769d 100644 --- a/htdocs/societe/paymentmodes.php +++ b/htdocs/societe/paymentmodes.php @@ -857,7 +857,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' { $url='https://dashboard.stripe.com/'.$connect.'customers/'.$stripecu; } - print ' '.img_picto($langs->trans('ShowInStripe'), 'object_globe').''; + print ' '.img_picto($langs->trans('ShowInStripe'), 'globe').''; } print '
    '; if (empty($stripecu)) @@ -911,7 +911,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' { $url='https://dashboard.stripe.com/connect/accounts/'.$stripesupplieracc; } - print ' '.img_picto($langs->trans('ShowInStripe'), 'object_globe').''; + print ' '.img_picto($langs->trans('ShowInStripe'), 'globe').''; } print ''; if (empty($stripesupplieracc)) @@ -1064,7 +1064,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' { $url='https://dashboard.stripe.com/'.$connect.'search?query='.$companypaymentmodetemp->stripe_card_ref; } - print ' '.img_picto($langs->trans('ShowInStripe'), 'object_globe').''; + print ' '.img_picto($langs->trans('ShowInStripe'), 'globe').''; } print ''; @@ -1159,7 +1159,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' //$url='https://dashboard.stripe.com/'.$connect.'sources/'.$src->id; $url='https://dashboard.stripe.com/'.$connect.'search?query='.$src->id; } - print " ".img_picto($langs->trans('ShowInStripe'), 'object_globe').""; + print " ".img_picto($langs->trans('ShowInStripe'), 'globe').""; print ''; @@ -1334,7 +1334,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' else $currencybalance[$cpt->currency]->pending=$currencybalance[$cpt->currency]->available+$cpt->amount; } } - + if (is_array($currencybalance)) { foreach ($currencybalance as $cpt) @@ -1342,7 +1342,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print '
    '.$langs->trans("Currency".strtoupper($cpt->currency)).''.price($cpt->available, 0, '', 1, - 1, - 1, strtoupper($cpt->currency)).''.price($cpt->pending, 0, '', 1, - 1, - 1, strtoupper($cpt->currency)).''.price($cpt->available+$cpt->pending, 0, '', 1, - 1, - 1, strtoupper($cpt->currency)).'
    '; print '
    '; } diff --git a/htdocs/stripe/admin/stripe.php b/htdocs/stripe/admin/stripe.php index 7621f48eeae..05d8937f293 100644 --- a/htdocs/stripe/admin/stripe.php +++ b/htdocs/stripe/admin/stripe.php @@ -207,7 +207,7 @@ if (empty($conf->stripeconnect->enabled)) } print ''; print '   '.$langs->trans("Example").': whsec_xxxxxxxxxxxxxxxxxxxxxxxx'; - $out = img_picto('', 'object_globe.png').' '.$langs->trans("ToOfferALinkForTestWebhook").' '; + $out = img_picto('', 'globe').' '.$langs->trans("ToOfferALinkForTestWebhook").' '; $url = dol_buildpath('/public/stripe/ipn.php?test', 3); $out.= ''; $out.= ajax_autoselect("onlinetestwebhookurl", 0); @@ -280,7 +280,7 @@ if (empty($conf->stripeconnect->enabled)) } print ''; print '   '.$langs->trans("Example").': whsec_xxxxxxxxxxxxxxxxxxxxxxxx'; - $out = img_picto('', 'object_globe.png').' '.$langs->trans("ToOfferALinkForLiveWebhook").' '; + $out = img_picto('', 'globe').' '.$langs->trans("ToOfferALinkForLiveWebhook").' '; $url = dol_buildpath('/public/stripe/ipn.php', 3); $out.= ''; $out.= ajax_autoselect("onlinelivewebhookurl", 0); diff --git a/htdocs/stripe/charge.php b/htdocs/stripe/charge.php index 200f4c31703..1189b94923b 100644 --- a/htdocs/stripe/charge.php +++ b/htdocs/stripe/charge.php @@ -183,7 +183,7 @@ if (!$rowid) $url='https://dashboard.stripe.com/'.$connect.'payments/'.$charge->id; } print ""; - print "".img_picto($langs->trans('ShowInStripe'), 'object_globe')." ".$charge->id.""; + print "".img_picto($langs->trans('ShowInStripe'), 'globe')." ".$charge->id.""; print "\n"; // Stripe customer print ""; @@ -195,7 +195,7 @@ if (!$rowid) } if (! empty($charge->customer)) { - print ''.img_picto($langs->trans('ShowInStripe'), 'object_globe').' '.$charge->customer.''; + print ''.img_picto($langs->trans('ShowInStripe'), 'globe').' '.$charge->customer.''; } print "\n"; // Link diff --git a/htdocs/stripe/lib/stripe.lib.php b/htdocs/stripe/lib/stripe.lib.php index 95fb80ce9dc..8a4284f491e 100644 --- a/htdocs/stripe/lib/stripe.lib.php +++ b/htdocs/stripe/lib/stripe.lib.php @@ -70,7 +70,7 @@ function showStripePaymentUrl($type, $ref) $servicename='Stripe'; $out='

    '; - $out.=img_picto('', 'object_globe.png').' '.$langs->trans("ToOfferALinkForOnlinePayment", $servicename).'
    '; + $out.=img_picto('', 'globe').' '.$langs->trans("ToOfferALinkForOnlinePayment", $servicename).'
    '; $url=getStripePaymentUrl(0, $type, $ref); $out.='
    '; $out.=ajax_autoselect("stripeurl", 0); diff --git a/htdocs/stripe/payout.php b/htdocs/stripe/payout.php index e66318506ed..5870427757a 100644 --- a/htdocs/stripe/payout.php +++ b/htdocs/stripe/payout.php @@ -169,7 +169,7 @@ if (! $rowid) { $url='https://dashboard.stripe.com/'.$connect.'payouts/'.$payout->id; } - print "".img_picto($langs->trans('ShowInStripe'), 'object_globe')." " . $payout->id . "\n"; + print "".img_picto($langs->trans('ShowInStripe'), 'globe')." " . $payout->id . "\n"; // Stripe customer diff --git a/htdocs/stripe/transaction.php b/htdocs/stripe/transaction.php index 4ad04011f99..873adfc1cf7 100644 --- a/htdocs/stripe/transaction.php +++ b/htdocs/stripe/transaction.php @@ -178,7 +178,7 @@ if (! $rowid) { if ($txn->type == 'stripe_fee' || $txn->type == 'reserve_transaction') { print "".$txn->type.""; } else { - print "".img_picto($langs->trans('ShowInStripe'), 'object_globe')." " . $txn->source . "\n"; + print "".img_picto($langs->trans('ShowInStripe'), 'globe')." " . $txn->source . "\n"; } // Stripe customer diff --git a/htdocs/webservices/admin/index.php b/htdocs/webservices/admin/index.php index 93467c2c964..dbe3082b5de 100644 --- a/htdocs/webservices/admin/index.php +++ b/htdocs/webservices/admin/index.php @@ -120,7 +120,7 @@ foreach($webservices as $name => $right) { if (!empty($right) && !verifCond($right)) continue; $url=DOL_MAIN_URL_ROOT.'/webservices/server_'.$name.'.php?wsdl'; - print img_picto('', 'object_globe.png').' '.$url."
    \n"; + print img_picto('', 'globe').' '.$url."
    \n"; } print '
    '; @@ -131,7 +131,7 @@ foreach($webservices as $name => $right) { if (!empty($right) && !verifCond($right)) continue; $url=DOL_MAIN_URL_ROOT.'/webservices/server_'.$name.'.php'; - print img_picto('', 'object_globe.png').' '.$url."
    \n"; + print img_picto('', 'globe').' '.$url."
    \n"; } print '
    '; diff --git a/htdocs/website/index.php b/htdocs/website/index.php index 777201707ad..2769fb33cd0 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -2064,7 +2064,7 @@ if (! GETPOST('hide_websitemenu')) print ''; $linktotestonwebserver = ''; - $linktotestonwebserver.= $langs->trans("TestDeployOnWeb", $virtualurl).' '.img_picto('', 'object_globe'); + $linktotestonwebserver.= $langs->trans("TestDeployOnWeb", $virtualurl).' '.img_picto('', 'globe'); $linktotestonwebserver.= ''; $htmltext = ''; if (empty($object->fk_default_home)) From 027c8224b0f6003ff4a5e12a5293149145449888 Mon Sep 17 00:00:00 2001 From: ATM john Date: Thu, 3 Oct 2019 21:34:01 +0200 Subject: [PATCH 109/484] Fix dolGetStatus unused --- htdocs/core/lib/functions.lib.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 7b617471fca..dab617f5e19 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -8109,6 +8109,11 @@ function dolGetStatus($statusLabel = '', $statusLabelShort = '', $html = '', $st $return = ''; + $dolGetBadgeParams = array(); + if(!empty($params['badgeParams'])){ + $dolGetBadgeParams = $params['badgeParams']; + } + // image's filename are still in French $statusImg=array( 'status0' => 'statut0' @@ -8164,13 +8169,13 @@ function dolGetStatus($statusLabel = '', $statusLabelShort = '', $html = '', $st $statusLabelShort = !empty($statusLabelShort)?$statusLabelShort:$statusLabel; if ($displayMode == 3) { - $return = dolGetBadge($statusLabel, '', $statusType, 'dot', $url); + $return = dolGetBadge($statusLabel, '', $statusType, 'dot', $url, $dolGetBadgeParams); } elseif ($displayMode === 5) { - $return = dolGetBadge($statusLabelShort, $html, $statusType, '', $url); + $return = dolGetBadge($statusLabelShort, $html, $statusType, '', $url, $dolGetBadgeParams); } else { - $return = dolGetBadge($statusLabel, $html, $statusType, '', $url); + $return = dolGetBadge($statusLabel, $html, $statusType, '', $url, $dolGetBadgeParams); } } From 35c6008e1afbe5d7f79a61add30e4792dbedd9f2 Mon Sep 17 00:00:00 2001 From: ATM john Date: Thu, 3 Oct 2019 21:58:23 +0200 Subject: [PATCH 110/484] Fix supplier order libStatus to use new dolGetStatus --- .../class/fournisseur.commande.class.php | 77 +++++++------------ 1 file changed, 27 insertions(+), 50 deletions(-) diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index d8f760330b8..0b2d9022b58 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -625,18 +625,17 @@ class CommandeFournisseur extends CommonOrder /** * Return label of a status * - * @param int $statut Id statut + * @param int $status Id statut * @param int $mode 0=Long label, 1=Short label, 2=Picto + Short label, 3=Picto, 4=Picto + Long label, 5=Short label + Picto * @param int $billed 1=Billed * @return string Label of status */ - public function LibStatut($statut, $mode = 0, $billed = 0) + public function LibStatut($status, $mode = 0, $billed = 0) { // phpcs:enable global $conf, $langs; - if (empty($this->statuts) || empty($this->statutshort)) - { + if (empty($this->statuts) || empty($this->statutshort)){ $langs->load('orders'); $this->statuts[0] = 'StatusSupplierOrderDraft'; @@ -662,55 +661,33 @@ class CommandeFournisseur extends CommonOrder $this->statutshort[9] = 'StatusSupplierOrderRefusedShort'; } - $billedtext=''; - //if ($statut==5 && $this->billed == 1) $statut = 8; - if ($billed == 1) $billedtext=$langs->trans("Billed"); + $statustrans = array( + 0 => 'status0', + 1 => 'status1', + 2 => 'status3', + 3 => 'status3', + 4 => 'status3', + 5 => 'status6', + 6 => 'status5', + 7 => 'status5', - if ($mode == 0) - { - return $langs->trans($this->statuts[$statut]); + 9 => 'status5', + ); + + $statusClass = 'status0'; + if(!empty($statustrans[$status])){ + $statusClass = $statustrans[$status]; } - elseif ($mode == 1) - { - return $langs->trans($this->statutshort[$statut]); - } - elseif ($mode == 2) - { - return $langs->trans($this->statuts[$statut]); - } - elseif ($mode == 3) - { - if ($statut==0) return img_picto($langs->trans($this->statuts[$statut]), 'statut0'); - elseif ($statut==1) return img_picto($langs->trans($this->statuts[$statut]), 'statut1'); - elseif ($statut==2) return img_picto($langs->trans($this->statuts[$statut]), 'statut3'); - elseif ($statut==3) return img_picto($langs->trans($this->statuts[$statut]), 'statut3'); - elseif ($statut==4) return img_picto($langs->trans($this->statuts[$statut]), 'statut3'); - elseif ($statut==5) return img_picto($langs->trans($this->statuts[$statut]), 'statut6'); - elseif ($statut==6 || $statut==7) return img_picto($langs->trans($this->statuts[$statut]), 'statut5'); - elseif ($statut==9) return img_picto($langs->trans($this->statuts[$statut]), 'statut5'); - } - elseif ($mode == 4) - { - if ($statut==0) return img_picto($langs->trans($this->statuts[$statut]), 'statut0').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:''); - elseif ($statut==1) return img_picto($langs->trans($this->statuts[$statut]), 'statut1').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:''); - elseif ($statut==2) return img_picto($langs->trans($this->statuts[$statut]), 'statut3').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:''); - elseif ($statut==3) return img_picto($langs->trans($this->statuts[$statut]), 'statut3').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:''); - elseif ($statut==4) return img_picto($langs->trans($this->statuts[$statut]), 'statut3').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:''); - elseif ($statut==5) return img_picto($langs->trans($this->statuts[$statut]), 'statut6').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:''); - elseif ($statut==6 || $statut==7) return img_picto($langs->trans($this->statuts[$statut]), 'statut5').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:''); - elseif ($statut==9) return img_picto($langs->trans($this->statuts[$statut]), 'statut5').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:''); - } - elseif ($mode == 5) - { - if ($statut==0) return ''.$langs->trans($this->statutshort[$statut]).' '.img_picto($langs->trans($this->statuts[$statut]), 'statut0'); - elseif ($statut==1) return ''.$langs->trans($this->statutshort[$statut]).' '.img_picto($langs->trans($this->statuts[$statut]), 'statut1'); - elseif ($statut==2) return ''.$langs->trans($this->statutshort[$statut]).' '.img_picto($langs->trans($this->statuts[$statut]), 'statut3'); - elseif ($statut==3) return ''.$langs->trans($this->statutshort[$statut]).' '.img_picto($langs->trans($this->statuts[$statut]), 'statut3'); - elseif ($statut==4) return ''.$langs->trans($this->statutshort[$statut]).' '.img_picto($langs->trans($this->statuts[$statut]), 'statut3'); - elseif ($statut==5) return ''.$langs->trans($this->statutshort[$statut]).' '.img_picto($langs->trans($this->statuts[$statut]), 'statut6'); - elseif ($statut==6 || $statut==7) return ''.$langs->trans($this->statutshort[$statut]).' '.img_picto($langs->trans($this->statuts[$statut]), 'statut5'); - elseif ($statut==9) return ''.$langs->trans($this->statutshort[$statut]).' '.img_picto($langs->trans($this->statuts[$statut]), 'statut5'); + + $billedtext = ''; + if($mode == 4 && $billed){ + $billedtext = ' - '.$langs->trans("Billed"); } + + $statusLong = $langs->trans($this->statuts_long[$status]).$billedtext; + $statusShort = $langs->trans($this->statutshort[$status]); + + return dolGetStatus($statusLong, $statusShort, '', $statusClass, $mode); } From 5932f0e6b18e32bad9612c712c67178a8d1959ca Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Thu, 3 Oct 2019 20:03:23 +0000 Subject: [PATCH 111/484] Fixing style errors. --- htdocs/projet/class/project.class.php | 1 - 1 file changed, 1 deletion(-) diff --git a/htdocs/projet/class/project.class.php b/htdocs/projet/class/project.class.php index 2382f93c17a..4f38fdbe49c 100644 --- a/htdocs/projet/class/project.class.php +++ b/htdocs/projet/class/project.class.php @@ -962,7 +962,6 @@ class Project extends CommonObject } return dolGetStatus($this->statuts_long[$status], $this->statuts_short[$status], '', $statusClass, $mode); - } /** From 13e456d992e278c743d419cad7f7d4ccf747d02b Mon Sep 17 00:00:00 2001 From: ATM john Date: Thu, 3 Oct 2019 22:05:48 +0200 Subject: [PATCH 112/484] Fix Project LibStatus langs --- htdocs/projet/class/project.class.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/projet/class/project.class.php b/htdocs/projet/class/project.class.php index 2382f93c17a..d24cbb144fb 100644 --- a/htdocs/projet/class/project.class.php +++ b/htdocs/projet/class/project.class.php @@ -949,6 +949,7 @@ class Project extends CommonObject public function LibStatut($status, $mode = 0) { // phpcs:enable + global $langs; $statustrans = array( 0 => 'status0', @@ -961,7 +962,7 @@ class Project extends CommonObject $statusClass = $statustrans[$status]; } - return dolGetStatus($this->statuts_long[$status], $this->statuts_short[$status], '', $statusClass, $mode); + return dolGetStatus($langs->trans($this->statuts_long[$status]), $langs->trans($this->statuts_short[$status]), '', $statusClass, $mode); } From cb34c7e29970c43355ae7e7c90d37858b49344f7 Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Thu, 3 Oct 2019 20:08:42 +0000 Subject: [PATCH 113/484] Fixing style errors. --- htdocs/projet/class/project.class.php | 1 - 1 file changed, 1 deletion(-) diff --git a/htdocs/projet/class/project.class.php b/htdocs/projet/class/project.class.php index d24cbb144fb..e14cd53c3c3 100644 --- a/htdocs/projet/class/project.class.php +++ b/htdocs/projet/class/project.class.php @@ -963,7 +963,6 @@ class Project extends CommonObject } return dolGetStatus($langs->trans($this->statuts_long[$status]), $langs->trans($this->statuts_short[$status]), '', $statusClass, $mode); - } /** From 55410a55ef0f83f294783275fb6d12350746b592 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Fri, 4 Oct 2019 00:45:57 +0200 Subject: [PATCH 114/484] Update list.php --- htdocs/expensereport/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php index 0014cb7999c..699276ed683 100644 --- a/htdocs/expensereport/list.php +++ b/htdocs/expensereport/list.php @@ -272,7 +272,7 @@ $sql = "SELECT d.rowid, d.ref, d.fk_user_author, d.total_ht, d.total_tva, d.tota $sql.= " d.date_debut, d.date_fin, d.date_create, d.tms as date_modif, d.date_valid, d.date_approve, d.note_private, d.note_public,"; $sql.= " u.rowid as id_user, u.firstname, u.lastname, u.login, u.email, u.statut, u.photo"; // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +foreach ($extralabels as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect',$parameters); // Note that $action and $object may have been modified by hook From 6cd3d278852b3b441779e9656b93a070eba090e1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 4 Oct 2019 09:54:52 +0200 Subject: [PATCH 115/484] Fix comparison --- htdocs/compta/facture/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index 257a9cbfb05..0072d9ff7a6 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -4622,7 +4622,7 @@ elseif ($id > 0 || ! empty($ref)) if ($ventilExportCompta == 0) { - if (! empty($conf->global->INVOICE_CAN_ALWAYS_BE_EDITED) || ($resteapayer == $object->total_ttc && empty($object->paye))) + if (! empty($conf->global->INVOICE_CAN_ALWAYS_BE_EDITED) || ($resteapayer == price2num($object->total_ttc, 'MT', 1) && empty($object->paye))) { if (! $objectidnext && $object->is_last_in_cycle()) { From 0e23fbc6dfd8be42a2cd417a40320b2d6ba42da3 Mon Sep 17 00:00:00 2001 From: VESSILLER Date: Fri, 4 Oct 2019 10:04:02 +0200 Subject: [PATCH 116/484] NEW add country code in import product model --- htdocs/core/modules/import/import_csv.modules.php | 8 ++++---- htdocs/core/modules/import/import_xlsx.modules.php | 8 ++++---- htdocs/core/modules/modProduct.class.php | 11 ++++++++++- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/htdocs/core/modules/import/import_csv.modules.php b/htdocs/core/modules/import/import_csv.modules.php index bde888157dd..1e4284dec7f 100644 --- a/htdocs/core/modules/import/import_csv.modules.php +++ b/htdocs/core/modules/import/import_csv.modules.php @@ -509,12 +509,12 @@ class ImportCsv extends ModeleImports } $classinstance=new $class($this->db); // Try the fetch from code or ref - call_user_func_array(array($classinstance, $method), array('', $units, $newval)); - $this->cacheconvert[$file.'_'.$class.'_'.$method.'_'.$units][$newval]=$classinstance->code; + call_user_func_array(array($classinstance, $method), array('', '', $newval, $units)); + $this->cacheconvert[$file.'_'.$class.'_'.$method.'_'.$units][$newval]=$classinstance->id; //print 'We have made a '.$class.'->'.$method.' to get id from code '.$newval.'. '; - if ($classinstance->code != '') // id may be 0, it is a found value + if ($classinstance->id != '') // id may be 0, it is a found value { - $newval=$classinstance->code; + $newval=$classinstance->id; } else { diff --git a/htdocs/core/modules/import/import_xlsx.modules.php b/htdocs/core/modules/import/import_xlsx.modules.php index a67a0c90c4b..b83199e2ac6 100644 --- a/htdocs/core/modules/import/import_xlsx.modules.php +++ b/htdocs/core/modules/import/import_xlsx.modules.php @@ -536,12 +536,12 @@ class ImportXlsx extends ModeleImports } $classinstance=new $class($this->db); // Try the fetch from code or ref - call_user_func_array(array($classinstance, $method), array('', $units, '', $newval)); - $this->cacheconvert[$file.'_'.$class.'_'.$method.'_'.$units][$newval]=$classinstance->code; + call_user_func_array(array($classinstance, $method), array('', '', $newval, $units)); + $this->cacheconvert[$file.'_'.$class.'_'.$method.'_'.$units][$newval]=$classinstance->id; //print 'We have made a '.$class.'->'.$method.' to get id from code '.$newval.'. '; - if ($classinstance->code != '') // id may be 0, it is a found value + if ($classinstance->id != '') // id may be 0, it is a found value { - $newval=$classinstance->code; + $newval=$classinstance->id; } else { diff --git a/htdocs/core/modules/modProduct.class.php b/htdocs/core/modules/modProduct.class.php index 019f5251e60..03c268d6968 100644 --- a/htdocs/core/modules/modProduct.class.php +++ b/htdocs/core/modules/modProduct.class.php @@ -354,6 +354,7 @@ class modProduct extends DolibarrModules 'p.note_public' => "PublicNote",//public note 'p.note' => "PrivateNote",//private note 'p.customcode' => 'CustomCode', + 'p.fk_country' => 'CountryCode', 'p.price' => "SellingPriceHT",//without 'p.price_min' => "MinPrice", 'p.price_ttc' => "SellingPriceTTC",//with tax @@ -440,7 +441,14 @@ class modProduct extends DolibarrModules 'method' => 'fetch', 'units' => 'volume', 'dict' => 'DictionaryMeasuringUnits' - ) + ), + 'p.fk_country' => array( + 'rule' => 'fetchidfromcodeid', + 'classfile' => '/core/class/ccountry.class.php', + 'class' => 'Ccountry', + 'method' => 'fetch', + 'dict' => 'DictionaryCountry' + ) ); if (! empty($conf->fournisseur->enabled) || !empty($conf->margin->enabled)) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r], array('p.cost_price'=>'CostPrice')); @@ -485,6 +493,7 @@ class modProduct extends DolibarrModules 'p.note_public' => "a public note (free text)", 'p.note' => "a private note (free text)", 'p.customcode' => 'customs code', + 'p.fk_country' => 'FR', 'p.price' => "price ex-vat eg. 100", 'p.price_min' => "price ex-vat eg. 100", 'p.price_ttc' => "price inc-vat eg. 110", From 0b9d27423d073ee61608e31220682cc8f0e2fd92 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 4 Oct 2019 10:31:57 +0200 Subject: [PATCH 117/484] FIX Can't modify vendor invoice if transfered into accountancy --- htdocs/compta/facture/card.php | 6 +- htdocs/compta/paiement.php | 4 +- htdocs/fourn/facture/card.php | 104 ++++++++++++++++++--------------- 3 files changed, 63 insertions(+), 51 deletions(-) diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index 0072d9ff7a6..1b6b4a50e01 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -4617,7 +4617,7 @@ elseif ($id > 0 || ! empty($ref)) // Editer une facture deja validee, sans paiement effectue et pas exporte en compta if ($object->statut == Facture::STATUS_VALIDATED) { - // On verifie si les lignes de factures ont ete exportees en compta et/ou ventilees + // We check if lines of invoice are not already transfered into accountancy $ventilExportCompta = $object->getVentilExportCompta(); if ($ventilExportCompta == 0) @@ -4652,7 +4652,7 @@ elseif ($id > 0 || ! empty($ref)) if ((($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT) || ($object->type == Facture::TYPE_CREDIT_NOTE && empty($discount->id)) || ($object->type == Facture::TYPE_DEPOSIT && empty($discount->id))) - && ($object->statut == 2 || $object->statut == 3 || ($object->statut == 1 && $object->paye == 1)) // Condition ($object->statut == 1 && $object->paye == 1) should not happened but can be found due to corrupted data + && ($object->statut == Facture::STATUS_CLOSED || $object->statut == Facture::STATUS_ABANDONED || ($object->statut == 1 && $object->paye == 1)) // Condition ($object->statut == 1 && $object->paye == 1) should not happened but can be found due to corrupted data && ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreate) || $usercanreopen)) // A paid invoice (partially or completely) { if ($object->close_code != 'replaced' || (! $objectidnext)) // Not replaced by another invoice or replaced but the replacement invoice has been deleted @@ -4834,7 +4834,7 @@ elseif ($id > 0 || ! empty($ref)) } } - // remove situation from cycle + // Remove situation from cycle if ($object->statut > Facture::STATUS_DRAFT && $object->type == Facture::TYPE_SITUATION && $usercancreate diff --git a/htdocs/compta/paiement.php b/htdocs/compta/paiement.php index e8fceebb03c..39f19b6e34c 100644 --- a/htdocs/compta/paiement.php +++ b/htdocs/compta/paiement.php @@ -639,7 +639,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie print ''; - print ''; + print ''; print $invoice->getNomUrl(1, ''); if ($objp->socid != $facture->thirdparty->id) print ' - '.$soc->getNomUrl(1).' '; print "\n"; @@ -650,7 +650,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie // Due date if ($objp->dlr > 0 ) { - print ''; + print ''; print dol_print_date($db->jdate($objp->dlr), 'day'); if ($invoice->hasDelay()) diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index c25b0afa15b..67629c7d20c 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -1416,58 +1416,61 @@ if (empty($reshook)) $resteapayer = $object->total_ttc - $totalpaye; // On verifie si les lignes de factures ont ete exportees en compta et/ou ventilees - //$ventilExportCompta = $object->getVentilExportCompta(); + $ventilExportCompta = $object->getVentilExportCompta(); - // On verifie si aucun paiement n'a ete effectue - if ($resteapayer == $object->total_ttc && $object->paye == 0 && $ventilExportCompta == 0) - { - $idwarehouse = GETPOST('idwarehouse'); + if (! $ventilExportCompta) + { + // On verifie si aucun paiement n'a ete effectue + if ($resteapayer == price2num($object->total_ttc, 'MT', 1) && $object->statut == FactureFournisseur::STATUS_VALIDATED) + { + $idwarehouse = GETPOST('idwarehouse'); - $object->fetch_thirdparty(); + $object->fetch_thirdparty(); - $qualified_for_stock_change=0; - if (empty($conf->global->STOCK_SUPPORTS_SERVICES)) - { - $qualified_for_stock_change=$object->hasProductsOrServices(2); - } - else - { - $qualified_for_stock_change=$object->hasProductsOrServices(1); - } + $qualified_for_stock_change=0; + if (empty($conf->global->STOCK_SUPPORTS_SERVICES)) + { + $qualified_for_stock_change=$object->hasProductsOrServices(2); + } + else + { + $qualified_for_stock_change=$object->hasProductsOrServices(1); + } - // Check parameters - if (! empty($conf->stock->enabled) && ! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL) && $qualified_for_stock_change) - { - $langs->load("stocks"); - if (! $idwarehouse || $idwarehouse == -1) - { - $error++; - setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Warehouse")), null, 'errors'); - $action=''; - } - } + // Check parameters + if (! empty($conf->stock->enabled) && ! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL) && $qualified_for_stock_change) + { + $langs->load("stocks"); + if (! $idwarehouse || $idwarehouse == -1) + { + $error++; + setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Warehouse")), null, 'errors'); + $action=''; + } + } - $object->setDraft($user, $idwarehouse); + $object->setDraft($user, $idwarehouse); - // Define output language - if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) - { - $outputlangs = $langs; - $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) $newlang = GETPOST('lang_id', 'aZ09'); - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; - if (! empty($newlang)) { - $outputlangs = new Translate("", $conf); - $outputlangs->setDefaultLang($newlang); + // Define output language + if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + { + $outputlangs = $langs; + $newlang = ''; + if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) $newlang = GETPOST('lang_id', 'aZ09'); + if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; + if (! empty($newlang)) { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + } + $model=$object->modelpdf; + $ret = $object->fetch($id); // Reload to get new records + + $result=$object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); + if ($result < 0) dol_print_error($db, $result); } - $model=$object->modelpdf; - $ret = $object->fetch($id); // Reload to get new records - $result=$object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); - if ($result < 0) dol_print_error($db, $result); + $action=''; } - - $action=''; } } @@ -3032,11 +3035,20 @@ else // modified by hook if (empty($reshook)) { - // Modify a validated invoice with no payments if ($object->statut == FactureFournisseur::STATUS_VALIDATED && $action != 'confirm_edit' && $object->getSommePaiement() == 0 && $user->rights->fournisseur->facture->creer) { - print ''; + // We check if lines of invoice are not already transfered into accountancy + $ventilExportCompta = $object->getVentilExportCompta(); // Should be 0 since the sum of payments are zero. But we keep the protection. + + if ($ventilExportCompta == 0) + { + print ''; + } + else + { + print '
    ' . $langs->trans('Modify') . '
    '; + } } $discount = new DiscountAbsolute($db); @@ -3045,7 +3057,7 @@ else // Reopen a standard paid invoice if (($object->type == FactureFournisseur::TYPE_STANDARD || $object->type == FactureFournisseur::TYPE_REPLACEMENT || ($object->type == FactureFournisseur::TYPE_CREDIT_NOTE && empty($discount->id))) - && ($object->statut == 2 || $object->statut == 3)) // A paid invoice (partially or completely) + && ($object->statut == FactureFournisseur::STATUS_CLOSED || $object->statut == FactureFournisseur::STATUS_ABANDONED)) // A paid invoice (partially or completely) { if (! $facidnext && $object->close_code != 'replaced' && $user->rights->fournisseur->facture->creer) // Not replaced by another invoice { From 68c28ab3c713103713ed78870c15d17305e5cf3d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 4 Oct 2019 12:31:25 +0200 Subject: [PATCH 118/484] FIX Look and feel v10 --- htdocs/societe/project.php | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/htdocs/societe/project.php b/htdocs/societe/project.php index 0a345fc6369..dd6c4b46cdf 100644 --- a/htdocs/societe/project.php +++ b/htdocs/societe/project.php @@ -119,25 +119,7 @@ if ($socid) dol_fiche_end(); - /* - * Barre d'action - */ - - /*print '
    '; - - if (! empty($conf->projet->enabled)) - { - if (! empty($conf->projet->enabled) && ! empty($user->rights->projet->creer)) - {*/ - $addbutton = ''.$langs->trans("AddProject").''; - /* } - else - { - print ''.$langs->trans("AddProject").''; - } - } - - print '
    '; */ + $addbutton = ''.$langs->trans("AddProject").''; print '
    '; From c3fa770871ac5d1c5efafe749bb89385051421c8 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 4 Oct 2019 13:06:24 +0200 Subject: [PATCH 119/484] FIX Filter "Open all" of ticket was ko. --- htdocs/ticket/list.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/ticket/list.php b/htdocs/ticket/list.php index cc6d7a265e9..2bfc1719360 100644 --- a/htdocs/ticket/list.php +++ b/htdocs/ticket/list.php @@ -229,8 +229,8 @@ foreach($search as $key => $val) if ($key == 'fk_statut') { $tmpstatus=''; - if ($search['fk_statut'] == 'openall' || in_array('openall', $search['fk_statut'])) $tmpstatus.=($tmpstatus?',':'')."'0', '1', '3', '4', '5', '6'"; - if ($search['fk_statut'] == 'closeall' || in_array('closeall', $search['fk_statut'])) $tmpstatus.=($tmpstatus?',':'')."'8', '9'"; + if ($search['fk_statut'] == 'openall' || in_array('openall', $search['fk_statut'])) $tmpstatus.=($tmpstatus?',':'')."'".Ticket::STATUS_NOT_READ."', '".Ticket::STATUS_READ."', '".Ticket::STATUS_ASSIGNED."', '".Ticket::STATUS_IN_PROGRESS."', '".Ticket::STATUS_NEED_MORE_INFO."', '".Ticket::STATUS_WAITING."'"; + if ($search['fk_statut'] == 'closeall' || in_array('closeall', $search['fk_statut'])) $tmpstatus.=($tmpstatus?',':'')."'".Ticket::STATUS_CLOSED."', '".Ticket::STATUS_CANCELED."'"; if ($tmpstatus) $sql.=" AND fk_statut IN (".$tmpstatus.")"; elseif (is_array($search[$key]) && count($search[$key])) $sql.=natural_search($key, join(',', $search[$key]), 2); continue; From 503973cec97c608de0b039008c26409f56d0ff11 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 4 Oct 2019 14:04:31 +0200 Subject: [PATCH 120/484] FIX Edit of ticket module parameters erased others --- htdocs/admin/ticket.php | 20 ++--- htdocs/admin/ticket_public.php | 143 ++++++++++-------------------- htdocs/core/lib/functions.lib.php | 3 + 3 files changed, 60 insertions(+), 106 deletions(-) diff --git a/htdocs/admin/ticket.php b/htdocs/admin/ticket.php index 8cb1e85afe4..31e2d8f219a 100644 --- a/htdocs/admin/ticket.php +++ b/htdocs/admin/ticket.php @@ -42,6 +42,12 @@ $label = GETPOST('label', 'alpha'); $scandir = GETPOST('scandir', 'alpha'); $type = 'ticket'; +$error = 0; + +/* + * Actions + */ + if ($action == 'updateMask') { $maskconstticket = GETPOST('maskconstticket', 'alpha'); $maskticket = GETPOST('maskticket', 'alpha'); @@ -91,7 +97,7 @@ if ($action == 'updateMask') { $error++; } - $mail_intro = GETPOST('TICKET_MESSAGE_MAIL_INTRO', 'alpha'); + $mail_intro = GETPOST('TICKET_MESSAGE_MAIL_INTRO', 'restricthtml'); if (!empty($mail_intro)) { $res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_INTRO', $mail_intro, 'chaine', 0, '', $conf->entity); } else { @@ -101,7 +107,7 @@ if ($action == 'updateMask') { $error++; } - $mail_signature = GETPOST('TICKET_MESSAGE_MAIL_SIGNATURE', 'alpha'); + $mail_signature = GETPOST('TICKET_MESSAGE_MAIL_SIGNATURE', 'restricthtml'); if (!empty($mail_signature)) { $res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_SIGNATURE', $mail_signature, 'chaine', 0, '', $conf->entity); } else { @@ -110,16 +116,6 @@ if ($action == 'updateMask') { if (!$res > 0) { $error++; } - - $text_help = GETPOST('TICKET_PUBLIC_TEXT_HELP_MESSAGE', 'alpha'); - if (!empty($text_help)) { - $res = dolibarr_set_const($db, 'TICKET_PUBLIC_TEXT_HELP_MESSAGE', $text_help, 'chaine', 0, '', $conf->entity); - } else { - $res = dolibarr_set_const($db, 'TICKET_PUBLIC_TEXT_HELP_MESSAGE', $langs->trans('TicketPublicPleaseBeAccuratelyDescribe'), 'chaine', 0, '', $conf->entity); - } - if (!$res > 0) { - $error++; - } } if ($action == 'setvarother') { diff --git a/htdocs/admin/ticket_public.php b/htdocs/admin/ticket_public.php index 4e6b6d75e85..ec36d3f873d 100644 --- a/htdocs/admin/ticket_public.php +++ b/htdocs/admin/ticket_public.php @@ -42,6 +42,12 @@ $label = GETPOST('label', 'alpha'); $scandir = GETPOST('scandir', 'alpha'); $type = 'ticket'; +$error = 0; + +/* + * Actions + */ + if ($action == 'setTICKET_ENABLE_PUBLIC_INTERFACE') { if (GETPOST('value')) dolibarr_set_const($db, 'TICKET_ENABLE_PUBLIC_INTERFACE', 1, 'chaine', 0, '', $conf->entity); @@ -51,95 +57,54 @@ if ($action == 'setTICKET_ENABLE_PUBLIC_INTERFACE') if ($action == 'setvar') { include_once DOL_DOCUMENT_ROOT . "/core/lib/files.lib.php"; - $notification_email = GETPOST('TICKET_NOTIFICATION_EMAIL_FROM', 'alpha'); - if (!empty($notification_email)) { - $res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_EMAIL_FROM', $notification_email, 'chaine', 0, '', $conf->entity); + $topic_interface = GETPOST('TICKET_PUBLIC_INTERFACE_TOPIC', 'nohtml'); + if (!empty($topic_interface)) { + $res = dolibarr_set_const($db, 'TICKET_PUBLIC_INTERFACE_TOPIC', $topic_interface, 'chaine', 0, '', $conf->entity); } else { - $res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_EMAIL_FROM', '', 'chaine', 0, '', $conf->entity); + $res = dolibarr_set_const($db, 'TICKET_PUBLIC_INTERFACE_TOPIC', '', 'chaine', 0, '', $conf->entity); } if (!$res > 0) { - $error++; + $error++; } - // altairis : differentiate notification email FROM and TO - $notification_email_to = GETPOST('TICKET_NOTIFICATION_EMAIL_TO', 'alpha'); - if (!empty($notification_email_to)) { - $res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_EMAIL_TO', $notification_email_to, 'chaine', 0, '', $conf->entity); + $text_home = GETPOST('TICKET_PUBLIC_TEXT_HOME', 'restricthtml'); + if (!empty($text_home)) { + $res = dolibarr_set_const($db, 'TICKET_PUBLIC_TEXT_HOME', $text_home, 'chaine', 0, '', $conf->entity); } else { - $res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_EMAIL_TO', '', 'chaine', 0, '', $conf->entity); + $res = dolibarr_set_const($db, 'TICKET_PUBLIC_TEXT_HOME', $langs->trans('TicketPublicInterfaceTextHome'), 'chaine', 0, '', $conf->entity); } if (!$res > 0) { - $error++; + $error++; } - $mail_new_ticket = GETPOST('TICKET_MESSAGE_MAIL_NEW', 'alpha'); + $text_help = GETPOST('TICKET_PUBLIC_TEXT_HELP_MESSAGE', 'restricthtml'); + if (!empty($text_help)) { + $res = dolibarr_set_const($db, 'TICKET_PUBLIC_TEXT_HELP_MESSAGE', $text_help, 'chaine', 0, '', $conf->entity); + } else { + $res = dolibarr_set_const($db, 'TICKET_PUBLIC_TEXT_HELP_MESSAGE', $langs->trans('TicketPublicPleaseBeAccuratelyDescribe'), 'chaine', 0, '', $conf->entity); + } + if (!$res > 0) { + $error++; + } + + $mail_new_ticket = GETPOST('TICKET_MESSAGE_MAIL_NEW', 'restricthtml'); if (!empty($mail_new_ticket)) { - $res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_NEW', $mail_new_ticket, 'chaine', 0, '', $conf->entity); + $res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_NEW', $mail_new_ticket, 'chaine', 0, '', $conf->entity); } else { - $res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_NEW', $langs->trans('TicketMessageMailNewText'), 'chaine', 0, '', $conf->entity); + $res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_NEW', $langs->trans('TicketMessageMailNewText'), 'chaine', 0, '', $conf->entity); } if (!$res > 0) { - $error++; - } - - $mail_intro = GETPOST('TICKET_MESSAGE_MAIL_INTRO', 'alpha'); - if (!empty($mail_intro)) { - $res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_INTRO', $mail_intro, 'chaine', 0, '', $conf->entity); - } else { - $res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_INTRO', $langs->trans('TicketMessageMailIntroText'), 'chaine', 0, '', $conf->entity); - } - if (!$res > 0) { - $error++; - } - - $mail_signature = GETPOST('TICKET_MESSAGE_MAIL_SIGNATURE', 'alpha'); - if (!empty($mail_signature)) { - $res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_SIGNATURE', $mail_signature, 'chaine', 0, '', $conf->entity); - } else { - $res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_SIGNATURE', $langs->trans('TicketMessageMailSignatureText'), 'chaine', 0, '', $conf->entity); - } - if (!$res > 0) { - $error++; + $error++; } $url_interface = GETPOST('TICKET_URL_PUBLIC_INTERFACE', 'alpha'); if (!empty($url_interface)) { - $res = dolibarr_set_const($db, 'TICKET_URL_PUBLIC_INTERFACE', $url_interface, 'chaine', 0, '', $conf->entity); + $res = dolibarr_set_const($db, 'TICKET_URL_PUBLIC_INTERFACE', $url_interface, 'chaine', 0, '', $conf->entity); } else { - $res = dolibarr_set_const($db, 'TICKET_URL_PUBLIC_INTERFACE', '', 'chaine', 0, '', $conf->entity); + $res = dolibarr_set_const($db, 'TICKET_URL_PUBLIC_INTERFACE', '', 'chaine', 0, '', $conf->entity); } if (!$res > 0) { - $error++; - } - - $topic_interface = GETPOST('TICKET_PUBLIC_INTERFACE_TOPIC', 'alpha'); - if (!empty($topic_interface)) { - $res = dolibarr_set_const($db, 'TICKET_PUBLIC_INTERFACE_TOPIC', $topic_interface, 'chaine', 0, '', $conf->entity); - } else { - $res = dolibarr_set_const($db, 'TICKET_PUBLIC_INTERFACE_TOPIC', '', 'chaine', 0, '', $conf->entity); - } - if (!$res > 0) { - $error++; - } - - $text_home = GETPOST('TICKET_PUBLIC_TEXT_HOME', 'alpha'); - if (!empty($text_home)) { - $res = dolibarr_set_const($db, 'TICKET_PUBLIC_TEXT_HOME', $text_home, 'chaine', 0, '', $conf->entity); - } else { - $res = dolibarr_set_const($db, 'TICKET_PUBLIC_TEXT_HOME', $langs->trans('TicketPublicInterfaceTextHome'), 'chaine', 0, '', $conf->entity); - } - if (!$res > 0) { - $error++; - } - - $text_help = GETPOST('TICKET_PUBLIC_TEXT_HELP_MESSAGE', 'alpha'); - if (!empty($text_help)) { - $res = dolibarr_set_const($db, 'TICKET_PUBLIC_TEXT_HELP_MESSAGE', $text_help, 'chaine', 0, '', $conf->entity); - } else { - $res = dolibarr_set_const($db, 'TICKET_PUBLIC_TEXT_HELP_MESSAGE', $langs->trans('TicketPublicPleaseBeAccuratelyDescribe'), 'chaine', 0, '', $conf->entity); - } - if (!$res > 0) { - $error++; + $error++; } } @@ -162,14 +127,11 @@ if ($action == 'setvarother') { $error++; } - if ($conf->global->MAIN_FEATURES_LEVEL >= 2) - { - $param_show_module_logo = GETPOST('TICKET_SHOW_MODULE_LOGO', 'alpha'); - $res = dolibarr_set_const($db, 'TICKET_SHOW_MODULE_LOGO', $param_show_module_logo, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { - $error++; - } - } + $param_show_module_logo = GETPOST('TICKET_SHOW_COMPANY_LOGO', 'alpha'); + $res = dolibarr_set_const($db, 'TICKET_SHOW_COMPANY_LOGO', $param_show_module_logo, 'chaine', 0, '', $conf->entity); + if (!$res > 0) { + $error++; + } if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { @@ -179,12 +141,6 @@ if ($action == 'setvarother') { $error++; } } - - $param_limit_view = GETPOST('TICKET_LIMIT_VIEW_ASSIGNED_ONLY', 'alpha'); - $res = dolibarr_set_const($db, 'TICKET_LIMIT_VIEW_ASSIGNED_ONLY', $param_limit_view, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { - $error++; - } } @@ -238,8 +194,7 @@ print '

    '; if (! empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) { - - if (!$conf->use_javascript_ajax) { + if (empty($conf->use_javascript_ajax)) { print ''; print ''; print ''; @@ -349,16 +304,6 @@ if (! empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) print "\n"; } - // Url public interface - $url_interface = $conf->global->TICKET_URL_PUBLIC_INTERFACE; - print '' . $langs->trans("TicketUrlPublicInterfaceLabelAdmin") . ''; - print ''; - print ''; - print ''; - print ''; - print $form->textwithpicto('', $langs->trans("TicketUrlPublicInterfaceHelpAdmin"), 1, 'help'); - print ''; - // Interface topic $url_interface = $conf->global->TICKET_PUBLIC_INTERFACE_TOPIC; print '' . $langs->trans("TicketPublicInterfaceTopicLabelAdmin") . ''; @@ -420,6 +365,16 @@ if (! empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) print $form->textwithpicto('', $langs->trans("TicketNewEmailBodyHelp"), 1, 'help'); print ''; + // Url public interface + $url_interface = $conf->global->TICKET_URL_PUBLIC_INTERFACE; + print '' . $langs->trans("TicketUrlPublicInterfaceLabelAdmin") . ''; + print ''; + print ''; + print ''; + print ''; + print $form->textwithpicto('', $langs->trans("TicketUrlPublicInterfaceHelpAdmin"), 1, 'help'); + print ''; + print ''; print '
    '; diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 27a197a88fb..22c3bdb6785 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -540,6 +540,9 @@ function GETPOST($paramname, $check = 'none', $method = 0, $filter = null, $opti $out=dol_string_nohtmltag($out); } break; + case 'restricthtml': // Recommended for most html textarea + $out=dol_string_onlythesehtmltags($out, 0); + break; case 'custom': if (empty($filter)) return 'BadFourthParameterForGETPOST'; $out=filter_var($out, $filter, $options); From ef15bbee4ab74b68c79a5d6976cae7b9f929c24b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 4 Oct 2019 16:53:58 +0200 Subject: [PATCH 121/484] Increase delay of hide of popup so we have a chance to click on content --- htdocs/core/js/lib_foot.js.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/js/lib_foot.js.php b/htdocs/core/js/lib_foot.js.php index b0cd8f33258..a5bc992a1ca 100644 --- a/htdocs/core/js/lib_foot.js.php +++ b/htdocs/core/js/lib_foot.js.php @@ -50,7 +50,7 @@ if (empty($conf->dol_no_mouse_hover)) { print 'jQuery(".classfortooltip").tooltip({ show: { collision: "flipfit", effect:\'toggle\', delay:50 }, - hide: { delay: 50 }, + hide: { delay: 250 }, tooltipClass: "mytooltip", content: function () { console.log("Return title for popup"); From bc32d684a497611ed187fe16a56049fa80554c5b Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Fri, 4 Oct 2019 16:12:33 +0000 Subject: [PATCH 122/484] Fixing style errors. --- htdocs/contact/card.php | 4 ++-- htdocs/contact/class/contact.class.php | 1 - htdocs/core/lib/company.lib.php | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php index 5b1e302632e..1a271918b61 100644 --- a/htdocs/contact/card.php +++ b/htdocs/contact/card.php @@ -476,7 +476,7 @@ else $object = new Contact($db); $res=$object->fetch($id, $user); if ($res<0) { - setEventMessage($this->error,'errors'); + setEventMessage($this->error, 'errors'); } // Show tabs @@ -1054,7 +1054,7 @@ else if (!empty($object->socid)) { print '' . $langs->trans("Role") . ''; print ''; - print $formcompany->showRoles("roles", $object, 'edit' ,$object->roles); + print $formcompany->showRoles("roles", $object, 'edit', $object->roles); print ''; } diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index cb738249a44..560a6e2bc0d 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -1610,5 +1610,4 @@ class Contact extends CommonObject return $error*-1; } } - } diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index 4ead0601a40..91ba98d0ad4 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -1142,7 +1142,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') $resultRole=$contactstatic->fetchRoles(); if ($resultRole<0) { - setEventMessages(null, $contactstatic->errors,'errors'); + setEventMessages(null, $contactstatic->errors, 'errors'); } if (is_array($contactstatic->array_options)) From c8fb81710f20dd47a49cb1988568f8a4adc3b87a Mon Sep 17 00:00:00 2001 From: Laurent De Coninck Date: Fri, 4 Oct 2019 18:13:00 +0200 Subject: [PATCH 123/484] fix #12041 - Generate password Secure the generate password method "perso". Now the system checks the minimum possible value. If the value entered is lower then the system will never trigger the update. Since the update is done through GET parameters, I also added a check backend wise. This checks should never be triggered nor in error. [see: #12041] --- htdocs/admin/security.php | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/htdocs/admin/security.php b/htdocs/admin/security.php index df2d2b09ee6..a7707629cff 100644 --- a/htdocs/admin/security.php +++ b/htdocs/admin/security.php @@ -170,9 +170,23 @@ elseif ($action == 'disable_MAIN_SECURITY_DISABLEFORGETPASSLINK') if ($action == 'maj_pattern') { - dolibarr_set_const($db, "USER_PASSWORD_PATTERN", GETPOST("pattern"), 'chaine', 0, '', $conf->entity); - header("Location: security.php"); - exit; + $pattern = GETPOST("pattern"); + $explodePattern = explode(';',$pattern); + + $patternInError = false; + if($explodePattern[0] < 1 || $explodePattern[4] < 1){ + $patternInError = true; + } + + if($explodePattern[0] < $explodePattern[1] + $explodePattern[2] + $explodePattern[3]){ + $patternInError = true; + } + + if(!$patternInError){ + dolibarr_set_const($db, "USER_PASSWORD_PATTERN", $pattern, 'chaine', 0, '', $conf->entity); + header("Location: security.php"); + exit; + } } @@ -278,13 +292,6 @@ if ($conf->global->USER_PASSWORD_GENERATED == "Perso"){ $tabConf = explode(";", $conf->global->USER_PASSWORD_PATTERN); - /*$this->length2 = $tabConf[0]; - $this->NbMaj = $tabConf[1]; - $this->NbNum = $tabConf[2]; - $this->NbSpe = $tabConf[3]; - $this->NbRepeat = $tabConf[4]; - $this->WithoutAmbi = $tabConf[5]; - */ print '
    '; print ''; print ''; @@ -318,7 +325,7 @@ if ($conf->global->USER_PASSWORD_GENERATED == "Perso"){ print ''; print '"; - print ''; + print ''; print ''; @@ -350,6 +357,13 @@ if ($conf->global->USER_PASSWORD_GENERATED == "Perso"){ print ' }'; print ' function valuePossible(){'; + print ' var fields = ["#minlenght", "#NbMajMin", "#NbNumMin", "#NbSpeMin", "#NbIteConsecutive"];'; + print ' for(var i = 0 ; i < fields.length ; i++){'; + print ' if($(fields[i]).val() < $(fields[i]).attr("min")){'; + print ' return false;'; + print ' }'; + print ' }'; + print ' '; print ' var length = parseInt($("#minlenght").val());'; print ' var length_mini = parseInt($("#NbMajMin").val()) + parseInt($("#NbNumMin").val()) + parseInt($("#NbSpeMin").val());'; print ' return length >= length_mini;'; From a509404636d68158c85b987489e87b124992f94c Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Fri, 4 Oct 2019 16:26:26 +0000 Subject: [PATCH 124/484] Fixing style errors. --- htdocs/admin/security.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/admin/security.php b/htdocs/admin/security.php index a7707629cff..3a786f30a84 100644 --- a/htdocs/admin/security.php +++ b/htdocs/admin/security.php @@ -171,7 +171,7 @@ elseif ($action == 'disable_MAIN_SECURITY_DISABLEFORGETPASSLINK') if ($action == 'maj_pattern') { $pattern = GETPOST("pattern"); - $explodePattern = explode(';',$pattern); + $explodePattern = explode(';', $pattern); $patternInError = false; if($explodePattern[0] < 1 || $explodePattern[4] < 1){ From 8bf9afb7ca2542f448ed7c23226fe8db00e3a65b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 4 Oct 2019 19:41:35 +0200 Subject: [PATCH 125/484] FIX Attachement of linked files on ticket when sending a message --- htdocs/core/class/html.formmail.class.php | 2 +- htdocs/ticket/card.php | 4 +- htdocs/ticket/class/ticket.class.php | 182 +++++++++++++--------- 3 files changed, 112 insertions(+), 76 deletions(-) diff --git a/htdocs/core/class/html.formmail.class.php b/htdocs/core/class/html.formmail.class.php index b0cdcd23a96..99153f667e9 100644 --- a/htdocs/core/class/html.formmail.class.php +++ b/htdocs/core/class/html.formmail.class.php @@ -212,7 +212,7 @@ class FormMail extends Form /** * Remove a file from the list of attached files (stored in SECTION array) * - * @param string $keytodelete Key in file array (0, 1, 2, ...) + * @param string $keytodelete Key index in file array (0, 1, 2, ...) * @return void */ public function remove_attached_files($keytodelete) diff --git a/htdocs/ticket/card.php b/htdocs/ticket/card.php index eb47bc7044f..9ab82b0c3d8 100644 --- a/htdocs/ticket/card.php +++ b/htdocs/ticket/card.php @@ -371,7 +371,7 @@ if ($action == "assign_user" && GETPOST('btn_assign_user', 'aplha') && $user->ri $action = 'view'; } -if ($action == "add_message" && GETPOST('btn_add_message') && $user->rights->ticket->read) { +if ($action == 'add_message' && GETPOSTISSET('btn_add_message') && $user->rights->ticket->read) { $ret = $object->newMessage($user, $action, (GETPOST('private_message', 'alpha') == "on" ? 1 : 0)); if ($ret > 0) { @@ -1290,10 +1290,8 @@ if (empty($action) || $action == 'view' || $action == 'addlink' || $action == 'd //$formticket->param['socid']=$object->fk_soc; $formticket->param['returnurl']=$_SERVER["PHP_SELF"].'?track_id='.$object->track_id; - $formticket->withsubstit = 1; $formticket->substit = $substitutionarray; - $formticket->showMessageForm('100%'); print ''; } diff --git a/htdocs/ticket/class/ticket.class.php b/htdocs/ticket/class/ticket.class.php index 1ae0bb56aae..cdf2c14a500 100644 --- a/htdocs/ticket/class/ticket.class.php +++ b/htdocs/ticket/class/ticket.class.php @@ -1602,13 +1602,16 @@ class Ticket extends CommonObject } /** - * Add message into database + * Add message into database * - * @param User $user User that creates - * @param int $notrigger 0=launch triggers after, 1=disable triggers - * @return int <0 if KO, Id of created object if OK + * @param User $user User that creates + * @param int $notrigger 0=launch triggers after, 1=disable triggers + * @param array $filename_list List of files to attach (full path of filename on file system) + * @param array $mimetype_list List of MIME type of attached files + * @param array $mimefilename_list List of attached file name in message + * @return void */ - public function createTicketMessage($user, $notrigger = 0) + public function createTicketMessage($user, $notrigger = 0, $filename_list = array(), $mimetype_list = array(), $mimefilename_list = array()) { global $conf, $langs; $error = 0; @@ -1633,7 +1636,7 @@ class Ticket extends CommonObject $actioncomm->code = 'TICKET_MSG'; $actioncomm->socid = $this->socid; $actioncomm->label = $this->subject; - $actioncomm->note = $this->message; + $actioncomm->note_private = $this->message; $actioncomm->userassigned = array($user->id); $actioncomm->userownerid = $user->id; $actioncomm->datep = $now; @@ -1641,6 +1644,19 @@ class Ticket extends CommonObject $actioncomm->elementtype = 'ticket'; $actioncomm->fk_element = $this->id; + $attachedfiles = array(); + $attachedfiles['paths'] = $filename_list; + $attachedfiles['names'] = $mimefilename_list; + $attachedfiles['mimes'] = $mimetype_list; + if (is_array($attachedfiles) && count($attachedfiles)>0) { + $actioncomm->attachedfiles = $attachedfiles; + } + + if (! empty($mimefilename_list) && is_array($mimefilename_list)) + { + $actioncomm->note_private=dol_concatdesc($actioncomm->note_private, "\n".$langs->transnoentities("AttachedFiles").': '.join(';', $mimefilename_list)); + } + $actionid = $actioncomm->create($user); if ($actionid <= 0) { @@ -2389,10 +2405,11 @@ class Ticket extends CommonObject /** - * Copy files into ticket directory - * Used for files linked into messages + * Copy files defined into $_SESSION array into the ticket directory of attached files. + * Used for files linked into messages. + * Files may be renamed during copy to avoid overwriting existing files. * - * @return void + * @return array Array with final path/name/mime of files. */ public function copyFilesForTicket() { @@ -2422,23 +2439,42 @@ class Ticket extends CommonObject if (!dol_is_dir($destdir)) { dol_mkdir($destdir); } + + $listofpaths = array(); + $listofnames = array(); foreach ($filename as $i => $val) { - $res = dol_move($filepath[$i], $destdir . '/' . $filename[$i]); - if (image_format_supported($destdir . '/' . $filename[$i]) == 1) { + $destfile = $destdir . '/' . $filename[$i]; + // If destination file already exists, we add a suffix to avoid to overwrite + if (is_file($destfile)) + { + $now = dol_now(); + $destfile.='.'.dol_print_date($now, 'dayhourlog'); + } + + $res = dol_move($filepath[$i], $destfile, 0, 1); + + if (image_format_supported($destfile) == 1) { // Create small thumbs for image (Ratio is near 16/9) // Used on logon for example - $imgThumbSmall = vignette($destdir . '/' . $filename[$i], $maxwidthsmall, $maxheightsmall, '_small', 50, "thumbs"); + $imgThumbSmall = vignette($destfile, $maxwidthsmall, $maxheightsmall, '_small', 50, "thumbs"); // Create mini thumbs for image (Ratio is near 16/9) // Used on menu or for setup page for example - $imgThumbMini = vignette($destdir . '/' . $filename[$i], $maxwidthmini, $maxheightmini, '_mini', 50, "thumbs"); + $imgThumbMini = vignette($destfile, $maxwidthmini, $maxheightmini, '_mini', 50, "thumbs"); } + $formmail->remove_attached_files($i); + + // Fill array with new names + $listofpaths[$i] = $destfile; + $listofnames[$i] = basename($destfile); } + + return array('listofpaths'=>$listofpaths, 'listofnames'=>$listofnames, 'listofmimes'=>$mimetype); } /** - * Add new message on a ticket (private area) + * Add new message on a ticket (private area). Can also send it be email if GETPOST('send_email', 'int') is set. * * @param User $user User for action * @param string $action Action string @@ -2449,19 +2485,15 @@ class Ticket extends CommonObject { global $mysoc, $conf, $langs; - if (!class_exists('Contact')) { - include_once DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php'; - } - - $contactstatic = new Contact($this->db); - $object = new Ticket($this->db); - $error = 0; + $object = new Ticket($this->db); + $ret = $object->fetch('', '', GETPOST('track_id', 'alpha')); $object->socid = $object->fk_soc; $object->fetch_thirdparty(); + if ($ret < 0) { $error++; array_push($this->errors, $langs->trans("ErrorTicketIsNotValid")); @@ -2478,9 +2510,17 @@ class Ticket extends CommonObject $object->subject = GETPOST('subject', 'alphanohtml'); $object->message = GETPOST("message", "none"); $object->private = GETPOST("private_message", "alpha"); + $send_email = GETPOST('send_email', 'int'); - $id = $object->createTicketMessage($user); + // Copy attached files (saved into $_SESSION) as linked files to ticket. Return array with final name used. + $resarray = $object->copyFilesForTicket(); + + $listofpaths = $resarray['listofpaths']; + $listofnames = $resarray['listofnames']; + $listofmimes = $resarray['listofmimes']; + + $id = $object->createTicketMessage($user, 0, $listofpaths, $listofmimes, $listofnames); if ($id <= 0) { $error++; $this->errors = $object->error; @@ -2491,24 +2531,27 @@ class Ticket extends CommonObject if (!$error && $id > 0) { setEventMessages($langs->trans('TicketMessageSuccessfullyAdded'), null, 'mesgs'); + //var_dump($_SESSION); var_dump($listofpaths);exit; + /* - * Send email to linked contacts + * Send emails to internal users (linked contacts) */ if ($send_email > 0) { // Retrieve internal contact datas $internal_contacts = $object->getInfosTicketInternalContact(); + $sendto = array(); if (is_array($internal_contacts) && count($internal_contacts) > 0) { // altairis: set default subject $label_title = empty($conf->global->MAIN_APPLICATION_TITLE) ? $mysoc->name : $conf->global->MAIN_APPLICATION_TITLE; - $subject = GETPOST('subject') ? GETPOST('subject') : '[' . $label_title . '- ticket #' . $object->track_id . '] ' . $langs->trans('TicketNewMessage'); + $subject = GETPOST('subject', 'nohtml') ? GETPOST('subject', 'nohtml') : '[' . $label_title . '- ticket #' . $object->track_id . '] ' . $langs->trans('TicketNewMessage'); $message_intro = $langs->trans('TicketNotificationEmailBody', "#" . $object->id); $message_signature = GETPOST('mail_signature') ? GETPOST('mail_signature') : $conf->global->TICKET_MESSAGE_MAIL_SIGNATURE; $message = $langs->trans('TicketMessageMailIntroText'); $message .= "\n\n"; - $message .= GETPOST('message'); + $message .= GETPOST('message', 'restricthtml'); // Coordonnées client $message .= "\n\n"; @@ -2547,12 +2590,12 @@ class Ticket extends CommonObject // altairis: dont try to send email if no recipient if (!empty($sendto)) { - $this->sendTicketMessageByEmail($subject, $message, '', $sendto); + $this->sendTicketMessageByEmail($subject, $message, '', $sendto, $listofpaths, $listofmimes, $listofnames); } } /* - * Email for externals users if not private + * Send emails for externals users if not private (linked contacts) */ if (empty($object->private)) { // Retrieve email of all contacts (external) @@ -2599,47 +2642,42 @@ class Ticket extends CommonObject // If public interface is not enable, use link to internal page into mail $url_public_ticket = (!empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE) ? - (!empty($conf->global->TICKET_URL_PUBLIC_INTERFACE) ? - $conf->global->TICKET_URL_PUBLIC_INTERFACE . '/view.php' : - dol_buildpath('/public/ticket/view.php', 2) - ) : - dol_buildpath('/ticket/card.php', 2) - ) . '?track_id=' . $object->track_id; - $message .= "\n" . $langs->trans('TicketNewEmailBodyInfosTrackUrlCustomer') . ' : ' . '' . $object->track_id . '' . "\n"; + (!empty($conf->global->TICKET_URL_PUBLIC_INTERFACE) ? $conf->global->TICKET_URL_PUBLIC_INTERFACE . '/view.php' : dol_buildpath('/public/ticket/view.php', 2)) : + dol_buildpath('/ticket/card.php', 2)) . '?track_id=' . $object->track_id; + $message .= "\n" . $langs->trans('TicketNewEmailBodyInfosTrackUrlCustomer') . ' : ' . '' . $object->track_id . '' . "\n"; - // Build final message - $message = $message_intro . $message; + // Build final message + $message = $message_intro . $message; - // Add signature - $message .= '
    ' . $message_signature; + // Add signature + $message .= '
    ' . $message_signature; - if (!empty($object->origin_email)) { - $sendto[] = $object->origin_email; - } + if (!empty($object->origin_email)) { + $sendto[] = $object->origin_email; + } - if ($object->fk_soc > 0 && ! in_array($object->origin_email, $sendto)) { - $object->socid = $object->fk_soc; - $object->fetch_thirdparty(); - if(!empty($object->thirdparty->email)) $sendto[] = $object->thirdparty->email; - } + if ($object->fk_soc > 0 && ! in_array($object->origin_email, $sendto)) { + $object->socid = $object->fk_soc; + $object->fetch_thirdparty(); + if(!empty($object->thirdparty->email)) $sendto[] = $object->thirdparty->email; + } - // altairis: Add global email address reciepient - if ($conf->global->TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS && !in_array($conf->global->TICKET_NOTIFICATION_EMAIL_TO, $sendto)) { - if(!empty($conf->global->TICKET_NOTIFICATION_EMAIL_TO)) $sendto[] = $conf->global->TICKET_NOTIFICATION_EMAIL_TO; - } + // altairis: Add global email address reciepient + if ($conf->global->TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS && !in_array($conf->global->TICKET_NOTIFICATION_EMAIL_TO, $sendto)) { + if(!empty($conf->global->TICKET_NOTIFICATION_EMAIL_TO)) $sendto[] = $conf->global->TICKET_NOTIFICATION_EMAIL_TO; + } - // altairis: dont try to send email when no recipient - if (!empty($sendto)) { - $this->sendTicketMessageByEmail($subject, $message, '', $sendto); - } + // altairis: dont try to send email when no recipient + if (!empty($sendto)) { + $this->sendTicketMessageByEmail($subject, $message, '', $sendto, $listofpaths, $listofmimes, $listofnames); + } } } } - $object->copyFilesForTicket(); - - // Set status to "answered" if not set yet, only for internal users - if ($object->fk_statut < 3 && !$user->societe_id) { + // Set status to "answered" if not set yet, but only if internal user + if ($object->fk_statut < 3 && ! $user->socid) + { $object->setStatut(3); } @@ -2658,13 +2696,16 @@ class Ticket extends CommonObject /** * Send ticket by email to linked contacts * - * @param string $subject Email subject - * @param string $message Email message - * @param int $send_internal_cc Receive a copy on internal email ($conf->global->TICKET_NOTIFICATION_EMAIL_FROM) - * @param array $array_receiver Array of receiver. exemple array('name' => 'John Doe', 'email' => 'john@doe.com', etc...) + * @param string $subject Email subject + * @param string $message Email message + * @param int $send_internal_cc Receive a copy on internal email ($conf->global->TICKET_NOTIFICATION_EMAIL_FROM) + * @param array $array_receiver Array of receiver. exemple array('name' => 'John Doe', 'email' => 'john@doe.com', etc...) + * @param array $filename_list List of files to attach (full path of filename on file system) + * @param array $mimetype_list List of MIME type of attached files + * @param array $mimefilename_list List of attached file name in message * @return void */ - public function sendTicketMessageByEmail($subject, $message, $send_internal_cc = 0, $array_receiver = array()) + public function sendTicketMessageByEmail($subject, $message, $send_internal_cc = 0, $array_receiver = array(), $filename_list = array(), $mimetype_list = array(), $mimefilename_list = array()) { global $conf, $langs; @@ -2690,15 +2731,12 @@ class Ticket extends CommonObject $from = $conf->global->TICKET_NOTIFICATION_EMAIL_FROM; if (is_array($array_receiver) && count($array_receiver) > 0) { - foreach ($array_receiver as $key => $receiver) { - // Create form object - include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php'; - $formmail = new FormMail($this->db); - - $attachedfiles = $formmail->get_attached_files(); - $filepath = $attachedfiles['paths']; - $filename = $attachedfiles['names']; - $mimetype = $attachedfiles['mimes']; + foreach ($array_receiver as $key => $receiver) + { + $deliveryreceipt = 0; + $filepath = $filename_list; + $filename = $mimefilename_list; + $mimetype = $mimetype_list; $message_to_send = dol_nl2br($message); From 827b1fe5d26ee68dc4e13bb8529430deffcdf71f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 5 Oct 2019 11:17:09 +0200 Subject: [PATCH 126/484] Use small image instead of mini for preview on document list --- htdocs/core/class/html.formfile.class.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php index 8b6b10a4f5f..908fe200a97 100644 --- a/htdocs/core/class/html.formfile.class.php +++ b/htdocs/core/class/html.formfile.class.php @@ -1285,14 +1285,14 @@ class FormFile { if ($useinecm == 5 || $useinecm == 6) { - $minifile=getImageFileNameForSize($file['name'], ''); // There is no thumb for ECM module and Media filemanager, so we use true image + $smallfile=getImageFileNameForSize($file['name'], ''); // There is no thumb for ECM module and Media filemanager, so we use true image } else { - $minifile=getImageFileNameForSize($file['name'], '_mini'); // For new thumbs using same ext (in lower case howerver) than original + $smallfile=getImageFileNameForSize($file['name'], '_small'); // For new thumbs using same ext (in lower case however) than original } - if (! dol_is_file($file['path'].'/'.$minifile)) $minifile=getImageFileNameForSize($file['name'], '_mini', '.png'); // For backward compatibility of old thumbs that were created with filename in lower case and with .png extension - //print $file['path'].'/'.$minifile.'
    '; + if (! dol_is_file($file['path'].'/'.$smallfile)) $smallfile=getImageFileNameForSize($file['name'], '_small', '.png'); // For backward compatibility of old thumbs that were created with filename in lower case and with .png extension + //print $file['path'].'/'.$smallfile.'
    '; $urlforhref=getAdvancedPreviewUrl($modulepart, $relativepath.$fileinfo['filename'].'.'.strtolower($fileinfo['extension']), 1, '&entity='.(!empty($object->entity)?$object->entity:$conf->entity)); if (empty($urlforhref)) { @@ -1301,7 +1301,7 @@ class FormFile } else { print ''; } - print ''; + print ''; print ''; } else print ' '; From a06b1b9f3ff6e426018010a981aa4581a877cc88 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 5 Oct 2019 11:43:28 +0200 Subject: [PATCH 127/484] Fix escaping chars --- htdocs/ticket/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/ticket/card.php b/htdocs/ticket/card.php index 9ab82b0c3d8..2f3a79c59be 100644 --- a/htdocs/ticket/card.php +++ b/htdocs/ticket/card.php @@ -769,7 +769,7 @@ if (empty($action) || $action == 'view' || $action == 'addlink' || $action == 'd } if (!empty($object->origin_email)) { $morehtmlref .= '
    ' . $langs->trans("CreatedBy") . ' : '; - $morehtmlref .= $object->origin_email . ' (' . $langs->trans("TicketEmailOriginIssuer") . ')'; + $morehtmlref .= dol_escape_htmltag($object->origin_email) . ' (' . $langs->trans("TicketEmailOriginIssuer") . ')'; } // Thirdparty From 5c11a0d6cd76541439d633fa24b11fff62a809c4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 5 Oct 2019 11:52:02 +0200 Subject: [PATCH 128/484] FIX access to public interface when origin email has an alias. --- htdocs/public/ticket/view.php | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/htdocs/public/ticket/view.php b/htdocs/public/ticket/view.php index f756816874a..79552539834 100644 --- a/htdocs/public/ticket/view.php +++ b/htdocs/public/ticket/view.php @@ -38,6 +38,7 @@ if (!defined("NOLOGIN")) { require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/ticket/class/actions_ticket.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formticket.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/ticket.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; @@ -100,7 +101,8 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a $ret = $object->fetch('', '', $track_id); if ($ret && $object->dao->id > 0) { // Check if emails provided is the one of author - if ($object->dao->origin_email == $email) + $emailofticket = CMailFile::getValidAddress($object->dao->origin_email, 2); + if ($emailofticket == $email) { $display_ticket = true; $_SESSION['email_customer'] = $email; @@ -174,7 +176,6 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a - if (! $error) { $action = 'view_ticket'; @@ -226,7 +227,8 @@ llxHeaderTicket($langs->trans("Tickets"), "", 0, 0, $arrayofjs, $arrayofcss); print '
    '; if ($action == "view_ticket" || $action == "presend" || $action == "close" || $action == "confirm_public_close") { - if ($display_ticket) { + if ($display_ticket) + { // Confirmation close if ($action == 'close') { print $form->formconfirm($_SERVER["PHP_SELF"] . "?track_id=" . $track_id, $langs->trans("CloseATicket"), $langs->trans("ConfirmCloseAticket"), "confirm_public_close", '', '', 1); @@ -284,7 +286,7 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a $fuser->fetch($object->dao->fk_user_create); print $fuser->getFullName($langs); } else { - print $object->dao->origin_email; + print dol_escape_htmltag($object->dao->origin_email); } print ''; @@ -370,7 +372,9 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a // Message list print load_fiche_titre($langs->trans('TicketMessagesList'), '', 'messages@ticket'); $object->viewTicketMessages(false, true, $object->dao); - } else { + } + else + { print ''; } } else { From 031c5523d476fee8e5b7bacdfd82bf9cca207483 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 5 Oct 2019 11:52:30 +0200 Subject: [PATCH 129/484] NEW Add link to the public interface on the ticket card. --- htdocs/core/lib/ticket.lib.php | 39 ++++++++++++++++++++++++++++++++++ htdocs/langs/en_US/ticket.lang | 2 ++ htdocs/ticket/card.php | 7 +++++- 3 files changed, 47 insertions(+), 1 deletion(-) diff --git a/htdocs/core/lib/ticket.lib.php b/htdocs/core/lib/ticket.lib.php index 81c51ade506..53afbe50dce 100644 --- a/htdocs/core/lib/ticket.lib.php +++ b/htdocs/core/lib/ticket.lib.php @@ -139,6 +139,45 @@ function ticket_prepare_head($object) return $head; } +/** + * Return string with full Url. The file qualified is the one defined by relative path in $object->last_main_doc + * + * @param Object $object Object + * @return string Url string + */ +function showDirectPublicLink($object) +{ + global $conf, $langs; + + require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; + $email = CMailFile::getValidAddress($object->origin_email, 2); + if ($email) + { + $url = dol_buildpath('/public/ticket/view.php', 3).'?track_id='.$object->track_id.'&email='.$email; + } + + $out=''; + if (empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) + { + $out.= ''.$langs->trans("PublicInterfaceNotEnabled").''; + } + else + { + $out.= img_picto('', 'object_globe.png').' '.$langs->trans("TicketPublicAccess").':
    '; + if ($url) + { + $out.= ''; + $out.= ajax_autoselect("directpubliclink", 0); + } + else + { + $out.= ''.$langs->trans("TicketNotCreatedFromPublicInterface").''; + } + } + + return $out; +} + /** * Generate a random id * diff --git a/htdocs/langs/en_US/ticket.lang b/htdocs/langs/en_US/ticket.lang index 80dda58ba59..4bc40e19555 100644 --- a/htdocs/langs/en_US/ticket.lang +++ b/htdocs/langs/en_US/ticket.lang @@ -226,6 +226,8 @@ TicketConfirmChangeStatus=Confirm the status change: %s ? TicketLogStatusChanged=Status changed: %s to %s TicketNotNotifyTiersAtCreate=Not notify company at create Unread=Unread +TicketNotCreatedFromPublicInterface=Not available. Ticket was not created from public interface. +PublicInterfaceNotEnabled=Public interface was not enabled # # Logs diff --git a/htdocs/ticket/card.php b/htdocs/ticket/card.php index 8e8add64b38..690c01644e0 100644 --- a/htdocs/ticket/card.php +++ b/htdocs/ticket/card.php @@ -769,7 +769,7 @@ if (empty($action) || $action == 'view' || $action == 'addlink' || $action == 'd } if (!empty($object->origin_email)) { $morehtmlref .= '
    ' . $langs->trans("CreatedBy") . ' : '; - $morehtmlref .= $object->origin_email . ' (' . $langs->trans("TicketEmailOriginIssuer") . ')'; + $morehtmlref .= dol_escape_htmltag($object->origin_email) . ' (' . $langs->trans("TicketEmailOriginIssuer") . ')'; } // Thirdparty @@ -983,6 +983,7 @@ if (empty($action) || $action == 'view' || $action == 'addlink' || $action == 'd } print ''; print ''; + if (GETPOST('set', 'alpha') == 'properties' && $user->rights->ticket->write) { print '
    '; // Type @@ -1212,6 +1213,10 @@ if (empty($action) || $action == 'view' || $action == 'addlink' || $action == 'd $linktoelem = $form->showLinkToObjectBlock($object, null, array('ticket')); $somethingshown = $form->showLinkedObjectBlock($object, $linktoelem); + // Show direct link to public interface + print '
    '."\n"; + print showDirectPublicLink($object).'
    '; + print '
    '; // List of actions on element From 083db124907d17dec1c81bcb30f8665083437924 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 5 Oct 2019 11:52:02 +0200 Subject: [PATCH 130/484] FIX access to public interface when origin email has an alias. --- htdocs/public/ticket/view.php | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/htdocs/public/ticket/view.php b/htdocs/public/ticket/view.php index cdbd3abad19..47dc038120f 100644 --- a/htdocs/public/ticket/view.php +++ b/htdocs/public/ticket/view.php @@ -38,6 +38,7 @@ if (!defined("NOLOGIN")) { require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/ticket/class/actions_ticket.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formticket.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/ticket.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; @@ -100,7 +101,8 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a $ret = $object->fetch('', '', $track_id); if ($ret && $object->dao->id > 0) { // Check if emails provided is the one of author - if ($object->dao->origin_email == $email) + $emailofticket = CMailFile::getValidAddress($object->dao->origin_email, 2); + if ($emailofticket == $email) { $display_ticket = true; $_SESSION['email_customer'] = $email; @@ -174,7 +176,6 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a - if (! $error) { $action = 'view_ticket'; @@ -226,7 +227,8 @@ llxHeaderTicket($langs->trans("Tickets"), "", 0, 0, $arrayofjs, $arrayofcss); print '
    '; if ($action == "view_ticket" || $action == "presend" || $action == "close" || $action == "confirm_public_close") { - if ($display_ticket) { + if ($display_ticket) + { // Confirmation close if ($action == 'close') { print $form->formconfirm($_SERVER["PHP_SELF"] . "?track_id=" . $track_id, $langs->trans("CloseATicket"), $langs->trans("ConfirmCloseAticket"), "confirm_public_close", '', '', 1); @@ -284,7 +286,7 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a $fuser->fetch($object->dao->fk_user_create); print $fuser->getFullName($langs); } else { - print $object->dao->origin_email; + print dol_escape_htmltag($object->dao->origin_email); } print '
    '; @@ -370,7 +372,9 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a // Message list print load_fiche_titre($langs->trans('TicketMessagesList'), '', 'messages@ticket'); $object->viewTicketMessages(false, true, $object->dao); - } else { + } + else + { print ''; } } else { From b053663fe61e68f6be96fabbc7978b644712da07 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 5 Oct 2019 13:13:11 +0200 Subject: [PATCH 131/484] Look and feel v11 --- htdocs/ticket/card.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/htdocs/ticket/card.php b/htdocs/ticket/card.php index 690c01644e0..61304aaf561 100644 --- a/htdocs/ticket/card.php +++ b/htdocs/ticket/card.php @@ -1195,7 +1195,10 @@ if (empty($action) || $action == 'view' || $action == 'addlink' || $action == 'd } print ''."\n"; } - + else + { + print '
    '; + } // Select mail models is same action as presend if (GETPOST('modelselected')) { @@ -1261,7 +1264,7 @@ if (empty($action) || $action == 'view' || $action == 'addlink' || $action == 'd foreach ($substitutionarray as $key => $val) { $help.=$key.' -> '.$langs->trans($val).'
    '; } - $morehtmlright.=$form->textwithpicto($langs->trans("TicketMessageSubstitutionReplacedByGenericValues"), $help); + $morehtmlright.=$form->textwithpicto(''.$langs->trans("TicketMessageSubstitutionReplacedByGenericValues").'', $help, 1, 'helpclickable', '', 0, 3, 'helpsubstitution'); print '
    '; print load_fiche_titre($langs->trans('TicketAddMessage'), $morehtmlright, 'messages@ticket'); From c36d49a8c36189bfd2d2ef2047a0ca0246e7ac86 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 5 Oct 2019 14:15:14 +0200 Subject: [PATCH 132/484] FIX escape email alias --- htdocs/core/class/html.formticket.class.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/core/class/html.formticket.class.php b/htdocs/core/class/html.formticket.class.php index ba5d2f37293..49c7a28f1e1 100644 --- a/htdocs/core/class/html.formticket.class.php +++ b/htdocs/core/class/html.formticket.class.php @@ -939,13 +939,13 @@ class FormTicket if (is_array($contacts) && count($contacts) > 0) { foreach ($contacts as $key => $info_sendto) { if ($info_sendto['email'] != '') { - $sendto[] = dol_escape_htmltag(trim($info_sendto['firstname'] . " " . $info_sendto['lastname']) . " <" . $info_sendto['email'] . "> (" . $info_sendto['libelle'] . ")"); + $sendto[] = dol_escape_htmltag(trim($info_sendto['firstname'] . " " . $info_sendto['lastname']) . " <" . $info_sendto['email'] . ">")." (" . dol_escape_htmltag($info_sendto['libelle']) . ")"; } } } if ($ticketstat->origin_email && !in_array($this->dao->origin_email, $sendto)) { - $sendto[] = $ticketstat->origin_email . "(origin)"; + $sendto[] = dol_escape_htmltag($ticketstat->origin_email) . " (".$langs->trans("TicketEmailOriginIssuer").")"; } if ($ticketstat->fk_soc > 0) { @@ -953,12 +953,12 @@ class FormTicket $ticketstat->fetch_thirdparty(); if (is_array($ticketstat->thirdparty->email) && !in_array($ticketstat->thirdparty->email, $sendto)) { - $sendto[] = $ticketstat->thirdparty->email . '(' . $langs->trans('Customer') . ')'; + $sendto[] = $ticketstat->thirdparty->email . ' (' . $langs->trans('Customer') . ')'; } } if ($conf->global->TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS) { - $sendto[] = $conf->global->TICKET_NOTIFICATION_EMAIL_TO . '(generic email)'; + $sendto[] = $conf->global->TICKET_NOTIFICATION_EMAIL_TO . ' (generic email)'; } // Print recipient list From 7c685bc76fb27c60c729cc85f7208d43a6fa79fb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 5 Oct 2019 14:25:20 +0200 Subject: [PATCH 133/484] FIX Bad list of ticket on public interface for ticket emailcollector --- htdocs/public/ticket/list.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/htdocs/public/ticket/list.php b/htdocs/public/ticket/list.php index 1ec348c89a9..523370f9b21 100644 --- a/htdocs/public/ticket/list.php +++ b/htdocs/public/ticket/list.php @@ -37,6 +37,7 @@ if (!defined("NOLOGIN")) { require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/ticket/class/actions_ticket.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formticket.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/ticket.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; @@ -95,7 +96,8 @@ if ($action == "view_ticketlist") { $ret = $object->fetch('', '', $track_id); if ($ret && $object->id > 0) { - // vérifie si l'adresse email est bien dans les contacts du ticket + + // vérifie si l'adresse email est bien dans les contacts du ticket $contacts = $object->liste_contact(-1, 'external'); foreach ($contacts as $contact) { if ($contact['email'] == $email) { @@ -124,7 +126,9 @@ if ($action == "view_ticketlist") { $_SESSION['track_id_customer'] = $track_id; } } - if ($email == $object->origin_email) { + + $emailorigin = CMailFile::getValidAddress($object->origin_email, 2); + if ($email == $emailorigin) { $display_ticket_list = true; $_SESSION['email_customer'] = $email; $_SESSION['track_id_customer'] = $track_id; @@ -638,7 +642,7 @@ if ($action == "view_ticketlist") // Statut if (!empty($arrayfields['t.fk_statut']['checked'])) { - print '
    '; From e90234c2bc2e91d396d5bd160b337f8ecb71fc8c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 5 Oct 2019 14:15:14 +0200 Subject: [PATCH 134/484] FIX escape email alias --- htdocs/core/class/html.formticket.class.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/core/class/html.formticket.class.php b/htdocs/core/class/html.formticket.class.php index cdb595883f3..747b2dbdf8b 100644 --- a/htdocs/core/class/html.formticket.class.php +++ b/htdocs/core/class/html.formticket.class.php @@ -939,13 +939,13 @@ class FormTicket if (is_array($contacts) && count($contacts) > 0) { foreach ($contacts as $key => $info_sendto) { if ($info_sendto['email'] != '') { - $sendto[] = dol_escape_htmltag(trim($info_sendto['firstname'] . " " . $info_sendto['lastname']) . " <" . $info_sendto['email'] . "> (" . $info_sendto['libelle'] . ")"); + $sendto[] = dol_escape_htmltag(trim($info_sendto['firstname'] . " " . $info_sendto['lastname']) . " <" . $info_sendto['email'] . ">")." (" . dol_escape_htmltag($info_sendto['libelle']) . ")"; } } } if ($ticketstat->origin_email && !in_array($this->dao->origin_email, $sendto)) { - $sendto[] = $ticketstat->origin_email . "(origin)"; + $sendto[] = dol_escape_htmltag($ticketstat->origin_email) . " (".$langs->trans("TicketEmailOriginIssuer").")"; } if ($ticketstat->fk_soc > 0) { @@ -953,12 +953,12 @@ class FormTicket $ticketstat->fetch_thirdparty(); if (is_array($ticketstat->thirdparty->email) && !in_array($ticketstat->thirdparty->email, $sendto)) { - $sendto[] = $ticketstat->thirdparty->email . '(' . $langs->trans('Customer') . ')'; + $sendto[] = $ticketstat->thirdparty->email . ' (' . $langs->trans('Customer') . ')'; } } if ($conf->global->TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS) { - $sendto[] = $conf->global->TICKET_NOTIFICATION_EMAIL_TO . '(generic email)'; + $sendto[] = $conf->global->TICKET_NOTIFICATION_EMAIL_TO . ' (generic email)'; } // Print recipient list From 3e5cd877b8e3a1c29d0023006c191852d194b590 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 5 Oct 2019 14:25:20 +0200 Subject: [PATCH 135/484] FIX Bad list of ticket on public interface for ticket emailcollector --- htdocs/public/ticket/list.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/htdocs/public/ticket/list.php b/htdocs/public/ticket/list.php index 5e1ce07e098..078fe46b7ac 100644 --- a/htdocs/public/ticket/list.php +++ b/htdocs/public/ticket/list.php @@ -37,6 +37,7 @@ if (!defined("NOLOGIN")) { require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/ticket/class/actions_ticket.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formticket.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/ticket.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; @@ -95,7 +96,8 @@ if ($action == "view_ticketlist") { $ret = $object->fetch('', '', $track_id); if ($ret && $object->id > 0) { - // vérifie si l'adresse email est bien dans les contacts du ticket + + // vérifie si l'adresse email est bien dans les contacts du ticket $contacts = $object->liste_contact(-1, 'external'); foreach ($contacts as $contact) { if ($contact['email'] == $email) { @@ -124,7 +126,9 @@ if ($action == "view_ticketlist") { $_SESSION['track_id_customer'] = $track_id; } } - if ($email == $object->origin_email) { + + $emailorigin = CMailFile::getValidAddress($object->origin_email, 2); + if ($email == $emailorigin) { $display_ticket_list = true; $_SESSION['email_customer'] = $email; $_SESSION['track_id_customer'] = $track_id; @@ -638,7 +642,7 @@ if ($action == "view_ticketlist") // Statut if (!empty($arrayfields['t.fk_statut']['checked'])) { - print ''; From 7f5ccf4b8e5e1a6e13f656a0644ca535f70ce022 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 5 Oct 2019 19:27:14 +0200 Subject: [PATCH 136/484] Remove google+ --- htdocs/admin/system/about.php | 1 - htdocs/core/lib/payments.lib.php | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/htdocs/admin/system/about.php b/htdocs/admin/system/about.php index a941c89b994..706bcd9912a 100644 --- a/htdocs/admin/system/about.php +++ b/htdocs/admin/system/about.php @@ -160,7 +160,6 @@ print ''; diff --git a/htdocs/core/lib/payments.lib.php b/htdocs/core/lib/payments.lib.php index db5740d277b..e78f777eb56 100644 --- a/htdocs/core/lib/payments.lib.php +++ b/htdocs/core/lib/payments.lib.php @@ -130,7 +130,7 @@ function showOnlinePaymentUrl($type, $ref) // Load translation files required by the page $langs->loadLangs(array('payment', 'paybox')); - $servicename='Online'; + $servicename=$langs->transnoentitiesnoconve('Online'):; $out = img_picto('', 'object_globe.png').' '.$langs->trans("ToOfferALinkForOnlinePayment", $servicename).'
    '; $url = getOnlinePaymentUrl(0, $type, $ref); From ac8837d01fb1f728f768045667ac47c4ed36d042 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 5 Oct 2019 19:28:00 +0200 Subject: [PATCH 137/484] Fix url --- htdocs/core/lib/payments.lib.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/payments.lib.php b/htdocs/core/lib/payments.lib.php index e78f777eb56..f2b701b371f 100644 --- a/htdocs/core/lib/payments.lib.php +++ b/htdocs/core/lib/payments.lib.php @@ -125,12 +125,12 @@ function getValidOnlinePaymentMethods($paymentmethod = '') */ function showOnlinePaymentUrl($type, $ref) { - global $conf, $langs; + global $langs; // Load translation files required by the page $langs->loadLangs(array('payment', 'paybox')); - $servicename=$langs->transnoentitiesnoconve('Online'):; + $servicename=$langs->transnoentitiesnoconv('Online'); $out = img_picto('', 'object_globe.png').' '.$langs->trans("ToOfferALinkForOnlinePayment", $servicename).'
    '; $url = getOnlinePaymentUrl(0, $type, $ref); From 10671e3266627c49aeeeaeb4eddb496e3c129284 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sat, 5 Oct 2019 21:15:13 +0200 Subject: [PATCH 138/484] api supplier price delete --- htdocs/product/class/api_products.class.php | 33 +++++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/htdocs/product/class/api_products.class.php b/htdocs/product/class/api_products.class.php index 866eeb116cf..da7cd9fa780 100644 --- a/htdocs/product/class/api_products.class.php +++ b/htdocs/product/class/api_products.class.php @@ -15,10 +15,11 @@ * along with this program. If not, see . */ - use Luracast\Restler\RestException; +use Luracast\Restler\RestException; - require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; - require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; +require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php'; +require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; /** * API class for products @@ -41,6 +42,11 @@ class Products extends DolibarrApi */ public $product; + /** + * @var ProductFournisseur $productsupplier {@type ProductFournisseur} + */ + public $productsupplier; + /** * Constructor */ @@ -49,6 +55,7 @@ class Products extends DolibarrApi global $db, $conf; $this->db = $db; $this->product = new Product($this->db); + $this->productsupplier = new ProductFournisseur($this->db); } /** @@ -475,7 +482,7 @@ class Products extends DolibarrApi * * @url DELETE {id}/purchase_prices/{priceid} * - * @return array + * @return int * * @throws 401 * @throws 404 @@ -494,13 +501,13 @@ class Products extends DolibarrApi if(! DolibarrApi::_checkAccessToResource('product', $this->product->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } - - if($result) { - $this->product = new ProductFournisseur($this->db); - $this->product->fetch($id); + $resultsupplier = 0; + if ($result) { + $this->productsupplier->fetch($id); + $resultsupplier = $this->product->remove_product_fournisseur_price($priceid); } - return $this->product->remove_product_fournisseur_price($priceid); + return $resultsupplier; } /** @@ -632,13 +639,13 @@ class Products extends DolibarrApi } if ($includestockdata) { - $this->product->load_stock(); + $this->product->load_stock(); } if($result) { - $this->product = new ProductFournisseur($this->db); - $this->product->fetch($id, $ref); - $this->product->list_product_fournisseur_price($id, '', '', 0, 0); + $this->product = new ProductFournisseur($this->db); + $this->product->fetch($id, $ref); + $this->product->list_product_fournisseur_price($id, '', '', 0, 0); } return $this->_cleanObjectDatas($this->product); From b895f8a78f4d03b5c6acbc0c785d79e260dc166b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sat, 5 Oct 2019 21:19:55 +0200 Subject: [PATCH 139/484] api supplier get purchase prices --- htdocs/product/class/api_products.class.php | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/htdocs/product/class/api_products.class.php b/htdocs/product/class/api_products.class.php index da7cd9fa780..346aef06a91 100644 --- a/htdocs/product/class/api_products.class.php +++ b/htdocs/product/class/api_products.class.php @@ -642,13 +642,12 @@ class Products extends DolibarrApi $this->product->load_stock(); } - if($result) { - $this->product = new ProductFournisseur($this->db); - $this->product->fetch($id, $ref); - $this->product->list_product_fournisseur_price($id, '', '', 0, 0); + if ($result) { + $this->productsupplier->fetch($id, $ref); + $this->productsupplier->list_product_fournisseur_price($id, '', '', 0, 0); } - return $this->_cleanObjectDatas($this->product); + return $this->_cleanObjectDatas($this->productsupplier); } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore From e70b487c3499e01b9167314163cf64495aa0861b Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sat, 5 Oct 2019 22:22:55 +0200 Subject: [PATCH 140/484] Add info about validators saying default is supervisor --- htdocs/user/card.php | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/htdocs/user/card.php b/htdocs/user/card.php index d5e6776a223..67801b88e4d 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -972,7 +972,10 @@ if ($action == 'create' || $action == 'adduserldap') // Expense report validator if(!empty($conf->expensereport->enabled)) { - print '
    '; + print ''; print ''; @@ -982,7 +985,10 @@ if ($action == 'create' || $action == 'adduserldap') // Holiday request validator if(!empty($conf->holiday->enabled)) { - print ''; + print ''; print ''; @@ -1587,7 +1593,10 @@ else print "\n"; // Expense report validator - print ''; + print ''; print '\n"; // Holiday request validator - print ''; + print ''; print '\n"; // Expense report validator - print ''; + print ''; print '\n"; // Holiday request validator - print ''; + print ''; print ''; print ''; + print ''; } // Full day event From 8a9f08d5a39b17bf67cee2a2a0414d3431ac0c21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sun, 6 Oct 2019 11:29:24 +0200 Subject: [PATCH 145/484] lang file for holidays is holiday --- htdocs/core/modules/holiday/modules_holiday.php | 4 ++-- htdocs/holiday/document.php | 4 +--- htdocs/holiday/list.php | 2 +- htdocs/index.php | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/htdocs/core/modules/holiday/modules_holiday.php b/htdocs/core/modules/holiday/modules_holiday.php index 74cbb0dbfd5..c5f5dc16b25 100644 --- a/htdocs/core/modules/holiday/modules_holiday.php +++ b/htdocs/core/modules/holiday/modules_holiday.php @@ -96,7 +96,7 @@ class ModelNumRefHolidays public function info() { global $langs; - $langs->load("holidays"); + $langs->load("holiday"); return $langs->trans("NoDescription"); } @@ -108,7 +108,7 @@ class ModelNumRefHolidays public function getExample() { global $langs; - $langs->load("holidays"); + $langs->load("holiday"); return $langs->trans("NoExample"); } diff --git a/htdocs/holiday/document.php b/htdocs/holiday/document.php index 00bc7ac1b24..05ddf164105 100644 --- a/htdocs/holiday/document.php +++ b/htdocs/holiday/document.php @@ -37,7 +37,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/holiday.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; // Load translation files required by the page -$langs->loadLangs(array('other', 'holidays', 'companies')); +$langs->loadLangs(array('other', 'holiday', 'companies')); $id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); @@ -48,8 +48,6 @@ $confirm = GETPOST('confirm', 'alpha'); if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'holiday', $id, 'holiday'); -$langs->load("holiday"); - // Get parameters $sortfield = GETPOST('sortfield', 'alpha'); $sortorder = GETPOST('sortorder', 'alpha'); diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php index cbf2e2f01aa..d6e44261fe8 100644 --- a/htdocs/holiday/list.php +++ b/htdocs/holiday/list.php @@ -36,7 +36,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/usergroups.lib.php'; // Load translation files required by the page -$langs->loadLangs(array('users', 'holidays', 'hrm')); +$langs->loadLangs(array('users', 'holiday', 'hrm')); // Protection if external user if ($user->societe_id > 0) accessforbidden(); diff --git a/htdocs/index.php b/htdocs/index.php index 050058cd819..7279eebe80f 100644 --- a/htdocs/index.php +++ b/htdocs/index.php @@ -301,7 +301,7 @@ if (empty($user->societe_id) && empty($conf->global->MAIN_DISABLE_GLOBAL_BOXSTAT "supplier_proposal", "projects", "trips", - "holidays", + "holiday", "donations" ); From 52da21912b908224f8448dcbe7680dc026282564 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sun, 6 Oct 2019 13:21:04 +0200 Subject: [PATCH 146/484] Update agenda.lang --- htdocs/langs/en_US/agenda.lang | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/langs/en_US/agenda.lang b/htdocs/langs/en_US/agenda.lang index 1ebb2c3edd8..a7b6ea4f4da 100644 --- a/htdocs/langs/en_US/agenda.lang +++ b/htdocs/langs/en_US/agenda.lang @@ -85,6 +85,7 @@ PRODUCT_MODIFYInDolibarr=Product %s modified PRODUCT_DELETEInDolibarr=Product %s deleted HOLIDAY_CREATEInDolibarr=Request for leave %s created HOLIDAY_MODIFYInDolibarr=Request for leave %s modified +HOLIDAY_VALIDATEDInDolibarr=Request for leave %s validated HOLIDAY_DELETEInDolibarr=Request for leave %s deleted EXPENSE_REPORT_CREATEInDolibarr=Expense report %s created EXPENSE_REPORT_VALIDATEInDolibarr=Expense report %s validated From 6743169faa1a29cfb9a38fd496fab7a279bfe9c1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 6 Oct 2019 14:34:24 +0200 Subject: [PATCH 147/484] Fix js syntax error --- htdocs/core/tpl/objectline_create.tpl.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php index 30f412fbaa0..1e3c039a77f 100644 --- a/htdocs/core/tpl/objectline_create.tpl.php +++ b/htdocs/core/tpl/objectline_create.tpl.php @@ -63,7 +63,7 @@ if (in_array($object->element, array('propal','commande','order','facture','fact // Lines for extrafield $objectline = null; -if (!empty($extrafieldsline)) +if (!empty($extrafields)) { if ($this->table_element_line=='commandedet') { $objectline = new OrderLine($this->db); @@ -475,7 +475,7 @@ if ($nolinesbefore) { showOptionals($extrafieldsline, 'edit', array('style'=>$bcnd[$var], 'colspan'=>$coldisplay), '', '', empty($conf->global->MAIN_EXTRAFIELDS_IN_ONE_TD)?0:1); + print $objectline->showOptionals($extrafields, 'edit', array('colspan'=>$coldisplay), '', '', empty($conf->global->MAIN_EXTRAFIELDS_IN_ONE_TD)?0:1); } if ((! empty($conf->service->enabled) || ($object->element == 'contrat')) && $dateSelector && GETPOST('type') != '0') // We show date field if required @@ -854,7 +854,7 @@ function setforpredef() { global->MAIN_EDIT_PREDEF_PRICEHT)) { ?> jQuery("#price_ht").val('').hide(); - jQuery("#price_ht").val('') + jQuery("#price_ht").val(''); jQuery("#price_ht, #multicurrency_price_ht, #price_ttc, #fourn_ref, #tva_tx, #title_vat, #title_up_ht, #title_up_ht_currency, #title_up_ttc, #title_up_ttc_currency").hide(); jQuery("#np_marginRate, #np_markRate, .np_marginRate, .np_markRate, #units, #title_units").hide(); jQuery("#buying_price").show(); From 76dad97cb1c690b246be5931fa6b4e7142267e84 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 6 Oct 2019 14:39:43 +0200 Subject: [PATCH 148/484] Fix syntax error --- htdocs/core/tpl/objectline_create.tpl.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php index 1e3c039a77f..462af9173c1 100644 --- a/htdocs/core/tpl/objectline_create.tpl.php +++ b/htdocs/core/tpl/objectline_create.tpl.php @@ -850,7 +850,7 @@ function setforpredef() { console.log("Call setforpredef. We hide some fields and show dates"); jQuery("#select_type").val(-1); jQuery("#prod_entry_mode_free").prop('checked',false).change(); - jQuery("#prod_entry_mode_predef").prop('checked',true).change( + jQuery("#prod_entry_mode_predef").prop('checked',true).change(); global->MAIN_EDIT_PREDEF_PRICEHT)) { ?> jQuery("#price_ht").val('').hide(); From 2b66282b61ea87966d4d312dfd2dc55f1a9c6a55 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 6 Oct 2019 14:41:52 +0200 Subject: [PATCH 149/484] NEW Code for extrafields uses the new array $extrafields->attributes --- htdocs/adherents/card.php | 15 ++-- htdocs/adherents/cartes/carte.php | 2 +- htdocs/adherents/list.php | 2 +- htdocs/adherents/subscription.php | 2 +- htdocs/adherents/subscription/list.php | 2 +- htdocs/adherents/type.php | 6 +- htdocs/admin/emailcollector_card.php | 2 +- htdocs/admin/emailcollector_list.php | 2 +- htdocs/admin/mails_senderprofile_list.php | 2 +- htdocs/asset/card.php | 7 +- htdocs/asset/document.php | 2 +- htdocs/asset/list.php | 2 +- htdocs/asset/note.php | 2 +- htdocs/asset/type.php | 6 +- htdocs/bom/bom_agenda.php | 2 +- htdocs/bom/bom_card.php | 2 +- htdocs/bom/bom_document.php | 2 +- htdocs/bom/bom_list.php | 2 +- htdocs/bom/bom_note.php | 2 +- htdocs/bom/tpl/objectline_create.tpl.php | 2 +- htdocs/bom/tpl/objectline_edit.tpl.php | 2 +- htdocs/bom/tpl/objectline_view.tpl.php | 4 +- htdocs/categories/card.php | 4 +- htdocs/categories/edit.php | 4 +- htdocs/categories/viewcat.php | 2 +- htdocs/comm/action/card.php | 6 +- htdocs/comm/action/list.php | 2 +- htdocs/comm/card.php | 5 +- htdocs/comm/mailing/card.php | 2 +- .../mailing/class/advtargetemailing.class.php | 69 ++++++++++--------- htdocs/comm/mailing/list.php | 2 +- htdocs/comm/propal/card.php | 17 ++--- htdocs/comm/propal/list.php | 2 +- htdocs/commande/card.php | 17 ++--- htdocs/commande/list.php | 2 +- htdocs/commande/orderstoinvoice.php | 7 +- htdocs/compta/bank/bankentries_list.php | 2 +- htdocs/compta/bank/card.php | 9 +-- htdocs/compta/bank/list.php | 2 +- .../compta/cashcontrol/cashcontrol_card.php | 2 +- .../compta/cashcontrol/cashcontrol_list.php | 4 +- htdocs/compta/facture/card.php | 24 +++---- .../facture/class/facture-rec.class.php | 13 ++-- htdocs/compta/facture/fiche-rec.php | 16 ++--- .../compta/facture/invoicetemplate_list.php | 3 +- htdocs/compta/facture/list.php | 3 +- htdocs/contact/agenda.php | 2 +- htdocs/contact/card.php | 6 +- htdocs/contact/list.php | 3 +- htdocs/contrat/card.php | 24 +++---- htdocs/contrat/class/contrat.class.php | 15 ++-- htdocs/contrat/list.php | 3 +- htdocs/contrat/services_list.php | 3 +- .../core/class/commondocgenerator.class.php | 14 ++-- htdocs/core/class/commonobject.class.php | 41 ++++++----- htdocs/core/class/extrafields.class.php | 17 +++-- htdocs/core/class/html.formactions.class.php | 2 +- htdocs/core/class/html.formticket.class.php | 2 +- htdocs/core/lib/company.lib.php | 2 +- htdocs/core/lib/project.lib.php | 14 ++-- .../doc/doc_generic_project_odt.modules.php | 8 +-- .../task/doc/doc_generic_task_odt.modules.php | 2 +- .../stock/doc/pdf_stdmovement.modules.php | 2 +- htdocs/core/tpl/advtarget.tpl.php | 41 +++++------ htdocs/core/tpl/extrafields_add.tpl.php | 4 +- .../tpl/extrafields_list_search_title.tpl.php | 2 +- htdocs/core/tpl/extrafields_view.tpl.php | 3 +- htdocs/core/tpl/objectline_edit.tpl.php | 4 +- htdocs/core/tpl/objectline_view.tpl.php | 8 +-- htdocs/cron/list.php | 2 +- htdocs/don/card.php | 8 +-- htdocs/expedition/card.php | 49 ++++++------- htdocs/expedition/list.php | 17 +---- htdocs/expedition/shipment.php | 5 +- htdocs/expensereport/card.php | 7 +- htdocs/expensereport/list.php | 3 +- htdocs/fichinter/card-rec.php | 5 +- htdocs/fichinter/card.php | 44 +++++------- htdocs/fichinter/list.php | 4 +- htdocs/fourn/card.php | 5 +- htdocs/fourn/commande/card.php | 17 ++--- htdocs/fourn/commande/list.php | 3 +- htdocs/fourn/commande/orderstoinvoice.php | 5 +- htdocs/fourn/facture/card.php | 22 ++---- htdocs/fourn/facture/list.php | 3 +- htdocs/fourn/facture/paiement.php | 6 +- htdocs/holiday/card.php | 5 +- htdocs/holiday/list.php | 3 +- htdocs/livraison/card.php | 29 ++++---- .../template/myobject_agenda.php | 2 +- .../modulebuilder/template/myobject_card.php | 8 ++- .../template/myobject_document.php | 2 +- .../modulebuilder/template/myobject_list.php | 7 +- .../modulebuilder/template/myobject_note.php | 2 +- htdocs/opensurvey/list.php | 2 +- htdocs/product/card.php | 6 +- .../class/price_parser.class.php | 2 +- htdocs/product/inventory/card.php | 63 ++++++++--------- htdocs/product/inventory/list.php | 2 +- htdocs/product/list.php | 2 +- htdocs/product/stock/card.php | 9 ++- htdocs/product/stock/list.php | 2 +- htdocs/product/stock/movement_card.php | 3 +- htdocs/product/stock/movement_list.php | 3 +- htdocs/product/stock/product.php | 2 +- htdocs/product/stock/productlot_card.php | 5 +- htdocs/product/stock/productlot_list.php | 3 +- htdocs/projet/activity/perday.php | 22 +++--- htdocs/projet/activity/perweek.php | 7 +- htdocs/projet/card.php | 6 +- htdocs/projet/comment.php | 2 +- htdocs/projet/list.php | 3 +- htdocs/projet/tasks.php | 7 +- htdocs/projet/tasks/comment.php | 2 +- htdocs/projet/tasks/list.php | 2 +- htdocs/projet/tasks/task.php | 4 +- htdocs/projet/tasks/time.php | 4 +- htdocs/public/members/new.php | 4 +- htdocs/public/members/public_card.php | 3 +- htdocs/public/ticket/create_ticket.php | 6 +- htdocs/public/ticket/list.php | 43 ++++++------ htdocs/reception/card.php | 48 ++++++------- htdocs/reception/class/reception.class.php | 4 +- htdocs/reception/list.php | 22 ++---- htdocs/resource/card.php | 6 +- htdocs/resource/class/dolresource.class.php | 23 +++---- htdocs/resource/list.php | 2 +- htdocs/salaries/card.php | 6 +- htdocs/societe/card.php | 9 +-- htdocs/societe/contact.php | 4 +- htdocs/societe/list.php | 3 +- htdocs/societe/paymentmodes.php | 6 +- htdocs/societe/website.php | 6 +- htdocs/supplier_proposal/card.php | 17 ++--- htdocs/supplier_proposal/list.php | 3 +- htdocs/ticket/agenda.php | 3 +- htdocs/ticket/card.php | 11 ++- htdocs/ticket/class/ticket.class.php | 2 +- htdocs/ticket/list.php | 2 +- htdocs/ticket/messaging.php | 2 +- htdocs/user/card.php | 8 +-- htdocs/user/group/card.php | 6 +- htdocs/user/list.php | 2 +- htdocs/webservices/server_actioncomm.php | 8 +-- htdocs/webservices/server_contact.php | 8 +-- htdocs/webservices/server_order.php | 10 +-- .../webservices/server_productorservice.php | 10 +-- htdocs/webservices/server_project.php | 6 +- htdocs/webservices/server_thirdparty.php | 10 +-- htdocs/webservices/server_user.php | 4 +- htdocs/website/websiteaccount_card.php | 7 +- htdocs/zapier/hook_agenda.php | 3 +- htdocs/zapier/hook_card.php | 4 +- htdocs/zapier/hook_document.php | 3 +- htdocs/zapier/hook_list.php | 5 +- htdocs/zapier/hook_note.php | 3 +- 156 files changed, 622 insertions(+), 649 deletions(-) diff --git a/htdocs/adherents/card.php b/htdocs/adherents/card.php index 4653ed43714..20da8ffd2f7 100644 --- a/htdocs/adherents/card.php +++ b/htdocs/adherents/card.php @@ -68,7 +68,7 @@ $object = new Adherent($db); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extralabels=$extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); // Get object canvas (By default, this is not defined, so standard usage of dolibarr) $object->getCanvas($id); @@ -320,7 +320,7 @@ if (empty($reshook)) $object->public = GETPOST("public", 'alpha'); // Fill array 'array_options' with data from add form - $ret = $extrafields->setOptionalsFromPost($extralabels, $object); + $ret = $extrafields->setOptionalsFromPost(null, $object); if ($ret < 0) $error++; // Check if we need to also synchronize user information @@ -497,7 +497,7 @@ if (empty($reshook)) $object->public = $public; // Fill array 'array_options' with data from add form - $ret = $extrafields->setOptionalsFromPost($extralabels, $object); + $ret = $extrafields->setOptionalsFromPost(null, $object); if ($ret < 0) $error++; // Check parameters @@ -1362,15 +1362,8 @@ else else print $langs->trans("NoDolibarrAccess"); print ''; - // Other attributes + // Other attributes. Fields from hook formObjectOptions and Extrafields. include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_add.tpl.php'; - //Hooks here - $reshook=$hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - if (empty($reshook)) - { - print $object->showOptionals($extrafields, 'edit'); - } print '
    ' . $langs->trans("NbIteConsecutive")."
    '; + print ''; $object->fk_statut = $obj->fk_statut; print $object->getLibStatut(2); print ''; + print ''; $object->fk_statut = $obj->fk_statut; print $object->getLibStatut(2); print '
    '.$langs->trans("UserExpenseValidator").'
    '; + $text = $langs->trans("UserExpenseValidator"); + print $form->textwithpicto($text, $langs->trans("ValidatorIsSupervisorByDefault"), 1, 'help'); + print ''; print $form->select_dolusers($object->fk_user_expense_validator, 'fk_user_expense_validator', 1, array($object->id), 0, '', 0, $conf->entity, 0, 0, '', 0, '', 'maxwidth300'); print '
    ' . $langs->trans("UserHolidayValidator") . '
    '; + $text = $langs->trans("UserHolidayValidator"); + print $form->textwithpicto($text, $langs->trans("ValidatorIsSupervisorByDefault"), 1, 'help'); + print ''; print $form->select_dolusers($object->fk_user_holiday_validator, 'fk_user_holiday_validator', 1, array($object->id), 0, '', 0, $conf->entity, 0, 0, '', 0, '', 'maxwidth300'); print '
    '.$langs->trans("UserExpenseValidator").'
    '; + $text = $langs->trans("UserExpenseValidator"); + print $form->textwithpicto($text, $langs->trans("ValidatorIsSupervisorByDefault"), 1, 'help'); + print ''; if (empty($object->fk_user_expense_validator)) print $langs->trans("None"); else { @@ -1599,7 +1608,10 @@ else print "
    '.$langs->trans("UserHolidayValidator").'
    '; + $text = $langs->trans("UserHolidayValidator"); + print $form->textwithpicto($text , $langs->trans("ValidatorIsSupervisorByDefault"), 1, 'help'); + print ''; if (empty($object->fk_user_holiday_validator)) print $langs->trans("None"); else { @@ -2292,7 +2304,10 @@ else print "
    '.$langs->trans("UserExpenseValidator").'
    '; + $text = $langs->trans("UserExpenseValidator"); + print $form->textwithpicto($text, $langs->trans("ValidatorIsSupervisorByDefault"), 1, 'help'); + print ''; if ($caneditfield) { @@ -2309,7 +2324,10 @@ else print "
    '.$langs->trans("UserHolidayValidator").'
    '; + $text = $langs->trans("UserHolidayValidator"); + print $form->textwithpicto($text, $langs->trans("ValidatorIsSupervisorByDefault"), 1, 'help'); + print ''; if ($caneditfield) { From 848b9cc57a073a0675b20de38a197711b2ef5385 Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sat, 5 Oct 2019 22:24:59 +0200 Subject: [PATCH 141/484] Translations --- htdocs/langs/en_US/users.lang | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/users.lang b/htdocs/langs/en_US/users.lang index fb35cb5e112..d8758ac9dc0 100644 --- a/htdocs/langs/en_US/users.lang +++ b/htdocs/langs/en_US/users.lang @@ -109,4 +109,7 @@ UserLogoff=User logout UserLogged=User logged DateEmployment=Employment Start Date DateEmploymentEnd=Employment End Date -CantDisableYourself=You can't disable your own user record \ No newline at end of file +CantDisableYourself=You can't disable your own user record +UserExpenseValidator=Expense report validator +UserHolidayValidator=Leave request validator +ValidatorIsSupervisorByDefault=By default, the supervisor is the validator for expense reports and leave requests From 1047a8ea0f73957461f36b51ef4f0d453402d2f2 Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Sat, 5 Oct 2019 20:25:17 +0000 Subject: [PATCH 142/484] Fixing style errors. --- htdocs/user/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/user/card.php b/htdocs/user/card.php index 40abaea7d3d..6a821664ee7 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -1610,7 +1610,7 @@ else // Holiday request validator print '
    '; $text = $langs->trans("UserHolidayValidator"); - print $form->textwithpicto($text , $langs->trans("ValidatorIsSupervisorByDefault"), 1, 'help'); + print $form->textwithpicto($text, $langs->trans("ValidatorIsSupervisorByDefault"), 1, 'help'); print ''; if (empty($object->fk_user_holiday_validator)) print $langs->trans("None"); From 21dcc549fad441f75a537ae47d5b0ae62381b5f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sun, 6 Oct 2019 10:09:06 +0200 Subject: [PATCH 143/484] translation for holidays actioncomm --- htdocs/langs/en_US/agenda.lang | 3 +++ 1 file changed, 3 insertions(+) diff --git a/htdocs/langs/en_US/agenda.lang b/htdocs/langs/en_US/agenda.lang index 4a7ab99ca77..1ebb2c3edd8 100644 --- a/htdocs/langs/en_US/agenda.lang +++ b/htdocs/langs/en_US/agenda.lang @@ -83,6 +83,9 @@ InvoiceDeleted=Invoice deleted PRODUCT_CREATEInDolibarr=Product %s created PRODUCT_MODIFYInDolibarr=Product %s modified PRODUCT_DELETEInDolibarr=Product %s deleted +HOLIDAY_CREATEInDolibarr=Request for leave %s created +HOLIDAY_MODIFYInDolibarr=Request for leave %s modified +HOLIDAY_DELETEInDolibarr=Request for leave %s deleted EXPENSE_REPORT_CREATEInDolibarr=Expense report %s created EXPENSE_REPORT_VALIDATEInDolibarr=Expense report %s validated EXPENSE_REPORT_APPROVEInDolibarr=Expense report %s approved From bfd8bc839e38565d384a29d7f78809bc3cb28906 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sun, 6 Oct 2019 10:28:09 +0200 Subject: [PATCH 144/484] Update card.php --- htdocs/comm/action/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php index 4bd5ceb4d8f..4b7695bb503 100644 --- a/htdocs/comm/action/card.php +++ b/htdocs/comm/action/card.php @@ -1622,7 +1622,7 @@ if ($id > 0) // Type if (! empty($conf->global->AGENDA_USE_EVENT_TYPE)) { - print '
    '.$langs->trans("Type").''.$object->type.'
    '.$langs->trans("Type").''.$langs->trans($object->type).'
    '; dol_fiche_end(); diff --git a/htdocs/adherents/cartes/carte.php b/htdocs/adherents/cartes/carte.php index d7e0e9215a9..177e2eef18f 100644 --- a/htdocs/adherents/cartes/carte.php +++ b/htdocs/adherents/cartes/carte.php @@ -48,7 +48,7 @@ $object=new Adherent($db); $extrafields = new ExtraFields($db); // Fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); /* diff --git a/htdocs/adherents/list.php b/htdocs/adherents/list.php index 57d99a387e2..877dde34af0 100644 --- a/htdocs/adherents/list.php +++ b/htdocs/adherents/list.php @@ -89,7 +89,7 @@ $hookmanager->initHooks(array('memberlist')); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); $search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); diff --git a/htdocs/adherents/subscription.php b/htdocs/adherents/subscription.php index 97f259b53de..8cde161a88d 100644 --- a/htdocs/adherents/subscription.php +++ b/htdocs/adherents/subscription.php @@ -68,7 +68,7 @@ $extrafields = new ExtraFields($db); $adht = new AdherentType($db); // fetch optionals attributes and labels -$extralabels=$extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); $errmsg=''; $errmsgs=array(); diff --git a/htdocs/adherents/subscription/list.php b/htdocs/adherents/subscription/list.php index 5d8bbdad08d..dbc14e2999e 100644 --- a/htdocs/adherents/subscription/list.php +++ b/htdocs/adherents/subscription/list.php @@ -68,7 +68,7 @@ $hookmanager->initHooks(array('subscriptionlist')); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); $search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); diff --git a/htdocs/adherents/type.php b/htdocs/adherents/type.php index ac15e8d28ae..7b540a92d18 100644 --- a/htdocs/adherents/type.php +++ b/htdocs/adherents/type.php @@ -73,7 +73,7 @@ $object = new AdherentType($db); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extralabels=$extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // All tests are required to be compatible with all browsers { @@ -113,7 +113,7 @@ if ($action == 'add' && $user->rights->adherent->configurer) { $object->vote = (int) $vote; // Fill array 'array_options' with data from add form - $ret = $extrafields->setOptionalsFromPost($extralabels, $object); + $ret = $extrafields->setOptionalsFromPost(null, $object); if ($ret < 0) $error++; if (empty($object->label)) { @@ -168,7 +168,7 @@ if ($action == 'update' && $user->rights->adherent->configurer) $object->vote = (boolean) trim($vote); // Fill array 'array_options' with data from add form - $ret = $extrafields->setOptionalsFromPost($extralabels, $object); + $ret = $extrafields->setOptionalsFromPost(null, $object); if ($ret < 0) $error++; $ret=$object->update($user); diff --git a/htdocs/admin/emailcollector_card.php b/htdocs/admin/emailcollector_card.php index 24aa836a038..a2416dfc90f 100644 --- a/htdocs/admin/emailcollector_card.php +++ b/htdocs/admin/emailcollector_card.php @@ -57,7 +57,7 @@ $diroutputmassaction = $conf->emailcollector->dir_output . '/temp/massgeneration $hookmanager->initHooks(array('emailcollectorcard')); // Note that conf->hooks_modules contains array // Fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); $search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); diff --git a/htdocs/admin/emailcollector_list.php b/htdocs/admin/emailcollector_list.php index b9804e57f03..09ba5f7224f 100644 --- a/htdocs/admin/emailcollector_list.php +++ b/htdocs/admin/emailcollector_list.php @@ -68,7 +68,7 @@ $diroutputmassaction = $conf->emailcollector->dir_output . '/temp/massgeneration $hookmanager->initHooks(array('emailcollectorlist')); // Note that conf->hooks_modules contains array // Fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); $search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); diff --git a/htdocs/admin/mails_senderprofile_list.php b/htdocs/admin/mails_senderprofile_list.php index 2250980a98d..0aa53b11b8d 100644 --- a/htdocs/admin/mails_senderprofile_list.php +++ b/htdocs/admin/mails_senderprofile_list.php @@ -61,7 +61,7 @@ $diroutputmassaction=$conf->admin->dir_output . '/temp/massgeneration/'.$user->i $hookmanager->initHooks(array('emailsenderprofilelist')); // Note that conf->hooks_modules contains array // Fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); $search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); diff --git a/htdocs/asset/card.php b/htdocs/asset/card.php index 77fb734be54..7c2f1b42f32 100644 --- a/htdocs/asset/card.php +++ b/htdocs/asset/card.php @@ -45,7 +45,7 @@ $diroutputmassaction=$conf->asset->dir_output . '/temp/massgeneration/'.$user->i $hookmanager->initHooks(array('assetcard')); // Note that conf->hooks_modules contains array // Fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); $search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); @@ -64,9 +64,6 @@ if (empty($action) && empty($id) && empty($ref)) $action='view'; //if ($user->societe_id > 0) $socid = $user->societe_id; //$result = restrictedArea($user, 'asset', $id); -// fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label($object->table_element); - // Load object include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once. @@ -207,7 +204,7 @@ if (($id || $ref) && $action == 'edit') // Part to show record if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'create'))) { - $res = $object->fetch_optionals($object->id, $extralabels); + $res = $object->fetch_optionals($object->id); $head = asset_prepare_head($object); dol_fiche_head($head, 'card', $langs->trans("Asset"), -1, 'generic'); diff --git a/htdocs/asset/document.php b/htdocs/asset/document.php index 3fc0b1efe3d..d1fa8c1e04b 100644 --- a/htdocs/asset/document.php +++ b/htdocs/asset/document.php @@ -62,7 +62,7 @@ $diroutputmassaction=$conf->assets->dir_output . '/temp/massgeneration/'.$user-> $hookmanager->initHooks(array('assetdocument')); // Note that conf->hooks_modules contains array // Fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); // Load object include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals diff --git a/htdocs/asset/list.php b/htdocs/asset/list.php index fb752b00087..6c4e5e92f20 100644 --- a/htdocs/asset/list.php +++ b/htdocs/asset/list.php @@ -62,7 +62,7 @@ $diroutputmassaction=$conf->asset->dir_output . '/temp/massgeneration/'.$user->i $hookmanager->initHooks(array('assetlist')); // Note that conf->hooks_modules contains array // Fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); $search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); diff --git a/htdocs/asset/note.php b/htdocs/asset/note.php index b09ade8715b..a2b3672c983 100644 --- a/htdocs/asset/note.php +++ b/htdocs/asset/note.php @@ -43,7 +43,7 @@ $diroutputmassaction=$conf->asset->dir_output . '/temp/massgeneration/'.$user->i $hookmanager->initHooks(array('assetnote')); // Note that conf->hooks_modules contains array // Fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); // Security check - Protection if external user //if ($user->societe_id > 0) access_forbidden(); diff --git a/htdocs/asset/type.php b/htdocs/asset/type.php index 8be5cdc104e..6803f9d65e7 100644 --- a/htdocs/asset/type.php +++ b/htdocs/asset/type.php @@ -65,7 +65,7 @@ $object = new AssetType($db); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extralabels=$extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // All tests are required to be compatible with all browsers { @@ -102,7 +102,7 @@ if ($action == 'add' && $user->rights->asset->write) $object->note = trim($comment); // Fill array 'array_options' with data from add form - $ret = $extrafields->setOptionalsFromPost($extralabels, $object); + $ret = $extrafields->setOptionalsFromPost(null, $object); if ($ret < 0) $error++; if (empty($object->label)) { @@ -155,7 +155,7 @@ if ($action == 'update' && $user->rights->asset->write) $object->note = trim($comment); // Fill array 'array_options' with data from add form - $ret = $extrafields->setOptionalsFromPost($extralabels, $object); + $ret = $extrafields->setOptionalsFromPost(null, $object); if ($ret < 0) $error++; $ret=$object->update($user); diff --git a/htdocs/bom/bom_agenda.php b/htdocs/bom/bom_agenda.php index 3ef8c38f364..6b72b0a6712 100644 --- a/htdocs/bom/bom_agenda.php +++ b/htdocs/bom/bom_agenda.php @@ -74,7 +74,7 @@ $extrafields = new ExtraFields($db); $diroutputmassaction=$conf->bom->dir_output . '/temp/massgeneration/'.$user->id; $hookmanager->initHooks(array('bomagenda','globalcard')); // Note that conf->hooks_modules contains array // Fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label('bom'); +$extrafields->fetch_name_optionals_label($object->table_element); // Load object include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals diff --git a/htdocs/bom/bom_card.php b/htdocs/bom/bom_card.php index 1496ba56851..5cc6f7e8a57 100644 --- a/htdocs/bom/bom_card.php +++ b/htdocs/bom/bom_card.php @@ -48,7 +48,7 @@ $extrafields = new ExtraFields($db); $diroutputmassaction=$conf->bom->dir_output . '/temp/massgeneration/'.$user->id; $hookmanager->initHooks(array('bomcard', 'globalcard')); // Note that conf->hooks_modules contains array // Fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); $search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); // Initialize array of search criterias diff --git a/htdocs/bom/bom_document.php b/htdocs/bom/bom_document.php index dadf92ea6d0..826222af8b0 100644 --- a/htdocs/bom/bom_document.php +++ b/htdocs/bom/bom_document.php @@ -63,7 +63,7 @@ $extrafields = new ExtraFields($db); $diroutputmassaction=$conf->bom->dir_output . '/temp/massgeneration/'.$user->id; $hookmanager->initHooks(array('bomdocument', 'globalcard')); // Note that conf->hooks_modules contains array // Fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); // Load object include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals diff --git a/htdocs/bom/bom_list.php b/htdocs/bom/bom_list.php index d7fce692f07..4b0a6ff29be 100644 --- a/htdocs/bom/bom_list.php +++ b/htdocs/bom/bom_list.php @@ -62,7 +62,7 @@ $diroutputmassaction = $conf->bom->dir_output . '/temp/massgeneration/'.$user->i $hookmanager->initHooks(array('bomlist')); // Note that conf->hooks_modules contains array // Fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label($object->table_element); // Load $extrafields->attributes['bom'] +$extrafields->fetch_name_optionals_label($object->table_element); $search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); diff --git a/htdocs/bom/bom_note.php b/htdocs/bom/bom_note.php index 6e8d63ab851..914dfcfa4e8 100644 --- a/htdocs/bom/bom_note.php +++ b/htdocs/bom/bom_note.php @@ -44,7 +44,7 @@ $diroutputmassaction=$conf->bom->dir_output . '/temp/massgeneration/'.$user->id; $hookmanager->initHooks(array('bomnote','globalcard')); // Note that conf->hooks_modules contains array // Fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); // Security check - Protection if external user //if ($user->societe_id > 0) access_forbidden(); diff --git a/htdocs/bom/tpl/objectline_create.tpl.php b/htdocs/bom/tpl/objectline_create.tpl.php index 5fbc0877927..b574efc81df 100644 --- a/htdocs/bom/tpl/objectline_create.tpl.php +++ b/htdocs/bom/tpl/objectline_create.tpl.php @@ -140,7 +140,7 @@ if ($nolinesbefore) { showOptionals($extrafieldsline, 'edit', array('style'=>$bcnd[$var], 'colspan'=>$coldisplay), '', '', empty($conf->global->MAIN_EXTRAFIELDS_IN_ONE_TD)?0:1); + print $objectline->showOptionals($extrafields, 'edit', array('style'=>$bcnd[$var], 'colspan'=>$coldisplay), '', '', empty($conf->global->MAIN_EXTRAFIELDS_IN_ONE_TD)?0:1); } ?> diff --git a/htdocs/bom/tpl/objectline_edit.tpl.php b/htdocs/bom/tpl/objectline_edit.tpl.php index a650b585740..05b9094d10e 100644 --- a/htdocs/bom/tpl/objectline_edit.tpl.php +++ b/htdocs/bom/tpl/objectline_edit.tpl.php @@ -138,7 +138,7 @@ $coldisplay=0; showOptionals($extrafieldsline, 'edit', array('style'=>$bcnd[$var], 'colspan'=>$coldisplay), '', '', empty($conf->global->MAIN_EXTRAFIELDS_IN_ONE_TD)?0:1); + print $objectline->showOptionals($extrafields, 'edit', array('style'=>$bcnd[$var], 'colspan'=>$coldisplay), '', '', empty($conf->global->MAIN_EXTRAFIELDS_IN_ONE_TD)?0:1); } ?> diff --git a/htdocs/bom/tpl/objectline_view.tpl.php b/htdocs/bom/tpl/objectline_view.tpl.php index 49b6f0e6488..9582e69f967 100644 --- a/htdocs/bom/tpl/objectline_view.tpl.php +++ b/htdocs/bom/tpl/objectline_view.tpl.php @@ -149,9 +149,9 @@ $objectline = new BOMLine($object->db); showOptionals($extrafieldsline, 'view', array('style'=>'class="drag drop oddeven"','colspan'=>$coldisplay), '', '', empty($conf->global->MAIN_EXTRAFIELDS_IN_ONE_TD)?0:1); + print $line->showOptionals($extrafields, 'view', array('style'=>'class="drag drop oddeven"','colspan'=>$coldisplay), '', '', empty($conf->global->MAIN_EXTRAFIELDS_IN_ONE_TD)?0:1); } ?> diff --git a/htdocs/categories/card.php b/htdocs/categories/card.php index cf29dc38561..68e2ff5e1d0 100644 --- a/htdocs/categories/card.php +++ b/htdocs/categories/card.php @@ -68,7 +68,7 @@ if ($catorigin && $type == Categorie::TYPE_PRODUCT) $idCatOrigin = $catorigin; $object = new Categorie($db); $extrafields = new ExtraFields($db); -$extralabels=$extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); // Initialize technical object to manage hooks. Note that conf->hooks_modules contains array array $hookmanager->initHooks(array('categorycard')); @@ -137,7 +137,7 @@ if ($action == 'add' && $user->rights->categorie->creer) if ($parent != "-1") $object->fk_parent = $parent; - $ret = $extrafields->setOptionalsFromPost($extralabels, $object); + $ret = $extrafields->setOptionalsFromPost(null, $object); if ($ret < 0) $error++; if (! $object->label) diff --git a/htdocs/categories/edit.php b/htdocs/categories/edit.php index 044d0c8c6d6..39db14a9613 100644 --- a/htdocs/categories/edit.php +++ b/htdocs/categories/edit.php @@ -62,7 +62,7 @@ if ($id > 0) } $extrafields = new ExtraFields($db); -$extralabels=$extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); // Initialize technical object to manage hooks. Note that conf->hooks_modules contains array array $hookmanager->initHooks(array('categorycard')); @@ -102,7 +102,7 @@ if ($action == 'update' && $user->rights->categorie->creer) } if (! $error && empty($object->error)) { - $ret = $extrafields->setOptionalsFromPost($extralabels, $object); + $ret = $extrafields->setOptionalsFromPost(null, $object); if ($ret < 0) $error++; if (! $error && $object->update($user) > 0) diff --git a/htdocs/categories/viewcat.php b/htdocs/categories/viewcat.php index ec4998b6ea3..737b488c090 100644 --- a/htdocs/categories/viewcat.php +++ b/htdocs/categories/viewcat.php @@ -84,7 +84,7 @@ $type=$object->type; if (is_numeric($type)) $type=Categorie::$MAP_ID_TO_CODE[$type]; // For backward compatibility $extrafields = new ExtraFields($db); -$extralabels = $extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); // Initialize technical object to manage hooks. Note that conf->hooks_modules contains array array $hookmanager->initHooks(array('categorycard','globalcard')); diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php index 4bd5ceb4d8f..cf3b2e8cf3a 100644 --- a/htdocs/comm/action/card.php +++ b/htdocs/comm/action/card.php @@ -99,7 +99,7 @@ if ($id > 0 && $action!='add') { } // fetch optionals attributes and labels -$extralabels=$extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); //var_dump($_POST); @@ -361,7 +361,7 @@ if (empty($reshook) && $action == 'add') } // Fill array 'array_options' with data from add form - $ret = $extrafields->setOptionalsFromPost($extralabels, $object); + $ret = $extrafields->setOptionalsFromPost(null, $object); if ($ret < 0) $error++; if (! $error) @@ -526,7 +526,7 @@ if (empty($reshook) && $action == 'update') } // Fill array 'array_options' with data from add form - $ret = $extrafields->setOptionalsFromPost($extralabels, $object); + $ret = $extrafields->setOptionalsFromPost(null, $object); if ($ret < 0) $error++; if (!$error) { diff --git a/htdocs/comm/action/list.php b/htdocs/comm/action/list.php index 29a88111f17..efb11a7e22b 100644 --- a/htdocs/comm/action/list.php +++ b/htdocs/comm/action/list.php @@ -82,7 +82,7 @@ $hookmanager->initHooks(array('agendalist')); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); $search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); // If not choice done on calendar owner, we filter on user. diff --git a/htdocs/comm/card.php b/htdocs/comm/card.php index 49a52188df9..9fa5f1eb86e 100644 --- a/htdocs/comm/card.php +++ b/htdocs/comm/card.php @@ -80,7 +80,7 @@ $object = new Client($db); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extralabels=$extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('thirdpartycomm','globalcard')); @@ -194,8 +194,7 @@ if (empty($reshook)) $object->oldcopy = dol_clone($object); // Fill array 'array_options' with data from update form - $extralabels = $extrafields->fetch_name_optionals_label($object->table_element); - $ret = $extrafields->setOptionalsFromPost($extralabels, $object, GETPOST('attribute', 'none')); + $ret = $extrafields->setOptionalsFromPost(null, $object, GETPOST('attribute', 'none')); if ($ret < 0) $error++; if (! $error) { diff --git a/htdocs/comm/mailing/card.php b/htdocs/comm/mailing/card.php index 9609038ca41..33de68f22a1 100644 --- a/htdocs/comm/mailing/card.php +++ b/htdocs/comm/mailing/card.php @@ -51,7 +51,7 @@ $result=$object->fetch($id); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extralabels=$extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('mailingcard','globalcard')); diff --git a/htdocs/comm/mailing/class/advtargetemailing.class.php b/htdocs/comm/mailing/class/advtargetemailing.class.php index 006e009c78d..7346bf87543 100644 --- a/htdocs/comm/mailing/class/advtargetemailing.class.php +++ b/htdocs/comm/mailing/class/advtargetemailing.class.php @@ -544,7 +544,7 @@ class AdvanceTargetingMailing extends CommonObject public function query_thirdparty($arrayquery) { // phpcs:enable - global $langs,$conf; + global $langs,$conf,$extrafields; $sql = "SELECT"; $sql.= " t.rowid"; @@ -617,29 +617,29 @@ class AdvanceTargetingMailing extends CommonObject //Standard Extrafield feature if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) { - // fetch optionals attributes and labels - dol_include_once('/core/class/extrafields.class.php'); - $extrafields = new ExtraFields($this->db); - $extralabels=$extrafields->fetch_name_optionals_label('societe'); - foreach($extralabels as $key=>$val) { + $elementtype = Societe::$table_element; - if (($extrafields->attribute_type[$key] == 'varchar') || - ($extrafields->attribute_type[$key] == 'text')) { + $extrafields->fetch_name_optionals_label($elementtype); + + foreach($extrafields->attributes[$elementtype]['label'] as $key=>$val) { + + if (($extrafields->attributes[$elementtype]['type'][$key] == 'varchar') || + ($extrafields->attributes[$elementtype]['type'][$key] == 'text')) { if (!empty($arrayquery['options_'.$key])) { $sqlwhere[]= " (te.".$key." LIKE '".$arrayquery['options_'.$key]."')"; } - } elseif (($extrafields->attribute_type[$key] == 'int') || - ($extrafields->attribute_type[$key] == 'double')) { + } elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'int') || + ($extrafields->attributes[$elementtype]['type'][$key] == 'double')) { if (!empty($arrayquery['options_'.$key.'_max'])) { $sqlwhere[]= " (te.".$key." >= ".$arrayquery['options_'.$key.'_max']." AND te.".$key." <= ".$arrayquery['options_'.$key.'_min'].")"; } - } elseif (($extrafields->attribute_type[$key] == 'date') || - ($extrafields->attribute_type[$key] == 'datetime')) { + } elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'date') || + ($extrafields->attributes[$elementtype]['type'][$key] == 'datetime')) { if (!empty($arrayquery['options_'.$key.'_end_dt'])){ $sqlwhere[]= " (te.".$key." >= '".$this->db->idate($arrayquery['options_'.$key.'_st_dt'])."' AND te.".$key." <= '".$this->db->idate($arrayquery['options_'.$key.'_end_dt'])."')"; } - } elseif ($extrafields->attribute_type[$key] == 'boolean') { + } elseif ($extrafields->attributes[$elementtype]['type'][$key] == 'boolean') { if ($arrayquery['options_'.$key]!=''){ $sqlwhere[]= " (te.".$key." = ".$arrayquery['options_'.$key].")"; } @@ -757,29 +757,33 @@ class AdvanceTargetingMailing extends CommonObject //Standard Extrafield feature if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) { + $elementtype = Contact::$table_element; + // fetch optionals attributes and labels dol_include_once('/core/class/extrafields.class.php'); $extrafields = new ExtraFields($this->db); - $extralabels=$extrafields->fetch_name_optionals_label('socpeople'); + $extrafields->fetch_name_optionals_label($elementtype); - foreach($extralabels as $key=>$val) { + $extrafields->fetch_name_optionals_label($elementtype); - if (($extrafields->attribute_type[$key] == 'varchar') || - ($extrafields->attribute_type[$key] == 'text')) { + foreach($extrafields->attributes[$elementtype]['label'] as $key=>$val) { + + if (($extrafields->attributes[$elementtype]['type'][$key] == 'varchar') || + ($extrafields->attributes[$elementtype]['type'][$key] == 'text')) { if (!empty($arrayquery['options_'.$key.'_cnct'])) { $sqlwhere[]= " (te.".$key." LIKE '".$arrayquery['options_'.$key.'_cnct']."')"; } - } elseif (($extrafields->attribute_type[$key] == 'int') || - ($extrafields->attribute_type[$key] == 'double')) { + } elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'int') || + ($extrafields->attributes[$elementtype]['type'][$key] == 'double')) { if (!empty($arrayquery['options_'.$key.'_max'.'_cnct'])) { $sqlwhere[]= " (te.".$key." >= ".$arrayquery['options_'.$key.'_max'.'_cnct']." AND te.".$key." <= ".$arrayquery['options_'.$key.'_min'.'_cnct'].")"; } - } elseif (($extrafields->attribute_type[$key] == 'date') || - ($extrafields->attribute_type[$key] == 'datetime')) { + } elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'date') || + ($extrafields->attributes[$elementtype]['type'][$key] == 'datetime')) { if (!empty($arrayquery['options_'.$key.'_end_dt'.'_cnct'])){ $sqlwhere[]= " (te.".$key." >= '".$this->db->idate($arrayquery['options_'.$key.'_st_dt'.'_cnct'])."' AND te.".$key." <= '".$this->db->idate($arrayquery['options_'.$key.'_end_dt'.'_cnct'])."')"; } - } elseif ($extrafields->attribute_type[$key] == 'boolean') { + } elseif ($extrafields->attributes[$elementtype]['type'][$key] == 'boolean') { if ($arrayquery['options_'.$key.'_cnct']!=''){ if ($arrayquery['options_'.$key.'_cnct']==0) { $sqlwhere[]= " (te.".$key." = ".$arrayquery['options_'.$key.'_cnct']." OR ((te.".$key." IS NULL) AND (te.fk_object IS NOT NULL)))"; @@ -857,29 +861,32 @@ class AdvanceTargetingMailing extends CommonObject //Standard Extrafield feature if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) { + $elementtype = Societe::$table_element; + // fetch optionals attributes and labels dol_include_once('/core/class/extrafields.class.php'); $extrafields = new ExtraFields($this->db); - $extralabels=$extrafields->fetch_name_optionals_label('societe'); - foreach($extralabels as $key=>$val) { + $extrafields->fetch_name_optionals_label($elementtype); - if (($extrafields->attribute_type[$key] == 'varchar') || - ($extrafields->attribute_type[$key] == 'text')) { + foreach($extrafields->attributes[$elementtype]['label'] as $key=>$val) { + + if (($extrafields->attributes[$elementtype]['type'][$key] == 'varchar') || + ($extrafields->attributes[$elementtype]['type'][$key] == 'text')) { if (!empty($arrayquery['options_'.$key])) { $sqlwhere[]= " (tse.".$key." LIKE '".$arrayquery['options_'.$key]."')"; } - } elseif (($extrafields->attribute_type[$key] == 'int') || - ($extrafields->attribute_type[$key] == 'double')) { + } elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'int') || + ($extrafields->attributes[$elementtype]['type'][$key] == 'double')) { if (!empty($arrayquery['options_'.$key.'_max'])) { $sqlwhere[]= " (tse.".$key." >= ".$arrayquery['options_'.$key.'_max']." AND tse.".$key." <= ".$arrayquery['options_'.$key.'_min'].")"; } - } elseif (($extrafields->attribute_type[$key] == 'date') || - ($extrafields->attribute_type[$key] == 'datetime')) { + } elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'date') || + ($extrafields->attributes[$elementtype]['type'][$key] == 'datetime')) { if (!empty($arrayquery['options_'.$key.'_end_dt'])){ $sqlwhere[]= " (tse.".$key." >= '".$this->db->idate($arrayquery['options_'.$key.'_st_dt'])."' AND tse.".$key." <= '".$this->db->idate($arrayquery['options_'.$key.'_end_dt'])."')"; } - } elseif ($extrafields->attribute_type[$key] == 'boolean') { + } elseif ($extrafields->attributes[$elementtype]['type'][$key] == 'boolean') { if ($arrayquery['options_'.$key]!=''){ $sqlwhere[]= " (tse.".$key." = ".$arrayquery['options_'.$key].")"; } diff --git a/htdocs/comm/mailing/list.php b/htdocs/comm/mailing/list.php index 6e308100b5a..ff69bd00c0c 100644 --- a/htdocs/comm/mailing/list.php +++ b/htdocs/comm/mailing/list.php @@ -53,7 +53,7 @@ $hookmanager->initHooks(array('mailinglist')); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); $search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php index 39c80269d8f..b60ebff3e4d 100644 --- a/htdocs/comm/propal/card.php +++ b/htdocs/comm/propal/card.php @@ -93,7 +93,7 @@ $object = new Propal($db); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); // Load object if ($id > 0 || ! empty($ref)) { @@ -410,7 +410,7 @@ if (empty($reshook)) } // Fill array 'array_options' with data from add form - $ret = $extrafields->setOptionalsFromPost($extralabels, $object); + $ret = $extrafields->setOptionalsFromPost(null, $object); if ($ret < 0) { $error ++; $action = 'create'; @@ -841,9 +841,8 @@ if (empty($reshook)) if (empty($remise_percent)) $remise_percent=0; // Extrafields - $extrafieldsline = new ExtraFields($db); - $extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line); - $array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line, $predef); + $extralabelsline = $extrafields->fetch_name_optionals_label($object->table_element_line); + $array_options = $extrafields->getOptionalsFromPost($object->table_element_line, $predef); // Unset extrafield if (is_array($extralabelsline)) { // Get extra fields @@ -1210,9 +1209,8 @@ if (empty($reshook)) $date_end = dol_mktime(GETPOST('date_endhour'), GETPOST('date_endmin'), GETPOST('date_endsec'), GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear')); // Extrafields - $extrafieldsline = new ExtraFields($db); - $extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line); - $array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line); + $extralabelsline = $extrafields->fetch_name_optionals_label($object->table_element_line); + $array_options = $extrafields->getOptionalsFromPost($object->table_element_line); // Unset extrafield if (is_array($extralabelsline)) { // Get extra fields @@ -1379,8 +1377,7 @@ if (empty($reshook)) $object->oldcopy = dol_clone($object); // Fill array 'array_options' with data from update form - $extralabels = $extrafields->fetch_name_optionals_label($object->table_element); - $ret = $extrafields->setOptionalsFromPost($extralabels, $object, GETPOST('attribute', 'none')); + $ret = $extrafields->setOptionalsFromPost(null, $object, GETPOST('attribute', 'none')); if ($ret < 0) $error++; if (! $error) { diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php index 112cc76527d..f81949fb11d 100644 --- a/htdocs/comm/propal/list.php +++ b/htdocs/comm/propal/list.php @@ -129,7 +129,7 @@ $hookmanager->initHooks(array('propallist')); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); $search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index ff4606655a5..da676fda4b4 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -88,7 +88,7 @@ $object = new Commande($db); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); // Load object include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once @@ -284,7 +284,7 @@ if (empty($reshook)) // Fill array 'array_options' with data from add form if (! $error) { - $ret = $extrafields->setOptionalsFromPost($extralabels, $object); + $ret = $extrafields->setOptionalsFromPost(null, $object); if ($ret < 0) $error++; } @@ -673,9 +673,8 @@ if (empty($reshook)) $remise_percent = (GETPOST('remise_percent'.$predef) != '' ? GETPOST('remise_percent'.$predef) : 0); // Extrafields - $extrafieldsline = new ExtraFields($db); - $extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line); - $array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line, $predef); + $extralabelsline = $extrafields->fetch_name_optionals_label($object->table_element_line); + $array_options = $extrafields->getOptionalsFromPost($object->table_element_line, $predef); // Unset extrafield if (is_array($extralabelsline)) { // Get extra fields @@ -1037,9 +1036,8 @@ if (empty($reshook)) $buyingprice = price2num(GETPOST('buying_price') != '' ? GETPOST('buying_price') : ''); // If buying_price is '0', we muste keep this value // Extrafields Lines - $extrafieldsline = new ExtraFields($db); - $extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line); - $array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line); + $extralabelsline = $extrafields->fetch_name_optionals_label($object->table_element_line); + $array_options = $extrafields->getOptionalsFromPost($object->table_element_line); // Unset extrafield POST Data if (is_array($extralabelsline)) { foreach ($extralabelsline as $key => $value) { @@ -1297,8 +1295,7 @@ if (empty($reshook)) $object->oldcopy = dol_clone($object); // Fill array 'array_options' with data from update form - $extralabels = $extrafields->fetch_name_optionals_label($object->table_element); - $ret = $extrafields->setOptionalsFromPost($extralabels, $object, GETPOST('attribute', 'none')); + $ret = $extrafields->setOptionalsFromPost(null, $object, GETPOST('attribute', 'none')); if ($ret < 0) $error++; if (! $error) diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php index 6db881a656d..75304d34eb2 100644 --- a/htdocs/commande/list.php +++ b/htdocs/commande/list.php @@ -111,7 +111,7 @@ $hookmanager->initHooks(array('orderlist')); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label('commande'); +$extrafields->fetch_name_optionals_label('commande'); $search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); // List of fields to search into when doing a "search in all" diff --git a/htdocs/commande/orderstoinvoice.php b/htdocs/commande/orderstoinvoice.php index da9af8b3569..fae23fa8bcd 100644 --- a/htdocs/commande/orderstoinvoice.php +++ b/htdocs/commande/orderstoinvoice.php @@ -72,8 +72,10 @@ $date_endy = dol_mktime(23, 59, 59, $_REQUEST["date_end_delymonth"], $_REQUEST[" $extrafields = new ExtraFields($db); +$object=new Facture($db); + // fetch optionals attributes and labels -$extralabels=$extrafields->fetch_name_optionals_label('facture'); +$extrafields->fetch_name_optionals_label($object->table_element); if ($action == 'create') { @@ -141,7 +143,6 @@ if (($action == 'create' || $action == 'add') && !$error) $result = restrictedArea($user, 'facture', $id, '', '', 'fk_soc', $fieldid); $usehm=$conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE; - $object=new Facture($db); // Insert new invoice in database if ($action == 'add' && $user->rights->facture->creer) @@ -177,7 +178,7 @@ if (($action == 'create' || $action == 'add') && !$error) $object->remise_absolue = $_POST['remise_absolue']; $object->remise_percent = $_POST['remise_percent']; - $ret = $extrafields->setOptionalsFromPost($extralabels, $object); + $ret = $extrafields->setOptionalsFromPost(null, $object); if ($ret < 0) $error++; if ($_POST['origin'] && $_POST['originid']) diff --git a/htdocs/compta/bank/bankentries_list.php b/htdocs/compta/bank/bankentries_list.php index 3b2a63cd839..c1b7483ecfd 100644 --- a/htdocs/compta/bank/bankentries_list.php +++ b/htdocs/compta/bank/bankentries_list.php @@ -137,7 +137,7 @@ $hookmanager->initHooks(array('banktransactionlist', $contextpage)); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label('banktransaction'); +$extrafields->fetch_name_optionals_label('banktransaction'); $search_array_options=$extrafields->getOptionalsFromPost('banktransaction', '', 'search_'); $arrayfields=array( diff --git a/htdocs/compta/bank/card.php b/htdocs/compta/bank/card.php index 023a757ce73..fd5a2b42723 100644 --- a/htdocs/compta/bank/card.php +++ b/htdocs/compta/bank/card.php @@ -57,8 +57,9 @@ $result=restrictedArea($user, 'banque', $id, 'bank_account&bank_account', '', '' $object = new Account($db); $extrafields = new ExtraFields($db); + // fetch optionals attributes and labels -$extralabels=$extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('bankcard','globalcard')); @@ -136,7 +137,7 @@ if ($action == 'add') } // Fill array 'array_options' with data from add form - $ret = $extrafields->setOptionalsFromPost($extralabels, $object); + $ret = $extrafields->setOptionalsFromPost(null, $object); if (! $error) { @@ -241,7 +242,7 @@ if ($action == 'update') if (! $error) { // Fill array 'array_options' with data from add form - $ret = $extrafields->setOptionalsFromPost($extralabels, $object); + $ret = $extrafields->setOptionalsFromPost(null, $object); } if (! $error) @@ -433,7 +434,7 @@ if ($action == 'create') print $hookmanager->resPrint; if (empty($reshook)) { - print $object->showOptionals($extrafields, 'edit', $parameters); + print $object->showOptionals($extrafields, 'edit'); } print ''; diff --git a/htdocs/compta/bank/list.php b/htdocs/compta/bank/list.php index 2bdea48487e..77971439f75 100644 --- a/htdocs/compta/bank/list.php +++ b/htdocs/compta/bank/list.php @@ -73,7 +73,7 @@ $hookmanager->initHooks(array('bankaccountlist')); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label('bank_account'); +$extrafields->fetch_name_optionals_label('bank_account'); $search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); // List of fields to search into when doing a "search in all" diff --git a/htdocs/compta/cashcontrol/cashcontrol_card.php b/htdocs/compta/cashcontrol/cashcontrol_card.php index d27f915fe33..aef5c0573f9 100644 --- a/htdocs/compta/cashcontrol/cashcontrol_card.php +++ b/htdocs/compta/cashcontrol/cashcontrol_card.php @@ -72,7 +72,7 @@ $object= new CashControl($db); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('cashcontrolcard','globalcard')); diff --git a/htdocs/compta/cashcontrol/cashcontrol_list.php b/htdocs/compta/cashcontrol/cashcontrol_list.php index 00ba378c3b4..6b767bc3949 100644 --- a/htdocs/compta/cashcontrol/cashcontrol_list.php +++ b/htdocs/compta/cashcontrol/cashcontrol_list.php @@ -78,8 +78,10 @@ $object=new CashControl($db); $extrafields = new ExtraFields($db); $diroutputmassaction=$conf->monmodule->dir_output . '/temp/massgeneration/'.$user->id; $hookmanager->initHooks(array('cashcontrol')); // Note that conf->hooks_modules contains array + // Fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label('cashcontrol'); // Load $extrafields->attributes['cashcontrol'] +$extrafields->fetch_name_optionals_label($object->table_element); + $search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); // Default sort order (if not yet defined by previous GETPOST) diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index f2b1d12ebde..8cdcb79ff9c 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -902,8 +902,7 @@ if (empty($reshook)) $error = 0; $originentity = GETPOST('originentity'); // Fill array 'array_options' with data from add form - $extralabels = $extrafields->fetch_name_optionals_label($object->table_element); - $ret = $extrafields->setOptionalsFromPost($extralabels, $object); + $ret = $extrafields->setOptionalsFromPost(null, $object); if ($ret < 0) $error++; // Replacement invoice @@ -1679,8 +1678,8 @@ if (empty($reshook)) $nextSituationInvoice = new Facture($db); $nextSituationInvoice->fetch($id); // create extrafields with data from create form - $extralabels = $extrafields->fetch_name_optionals_label($nextSituationInvoice->table_element); - $ret = $extrafields->setOptionalsFromPost($extralabels, $nextSituationInvoice); + $extrafields->fetch_name_optionals_label($nextSituationInvoice->table_element); + $ret = $extrafields->setOptionalsFromPost(null, $nextSituationInvoice); if ($ret > 0) { $nextSituationInvoice->insertExtraFields(); } @@ -1752,9 +1751,8 @@ if (empty($reshook)) $remise_percent = GETPOST('remise_percent' . $predef); // Extrafields - $extrafieldsline = new ExtraFields($db); - $extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line); - $array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line, $predef); + $extralabelsline = $extrafields->fetch_name_optionals_label($object->table_element_line); + $array_options = $extrafields->getOptionalsFromPost($object->table_element_line, $predef); // Unset extrafield if (is_array($extralabelsline)) { // Get extra fields @@ -2075,9 +2073,8 @@ if (empty($reshook)) $buyingprice = price2num(GETPOST('buying_price') != '' ? GETPOST('buying_price') : ''); // If buying_price is '0', we muste keep this value // Extrafields - $extrafieldsline = new ExtraFields($db); - $extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line); - $array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line); + $extralabelsline = $extrafields->fetch_name_optionals_label($object->table_element_line); + $array_options = $extrafields->getOptionalsFromPost($object->table_element_line); // Unset extrafield if (is_array($extralabelsline)) { // Get extra fields @@ -2496,8 +2493,7 @@ if (empty($reshook)) $object->oldcopy = dol_clone($object); // Fill array 'array_options' with data from add form - $extralabels = $extrafields->fetch_name_optionals_label($object->table_element); - $ret = $extrafields->setOptionalsFromPost($extralabels, $object, GETPOST('attribute', 'none')); + $ret = $extrafields->setOptionalsFromPost(null, $object, GETPOST('attribute', 'none')); if ($ret < 0) $error++; if (! $error) @@ -2585,7 +2581,7 @@ llxHeader('', $title, $helpurl); if ($action == 'create') { $facturestatic = new Facture($db); - $extralabels = $extrafields->fetch_name_optionals_label($facturestatic->table_element); + $extrafields->fetch_name_optionals_label($facturestatic->table_element); print load_fiche_titre($langs->trans('NewBill'), '', 'invoicing'); @@ -3460,7 +3456,7 @@ elseif ($id > 0 || ! empty($ref)) } // fetch optionals attributes and labels - $extralabels = $extrafields->fetch_name_optionals_label($object->table_element); + $extrafields->fetch_name_optionals_label($object->table_element); if ($user->societe_id > 0 && $user->societe_id != $object->socid) { diff --git a/htdocs/compta/facture/class/facture-rec.class.php b/htdocs/compta/facture/class/facture-rec.class.php index 0d8959196ee..a71860c01c1 100644 --- a/htdocs/compta/facture/class/facture-rec.class.php +++ b/htdocs/compta/facture/class/facture-rec.class.php @@ -518,14 +518,19 @@ class FactureRec extends CommonInvoice */ public function fetch_lines() { + global $extrafields; + // phpcs:enable $this->lines=array(); // Retreive all extrafield for line // fetch optionals attributes and labels - require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; - $extrafieldsline=new ExtraFields($this->db); - $extrafieldsline=$extrafieldsline->fetch_name_optionals_label('facturedet_rec', true); + if (! is_object($extrafields)) + { + require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; + $extrafields=new ExtraFields($this->db); + } + $extrafields->fetch_name_optionals_label($this->table_element_line, true); $sql = 'SELECT l.rowid, l.fk_product, l.product_type, l.label as custom_label, l.description, l.product_type, l.price, l.qty, l.vat_src_code, l.tva_tx, '; $sql.= ' l.localtax1_tx, l.localtax2_tx, l.localtax1_type, l.localtax2_type, l.remise, l.remise_percent, l.subprice,'; @@ -599,7 +604,7 @@ class FactureRec extends CommonInvoice $line->price = $objp->price; $line->remise = $objp->remise; - $extralabelsline = $line->fetch_optionals($line->id); + $line->fetch_optionals($line->id); // Multicurrency $line->fk_multicurrency = $objp->fk_multicurrency; diff --git a/htdocs/compta/facture/fiche-rec.php b/htdocs/compta/facture/fiche-rec.php index 171174ebd04..1bd83bda72b 100644 --- a/htdocs/compta/facture/fiche-rec.php +++ b/htdocs/compta/facture/fiche-rec.php @@ -93,7 +93,8 @@ $hookmanager->initHooks(array('invoicereccard','globalcard')); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label('facture_rec'); +$extrafields->fetch_name_optionals_label($object->table_element); + $search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); $permissionnote = $user->rights->facture->creer; // Used by the include of actions_setnotes.inc.php @@ -426,8 +427,7 @@ if (empty($reshook)) $object->oldcopy = dol_clone($object); // Fill array 'array_options' with data from update form - $extralabels = $extrafields->fetch_name_optionals_label($object->table_element); - $ret = $extrafields->setOptionalsFromPost($extralabels, $object, GETPOST('attribute', 'none')); + $ret = $extrafields->setOptionalsFromPost(null, $object, GETPOST('attribute', 'none')); if ($ret < 0) $error++; if (! $error) @@ -468,9 +468,8 @@ if (empty($reshook)) $remise_percent = GETPOST('remise_percent' . $predef); // Extrafields - $extrafieldsline = new ExtraFields($db); - $extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line); - $array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line, $predef); + $extralabelsline = $extrafields->fetch_name_optionals_label($object->table_element_line); + $array_options = $extrafields->getOptionalsFromPost($object->table_element_line, $predef); // Unset extrafield if (is_array($extralabelsline)) { @@ -771,9 +770,8 @@ if (empty($reshook)) $buyingprice = price2num(GETPOST('buying_price') != '' ? GETPOST('buying_price') : ''); // If buying_price is '0', we muste keep this value // Extrafields - $extrafieldsline = new ExtraFields($db); - $extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line); - $array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line); + $extralabelsline = $extrafields->fetch_name_optionals_label($object->table_element_line); + $array_options = $extrafields->getOptionalsFromPost($object->table_element_line); $objectline = new FactureLigneRec($db); if ($objectline->fetch(GETPOST('lineid', 'int'))) diff --git a/htdocs/compta/facture/invoicetemplate_list.php b/htdocs/compta/facture/invoicetemplate_list.php index 14dec82f40c..cab7f36a5a7 100644 --- a/htdocs/compta/facture/invoicetemplate_list.php +++ b/htdocs/compta/facture/invoicetemplate_list.php @@ -108,7 +108,8 @@ $hookmanager->initHooks(array('invoicereccard','globalcard')); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label('facture_rec'); +$extrafields->fetch_name_optionals_label('facture_rec'); + $search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); $permissionnote = $user->rights->facture->creer; // Used by the include of actions_setnotes.inc.php diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php index d6bbc4d09fe..9fc33015245 100644 --- a/htdocs/compta/facture/list.php +++ b/htdocs/compta/facture/list.php @@ -141,7 +141,8 @@ $hookmanager->initHooks(array('invoicelist')); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label('facture'); +$extrafields->fetch_name_optionals_label('facture'); + $search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); // List of fields to search into when doing a "search in all" diff --git a/htdocs/contact/agenda.php b/htdocs/contact/agenda.php index 64404d2e684..30efcd28632 100644 --- a/htdocs/contact/agenda.php +++ b/htdocs/contact/agenda.php @@ -59,7 +59,7 @@ $object = new Contact($db); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extralabels=$extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); // Get object canvas (By default, this is not defined, so standard usage of dolibarr) $object->getCanvas($id); diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php index e18332da0ad..1682abf336e 100644 --- a/htdocs/contact/card.php +++ b/htdocs/contact/card.php @@ -60,7 +60,7 @@ $object = new Contact($db); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extralabels=$extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); // Get object canvas (By default, this is not defined, so standard usage of dolibarr) $object->getCanvas($id); @@ -206,7 +206,7 @@ if (empty($reshook)) $object->birthday_alert = GETPOST("birthday_alert", 'alpha'); // Fill array 'array_options' with data from add form - $ret = $extrafields->setOptionalsFromPost($extralabels, $object); + $ret = $extrafields->setOptionalsFromPost(null, $object); if ($ret < 0) { $error++; @@ -373,7 +373,7 @@ if (empty($reshook)) $object->note_private = GETPOST("note_private", 'none'); // Fill array 'array_options' with data from add form - $ret = $extrafields->setOptionalsFromPost($extralabels, $object); + $ret = $extrafields->setOptionalsFromPost(null, $object); if ($ret < 0) $error++; if (! $error) diff --git a/htdocs/contact/list.php b/htdocs/contact/list.php index b378c8e2626..fdbcb9ee6a6 100644 --- a/htdocs/contact/list.php +++ b/htdocs/contact/list.php @@ -136,7 +136,8 @@ $hookmanager->initHooks(array('contactlist')); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label('contact'); +$extrafields->fetch_name_optionals_label('contact'); + $search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); // List of fields to search into when doing a "search in all" diff --git a/htdocs/contrat/card.php b/htdocs/contrat/card.php index b1903c0d406..691951f2571 100644 --- a/htdocs/contrat/card.php +++ b/htdocs/contrat/card.php @@ -81,11 +81,10 @@ if ($id > 0 || ! empty($ref) && $action!='add') { } // fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label($object->table_element); +$extrafields->fetch_name_optionals_label($object->table_element); // fetch optionals attributes lines and labels -$extrafieldsline = new ExtraFields($db); -$extralabelslines=$extrafieldsline->fetch_name_optionals_label($object->table_element_line); +$extralabelslines=$extrafields->fetch_name_optionals_label($object->table_element_line); $permissionnote=$user->rights->contrat->creer; // Used by the include of actions_setnotes.inc.php $permissiondellink=$user->rights->contrat->creer; // Used by the include of actions_dellink.inc.php @@ -217,7 +216,7 @@ if (empty($reshook)) } // Fill array 'array_options' with data from add form - $ret = $extrafields->setOptionalsFromPost($extralabels, $object); + $ret = $extrafields->setOptionalsFromPost(null, $object); if ($ret < 0) { $error ++; $action = 'create'; @@ -455,9 +454,8 @@ if (empty($reshook)) } // Extrafields - $extrafieldsline = new ExtraFields($db); - $extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line); - $array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line, $predef); + $extralabelsline = $extrafields->fetch_name_optionals_label($object->table_element_line); + $array_options = $extrafields->getOptionalsFromPost($object->table_element_line, $predef); // Unset extrafield if (is_array($extralabelsline)) { // Get extra fields @@ -736,9 +734,8 @@ if (empty($reshook)) } // Extrafields - $extrafieldsline = new ExtraFields($db); - $extralabelsline = $extrafieldsline->fetch_name_optionals_label($objectline->table_element); - $array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line, $predef); + $extralabelsline = $extrafields->fetch_name_optionals_label($objectline->table_element); + $array_options = $extrafields->getOptionalsFromPost($object->table_element_line, $predef); $objectline->array_options=$array_options; // TODO verifier price_min si fk_product et multiprix @@ -876,8 +873,7 @@ if (empty($reshook)) $object->oldcopy = dol_clone($object); // Fill array 'array_options' with data from update form - $extralabels = $extrafields->fetch_name_optionals_label($object->table_element); - $ret = $extrafields->setOptionalsFromPost($extralabels, $object, GETPOST('attribute', 'none')); + $ret = $extrafields->setOptionalsFromPost(null, $object, GETPOST('attribute', 'none')); if ($ret < 0) $error++; if (! $error) { @@ -1712,7 +1708,7 @@ else if (is_array($extralabelslines) && count($extralabelslines)>0) { $line = new ContratLigne($db); $line->fetch_optionals($objp->rowid); - print $line->showOptionals($extrafieldsline, 'view', array('style'=>'class="oddeven"', 'colspan'=>$colspan), '', '', empty($conf->global->MAIN_EXTRAFIELDS_IN_ONE_TD)?0:1); + print $line->showOptionals($extrafields, 'view', array('style'=>'class="oddeven"', 'colspan'=>$colspan), '', '', empty($conf->global->MAIN_EXTRAFIELDS_IN_ONE_TD)?0:1); } } // Ligne en mode update @@ -1786,7 +1782,7 @@ else if (is_array($extralabelslines) && count($extralabelslines)>0) { $line = new ContratLigne($db); $line->fetch_optionals($objp->rowid); - print $line->showOptionals($extrafieldsline, 'edit', array('style'=>'class="oddeven"', 'colspan'=>$colspan), '', '', empty($conf->global->MAIN_EXTRAFIELDS_IN_ONE_TD)?0:1); + print $line->showOptionals($extrafields, 'edit', array('style'=>'class="oddeven"', 'colspan'=>$colspan), '', '', empty($conf->global->MAIN_EXTRAFIELDS_IN_ONE_TD)?0:1); } } diff --git a/htdocs/contrat/class/contrat.class.php b/htdocs/contrat/class/contrat.class.php index cb44f6d3262..c6462cba9b9 100644 --- a/htdocs/contrat/class/contrat.class.php +++ b/htdocs/contrat/class/contrat.class.php @@ -745,8 +745,9 @@ class Contrat extends CommonObject */ public function fetch_lines($only_product = 0, $loadalsotranslation = 0) { - global $langs, $conf; - // phpcs:enable + // phpcs:enable + global $langs, $conf, $extrafields; + $this->nbofserviceswait=0; $this->nbofservicesopened=0; $this->nbofservicesexpired=0; @@ -758,10 +759,14 @@ class Contrat extends CommonObject $now=dol_now(); - require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; - $extrafieldsline=new ExtraFields($this->db); + if (! is_object($extrafields)) + { + require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; + $extrafields=new ExtraFields($this->db); + } + $line = new ContratLigne($this->db); - $extralabelsline=$extrafieldsline->fetch_name_optionals_label($line->table_element, true); + $extrafields->fetch_name_optionals_label($line->table_element, true); $this->lines=array(); $pos = 0; diff --git a/htdocs/contrat/list.php b/htdocs/contrat/list.php index 4aa8fee1983..c6ef860176d 100644 --- a/htdocs/contrat/list.php +++ b/htdocs/contrat/list.php @@ -100,7 +100,8 @@ $hookmanager->initHooks(array('contractlist')); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label('contrat'); +$extrafields->fetch_name_optionals_label('contrat'); + $search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); // List of fields to search into when doing a "search in all" $fieldstosearchall = array( diff --git a/htdocs/contrat/services_list.php b/htdocs/contrat/services_list.php index d8b4e6814cd..a09b86be590 100644 --- a/htdocs/contrat/services_list.php +++ b/htdocs/contrat/services_list.php @@ -84,7 +84,8 @@ $hookmanager->initHooks(array('contractservicelist')); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extralabels = $extrafields->fetch_name_optionals_label('contratdet'); +$extrafields->fetch_name_optionals_label('contratdet'); + $search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); // Security check diff --git a/htdocs/core/class/commondocgenerator.class.php b/htdocs/core/class/commondocgenerator.class.php index 3183db931f4..74253a19f51 100644 --- a/htdocs/core/class/commondocgenerator.class.php +++ b/htdocs/core/class/commondocgenerator.class.php @@ -163,7 +163,7 @@ abstract class CommonDocGenerator /** * Define array with couple subtitution key => subtitution value * - * @param Object $object Object + * @param Societe $object Object * @param Translate $outputlangs Language object for output * @return array Array of substitution key->code */ @@ -221,7 +221,7 @@ abstract class CommonDocGenerator { require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; $extrafields = new ExtraFields($this->db); - $extralabels = $extrafields->fetch_name_optionals_label('societe', true); + $extrafields->fetch_name_optionals_label($object->table_element, true); $object->fetch_optionals(); foreach($extrafields->attribute_label as $key=>$label) @@ -295,7 +295,7 @@ abstract class CommonDocGenerator // Retrieve extrafields require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php'; $extrafields = new ExtraFields($this->db); - $extralabels = $extrafields->fetch_name_optionals_label('socpeople', true); + $extrafields->fetch_name_optionals_label($object->table_element, true); $object->fetch_optionals(); foreach($extrafields->attribute_label as $key => $label) @@ -517,7 +517,7 @@ abstract class CommonDocGenerator require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; $extrafields = new ExtraFields($this->db); - $extralabels = $extrafields->fetch_name_optionals_label($extrafieldkey, true); + $extrafields->fetch_name_optionals_label($extrafieldkey, true); $object->fetch_optionals(); $resarray = $this->fill_substitutionarray_with_extrafields($object, $resarray, $extrafields, $array_key, $outputlangs); @@ -592,7 +592,7 @@ abstract class CommonDocGenerator $array_key="line"; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; $extrafields = new ExtraFields($this->db); - $extralabels = $extrafields->fetch_name_optionals_label($extrafieldkey, true); + $extrafields->fetch_name_optionals_label($extrafieldkey, true); $line->fetch_optionals(); $resarray = $this->fill_substitutionarray_with_extrafields($line, $resarray, $extrafields, $array_key, $outputlangs); @@ -662,7 +662,7 @@ abstract class CommonDocGenerator { require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; $extrafields = new ExtraFields($this->db); - $extralabels = $extrafields->fetch_name_optionals_label('expedition', true); + $extrafields->fetch_name_optionals_label('expedition', true); $object->fetch_optionals(); $array_shipment = $this->fill_substitutionarray_with_extrafields($object, $array_shipment, $extrafields, $array_key, $outputlangs); @@ -712,7 +712,7 @@ abstract class CommonDocGenerator $array_key = "line"; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; $extrafields = new ExtraFields($this->db); - $extralabels = $extrafields->fetch_name_optionals_label($extrafieldkey, true); + $extrafields->fetch_name_optionals_label($extrafieldkey, true); $line->fetch_optionals(); $resarray = $this->fill_substitutionarray_with_extrafields($line, $resarray, $extrafields, $array_key, $outputlangs); diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 686f3d4f5d9..673baa7c24e 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -3918,13 +3918,16 @@ abstract class CommonObject */ public function formAddObjectLine($dateSelector, $seller, $buyer, $defaulttpldir = '/core/tpl') { - global $conf,$user,$langs,$object,$hookmanager; + global $conf,$user,$langs,$object,$hookmanager,$extrafields; global $form,$bcnd,$var; // Line extrafield - require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; - $extrafieldsline = new ExtraFields($this->db); - $extralabelslines=$extrafieldsline->fetch_name_optionals_label($this->table_element_line); + if (! is_object($extrafields)) + { + require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; + $extrafields = new ExtraFields($this->db); + } + $extrafields->fetch_name_optionals_label($this->table_element_line); // Output template part (modules that overwrite templates must declare this into descriptor) // Use global variables + $dateSelector + $seller and $buyer @@ -3970,7 +3973,7 @@ abstract class CommonObject */ public function printObjectLines($action, $seller, $buyer, $selected = 0, $dateSelector = 0, $defaulttpldir = '/core/tpl') { - global $conf, $hookmanager, $langs, $user, $object, $form; + global $conf, $hookmanager, $langs, $user, $object, $form, $extrafields; // TODO We should not use global var for this global $inputalsopricewithtax, $usemargins, $disableedit, $disablemove, $disableremove, $outputalsopricetotalwithtax; @@ -3981,11 +3984,14 @@ abstract class CommonObject $num = count($this->lines); // Line extrafield - require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; - $extrafieldsline = new ExtraFields($this->db); - $extralabelslines=$extrafieldsline->fetch_name_optionals_label($this->table_element_line); + if (! is_object($extrafields)) + { + require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; + $extrafields = new ExtraFields($this->db); + } + $extrafields->fetch_name_optionals_label($this->table_element_line); - $parameters = array('num'=>$num,'i'=>$i,'dateSelector'=>$dateSelector,'seller'=>$seller,'buyer'=>$buyer,'selected'=>$selected, 'extrafieldsline'=>$extrafieldsline); + $parameters = array('num'=>$num, 'dateSelector'=>$dateSelector, 'seller'=>$seller, 'buyer'=>$buyer, 'selected'=>$selected, 'table_element_line'=>$this->table_element_line); $reshook = $hookmanager->executeHooks('printObjectLineTitle', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks if (empty($reshook)) { @@ -4025,18 +4031,18 @@ abstract class CommonObject { if (empty($line->fk_parent_line)) { - $parameters = array('line'=>$line,'var'=>$var,'num'=>$num,'i'=>$i,'dateSelector'=>$dateSelector,'seller'=>$seller,'buyer'=>$buyer,'selected'=>$selected, 'extrafieldsline'=>$extrafieldsline); + $parameters = array('line'=>$line,'var'=>$var,'num'=>$num,'i'=>$i,'dateSelector'=>$dateSelector,'seller'=>$seller,'buyer'=>$buyer,'selected'=>$selected, 'table_element_line'=>$line->table_element); $reshook = $hookmanager->executeHooks('printObjectLine', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks } else { - $parameters = array('line'=>$line,'var'=>$var,'num'=>$num,'i'=>$i,'dateSelector'=>$dateSelector,'seller'=>$seller,'buyer'=>$buyer,'selected'=>$selected, 'extrafieldsline'=>$extrafieldsline, 'fk_parent_line'=>$line->fk_parent_line); + $parameters = array('line'=>$line,'var'=>$var,'num'=>$num,'i'=>$i,'dateSelector'=>$dateSelector,'seller'=>$seller,'buyer'=>$buyer,'selected'=>$selected, 'table_element_line'=>$line->table_element, 'fk_parent_line'=>$line->fk_parent_line); $reshook = $hookmanager->executeHooks('printObjectSubLine', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks } } if (empty($reshook)) { - $this->printObjectLine($action, $line, $var, $num, $i, $dateSelector, $seller, $buyer, $selected, $extrafieldsline, $defaulttpldir); + $this->printObjectLine($action, $line, $var, $num, $i, $dateSelector, $seller, $buyer, $selected, $extrafields, $defaulttpldir); } $i++; @@ -4057,11 +4063,11 @@ abstract class CommonObject * @param string $seller Object of seller third party * @param string $buyer Object of buyer third party * @param int $selected Object line selected - * @param int $extrafieldsline Object of extrafield line attribute + * @param Extrafields $extrafields Object of extrafields * @param string $defaulttpldir Directory where to find the template * @return void */ - public function printObjectLine($action, $line, $var, $num, $i, $dateSelector, $seller, $buyer, $selected = 0, $extrafieldsline = 0, $defaulttpldir = '/core/tpl') + public function printObjectLine($action, $line, $var, $num, $i, $dateSelector, $seller, $buyer, $selected = 0, $extrafields = null, $defaulttpldir = '/core/tpl') { global $conf,$langs,$user,$object,$hookmanager; global $form,$bc,$bcdd; @@ -4897,6 +4903,8 @@ abstract class CommonObject public function fetch_optionals($rowid = null, $optionsArray = null) { // phpcs:enable + global $extrafields; + if (empty($rowid)) $rowid=$this->id; // To avoid SQL errors. Probably not the better solution though @@ -4909,7 +4917,6 @@ abstract class CommonObject if (! is_array($optionsArray)) { // If $extrafields is not a known object, we initialize it. Best practice is to have $extrafields defined into card.php or list.php page. - global $extrafields; if (! isset($extrafields) || ! is_object($extrafields)) { require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; @@ -6591,8 +6598,8 @@ abstract class CommonObject //$out .= "titlefield"; //if (GETPOST('action', 'none') == 'create') $out.='create'; // BUG #11554 : For public page, use red dot for required fields, instead of bold label - $context = isset($params["context"]) ? $params["context"] : "none"; - if ($context=="public") { // Public page : red dot instead of bold ble characters + $tpl_context = isset($params["tpl_context"]) ? $params["tpl_context"] : "none"; + if ($tpl_context=="public") { // Public page : red dot instead of fieldrequired characters $out .= '">'; if (! empty($extrafields->attributes[$this->table_element]['help'][$key])) $out .= $form->textwithpicto($labeltoshow, $extrafields->attributes[$this->table_element]['help'][$key]); else $out .= $labeltoshow; diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index ee41d96c2af..e465742cfef 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -825,7 +825,7 @@ class ExtraFields * Load array this->attributes, or old this->attribute_xxx like attribute_label, attribute_type, ... * * @param string $elementtype Type of element ('adherent', 'commande', 'thirdparty', 'facture', 'propal', 'product', ...). - * @param boolean $forceload Force load of extra fields whatever is option MAIN_EXTRAFIELDS_DISABLED. Deprecated. Should not be required. + * @param boolean $forceload Force load of extra fields whatever is status of cache. * @return array Array of attributes keys+label for all extra fields. */ public function fetch_name_optionals_label($elementtype, $forceload = false) @@ -835,14 +835,18 @@ class ExtraFields if (empty($elementtype)) return array(); - if ($elementtype == 'thirdparty') $elementtype='societe'; - if ($elementtype == 'contact') $elementtype='socpeople'; + if ($elementtype == 'thirdparty') $elementtype='societe'; + if ($elementtype == 'contact') $elementtype='socpeople'; if ($elementtype == 'order_supplier') $elementtype='commande_fournisseur'; $array_name_label=array(); // To avoid conflicts with external modules. TODO Remove this. - if (!$forceload && !empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) return $array_name_label; + if (empty($forceload) && !empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) return $array_name_label; + + // If already loaded + // TODO Enable this cache test + // if (empty($forceload) && ! empty($this->attributes[$tab->elementtype]['loaded'])) return $array_name_label; // Set array of label of entity // TODO Remove completely loading of label. This should be done by presentation. @@ -2007,14 +2011,15 @@ class ExtraFields /** * Fill array_options property of object by extrafields value (using for data sent by forms) * - * @param array $extralabels Deprecated $array of extrafields + * @param array $extralabels Deprecated (old $array of extrafields, now set this to null) * @param object $object Object - * @param string $onlykey Only following key is filled. When we make update of only one extrafield ($action = 'update_extras'), calling page must must set this to avoid to have other extrafields being reset. + * @param string $onlykey Only the following key is filled. When we make update of only one extrafield ($action = 'update_extras'), calling page must set this to avoid to have other extrafields being reset. * @return int 1 if array_options set, 0 if no value, -1 if error (field required missing for example) */ public function setOptionalsFromPost($extralabels, &$object, $onlykey = '') { global $_POST, $langs; + $nofillrequired=0;// For error when required field left blank $error_field_required = array(); diff --git a/htdocs/core/class/html.formactions.class.php b/htdocs/core/class/html.formactions.class.php index fb3841e8088..b0fb1131f17 100644 --- a/htdocs/core/class/html.formactions.class.php +++ b/htdocs/core/class/html.formactions.class.php @@ -241,7 +241,7 @@ class FormActions // Ref print ''.$ref.''; // Onwer - print ''; + print ''; if (! empty($action->userownerid)) { if (is_object($cacheusers[$action->userownerid])) diff --git a/htdocs/core/class/html.formticket.class.php b/htdocs/core/class/html.formticket.class.php index 49c7a28f1e1..8d0c45bbb41 100644 --- a/htdocs/core/class/html.formticket.class.php +++ b/htdocs/core/class/html.formticket.class.php @@ -145,7 +145,7 @@ class FormTicket $ticketstat = new Ticket($this->db); $extrafields = new ExtraFields($this->db); - $extralabels = $extrafields->fetch_name_optionals_label($ticketstat->table_element); + $extrafields->fetch_name_optionals_label($ticketstat->table_element); print "\n\n"; diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index 6d8e396c361..30cd6178944 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -913,7 +913,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') $contactstatic = new Contact($db); - $extralabels=$extrafields->fetch_name_optionals_label($contactstatic->table_element); + $extrafields->fetch_name_optionals_label($contactstatic->table_element); $contactstatic->fields=array( 'name' =>array('type'=>'varchar(128)', 'label'=>'Name', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1), diff --git a/htdocs/core/lib/project.lib.php b/htdocs/core/lib/project.lib.php index 66b20707ecb..d6dc59d1dcc 100644 --- a/htdocs/core/lib/project.lib.php +++ b/htdocs/core/lib/project.lib.php @@ -972,11 +972,10 @@ function projectLinesPerAction(&$inc, $parent, $fuser, $lines, &$level, &$projec * @param array $isavailable Array with data that say if user is available for several days for morning and afternoon * @param int $oldprojectforbreak Old project id of last project break * @param array $arrayfields Array of additional column - * @param array $extrafields Array of additional column - * @param array $extralabels Array of additional column + * @param Extrafields $extrafields Object extrafields * @return array Array with time spent for $fuser for each day of week on tasks in $lines and substasks */ -function projectLinesPerDay(&$inc, $parent, $fuser, $lines, &$level, &$projectsrole, &$tasksrole, $mine, $restricteditformytask, $preselectedday, &$isavailable, $oldprojectforbreak = 0, $arrayfields = array(), $extrafields = '', $extralabels = array()) +function projectLinesPerDay(&$inc, $parent, $fuser, $lines, &$level, &$projectsrole, &$tasksrole, $mine, $restricteditformytask, $preselectedday, &$isavailable, $oldprojectforbreak = 0, $arrayfields = array(), $extrafields = null) { global $conf, $db, $user, $bc, $langs; global $form, $formother, $projectstatic, $taskstatic, $thirdpartystatic; @@ -1314,7 +1313,7 @@ function projectLinesPerDay(&$inc, $parent, $fuser, $lines, &$level, &$projectsr { //var_dump('totalforeachday after taskid='.$lines[$i]->id.' and previous one on level '.$level); //var_dump($totalforeachday); - $ret = projectLinesPerDay($inc, $lines[$i]->id, $fuser, ($parent == 0 ? $lineswithoutlevel0 : $lines), $level, $projectsrole, $tasksrole, $mine, $restricteditformytask, $preselectedday, $isavailable, $oldprojectforbreak, $arrayfields, $extrafields, $extralabels); + $ret = projectLinesPerDay($inc, $lines[$i]->id, $fuser, ($parent == 0 ? $lineswithoutlevel0 : $lines), $level, $projectsrole, $tasksrole, $mine, $restricteditformytask, $preselectedday, $isavailable, $oldprojectforbreak, $arrayfields, $extrafields); //var_dump('ret with parent='.$lines[$i]->id.' level='.$level); //var_dump($ret); foreach($ret as $key => $val) @@ -1352,11 +1351,10 @@ function projectLinesPerDay(&$inc, $parent, $fuser, $lines, &$level, &$projectsr * @param array $isavailable Array with data that say if user is available for several days for morning and afternoon * @param int $oldprojectforbreak Old project id of last project break * @param array $arrayfields Array of additional column - * @param array $extrafields Array of additional column - * @param array $extralabels Array of additional column + * @param Extrafields $extrafields Object extrafields * @return array Array with time spent for $fuser for each day of week on tasks in $lines and substasks */ -function projectLinesPerWeek(&$inc, $firstdaytoshow, $fuser, $parent, $lines, &$level, &$projectsrole, &$tasksrole, $mine, $restricteditformytask, &$isavailable, $oldprojectforbreak = 0, $arrayfields = array(), $extrafields = '', $extralabels = array()) +function projectLinesPerWeek(&$inc, $firstdaytoshow, $fuser, $parent, $lines, &$level, &$projectsrole, &$tasksrole, $mine, $restricteditformytask, &$isavailable, $oldprojectforbreak = 0, $arrayfields = array(), $extrafields = null) { global $conf, $db, $user, $bc, $langs; global $form, $formother, $projectstatic, $taskstatic, $thirdpartystatic; @@ -1684,7 +1682,7 @@ function projectLinesPerWeek(&$inc, $firstdaytoshow, $fuser, $parent, $lines, &$ { //var_dump('totalforeachday after taskid='.$lines[$i]->id.' and previous one on level '.$level); //var_dump($totalforeachday); - $ret = projectLinesPerWeek($inc, $firstdaytoshow, $fuser, $lines[$i]->id, ($parent == 0 ? $lineswithoutlevel0 : $lines), $level, $projectsrole, $tasksrole, $mine, $restricteditformytask, $isavailable, $oldprojectforbreak, $arrayfields, $extrafields, $extralabels); + $ret = projectLinesPerWeek($inc, $firstdaytoshow, $fuser, $lines[$i]->id, ($parent == 0 ? $lineswithoutlevel0 : $lines), $level, $projectsrole, $tasksrole, $mine, $restricteditformytask, $isavailable, $oldprojectforbreak, $arrayfields, $extrafields); //var_dump('ret with parent='.$lines[$i]->id.' level='.$level); //var_dump($ret); foreach($ret as $key => $val) diff --git a/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php b/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php index 5389846c51a..6883a089bda 100644 --- a/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php +++ b/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php @@ -148,7 +148,7 @@ class doc_generic_project_odt extends ModelePDFProjects require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; $extrafields = new ExtraFields($this->db); - $extralabels = $extrafields->fetch_name_optionals_label($object->table_element, true); + $extrafields->fetch_name_optionals_label($object->table_element, true); $object->fetch_optionals(); $resarray = $this->fill_substitutionarray_with_extrafields($object, $resarray, $extrafields, $array_key, $outputlangs); @@ -189,8 +189,8 @@ class doc_generic_project_odt extends ModelePDFProjects require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; $extrafields = new ExtraFields($this->db); - $extralabels = $extrafields->fetch_name_optionals_label($task->table_element, true); - $task->fetch_optionals($task->id, $extralabels); + $extrafields->fetch_name_optionals_label($task->table_element, true); + $task->fetch_optionals($task->id); $resarray = $this->fill_substitutionarray_with_extrafields($task, $resarray, $extrafields, 'task', $outputlangs); @@ -235,7 +235,7 @@ class doc_generic_project_odt extends ModelePDFProjects // fetch external user extrafields require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; $extrafields=new ExtraFields($this->db); - $extralabels=$extrafields->fetch_name_optionals_label($ct->table_element, true); + $extrafields->fetch_name_optionals_label($ct->table_element, true); $extrafields_num = $ct->fetch_optionals(); //dol_syslog(get_class($this)."::get_substitutionarray_project_contacts: ===== Number of Extrafields found: ".$extrafields_num, LOG_DEBUG); foreach($ct->array_options as $efkey => $efval) { diff --git a/htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php b/htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php index d0e7285febf..78e8312b0bb 100644 --- a/htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php +++ b/htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php @@ -154,7 +154,7 @@ class doc_generic_task_odt extends ModelePDFTask require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; $extrafields = new ExtraFields($this->db); - $extralabels = $extrafields->fetch_name_optionals_label($extrafieldkey, true); + $extrafields->fetch_name_optionals_label($extrafieldkey, true); $object->fetch_optionals(); $resarray = $this->fill_substitutionarray_with_extrafields($object, $resarray, $extrafields, $array_key, $outputlangs); diff --git a/htdocs/core/modules/stock/doc/pdf_stdmovement.modules.php b/htdocs/core/modules/stock/doc/pdf_stdmovement.modules.php index 35f87889a6e..6a924658f2c 100644 --- a/htdocs/core/modules/stock/doc/pdf_stdmovement.modules.php +++ b/htdocs/core/modules/stock/doc/pdf_stdmovement.modules.php @@ -245,7 +245,7 @@ class pdf_stdmovement extends ModelePDFMovement $extrafields = new ExtraFields($db); // fetch optionals attributes and labels - $extralabels = $extrafields->fetch_name_optionals_label('movement'); + $extrafields->fetch_name_optionals_label('movement'); $search_array_options=$extrafields->getOptionalsFromPost('movement', '', 'search_'); $productlot=new ProductLot($db); diff --git a/htdocs/core/tpl/advtarget.tpl.php b/htdocs/core/tpl/advtarget.tpl.php index ac1eed387a4..312ba8ea78e 100644 --- a/htdocs/core/tpl/advtarget.tpl.php +++ b/htdocs/core/tpl/advtarget.tpl.php @@ -261,26 +261,27 @@ print ''; print ''; if ($optioncss != '') print ''; @@ -278,7 +294,8 @@ if ($resql) else dol_print_error($db); print ""; print ajax_combobox("chartofaccounts"); - print ''; + print ''; + print ''; print '
    '; print '
    '; @@ -286,6 +303,9 @@ if ($resql) $varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage; $selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields + $moreforfilter = ''; + $massactionbutton = ''; + print '
    '; print ''."\n"; diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index ae347b9c672..23dcc5b8e5d 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -7450,11 +7450,7 @@ class Form */ public function showFilterButtons() { - global $conf, $langs; - $out='
    '; - //$out.=''; - //$out.=''; $out.=''; $out.=''; $out.='
    '; From edfedbb8186aea4bf6226159dd1f523b0127b381 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 6 Oct 2019 21:13:55 +0200 Subject: [PATCH 163/484] FIX Load chart of account only if we click or select button "Load chart" --- htdocs/accountancy/admin/account.php | 35 +++++++++++++++------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/htdocs/accountancy/admin/account.php b/htdocs/accountancy/admin/account.php index 9f120045951..bc8fff8395c 100644 --- a/htdocs/accountancy/admin/account.php +++ b/htdocs/accountancy/admin/account.php @@ -101,7 +101,7 @@ if (empty($reshook)) $search_array_options=array(); } - if (GETPOST('change_chart', 'alpha') && GETPOST('valid_change_chart', 'int')) + if (GETPOST('change_chart', 'alpha') && (GETPOST('valid_change_chart', 'int') || empty($conf->use_javascript_ajax))) { $chartofaccounts = GETPOST('chartofaccounts', 'int'); @@ -237,21 +237,24 @@ if ($resql) if ($search_pcgsubtype) $param.= '&search_pcgsubtype='.urlencode($search_pcgsubtype); if ($optioncss != '') $param.='&optioncss='.$optioncss; - print ' - '; + if (! empty($conf->use_javascript_ajax)) + { + print ' + '; + } print ''; if ($optioncss != '') print ''; From 0b9213f4f13bd124cf957394d3ccf686003517f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Mon, 7 Oct 2019 08:11:23 +0200 Subject: [PATCH 164/484] Update contrat.class.php --- htdocs/contrat/class/contrat.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/contrat/class/contrat.class.php b/htdocs/contrat/class/contrat.class.php index c6462cba9b9..99a5f78691f 100644 --- a/htdocs/contrat/class/contrat.class.php +++ b/htdocs/contrat/class/contrat.class.php @@ -2077,7 +2077,7 @@ class Contrat extends CommonObject * Return list of line rowid * * @param int $statut Status of lines to get - * @return array Array of line's rowid + * @return array|int Array of line's rowid or <0 if error */ public function array_detail($statut = -1) { @@ -2114,7 +2114,7 @@ class Contrat extends CommonObject * Return list of other contracts for same company than current contract * * @param string $option 'all' or 'others' - * @return array Array of contracts id + * @return array|int Array of contracts id or <0 if error */ public function getListOfContracts($option = 'all') { From fc90638b2b903ef908322e5e3f921c8bf24f6695 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 10:42:18 +0200 Subject: [PATCH 165/484] Code comment --- htdocs/core/class/cunits.class.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/core/class/cunits.class.php b/htdocs/core/class/cunits.class.php index 919d2ad3aae..bce617308a6 100644 --- a/htdocs/core/class/cunits.class.php +++ b/htdocs/core/class/cunits.class.php @@ -160,11 +160,11 @@ class CUnits // extends CommonObject /** * Load object in memory from database * - * @param int $id Id object - * @param string $code Code - * @param string $short_label Short Label - * @param string $unit_type unit type - * @return int <0 if KO, >0 if OK + * @param int $id Id object + * @param string $code Code + * @param string $short_label Short Label ('g', 'kg', ...) + * @param string $unit_type Unit type ('size', 'surface', 'volume', 'weight', ...) + * @return int <0 if KO, >0 if OK */ public function fetch($id, $code = '', $short_label = '', $unit_type = '') { From 8c024b3786eb34537fd7c662063fd9dd3dee4419 Mon Sep 17 00:00:00 2001 From: atm-lena Date: Mon, 7 Oct 2019 11:26:10 +0200 Subject: [PATCH 166/484] FIX : missing "$this->id" in "fetch" function --- htdocs/core/class/link.class.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/core/class/link.class.php b/htdocs/core/class/link.class.php index 8413725ab11..db2c1009a3f 100644 --- a/htdocs/core/class/link.class.php +++ b/htdocs/core/class/link.class.php @@ -334,6 +334,7 @@ class Link extends CommonObject if($this->db->num_rows($resql) > 0) { $obj = $this->db->fetch_object($resql); + $this->id = $obj->rowid; $this->entity = $obj->entity; $this->datea = $this->db->jdate($obj->datea); $this->url = $obj->url; From 219b0d89255167b53558df0dc3389c5db2502127 Mon Sep 17 00:00:00 2001 From: VESSILLER Date: Fri, 4 Oct 2019 10:04:02 +0200 Subject: [PATCH 167/484] FIX Import of product using units --- htdocs/core/class/cunits.class.php | 2 + .../modules/import/import_csv.modules.php | 17 +- .../modules/import/import_xlsx.modules.php | 32 +- htdocs/core/modules/modProduct.class.php | 158 +++++---- htdocs/core/modules/modService.class.php | 318 ++++++++++++++---- 5 files changed, 360 insertions(+), 167 deletions(-) diff --git a/htdocs/core/class/cunits.class.php b/htdocs/core/class/cunits.class.php index 501192a68eb..cba2a3c1e5d 100644 --- a/htdocs/core/class/cunits.class.php +++ b/htdocs/core/class/cunits.class.php @@ -172,6 +172,7 @@ class CUnits // extends CommonObject $sql.= " t.code,"; $sql.= " t.label,"; $sql.= " t.short_label,"; + $sql.= " t.scale,"; $sql.= " t.unit_type,"; $sql.= " t.active"; $sql.= " FROM ".MAIN_DB_PREFIX."c_units as t"; @@ -195,6 +196,7 @@ class CUnits // extends CommonObject $this->code = $obj->code; $this->label = $obj->label; $this->short_label = $obj->short_label; + $this->scale = $obj->scale; $this->unit_type = $obj->unit_type; $this->active = $obj->active; } diff --git a/htdocs/core/modules/import/import_csv.modules.php b/htdocs/core/modules/import/import_csv.modules.php index 0a60d9dc0ae..fd39ed6f49e 100644 --- a/htdocs/core/modules/import/import_csv.modules.php +++ b/htdocs/core/modules/import/import_csv.modules.php @@ -489,7 +489,7 @@ class ImportCsv extends ModeleImports { if (empty($newval)) $newval='0'; } - elseif ($objimport->array_import_convertvalue[0][$val]['rule']=='fetchidfromcodeunits') + elseif ($objimport->array_import_convertvalue[0][$val]['rule']=='fetchidfromcodeunits' || $objimport->array_import_convertvalue[0][$val]['rule']=='fetchscalefromcodeunits') { $file=(empty($objimport->array_import_convertvalue[0][$val]['classfile'])?$objimport->array_import_convertvalue[0][$val]['file']:$objimport->array_import_convertvalue[0][$val]['classfile']); $class=$objimport->array_import_convertvalue[0][$val]['class']; @@ -509,16 +509,17 @@ class ImportCsv extends ModeleImports } $classinstance=new $class($this->db); // Try the fetch from code or ref - call_user_func_array(array($classinstance, $method), array('', $units, $newval)); - $this->cacheconvert[$file.'_'.$class.'_'.$method.'_'.$units][$newval]=$classinstance->code; - //print 'We have made a '.$class.'->'.$method.' to get id from code '.$newval.'. '; - if ($classinstance->code != '') // id may be 0, it is a found value + call_user_func_array(array($classinstance, $method), array('', '', $newval, $units)); + $scaleorid = (($objimport->array_import_convertvalue[0][$val]['rule']=='fetchidfromcodeunits') ? $classinstance->id : $classinstance->scale); + $this->cacheconvert[$file.'_'.$class.'_'.$method.'_'.$units][$newval]=$scaleorid; + //print 'We have made a '.$class.'->'.$method." to get a value from key '".$newval."' and we got '".$scaleorid."'.";exit; + if ($classinstance->id > 0) // we found record { - $newval=$classinstance->code; + $newval = $scaleorid ? $scaleorid : 0; } else { - if (!empty($objimport->array_import_convertvalue[0][$val]['dict'])) $this->errors[$error]['lib']=$langs->trans('ErrorFieldValueNotIn', $key, $newval, 'code', $langs->transnoentitiesnoconv($objimport->array_import_convertvalue[0][$val]['dict'])); + if (!empty($objimport->array_import_convertvalue[0][$val]['dict'])) $this->errors[$error]['lib']=$langs->trans('ErrorFieldValueNotIn', $key, $newval, 'scale', $langs->transnoentitiesnoconv($objimport->array_import_convertvalue[0][$val]['dict'])); else $this->errors[$error]['lib']='ErrorFieldValueNotIn'; $this->errors[$error]['type']='FOREIGNKEY'; $errorforthistable++; @@ -677,7 +678,7 @@ class ImportCsv extends ModeleImports // Loop on each hidden fields to add them into listfields/listvalues foreach($objimport->array_import_fieldshidden[0] as $key => $val) { - if (! preg_match('/^'.preg_quote($alias).'\./', $key)) continue; // Not a field of current table + if (! preg_match('/^'.preg_quote($alias, '/').'\./', $key)) continue; // Not a field of current table if ($val == 'user->id') { $listfields[] = preg_replace('/^'.preg_quote($alias, '/').'\./', '', $key); diff --git a/htdocs/core/modules/import/import_xlsx.modules.php b/htdocs/core/modules/import/import_xlsx.modules.php index af9c0e2c412..a4615579f34 100644 --- a/htdocs/core/modules/import/import_xlsx.modules.php +++ b/htdocs/core/modules/import/import_xlsx.modules.php @@ -516,7 +516,7 @@ class ImportXlsx extends ModeleImports { if (empty($newval)) $newval='0'; } - elseif ($objimport->array_import_convertvalue[0][$val]['rule']=='fetchidfromcodeunits') + elseif ($objimport->array_import_convertvalue[0][$val]['rule']=='fetchidfromcodeunits' || $objimport->array_import_convertvalue[0][$val]['rule']=='fetchscalefromcodeunits') { $file=(empty($objimport->array_import_convertvalue[0][$val]['classfile'])?$objimport->array_import_convertvalue[0][$val]['file']:$objimport->array_import_convertvalue[0][$val]['classfile']); $class=$objimport->array_import_convertvalue[0][$val]['class']; @@ -536,17 +536,18 @@ class ImportXlsx extends ModeleImports } $classinstance=new $class($this->db); // Try the fetch from code or ref - call_user_func_array(array($classinstance, $method), array('', $units, '', $newval)); - $this->cacheconvert[$file.'_'.$class.'_'.$method.'_'.$units][$newval]=$classinstance->code; - //print 'We have made a '.$class.'->'.$method.' to get id from code '.$newval.'. '; - if ($classinstance->code != '') // id may be 0, it is a found value - { - $newval=$classinstance->code; - } - else - { - if (!empty($objimport->array_import_convertvalue[0][$val]['dict'])) $this->errors[$error]['lib']=$langs->trans('ErrorFieldValueNotIn', $key, $newval, 'code', $langs->transnoentitiesnoconv($objimport->array_import_convertvalue[0][$val]['dict'])); - else $this->errors[$error]['lib']='ErrorFieldValueNotIn'; + call_user_func_array(array($classinstance, $method), array('', '', $newval, $units)); + $scaleorid = (($objimport->array_import_convertvalue[0][$val]['rule']=='fetchidfromcodeunits') ? $classinstance->id : $classinstance->scale); + $this->cacheconvert[$file.'_'.$class.'_'.$method.'_'.$units][$newval]=$scaleorid; + //print 'We have made a '.$class.'->'.$method." to get a value from key '".$newval."' and we got '".$scaleorid."'.";exit; + if ($classinstance->id > 0) // we found record + { + $newval = $scaleorid ? $scaleorid : 0; + } + else + { + if (!empty($objimport->array_import_convertvalue[0][$val]['dict'])) $this->errors[$error]['lib']=$langs->trans('ErrorFieldValueNotIn', $key, $newval, 'scale', $langs->transnoentitiesnoconv($objimport->array_import_convertvalue[0][$val]['dict'])); + else $this->errors[$error]['lib']='ErrorFieldValueNotIn'; $this->errors[$error]['type']='FOREIGNKEY'; $errorforthistable++; $error++; @@ -668,8 +669,9 @@ class ImportXlsx extends ModeleImports $errorforthistable++; $error++; } - } elseif (! preg_match('/'.$objimport->array_import_regex[0][$val].'/i', $newval)) { - // If test is just a static regex + } + // If test is just a static regex + elseif (! preg_match('/'.$objimport->array_import_regex[0][$val].'/i', $newval)) { //if ($key == 19) print "xxx".$newval."zzz".$objimport->array_import_regex[0][$val]."
    "; $this->errors[$error]['lib']=$langs->transnoentitiesnoconv('ErrorWrongValueForField', $key, $newval, $objimport->array_import_regex[0][$val]); $this->errors[$error]['type']='REGEX'; @@ -778,7 +780,7 @@ class ImportXlsx extends ModeleImports $error++; } } else { - // We have a last INSERT ID. Check if we have a row referencing this foreign key. + // We have a last INSERT ID (got by previous pass), so we check if we have a row referencing this foreign key. // This is required when updating table with some extrafields. When inserting a record in parent table, we can make // a direct insert into subtable extrafields, but when me wake an update, the insertid is defined and the child record // may already exists. So we rescan the extrafield table to know if record exists or not for the rowid. diff --git a/htdocs/core/modules/modProduct.class.php b/htdocs/core/modules/modProduct.class.php index 9592e3b185f..f9ab7347792 100644 --- a/htdocs/core/modules/modProduct.class.php +++ b/htdocs/core/modules/modProduct.class.php @@ -168,16 +168,22 @@ class modProduct extends DolibarrModules $this->export_label[$r]="Products"; // Translation key (used only if key ExportDataset_xxx_z not found) $this->export_permission[$r]=array(array("produit","export")); $this->export_fields_array[$r]=array( - 'p.rowid'=>"Id",'p.ref'=>"Ref",'p.label'=>"Label",'p.description'=>"Description",'p.url'=>"PublicUrl",'p.accountancy_code_sell'=>"ProductAccountancySellCode", - 'p.accountancy_code_sell_intra'=>"ProductAccountancySellIntraCode", 'p.accountancy_code_sell_export'=>"ProductAccountancySellExportCode", - 'p.accountancy_code_buy'=>"ProductAccountancyBuyCode",'p.note'=>"Note",'p.length'=>"Length",'p.width'=>"Width",'p.height'=>"Height",'p.surface'=>"Surface", - 'p.volume'=>"Volume",'p.weight'=>"Weight",'p.customcode'=>'CustomCode','p.price_base_type'=>"PriceBase",'p.price'=>"UnitPriceHT",'p.price_ttc'=>"UnitPriceTTC", - 'p.tva_tx'=>'VATRate','p.tosell'=>"OnSell",'p.tobuy'=>"OnBuy",'p.datec'=>'DateCreation','p.tms'=>'DateModification' + 'p.rowid'=>"Id",'p.ref'=>"Ref",'p.label'=>"Label", + 'p.fk_product_type'=>'Type','p.tosell'=>"OnSell",'p.tobuy'=>"OnBuy", + 'p.description'=>"Description",'p.url'=>"PublicUrl", + 'p.customcode'=>'CustomCode','p.fk_country'=>'IDCountry', + 'p.accountancy_code_sell'=>"ProductAccountancySellCode", 'p.accountancy_code_sell_intra'=>"ProductAccountancySellIntraCode", + 'p.accountancy_code_sell_export'=>"ProductAccountancySellExportCode", 'p.accountancy_code_buy'=>"ProductAccountancyBuyCode", + 'p.note'=>"NotePrivate",'p.note_public'=>'NotePublic', + 'p.weight'=>"Weight",'p.length'=>"Length",'p.width'=>"Width",'p.height'=>"Height",'p.surface'=>"Surface",'p.volume'=>"Volume", + //'p.duration'=>"Duration", + 'p.price_base_type'=>"PriceBase",'p.price'=>"UnitPriceHT",'p.price_ttc'=>"UnitPriceTTC", + 'p.tva_tx'=>'VATRate','p.datec'=>'DateCreation','p.tms'=>'DateModification' ); if (is_object($mysoc) && $mysoc->useNPR()) $this->export_fields_array[$r]['p.recuperableonly']='NPR'; + if (! empty($conf->fournisseur->enabled) || !empty($conf->margin->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('p.cost_price'=>'CostPrice')); if (! empty($conf->stock->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('p.stock'=>'Stock','p.seuil_stock_alerte'=>'StockLimit','p.desiredstock'=>'DesiredStock','p.pmp'=>'PMPValue')); if (! empty($conf->barcode->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('p.barcode'=>'BarCode')); - if (! empty($conf->fournisseur->enabled) || !empty($conf->margin->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('p.cost_price'=>'CostPrice')); $keyforselect='product'; $keyforelement='product'; $keyforaliasextra='extra'; include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php'; if (! empty($conf->fournisseur->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('s.nom'=>'Supplier','pf.ref_fourn'=>'SupplierRef','pf.quantity'=>'QtyMin','pf.remise_percent'=>'DiscountQtyMin','pf.unitprice'=>'BuyingPrice','pf.delivery_time_days'=>'NbDaysToDelivery')); @@ -187,9 +193,11 @@ class modProduct extends DolibarrModules $this->export_TypeFields_array[$r]=array( 'p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.url'=>"Text",'p.accountancy_code_sell'=>"Text", 'p.accountancy_code_sell_intra'=>"Text",'p.accountancy_code_sell_export'=>"Text",'p.accountancy_code_buy'=>"Text", - 'p.note'=>"Text",'p.length'=>"Numeric",'p.width'=>"Numeric",'p.height'=>"Numeric",'p.surface'=>"Numeric",'p.volume'=>"Numeric",'p.weight'=>"Numeric", + 'p.note'=>"Text",'p.note_public'=>"Text", + 'p.weight'=>"Numeric",'p.length'=>"Numeric",'p.width'=>"Numeric",'p.height'=>"Numeric",'p.surface'=>"Numeric",'p.volume'=>"Numeric", 'p.customcode'=>'Text','p.price_base_type'=>"Text",'p.price'=>"Numeric",'p.price_ttc'=>"Numeric",'p.tva_tx'=>'Numeric','p.tosell'=>"Boolean", 'p.tobuy'=>"Boolean",'p.datec'=>'Date','p.tms'=>'Date' + //'p.duration'=>"Duree", ); if (! empty($conf->stock->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r], array('p.stock'=>'Numeric','p.seuil_stock_alerte'=>'Numeric','p.desiredstock'=>'Numeric','p.pmp'=>'Numeric','p.cost_price'=>'Numeric')); if (! empty($conf->barcode->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r], array('p.barcode'=>'Text')); @@ -292,8 +300,9 @@ class modProduct extends DolibarrModules $this->export_fields_array[$r]=array( 'p.rowid'=>"Id",'p.ref'=>"Ref",'p.label'=>"Label",'p.description'=>"Description",'p.url'=>"PublicUrl", 'p.accountancy_code_sell'=>"ProductAccountancySellCode",'p.accountancy_code_sell_intra'=>"ProductAccountancySellIntraCode", - 'p.accountancy_code_sell_export'=>"ProductAccountancySellExportCode",'p.accountancy_code_buy'=>"ProductAccountancyBuyCode",'p.note'=>"Note", - 'p.length'=>"Length",'p.surface'=>"Surface",'p.volume'=>"Volume",'p.weight'=>"Weight",'p.customcode'=>'CustomCode', + 'p.accountancy_code_sell_export'=>"ProductAccountancySellExportCode",'p.accountancy_code_buy'=>"ProductAccountancyBuyCode", + 'p.note'=>"NotePrivate",'p.note_public'=>'NotePublic', + 'p.weight'=>"Weight",'p.length'=>"Length",'p.surface'=>"Surface",'p.volume'=>"Volume",'p.customcode'=>'CustomCode', 'p.price_base_type'=>"PriceBase",'p.price'=>"UnitPriceHT",'p.price_ttc'=>"UnitPriceTTC",'p.tva_tx'=>'VATRate','p.tosell'=>"OnSell", 'p.tobuy'=>"OnBuy",'p.datec'=>'DateCreation','p.tms'=>'DateModification' ); @@ -301,9 +310,10 @@ class modProduct extends DolibarrModules if (! empty($conf->barcode->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('p.barcode'=>'BarCode')); $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('pa.qty'=>'Qty','pa.incdec'=>'ComposedProductIncDecStock')); $this->export_TypeFields_array[$r]=array( - 'p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.url'=>"Text",'p.accountancy_code_sell'=>"Text", - 'p.accountancy_code_sell_intra'=>"Text",'p.accountancy_code_sell_export'=>"Text",'p.accountancy_code_buy'=>"Text", - 'p.note'=>"Text",'p.length'=>"Numeric",'p.surface'=>"Numeric",'p.volume'=>"Numeric",'p.weight'=>"Numeric",'p.customcode'=>'Text', + 'p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.url'=>"Text", + 'p.accountancy_code_sell'=>"Text",'p.accountancy_code_sell_intra'=>"Text",'p.accountancy_code_sell_export'=>"Text",'p.accountancy_code_buy'=>"Text", + 'p.note'=>"Text",'p.note_public'=>"Text", + 'p.weight'=>"Numeric",'p.length'=>"Numeric",'p.surface'=>"Numeric",'p.volume'=>"Numeric",'p.customcode'=>'Text', 'p.price_base_type'=>"Text",'p.price'=>"Numeric",'p.price_ttc'=>"Numeric",'p.tva_tx'=>'Numeric','p.tosell'=>"Boolean",'p.tobuy'=>"Boolean", 'p.datec'=>'Date','p.tms'=>'Date' ); @@ -348,29 +358,21 @@ class modProduct extends DolibarrModules $this->import_tables_creator_array[$r]=array('p'=>'fk_user_author'); // Fields to store import user id $this->import_fields_array[$r]=array(//field order as per structure of table llx_product 'p.ref' => "Ref*", - 'p.datec' => 'DateCreation', 'p.label' => "Label*", - 'p.description' => "Description", - 'p.note_public' => "PublicNote",//public note - 'p.note' => "PrivateNote",//private note - 'p.customcode' => 'CustomCode', - 'p.price' => "SellingPriceHT",//without - 'p.price_min' => "MinPrice", - 'p.price_ttc' => "SellingPriceTTC",//with tax - 'p.price_min_ttc' => "SellingMinPriceTTC", - 'p.price_base_type' => "PriceBaseType",//price base: with-tax (TTC) or without (HT) tax. Displays accordingly in Product card - 'p.cost_price' => "CostPrice", - 'p.tva_tx' => 'VATRate', - 'p.tosell' => "OnSell*", - 'p.tobuy' => "OnBuy*", - 'p.fk_product_type' => "Type*", - 'p.duration' => "Duration",///duration of service - 'p.url' => "PublicUrl", + 'p.fk_product_type' => "Type*", + 'p.tosell' => "OnSell*", + 'p.tobuy' => "OnBuy*", + 'p.description' => "Description", + 'p.url' => "PublicUrl", + 'p.customcode' => 'CustomCode', + 'p.fk_country' => 'CountryCode', 'p.accountancy_code_sell' => "ProductAccountancySellCode", 'p.accountancy_code_sell_intra' => "ProductAccountancySellIntraCode", 'p.accountancy_code_sell_export' => "ProductAccountancySellExportCode", 'p.accountancy_code_buy' => "ProductAccountancyBuyCode", - 'p.weight' => "Weight", + 'p.note_public' => "NotePublic", + 'p.note' => "NotePrivate", + 'p.weight' => "Weight", 'p.weight_units' => "WeightUnits", 'p.length' => "Length", 'p.length_units' => "LengthUnit", @@ -382,7 +384,16 @@ class modProduct extends DolibarrModules 'p.surface_units' => "SurfaceUnit", 'p.volume' => "Volume", 'p.volume_units' => "VolumeUnits", - 'p.finished' => 'Nature', + 'p.duration' => "Duration",//duration of service + 'p.finished' => 'Nature', + 'p.price' => "SellingPriceHT",//without + 'p.price_min' => "MinPrice", + 'p.price_ttc' => "SellingPriceTTC",//with tax + 'p.price_min_ttc' => "SellingMinPriceTTC", + 'p.price_base_type' => "PriceBaseType",//price base: with-tax (TTC) or without (HT) tax. Displays accordingly in Product card + 'p.tva_tx' => 'VATRate', + 'p.datec' => 'DateCreation', + 'p.cost_price' => "CostPrice", ); if (!empty($conf->stock->enabled)) {//if Stock module enabled $this->import_fields_array[$r] = array_merge($this->import_fields_array[$r], array( @@ -392,10 +403,9 @@ class modProduct extends DolibarrModules )); } - /* Disabled: The value of fields xxx_units is the scale for reference unit, not the rowid in table llx_c_unit !!! $this->import_convertvalue_array[$r] = array( - 'p.weight_units' => array( - 'rule' => 'fetchidfromcodeunits', + 'p.weight_units' => array( + 'rule' => 'fetchscalefromcodeunits', // Switch this to fetchidfromcodeunits when we will store id instead of scale in product table 'classfile' => '/core/class/cunits.class.php', 'class' => 'CUnits', 'method' => 'fetch', @@ -403,7 +413,7 @@ class modProduct extends DolibarrModules 'dict' => 'DictionaryMeasuringUnits' ), 'p.length_units' => array( - 'rule' => 'fetchidfromcodeunits', + 'rule' => 'fetchscalefromcodeunits', // Switch this to fetchidfromcodeunits when we will store id instead of scale in product table 'classfile' => '/core/class/cunits.class.php', 'class' => 'CUnits', 'method' => 'fetch', @@ -411,7 +421,7 @@ class modProduct extends DolibarrModules 'dict' => 'DictionaryMeasuringUnits' ), 'p.width_units' => array( - 'rule' => 'fetchidfromcodeunits', + 'rule' => 'fetchscalefromcodeunits', // Switch this to fetchidfromcodeunits when we will store id instead of scale in product table 'classfile' => '/core/class/cunits.class.php', 'class' => 'CUnits', 'method' => 'fetch', @@ -419,7 +429,7 @@ class modProduct extends DolibarrModules 'dict' => 'DictionaryMeasuringUnits' ), 'p.height_units' => array( - 'rule' => 'fetchidfromcodeunits', + 'rule' => 'fetchscalefromcodeunits', // Switch this to fetchidfromcodeunits when we will store id instead of scale in product table 'classfile' => '/core/class/cunits.class.php', 'class' => 'CUnits', 'method' => 'fetch', @@ -427,7 +437,7 @@ class modProduct extends DolibarrModules 'dict' => 'DictionaryMeasuringUnits' ), 'p.surface_units' => array( - 'rule' => 'fetchidfromcodeunits', + 'rule' => 'fetchscalefromcodeunits', // Switch this to fetchidfromcodeunits when we will store id instead of scale in product table 'classfile' => '/core/class/cunits.class.php', 'class' => 'CUnits', 'method' => 'fetch', @@ -435,14 +445,21 @@ class modProduct extends DolibarrModules 'dict' => 'DictionaryMeasuringUnits' ), 'p.volume_units' => array( - 'rule' => 'fetchidfromcodeunits', + 'rule' => 'fetchscalefromcodeunits', // Switch this to fetchidfromcodeunits when we will store id instead of scale in product table 'classfile' => '/core/class/cunits.class.php', 'class' => 'CUnits', 'method' => 'fetch', 'units' => 'volume', 'dict' => 'DictionaryMeasuringUnits' - ) - );*/ + ), + 'p.fk_country' => array( + 'rule' => 'fetchidfromcodeid', + 'classfile' => '/core/class/ccountry.class.php', + 'class' => 'Ccountry', + 'method' => 'fetch', + 'dict' => 'DictionaryCountry' + ) + ); if (! empty($conf->fournisseur->enabled) || !empty($conf->margin->enabled)) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r], array('p.cost_price'=>'CostPrice')); if (is_object($mysoc) && $mysoc->useNPR()) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r], array('p.recuperableonly'=>'NPR')); @@ -480,18 +497,19 @@ class modProduct extends DolibarrModules // field order as per structure of table llx_product $import_sample = array( 'p.ref' => "PREF123456", - 'p.datec' => 'formatted as '.dol_print_date(dol_now(), '%Y-%m-%d'), + 'p.datec' => dol_print_date(dol_now(), '%Y-%m-%d'), 'p.label' => "Product name in default language", 'p.description' => "Product description in default language", 'p.note_public' => "a public note (free text)", 'p.note' => "a private note (free text)", 'p.customcode' => 'customs code', - 'p.price' => "price ex-vat eg. 100", - 'p.price_min' => "price ex-vat eg. 100", - 'p.price_ttc' => "price inc-vat eg. 110", - 'p.price_min_ttc' => "price inc-vat eg. 110", + 'p.fk_country' => 'FR', + 'p.price' => "100", + 'p.price_min' => "100", + 'p.price_ttc' => "110", + 'p.price_min_ttc' => "110", 'p.price_base_type' => "HT (show/use price excl. tax) / TTC (show/use price incl. tax)", - 'p.tva_tx' => 'tax rate eg: 10. Must match numerically one of the tax rates defined for your country', + 'p.tva_tx' => '10', // tax rate eg: 10. Must match numerically one of the tax rates defined for your country' 'p.tosell' => "0 (not for sale to customer, eg. raw material) / 1 (for sale)", 'p.tobuy' => "0 (not for purchase from supplier, eg. virtual product) / 1 (for purchase)", 'p.fk_product_type' => "0 (product) / 1 (service)", @@ -502,27 +520,27 @@ class modProduct extends DolibarrModules 'p.accountancy_code_sell_export' => "", 'p.accountancy_code_buy' => "", 'p.weight' => "", - 'p.weight_units' => 'use a unit of measure from the dictionary. g/Kg/T etc....matches field "Scale" for unit type "weight" in table "' . MAIN_DB_PREFIX . 'c_units', + 'p.weight_units' => 'kg', // Use a unit of measure from the dictionary. g/Kg/T etc....matches field "Short label" for unit type "weight" in table "' . MAIN_DB_PREFIX . 'c_units', 'p.length' => "", - 'p.length_units' => 'use a unit of measure from the dictionary. m/cm/mm etc....matches field "Scale" for unit type "size" in table "' . MAIN_DB_PREFIX . 'c_units', + 'p.length_units' => 'm', // Use a unit of measure from the dictionary. m/cm/mm etc....matches field "Short label" for unit type "size" in table "' . MAIN_DB_PREFIX . 'c_units', 'p.width' => "", - 'p.width_units' => 'use a unit of measure from the dictionary. m/cm/mm etc....matches field "Scale" for unit type "size" in table "' . MAIN_DB_PREFIX . 'c_units', + 'p.width_units' => 'm', // Use a unit of measure from the dictionary. m/cm/mm etc....matches field "Short label" for unit type "size" in table "' . MAIN_DB_PREFIX . 'c_units', 'p.height' => "", - 'p.height_units' => 'use a unit of measure from the dictionary. m/cm/mm etc....matches field "Scale" for unit type "size" in table "' . MAIN_DB_PREFIX . 'c_units', + 'p.height_units' => 'm', // Use a unit of measure from the dictionary. m/cm/mm etc....matches field "Short label" for unit type "size" in table "' . MAIN_DB_PREFIX . 'c_units', 'p.surface' => "", - 'p.surface_units' => 'use a unit of measure from the dictionary. m2/cm2/mm2 etc....matches field "Scale" for unit type "surface" in table "' . MAIN_DB_PREFIX . 'c_units', + 'p.surface_units' => 'm2', // Use a unit of measure from the dictionary. m2/cm2/mm2 etc....matches field "Short label" for unit type "surface" in table "' . MAIN_DB_PREFIX . 'c_units', 'p.volume' => "", - 'p.volume_units' => 'use a unit of measure from the dictionary. m3/cm3/mm3 etc....matches field "Scale" for unit type "volume" in table "' . MAIN_DB_PREFIX . 'c_units', + 'p.volume_units' => 'm3', //Use a unit of measure from the dictionary. m3/cm3/mm3 etc....matches field "Short label" for unit type "volume" in table "' . MAIN_DB_PREFIX . 'c_units', 'p.finished' => '0 (raw material) / 1 (finished goods)' ); //clauses copied from import_fields_array if (!empty($conf->stock->enabled)) $import_sample = array_merge($import_sample, array( - 'p.seuil_stock_alerte' => 'quantity for low-stock warning (empty for no warning)', - 'p.pmp' => '0 (default)', - 'p.desiredstock' => 'target quantity to maintain in stock (for replenishment feature)' + 'p.seuil_stock_alerte' => '', + 'p.pmp' => '0', + 'p.desiredstock' => '' )); - if (! empty($conf->fournisseur->enabled) || !empty($conf->margin->enabled)) $import_sample=array_merge($import_sample, array('p.cost_price'=>'user-editable, used for margin calculations only')); - if (is_object($mysoc) && $mysoc->useNPR()) $import_sample=array_merge($import_sample, array('p.recuperableonly'=>'0 / 1 (French VAT NPR yes/no')); + if (! empty($conf->fournisseur->enabled) || !empty($conf->margin->enabled)) $import_sample=array_merge($import_sample, array('p.cost_price'=>'90')); + if (is_object($mysoc) && $mysoc->useNPR()) $import_sample=array_merge($import_sample, array('p.recuperableonly'=>'0')); if (is_object($mysoc) && $mysoc->useLocalTax(1)) $import_sample=array_merge($import_sample, array('p.localtax1_tx'=>'', 'p.localtax1_type'=>'')); if (is_object($mysoc) && $mysoc->useLocalTax(2)) $import_sample=array_merge($import_sample, array('p.localtax2_tx'=>'', 'p.localtax2_type'=>'')); if (! empty($conf->barcode->enabled)) $import_sample=array_merge($import_sample, array('p.barcode'=>'')); @@ -596,34 +614,34 @@ class modProduct extends DolibarrModules $this->import_examplevalues_array[$r]=array( 'sp.fk_product' => "PRODUCT_REF or id:123456", 'sp.fk_soc' => "My Supplier", - 'sp.ref_fourn' => "eg: XYZ-F123456", + 'sp.ref_fourn' => "XYZ-F123456", 'sp.quantity' => "5", - 'sp.tva_tx' => 'one of the defined rates eg. 21', + 'sp.tva_tx' => '10', 'sp.price'=>"50", 'sp.unitprice'=>'50', 'sp.remise_percent'=>'0', 'sp.default_vat_code' => '', - 'sp.delivery_time_days' => 'eg. 5', + 'sp.delivery_time_days' => '5', 'sp.supplier_reputation' => 'FAVORITE / NOTTHGOOD / DONOTORDER' ); if (is_object($mysoc) && $mysoc->useNPR()) $this->import_examplevalues_array[$r]=array_merge($this->import_examplevalues_array[$r], array('sp.recuperableonly'=>'')); if (is_object($mysoc) && $mysoc->useLocalTax(1)) $this->import_examplevalues_array[$r]=array_merge($this->import_examplevalues_array[$r], array('sp.localtax1_tx'=>'LT1', 'sp.localtax1_type'=>'LT1Type')); if (is_object($mysoc) && $mysoc->useLocalTax(2)) $this->import_examplevalues_array[$r]=array_merge($this->import_examplevalues_array[$r], array('sp.localtax2_tx'=>'LT2', 'sp.localtax2_type'=>'LT2Type')); $this->import_examplevalues_array[$r] = array_merge($this->import_examplevalues_array[$r], array( - 'sp.price' => "eg. 50.00", - 'sp.unitprice' => 'eg. 10', + 'sp.price' => "50.00", + 'sp.unitprice' => '10', // TODO Make this field not required and calculate it from price and qty - 'sp.remise_percent' => 'eg: 20' + 'sp.remise_percent' => '20' )); if ($conf->multicurrency->enabled) { $this->import_examplevalues_array[$r]=array_merge($this->import_examplevalues_array[$r], array( 'sp.fk_multicurrency'=>'eg: 2, rowid for code of multicurrency currency', - 'sp.multicurrency_code'=>'eg: GBP', - 'sp.multicurrency_tx'=>'currency rate eg: 1.12345', - 'sp.multicurrency_unitprice'=>'cost per unit in supplier currency', + 'sp.multicurrency_code'=>'GBP', + 'sp.multicurrency_tx'=>'1.12345', + 'sp.multicurrency_unitprice'=>'', // TODO Make this field not required and calculate it from price and qty - 'sp.multicurrency_price'=>'cost for min quantity in supplier currency' + 'sp.multicurrency_price'=>'' )); } @@ -653,8 +671,8 @@ class modProduct extends DolibarrModules ); $this->import_examplevalues_array[$r]=array('pr.fk_product'=>"PRODUCT_REF or id:123456", 'pr.price_base_type'=>"HT (for excl tax) or TTC (for inc tax)",'pr.price_level'=>"1", - 'pr.price'=>"100",'pr.price_ttc'=>"110", - 'pr.price_min'=>"100",'pr.price_min_ttc'=>"110", + 'pr.price'=>"100", 'pr.price_ttc'=>"110", + 'pr.price_min'=>"100", 'pr.price_min_ttc'=>"110", 'pr.tva_tx'=>'20', 'pr.recuperableonly'=>'0', 'pr.date_price'=>'2013-04-10'); diff --git a/htdocs/core/modules/modService.class.php b/htdocs/core/modules/modService.class.php index 605c48f0e6b..1a72d9c4463 100644 --- a/htdocs/core/modules/modService.class.php +++ b/htdocs/core/modules/modService.class.php @@ -141,19 +141,39 @@ class modService extends DolibarrModules $this->export_code[$r]=$this->rights_class.'_'.$r; $this->export_label[$r]="Services"; // Translation key (used only if key ExportDataset_xxx_z not found) $this->export_permission[$r]=array(array("service","export")); - $this->export_fields_array[$r]=array('p.rowid'=>"Id",'p.ref'=>"Ref",'p.label'=>"Label",'p.description'=>"Description",'p.url'=>"PublicUrl",'p.accountancy_code_sell'=>"ProductAccountancySellCode",'p.accountancy_code_buy'=>"ProductAccountancyBuyCode",'p.note'=>"Note",'p.price_base_type'=>"PriceBase",'p.price'=>"UnitPriceHT",'p.price_ttc'=>"UnitPriceTTC",'p.tva_tx'=>'VATRate','p.tosell'=>"OnSell",'p.tobuy'=>"OnBuy",'p.duration'=>"Duration",'p.datec'=>'DateCreation','p.tms'=>'DateModification'); + $this->export_fields_array[$r]=array( + 'p.rowid'=>"Id",'p.ref'=>"Ref",'p.label'=>"Label", + 'p.fk_product_type'=>'Type','p.tosell'=>"OnSell",'p.tobuy'=>"OnBuy", + 'p.description'=>"Description",'p.url'=>"PublicUrl", + 'p.customcode'=>'CustomCode','p.fk_country'=>'IDCountry', + 'p.accountancy_code_sell'=>"ProductAccountancySellCode", 'p.accountancy_code_sell_intra'=>"ProductAccountancySellIntraCode", + 'p.accountancy_code_sell_export'=>"ProductAccountancySellExportCode", 'p.accountancy_code_buy'=>"ProductAccountancyBuyCode", + 'p.note'=>"NotePrivate",'p.note_public'=>'NotePublic', + //'p.weight'=>"Weight",'p.length'=>"Length",'p.width'=>"Width",'p.height'=>"Height",'p.surface'=>"Surface",'p.volume'=>"Volume", + 'p.duration'=>"Duration", + 'p.price_base_type'=>"PriceBase",'p.price'=>"UnitPriceHT",'p.price_ttc'=>"UnitPriceTTC", + 'p.tva_tx'=>'VATRate','p.datec'=>'DateCreation','p.tms'=>'DateModification' + ); if (is_object($mysoc) && $mysoc->useNPR()) $this->export_fields_array[$r]['p.recuperableonly']='NPR'; + if (! empty($conf->fournisseur->enabled) || !empty($conf->margin->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('p.cost_price'=>'CostPrice')); if (! empty($conf->stock->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('p.stock'=>'Stock','p.seuil_stock_alerte'=>'StockLimit','p.desiredstock'=>'DesiredStock','p.pmp'=>'PMPValue')); if (! empty($conf->barcode->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('p.barcode'=>'BarCode')); - if (! empty($conf->fournisseur->enabled) || !empty($conf->margin->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('p.cost_price'=>'CostPrice')); $keyforselect='product'; $keyforelement='product'; $keyforaliasextra='extra'; include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php'; if (! empty($conf->fournisseur->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('s.nom'=>'Supplier','pf.ref_fourn'=>'SupplierRef','pf.quantity'=>'QtyMin','pf.remise_percent'=>'DiscountQtyMin','pf.unitprice'=>'BuyingPrice','pf.delivery_time_days'=>'NbDaysToDelivery')); if (! empty($conf->global->EXPORTTOOL_CATEGORIES)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('group_concat(cat.label)'=>'Categories')); if (! empty($conf->global->MAIN_MULTILANGS)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('l.lang'=>'Language', 'l.label'=>'TranslatedLabel','l.description'=>'TranslatedDescription','l.note'=>'TranslatedNote')); if (! empty($conf->global->PRODUCT_USE_UNITS)) $this->export_fields_array[$r]['p.fk_unit'] = 'Unit'; - $this->export_TypeFields_array[$r]=array('p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.url'=>"Text",'p.accountancy_code_sell'=>"Text",'p.accountancy_code_buy'=>"Text",'p.note'=>"Text",'p.price_base_type'=>"Text",'p.price'=>"Numeric",'p.price_ttc'=>"Numeric",'p.tva_tx'=>'Numeric','p.tosell'=>"Boolean",'p.tobuy'=>"Boolean",'p.duration'=>"Duree",'p.datec'=>'Date','p.tms'=>'Date'); - if (! empty($conf->stock->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r], array('p.stock'=>'Numeric')); + $this->export_TypeFields_array[$r]=array( + 'p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.url'=>"Text",'p.accountancy_code_sell'=>"Text", + 'p.accountancy_code_sell_intra'=>"Text",'p.accountancy_code_sell_export'=>"Text",'p.accountancy_code_buy'=>"Text", + 'p.note'=>"Text",'p.note_public'=>"Text", + 'p.weight'=>"Numeric",'p.length'=>"Numeric",'p.width'=>"Numeric",'p.height'=>"Numeric",'p.surface'=>"Numeric",'p.volume'=>"Numeric", + 'p.customcode'=>'Text','p.price_base_type'=>"Text",'p.price'=>"Numeric",'p.price_ttc'=>"Numeric",'p.tva_tx'=>'Numeric','p.tosell'=>"Boolean", + 'p.tobuy'=>"Boolean",'p.datec'=>'Date','p.tms'=>'Date', + 'p.duration'=>"Duree", + ); + if (! empty($conf->stock->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r], array('p.stock'=>'Numeric','p.seuil_stock_alerte'=>'Numeric','p.desiredstock'=>'Numeric','p.pmp'=>'Numeric','p.cost_price'=>'Numeric')); if (! empty($conf->barcode->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r], array('p.barcode'=>'Text')); if (! empty($conf->fournisseur->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r], array('s.nom'=>'Text','pf.ref_fourn'=>'Text','pf.unitprice'=>'Numeric','pf.quantity'=>'Numeric','pf.remise_percent'=>'Numeric','pf.delivery_time_days'=>'Numeric')); if (! empty($conf->global->MAIN_MULTILANGS)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r], array('l.lang'=>'Text', 'l.label'=>'Text','l.description'=>'Text','l.note'=>'Text')); @@ -211,7 +231,7 @@ class modService extends DolibarrModules $this->export_sql_start[$r]='SELECT DISTINCT '; $this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'product as p'; $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product_price as pr ON p.rowid = pr.fk_product AND pr.entity = '.$conf->entity; // export prices only for the current entity - $this->export_sql_end[$r] .=' WHERE p.entity IN ('.getEntity('product').')'; + $this->export_sql_end[$r] .=' WHERE p.entity IN ('.getEntity('product').')'; // For product and service profile } if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) @@ -243,7 +263,7 @@ class modService extends DolibarrModules $this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'product as p'; $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product_customer_price as pr ON p.rowid = pr.fk_product AND pr.entity = '.$conf->entity; // export prices only for the current entity $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'societe as s ON pr.fk_soc = s.rowid'; - $this->export_sql_end[$r] .=' WHERE p.entity IN ('.getEntity('product').')'; + $this->export_sql_end[$r] .=' WHERE p.entity IN ('.getEntity('product').')'; // For product and service profile } if (! empty($conf->global->PRODUIT_SOUSPRODUITS)) @@ -255,8 +275,10 @@ class modService extends DolibarrModules $this->export_permission[$r]=array(array("produit","export")); $this->export_fields_array[$r]=array( 'p.rowid'=>"Id",'p.ref'=>"Ref",'p.label'=>"Label",'p.description'=>"Description",'p.url'=>"PublicUrl", - 'p.accountancy_code_sell'=>"ProductAccountancySellCode",'p.accountancy_code_buy'=>"ProductAccountancyBuyCode",'p.note'=>"Note", - 'p.length'=>"Length",'p.surface'=>"Surface",'p.volume'=>"Volume",'p.weight'=>"Weight",'p.customcode'=>'CustomCode', + 'p.accountancy_code_sell'=>"ProductAccountancySellCode",'p.accountancy_code_sell_intra'=>"ProductAccountancySellIntraCode", + 'p.accountancy_code_sell_export'=>"ProductAccountancySellExportCode",'p.accountancy_code_buy'=>"ProductAccountancyBuyCode", + 'p.note'=>"NotePrivate",'p.note_public'=>'NotePublic', + 'p.weight'=>"Weight",'p.length'=>"Length",'p.surface'=>"Surface",'p.volume'=>"Volume",'p.customcode'=>'CustomCode', 'p.price_base_type'=>"PriceBase",'p.price'=>"UnitPriceHT",'p.price_ttc'=>"UnitPriceTTC",'p.tva_tx'=>'VATRate','p.tosell'=>"OnSell", 'p.tobuy'=>"OnBuy",'p.datec'=>'DateCreation','p.tms'=>'DateModification' ); @@ -264,8 +286,10 @@ class modService extends DolibarrModules if (! empty($conf->barcode->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('p.barcode'=>'BarCode')); $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('pa.qty'=>'Qty','pa.incdec'=>'ComposedProductIncDecStock')); $this->export_TypeFields_array[$r]=array( - 'p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.url'=>"Text",'p.accountancy_code_sell'=>"Text",'p.accountancy_code_buy'=>"Text", - 'p.note'=>"Text",'p.length'=>"Numeric",'p.surface'=>"Numeric",'p.volume'=>"Numeric",'p.weight'=>"Numeric",'p.customcode'=>'Text', + 'p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.url'=>"Text", + 'p.accountancy_code_sell'=>"Text",'p.accountancy_code_sell_intra'=>"Text",'p.accountancy_code_sell_export'=>"Text",'p.accountancy_code_buy'=>"Text", + 'p.note'=>"Text",'p.note_public'=>"Text", + 'p.weight'=>"Numeric",'p.length'=>"Numeric",'p.surface'=>"Numeric",'p.volume'=>"Numeric",'p.customcode'=>'Text', 'p.price_base_type'=>"Text",'p.price'=>"Numeric",'p.price_ttc'=>"Numeric",'p.tva_tx'=>'Numeric','p.tosell'=>"Boolean",'p.tobuy'=>"Boolean", 'p.datec'=>'Date','p.tms'=>'Date' ); @@ -274,7 +298,8 @@ class modService extends DolibarrModules $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r], array('pa.qty'=>'Numeric')); $this->export_entities_array[$r]=array( 'p.rowid'=>"virtualproduct",'p.ref'=>"virtualproduct",'p.label'=>"virtualproduct",'p.description'=>"virtualproduct",'p.url'=>"virtualproduct", - 'p.accountancy_code_sell'=>'virtualproduct','p.accountancy_code_buy'=>'virtualproduct','p.note'=>"virtualproduct",'p.length'=>"virtualproduct", + 'p.accountancy_code_sell'=>'virtualproduct','p.accountancy_code_sell_intra'=>'virtualproduct','p.accountancy_code_sell_export'=>'virtualproduct', + 'p.accountancy_code_buy'=>'virtualproduct','p.note'=>"virtualproduct",'p.length'=>"virtualproduct", 'p.surface'=>"virtualproduct",'p.volume'=>"virtualproduct",'p.weight'=>"virtualproduct",'p.customcode'=>'virtualproduct', 'p.price_base_type'=>"virtualproduct",'p.price'=>"virtualproduct",'p.price_ttc'=>"virtualproduct",'p.tva_tx'=>"virtualproduct", 'p.tosell'=>"virtualproduct",'p.tobuy'=>"virtualproduct",'p.datec'=>"virtualproduct",'p.tms'=>"virtualproduct" @@ -290,55 +315,7 @@ class modService extends DolibarrModules $this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'product as p'; $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product_extrafields as extra ON p.rowid = extra.fk_object,'; $this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'product_association as pa, '.MAIN_DB_PREFIX.'product as p2'; - $this->export_sql_end[$r] .=' WHERE p.entity IN ('.getEntity('product').')'; - $this->export_sql_end[$r] .=' AND p.rowid = pa.fk_product_pere AND p2.rowid = pa.fk_product_fils'; - } - - if (! empty($conf->global->PRODUIT_SOUSPRODUITS)) - { - // Exports virtual products - $r++; - $this->export_code[$r]=$this->rights_class.'_'.$r; - $this->export_label[$r]="AssociatedProducts"; // Translation key (used only if key ExportDataset_xxx_z not found) - $this->export_permission[$r]=array(array("service","export")); - $this->export_fields_array[$r]=array( - 'p.rowid'=>"Id",'p.ref'=>"Ref",'p.label'=>"Label",'p.description'=>"Description",'p.url'=>"PublicUrl", - 'p.accountancy_code_sell'=>"ProductAccountancySellCode",'p.accountancy_code_buy'=>"ProductAccountancyBuyCode",'p.note'=>"Note", - 'p.length'=>"Length",'p.surface'=>"Surface",'p.volume'=>"Volume",'p.weight'=>"Weight",'p.customcode'=>'CustomCode', - 'p.price_base_type'=>"PriceBase",'p.price'=>"UnitPriceHT",'p.price_ttc'=>"UnitPriceTTC",'p.tva_tx'=>'VATRate','p.tosell'=>"OnSell", - 'p.tobuy'=>"OnBuy",'p.datec'=>'DateCreation','p.tms'=>'DateModification' - ); - if (! empty($conf->stock->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('p.stock'=>'Stock','p.seuil_stock_alerte'=>'StockLimit','p.desiredstock'=>'DesiredStock','p.pmp'=>'PMPValue')); - if (! empty($conf->barcode->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('p.barcode'=>'BarCode')); - $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('pa.qty'=>'Qty','pa.incdec'=>'ComposedProductIncDecStock')); - $this->export_TypeFields_array[$r]=array( - 'p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.url'=>"Text",'p.accountancy_code_sell'=>"Text",'p.accountancy_code_buy'=>"Text", - 'p.note'=>"Text",'p.length'=>"Numeric",'p.surface'=>"Numeric",'p.volume'=>"Numeric",'p.weight'=>"Numeric",'p.customcode'=>'Text', - 'p.price_base_type'=>"Text",'p.price'=>"Numeric",'p.price_ttc'=>"Numeric",'p.tva_tx'=>'Numeric','p.tosell'=>"Boolean",'p.tobuy'=>"Boolean", - 'p.datec'=>'Date','p.tms'=>'Date' - ); - if (! empty($conf->stock->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r], array('p.stock'=>'Numeric','p.seuil_stock_alerte'=>'Numeric','p.desiredstock'=>'Numeric','p.pmp'=>'Numeric','p.cost_price'=>'Numeric')); - if (! empty($conf->barcode->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r], array('p.barcode'=>'Text')); - $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r], array('pa.qty'=>'Numeric')); - $this->export_entities_array[$r]=array( - 'p.rowid'=>"virtualproduct",'p.ref'=>"virtualproduct",'p.label'=>"virtualproduct",'p.description'=>"virtualproduct",'p.url'=>"virtualproduct", - 'p.accountancy_code_sell'=>'virtualproduct','p.accountancy_code_buy'=>'virtualproduct','p.note'=>"virtualproduct",'p.length'=>"virtualproduct", - 'p.surface'=>"virtualproduct",'p.volume'=>"virtualproduct",'p.weight'=>"virtualproduct",'p.customcode'=>'virtualproduct', - 'p.price_base_type'=>"virtualproduct",'p.price'=>"virtualproduct",'p.price_ttc'=>"virtualproduct",'p.tva_tx'=>"virtualproduct", - 'p.tosell'=>"virtualproduct",'p.tobuy'=>"virtualproduct",'p.datec'=>"virtualproduct",'p.tms'=>"virtualproduct" - ); - if (! empty($conf->stock->enabled)) $this->export_entities_array[$r]=array_merge($this->export_entities_array[$r], array('p.stock'=>'virtualproduct','p.seuil_stock_alerte'=>'virtualproduct','p.desiredstock'=>'virtualproduct','p.pmp'=>'virtualproduct')); - if (! empty($conf->barcode->enabled)) $this->export_entities_array[$r]=array_merge($this->export_entities_array[$r], array('p.barcode'=>'virtualproduct')); - $this->export_entities_array[$r]=array_merge($this->export_entities_array[$r], array('pa.qty'=>"subproduct",'pa.incdec'=>'subproduct')); - $keyforselect='product'; $keyforelement='product'; $keyforaliasextra='extra'; - include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php'; - $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('p2.rowid'=>"Id",'p2.ref'=>"Ref",'p2.label'=>"Label",'p2.description'=>"Description")); - $this->export_entities_array[$r]=array_merge($this->export_entities_array[$r], array('p2.rowid'=>"subproduct",'p2.ref'=>"subproduct",'p2.label'=>"subproduct",'p2.description'=>"subproduct")); - $this->export_sql_start[$r]='SELECT DISTINCT '; - $this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'product as p'; - $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product_extrafields as extra ON p.rowid = extra.fk_object,'; - $this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'product_association as pa, '.MAIN_DB_PREFIX.'product as p2'; - $this->export_sql_end[$r] .=' WHERE p.fk_product_type = 0 AND p.entity IN ('.getEntity('product').')'; + $this->export_sql_end[$r] .=' WHERE p.entity IN ('.getEntity('product').')'; // For product and service profile $this->export_sql_end[$r] .=' AND p.rowid = pa.fk_product_pere AND p2.rowid = pa.fk_product_fils'; } } @@ -357,12 +334,109 @@ class modService extends DolibarrModules $this->import_tables_array[$r]=array('p'=>MAIN_DB_PREFIX.'product','extra'=>MAIN_DB_PREFIX.'product_extrafields'); $this->import_tables_creator_array[$r]=array('p'=>'fk_user_author'); // Fields to store import user id $this->import_fields_array[$r]=array( - 'p.ref'=>"Ref*",'p.label'=>"Label*",'p.description'=>"Description",'p.url'=>"PublicUrl",'p.accountancy_code_sell'=>"ProductAccountancySellCode", - 'p.accountancy_code_buy'=>"ProductAccountancyBuyCode",'p.note'=>"Note",'p.length'=>"Length",'p.surface'=>"Surface",'p.volume'=>"Volume", - 'p.weight'=>"Weight",'p.duration'=>"Duration",'p.customcode'=>'CustomCode','p.price'=>"SellingPriceHT",'p.price_ttc'=>"SellingPriceTTC", - 'p.tva_tx'=>'VATRate','p.tosell'=>"OnSell*",'p.tobuy'=>"OnBuy*",'p.fk_product_type'=>"Type*",'p.finished'=>'Nature','p.datec'=>'DateCreation' + 'p.ref' => "Ref*", + 'p.label' => "Label*", + 'p.fk_product_type' => "Type*", + 'p.tosell' => "OnSell*", + 'p.tobuy' => "OnBuy*", + 'p.description' => "Description", + 'p.url' => "PublicUrl", + 'p.customcode' => 'CustomCode', + 'p.fk_country' => 'CountryCode', + 'p.accountancy_code_sell' => "ProductAccountancySellCode", + 'p.accountancy_code_sell_intra' => "ProductAccountancySellIntraCode", + 'p.accountancy_code_sell_export' => "ProductAccountancySellExportCode", + 'p.accountancy_code_buy' => "ProductAccountancyBuyCode", + 'p.note_public' => "NotePublic", + 'p.note' => "NotePrivate", + 'p.weight' => "Weight", + 'p.weight_units' => "WeightUnits", + 'p.length' => "Length", + 'p.length_units' => "LengthUnit", + 'p.width' => "Width", + 'p.width_units' => "VolumeUnits", + 'p.height' => "Height", + 'p.height_units' => "HeightUnit", + 'p.surface' => "Surface", + 'p.surface_units' => "SurfaceUnit", + 'p.volume' => "Volume", + 'p.volume_units' => "VolumeUnits", + 'p.duration' => "Duration",//duration of service + 'p.finished' => 'Nature', + 'p.price' => "SellingPriceHT",//without + 'p.price_min' => "MinPrice", + 'p.price_ttc' => "SellingPriceTTC",//with tax + 'p.price_min_ttc' => "SellingMinPriceTTC", + 'p.price_base_type' => "PriceBaseType",//price base: with-tax (TTC) or without (HT) tax. Displays accordingly in Product card + 'p.tva_tx' => 'VATRate', + 'p.datec' => 'DateCreation', + 'p.cost_price' => "CostPrice", ); - //if (! empty($conf->stock->enabled)) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r],array('p.seuil_stock_alerte'=>'StockLimit','p.desiredstock'=>'DesiredStock','p.pmp'=>'PMPValue')); + if (!empty($conf->stock->enabled)) {//if Stock module enabled + $this->import_fields_array[$r] = array_merge($this->import_fields_array[$r], array( + 'p.seuil_stock_alerte' => 'StockLimit',//lower limit for warning + 'p.pmp' => 'PMPValue',//weighted average price + 'p.desiredstock' => 'DesiredStock'//desired stock for replenishment feature + )); + } + + $this->import_convertvalue_array[$r] = array( + 'p.weight_units' => array( + 'rule' => 'fetchscalefromcodeunits', // Switch this to fetchidfromcodeunits when we will store id instead of scale in product table + 'classfile' => '/core/class/cunits.class.php', + 'class' => 'CUnits', + 'method' => 'fetch', + 'units' => 'weight', + 'dict' => 'DictionaryMeasuringUnits' + ), + 'p.length_units' => array( + 'rule' => 'fetchscalefromcodeunits', // Switch this to fetchidfromcodeunits when we will store id instead of scale in product table + 'classfile' => '/core/class/cunits.class.php', + 'class' => 'CUnits', + 'method' => 'fetch', + 'units' => 'size', + 'dict' => 'DictionaryMeasuringUnits' + ), + 'p.width_units' => array( + 'rule' => 'fetchscalefromcodeunits', // Switch this to fetchidfromcodeunits when we will store id instead of scale in product table + 'classfile' => '/core/class/cunits.class.php', + 'class' => 'CUnits', + 'method' => 'fetch', + 'units' => 'size', + 'dict' => 'DictionaryMeasuringUnits' + ), + 'p.height_units' => array( + 'rule' => 'fetchscalefromcodeunits', // Switch this to fetchidfromcodeunits when we will store id instead of scale in product table + 'classfile' => '/core/class/cunits.class.php', + 'class' => 'CUnits', + 'method' => 'fetch', + 'units' => 'size', + 'dict' => 'DictionaryMeasuringUnits' + ), + 'p.surface_units' => array( + 'rule' => 'fetchscalefromcodeunits', // Switch this to fetchidfromcodeunits when we will store id instead of scale in product table + 'classfile' => '/core/class/cunits.class.php', + 'class' => 'CUnits', + 'method' => 'fetch', + 'units' => 'surface', + 'dict' => 'DictionaryMeasuringUnits' + ), + 'p.volume_units' => array( + 'rule' => 'fetchscalefromcodeunits', // Switch this to fetchidfromcodeunits when we will store id instead of scale in product table + 'classfile' => '/core/class/cunits.class.php', + 'class' => 'CUnits', + 'method' => 'fetch', + 'units' => 'volume', + 'dict' => 'DictionaryMeasuringUnits' + ), + 'p.fk_country' => array( + 'rule' => 'fetchidfromcodeid', + 'classfile' => '/core/class/ccountry.class.php', + 'class' => 'Ccountry', + 'method' => 'fetch', + 'dict' => 'DictionaryCountry' + ) + ); if (! empty($conf->fournisseur->enabled) || !empty($conf->margin->enabled)) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r], array('p.cost_price'=>'CostPrice')); if (is_object($mysoc) && $mysoc->useNPR()) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r], array('p.recuperableonly'=>'NPR')); if (is_object($mysoc) && $mysoc->useLocalTax(1)) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r], array('p.localtax1_tx'=>'LT1', 'p.localtax1_type'=>'LT1Type')); @@ -387,13 +461,82 @@ class modService extends DolibarrModules $this->import_fieldshidden_array[$r]=array('extra.fk_object'=>'lastrowid-'.MAIN_DB_PREFIX.'product'); // aliastable.field => ('user->id' or 'lastrowid-'.tableparent) $this->import_regex_array[$r]=array( 'p.ref'=>'[^ ]', - 'p.tosell'=>'^[0|1]$', + 'p.price_base_type' => '\AHT\z|\ATTC\z', + 'p.tosell'=>'^[0|1]$', 'p.tobuy'=>'^[0|1]$', 'p.fk_product_type'=>'^[0|1]$', 'p.datec'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$', - 'p.recuperableonly'=>'^[0|1]$' - ); - $import_sample=array('p.ref'=>"SERVICE_REF or id:123456",'p.label'=>"My product",'p.description'=>"This is a description example for record",'p.note'=>"Some note",'p.price'=>"100",'p.price_ttc'=>"110",'p.tva_tx'=>'10','p.tosell'=>"0 or 1",'p.tobuy'=>"0 or 1",'p.fk_product_type'=>"0 for product/1 for service",'p.finished'=>'','p.duration'=>"1y",'p.datec'=>'2008-12-31','p.recuperableonly'=>'0 or 1'); + 'p.recuperableonly' => '^[0|1]$', + 'p.finished' => '^[0|1]$' + ); + // field order as per structure of table llx_product + $import_sample = array( + 'p.ref' => "PREF123456", + 'p.datec' => dol_print_date(dol_now(), '%Y-%m-%d'), + 'p.label' => "Product name in default language", + 'p.description' => "Product description in default language", + 'p.note_public' => "a public note (free text)", + 'p.note' => "a private note (free text)", + 'p.customcode' => 'customs code', + 'p.fk_country' => 'FR', + 'p.price' => "price ex-vat eg. 100", + 'p.price_min' => "price ex-vat eg. 100", + 'p.price_ttc' => "price inc-vat eg. 110", + 'p.price_min_ttc' => "price inc-vat eg. 110", + 'p.price_base_type' => "HT (show/use price excl. tax) / TTC (show/use price incl. tax)", + 'p.tva_tx' => 'tax rate eg: 10. Must match numerically one of the tax rates defined for your country', + 'p.tosell' => "0 (not for sale to customer, eg. raw material) / 1 (for sale)", + 'p.tobuy' => "0 (not for purchase from supplier, eg. virtual product) / 1 (for purchase)", + 'p.fk_product_type' => "0 (product) / 1 (service)", + 'p.duration' => "eg. 365d/12m/1y", + 'p.url' => 'link to product (no https)', + 'p.accountancy_code_sell' => "", + 'p.accountancy_code_sell_intra' => "", + 'p.accountancy_code_sell_export' => "", + 'p.accountancy_code_buy' => "", + 'p.weight' => "", + 'p.weight_units' => 'Use a unit of measure from the dictionary. g/Kg/T etc....matches field "Short label" for unit type "weight" in table "' . MAIN_DB_PREFIX . 'c_units', + 'p.length' => "", + 'p.length_units' => 'Use a unit of measure from the dictionary. m/cm/mm etc....matches field "Short label" for unit type "size" in table "' . MAIN_DB_PREFIX . 'c_units', + 'p.width' => "", + 'p.width_units' => 'Use a unit of measure from the dictionary. m/cm/mm etc....matches field "Short label" for unit type "size" in table "' . MAIN_DB_PREFIX . 'c_units', + 'p.height' => "", + 'p.height_units' => 'Use a unit of measure from the dictionary. m/cm/mm etc....matches field "Short label" for unit type "size" in table "' . MAIN_DB_PREFIX . 'c_units', + 'p.surface' => "", + 'p.surface_units' => 'Use a unit of measure from the dictionary. m2/cm2/mm2 etc....matches field "Short label" for unit type "surface" in table "' . MAIN_DB_PREFIX . 'c_units', + 'p.volume' => "", + 'p.volume_units' => 'use a unit of measure from the dictionary. m3/cm3/mm3 etc....matches field "Short label" for unit type "volume" in table "' . MAIN_DB_PREFIX . 'c_units', + 'p.finished' => '0 (raw material) / 1 (finished goods)' + ); + //clauses copied from import_fields_array + if (!empty($conf->stock->enabled)) $import_sample = array_merge($import_sample, array( + 'p.seuil_stock_alerte' => 'quantity for low-stock warning (empty for no warning)', + 'p.pmp' => '0 (default)', + 'p.desiredstock' => 'target quantity to maintain in stock (for replenishment feature)' + )); + if (! empty($conf->fournisseur->enabled) || !empty($conf->margin->enabled)) $import_sample=array_merge($import_sample, array('p.cost_price'=>'user-editable, used for margin calculations only')); + if (is_object($mysoc) && $mysoc->useNPR()) $import_sample=array_merge($import_sample, array('p.recuperableonly'=>'0 / 1 (French VAT NPR yes/no')); + if (is_object($mysoc) && $mysoc->useLocalTax(1)) $import_sample=array_merge($import_sample, array('p.localtax1_tx'=>'', 'p.localtax1_type'=>'')); + if (is_object($mysoc) && $mysoc->useLocalTax(2)) $import_sample=array_merge($import_sample, array('p.localtax2_tx'=>'', 'p.localtax2_type'=>'')); + if (! empty($conf->barcode->enabled)) $import_sample=array_merge($import_sample, array('p.barcode'=>'')); + if (! empty($conf->global->PRODUCT_USE_UNITS)) { + $import_sample = array_merge( + $import_sample, + array( + 'p.fk_unit' => 'use a unit of measure from the dictionary. G/KG/M2/M3 etc....matches field "code" in table "' . MAIN_DB_PREFIX . 'c_units"' + ) + ); + + $this->import_convertvalue_array[$r] = array_merge($this->import_convertvalue_array[$r], array( + 'p.fk_unit' => array( + 'rule' => 'fetchidfromcodeorlabel', + 'classfile' => '/core/class/cunits.class.php', + 'class' => 'CUnits', + 'method' => 'fetch', + 'dict' => 'DictionaryUnits' + ) + )); + } $this->import_examplevalues_array[$r]=array_merge($import_sample, $import_extrafield_sample); $this->import_updatekeys_array[$r] = array('p.ref'=>'Ref'); if (! empty($conf->barcode->enabled)) $this->import_updatekeys_array[$r]=array_merge($this->import_updatekeys_array[$r], array('p.barcode'=>'BarCode'));//only show/allow barcode as update key if Barcode module enabled @@ -445,12 +588,39 @@ class modService extends DolibarrModules 'sp.fk_product'=>array('rule'=>'fetchidfromref','classfile'=>'/product/class/product.class.php','class'=>'Product','method'=>'fetch','element'=>'Product') ); $this->import_examplevalues_array[$r]=array( - 'sp.fk_product'=>"SERVICE_REF or id:123456", - 'sp.fk_soc'=>"My Supplier",'sp.ref_fourn'=>"SupplierRef", 'sp.quantity'=>"1", 'sp.tva_tx'=>'21', - 'sp.price'=>"50", - 'sp.unitprice'=>'50', - 'sp.remise_percent'=>'0' + 'sp.fk_product' => "PRODUCT_REF or id:123456", + 'sp.fk_soc' => "My Supplier", + 'sp.ref_fourn' => "eg: XYZ-F123456", + 'sp.quantity' => "5", + 'sp.tva_tx' => 'one of the defined rates eg. 21', + 'sp.price'=>"50", + 'sp.unitprice'=>'50', + 'sp.remise_percent'=>'0', + 'sp.default_vat_code' => '', + 'sp.delivery_time_days' => 'eg. 5', + 'sp.supplier_reputation' => 'FAVORITE / NOTTHGOOD / DONOTORDER' ); + if (is_object($mysoc) && $mysoc->useNPR()) $this->import_examplevalues_array[$r]=array_merge($this->import_examplevalues_array[$r], array('sp.recuperableonly'=>'')); + if (is_object($mysoc) && $mysoc->useLocalTax(1)) $this->import_examplevalues_array[$r]=array_merge($this->import_examplevalues_array[$r], array('sp.localtax1_tx'=>'LT1', 'sp.localtax1_type'=>'LT1Type')); + if (is_object($mysoc) && $mysoc->useLocalTax(2)) $this->import_examplevalues_array[$r]=array_merge($this->import_examplevalues_array[$r], array('sp.localtax2_tx'=>'LT2', 'sp.localtax2_type'=>'LT2Type')); + $this->import_examplevalues_array[$r] = array_merge($this->import_examplevalues_array[$r], array( + 'sp.price' => "eg. 50.00", + 'sp.unitprice' => 'eg. 10', + // TODO Make this field not required and calculate it from price and qty + 'sp.remise_percent' => 'eg: 20' + )); + if ($conf->multicurrency->enabled) + { + $this->import_examplevalues_array[$r]=array_merge($this->import_examplevalues_array[$r], array( + 'sp.fk_multicurrency'=>'eg: 2, rowid for code of multicurrency currency', + 'sp.multicurrency_code'=>'eg: GBP', + 'sp.multicurrency_tx'=>'currency rate eg: 1.12345', + 'sp.multicurrency_unitprice'=>'cost per unit in supplier currency', + // TODO Make this field not required and calculate it from price and qty + 'sp.multicurrency_price'=>'cost for min quantity in supplier currency' + )); + } + $this->import_updatekeys_array[$r]=array('sp.fk_product'=>'ProductOrService','sp.ref_fourn'=>'SupplierRef','sp.fk_soc'=>'Supplier'); } From 23de8694fa77bd85b529bb4c63dd2e247ba6bd47 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 12:37:01 +0200 Subject: [PATCH 168/484] Fix module files --- htdocs/core/modules/modProduct.class.php | 2 +- htdocs/core/modules/modService.class.php | 52 ++++++++++++------------ 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/htdocs/core/modules/modProduct.class.php b/htdocs/core/modules/modProduct.class.php index f9ab7347792..13e9816008e 100644 --- a/htdocs/core/modules/modProduct.class.php +++ b/htdocs/core/modules/modProduct.class.php @@ -356,7 +356,7 @@ class modProduct extends DolibarrModules $this->import_entities_array[$r]=array(); // We define here only fields that use a different icon from the one defined in import_icon $this->import_tables_array[$r]=array('p'=>MAIN_DB_PREFIX.'product','extra'=>MAIN_DB_PREFIX.'product_extrafields'); $this->import_tables_creator_array[$r]=array('p'=>'fk_user_author'); // Fields to store import user id - $this->import_fields_array[$r]=array(//field order as per structure of table llx_product + $this->import_fields_array[$r]=array( 'p.ref' => "Ref*", 'p.label' => "Label*", 'p.fk_product_type' => "Type*", diff --git a/htdocs/core/modules/modService.class.php b/htdocs/core/modules/modService.class.php index 1a72d9c4463..b21c954185a 100644 --- a/htdocs/core/modules/modService.class.php +++ b/htdocs/core/modules/modService.class.php @@ -479,12 +479,12 @@ class modService extends DolibarrModules 'p.note' => "a private note (free text)", 'p.customcode' => 'customs code', 'p.fk_country' => 'FR', - 'p.price' => "price ex-vat eg. 100", - 'p.price_min' => "price ex-vat eg. 100", - 'p.price_ttc' => "price inc-vat eg. 110", - 'p.price_min_ttc' => "price inc-vat eg. 110", + 'p.price' => "100", + 'p.price_min' => "100", + 'p.price_ttc' => "110", + 'p.price_min_ttc' => "110", 'p.price_base_type' => "HT (show/use price excl. tax) / TTC (show/use price incl. tax)", - 'p.tva_tx' => 'tax rate eg: 10. Must match numerically one of the tax rates defined for your country', + 'p.tva_tx' => '10', // tax rate eg: 10. Must match numerically one of the tax rates defined for your country' 'p.tosell' => "0 (not for sale to customer, eg. raw material) / 1 (for sale)", 'p.tobuy' => "0 (not for purchase from supplier, eg. virtual product) / 1 (for purchase)", 'p.fk_product_type' => "0 (product) / 1 (service)", @@ -495,27 +495,27 @@ class modService extends DolibarrModules 'p.accountancy_code_sell_export' => "", 'p.accountancy_code_buy' => "", 'p.weight' => "", - 'p.weight_units' => 'Use a unit of measure from the dictionary. g/Kg/T etc....matches field "Short label" for unit type "weight" in table "' . MAIN_DB_PREFIX . 'c_units', + 'p.weight_units' => 'kg', // Use a unit of measure from the dictionary. g/Kg/T etc....matches field "Short label" for unit type "weight" in table "' . MAIN_DB_PREFIX . 'c_units', 'p.length' => "", - 'p.length_units' => 'Use a unit of measure from the dictionary. m/cm/mm etc....matches field "Short label" for unit type "size" in table "' . MAIN_DB_PREFIX . 'c_units', + 'p.length_units' => 'm', // Use a unit of measure from the dictionary. m/cm/mm etc....matches field "Short label" for unit type "size" in table "' . MAIN_DB_PREFIX . 'c_units', 'p.width' => "", - 'p.width_units' => 'Use a unit of measure from the dictionary. m/cm/mm etc....matches field "Short label" for unit type "size" in table "' . MAIN_DB_PREFIX . 'c_units', + 'p.width_units' => 'm', // Use a unit of measure from the dictionary. m/cm/mm etc....matches field "Short label" for unit type "size" in table "' . MAIN_DB_PREFIX . 'c_units', 'p.height' => "", - 'p.height_units' => 'Use a unit of measure from the dictionary. m/cm/mm etc....matches field "Short label" for unit type "size" in table "' . MAIN_DB_PREFIX . 'c_units', + 'p.height_units' => 'm', // Use a unit of measure from the dictionary. m/cm/mm etc....matches field "Short label" for unit type "size" in table "' . MAIN_DB_PREFIX . 'c_units', 'p.surface' => "", - 'p.surface_units' => 'Use a unit of measure from the dictionary. m2/cm2/mm2 etc....matches field "Short label" for unit type "surface" in table "' . MAIN_DB_PREFIX . 'c_units', + 'p.surface_units' => 'm2', // Use a unit of measure from the dictionary. m2/cm2/mm2 etc....matches field "Short label" for unit type "surface" in table "' . MAIN_DB_PREFIX . 'c_units', 'p.volume' => "", - 'p.volume_units' => 'use a unit of measure from the dictionary. m3/cm3/mm3 etc....matches field "Short label" for unit type "volume" in table "' . MAIN_DB_PREFIX . 'c_units', + 'p.volume_units' => 'm3', //Use a unit of measure from the dictionary. m3/cm3/mm3 etc....matches field "Short label" for unit type "volume" in table "' . MAIN_DB_PREFIX . 'c_units', 'p.finished' => '0 (raw material) / 1 (finished goods)' ); //clauses copied from import_fields_array if (!empty($conf->stock->enabled)) $import_sample = array_merge($import_sample, array( - 'p.seuil_stock_alerte' => 'quantity for low-stock warning (empty for no warning)', - 'p.pmp' => '0 (default)', - 'p.desiredstock' => 'target quantity to maintain in stock (for replenishment feature)' + 'p.seuil_stock_alerte' => '', + 'p.pmp' => '0', + 'p.desiredstock' => '' )); - if (! empty($conf->fournisseur->enabled) || !empty($conf->margin->enabled)) $import_sample=array_merge($import_sample, array('p.cost_price'=>'user-editable, used for margin calculations only')); - if (is_object($mysoc) && $mysoc->useNPR()) $import_sample=array_merge($import_sample, array('p.recuperableonly'=>'0 / 1 (French VAT NPR yes/no')); + if (! empty($conf->fournisseur->enabled) || !empty($conf->margin->enabled)) $import_sample=array_merge($import_sample, array('p.cost_price'=>'90')); + if (is_object($mysoc) && $mysoc->useNPR()) $import_sample=array_merge($import_sample, array('p.recuperableonly'=>'0')); if (is_object($mysoc) && $mysoc->useLocalTax(1)) $import_sample=array_merge($import_sample, array('p.localtax1_tx'=>'', 'p.localtax1_type'=>'')); if (is_object($mysoc) && $mysoc->useLocalTax(2)) $import_sample=array_merge($import_sample, array('p.localtax2_tx'=>'', 'p.localtax2_type'=>'')); if (! empty($conf->barcode->enabled)) $import_sample=array_merge($import_sample, array('p.barcode'=>'')); @@ -590,34 +590,34 @@ class modService extends DolibarrModules $this->import_examplevalues_array[$r]=array( 'sp.fk_product' => "PRODUCT_REF or id:123456", 'sp.fk_soc' => "My Supplier", - 'sp.ref_fourn' => "eg: XYZ-F123456", + 'sp.ref_fourn' => "XYZ-F123456", 'sp.quantity' => "5", - 'sp.tva_tx' => 'one of the defined rates eg. 21', + 'sp.tva_tx' => '10', 'sp.price'=>"50", 'sp.unitprice'=>'50', 'sp.remise_percent'=>'0', 'sp.default_vat_code' => '', - 'sp.delivery_time_days' => 'eg. 5', + 'sp.delivery_time_days' => '5', 'sp.supplier_reputation' => 'FAVORITE / NOTTHGOOD / DONOTORDER' ); if (is_object($mysoc) && $mysoc->useNPR()) $this->import_examplevalues_array[$r]=array_merge($this->import_examplevalues_array[$r], array('sp.recuperableonly'=>'')); if (is_object($mysoc) && $mysoc->useLocalTax(1)) $this->import_examplevalues_array[$r]=array_merge($this->import_examplevalues_array[$r], array('sp.localtax1_tx'=>'LT1', 'sp.localtax1_type'=>'LT1Type')); if (is_object($mysoc) && $mysoc->useLocalTax(2)) $this->import_examplevalues_array[$r]=array_merge($this->import_examplevalues_array[$r], array('sp.localtax2_tx'=>'LT2', 'sp.localtax2_type'=>'LT2Type')); $this->import_examplevalues_array[$r] = array_merge($this->import_examplevalues_array[$r], array( - 'sp.price' => "eg. 50.00", - 'sp.unitprice' => 'eg. 10', + 'sp.price' => "50.00", + 'sp.unitprice' => '10', // TODO Make this field not required and calculate it from price and qty - 'sp.remise_percent' => 'eg: 20' + 'sp.remise_percent' => '20' )); if ($conf->multicurrency->enabled) { $this->import_examplevalues_array[$r]=array_merge($this->import_examplevalues_array[$r], array( 'sp.fk_multicurrency'=>'eg: 2, rowid for code of multicurrency currency', - 'sp.multicurrency_code'=>'eg: GBP', - 'sp.multicurrency_tx'=>'currency rate eg: 1.12345', - 'sp.multicurrency_unitprice'=>'cost per unit in supplier currency', + 'sp.multicurrency_code'=>'GBP', + 'sp.multicurrency_tx'=>'1.12345', + 'sp.multicurrency_unitprice'=>'', // TODO Make this field not required and calculate it from price and qty - 'sp.multicurrency_price'=>'cost for min quantity in supplier currency' + 'sp.multicurrency_price'=>'' )); } From 7015e711050a3acb0855b1c5547059bb4f262af0 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 12:53:32 +0200 Subject: [PATCH 169/484] FIX #12041 --- .../security/generate/modGeneratePassPerso.class.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php b/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php index bccb1353087..3229aa1a616 100644 --- a/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php +++ b/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php @@ -206,7 +206,7 @@ class modGeneratePassPerso extends ModeleGenPassword } /** - * consecutive iterations of the same character + * Consecutive iterations of the same character * * @param string $password Password to check * @return int 0 if KO, >0 if OK @@ -214,8 +214,12 @@ class modGeneratePassPerso extends ModeleGenPassword public function consecutiveInterationSameCharacter($password) { $last = ""; + + if (empty($this->NbRepeat)) return 1; + $count = 0; $char = str_split($password); + foreach($char as $c) { if($c != $last) { $last = $c; From 91a922a454d7f806736dbd40952f1b862c6034a0 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 12:54:28 +0200 Subject: [PATCH 170/484] Update security.php --- htdocs/admin/security.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/admin/security.php b/htdocs/admin/security.php index 3a786f30a84..c4c8026e076 100644 --- a/htdocs/admin/security.php +++ b/htdocs/admin/security.php @@ -325,7 +325,7 @@ if ($conf->global->USER_PASSWORD_GENERATED == "Perso"){ print '
    '; print '"; - print ''; + print ''; print ''; From 68a4ab87a2e4ae7089266341e383a9630f6b7ef0 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 12:57:24 +0200 Subject: [PATCH 171/484] Fix can set min repeat to 0 for password --- htdocs/admin/security.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/admin/security.php b/htdocs/admin/security.php index c4c8026e076..a945f917ec1 100644 --- a/htdocs/admin/security.php +++ b/htdocs/admin/security.php @@ -174,7 +174,7 @@ if ($action == 'maj_pattern') $explodePattern = explode(';', $pattern); $patternInError = false; - if($explodePattern[0] < 1 || $explodePattern[4] < 1){ + if($explodePattern[0] < 1 || $explodePattern[4] < 0){ $patternInError = true; } From 12d243b8d4b8f3bed17d96a9bdd69c23547eaf4c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 13:13:46 +0200 Subject: [PATCH 172/484] FIX #12040 --- htdocs/core/modules/modProduct.class.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/core/modules/modProduct.class.php b/htdocs/core/modules/modProduct.class.php index 13e9816008e..001c7759c67 100644 --- a/htdocs/core/modules/modProduct.class.php +++ b/htdocs/core/modules/modProduct.class.php @@ -552,6 +552,7 @@ class modProduct extends DolibarrModules ) ); + if (! is_array($this->import_convertvalue_array[$r])) $this->import_convertvalue_array[$r] = array(); $this->import_convertvalue_array[$r] = array_merge($this->import_convertvalue_array[$r], array( 'p.fk_unit' => array( 'rule' => 'fetchidfromcodeorlabel', From decbdaa5af44b322a6b911816daee9723393ebe8 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Mon, 7 Oct 2019 13:35:40 +0200 Subject: [PATCH 173/484] Rename traduction.php to type_translation.php --- htdocs/adherents/{traduction.php => type_translation.php} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename htdocs/adherents/{traduction.php => type_translation.php} (100%) diff --git a/htdocs/adherents/traduction.php b/htdocs/adherents/type_translation.php similarity index 100% rename from htdocs/adherents/traduction.php rename to htdocs/adherents/type_translation.php From ff992d996c5cdd705a854bd97394642467088b4d Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Mon, 7 Oct 2019 13:37:35 +0200 Subject: [PATCH 174/484] Update type_translation.php --- htdocs/adherents/type_translation.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/adherents/type_translation.php b/htdocs/adherents/type_translation.php index 23ed3775735..5122bebcecf 100644 --- a/htdocs/adherents/type_translation.php +++ b/htdocs/adherents/type_translation.php @@ -20,7 +20,7 @@ */ /** - * \file htdocs/product/traduction.php + * \file htdocs/adherents/type_translation.php * \ingroup product * \brief Page de traduction des produits */ @@ -205,8 +205,8 @@ if ($action == '') { if ($user->rights->produit->creer || $user->rights->service->creer) { - print ''.$langs->trans("Add").''; - if ($cnt_trans > 0) print ''.$langs->trans("Update").''; + print ''.$langs->trans("Add").''; + if ($cnt_trans > 0) print ''.$langs->trans("Update").''; } } From 9aa7226d393269c66e016e4e953b270f2d6c8d6b Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Mon, 7 Oct 2019 13:38:05 +0200 Subject: [PATCH 175/484] Update member.lib.php --- htdocs/core/lib/member.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/member.lib.php b/htdocs/core/lib/member.lib.php index 191c9d538c1..93146738f66 100644 --- a/htdocs/core/lib/member.lib.php +++ b/htdocs/core/lib/member.lib.php @@ -131,7 +131,7 @@ function member_type_prepare_head(AdherentType $object) // Multilangs if (! empty($conf->global->MAIN_MULTILANGS)) { - $head[$h][0] = DOL_URL_ROOT."/adherents/traduction.php?rowid=".$object->id; + $head[$h][0] = DOL_URL_ROOT."/adherents/type_translation.php?rowid=".$object->id; $head[$h][1] = $langs->trans("Translation"); $head[$h][2] = 'translation'; $h++; From 2bb55200f77b44ccb06b510e16bab0d85bddf306 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 13:46:13 +0200 Subject: [PATCH 176/484] Clean user card --- htdocs/langs/en_US/users.lang | 4 +- htdocs/theme/eldy/global.inc.php | 4 +- htdocs/theme/md/style.css.php | 4 +- htdocs/user/card.php | 78 ++++++++++++++++---------------- 4 files changed, 44 insertions(+), 46 deletions(-) diff --git a/htdocs/langs/en_US/users.lang b/htdocs/langs/en_US/users.lang index d8758ac9dc0..0aa4bc6c929 100644 --- a/htdocs/langs/en_US/users.lang +++ b/htdocs/langs/en_US/users.lang @@ -110,6 +110,6 @@ UserLogged=User logged DateEmployment=Employment Start Date DateEmploymentEnd=Employment End Date CantDisableYourself=You can't disable your own user record -UserExpenseValidator=Expense report validator -UserHolidayValidator=Leave request validator +ForceUserExpenseValidator=Force expense report validator +ForceUserHolidayValidator=Force leave request validator ValidatorIsSupervisorByDefault=By default, the supervisor is the validator for expense reports and leave requests diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index 904f6a197d5..4b0ccd45fd5 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -834,7 +834,7 @@ table[summary="list_of_modules"] .fa-cog { .minheight20 { min-height: 20px; } .minheight40 { min-height: 40px; } .titlefieldcreate { width: 20%; } -.titlefield { width: 25%; } +.titlefield { /* width: 25%; */ width: 250px; } .titlefieldmiddle { width: 50%; } .imgmaxwidth180 { max-width: 180px; } .imgmaxheight50 { max-height: 50px; } @@ -852,7 +852,7 @@ table[summary="list_of_modules"] .fa-cog { /* Force values for small screen 1400 */ @media only screen and (max-width: 1400px) { - .titlefield { width: 30% !important; } + .titlefield { /* width: 30% !important; */ } .titlefieldcreate { width: 30% !important; } .minwidth50imp { min-width: 50px !important; } .minwidth75imp { min-width: 75px !important; } diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index dcbbbd1cf4f..a17a33bd898 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -1003,7 +1003,7 @@ table[summary="list_of_modules"] .fa-cog { .minheight20 { min-height: 20px; } .minheight40 { min-height: 40px; } .titlefieldcreate { width: 20%; } -.titlefield { width: 25%; } +.titlefield { /* width: 25%; */ width: 250px; } .titlefieldmiddle { width: 50%; } .imgmaxwidth180 { max-width: 180px; } @@ -1011,7 +1011,7 @@ table[summary="list_of_modules"] .fa-cog { /* Force values for small screen 1400 */ @media only screen and (max-width: 1400px) { - .titlefield { width: 30% !important; } + .titlefield { /* width: 30% !important; */ } .titlefieldcreate { width: 30% !important; } .minwidth50imp { min-width: 50px !important; } .minwidth75imp { min-width: 75px !important; } diff --git a/htdocs/user/card.php b/htdocs/user/card.php index 3deb0cf870c..bdef850fa6b 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -973,7 +973,7 @@ if ($action == 'create' || $action == 'adduserldap') if(!empty($conf->expensereport->enabled)) { print ''; print ''; print ''; - print ''; - // Default warehouse - if (! empty($conf->stock->enabled)) + if (! empty($conf->stock->enabled) && ! empty($conf->global->USER_DEFAULT_WAREHOUSE)) // TODO What is goal of this. How it is used ? { print ''; } + // Position/Job + print ''; + print ''; + if ((! empty($conf->salaries->enabled) && ! empty($user->rights->salaries->read)) || (! empty($conf->hrm->enabled) && ! empty($user->rights->hrm->employee->read))) { @@ -1594,12 +1594,11 @@ else // Expense report validator print ''; print ''; print ''; print "\n"; - // Position/Job - print ''; - print ''; - print ''."\n"; - // Default warehouse - if (! empty($conf->stock->enabled)) + if (! empty($conf->stock->enabled) && ! empty($conf->global->USER_DEFAULT_WAREHOUSE)) // TODO What is goal of this. How it is used ? { require_once DOL_DOCUMENT_ROOT .'/product/stock/class/entrepot.class.php'; $warehousestatic=new Entrepot($db); @@ -1638,7 +1631,12 @@ else print ''; } - //$childids = $user->getAllChildIds(1); + // Position/Job + print ''; + print ''; + print ''."\n"; + + //$childids = $user->getAllChildIds(1); if ((! empty($conf->salaries->enabled) && ! empty($user->rights->salaries->read)) || (! empty($conf->hrm->enabled) && ! empty($user->rights->hrm->employee->read))) @@ -2305,7 +2303,7 @@ else // Expense report validator print ''; print ''; print ''; - print ''; - // Default warehouse - if (! empty($conf->stock->enabled)) + if (! empty($conf->stock->enabled) && ! empty($conf->global->USER_DEFAULT_WAREHOUSE)) // TODO What is goal of this. How it is used ? { print ''; } - if ((! empty($conf->salaries->enabled) && ! empty($user->rights->salaries->read)) + // Position/Job + print ''; + print ''; + + if ((! empty($conf->salaries->enabled) && ! empty($user->rights->salaries->read)) || (! empty($conf->hrm->enabled) && ! empty($user->rights->hrm->employee->read))) { $langs->load("salaries"); From 00df21cf17f894d39a03e49fff4e0f18990a09ab Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 13:48:09 +0200 Subject: [PATCH 177/484] Trans --- htdocs/langs/en_US/users.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/users.lang b/htdocs/langs/en_US/users.lang index 0aa4bc6c929..8780e7d2c0d 100644 --- a/htdocs/langs/en_US/users.lang +++ b/htdocs/langs/en_US/users.lang @@ -112,4 +112,4 @@ DateEmploymentEnd=Employment End Date CantDisableYourself=You can't disable your own user record ForceUserExpenseValidator=Force expense report validator ForceUserHolidayValidator=Force leave request validator -ValidatorIsSupervisorByDefault=By default, the supervisor is the validator for expense reports and leave requests +ValidatorIsSupervisorByDefault=By default, the validator is the supervisor of the user. Keep empty to keep this behaviour. From 839929f7648c1150dcb0603aa5de3e27b9338231 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 14:16:47 +0200 Subject: [PATCH 178/484] FIX #12026 --- htdocs/user/class/user.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php index d89e1308612..8e0a9d956cb 100644 --- a/htdocs/user/class/user.class.php +++ b/htdocs/user/class/user.class.php @@ -1293,8 +1293,8 @@ class User extends CommonObject $this->db->begin(); - // Cree et positionne $this->id - $result=$this->create($user); + // Create user and set $this->id. Trigger is disabled because executed later. + $result=$this->create($user, 1); if ($result > 0) { $sql = "UPDATE ".MAIN_DB_PREFIX."user"; From 1a32a3b7f123210719283e4e9fc204716cc9dd41 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 14:21:22 +0200 Subject: [PATCH 179/484] Update dav.php --- htdocs/admin/dav.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/htdocs/admin/dav.php b/htdocs/admin/dav.php index 53971743b20..90b82421702 100644 --- a/htdocs/admin/dav.php +++ b/htdocs/admin/dav.php @@ -168,9 +168,6 @@ print "
    "; // Define $urlwithroot $urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT, '/').'$/i', '', trim($dolibarr_main_url_root)); $urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file -if ($_SERVER['HTTPS'] == 'on' || $_SERVER['REQUEST_SCHEME'] == 'https') { - $urlwithroot = str_replace('http://', 'https://', $urlwithroot); -} //$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current From a9c844460bae8f5465cc1fe3e6f434f80de7aab1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 14:39:29 +0200 Subject: [PATCH 180/484] Debug use of widget on Accounting home page --- htdocs/accountancy/index.php | 41 ++++++++++++++++++----------- htdocs/core/class/infobox.class.php | 7 +++-- htdocs/langs/en_US/accountancy.lang | 2 +- 3 files changed, 31 insertions(+), 19 deletions(-) diff --git a/htdocs/accountancy/index.php b/htdocs/accountancy/index.php index 36ebaf07c94..4eab81ea49f 100644 --- a/htdocs/accountancy/index.php +++ b/htdocs/accountancy/index.php @@ -64,26 +64,33 @@ if ($conf->accounting->enabled) { $step = 0; - $resultboxes=FormOther::getBoxesArea($user, "27"); // Load $resultboxes (selectboxlist + boxactivated + boxlista + boxlistb) + $resultboxes=FormOther::getBoxesArea($user, "27"); // Load $resultboxes (selectboxlist + boxactivated + boxlista + boxlistb) - print load_fiche_titre($langs->trans("AccountancyArea"), $resultboxes['selectboxlist'], 'accountancy'); + $helpisexpanded = empty($resultboxes['boxactivated']); // If there is no widget, the tooltip help is expanded by default. + $showtutorial = ''; - print ''; + if (! $helpisexpanded) + { + $showtutorial = ''; - print ''; + $showtutorial .= ''; + } - print '
    '; // hideobject is to start hidden + + print load_fiche_titre($langs->trans("AccountancyArea"), $showtutorial . $resultboxes['selectboxlist'], 'accountancy'); + + print '
    '; // hideobject is to start hidden print "
    \n"; print ''.$langs->trans("AccountancyAreaDescIntro")."
    \n"; print "
    \n";print "
    \n"; @@ -201,6 +208,8 @@ if ($conf->accounting->enabled) print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescAnalyze", chr(64+$step))."
    \n"; print "
    \n"; + print '
    '; + print '
    '; print '
    '; diff --git a/htdocs/core/class/infobox.class.php b/htdocs/core/class/infobox.class.php index 0c918783e39..a187e58cac1 100644 --- a/htdocs/core/class/infobox.class.php +++ b/htdocs/core/class/infobox.class.php @@ -39,7 +39,10 @@ class InfoBox if (empty($conf->global->MAIN_FEATURES_LEVEL) || $conf->global->MAIN_FEATURES_LEVEL < 2) { - return array(0 => 'Home'); + return array( + 0 => 'Home', + 27 => 'Accountancy Home' + ); } else { @@ -71,7 +74,7 @@ class InfoBox 24 => 'expensereportindex', 25 => 'mailingindex', 26 => 'opensurveyindex', - 27 => 'accountancyindex' + 27 => 'Accountancy Home' ); } } diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index 30b060fb4d3..a76e79aa701 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -257,7 +257,7 @@ ListOfProductsWithoutAccountingAccount=List of products not bound to any account ChangeBinding=Change the binding Accounted=Accounted in ledger NotYetAccounted=Not yet accounted in ledger -ShowFAQ=Show FAQ +ShowTutorial=Show Tutorial ## Admin ApplyMassCategories=Apply mass categories From b9a92546b6edc24eddc1407fb5f3b13150f398f4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 15:20:52 +0200 Subject: [PATCH 181/484] Update card.php --- htdocs/contact/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php index 1a271918b61..0e73d0a8786 100644 --- a/htdocs/contact/card.php +++ b/htdocs/contact/card.php @@ -476,7 +476,7 @@ else $object = new Contact($db); $res=$object->fetch($id, $user); if ($res<0) { - setEventMessage($this->error, 'errors'); + setEventMessages($object->error, $object->errors, 'errors'); } // Show tabs From 240785922e778d317adced723a4e543fc082bc58 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 15:23:30 +0200 Subject: [PATCH 182/484] Update interface_90_modSociete_ContactRoles.class.php --- .../triggers/interface_90_modSociete_ContactRoles.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php b/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php index e9bf9d38a50..f43c127576c 100644 --- a/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php +++ b/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php @@ -103,7 +103,7 @@ class InterfaceContactRoles extends DolibarrTriggers } if($nb > 0) { - setEventMessage($langs->trans('ContactAddedAutomatically', $nb)); + setEventMessages($langs->trans('ContactAddedAutomatically', $nb), null, 'mesgs'); } } } From 3a15485e9962fe9dcd783c574d44e745f5870db4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 15:27:23 +0200 Subject: [PATCH 183/484] Update interface_90_modSociete_ContactRoles.class.php --- .../triggers/interface_90_modSociete_ContactRoles.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php b/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php index f43c127576c..13eb44d4eee 100644 --- a/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php +++ b/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php @@ -73,7 +73,7 @@ class InterfaceContactRoles extends DolibarrTriggers $socid=(property_exists($object, 'socid')?$object->socid:$object->fk_soc); - if(!empty($socid) && $socid != '-1') { + if (! empty($socid) && $socid > 0) { global $db, $langs; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; $contactdefault = new Contact($this->db); From c83f40fc7e48ff82fc538fb61b2d89e847827a5e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 15:42:37 +0200 Subject: [PATCH 184/484] Debug contact by default --- htdocs/comm/propal/card.php | 2 +- htdocs/commande/card.php | 4 +++- htdocs/contact/card.php | 14 +++++++------- htdocs/langs/en_US/companies.lang | 1 + 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php index 987e81ff94c..92267d97033 100644 --- a/htdocs/comm/propal/card.php +++ b/htdocs/comm/propal/card.php @@ -1595,7 +1595,7 @@ if ($action == 'create') if ($socid > 0) { - // Contacts (ask contact only if thirdparty already defined). TODO do this also into order and invoice. + // Contacts (ask contact only if thirdparty already defined). print "
    '; diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index 3a6f4f67353..968607ed660 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -70,6 +70,7 @@ $action = GETPOST('action', 'alpha'); $cancel = GETPOST('cancel', 'alpha'); $confirm = GETPOST('confirm', 'alpha'); $lineid = GETPOST('lineid', 'int'); +$contactid = GETPOST('contactid', 'int'); $projectid = GETPOST('projectid', 'int'); $origin = GETPOST('origin', 'alpha'); $originid = (GETPOST('originid', 'int') ? GETPOST('originid', 'int') : GETPOST('origin_id', 'int')); // For backward compatibility @@ -1646,8 +1647,9 @@ if ($action == 'create' && $usercancreate) // Contact of order if ($socid > 0) { + // Contacts (ask contact only if thirdparty already defined). print "'; // Ligne info remises tiers diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php index e7522a1292b..4139176e84e 100644 --- a/htdocs/contact/card.php +++ b/htdocs/contact/card.php @@ -371,7 +371,7 @@ if (empty($reshook)) $object->priv = GETPOST("priv", 'int'); $object->note_public = GETPOST("note_public", 'none'); $object->note_private = GETPOST("note_private", 'none'); - $object->roles = GETPOST("roles", 'array'); + $object->roles = GETPOST("roles", 'array'); // Fill array 'array_options' with data from add form $ret = $extrafields->setOptionalsFromPost(null, $object); @@ -725,9 +725,9 @@ else print ""; } - //Role + // Contact by default if (!empty($socid)) { - print ''; + print ''; print '"; } - //Role + // Contact by default if (!empty($object->socid)) { - print ''; + print ''; print ''; @@ -1206,7 +1206,7 @@ else print $object->getCivilityLabel(); print ''; - // Role + // Job / position print ''; // Email @@ -1257,7 +1257,7 @@ else } if (!empty($object->socid)) { - print ''; + print ''; print ''; diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index 532fbf14cb7..a4ab22d47c5 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -298,6 +298,7 @@ FromContactName=Name: NoContactDefinedForThirdParty=No contact defined for this third party NoContactDefined=No contact defined DefaultContact=Default contact/address +ContactByDefaultFor=Default contact/address for AddThirdParty=Create third party DeleteACompany=Delete a company PersonalInformations=Personal data From 297313e7de17764efdd890659893e61dd7c0cb8b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 16:01:36 +0200 Subject: [PATCH 185/484] CSS --- htdocs/core/lib/company.lib.php | 2 +- htdocs/societe/agenda.php | 2 +- htdocs/theme/eldy/global.inc.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index 4ee95039ce0..36657d48dbc 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -1629,7 +1629,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon = '', $noprin } // Ref - $out.='\n"; if (! $i) $totalarray['nbfield']++; } @@ -1088,7 +1087,7 @@ if ($resql) print ''; if (! $i) $totalarray['nbfield']++; } - // Date cloture + // Date cloture if (! empty($arrayfields['p.date_cloture']['checked'])) { print ''; From 760783b98b442bbe9d5563ba0bf69ea6e741f30d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 13:14:51 +0200 Subject: [PATCH 214/484] FIX #11942 --- htdocs/categories/class/categorie.class.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/htdocs/categories/class/categorie.class.php b/htdocs/categories/class/categorie.class.php index b9a92f85d5e..9075e170137 100644 --- a/htdocs/categories/class/categorie.class.php +++ b/htdocs/categories/class/categorie.class.php @@ -842,11 +842,14 @@ class Categorie extends CommonObject if ($type=="contact") { $subcol_name="fk_socpeople"; } + + $idoftype = array_search($type, self::$MAP_ID_TO_CODE); + $sql = "SELECT s.rowid"; $sql.= " FROM ".MAIN_DB_PREFIX."categorie as s"; $sql.= " , ".MAIN_DB_PREFIX."categorie_".$sub_type." as sub "; $sql.= ' WHERE s.entity IN ('.getEntity('category').')'; - $sql.= ' AND s.type='.array_search($type, self::$MAP_ID_TO_CODE); + $sql.= ' AND s.type='.$idoftype; $sql.= ' AND s.rowid = sub.fk_categorie'; $sql.= ' AND sub.'.$subcol_name.' = '.$id; @@ -865,7 +868,7 @@ class Categorie extends CommonObject } } - $sql.= $this->db->plimit($limit + 1, $offset); + if ($limit) $sql.= $this->db->plimit($limit + 1, $offset); $result = $this->db->query($sql); if ($result) From 7377c30bfe23e577fc50b877f22ddaba8775c1a3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 13:17:13 +0200 Subject: [PATCH 215/484] Fix limit --- htdocs/categories/class/categorie.class.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/htdocs/categories/class/categorie.class.php b/htdocs/categories/class/categorie.class.php index 9075e170137..f31e8f9b048 100644 --- a/htdocs/categories/class/categorie.class.php +++ b/htdocs/categories/class/categorie.class.php @@ -868,7 +868,15 @@ class Categorie extends CommonObject } } - if ($limit) $sql.= $this->db->plimit($limit + 1, $offset); + if ($limit) { + if ($page < 0) + { + $page = 0; + } + $offset = $limit * $page; + + $sql.= $this->db->plimit($limit + 1, $offset); + } $result = $this->db->query($sql); if ($result) From bd867f5e805e5d9b8b348f1d14582da8464913f5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 15:16:23 +0200 Subject: [PATCH 216/484] Update ccountry.class.php --- htdocs/core/class/ccountry.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/ccountry.class.php b/htdocs/core/class/ccountry.class.php index 71df0784fba..d6d33df553e 100644 --- a/htdocs/core/class/ccountry.class.php +++ b/htdocs/core/class/ccountry.class.php @@ -30,7 +30,7 @@ /** * Class to manage dictionary Countries (used by imports) */ -class Ccountry// extends CommonObject +class Ccountry // extends CommonObject { /** * @var DoliDB Database handler. From c724eef85c900b6b3288b5a839b9d2c24b968cda Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 15:16:56 +0200 Subject: [PATCH 217/484] Update ccountry.class.php --- htdocs/core/class/ccountry.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/ccountry.class.php b/htdocs/core/class/ccountry.class.php index d6d33df553e..575a3b7ed71 100644 --- a/htdocs/core/class/ccountry.class.php +++ b/htdocs/core/class/ccountry.class.php @@ -30,7 +30,7 @@ /** * Class to manage dictionary Countries (used by imports) */ -class Ccountry // extends CommonObject +class Ccountry // extends CommonObject { /** * @var DoliDB Database handler. From 55a2ee55592f50477cc539d734ff0eb3d59c8757 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 15:19:01 +0200 Subject: [PATCH 218/484] Update export.php --- htdocs/exports/export.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index 58feffd3e46..3bada876d2f 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -33,7 +33,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/export/modules_export.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; // Load translation files required by the page -$langs->loadlangs(array('exports', 'other', 'users', 'companies', 'projects', 'BankAccounts')); +$langs->loadlangs(array('exports', 'other', 'users', 'companies', 'projects', 'banks')); // Everybody should be able to go on this page //if (! $user->admin) From 7e841350db1f5fc74d01a2235a5001760bd94a53 Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Tue, 8 Oct 2019 13:24:41 +0000 Subject: [PATCH 219/484] Fixing style errors. --- htdocs/core/class/ccountry.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/ccountry.class.php b/htdocs/core/class/ccountry.class.php index 1f59c0a51d1..44445e7d5de 100644 --- a/htdocs/core/class/ccountry.class.php +++ b/htdocs/core/class/ccountry.class.php @@ -344,7 +344,7 @@ class Ccountry // extends CommonObject * @param int $save_lastsearch_value -1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking * @return string String with URL */ - function getNomUrl($withpicto=0, $option='', $notooltip=0, $morecss='', $save_lastsearch_value=-1) + function getNomUrl($withpicto = 0, $option = '', $notooltip = 0, $morecss = '', $save_lastsearch_value = -1) { global $langs; return $langs->trans($this->label); From 368b34c5c2f074f221b001964c9baffbf1dc3006 Mon Sep 17 00:00:00 2001 From: fuhraih <55843623+fuhraih@users.noreply.github.com> Date: Tue, 8 Oct 2019 15:34:35 +0200 Subject: [PATCH 220/484] FIX #11835 FIX #11835 edit Bank Statements in second Page and so on not working --- htdocs/compta/bank/releve.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/bank/releve.php b/htdocs/compta/bank/releve.php index cca8f6ea9ef..51609acfa7b 100644 --- a/htdocs/compta/bank/releve.php +++ b/htdocs/compta/bank/releve.php @@ -263,7 +263,8 @@ if (empty($numref)) print_barre_liste('', $page, $_SERVER["PHP_SELF"], "&account=".$object->id, $sortfield, $sortorder, '', $numrows, $totalnboflines, ''); - print ''; + if ($page==0) print ''; + else print ''; print ''; print ''; print ''; @@ -335,7 +336,7 @@ if (empty($numref)) print ''; From ef91e0bff3c4df18170adf96a0dc06398d38f21a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 15:35:36 +0200 Subject: [PATCH 221/484] Trans --- htdocs/langs/en_US/boxes.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/boxes.lang b/htdocs/langs/en_US/boxes.lang index 84815016b7d..b7f7037c94d 100644 --- a/htdocs/langs/en_US/boxes.lang +++ b/htdocs/langs/en_US/boxes.lang @@ -88,7 +88,7 @@ ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s last manual entries +BoxTitleLastManualEntries=%s latest manual entries NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines From 37795b19554d8355351bc936158f52b2e787a049 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 15:40:07 +0200 Subject: [PATCH 222/484] Trans --- htdocs/langs/en_US/ticket.lang | 2 +- htdocs/ticket/agenda.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/langs/en_US/ticket.lang b/htdocs/langs/en_US/ticket.lang index 4bc40e19555..14f06f8831f 100644 --- a/htdocs/langs/en_US/ticket.lang +++ b/htdocs/langs/en_US/ticket.lang @@ -139,7 +139,7 @@ TicketViewNonClosedOnly=View only open tickets TicketStatByStatus=Tickets by status OrderByDateAsc=Sort by ascending date OrderByDateDesc=Sort by descending date -MessagingViewType=Show as messaging list +ShowAsConversation=Show as conversation list MessageListViewType=Show as table list # diff --git a/htdocs/ticket/agenda.php b/htdocs/ticket/agenda.php index c20fbe20a7e..9ee8363dc46 100644 --- a/htdocs/ticket/agenda.php +++ b/htdocs/ticket/agenda.php @@ -235,7 +235,7 @@ if (!empty($object->id)) $morehtmlright = ''; $messagingUrl = DOL_URL_ROOT.'/ticket/messaging.php?track_id=' . $object->track_id; - $morehtmlright .= dolGetButtonTitle($langs->trans('MessagingViewType'), '', 'fa fa-comments imgforviewmode', $messagingUrl, '', 1); + $morehtmlright .= dolGetButtonTitle($langs->trans('ShowAsConversation'), '', 'fa fa-comments imgforviewmode', $messagingUrl, '', 1); // Show link to add a message (if read and not closed) $btnstatus = $object->fk_statut < Ticket::STATUS_CLOSED && $action != "presend" && $action != "presend_addmessage"; From eb203413280dcd0faf495a3062db322d72be1f63 Mon Sep 17 00:00:00 2001 From: fuhraih <55843623+fuhraih@users.noreply.github.com> Date: Tue, 8 Oct 2019 15:42:59 +0200 Subject: [PATCH 223/484] Update companies.lang --- htdocs/langs/en_US/companies.lang | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index a4ab22d47c5..31b0634f579 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -438,5 +438,6 @@ PaymentTypeCustomer=Payment Type - Customer PaymentTermsCustomer=Payment Terms - Customer PaymentTypeSupplier=Payment Type - Vendor PaymentTermsSupplier=Payment Term - Vendor +PaymentTypeBoth=Payment Type - Customer and Vendor MulticurrencyUsed=Use Multicurrency -MulticurrencyCurrency=Currency \ No newline at end of file +MulticurrencyCurrency=Currency From 328abc4048667ea195233c0114d5df93944ab448 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 15:43:44 +0200 Subject: [PATCH 224/484] Clean code --- htdocs/langs/en_US/zapier.lang | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/htdocs/langs/en_US/zapier.lang b/htdocs/langs/en_US/zapier.lang index 2699f54b721..03278aa1c71 100644 --- a/htdocs/langs/en_US/zapier.lang +++ b/htdocs/langs/en_US/zapier.lang @@ -26,28 +26,10 @@ ModuleZapierForDolibarrDesc = ZapierForDolibarr description # Admin page # ZapierForDolibarrSetup = ZapierForDolibarr setup -Settings = Settings -ZapierForDolibarrSetupPage = ZapierForDolibarr setup page -ZAPIERFORDOLIBARR_MYPARAM1 = My param 1 -ZAPIERFORDOLIBARR_MYPARAM1Tooltip = My param 1 tooltip -ZAPIERFORDOLIBARR_MYPARAM2=My param 2 -ZAPIERFORDOLIBARR_MYPARAM2Tooltip=My param 2 tooltip - # # About page # About = About ZapierForDolibarrAbout = About ZapierForDolibarr -ZapierForDolibarrAboutPage = ZapierForDolibarr about page - -# -# Sample page -# -MyPageName = My page name - -# -# Sample widget -# -MyWidget = My widget -MyWidgetDescription = My widget description +ZapierForDolibarrAboutPage = ZapierForDolibarr about page \ No newline at end of file From b13d5aafb38251aa605f86a0ee4ca7b6cf617b71 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 15:45:37 +0200 Subject: [PATCH 225/484] Trans --- htdocs/langs/en_US/zapier.lang | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/htdocs/langs/en_US/zapier.lang b/htdocs/langs/en_US/zapier.lang index 03278aa1c71..07eb8460efa 100644 --- a/htdocs/langs/en_US/zapier.lang +++ b/htdocs/langs/en_US/zapier.lang @@ -18,18 +18,11 @@ # # Module label 'ModuleZapierForDolibarrName' -ModuleZapierForDolibarrName = ZapierForDolibarr +ModuleZapierForDolibarrName = Zapier for Dolibarr # Module description 'ModuleZapierForDolibarrDesc' -ModuleZapierForDolibarrDesc = ZapierForDolibarr description +ModuleZapierForDolibarrDesc = Zapier for Dolibarr module # # Admin page # -ZapierForDolibarrSetup = ZapierForDolibarr setup - -# -# About page -# -About = About -ZapierForDolibarrAbout = About ZapierForDolibarr -ZapierForDolibarrAboutPage = ZapierForDolibarr about page \ No newline at end of file +ZapierForDolibarrSetup = Setup of Zapier for Dolibarr \ No newline at end of file From d6bf0fa483d107f64e0891aa38197feec5a4f29c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 15:47:47 +0200 Subject: [PATCH 226/484] Update releve.php --- htdocs/compta/bank/releve.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/bank/releve.php b/htdocs/compta/bank/releve.php index 51609acfa7b..02ba62097c2 100644 --- a/htdocs/compta/bank/releve.php +++ b/htdocs/compta/bank/releve.php @@ -263,12 +263,12 @@ if (empty($numref)) print_barre_liste('', $page, $_SERVER["PHP_SELF"], "&account=".$object->id, $sortfield, $sortorder, '', $numrows, $totalnboflines, ''); - if ($page==0) print ''; - else print ''; + print ''; print ''; print ''; print ''; print ''; + print ''; print '
    ' . $langs->trans("NbIteConsecutive")."
    '; - $text = $langs->trans("UserExpenseValidator"); + $text = $langs->trans("ForceUserExpenseValidator"); print $form->textwithpicto($text, $langs->trans("ValidatorIsSupervisorByDefault"), 1, 'help'); print ''; @@ -986,7 +986,7 @@ if ($action == 'create' || $action == 'adduserldap') if(!empty($conf->holiday->enabled)) { print '
    '; - $text = $langs->trans("UserHolidayValidator"); + $text = $langs->trans("ForceUserHolidayValidator"); print $form->textwithpicto($text, $langs->trans("ValidatorIsSupervisorByDefault"), 1, 'help'); print ''; @@ -1231,20 +1231,20 @@ if ($action == 'create' || $action == 'adduserldap') // TODO Move this into tab RH (HierarchicalResponsible must be on both tab) - // Position/Job - print '
    '.$langs->trans("PostOrFunction").''; - print ''; - print '
    '.$langs->trans("DefaultWarehouse").''; print $formproduct->selectWarehouses($object->fk_warehouse, 'fk_warehouse', 'warehouseopen', 1); print '
    '.$langs->trans("PostOrFunction").''; + print ''; + print '
    '; - $text = $langs->trans("UserExpenseValidator"); + $text = $langs->trans("ForceUserExpenseValidator"); print $form->textwithpicto($text, $langs->trans("ValidatorIsSupervisorByDefault"), 1, 'help'); print ''; - if (empty($object->fk_user_expense_validator)) print $langs->trans("None"); - else { + if (! empty($object->fk_user_expense_validator)) { $evuser=new User($db); $evuser->fetch($object->fk_user_expense_validator); print $evuser->getNomUrl(1); @@ -1609,12 +1608,11 @@ else // Holiday request validator print '
    '; - $text = $langs->trans("UserHolidayValidator"); + $text = $langs->trans("ForceUserHolidayValidator"); print $form->textwithpicto($text, $langs->trans("ValidatorIsSupervisorByDefault"), 1, 'help'); print ''; - if (empty($object->fk_user_holiday_validator)) print $langs->trans("None"); - else { + if (! empty($object->fk_user_holiday_validator)) { $hvuser=new User($db); $hvuser->fetch($object->fk_user_holiday_validator); print $hvuser->getNomUrl(1); @@ -1622,13 +1620,8 @@ else print '
    '.$langs->trans("PostOrFunction").''.$object->job.'
    '.$langs->trans("PostOrFunction").''.$object->job.'
    '; - $text = $langs->trans("UserExpenseValidator"); + $text = $langs->trans("ForceUserExpenseValidator"); print $form->textwithpicto($text, $langs->trans("ValidatorIsSupervisorByDefault"), 1, 'help'); print ''; @@ -2325,7 +2323,7 @@ else // Holiday request validator print '
    '; - $text = $langs->trans("UserHolidayValidator"); + $text = $langs->trans("ForceUserHolidayValidator"); print $form->textwithpicto($text, $langs->trans("ValidatorIsSupervisorByDefault"), 1, 'help'); print ''; @@ -2689,22 +2687,8 @@ else // TODO Move this into tab RH (HierarchicalResponsible must be on both tab) - // Position/Job - print '
    '.$langs->trans("PostOrFunction").''; - if ($caneditfield) - { - print ''; - } - else - { - print ''; - print $object->job; - } - print '
    '.$langs->trans("DefaultWarehouse").''; print $formproduct->selectWarehouses($object->fk_warehouse, 'fk_warehouse', 'warehouseopen', 1); @@ -2712,7 +2696,21 @@ else print '
    '.$langs->trans("PostOrFunction").''; + if ($caneditfield) + { + print ''; + } + else + { + print ''; + print $object->job; + } + print '
    " . $langs->trans("DefaultContact") . ''; $form->select_contacts($soc->id, $contactid, 'contactid', 1, $srccontactslist); print '
    " . $langs->trans("DefaultContact") . ''; - $form->select_contacts($soc->id, $setcontact, 'contactid', 1, $srccontactslist, '', 1); + $form->select_contacts($soc->id, $contactid, 'contactid', 1, $srccontactslist, '', 1); print '
    ' . $langs->trans("Role") . '
    ' . $langs->trans("ContactByDefaultFor") . ''; $contactType = $object->listeTypeContacts('external', '', 1); print $form->multiselectarray('roles', $contactType); @@ -1050,9 +1050,9 @@ else print "
    ' . $langs->trans("Role") . '
    ' . $langs->trans("ContactByDefaultFor") . ''; print $formcompany->showRoles("roles", $object, 'edit', $object->roles); print '
    '.$langs->trans("PostOrFunction").''.$object->poste.'
    ' . $langs->trans("Roles") . '
    ' . $langs->trans("ContactByDefaultFor") . ''; print $formcompany->showRoles("roles", $object, 'view'); print '
    '; + $out.=''; if (isset($histo[$key]['type']) && $histo[$key]['type']=='mailing') { $out.=''.img_object($langs->trans("ShowEMailing"), "email").' '; $out.=$histo[$key]['id']; diff --git a/htdocs/societe/agenda.php b/htdocs/societe/agenda.php index af0d7670141..231174a0afa 100644 --- a/htdocs/societe/agenda.php +++ b/htdocs/societe/agenda.php @@ -2,7 +2,7 @@ /* Copyright (C) 2001-2007 Rodolphe Quiedeville * Copyright (C) 2005 Brice Davoleau * Copyright (C) 2005-2012 Regis Houssin - * Copyright (C) 2006-2015 Laurent Destailleur + * Copyright (C) 2006-2019 Laurent Destailleur * Copyright (C) 2007 Patrick Raguin * Copyright (C) 2010 Juanjo Menent * Copyright (C) 2015 Marcos García diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index 4b0ccd45fd5..bfe548fb0fe 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -1442,7 +1442,7 @@ img.photorefnoborder { } .trextrafieldseparator td { /* border-bottom: 2px solid rgb() !important; */ - border-bottom: 2px dashed rgb() !important; + border-bottom: 2px solid rgb() !important; } .tdhrthin { From 16eeeecb9ae48edffa67e2eaf36ce388b9eb55d2 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 17:08:08 +0200 Subject: [PATCH 186/484] Trans --- htdocs/langs/en_US/admin.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index fed096cf024..afce2e4fa34 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -526,7 +526,7 @@ Module50Desc=Management of Products Module51Name=Mass mailings Module51Desc=Mass paper mailing management Module52Name=Stocks -Module52Desc=Stock management (for products only) +Module52Desc=Stock management Module53Name=Services Module53Desc=Management of Services Module54Name=Contracts/Subscriptions From 2aee62ea28726d0247147fd3e145a936222cfdb5 Mon Sep 17 00:00:00 2001 From: Florian Mortgat Date: Mon, 7 Oct 2019 17:32:52 +0200 Subject: [PATCH 187/484] FIX: $from and $sendto variables are unescaped in the sending error message This causes addresses like Tom not to be shown in the message. --- htdocs/core/actions_sendmails.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/actions_sendmails.inc.php b/htdocs/core/actions_sendmails.inc.php index 17f1a70d555..088c30aaf31 100644 --- a/htdocs/core/actions_sendmails.inc.php +++ b/htdocs/core/actions_sendmails.inc.php @@ -460,7 +460,7 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO $mesg='
    '; if ($mailfile->error) { - $mesg.=$langs->trans('ErrorFailedToSendMail',$from,$sendto); + $mesg.=$langs->transnoentities('ErrorFailedToSendMail',dol_escape_htmltag($from),dol_escape_htmltag($sendto)); $mesg.='
    '.$mailfile->error; } else From 2ba8506608a61c031a681f1183dc459a06dce994 Mon Sep 17 00:00:00 2001 From: Laurent De Coninck Date: Mon, 7 Oct 2019 17:53:23 +0200 Subject: [PATCH 188/484] validate the 0 as min value consecutive; meaning not take that rule into account --- htdocs/admin/security.php | 2 +- .../generate/modGeneratePassPerso.class.php | 29 ++++++++++--------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/htdocs/admin/security.php b/htdocs/admin/security.php index c4c8026e076..7fa5bb3c28f 100644 --- a/htdocs/admin/security.php +++ b/htdocs/admin/security.php @@ -174,7 +174,7 @@ if ($action == 'maj_pattern') $explodePattern = explode(';', $pattern); $patternInError = false; - if($explodePattern[0] < 1 || $explodePattern[4] < 1){ + if($explodePattern[0] < 1){ $patternInError = true; } diff --git a/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php b/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php index bccb1353087..f8c02cc95f8 100644 --- a/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php +++ b/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php @@ -187,31 +187,32 @@ class modGeneratePassPerso extends ModeleGenPassword $spe = str_split($this->Spe); if (count(array_intersect($password_a, $maj)) < $this->NbMaj) { - return 0; + return false; } if (count(array_intersect($password_a, $num)) < $this->NbNum) { - return 0; + return false; } if (count(array_intersect($password_a, $spe)) < $this->NbSpe) { - return 0; + return false; } if (!$this->consecutiveInterationSameCharacter($password)) { - return 0; + return false; } - return 1; + return true; } /** - * consecutive iterations of the same character + * check the consecutive iterations of the same character. Return false if the number doesn't match the maximum consecutive value allowed. * * @param string $password Password to check - * @return int 0 if KO, >0 if OK + * + * @return bool */ - public function consecutiveInterationSameCharacter($password) + private function consecutiveInterationSameCharacter($password) { $last = ""; $count = 0; @@ -220,14 +221,16 @@ class modGeneratePassPerso extends ModeleGenPassword if($c != $last) { $last = $c; $count = 0; - } else { - $count++; + + continue; } - if ($count >= $this->NbRepeat) { - return 0; + $count++; + if ($count > $this->NbRepeat) { + return false; } } - return 1; + + return true; } } From 07d1a3fe8bcac4c0a0d43ba7634a2a3920944331 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 18:17:22 +0200 Subject: [PATCH 189/484] css --- htdocs/comm/propal/list.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php index f81949fb11d..919ad77168d 100644 --- a/htdocs/comm/propal/list.php +++ b/htdocs/comm/propal/list.php @@ -1013,9 +1013,8 @@ if ($resql) // Author if (! empty($arrayfields['u.login']['checked'])) { - print '
    '; + print ''; if ($userstatic->id) print $userstatic->getLoginUrl(1); - else print ' '; print "'; From 51ef2cd20af2670a51fcbc44e4af2c0754f22390 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 20:20:06 +0200 Subject: [PATCH 190/484] FIX #12058 --- htdocs/comm/action/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/comm/action/index.php b/htdocs/comm/action/index.php index bd6b88d51ff..d503c1bc71d 100644 --- a/htdocs/comm/action/index.php +++ b/htdocs/comm/action/index.php @@ -1562,7 +1562,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa $savlabel=$event->label?$event->label:$event->libelle; $event->label=$titletoshow; $event->libelle=$titletoshow; - print $event->getNomUrl(0, $maxnbofchar, 'cal_event', '', 0, 1); + print $event->getNomUrl(0, $maxnbofchar, 'cal_event', '', 0, 0); $event->label=$savlabel; $event->libelle=$savlabel; } From c68de09ba9533f369be39fed3a5df34600309665 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Mon, 7 Oct 2019 20:27:51 +0200 Subject: [PATCH 191/484] use $this->db in box --- .../box_accountancy_last_manual_entries.php | 20 +++++++++---------- .../box_accountancy_suspense_account.php | 11 +++++----- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/htdocs/core/boxes/box_accountancy_last_manual_entries.php b/htdocs/core/boxes/box_accountancy_last_manual_entries.php index 1f2b8d634d9..2c788b66b71 100644 --- a/htdocs/core/boxes/box_accountancy_last_manual_entries.php +++ b/htdocs/core/boxes/box_accountancy_last_manual_entries.php @@ -71,13 +71,11 @@ class box_accountancy_last_manual_entries extends ModeleBoxes */ public function loadBox($max = 5) { - global $user, $langs, $db, $conf; - - $this->max = $max; + global $user, $langs, $conf; include_once DOL_DOCUMENT_ROOT.'/accountancy/class/bookkeeping.class.php'; - $bookkeepingstatic = new BookKeeping($db); + $bookkeepingstatic = new BookKeeping($this->db); $this->info_box_head = array('text' => $langs->trans("BoxTitleLastManualEntries", $max)); @@ -92,17 +90,17 @@ class box_accountancy_last_manual_entries extends ModeleBoxes $sql.= " WHERE b.fk_doc = 0"; $sql.= " AND b.entity = ".$conf->entity; $sql.= " ORDER BY b.piece_num DESC "; - $sql.= $db->plimit($max, 0); + $sql.= $this->db->plimit($max, 0); - $result = $db->query($sql); + $result = $this->db->query($sql); if ($result) { - $num = $db->num_rows($result); + $num = $this->db->num_rows($result); $line = 0; while ($line < $num) { - $objp = $db->fetch_object($result); - $date = $db->jdate($objp->date_movement); + $objp = $this->db->fetch_object($result); + $date = $this->db->jdate($objp->date_movement); $journal = $objp->code_journal; $label = $objp->label_operation; $amount = $objp->montant; @@ -144,12 +142,12 @@ class box_accountancy_last_manual_entries extends ModeleBoxes if ($num==0) $this->info_box_contents[$line][0] = array('td' => 'class="center"','text'=>$langs->trans("NoRecordedManualEntries")); - $db->free($result); + $this->db->free($result); } else { $this->info_box_contents[0][0] = array( 'td' => '', 'maxlength'=>500, - 'text' => ($db->error().' sql='.$sql), + 'text' => ($this->db->error().' sql='.$sql), ); } } else { diff --git a/htdocs/core/boxes/box_accountancy_suspense_account.php b/htdocs/core/boxes/box_accountancy_suspense_account.php index dd2d9a17695..9740de82fbc 100644 --- a/htdocs/core/boxes/box_accountancy_suspense_account.php +++ b/htdocs/core/boxes/box_accountancy_suspense_account.php @@ -37,7 +37,7 @@ class box_accountancy_suspense_account extends ModeleBoxes public $boxlabel="BoxSuspenseAccount"; public $depends = array("accounting"); - /** + /** * @var DoliDB Database handler. */ public $db; @@ -70,11 +70,11 @@ class box_accountancy_suspense_account extends ModeleBoxes */ public function loadBox() { - global $user, $langs, $db, $conf; + global $user, $langs, $conf; include_once DOL_DOCUMENT_ROOT.'/accountancy/class/bookkeeping.class.php'; - $bookkeepingstatic = new BookKeeping($db); + $bookkeepingstatic = new BookKeeping($this->db); $this->info_box_head = array('text' => $langs->trans("BoxTitleSuspenseAccount")); @@ -88,10 +88,11 @@ class box_accountancy_suspense_account extends ModeleBoxes $sql .= " WHERE b.numero_compte = ". $suspenseAccount; $sql .= " AND b.entity = " . $conf->entity; - $result = $db->query($sql); + $result = $this->db->query($sql); + $nbSuspenseAccount = 0; if ($result) { - $obj=$db->fetch_object($result); + $obj=$this->db->fetch_object($result); $nbSuspenseAccount = $obj->nb_suspense_account; } From da5890e584d10cc99f1b61394f534f862f9f12c2 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 20:32:51 +0200 Subject: [PATCH 192/484] Update adherent.class.php --- htdocs/adherents/class/adherent.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php index 28667cb047f..631ad61684c 100644 --- a/htdocs/adherents/class/adherent.class.php +++ b/htdocs/adherents/class/adherent.class.php @@ -581,7 +581,7 @@ class Adherent extends CommonObject $sql.= ", fk_adherent_type = ".$this->db->escape($this->typeid); $sql.= ", morphy = '".$this->db->escape($this->morphy)."'"; $sql.= ", birth = ".($this->birth?"'".$this->db->idate($this->birth)."'":"null"); - if ($this->socid) $sql.= ", fk_soc = '".$this->db->escape($this->socid)."'"; // Must be modified only when creating from a thirdpart + if ($this->socid) $sql.= ", fk_soc = '".$this->db->escape($this->socid)."'"; // Must be modified only when creating from a third-party if ($this->datefin) $sql.= ", datefin = '".$this->db->idate($this->datefin)."'"; // Must be modified only when deleting a subscription if ($this->datevalid) $sql.= ", datevalid = '".$this->db->idate($this->datevalid)."'"; // Must be modified only when validating a member $sql.= ", fk_user_mod = ".($user->id>0?$user->id:'null'); // Can be null because member can be create by a guest From eba3d96293a3820782655eff1ba0cbba5aede01a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 20:36:48 +0200 Subject: [PATCH 193/484] Update card.php NEW Add option MEMBER_CAN_CONVERT_CUSTOMERS_TO_MEMBERS --- htdocs/societe/card.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index 8c1db93c53b..5be134286e5 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -2668,12 +2668,12 @@ else if (! empty($conf->adherent->enabled)) { - $adh = new Adherent($db); - $result=$adh->fetch('', '', $object->id); - if (!$result && $object->client == 1) - { - print ''.$langs->trans("NewMember").''; - } + $adh = new Adherent($db); + $result=$adh->fetch('', '', $object->id); + if ($result == 0 && ($object->client == 1 || $object->client == 3) && ! empty($conf->global->MEMBER_CAN_CONVERT_CUSTOMERS_TO_MEMBERS)) + { + print ''.$langs->trans("NewMember").''; + } } if ($user->rights->societe->supprimer) From 539f4355c394af0b7d2fc9e16cb8d87a1097f4ee Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 20:48:44 +0200 Subject: [PATCH 194/484] Try to fix stickler --- dev/namespacemig/aaa.class.php | 10 +++++++++- dev/namespacemig/bbb.class.php | 12 +++++++++--- htdocs/core/modules/modSyslog.class.php | 6 +++++- htdocs/core/tpl/objectline_create.tpl.php | 6 +++++- 4 files changed, 28 insertions(+), 6 deletions(-) diff --git a/dev/namespacemig/aaa.class.php b/dev/namespacemig/aaa.class.php index 7b165349472..d7578b78e40 100644 --- a/dev/namespacemig/aaa.class.php +++ b/dev/namespacemig/aaa.class.php @@ -2,10 +2,14 @@ namespace Dolibarr; - global $globalaaa; $globalaaa = 'globalaaa'; +/** + * faaa + * + * @return string + */ function faaa() { return 'faaa'; @@ -15,6 +19,10 @@ class Aaa { const AAA='aaa'; + /** + * do + * @return void + */ public function do() { echo 'doaaa'."\n"; diff --git a/dev/namespacemig/bbb.class.php b/dev/namespacemig/bbb.class.php index 0fb6fd3d7ae..f68b3b2f36c 100644 --- a/dev/namespacemig/bbb.class.php +++ b/dev/namespacemig/bbb.class.php @@ -1,11 +1,12 @@ rights_class = 'syslog'; // Cronjobs + $comment = 'Compress and archive log files. The number of versions to keep is defined into the setup of module. '; + $comment.= 'Warning: Main application cron script must be run with same account than your web server to avoid to get log files with different owner than required by web server.'; + $comment.= 'Another solution is to set web server Operating System group as the group of directory documents and set GROUP permission "rws" on this directory so log files will always have the group and permissions of the web server Operating System group.'; + $this->cronjobs = array( 0 => array( 'label' => 'CompressSyslogs', @@ -92,7 +96,7 @@ class modSyslog extends DolibarrModules 'objectname' => 'Utils', 'method' => 'compressSyslogs', 'parameters' => '', - 'comment' => 'Compress and archive log files. The number of versions to keep is defined into the setup of module. Warning: Main application cron script must be run with same account than your web server to avoid to get log files with different owner than required by web server. Another solution is to set web server Operating System group as the group of directory documents and set GROUP permission "rws" on this directory so log files will always have the group and permissions of the web server Operating System group', + 'comment' => $comment, 'frequency' => 1, 'unitfrequency' => 3600 * 24, 'priority' => 50, diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php index 462af9173c1..876863432be 100644 --- a/htdocs/core/tpl/objectline_create.tpl.php +++ b/htdocs/core/tpl/objectline_create.tpl.php @@ -853,9 +853,13 @@ function setforpredef() { jQuery("#prod_entry_mode_predef").prop('checked',true).change(); global->MAIN_EDIT_PREDEF_PRICEHT)) { ?> jQuery("#price_ht").val('').hide(); + jQuery("#multicurrency_price_ht").val('').hide(); + + jQuery("#price_ht").val('').show(); + jQuery("#multicurrency_price_ht").val('').show(); jQuery("#price_ht").val(''); - jQuery("#price_ht, #multicurrency_price_ht, #price_ttc, #fourn_ref, #tva_tx, #title_vat, #title_up_ht, #title_up_ht_currency, #title_up_ttc, #title_up_ttc_currency").hide(); + jQuery("#price_ttc, #fourn_ref, #tva_tx, #title_vat, #title_up_ht, #title_up_ht_currency, #title_up_ttc, #title_up_ttc_currency").hide(); jQuery("#np_marginRate, #np_markRate, .np_marginRate, .np_markRate, #units, #title_units").hide(); jQuery("#buying_price").show(); jQuery('#trlinefordates, .divlinefordates').show(); From bb72efefc5fcf0f3b9bea6af698941a3a961a14b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 20:52:27 +0200 Subject: [PATCH 195/484] Fix phpcs --- htdocs/core/modules/import/import_xlsx.modules.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/modules/import/import_xlsx.modules.php b/htdocs/core/modules/import/import_xlsx.modules.php index a4615579f34..59f5ce8aa7b 100644 --- a/htdocs/core/modules/import/import_xlsx.modules.php +++ b/htdocs/core/modules/import/import_xlsx.modules.php @@ -669,7 +669,7 @@ class ImportXlsx extends ModeleImports $errorforthistable++; $error++; } - } + } // If test is just a static regex elseif (! preg_match('/'.$objimport->array_import_regex[0][$val].'/i', $newval)) { //if ($key == 19) print "xxx".$newval."zzz".$objimport->array_import_regex[0][$val]."
    "; From b7e6ee7eea1fff446aa12994c7aaa1e063905832 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 20:55:54 +0200 Subject: [PATCH 196/484] css --- htdocs/theme/eldy/global.inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index bfe548fb0fe..7dcac4d68ba 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -2068,8 +2068,8 @@ img.userphoto { /* size for user photo in lists */ } img.userphotosmall { /* size for user photo in lists */ border-radius: 6px; - width: 12px; - height: 12px; + width: 1em; + height: 1em; background-size: contain; vertical-align: middle; background-color: #FFF; From 99da69fb69f4bd02f79aa5e94f6812437c91912c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 7 Oct 2019 21:01:52 +0200 Subject: [PATCH 197/484] NEW Can edit the price of predefined product during adding in documents --- htdocs/core/tpl/objectline_create.tpl.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php index 876863432be..7f860586909 100644 --- a/htdocs/core/tpl/objectline_create.tpl.php +++ b/htdocs/core/tpl/objectline_create.tpl.php @@ -677,7 +677,7 @@ jQuery(document).ready(function() { jQuery('#trlinefordates').show(); global->MAIN_EDIT_PREDEF_PRICEHT)) + if (empty($conf->global->MAIN_DISABLE_EDIT_PREDEF_PRICEHT)) { ?> // get the HT price for the product and display it @@ -851,12 +851,12 @@ function setforpredef() { jQuery("#select_type").val(-1); jQuery("#prod_entry_mode_free").prop('checked',false).change(); jQuery("#prod_entry_mode_predef").prop('checked',true).change(); - global->MAIN_EDIT_PREDEF_PRICEHT)) { ?> - jQuery("#price_ht").val('').hide(); - jQuery("#multicurrency_price_ht").val('').hide(); - + global->MAIN_DISABLE_EDIT_PREDEF_PRICEHT)) { ?> jQuery("#price_ht").val('').show(); jQuery("#multicurrency_price_ht").val('').show(); + + jQuery("#price_ht").val('').hide(); + jQuery("#multicurrency_price_ht").val('').hide(); jQuery("#price_ht").val(''); jQuery("#price_ttc, #fourn_ref, #tva_tx, #title_vat, #title_up_ht, #title_up_ht_currency, #title_up_ttc, #title_up_ttc_currency").hide(); From 091df082fc023c3ddd301ae1f59e64c96eee3be4 Mon Sep 17 00:00:00 2001 From: Laurent De Coninck Date: Tue, 8 Oct 2019 08:11:29 +0200 Subject: [PATCH 198/484] fix the access of the bank account of one user There are 3 ways to access this tab : 1. If the module holiday is enabled 2. If the module holidays is enabled 3. If the module expense report is enabled More over that, the application checks if the user can access the bank account of the selected user. The application does that twice (logical ^^), first to know if the tab has to be displayed or not. Second time, when you arrive on the page /user/bank.php to know if you have access (eg. if you type the url directly). In this second check, the check of the expense report module was missing (added by this PR). This caused the following issue: the tab was visible but when the user clicked on itn, he received an error as he cannot access the page. --- htdocs/user/bank.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/user/bank.php b/htdocs/user/bank.php index 196819f1a4a..2e2091034f9 100644 --- a/htdocs/user/bank.php +++ b/htdocs/user/bank.php @@ -54,6 +54,7 @@ $ok=false; if ($user->id == $id) $ok=true; // A user can always read its own card if (! empty($user->rights->salaries->read)) $ok=true; if (! empty($user->rights->hrm->read)) $ok=true; +if (! empty($user->rights->expensereport->lire) && ($user->id == $object->id || $user->rights->expensereport->readall)) $ok=true; if (! $ok) { accessforbidden(); From 41cdf0d5a03d534ade286f9d9db491d868c6953d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Tue, 8 Oct 2019 08:19:27 +0200 Subject: [PATCH 199/484] remove stock data from getsupplierprice stock data can be retrieved with get --- htdocs/product/class/api_products.class.php | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/htdocs/product/class/api_products.class.php b/htdocs/product/class/api_products.class.php index 346aef06a91..2a9f407bf54 100644 --- a/htdocs/product/class/api_products.class.php +++ b/htdocs/product/class/api_products.class.php @@ -607,7 +607,6 @@ class Products extends DolibarrApi * @param string $ref Ref of element * @param string $ref_ext Ref ext of element * @param string $barcode Barcode of element - * @param int $includestockdata Load also information about stock (slower) * @return array|mixed Data without useless information * * @url GET {id}/purchase_prices @@ -617,7 +616,7 @@ class Products extends DolibarrApi * @throws 404 * */ - public function getPurchasePrices($id, $ref = '', $ref_ext = '', $barcode = '', $includestockdata = 0) + public function getPurchasePrices($id, $ref = '', $ref_ext = '', $barcode = '') { if (empty($id) && empty($ref) && empty($ref_ext) && empty($barcode)) { throw new RestException(400, 'bad value for parameter id, ref, ref_ext or barcode'); @@ -638,10 +637,6 @@ class Products extends DolibarrApi throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } - if ($includestockdata) { - $this->product->load_stock(); - } - if ($result) { $this->productsupplier->fetch($id, $ref); $this->productsupplier->list_product_fournisseur_price($id, '', '', 0, 0); From c8fb1e852ca234ab18818784bf56cbfe8cab0a8c Mon Sep 17 00:00:00 2001 From: Laurent De Coninck Date: Tue, 8 Oct 2019 08:51:09 +0200 Subject: [PATCH 200/484] export some other fields on the expense reports When the user requests the export of the expense reports, some fields were missing such as the bank account information of the user. This PR adds the support of all those fields on the expense report export. Now when you export the expense report you have : * The bank name * The bank code * The IBAN * The BIC * The owner * The owner address --- htdocs/core/modules/modExpenseReport.class.php | 16 ++++++++++++---- htdocs/exports/export.php | 2 +- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/htdocs/core/modules/modExpenseReport.class.php b/htdocs/core/modules/modExpenseReport.class.php index 15474d154b9..5b116aa8d93 100644 --- a/htdocs/core/modules/modExpenseReport.class.php +++ b/htdocs/core/modules/modExpenseReport.class.php @@ -184,18 +184,25 @@ class modExpenseReport extends DolibarrModules 'd.rowid'=>"TripId",'d.ref'=>'Ref','d.date_debut'=>'DateStart','d.date_fin'=>'DateEnd','d.date_create'=>'DateCreation','d.date_approve'=>'DateApprove', 'd.total_ht'=>"TotalHT",'d.total_tva'=>'TotalVAT','d.total_ttc'=>'TotalTTC','d.note_private'=>'NotePrivate','d.note_public'=>'NotePublic', 'u.lastname'=>'Lastname','u.firstname'=>'Firstname','u.login'=>"Login",'ed.rowid'=>'LineId','tf.code'=>'Type','ed.date'=>'Date','ed.tva_tx'=>'VATRate', - 'ed.total_ht'=>'TotalHT','ed.total_tva'=>'TotalVAT','ed.total_ttc'=>'TotalTTC','ed.comments'=>'Comment','p.rowid'=>'ProjectId','p.ref'=>'Ref' + 'ed.total_ht'=>'TotalHT','ed.total_tva'=>'TotalVAT','ed.total_ttc'=>'TotalTTC','ed.comments'=>'Comment','p.rowid'=>'ProjectId','p.ref'=>'Ref', + 'user_rib.iban_prefix' => 'IBAN', 'user_rib.bic' => 'BIC', 'user_rib.code_banque' => 'BankCode', 'user_rib.bank' => 'BankName', 'user_rib.proprio' => 'BankAccountOwner', + 'user_rib.owner_address' => 'BankAccountOwnerAddress' ); $this->export_TypeFields_array[$r]=array( 'd.rowid'=>"Numeric",'d.ref'=>'Text','d.date_debut'=>'Date','d.date_fin'=>'Date','d.date_create'=>'Date','d.date_approve'=>'Date', 'd.total_ht'=>"Numeric",'d.total_tva'=>'Numeric','d.total_ttc'=>'Numeric','d.note_private'=>'Text','d.note_public'=>'Text', 'u.lastname'=>'Text','u.firstname'=>'Text','u.login'=>"Text",'ed.rowid'=>'Numeric','tf.code'=>'Code','ed.date'=>'Date','ed.tva_tx'=>'Numeric', - 'ed.total_ht'=>'Numeric','ed.total_tva'=>'Numeric','ed.total_ttc'=>'Numeric','ed.comments'=>'Text','p.rowid'=>'Numeric','p.ref'=>'Text' + 'ed.total_ht'=>'Numeric','ed.total_tva'=>'Numeric','ed.total_ttc'=>'Numeric','ed.comments'=>'Text','p.rowid'=>'Numeric','p.ref'=>'Text', + 'user_rib.iban_prefix' => 'Text', 'user_rib.bic' => 'Text', 'user_rib.code_banque' => 'Text', 'user_rib.bank' => 'Text', 'user_rib.proprio' => 'Text', + 'user_rib.owner_address' => 'Text' ); $this->export_entities_array[$r]=array( 'u.lastname'=>'user','u.firstname'=>'user','u.login'=>'user','ed.rowid'=>'expensereport_line','ed.date'=>'expensereport_line', 'ed.tva_tx'=>'expensereport_line','ed.total_ht'=>'expensereport_line','ed.total_tva'=>'expensereport_line','ed.total_ttc'=>'expensereport_line', - 'ed.comments'=>'expensereport_line','tf.code'=>'expensereport_line','p.project_ref'=>'expensereport_line','p.rowid'=>'project','p.ref'=>'project' + 'ed.comments'=>'expensereport_line','tf.code'=>'expensereport_line','p.project_ref'=>'expensereport_line','p.rowid'=>'project','p.ref'=>'project', + 'user_rib.iban_prefix' => 'user', 'user_rib.bic' => 'user', 'user_rib.code_banque' => 'user', 'user_rib.bank' => 'user', 'user_rib.proprio' => 'user', + 'user_rib.owner_address' => 'user' + ); $this->export_alias_array[$r]=array('d.rowid'=>"idtrip",'d.type'=>"type",'d.note_private'=>'note_private','d.note_public'=>'note_public','u.lastname'=>'name','u.firstname'=>'firstname','u.login'=>'login'); $this->export_dependencies_array[$r]=array('expensereport_line'=>'ed.rowid','type_fees'=>'tf.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them @@ -205,7 +212,8 @@ class modExpenseReport extends DolibarrModules $this->export_sql_start[$r]='SELECT DISTINCT '; $this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'expensereport as d'; - $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'expensereport_extrafields as extra on d.rowid = extra.fk_object,'; + $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'expensereport_extrafields as extra on d.rowid = extra.fk_object'; + $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'user_rib as user_rib ON user_rib.fk_user = d.fk_user_author,'; $this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'user as u,'; $this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'expensereport_det as ed LEFT JOIN '.MAIN_DB_PREFIX.'c_type_fees as tf ON ed.fk_c_type_fees = tf.id'; $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'projet as p ON ed.fk_projet = p.rowid'; diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index dada022deec..58feffd3e46 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -33,7 +33,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/export/modules_export.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; // Load translation files required by the page -$langs->loadlangs(array('exports', 'other', 'users', 'companies', 'projects')); +$langs->loadlangs(array('exports', 'other', 'users', 'companies', 'projects', 'BankAccounts')); // Everybody should be able to go on this page //if (! $user->admin) From 43a70e55480bd3f778ac23526d9c8e7b46605506 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 09:28:50 +0200 Subject: [PATCH 201/484] Clean code to use the new $extrafields->attributes array --- htdocs/admin/mails_senderprofile_list.php | 10 +++++--- htdocs/asset/list.php | 10 +++++--- htdocs/commande/list.php | 3 ++- htdocs/compta/bank/bankentries_list.php | 2 +- htdocs/compta/bank/list.php | 2 +- htdocs/compta/facture/list.php | 5 ++-- htdocs/contact/list.php | 2 +- htdocs/contrat/list.php | 5 ++-- htdocs/contrat/services_list.php | 2 +- .../stock/doc/pdf_stdmovement.modules.php | 16 ++++++------ htdocs/expedition/list.php | 2 +- htdocs/expensereport/list.php | 2 +- htdocs/fichinter/list.php | 2 +- htdocs/fourn/commande/list.php | 2 +- htdocs/fourn/facture/list.php | 2 +- htdocs/holiday/list.php | 2 +- .../modulebuilder/template/myobject_list.php | 2 +- htdocs/product/stock/movement_card.php | 2 +- htdocs/product/stock/movement_list.php | 2 +- htdocs/product/stock/productlot_list.php | 2 +- htdocs/projet/list.php | 2 +- htdocs/projet/tasks/list.php | 6 +++-- htdocs/reception/list.php | 2 +- htdocs/societe/list.php | 2 +- htdocs/societe/website.php | 25 ++++++++++--------- htdocs/supplier_proposal/list.php | 2 +- htdocs/user/list.php | 2 +- 27 files changed, 64 insertions(+), 54 deletions(-) diff --git a/htdocs/admin/mails_senderprofile_list.php b/htdocs/admin/mails_senderprofile_list.php index 0aa53b11b8d..58f107dfdf5 100644 --- a/htdocs/admin/mails_senderprofile_list.php +++ b/htdocs/admin/mails_senderprofile_list.php @@ -189,14 +189,15 @@ foreach($object->fields as $key => $val) $sql.='t.'.$key.', '; } // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.' as options_'.$key.', ' : ''); // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters, $object); // Note that $action and $object may have been modified by hook $sql.=$hookmanager->resPrint; -$sql=preg_replace('/, $/', '', $sql); +$sql=preg_replace('/,\s*$/', '', $sql); $sql.= " FROM ".MAIN_DB_PREFIX.$object->table_element." as t"; -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."myobject_extrafields as ef on (t.rowid = ef.fk_object)"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (t.rowid = ef.fk_object)"; if ($object->ismultientitymanaged == 1) $sql.= " WHERE t.entity IN (".getEntity('emailsenderprofile').")"; else $sql.=" WHERE 1 = 1"; foreach($search as $key => $val) @@ -219,7 +220,8 @@ foreach($object->fields as $key => $val) $sql.='t.'.$key.', '; } // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.', ' : ''); // Add where from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListGroupBy',$parameters); // Note that $action and $object may have been modified by hook diff --git a/htdocs/asset/list.php b/htdocs/asset/list.php index 6c4e5e92f20..bd2d19bbc87 100644 --- a/htdocs/asset/list.php +++ b/htdocs/asset/list.php @@ -183,14 +183,15 @@ foreach($object->fields as $key => $val) $sql.='t.'.$key.', '; } // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.' as options_'.$key.', ' : ''); // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters, $object); // Note that $action and $object may have been modified by hook $sql.=$hookmanager->resPrint; -$sql=preg_replace('/, $/', '', $sql); +$sql=preg_replace('/,\s*$/', '', $sql); $sql.= " FROM ".MAIN_DB_PREFIX.$object->table_element." as t"; -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."assets_extrafields as ef on (t.rowid = ef.fk_object)"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (t.rowid = ef.fk_object)"; if ($object->ismultientitymanaged == 1) $sql.= " WHERE t.entity IN (".getEntity('assets').")"; else $sql.=" WHERE 1 = 1"; foreach($search as $key => $val) @@ -213,7 +214,8 @@ foreach($object->fields as $key => $val) $sql.='t.'.$key.', '; } // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.', ' : ''); // Add where from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListGroupBy',$parameters); // Note that $action and $object may have been modified by hook diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php index 75304d34eb2..39844ce390f 100644 --- a/htdocs/commande/list.php +++ b/htdocs/commande/list.php @@ -255,7 +255,8 @@ $sql.= ' c.date_creation as date_creation, c.tms as date_update, c.date_cloture $sql.= " p.rowid as project_id, p.ref as project_ref, p.title as project_label"; if ($search_categ_cus) $sql .= ", cc.fk_categorie, cc.fk_soc"; // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook diff --git a/htdocs/compta/bank/bankentries_list.php b/htdocs/compta/bank/bankentries_list.php index e0e0d77e89c..cd964c7f4f4 100644 --- a/htdocs/compta/bank/bankentries_list.php +++ b/htdocs/compta/bank/bankentries_list.php @@ -481,7 +481,7 @@ $sql.= " FROM "; if ($search_bid>0) $sql.= MAIN_DB_PREFIX."bank_class as l,"; $sql.= " ".MAIN_DB_PREFIX."bank_account as ba,"; $sql.= " ".MAIN_DB_PREFIX."bank as b"; -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."bank_extrafields as ef on (b.rowid = ef.fk_object)"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (b.rowid = ef.fk_object)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."bank_url as bu ON bu.fk_bank = b.rowid AND type = 'company'"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON bu.url_id = s.rowid"; $sql.= " WHERE b.fk_account = ba.rowid"; diff --git a/htdocs/compta/bank/list.php b/htdocs/compta/bank/list.php index 6f8ea3a286d..843b3b0e323 100644 --- a/htdocs/compta/bank/list.php +++ b/htdocs/compta/bank/list.php @@ -150,7 +150,7 @@ $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook $sql.=$hookmanager->resPrint; $sql.= " FROM ".MAIN_DB_PREFIX."bank_account as b"; -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."bank_account_extrafields as ef on (b.rowid = ef.fk_object)"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (b.rowid = ef.fk_object)"; $sql.= " WHERE b.entity IN (".getEntity('bank_account').")"; if ($search_status == 'opened') $sql.= " AND clos = 0"; if ($search_status == 'closed') $sql.= " AND clos = 1"; diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php index 9fc33015245..0fe0d00832b 100644 --- a/htdocs/compta/facture/list.php +++ b/htdocs/compta/facture/list.php @@ -397,7 +397,8 @@ $sql.= " p.rowid as project_id, p.ref as project_ref, p.title as project_label"; if (! $sall) $sql.= ', SUM(pf.amount) as dynamount_payed'; if ($search_categ_cus) $sql .= ", cc.fk_categorie, cc.fk_soc"; // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook @@ -409,7 +410,7 @@ $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as state on (state.rowid = s if (! empty($search_categ_cus)) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_societe as cc ON s.rowid = cc.fk_soc"; // We'll need this table joined to the select in order to filter by categ $sql.= ', '.MAIN_DB_PREFIX.'facture as f'; -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."facture_extrafields as ef on (f.rowid = ef.fk_object)"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (f.rowid = ef.fk_object)"; if (! $sall) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'paiement_facture as pf ON pf.fk_facture = f.rowid'; if ($sall || $search_product_category > 0) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'facturedet as pd ON f.rowid=pd.fk_facture'; if ($search_product_category > 0) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=pd.fk_product'; diff --git a/htdocs/contact/list.php b/htdocs/contact/list.php index 54bec571bd0..1eed9497619 100644 --- a/htdocs/contact/list.php +++ b/htdocs/contact/list.php @@ -282,7 +282,7 @@ $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook $sql.=$hookmanager->resPrint; $sql.= " FROM ".MAIN_DB_PREFIX."socpeople as p"; -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople_extrafields as ef on (p.rowid = ef.fk_object)"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (p.rowid = ef.fk_object)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as co ON co.rowid = p.fk_pays"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = p.fk_soc"; if (! empty($search_categ)) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_contact as cc ON p.rowid = cc.fk_socpeople"; // We need this table joined to the select in order to filter by categ diff --git a/htdocs/contrat/list.php b/htdocs/contrat/list.php index c6ef860176d..5d8a9f8521a 100644 --- a/htdocs/contrat/list.php +++ b/htdocs/contrat/list.php @@ -229,7 +229,7 @@ $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typ $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as state on (state.rowid = s.fk_departement)"; if ($search_sale > 0 || (! $user->rights->societe->client->voir && ! $socid)) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; $sql.= ", ".MAIN_DB_PREFIX."contrat as c"; -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."contrat_extrafields as ef on (c.rowid = ef.fk_object)"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (c.rowid = ef.fk_object)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."contratdet as cd ON c.rowid = cd.fk_contrat"; if ($search_product_category > 0) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=cd.fk_product'; if ($search_user > 0) @@ -265,7 +265,8 @@ $sql.= ' s.rowid, s.nom, s.email, s.town, s.zip, s.fk_pays, s.client, s.code_cli $sql.= " typent.code,"; $sql.= " state.code_departement, state.nom"; // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key : ''); // Add where from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListGroupBy', $parameters); // Note that $action and $object may have been modified by hook diff --git a/htdocs/contrat/services_list.php b/htdocs/contrat/services_list.php index a09b86be590..3e5b9f55c98 100644 --- a/htdocs/contrat/services_list.php +++ b/htdocs/contrat/services_list.php @@ -228,7 +228,7 @@ $sql.= " FROM ".MAIN_DB_PREFIX."contrat as c,"; $sql.= " ".MAIN_DB_PREFIX."societe as s,"; if (!$user->rights->societe->client->voir && !$socid) $sql .= " ".MAIN_DB_PREFIX."societe_commerciaux as sc,"; $sql.= " ".MAIN_DB_PREFIX."contratdet as cd"; -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."contratdet_extrafields as ef on (cd.rowid = ef.fk_object)"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (cd.rowid = ef.fk_object)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON cd.fk_product = p.rowid"; if ($search_product_category > 0) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=cd.fk_product'; $sql.= " WHERE c.entity = ".$conf->entity; diff --git a/htdocs/core/modules/stock/doc/pdf_stdmovement.modules.php b/htdocs/core/modules/stock/doc/pdf_stdmovement.modules.php index 6a924658f2c..2a5f797147e 100644 --- a/htdocs/core/modules/stock/doc/pdf_stdmovement.modules.php +++ b/htdocs/core/modules/stock/doc/pdf_stdmovement.modules.php @@ -183,13 +183,13 @@ class pdf_stdmovement extends ModelePDFMovement /** * Function to build a document on disk using the generic odt module. * - * @param Stock $object Object source to build document - * @param Translate $outputlangs Lang output object - * @param string $srctemplatepath Full path of source filename for generator using a template file - * @param int $hidedetails Do not show line details - * @param int $hidedesc Do not show desc - * @param int $hideref Do not show ref - * @return int 1 if OK, <=0 if KO + * @param StockMovements $object Object source to build document + * @param Translate $outputlangs Lang output object + * @param string $srctemplatepath Full path of source filename for generator using a template file + * @param int $hidedetails Do not show line details + * @param int $hidedesc Do not show desc + * @param int $hideref Do not show ref + * @return int 1 if OK, <=0 if KO */ public function write_file($object, $outputlangs, $srctemplatepath, $hidedetails = 0, $hidedesc = 0, $hideref = 0) { @@ -270,7 +270,7 @@ class pdf_stdmovement extends ModelePDFMovement $sql.= " FROM ".MAIN_DB_PREFIX."entrepot as e,"; $sql.= " ".MAIN_DB_PREFIX."product as p,"; $sql.= " ".MAIN_DB_PREFIX."stock_mouvement as m"; - if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."movement_extrafields as ef on (m.rowid = ef.fk_object)"; + if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (m.rowid = ef.fk_object)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u ON m.fk_user_author = u.rowid"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_lot as pl ON m.batch = pl.batch AND m.fk_product = pl.fk_product"; $sql.= " WHERE m.fk_product = p.rowid"; diff --git a/htdocs/expedition/list.php b/htdocs/expedition/list.php index 3547b6299a2..ebe0bcfd8df 100644 --- a/htdocs/expedition/list.php +++ b/htdocs/expedition/list.php @@ -198,7 +198,7 @@ $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook $sql.=$hookmanager->resPrint; $sql.= " FROM ".MAIN_DB_PREFIX."expedition as e"; -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."expedition_extrafields as ef on (e.rowid = ef.fk_object)"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (e.rowid = ef.fk_object)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = e.fk_soc"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s.fk_pays)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typent)"; diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php index 404a616f575..daadfa913ec 100644 --- a/htdocs/expensereport/list.php +++ b/htdocs/expensereport/list.php @@ -285,7 +285,7 @@ $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook $sql.=$hookmanager->resPrint; $sql.= " FROM ".MAIN_DB_PREFIX."expensereport as d"; -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."expensereport_extrafields as ef on (d.rowid = ef.fk_object)"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (d.rowid = ef.fk_object)"; $sql.= ", ".MAIN_DB_PREFIX."user as u"; $sql.= " WHERE d.fk_user_author = u.rowid AND d.entity IN (".getEntity('expensereport').")"; // Search all diff --git a/htdocs/fichinter/list.php b/htdocs/fichinter/list.php index 75020d57280..7160eb8152c 100644 --- a/htdocs/fichinter/list.php +++ b/htdocs/fichinter/list.php @@ -221,7 +221,7 @@ if (!empty($conf->projet->enabled)) { if (!empty($conf->contrat->enabled)) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."contrat as c on f.fk_contrat = c.rowid"; } -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."fichinter_extrafields as ef on (f.rowid = ef.fk_object)"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (f.rowid = ef.fk_object)"; if (empty($conf->global->FICHINTER_DISABLE_DETAILS) && $atleastonefieldinlines) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."fichinterdet as fd ON fd.fk_fichinter = f.rowid"; if (! $user->rights->societe->client->voir && empty($socid)) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; $sql.= ", ".MAIN_DB_PREFIX."societe as s"; diff --git a/htdocs/fourn/commande/list.php b/htdocs/fourn/commande/list.php index b45738c0a6b..14ac029bb27 100644 --- a/htdocs/fourn/commande/list.php +++ b/htdocs/fourn/commande/list.php @@ -502,7 +502,7 @@ $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s. $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typent)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as state on (state.rowid = s.fk_departement)"; $sql.= ", ".MAIN_DB_PREFIX."commande_fournisseur as cf"; -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."commande_fournisseur_extrafields as ef on (cf.rowid = ef.fk_object)"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (cf.rowid = ef.fk_object)"; if ($sall || $search_product_category > 0) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'commande_fournisseurdet as pd ON cf.rowid=pd.fk_commande'; if ($search_product_category > 0) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=pd.fk_product'; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u ON cf.fk_user_author = u.rowid"; diff --git a/htdocs/fourn/facture/list.php b/htdocs/fourn/facture/list.php index fc3da305a45..3dcc2880f34 100644 --- a/htdocs/fourn/facture/list.php +++ b/htdocs/fourn/facture/list.php @@ -287,7 +287,7 @@ $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s. $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typent)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as state on (state.rowid = s.fk_departement)"; $sql.= ', '.MAIN_DB_PREFIX.'facture_fourn as f'; -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."facture_fourn_extrafields as ef on (f.rowid = ef.fk_object)"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (f.rowid = ef.fk_object)"; if (! $search_all) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'paiementfourn_facturefourn as pf ON pf.fk_facturefourn = f.rowid'; if ($search_all || $search_product_category > 0) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'facture_fourn_det as pd ON f.rowid=pd.fk_facture_fourn'; if ($search_product_category > 0) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=pd.fk_product'; diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php index bd948a58453..1854cce2800 100644 --- a/htdocs/holiday/list.php +++ b/htdocs/holiday/list.php @@ -279,7 +279,7 @@ $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook $sql.=$hookmanager->resPrint; $sql.= " FROM ".MAIN_DB_PREFIX."holiday as cp"; -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."holiday_extrafields as ef on (cp.rowid = ef.fk_object)"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (cp.rowid = ef.fk_object)"; $sql.= ", ".MAIN_DB_PREFIX."user as uu, ".MAIN_DB_PREFIX."user as ua"; $sql.= " WHERE cp.entity IN (".getEntity('holiday').")"; $sql.= " AND cp.fk_user = uu.rowid AND cp.fk_validator = ua.rowid "; // Hack pour la recherche sur le tableau diff --git a/htdocs/modulebuilder/template/myobject_list.php b/htdocs/modulebuilder/template/myobject_list.php index 396ab0119f7..54885f8e380 100644 --- a/htdocs/modulebuilder/template/myobject_list.php +++ b/htdocs/modulebuilder/template/myobject_list.php @@ -258,7 +258,7 @@ if (! empty($extrafields->attributes[$object->table_element]['label'])) { $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListGroupBy',$parameters); // Note that $action and $object may have been modified by hook $sql.=$hookmanager->resPrint; -$sql=preg_replace('/, $/','', $sql); +$sql=preg_replace('/,\s*$/','', $sql); */ $sql.=$db->order($sortfield, $sortorder); diff --git a/htdocs/product/stock/movement_card.php b/htdocs/product/stock/movement_card.php index 41ef427077a..0278e1572e6 100644 --- a/htdocs/product/stock/movement_card.php +++ b/htdocs/product/stock/movement_card.php @@ -459,7 +459,7 @@ $sql.=$hookmanager->resPrint; $sql.= " FROM ".MAIN_DB_PREFIX."entrepot as e,"; $sql.= " ".MAIN_DB_PREFIX."product as p,"; $sql.= " ".MAIN_DB_PREFIX."stock_mouvement as m"; -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."movement_extrafields as ef on (m.rowid = ef.fk_object)"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (m.rowid = ef.fk_object)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u ON m.fk_user_author = u.rowid"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_lot as pl ON m.batch = pl.batch AND m.fk_product = pl.fk_product"; $sql.= " WHERE m.fk_product = p.rowid"; diff --git a/htdocs/product/stock/movement_list.php b/htdocs/product/stock/movement_list.php index 4caf32f912d..73b783e09b9 100644 --- a/htdocs/product/stock/movement_list.php +++ b/htdocs/product/stock/movement_list.php @@ -437,7 +437,7 @@ $sql.=$hookmanager->resPrint; $sql.= " FROM ".MAIN_DB_PREFIX."entrepot as e,"; $sql.= " ".MAIN_DB_PREFIX."product as p,"; $sql.= " ".MAIN_DB_PREFIX."stock_mouvement as m"; -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."movement_extrafields as ef on (m.rowid = ef.fk_object)"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (m.rowid = ef.fk_object)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u ON m.fk_user_author = u.rowid"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_lot as pl ON m.batch = pl.batch AND m.fk_product = pl.fk_product"; $sql.= " WHERE m.fk_product = p.rowid"; diff --git a/htdocs/product/stock/productlot_list.php b/htdocs/product/stock/productlot_list.php index 83a7faf740e..65453585e0f 100644 --- a/htdocs/product/stock/productlot_list.php +++ b/htdocs/product/stock/productlot_list.php @@ -219,7 +219,7 @@ $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook $sql.=$hookmanager->resPrint; $sql.= " FROM ".MAIN_DB_PREFIX."product_lot as t"; -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_lot_extrafields as ef on (t.rowid = ef.fk_object)"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (t.rowid = ef.fk_object)"; $sql.= ", ".MAIN_DB_PREFIX."product as p"; $sql.= " WHERE p.rowid = t.fk_product"; $sql.= " AND p.entity IN (".getEntity('product').")"; diff --git a/htdocs/projet/list.php b/htdocs/projet/list.php index c5dcc1a3003..59d727c5027 100644 --- a/htdocs/projet/list.php +++ b/htdocs/projet/list.php @@ -300,7 +300,7 @@ $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook $sql.=$hookmanager->resPrint; $sql.= " FROM ".MAIN_DB_PREFIX."projet as p"; -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."projet_extrafields as ef on (p.rowid = ef.fk_object)"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (p.rowid = ef.fk_object)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s on p.fk_soc = s.rowid"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_lead_status as cls on p.fk_opp_status = cls.rowid"; // We'll need this table joined to the select in order to filter by categ diff --git a/htdocs/projet/tasks/list.php b/htdocs/projet/tasks/list.php index 2a6b4e642cf..0b0a598167b 100644 --- a/htdocs/projet/tasks/list.php +++ b/htdocs/projet/tasks/list.php @@ -285,7 +285,7 @@ if (! empty($arrayfields['t.tobill']['checked']) || ! empty($arrayfields['t.bill { $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."projet_task_time as tt ON tt.fk_task = t.rowid"; } -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."projet_task_extrafields as ef on (t.rowid = ef.fk_object)"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (t.rowid = ef.fk_object)"; if ($search_project_user > 0) $sql.=", ".MAIN_DB_PREFIX."element_contact as ecp"; if ($search_task_user > 0) $sql.=", ".MAIN_DB_PREFIX."element_contact as ect"; $sql.= " WHERE t.fk_projet = p.rowid"; @@ -325,7 +325,9 @@ if (! empty($arrayfields['t.tobill']['checked']) || ! empty($arrayfields['t.bill $sql.=" t.datec, t.dateo, t.datee, t.tms,"; $sql.=" t.rowid, t.ref, t.label, t.planned_workload, t.duration_effective, t.progress, t.fk_statut"; if ($search_categ) $sql .= ", cs.fk_categorie, cs.fk_project"; - foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key : ''); + // Add fields from extrafields + if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key : ''); } $sql.= $db->order($sortfield, $sortorder); diff --git a/htdocs/reception/list.php b/htdocs/reception/list.php index 5272191b5cb..65fdf153dd4 100644 --- a/htdocs/reception/list.php +++ b/htdocs/reception/list.php @@ -433,7 +433,7 @@ $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook $sql.=$hookmanager->resPrint; $sql.= " FROM ".MAIN_DB_PREFIX."reception as e"; -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."reception_extrafields as ef on (e.rowid = ef.fk_object)"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (e.rowid = ef.fk_object)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = e.fk_soc"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s.fk_pays)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typent)"; diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php index 4d6415c46ef..e29edb07717 100644 --- a/htdocs/societe/list.php +++ b/htdocs/societe/list.php @@ -395,7 +395,7 @@ $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // $sql.=$hookmanager->resPrint; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s2 ON s.parent = s2.rowid"; -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_extrafields as ef on (s.rowid = ef.fk_object)"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (s.rowid = ef.fk_object)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s.fk_pays)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typent)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_effectif as staff on (staff.id = s.fk_effectif)"; diff --git a/htdocs/societe/website.php b/htdocs/societe/website.php index 48d500b3300..0e0c5ac2cc8 100644 --- a/htdocs/societe/website.php +++ b/htdocs/societe/website.php @@ -280,18 +280,19 @@ $reshook=$hookmanager->executeHooks('printFieldListWhere', $parameters, $objectw $sql.=$hookmanager->resPrint; /* If a group by is required - $sql.= " GROUP BY " - foreach($objectwebsiteaccount->fields as $key => $val) - { - $sql.='t.'.$key.', '; - } - // Add fields from extrafields - foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key : ''); - // Add where from hooks - $parameters=array(); - $reshook=$hookmanager->executeHooks('printFieldListGroupBy',$parameters); // Note that $action and $objectwebsiteaccount may have been modified by hook - $sql.=$hookmanager->resPrint; - */ +$sql.= " GROUP BY " +foreach($objectwebsiteaccount->fields as $key => $val) +{ + $sql.='t.'.$key.', '; +} +// Add fields from extrafields +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.', ' : ''); +// Add where from hooks +$parameters=array(); +$reshook=$hookmanager->executeHooks('printFieldListGroupBy',$parameters); // Note that $action and $objectwebsiteaccount may have been modified by hook +$sql.=$hookmanager->resPrint; +*/ $sql.=$db->order($sortfield, $sortorder); diff --git a/htdocs/supplier_proposal/list.php b/htdocs/supplier_proposal/list.php index 5bd9d7914e0..f36013b289c 100644 --- a/htdocs/supplier_proposal/list.php +++ b/htdocs/supplier_proposal/list.php @@ -260,7 +260,7 @@ $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s. $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typent)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as state on (state.rowid = s.fk_departement)"; $sql.= ', '.MAIN_DB_PREFIX.'supplier_proposal as sp'; -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."supplier_proposal_extrafields as ef on (sp.rowid = ef.fk_object)"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (sp.rowid = ef.fk_object)"; if ($sall || $search_product_category > 0) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'supplier_proposaldet as pd ON sp.rowid=pd.fk_supplier_proposal'; if ($search_product_category > 0) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=pd.fk_product'; $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'user as u ON sp.fk_user_author = u.rowid'; diff --git a/htdocs/user/list.php b/htdocs/user/list.php index 1847cb0037c..d65d852294f 100644 --- a/htdocs/user/list.php +++ b/htdocs/user/list.php @@ -204,7 +204,7 @@ $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook $sql.=$hookmanager->resPrint; $sql.= " FROM ".MAIN_DB_PREFIX."user as u"; -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user_extrafields as ef on (u.rowid = ef.fk_object)"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (u.rowid = ef.fk_object)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON u.fk_soc = s.rowid"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u2 ON u.fk_user = u2.rowid"; if (! empty($search_categ) || ! empty($catid)) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_user as cu ON u.rowid = cu.fk_user"; // We'll need this table joined to the select in order to filter by categ From b67cc207f15ce0f2c3b5d51acd66d7e2d777d5ca Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 09:51:27 +0200 Subject: [PATCH 202/484] Removed ccampbell library --- composer.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index 89688ec3fd5..cdfccc375f9 100644 --- a/composer.json +++ b/composer.json @@ -26,7 +26,6 @@ "require" : { "php" : ">=5.3.0", "ext-curl" : "*", - "ccampbell/chromephp" : "4.1.0", "ckeditor/ckeditor" : "4.6.2", "mike42/escpos-php" : "1.2.1", "mobiledetect/mobiledetectlib" : "2.8.17", @@ -34,7 +33,7 @@ "restler/framework" : "3.0.0-RC6", "tecnickcom/tcpdf" : "^6.2", "atgp/factur-x" : "^1.0", - "luracast/restler": "^3.0" + "luracast/restler" : "^3.0" }, "require-dev" : { "jakub-onderka/php-parallel-lint" : "^0", @@ -59,4 +58,4 @@ "ext-xml" : "Excel support", "firephp/firephp-core" : "Logging to Firebug console support" } -} +} \ No newline at end of file From 44025ce4c237162f1df7f474cf696c2032e6d7f2 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 09:58:47 +0200 Subject: [PATCH 203/484] Update TCPDF to 6.3.2 --- COPYRIGHT | 2 +- dev/dolibarr_changes.txt | 2 +- htdocs/includes/tecnickcom/tcpdf/LICENSE.TXT | 8 +- htdocs/includes/tecnickcom/tcpdf/README.md | 6 +- htdocs/includes/tecnickcom/tcpdf/VERSION | 1 + .../includes/tecnickcom/tcpdf/composer.json | 91 ++++++------ .../tecnickcom/tcpdf/config/tcpdf_config.php | 4 +- .../tcpdf/fonts/ae_fonts_2.0/README | 2 +- .../tcpdf/fonts/freefont-20100919/COPYING | 6 +- .../tcpdf/fonts/freefont-20120503/COPYING | 6 +- .../tcpdf/fonts/freefont-20120503/README | 4 +- .../fonts/freefont-20120503/TROUBLESHOOTING | 2 +- .../tcpdf/include/barcodes/datamatrix.php | 4 +- .../tcpdf/include/barcodes/pdf417.php | 4 +- .../tcpdf/include/barcodes/qrcode.php | 5 +- .../tecnickcom/tcpdf/include/tcpdf_colors.php | 6 +- .../tcpdf/include/tcpdf_filters.php | 8 +- .../tcpdf/include/tcpdf_font_data.php | 4 +- .../tecnickcom/tcpdf/include/tcpdf_fonts.php | 5 +- .../tecnickcom/tcpdf/include/tcpdf_images.php | 4 +- .../tecnickcom/tcpdf/include/tcpdf_static.php | 20 +-- htdocs/includes/tecnickcom/tcpdf/tcpdf.php | 135 +++++++++++++----- .../tecnickcom/tcpdf/tcpdf_autoconfig.php | 2 +- .../tecnickcom/tcpdf/tcpdf_barcodes_1d.php | 114 +++++++-------- .../tecnickcom/tcpdf/tcpdf_barcodes_2d.php | 4 +- .../tecnickcom/tcpdf/tcpdf_import.php | 2 +- .../tecnickcom/tcpdf/tcpdf_parser.php | 6 +- 27 files changed, 259 insertions(+), 198 deletions(-) create mode 100644 htdocs/includes/tecnickcom/tcpdf/VERSION diff --git a/COPYRIGHT b/COPYRIGHT index 8035f7fbb56..594bec493b5 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -33,7 +33,7 @@ Restler 3.0.0RC6 LGPL-3+ Yes Sabre 3.2.2 BSD Yes DAV support Swift Mailer 5.4.2-DEV MIT license Yes Comprehensive mailing tools for PHP Stripe 6.41 MIT licence Yes Library for Stripe module -TCPDF 6.2.25 LGPL-3+ Yes PDF generation +TCPDF 6.3.2 LGPL-3+ Yes PDF generation TCPDI 1.0.0 LGPL-3+ / Apache 2.0 Yes FPDI replacement JS libraries: diff --git a/dev/dolibarr_changes.txt b/dev/dolibarr_changes.txt index e87b082dd06..35a2d6f6418 100644 --- a/dev/dolibarr_changes.txt +++ b/dev/dolibarr_changes.txt @@ -67,7 +67,7 @@ define('QR_FIND_FROM_RANDOM', false); zapfdingbats.php (for special chars like form checkboxes) * Optionnaly, made freemono the default monotype font if we removed courier -In htdocs/includes/tcpdf/tcpdf.php +In htdocs/includes/tecnickcom/tcpdf/tcpdf.php - protected $default_monospaced_font = 'courier'; + protected $default_monospaced_font = 'freemono'; diff --git a/htdocs/includes/tecnickcom/tcpdf/LICENSE.TXT b/htdocs/includes/tecnickcom/tcpdf/LICENSE.TXT index b7635c03a80..49147d01a71 100644 --- a/htdocs/includes/tecnickcom/tcpdf/LICENSE.TXT +++ b/htdocs/includes/tecnickcom/tcpdf/LICENSE.TXT @@ -6,6 +6,8 @@ under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + + 2002-2019 Nicola Asuni - Tecnick.com LTD ********************************************************************** ********************************************************************** @@ -826,7 +828,7 @@ the "copyright" line and a pointer to where the full notice is found. GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . + along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. @@ -845,14 +847,14 @@ might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see -. +. The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read -. +. ********************************************************************** ********************************************************************** diff --git a/htdocs/includes/tecnickcom/tcpdf/README.md b/htdocs/includes/tecnickcom/tcpdf/README.md index a7c7f2d9580..734b9879faa 100644 --- a/htdocs/includes/tecnickcom/tcpdf/README.md +++ b/htdocs/includes/tecnickcom/tcpdf/README.md @@ -6,8 +6,8 @@ * **category** Library * **author** Nicola Asuni -* **copyright** 2002-2018 Nicola Asuni - Tecnick.com LTD -* **license** https://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE.TXT) +* **copyright** 2002-2019 Nicola Asuni - Tecnick.com LTD +* **license** http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE.TXT) * **link** http://www.tcpdf.org * **source** https://github.com/tecnickcom/TCPDF @@ -64,7 +64,7 @@ All the original binary TTF font files have been renamed for compatibility with The binary files (.z) that begins with the prefix "free" have been extracted from the GNU FreeFont collection (GNU-GPLv3). The binary files (.z) that begins with the prefix "pdfa" have been derived from the GNU FreeFont, so they are subject to the same license. For the details of Copyright, License and other information, please check the files inside the directory fonts/freefont-20120503 -Link : https://www.gnu.org/software/freefont/ +Link : http://www.gnu.org/software/freefont/ The binary files (.z) that begins with the prefix "dejavu" have been extracted from the DejaVu fonts 2.33 (Bitstream) collection. For the details of Copyright, License and other information, please check the files inside the directory fonts/dejavu-fonts-ttf-2.33 diff --git a/htdocs/includes/tecnickcom/tcpdf/VERSION b/htdocs/includes/tecnickcom/tcpdf/VERSION new file mode 100644 index 00000000000..91e4a9f2622 --- /dev/null +++ b/htdocs/includes/tecnickcom/tcpdf/VERSION @@ -0,0 +1 @@ +6.3.2 diff --git a/htdocs/includes/tecnickcom/tcpdf/composer.json b/htdocs/includes/tecnickcom/tcpdf/composer.json index 47fd50d1573..70416fd3513 100644 --- a/htdocs/includes/tecnickcom/tcpdf/composer.json +++ b/htdocs/includes/tecnickcom/tcpdf/composer.json @@ -1,46 +1,47 @@ { - "name" : "tecnickcom/tcpdf", - "version" : "6.2.26", - "homepage" : "http://www.tcpdf.org/", - "type" : "library", - "description" : "TCPDF is a PHP class for generating PDF documents and barcodes.", - "keywords" : [ - "PDF", - "tcpdf", - "PDFD32000-2008", - "qrcode", - "datamatrix", - "pdf417", - "barcodes" - ], - "license" : "LGPL-3.0", - "authors" : [{ - "name" : "Nicola Asuni", - "email" : "info@tecnick.com", - "role" : "lead" - } - ], - "require" : { - "php" : ">=5.3.0" - }, - "autoload" : { - "classmap" : [ - "config", - "include", - "tcpdf.php", - "tcpdf_parser.php", - "tcpdf_import.php", - "tcpdf_barcodes_1d.php", - "tcpdf_barcodes_2d.php", - "include/tcpdf_colors.php", - "include/tcpdf_filters.php", - "include/tcpdf_font_data.php", - "include/tcpdf_fonts.php", - "include/tcpdf_images.php", - "include/tcpdf_static.php", - "include/barcodes/datamatrix.php", - "include/barcodes/pdf417.php", - "include/barcodes/qrcode.php" - ] - } -} \ No newline at end of file + "name": "tecnickcom/tcpdf", + "version": "6.3.2", + "homepage": "http://www.tcpdf.org/", + "type": "library", + "description": "TCPDF is a PHP class for generating PDF documents and barcodes.", + "keywords": [ + "PDF", + "tcpdf", + "PDFD32000-2008", + "qrcode", + "datamatrix", + "pdf417", + "barcodes" + ], + "license": "LGPL-3.0", + "authors": [ + { + "name": "Nicola Asuni", + "email": "info@tecnick.com", + "role": "lead" + } + ], + "require": { + "php": ">=5.3.0" + }, + "autoload": { + "classmap": [ + "config", + "include", + "tcpdf.php", + "tcpdf_parser.php", + "tcpdf_import.php", + "tcpdf_barcodes_1d.php", + "tcpdf_barcodes_2d.php", + "include/tcpdf_colors.php", + "include/tcpdf_filters.php", + "include/tcpdf_font_data.php", + "include/tcpdf_fonts.php", + "include/tcpdf_images.php", + "include/tcpdf_static.php", + "include/barcodes/datamatrix.php", + "include/barcodes/pdf417.php", + "include/barcodes/qrcode.php" + ] + } +} diff --git a/htdocs/includes/tecnickcom/tcpdf/config/tcpdf_config.php b/htdocs/includes/tecnickcom/tcpdf/config/tcpdf_config.php index ee4ab099066..92317b121ef 100644 --- a/htdocs/includes/tecnickcom/tcpdf/config/tcpdf_config.php +++ b/htdocs/includes/tecnickcom/tcpdf/config/tcpdf_config.php @@ -6,7 +6,7 @@ // // Description : Configuration file for TCPDF. // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- // Copyright (C) 2004-2014 Nicola Asuni - Tecnick.com LTD // @@ -23,7 +23,7 @@ // See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. //============================================================+ diff --git a/htdocs/includes/tecnickcom/tcpdf/fonts/ae_fonts_2.0/README b/htdocs/includes/tecnickcom/tcpdf/fonts/ae_fonts_2.0/README index cb1e53a055f..b517cc85283 100644 --- a/htdocs/includes/tecnickcom/tcpdf/fonts/ae_fonts_2.0/README +++ b/htdocs/includes/tecnickcom/tcpdf/fonts/ae_fonts_2.0/README @@ -30,7 +30,7 @@ www.nongnu.org/freefont (Copyleft 2002, 2003, 2005 Free Software Foundation). These fonts are subject to the GNU GENERAL PUBLIC (GPL) LICENSE (Version 2). -See COPYING for details or https://www.gnu.org/copyleft/gpl.html +See COPYING for details or http://www.gnu.org/copyleft/gpl.html As a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the diff --git a/htdocs/includes/tecnickcom/tcpdf/fonts/freefont-20100919/COPYING b/htdocs/includes/tecnickcom/tcpdf/fonts/freefont-20100919/COPYING index 2a000655e93..94a9ed024d3 100644 --- a/htdocs/includes/tecnickcom/tcpdf/fonts/freefont-20100919/COPYING +++ b/htdocs/includes/tecnickcom/tcpdf/fonts/freefont-20100919/COPYING @@ -645,7 +645,7 @@ the "copyright" line and a pointer to where the full notice is found. GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . + along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. @@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see -. +. The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read -. +. diff --git a/htdocs/includes/tecnickcom/tcpdf/fonts/freefont-20120503/COPYING b/htdocs/includes/tecnickcom/tcpdf/fonts/freefont-20120503/COPYING index 2a000655e93..94a9ed024d3 100644 --- a/htdocs/includes/tecnickcom/tcpdf/fonts/freefont-20120503/COPYING +++ b/htdocs/includes/tecnickcom/tcpdf/fonts/freefont-20120503/COPYING @@ -645,7 +645,7 @@ the "copyright" line and a pointer to where the full notice is found. GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . + along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. @@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see -. +. The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read -. +. diff --git a/htdocs/includes/tecnickcom/tcpdf/fonts/freefont-20120503/README b/htdocs/includes/tecnickcom/tcpdf/fonts/freefont-20120503/README index daf679e67c3..d83f4a945c2 100644 --- a/htdocs/includes/tecnickcom/tcpdf/fonts/freefont-20120503/README +++ b/htdocs/includes/tecnickcom/tcpdf/fonts/freefont-20120503/README @@ -30,7 +30,7 @@ FreeFont covers the following character ranges * geometrical shapes, box drawing * musical symbols, gaming symbols, miscellaneous symbols etc. -For more detail see +For more detail see Editing ------- @@ -108,7 +108,7 @@ Further information ------------------- Home page of GNU FreeFont: - https://www.gnu.org/software/freefont/ + http://www.gnu.org/software/freefont/ More information is at the main project page of Free UCS scalable fonts: http://savannah.gnu.org/projects/freefont/ diff --git a/htdocs/includes/tecnickcom/tcpdf/fonts/freefont-20120503/TROUBLESHOOTING b/htdocs/includes/tecnickcom/tcpdf/fonts/freefont-20120503/TROUBLESHOOTING index 0639198ac95..a7af2225554 100644 --- a/htdocs/includes/tecnickcom/tcpdf/fonts/freefont-20120503/TROUBLESHOOTING +++ b/htdocs/includes/tecnickcom/tcpdf/fonts/freefont-20120503/TROUBLESHOOTING @@ -27,7 +27,7 @@ a different font. First double-check that the font in question really contains the character in question. If you don't have font development software, this can be tricky. In the case of FreeFont, you can check if a given character -range is supported: +range is supported: Next double-check that your application (web browser, text editor, etc) has indeed been properly instructed to use the font. diff --git a/htdocs/includes/tecnickcom/tcpdf/include/barcodes/datamatrix.php b/htdocs/includes/tecnickcom/tcpdf/include/barcodes/datamatrix.php index 071b19a794a..19b46fadaf1 100644 --- a/htdocs/includes/tecnickcom/tcpdf/include/barcodes/datamatrix.php +++ b/htdocs/includes/tecnickcom/tcpdf/include/barcodes/datamatrix.php @@ -5,7 +5,7 @@ // Begin : 2010-06-07 // Last Update : 2014-05-06 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- // Copyright (C) 2010-2014 Nicola Asuni - Tecnick.com LTD // @@ -22,7 +22,7 @@ // See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- diff --git a/htdocs/includes/tecnickcom/tcpdf/include/barcodes/pdf417.php b/htdocs/includes/tecnickcom/tcpdf/include/barcodes/pdf417.php index 56110c2a7cb..3b1774eaae4 100644 --- a/htdocs/includes/tecnickcom/tcpdf/include/barcodes/pdf417.php +++ b/htdocs/includes/tecnickcom/tcpdf/include/barcodes/pdf417.php @@ -5,7 +5,7 @@ // Begin : 2010-06-03 // Last Update : 2014-04-25 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- // Copyright (C) 2010-2013 Nicola Asuni - Tecnick.com LTD // @@ -22,7 +22,7 @@ // See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- diff --git a/htdocs/includes/tecnickcom/tcpdf/include/barcodes/qrcode.php b/htdocs/includes/tecnickcom/tcpdf/include/barcodes/qrcode.php index 2753a81b37e..c99d3ed31ab 100644 --- a/htdocs/includes/tecnickcom/tcpdf/include/barcodes/qrcode.php +++ b/htdocs/includes/tecnickcom/tcpdf/include/barcodes/qrcode.php @@ -5,7 +5,7 @@ // Begin : 2010-03-22 // Last Update : 2012-07-25 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- // Copyright (C) 2010-2012 Nicola Asuni - Tecnick.com LTD // @@ -22,7 +22,7 @@ // See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- @@ -236,7 +236,6 @@ if (!defined('QRCODEDEFS')) { /** * if false, checks all masks available, otherwise value tells count of masks need to be checked, mask id are got randomly */ - // @CHANGE LDR define('QR_FIND_FROM_RANDOM', false); /** diff --git a/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_colors.php b/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_colors.php index ec2ddf00069..27fb7afd192 100644 --- a/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_colors.php +++ b/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_colors.php @@ -5,7 +5,7 @@ // Begin : 2002-04-09 // Last Update : 2014-04-25 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- // Copyright (C) 2002-2013 Nicola Asuni - Tecnick.com LTD // @@ -22,7 +22,7 @@ // See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- @@ -358,7 +358,7 @@ class TCPDF_COLORS { $color_code = self::$webcolor[$color]; } else { // spot color - $returncolor = self::getSpotColor($color, $spotc); + $returncolor = self::getSpotColor($hcolor, $spotc); if ($returncolor === false) { $returncolor = $defcol; } diff --git a/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_filters.php b/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_filters.php index fdb6aac7afd..3bb89c092ad 100644 --- a/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_filters.php +++ b/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_filters.php @@ -5,7 +5,7 @@ // Begin : 2011-05-23 // Last Update : 2014-04-25 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- // Copyright (C) 2011-2013 Nicola Asuni - Tecnick.com LTD // @@ -279,7 +279,7 @@ class TCPDF_FILTERS { // convert string to binary string $bitstring = ''; for ($i = 0; $i < $data_length; ++$i) { - $bitstring .= sprintf('%08b', ord($data{$i})); + $bitstring .= sprintf('%08b', ord($data[$i])); } // get the number of bits $data_length = strlen($bitstring); @@ -376,7 +376,7 @@ class TCPDF_FILTERS { $i = 0; while($i < $data_length) { // get current byte value - $byte = ord($data{$i}); + $byte = ord($data[$i]); if ($byte == 128) { // a length value of 128 denote EOD break; @@ -389,7 +389,7 @@ class TCPDF_FILTERS { } else { // if length is in the range 129 to 255, // the following single byte shall be copied 257 - length (2 to 128) times during decompression - $decoded .= str_repeat($data{($i + 1)}, (257 - $byte)); + $decoded .= str_repeat($data[($i + 1)], (257 - $byte)); // move to next block $i += 2; } diff --git a/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_font_data.php b/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_font_data.php index 2e259c58bbf..974e72ec72b 100644 --- a/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_font_data.php +++ b/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_font_data.php @@ -5,7 +5,7 @@ // Begin : 2008-01-01 // Last Update : 2013-04-01 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- // Copyright (C) 2008-2013 Nicola Asuni - Tecnick.com LTD // @@ -22,7 +22,7 @@ // See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- diff --git a/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_fonts.php b/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_fonts.php index 340015d1aaa..218fb6df1e5 100644 --- a/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_fonts.php +++ b/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_fonts.php @@ -5,7 +5,7 @@ // Begin : 2008-01-01 // Last Update : 2014-12-10 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- // Copyright (C) 2008-2014 Nicola Asuni - Tecnick.com LTD // @@ -22,7 +22,7 @@ // See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- @@ -1664,6 +1664,7 @@ class TCPDF_FONTS { * @public static */ public static function unichr($c, $unicode=true) { + $c = intval($c); if (!$unicode) { return chr($c); } elseif ($c <= 0x7F) { diff --git a/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_images.php b/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_images.php index e2b6389a848..5e504f2101c 100644 --- a/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_images.php +++ b/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_images.php @@ -5,7 +5,7 @@ // Begin : 2002-08-03 // Last Update : 2014-11-15 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- // Copyright (C) 2002-2014 Nicola Asuni - Tecnick.com LTD // @@ -311,7 +311,7 @@ class TCPDF_IMAGES { if ($n > 0) { $trns = array(); for ($i = 0; $i < $n; ++ $i) { - $trns[] = ord($t{$i}); + $trns[] = ord($t[$i]); } } } diff --git a/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_static.php b/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_static.php index 216f6603ee4..7d2c1f54a3d 100644 --- a/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_static.php +++ b/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_static.php @@ -5,7 +5,7 @@ // Begin : 2002-08-03 // Last Update : 2015-04-28 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- // Copyright (C) 2002-2015 Nicola Asuni - Tecnick.com LTD // @@ -55,7 +55,7 @@ class TCPDF_STATIC { * Current TCPDF version. * @private static */ - private static $tcpdf_version = '6.2.26'; + private static $tcpdf_version = '6.3.2'; /** * String alias for total number of pages. @@ -1808,8 +1808,8 @@ class TCPDF_STATIC { /** * Wrapper to use fopen only with local files * @param filename (string) Name of the file to open - * @param $mode (string) - * @return Returns a file pointer resource on success, or FALSE on error. + * @param $mode (string) + * @return Returns a file pointer resource on success, or FALSE on error. * @public static */ public static function fopenLocal($filename, $mode) { @@ -1850,8 +1850,8 @@ class TCPDF_STATIC { * Wrapper for file_exists. * Checks whether a file or directory exists. * Only allows some protocols and local files. - * @param filename (string) Path to the file or directory. - * @return Returns TRUE if the file or directory specified by filename exists; FALSE otherwise. + * @param filename (string) Path to the file or directory. + * @return Returns TRUE if the file or directory specified by filename exists; FALSE otherwise. * @public static */ public static function file_exists($filename) { @@ -1868,7 +1868,7 @@ class TCPDF_STATIC { * Reads entire file into a string. * The file can be also an URL. * @param $file (string) Name of the file or URL to read. - * @return The function returns the read data or FALSE on failure. + * @return The function returns the read data or FALSE on failure. * @author Nicola Asuni * @since 6.0.025 * @public static @@ -1926,10 +1926,10 @@ class TCPDF_STATIC { $alt = array_unique($alt); foreach ($alt as $path) { if (!self::file_exists($path)) { - return false; + continue; } $ret = @file_get_contents($path); - if ($ret !== false) { + if ( $ret != false ) { return $ret; } // try to use CURL for URLs @@ -2098,7 +2098,7 @@ class TCPDF_STATIC { return $a['i']; } - + /** * Array of page formats * measures are calculated in this way: (inches * 72) or (millimeters * 72 / 25.4) diff --git a/htdocs/includes/tecnickcom/tcpdf/tcpdf.php b/htdocs/includes/tecnickcom/tcpdf/tcpdf.php index a9fe1509566..6c5779c789f 100644 --- a/htdocs/includes/tecnickcom/tcpdf/tcpdf.php +++ b/htdocs/includes/tecnickcom/tcpdf/tcpdf.php @@ -1,13 +1,13 @@ font subsetting; *
  • methods to publish some XHTML + CSS code, Javascript and Forms;
  • *
  • images, graphic (geometric figures) and transformation methods; - *
  • supports JPEG, PNG and SVG images natively, all images supported by GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) and all images supported via ImagMagick (http://www.imagemagick.org/www/formats.html)
  • + *
  • supports JPEG, PNG and SVG images natively, all images supported by GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) and all images supported via ImageMagick (http://www.imagemagick.org/www/formats.html)
  • *
  • 1D and 2D barcodes: CODE 39, ANSI MH10.8M-1983, USD-3, 3 of 9, CODE 93, USS-93, Standard 2 of 5, Interleaved 2 of 5, CODE 128 A/B/C, 2 and 5 Digits UPC-Based Extension, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANET, RMS4CC (Royal Mail 4-state Customer Code), CBC (Customer Bar Code), KIX (Klant index - Customer index), Intelligent Mail Barcode, Onecode, USPS-B-3200, CODABAR, CODE 11, PHARMACODE, PHARMACODE TWO-TRACKS, Datamatrix, QR-Code, PDF417;
  • *
  • JPEG and PNG ICC profiles, Grayscale, RGB, CMYK, Spot Colors and Transparencies;
  • *
  • automatic page header and footer management;
  • @@ -104,7 +104,7 @@ * Tools to encode your unicode fonts are on fonts/utils directory.

    * @package com.tecnick.tcpdf * @author Nicola Asuni - * @version 6.2.26 + * @version 6.3.2 */ // TCPDF configuration @@ -128,7 +128,7 @@ require_once(dirname(__FILE__).'/include/tcpdf_static.php'); * TCPDF project (http://www.tcpdf.org) has been originally derived in 2002 from the Public Domain FPDF class by Olivier Plathey (http://www.fpdf.org), but now is almost entirely rewritten.
    * @package com.tecnick.tcpdf * @brief PHP class for generating PDF documents without requiring external extensions. - * @version 6.2.26 + * @version 6.3.2 * @author Nicola Asuni - info@tecnick.com * @IgnoreAnnotation("protected") * @IgnoreAnnotation("public") @@ -1219,7 +1219,7 @@ class TCPDF { * @protected * @since 4.5.025 (2009-03-10) */ - protected $default_monospaced_font = 'courier'; + protected $default_monospaced_font = 'freemono'; /** * Cloned copy of the current class object. @@ -1760,6 +1760,13 @@ class TCPDF { */ protected $pdfa_mode = false; + /** + * version of PDF/A mode (1 - 3). + * @protected + * @since 6.2.26 (2019-03-12) + */ + protected $pdfa_version = 1; + /** * Document creation date-time * @protected @@ -1781,6 +1788,13 @@ class TCPDF { */ protected $custom_xmp = ''; + /** + * Custom XMP RDF data. + * @protected + * @since 6.3.0 (2019-09-19) + */ + protected $custom_xmp_rdf = ''; + /** * Overprint mode array. * (Check the "Entries in a Graphics State Parameter Dictionary" on PDF 32000-1:2008). @@ -1834,7 +1848,7 @@ class TCPDF { * @param $unicode (boolean) TRUE means that the input text is unicode (default = true) * @param $encoding (string) Charset encoding (used only when converting back html entities); default is UTF-8. * @param $diskcache (boolean) DEPRECATED FEATURE - * @param $pdfa (boolean) If TRUE set the document to PDF/A mode. + * @param $pdfa (integer) If not false, set the document to PDF/A mode and the good version (1 or 3). * @public * @see getPageSizeFromFormat(), setPageFormat() */ @@ -1850,8 +1864,14 @@ class TCPDF { $this->font_obj_ids = array(); $this->page_obj_id = array(); $this->form_obj_id = array(); + // set pdf/a mode - $this->pdfa_mode = $pdfa; + if ($pdfa != false) { + $this->pdfa_mode = true; + $this->pdfa_version = $pdfa; // 1 or 3 + } else + $this->pdfa_mode = false; + $this->force_srgb = false; // set language direction $this->rtl = false; @@ -1960,7 +1980,7 @@ class TCPDF { // set default JPEG quality $this->jpeg_quality = 75; // initialize some settings - TCPDF_FONTS::utf8Bidi(array(''), '', false, $this->isunicode, $this->CurrentFont); + TCPDF_FONTS::utf8Bidi(array(), '', false, $this->isunicode, $this->CurrentFont); // set default font $this->SetFont($this->FontFamily, $this->FontStyle, $this->FontSizePt); $this->setHeaderFont(array($this->FontFamily, $this->FontStyle, $this->FontSizePt)); @@ -1986,6 +2006,7 @@ class TCPDF { $this->default_graphic_vars = $this->getGraphicVars(); $this->header_xobj_autoreset = false; $this->custom_xmp = ''; + $this->custom_xmp_rdf = ''; // Call cleanup method after script execution finishes or exit() is called. // NOTE: This will not be executed if the process is killed with a SIGTERM or SIGKILL signal. register_shutdown_function(array($this, '_destroy'), true); @@ -2828,10 +2849,13 @@ class TCPDF { * @since 1.4 */ public function SetCompression($compress=true) { + $this->compress = false; if (function_exists('gzcompress')) { - $this->compress = $compress ? true : false; - } else { - $this->compress = false; + if ($compress) { + if ( !$this->pdfa_mode) { + $this->compress = true; + } + } } } @@ -4807,7 +4831,7 @@ class TCPDF { $this->PageAnnots[$page] = array(); } $this->PageAnnots[$page][] = array('n' => ++$this->n, 'x' => $x, 'y' => $y, 'w' => $w, 'h' => $h, 'txt' => $text, 'opt' => $opt, 'numspaces' => $spaces); - if (!$this->pdfa_mode) { + if (!$this->pdfa_mode || ($this->pdfa_mode && $this->pdfa_version == 3)) { if ((($opt['Subtype'] == 'FileAttachment') OR ($opt['Subtype'] == 'Sound')) AND (!TCPDF_STATIC::empty_string($opt['FS'])) AND (@TCPDF_STATIC::file_exists($opt['FS']) OR TCPDF_STATIC::isValidURL($opt['FS'])) AND (!isset($this->embeddedfiles[basename($opt['FS'])]))) { @@ -4833,8 +4857,8 @@ class TCPDF { * @see Annotation() */ protected function _putEmbeddedFiles() { - if ($this->pdfa_mode) { - // embedded files are not allowed in PDF/A mode + if ($this->pdfa_mode && $this->pdfa_version != 3) { + // embedded files are not allowed in PDF/A mode version 1 and 2 return; } reset($this->embeddedfiles); @@ -4847,7 +4871,10 @@ class TCPDF { $this->efnames[$filename] = $filedata['f'].' 0 R'; // embedded file specification object $out = $this->_getobj($filedata['f'])."\n"; - $out .= '<_datastring($filename, $filedata['f']).' /EF <> >>'; + $out .= '<_datastring($filename, $filedata['f']); + $out .= ' /UF '.$this->_datastring($filename, $filedata['f']); + $out .= ' /AFRelationship /Source'; + $out .= ' /EF <> >>'; $out .= "\n".'endobj'; $this->_out($out); // embedded file object @@ -4856,6 +4883,11 @@ class TCPDF { $data = gzcompress($data); $filter = ' /Filter /FlateDecode'; } + + if ($this->pdfa_version == 3) { + $filter = ' /Subtype /text#2Fxml'; + } + $stream = $this->_getrawstream($data, $filedata['n']); $out = $this->_getobj($filedata['n'])."\n"; $out .= '<< /Type /EmbeddedFile'.$filter.' /Length '.strlen($stream).' /Params <> >>'; @@ -6219,12 +6251,12 @@ class TCPDF { * $this->setPage($page); * if ($page == $start_page) { * // first page - * $height = $this->h - $start_y - $this->bMargin; + * $height += $this->h - $start_y - $this->bMargin; * } elseif ($page == $end_page) { * // last page - * $height = $end_y - $this->tMargin; + * $height += $end_y - $this->tMargin; * } else { - * $height = $this->h - $this->tMargin - $this->bMargin; + * $height += $this->h - $this->tMargin - $this->bMargin; * } * } * } @@ -7737,6 +7769,7 @@ class TCPDF { return ''; } + protected static $cleaned_ids = array(); /** * Unset all class variables except the following critical variables. * @param $destroyall (boolean) if true destroys all class variables, otherwise preserves critical variables. @@ -7749,11 +7782,24 @@ class TCPDF { if (isset($this->internal_encoding) AND !empty($this->internal_encoding)) { mb_internal_encoding($this->internal_encoding); } + if (isset(self::$cleaned_ids[$this->file_id])) { + $destroyall = false; + } if ($destroyall AND !$preserve_objcopy) { + self::$cleaned_ids[$this->file_id] = true; // remove all temporary files - $tmpfiles = glob(K_PATH_CACHE.'__tcpdf_'.$this->file_id.'_*'); - if (!empty($tmpfiles)) { - array_map('unlink', $tmpfiles); + if ($handle = opendir(K_PATH_CACHE)) { + while ( false !== ( $file_name = readdir( $handle ) ) ) { + if (strpos($file_name, '__tcpdf_'.$this->file_id.'_') === 0) { + unlink(K_PATH_CACHE.$file_name); + } + } + closedir($handle); + } + if (isset($this->imagekeys)) { + foreach($this->imagekeys as $file) { + unlink($file); + } } } $preserve = array( @@ -8368,7 +8414,7 @@ class TCPDF { if (is_string($pl['txt']) && !empty($pl['txt'])) { if ($pl['txt'][0] == '#') { // internal destination - $annots .= ' /Dest /'.TCPDF_STATIC::encodeNameObject(substr($pl['txt'], 1)); + $annots .= ' /A <>'; } elseif ($pl['txt'][0] == '%') { // embedded PDF file $filename = basename(substr($pl['txt'], 1)); @@ -8380,7 +8426,7 @@ class TCPDF { $annots .= ' /A << /S /JavaScript /JS '.$this->_textstring($jsa, $annot_obj_id).'>>'; } else { $parsedUrl = parse_url($pl['txt']); - if (empty($parsedUrl['scheme']) AND (strtolower(substr($parsedUrl['path'], -4)) == '.pdf')) { + if (empty($parsedUrl['scheme']) AND (!empty($parsedUrl['path']) && strtolower(substr($parsedUrl['path'], -4)) == '.pdf')) { // relative link to a PDF file $dest = '[0 /Fit]'; // default page 0 if (!empty($parsedUrl['fragment'])) { @@ -8487,8 +8533,8 @@ class TCPDF { break; } case 'fileattachment': { - if ($this->pdfa_mode) { - // embedded files are not allowed in PDF/A mode + if ($this->pdfa_mode && $this->pdfa_version != 3) { + // embedded files are not allowed in PDF/A mode version 1 and 2 break; } if (!isset($pl['opt']['fs'])) { @@ -9500,6 +9546,17 @@ class TCPDF { $this->custom_xmp = $xmp; } + /** + * Set additional XMP data to be added on the default XMP data just before the end of "rdf:RDF" tag. + * IMPORTANT: This data is added as-is without controls, so you have to validate your data before using this method! + * @param $xmp (string) Custom XMP RDF data. + * @since 6.3.0 (2019-09-19) + * @public + */ + public function setExtraXMPRDF($xmp) { + $this->custom_xmp_rdf = $xmp; + } + /** * Put XMP data object and return ID. * @return (int) The object ID. @@ -9569,7 +9626,7 @@ class TCPDF { $xmp .= "\t\t".''."\n"; if ($this->pdfa_mode) { $xmp .= "\t\t".''."\n"; - $xmp .= "\t\t\t".'1'."\n"; + $xmp .= "\t\t\t".''.$this->pdfa_version.''."\n"; $xmp .= "\t\t\t".'B'."\n"; $xmp .= "\t\t".''."\n"; } @@ -9627,6 +9684,7 @@ class TCPDF { $xmp .= "\t\t\t\t".''."\n"; $xmp .= "\t\t\t".''."\n"; $xmp .= "\t\t".''."\n"; + $xmp .= $this->custom_xmp_rdf; $xmp .= "\t".''."\n"; $xmp .= $this->custom_xmp; $xmp .= ''."\n"; @@ -13988,7 +14046,7 @@ class TCPDF { * @since 3.1.000 (2008-06-09) */ public function setPDFVersion($version='1.7') { - if ($this->pdfa_mode) { + if ($this->pdfa_mode && $this->pdfa_version == 1 ) { // PDF/A mode $this->PDFVersion = '1.4'; } else { @@ -15502,8 +15560,7 @@ class TCPDF { *
  • int $style['module_height'] height of a single module in points
  • *
  • array $style['fgcolor'] color array for bars and text
  • *
  • mixed $style['bgcolor'] color array for background or false for transparent
  • - *
  • string $style['position'] barcode position on the page: L = left margin; C = center; R = right margin; S = stretch
  • $style['module_width'] width of a single module in points
  • - *
  • $style['module_height'] height of a single module in points
  • + *
  • string $style['position'] barcode position on the page: L = left margin; C = center; R = right margin; S = stretch
  • * @param $align (string) Indicates the alignment of the pointer next to barcode insertion relative to barcode height. The value can be:
    • T: top-right for LTR or top-left for RTL
    • M: middle-right for LTR or middle-left for RTL
    • B: bottom-right for LTR or bottom-left for RTL
    • N: next line
    * @param $distort (boolean) if true distort the barcode to fit width and height, otherwise preserve aspect ratio * @author Nicola Asuni @@ -16897,10 +16954,10 @@ class TCPDF { if (($dom[$key]['value'] == 'pre') OR ($dom[$key]['value'] == 'tt')) { $dom[$key]['fontname'] = $this->default_monospaced_font; } - if (!empty($dom[$key]['value']) AND ($dom[$key]['value'][0] == 'h') AND (intval($dom[$key]['value']{1}) > 0) AND (intval($dom[$key]['value']{1}) < 7)) { + if (!empty($dom[$key]['value']) AND ($dom[$key]['value'][0] == 'h') AND (intval($dom[$key]['value'][1]) > 0) AND (intval($dom[$key]['value'][1]) < 7)) { // headings h1, h2, h3, h4, h5, h6 if (!isset($dom[$key]['attribute']['size']) AND !isset($dom[$key]['style']['font-size'])) { - $headsize = (4 - intval($dom[$key]['value']{1})) * 2; + $headsize = (4 - intval($dom[$key]['value'][1])) * 2; $dom[$key]['fontsize'] = $dom[0]['fontsize'] + $headsize; } if (!isset($dom[$key]['style']['font-weight'])) { @@ -18686,7 +18743,7 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value: $hbz = 0; // distance from y to line bottom $hb = 0; // vertical space between block tags // calculate vertical space for block tags - if (isset($this->tagvspaces[$tag['value']][0]['h']) AND ($this->tagvspaces[$tag['value']][0]['h'] >= 0)) { + if (isset($this->tagvspaces[$tag['value']][0]['h']) && !empty($this->tagvspaces[$tag['value']][0]['h']) && ($this->tagvspaces[$tag['value']][0]['h'] >= 0)) { $cur_h = $this->tagvspaces[$tag['value']][0]['h']; } elseif (isset($tag['fontsize'])) { $cur_h = $this->getCellHeight($tag['fontsize'] / $this->k); @@ -18718,7 +18775,7 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value: } // closing vertical space $hbc = 0; - if (isset($this->tagvspaces[$tag['value']][1]['h']) AND ($this->tagvspaces[$tag['value']][1]['h'] >= 0)) { + if (isset($this->tagvspaces[$tag['value']][1]['h']) && !empty($this->tagvspaces[$tag['value']][1]['h']) && ($this->tagvspaces[$tag['value']][1]['h'] >= 0)) { $pre_h = $this->tagvspaces[$tag['value']][1]['h']; } elseif (isset($parent['fontsize'])) { $pre_h = $this->getCellHeight($parent['fontsize'] / $this->k); @@ -19379,7 +19436,7 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value: $hbz = 0; // distance from y to line bottom $hb = 0; // vertical space between block tags // calculate vertical space for block tags - if (isset($this->tagvspaces[$tag['value']][1]['h']) AND ($this->tagvspaces[$tag['value']][1]['h'] >= 0)) { + if (isset($this->tagvspaces[$tag['value']][1]['h']) && !empty($this->tagvspaces[$tag['value']][1]['h']) && ($this->tagvspaces[$tag['value']][1]['h'] >= 0)) { $pre_h = $this->tagvspaces[$tag['value']][1]['h']; } elseif (isset($parent['fontsize'])) { $pre_h = $this->getCellHeight($parent['fontsize'] / $this->k); @@ -23995,7 +24052,7 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value: case 'stop': { // gradient stops if (substr($attribs['offset'], -1) == '%') { - $offset = floatval(substr($attribs['offset'], -1)) / 100; + $offset = floatval(substr($attribs['offset'], 0, -1)) / 100; } else { $offset = floatval($attribs['offset']); if ($offset > 1) { diff --git a/htdocs/includes/tecnickcom/tcpdf/tcpdf_autoconfig.php b/htdocs/includes/tecnickcom/tcpdf/tcpdf_autoconfig.php index ea475428429..6ec9ce83bb8 100644 --- a/htdocs/includes/tecnickcom/tcpdf/tcpdf_autoconfig.php +++ b/htdocs/includes/tecnickcom/tcpdf/tcpdf_autoconfig.php @@ -5,7 +5,7 @@ // Begin : 2013-05-16 // Last Update : 2014-12-18 // Authors : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- // Copyright (C) 2011-2014 Nicola Asuni - Tecnick.com LTD // diff --git a/htdocs/includes/tecnickcom/tcpdf/tcpdf_barcodes_1d.php b/htdocs/includes/tecnickcom/tcpdf/tcpdf_barcodes_1d.php index faafedf35e5..78bfc5b5bf4 100644 --- a/htdocs/includes/tecnickcom/tcpdf/tcpdf_barcodes_1d.php +++ b/htdocs/includes/tecnickcom/tcpdf/tcpdf_barcodes_1d.php @@ -5,7 +5,7 @@ // Begin : 2008-06-09 // Last Update : 2014-10-20 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- // Copyright (C) 2008-2014 Nicola Asuni - Tecnick.com LTD // @@ -22,7 +22,7 @@ // See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- @@ -453,7 +453,7 @@ class TCPDFBarcode { $k = 0; $clen = strlen($code); for ($i = 0; $i < $clen; ++$i) { - $char = $code{$i}; + $char = $code[$i]; if(!isset($chr[$char])) { // invalid character return false; @@ -464,7 +464,7 @@ class TCPDFBarcode { } else { $t = false; // space } - $w = $chr[$char]{$j}; + $w = $chr[$char][$j]; $bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0); $bararray['maxw'] += $w; ++$k; @@ -520,10 +520,10 @@ class TCPDFBarcode { $code_ext = ''; $clen = strlen($code); for ($i = 0 ; $i < $clen; ++$i) { - if (ord($code{$i}) > 127) { + if (ord($code[$i]) > 127) { return false; } - $code_ext .= $encode[$code{$i}]; + $code_ext .= $encode[$code[$i]]; } return $code_ext; } @@ -543,7 +543,7 @@ class TCPDFBarcode { $sum = 0; $clen = strlen($code); for ($i = 0 ; $i < $clen; ++$i) { - $k = array_keys($chars, $code{$i}); + $k = array_keys($chars, $code[$i]); $sum += $k[0]; } $j = ($sum % 43); @@ -643,10 +643,10 @@ class TCPDFBarcode { $code_ext = ''; $clen = strlen($code); for ($i = 0 ; $i < $clen; ++$i) { - if (ord($code{$i}) > 127) { + if (ord($code[$i]) > 127) { return false; } - $code_ext .= $encode[$code{$i}]; + $code_ext .= $encode[$code[$i]]; } // checksum $code_ext .= $this->checksum_code93($code_ext); @@ -656,7 +656,7 @@ class TCPDFBarcode { $k = 0; $clen = strlen($code); for ($i = 0; $i < $clen; ++$i) { - $char = ord($code{$i}); + $char = ord($code[$i]); if(!isset($chr[$char])) { // invalid character return false; @@ -667,7 +667,7 @@ class TCPDFBarcode { } else { $t = false; // space } - $w = $chr[$char]{$j}; + $w = $chr[$char][$j]; $bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0); $bararray['maxw'] += $w; ++$k; @@ -699,7 +699,7 @@ class TCPDFBarcode { $p = 1; $check = 0; for ($i = ($len - 1); $i >= 0; --$i) { - $k = array_keys($chars, $code{$i}); + $k = array_keys($chars, $code[$i]); $check += ($k[0] * $p); ++$p; if ($p > 20) { @@ -713,7 +713,7 @@ class TCPDFBarcode { $p = 1; $check = 0; for ($i = $len; $i >= 0; --$i) { - $k = array_keys($chars, $code{$i}); + $k = array_keys($chars, $code[$i]); $check += ($k[0] * $p); ++$p; if ($p > 15) { @@ -738,11 +738,11 @@ class TCPDFBarcode { $len = strlen($code); $sum = 0; for ($i = 0; $i < $len; $i+=2) { - $sum += $code{$i}; + $sum += $code[$i]; } $sum *= 3; for ($i = 1; $i < $len; $i+=2) { - $sum += ($code{$i}); + $sum += ($code[$i]); } $r = $sum % 10; if($r > 0) { @@ -783,7 +783,7 @@ class TCPDFBarcode { $p = 2; $check = 0; for ($i = ($clen - 1); $i >= 0; --$i) { - $check += (hexdec($code{$i}) * $p); + $check += (hexdec($code[$i]) * $p); ++$p; if ($p > 7) { $p = 2; @@ -798,7 +798,7 @@ class TCPDFBarcode { $seq = '110'; // left guard $clen = strlen($code); for ($i = 0; $i < $clen; ++$i) { - $digit = $code{$i}; + $digit = $code[$i]; if (!isset($chr[$digit])) { // invalid character return false; @@ -841,7 +841,7 @@ class TCPDFBarcode { $seq = '11011010'; $clen = strlen($code); for ($i = 0; $i < $clen; ++$i) { - $digit = $code{$i}; + $digit = $code[$i]; if (!isset($chr[$digit])) { // invalid character return false; @@ -867,8 +867,8 @@ class TCPDFBarcode { $k = 0; for ($i = 0; $i < $len; ++$i) { $w += 1; - if (($i == ($len - 1)) OR (($i < ($len - 1)) AND ($seq{$i} != $seq{($i+1)}))) { - if ($seq{$i} == '1') { + if (($i == ($len - 1)) OR (($i < ($len - 1)) AND ($seq[$i] != $seq[($i+1)]))) { + if ($seq[$i] == '1') { $t = true; // bar } else { $t = false; // space @@ -919,8 +919,8 @@ class TCPDFBarcode { $k = 0; $clen = strlen($code); for ($i = 0; $i < $clen; $i = ($i + 2)) { - $char_bar = $code{$i}; - $char_space = $code{$i+1}; + $char_bar = $code[$i]; + $char_space = $code[$i+1]; if((!isset($chr[$char_bar])) OR (!isset($chr[$char_space]))) { // invalid character return false; @@ -929,7 +929,7 @@ class TCPDFBarcode { $seq = ''; $chrlen = strlen($chr[$char_bar]); for ($s = 0; $s < $chrlen; $s++){ - $seq .= $chr[$char_bar]{$s} . $chr[$char_space]{$s}; + $seq .= $chr[$char_bar][$s] . $chr[$char_space][$s]; } $seqlen = strlen($seq); for ($j = 0; $j < $seqlen; ++$j) { @@ -938,7 +938,7 @@ class TCPDFBarcode { } else { $t = false; // space } - $w = $seq{$j}; + $w = $seq[$j]; $bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0); $bararray['maxw'] += $w; ++$k; @@ -1085,7 +1085,7 @@ class TCPDFBarcode { case 'A': { // MODE A $startid = 103; for ($i = 0; $i < $len; ++$i) { - $char = $code{$i}; + $char = $code[$i]; $char_id = ord($char); if (($char_id >= 241) AND ($char_id <= 244)) { $code_data[] = $fnc_a[$char_id]; @@ -1100,7 +1100,7 @@ class TCPDFBarcode { case 'B': { // MODE B $startid = 104; for ($i = 0; $i < $len; ++$i) { - $char = $code{$i}; + $char = $code[$i]; $char_id = ord($char); if (($char_id >= 241) AND ($char_id <= 244)) { $code_data[] = $fnc_b[$char_id]; @@ -1124,7 +1124,7 @@ class TCPDFBarcode { return false; } for ($i = 0; $i < $len; $i+=2) { - $chrnum = $code{$i}.$code{$i+1}; + $chrnum = $code[$i].$code[$i+1]; if (preg_match('/([0-9]{2})/', $chrnum) > 0) { $code_data[] = intval($chrnum); } else { @@ -1180,7 +1180,7 @@ class TCPDFBarcode { } } for ($i = 0; $i < $seq[2]; ++$i) { - $char = $seq[1]{$i}; + $char = $seq[1][$i]; $char_id = ord($char); if (($char_id >= 241) AND ($char_id <= 244)) { $code_data[] = $fnc_a[$char_id]; @@ -1223,7 +1223,7 @@ class TCPDFBarcode { } } for ($i = 0; $i < $seq[2]; ++$i) { - $char = $seq[1]{$i}; + $char = $seq[1][$i]; $char_id = ord($char); if (($char_id >= 241) AND ($char_id <= 244)) { $code_data[] = $fnc_b[$char_id]; @@ -1240,7 +1240,7 @@ class TCPDFBarcode { $code_data[] = 99; } for ($i = 0; $i < $seq[2]; $i+=2) { - $chrnum = $seq[1]{$i}.$seq[1]{$i+1}; + $chrnum = $seq[1][$i].$seq[1][$i+1]; $code_data[] = intval($chrnum); } break; @@ -1271,7 +1271,7 @@ class TCPDFBarcode { } else { $t = false; // space } - $w = $seq{$j}; + $w = $seq[$j]; $bararray['bcode'][] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0); $bararray['maxw'] += $w; } @@ -1337,14 +1337,14 @@ class TCPDFBarcode { // calculate check digit $sum_a = 0; for ($i = 1; $i < $data_len; $i+=2) { - $sum_a += $code{$i}; + $sum_a += $code[$i]; } if ($len > 12) { $sum_a *= 3; } $sum_b = 0; for ($i = 0; $i < $data_len; $i+=2) { - $sum_b += ($code{$i}); + $sum_b += ($code[$i]); } if ($len < 13) { $sum_b *= 3; @@ -1356,7 +1356,7 @@ class TCPDFBarcode { if ($code_len == $data_len) { // add check digit $code .= $r; - } elseif ($r !== intval($code{$data_len})) { + } elseif ($r !== intval($code[$data_len])) { // wrong checkdigit return false; } @@ -1467,7 +1467,7 @@ class TCPDFBarcode { $bararray = array('code' => $upce_code, 'maxw' => 0, 'maxh' => 1, 'bcode' => array()); $p = $upce_parities[$code[1]][$r]; for ($i = 0; $i < 6; ++$i) { - $seq .= $codes[$p[$i]][$upce_code{$i}]; + $seq .= $codes[$p[$i]][$upce_code[$i]]; } $seq .= '010101'; // right guard bar } else { @@ -1475,17 +1475,17 @@ class TCPDFBarcode { $half_len = intval(ceil($len / 2)); if ($len == 8) { for ($i = 0; $i < $half_len; ++$i) { - $seq .= $codes['A'][$code{$i}]; + $seq .= $codes['A'][$code[$i]]; } } else { $p = $parities[$code[0]]; for ($i = 1; $i < $half_len; ++$i) { - $seq .= $codes[$p[$i-1]][$code{$i}]; + $seq .= $codes[$p[$i-1]][$code[$i]]; } } $seq .= '01010'; // center guard bar for ($i = $half_len; $i < $len; ++$i) { - $seq .= $codes['C'][$code{$i}]; + $seq .= $codes['C'][$code[$i]]; } $seq .= '101'; // right guard bar } @@ -1493,8 +1493,8 @@ class TCPDFBarcode { $w = 0; for ($i = 0; $i < $clen; ++$i) { $w += 1; - if (($i == ($clen - 1)) OR (($i < ($clen - 1)) AND ($seq{$i} != $seq{($i+1)}))) { - if ($seq{$i} == '1') { + if (($i == ($clen - 1)) OR (($i < ($clen - 1)) AND ($seq[$i] != $seq[$i+1]))) { + if ($seq[$i] == '1') { $t = true; // bar } else { $t = false; // space @@ -1578,7 +1578,7 @@ class TCPDFBarcode { $seq .= $codes[$p[0]][$code[0]]; for ($i = 1; $i < $len; ++$i) { $seq .= '01'; // separator - $seq .= $codes[$p[$i]][$code{$i}]; + $seq .= $codes[$p[$i]][$code[$i]]; } $bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 1, 'bcode' => array()); return $this->binseq_to_array($seq, $bararray); @@ -1629,7 +1629,7 @@ class TCPDFBarcode { // calculate checksum $sum = 0; for ($i = 0; $i < $len; ++$i) { - $sum += intval($code{$i}); + $sum += intval($code[$i]); } $chkd = ($sum % 10); if($chkd > 0) { @@ -1643,7 +1643,7 @@ class TCPDFBarcode { $bararray['maxw'] += 2; for ($i = 0; $i < $len; ++$i) { for ($j = 0; $j < 5; ++$j) { - $h = $barlen[$code{$i}][$j]; + $h = $barlen[$code[$i]][$j]; $p = floor(1 / $h); $bararray['bcode'][$k++] = array('t' => 1, 'w' => 1, 'h' => $h, 'p' => $p); $bararray['bcode'][$k++] = array('t' => 0, 'w' => 1, 'h' => 2, 'p' => 0); @@ -1756,8 +1756,8 @@ class TCPDFBarcode { $row = 0; $col = 0; for ($i = 0; $i < $len; ++$i) { - $row += $checktable[$code{$i}][0]; - $col += $checktable[$code{$i}][1]; + $row += $checktable[$code[$i]][0]; + $col += $checktable[$code[$i]][1]; } $row %= 6; $col %= 6; @@ -1774,7 +1774,7 @@ class TCPDFBarcode { } for ($i = 0; $i < $len; ++$i) { for ($j = 0; $j < 4; ++$j) { - switch ($barmode[$code{$i}][$j]) { + switch ($barmode[$code[$i]][$j]) { case 1: { $p = 0; $h = 2; @@ -1846,17 +1846,17 @@ class TCPDFBarcode { $code = 'A'.strtoupper($code).'A'; $len = strlen($code); for ($i = 0; $i < $len; ++$i) { - if (!isset($chr[$code{$i}])) { + if (!isset($chr[$code[$i]])) { return false; } - $seq = $chr[$code{$i}]; + $seq = $chr[$code[$i]]; for ($j = 0; $j < 8; ++$j) { if (($j % 2) == 0) { $t = true; // bar } else { $t = false; // space } - $w = $seq{$j}; + $w = $seq[$j]; $bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0); $bararray['maxw'] += $w; ++$k; @@ -1896,7 +1896,7 @@ class TCPDFBarcode { $p = 1; $check = 0; for ($i = ($len - 1); $i >= 0; --$i) { - $digit = $code{$i}; + $digit = $code[$i]; if ($digit == '-') { $dval = 10; } else { @@ -1918,7 +1918,7 @@ class TCPDFBarcode { $p = 1; $check = 0; for ($i = $len; $i >= 0; --$i) { - $digit = $code{$i}; + $digit = $code[$i]; if ($digit == '-') { $dval = 10; } else { @@ -1937,17 +1937,17 @@ class TCPDFBarcode { $code = 'S'.$code.'S'; $len += 3; for ($i = 0; $i < $len; ++$i) { - if (!isset($chr[$code{$i}])) { + if (!isset($chr[$code[$i]])) { return false; } - $seq = $chr[$code{$i}]; + $seq = $chr[$code[$i]]; for ($j = 0; $j < 6; ++$j) { if (($j % 2) == 0) { $t = true; // bar } else { $t = false; // space } - $w = $seq{$j}; + $w = $seq[$j]; $bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0); $bararray['maxw'] += $w; ++$k; @@ -2016,7 +2016,7 @@ class TCPDFBarcode { $bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 2, 'bcode' => array()); $len = strlen($seq); for ($i = 0; $i < $len; ++$i) { - switch ($seq{$i}) { + switch ($seq[$i]) { case '1': { $p = 1; $h = 1; @@ -2171,7 +2171,7 @@ class TCPDFBarcode { /** * IMB - Intelligent Mail Barcode - Onecode - USPS-B-3200 - * + * * @param $code (string) pre-formatted IMB barcode (65 chars "FADT") * @return array barcode representation. * @protected @@ -2255,7 +2255,7 @@ class TCPDFBarcode { $bitval = 1; $len = strlen($hex); for($pos = ($len - 1); $pos >= 0; --$pos) { - $dec = bcadd($dec, bcmul(hexdec($hex{$pos}), $bitval)); + $dec = bcadd($dec, bcmul(hexdec($hex[$pos]), $bitval)); $bitval = bcmul($bitval, 16); } return $dec; diff --git a/htdocs/includes/tecnickcom/tcpdf/tcpdf_barcodes_2d.php b/htdocs/includes/tecnickcom/tcpdf/tcpdf_barcodes_2d.php index 7d0eeca7fa0..13e23655274 100644 --- a/htdocs/includes/tecnickcom/tcpdf/tcpdf_barcodes_2d.php +++ b/htdocs/includes/tecnickcom/tcpdf/tcpdf_barcodes_2d.php @@ -5,7 +5,7 @@ // Begin : 2009-04-07 // Last Update : 2014-05-20 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- // Copyright (C) 2009-2014 Nicola Asuni - Tecnick.com LTD // @@ -22,7 +22,7 @@ // See the GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see . +// along with TCPDF. If not, see . // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- diff --git a/htdocs/includes/tecnickcom/tcpdf/tcpdf_import.php b/htdocs/includes/tecnickcom/tcpdf/tcpdf_import.php index 0e57e435bc5..09d726ba030 100644 --- a/htdocs/includes/tecnickcom/tcpdf/tcpdf_import.php +++ b/htdocs/includes/tecnickcom/tcpdf/tcpdf_import.php @@ -5,7 +5,7 @@ // Begin : 2011-05-23 // Last Update : 2013-09-17 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com -// License : GNU-LGPL v3 (https://www.gnu.org/copyleft/lesser.html) +// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- // Copyright (C) 2011-2013 Nicola Asuni - Tecnick.com LTD // diff --git a/htdocs/includes/tecnickcom/tcpdf/tcpdf_parser.php b/htdocs/includes/tecnickcom/tcpdf/tcpdf_parser.php index 780ec2129d1..bd3d719c7ac 100644 --- a/htdocs/includes/tecnickcom/tcpdf/tcpdf_parser.php +++ b/htdocs/includes/tecnickcom/tcpdf/tcpdf_parser.php @@ -531,10 +531,10 @@ class TCPDF_PARSER { if ($char == '(') { $open_bracket = 1; while ($open_bracket > 0) { - if (!isset($this->pdfdata{$strpos})) { + if (!isset($this->pdfdata[$strpos])) { break; } - $ch = $this->pdfdata{$strpos}; + $ch = $this->pdfdata[$strpos]; switch ($ch) { case '\\': { // REVERSE SOLIDUS (5Ch) (Backslash) // skip next character @@ -578,7 +578,7 @@ class TCPDF_PARSER { } case '<': // \x3C LESS-THAN SIGN case '>': { // \x3E GREATER-THAN SIGN - if (isset($this->pdfdata{($offset + 1)}) AND ($this->pdfdata{($offset + 1)} == $char)) { + if (isset($this->pdfdata[($offset + 1)]) AND ($this->pdfdata[($offset + 1)] == $char)) { // dictionary object $objtype = $char.$char; $offset += 2; From 986a8471ffab5c432b612f36bf6a86d6c9d53633 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 10:04:53 +0200 Subject: [PATCH 204/484] Fix lib version --- COPYRIGHT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/COPYRIGHT b/COPYRIGHT index 594bec493b5..1af09e6fdaf 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -17,7 +17,7 @@ CKEditor 4.12.1 LGPL-2.1+ Yes EvalMath 1.0 BSD Yes Safe math expressions evaluation Escpos-php ? MIT License Yes Thermal receipt printer library, for use with ESC/POS compatible printers GeoIP 1.4 LGPL-2.1+ Yes Sample code to make geoip convert (not into deb package) -Mobiledetect 2.8.83 MIT License Yes Detect mobile devices browsers +Mobiledetect 2.8.33 MIT License Yes Detect mobile devices browsers NuSoap 0.9.5 LGPL 2.1+ Yes Library to develop SOAP Web services (not into rpm and deb package) PEAR Mail_MIME 1.8.9 BSD Yes NuSoap dependency ParseDown 1.6 MIT License Yes Markdown parser From 9dd402ebc60b12c918a3058589ee8cf33a5b8bb1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 10:15:02 +0200 Subject: [PATCH 205/484] Fix versions/lib --- composer.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/composer.json b/composer.json index cdfccc375f9..f4584bbdb9c 100644 --- a/composer.json +++ b/composer.json @@ -28,11 +28,10 @@ "ext-curl" : "*", "ckeditor/ckeditor" : "4.6.2", "mike42/escpos-php" : "1.2.1", - "mobiledetect/mobiledetectlib" : "2.8.17", + "mobiledetect/mobiledetectlib" : "2.8.33", "phpoffice/phpexcel" : "1.8.1", "restler/framework" : "3.0.0-RC6", "tecnickcom/tcpdf" : "^6.2", - "atgp/factur-x" : "^1.0", "luracast/restler" : "^3.0" }, "require-dev" : { From 485fa697d307d9473977c0ed3e235c404a71a900 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 10:18:59 +0200 Subject: [PATCH 206/484] Restore original official files --- .../phpoffice/phpexcel/Classes/PHPExcel.php | 2 +- .../phpexcel/Classes/PHPExcel/Autoloader.php | 2 +- .../PHPExcel/CachedObjectStorage/APC.php | 2 +- .../CachedObjectStorage/CacheBase.php | 2 +- .../PHPExcel/CachedObjectStorage/DiscISAM.php | 2 +- .../PHPExcel/CachedObjectStorage/ICache.php | 2 +- .../PHPExcel/CachedObjectStorage/Igbinary.php | 2 +- .../PHPExcel/CachedObjectStorage/Memcache.php | 2 +- .../PHPExcel/CachedObjectStorage/Memory.php | 2 +- .../CachedObjectStorage/MemoryGZip.php | 2 +- .../CachedObjectStorage/MemorySerialized.php | 2 +- .../PHPExcel/CachedObjectStorage/PHPTemp.php | 2 +- .../PHPExcel/CachedObjectStorage/SQLite.php | 2 +- .../PHPExcel/CachedObjectStorage/SQLite3.php | 2 +- .../PHPExcel/CachedObjectStorage/Wincache.php | 2 +- .../PHPExcel/CachedObjectStorageFactory.php | 2 +- .../CalcEngine/CyclicReferenceStack.php | 2 +- .../Classes/PHPExcel/CalcEngine/Logger.php | 2 +- .../phpexcel/Classes/PHPExcel/Calculation.php | 4 +- .../Classes/PHPExcel/Calculation/Database.php | 2 +- .../Classes/PHPExcel/Calculation/DateTime.php | 2 +- .../PHPExcel/Calculation/Engineering.php | 2 +- .../PHPExcel/Calculation/Exception.php | 2 +- .../PHPExcel/Calculation/ExceptionHandler.php | 2 +- .../PHPExcel/Calculation/Financial.php | 2 +- .../PHPExcel/Calculation/FormulaParser.php | 2 +- .../PHPExcel/Calculation/FormulaToken.php | 2 +- .../Classes/PHPExcel/Calculation/Function.php | 2 +- .../PHPExcel/Calculation/Functions.php | 2 +- .../Classes/PHPExcel/Calculation/Logical.php | 2 +- .../PHPExcel/Calculation/LookupRef.php | 2 +- .../Classes/PHPExcel/Calculation/MathTrig.php | 2 +- .../PHPExcel/Calculation/Statistical.php | 2 +- .../Classes/PHPExcel/Calculation/TextData.php | 2 +- .../PHPExcel/Calculation/Token/Stack.php | 2 +- .../phpexcel/Classes/PHPExcel/Cell.php | 2 +- .../PHPExcel/Cell/AdvancedValueBinder.php | 2 +- .../Classes/PHPExcel/Cell/DataType.php | 2 +- .../Classes/PHPExcel/Cell/DataValidation.php | 2 +- .../PHPExcel/Cell/DefaultValueBinder.php | 2 +- .../Classes/PHPExcel/Cell/Hyperlink.php | 2 +- .../Classes/PHPExcel/Cell/IValueBinder.php | 2 +- .../phpexcel/Classes/PHPExcel/Chart.php | 2 +- .../Classes/PHPExcel/Chart/DataSeries.php | 4 +- .../PHPExcel/Chart/DataSeriesValues.php | 2 +- .../Classes/PHPExcel/Chart/Exception.php | 2 +- .../Classes/PHPExcel/Chart/Layout.php | 2 +- .../Classes/PHPExcel/Chart/Legend.php | 2 +- .../Classes/PHPExcel/Chart/PlotArea.php | 4 +- .../PHPExcel/Chart/Renderer/jpgraph.php | 2 +- .../phpexcel/Classes/PHPExcel/Chart/Title.php | 2 +- .../phpexcel/Classes/PHPExcel/Comment.php | 2 +- .../Classes/PHPExcel/DocumentProperties.php | 2 +- .../Classes/PHPExcel/DocumentSecurity.php | 2 +- .../phpexcel/Classes/PHPExcel/Exception.php | 2 +- .../phpexcel/Classes/PHPExcel/HashTable.php | 2 +- .../phpexcel/Classes/PHPExcel/IComparable.php | 2 +- .../phpexcel/Classes/PHPExcel/IOFactory.php | 2 +- .../phpexcel/Classes/PHPExcel/NamedRange.php | 2 +- .../Classes/PHPExcel/Reader/Abstract.php | 4 +- .../phpexcel/Classes/PHPExcel/Reader/CSV.php | 2 +- .../PHPExcel/Reader/DefaultReadFilter.php | 2 +- .../Classes/PHPExcel/Reader/Excel2003XML.php | 2 +- .../Classes/PHPExcel/Reader/Excel2007.php | 2 +- .../PHPExcel/Reader/Excel2007/Chart.php | 2 +- .../PHPExcel/Reader/Excel2007/Theme.php | 2 +- .../Classes/PHPExcel/Reader/Excel5.php | 44 +++++++++---------- .../Classes/PHPExcel/Reader/Excel5/Escher.php | 2 +- .../Classes/PHPExcel/Reader/Excel5/MD5.php | 4 +- .../Classes/PHPExcel/Reader/Excel5/RC4.php | 2 +- .../Classes/PHPExcel/Reader/Exception.php | 2 +- .../Classes/PHPExcel/Reader/Gnumeric.php | 2 +- .../phpexcel/Classes/PHPExcel/Reader/HTML.php | 2 +- .../Classes/PHPExcel/Reader/IReadFilter.php | 2 +- .../Classes/PHPExcel/Reader/IReader.php | 2 +- .../Classes/PHPExcel/Reader/OOCalc.php | 2 +- .../phpexcel/Classes/PHPExcel/Reader/SYLK.php | 2 +- .../Classes/PHPExcel/ReferenceHelper.php | 2 +- .../phpexcel/Classes/PHPExcel/RichText.php | 2 +- .../PHPExcel/RichText/ITextElement.php | 2 +- .../Classes/PHPExcel/RichText/Run.php | 2 +- .../Classes/PHPExcel/RichText/TextElement.php | 2 +- .../phpexcel/Classes/PHPExcel/Settings.php | 2 +- .../Classes/PHPExcel/Shared/CodePage.php | 2 +- .../phpexcel/Classes/PHPExcel/Shared/Date.php | 2 +- .../Classes/PHPExcel/Shared/Drawing.php | 2 +- .../Classes/PHPExcel/Shared/Escher.php | 2 +- .../PHPExcel/Shared/Escher/DgContainer.php | 2 +- .../Escher/DgContainer/SpgrContainer.php | 2 +- .../DgContainer/SpgrContainer/SpContainer.php | 2 +- .../PHPExcel/Shared/Escher/DggContainer.php | 2 +- .../Escher/DggContainer/BstoreContainer.php | 2 +- .../DggContainer/BstoreContainer/BSE.php | 2 +- .../DggContainer/BstoreContainer/BSE/Blip.php | 2 +- .../Classes/PHPExcel/Shared/Excel5.php | 2 +- .../phpexcel/Classes/PHPExcel/Shared/File.php | 2 +- .../phpexcel/Classes/PHPExcel/Shared/Font.php | 2 +- .../phpexcel/Classes/PHPExcel/Shared/OLE.php | 2 +- .../Shared/OLE/ChainedBlockStream.php | 2 +- .../Classes/PHPExcel/Shared/OLERead.php | 2 +- .../PHPExcel/Shared/PasswordHasher.php | 2 +- .../Classes/PHPExcel/Shared/String.php | 2 +- .../Classes/PHPExcel/Shared/TimeZone.php | 2 +- .../Classes/PHPExcel/Shared/XMLWriter.php | 2 +- .../Classes/PHPExcel/Shared/ZipArchive.php | 6 +-- .../PHPExcel/Shared/ZipStreamWrapper.php | 2 +- .../PHPExcel/Shared/trend/bestFitClass.php | 2 +- .../Shared/trend/exponentialBestFitClass.php | 4 +- .../Shared/trend/linearBestFitClass.php | 4 +- .../Shared/trend/logarithmicBestFitClass.php | 4 +- .../Shared/trend/polynomialBestFitClass.php | 4 +- .../Shared/trend/powerBestFitClass.php | 4 +- .../PHPExcel/Shared/trend/trendClass.php | 4 +- .../phpexcel/Classes/PHPExcel/Style.php | 2 +- .../Classes/PHPExcel/Style/Alignment.php | 2 +- .../Classes/PHPExcel/Style/Border.php | 2 +- .../Classes/PHPExcel/Style/Borders.php | 2 +- .../phpexcel/Classes/PHPExcel/Style/Color.php | 2 +- .../Classes/PHPExcel/Style/Conditional.php | 2 +- .../phpexcel/Classes/PHPExcel/Style/Fill.php | 2 +- .../phpexcel/Classes/PHPExcel/Style/Font.php | 2 +- .../Classes/PHPExcel/Style/NumberFormat.php | 2 +- .../Classes/PHPExcel/Style/Protection.php | 2 +- .../Classes/PHPExcel/Style/Supervisor.php | 2 +- .../phpexcel/Classes/PHPExcel/Worksheet.php | 2 +- .../Classes/PHPExcel/Worksheet/AutoFilter.php | 2 +- .../PHPExcel/Worksheet/AutoFilter/Column.php | 2 +- .../Worksheet/AutoFilter/Column/Rule.php | 2 +- .../PHPExcel/Worksheet/BaseDrawing.php | 2 +- .../PHPExcel/Worksheet/CellIterator.php | 2 +- .../Classes/PHPExcel/Worksheet/Column.php | 2 +- .../PHPExcel/Worksheet/ColumnCellIterator.php | 2 +- .../PHPExcel/Worksheet/ColumnDimension.php | 2 +- .../PHPExcel/Worksheet/ColumnIterator.php | 2 +- .../Classes/PHPExcel/Worksheet/Drawing.php | 2 +- .../PHPExcel/Worksheet/Drawing/Shadow.php | 2 +- .../PHPExcel/Worksheet/HeaderFooter.php | 2 +- .../Worksheet/HeaderFooterDrawing.php | 2 +- .../PHPExcel/Worksheet/MemoryDrawing.php | 2 +- .../PHPExcel/Worksheet/PageMargins.php | 2 +- .../Classes/PHPExcel/Worksheet/PageSetup.php | 2 +- .../Classes/PHPExcel/Worksheet/Protection.php | 2 +- .../Classes/PHPExcel/Worksheet/Row.php | 2 +- .../PHPExcel/Worksheet/RowCellIterator.php | 2 +- .../PHPExcel/Worksheet/RowDimension.php | 2 +- .../PHPExcel/Worksheet/RowIterator.php | 2 +- .../Classes/PHPExcel/Worksheet/SheetView.php | 2 +- .../Classes/PHPExcel/WorksheetIterator.php | 2 +- .../Classes/PHPExcel/Writer/Abstract.php | 2 +- .../phpexcel/Classes/PHPExcel/Writer/CSV.php | 2 +- .../Classes/PHPExcel/Writer/Excel2007.php | 2 +- .../PHPExcel/Writer/Excel2007/Chart.php | 2 +- .../PHPExcel/Writer/Excel2007/Comments.php | 2 +- .../Writer/Excel2007/ContentTypes.php | 2 +- .../PHPExcel/Writer/Excel2007/DocProps.php | 2 +- .../PHPExcel/Writer/Excel2007/Drawing.php | 2 +- .../PHPExcel/Writer/Excel2007/Rels.php | 2 +- .../PHPExcel/Writer/Excel2007/RelsRibbon.php | 2 +- .../PHPExcel/Writer/Excel2007/RelsVBA.php | 2 +- .../PHPExcel/Writer/Excel2007/StringTable.php | 2 +- .../PHPExcel/Writer/Excel2007/Style.php | 2 +- .../PHPExcel/Writer/Excel2007/Theme.php | 2 +- .../PHPExcel/Writer/Excel2007/Workbook.php | 2 +- .../PHPExcel/Writer/Excel2007/Worksheet.php | 2 +- .../PHPExcel/Writer/Excel2007/WriterPart.php | 2 +- .../Classes/PHPExcel/Writer/Excel5.php | 2 +- .../PHPExcel/Writer/Excel5/BIFFwriter.php | 2 +- .../Classes/PHPExcel/Writer/Excel5/Escher.php | 2 +- .../Classes/PHPExcel/Writer/Excel5/Font.php | 2 +- .../Classes/PHPExcel/Writer/Excel5/Parser.php | 2 +- .../PHPExcel/Writer/Excel5/Workbook.php | 2 +- .../PHPExcel/Writer/Excel5/Worksheet.php | 4 +- .../Classes/PHPExcel/Writer/Excel5/Xf.php | 2 +- .../Classes/PHPExcel/Writer/Exception.php | 2 +- .../phpexcel/Classes/PHPExcel/Writer/HTML.php | 18 ++++---- .../Classes/PHPExcel/Writer/IWriter.php | 2 +- .../Classes/PHPExcel/Writer/OpenDocument.php | 2 +- .../Writer/OpenDocument/Cell/Comment.php | 2 +- .../PHPExcel/Writer/OpenDocument/Content.php | 2 +- .../PHPExcel/Writer/OpenDocument/Meta.php | 2 +- .../PHPExcel/Writer/OpenDocument/MetaInf.php | 2 +- .../PHPExcel/Writer/OpenDocument/Mimetype.php | 2 +- .../PHPExcel/Writer/OpenDocument/Settings.php | 2 +- .../PHPExcel/Writer/OpenDocument/Styles.php | 2 +- .../Writer/OpenDocument/Thumbnails.php | 2 +- .../Writer/OpenDocument/WriterPart.php | 2 +- .../phpexcel/Classes/PHPExcel/Writer/PDF.php | 2 +- .../Classes/PHPExcel/Writer/PDF/Core.php | 2 +- .../Classes/PHPExcel/Writer/PDF/DomPDF.php | 2 +- .../Classes/PHPExcel/Writer/PDF/mPDF.php | 2 +- .../Classes/PHPExcel/Writer/PDF/tcPDF.php | 2 +- .../Classes/PHPExcel/locale/bg/config | 2 +- .../Classes/PHPExcel/locale/cs/config | 4 +- .../Classes/PHPExcel/locale/cs/functions | 4 +- .../Classes/PHPExcel/locale/da/config | 6 +-- .../Classes/PHPExcel/locale/da/functions | 4 +- .../Classes/PHPExcel/locale/de/config | 6 +-- .../Classes/PHPExcel/locale/de/functions | 4 +- .../Classes/PHPExcel/locale/en/uk/config | 4 +- .../Classes/PHPExcel/locale/es/config | 6 +-- .../Classes/PHPExcel/locale/es/functions | 4 +- .../Classes/PHPExcel/locale/fi/config | 6 +-- .../Classes/PHPExcel/locale/fi/functions | 4 +- .../Classes/PHPExcel/locale/fr/config | 6 +-- .../Classes/PHPExcel/locale/fr/functions | 4 +- .../Classes/PHPExcel/locale/hu/config | 4 +- .../Classes/PHPExcel/locale/hu/functions | 4 +- .../Classes/PHPExcel/locale/it/config | 6 +-- .../Classes/PHPExcel/locale/it/functions | 4 +- .../Classes/PHPExcel/locale/nl/config | 6 +-- .../Classes/PHPExcel/locale/nl/functions | 4 +- .../Classes/PHPExcel/locale/no/config | 6 +-- .../Classes/PHPExcel/locale/no/functions | 4 +- .../Classes/PHPExcel/locale/pl/config | 6 +-- .../Classes/PHPExcel/locale/pl/functions | 4 +- .../Classes/PHPExcel/locale/pt/br/config | 6 +-- .../Classes/PHPExcel/locale/pt/config | 6 +-- .../Classes/PHPExcel/locale/ru/config | 6 +-- .../Classes/PHPExcel/locale/ru/functions | 4 +- .../Classes/PHPExcel/locale/sv/config | 6 +-- .../Classes/PHPExcel/locale/tr/config | 6 +-- .../Classes/PHPExcel/locale/tr/functions | 4 +- .../includes/phpoffice/phpexcel/changelog.txt | 4 +- .../includes/phpoffice/phpexcel/install.txt | 2 +- 224 files changed, 312 insertions(+), 312 deletions(-) diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel.php index 99d1ba084c3..d27de51a2b3 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Autoloader.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Autoloader.php index e2878d1111d..f0b2251636f 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Autoloader.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Autoloader.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/APC.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/APC.php index 3b6654ac316..8bde7fe3e57 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/APC.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/APC.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/CacheBase.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/CacheBase.php index 3622aa651cf..ab2bf4ea718 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/CacheBase.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/CacheBase.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/DiscISAM.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/DiscISAM.php index 42f484376d2..c0e2ebcbdc8 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/DiscISAM.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/DiscISAM.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/ICache.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/ICache.php index ba827873f5e..220905cd46a 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/ICache.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/ICache.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Igbinary.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Igbinary.php index b20d15682e1..0258511f92e 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Igbinary.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Igbinary.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Memcache.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Memcache.php index 62bb741bb28..4b959dbde1f 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Memcache.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Memcache.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Memory.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Memory.php index b42047a30c7..bedcfeca5a1 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Memory.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Memory.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/MemoryGZip.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/MemoryGZip.php index 4d1f29b5b23..5a0227f7184 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/MemoryGZip.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/MemoryGZip.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/MemorySerialized.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/MemorySerialized.php index 2c8dc599ee1..a922b19a17c 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/MemorySerialized.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/MemorySerialized.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/PHPTemp.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/PHPTemp.php index 01f4c751dbd..8a6364aed3e 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/PHPTemp.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/PHPTemp.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/SQLite.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/SQLite.php index 121161f055e..e752e853e5c 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/SQLite.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/SQLite.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/SQLite3.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/SQLite3.php index 0468ef1d5b2..4f38c0319b1 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/SQLite3.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/SQLite3.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Wincache.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Wincache.php index 2a2a9c36ae5..ed475dfba7e 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Wincache.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorage/Wincache.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorageFactory.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorageFactory.php index 7d816096fec..2da92346e93 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorageFactory.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CachedObjectStorageFactory.php @@ -22,7 +22,7 @@ * @category PHPExcel * @package PHPExcel_CachedObjectStorage * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CalcEngine/CyclicReferenceStack.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CalcEngine/CyclicReferenceStack.php index 6d5434471ae..5cd0b909e47 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CalcEngine/CyclicReferenceStack.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CalcEngine/CyclicReferenceStack.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CalcEngine/Logger.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CalcEngine/Logger.php index 2bff745ca9b..fe43ae4f67d 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CalcEngine/Logger.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/CalcEngine/Logger.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation.php index 7b135821ac9..48fb4a422f2 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ @@ -3682,7 +3682,7 @@ class PHPExcel_Calculation { } } else { if ((PHPExcel_Calculation_Functions::getCompatibilityMode() != PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) && - ((is_string($operand1) && !is_numeric($operand1) && strlen($operand1)>0) || + ((is_string($operand1) && !is_numeric($operand1) && strlen($operand1)>0) || (is_string($operand2) && !is_numeric($operand2) && strlen($operand2)>0))) { $result = PHPExcel_Calculation_Functions::VALUE(); } else { diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Database.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Database.php index c9509485ba5..908decfc471 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Database.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Database.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/DateTime.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/DateTime.php index cecc7dd69b0..56c14079ae4 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/DateTime.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/DateTime.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Engineering.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Engineering.php index 66ebd8710a9..b60163e5684 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Engineering.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Engineering.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Exception.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Exception.php index 3a46629b2cf..2ddf666df8d 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Exception.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Exception.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/ExceptionHandler.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/ExceptionHandler.php index 9f17b26b8a6..41c42d7ac70 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/ExceptionHandler.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/ExceptionHandler.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Financial.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Financial.php index 44740398ac8..912a26961ae 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Financial.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Financial.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/FormulaParser.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/FormulaParser.php index 1ce8f21d133..3884fd20aaa 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/FormulaParser.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/FormulaParser.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/FormulaToken.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/FormulaToken.php index f723359a02c..ad10c00a2fb 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/FormulaToken.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/FormulaToken.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Function.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Function.php index 7b83190ceae..1301cd096cf 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Function.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Function.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Functions.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Functions.php index f396549a9ac..dea1503b8ec 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Functions.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Functions.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Logical.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Logical.php index a3ec904b172..48fdb17f4e2 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Logical.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Logical.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/LookupRef.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/LookupRef.php index abdab23f5e6..75e7f69cee5 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/LookupRef.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/LookupRef.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/MathTrig.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/MathTrig.php index 75af2abd8c6..689d59ffce9 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/MathTrig.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/MathTrig.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Statistical.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Statistical.php index ac3a5a55c3a..67e1951c254 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Statistical.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Statistical.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/TextData.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/TextData.php index 84dd8e18aad..148a5b756dd 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/TextData.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/TextData.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Token/Stack.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Token/Stack.php index b97f1bafd2a..57963e73853 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Token/Stack.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Token/Stack.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Calculation * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell.php index 2e952552e40..2d5f9102d8f 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Cell * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/AdvancedValueBinder.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/AdvancedValueBinder.php index a78ebd7991f..f4280ac4953 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/AdvancedValueBinder.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/AdvancedValueBinder.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Cell * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/DataType.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/DataType.php index ce8e6b4b73a..07e148a50ff 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/DataType.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/DataType.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Cell * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/DataValidation.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/DataValidation.php index 1595c0d11dc..538ecd1fbcf 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/DataValidation.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/DataValidation.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Cell * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/DefaultValueBinder.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/DefaultValueBinder.php index 8473433a440..252048f7d8e 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/DefaultValueBinder.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/DefaultValueBinder.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Cell * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/Hyperlink.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/Hyperlink.php index 1fbd06bbc15..178ba7ee2f5 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/Hyperlink.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/Hyperlink.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Cell * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/IValueBinder.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/IValueBinder.php index 75a160ff58c..551815523e6 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/IValueBinder.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Cell/IValueBinder.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Cell * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart.php index caca16e98e9..9bf72dbbd4f 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Chart * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/DataSeries.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/DataSeries.php index 591ef755c92..56faf6ee00e 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/DataSeries.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/DataSeries.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Chart * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ @@ -155,7 +155,7 @@ class PHPExcel_Chart_DataSeries $this->_plotCategory = $plotCategory; $this->_smoothLine = $smoothLine; $this->_plotStyle = $plotStyle; - + if (is_null($plotDirection)) { $plotDirection = self::DIRECTION_COL; } diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/DataSeriesValues.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/DataSeriesValues.php index fccf5989cc9..731d2c92213 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/DataSeriesValues.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/DataSeriesValues.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Chart * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Exception.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Exception.php index 1447e8e8671..58b5b58220c 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Exception.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Exception.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Chart * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Layout.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Layout.php index 1581e3808b4..eefa157a90f 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Layout.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Layout.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Chart * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Legend.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Legend.php index 710b920d2ee..783b3d42970 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Legend.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Legend.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Chart * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/PlotArea.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/PlotArea.php index 93dab888f17..c917ce3056e 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/PlotArea.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/PlotArea.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Chart * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ @@ -115,7 +115,7 @@ class PHPExcel_Chart_PlotArea */ public function setPlotSeries($plotSeries = array()) { $this->_plotSeries = $plotSeries; - + return $this; } diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Renderer/jpgraph.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Renderer/jpgraph.php index 7645f5f7df1..dc7de6e66b9 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Renderer/jpgraph.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Renderer/jpgraph.php @@ -22,7 +22,7 @@ * @category PHPExcel * @package PHPExcel_Chart_Renderer * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Title.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Title.php index fd53fe21303..5d226c4b2b8 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Title.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Chart/Title.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Chart * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Comment.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Comment.php index a59784cb060..8b8cfdcc4fc 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Comment.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Comment.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/DocumentProperties.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/DocumentProperties.php index edd88ae806e..7b4a0e4358b 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/DocumentProperties.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/DocumentProperties.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/DocumentSecurity.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/DocumentSecurity.php index 6972b8c3a95..cf7ffb57c0f 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/DocumentSecurity.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/DocumentSecurity.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Exception.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Exception.php index a5f370d296e..578b9eeeec8 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Exception.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Exception.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/HashTable.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/HashTable.php index 8400fb7e62d..77106e1e05a 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/HashTable.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/HashTable.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/IComparable.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/IComparable.php index 3455897e09f..adb9a016d14 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/IComparable.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/IComparable.php @@ -19,7 +19,7 @@ * @category PHPExcel * @package PHPExcel * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/IOFactory.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/IOFactory.php index 9de49fd1338..1daa06a5339 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/IOFactory.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/IOFactory.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/NamedRange.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/NamedRange.php index 6ca18ea4419..fe245e3ee72 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/NamedRange.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/NamedRange.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Abstract.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Abstract.php index ebbb39bffcc..2d3c964b60b 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Abstract.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Abstract.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Reader * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ @@ -236,7 +236,7 @@ abstract class PHPExcel_Reader_Abstract implements PHPExcel_Reader_IReader public function securityScan($xml) { $pattern = '/\\0?' . implode('\\0?', str_split('_phpExcel; } - + /** * Read record data from stream, decrypting as required - * + * * @param string $data Data stream to read from * @param int $pos Position to start reading from * @param int $length Record data length - * + * * @return string Record data */ private function _readRecordData($data, $pos, $len) { $data = substr($data, $pos, $len); - + // File not encrypted, or record before encryption start point if ($this->_encryption == self::MS_BIFF_CRYPTO_NONE || $pos < $this->_encryptionStartPos) { return $data; } - + $recordData = ''; if ($this->_encryption == self::MS_BIFF_CRYPTO_RC4) { @@ -1144,7 +1144,7 @@ class PHPExcel_Reader_Excel5 extends PHPExcel_Reader_Abstract implements PHPExce // Keep track of the position of this decryptor. // We'll try and re-use it later if we can to speed things up $this->_rc4Pos = $pos + $len; - + } elseif ($this->_encryption == self::MS_BIFF_CRYPTO_XOR) { throw new PHPExcel_Reader_Exception('XOr encryption not supported'); } @@ -1663,7 +1663,7 @@ class PHPExcel_Reader_Excel5 extends PHPExcel_Reader_Abstract implements PHPExce * * -- "OpenOffice.org's Documentation of the Microsoft * Excel File Format" - * + * * The decryption functions and objects used from here on in * are based on the source of Spreadsheet-ParseExcel: * http://search.cpan.org/~jmcnamara/Spreadsheet-ParseExcel/ @@ -1675,12 +1675,12 @@ class PHPExcel_Reader_Excel5 extends PHPExcel_Reader_Abstract implements PHPExce if ($length != 54) { throw new PHPExcel_Reader_Exception('Unexpected file pass record length'); } - + $recordData = $this->_readRecordData($this->_data, $this->_pos + 4, $length); - + // move stream pointer to next record $this->_pos += 4 + $length; - + if (!$this->_verifyPassword( 'VelvetSweatshop', substr($recordData, 6, 16), @@ -1690,7 +1690,7 @@ class PHPExcel_Reader_Excel5 extends PHPExcel_Reader_Abstract implements PHPExce )) { throw new PHPExcel_Reader_Exception('Decryption password incorrect'); } - + $this->_encryption = self::MS_BIFF_CRYPTO_RC4; // Decryption required from the record after next onwards @@ -1699,10 +1699,10 @@ class PHPExcel_Reader_Excel5 extends PHPExcel_Reader_Abstract implements PHPExce /** * Make an RC4 decryptor for the given block - * + * * @var int $block Block for which to create decrypto * @var string $valContext MD5 context state - * + * * @return PHPExcel_Reader_Excel5_RC4 */ private function _makeKey($block, $valContext) @@ -1712,7 +1712,7 @@ class PHPExcel_Reader_Excel5 extends PHPExcel_Reader_Abstract implements PHPExce for ($i = 0; $i < 5; $i++) { $pwarray[$i] = $valContext[$i]; } - + $pwarray[5] = chr($block & 0xff); $pwarray[6] = chr(($block >> 8) & 0xff); $pwarray[7] = chr(($block >> 16) & 0xff); @@ -1730,13 +1730,13 @@ class PHPExcel_Reader_Excel5 extends PHPExcel_Reader_Abstract implements PHPExce /** * Verify RC4 file password - * + * * @var string $password Password to check * @var string $docid Document id * @var string $salt_data Salt data * @var string $hashedsalt_data Hashed salt data * @var string &$valContext Set to the MD5 context of the value - * + * * @return bool Success */ private function _verifyPassword($password, $docid, $salt_data, $hashedsalt_data, &$valContext) @@ -1766,7 +1766,7 @@ class PHPExcel_Reader_Excel5 extends PHPExcel_Reader_Abstract implements PHPExce if ((64 - $offset) < 5) { $tocopy = 64 - $offset; } - + for ($i = 0; $i <= $tocopy; $i++) { $pwarray[$offset + $i] = $mdContext1[$keyoffset + $i]; } @@ -1803,7 +1803,7 @@ class PHPExcel_Reader_Excel5 extends PHPExcel_Reader_Abstract implements PHPExce $salt = $key->RC4($salt_data); $hashedsalt = $key->RC4($hashedsalt_data); - + $salt .= "\x80" . str_repeat("\0", 47); $salt[56] = "\x80"; diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/Escher.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/Escher.php index 1325c1efb9d..8dc5e902eb9 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/Escher.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/Escher.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Reader_Excel5 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/MD5.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/MD5.php index c1f2bfcd2d4..097e9753ff3 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/MD5.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/MD5.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Reader_Excel5 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ @@ -218,4 +218,4 @@ class PHPExcel_Reader_Excel5_MD5 $binary = str_pad(decbin($decimal), 32, "0", STR_PAD_LEFT); return bindec(substr($binary, $bits).substr($binary, 0, $bits)); } -} +} \ No newline at end of file diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/RC4.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/RC4.php index 51185b92f2c..199ee1921cd 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/RC4.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/RC4.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Reader_Excel5 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Exception.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Exception.php index b937f8c5311..d0e2f57070e 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Exception.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Exception.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Reader * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Gnumeric.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Gnumeric.php index 84c0f3cfc50..584ded2879b 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Gnumeric.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/Gnumeric.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Reader * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/HTML.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/HTML.php index 241773b7b5e..26cc598c159 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/HTML.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/HTML.php @@ -22,7 +22,7 @@ * @category PHPExcel * @package PHPExcel_Reader * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ /** PHPExcel root directory */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/IReadFilter.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/IReadFilter.php index c104f5d33e1..f27cff8b979 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/IReadFilter.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/IReadFilter.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Reader * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/IReader.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/IReader.php index cdb70e8e462..b543df4a7b4 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/IReader.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/IReader.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Reader * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/OOCalc.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/OOCalc.php index 16dd8825f4a..7644df94143 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/OOCalc.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/OOCalc.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Reader * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/SYLK.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/SYLK.php index 0699c6ae940..b61118a3b4b 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/SYLK.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Reader/SYLK.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Reader * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/ReferenceHelper.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/ReferenceHelper.php index a661646c272..9eadab4d575 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/ReferenceHelper.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/ReferenceHelper.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText.php index 8c3ec575b2a..19326315bae 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_RichText * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText/ITextElement.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText/ITextElement.php index 4c5c8b7414f..9f1c6240a9b 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText/ITextElement.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText/ITextElement.php @@ -19,7 +19,7 @@ * @category PHPExcel * @package PHPExcel_RichText * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText/Run.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText/Run.php index 717eefc470a..4a8c592e34e 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText/Run.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText/Run.php @@ -19,7 +19,7 @@ * @category PHPExcel * @package PHPExcel_RichText * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText/TextElement.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText/TextElement.php index df935111951..ec7c2644ef2 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText/TextElement.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/RichText/TextElement.php @@ -19,7 +19,7 @@ * @category PHPExcel * @package PHPExcel_RichText * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Settings.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Settings.php index 95210da003d..c78d9350df7 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Settings.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Settings.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Settings * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/CodePage.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/CodePage.php index 82cde102f7a..89e2d19cfff 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/CodePage.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/CodePage.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Date.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Date.php index c0896d7d31a..75f367eac5a 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Date.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Date.php @@ -22,7 +22,7 @@ * @category PHPExcel * @package PHPExcel_Shared * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Drawing.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Drawing.php index 8f4024d683e..dbff74abce0 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Drawing.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Drawing.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher.php index 13fb1816c37..ddf68c65bd1 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared_Escher * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DgContainer.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DgContainer.php index 8b0bf29b22e..cb826db109e 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DgContainer.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DgContainer.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared_Escher * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DgContainer/SpgrContainer.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DgContainer/SpgrContainer.php index 9a9acef949d..b8ad8eafd73 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DgContainer/SpgrContainer.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DgContainer/SpgrContainer.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared_Escher * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php index fcc21773c0e..68231480188 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared_Escher * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer.php index 93b33f82d12..26696ec9db3 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared_Escher * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer.php index 0a16373e863..fba2e73fa2c 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared_Escher * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE.php index 8d6fb1ee834..418896a3419 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared_Escher * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php index 933697a5ff4..d9cc2f5c086 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared_Escher * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Excel5.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Excel5.php index 20dac2b947d..3caf675dd43 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Excel5.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Excel5.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/File.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/File.php index 07ea025d19f..52c9b9796f7 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/File.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/File.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Font.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Font.php index cdf8366b250..8e5b27b8fc1 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Font.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/Font.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE.php index 076ca7e3e30..9796282a806 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE.php @@ -287,7 +287,7 @@ class PHPExcel_Shared_OLE $pps = new PHPExcel_Shared_OLE_PPS_File($name); break; default: - continue 2; + continue; } fseek($fh, 1, SEEK_CUR); $pps->Type = $type; diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE/ChainedBlockStream.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE/ChainedBlockStream.php index 02b401cdb51..0736fc23248 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE/ChainedBlockStream.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE/ChainedBlockStream.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared_OLE * @copyright Copyright (c) 2006 - 2007 Christian Schmidt - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLERead.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLERead.php index 6d86fa6d74c..261bdde5812 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLERead.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLERead.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/PasswordHasher.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/PasswordHasher.php index ff45764bdba..891b6bc15e4 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/PasswordHasher.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/PasswordHasher.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/String.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/String.php index 21493f3346e..7d6b4192b07 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/String.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/String.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/TimeZone.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/TimeZone.php index 8b9ab56fe80..1792a295389 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/TimeZone.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/TimeZone.php @@ -22,7 +22,7 @@ * @category PHPExcel * @package PHPExcel_Shared * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/XMLWriter.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/XMLWriter.php index 1c5f563e7b7..beca51fc587 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/XMLWriter.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/XMLWriter.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/ZipArchive.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/ZipArchive.php index 321f7b9abec..9a801a84114 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/ZipArchive.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/ZipArchive.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared_ZipArchive * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ @@ -138,7 +138,7 @@ class PHPExcel_Shared_ZipArchive * @param string $fileName Filename for the file in zip archive * @return string $contents File string contents */ - public function getFromName($fileName) + public function getFromName($fileName) { $list = $this->_zip->listContent(); $listCount = count($list); @@ -158,7 +158,7 @@ class PHPExcel_Shared_ZipArchive $filename = substr($fileName, 1); $list_index = -1; for ($i = 0; $i < $listCount; ++$i) { - if (strtolower($list[$i]["filename"]) == strtolower($fileName) || + if (strtolower($list[$i]["filename"]) == strtolower($fileName) || strtolower($list[$i]["stored_filename"]) == strtolower($fileName)) { $list_index = $i; break; diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/ZipStreamWrapper.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/ZipStreamWrapper.php index 8b3a369f0fc..6e63d3ce3d6 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/ZipStreamWrapper.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/ZipStreamWrapper.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/bestFitClass.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/bestFitClass.php index 1f2e1f15b31..9ae8b006d03 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/bestFitClass.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/bestFitClass.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared_Trend * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/exponentialBestFitClass.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/exponentialBestFitClass.php index bdc6c209531..b524b5fe4cf 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/exponentialBestFitClass.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/exponentialBestFitClass.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared_Trend * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ @@ -145,4 +145,4 @@ class PHPExcel_Exponential_Best_Fit extends PHPExcel_Best_Fit } } // function __construct() -} // class exponentialBestFit +} // class exponentialBestFit \ No newline at end of file diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/linearBestFitClass.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/linearBestFitClass.php index c0cb14b36fb..7d811aa5b99 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/linearBestFitClass.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/linearBestFitClass.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared_Trend * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ @@ -108,4 +108,4 @@ class PHPExcel_Linear_Best_Fit extends PHPExcel_Best_Fit } } // function __construct() -} // class linearBestFit +} // class linearBestFit \ No newline at end of file diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/logarithmicBestFitClass.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/logarithmicBestFitClass.php index f9b253d1686..b43cd5edfad 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/logarithmicBestFitClass.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/logarithmicBestFitClass.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared_Trend * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ @@ -117,4 +117,4 @@ class PHPExcel_Logarithmic_Best_Fit extends PHPExcel_Best_Fit } } // function __construct() -} // class logarithmicBestFit +} // class logarithmicBestFit \ No newline at end of file diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/polynomialBestFitClass.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/polynomialBestFitClass.php index df9c2d69088..3d329eb7d42 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/polynomialBestFitClass.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/polynomialBestFitClass.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared_Trend * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ @@ -221,4 +221,4 @@ class PHPExcel_Polynomial_Best_Fit extends PHPExcel_Best_Fit } } // function __construct() -} // class polynomialBestFit +} // class polynomialBestFit \ No newline at end of file diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/powerBestFitClass.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/powerBestFitClass.php index 59adc257185..832669c9f5a 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/powerBestFitClass.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/powerBestFitClass.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared_Trend * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ @@ -139,4 +139,4 @@ class PHPExcel_Power_Best_Fit extends PHPExcel_Best_Fit } } // function __construct() -} // class powerBestFit +} // class powerBestFit \ No newline at end of file diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/trendClass.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/trendClass.php index c0c26fd1dd5..25d7eb1d8cc 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/trendClass.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/trend/trendClass.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Shared_Trend * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ @@ -153,4 +153,4 @@ class trendClass } } // function calculate() -} // class trendClass +} // class trendClass \ No newline at end of file diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style.php index e874ca9e318..9c29320eaa6 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Style * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Alignment.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Alignment.php index f38a6680a72..00825debf2c 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Alignment.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Alignment.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Style * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Border.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Border.php index 55bfbba774f..ec737bf0f14 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Border.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Border.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Style * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Borders.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Borders.php index 8299c21e8c5..21dcfeeefdb 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Borders.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Borders.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Style * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Color.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Color.php index 153a69031af..a56c9a6338b 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Color.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Color.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Style * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Conditional.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Conditional.php index f338bb6e331..aebf1e31333 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Conditional.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Conditional.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Style * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Fill.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Fill.php index 3c3c194ad73..6412ba6349d 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Fill.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Fill.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Style * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Font.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Font.php index 58e99ba03f2..296e348557a 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Font.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Font.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Style * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/NumberFormat.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/NumberFormat.php index 63159003b5f..62ab3e2752c 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/NumberFormat.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/NumberFormat.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Style * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Protection.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Protection.php index 685d6d2567e..8dc1f31ad70 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Protection.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Protection.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Style * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 1.4.5, 2007-08-23 */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Supervisor.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Supervisor.php index e8d587421fc..2d21f52934d 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Supervisor.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Style/Supervisor.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Style * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet.php index 61436d8f4a2..2b0b57ae4d2 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/AutoFilter.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/AutoFilter.php index 93c1c8f6c66..22c3574899c 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/AutoFilter.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/AutoFilter.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/AutoFilter/Column.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/AutoFilter/Column.php index e14197281f2..1a6fb4eb8df 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/AutoFilter/Column.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/AutoFilter/Column.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/AutoFilter/Column/Rule.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/AutoFilter/Column/Rule.php index 0db64ed8181..e602646401b 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/AutoFilter/Column/Rule.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/AutoFilter/Column/Rule.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/BaseDrawing.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/BaseDrawing.php index cca5da9eb87..5a760fcad11 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/BaseDrawing.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/BaseDrawing.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/CellIterator.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/CellIterator.php index 78596b42d67..239cb4ff1f5 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/CellIterator.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/CellIterator.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 1.8.0, 2014-03-02 */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Column.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Column.php index c754d552239..94af2135725 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Column.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Column.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/ColumnCellIterator.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/ColumnCellIterator.php index c1906017a68..a9ef49f00d7 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/ColumnCellIterator.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/ColumnCellIterator.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/ColumnDimension.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/ColumnDimension.php index 2c0ff9ec14e..bc6a042eb42 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/ColumnDimension.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/ColumnDimension.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/ColumnIterator.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/ColumnIterator.php index 24f0ab3eade..3030b3f434c 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/ColumnIterator.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/ColumnIterator.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Drawing.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Drawing.php index 2186c0afaeb..e8d87f1d04e 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Drawing.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Drawing.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Worksheet_Drawing * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Drawing/Shadow.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Drawing/Shadow.php index 40c5d001a37..98b95b1a709 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Drawing/Shadow.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Drawing/Shadow.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Worksheet_Drawing * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/HeaderFooter.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/HeaderFooter.php index 3912d7d238e..8037416383f 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/HeaderFooter.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/HeaderFooter.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/HeaderFooterDrawing.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/HeaderFooterDrawing.php index 18d49bb50f2..966664f932d 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/HeaderFooterDrawing.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/HeaderFooterDrawing.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/MemoryDrawing.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/MemoryDrawing.php index 58e0418df99..80fc6d1f0b3 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/MemoryDrawing.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/MemoryDrawing.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/PageMargins.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/PageMargins.php index b6fdb1fcb93..b05a291ff3b 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/PageMargins.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/PageMargins.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/PageSetup.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/PageSetup.php index 2cf93220936..ba2792fac9f 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/PageSetup.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/PageSetup.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Protection.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Protection.php index 27744de67f2..da66bf7632f 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Protection.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Protection.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Row.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Row.php index 7c0cac8f9f5..33043279035 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Row.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/Row.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/RowCellIterator.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/RowCellIterator.php index 8018a8cfec3..96c6b419c5e 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/RowCellIterator.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/RowCellIterator.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/RowDimension.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/RowDimension.php index 0702ef792be..bff89a0809e 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/RowDimension.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/RowDimension.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/RowIterator.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/RowIterator.php index 1c466a36bf6..110d8621437 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/RowIterator.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/RowIterator.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/SheetView.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/SheetView.php index 0ce42d053e3..8ced835ddad 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/SheetView.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/SheetView.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Worksheet * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/WorksheetIterator.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/WorksheetIterator.php index f06ae68f9fd..ad17fd90342 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/WorksheetIterator.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/WorksheetIterator.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Abstract.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Abstract.php index f66e4d9b865..fca6a60cc80 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Abstract.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Abstract.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/CSV.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/CSV.php index 0ef92d3d232..97961ccca43 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/CSV.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/CSV.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_CSV * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007.php index b6735ea53e4..4cf14ac1c4b 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Chart.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Chart.php index 433d23c0def..4846910fa29 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Chart.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Chart.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Comments.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Comments.php index a1ca8014754..dc809fa8e32 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Comments.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Comments.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/ContentTypes.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/ContentTypes.php index ef82aeb7c50..557853654a3 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/ContentTypes.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/ContentTypes.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/DocProps.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/DocProps.php index 29b472c0142..f8821379c65 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/DocProps.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/DocProps.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Drawing.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Drawing.php index 8459dc46742..1cf971ed4d1 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Drawing.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Drawing.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Rels.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Rels.php index 3952124efe2..a7d36c0a9d0 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Rels.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Rels.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/RelsRibbon.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/RelsRibbon.php index 6ed7a4a3880..615f2cbd993 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/RelsRibbon.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/RelsRibbon.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/RelsVBA.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/RelsVBA.php index d5c28220e02..3f87d81f2a7 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/RelsVBA.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/RelsVBA.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/StringTable.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/StringTable.php index 712b38f4c0f..e8ca1c5a566 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/StringTable.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/StringTable.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Style.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Style.php index 4fcd962362c..d38c6eacc02 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Style.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Style.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Theme.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Theme.php index 425cda69b75..c67b948165c 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Theme.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Theme.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Workbook.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Workbook.php index 9da17e285af..f30929476e1 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Workbook.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Workbook.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Worksheet.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Worksheet.php index 23e2f5b4c28..5cb803e5261 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Worksheet.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Worksheet.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/WriterPart.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/WriterPart.php index 966a9ed57d4..68b1124fd54 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/WriterPart.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/WriterPart.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_Excel2007 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5.php index a881100d6fe..1a990d045ad 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_Excel5 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/BIFFwriter.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/BIFFwriter.php index e6878f00861..86201134d0f 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/BIFFwriter.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/BIFFwriter.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_Excel5 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Escher.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Escher.php index fb4ce3ab40d..92e6a8d8848 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Escher.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Escher.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_Excel5 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Font.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Font.php index 08cc8cbde1f..0df1943826b 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Font.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Font.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_Excel5 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Parser.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Parser.php index 5e48efa7988..bc6ddb132b6 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Parser.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Parser.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_Excel5 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Workbook.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Workbook.php index d29c557477f..ecfac5dc015 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Workbook.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Workbook.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_Excel5 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Worksheet.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Worksheet.php index 49a200b59ff..fb75499b118 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Worksheet.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Worksheet.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_Excel5 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ @@ -3678,4 +3678,4 @@ class PHPExcel_Writer_Excel5_Worksheet extends PHPExcel_Writer_Excel5_BIFFwriter $data .= $cellRange; $this->_append($header . $data); } -} +} \ No newline at end of file diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Xf.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Xf.php index 1d3eb817d5b..99f1b2a0c9a 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Xf.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Xf.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_Excel5 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Exception.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Exception.php index fcd64f0a7cd..1715587a278 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Exception.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Exception.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/HTML.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/HTML.php index 52c101d1c70..63c5d47872d 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/HTML.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/HTML.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_HTML * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ @@ -610,9 +610,9 @@ class PHPExcel_Writer_HTML extends PHPExcel_Writer_Abstract implements PHPExcel_ } $html .= '
    '; - $html .= 'getOffsetX() . 'px; top: ' . $drawing->getOffsetY() . 'px; width: ' . + $drawing->getWidth() . 'px; height: ' . $drawing->getHeight() . 'px;" src="' . $imageData . '" border="0" />'; $html .= '
    '; } @@ -971,9 +971,9 @@ class PHPExcel_Writer_HTML extends PHPExcel_Writer_Abstract implements PHPExcel_ private function _createCSSStyleBorder(PHPExcel_Style_Border $pStyle) { // Create CSS // $css = $this->_mapBorderStyle($pStyle->getBorderStyle()) . ' #' . $pStyle->getColor()->getRGB(); - // Create CSS - add !important to non-none border styles for merged cells - $borderStyle = $this->_mapBorderStyle($pStyle->getBorderStyle()); - $css = $borderStyle . ' #' . $pStyle->getColor()->getRGB() . (($borderStyle == 'none') ? '' : ' !important'); + // Create CSS - add !important to non-none border styles for merged cells + $borderStyle = $this->_mapBorderStyle($pStyle->getBorderStyle()); + $css = $borderStyle . ' #' . $pStyle->getColor()->getRGB() . (($borderStyle == 'none') ? '' : ' !important'); // Return return $css; @@ -1024,7 +1024,7 @@ class PHPExcel_Writer_HTML extends PHPExcel_Writer_Abstract implements PHPExcel_ // Construct HTML $html = ''; $html .= $this->_setMargins($pSheet); - + if (!$this->_useInlineCss) { $gridlines = $pSheet->getShowGridlines() ? ' gridlines' : ''; $html .= ' ' . PHP_EOL; @@ -1544,5 +1544,5 @@ class PHPExcel_Writer_HTML extends PHPExcel_Writer_Abstract implements PHPExcel_ return "\n"; } - + } diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/IWriter.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/IWriter.php index bdea775abbf..f0b94b9e9ab 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/IWriter.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/IWriter.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument.php index e724b0aa5be..2cbe6f90424 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_OpenDocument * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Cell/Comment.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Cell/Comment.php index 8255acd93bc..88406ed1ad2 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Cell/Comment.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Cell/Comment.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_OpenDocument * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Content.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Content.php index 42477cc9abd..625b3541747 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Content.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Content.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_OpenDocument * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Meta.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Meta.php index f2f7ddf353c..7f39e558924 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Meta.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Meta.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_OpenDocument * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/MetaInf.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/MetaInf.php index cd880455573..301d39db99f 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/MetaInf.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/MetaInf.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_OpenDocument * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Mimetype.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Mimetype.php index 8407ee1cb91..99ff638a9bb 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Mimetype.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Mimetype.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_OpenDocument * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Settings.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Settings.php index 576e203c777..557e748d419 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Settings.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Settings.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_OpenDocument * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Styles.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Styles.php index a5dcd435c85..d886736328f 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Styles.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Styles.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_OpenDocument * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Thumbnails.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Thumbnails.php index 90d791046c8..a7e85c45604 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Thumbnails.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/Thumbnails.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_OpenDocument * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/WriterPart.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/WriterPart.php index d5953555ba2..e6e713a1b3a 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/WriterPart.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/OpenDocument/WriterPart.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_OpenDocument * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF.php index ead6c0a5217..3131ee0a127 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_PDF * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/Core.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/Core.php index ae27e99e22c..3842334d9f7 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/Core.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/Core.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_PDF * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/DomPDF.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/DomPDF.php index 5fe156d38a4..01e4e0122a8 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/DomPDF.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/DomPDF.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_PDF * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/mPDF.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/mPDF.php index 8fe17810aa2..dddc097d343 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/mPDF.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/mPDF.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_PDF * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/tcPDF.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/tcPDF.php index 5d6556ad573..4e1937afc70 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/tcPDF.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/tcPDF.php @@ -21,7 +21,7 @@ * @category PHPExcel * @package PHPExcel_Writer_PDF * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) - * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/bg/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/bg/config index 4a2b2284ed0..4cecddb3c3c 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/bg/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/bg/config @@ -21,7 +21,7 @@ ## @category PHPExcel ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/cs/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/cs/config index 984d0e53f92..500460e8ab5 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/cs/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/cs/config @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/cs/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/cs/functions index 04a89c34f3a..b648e20c2b0 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/cs/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/cs/functions @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/da/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/da/config index 43efd9131cb..b959379b133 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/da/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/da/config @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## @@ -37,7 +37,7 @@ currencySymbol = kr ## -## Excel Error Codes (For future use) +## Excel Error Codes (For future use) ## NULL = #NUL! DIV0 = #DIVISION/0! diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/da/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/da/functions index d48102caa8b..1599ccd1815 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/da/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/da/functions @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/de/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/de/config index 39712a749aa..7e2ba9d2891 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/de/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/de/config @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## @@ -36,7 +36,7 @@ currencySymbol = € ## -## Excel Error Codes (For future use) +## Excel Error Codes (For future use) ## NULL = #NULL! DIV0 = #DIV/0! diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/de/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/de/functions index 0d464e84662..8214f384878 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/de/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/de/functions @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/en/uk/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/en/uk/config index 4f45b4a06ac..00acff8bc34 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/en/uk/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/en/uk/config @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/es/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/es/config index 584a14e7883..8f7d9e084ec 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/es/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/es/config @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## @@ -36,7 +36,7 @@ currencySymbol = $ ## I'm surprised that the Excel Documentation suggests $ rath ## -## Excel Error Codes (For future use) +## Excel Error Codes (For future use) ## NULL = #¡NULO! DIV0 = #¡DIV/0! diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/es/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/es/functions index 3a809f5dbfd..aa065969f3d 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/es/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/es/functions @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fi/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fi/config index da95d1c935d..36bc3fc70b8 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fi/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fi/config @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## @@ -36,7 +36,7 @@ currencySymbol = $ # Symbol not known, should it be a € (Euro)? ## -## Excel Error Codes (For future use) +## Excel Error Codes (For future use) ## NULL = #TYHJÄ! DIV0 = #JAKO/0! diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fi/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fi/functions index 3a19d5247e4..c10b3b9f381 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fi/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fi/functions @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fr/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fr/config index bc6e462b7f4..80f7d5411a6 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fr/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fr/config @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## @@ -36,7 +36,7 @@ currencySymbol = € ## -## Excel Error Codes (For future use) +## Excel Error Codes (For future use) ## NULL = #NUL! DIV0 = #DIV/0! diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fr/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fr/functions index 89092b11487..cce977b15bc 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fr/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/fr/functions @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/hu/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/hu/config index 3aa9223b600..c6c315814c4 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/hu/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/hu/config @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/hu/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/hu/functions index 487ff95d0a3..941c1b740d0 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/hu/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/hu/functions @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/it/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/it/config index c78c1d1ead2..97af8b9a570 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/it/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/it/config @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## @@ -36,7 +36,7 @@ currencySymbol = € ## -## Excel Error Codes (For future use) +## Excel Error Codes (For future use) ## NULL = #NULLO! DIV0 = #DIV/0! diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/it/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/it/functions index c38e686a062..862cf8302c8 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/it/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/it/functions @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/nl/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/nl/config index 3bc76b7e32f..a14b476c945 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/nl/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/nl/config @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## @@ -36,7 +36,7 @@ currencySymbol = € ## -## Excel Error Codes (For future use) +## Excel Error Codes (For future use) ## NULL = #LEEG! DIV0 = #DEEL/0! diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/nl/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/nl/functions index 16d3a145196..79b7acd1ef9 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/nl/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/nl/functions @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/no/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/no/config index 84205d2d391..e3e3cc4f786 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/no/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/no/config @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## @@ -36,7 +36,7 @@ currencySymbol = kr ## -## Excel Error Codes (For future use) +## Excel Error Codes (For future use) ## NULL = #NULL! DIV0 = #DIV/0! diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/no/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/no/functions index ba78bd22696..3cccce42a1d 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/no/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/no/functions @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pl/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pl/config index 324e0b7dff4..ea111797270 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pl/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pl/config @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## @@ -36,7 +36,7 @@ currencySymbol = zł ## -## Excel Error Codes (For future use) +## Excel Error Codes (For future use) ## NULL = #ZERO! DIV0 = #DZIEL/0! diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pl/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pl/functions index f01dba8c572..5607f8f672c 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pl/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pl/functions @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pt/br/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pt/br/config index d4b50e67aec..d39c5c63438 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pt/br/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pt/br/config @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## @@ -36,7 +36,7 @@ currencySymbol = R$ ## -## Excel Error Codes (For future use) +## Excel Error Codes (For future use) ## NULL = #NULO! DIV0 = #DIV/0! diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pt/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pt/config index 294b5457a4a..5e486bb29ff 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pt/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/pt/config @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## @@ -36,7 +36,7 @@ currencySymbol = € ## -## Excel Error Codes (For future use) +## Excel Error Codes (For future use) ## NULL = #NULO! DIV0 = #DIV/0! diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/ru/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/ru/config index f906538cf0e..098c8075d29 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/ru/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/ru/config @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## @@ -36,7 +36,7 @@ currencySymbol = р ## -## Excel Error Codes (For future use) +## Excel Error Codes (For future use) ## NULL = #ПУСТО! DIV0 = #ДЕЛ/0! diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/ru/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/ru/functions index 830859f5b08..86bcd4f63a7 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/ru/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/ru/functions @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## Data in this file derived from information provided by web-junior (http://www.web-junior.net/) diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/sv/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/sv/config index bdca4752b60..c2094c06249 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/sv/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/sv/config @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## @@ -36,7 +36,7 @@ currencySymbol = kr ## -## Excel Error Codes (For future use) +## Excel Error Codes (For future use) ## NULL = #Skärning! DIV0 = #Division/0! diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/tr/config b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/tr/config index dd0649a582d..cca084b2ba5 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/tr/config +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/tr/config @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Settings ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## @@ -36,7 +36,7 @@ currencySymbol = YTL ## -## Excel Error Codes (For future use) +## Excel Error Codes (For future use) ## NULL = #BOŞ! DIV0 = #SAYI/0! diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/tr/functions b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/tr/functions index 9c1eb6e3d78..3e7c225f402 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/tr/functions +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/locale/tr/functions @@ -1,6 +1,6 @@ ## ## PHPExcel -## +## ## Copyright (c) 2006 - 2013 PHPExcel ## ## This library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ ## @category PHPExcel ## @package PHPExcel_Calculation ## @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -## @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +## @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL ## @version ##VERSION##, ##DATE## ## ## Data in this file derived from http://www.piuha.fi/excel-function-name-translation/ diff --git a/htdocs/includes/phpoffice/phpexcel/changelog.txt b/htdocs/includes/phpoffice/phpexcel/changelog.txt index df959f4cfab..29377308d80 100644 --- a/htdocs/includes/phpoffice/phpexcel/changelog.txt +++ b/htdocs/includes/phpoffice/phpexcel/changelog.txt @@ -18,7 +18,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) -* @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version 1.8.1, 2015-04-30 ************************************************************************************** @@ -1427,4 +1427,4 @@ Initial version: - Add one or more Worksheet objects - Add cells to Worksheet objects - Export Spreadsheet object to Excel 2007 OpenXML format -- Each cell supports the following data formats: string, number, formula, boolean. +- Each cell supports the following data formats: string, number, formula, boolean. \ No newline at end of file diff --git a/htdocs/includes/phpoffice/phpexcel/install.txt b/htdocs/includes/phpoffice/phpexcel/install.txt index 18a723e5eba..1a999d258e8 100644 --- a/htdocs/includes/phpoffice/phpexcel/install.txt +++ b/htdocs/includes/phpoffice/phpexcel/install.txt @@ -18,7 +18,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) -* @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL +* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## ************************************************************************************** From e60b28136172ac53f6b5271ab6660ff3e12d04c5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 10:20:25 +0200 Subject: [PATCH 207/484] Fix missing dolibarr patch --- .../includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE.php index 9796282a806..076ca7e3e30 100644 --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE.php +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE.php @@ -287,7 +287,7 @@ class PHPExcel_Shared_OLE $pps = new PHPExcel_Shared_OLE_PPS_File($name); break; default: - continue; + continue 2; } fseek($fh, 1, SEEK_CUR); $pps->Type = $type; From cf3c69ce0f90bbf03004e43d0bcf4a6fc0e6a79e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 10:29:06 +0200 Subject: [PATCH 208/484] Patch --- htdocs/includes/tecnickcom/tcpdf/include/barcodes/qrcode.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/includes/tecnickcom/tcpdf/include/barcodes/qrcode.php b/htdocs/includes/tecnickcom/tcpdf/include/barcodes/qrcode.php index c99d3ed31ab..59e73e25984 100644 --- a/htdocs/includes/tecnickcom/tcpdf/include/barcodes/qrcode.php +++ b/htdocs/includes/tecnickcom/tcpdf/include/barcodes/qrcode.php @@ -236,6 +236,7 @@ if (!defined('QRCODEDEFS')) { /** * if false, checks all masks available, otherwise value tells count of masks need to be checked, mask id are got randomly */ + // @CHANGE DOL LDR define('QR_FIND_FROM_RANDOM', false); /** From f9f8cf9627f86c33ebae53714733d70041b53d12 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 10:29:22 +0200 Subject: [PATCH 209/484] Commit updated lock file --- composer.lock | 655 +++++++++++++++++--------------------------------- 1 file changed, 225 insertions(+), 430 deletions(-) diff --git a/composer.lock b/composer.lock index 90843be163f..791f4efebbf 100644 --- a/composer.lock +++ b/composer.lock @@ -4,102 +4,8 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "949d55d933c4e0725a2086a189595483", + "content-hash": "4cbad11fe964bad39172da7e91177d26", "packages": [ - { - "name": "atgp/factur-x", - "version": "v1.0.1", - "source": { - "type": "git", - "url": "https://github.com/atgp/factur-x.git", - "reference": "22e22c3b5dfbb0f25afbd7c3fe69a0305199414c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/atgp/factur-x/zipball/22e22c3b5dfbb0f25afbd7c3fe69a0305199414c", - "reference": "22e22c3b5dfbb0f25afbd7c3fe69a0305199414c", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-fileinfo": "*", - "ext-libxml": "*", - "ext-simplexml": "*", - "ext-zlib": "*", - "php": ">=5.6", - "setasign/fpdi-fpdf": "^2.0", - "smalot/pdfparser": "^0.13.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "Atgp\\FacturX\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Lucas Gouy-Pailler", - "email": "lucas.gouypailler@atgp.net" - } - ], - "description": "PHP library to manage your Factur-X / ZUGFeRD 2.0 PDF invoices files", - "keywords": [ - "ZUGFeRD", - "factur-x", - "invoice", - "pdf", - "php", - "xml" - ], - "time": "2019-01-16T10:09:35+00:00" - }, - { - "name": "ccampbell/chromephp", - "version": "4.1.0", - "source": { - "type": "git", - "url": "https://github.com/ccampbell/chromephp.git", - "reference": "c3c297615d48ae5b2a86a82311152d1ed095fcef" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ccampbell/chromephp/zipball/c3c297615d48ae5b2a86a82311152d1ed095fcef", - "reference": "c3c297615d48ae5b2a86a82311152d1ed095fcef", - "shasum": "" - }, - "require": { - "php": ">=5.0.0" - }, - "type": "library", - "autoload": { - "psr-0": { - "ChromePhp": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Craig Campbell", - "email": "iamcraigcampbell@gmail.com", - "homepage": "http://craig.is", - "role": "Developer" - } - ], - "description": "Log variables to the Chrome console (via Chrome Logger Google Chrome extension).", - "homepage": "http://github.com/ccampbell/chromephp", - "keywords": [ - "log", - "logging" - ], - "time": "2013-06-26T03:44:33+00:00" - }, { "name": "ckeditor/ckeditor", "version": "4.6.2", @@ -207,25 +113,23 @@ }, { "name": "mobiledetect/mobiledetectlib", - "version": "2.8.17", + "version": "2.8.33", "source": { "type": "git", "url": "https://github.com/serbanghita/Mobile-Detect.git", - "reference": "b87da5f63a76e9615a0c74fcf168657b1ea7e41d" + "reference": "cd385290f9a0d609d2eddd165a1e44ec1bf12102" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/b87da5f63a76e9615a0c74fcf168657b1ea7e41d", - "reference": "b87da5f63a76e9615a0c74fcf168657b1ea7e41d", + "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/cd385290f9a0d609d2eddd165a1e44ec1bf12102", + "reference": "cd385290f9a0d609d2eddd165a1e44ec1bf12102", "shasum": "" }, "require": { "php": ">=5.0.0" }, "require-dev": { - "codeclimate/php-test-reporter": "dev-master", - "johnkary/phpunit-speedtrap": "~1.0@dev", - "phpunit/phpunit": "*" + "phpunit/phpunit": "~4.8.35||~5.7" }, "type": "library", "autoload": { @@ -257,7 +161,7 @@ "mobile detector", "php mobile detect" ], - "time": "2015-09-17T14:45:21+00:00" + "time": "2018-09-01T15:05:15+00:00" }, { "name": "phpoffice/phpexcel", @@ -324,12 +228,12 @@ "source": { "type": "git", "url": "https://github.com/Luracast/Restler-Framework.git", - "reference": "6bc0968f8c8aa47c9a62d548b9d7e34f1ed4fc09" + "reference": "0f6b0f26152f83e43a2a86820206c455095fb2b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Luracast/Restler-Framework/zipball/6bc0968f8c8aa47c9a62d548b9d7e34f1ed4fc09", - "reference": "6bc0968f8c8aa47c9a62d548b9d7e34f1ed4fc09", + "url": "https://api.github.com/repos/Luracast/Restler-Framework/zipball/0f6b0f26152f83e43a2a86820206c455095fb2b0", + "reference": "0f6b0f26152f83e43a2a86820206c455095fb2b0", "shasum": "" }, "require": { @@ -376,209 +280,20 @@ "rest", "server" ], - "time": "2018-01-06T01:39:27+00:00" - }, - { - "name": "setasign/fpdf", - "version": "1.8.1", - "source": { - "type": "git", - "url": "https://github.com/Setasign/FPDF.git", - "reference": "2c68c9e6c034ac3187d25968790139a73184cdb1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Setasign/FPDF/zipball/2c68c9e6c034ac3187d25968790139a73184cdb1", - "reference": "2c68c9e6c034ac3187d25968790139a73184cdb1", - "shasum": "" - }, - "type": "library", - "autoload": { - "classmap": [ - "fpdf.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "no usage restriction" - ], - "authors": [ - { - "name": "Olivier Plathey", - "email": "oliver@fpdf.org", - "homepage": "http://fpdf.org/" - } - ], - "description": "FPDF is a PHP class which allows to generate PDF files with pure PHP. F from FPDF stands for Free: you may use it for any kind of usage and modify it to suit your needs.", - "homepage": "http://www.fpdf.org", - "keywords": [ - "fpdf", - "pdf" - ], - "time": "2016-01-01T17:47:15+00:00" - }, - { - "name": "setasign/fpdi", - "version": "v2.2.0", - "source": { - "type": "git", - "url": "https://github.com/Setasign/FPDI.git", - "reference": "3c266002f8044f61b17329f7cd702d44d73f0f7f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Setasign/FPDI/zipball/3c266002f8044f61b17329f7cd702d44d73f0f7f", - "reference": "3c266002f8044f61b17329f7cd702d44d73f0f7f", - "shasum": "" - }, - "require": { - "ext-zlib": "*", - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "~5.7", - "setasign/fpdf": "~1.8", - "setasign/tfpdf": "1.25", - "tecnickcom/tcpdf": "~6.2" - }, - "suggest": { - "setasign/fpdf": "FPDI will extend this class but as it is also possible to use TCPDF or tFPDF as an alternative. There's no fixed dependency configured.", - "setasign/fpdi-fpdf": "Use this package to automatically evaluate dependencies to FPDF.", - "setasign/fpdi-tcpdf": "Use this package to automatically evaluate dependencies to TCPDF.", - "setasign/fpdi-tfpdf": "Use this package to automatically evaluate dependencies to tFPDF." - }, - "type": "library", - "autoload": { - "psr-4": { - "setasign\\Fpdi\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jan Slabon", - "email": "jan.slabon@setasign.com", - "homepage": "https://www.setasign.com" - }, - { - "name": "Maximilian Kresse", - "email": "maximilian.kresse@setasign.com", - "homepage": "https://www.setasign.com" - } - ], - "description": "FPDI is a collection of PHP classes facilitating developers to read pages from existing PDF documents and use them as templates in FPDF. Because it is also possible to use FPDI with TCPDF, there are no fixed dependencies defined. Please see suggestions for packages which evaluates the dependencies automatically.", - "homepage": "https://www.setasign.com/fpdi", - "keywords": [ - "fpdf", - "fpdi", - "pdf" - ], - "time": "2019-01-30T14:11:19+00:00" - }, - { - "name": "setasign/fpdi-fpdf", - "version": "v2.2.0", - "source": { - "type": "git", - "url": "https://github.com/Setasign/FPDI-FPDF.git", - "reference": "e4363ac09e1b766b38ebea1c3cbe82b3480a11e9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Setasign/FPDI-FPDF/zipball/e4363ac09e1b766b38ebea1c3cbe82b3480a11e9", - "reference": "e4363ac09e1b766b38ebea1c3cbe82b3480a11e9", - "shasum": "" - }, - "require": { - "setasign/fpdf": "^1.8", - "setasign/fpdi": "^2.2" - }, - "type": "library", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jan Slabon", - "email": "jan.slabon@setasign.com", - "homepage": "https://www.setasign.com" - } - ], - "description": "Kind of metadata package for dependencies of the latest versions of FPDI and FPDF.", - "homepage": "https://www.setasign.com/fpdi", - "keywords": [ - "fpdf", - "fpdi", - "pdf" - ], - "time": "2019-01-30T14:38:19+00:00" - }, - { - "name": "smalot/pdfparser", - "version": "v0.13.3", - "source": { - "type": "git", - "url": "https://github.com/smalot/pdfparser.git", - "reference": "c3a050fb9b47ec3a0ce1b6f1b6f48ec822ba04d6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/smalot/pdfparser/zipball/c3a050fb9b47ec3a0ce1b6f1b6f48ec822ba04d6", - "reference": "c3a050fb9b47ec3a0ce1b6f1b6f48ec822ba04d6", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "ext-zlib": "*", - "php": ">=5.3.0", - "tecnickcom/tcpdf": "~6.0" - }, - "require-dev": { - "atoum/atoum": "^2.8 | ^3.0" - }, - "type": "library", - "autoload": { - "psr-0": { - "Smalot\\PdfParser\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-3.0" - ], - "authors": [ - { - "name": "Sebastien MALOT", - "email": "sebastien@malot.fr" - } - ], - "description": "Pdf parser library. Can read and extract information from pdf file.", - "homepage": "http://www.pdfparser.org", - "keywords": [ - "extract", - "parse", - "parser", - "pdf", - "text" - ], - "time": "2019-01-11T08:49:57+00:00" + "time": "2019-05-12T15:15:11+00:00" }, { "name": "tecnickcom/tcpdf", - "version": "6.2.26", + "version": "6.3.2", "source": { "type": "git", "url": "https://github.com/tecnickcom/TCPDF.git", - "reference": "367241059ca166e3a76490f4448c284e0a161f15" + "reference": "9fde7bb9b404b945e7ea88fb7eccd23d9a4e324b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/367241059ca166e3a76490f4448c284e0a161f15", - "reference": "367241059ca166e3a76490f4448c284e0a161f15", + "url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/9fde7bb9b404b945e7ea88fb7eccd23d9a4e324b", + "reference": "9fde7bb9b404b945e7ea88fb7eccd23d9a4e324b", "shasum": "" }, "require": { @@ -627,7 +342,7 @@ "pdf417", "qrcode" ], - "time": "2018-10-16T17:24:05+00:00" + "time": "2019-09-20T09:35:01+00:00" } ], "packages-dev": [ @@ -687,32 +402,32 @@ }, { "name": "jakub-onderka/php-console-color", - "version": "0.1", + "version": "v0.2", "source": { "type": "git", "url": "https://github.com/JakubOnderka/PHP-Console-Color.git", - "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1" + "reference": "d5deaecff52a0d61ccb613bb3804088da0307191" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/e0b393dacf7703fc36a4efc3df1435485197e6c1", - "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1", + "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/d5deaecff52a0d61ccb613bb3804088da0307191", + "reference": "d5deaecff52a0d61ccb613bb3804088da0307191", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": ">=5.4.0" }, "require-dev": { "jakub-onderka/php-code-style": "1.0", - "jakub-onderka/php-parallel-lint": "0.*", + "jakub-onderka/php-parallel-lint": "1.0", "jakub-onderka/php-var-dump-check": "0.*", - "phpunit/phpunit": "3.7.*", + "phpunit/phpunit": "~4.3", "squizlabs/php_codesniffer": "1.*" }, "type": "library", "autoload": { - "psr-0": { - "JakubOnderka\\PhpConsoleColor": "src/" + "psr-4": { + "JakubOnderka\\PhpConsoleColor\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -722,41 +437,41 @@ "authors": [ { "name": "Jakub Onderka", - "email": "jakub.onderka@gmail.com", - "homepage": "http://www.acci.cz" + "email": "jakub.onderka@gmail.com" } ], - "time": "2014-04-08T15:00:19+00:00" + "time": "2018-09-29T17:23:10+00:00" }, { "name": "jakub-onderka/php-console-highlighter", - "version": "v0.3.2", + "version": "v0.4", "source": { "type": "git", "url": "https://github.com/JakubOnderka/PHP-Console-Highlighter.git", - "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5" + "reference": "9f7a229a69d52506914b4bc61bfdb199d90c5547" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/7daa75df45242c8d5b75a22c00a201e7954e4fb5", - "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5", + "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/9f7a229a69d52506914b4bc61bfdb199d90c5547", + "reference": "9f7a229a69d52506914b4bc61bfdb199d90c5547", "shasum": "" }, "require": { - "jakub-onderka/php-console-color": "~0.1", - "php": ">=5.3.0" + "ext-tokenizer": "*", + "jakub-onderka/php-console-color": "~0.2", + "php": ">=5.4.0" }, "require-dev": { "jakub-onderka/php-code-style": "~1.0", - "jakub-onderka/php-parallel-lint": "~0.5", + "jakub-onderka/php-parallel-lint": "~1.0", "jakub-onderka/php-var-dump-check": "~0.1", "phpunit/phpunit": "~4.0", "squizlabs/php_codesniffer": "~1.5" }, "type": "library", "autoload": { - "psr-0": { - "JakubOnderka\\PhpConsoleHighlighter": "src/" + "psr-4": { + "JakubOnderka\\PhpConsoleHighlighter\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -770,7 +485,8 @@ "homepage": "http://www.acci.cz/" } ], - "time": "2015-04-20T18:58:01+00:00" + "description": "Highlight PHP code in terminal", + "time": "2018-09-29T18:48:56+00:00" }, { "name": "jakub-onderka/php-parallel-lint", @@ -821,16 +537,16 @@ }, { "name": "phpdocumentor/reflection-common", - "version": "1.0", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c" + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/144c307535e82c8fdcaacbcfc1d6d8eeb896687c", - "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", "shasum": "" }, "require": { @@ -871,33 +587,39 @@ "reflection", "static analysis" ], - "time": "2015-12-27T11:43:31+00:00" + "time": "2017-09-11T18:02:19+00:00" }, { "name": "phpdocumentor/reflection-docblock", - "version": "3.1.1", + "version": "4.3.2", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e" + "reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/8331b5efe816ae05461b7ca1e721c01b46bafb3e", - "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/b83ff7cfcfee7827e1e78b637a5904fe6a96698e", + "reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e", "shasum": "" }, "require": { - "php": ">=5.5", - "phpdocumentor/reflection-common": "^1.0@dev", - "phpdocumentor/type-resolver": "^0.2.0", + "php": "^7.0", + "phpdocumentor/reflection-common": "^1.0.0 || ^2.0.0", + "phpdocumentor/type-resolver": "~0.4 || ^1.0.0", "webmozart/assert": "^1.0" }, "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^4.4" + "doctrine/instantiator": "^1.0.5", + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^6.4" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev" + } + }, "autoload": { "psr-4": { "phpDocumentor\\Reflection\\": [ @@ -916,29 +638,29 @@ } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2016-09-30T07:12:33+00:00" + "time": "2019-09-12T14:27:41+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "0.2", + "version": "0.5.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "b39c7a5b194f9ed7bd0dd345c751007a41862443" + "reference": "cf842904952e64e703800d094cdf34e715a8a3ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/b39c7a5b194f9ed7bd0dd345c751007a41862443", - "reference": "b39c7a5b194f9ed7bd0dd345c751007a41862443", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/cf842904952e64e703800d094cdf34e715a8a3ae", + "reference": "cf842904952e64e703800d094cdf34e715a8a3ae", "shasum": "" }, "require": { - "php": ">=5.5", + "php": "^7.0", "phpdocumentor/reflection-common": "^1.0" }, "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^5.2||^4.8.24" + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^6.4" }, "type": "library", "extra": { @@ -948,9 +670,7 @@ }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -963,41 +683,42 @@ "email": "me@mikevanriel.com" } ], - "time": "2016-06-10T07:14:17+00:00" + "time": "2017-12-30T13:23:38+00:00" }, { "name": "phpspec/prophecy", - "version": "v1.6.1", + "version": "1.9.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "58a8137754bc24b25740d4281399a4a3596058e0" + "reference": "f6811d96d97bdf400077a0cc100ae56aa32b9203" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/58a8137754bc24b25740d4281399a4a3596058e0", - "reference": "58a8137754bc24b25740d4281399a4a3596058e0", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/f6811d96d97bdf400077a0cc100ae56aa32b9203", + "reference": "f6811d96d97bdf400077a0cc100ae56aa32b9203", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.2", "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2", - "sebastian/comparator": "^1.1", - "sebastian/recursion-context": "^1.0" + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", + "sebastian/comparator": "^1.1|^2.0|^3.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0" }, "require-dev": { - "phpspec/phpspec": "^2.0" + "phpspec/phpspec": "^2.5|^3.2", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.6.x-dev" + "dev-master": "1.8.x-dev" } }, "autoload": { - "psr-0": { - "Prophecy\\": "src/" + "psr-4": { + "Prophecy\\": "src/Prophecy" } }, "notification-url": "https://packagist.org/downloads/", @@ -1025,7 +746,7 @@ "spy", "stub" ], - "time": "2016-06-07T08:13:47+00:00" + "time": "2019-10-03T11:07:50+00:00" }, { "name": "phpunit/php-code-coverage", @@ -1091,16 +812,16 @@ }, { "name": "phpunit/php-file-iterator", - "version": "1.4.1", + "version": "1.4.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0" + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6150bf2c35d3fc379e50c7602b75caceaa39dbf0", - "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", "shasum": "" }, "require": { @@ -1134,7 +855,7 @@ "filesystem", "iterator" ], - "time": "2015-06-21T13:08:43+00:00" + "time": "2017-11-27T13:52:08+00:00" }, { "name": "phpunit/php-text-template", @@ -1179,25 +900,30 @@ }, { "name": "phpunit/php-timer", - "version": "1.0.8", + "version": "1.0.9", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260" + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260", - "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^5.3.3 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "~4|~5" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -1219,20 +945,20 @@ "keywords": [ "timer" ], - "time": "2016-05-12T18:03:57+00:00" + "time": "2017-02-26T11:10:40+00:00" }, { "name": "phpunit/php-token-stream", - "version": "1.4.8", + "version": "1.4.12", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da" + "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", - "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16", + "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16", "shasum": "" }, "require": { @@ -1268,20 +994,20 @@ "keywords": [ "tokenizer" ], - "time": "2015-09-15T10:49:45+00:00" + "time": "2017-12-04T08:55:13+00:00" }, { "name": "phpunit/phpunit", - "version": "4.8.27", + "version": "4.8.36", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "c062dddcb68e44b563f66ee319ddae2b5a322a90" + "reference": "46023de9a91eec7dfb06cc56cb4e260017298517" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c062dddcb68e44b563f66ee319ddae2b5a322a90", - "reference": "c062dddcb68e44b563f66ee319ddae2b5a322a90", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/46023de9a91eec7dfb06cc56cb4e260017298517", + "reference": "46023de9a91eec7dfb06cc56cb4e260017298517", "shasum": "" }, "require": { @@ -1297,7 +1023,7 @@ "phpunit/php-text-template": "~1.2", "phpunit/php-timer": "^1.0.6", "phpunit/phpunit-mock-objects": "~2.3", - "sebastian/comparator": "~1.1", + "sebastian/comparator": "~1.2.2", "sebastian/diff": "~1.2", "sebastian/environment": "~1.3", "sebastian/exporter": "~1.2", @@ -1340,7 +1066,7 @@ "testing", "xunit" ], - "time": "2016-07-21T06:48:14+00:00" + "time": "2017-06-21T08:07:12+00:00" }, { "name": "phpunit/phpunit-mock-objects", @@ -1396,20 +1122,21 @@ "mock", "xunit" ], + "abandoned": true, "time": "2015-10-02T06:51:40+00:00" }, { "name": "phpunit/phpunit-selenium", - "version": "2.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/giorgiosironi/phpunit-selenium.git", - "reference": "2bad798ec0daf20d2854400e3bc5329ee0a7b2d1" + "reference": "013037eeea481657d236431634042648797e1da8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/giorgiosironi/phpunit-selenium/zipball/2bad798ec0daf20d2854400e3bc5329ee0a7b2d1", - "reference": "2bad798ec0daf20d2854400e3bc5329ee0a7b2d1", + "url": "https://api.github.com/repos/giorgiosironi/phpunit-selenium/zipball/013037eeea481657d236431634042648797e1da8", + "reference": "013037eeea481657d236431634042648797e1da8", "shasum": "" }, "require": { @@ -1460,26 +1187,26 @@ "testing", "xunit" ], - "time": "2016-03-01T10:33:56+00:00" + "time": "2017-01-23T22:15:32+00:00" }, { "name": "sebastian/comparator", - "version": "1.2.0", + "version": "1.2.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "937efb279bd37a375bcadf584dec0726f84dbf22" + "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22", - "reference": "937efb279bd37a375bcadf584dec0726f84dbf22", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", + "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", "shasum": "" }, "require": { "php": ">=5.3.3", "sebastian/diff": "~1.2", - "sebastian/exporter": "~1.2" + "sebastian/exporter": "~1.2 || ~2.0" }, "require-dev": { "phpunit/phpunit": "~4.4" @@ -1524,27 +1251,27 @@ "compare", "equality" ], - "time": "2015-07-26T15:48:44+00:00" + "time": "2017-01-29T09:50:25+00:00" }, { "name": "sebastian/diff", - "version": "1.4.1", + "version": "1.4.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e" + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e", - "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^5.3.3 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "~4.8" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" }, "type": "library", "extra": { @@ -1576,7 +1303,7 @@ "keywords": [ "diff" ], - "time": "2015-12-08T07:14:41+00:00" + "time": "2017-05-22T07:24:03+00:00" }, { "name": "sebastian/environment", @@ -1748,16 +1475,16 @@ }, { "name": "sebastian/recursion-context", - "version": "1.0.2", + "version": "1.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "913401df809e99e4f47b27cdd781f4a258d58791" + "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/913401df809e99e4f47b27cdd781f4a258d58791", - "reference": "913401df809e99e4f47b27cdd781f4a258d58791", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7", + "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7", "shasum": "" }, "require": { @@ -1797,7 +1524,7 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2015-11-11T19:50:13+00:00" + "time": "2016-10-03T07:41:43+00:00" }, { "name": "sebastian/version", @@ -1836,16 +1563,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "2.7.0", + "version": "2.9.2", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "571e27b6348e5b3a637b2abc82ac0d01e6d7bbed" + "reference": "2acf168de78487db620ab4bc524135a13cfe6745" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/571e27b6348e5b3a637b2abc82ac0d01e6d7bbed", - "reference": "571e27b6348e5b3a637b2abc82ac0d01e6d7bbed", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/2acf168de78487db620ab4bc524135a13cfe6745", + "reference": "2acf168de78487db620ab4bc524135a13cfe6745", "shasum": "" }, "require": { @@ -1910,29 +1637,97 @@ "phpcs", "standards" ], - "time": "2016-09-01T23:53:02+00:00" + "time": "2018-11-07T22:31:41+00:00" }, { - "name": "symfony/yaml", - "version": "v3.1.6", + "name": "symfony/polyfill-ctype", + "version": "v1.12.0", "source": { "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "7ff51b06c6c3d5cc6686df69004a42c69df09e27" + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "550ebaac289296ce228a706d0867afc34687e3f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/7ff51b06c6c3d5cc6686df69004a42c69df09e27", - "reference": "7ff51b06c6c3d5cc6686df69004a42c69df09e27", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/550ebaac289296ce228a706d0867afc34687e3f4", + "reference": "550ebaac289296ce228a706d0867afc34687e3f4", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": ">=5.3.3" + }, + "suggest": { + "ext-ctype": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "1.12-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "time": "2019-08-06T08:03:45+00:00" + }, + { + "name": "symfony/yaml", + "version": "v3.4.32", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "768f817446da74a776a31eea335540f9dcb53942" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/768f817446da74a776a31eea335540f9dcb53942", + "reference": "768f817446da74a776a31eea335540f9dcb53942", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<3.4" + }, + "require-dev": { + "symfony/console": "~3.4|~4.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" } }, "autoload": { @@ -1959,33 +1754,33 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2016-10-24T18:41:13+00:00" + "time": "2019-09-10T10:38:46+00:00" }, { "name": "webmozart/assert", - "version": "1.1.0", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "bb2d123231c095735130cc8f6d31385a44c7b308" + "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/bb2d123231c095735130cc8f6d31385a44c7b308", - "reference": "bb2d123231c095735130cc8f6d31385a44c7b308", + "url": "https://api.github.com/repos/webmozart/assert/zipball/88e6d84706d09a236046d686bbea96f07b3a34f4", + "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4", "shasum": "" }, "require": { - "php": "^5.3.3|^7.0" + "php": "^5.3.3 || ^7.0", + "symfony/polyfill-ctype": "^1.8" }, "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" + "phpunit/phpunit": "^4.8.36 || ^7.5.13" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "1.3-dev" } }, "autoload": { @@ -2009,7 +1804,7 @@ "check", "validate" ], - "time": "2016-08-09T15:02:57+00:00" + "time": "2019-08-24T08:43:50+00:00" } ], "aliases": [], From 0cf014b01f81910932118010ad0afb916bea1bdd Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 11:14:53 +0200 Subject: [PATCH 210/484] Update Restler to 3.0RC6 (last bug fixes of branch v3) --- dev/dolibarr_changes.txt | 15 +--- .../framework/Luracast/Restler/AutoLoader.php | 33 +++++---- .../Luracast/Restler/Data/Validator.php | 69 ++++++++++++++++--- .../Luracast/Restler/Format/JsonFormat.php | 15 ++-- .../framework/Luracast/Restler/Scope.php | 6 +- .../framework/Luracast/Restler/Util.php | 4 +- 6 files changed, 93 insertions(+), 49 deletions(-) diff --git a/dev/dolibarr_changes.txt b/dev/dolibarr_changes.txt index 35a2d6f6418..668db97a0c7 100644 --- a/dev/dolibarr_changes.txt +++ b/dev/dolibarr_changes.txt @@ -137,20 +137,7 @@ with: RESTLER: -------- - -* Add 2 lines into file AutoLoader.php to complete function - private function alias($className, $currentClass) - { - ... -to get - - private function alias($className, $currentClass) - { - if ($className == 'Luracast\Restler\string') return; - if ($className == 'Luracast\Restler\mixed') return; - ... - -Change also content of file htdocs/includes/restler/framework/Luracast/Restler/explorer/index.html +Change content of file htdocs/includes/restler/framework/Luracast/Restler/explorer/index.html +With swagger 2: diff --git a/htdocs/includes/restler/framework/Luracast/Restler/AutoLoader.php b/htdocs/includes/restler/framework/Luracast/Restler/AutoLoader.php index 300eadb0f70..eff8bb61f29 100644 --- a/htdocs/includes/restler/framework/Luracast/Restler/AutoLoader.php +++ b/htdocs/includes/restler/framework/Luracast/Restler/AutoLoader.php @@ -263,13 +263,13 @@ class AutoLoader * @return bool false unless className now exists */ private function loadLastResort($className, $loader = null) { - // @CHANGE LDR Add protection to avoid conflict with other autoloader - /*print 'Try to load '.$className."\n"; - if (in_array($className, array('Google_Client'))) - { - return false; - }*/ - $loaders = array_unique(static::$rogueLoaders); + // @CHANGE LDR Add protection to avoid conflict with other autoloader + /*print 'Try to load '.$className."\n"; + if (in_array($className, array('Google_Client'))) + { + return false; + }*/ + $loaders = array_unique(static::$rogueLoaders); if (isset($loader)) { if (false === array_search($loader, $loaders)) static::$rogueLoaders[] = $loader; @@ -291,11 +291,20 @@ class AutoLoader * * @return bool false unless className exists */ - private function loadThisLoader($className, $loader) { - if (is_callable($loader) - && false !== $file = $loader($className) - && $this->exists($className, $loader)) + private function loadThisLoader($className, $loader) + { + if (is_array($loader) + && is_callable($loader)) { + $b = new $loader[0]; + if (false !== $file = $b::$loader[1]($className) + && $this->exists($className, $b::$loader[1])) { return $file; + } + } elseif (is_callable($loader) + && false !== $file = $loader($className) + && $this->exists($className, $loader)) { + return $file; + } return false; } @@ -307,10 +316,8 @@ class AutoLoader */ private function alias($className, $currentClass) { - // @CHANGE LDR if ($className == 'Luracast\Restler\string') return; if ($className == 'Luracast\Restler\mixed') return; - if ($className != $currentClass && false !== strpos($className, $currentClass)) if (!class_exists($currentClass, false) diff --git a/htdocs/includes/restler/framework/Luracast/Restler/Data/Validator.php b/htdocs/includes/restler/framework/Luracast/Restler/Data/Validator.php index 28202efb7ad..c98a17a62d6 100644 --- a/htdocs/includes/restler/framework/Luracast/Restler/Data/Validator.php +++ b/htdocs/includes/restler/framework/Luracast/Restler/Data/Validator.php @@ -1,4 +1,5 @@ 'trim', + //'*' => 'some_global_filter', //applied to all parameters + 'string' => 'trim', //apply filter function by type (string) //'string' => 'strip_tags', //'string' => 'htmlspecialchars', //'int' => 'abs', @@ -59,6 +61,29 @@ class Validator implements iValidate throw new Invalid('Expecting only alphabetic characters.'); } + /** + * Validate UUID strings. + * + * Check that given value contains only alpha numeric characters and the length is 36 chars. + * + * @param $input + * @param ValidationInfo $info + * + * @return string + * + * @throws Invalid + */ + public static function uuid($input, ValidationInfo $info = null) + { + if (is_string($input) && preg_match( + '/^\{?[0-9a-f]{8}\-?[0-9a-f]{4}\-?[0-9a-f]{4}\-?[0-9a-f]{4}\-?[0-9a-f]{12}\}?$/i', + $input + )) { + return strtolower($input); + } + throw new Invalid('Expecting a Universally Unique IDentifier (UUID) string.'); + } + /** * Validate alpha numeric characters. * @@ -141,7 +166,7 @@ class Validator implements iValidate public static function color($input, ValidationInfo $info = null) { if (preg_match('/^#[a-f0-9]{6}$/i', $input)) { - return $input; + return $input; } throw new Invalid('Expecting color as hexadecimal digits.'); } @@ -204,8 +229,9 @@ class Validator implements iValidate public static function ip($input, ValidationInfo $info = null) { $r = filter_var($input, FILTER_VALIDATE_IP); - if ($r) + if ($r) { return $r; + } throw new Invalid('Expecting IP address in IPV6 or IPV4 format'); } @@ -471,8 +497,7 @@ class Validator implements iValidate } if (method_exists($class = get_called_class(), $info->type) && $info->type != 'validate') { - if(!$info->required && empty($input)) - { + if (!$info->required && empty($input)) { //optional parameter with a empty value assume null return null; } @@ -524,6 +549,7 @@ class Validator implements iValidate case 'string' : case 'password' : //password fields with string case 'search' : //search field with string + if (is_bool($input)) $input = $input ? 'true' : 'false'; if (!is_string($input)) { $error .= '. Expecting alpha numeric value'; break; @@ -555,22 +581,41 @@ class Validator implements iValidate case 'bool': case 'boolean': - if ($input === 'true' || $input === true) return true; - if (is_numeric($input)) return $input > 0; - return false; - + if (is_bool($input)) { + return $input; + } + if (is_numeric($input)) { + if ($input == 1) { + return true; + } + if ($input == 0) { + return false; + } + } elseif (is_string($input)) { + switch (strtolower($input)) { + case 'true': + return true; + case 'false': + return false; + } + } + if ($info->fix) { + return $input ? true : false; + } + $error .= '. Expecting boolean value'; + break; case 'array': if ($info->fix && is_string($input)) { $input = explode(CommentParser::$arrayDelimiter, $input); } if (is_array($input)) { $contentType = - Util::nestedValue($info, 'contentType') ? : null; + Util::nestedValue($info, 'contentType') ?: null; if ($info->fix) { if ($contentType == 'indexed') { $input = $info->filterArray($input, true); } elseif ($contentType == 'associative') { - $input = $info->filterArray($input, true); + $input = $info->filterArray($input, false); } } elseif ( $contentType == 'indexed' && @@ -609,6 +654,8 @@ class Validator implements iValidate $name = $info->name; $info->type = $contentType; unset($info->contentType); + unset($info->min); + unset($info->max); foreach ($input as $key => $chinput) { $info->name = "{$name}[$key]"; $input[$key] = static::validate($chinput, $info); diff --git a/htdocs/includes/restler/framework/Luracast/Restler/Format/JsonFormat.php b/htdocs/includes/restler/framework/Luracast/Restler/Format/JsonFormat.php index 28dfd560969..00c763e8ff5 100644 --- a/htdocs/includes/restler/framework/Luracast/Restler/Format/JsonFormat.php +++ b/htdocs/includes/restler/framework/Luracast/Restler/Format/JsonFormat.php @@ -1,4 +1,5 @@ handleJsonError(); } catch (\RuntimeException $e) { throw new RestException(400, $e->getMessage()); @@ -157,13 +158,13 @@ class JsonFormat extends Format throw new RestException(400, 'Error parsing JSON'); } - return Obj::toArray($decoded); + return $decoded; //Obj::toArray($decoded); } /** * Pretty print JSON string * - * @param string $json + * @param string $json * * @return string formatted json */ @@ -271,7 +272,7 @@ class JsonFormat extends Format } if (isset($message)) { - throw new \RuntimeException('Error encoding/decoding JSON: '. $message); + throw new \RuntimeException('Error encoding/decoding JSON: ' . $message); } } } diff --git a/htdocs/includes/restler/framework/Luracast/Restler/Scope.php b/htdocs/includes/restler/framework/Luracast/Restler/Scope.php index fd4b41ff98d..251262017c3 100644 --- a/htdocs/includes/restler/framework/Luracast/Restler/Scope.php +++ b/htdocs/includes/restler/framework/Luracast/Restler/Scope.php @@ -44,7 +44,9 @@ class Scope //API classes 'Resources' => 'Luracast\Restler\Resources', - 'Explorer' => 'Luracast\Restler\Explorer', + 'Explorer' => 'Luracast\Restler\Explorer\v2\Explorer', + 'Explorer1' => 'Luracast\Restler\Explorer\v1\Explorer', + 'Explorer2' => 'Luracast\Restler\Explorer\v2\Explorer', //Cache classes 'HumanReadableCache' => 'Luracast\Restler\HumanReadableCache', @@ -52,7 +54,7 @@ class Scope 'MemcacheCache' => 'Luracast\Restler\MemcacheCache', //Utility classes - 'Obj' => 'Luracast\Restler\Data\Obj', + 'Object' => 'Luracast\Restler\Data\Obj', 'Text' => 'Luracast\Restler\Data\Text', 'Arr' => 'Luracast\Restler\Data\Arr', diff --git a/htdocs/includes/restler/framework/Luracast/Restler/Util.php b/htdocs/includes/restler/framework/Luracast/Restler/Util.php index e7324a3a620..9674550814f 100644 --- a/htdocs/includes/restler/framework/Luracast/Restler/Util.php +++ b/htdocs/includes/restler/framework/Luracast/Restler/Util.php @@ -229,8 +229,8 @@ class Util // @CHANGE LDR if (! is_string($className)) return ''; //var_dump($className); - - $className = explode('\\', $className); + + $className = explode('\\', $className); return end($className); } } From e4e79a5888ca177e499451cbd888e6a85bdba6fe Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 11:17:23 +0200 Subject: [PATCH 211/484] Update lib versions --- composer.json | 2 +- composer.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/composer.json b/composer.json index f4584bbdb9c..a3407d7fa20 100644 --- a/composer.json +++ b/composer.json @@ -26,7 +26,7 @@ "require" : { "php" : ">=5.3.0", "ext-curl" : "*", - "ckeditor/ckeditor" : "4.6.2", + "ckeditor/ckeditor" : "4.12.1", "mike42/escpos-php" : "1.2.1", "mobiledetect/mobiledetectlib" : "2.8.33", "phpoffice/phpexcel" : "1.8.1", diff --git a/composer.lock b/composer.lock index 791f4efebbf..e9ea391bba2 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "4cbad11fe964bad39172da7e91177d26", + "content-hash": "16c94fd4f22ac17820d85ee57b0616e1", "packages": [ { "name": "ckeditor/ckeditor", - "version": "4.6.2", + "version": "4.12.1", "source": { "type": "git", "url": "https://github.com/ckeditor/ckeditor-releases.git", - "reference": "268078ab43195b6004d64bc8764c41f2f829640e" + "reference": "b1a25e93ae0b038f45dcba458f4c2c18bd7318e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ckeditor/ckeditor-releases/zipball/268078ab43195b6004d64bc8764c41f2f829640e", - "reference": "268078ab43195b6004d64bc8764c41f2f829640e", + "url": "https://api.github.com/repos/ckeditor/ckeditor-releases/zipball/b1a25e93ae0b038f45dcba458f4c2c18bd7318e5", + "reference": "b1a25e93ae0b038f45dcba458f4c2c18bd7318e5", "shasum": "" }, "type": "library", @@ -45,7 +45,7 @@ "text", "wysiwyg" ], - "time": "2017-01-12T17:36:48+00:00" + "time": "2019-06-28T10:41:23+00:00" }, { "name": "mike42/escpos-php", From 651dec8dc26affe68efc36c9cd78f916730d7e59 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 11:27:52 +0200 Subject: [PATCH 212/484] Doxygen --- .../product/mod_codeproduct_elephant.php | 20 +++++++++---------- .../product/mod_codeproduct_leopard.php | 18 ++++++++--------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/htdocs/core/modules/product/mod_codeproduct_elephant.php b/htdocs/core/modules/product/mod_codeproduct_elephant.php index 4deec17d0ac..18d91631d3c 100644 --- a/htdocs/core/modules/product/mod_codeproduct_elephant.php +++ b/htdocs/core/modules/product/mod_codeproduct_elephant.php @@ -37,7 +37,7 @@ class mod_codeproduct_elephant extends ModeleProductCode /** * @var string Nom du modele * @deprecated - * @see name + * @see $name */ public $nom='Elephant'; @@ -244,16 +244,16 @@ class mod_codeproduct_elephant extends ModeleProductCode /** * Check validity of code according to its rules * - * @param DoliDB $db Database handler - * @param string $code Code to check/correct + * @param DoliDB $db Database handler + * @param string $code Code to check/correct * @param Product $product Object product - * @param int $type 0 = customer/prospect , 1 = supplier - * @return int 0 if OK - * -1 ErrorBadCustomerCodeSyntax - * -2 ErrorCustomerCodeRequired - * -3 ErrorCustomerCodeAlreadyUsed - * -4 ErrorPrefixRequired - * -5 Other (see this->error) + * @param int $type 0 = product , 1 = service + * @return int 0 if OK + * -1 ErrorBadCustomerCodeSyntax + * -2 ErrorCustomerCodeRequired + * -3 ErrorCustomerCodeAlreadyUsed + * -4 ErrorPrefixRequired + * -5 Other (see this->error) */ public function verif($db, &$code, $product, $type) { diff --git a/htdocs/core/modules/product/mod_codeproduct_leopard.php b/htdocs/core/modules/product/mod_codeproduct_leopard.php index d8269ae95e1..77e14200264 100644 --- a/htdocs/core/modules/product/mod_codeproduct_leopard.php +++ b/htdocs/core/modules/product/mod_codeproduct_leopard.php @@ -42,7 +42,7 @@ class mod_codeproduct_leopard extends ModeleProductCode /** * @var string Nom du modele * @deprecated - * @see name + * @see $name */ public $nom='Leopard'; @@ -111,15 +111,15 @@ class mod_codeproduct_leopard extends ModeleProductCode /** * Check validity of code according to its rules * - * @param DoliDB $db Database handler - * @param string $code Code to check/correct + * @param DoliDB $db Database handler + * @param string $code Code to check/correct * @param Product $product Object product - * @param int $type 0 = product , 1 = service - * @return int 0 if OK - * -1 ErrorBadProductCodeSyntax - * -2 ErrorProductCodeRequired - * -3 ErrorProductCodeAlreadyUsed - * -4 ErrorPrefixRequired + * @param int $type 0 = product , 1 = service + * @return int 0 if OK + * -1 ErrorBadProductCodeSyntax + * -2 ErrorProductCodeRequired + * -3 ErrorProductCodeAlreadyUsed + * -4 ErrorPrefixRequired */ public function verif($db, &$code, $product, $type) { From 94905ebbecdb8ace03987ac401f12071e5cd5306 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 11:56:38 +0200 Subject: [PATCH 213/484] css --- htdocs/fourn/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/fourn/card.php b/htdocs/fourn/card.php index 114b916c4fd..49e305449ac 100644 --- a/htdocs/fourn/card.php +++ b/htdocs/fourn/card.php @@ -285,7 +285,7 @@ if ($object->id > 0) print '
    '; if ($user->rights->societe->creer && !$user->societe_id > 0) { - print ''.img_edit($langs->trans("Modify")).''; + print ''.img_edit($langs->trans("Modify")).''; } print '
    '; print '
    '; if ($user->rights->banque->consolidate && $action != 'editbankreceipt') { - print 'numr.'">'.img_edit().''; + print 'numr.'">'.img_edit().''; } print '
    '; print ''; From 8aee2fa534f313043c1d8d23d48e829878cb7206 Mon Sep 17 00:00:00 2001 From: fuhraih <55843623+fuhraih@users.noreply.github.com> Date: Tue, 8 Oct 2019 15:48:18 +0200 Subject: [PATCH 227/484] Update dict.php --- htdocs/admin/dict.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/htdocs/admin/dict.php b/htdocs/admin/dict.php index d739205124e..31ade656480 100644 --- a/htdocs/admin/dict.php +++ b/htdocs/admin/dict.php @@ -1510,6 +1510,10 @@ if ($id) $key=$langs->trans("PaymentType".strtoupper($obj->code)); $valuetoshow=($obj->code && $key != "PaymentType".strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]}); } + elseif ($fieldlist[$field]=='type' && $tabname[$id]==MAIN_DB_PREFIX.'c_paiement') { + $payment_type_list = array(0=>$langs->trans('PaymentTypeCustomer'), 1=>$langs->trans('PaymentTypeSupplier'), 2=>$langs->trans('PaymentTypeBoth')); + $valuetoshow = $payment_type_list[$valuetoshow]; + } elseif ($fieldlist[$field]=='label' && $tabname[$id]==MAIN_DB_PREFIX.'c_input_reason') { $key=$langs->trans("DemandReasonType".strtoupper($obj->code)); $valuetoshow=($obj->code && $key != "DemandReasonType".strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]}); @@ -1876,6 +1880,13 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '') print $type.''; print ''; } + elseif ($fieldlist[$field] == 'type' && $tabname == MAIN_DB_PREFIX.'c_paiement') + { + print ''; + } elseif ($fieldlist[$field] == 'recuperableonly' || $fieldlist[$field] == 'type_cdr' || $fieldlist[$field] == 'deductible' || $fieldlist[$field] == 'category_type') { if ($fieldlist[$field] == 'type_cdr') print ''; From 552a9498be8bd3538ce54e761dd004b3123c025d Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Tue, 8 Oct 2019 16:11:50 +0200 Subject: [PATCH 229/484] Update llx_product.sql --- htdocs/install/mysql/tables/llx_product.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/install/mysql/tables/llx_product.sql b/htdocs/install/mysql/tables/llx_product.sql index 1603ee52eff..f828c770089 100755 --- a/htdocs/install/mysql/tables/llx_product.sql +++ b/htdocs/install/mysql/tables/llx_product.sql @@ -69,8 +69,8 @@ create table llx_product accountancy_code_sell_export varchar(32), -- Selling accountancy code for vat export accountancy_code_buy varchar(32), -- Buying accountancy code partnumber varchar(32), -- Part/Serial number. TODO To use it into screen if not a duplicate of barcode. - capacity float DEFAULT NULL, - capacity_units tinyint DEFAULT NULL, + net_measure float DEFAULT NULL, + net_measure_units tinyint DEFAULT NULL, weight float DEFAULT NULL, weight_units tinyint DEFAULT NULL, length float DEFAULT NULL, From e2d76f6f2485b09f485fdbb3546a6320c748848b Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Tue, 8 Oct 2019 16:13:59 +0200 Subject: [PATCH 230/484] Update product.class.php --- htdocs/product/class/product.class.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 6dbb54b1203..155fccd354f 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -257,8 +257,8 @@ class Product extends CommonObject public $url; //! Unites de mesure - public $capacity; - public $capacity_units; + public $net_measure; + public $net_measure_units; public $weight; public $weight_units; public $length; @@ -808,8 +808,8 @@ class Product extends CommonObject $this->label = trim($this->label); $this->description = trim($this->description); $this->note = (isset($this->note) ? trim($this->note) : null); - $this->capacity = price2num($this->capacity); - $this->capacity_units = trim($this->capacity_units); + $this->net_measure = price2num($this->net_measure); + $this->net_measure_units = trim($this-net_measure_units); $this->weight = price2num($this->weight); $this->weight_units = trim($this->weight_units); $this->length = price2num($this->length); @@ -956,8 +956,8 @@ class Product extends CommonObject $sql.= ", tobuy = " . (int) $this->status_buy; $sql.= ", tobatch = " . ((empty($this->status_batch) || $this->status_batch < 0) ? '0' : (int) $this->status_batch); $sql.= ", finished = " . ((! isset($this->finished) || $this->finished < 0) ? "null" : (int) $this->finished); - $sql.= ", capacity = " . ($this->capacity!='' ? "'".$this->db->escape($this->capacity)."'" : 'null'); - $sql.= ", capacity_units = " . ($this->capacity_units!='' ? "'".$this->db->escape($this->capacity_units)."'": 'null'); + $sql.= ", net_measure = " . ($this->net_measure!='' ? "'".$this->db->escape($this->net_measure)."'" : 'null'); + $sql.= ", net_measure_units = " . ($this->net_measure_units!='' ? "'".$this->db->escape($this->net_measure_units)."'": 'null'); $sql.= ", weight = " . ($this->weight!='' ? "'".$this->db->escape($this->weight)."'" : 'null'); $sql.= ", weight_units = " . ($this->weight_units!='' ? "'".$this->db->escape($this->weight_units)."'": 'null'); $sql.= ", length = " . ($this->length!='' ? "'".$this->db->escape($this->length)."'" : 'null'); @@ -2114,8 +2114,8 @@ class Product extends CommonObject $this->duration_value = substr($obj->duration, 0, dol_strlen($obj->duration)-1); $this->duration_unit = substr($obj->duration, -1); $this->canvas = $obj->canvas; - $this->capacity = $obj->capacity; - $this->capacity_units = $obj->capacity_units; + $this->net_measure = $obj->net_measure; + $this->net_measure_units = $obj->net_measure_units; $this->weight = $obj->weight; $this->weight_units = $obj->weight_units; $this->length = $obj->length; From 10c29887d662b8774b3b6b8e9caf47d5c8a30f69 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Tue, 8 Oct 2019 16:15:12 +0200 Subject: [PATCH 231/484] Update product.class.php --- htdocs/product/class/product.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 155fccd354f..dffaef1d9e7 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -809,7 +809,7 @@ class Product extends CommonObject $this->description = trim($this->description); $this->note = (isset($this->note) ? trim($this->note) : null); $this->net_measure = price2num($this->net_measure); - $this->net_measure_units = trim($this-net_measure_units); + $this->net_measure_units = trim($this->net_measure_units); $this->weight = price2num($this->weight); $this->weight_units = trim($this->weight_units); $this->length = price2num($this->length); @@ -2050,7 +2050,7 @@ class Product extends CommonObject $sql = "SELECT rowid, ref, ref_ext, label, description, url, note as note_private, customcode, fk_country, price, price_ttc,"; $sql.= " price_min, price_min_ttc, price_base_type, cost_price, default_vat_code, tva_tx, recuperableonly as tva_npr, localtax1_tx, localtax2_tx, localtax1_type, localtax2_type, tosell,"; - $sql.= " tobuy, fk_product_type, duration, fk_default_warehouse, seuil_stock_alerte, canvas, capacity, capacity_units, weight, weight_units,"; + $sql.= " tobuy, fk_product_type, duration, fk_default_warehouse, seuil_stock_alerte, canvas, net_measure, net_measure_units, weight, weight_units,"; $sql.= " length, length_units, width, width_units, height, height_units,"; $sql.= " surface, surface_units, volume, volume_units, barcode, fk_barcode_type, finished,"; $sql.= " accountancy_code_buy, accountancy_code_sell, accountancy_code_sell_intra, accountancy_code_sell_export, stock, pmp,"; From 17198d59c210b6cce801d236a4ba0e8b0d0a15e6 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Tue, 8 Oct 2019 16:17:31 +0200 Subject: [PATCH 232/484] Update 10.0.0-11.0.0.sql --- htdocs/install/mysql/migration/10.0.0-11.0.0.sql | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/install/mysql/migration/10.0.0-11.0.0.sql b/htdocs/install/mysql/migration/10.0.0-11.0.0.sql index cc375e72714..67132713ed7 100644 --- a/htdocs/install/mysql/migration/10.0.0-11.0.0.sql +++ b/htdocs/install/mysql/migration/10.0.0-11.0.0.sql @@ -163,4 +163,5 @@ INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, m INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('IN-REPUBLICDAY', 0, 117, '', 0, 1, 26, 1); INSERT INTO llx_c_hrm_public_holiday (code, entity, fk_country, dayrule, year, month, day, active) VALUES('IN-GANDI', 0, 117, '', 0, 10, 2, 1); - +ALTER TABLE llx_product ADD COLUMN net_measure float; +ALTER TABLE llx_product ADD COLUMN net_measure_units tinyint; From ab2d21a550c30227692c567b8dc9d7be759bc0df Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 16:31:40 +0200 Subject: [PATCH 233/484] Enable new top dashboard by default --- htdocs/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/index.php b/htdocs/index.php index 7279eebe80f..c1c6d4a1f63 100644 --- a/htdocs/index.php +++ b/htdocs/index.php @@ -656,7 +656,7 @@ if (empty($conf->global->MAIN_DISABLE_GLOBAL_WORKBOARD)) { foreach ($dashboardgroup as $groupKey => $groupElement) { $boards = array(); - if (!empty($conf->global->MAIN_DISPLAY_NEW_OPENED_DASH_BOARD) || !empty($conf->global->MAIN_FEATURES_LEVEL)) { + if (empty($conf->global->MAIN_DISABLE_NEW_OPENED_DASH_BOARD)) { foreach ($groupElement['stats'] as $infoKey) { if (!empty($valid_dashboardlines[$infoKey])) { $boards[] = $valid_dashboardlines[$infoKey]; From f55a4d77e45347866805c095662cbefe04a3f658 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 16:41:03 +0200 Subject: [PATCH 234/484] css --- htdocs/admin/modules.php | 1 + htdocs/core/lib/functions.lib.php | 2 +- htdocs/theme/eldy/global.inc.php | 3 +++ htdocs/theme/md/style.css.php | 3 +++ 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php index 08cacec2541..92b6a236c73 100644 --- a/htdocs/admin/modules.php +++ b/htdocs/admin/modules.php @@ -460,6 +460,7 @@ asort($orders); $nbofactivatedmodules=count($conf->modules); $moreinfo=$langs->trans("TotalNumberOfActivatedModules", ($nbofactivatedmodules-1), count($modules)); if ($nbofactivatedmodules <= 1) $moreinfo .= ' '.img_warning($langs->trans("YouMustEnableOneModule")); + print load_fiche_titre($langs->trans("ModulesSetup"), $moreinfo, 'title_setup'); // Start to show page diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 589ec69b12a..c61fd983638 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -4126,7 +4126,7 @@ function load_fiche_titre($titre, $morehtmlright = '', $picto = 'generic', $pict } if (dol_strlen($morehtmlright)) { - $return.= ''; + $return.= ''; } $return.= '
    '; + $select_list = array(0=>$langs->trans('PaymentTypeCustomer'), 1=>$langs->trans('PaymentTypeSupplier'), 2=>$langs->trans('PaymentTypeBoth')); + print $form->selectarray($fieldlist[$field], $select_list, (! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:'2')); + print ''; else print ''; From 5970ea5b7976952da52108eb63306eb74bd7da31 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 15:48:29 +0200 Subject: [PATCH 228/484] Update releve.php --- htdocs/compta/bank/releve.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/bank/releve.php b/htdocs/compta/bank/releve.php index 02ba62097c2..ae01b761b1b 100644 --- a/htdocs/compta/bank/releve.php +++ b/htdocs/compta/bank/releve.php @@ -336,7 +336,7 @@ if (empty($numref)) print ''; if ($user->rights->banque->consolidate && $action != 'editbankreceipt') { - print 'numr.'">'.img_edit().''; + print 'numr.'">'.img_edit().''; } print ''.$morehtmlright.''.$morehtmlright.'
    '."\n"; diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index 7dcac4d68ba..dbbed3bc274 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -447,6 +447,9 @@ textarea.centpercent { .wordwrap { word-wrap: break-word; } +.wordbreakimp { + word-break: break-word; +} .wordbreak { word-break: break-all; } diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index a17a33bd898..5960142dfc9 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -647,6 +647,9 @@ textarea.centpercent { .wordwrap { word-wrap: break-word; } +.wordbreakimp { + word-break: break-word; +} .wordbreak { word-break: break-all; } From 6bfcecf207da53ebcf33a739dedc23e34aa41d75 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 16:49:10 +0200 Subject: [PATCH 235/484] Fight against colspan --- htdocs/admin/modules.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php index 92b6a236c73..787f3ded291 100644 --- a/htdocs/admin/modules.php +++ b/htdocs/admin/modules.php @@ -871,21 +871,23 @@ if ($mode == 'marketplace') dol_fiche_head($head, $mode, '', -1); // Marketplace - print "\n"; - print "\n"; - //print ''; - print ''; + print '
    '; + print '
    '.$langs->trans("Logo").''.$langs->trans("WebSiteDesc").'
    '."\n"; + print ''."\n"; + print ''; + print ''; print ''; print ''; print ''."\n"; $url='https://www.dolistore.com'; - print ''; + print ''; print ''; print ''; print ''; print "
    '.$form->textwithpicto($langs->trans("Provider"), $langs->trans("WebSiteDesc")).''.$langs->trans("URL").'
    '.$langs->trans("DoliStoreDesc").''.$url.'
    \n"; + print '
    '; dol_fiche_end(); From fbb44192e0425412453a042fdc81b1896d8236e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Tue, 8 Oct 2019 18:40:39 +0200 Subject: [PATCH 236/484] fix travis --- htdocs/projet/tasks/list.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/projet/tasks/list.php b/htdocs/projet/tasks/list.php index 0b0a598167b..00ef201aa9f 100644 --- a/htdocs/projet/tasks/list.php +++ b/htdocs/projet/tasks/list.php @@ -328,6 +328,7 @@ if (! empty($arrayfields['t.tobill']['checked']) || ! empty($arrayfields['t.bill // Add fields from extrafields if (! empty($extrafields->attributes[$object->table_element]['label'])) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key : ''); + } } $sql.= $db->order($sortfield, $sortorder); From ae62d3d60ab2399a969c6b16e8d5b805e1bf82ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Tue, 8 Oct 2019 18:43:22 +0200 Subject: [PATCH 237/484] Update list.php --- htdocs/contrat/list.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/contrat/list.php b/htdocs/contrat/list.php index 5d8a9f8521a..fc110d4a396 100644 --- a/htdocs/contrat/list.php +++ b/htdocs/contrat/list.php @@ -267,6 +267,7 @@ $sql.= " state.code_departement, state.nom"; // Add fields from extrafields if (! empty($extrafields->attributes[$object->table_element]['label'])) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key : ''); +} // Add where from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListGroupBy', $parameters); // Note that $action and $object may have been modified by hook From 8921a103c1bc921f35c442b6027a33cc92f80af9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 19:25:54 +0200 Subject: [PATCH 238/484] Trans --- htdocs/langs/en_US/margins.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/margins.lang b/htdocs/langs/en_US/margins.lang index d4545b8e75f..d52a387cfd2 100644 --- a/htdocs/langs/en_US/margins.lang +++ b/htdocs/langs/en_US/margins.lang @@ -36,7 +36,7 @@ CostPrice=Cost price UnitCharges=Unit charges Charges=Charges AgentContactType=Commercial agent contact type -AgentContactTypeDetails=Define what contact type (linked on invoices) will be used for margin report per sale representative +AgentContactTypeDetails=Define what contact type (linked on invoices) will be used for margin report per sale representative. Note that reading statistics on a contact is not reliable since in most cases the contact may not be defined explicitely on the invoices. rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos From 6de31f2c54035343f06e59891ce30214e0b71bf2 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 19:35:50 +0200 Subject: [PATCH 239/484] Better translation --- htdocs/langs/en_US/margins.lang | 1 + htdocs/margin/agentMargins.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/margins.lang b/htdocs/langs/en_US/margins.lang index d52a387cfd2..2caa93fd94b 100644 --- a/htdocs/langs/en_US/margins.lang +++ b/htdocs/langs/en_US/margins.lang @@ -16,6 +16,7 @@ MarginDetails=Margin details ProductMargins=Product margins CustomerMargins=Customer margins SalesRepresentativeMargins=Sales representative margins +ContactOfInvoice=Contact of invoice UserMargins=User margins ProductService=Product or Service AllProducts=All products and services diff --git a/htdocs/margin/agentMargins.php b/htdocs/margin/agentMargins.php index 0885f12af67..b4e323a54c0 100644 --- a/htdocs/margin/agentMargins.php +++ b/htdocs/margin/agentMargins.php @@ -109,7 +109,7 @@ dol_fiche_head($head, 'agentMargins', $titre, 0, $picto); print ''; -print ''; +print ''; print ''; From a8fbefed8c3298549ffe97035ac0db4faada4d73 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 19:42:40 +0200 Subject: [PATCH 240/484] Update 10.0.0-11.0.0.sql --- htdocs/install/mysql/migration/10.0.0-11.0.0.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/install/mysql/migration/10.0.0-11.0.0.sql b/htdocs/install/mysql/migration/10.0.0-11.0.0.sql index 134d8c3190e..733e850d831 100644 --- a/htdocs/install/mysql/migration/10.0.0-11.0.0.sql +++ b/htdocs/install/mysql/migration/10.0.0-11.0.0.sql @@ -93,7 +93,7 @@ ALTER TABLE llx_extrafields ADD COLUMN printable boolean DEFAULT FALSE; ALTER TABLE llx_facture ADD COLUMN retained_warranty real DEFAULT NULL after situation_final; ALTER TABLE llx_facture ADD COLUMN retained_warranty_date_limit date DEFAULT NULL after retained_warranty; ALTER TABLE llx_facture ADD COLUMN retained_warranty_fk_cond_reglement integer DEFAULT NULL after retained_warranty_date_limit; -ALTER TABLE llx_facture ADD COLUMN date_cosing datetime DEFAULT NULL after date_valid; +ALTER TABLE llx_facture ADD COLUMN date_closing datetime DEFAULT NULL after date_valid; ALTER TABLE llx_facture ADD COLUMN fk_user_closing integer DEFAULT NULL after fk_user_valid; ALTER TABLE llx_c_shipment_mode ADD COLUMN entity integer DEFAULT 1 NOT NULL; From f83cc0bcfd37ef9fce1eeaf1c9cdb05417935250 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 21:02:59 +0200 Subject: [PATCH 241/484] Picto of user umage larger --- htdocs/langs/en_US/margins.lang | 2 +- htdocs/theme/eldy/global.inc.php | 4 ++-- htdocs/theme/md/style.css.php | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/htdocs/langs/en_US/margins.lang b/htdocs/langs/en_US/margins.lang index d4545b8e75f..1d90f389e9b 100644 --- a/htdocs/langs/en_US/margins.lang +++ b/htdocs/langs/en_US/margins.lang @@ -36,7 +36,7 @@ CostPrice=Cost price UnitCharges=Unit charges Charges=Charges AgentContactType=Commercial agent contact type -AgentContactTypeDetails=Define what contact type (linked on invoices) will be used for margin report per sale representative +AgentContactTypeDetails=Define what contact type (linked on invoices) will be used for margin report per sale representative. Note that reading statistics on a sale representative as a contact is not reliable since in most cases the contact may not be defined explicitely on the invoices. rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index dbbed3bc274..262796fe080 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -2064,8 +2064,8 @@ img.login, img.printer, img.entity { } img.userphoto { /* size for user photo in lists */ border-radius: 9px; - width: 18px; - height: 18px; + width: 1.5em; + height: 1.5em; background-size: contain; vertical-align: middle; } diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index 5960142dfc9..7d08340c8e2 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -2182,15 +2182,15 @@ img.login, img.printer, img.entity { } img.userphoto { /* size for user photo in lists */ border-radius: 9px; - width: 18px; - height: 18px; + width: 1.5em; + height: 1.5em; background-size: contain; vertical-align: middle; } img.userphotosmall { /* size for user photo in lists */ border-radius: 6px; - width: 12px; - height: 12px; + width: 1em; + height: 1em; background-size: contain; vertical-align: middle; } From 1c105718b9d679f2aef25c04b272dfc8df1fe946 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 8 Oct 2019 21:06:09 +0200 Subject: [PATCH 242/484] Update demo --- .../adherent/1/photos/person5.jpeg | Bin 0 -> 1079627 bytes .../1/photos/thumbs/person5_mini.jpeg | Bin 0 -> 2103 bytes .../1/photos/thumbs/person5_small.jpeg | Bin 0 -> 5036 bytes .../adherent/2/photos/pierrecurie.jpg | Bin 0 -> 5960 bytes .../2/photos/thumbs/pierrecurie_mini.jpg | Bin 0 -> 1940 bytes .../2/photos/thumbs/pierrecurie_small.jpg | Bin 0 -> 4886 bytes .../adherent/3/photos/person9.jpeg | Bin 0 -> 1088931 bytes .../3/photos/thumbs/person9_mini.jpeg | Bin 0 -> 2055 bytes .../3/photos/thumbs/person9_small.jpeg | Bin 0 -> 4897 bytes .../adherent/4/photos/person2.jpeg | Bin 0 -> 1190209 bytes .../4/photos/thumbs/person2_mini.jpeg | Bin 0 -> 1986 bytes .../4/photos/thumbs/person2_small.jpeg | Bin 0 -> 4501 bytes dev/initdemo/mysqldump_dolibarr_10.0.0.sql | 162 +++++++++--------- 13 files changed, 83 insertions(+), 79 deletions(-) create mode 100644 dev/initdemo/documents_demo/adherent/1/photos/person5.jpeg create mode 100644 dev/initdemo/documents_demo/adherent/1/photos/thumbs/person5_mini.jpeg create mode 100644 dev/initdemo/documents_demo/adherent/1/photos/thumbs/person5_small.jpeg create mode 100644 dev/initdemo/documents_demo/adherent/2/photos/pierrecurie.jpg create mode 100644 dev/initdemo/documents_demo/adherent/2/photos/thumbs/pierrecurie_mini.jpg create mode 100644 dev/initdemo/documents_demo/adherent/2/photos/thumbs/pierrecurie_small.jpg create mode 100644 dev/initdemo/documents_demo/adherent/3/photos/person9.jpeg create mode 100644 dev/initdemo/documents_demo/adherent/3/photos/thumbs/person9_mini.jpeg create mode 100644 dev/initdemo/documents_demo/adherent/3/photos/thumbs/person9_small.jpeg create mode 100644 dev/initdemo/documents_demo/adherent/4/photos/person2.jpeg create mode 100644 dev/initdemo/documents_demo/adherent/4/photos/thumbs/person2_mini.jpeg create mode 100644 dev/initdemo/documents_demo/adherent/4/photos/thumbs/person2_small.jpeg diff --git a/dev/initdemo/documents_demo/adherent/1/photos/person5.jpeg b/dev/initdemo/documents_demo/adherent/1/photos/person5.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..3d541f760b8938a5fdb3eaffde228bc9b2265e4b GIT binary patch literal 1079627 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 |3I_XWFZilAi`qVB?B3>O@KE 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�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%0A_^g4>aNg^z!@JDlH(xa4 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

    t+1 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

    tJs@Ku@*9Q+ir2D#BT2qc)uCchDqE)AIy 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

    =mh2V>3fguB&pG!BAVaJ){nqbZ@{{TyL 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

    {6pyXL(U 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ν4JL^SLkg5YW3mA+xV; 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

    |6?9oS?>0%l~*0~XF0K!3>Y`wRD9>Hh#! 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

      sAznrpPRb@M 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࡭Mw$fic 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%0Db)b0Nk;Beb!PV(-eSpufMDt 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%0Du1W}Z6GQQys^V6H2Io5&O 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

      wz26`ARzVTb$GPSo`3>JN_zzIdXd|H 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

      dt65VrwDo!a0M{|`0^}$YY#yHA>o2=J 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%0D&T%Mm9 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

      wO?fIO2|a2$>;vEyH_n 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%0Ay;A4UJ6Ne&oR;#m2;(9Dz#^m>qKDZ1oo6LX|8N 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

    '; // Column with checkbox print ''; print ''; diff --git a/htdocs/accountancy/supplier/list.php b/htdocs/accountancy/supplier/list.php index 9ce49b23e6a..d7bfdcc5db3 100644 --- a/htdocs/accountancy/supplier/list.php +++ b/htdocs/accountancy/supplier/list.php @@ -533,12 +533,14 @@ if ($result) { // Suggested accounting account print ''; // Column with checkbox print ''; print ''; From f2d04fe55cce45fe5295f1dff4bb318d43cb2386 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 9 Oct 2019 11:51:10 +0200 Subject: [PATCH 247/484] Code comment --- htdocs/core/lib/product.lib.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/core/lib/product.lib.php b/htdocs/core/lib/product.lib.php index 0673ad2c3c7..404e33f1404 100644 --- a/htdocs/core/lib/product.lib.php +++ b/htdocs/core/lib/product.lib.php @@ -527,9 +527,9 @@ function measuring_units_string($unit, $measuring_style = '', $scale = '', $use_ } /** - * Transform a given unit into the square of that unit, if known + * Transform a given unit scale into the square of that unit, if known. * - * @param int $unit Unit key (-3,-2,-1,0,98,99...) + * @param int $unit Unit scale key (-3,-2,-1,0,98,99...) * @return int Squared unit key (-6,-4,-2,0,98,99...) * @see formproduct->selectMeasuringUnits */ @@ -547,9 +547,9 @@ function measuring_units_squared($unit) /** - * Transform a given unit into the cube of that unit, if known + * Transform a given unit scale into the cube of that unit, if known * - * @param int $unit Unit key (-3,-2,-1,0,98,99...) + * @param int $unit Unit scale key (-3,-2,-1,0,98,99...) * @return int Cubed unit key (-9,-6,-3,0,88,89...) * @see formproduct->selectMeasuringUnits */ From 7f1aa818d2ef446f32db8b89f1fec6c2772b9dee Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 9 Oct 2019 11:57:49 +0200 Subject: [PATCH 248/484] Fix php7.4 error --- test/phpunit/UtilsTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/phpunit/UtilsTest.php b/test/phpunit/UtilsTest.php index e98ef2e8a61..a1b9eafa45e 100644 --- a/test/phpunit/UtilsTest.php +++ b/test/phpunit/UtilsTest.php @@ -145,7 +145,7 @@ class UtilsTest extends PHPUnit\Framework\TestCase $this->assertEquals($result['error'], ''); //$this->assertEquals(preg_match('/phpunit/', $result['output']), 1); - print __METHOD__." result=".$result."\n"; + print __METHOD__." result=".$result['result']."\n"; return $result; } } From b93213e9a39c396f1b947dae9d9ef76738046c92 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 9 Oct 2019 13:25:32 +0200 Subject: [PATCH 249/484] Add more phpunit --- test/phpunit/AllTests.php | 6 ++++++ test/phpunit/BankAccountTest.php | 1 + 2 files changed, 7 insertions(+) diff --git a/test/phpunit/AllTests.php b/test/phpunit/AllTests.php index ccf8d205daa..09c075c1083 100644 --- a/test/phpunit/AllTests.php +++ b/test/phpunit/AllTests.php @@ -155,6 +155,9 @@ class AllTests require_once dirname(__FILE__).'/DiscountTest.php'; $suite->addTestSuite('DiscountTest'); + require_once dirname(__FILE__).'/BOMTest.php'; + $suite->addTestSuite('BOMTest'); + require_once dirname(__FILE__).'/ContratTest.php'; $suite->addTestSuite('ContratTest'); @@ -253,6 +256,9 @@ class AllTests $suite->addTestSuite('FormAdminTest'); + require_once dirname(__FILE__).'/PaypalTest.php'; + $suite->addTestSuite('PaypalTest'); + return $suite; } } diff --git a/test/phpunit/BankAccountTest.php b/test/phpunit/BankAccountTest.php index 33103f1059b..48e2a8ddb65 100644 --- a/test/phpunit/BankAccountTest.php +++ b/test/phpunit/BankAccountTest.php @@ -108,6 +108,7 @@ class BankAccountTest extends PHPUnit\Framework\TestCase print __METHOD__."\n"; } + /** * End phpunit tests * From 5fce7e5fd0233256f01bec4cbd634fc7f9f29957 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 9 Oct 2019 13:32:00 +0200 Subject: [PATCH 250/484] Update logo name --- ...libarr_256x256.png => dolibarr_logo_256x256.png} | Bin htdocs/theme/eldy/manifest.json.php | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename htdocs/theme/common/{appli_dolibarr_256x256.png => dolibarr_logo_256x256.png} (100%) diff --git a/htdocs/theme/common/appli_dolibarr_256x256.png b/htdocs/theme/common/dolibarr_logo_256x256.png similarity index 100% rename from htdocs/theme/common/appli_dolibarr_256x256.png rename to htdocs/theme/common/dolibarr_logo_256x256.png diff --git a/htdocs/theme/eldy/manifest.json.php b/htdocs/theme/eldy/manifest.json.php index afaa3a4258c..72465fea2a3 100644 --- a/htdocs/theme/eldy/manifest.json.php +++ b/htdocs/theme/eldy/manifest.json.php @@ -46,7 +46,7 @@ if (!empty($conf->global->MAIN_APPLICATION_TITLE)) $appli=$conf->global->MAIN_AP "name": "", "icons": [ { - "src": "", + "src": "", "sizes": "256x256", "type": "image/png" } From 346e9f3e1b26128cb5fa672edff74881dee11aeb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 9 Oct 2019 15:01:19 +0200 Subject: [PATCH 251/484] Fix import of web site Fix sort on constant setup page lost --- htdocs/admin/const.php | 2 ++ htdocs/theme/eldy/dropdown.inc.php | 7 +++++++ htdocs/theme/eldy/global.inc.php | 14 ++++++++++---- htdocs/theme/md/style.css.php | 3 ++- htdocs/website/class/website.class.php | 5 +++-- htdocs/website/index.php | 7 +++++-- 6 files changed, 29 insertions(+), 9 deletions(-) diff --git a/htdocs/admin/const.php b/htdocs/admin/const.php index a5b1170d552..53555a35586 100644 --- a/htdocs/admin/const.php +++ b/htdocs/admin/const.php @@ -195,6 +195,8 @@ $param = ''; print '
    entity) && $debug)?'?debug=1':'').'" method="POST">'; print ''; print ''; +print ''; +print ''; print '
    '; print '
    '.$langs->trans('SalesRepresentative').'
    '.$langs->trans('ContactOfInvoice').''; print $form->select_dolusers($agentid, 'agentid', 1, '', $user->rights->margins->read->all ? 0 : 1, '', '', 0, 0, 0, '', 0, '', 'maxwidth300'); print '
    gxQ!fO_>&2z7}*L&&66U^h&fZ9TiPao0FMnu zG?77Zq$3p(wy25lPKXQ%tLZmroVeSHl6aGEwymt0iP!CqO{yqqRO+H7$mb}pf+dzH z!n!~JsXircwyCQt7gZfPK>%O^cnVDl!5>^WQsu(+;Tf@Ot4<`_(P$!@;L^iThBbga z4n`Y4NQ^hqC8AyzZ1i;nm5!=(l31+Y(;(^K)f>GnA`+B^ZXynNA}#_{?dm65&JF!I zQ);UaYF?|$x>@pqv!}pyg%k~iJ5y^>21Q{}YwS53?LPR514)Z_hGyNr9-86}Aa*UI zq#QU6^&Si@68ODamY@^_U-?u{fnSYmdfuG&2OkRwCNBLU)8FiM-uMUxpi;xM{7;Dh zJ=65p-yRUa3uI9AG@+W^cx0PMA?!c+k4BTS`6Rpl07h;Ec(3r{`6wg8QpTTi zp_)v5pjuL>w364>q_4D&$59k$R~49jU{2R^`5P<1O&nlVbaiDh<9Pw9#L*7s`X)xP zUlqn+z?P!=0@JJ8S}*~hrU1~s=HV2aB=Jf}K!_QX?fvbyJVX!y47c~#CwhG6jsc60 zd)u})ryoyML@Np4s*<4TfA{T63aEn>N~7x-Sp-f&5XHsSsEjBYq82SJQ72@&fT&1Z z9$CbrM9CUZ=}=*5072nUS~0iNN>H#HjR3$!Ayib%B<~fas#KmeV@MPe#P1;!I!2fz zK9ULuR6x{Mizvjaw5=6;G#H>48ub{Wj%ld46bj*qS${y!6rvG&d;wKxX<9H}0tiKQ z(*W8o)F_Io6(B=r=?cn5goD3C@u@5{3u`0+e!iRRf}s|Y@R4zW)U6dkJOjY|#s_}b zyI38?QXB^X0WV&?F!ZsKT|go#-_$Joni$_eXlc0CvHLi8{EuPbKMt?gC;nwUZ}ZDi zgsGv;-dSDlOW<^ft>BsdswR5*PYBlRO>bHM0QsSBq47r)aU}Fiy*KRa_u!kz**$vy z0CvRnO}+?A13T=$zO~r9dqj@hnHhBV#yh?D4;4^*Fx6nRQg=FK#qpuxr!txuXXgI^ zYN>F>*7UxO;)v}%p8O6a1K#sae}49BKxPgv{{ZW0e=n))$XLr0`BL;R zhrL2h94UNqF7c;yTz}<}1>;f%54^{05_FU25#_w(eS??xY?nq7>>%$&gZ zVlbF}-~Rw#iSBo3(}HLn!P<2%`%2b|$&+_Ap$}0IM5;?_c=!f4|~Jj)xNH zRq59S<@^s6PPcQ}@%x+e`1nKgexEMeSNp#I09V?WTaz!K{Qm%-oK5(!gU`-S!@r<- z2P=^8RTXL5x^U)sntG3}!gJoJZs0S-jSNmqvi|@kcMte^2<_It?&Hq5sSbE*2oGy^ z?bi1%{ce=wFsr5K-{<`Id{+z8T>>I$U3%&BUpKX{QUKN z4+qmZ-^)4cKz?S&hjee-`$$jkP}1t^sjRkp2C_`{AQY48-Cdks%yA|$yldgmFsKz*6y z$|c86OQV8>id9E%nS-j6h7Pv=)HM4%t_-*)S;l{}55H6a-Wn~@%16+GObrn$)YFKP zOT`qPyNCC}QwEU>EPxaQKE*15@l-1q{TOkfPkTN2d|{v|RbhexiP=I)00;wWZ>ed} zquc2`IHm;Ew^03E>M9k3Lu_a+0-^WqJxu~PWFv}F3;zHDSK@mod=)iBCs>FMawOV0 zeIOr1fgEP~d)ZrTJa-kWol1#u$<)dYme95!uWeM6XQ2ozT=B6OCKVUL%A{Rr3oGEG zZ(8ovjpWt?W;~jpKr~eug%cFl8Q&Ky2L&Ht6G7P+ROd!f5-=i~Ak+$P0LQ}w5eQPj zQ7#{Hs8A5B_;jYH^1+np`0(b^LE>}?ZC}7yo(~a*)dHT096}T2j$;) z)M{FGs;Zs>5u0m|z-Ng8X$q;08}LPk)zv%@Ks7*>bbMoE7VZat!%ZEoA=A=eTBh|O zAXMZFZH0^5MGh-uw&VN=ZDJMN_H;c~EQC17IqfGG(L63Y!Vu>S_oT)gd*IpwNnBZO zBl+!|Tzqghq-SN=PqZxzH^vK)v=4T_{{VuLegk+aQLW&FHP+mFx#o-&-GLd%LDW@! zk?E;u71H7dZ~X%5J|(~crT4)b1^&y}quWoaJU@WjlgQgrW*vF0l#XHkp{0YJ?^|; zFjhW*f{BWxE0`H{_=1m4tpto5KuoAsF|5OjNlu9DjH?kB#_0;CM0yGa79P;1ilWrg z(*i(NAxDfcd_b-siApyYFt^vE!SaKE&`nQ)5So!>Bxjn{Pe?U=q;x`n)yI;~J>TEf zJn{4hURWO1OMlsM$>9{BWjYv-{{YBOajFR*63XA@?;igEvmYoTqe#R0?9D))wDOj( z5aOHk@1x$Wt~VK;_xv%xCXcxK@B>7ClG=0M{@eCXKDkhRkbO?BboJ6w4Rcs6HxAP} zH|ftIg|fYC-2VW!#^Kx%E?j>?du06ho15Zj5ipccDGVTk>t>SqBoKe{ctV*H=p9}1 z6g@iRN7Y&X0HMp`Khej()_nY_!6%bgW`T|Gtj^o%(h?k0A7nP);pQRji+=szzS+tJ>l2W-d}&(s1|0)#s7NNUqy}AAO-$8Myt>6Cuhx;&~ zCwj~&{hD8&{M*9>9VIy}%+WpPKg9GZnU7EBd*6Jye$OrvYVex`*mU+^+LyC!7#TKJtGXZ?qSzC>DQ)E`{`mYw+Fj6toMU?9cby{AKco(jcpy=l6Zn(uv_A zq4(ar041-4kqk(n{#^HSk*+BPX}i_>(?gx6UN*R$yI< zAIT#oXP-_+kKBK^o2g6p#x3F5_uaFsn0s^CDFFla-S=@$ep+|}?D~8iKD7O%BkRh* z($f7FY}M{t{{T-0RKZ?-L#BKQ`6J;pd$+p$BnSDNB=S^N6RsSs-)U9**S;V?MQV`^ z`ugJg`<@LV@x0;9*Dw9~bHWN*099KU*i&c_*uE%jtN?Yu6s?-t32EXg(5WvID>dRl z-F;?5-2VVKzkX*WeFCY93K`l^Z$ka{f)qnx&hZfsq5TW^j`+)nzVYg!tNW_e`PQ64 zTXSVVQpLONpmA=DUcwYg3bTK`01Omes)rd05ktFRr?_~?rj)x5in2d{7Rer?Z6J}+ zO-_xUqMifDGQWnsb?jIN=$>-JwM3P8m%9(?B%Tp&Bynzo&{=^^ zpx-S3DE00#X%f?B{RsHQJREWAy(8QswRzx-#SlfFl$B?rHRqf@0>lz~-svXYyR#%{ zjyi#bd8i^p4;DnsGY0C$2D-EQXN8Yy#OXHHf2{z$CV^mxE|Lza=()TqUjTv%S4*N< zbAMVU50@6D2laah0x>ATZA@TocoFaE1ieg|07|TVNI^!-KALsY#B318g2e?-dc+$g ze88zlO~9K9DmY|BEi(v*!BjyttuvsMM@S7-_Me~^ri|AG`APPan`#y1x9zJhj7j9d zdRDyy=7wWW5xhMxNyO}84gz;P8rZdWr;p^xEN{9d!luDzp^j7LdfrNFRgT~hR4MDz z(z)S+V!}%5b^S@n{SnHzA(>iSt)n6A{s^v4KlItp_(R; zYm#`$QTbv-%im!cJurMLfr)SL6%m}ealZU5gQOpA^bt4yo{8sJwux%0+n`7CjY*{J zyEeGVAR}Q=eNuUFBqD>Tk{{s5u0NouPh?`bKaIyivVIg|s>9N3iRh;MgcHJ&Qu3~H z3T)m}?K>G7QGmeC=b@J&8{w*kkTHPn2H-Fl+OLKvK}7{MOS;q$)Ul#frI?ukeXAf) zwGRw#h!GW16#5+;I`o9_zQn*J&<_v`Y94@51gKF(me2`9K-QCkh>sum={(OY zNLHwpFr{rkkg8IH!wXqR7+6qw2xY1`3-9oc{Q_0-sp)f67~-;3aq0-ZB8W~^Il>_J z7>*(yC1{xwgepdr1s%8#A}-nuh*UvX75D>KK42tOBR^8CuT~$l^Vn+D21k=Q{{WZ& z0I0y|k3Mr5(az=`Xi$Y9gESf4ea^F&%FKNkH|e|hfBsJt1Nb~!HTIzJ>zEj=7y}Hb z{+ha*?hj?ck7zIL{FS7?vF*mrmdww?_#$NaSXkMbJ^uh@cbIAW)qOfX2(B;FHPv%= ztYa!Cs*Al^x&GO=!ipzh=#f5i6w7(SBVdHnslY3y6ooN{{ZJ|Ur&i!>rX|IujkzB&PtfQ8N{dg zh2!gwX@R!0=guzMeGopreUgqZz1eB`?EYHSpj$HW0fawVhEB7CnSsx$`lXU`*b}-FG0N|hiy6LPv2givufLJ?r5-L=Fz7&Ga zUdT{oMF(>`bI4Z|BF#As0&1_TBz%`tLQSE!q*kbfFo<{|g5(nm#nzRL-_?U`R$?kU zuGId$>wJM7D9GqU4rAz0h}eSwQr^}>Fb$SpO@{~}(|T#X-%kGk!Yq!%Ad6+J20J|o z3q(9aRUsva?fYxJxA{5|R~5r=Y>xtz3KjDmE2}T9n?eoUro8bo4F3QaF1D}GnLQm; z6%aHEdpQQRxZj>?!fLJu`^W?PZ%-kyHCyWojAO+A0J7Qzxl)WqO9p(*sCw`b52`@P zSD*J7!v=_yK-%7rRFEib-HN(YKD=VR2#=z=bxM}!K+v4_47qt}R3mVUIGYRYB+SJT|nNOTyWxh2qdj!=l()-9?5i$#xV; zLvebSR0t_VU=2mm5ovhg4|?{rqpCbi^ufaJ6;O?VhX$w$u>QIbh>0{&57#>+G#3Jf z1~^)P6h}a;3B~*!kxv+9VgaB)q^Gf#?69YV6f>rK(`P`;ou&caz|AEr$swll;p!5$ zg=Dhw%hvkUS~tWBvgTFA^y9LOUit~`>?Y0}biqPGs#)-@ zY@sG?{I7*FnwGn~%q5j+3aqjUI6xCI$X6sIw*~QT8JMf3#Yq@+LiX{(4J+9;Y@2iVZJ5xU22x;x1 zoogD?IH4oH8-@{4qY@2pKI;6D@@~B$Q4I;UNJS^8co8Y8%U-1_l2rszbR2a=66O{K zMu1A+Pl1F}Rg4f8l!;W4EV4XmFiz-D+@LfZs?ek(1!w-fpB-zhP(-Y0aBH#M>-Ctq zpsgm)3Dmr}IS0qe1q=*Si8r3XIE&&kQWQv`hTEQrUOj*$IS9S$T(4uWIG)S|G@#3V z0koaXdeUl86&xZ2?3(w4P)EXoU_FXMj!DAM)#9TJ2|(3sj4=XQ5T;}WR52fun83;Z z0QGNxA*?|E0Nd#P-lREJIvJj~bod_M8j-TKEY{kpq{T40ZKkc5r~I zUNHXvrYcX#+}FT`5b0Yx5Wi zmLAoLH6JLQL7{r~P~TvvIkKrzHl$7ppM$#n$oQ3EIyh$@J%Cl=l+`HqqizGgjWXx2 zUK&TO`$_qIP?aWlCJG>)y}ZtUg>XDlCRFRUti56F`tY78V&-(qI6{-IF=H2-}pZCs*6WRX&Zf|?&)l=K1 zoKX2P&ts|mw)oJN07BOu`vfa@J&9zA4(*5E{{X*_T3W4F-E{rjin@o!%JK8DYH z_2~Zqd?ZWIjKBMx{_OlbY5@bcefOOH>)o$`;28e^dwKcCZ+AS}DZfd7*ehu6)bFfB z%d;x}v)!bY4jJQWE6?z|KgXYXcu>d$NBs4YYUX{g{ucVSI+^Zo=llY;N7sz7$I%SE ze;@-?0i@f)dOgmoth2%hE-O8ybGz#{3I33H@Sl|b0B06tRxbFo$Obw13R2APCuDqV ze)9hStcHAQeeh%Dv;P3VZdzIY0K7ocF>IOJ`(Y3$2a94Jk>ae?$A~)0Rq%$}PEH5@ z_v<-NzLRc`$%9Kh9=-c#fGIr;KSpvtKcl@;3`02-I>OTdMycBt3kKC>9M{GE2BnGS$)6Z&2Z}l=#`=UrnrO?14Q}%Uk$h2C^I%fyEb40i&;; zz?q$6Yix%CV+cdQl``c8VBVJz=M%-vbAvD=eaAK5uofh=3J@tGhYLYDQ$m0P9^!?s ze(Qlci{i1+m!=WI#10I=z3(hIWYhkR3}ng{fsfP{~2x59^3MP0RU z)PW?1YB5qI`$KM9@;M^FKs-#4z~w>$r~s;UG9G{^QUxFZVtk;Tc0)J6z91=ser(o0zH)8zWa8>!{!og+ z2^}&kLW(fFS~N#)b=xSOHr9eMVN*cAu^!d61f5_`_Imb5Px(Ad&N69lrZ4{h3C-jMO9O!C#bnego1ZfN{2gr>l1vD3O?L4 zGy=A;#HM%vz(G8x03?=3LO&H+5+k9hD@4{tnFJz6MJY9C1_2;#ej+Jb=+&YXzUi(4 z=Y<1nN`MNPs-$3COm(73xPfd0`I=v2dO#IW1YU9(~I-KAB(9h2*SBm)Mi`P3p zj&sO~Schc(F@W3k{{Ws&<*pLD%&$S(2jWw-F8=^KpnoZ;Iw3r1M-di~;5aw<>^A3_ zNYNHjAP~qq`N;@*07?Lzr6cN0+Etey3?GXF@Q94!17%NDNXEqSt7mTf3T#xyA{4CI z!Ena=eU}^ni&(Fx^Pj_Mvpq$l*JAv^y{YfzvQIFFQ$A+yo#16S>#Nj4Lr<4tnvxBhP-5xpmsZAsihuUuX zb^ieOMQHHpvwxE|QDG(DDqmav9+A|pS==wYi1i3Ib+f!n>imzd@#p6FL~E9z*l2X0ht)P% zD&Rp1S?~Vvi{{R)N zZ%{(FfL-?$&~Za=Adm?lAu=IVDRa>M_2SBrkx8Zr@lC;H=YT}9WYQ7ZdPo@2UIj=L zodBhI#Ep6tL60m)LjM50c=~&vf9ge(RzjYS&+c*L1e<#&de2bUSVeR3V1V8mB`eIC zJ)p@v4uinN`se(0k1#~=7Z(L|3Sn@AdgAX71WKRk$w}>utB`jvx(L@Ve|^v!qr(A& zQ35QqR$B)!?@;EEe^`m_AF~7#lP&<^06H(Gdt}`|U_jJP)YL{}0?;N51@OsX1#8P3 zOoS_}EUDsxr2_9r+8U8esT9~ia6m+Q_C(>pg&07`z`&Np6=DidLBuS&p$!8FD=@=Z zt;+D|m5)fKs}$cv`Tk(3P=ppgrgLBLn!!MgXerdxn|06CJwgOYN4jKz(L&7jbH(ui zaMGsN`R^HhcZ5XR(gE@UB8^~yguVTaJ)S>mm@&BW(1>+$GV$*9VbLE;b30D)ew#gic(z|DpLtp(s&e&P>KrO3!G^PL@5G70gGp)LxA1j0rA+xfa9YO zR3ILorUaJh0@OItxWd#-Q1K?HwoPER3J?m}It^X|Rf+!q>RP*fZpe^@0x7Nh{T%pQ zzPtd!UkO18R=-9w zJ)g^YUo2_RNCuy^WdwbO`%($W2@`Q%Nj^7|8R0}~8oWeNOnsMN59f(i7XJV~C_9HK zNg-b-HU2BS?T_@sr*81MO+X1>iHR4}o|<%jg~qRteZoVQQaO)pYE1W93#o{_4|$TRKZQ-G#ptiqgu@?j zwp=y?iHR?MiNy7rd%mXa@r1!ZGNXMKK}qUXORMi zs^6ZyqrluJtoBUp+V}--UKdj*f+|dKsC@a)q%K|Zj~&eJFG?Qq=j*$}@duBm)y+Bo z0G;wQ86KlA-_MA8ci(_@4I6QNIClau$=vauVQ&!p^q|%h2=G>glhfY^<=nrWcB%=X z1nB|(OM7`bcp{h?_22LNnP;siY$Yj9ze4AK`=vbgF1-Rj^qPwO%>BUUb{@II(Sm(` zq&kJyoYA-)+sx3eHq-7antrnNhc8ptQb?u;`KScmE2wpzP!}+bjQ01Ri4xr3A&h!| z`DOnAz$4QXA}K;cI*ubCH6_4pnu`TE3e)k5py2kCz=_D4$g>uu8_Gktg6u9{Yv_01 zyGpL_i=$aYc3_lWwEI+Vf-rzbiT#fzQvU!Hd~j$XLc6ps32k&KAO_r2pg^W+F@1#> z!W1)k~ZI)zdS~O&9%0xPFNn>Q8n;Xs;#n%>Z#BE9_kbzK_N@cW)H1$ zs>MhGDmQL{sAr+-CMS#GsJ14YM(A8kz8C-ky%ZR1oN&I0G4VKnbV?8b=rh_hRpKHL zAP|_XLS9=tEgu}AmP2js-O(|e7%AEdN;Jwp#x7T++9?G=q|1W@6#;+yex|R7!eefrs#JvPM&3<~fuItSz zDWwoyz;c8!{WpBktC^nLiP6Jck;lN63-|g2-Q% zUT)ha89|F`jdQc##|U3wzPflMU5+!`-PEC~%5Pj10BG9R5ZEOiW3`Z?&bs<{P96*`WD5Y{_J&Q48Xh18t7stLg*z+no80h$hB`n_9_07`0HQCI z!Qpz^;>~EZg?;CRxWEV98GHUz{m%(OTKo3^G3m_L-)`8i!W90ihVuRw!xd~a1W1T` zAU$1H9uTxe*=B9%e_v1wQw5}j!5WVWey$}{3`JT%mVp2?(8hHJ4nF0aP=hK|QZ^t& z1MCr5VhF2J1_S~o3I-YQz%qzm3pjyDTQ6s~-}2!CRDm^GEdo&B89?eA41}uKfuPb& z3&esQkP4$1DWUiPN&@&~q+PH;q(X?oP|zsBKtxnnQx!r%;2we~eo$5oI7eEbn}l#^ zR|Yg&RSBXK!DLdUgA82&nICLbQE(W8Sj?Lpp8an4NM&G`Lm2gEsFrl6pJYvN8D(R% zA71&sFd10Y*-w^sd;@$yVc6gQ0K>NX?s}N2;{aJCPf{D}@5*?P-PUwNd$Vf&E2ltc zr{*^lw2`0IUcj^f!lQV-oelP0+gqnqNc`dL*sRm!8$2qq@26}E*=3J=>R%mVWMhJI z1oc+?VD|Y2G`%nu&wTwH6xIMbZxmxf5sXSmKRQBQsanmcq^RRpP$LzbJ(hVOPDs^16(i?~8I$B`MBtRujw>ghx=)S5R3#=vIs08ix z_5T1)`EGg^>?@_F^CveCFsAJjanIdDJhOgpQ`(lf3pozn;$o4h&=a^3u;*`W6`hTKfeyy!H0?OLuev zyr0Lv=knnvl9BfAedoBnnSSFoB0k=)ub=+_F8+(O9@Z}f{kN3;9mC92>j^&k+{N$9 zNce*rfl2OGPyO=(&f)H}iJtO%Pi67~t|lL-NzP~1-&4TF8F9ip_AvhdsRO{UqT6F} zAAN9G`WNm_h$#>5e+=cFdMA|+VcgL#QX2mNH7VaJ&qC;Bzx&fM$88@F5%I`|jKBO1 zrh6}?-eHFH=IrHP;=U_rKlFjl7wP`*;B=v(WzdKDf5c$Ds&q2R(Q~2G5Ubt&US8{2+XqXuSYB z(w~TyDD^y9B#5@zUzcM1W7Gw-0@STVr}i}7LUhH%Ep$9z;>0iVUFgG5=t1c^TZJx| z4FjqJrOiDOK>OC{w}W>GHxJ3j@<|V0edFFg#~N2!A}jA|E7+$(sGbltwHN0d56q*sAo<7838OOY&WcBvvr1up z+MB_@#M|OTC@c(M{gfdQkF2kRzd=)rpUi8Dn9JftudK$o6GsaBnB(DNQj`$xRP;on zICnzetB!uEw{r)1dtU$=K87pb%=ay<_OFPg1PaNS-0RcjhtWVQ-3YQJE!1_C>iJy+ zw0%@e&USqLo(8@37voWZlZDPmcn25n?yHvLt3Q2RiW~MD)a+5fH$J`b0-cf3Q3SXB z&rkh%AeXWO-jGBZ=)G&;tdd4&zT@^F=*`3BM_HV=-Lz(ZVZ87HAPR!&P|oMsiCcVE zB*3`@fHK%koA(b0vk-z_BWJAkPHxW<(OC*7-eOJ-=HNv{k}&m|_|Z$=Mj955-on4} z<`p>N-AN-Xy6^Ch-S-2*RicryA82-#oU;b`Js+V_ImQ4Y87t%o>|d+RL%+J{OX41q zAWw^iM?$W^91x*GP%W*68y2Rpd==1a3M|M-dNrcHBn6T^ASgmGDo8C9DQk_ir62wN`Za66=-n(S0e8!pJ? z@B{#>a9V=u;KK@{Dvdododf`ETGb&M#YI(02{eTglOqH~MkfJ}h))qAgaED61XwDA zD!^d~7d;F|C!=TS+FkG#&t^zZt!L=#_}?i8J97rtJFVf>$Hs_UO=^CghIC&40AD#3 zXvG5^mpM@U@6A>0@BDw)Z-v%mIu;+MGu8Y30Mr*Fl*g;?YVLICQ*QHKd)B|G zb92RnM(G0SKYjHp@$zVbh{$~FsKB(H`8*)fDq`_{zV3nl0G%H{u(V#MvB-R$ffOg2 z5eBd|2;^lQZ?~X6CD=iJ35E25E=A+LMWAFV3ckt358t2Ks;pve@&5ph$3Oo7pcr0a z{^pp^=*`Y}Tc5xjKFc@%0J5?0fzkZ^Nm}!)V-fQ zpE75xJUF0BOE*3KYkmHy;gBxoX8W^ti)ri1qWW*k?_ZDXOOAO#McL2X{{XNr;~^t@ zbyAd+`J6y8=f}f@Y9Lx={LjW&?O|g9?*6~nzx%+ykDwD*zOLby9^dbjtL$9fIrn|P z^Is@eOz*$(O5S(j%tR{M5B~t)blLBqhTjygmk?)I_dZ%*YLzqkDN_csG5-LHf&5ZK zwx?Nn&;0sUK~fYf*SViI{vCgpBbh64sqeou*l;t;zyi^Ao}X%; zBa4`8ihxa4z3TgqyX>3V_!REfveU6JvT`Qa>K8cJp)!9rbVRf*>z1X^~(ohz&B-@h2leNwZ4 zYG)TBj-Eml{weU?bKAOz_V@x7GL_PtM%J7I>+iu(UZSjYbW3Nr$MeJkofasvFa)in z9eevrap*$Oh1G;_uD;kPR)g)V&q{A8lpg@%BobLuR1C$PQ5v<#B+#K~^2gH*LGV07 z+MTE&A7DNx?#?4Z#d3)2i`csJJKrgc0O(D$0w7cM{5*gR6{)8Y7WS-cC+--PH6i!Y z9Jt9F0;?5Q;?cyS;7KpkYz4W^l9{TuKW8Mwwfj90G2=lQzMK!(zQ4DNo$0x*8p6{eQ z{B#+QEKMBBLWiwL(RzvxKn1G!ot#*>(O}hr8cTX%{-p7y2_hc&SP0P{U;Xd`(85RZ zOwYtxaRujPj2%I7h+w14eHSo27ksgl5G}Ttg_sxk69qL_qhfvw=)U_bj^$!kx z!=CrXX|LmCH{6h?t^WX?X3WFrMT2HuyZm>+$Aeo%4Si@8eYp6Qflv3?6ds#$Hm8e$ zp-`L1j0Lh(OT}mc2!LM55caT!kSz#?E2<(=RD)D$=c^&zF{|vn&^0e zz^J7uQ-TCSqIyB(E{*f2L1&5W&mdhh=LfB7r1Jp>Up zzirR|0MzoJ`GK!y#(eBwe>@E!kD*>0>G#j?zb_TA5n{aA+4=LHya0*orvp`7JNEbc z;;SNI8&CYtU95R(AZjPG^J`7!(n!C)o#lp2>?3!-4Dca>r)(XF)(AklE>IqDKG#~M z{{VeE&+j%h*7fxxnv?$k@$3&s2|yuSin=0FNQ1 z`knQsn1G~o?|&=Lf6rP8g8FIw=lQ|c-DQ>oZnzhR^7H=y^E`OXEGEz2&B#x8!B+e~ z!3?-m?|sgZp=^Jr`Rs&lzkfW84?~7N(AP<91NHF&52zhCzQg8L`g5&twzH!-wcqT& z^nBSEzS%wf{FyfUFNy*@d*6s1zkj=vJi*OCLNqiw>}%^MKzuAO%&aqMv(gl`B~E+kCj89T?5u1l=tiAMLLQ<{Yl@)-?MoD$P~JNRGUZT zHzs)<>{#>spZ2-JVX zqj%}__pc8eWvY5C(mhzblRv&Dy{%;F-}H~@bJv0nMg+l6r01+UwsJtvRUw)!!KX4;~hhB@m``hl`MGZP!h)(PJxW4o88HgZU zDs@f^6J(S{s5A#k{Z&$WP#~%T_>HNGHZ%k(xe0XY`3eG4-2+e?77RewmqCUt6zZ5t zjR~v4V$^R1M^zy=MJ*X=kV>Cn44ERZz6-m0KoXo)pSZb~vd9B0Wli=@|PA zE`0BPUvU`cj2N~x3I(xoBaiB#u|knha+uhkA?;Q0ZnYSK-T`}^sZJ3#>nqn_nI zhHXr~7Nm^!@6Tzb#{gKTf@>p>*6sk`Kp?*Z9Tky7>*o^5t018kDlF67CV0B6I&1*! z9BCi-<%k0GEHGFAN|?zNNfl56Sgwo`XQs`cbPoXvk#)6%)l%I$lOkxL1gN`iyD4km zqrjM0u@JoyXIdKTF_F)uUt+)nxN5xka5Z;SPV4^w`eL`WDdiF8`ImIFue0t$%{ux8 z;^3$APjFV6UX^kd6dKjm^R|DAFmo~OPhQb_e*XEOulM|W%nt9a?1rWo_O@b=_7*h{ zv0-DbPyFZKoPRgR8bG%RT)#y>1DO-c03dGW98+T#a>xceMI$bIeRTf&{{WYK4w_8h zx@RK?^NRWv!~!@+5edvYG+E&yBk&Y%E1=QzE`_c|39#rYF7=D?e>?!H^e$lzA%f1Z$Iwv`SaI|D$pr{2#NXYdO6Q`2%%|; z0Ll5Apq`H%F-(GUbTC^+$?K0Ck);D#j^XR){&{mkN+d?61uC#Tz(s6THj=EI3OWaj z#0V}8JryX(&@)u57Lk|@iLtLn8Q`a@B4n0^|#*iVOtFbcqAQpI{offg%5D0k8=HbfH_*!S5OKtP_Rp^nFv<0kmgg%IIE zEL=>CIZlH3E;50o_{BA2I=WyRY8Ewy9H0j%)mU~U5FCiBgf#jB;%P`Ct-{q=9V|m} zq>s8&$BiVvpFi)T2mT;55@Wc=mgd(!ap#obqXyAd`|KyX{{XL=HPeLCd)`CqUy`HH zg}RV0?-f5C;e3V%SjT>&{{TN4W?&K!$cB~YJ+R-I!kCPlsq7>jJ`-~y@n=2P<^-OJ zdUjIhi6}4Z*Oi>*oL>HUROn}+hcoWmaBOFd0AS5z{{ZRzzRrD7RtVPwgo6qFaQxsx zGt|EMu$uRz)WvAZUNvQPFTefzd$$WnMW55}s{Q9;>>p2KzWq(flhJfb0dp6>Md3yF z$=|G?D@6^fr?=rP(>y?&T^s9r{{Vgb-jA7iJo9<|St+2nE9 z7qoq@zWpAv=Y|ngqlk&#n_unpt@71T*7s(AKiyx?G@Xvx-*M?R4^3CF(2R5{{{S=7 z^W59qaBY5md*j02{{VP|5pHY9e762hD-Vf)H274_%`M-2t?T0`pKu>VGG2at&tv3d z5_EI&2RZ2Pz0VN`Ql{etDg2u`HM%}6O8!4r+MT)fzBpp#O6L>b{{Y7?I*)1udo+Hd zeGvZeqByGFr%%tCciqnTs+hAs5-BVvqT0mm@Q0P@AM$km8g}_IpFkFRpSh#=pL|)4 zg=&7;Q`Nrz0J%tl)`fUmjUwu1`=6#Sz%61=^_eoqL}iWGJ` za{M!aFkdc~iS4|D#8qeK{&`}&yYsZtOk=cbp4B00E+2bUx@r%jaD;<^7W*;u0f%AS zF0V?VFKWVy6s^x->uh2>2Fch34Of7TLs>GJ5wKAXXz0`oP;^W}@>S+Y^bOa`DiW`p(-u2zv%OAXPkGtWC zXSG0aqq%?{M%`Z_qtYhly`6-QBnxPg1tPXVL5$G(jPEg2gX)4*kW@P+u>w(2E7HPE zqi=tS(~yBQdK*G176H&Gq9f6ckiizXW}LdkaBioHl9YQI8=+eBXP_~-rBOqqttm*L zP>d51Z|DYqKmi~mr1nj|J#;9joHagcOZXzG<9H4Wipn7Tv5PraFNsVBtN#Grwxe&X z!@?mQL*3*if2QU|H%FolduH)D&TrL#)l6F!d;4+OQp42o6F}CMB7pDBzO%f$RI<-p zH*V$a_s@I{)b9TPH~#>;b{`4>p=kU*ItT{Xb?zc)ke=#f_4zBF zaY;4*0HRg@0ME%w;v#@RsMcXlaX4~%o;!#gJ(e@w-gnz1R>bs*Ub9e)>ad&l#;=a7 z(2nugwyAie@w%-TV;~*n-}cAE)F2foMm2G8l>v5usBEcYM)a=0T8R>5`_7=aBKjCn z3=_OkgdqZ85Q0!|e3*7*uFPIMoqNm7+R_wkXnEDmf~s z69h^DgUlc?1p`4q86J+Qk47k>h9!atC{Rl#YY=t<)DLS#PQ)aj_A#TV@GJh0pc>U? zCn^9eu_k_(Jsbp2J|Rd7x*bbG!dFTYN$3_Hf{K-TD&xolLOG(57V%Dh5=Q{Q8PyG~ zPf4};)_D|N5nM&=(BVQrFnD}HPRSV0WY|+|Vpv7PHfZCncVOytlfZPcsIrTY$mHuI zPc)#bQVV~RPh|f806~nYk4bS<{{Y{_^+&X=J>dK?f2ZwuJ~D||sdMe;#`Xk%I)T*J zbJ{Xk8SUSPfC_3nIQ0PJ3S_>vNis!_(?r=aw{_H)9fw`fZL z0MMpfmozaIRfs|N)q?VW){Q(c6Q)-pzx8hN?2(BoLfyMJzt7z6Z-dMh)u;a6fA>k< zk3b8DzCMrNf17kMqfh0fJrkUSFgp_tw>m5_{{RcpbJaY;l4b_-c7JMIgy~W^wCSF^ z&+CuB?K&L6eLnD8r@p~CifTL$Vr=8R``!5PP;rlUzRS3W31@r=KZmS)IU11-i-vfT zJ-+6C%znSaT=7t*q(d|9*FJyF9wZ@t`l~WK_qwn4Iy%_*-?YpB0JkD|GeIUWr*@MM zSA=gA<#S>qsrfx4PxAa@It)3Bm$dx<0M5Q(9<5iotU@2j`5KhYxIUZgB?4bzq^FSU zm;V4GJ)BMVpS~1mh!noZaZV4q>pN_c-ST7ZOpZRpvIwcrtTP@pKpL5hS*K|%8S=?a|@ zBdK^KF{hO#6#zyTPRLn;poqI%1&p5n`T!o2AJ=`1oX1BI6|!=6t=@2GW8`k!J>L zsdn}3TB(7MV2BUkr9#%A&t#eaHXs@*H#G14(0o$Dd>M2~Jv_W&)5XvxFThF-Q4_h| ziQ)myv7}HTBVHOHaI4Kt(d9V-> z(+dFj^w4BV@z7MteIvvXQ%b^(pehC%f$ReMix> z<{oIQGCdk`Vv zu>NBvN7(Cv&j8^7JC&UE8-8{h;3f@cBYnI*8gRa+i7Fyu%%ftC;Zf!iuZ1o#I3Q#G z{N2LK<`JZDJ-qIkZo2DwIH*~((y1JWsEMBh^b$qds$N@}nV6zshybM_&V0=XHO7iC z(yWU~>}*WS8^T`-OAG_Qi_=*0C`s)gs7hc0OO0*9cY5*E(orsbSefnniWv4ldxjtB zo8BhDd~N^(>GyHOC}jMe9hEUirw`XoP&9{-HmwZ@S-#8p`FY?)Hi6T>;x1A#et7Ar z08ACpkN)(_NDfF+#Hw(6>2BuhUkzp>711F}zyAO}v&r85Vv4NnX+q=jIFUK9je^g1 zjH>(^KqcrhgegQtM+P-Ufw0gFJh+nb)l7{BD8K+>E6St9hVm+a*nkf>gNH-Galil_ro1f>pq5o?!U<|5LRiERl4CNX7a#xzHJ%d8vB9OUW+0S%B+n#p zgh)~(hA?y>K!)`oNXE2La1s9iP;My#0=cR0&4@sWSHo$6V1aXM0z#>SP@{x201}m+ zt6n!*}8_oTRJSvuyZF18i{oj4x1VugkyL!Cl56|%+h=eY`^(2q2cPUa9q^Kd*%X!%wiKLT%r3 z@Q@8b68ETIiMfRP&G1nkY@NQnAK(7~4?V7t#(eHZsGnCdCye6MynU8?1$~~_4xgp^G^U$inT}Ir9Fy!JAIyDi zs)eb}J@ zH7xmu`n$p`^VvojxYoeTKEKgVDHgPq#|3zjWMg`sGASZ}k)VoE4mD`R2|`Yi2wI^f z%3w3bLso`R6Lo|INgxISFlsn}Nt6r&28PiqK%(@JRB((`MuiHI2sP0o0)m0DO*KgR zCpxu&My-QTSCL`J(YO-f8^^HK+h=TPPerFC#QRMj0^hM1oWzN9+RPdY;(-aP22Y2( zjBF7;paf_tcS(Ey0PqEJcra0pte%rGj>kO)c+EuG1`J2?6M`-kC~0-#@fzR$f1-Jk zj(VUEaQoPfj;itq&xCq5S0Rk@i)Rw&wLDc7jRRkB-Kg#Ybc)+v}(uz!) zBcPE+J5HImj*R>00PR=W!Y?Qj?VUhm6gD7bRg%lJ~^y&i_ z+MW+kH@dm%A&@fZl#h#~iYKsyZlBa6`xLIDW8w~R zwdbVy6Ml|EloPiBg#~IkyI(_p0TG}B2N?@>mzzEmc=X#NiIwK0{d4hm!BL7b_K?(U zhpb7Y@r$p-7KFZu&MTh+L7Kv2LQ0GXZiUZ`)51>EtUns8T)b@`}(AY z$d!psnJ1)F-cJgNDt17eQ!m5s;bM>iMrcP0u&6^LB0)TOks#O$E*AT7cr4co00jY( z95b`<*VEw|t%suJKllCj)6B}K4eDDTWWnC+WEzJT6cJWE)gg}ouZ>ojWSW{^p%gGM zjFcrro-CRL3?z{8$*uC(p}oSFLf@BEDsFr%=c6JDln`VA8o>B01x0|64-&S5v!W4t zEE1TY_#tkYPPb*sD5MLk;vp}%qo%42Db?H`2a3WKBULwq^%)O?s*0)cp&F@Pw}AMO z(8QZmNPsjgL=4h^c!2<9B|uQXY!H>2@;2Qh!Gv(gKyno?g)0UH(TWNM;Jkv96eaKh zrE)>35S~s^0RdYtx4PBgGs$F`F_EwljKfIcaL`r<0JYMDd1^-mXnBADMulo9RJw7> zIETW_qP^ZFb#+CmG14kf6-Jqa#L&WGh1QRcilH%kc4N;@QTI5y)(fJzB(v|!%yReu zQEGrY^}pDe0dSr$Q`d!ed7Ll*06uuZNRqF#_~)$;?%nZ7Nsj&pri3ju^*z2ci>Zhv z2Miajo~|qk6!cGQ{LS8Flh=xZL2I-95B~sq_1__YgG)Dl{y_9PHGKXEUwOJ*kMZZU zXNSxo73Rv3BM0G8SFW8SkmIxe0QC6&`9cDxD&Od-e5ZK{^7~5H$S3V;2^H7hOJJ$+x~!< zUmD3%{-1u#{(t;D5de029_}ST>|Q-Y)sd>=-`{`g@IOG?VAmoK*KT|L$Jem3G1`B) zehu2+{tl}VA$>vl^~wJL?HD0fkl}mB>f3j0^9?K zdNuqU`{t_hn3*fQzKTAA2KfbS0Zd<72=^Z0xOzrPLK8}U^X1$A_-#a6S(UGJC-46N zd@vPm$QXUTsqlY@K6PfD7pa}?f$nrwu5U+6c^~xu6w77g8*>B z5kYj+3Csd5z!6s%(WV1eU^_7Y#gAz?tzO~nP~oS7w4h2gOFt19Mu<^{s;MJW9H3|r z5fnH~VuDAE0DBS%q(j0W5MxRah!5XH$yI^@)2Sk0tBt8d%K2)-J-q|CNFon&y@vz~ ziA1_CdkNq2f)v8ks4DK;6IfrgsRdM6&3y+wTPX=3cqO$bnX%pXj5GOsxQ87Qra6~b zayS*ql;b6H(5^oH7Mw7?i#{>|U@`MxeI@)1_dVWML!Jhtu#IjsfJR0oIo8rh z5QPf~1&ESW-MDCgf{O*_HXtdK4I*av3L(R#0f23-cME=^s>K&W{)Xa%O!OCH4PbE! z$z_y?{rqh3oTm2Q?UT`yU+)KcxF)=tt$_akcD@$Cvae_2Ja;2~AAB}xMFi!j+lM}c z39gQo9ytU|Dbl@yQgkYy!Ac=_qFrKTSPqe;D^C5#+q}Dd(1#!yby!&>v-Vef8ljjT zEW-6C)ZMkdNmGQW)zBL5jSkbnw1l559TmcIM&fUZklg@`FHf2FYs=uE2X&`S_gRvE zyQhOFgZ5l=og66L49^J+ofXAn%RMTlO8^YE{-1p&IrJl3gz+X~_tZTz`w)PM)decA zw%_^eblsb;uK=*$^79!s{is{^F#zh5WdH%DM!pD;AA3INNx^JXQEX);1@myo_t;`RO543(!F<`Ryi6A3Y+Ng6wa3>N&=T zmI+X161`ktYH#FO;27(I=Eoq7c*bhsa2JQG7&CA*7GEW}8#+@f86NCUIMRB1?xc(;5#$#g-(zlgqC7QJAZwKrW9yUtngW_k>b&+6k@8nTzCM2 z)j%M!AqF-Z5DFk#BnjYkVZa3fSNKRtYaSvv6mD5nOaxxgf(MCMa9!9o#V|^O6=I4Z z*n+AeNT2|8BrmG45@=9T1v>?nixUT730RRmT9<8#X_IeZwkZV_0YG66K1T!t(1d7` z1j=;2i2#cVj8)hQ(!TDq!5bOiB^(x#g*q?}jZnzw8VeN&C{}==Z9%eBiHIC&gVVtj zL1@0wOerM;Pa7x`3}a_TR+fUV5%P&cjS@Jt-N!8`EI`541{ezv`kFNZpsNUieqsvE zLgtz}lqMds+V$092A^aV;s#?fE>>$H)3cam@-0WLNe1Wcds-Ov@R~tE6L|a+{VK0_ zJQa|C4|Q-2?|(4aF(V3%)*}n+8?tw=zv9tR#R@SRXnLnIZv12cfdwCA8+~ip9XSZz{{a4<=9(V8b@6JP zrq5+7+cO?v_+$e8ryrHc0>`aq9pWj{0q^&m{72t|Kscl8YkU4#Ut&8+z&-x}?0=Gn ze|QB@HG_SB;*NWN_sAW}_dR{S<*mr`qKivrVQPSV=7%REJdI8Vt^$-PXZCuJ@6af? z@weG;HIDZ0fl$P^t zo&gWuvdLWh{{Z}%;G86WvRn1fPx-^fifN)~KtA>n`ma0VQ83r^dvD4W{{U|JP_`Q* zAD{ky>FlD5qO~42mfn2-0McZ;o+1Pa90yiw%wM4>_>BT8#1YU(7{}kd zCzwm9B1E{mQveF-BNRv|Y7iJAHFbcXAvHw>>aRe9Y9k0}#5byN*RfRK@ZXB2LIfZx zTa8RJ76%|42niJ;)gn?XLkjpnr_~V-go0Fos8tJLrpXX4nX|Mg3Y@+iK!5?yl=e5M zgaH&7Q5}xKzUJCuQ`zHyoAO;&N@lYtqif^l!~;;!%51j9mQN}`O`4#zx2TUAlWBwe z01;~z6ft_u9}GWaO`=c}t!>D#d|ZKuD1o*+R@lfIci%ux50FIdA zzWjbbN;OjGj2H-#m5RJ{!GV!p)^&QT7eEvWLkLDA^6faFK9>-bAnb1*<=YD-6o+Q8 zsoBEP7Huo*k@(6S^vAoGv~oO9{Rm`5Uu>~Ob}2o`LkURHE?=IK-lO@nC~TY(BhR=7 z<+uaSLa4KyzbgL#15>{+^3V*I+>C_EL+q&j0Z4wXl54M{n$M7)IXO+APr4{~;2nHP zXx$Xsm3U7@_eD-Bi3hH_rJKoT{R^H5FzCeJravXHpSk1;mOy1UrT)!r%)*GE5%ki0 zGoXX~kA4HCwgKuFCoeDwzPReBoj|eW_#N-z!gwWcw3x!a(Mt=2kF&x6P<6vk@_ZIY zzdQ`W?aKv3=V0rwFf_nK;2#-ZT7Bk=e7X)`M5p_mW7%>vJP{Tu0B`rXf^W-n${%V) zbdJqTjE#RNq!gis{9>W6+3Zh#cL7(eTXgHez~q?aVj4wuI0yhH0x(+5KtW(YY;`nnDjpPp>Qst1+fbb`j8%G# z00pK5SER=&MRbrHRS1EQpcsG9!1#)yg9)w$3c4eZOYDxclR=V!x7kzFKjI2#B906& z7%7T6oN?edJ!(&8Rc!zeYivlU5oP+(iFN51bZ*N63@@pF0#tNdzMZZXYM@Rd?Aa_o zv8Z|6+kX}NolM;^#9QGMG?Wk{rVive9nkXedlxm2+h$e+J7-o_bTJ!)>kiJedm%8jTGT5 z!D>J4e}}!|AoNm+GOT1lhO`JH7Z9~-9t%{ar!V-B6o4#v0T#gs0eV1J z)if8wXcL1}iJ~lqlcgR(T8bL;2ARZRU{t~c5tHuRQswNbf> ze@Jd3Fg#-Z!D>4Qk3*MMIg8H$0K5j6dV{@O!^_bXBl=6PIIVv8;_V`O1lD1VuI#E? zg!>hJKZ1wi>x2l&G^uRiKrqj98^hzfQ9^vR4u3N=*wyebX^>!lSmT|e2qNDXq^dPo zhQ)3}Q78x)5x>BK^oVOlW!F34Fbe)7gx^_1iTOMRiA=-`s|^K-ZiqEj&($jfTro?ioPr;rqo4|HKK-yXuDi=p)qhwS2Ow32W%~kAl(EO2zR@WjL5MV%LbD z`pW=MOG*$lOtHh6saHH5C=YGar$4O09J_*Il|P0998Ue8s)vq1YeUy_pXzN`2u~ri zwpNv>Mg$zuVD@=tBwup9Q0_<8P95+OBuLVs-Raz25s3K+5&#mwr$Ew}MT`(UE>y1_ zr9>B4^!CqN1ccnCTSw7*eX0384#lN8RkEYMBp9Pp#j4miAAAEL)%c4M zjbdT>?~jPgw88G55aWr@cn6DL%$v4IiQ4@Nz@7?&Qv2N9{mXuZOmgQcSszZ0Q7V5( zCxU|mr$!uqWbT)k6Wn=J-Y!Vlm(e(QOq$*G?PIQBz?*))8g2{L#V5C%8&)8kNp3Z+ zPh{!%Bpc0uF$+p)-az-rxP2l{8(*M8W~*mO!7hk~_beUQCKsAuhf%WofGYn0BttbV z6Qxv=lroM4tOz0)2#WL?qqneH+K0pq1i&b;0YNZ;1O|&GvVf^JI`&+6$H6_?Y8h=U z6w$yF075gXI7l#|TF{FH8KF%Ii5U<p8_2Xkbt0ZGpmS3j2h0A+Xw*&yF!Ypl@Si2)C6=C z02Bp!Q#@6GfK?zt04Rud7X!*_Qvhw^m)7ut$+0X+wE)se=Tda+p56~vNP7hl2&^eA z5mU$0?B;803d=r8ZrQwOaa%1)THe;XmQ||i^HGy$_rX*5eGgy-|eRc2=>D9 zeQ)hn57~S*@YpU}?t1p{!yRxHj9FGc`9JP`4T6AR`fKyEIhXU|QHV2s2si#0{U4q# zt0CQwG&yA+XD0a(K^aVRsp=~ad%M@mSTKlouL7g;e*&rFsp^aQykoXhy4v_d1}e{% zJI4Zia{&@w;iQ@R{{TLJT{I{Hcl{F|S*Pqe-y4HB)cP~uUrcwuLDK5~0GaY$OP$%! z@wlt2-OKsK_hg*skQ?IVk=aX6ZNJX}Lanyn*nT!h{{TIT1uSDSUFCB79*4yhX(0Qw zeqa6XIKOpP~VYPR|A@08KzB1u*4;a2OY7Pz_J5P(o22TJrS!Un3Rn%hBZ7UhE;niZJw zK?-42aE&l3(F6q8=7s=>SQ>p+(Ucr6T3{3*Ca%M^1U_VV$vr`)pI8f@0KB}j3cxHO zU0^6lnQK(c#6Fv+$>@WuRH#DuqOLfxRb+sHaG})_j==S*GR%Kr`Qr`IsikoLKj{Q4vv7t zKD#T4mZ79Av>`?Q5p4*6VuhX|BcXw$1G-M(#fZ1X+`40L=zP)qRRR;qDIuf8qiYr8 z-ae;9E+?kU8nbSXBIIe}VuTtSh(NVC9jYeH84N>@bJFPFbdg1Gjug{XHh;A>3#C2} zlp{}a(hpea>_{I`qY^zp4Kunq{{Zy;Jbm@H{A@YGGDM~*J_UknT}&^v2M()HfiU@Q1NrQ7>WW9`UqDr>87?*$TX9N= zW*lp-khUAk{8ncoB7y+53uV^Je%lG4fI|%e--wI1S9=U3`ra?&Pwsp?WGfXlby_Sq znI2EXFeb4C*bl>ubhw2G0Ka0E>b}5Nwt7JL$T|~;sM^y#{{WeGk{H{k{vH`6&-tEd z=zxbpsv227CFs63fIyTqt!g#3L+)>g)fHWy+98MPUyOV~Dl7}1sB6x&l!!I(6oh25 ziC=II@Cz@-%Vhxqa3=N*_4j=wIf8@f4NAAJ5uA)$)=~&nH*@c`N%da}nUQI=cT)lY zNqsb|L@*eK(c%$(G%x3lVFI9JATv7a>(RaeAl7_BFY4Y;kfA|ZYbDZ%dqR>^Eb-I} z0w?JjS^$7hctJuZhUgViAW2>o!xUgBD2zTqYM8oJWQkBfoS?pqK-5wlqR0aVN*9H) z(E6#O)Bpu@4qQ^9d|@(3g$MmBn|bK*gcB;Ly+OrP_Pz0NWdXCSK{EHperB%;b_`Dl$08X zg{M6@>GW$;B^YB?MK%ak7AL9@`x-Bf=B2*HSAh~B^buiT$xyEg4l=G zo{x;fI3JzgG>9srET>)*Z6=3OtZ`CL!GctJj!n6%@-X(VPhSTy{&)hAh;aHamw!LM zo+S4Q@cqxG`$E0)Bg$Hx!mZ^(c8}M_t;6|lKL-GU!U1}T*`Mw7G^2;yQj-{ zUEeEb1=AkB?&Ond$pk<_6nE6r zQNcE^ zOp8E%E8`Hi$%#i0F&g}FdMyXp{{V{=9w4FhJVR3m0WIv*1 z5?*0e3&~xIK?Ksh_(%>*uU>(L3c^3;%tc5BmwvWK^wWP)-M~}*$NCDw;;Fk&8AjH1 z8>ASVeTYBzvD9l?>!-96(!8%)9|Ifhu}C8T3tgoM5MbBpQ9yUuEZ`gpgN_^M#=UV$ zV45lB(W6oreCzCZ9jx7aRK{6}xhLUu#TcmD;EF~0=@ARZ<3UeDo>{?h`*LQ&^m~%Q z7FspbKV)C??as}{ja;v*iT&MLCHQBT5@Ldy+uv*d0Pc8WPG#%c+nm|+;=VFY@gygG zYdQA)74yHON&bH8?7;QDEiD#+ZcN6JxVhhs=&x8W+`ZYP8i_A85ZKr^uA^e40EuO} z;5Zb{l+9~?mY~$4c!VncnC}ohBqSjG@oT*Hl==+d5+BW*;LsGyPk*@DOn>zg#d<}W zFeNV$qnmEz85UE}M@JLW$7%i^Fl{fZGbKO!B=J-f2j0Jx<&MrrqdX0)NFb%IEYUfr zYrbw9WUda64yr-)%pWHzl8y^ACFSjf6H!RAu1~=DouDOh!BE;C4#f&`i6&DKfKDWi?IrFW7U# z0clpz3%{ND9A6ApXX^fwh+G3rSYQSS3lsP+Znj1a zAhL`iAy9#X2s{w^Q(cd_?*8A`6;3|Y2pV+IC}IUqrT{F*4rNn;(@fAEGtdRTqMCsf zO+wO9K(LX}RVpooj_qH?IBl{iI+4~Re}IiRJX z$?$kb!3X{j00s)^v!WTbS_5kSu-acJPHarVPI++(4z&2NCF`c^_PUjRcA zHOWqP)G5q=zE}Xk0sjE?+&^OCOz{T~vyD$qizn>=0DNazN>hz!!1_YmE306FE-4HS zhPG0n)NhCt6;{uvYpMNz{(tj4c8VUk5(?)30Dt$MF{#p{@`G_KFKh2h=5z!b zJMXaOk^4Lf$kE{qZhN3e1+-^{ODL9s0ae+7NVxPAi6YTj>Y$X+Rj~lId{iPTD5v;D zKgIz=UD}FV8IZzbcDP| z#7+tXQD?3QMO2f_Oc<&l zh>&3dn+->@SZ0AjdNS^|$S4@5`T<7BXrZ8h0gnzH(AoyYJz+hOVycC%xLZJkfE3u1 z0K}q@gCGGN(Z+xj#xKPNg@V5Dt{p4B7}){Nu!)#C%?zkMC?MDftd!t_LFH7(!WvD9 zB}~A!DXyH;I8a3~*F;ty+`hor9ASb&a*rydKK0>=%5^5ndN2qh=pm37J2!tB}+Z>afh&E#gpI^UcHFfbq1P%9Uy5u?q$3k5& zDeDuQo&I$CFSEl>ea*nz*)?t!`|xQ+?SEc5DBgSh;o4Q}xPH;BN>1(L;936wLk_rl zoBWHb#TICDuiZ1;lP|9s(Z9( zRXE9uaJ}{`v0mk#(638uwKRe~_A@#IRQ5*A^^D1%t@013qhMq8yduMErSS|8YezF0 zONc4yKb~S?3))YDejD1BZ0aAmV$2qZIHk5=%hR z-E-5ZGxi=zwsjQODN!*BUDQyHux)8IVZ#U3)AybNrjI~xr08M)0LqXJPuKsoTZxz`!8@JwkiF-@jMeub0>+v44-CKJRdB6WHJd z^taa~$iLqJ5(u$|f(=!S`5-=uK^(feo~GEpHcw0lwNUi*7Y&31AD%-5QABu|rn6(w zakvDYic3ot^-8jVd4Z`0*PKd~Z=*f9eP0j(3r?UvWY4~~`bYr-O#s@dQp@$WXD#uj z5{89DHk4D@$(fhIa0HY9L_-D33>C<<*hnbEu}ZWR(BfREDD2 z<55b10t-vwNeFDXPzs=fN1AxD=u)@>Xi;zhP%d}{04*Kru@NSKJB4Y&^`D?#2M;%i zd==6USm-e7n9vOdK8i$AIMK~G7Xa`e9YKP?MN$kvVP5>g$k9XxQVM|)p@i^+5F=YO z&#EFc_~h9r2`NxOU@&?`$C6M+Rs~6h4R%Fq#92(8Rf>yB(wuPcO$)T6sTTl1hMB9u zy>=TT4hFfUtV~iX8Zgx)MM~O0*-s3Zv?U-!0mp}FgTqQt0Tn{3_C*61;;R8W6apxa zSdu6Y0;CcpB}S!AM-n_`3mc>$*a5j;3H} z`2d>ToQ4$t0QcJ+^>mPZI2$3KXQNlwNNe!ZL;3{E@$`CpK$3;3`(B*CPJH}`p6d}# zyN)!-9q;qXQ$~ZEB21Hj;VSO=gJ57_Wu|L+H~hW@r=-V8FH49_u5&ylCW${q{TKfC zp`J7@w%L>&x?ukRp1n^bAtH!Avkq#1xV`b9658Y*9p$*Zntlohp2K6X`uG0;b)n+q zTH{X1PE*qJlG+*}q5lBhSr7N`hpd&?qGJ!F18wP|#sN?R3Zy~`R0=3@tVGk%NAl+& z{m*bwElCDft|VPFs1^|MML^L-zPss?Ko+jwAr^pwMK(wzPJ}W79(z(!=+Gqz#5So5 zadm4Xl&ZH%4x@|&z$_N64xsDlcj=cb@l~o{OaTCkuBg>5zAy>}4%&nlqPdSq3E>sk z;m{brZX>!a+Mr<~BBM+c3V}gRC0@0Xc4Qz9tZ|dy!R@bZVT@RVVl{O;auy0;WtvXOxTJAdQ2rU&8P%@ z#a2P!A#43#uCqte6$n5s@_W*dvgI^900m>$c0Q^bQWKt!4qYnqNe8~wN1W#P(KPo# z`tm#JE$=pXH`7mF&;I~(-j3gD@S%B2z0lKrdtM$=zWHaUpC+HqVR+ZL94YF5nar8~ z9uulYh7bPxMK9gHpB{t}l>>v*mOY&hel43rLRph3{)3?9XOzTI{@(X{OA9l#eA+K{ zK6W*?pL!kxa6{fHJMT@D_c2cZ_(uyXpw;WuO3dFKsf#}q6#3f%0AbGpVXTuq8}h|B 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 PIRcd9p=DH1D6jw71(!Q7 literal 0 HcmV?d00001 diff --git a/dev/initdemo/documents_demo/adherent/1/photos/thumbs/person5_mini.jpeg b/dev/initdemo/documents_demo/adherent/1/photos/thumbs/person5_mini.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..9cc8db56f702ab69f14c33a8cd5e08427d93de13 GIT binary patch literal 2103 zcmbW!X*Ao3769;nBob1C)E-MhN@FVxYH2ZwC^ZZj`!duLR7(&dB&L=kZ5dINXSB5x zt)=#*rL9^j)pk_uR4a;dXw*_m$F192JW;MjL3ud6R%S0EO^F`5{m!KNJRo3cy9-a6v)1xUh(jsFb+0w3N7{BvM`( zg_Om}NlKzM&={5Ds%ok-C{1lmthO>%75jY&2nK_}1>jz1;fe-J62?)ZE91b*z0(>Aam=6Nx=Z8QJr)h_M z0D|B@s(8{2D(2t|QzD7uu4LU6z?`jnCgC{9J*IOZB2f@7DJ3m~R8~2TRaMi~JEd=6 zXk>0-iMKjuZA19Q$=Su#&E3yGAdnao91A#KkMxfdw67YY<%LwENAZH{KDd=rL`~X8=G5S zw|92GyFdW=pRB)R|KUO$y7(XvFa-A91>%c2EHDDXuXqxA)XV|qOA=GUT@esJn{~JD znIJ~Tkt=Z_Vh}EQO!tHG+IQMNWd9v3@&A(j1^c&a0uTa&4xa}`0H(kcjN!?)Vb^?c z`dbDx1bDe-(h+voRmNYj%&*y?PdT%UGLzo)sKX{;eNIy&wVaDLhE;y8IO8`fNT$(l zbk19bsY!f`#Z2*ll$cJ@ZTjfQ+SJm;t9?gY*%fym7zO=IK6Qri=@iRlpSb7tfEtpV z?>6B&dPdvuSuK9l1nKGSC8KFV$!{f$esa}!{^0@=m$pX<2C(;#yWR<}UB5Ustbe$^;U%3uSBypA( zhQ1w7(6vY%Z$wOzz`G+~graJsILAJtQsSGAsk0t+^qrwoN_$%jv{HeJT(e2H@PY)-CDVjRkRL#eL%GrTB4 zZC7X3KD9dDJVb8tvHruPM5}jp988T-Ch7C9dR{+nwbcK}nYU6)fG?Mrkcn;cv#N21 zUZK>?E@Qub_NwmwID_)7TOm1NGyPjd4dFvJYWsZXZ^uowIg3HngMFHBiml`?Uf*sC z9Q77%^M^Fr*3*IY-N5#buTA#oWckg;m@Tmh&mRVDQ)CzMs?6A#E-$$y6VU>LK;}DQ zerM3@p)vBx+xC6ar?mkZ%zjcu#hEOP9q;M-$b!tSkv}Ppt8o^2QG|0tcfvlvwiDnJ z?083}oqk(JmlA||rSP_Wd3EfjKfA!H?JOdyL?uc+uwgN}xr6m(`c*{C0fc>7%a5tP zVh1HKxdZsMK6y&-Y0yaf=_jJWq_T?h+nh_c6n@pPe<&X^k~bTR&Z^eqpFE|HU%0Wn zyt!F5yW{q_a$Q|wV_IRsuEB||RkZ4JGS5~nj#F8CyHhim+gGbT-c`Z35>Yb4*p+f& zJ8@K0WXBY)K1THxq&%6d+1OxMYsKJKv}Bz~g$i@)1y#m7s~Pd`jFf!VwlFuCuGsv@ zf2OgXvm{VlP0_MJW;_v6OiKp^`WTDw0B^>Ih-$>9@fwwIb4W4|4KESXac#-CnC9*9 zrIs{0MYkCCvguuA%};Aw_K|dquc^0e%`m_~hsplQmT_K^SPNjVWSSL;9eJt~tD7U=W3C@kK2EIOO^n!2IpeC?(an`~s7(yp6JjhmjvBT8942lLcHujEJ%_py6! z7Nk1>cv8;6Yf?dn9j+KFN7q9ag4U7PswL}QeJi?K%2l=Ya)J+o#u~WRcBSk3{?Z&d zNi(A(I=4^3429zXVu;+(1JmD&8JviS;i4@fUOE6Cm6KZ)<*hj)E9!A4XO~ZWj&{-c zrQM^>9OCdjoFNa$_2FWR>x)u_Ru+dn4w;yC&QV~ry-qOl$ze~#{Uki Cb+cyx literal 0 HcmV?d00001 diff --git a/dev/initdemo/documents_demo/adherent/1/photos/thumbs/person5_small.jpeg b/dev/initdemo/documents_demo/adherent/1/photos/thumbs/person5_small.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..fce9527b378ae9810693cc162b15a2c00a93af53 GIT binary patch literal 5036 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 Zt0=b_tx{R@SKW8we+ literal 0 HcmV?d00001 diff --git a/dev/initdemo/documents_demo/adherent/2/photos/pierrecurie.jpg b/dev/initdemo/documents_demo/adherent/2/photos/pierrecurie.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8ea6696ba455ccf12772436bfeecb8c699bd1596 GIT binary patch literal 5960 zcmb7IcQhMN)DMY>5n{#`yY@_N5>!PIvx8LaBB;?Ar8YHc*RIx#QCn=SSyYuMv8t_2 zb)jgD*5_O2eE)v;zCYf*@7~|L=bd}r`JH<{f4&TW85?2@0aR1~0M&&8&OZQR0d!zm zb~aXac2;%{PIfpaoQsQ-3l4|#adB{P!7p}P{5*V@5L|p>d~mpsqL7%Rw49tATu@m} zSw{7etei9zJv}`Q4Gq)9lICXPmi~Xsc^`lU0$2g80I7rl)GSm$7OL|h0N+K8G*tgt z>i-ImiW)=%2GBw-PBmcwDj+oo2&Mr7fgs>T2-QU@Pzc1Th^Db{1hWbIMP(?JH1+S& z>P?9_t*~3}afm8M>svWrB(wit)c;2RPcO^=x$A$tivUL8e*v=qbOC!R#bQ)yAVwko zFi|QX$}Dzy<}86{R#-7{+*8^%D#fXJ`Aq2W6VDX2L&r8dPMdWV&?!z^bM%aN;pBc* zTRL996yr-FOW2ptz#-pSeEYPs9rqvm5f!N*yuzO<-C@7tU;M%Wi#;37nU~uoqiUc@7}X`Bh0a4UvWj z(>rvwI&a>~{FKtTGLHTJ{FugmcMQ~%Q&R zzxY)`Jzhl{Hgn|CElq@YQ`2!zu)*kYgD>Z}=n^!|^dZ>_mSR#YlGA;lYSa}fvwsHvy4xvCT{@k<}V&8AOSFVr@w))Qei7HiUT=bjHj_TAxF!fRw{q;RmI$w&q*WfH z3(E$joNxiIZ^ie%)7n(6ynI$+#0-(+EwYJ+GtH7z+}X#x(Kbmdvx>wck zVPgx{-}KuGLoSiJg>8TCaBI3pXE85q&E5-kaC^UDwEjckvLWxFphxKK+qxa>atxLoNrK38i~r`hr5?wjPlR*HX4VY1UXeH_vNFW4=z zTatyB5ZNFg9VV{cucCf+$mR&OMPVsTvuvao3|Y4}?36~-z(xCXpO4Y5?y)pizqZM5 zo!G6=sMN94sA?5Z4ILCTy$~Ry4rEBF}OAa$tpp9zQNJhlwtylP=24dGO<0Iwu{6*5o!1cIJ zP!7mEcE~&?D+(j2M@?N+1SP&Lp&t7fo<5ClLh3(`FrKPr^V1?_$JsHzKPl<>@Y8hg zN6d_1{H%mII9HHxH>Oe`kiva{@;#b%6+y(Z?ykPU-Ee%Ds|{E>MNoiqZ}<<=GLw_S zEw#O(+qoG1fzPg}zOu`6wY84#n&V@SuF}M$V1I z9!<#8tlwYM=R}HWJWwl6;ozanv0`dXkbApdch&zi}`s7{&J@ zYsH^hMFh!|XXuVf&-S;5JOMSPKjEEx|B5AUh*C3d6`-c#0!o)x@*+&#@zd$kgg!2_ zqF?5+7pwRCgJGi$^}4Qku;2dolPT1Y6F55Rdm`^SGJPNRwY8U_QZMRHdmgPmK%m07 z^pxi2??+9s`4V3$f9+d!zkv3}g3keVPew>T*NgWArYNgsdzq8Z_j7FYW0%r^U>N>ZpMqlRqFT?d5zV1;ckaF z?i#S#I*Vx4epcR)LeMN~n{(lnq8Rj%A0k(jjC@GzhI zhsyitw(8WjhN&V6Hl!SjjSK(~kzAM%@B$$hgT}5IP zl|)CX?ScT3Y7@g}k8fSyO{Fo@9IKy)L1Tx{4$;YyJT{f?I|{Sfn;4wW!j)OM{E-fF_ELj7#HOMRFFa)WXFV$DR9xKGT7GbjIE%M>U}f z@3~&_EUmkN3lnks6%eBK%R7@ITtHiV5sSzd4-^)hbh_5&>IiVE+k?QOE&kGDsDuUE?o zfIMiPU(+?vO6Go*sXdZgqBi|tU>f6a>oP+>s0uUL1D^S#`gb#Lj~-`KWD~0(GK~U35Gl2?W-`Jy@X)*?MM9I&9wH2Ai$)5JMR+jT z8eDk;Al%BZ_%=WR_w~7d6?T4ae)p@6NjaU68i@WWH4nm{NsMZHLN5fR^&+zZ^}td4 zota9SXui4Po7hkhuuvxuVtT2TXf|5;XhvAyBm_}cXYn9nyIoLproUt8@xcY3`1HBt zx4lO~pEX=~Y5I@$0}@`Tf}4X&KWhKfE9Og&F7!u%K~{Cv#G+(}xuc6F+Xsm?0S_Ao zd?8l3cw*VV?d?rQ$RWxzyXz9gohP0#lKrXH&f}938fP_q9{q$&T@|bDci9oJRpGp> zs$*A1o<=LH2oF?2nQLmV6xjMcNLGT?iV|%fgZRNx7i8z#kyhiEr zt^>^bVHZB4AZBqSzNwBUE4=9qIP1XXP%y1#WjE-qt|d-sq{;sEb(j1lX7B5?2X+9- z*d#LX6HYz$A}E=BJn-( znLILPTgA4oxNa_b6J;~%;H12n0Gq>L%4Jf{zVU`WEyNPxDE7u+9}#lqn6aK zyg_jbj+1BU6y<$pAO7`9Vz9GlB;DMUv!~kc5kJ)(@d&MS%Ohf8q3tS&u~B&NPC@B| zgL<;>zjFXIFU*u`kbGw<_?&x@A@3^TGUQU`ByMZ#l8Zhvt!0Z%LNNACVTC>;M2y~&mqktQIg#x zA#IJl`^?#v_6M~FbcifLgF2gU&;!8`bYlpUszG9`w_PMjL85yYjsfMCgDT`f# z_5$tE=W);Q1h60fyy(|*YV|y89KMykTFIevIPf@s;o3?nN0=GsxY6_Pe@uM5HwaI@ zBWbPc>Aa@B08>2t9|a-|XovSAcTDkViRXYey3r43M^Q&MT#xZw7sPdKbaRP2AYqm% z@|KU9ICWZ}0dl!3%+hp3nV_0X9!R<}{1gVssx{0+qSp_a^b$FEjspq|usVLNB(p#* zil36L;0v^3K9NdSOevL@c1G3Z{2ai}5}?S9aR;zyxR+VD=aXF#DO=YL7DtgcUy05k>-}O% zvQEneuIjaXADpS$_841Pk$B4g2su&auw{bG0v{KOYwNZA)vYM{QS}qE7%>1<1+Pq2 zV8!$i3AEeroTFsm$Lj%xSt6qi4kOn`ZRe==RN6m=-0)IVZ$fHt9Z|r+v6M-Fy#po> zoE0#OxXtn=4U*V^7Jy5Pt@9G6#ZS)x4CVI%4)zU)6d=)ejoxqHyPL!;Nyh(1Eso>; zhdS7PS*Vqj8u7Jn)>dCec958E+uY-TBE@344$c8jV3#7n?W(GCrG+tGVR|17stCMH zuOmm(akq)e?2Dt?e3o@lnwI@b`cHm76abX6m#{Ago-D2 znpe&Sm_wIqCm+ck9d^+bJ4C&zETLe&y(~a){GvAqe)@5Qylw8P)+%D0ZP>Wc7>)E* z*7lw*s9Np-Ue8+E3JzyA9bO;)rHg70UgEX?kSM&i$cZ_ypS2mh%uTDX^`s*@Yz3^5 zayJ(+0+U!x2jAem=aJGSnX?gr7Zi^}-QoA@z-Oer5 zPOYY1d1&d|vF%*rBbMHNpi!b|-abUhnE?s9$+n-D?fAF?6A8e~xtz(d^#r^Bsl;R= zY|kRQvJ;n|DfR8iwtOs8&Je2G!V@kj6RJN!U;ov4ebaYGG#Zq_LYt>vx6S@cY~UK- z&vwIwezr7o1an;Q-}rXt$1<(duBd7C7@PvJx1eMNC{_K=IXZ_f0G^2!Ic^o;0hi(}Dw6DG)4^4{>IRnOec35_n3yqBx9^Cyw~DT^nF+3*E>{0B3YF+#!nvr?yWhK;dpzQZ`b1s$bt`ob{_HeEqJ z>YmdAZNWCTi~l0)66<&3UvN!_zD>{upq1nH6cbA<4*K0`Nb?uJ$eZpSjW(A`t3JlM zjKG&8n8#BM*I1M1bw(q~YtAU9hU+a(fUMfk(>kM-TTjiLXoUox7nz6rW-69kE11oR zT=WTe%*H(h&v&!zR<|POS;zlhFeRVK6SzHQVG9xe*Enfm-=MPC$%@qsvq9y zRm3{0z^LgxwZtntkfVF(x1=3x@4{_IUno(i4*1KuwjMN4v#J$Rn~`_t9Zj1E>+DV# z#Z0*s>RKrJL<-qk*h4loCS5{*nlP{~=^HxM7RH`kVqMa%on-iZ%!>3(dq z*vUHkoSA0aqs0$M(IV><#^kRmp@o?#SF?nzd+dNxY%lC3=A24z=tzHy$~H+;QB|E{ zQ@tik!Yz75i}UYp=)waZa(FustlVutEDtZA93yJvj-~Adhxz*KsNQLiMtTcg)Xq!% zvFZqd60SXGp#AX=ye$)akNZcH%GW6mM|`1UcSHcT;NaE!@QS7wIX<@#o^G_TlX`>V z(5oV$oILS;9O27GSM`v!gtb8D33jMvRcf_nCd4mZwK&tXQ{ITUFaGvzuRiu*4|h6z z=Nw@3<)`lxj^MUTmmQlZQHQC8}d z$LRFaPv1KLhg(xldwJi6HX4tMi|lxK)Sthz3HaKPiFv+qwLGK@Tr8`-E)hjnd-PiDOQ|2y9nD*f98P7V)FQ+Be0#(AUMKDjK5h2OjZ6D1E7d{b1SJ#`cBByM$ z-ekL7v=F^u5DnFCHbcQpr$u%+-9gi-m<~Tu@CrrBsOUi3T(xq%oLoN^*h7329)Q{z z@X2CEPw230jfPaKG!}Mjux#z?RpZWN5lniYw&^{rh;GW=^+`G+FwEH$v&`4~#C||4 zMRAoyKTbsglXbnE?hYzs${!t1uYq@L9Tsk5MnJ!2NdMxP|P3GpREVkBV z_d<^2*woO%bwL{EfLuNO@jTB|cjzS_<&M-)VTXA>le|c5fj6T*S}r&fGRBm#aaJ6l zkb1#u27h=Yak6j_;+w5v8a@ehRqS7(2yO@hwuR6OO>e=$~v$?2K} z9M~2AbwK#P#1j8?Xke8$u9K=-Qs4D$I(Grl`oh@Rwx;i@$Hip9#SMe*k@M B$e92D literal 0 HcmV?d00001 diff --git a/dev/initdemo/documents_demo/adherent/2/photos/thumbs/pierrecurie_mini.jpg b/dev/initdemo/documents_demo/adherent/2/photos/thumbs/pierrecurie_mini.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fcb7cbb0f7402b7bf880e6c0d6f34cd5ca1be5fc GIT binary patch literal 1940 zcmbW!c|6pM769e)+W z9la)QB}8^^at(1QC9)TqEYl;8_ul8e&*%Mh?>pyn{yOJ#KIi*6JEJ@A0WmvkTWbIU zfdGEH3G93aOis91nY%f<7~{{-wa!Kap20JThjs9Tn5f`$XYjUmB)pxI6$#HY)KSyK zGh+NhgQMf{$MJ?bsGV`(1b~3S5pWm+0Y@N_2qBah3MDLz!Wy8ODLtVfGX5k_I9q;WDThg1n_>iPypjv5*n zpRlyDCfV59xw@Tl_we-c4xk5~J`)stHYz%Xc|JBS{?g^twDc=iGuSz~H}Y=Y`dj{; zvb*>0mseC)aUa#y|NQvL(}ovq?H!$6-95d7yrJROBcs2KO@5e~{x~x`H@~p@h5vPJ zePdJbZO;V(z<;xTm;H|mz3YO)U?2>+=Yl}b?-q!L!G9nk#Lb7scAp2L0aHM5m8Plg_W1Zh z5VG$zr_%_A0(dJISYyjqLiI;m zcl`N*;g&7PLv7B2cePw~I5HcpRNbABgi+{kE*bQ*;W)8?uTa*ptafjO^srBXM}OvW z`e)QF`%^^&MvzSm;p)wEBFf`lL43#R-U6efIp5-{sAAG|$Xv46p&~_{#`+AW1nwp3 z`Rd>?a?Le{e?Z8-Qo}$hW35!QsJ?^mZJpPvA^T*LO&F>OPio5IWz3dmX%zCQ<*Opt z?@G~$c!Pe2MP3A}EtSR!jirO;f1y z4Fh%0E>;Q!)-`!*Ykf>3_l{qLJ6cFH^4Fd>bslBB^QTC;)qG!6tTn}?E&txDD;USRFz&>Y zSf1&`0?DEI#;laQ_|RbkOa6_iy3=oPp5kph)o%kZ>QSFlgUWgR{sg)p<4Bw;;KA;B zN~g!D_ePvb6M8@!);zSbmaCzMBOcyf9Ks`KW_bovU%L5ZM6*aK}&~FFO zC4i-yU`)kavG(J^u<7%UhQU4tNHCE^|6Q;YY4)MHfIq&(wZ%~BeZ_CLuf>vH6e#Tg z`y^bSoz(LVuE;1GE+lTlnax_m%UU_zbp<`{x9SQ;80f6Vtqb71nM|?f2%fvbGp~Ht zdf>KR;%Yh!znIl0*%zDa#I{eKSjy8X?NH2W6s@Q=?O1pAp?Z;nE04{5!o7Cn9xTkh zZuGV1)w$tU^G6?f`Sz^i3jAEWJj3MQ4}d=sC~w~^7wX9}ueUG@FL#+F%O|VzFB`d1 zdn&!mO7?3T>>JMcr76B0Je_ZQC6a9u2w*NnJ%8~L9C#rWALOkSSQ-dVam8i##jx8S)Z{f7imXP}p>MaB@kE;ywM; z@SwQx?Diz(UDkt|5^_p{z3rNsjBAMLXn^iy6g#qsTe<@jdi=ufIJUl8mB>Mlc^2+Z z3OU=?VcdB$AgX*mK6g=aQFRP=fznQAyos4!(}yfIY@~b+Y|Q)+5;yTiL-9^6)}X6b zPjJDg>PRtmFq-x)t!f?x4Wr+BEAP z#t9aAlG}_hgr&*>&?<^eC5s!LQ!90+gtObqAD+4WfKu@3^m;VsE?UJRzITRv5_6Z~p{iHchYq literal 0 HcmV?d00001 diff --git a/dev/initdemo/documents_demo/adherent/2/photos/thumbs/pierrecurie_small.jpg b/dev/initdemo/documents_demo/adherent/2/photos/thumbs/pierrecurie_small.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3595b041ca21eae281035c52279a5f62a7d53c74 GIT binary patch literal 4886 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 QUGM50QhPpC4zmB{U%6xOt^fc4 literal 0 HcmV?d00001 diff --git a/dev/initdemo/documents_demo/adherent/3/photos/person9.jpeg b/dev/initdemo/documents_demo/adherent/3/photos/person9.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..7aff8dccefe7e0ac8716ee66b25cc605bfc36732 GIT binary patch literal 1088931 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 r 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

    rk+XsD>bG_?bTt1hQ|}X2jI_x6RE#u-!bA zE%UiU3?nf2B?iMZsb4=e_OQv`GrN{Zc3d)QF6UMKjvY?SxLxmG*+IL(VfHu$K=4={ zj|2y3d=?jE!T$hAaidvKVM7RSWP2tQPqh_vyWGCs939u9?imQ#2w?(oKK_W2M}CSx zOVi(a!wzfZ?xA5aLK`Rihk|%D7tIK;z>)C?L<#)pp~S<7H@+%3gjxA0b_to$JR3Fg zTTl=3@=-?wi}XS$E47u;7~!ai0|UO-lG=n)CAR_3z>Z4ne@D`h$(t$)cgd zz%awzF_L2MM9_c^!#{d2#kOIPj0k}4?L!nx`i~YY9>v-sfuR2YmOus=L5RX)a~F8X zyNEy#%*7MLd%y7K=s5ka`j54JTj~YK#gAd)hG6Y)dQ($IUtR4zpR-`&M1Kfy-(`hh zhw=bLuHA%pVXbV9pc&hu?S@#0RUy2an(nQ1i&w1h{X(uuJ&$P zc&PDU+9kA?=t_Y+E=j&Jxv4O7>FS;l%Z}{5`R1M$n_mUp9&QhshAcBye|Efr+Jvym zZ@c!kpaKxhrTQlfX}O2Dza%1r4tytfB=dQ1;B0v&?@{Q{ZWqQ_T&K2x?DXn)|JwL3eRU^S@QKA`IMTzx19RndwTF=_h-jiXgygzdmRY zJdN&HgK8a`%ZW6a|HJ@C5dZ-K1Ox;H0|NsC0tEvB2>}ry00J>V15sh{5^;f%1fj9P z(IVmT1rst5LQ)14Vk2@DGlG($7P8VLLsP;B;vhtH^8eZZ2mt~C0Y3qfPz0gA!2*VN zKxm6tL6GXX4#tH#-D8GOSah;voArVPz}o6^`w9=IO4sjafyi7PjN7~*%RIE}@719! z0wzM8FRx8gqG|`tyB=}${{Y6f(f!swkgAL_WEWpL=;&93WEW70PxzOq`$BTA_o6jp zgndB*W*?n$7kbg3gk3uzr%LB+ph^Hv)$9qVqpv+0$jGHej!VA{0RU!J2m+z0Y@DC* z9i3RTAR!S0jFR7tD)iydU)@;ryWJ}sBK+vLrgX5g3r7e_A-iuRSR5r-)hHP9MY}g; zkK0VWdoSDPfMhdHx+yP^_>K@i#A=Cu^3Cs42p{1ozQ;mg1(AKbZ#bHV?aR)#t)4tk z6;OeuP&PGK@lp@lssOw8j~k3k=`AyiLpTbi{bF29NtS7W?*qh6CNhHN@G&PcsU&xJ z@m?ZwNaE)h_}Ge2mOQ>7_@$Ovc!)Q0WA|qLrBZs4mQluL!v1qB{VIAq1B{$Td51E8 z20z@);%rHU9ZY|?WfK{-QyBgtY1mCLBCdJC#>4>qXPTN{ezA$-aSXvRCYD;1GpDKZ zFfp+wC2?j<-_kKL@eoTcB;_tRi&XXxT6xRjaiy3405)l*37AeKF3QC4trm>%F|n~Y zNyM0^I$J6|{{H~Ii~j)c4ubx)^Mi|x#k{~h z$^LT?u2ioo=d4ZQW)puokZNG#%`rb*!GE<@!1F?^QZVr`%%_5Kj`K{ERsKwLxhx$Z z<6_J8e&okASpNWVjVV!!Hw~)W(PRDgIN?di6JLo@?h!}Yl#D+giNbh^G{46Er}5a_ zU&!#(eNa4X^RE>13Q(^t=M(tcLoggf4rST-rSj?{3&u`3W#c3x)%wK#B5AQm6Ob+x z#F(=lFZz>rnU`EG@iU+Am>0ay`O@p83`|ihzqdTbzf#RbHYJ+TKZ>7?IHp%pOv76p`NX~}8~B4U z)n*Ezx_#pV7ZFP1Ox9EL5@QnlM5d%KoJ)_1DkQ}Kclo4$xW&X(C+XDtM7Wd7D@`{Q z)qUb`5sSn1DI&R{j6V_dhc(wfUXkIkr!x>{DB1Oo55YMSf_-1}9uox1{{SIS=i7Fy zew*Sjusj^W#MqNc4AQx2CrM1i6C|Xgju${C97s&_DLiwf1gdyt6hJHnRP7jUpU?jQ zafBj^zgPs`QQ9ZNGrA-n+`w6-o^e_n!YCY@Q3n=p7vaYo=5N~JLo<;qz=Yxj>=CCx zc&a1BN>KeuOaA~Gg|>-&#VDRP9N}>**28~$)<0A6#}a9rfV=sOJbBO3W+78ldh_Zl zXqIWE!%;HLcP+7%;P{+rkMl3BDfW*GE+CVO5__;$y|N54HdHAwoB~Y8fhOlf56%7~ zixE%NznI}7QN@UP5_6_~kGybksNx|mNvoPv?O@?eK{;f8B0W=eiAVVqm@KAVDVv)1 zs)TVv7{+N!VjfCw9C(WJkO*f#F^e`RnEgk&+O%NLk2);H9oN<1W8w*nqGE%b98775 z`pfkAgEZ=fa=i463Fk9_RJ~u=$LX_hP9+*&d-CuTO0uhq=brYsd?Hqtc`6ik(9#)v zxA^i%0B=svfaTvR@1+=~^Uyedj|- ze=Rfs-1JBu!(W1dVq~rV0FM>j0xo2uEmE=f>sb3#=!X5A=O3Ri*{)X1&_dFwZ5#?tHR1^w8*VF!5pmpSCxT2Y=#hmgZ}_lWKbf~ip=F4tN~lA+Ne9QSE5lU zp6}*Be=(J985jhI<^37c|?L}bdfl#v64MJI0*CZyD?xE8?g=N_9N{*@zUyWR3 zs|oW@Fmv9pCSR7e{MCd8(KHZO>7%gDy~&ufS2F#%Rfi&t9wOq4k{Wfp z_b+(ya+%~KiS9PB<1i%(SL*x3;QrW__G-kko)sd$F^PqQoM-{Acizkw!JC9VmN6xm z6}rYa69x;!#P5FdNF~JJw=DIEWh=vMzcDcwa?LPqCL*wAodC3AV9hk)&>JAMNrr!H zf=Yx$>k~=BPY_kQ#QbZ*D1D=ZJf>=@lWXhg?qEzLAQDSgL`3cBq)#-TQ3+NER%Zc_ z8s$w^5Pv25Z{0f9)_WMkmQW>@S)7HXKBkna4M_zM)j<(BB7r~1g*3hUwyzSICK~2x zHM$=pyFAKdl`?V}KeS}4*0KAXB!kto@0QvY%X%E(OhoS7yKeVLIGD0Z6n!P~TPVyZ zAeV59RWq!FXIJ=oUA>}YR3)iS{{Wqdl##*_Gc9GNdOuOc7(9Fl!lB0&a|;4;1TQeL zFqTS#>%FeB;z=*nDO}WK*XQX2_VEds9iET&`^1=|4ns2Vukr5n=d5vkODW=A(hfAT z;qY*|xX;=Q^Ag|7DzB7bG>`P1T{a?l$&m-uPWJmmzq({)1l4{bZZJ#A<4LwLm;NVYzp`o<0t0%fJ?zJ76qArnu|jq~}830TTPA!wOE`c+ZpfQr*0 zBfS^j&#nNMgkm5-p>svu2gnl7F~1U3Ef`Wtzqi9%*Itww)J7Hn;%dyvdsALdXz*SX znpVSqk0`i!v3UcJj(REZlfTT1z(%8aD`c6huZ}vdYsVx-mj-dp1JQ zW|mw*#Vu%626=pYM~C{Q24X;zP>upBq3VPX^`jV@6NP1!QNsTK5`{yJZXUN0`!dZn zDHym#B}yrOGCE)42>}Wx7xz1(c2#$xMAM58<-}EL*_~f9w<#aJB$z5(o*+A^=lb^-pO1I|T77niZsY93UkH!4y*8jXFK> ze~P*?S3ydJHYkkH7v{cM{8rK5d+o{z1L>gQHzS!{E>^i+^s82$%&kUNRvXjGGpOnE z#~{?9h5A(<)C;1huD9tG1UI7Te&Vjp07@7jOpz;28fL9i8Y57s49cZ!T8qdbfz{L} z*?Rz?j3>pYg(Ht(G>0swLl#Iq%5Hd@DA#Z49>MFH)N76Y>%^T@N{y*AEJ?1XC zl}_zY!Yh}3>)Er0>GtYqt$K4Idv^Q?LbmLdwv9^W$qMhQH_t5`QW5>plG)}tny_@P zm-MaJ64mC&RaV`XEa;r+3LPz>Bd5J-MJpFQ7Ot(T5SqXu*>BYsN-gT$uJba>;gDT+#`cfyBd8lbf#FZLj986j< zF!+xYyUsDCm>i=RtJK`lB1}o=luK*Pc%KbGb{&jy34WTttO|m~FV9a{!{DbAk3QS< zjB~^Mg71Hr#GeU1kO4R4YToT(XyP1IU2UDxkLn4&Ec0>jfW?)x(M3WYVQUlON&|=W zrT6Yc^N^@z3c-upesO_}ctrD)mO&V%wDKB6^T=lZ0F2rzhYV|F_r4neETLV9MY@DV zQd5U4im<2x^;S0Z-QsaEB+dP(1gOqf1PHgXy~~hNU=h%T1(A?ZSBb`gz{WT300J6U zKvQd^VPTv=MudsJ845ZCAy)Ax6qBQ^0vFH#-asM04zx(bn-G%i^xjmpQC~2~LKg`f zVR%cq;Vg1M8ohEBSi_V}Cls=tE@mgeo9Q(-U3a^F%)A2A7pX7PYMjKr6U0k55*PF2 z5O(}Tz7xb^0$l~TSKIJ>yg%u<*toy>b2S@9qAU;5{6ajl9XM^y2k0I#R$LODeRrfy z`X7ub{{T*B{{V^GdBFV(#Nm z==lC2C7TG6G(p`X7xYgPg)$5of-e+eeu?6Yf_@pm3;n&UBmI^jPAO*MqVT1!*v2n| zp9WJo4OHP(^53WXdGT=+;nZ&|zHE~CP8k3J53QFW-X-uHZYo~><_CrSv&2i3Zh7~3 zl2i3wQ+o^&`NxNp&pf(s zYaRm)f^T}qguqd^DjQwp7&06+3{V1pid9wZeqa?0xDw%FOTa<;kJD0snWg}7Fyeox zI-op22~7V0z2Rpe3KF03)eX~PFmZ+Ec>VX%4lp@K>KLqJ!(s`r=8u4@Wx|{DZ~g?U!>A* zAgf>Q4jfnMVBR8R@TeuQLXR`lUqYH|97K~W)}i7?4)j&C{{U?oJQgVZz7n-OC6csG zS6veEh(`j{)8dDt=h$LPETo|S0OYdrbo!h+-i%|5jGiB;0;;7Rt<41jqof%>>4~P8 zP^6BS)9hE)Fff%k zjV)O4GD|$bO-enZ!b>c?GRbK0hxmp;Z=})7U7nqs#Fi*#KnP?C6jhSzE=*RCyx!u9 z0j^q}P^UB>c13QPn^FV46n+Ic>2X-{H1j@HA#3FXpg$x!T%o?1RxENOp7*Q^W{Qk@ zjWueE#Sj94G|~F45y=Iv8kt*kePevCUb%M48mBtk5`x*CU_F9>Dl>1TnuR&!&@-q% zP(rIJY85D2{a{ghaVpa}pPKzoGK)oSD3?V!idySbYvpI98!8%TnxI(gQAQxQE9K;i z5BIet(>#`y6of3LQGJJT%-tf$e3e_hbJRtFBBF;(W?FUoL4zWM~xSlMl0N%BoeAQzoFx z^W_Ru`g9MYt1d^DAW(i6L`PbkIlN=BBhxy0YuK`QiO?6*C*Q<)tWZw~{A&|VC;CmJ z5b%(1zi7uo1k+w8;Z7>XDuGc-Ml9xIFf5epUGcFYwP;#+pt9{^@PK+9r|s zfvFbhaKCDZ!T~AFugpm#tHi0NZ(1~X$z>9O&Ek1@TE$em9MF7cq#3vg;WsXwwG{aQ z>dFW4Vyc04bh|VeNO@j_4$Iv6M6x=Pg%pl?A|STX4iKE0(T`I9 z0P=8`yi4JLG+fG_ggR+<=^wWvgjBg?<@IC(f5?O-3}Q|DVAL+G1Da}5?Ce%CCtfZg zH`1z$Qh{lj0#VvhRSZdytIc98mR3ze&|kyIC!Se&71NvhMi=P@d^u*rl?_!rqyGQ` z#h!jCq%(O&5BgWcVu^om2%ePQ#CTuymx-Qq#KPc}s*&Np(qHY`c|j9=$A|v_Okl~0 z#lR&MEV<+iN%}8@mY5=9GzoVszDttCzo+5<0Q;GEZ}jl_5Dr1crU!$;1wUp^vW;j! z$Y}Z7{f-33{{SXlWGbiMb%XkT5tsh}CR5BOq)+-!gvALq6t&CFoiZ7+M8BnYTsOn; z^3Wp%K3@wH{+HqAEBjKayDAgWqHof0Cd1+VnNpM*{3otaKl)d~PsU`BEX8R}tYd$o z@G)fJo73UqfAlU4pV&_O#NX(m0ZBv;^qkma@yMduUO)Ov_ddQ8prjx4iNlbCFCavJ z^t94~XOR+~(c!<-ONaHyNwj#M(I&$BWswJ0-6I3^dGNoroog6=8di`=OO|{4r?hw+ z6Nff>M}w6l3_HDJfFiq~t7`5qaMejnVd5pgD#FU0YV3--F_wHefc??LQ-pmhKL}dQ za0(EoiFm8V-XjkZLb!ZJP^bRx666V2>ESY!C;NaWkLehAZ<6prLybcfijuDi0-sa88YtChJWb~r-_uFDMGo-F=`b#2N8>jFq&x$)p>3;(Ml&k ztRP|>5mhJnhj68NCqn$1)%F z0gn))BC>(X1%9FEp_=HlqE-fDo7r{A$D}b)T`QDT@5G||;>>G!0g6(NO zuU>r<$W#a*wGM7`_*UtxICRgsOW6Y}8rG!^pPw;$uv7^2Wmx9=opC?v z4j1OU;~NZv#H?IKE-^Cj%s8bA^m~s#NXD9iK*w0dmxB_#Qu9dhIGi)3JI5F9$taez zHa^jZA($-T!UZJI4iFx|007CNeg&J5OyOmiJfiw>abYCoNaur<3v$B0dgw{Vu{SWsi zAGmm3c#HXJHe>e8b3rjYm5U=H%RU_6*)bWh=blf^GfpfuLN%9)`g}8VNHfbR`e&8Z7d@(u zbVuUEKie-3bX{3=7P&ys;A)Lvu;w0_?OxW$8CeIjW@&B6d+sCb`l7w`KLfU2c3M_ulR!>userfI)aSRNWx zc@e4yE?Jg+4u9=sGk zGyG^$FmU*OoS1KU#|Z^$O?9{o+Xx;dAcWy?yi}*6d6cUN6B$R;K9hgqR%A5^r`5!0 zb>YFBC)Sq*QIP2^$aHJiMmL4S#QLy>0uTv5_VcjG3YGvyG?4h z-SSw#JS#f?03rg1Vz69lKUBG2AStW$Q64zr@yxRZWI&`P zMbQB0b(%2oF*w~iktjL;0L2#9EFPb`Fa?>26I~Q!8C0i2Npn6j&n;T0<4lp!dFBe> zO*GPu8d#!VEn;$IkPaf%2;B&nt^A$i7aNG0gDM7bd)m#JG^8FQ!bm(TG86F zIzTU!cp>HI=N=3%RM0mp+$zu%U*i%m{{SOwkJD0R%~qe}j8-KXA{XYpiupUO%(rrT zd)1TdsX_k$A~LDw$pEi*qoM*zP^yH|(EB|!bIH0n&hDBDu?we{P~)J|+wGix#UIN2 zy0EKg)LQzwnj&UVI*}aIGpc>U*r!E{5M6VkQ1=vFL+(&x1HT3TYr2!T`e9KM3#8aFF{{Xh#S43Z2#TT{o2!9$2xvO&oZB(!i z)Y_y{>aLmj(JEV7!9eEeok|8!att}73i)J!aeP-y+b8x2eRJ4pnwAaD=#^$uNB>91@%(##Hu5$CwO6MTun`EGqn2M~ISM5QHzA zYj1eP!{RO!=eLd-WJE>vgCyZf)F`A3NsPry%jW>7JYUO~po|Fz0hv?RwTvj@Ns6T# zVlj-w0;)Mv(mY&%pjN5(q;M*kOK;u?S##BC^1(8L!~~>EqJp1_A3Lgv*M@K7Lrt{G zDl8)kQBhX&jvT{Zx7%p~Qf3zq_U4xd?*NGke{rZIP5Wv4+%k`)?PaxY7>m3UH2g#; zFT}T3?Wa|+{k%yK%uLfM?Z_!NwpWZ9JVetJl$i>IG63FgMS6!*9vi^nB-ohZY34QJ z8aoBLim9toKTQ2DS@A#VV2~7f^KXd#BlK~FB$$(7eOcdbk%5LKl_i#0br0T=`()`? z*FRf?=Rx$Usq)YAd-A$~T|Vpg=rbHEVa$y>^NtXHk-}!Fd(}d#Ei#97mietYXqtM* z?S(9p6I!te>dBN0BXYSAnO{}iqkxLIX6>KYz>`GYS(9J7K*4uWkd|&8ZL1~vn3`FF zWpaMm^7dXCZUWsFy@#^oFDRB$2%C^5s?^^_f@PVOtVnSEfwIlY(Qo6c*B?T#QbDMyI4h3cf?R{Tj z2k!uqfN%91Es=edIYi?SyzWA^w% zjv>=Q$o0>p5hX|RxkKKG?@_F9@XIM_=u?VXO>v>psLvcMP$r65>L@6v=x(TBR)~cc z$xd{)l%bU-;shnZx*9gMKLK#26bd+iCo1lWGFD#`hbAnjd9ng%4R6ws;_!eoWD3ws z@|6r#)f3pkNpMM{%tv`sTdS>W6HK!k4SIfl>mRAeW*(_&hQDEB&M>r}=Q6CmbTAE|!~$JXSOCNF^+ke!8s-vleKa099-J zke{hS6??k#Hi_`Cz)5Th?@XVpONcQ40OSi2Ysf06ub4ASFAaE>>GgJ3DPn5QVWpdl zI7*&b6hBQeBqP!%Af&>Y1O6b^ik7qvGC#CRYv-n)+Mx(iumKW%C#Lq?p(grnGo%rT zA>x!1omjx0Y(N4$wXrMl-t-aSa7aQLUjF{k;DK3P6ts9jKzFUZJmbO2QCtl(f4}Af z9ToHlpv=Ny^(~4KX8=%SO^^^j%B}zaa&rNku=-KCpv}n*s%ITFO6a1tT~AnIsuqV; zc0^`Eib)e9K+JDA9hpM8w-TBPOZ~(b$ztEg+lz(GiXl+q$f$moFkYG!b9Wx8)re6D zO&cZT9D)Sdw{ok&?-Mw&5ETc;wa%wyKx(lo~x85X-chJujNS{)KS!PMa>z#Yu|mT&6m}q?{bu7 z&v#gQg|gN30?M@mofv?5pN&_M{^1u_`jHsr#ghvE0Cx)2%0N|dL`rWf3PG)AMd3zs za&+Y7Xkk-2xkU#{-1>xt$vxJBwr$cHhJ!vNk{M+mPdLPuWa8pl z-jHYFn<;^RNSx0s-{lz7O+1p=i*I#|E){X~op-wk;h179uS~ro3{O=gWnl+}czAe@ zZy2dA9X_Jmm+|QyCPMF9@5&`SD(v9uGEtab@IguVT3Na%P+SGL1v5;e_RQ9xve(?) zreSg%5{rFS4^4fNJS3biG^#3Pq0avRceG5lmd+s(Vo^lQ04F3>Ra@k?MuUOJGQSdK zc$30-j9K__}Lzlgy72lWg|TMvbQxkr+3qbBKKlS3-yaH9RqH4(*RCwZp&vID0!SS)Jyb=yLU*QWL$@SCBnwi7;2 z94KCw8Ke0aGJ=Wy!=f=>Dl0N`vceF-+o#9802As^0;y(YsNQh0Iv=M!++_-?7;;AM z@zMwKBV5~;G070tslpfH05X6Bwa|ASsh=n%Nm7X3ZSzP;g~=Me`l))rQXG~pWg00r zYao4Qju}V+Z278muP4YXf7g_K1WXN&)IhcQ>PAl!9w1glIuZ)g*UVaxETkW#AN^9H z}hnRY;g-5ra_j zQr2}(FeH$=4~s0OWpMn7>sH;cu_u~SEa0_Nf(bM}3BtP{Cm}j20Jd`t7n8z~AW#OWdZIc!1um1pQ zUSfW(5UInJ*FHv>_6BWHnuY4%!9(S3^z@6`nQOYjI?=kIptCtO1Rk;2H=j{N z%T^Zwfe50_*@Z8ds*uK>-+HfKynl!wu+c0Wb)Zl#iXdBTJM-meKF7bWR3^(BoIb{^x0*m!sQt1gq03rtAYB!KxkzT4U_L?oL1Fa;3H-iknCG@wciVENe6qYf>T((_T{@FpV39?7RRY)2-{RJRIi$d2s%)uZB+CsS~4_RD_MaC=&f$?-yn>% z1zK7^`DdW19ZxsDs_ou7Wte?BWkf>eE)We#@~v`FezDPk%Hoyi2X!h82kf~W6eg6L z+9veP{rAx$5VtS1jD8Tjj?+5zcaIiSlnS)<-pqKeCy)f|60EbCXU-;?Q7RjZ z;~nJTl-4H2#FkDIMTO%@Nu{0d`HW(JbO`jN=tJijSrx!Iox}tlfR!N^sOn z^D{>o63k_0rGC*VcPTNC6EK$yso&Z$r{k7sCakHw-X)Xi%`2P#0O`raL-UE|NoEX8 zx@z0Xtr&A2CjQ||ujZO-7&sW1q$G(ly}LD&HF{-%`gSb*HI<9R{swj7BFuwj z7s&bqb<;90qWj;^GLU5`9CrJ){E;GA=9IckEfM)uY6|we z3FRj8^P%3kv^3Qtrv4!0bE5BlTqLR@6v_KhxnA5qEdkpsPuota7|R7`$F+bc&qhOBg9mx{{RqcEU12x!n);Z zOXgg;SkOx`6KBa)2+y1xU)z^8QjKrO&^06VS!TzWO)E;}fUd%Gpeq>Th0RTL=|-UR zj~Rj$ytd z25um?vqbZx#1mhBa3(WKB~_{w*7oP^5=uD0Q2BjVM|MMLqY7W!naaud?O5;zV>1M$ z_q}7n58__Dx4vV-GCwDm{{TuUvZJNKx%H!}c_dR{PMq zR=wb@S2Yz1P%1kNlwJX^)GtG+4cM-uNcFX7bsM&@Ij2soRX|afQm}Q^2PfO7BSHD? zy{Lx;(xoifc@E2<1(B`D-Kv8qeft%yI~Jjb1Ls}nr_O41MO42krjAEgR<#PvQ5Aifg(N#k_f|tyMD?}`T`LJ8(W=lfar!735qP}z< z!~X!rnsUfloY5}1jFa7ItaL@nl)CD!g3*nYseeE>qQ*I^uV22$DDfpOGp!>Z5qP5- zV5^lN%{<^#C1V(l8Yvp0dd46PXqi+@t}UERDaHDc2r)FtD^ye71j=7WiRPG2*Wa(4 zVN50~J*(~31mV%;e<22WC3Ga@k&Gpq4GB*;#tAYGTiu`}s+l)v7)EktnuX)TcquU_ zl__>tp|#V{N9n($$%=>(E$TrB(_@2+=;#z!!T>-Vh>RP0=0Jx1>!eY?jSxa^7%y zu8Vf^sZMz*A5|AVx-VACI`FFil(O`T)qeco;Z6Og^POY( zlg0G`*Z}7I(&?H+_#8%FAE&L_gS(}jj7j_0U^_SRbHa`pm3f4@R{BcKAW5$&6{z{v zKevYYWR`+x5cw>t+%o1vUXkM^Wdr+jeA6y(K&CuwpG@Btepipw&+UoK$^gk#6l(mu z;~yB#COk?ClP~eQb*%!|oJd5u{{R&U{iQ`hI5MpYJg&xA@e}<3wDP7wYW_>D*cKAV zaV4XPrr}_Cvf_2L!~)@E2|P=RaKy41oT8U`S3Ix$NmnB*N#&UmzhJB9vS5^$wN6W* z7wlL8a?n;u{{ZQf;{H;H6HxyE5Xhh&6h;e31k4HH`kP9A5;2lV_=QbF=jNB^Ls$|C zB`5jKHB*G494W!Vey0-!JW?T0=wlXfG|23(R{XEutFH{pFA4@)_gC8_Va#|`xf`u) z5K=KFCSZ(BO%{{Sl-(J4a8Yam3aYnN6~md&-8QdpFS4$3Nue~sL84D~Joglx^6lj!Pv z%zubfCq>MoQI!n=0;P`?KgIMaEs|AwATSSG=SR1d$arKeXH5co0Ro7^-c|>rxU^YI z4?rs3^ha3uy7{lqq#9&(BJ4U6Q<=05LqE1#EeMz2+Nz`HP5uf;w{K0LfRtZH*2`Su z=Pa~7T05*d(!;y2FFVrU(?03VQik;CL67HcNtqbiS(KB`b z0J&@*O1h%JsD zq%#6ZSe|))p;zAh;}Tj-O3PHsX&9+6QS_y&3-qkB^JpQ(Y4bKyV;2eB&pw zxnpp-PmQ|Lo|u> zs52vSKgo4v2e)vflawvrx5c zzNq_H#0x5y$frg7l;rW_{4~L4kbOpr(SAYXqCZ^0o>^x4P&=SjRH`>4u2GFBmUdFQ z_1Lhy5j?-z6e9ls6q3F%`8sXfZ?D*CgD>v z(6L!uF{*_B0F+O~B+@CUa7X-p_K8uMW+ea$Zkeui1nHF0sZ|tVmSudoMB{bw6 zUZ~64)<*tUzMfj3Cbt3t1R}Yvr&EzozcJwE;vk!K%dO+Uxm$WigZ|p@Snz+wtQC+N z)9DXoAv9NsZFXd=#)|Vb>a`E_kYy@5adUrOB+zMUFu7dYGuJMO9A7?-O6A(ni(Qpb zqWk3)3Jt*&q6Tr#QKUL_>Zi*)Kao`ujNQY1Bt3%^OWX{DO;%)Usapa5JcU3~O1-K+ zKy?)_(&-9UPPydUs4Ep*^5wsLkUvWT!j01J?*N76X7;n(`avT~<}>*7YDY}7t(0hj zg-@$%%d7OaEmjJtnFDbDaa@)`Piu&gPsV_tdOpc#ntM@2IfbwDfT zRkg0IDvo+&UAkti`Lfqh?zMG{l&?Yp2M(vYzoMp;sANp;;-$seAShhO6sA}CwJb$i z_Q`IClOlJIzs+bW&z)Sv#LcvN#>L!g*A+0HC8ckiNXLC@`5Me;uM7$pniVaCD#(TC3dKTE^^0I4VL4iH|a&OcAVpA>)kV@uHzFlO=id@`Y(6RYx!A^L>%lt?*0 zsQHW;ag-#cX}`*9b>ije0|b-BKL`GrdJ)^C96j&j)#a5(x2dl|&XK~IZ|@v~-H)1b z&b;6ylF!x9kQd%Rjn4PGs@p?H2nyda5cWtz_tFVYr5{b6(Zw{@^zYy0Zv;)BctuVi z6Le3%q$IMmzep7S02yTz0?Fyp0hj!jMH?`M%*FJe<+Jm|W=0i7-+#SC*^1Nb6W019 zacWarkj&*JIk!mTC>B*r%M){S84yorfx@g1u$9Rq3yP>zRaCpdtzX^@;#8CgvTh~$ z>aAFsY+2urf>cfp5Jbp`?JzvOk{2f1*O%Kl4B59wP>W5p1eZnlUHn2BuJ^Pg(%hce z(|)j&95f7;LFLQu6H7^eR9e&;Fie%#y2S%;I&Yi=3EdOa@2pNp{{WE&h&knLye}8h zWt1MJc`$SosB};XiKUuc&sO=;w}Fl&DK`-=gd$r|{!c*h$0WfN%Ibs}Q4Po>BREvf zsRs{<+G~O)^B1M{$i&!zIB2GYNg;Be9Y&(j!e>vVnQczH(l`X7&?c5&jdEM>rTCBA zV{b``Gqo7>u13-0Fu3Jp2a6>XHrc6<^#_H<{j5R5#Z;Jix~| zT&a{|OTNtB%t!@UU5O)Q`TC?wOlx+dxoB6-C4r2&-p zB~k*+j;Wy4wjnsC`a&l2j{_pm@(J#KW5O{9DzBfnqfPkTq>hEnNfv5K(whZ=FXccZ4tbT4~cO=?Tw%SIHqd z^IE+r%a)a?Y8s(+`cj%ys}8USwX)wstT*4cwo%Jliri@fQc2{Bp3m~J)1_GU^fyb! z{xW7g-PFTnk(2B${MpfSBe(Xd`VOX$wkWSl9u_%@+c-HbS&0VyyMtVz z>tWK|vm0e8T-xZpdS%W5RAxOGif^Q9+~^sfmfRuKkF%#*>?BV8(1D_yl)X~RaTB5x zb+Y!lWzsR`P9c{iJqGfR7dpCb@s1_MGn7MZV;2T)VkW|xSq#Y8c}5^fHOet(k<>Zn zo7>V3A(~zpXnh25iDpu3XyJ7NyV!#`GQUVOBA};Uu_W_VRM*YdUdAWI;*@LCoJ>hl z5T8gqMOXPY{qp3{CL&WRmEW9TcvCuXvF~9}Ui^!t6%&~l$2EDHBA~g&=WXO!Vef=9l^2zLw==yaX}IqC25)_ zyLgsm1dmUHV!YL$6T)b^9`#=N#Iwycew>#tE%${aAq*Q{w(^c31E@^$%~!9)0tr?7 zQGFt8liW8=Aq7vk)||!uK}kz`Z=@L=ra2(_ubgmeb<=y&Csz)NJvmY)!V}FYlnGj# zAfa`cYV`JlgP2pFmL~wc6_K?W9M`5$R#B&?eWKO`!jrX7_Dcih_r(5Fk_QZk zNnWkb?1f{-cwyoWB&qc9py~iEr@}|-zvUZWEsp zl?Az4_eY7rKnt050WRKWnWC365ib|i_Ho585dI|)mZ@cw-2`z;B_R`rs;<4md}|Lh z#7cOO`iB9mMRd=5PqDC2PFNbOvGpaUV!LQ%aXv zXpbtb5KMx>R#lY*VDV0d$N*x7l|z!69R&!)KUyi6gHk#S>@&0m0&d6G%@PzDg^aZ! z5W3o>(bW+Z0uK#0@!^?P+tNG&s3wDEvEYCxCI0HR^!Kv(FnC?oWK^gAzvSqIr}DLk zR#j9gKqle91f4)#DiS4RadfSDu4DMU6G*d?YREbcY{)<_WP;@7)1I%)d%`YR*+oLO zoSVo4$+fEfZbvw^ZB!KW-mnS;sRPr`D_)clW%gyWDp&JpG`?yx9I{F%QpT`=gklKh zs^qN-s@xmGD*d~A^+%0zp!dyCBJ^=p&9n1NlVY)$<eQoNfxg=y6X!OhDq5!oQG*Ib!GS^VI6e$Jj%5y`nklMF; zSD%{Ia#NIS3*X>%L}3J?n=04-MM*XtTJ?Im(f7G2&&IVjdvHV-`ck!nBM` zEJ6}mn`$pd-qt4Yvk90J zTV1{&_-XhE0N3eIhu%NhVoW7kjSK0$UI&H>Wt0;(?-PEPh!B|=(?}nqW8x`vN~Y{L zd>_#!o_-W1&=W0{u6rr#9v}TL#$OG5s}g^t{1mcr&50%n{{RwEP@(P9NboG?Jl0P*Q{3@04NTi9>mI_>Kn%6oA@tT`TVr0VQ9b#-8ys<7K+FtnoVk z0Bp~a{Wq?DsiY_&Dg|8ZuC=67-4xU{`-_{V+Ddxv{Kq1Q5Cz;)R%9)C+ zvVvx*RSlHC1|GTj-zwQXEE`7cx6*L@70mZTg{ z6Ewg{CltBNW%N44xSl9tB*za78htZN4b3R94kr*Yu^!+qR zm=jTx=GGv93W-2RAKbbdjfH5#{veChPvHANFOuHtmj3`DLaLWwS-pmzh$@*IfOPJW zBDWbQ{{T~Y*G@?q{$M+A<_%nwY`fB?{Sa0K72Bu4?otHWeY9;oLZqYE|l3)N* zhcjITD}GTn5uRQa1o_pf2bN7iAL>8QFnnMGE!+cNi}NneoJ2D1}O+f z{iS(<6H0&t`X&UArd}hPlruc3DwG9yLa2@tEX6;NAiew6*~T9PxKa!4BNk!%oFEQd z{W`?6AQGAopjPSfJfcDgBhEZ847>$YujV`y;&uZk&O8`kY3XZpB!}{k3W7;p%Z4-v zfkFCsNIXI2xk#3o0e`3{WSE{+TAwL7J@qDixjWuPfX#VK%9Nk>! zbJ3E4*Q`>-6lI!T!n~9-C6`Z5Ux*JwkxnN}%c=T;7eXr*=6O~2FL*U9zIUo-E30S* zN~f=@)(BI7Y_8+thOt`H((2{VhGmz$Am-P#XebI3%vFRUb?5v+)0s|pMTh)*XW1&b zK@>uj0*I!af`QG{qzmS!*G{N%a_S)Rds905uDQ`kDfKt0w?SJ`%fm2NW&ui-Lql~c zfx&c8YFLt7CP>FldNE%k-6(R5?k$xGdi$+oDikF$S}4l&e3|3;unI}Yi@%vX z)H)S|tJM<{6fo%#aW{9)4;~=o=`X$!;q}BBrNDqed?c(R|LdpyYdq z$KrG~B{#De&o)HWgP*^oPlxp*4R^alo)&X5*C?03Vq#2qf{QoAf8mP62GTJUOk<3x`FB_=H!P7&QS$by0Rm76wWS<~MPOS%Y@rGG70=u5L`&Uz z?^X`vDwr8jPgo%kSq;;b^~&6$RTm3?B}(=>J3$RggUJuFH+U>jGw$Div~K&~SW+^A zMUM$*>vi+LREga~nM|m5h9#AeOQ3xdD?Re$VtELrf5%g=$Do3sEc0j<{{V`*UO#SY zKXScbWLK59^ApQFxF`y1_*(7KKWG_vr=F@@Wn7tWPEq?a@R_idVh(rf68`t?kKT}V z1B<(Y@T!TxrT9_MGKV{&qi{cU<&-ATW1v>63mDnS13dS)*|q9v7Uw^{%fCsLPENiw0O zLMxqP>1@xqtJY@b0?txj_%hosE>@mW%Oo9wQ7+XP77UvVR^B?7qC?#o+$riThyl4vkvhZ6B`wiabsp zKheW54BnCc+J6m+iHD335;#F>U$jhk0G4UKj%0vJx&^mX5#l5$Cc_^}@d8M;sE4v> zjUE?>iKLoz04NhygqOGkB}Wq=1hyv@9N_St0#;fR!$I{XO++b1X=Q0& z5iUQ{vxNJ&YIYE2TthV%sY@^8nlu^D44@7!O`SgJ9CJ!X()abs+Q)>Kh{$dI-M6+r z1WPFZ6SmvOg8thC=sCxPAjqHO$W;pET7XF|>GdgCl>lq<1mtT(3I0SSUIXSB2Vius zD=;JiV}w&bM7b498u`GuAq6x8*l@KP{8Gge`4#J`ucx6{$?hwc-%IHLeJsK6>tC9# zp@8K1?>qB^S*YG@s$AxQgI)r@eQ2jGC~uIY3L6=UoYetLno&idQm#wTk1V!hHy7ga zuONuF?-|v%*0$*D0M(G*)<9G>5%R4P54q%tUA=7sTBV61xu8A9aC!E9`Q;3~4cQj! zLYao3qQV{}WUh6~s=7EtFy{Ln_sNEcPj;POK5tk)Iq)fR3lRY0WXla{_@5#Ye9@pza8WT$qQ)H+q>D8ix%$#$^=bkM&$M~O9-S_=N9Zz%A%Qng7oYVW3M(S?D< zrfr>6UW|t@3oJ|F!21vIbs zDNQ5&ytyJ-70MOOS*=wRAozJsSyJ|IyC7H?5&`@}JqDyx%Q06i`#4Er$hw_IdKKv( zvn^BX0ezS{V&s!KYslqlV-Vl9{%ED3p~ga@Y^j3L9rYcpjT|Z;33nj zOD<_rh&kul*R&w>HS+D{00evAw)KG`W$@gghqH)RDt7hLc_OWiGOqeZ-6E>Rze=xWE_1{P&7r3g7`W}tS@jA^i2bBpHah%>` zrm-=aSz9IPYUOk2u(Hi4011hy__s4hxJPJkWDg?dVP#>%`ibQ9RQ4D;wd1MYxI}fk7)2`9AWw#y zvfi&tqZ;Zj1w|YOOzPIszi z?7sZ}00*_4=GonVfHOwP#*NtBEKOh`8uHuqT%gt_m2XU`O0(^)AG8Abzba50JxqiL=k)Ib66B7x=Wk89%qxCP*{6~kK$&|}enAdvR zG3K68z^o00*-f=(8rm=>6Ui*ZqEsVg%Y7pfZ>#CV)e?!5Ro9|ah>-BA5iq3$!r`m` z0H*6h2NVe=`h`A#Sj>2X0Q9S%KtiiVE6%JwnghhYPZf!Dau4yDSBLn);}aK5z)+5X zI9W(0tb~SfTJ!aYo44|XUUKPfa%ltr4M|NnvE6@(rV7CbUE_t zk@}Ka16;CmP=I&&a!M*GwE|Y9TD(6>nx$AL2uf5YzN)(C9ZQ;W=74le`IArM-8Six zttlBWTj<98`nsdTt?cKq3Qdttnw2>K!dnE${Vhu!D5NNdOtr3yYd_6ln?sV>awsTj zEHpZ*TF6)3lgS;Cf4OeAeL{a}vxXwk&#D7fA)MuZC_}H3(Durpdz0&(M@q8w7rA97 z&K!#tOtgIJA;}p9>Qx4Gs_|-z0UlOB#@9JEp0r5eLdZGQNq1ZHHd+`bO4CpdYB|er z9`a5TB1P%xrnTSW2pWvhA**IzUUc_w2tBG?^bk zP5EgP&pe0eGfcMPRB_JjPlyv7)eR~5-B>}KttC^NIwE>=x+F*@SARifp<9*BsRdOQ z`8Dgmcv7SSdY@0Y=LTX*O5v1|^rx3kJfJ-f_df_-O1al2V1?i)BtMq+vBZbpy}ue{ zIM$W!Q!Ay7e%wv1a)mSYcNzEdj;xkGd#Hdi8C!XCioU*A=#R9F(xdEtAe2f~E-b8- z@<6#f(-T8Vvli+@mFXY3n;f0WzmwAUiDpU?wNP34B8-*I-WFm@gRIW^RcWil!cZ+L z<95RV{{Xm@gkbInF@^O?gsElw zuCax}BtQXut83&liI#rkA~z2p^tXJV;RhtFvZA7#nwt6&m5DedllYdVt4g=9tbXv4 z)TWhloJos@T&}4r3%Rh(U@Bz0tRJYjaYIV!^Kqkb0CxWXn`;~(pIDkym`fz!lv%>M zCjUbRp>)pv zcJo*z6hx?&-;@EL2`EDRWIEV6iKQZDR8=R4>Tj?1u*TGj?*>&< z#8>G+j8mmfodf`S>dQ(N9P{N9UqH|O%5-agaT)}9oaZ;S7na^JygajqskOSVCoNak z_3!lVABn=4$Oj)M?QdxPXZ<_kJU<-xfS=^|CpFva7?Wf8WWxG{q@8YxMHkW~#Fj>! z8G#QmK<m z(Fv53%@n|t&mbYDlp+a0B=K>5L;$rXi18K@e-ufj5|x3>no1dvBY1+DwRsKBuybOwHtJ8Y4 zexEtRM#yh2(csaKF8#xG^+@o8>6O7iexRrON?mB^sO(}Jw9OOFFlZL7(#+e@V0m+Wb2d#TOstWPK_^$@Jx`*Uklz`_bqnzcT3gCOc)VXpJP znz!W&2G0KghVoc)b+eHDGW!_eQ}u9~o|ke5tN>etvb}a2r$~8dwp#goHzKjbYgNCM z7vr29Lg)cH(&^R1xbD(02Zh7l{{H}Y=QEUA^+!?MqzC1%e%6GdW$DYx`alA^<;wdj zM^9IY<}&?ALeMJJEuL4`KinjL6V{$wy|O_x=QIm!*&J6R-idYaov>+0L)D!0hSxNd>n=72iO-LOh z9}ZP=h~yws+u9A}k)6o<^XH^tJh}GK(Bzvj{6J-x&@ti6lT}9K1bsMoWd8sum4Yow z`&D{CQWoi`=mk9c2$zH-K5g&m$)Fs*+vV2KCOq9M3OdIQMd4KNnrM4@Y}O~057NBp z#B$=PH)mr@@hyATO>WLwImcQmttkd+ZVKi#EQ#6jQfgxAssbP^tgve_Duj%hpPi&X zJ#6p=PH3H~TDC7h5Q;+T2+pVyp+4Ed39rdVH_dFls$mjhK_-oB^?UNvz$5t9OaB1I z{{W3Lq!B}68H~K@hp$*BS0pVtTH~Qh){!bqXT;_7lmse;9*xcjKi%~CdJAVyC7MtA ziYHo7(L&KE+5JwTM6rp7G}V8|DQ@Y`KU?q;c&sCaWdH{LDCblhqxJs)^wuYaClXmc zg5qkB>lo6{EVE%u7Mv>1sQg3SC{;p65A9+O6*5gBSpk$!b_eMKWe6xl#mEp0^M3TE zVKlrleOxE$L;$OxQYC+(NaAn^#WZE{{Su}3jY8}1QHP) zNOHuE7f@6Q3Ss{M9w0{Y(@N-Kb z23oXu30h1`dg=C$0;h($^Hl3t@Pz{>5`A3$p_wdKpk|n-6`Ty!*R8d2Y?n)Uk0&aR znqC3Ebtb<}HN6W8go{uhL|oZzQAXtz`c)4%70ewOJHq60{{WYg++4NDVj)khSaLNz zg^;4a{vi6befmQ3P}QRRwQc5|e6AS~nm8VCsn)7~>@)A21Vv)1;+OAQ^@iX9C>m6v z1^@>0>R^zlu9x*UfGJXbOO|DSR6t27ld$iZnCWWsSh>^UhgV)vDjFt4D&`YMZiqlM zU%ifLW%PWE5}#b>e*3pP>C_Ig(FnVrMhzG3#b18E~U}^ zND6NNtpx%iI5|3dBWD9cku2`7qMZc{4$7_%n_A&{Bf{Rm<}`c;G@xhbutL=$@rZoe-)A1l)>h*6vaPPD`oHZqD}!fVV@I%;5+bt*dZ$Za83wrta|HWwqi!AV@*7R)&n zZLB1!OrP;Nt59-@u%#+)+(xCdTXM{i2`q=|H9u_NFiCRdmik1ppW+Hr>QygWa~6Rt zqEW|j%HX0`W1vARJ<~hYB2cv*FQW3VT;PxyTvSx`NEnTkd77@<-X)rH899%VBaVBP zqgPV2^0O=njKLf|li66;H?@$CyXy(X_Gq~ra02fcocu!=n(Ly(xA!!Pir4rz%+`c2m_i2XfgL?|V;`p1G}D))67gy)h9 zXC4kw!W07FvL`b>?9!P`sG@({BRYy*?W+nZtrZlK(@~{So~_}5k)Nd4n_jqE{$(Kz4VGD za?h5$&z<8!>s@j*@<0S9v-0$~FgB~R^9m>(5p`Sn9i%H+0BLnus6vz^abrz zhq{j0t+<>9Tfsp4+AnC)X-Y?;$X$!kHGe7xYGRUqONFN7W!{nG~h0nRd9O0E~zSXLP+8 z?9z%PThyBEpppEn)==L0BldyKS#9e|(?bb&>E&t+i+`2Y+93GT<|cJSM7z2Tkm(`_qjcdsTn1mXxn`S0$L!;{k}E3Yxtv$leO zDS!&qX7j)fgn$bNy5D%m(0v=^GNsGB< zMIxx3pU zG~XyF8|~YEaAxhV&AGugJ^uhI>+Q-ARZ@XXl@ZQyLdsLiZ|7*5dBId|LA8EsQum3c zAL2)vR*Kp5XfveWLmbg}-X`&QfSw|t(X|`vAMP;c0ao0+qFJT?0QZ@)(^NBo6t`=*m1a11Xe)b&b=Jf{r&Tfjx(Int=Hz*~ieLD3Y?hS~i z_KWxuUGU~uOX?=p0q|z zNVeAN&h@RD&=!K?&6T=zpsX6Voh$xGP`;{`a|D6KmU#qzP!#gzrQ7WY#RG5YzfO=t z>2Gz<^H?40RZ9J#0`xq$zEeo0LMix7ubV&s1{|yyrb8ypxJo#jO5j%{PvuQ(<_t^! z03^+S9JPeuc?yYDO>6#6q^Yg$iukyHxg_Rb6otz`4eyns$M{i(4ByIGhtv^M@gJ-H zgW>!@GvUsYIpIXCey89uyb{VLb)d6~J#~*8i;0Ci(wQcggN9nuiBu(n%(|DXVJ0RF zq(AabDNBDFrwImPPy$oxQAP0b;{Mqa&ZwXQ57MTT%#w^1bBt-kxU+DY5pb%YQ;1D) zLM_dvkJ4vM52{rKQ_o28AGiCUBb9x5g$G@j@K|6OIySrKAE$&ewNdhC-!4bM*-fg5 zjhUm-2D!(B3x*vCqSTiNUs`c7W~47{@?dTfhcnq>YAaScHJA*Q7t)8NO#vvHsVCh< zBfp-M9ID|6G5yu3qEMs#UW-|{Q*lkziuub2J%#vdA9!?krk8VmgYOnzcjxwm zw(9!)TPSmtt-TM!M|N%NudN_3OoB5G*0Wj`*H1)VVvEl+2vyBkXo9r9W+>HFD81~b z-CRPG{l00S?j6WLnV_$eDyLPp>l1qUW>rD+rLO^W&Ah6c=pirf(HkW0V1Y(dN2@)K zw$8PJDak`W-JWF$Im7I3XilK{`C9>zA zG^V}6v?#Nc0G(_*L8=V~!_elNR6$D<_iD!_H;)u${y`ou% z_GuDMO;hjf25gJ-(*1XmlhZdn$F*#499q!ttFpE85sD?7^UVCj##IQN;!p@YEO(yF zOePYq7jT>H7)8=@W_!1juodpnF9Qm4-&Cqc?W#Yj7zG^3cj1&wT9M(%0%0hYNtRL&P5erp7c&YJJh*AZ z2;!1Sc&6eLSRy@WSkVGMK^`vxX|dQDLd(R)!-xBn0`HNcBz~8LESMmlsYNM4yGAkN zoPUTUh6`YRs-rNVasraR2uz>}lcLAz^AL=*3)(ydwIa%>t*=Fo4g3^~1q)SR0;H;V zi2hE-rGk`lgo>(2*dFHn%*7_=|hSdF3rs z-SbPc9E>spUK_SqxuLgoF7CpOpDv$0W&SeenYFh_8l}C}J7=9>e;#|@f)}P**4y|V zo2K(fHYuM^&pe@B6%^8ozFNqvD(NXqe3D!j4B1Yn>ZtR7yy4^z zh&n5p`2fSo_teE$dqmQSYDaMZnS&5{rs!c1FAG$lCB{QjVG@`2W^$kVy_w*bH>bYW z(iA0y(=^V$R4{{uS1$Q;^M~Kh+pKXN=NfhQ-@-*zg%Gu!yv!0+Emd|^O%@fFnwT@m zs^$WxcjlS%Pu-WV-u<6C=s$b`LR!QN=)3bc@*aO72r6I7(LOw*m_Ye?iaQF{KYI?- zi`9uf`{f*9-Bh|Knr@La%utWaO+50_Vb%9-qce9L?Z( zoG_%MN#bzpCs)dmFN&7s5cKOG@36rlQN%?{CjFvM5>M5`B%tYD_T?Y$O!BBL*t{HB zKe$aXD2}PmFP_i=oFD^LeQ(;G;}ecVEQ2cdYiaKo9wBH+)AFdAQz#P~5(_c%^7tkt znq^f!fOI+ZZjebMCAhaJ;uR%BBlWhL(c-i>T^;MylhP(B%h4Zy5CwAl?`s5BT|E6724@@{8Yi>N@=!U;tZcnot;Z1!KqyNt)gi|`IhHsnoryM z0wZK(SOOIahH;11McxK_8IRz05ARfSf7DNxn#WGHlOfEF? ze!=IMM@uYq z=Wf|1ZwY=EHS(!IGUx#1Pz{)|xS|$Ndl1wmY*M9pQK{17L^Vbp-axYrS=n4fv{$Vc zA{eewl_-ZhXG_&=RNqg(e3qkPAClKSG^g@xouPclyJzuBA>_eVn$x*ARlHDoG9cK$ zkZ3_+U(Wi+p0qUcE0R?#VJK;$3#zX*=DkEEytx3&YUZ(^kbz$GQ-{AT^s!{huiDQiC>Jqs0IwA5YZr;W#G5lom1IYMQ`P<)i?fUVHO|DOzuny8AK)FLEwTytxi{F*LH2KD4%}k{AIg_K66Y zt(o0+Vrf99zRvoR9G@j8+~|NmSmMr_g(}xxVO?4CpAu0dpnXd*jv-5o+REA%qb{O2 zkru!G)ob%4BlQs}1rX(0qNU!qE~$8;sy<{7U$eoOSvj`~RaJJ@crTGpx7DEjOqOyl zGAk!1L#VOdQ8)^sWOvt_Y{cXi`+9xeCM=4pqx|U;22f9SUb{Wx5^1DkFDa@XC-H{} zxqQaNVfgtm6YE*52^nkmykleH%QCu6%hD(D7?VupqZ1g)%FuDa8|@grBucKDYajT8 z#iTFzXu|P?w8RnHq<^}@4ha!A>T}Xb(~$#OMi1&(hxyLG_Yo6*q7Tx-)%(Q$I1(ij zdHcuvwn=6}Jm7f1h)bnjv4`TwEiwzn4~qs-DKa*9%{xHxB$O11am@%qNAd;xgA(|O zu;xjrWq&%xE+p8pF&+5`!X6@7{)fGvykKIV?rFDMcC>L2ig}y$PFCpAEWyw6dM|K{ z68emf zytswsHMG@q^VrS|ilE>B09Cy7_j4btewBgZ!Z4UB%^$9QoO}?PX#$5*2K^(&&x`xB z%qB%BshRuVM~Qqa^Wt%wLn#H);M8cLjg<6{)286T#FWg)g<}*1RaAECf|KH&oRNFU%FUKD|>_6>V5$U@6_agSk~<0-bg98CNlQu~MFXx9I@? z02XwrS(lThOVPFT&AZTS$5#B+d)WxBqpfeX=?pnDmvCyNlDtj+OPebcYbw?L%gOUd zuBfT6Cv*&_U*ZgRHSR3vo{FXwjCS5^Ksp(`1- z_qK{=`YIb$++-@G!dz~;jjR?-=)Zcp1sM)XZiNnxlt0G(?$w2>KGD!qzg8+nOr22u ze@RdUs%n0#z$BV>tzBsDP-!!ji&3q9T=G?}gl{lgrPhcgPe1=77dn9-6rc&u)S%|&eMRidGe5=8)IOy+y4gQpE9u?3?I7=av_1Rm>Foff-`mrh!I?sjTjWuyQIrIQLXUc$ zT~7H&R~(mi>jZKcQVfgz%jAdGddC7cBtL|v?;0+IxVCvAs4P|x)G@ItdL@`z@AU}d znp6uf5*I$U(kH}MB+cn(YhDcCAXQ6q*@>~`9!i-h-qt3@l-tp(`16cO#L7bSKAGEX z6Jm#3ZQ~Ods>+BhXg(wzGj;Qcv1K6rVCb>q$l)_0Yrni75sDMaF#iBi#QrnPNYv0o z-aLI=CD+n1Jb7g=&L;74aIt?_@jf(6LYExiW0FkDiL6QE60@AXZxi^rrXNiHL(fQ` z#^Oo*yZh|G{YrHDPD}9z$4xi@P0u)!#7-(!CGn;}Z!xC+(TC$FnAJI$!|_RRzg_ge z@ebYN3mnfV5|SXd6IL){{YFpVsnculO)|Jy2cJZAq6HTW@2)W z4dPNjF-O(AM;V#arA|$z#7RD18gKApiEiDm)phresG7u{lsw4Dy8CtS(gduwq4pgL{oxAq%k9s+AbEi_ z0Tzi^BZwiWxFlHQpO-~|I}Xa(bq{`#Fa`VDIBI#Kkm<{BM#Q*u2$N}DV+vs~uhuDb z7FZIg0WmNS&_B-mIhsx8XoU){sGQ7CD$3;@cDah>AIpeJ5C)j<(_|p>$HWP!J|UXLbtuSu#rGass*QlO^NU z{k!}VcQN+OKHb}-D|Jq{73<0!RqLlfiRo~Dtj4V1K6K&T;0&tFso#>SXU--7eOhNl zN-w@lAucilAZjb|POvSzuiDLI5MJ-5y1NR(XOj7n%;lE3Hh)qVO61mFHeSyL0+Y9o~4LiD+tD<$IyB?^bz91hP|wu z&zGRKJ{g$IK=Y5&aMEEh38Z*g3w}K!P|du(AwaeM*E+q=I3OrHq34;2mC-zdnwIPW zSe>YF72o51Rt@x}9HO_FbiJZtfwH(gn(NQr8&AV!WP>uez3fGML$alpv7k>Z zuVbR!koi;9dD00yvOjO~2fw7)jr@g2tBYBeRd~e4B|?Q!t8440{jC_jGHC)YB^e`D zu{Y{7%*vg1WB&jX;i>$OI6tb(X#W7j)$J4b@iL^*H;WTWK$r=Jp?AF_6U59{>T#@p zyg>7Gc%K{hC5ffOKT)X6U^UTadS+f zNx%|`OU4!)<<+CZiLGSclz+Gqju}uK_9A~1i6~W%3FBv$c};6d2p%UB7!D9aJw9WD z8cBq~z2aXHG?M=S)eGv|?HE2ch|85Zz{J)+cZTiPd*v7tf-H&OcdP>}g>AcTrqMj( zE~=RkXXL5p63z$&5VlK%r#+>hOsmj8XU-{on!a4%OypRhZhIehj%PY#zY#@tKOIZy z^AeEZ*yYtijcdv?`;N8NCYOcnz1kAneAjs_PBrIFmgpWN`dJ@k{PfNQ-%h1E?|LF>OROCP7sPYAYjP5kqZ(xqtwKT$F})Y;Ie{?ScL-Fd7i?=akLJrPuYDpQQ<(6MeUW5<%T^gFMRz$pKTBT@nwpFTX zV2l3%ab?SwfU1qX(lI}m3O08<{o}yk%q9+t%X-I$L=MQj zz2EL3a^%(1FS10$C~(|QgyUzW0Xjoszwd0FhE493{x2$n7BU-K6iW!xYn0PaG zHt)Q-L7HD%1<$3tsRm8^xJj zePb8KOjXTU_vaJ%nXA0^v5AgroK4~gEjPp;7G*4bxxn#lSG&RSlBjoy{Ajt1ZxMur z`wv%)KNJ4|HjHl+44+KTsf<#gNrH;6&3E$JMA)-erhdGeB#CE5JV)y2oA>Se=`qND zcWk0r)KZGK&W%Jp?jVCa#PJ>$$aB8^FvkJ0)px$pJc40MRDDr|D^qN%ciITX!!l4R z*=f4Opr8QmuoO%c^NA3BRqeea26?3hW#l%y>lk>6lNif404;6&!l@40?|y=5 zOIpKC8{Q@V0H-(k2$pUqOrLvbWYL$?(j}Iv5dZ?dwOrhr#Ok&CAC2h~%Qfq1lvC5o zoMF_taaZ(SnbCi?3W{~zG)0JYEXV#Z`c&ap5h_B-E@e$j>quX^X5HkO6W79x1U^+ z2Pd_;YkJBJj3E}eQ+>T?g3JfsU|#%k#8C?@D0_G!KAH|cP{5a zC?wm@moG#_iRw!~KAkqPh$`9j5BJaK$4sE`)GT9S&L_!ylkpx4$6|4jJa|tR#u@3Q zuM$pMGxton)bc{Gyd&!*&>_yNOJ-TS@el0*{{ZeR)Emkrl#1`JaF7A~Z{sJtA}U_K zkV+D)sQI~U*}BaID&-wMJ{V^JH@Dbt(g;L-GOGakpc=5OOb2JKSzg^k7@W7~TA>{^ zjwZ?1c2`^I$rEBP%9KK=dFf@XB7YJkZZFSvj9(gx1l^cK{{W}}3L2MwtE^AsMBm(0 z?|!k3<5KZIj-GOgP;QYwi73&D;%8gNFN`2>w12oW6;|6s*pr*I9~HtXVq9ecW#oBp zNSnlJ@r&Xn%#4fu(hrK@mzrOGkbGbHW!j$k^2$GSaILcEy&_4BzzZ)uUzXM*v~;9~Iu#a$BGr{6duh!$S90>6x)q?UY=f-pF^iGWp!AS>$KgmVAU&s~Bs~oTY z01*AChV-y_AU`J>@1|l9Bc=LTbZ){JD>B!eb2RM%DVRmo?*9M^jc6xB435HCnNy4M@+fA zcyL637JJu2QYtF$0y?a&PU__qK?b*Qi=}*%SW&PHhU5-{H9{QVpqld;4}M3>%8Bch0H^il@)# zV$36cv0p!h3GxwOj@fMI(#4=JZ*a2mwNfu~T!7RF3KstWB>IZ;5x;J?yeHdBGXs;8 zThbk`cO)Z=Ba|k$2pEzy_UE#;$`KEGmK6RdJ|H*KyVskSckaGwRT+pCqu5lwu~anb z;Ie{@U5#Hm7DT&sE{87S!l@Nda>4px3TJVOLdPJ0uw~1ruJhTOT{pm7RE3K{X&i-!b$sBV4``x z^p6T=!~mAH{kG6kGtpYzuh}aYcwwgU%c@qr&Tu7UP5fz-QW$oGI-cFFu;(_WNoHpo zwvogsck-!9qMtFCiH*;al3l2u{{T-Xg_OEeyNV@sLNX}A0p>e=)NNh~8M5tnqSQp> zKFcqX`^3|Qa?4fA+qkb;{6wQ;%WW9mFv`DDb$Ia}J0g4Q7``n30F+|*&3<>Zf#S}7 ze|W_43JTX#y|fHu)qJ9SdAM|gIV!P@`--7bFy<=z-{wDck$u~y?HGtry(SY(Ln9%HC71&(3SF|#@~xyK^2;d=dn)>m zPe`8{Z{mqZO8LZx=yW^ZwcvuhR0(hUiYT%CxpOI=R#ssCno(2QIC!OcQFq=B47B~p zxhDJP5@5?JCNW)Q+3ga_l$cG=(wo*M#hSqgyB#lF)5;{Cd_wQi*{JvU5U5a5Q>}YJ zoK5}QDO>&GPpEx1c<|FqT4F04a*4j9_=#nfbMy{xxg$9J0xV4SvyuFqtxs z78|U1Kup>V=>ln`oB@=6;guY`VB>-l60N4~5`o69HTyx~;bKnyV+M08A8z;A=Mx3H zqL=k2ez7kX-+BANJS9ixRNu_Alc%NfO}tMx@};l+sQPR`85-;5%X&rlR>^LD{rsl{ zQGx|6&hQ#m`jJAymFUy`N$(S3QqAc}U? z-zOz@Agvd!T!!^nmT6DYQCN>Uj*N5VAI8iF#VNaiQoRfEpg`S9skIACoFj$qn#YNk zj|+gx5P}H4(PQ<`&?oS?xc)Q4{{Z_$CQvGo;>_66&n(}}Y403gvoRB|38y&y9898O zPYSblkJ6@KRTw*Io94nW6oo(HK9(#;)P;s#OHh)#^_GIi`4F{vf4fJDpy{Xa(Dqfi zMvrn-^={|}U?XHg3lNS{qdbZ?PH|dh>Ikh>H(kw0K=B{h^NKNU#I4xcG*OXg+`{@m&Z0BP1Gi~&njm~6w_sB z2PAC5tPO2Sa$hn#!lxyZbE5gx_he}CXNFhlsgE1PCnU#(!82mYQKQ3Pju}729L5rGf#ohpEdKyLaUkO& zg1pKFXMWwFWGFiww$=$E!%gYBwO=TxLwbuu^i9^g^owU`BV9DI6LZjpFPs6x=-CB8 zi{sp<0`BgUfqq2J~_M~fw1 zF?>>myiej({{SeT7l`k?aTL>>Vop*f@d0W=M7Xl>@e&B+@#1_|9Ig)tU1DDqB=S{y zMkL{H>DczuNH~)suSe&qwq_Kt7PZ&@php{{X1vTxFjtSgcL^Q%EHf zR>{9?qH@6rCPi)^PsXu^WFYa%_C8eR-2C`}97HBvce5Y7CR?yWossfR9J)vC%4G)r zd->%OVoC=JxJz?YdWJxqjD08xBF2D=Hc(KY6DED?Y7^ie`9}*>?!H`?$|ja$GKsFi z50aa8fq^{V%McAyK4+B&+;~}l{{YQfqF=mz$}uNZmHBU8Q8<=aSp7w6#wX(|!f5I4 zyRURm>`hlRyZ$=}!Qz+m`1rhGC}~Eg;y7h4YQYR(%w_w09rTHYIhW}hXu$o!AQMzA z{i6j^SjGT?yJ+z8$4=JNSo`mJz>B(w%gVW z#1E-7>ec&bkP4M|Uf+Ks40GPz2+Pq#eFQAkKpA;A$7ufmwNDfMOr0vBxlwWoc!6#c z^rD6QZ!%`#WBx2je$eEo-h0)c@hwjZCjkK$F)$14)U0H$#5&M2FQg-$3WfrfYZml6 z!Ier(tyR}CAE4t|azYe|q~9`+8m2-E-uqXL96{{XdIg+K{c zLd_DQfa5}(Mu3+pf`+Tuz~-ig?j1banx$h*i(S;_ruU&lW zrzX}kS4`b@zYsr&bLV}sv<>flqq)wAh3LmYQ=A^TUo`uwT~!_)wJ4nGj*RPWR*z#< z`}ZDMyQNss`wapE7e2J}H6H8Gg{{*{Z?piNIqccq`9Wd__M+c1&R`(&x;z9! zLDJ@==JnS1gj$P_Z0-oIjTO(b7aX~5q3oy8IjFPMZUKzcdecY61D5=zHuOG z`TgQz2TxS^fVb!c2StE;z^zFLKBAdAC6>DAkV0KxoqBpL=s6eYrB}(i9U$T)O^8a& zTF7(1KAq#l_>n68PeG=BU3tfd@g$S=c8?W|#Y@EgB)S$6J~t3M5ydDjVW#EpKxkBa0D$-+iXBE-8>d(sTAoLB}&noIF!nC&ijpGN8?OzLA5A z^plY9&7b8u&x!~nTn6>!zES&lvrRV(hx1=U7*b3W&Ja+0-M2!xwCZX zmT*BM={wdX6P1>8ND@k)&BlE-j5Q?|l-~6>jv$5KUH7C;IFyrp?7@|qWGQ4XzMfGm zvz6j11Yq!jg4Z9I!k>h3A8quBakz^iN>VuSE5BcEv4P@g#HU4xJVb_OXUSs*U}Xdr zbhHT$B)yH|Od*EHUMM(j6J4GAMmgarpnqNVNK-ee$Az45N~K!$`@o)1^LbhX($6iO zISlpRNR#SoP!Qg2`H76u&OVdQ&9l?Zas}_TDRN0_@&-~}0c|R&ndPXCKkb+?qUy;{ zBW_W^81)O9TY16yOXv6Pu@eAXCrf(>m+2&ON3G5MUExZMviaZK1}C`bbfg0+A@g4% zopcUh)w!-+<1%#T*d#p8dvxi29zVI8iO;d*Hi#evZ#y?E#8E(F%Q$c34S011gOkEe zIHsJEEl)xDFl6K6oRlODESolu^;hXX?mRTupggrG`$+NFLkAp=7gD->G=7aB1Qq@y z5Ht7Qar#?JDaQ4hGuW5dhEB&4}-?sl0)KjaN6h(NRgQE0A zxuIoP7A(U}>&g%zD^qqhzaT2Ltxb{5I==N9R_pYKXV02(($?dpn@ zg?r|#_BUUq{VPcGaDF4Ae6PFxqsV7Yf17kZsV9ur(CmlfGM}=okApL zI)&S%{a^&SKOE2U=H<;Tf6h(Hu3fJRf~tWXJm{TG5R~cWtr$}MKzZnh)%aL1%nA$gfBxhd zy#h)ZXoL>^z&3I$ewcMaEn6;EE7FiSWsuH)v=Jy%^;4g8QD{|jTBg@+3HasPVkZ1^ z)1vvto8IpWucmwUD-+D#YIZ!iM~(4fPiRB6O_0}n8iLn!Y(TU;+a;s>bdFBDy@ifx0QN8Y`5dQ$uSwi*-`r0uk#QnwL z;U7N@1k6K*Pp5szu34CrALOaed(g%&)(9bf+Qh0jWtZtUiN^s^IWgh5Ny%&Z*{F5h9xs_)2v|2gTuqc^;yX2tVxMHj4TN} zN8{oLh?;rO?$9Sn0r#Y1@y=F;FhN(mV2Nar$Yt*zx~Kb6WG-M;3>-yY8e!vs`?@KjmGpp&?Yd`XCY#KA@m(`)H{<-$aGsLPIx2 zqJfpuDDn6|y@5QOBkGikYUv;9Pt$QcFOJ0Gk!9i~X}ZVhz93;@%PlCI-f{XSB-5uB zh%_R)M}?FOF~n@DdDx%;2SlQ$)53)jNDhcD?3{>UP#>9zXoUG~s)c%#jMxA(RjFEm zbV3W(!U_;AR&2SYhL*e#xrEv}r9}|0H(pxTRDNjbba<|NR;#AXU^pE0<$-BV8O<^$JDx3jG+ZtbEitFOol8_LG@{gKT|;t6OtLR~WZjYImMnV&^sY68Snj$EPxU6||KE1UC zBOQS$?0or0085STu_8#-y{o zn!uF_bL-FW8%RYRa@nj(Kcv*A?aA*2pEq^#T5Fb16XF6qsrKJt9xui4%U%4(iN!N3 z=e_$zJ|xOe#x5y|xTb+D($v8^#v&8HXyNM^*jG*Oc8&}~DF~YHpQH>jpiF6^Z&;Y{ z%foATU3R*`{{XExZ>3yPF(mpBTkW+^XqXg0H8F)Sl%WnUlz!-yz~_DT z%yTJ-71cg>q)GHYyL;~OE!C5josRU0d%#&+lz+LJPy+ppnFrC7|#horA3mmJ) z9zEsxq+$4}iE=$72OeT6*I$dA+COsBOxjheZh7>Hz~SPT@p_EXzOgLd@n*|9no_yM zy$>)FkS1x6t-CWT9<2v3DUoV(_AyNm4p}CM*5t5Ve1_|>SdmdL)0ta7%9zh9Fgd8s z&&{5KQCo&bPm2pRkU?6~zPoQ)lUudz*6g-V3dBJ_3t0+pVNPH4s2-x6cih1@cdHv zprIYF>Ad6g3P{e(wxWJx!^{5wN>$2;JoOpVQeFaF2M^MVP;1oohgWo>W&Bj+Qig@m z=`GCxe;_YPI0!FQUYT;MrP&q27I^c|qp;?juNrM%Zyd7gM%#0MR0|z@(Q2KG(jAa0 zi?y#>(S~;bP1{~$N2UI<6m{O%uBtUK*86*UxJob5$Mx0K|5cC<8#rUr+d#VxbkT zmns$#yAHs0^NVz=DK6Bpq#s{xt*E)HC>y_(YRZ6G9ZlFGvXwka#i^f|h5C~BWFPyk zi$`*Gg0|x3y)TjnOS49sI+}mm`GjoM6wyN}vA2CKKvK*+lPj_-=?8CGQ1sDY2QO5z zt9x|yB?U5c)FKqqS~0ML%7VEC_s}6SqQYCas_UL~y~zmz>8BR?GJ?+P5(8IMWMgE0 zR$QSK->A-ks$9J42d%A=XS|J32Rz>81D@c~ zRk1^rrkeA;qFgY_yXkKH*+v24;sHQ(-^58J0Sk1Sl%5jfgRcF`-0979Hv;pG}=3#dx8H3Rjv@MvJo^C&cm1 zF<9|9>aQ4>y2DLf?c#r;49c-T;udAk%lc0#C@iCBD;y~*t(sk%&kL>aP6ko_^o;(~4W~^AjHs zCLBYVZDR`xd4lI$`bHd+$fSkqlukc%0E~6-6L@tiDr4z5TX%%^@(K|VF)_1 zxKZxnm&!Qhm6S@E5bx*Aen-_SI^OX<7Z^eqYfnA;%i+fgRW6&~oR~Z}3a+c@Z_*`| zK_0EYv`&I<6hcVg0ZcvYDUctIqnO)k}s4UZ-oa26mV zv|{+IPrG`={{XDxVbA=FFmV`PsZWjdVoXV3oYt|2j#On5;wfZaQH|oIl2o1AqONz& zF#Jq~Qs>Wqi2d^_a2nMwf8KP>tc&aK z&H*oB%XHEJAO{&ZR-#*NlnI=_z^T%-x|AF_gURdC$Q@J2UKJE0cA?f6LdaFKwe+CU z1K~k?p8ZW1jSV2lwgHooIRr7@5B&jNa z!&w=Ro?w_|Kx>>V*#x{G;!+%d_t&K@XP|_Xs%;#0g5fW{L`}milS#tlWp1^n&cChr z8GK)Y#uH2R5Tjk>Mta2F8xsS?nRs}m<2{16%zlL-231sQ+Avr4z|K}GwMvjjlVvp^ zDlmT8T1Wsb$iwUgS2g-uKB(D0>lTI`rzz&fNM!icx6kZz?k@Dl{V2z&+OX zY6QJ##t?A5$0M0Vb-rN+Q7r+|&-XesRegRNXz|ad;u}P|(KohpTT`!fr7fGhQON*n zOO`7SrFYhg&ZU$-{{WAz`Zs#|Z><~ABfV-G>whyt2fq1@v^jUBIp0JU^(g|1hJhD~ zjEcX+=YDAxIf;_TB?qFKl&XJh2Dc%g9-nK)9G^0SHPAXVzX;l&TOzY^FKBnl+a7=~ zbOlhO8ZCyo6kbM#@Y4bYqNwto7d6esMGB;EUdaRCuJ32Nl`5p<4oAw0jP<2a%sQnn ztzDCrbwfoz_hnO=>>SfQW0zjVEmc9*?FCQ`^+xhaM8~rERY~*9kwx0ytJDS0IG8EB z9jNlw%+Vx(ieI*Hpi=#o_wxfI6yZ3iK6e$I8pk5 z0;78VB39S&1^%j4IW@ENiO9{g?ldvtF~4jPDgyLpSMGf49w!{BGdk|k;xT|!zOjuz z8o!iG6oVA!6BRqzgE!eCV+NJ$?T2GP@!cQuX|0%U`B2C7Ba@OT$ep z8A(4&XGp-O1wA7V9!v>9y4I$!d_eSY zGxo?f2W!7*lf-d6rl}H7a&}@|Nr76gCXP9ZWtRJT#+4Cisvnrgj7uq?XK21S}8w7 ze{C8026jNO@(H1D|wKkb;^rF`*RE zfI9b;WjEgMAIW~3TjM_bqaO>7S*0)Zk=~s{bE+~A*6`2izp76p;bfX(TzS&b`W`3l z%_4sr&~og?FoH^|tkibqC7U%IBFBUX05D$6!EOK*6k$=E3Km5@`I@3;nHV`xkTfZK z>va09nyX}TRXTMwa1vq2v)}0o&+p#murK67=KP;uNYqi+U2{29GUO6cpdwHf*UI^y zNH*t8^!yh@jnzWeCT#mgw@&8Easts&`o~?QFQ~6i$INeE!ep0KgPrKNMW{RcHe(M2O)d4`;sywC1$8=keV}2L^4rEX9NZwvpaoVHI-;Xd;$AR6wZG#^ zJso?C#wYF-1gyTDHnE2+ye&~s&Ch;OG{^X#tDHJ;)$|w4h{6k5L9*|5kE9Q6>}wMe zTpxeE){!?C8gT{XyTpB1t1xKuj943#M1ubkxc9BvlyIMZj?}~+$?GntKBAI%`(;;&4 z;OCc!%QLO$nLK0oL>zJj6+fH7l)STcqE|97#m$934CO+N zn83#qaM2Hx5}{;6bc{S(ci#1hCzTq#S26e$=Mv4Uwn4u4K2W_qJHSN9^xE!_N;4~8 zlR-RA9CFS2^jhT-W;=3dMphoVb%W;!>%Yg^1j#hn39}bODX%xSP$v41Bu$^ZW$1kg`#m1+sY7qb|2f4aEo-HM%2gp-}LS|CGj#!SxJxd zwD^;dih!ig7%Tg7=7F6RhJ>YbI?ERpR%JP!Lcvcgp*5j7+)({bTjiKoBKP{L6g|)( zG@|D4Tc@UHcTHfAlT=Yuauq{|A!=(CLt%GEL~Hv62m7Nov2-^QPQI5m=K%TN0m2x&-EqS`jls?t}sWw?#=sR*F?~ zTBoPG3&(KXs|m;z9cZin0Hl6kJNsAUKX-)6h&{cL3_Y*u9UkeT_0b=-dR;9=O#&xW zu`L8-%E~K}u3-klE2Gn)CTL|25Q%5EuDPvpyCajLR)T+{A(Un{Zdh(%Ej>ckaF zikekWdKXtkXf*>Mid3~bu(4AUoVUrd?snj4!!NsheAXID8Xs2V%J4Fi`D?&-+r)8_n(wIUK9lR=kIUCOu>4-{?Utyfi&lF z);vx#8hQC|IPqA{L5~rLLHbNhI@Ts2u5k27pZPRTh;kN%Flh?}WFWMsG^YCV&H)RZ zx>I4}5CE=~8$tmwnH9I?=LIG|`C{dGn&$Vt9 zRmueEtW7DSCz{0bN+rzGFKcg9JW3TCUwq*40EARATQAk{*Mo^Pvmz9#?(GxJ`->@q zfik_#S9(OFhD23r_G&epdBtW9%U^cOzm!TrPriJ-qDj!A?zM@r6ehupIp+TU@r61X z)jXhhf&wdVZ6EY!`sU$YklbHR{G<0wlAvbUjC@I_RP}>4VDV*S=NJZT5)y?~VoX7d z(+c^)!Z=fLO4?d5u@pIQ%N`TPO(PIfonyoJ&M|QYWqE2N!}x`3-0PO8MYK$t5^ zWdRw2H4rzE4WufDp?Y;Kt#yFs>^J8LRW1plt@*2Fp=c=vo8M@9SGR87S;0^zCV@Wc zRI~p8#+f;rhw5UiLTSG!m;4b~{@uS3`saflC&6OKg`_rWFMRptss5One+~MMKZlx} zYztp~+VO+@B~S`*riR7nh3LG@2ERg#7%OLN?&}4U<(yYEWO4QsbfGT5aT~vwV^w!6 zW#rbi4t_~SC6U7P3-sM?mCM6`-Q(H8n3>s*6Ix$WTDFX3@I5 zm2}?z>tDwD`a(Z9M`U1M%pmrFg5d=ofLi+WV@R%5e@*Pf*#`BuwSN&hBI&z&Cs2{% zjNBvz*Wu&B$Yz}tGmI$%X+e_gECQ5(hb{fS(1}gnIeBk&))KGw3G>z_-RZhPp92{#57%Zqbo<`1Jk?m4)<0-D-u50QD575bt3<`jOtGPffgN|R&%ETP zNC9_{Uuc~0gAyVGeZKzDHT;!2AN{AZ#HZe+7o%ZG*Z z@erQ-^gYlEq2$B1`-u9LrUY`&X#^4|mDl0C;!rLZ%KD7t01N##>8T~>jUwO8*1zFglUzswngpbF4f@3%NrHe@sdUP;Z5Sdvr&d)~22^4+70 zeJGw?bcEuS`^Se8{UWKZ_VJG}619Y3VofyaXgaUvF!3_cI?&7;eoj`Q$FBN9xyikVr%-@0n3R5LGkKxmv^K+KcL$Gp9v~onKWy z{Ax5>=bC^{OW&_d{{WUx3>s8r9KC7zfa9m$DEDQ){{R|7YP|WWp}!;ojL|n$PF`#d z=>t>euCd6!Exp}-Hg~;m8ZxI=EuM9v+R#HNwOl@Ih)ZaW0S_95sm|wItz@NPU&@>K z);n)|q#AoJR$6W0ThgN2&y*^Q=W$NWp{UG4>AjAI^o1yfv|_i-J%?n5E6ESAKl_yy zhAZ#W^YIizKtGW-)UoAIE0k@6dg$E#nwSHXSJ2DMgdaJTcj(6Fk)iTy@n?`Kq>|Z+ zrzLk9f$wy#fp0(!5nR+;mGU{d_q)Z7Y@SVUO>MeUZUbo;YLKh%5D zJT#mxE1Y4VRI?s+L|t+f8p9(cUz+-je4@=14ZNXOd-Q-Ro2Am}woV(&$xOn4*Yb(+ zCU6H$JJvjAA(S2~x<8*xz3CW3iKb*Wv-$kQ(uZ-n#u(vQQ3F->GU)e=KmwEeZQG^x(IS9mHvt60 zuRF9$GM7fr-kzfIEyp;VI8pU)%Qjy)#KJR7sZDc?IRKH!QMBJU;Nt7{-$j8h3KD5_ z+gc3ZgcCO}hyqhzsb4LJjtrF!-kE8w;0kN_gDM&`?>!^-ZdI%=&hCnia_BergEG^5NOsowMZ_(~&DXMjj-jiAAfwj&U@>2AkhFn;9h)-`Xadin><2?b0O=%inf@ zKz*3QoRS4ZVoW$*Fmb1neIvtSNsS_psu)QFC zD2wX)lD4@$$%PeN>jb*4@1y=27P(z03PAo&{=tdQpJr&MsBcZ*SWWq6+s+iJ@CnWZBe~yB4D7+p7oCz;iNd+L@8ouOR!)Y(A!TA(t#*zC)lp4iDP)m zy(}9oe3lNqn`|4Ev%JPoo=yRk!k9e^ETE(v1LHZ|AfSl+${rcrw#|@Q4q+7kkW7CjKaS`uW8F07xd)w~$55 zsm%2KPZT;A>lo9hFim&Am@@=#>4+AwIXma+26Vh}!YmnKGwr?75x$!9-us!2eKyyy z$}qwOzkB)j_kuATt6l(@%JKVdvmd78Ye-}QR9iqQYtt`i93-lh_xyGAkK5uO$Qy6( z0|@^BlJwcm1|D12Vh{`P*RRK~?5x)y1-c9QUU`I|}dnR8lzRSFz5O24MNRj-lYl5!%d9>KOONbNk6q&mAiDltDLvOpm zCI{{CAub*Fw}U2BDYyLEDNDgnH~906JV}*HJ$LqrzPvLur|J)7-t&n8o?uI77(j4? zC3o@8Ffk4w;GM;z00rSUj}P=_==@P3Sze?lH*Q2|sB+901Q9S6Z>FH9kv$?=xVXDp zD|5<=5|ZIwwofh+bMjh1O+G&@w}K^F(HmU!iMv}q+tw*WP2{l2wWwan=@gqnJw3i- zg*#T_ZbH5OV?)zEVmI#oP|d>5A4LM_t-F=V4ehSFE!Nz*LaOye{5Di5s6wcQI@ex$=L|zS=0Q=KdR3az^Wk7rkVRHLTu*R3LyIziEOp8OuG=S)+=R#sq6XsMDuXIWeGgD+VP52TU~PL zs2t*V`d6RhesSRfJt&KoLtPD&xCIm-HYu1nk2Xt^kea{cAZ_9Iz1biiUs^>ge|_%w zlOPwdJ81DZvWX8}qOoZ6oAE|V_%<0o@7{>aQ=N_VhjmWSapX6 z45DJa>v))Oj&Urcm9g}z`oJ0@U(-&+bINp<^(#+JjKjpBj$YJe`7t*cl>#HzC8+Y+ zMjio{rnUAJ^?`;Zl(OsSVp&L;%Pv~z_U{suUY~OpQS~lWT>AT0C9CuAzIw##f2;GR zox((>LBgRmtMBcUeLOt>03NM(f~~@P?_#Y0o1T7M&r3wXNAgac#p@qbltan9z2a%f z0?EoIaEN)2hUa(&VN$55wp@o*=gth%BkilViRK2qHXzNaeYX6vRh+0${Mk8sbTDxy z7Ee8xILC<&{?}+iL!}q*65-ja@ur@!Jd*IRahKX9KqxuGe{zhOO4{S?lpIL{y3l$) z^R*xecvKpUpMJVQ#Ywn*w|IHNx23yT?n%5zM78MxbVq}T!3Av-aZRLP&osYD9e2}6 zn}q0M%3vvg5>izo0&lPWB<|jkC(<{)^Nb8co>R}tJU;hXrI zsSQI-v<(L~=G652#uje=yq|hk>Rwc9>-p)J{{Svu2B`et%!I29&%dsa6)vYxQTRnm z9Rl9v`Hia`(IbT$oqb*vCKPka*ldHO0;5m78=!N^%4$YQ+Rq7kl+7r%C^i<*dnHbs z{LCP&j#QXE`tbxkYZC<>Ieo-SW_qJ5s~Xcwike0!SE7b(FZbnm!k>p16N~};K>E3c zR&@w6iAY@ifx6|Ddjf<5#1yWI2;#_xw{gx0(}~3_Tk1k|)@uMv1-(t1F`~DeMgmR@Bm_K8J$t%a#l_bXNCIrLo7^Rb~vF+-yw4_e*q$3=?0n6H~<+Wn5S z-g+GD!aHx@Y_O@nzuzp0y5vP|_k(XQ$J!RFZ}A44f|b;E6pc=+OI@0QbkXBr@0sDoV9-zKNRu0PaHuja}{6k)&PRUDSQk}*ZQ=Ukb2 zb5#Nc2$-|duh&I8+f z{J|`nXq^)|nF3n(r7Y3o=S5_${Ua6DF~PC+&N!|1+rq@#5sLXl;T8-jgEv?N*Dq#= z&wJe=O$~SR5*4qLZ34u}{il0vtYR6KUaGsie)38>u>!uiWgKgmIoEl{5HEexdFd0Z zs#CH1#Itd)KDyt&rjabHxBITz1fcWK=SEO+JmZCe`t#@M>k}zCX|A{OcjP#b7k^}Y z`N!`8DF``%yrYem`ERD$0=LJUPsEMcE!G6f)1Lj}S(FVCnx~elSM3v4zFeYZm}Z(K z`>b&RUD>y2Jh|_`bIv81JrJ;_nSO5*D7UO2m=wF6+brN=%f-Z>S37GQK)sI1VxLTA^1dWgc8jD0nX z0%m`yaDbho4skftif)mCHKqlqB1xzpeReuTqT`h;s^7;X$^iyY zbNm=!2)Rny(RbeWc+CeD$7E|b)N0EGM`6oIP*hN<`)@-N3UilxUwD>)9j`wj7q#x} z{{VXY#R{4pdhim=OFOCIDd zp#;jAxw;a>U5eA{HGlg+6;in)fnT}KmI47~$QI#GEY)`LRQrB@RuAKT{;>VEw{6kk zOJDMrx8>nz?Y2v(Ir14gs-5SU(6GIeQPnQrhku2!(|sVSwwhAsP~>09WW>629fA!!O!W_6=ADt_+4S4_HlUdKSOes;@0Y9x1| zY8qw{IkGk5Qny^b=q`O)ADQNXNzD#VT?L^KHIai*C92JFM4*H8`kL9R^Y)463YT-X z{3elxl?e3IDSll$#Da=>w%cCt9a-9%w<7$~^>CowJ`0k`am~;-^aW4G&UeuwQ3v@~ zk?*HonncVFXg&AuAE*#$a_Yjdi!gZc3QHK6eOun&PhIbvO*LZ|5j9wxlj-H_%keV} zVp+9={HyT+x84;xblstgrkDHnfU=Hz?cNm8Q&{v>Ce-*;bANeOvSfcj!`VE<#a~gRD);r@483w2u|tmoJ%1804CB?=D&zN*zd3A z5E{z+-f=v$kNbDK#Gs?P_kus;pT2{iH-J=>vU%>D(xxXO&FF1@^^f8a!6SL^STY%k zk@$%uK}%g3$3I?|3H3S-M|;u4}~k;f}WiqB%o$O*}ge7 ztdLLz`}%T$!--0b@9z>08m2?G(8uvH#Iz7Ns!31G39bsnhmKs5KXi%HE$qh^()DN7 z5&1y=KJkLbCF{NA5@#3_3Vve>S|dgpfT2`YJT&}bl(b1p>IVK|QS{`A{{X3z%c1Ct zB{cH;d%>>Xd%OxER_RK2V_gWSg?%sOy7#h_PG+iAY0*ZUm_c43+BZ_CEW1MWjw9U` zQEskFtNq{vxqmI^SExXWpo(N+Y6!Pa&rV8)0_H7RXI!;%D)fQ~J^hgEa!7UF>jg~Q z!6B(?=6Jnh#Di?#=8sJ|v|+v+x!<$Z0&H3mojJ9|`PF;Ec_%TKOR27+B`Ufv@(J#U z)z+~!&9Y3EiJhzM7pB7YWdgknEqNcuPO4R)8gj|^Mn*#BkU%w|wueVmp|Ku+IY49r z=ghhEB)n3#T!M$>7qwLYkH-C4-J*(0HArEpN(xJJaMwzjE8e;J1gAHIr=jo5*G+5F ze%?`klgrECM(Mv%4U;CCwtUw_QnB{0HT509i}n}v>i+-`NiF83dW0Ik6;X{L`I@GF z{dH6^r{>$!s|K&WcGGPY1-TUkU6Y$vHY~6J2p>Z+Rck3OmFt?uU?QBeVa|w|UtVKB zFTK6WL8vrd5V_Q$N()NvW<>u0BHweKRpu#NQ>l2Imc_55gOQ$_+ z&9=_id|bJ6(tzC9FY!f*XG<2aL2Ye&78RDDs`}aa7?%6D$GEg~`^UU9H$4&6^%}Z0 z#OEyDCqzv?bN7$b0aB6T4snb`+ot~j5I}f3#NiJ(#0p~)R%oAk!|{Jb?UGS{0wsEH zdk{q9-Js4D8MmZNO0TCsJ(!kmuSXrS=@Nw*FFos=acZ0M?FSExu^iU5pyjtn;W8rc z=Qt9S>*-Z~R(I|i<576wof@m9Vtyk~JdL?)?@%I9r(e$f**CV` zV38_l9!ox40Ux+wVa@I`yXX$8~Rzw`&3m-mv z?ELAQOH#nL3&%X zaLp;JWxT%;HutgT97!<*7DMpecSu7rkG|Jp1gXg>zep~AH}`-u-?sV30Az`!P=PnS zv`Z)fH`*mxLX zu+5P3_3Z*;fG6cqA3We6q&8dKBTW6ZiHaMR2n99M-z9iPa+G}cNF#;sp=Y_Kn!>r4 zx~R)e+4^XFv%e?Q!*8T8H$=C`w`Yk0IqBQ;m4pz5Qu6XB>*khwB0(T=oQMUkLiH$D z)+Qv6TPG$k`^(-6pskPOCU0U6k>Vx#Nw+1;Ds8K#0SAm_l6zef$j28n@6GgHjnmuR za(u1xA4;lyNQyFS`W}#e3hGoc(4fe5aS7LxWa0b&0Nq##_i*B_Km=8(recB3+dJL) zX=+1`Km>C2z3pCVVbj$dHErlD?U0T6`abUd`Q?4+V7n$qY?U3IVN_TaCgM}hjngn;e;R63sjoif zGb($qTBEavYzlXEnREL zpFXj^OZnP=Md!V&9(1zRQmxyW(k7u4T(`b)`h=tso%XShFA~NkP}LtXINr=pQydqG zrVoAZ$}tI8GJ=Np=eMBuJfnx{Ui`PZM5&ibucqBZ5O?ceTO8t?-8K6}xM4Zzz4U_9 z0FLzEGjC{;Q#HN5{WFQM=1N;M^aIq^C0R~McjN<}+exM~7cNovyG9-x6-sx{@dN=i zb7#&GokvRVUx)!sSqCVZP$}?tyT=G2E6mnEZfRao*xQrun+5*>BiGM;;&CtcOqqQu z{SmW{0IH2pd3o-aiFqCG(g^%}Mivn|6Vzs(3lm8+v@4t$N^N}Ofc0-ZWA=rDYx(>^ zzy{Budfqr!r7d@OG9|UIE&2#A@GIYaEF^AQ^5vL`rk9I`shOhrEO~FNFjH6LI$v)S zshxrk@)<;>H@$g5IcmG}_k&j7UpP>XcfBG>)}kF*xA7lR!c37Y$Y4$M?c!Ouid*Nr z1h)G|2m#Clw|MZ_j)X*`ichB?k>KVih9s0!M5GFu{rdJ?pdPxHweDRCGTGw{mKJ_u z_SY-YBtnOwdNSsm{?RcehxtqpRV9{XId7~TGIXE=&2$0<-q%#SzpeR405cLfd;TFV z`|0w$z=120&fTrLDdtg)nz=_8(ssjpu^&JWRsR6wy|l1uMBe!w1!$|bSd=%t{MXJ4 z6n(DRjX?lRauiUi5p1I_AbyoBID;6RHurdxq|=1SJB!!5l9|9wdmOKwo81r$0`GVwgbOv}iv`GA|s1}FtO2Ryd%E+qopw^u9Ylm#M)pj|6v z6v?zJ{V%!^RVhQ9DpsPc=9(@i{{#y?OcPdLSlPvl1TyTtOKR#=|!YViKi`*n<2 z5w(Y;3?iSMH_{}OC2hU?JOlM7P3_4uO$+#L@s6 z?eHnSvBISvdd4OW+b#3*gCY$&Jv-2Lj9E|a0vXWuOZq|^7er?C(Q1s^MAGttq_-sn zE2RLkWssl=Zjh<-z4T#AEKE3yS|lTT-*{5H+d!33;Ta5m+rX4>eIUwZT!P5n;Z5w~PQRL;UYzCBsDDw@8x@h-RC=%@!pH$*#tJc~US( z)l8^)x^GO3fwE6G^g<5IaIDi#`2u-ZGYDH|X|eATf5QuiS%MRoI7MU!> zYPF@{p_k{D`$6I}WKgBjWj5j;NeOUJ{{U>tU{G+O{{RtZS`?}+7tFxZlm1q@R{6yj z@O$}e#K?@PoTyDQb?sc}R_fifZB3lnvrcX{DQar#a~V~&OvC1tOwulHz-EV6tr3^J z5~>h})n6nl*$7ThYh@a`8d`-9P|F$(JwuBB03OGyGN47ibe6YN;jNP~1atDM=DFu= zmN_u`t#$dUR`I=e^9iS-Z$BtcEP>a&XmTo#LKIzcEKhL?ioj7hg|T&@-ZqJZ|*2TaTuU*i!U+d-`+n^k#yPR9wC%L3j{JI z_u4UJ0w!*|_=))H78L`;((yfWjs!XD3B(XY(s0z*+kbk**m*7cc8M5=BQk#4~TNFH_iJ0V5q^QS~i%(=R&2pb<^K zZEhpWmhTg3L8MG)<4TP_H_A8_)1Fq^?1@Myp65PDH>8*XXCr&%2Mr2KtbWIBx$SOo zAeKc0b=Q9J`#gAwEf?}53&U`IGi1Eh`$!U^f&p~+H`wnk1gH50Uc*x4rM6=m2^F6I z06d^dR4)5R?R`APT5oioR8`*ECzODQs>qxBG)sm-u56Jov2lHLj8L+m_Ka^2i8Rz@ zkJ%tg>AgPjJ{b-qUU@{gN=Z&)Kid^EQ-7HKnBnsLJP`3H2GBl{tO8)p+jy2?ddCsz ztV=me_ehm^R0QA8-X$cBb^OK@&W138AI|sIFoBq5*L05tNI^A{FsD+Hhr*nyiJi7v zq7VW4Lu-|Q(GMuX2ZhI}`0G$=%Mz&pNUD=Y8C4E`(LCix{{R_ubtgS3&Lyjm{{Wv) zD6sa)R_nS#f=FSPAdBnLk^5>kXo>Smq85WA5CC)sqjZS?ap=`6-!pRY#I&cM zZRrxf7*z;$aJ>Fjv1xtl=KlG@zb8GRc$e2AJB0*ykL|ur=OtyR@~TJo@>}M6jXO2M zft%>+hd{YoHLPgn)eX*tyYpo36wr6517jtMp%>w(N~lyfO3QCilJPTg2(5iisbCZSS;K zKm9_*T8Q0Rt5_|dzJk5E@<`6~QYwPSH(u$SaT0VsS9Wj4Y`SUayVJP}+4Azt-PQo+ zidLGvMeDASRtZEDu0j6*;#6s&gbEmzP=Cch&E094<%}vld48r&#@jV zS&WJr#WFWUZR-+vd4Uv|RokVyZ82U{79FB&HLv0h6dW{CL&VaP{{U~K3>uoSM2WCx zBlzDa7#W9&aDikIiG#x6L(Iv_44)A`8@BX`Fu0y(9uX$En{GAGmPv*i;S>+tF4$`#XT1n|u$U*+($CQMH#@V9aL0= zN=1h*zEt+_392m}A1`jE7s{@Pz?Dn;I_A0sqVKO>aoW6|pw~3jUXV$(td6PW?zTr< z&9i6s%GHJ6piSGH6GNAw1Tj(F^s8p4+BdJtck+bSmRAxbA8-qnO{c6#fQ#{Hlm9Ggb+ zZzvSWb2mNnL{bFGB^ejQ777tbl%&t5|RVLsy!C@x0sARGc?uHlwr!C9&M#gp|yc0)Ov5)pD-m!W<0utzazUx zhrkm|grfE~Mf3c`%OvJOSu=2XatRnfV-mC#)WrCy{{T(6P$rh4{CA0Xc#b5$#`R(u ztRLnvF=PT{BFeQVdb~?Gm=cwsrK`V`o=J-z?iWjQ^o|=Vi^THr12UZh*hJC5C?&~P+N z;%qrW#waNSl}f)&?7*E7-^xF5#Dq_ja91zKluiO5j5$Ks@*}ixO)V+;fr&C()6yk$ zO6K+a$AvaI$A*dtu_YxdPX7SI*CRAnv|U zDc5gyeDsN4YP0&F0qliY%2JSrhseI(FRUI&p=ja##UlCqCqOy@qywt0dYD7ZbAFXw zTyl;S3hJD%%dKSE-`++3#4i$)NN0e>fpSWOREzpZ1@V zexfQ#=dYri(zTtOHf1EI zx|3iNHY^mRJvn?-r(y0RHKG<@RVbYNqo6sPC!6_eA3Hv}uP0@)lzyr?qozyWM>7lazkgWw zrzGnF;R7C-`Z>syQiR52p;X}sOI1qe-#8<>X+`q&>Lb0k=j9GgR_8CEe5fuai>KeN z->d~)EB5?;cwK0D+3o3jGMGTUA9dM|wzxT8)!{WI3omx%PM=Y{C08obHBdlJGlr&4 z1LkOHl_}If2|=o|mO$<2ol+5zw*BwU32mR9`C{=Q^V3zOi91{=6cab{vAAlAj_hLy zHy1mqgz_s|++AUb$nxai-zHkdnQzVsuXY)F_Fw3f&EPZ8keAfwsX(;68ZVT7p*?|# z!83JIJO_~bT7kuOP_<$L2-X-wkLz=8l zhg%HWl`p<=`v8x6L6%SnMWjk5U*TAr4pX6tutJeC78~ER96lDBzlfK^iHElL?~CDp zA4{B$?*{}*99MgI@i<>s(ms)0^o(nSkJ|dH2MJ!{CLAFRce{MNpU2iDo@s)fS;3UA zIFO-5>k>>Q@~goCOw$nTovji}A_1H0`0o;)0+pnAY;F_=hQ0Yl5&D!2qXteOqVa^u z%G$PDyF5x%G@`53QHV*pe^tG=$RZ{%PnZ&b}FI`d*6+u0~pKRgAB^AAe&z|;R)UtxiQpfE_Q(*91Z#PZoBN|{OH%2;hT?pq;BgbQL&VtJrSbRo`yR;kx zm1*$@jTB0BD3bMGILGlkCx`hL6lEDk7?NP(ENU0CoT%|W{D=^ zJ2cxIvx%lMyt;3_qIH-rQWsua#40KuqtDb=D3cq6)~VR%-)RRB4lnR-a3+|%qkUtF zbt|A6kBE?P%fxDW>B=R;`i$ikzTF^6`=3m=-Qr&jETjHT=p%y?Q81QEu~4Q2n4CXU z(#a{RJjFlb5)27P453^36%#IkC-Blt^Kk=ZXqUqHiGHbN`d{kfmeDcCk&qSLqFhp( zGXxhXqPf-%1hdLGPgtM8%n*ROtNg+6;!qWmCc!1-EG-jZ8G?`G+t`65(@1!wd1LqH z!<&TBe%i#JxjD>h)+WIJ04hc|giuU~LH_{V9xubqDzXTcRi0yE+mpoeF-qPi#FWg1 z4LWH~yr4)p7khXhgsJJj%o&oN@FtaYjwTP*kO-~${Kg(9)Jd`3Ht{6lXz@W=gH%Z#2_2 z+Q4zhED`h@)|H~Ok5L@@XbM8X24Vw?s$2fzICQzmKadz`1y4UN)Xy@pq)dd4b%`Ze zl=7h4vn`;a$S5V{ad3W?0YI2{tQI^~Eh`SIPzVp2DL|^VsPj!Kt}Bx=M*ZBl12{`M zFEgk~h5G1YC*EFM>Y8QKLIKj(tJtX#S`o9pM>;}R+oqi;Pbi}LdC&%OGq!N7`ksTE z)7}Usg%6hUHY1oMG7PF*gJw0=Pumaz%4lc>x>UZMV9A&AezvV0ug;B!&2sLizriSW4b z4fkm9o)->TNt(9xP1-RLND`)duIm`#LNC&r^ke4|cz+CLNu{mO`zV9qz&u!BGrbdf zM7(pq46=z(D0kfyRwR;g6wbY6OH+gd)EnM0u;rOnRa#6>M$0I|7?^1&oDnjS#wnT_ z^inbri~EZ-vr4j_XUfsSl5ouO(&ZlQ=jk7)_;Q5d_sTFlHZaG;oS&p4XIPsI@TdwI z`YyGMc?Ep>Ml`4SXg1NrWEq);zR@(rH%Jp(ee;RJpT{T@8AEd0hvf!km*O$;43cpI znT-+S55Et(9kvI^Q4XKPYL&iSnFq<2OP;RMayT&ZsAtXtP1OEUK&+=eTImG_}t1<;2#4koLC6&nfhQ9Eaau*AG z*GL#r&%r#zq96KdlATI}-^wt2H-MSCi0MD7~)K)3=^nkpI5&EhVPdCxy!eau9rT5k_ zPZyM6Orn}z&8MPR8W@$1`!>F?tjJR{%oHh-`ZBB_M#;Ys#ZYd8sJg#A)3h^^&0LdG z-_U8M{o{}OMIOF&3tovvNL}vL{1{Qlu=5mKTRx%((#x7V)!Ri)7)KBtKn(Ra7JBH0 zZ4m}%g$&dsKP57Pst_)@GHdu(q$k%?{6|Kzvh#Y?8e{b!C^St9Q0gmu(88a;O&E3q zAp&Bw*OeG5DKG9tAtkCRP_QXNYycHEZ3HfSyM<0&tSeL%4&eM(ZD`#=3w(=o1!*)wq`NT{MikAhopcXsI%e8!;Pcjn7=;}{Zs`tDTQOaWf)M5^BF(QVqtuL#BM$1C zC-}FywUJ{&chh{K1(0Md(=JiF!Kvt}TM?4`tHlDP0-&o_h1V!P&#q3xnDn`-{w-F6 zpzPV(nkyQvX#I<&O|EQRR>+XgdN$oQ0Evcl^6l^Ugx@sw>la2|R-<*OX2+YK*jHW6j_OMKu{MnW_pb$}VUS3)w=ZV>j&Fs?hd79$llz=dUI18Ltl3 z^Ub{we%vfrs?r8Rs&UD>Uk<&ITAnPAV#@YtPm(CL9vU!zq+E z)&0Di)hP)jR8atM$keJ?{NSURHBf2KojLLm;&>)utz*RaY+tYTf|Ufgq)Yq1v%xU4 zfKeiG^rn4WMm&IF%28PN5ilW3K_sjdjv*~e{&pf`#55bJ4ft+{798g{AM&J)aw|S z5*6cfK&GX1LEb;uU`h2%Wdz^%DbOj2{5Be%3~`wHL6~(RJL?l+NyEZKxP$zfQ`i6u zc)ttb=fwIzlRV(~No1Fc!{Zs*!6=>DCGj332%IV8DU`$>$Rb(19LxKY3_0jmh(eow)4}M?VVnl1u{8zBfp$f$sjc%Ll&jphC>KRX^JyIxBHKmcM?zOP6eNdUmG8-r9`TJ#<*L>*X zOLOz<+zx2TW*GqM6}1j}kf9e;9SS@NT@>8CLf9p=wt!0%ZL$kDo5QUyodR+hdFdO! zJAH?wDtvVVMFC&t6&$69a+f^5RvP4dWgGmy>lLDN$ds_>m_61vNb9f@%X-r;v~Fdy zsP&4AF?9NzS#+B~;UQ1eQ0T)>xw)5x!YfB|t)BkJ}Am-%*mx?-_4p#eT6OxNCPNho<>c979uLSWF{{SGW z5Nf&oSJ$Kj1<)}dAyZX*I$K&8pAey#B#coM%!0s^S{pA&7?^x~Sd$r*z?_xp2DY`< z(|Df_(vBc*KuKyDLHnmT81jl10D&n~%}vAPi+DaLOq^UIr|B(vlW#g%U}MR_{GA!t z3Mu&bi9A67lQ@{EVht#0bA#flX_7P_7dP?Ko%ih@?zm*(nGs@XzLUT}qbR$^G|T+0 zr${v~z3B%GO~ojo4tmFmz&s>NFjlWMO}r2g%0lqUe8X>~W8TF1M5l#}6b}U}^90Q4 zNcykN+uFqDlGAtvNuRP)1?@02)EWnq>O8 zbziHXiKfEDlY(Ky5G=)2i&uHZ2Z#gylW>Mx0p$FWF+6Vv(h)z3phNdNq)FpS@d7xD zAuK(cU$OrHbY+@pu{cDjDGC);k%1IA%vm6A~E)an!M81tY1 z0Aq-mf|FURPEr2=UT>(*COXRARD*@$GD0YSF(JbQ9}<)El?dg+;xX{N8Cj&5aGN5$4sQg+1YWyfJ4?io|Kt|u^Xa`}Rzm>J zF$$xOsH?(F(N7IsQm_#Tuo`kf43Mv0S$C&MC%x>#4K8_vaqHDZX#g9UG{c zwsm(Bsk)n^!&^G)dE3(33k1(vYWrG6*O#h$zb?Z?xT^{=3s%XJV9G>her#+Sx$;E` z51^lh)&XpzhyrxIrjMynjVsk@FTGiUK^-8C9qHwhk?`OwC4*LjO1S%HlqHQ364xDm z&_`p%#&1iCz*|od)5(?`0FbmbVeb9 zRh7g7pdN+b+l|vNn19Aw)8;81KcN}= z_S9*V4|RV^t+@pVpd<=Z^X`^UdMdFc`b9IpmF={%!O6AzL*%vWFGHon6*Nf3UIopD zd9Tb>85^0k#_q8>Nm0l4^i_U=smh`;Wy3#7#F$g*kj>@*C#mMqJ{*{TRF&qXwI^mK z@d4Ii%lv@NYnOPN^&SPF9pL__gELDi*@5qrP2*>tZHz{<4OBJBvTwN@7I$uAQE%XX&3V-K&k`o;=nl4Pdb z;|6I!OZJQ-!nqxH_Kp=%YQ`8=Jz_yDpe!hqD5<J1&R$}XhvG$6qj!ViVEDQ; zNsg$5YTfr}{{V3>@mGobS;AkbXu-cQd{N;BW36>=vHt31Q#wn}SpNXT6d6HY&}T!M`&X0+#XY?uX}qt! z_l_ccARZd;D8MCOK8?S;NjtHsH_yJrcsza-1jmK(fFM*2_YvXzM6;)#IF%-o{^0)i zUp-z0M*Ovb%i;b#DHWoIY`wj06E?Z>y)PA(sGx@&Kvs_~i=aT2fb^w1DBjfNeA34+ z&q@eI56`h(8{Ga8{nMt~Y2u#HIJ|1rZKH2}wyTkDWa2){&1l*Dx(`R8ds1 zN+5eHJYcWV$wyVOQAY3a13#T?ifqy4ucrCZ5zf$L6TAISTS33c&$|4ehAtCRa1l{z z7_N&0_^lf%CV~4dmyWyH=M;3U_BDnZ$$oZ`#l7>_+82=^zdWkUh0O@6!YAEdsV~)Q zSnQqhUPi3>!}(Ku^GYyN98QVn=2-z+dbBNlTYbe=$s3?bw@{mCRNL%rOe^;D$mgbB zd{zf7cWTxN-*Ma0?HOjRM`AguTzV`kmNq(G*@V#PmPG#mZ!D7~7Xb|kg|hVT28gJ= zI{CsN&=%y35Cm#UGD4)st&UXRxM&$=?@x=rC(g&Pm2u5eV?=)_Wrjp zBYU{#Xh@i4$-Q&z{;~f676xf(xfdXH{z9tuj8X<0*#I2VoHCakavo{cF>z2mnKK@~ zk&WUAn4^s^mbu>a%M-;K4ewmz8^ldF5N+~|d_kQmgva}&p&)3l68O=dJ?@b=iUl4H zI1fVy#Fhl8iF`XJhY*U}`%Dpq5C{6zjR z1DqcdJlm^8-YkLy=8B+K%X-1aGog`yq#qJrjQv!u>jxasQc`_0Seq4P`cKpS*`ASy zI8%}K=O6A)gSPfy__?JmFh!*VVfcx0F5#ChUznP32lH-PudjH)@sof=rDfeM+9k#~ zm+pNd3{5P{Jj$m30BD*?SAMa=f4W-TRyjb8In8(BZ@{0z{}-a`**HT7k=Ug z(=E-~q}IqDrqxz}eRsO9jT0f2!|@R+f5=qSAS&b_{{R+J(@KXU#0p-=-#8@)BrKhu zK7D_ppyj=76Cb46i__J%@K4ja{BMwcg%g+Iv@nL*@>MU^`kJ!A4oJOvbmh=SA`hE3 zXPRVMF~~TiR4HXoT9QV28?0b3bfXj5-`}GBdzI>Nr4Z5-Q&Wbq~gi4mHh6zXc_KuzJL_e2N)-Tg8ccJ*^AhWp@ zx%Vreuw=LNHt+22_3rH(<-S3TS0wnZinaNVHFAnBKjb@HH!>ZOQ+rQ?*VFCFkVf{K z?H#`R-G8M$$?NC5gdlg-)4L*n9POBj^d<^7ROVZ{7SNcdQ`xnpC^@3W&h+++6b@?L z6oQLSM@NB|+}Qg2M*RCh-rJ=j{{WhLX6=*_8I$OIv)7k2k5yZYyK9-}1%WN6H|5H? z^^}9P`#|5cAwQp1&grT`8V>d7p0uihvErs21D}_^xz!?kNo6S6^JMz1mu+LjW0U>e z0H<4yv5Sh5>zk}%W6taA@e^auGN9h~oZLmp-uAF$Qr7p0i3H`d0&SR@V>Ju{cb1#H z5^G)aiDo8PmURgdc!`ACM7|`D=0A8IQ89Hk-u+`261i_k#Yu!BIzcZJ1tk6xyh=br zz4X=wC`4kqW~&|}jE|*3w)%9gv4bHK6Ea!SB~YfE;Nx)Axhn$^X)qb@C>ZEm{i1wP z{ieBWK%RQR#4?pwn-z8-W7#fuNaIKCSd$wPm1r|fQbThztF_DzQA}e~;Cf zMD&S7;#&l@y&`f+c{+)Ldv$32xsrtq7vpOOib)zJoRX5X8Kxx((V7IjH(qZNtff?@ z_K_s~R8CVrqz);5!Z7h?7o*U8!0|-ZVsww+B1^^|IhcXIS;3ZRzqF?@9wWno2$ryX zJkK5{!{->1p>6f~jx-#$?eh}P^>6PIPsb@-zdOn>_ltb>KrBE)QkK%#+Y!eavp~CDE8+QMNN<>;UW>jLcS?{{SF{>Y7l(YM+k%q4O1G{Dr*{vv^0RR?&X+rjSDY zn_n^?Ivc{M4bbfQ-Wz8v*$NE+gim((ssNeM;N6vU&o$pDtum0zi#^G$Ng zJHR5xuv;iIbQQV)wv7hs)ceI#qS#*C$i0VKnydc+Y~6t%OXk-R{{V6YMpnzKmRq9O zLLDyq7rTWZS%v#Mof+HvY?Z60=9zEfPhCwysUR=>vdYNk>>iu^+f80%BrJUK5`8x_

    '; - print $formaccounting->select_account($objp->aarowid_suggest, 'codeventil'.$objp->rowid, 1, array(), 0, 0, 'codeventil maxwidth200 maxwidthonsmartphone', 'cachewithshowemptyone'); + $suggestedid = $objp->aarowid_suggest; + if (empty($suggestedid) && empty($objp->code_sell_p) && ! empty($objp->code_sell_l) && ! empty($conf->global->ACCOUNTANCY_AUTOFILL_ACCOUNT_WITH_GENERIC)) + { + //$suggestedid = // id of $objp->code_sell_l + } + print $formaccounting->select_account($suggestedid, 'codeventil'.$objp->rowid, 1, array(), 0, 0, 'codeventil maxwidth200 maxwidthonsmartphone', 'cachewithshowemptyone'); print ''; - print 'aarowid ? "checked" : "") . '/>'; + //var_dump($objp->aarowid);var_dump($objp->aarowid_intra);var_dump($objp->aarowid_export);var_dump($objp->aarowid_suggest); + $ischecked = $objp->aarowid_suggest; + print ''; print '
    '; - print $formaccounting->select_account($objp->aarowid_suggest, 'codeventil'.$objp->rowid, 1, array(), 0, 0, 'codeventil maxwidth200 maxwidthonsmartphone', 'cachewithshowemptyone'); + $suggestedid = $objp->aarowid_suggest; + print $formaccounting->select_account($suggestedid, 'codeventil'.$objp->rowid, 1, array(), 0, 0, 'codeventil maxwidth200 maxwidthonsmartphone', 'cachewithshowemptyone'); print ''; - print 'aarowid ? "checked" : "") . '/>'; + $ischecked = $objp->aarowid_suggest; + print ''; print '
    '; diff --git a/htdocs/theme/eldy/dropdown.inc.php b/htdocs/theme/eldy/dropdown.inc.php index 4ffb781a33b..22ff1a87a22 100644 --- a/htdocs/theme/eldy/dropdown.inc.php +++ b/htdocs/theme/eldy/dropdown.inc.php @@ -111,6 +111,13 @@ if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?> max-width: 100%; } +div#topmenu-global-search-dropdown, div#topmenu-bookmark-dropdown { + line-height: 46px; +} +a.top-menu-dropdown-link { + padding: 8px; +} + .dropdown-user-image { border-radius: 50%; vertical-align: middle; diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index d900459e22f..fe1d1f675e5 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -1039,15 +1039,21 @@ td.showDragHandle { } #id-right, #id-left { padding-top: 20px; - padding-bottom: 20px; display: table-cell; /* DOL_XXX Empeche fonctionnement correct du scroll horizontal sur tableau, avec datatable ou CSS */ float: none; vertical-align: top; } +#id-left { + padding-bottom: 5px; + global->MAIN_USE_TOP_MENU_SEARCH_DROPDOWN) && ! empty($conf->global->MAIN_USE_TOP_MENU_BOOKMARK_DROPDOWN)) { ?> + padding-top: 8px; + +} #id-right { /* This must stay id-right and not be replaced with echo $right */ width: 100%; background: rgb(); + padding-bottom: 20px; } #id-left { /* background-color: #fff; @@ -1130,7 +1136,7 @@ div.vmenu, td.vmenu { } .blockvmenu .menu_titre { margin-top: 4px; - margin-bottom: 3px; + margin-bottom: 1px; } /* Try responsive even not on smartphone @@ -2183,8 +2189,8 @@ div.blockvmenupair, div.blockvmenuimpair, div.blockvmenubookmarks, div.blockvmen text-decoration: none; padding-left: 5px; padding-right: 1px; - padding-top: 3px; - padding-bottom: 3px; + padding-top: 4px; + padding-bottom: 7px; margin: 0 0 0 2px; background: rgb(); diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index 851829e89df..25f2bde7e60 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -2104,7 +2104,7 @@ table.login_table_securitycode tr td { div.login_block { border-right: 1px solid rgba(0,0,0,0.3); - padding-top: 5px; + padding-top: 3px; padding-bottom: 3px; : 0; top: 0px; @@ -2316,6 +2316,7 @@ a.vsmenu.addbookmarkpicto { } div.blockvmenufirst { padding-top: 10px; +/* border-top: 1px solid #e0e0e0; */ } div.blockvmenusearch, div.blockvmenubookmarks { diff --git a/htdocs/website/class/website.class.php b/htdocs/website/class/website.class.php index bacc644a824..94735a65eff 100644 --- a/htdocs/website/class/website.class.php +++ b/htdocs/website/class/website.class.php @@ -1012,8 +1012,8 @@ class Website extends CommonObject return -1; } - dol_delete_dir_recursive(dirname($pathtofile).'/'.$object->ref); - dol_mkdir(dirname($pathtofile).'/'.$object->ref); + dol_delete_dir_recursive($conf->website->dir_temp.'/'.$object->ref); + dol_mkdir($conf->website->dir_temp.'/'.$object->ref); $filename = basename($pathtofile); if (! preg_match('/^website_(.*)-(.*)$/', $filename, $reg)) @@ -1023,6 +1023,7 @@ class Website extends CommonObject } $result = dol_uncompress($pathtofile, $conf->website->dir_temp.'/'.$object->ref); + if (! empty($result['error'])) { $this->errors[]='Failed to unzip file '.$pathtofile.'.'; diff --git a/htdocs/website/index.php b/htdocs/website/index.php index 2769fb33cd0..fa13e88b481 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -1836,6 +1836,9 @@ if ($action == 'importsiteconfirm') } else { + // Force mode dynamic on + dolibarr_set_const($db, 'WEBSITE_SUBCONTAINERSINLINE', 1, 'chaine', 0, '', $conf->entity); + header("Location: ".$_SERVER["PHP_SELF"].'?website='.$object->ref); exit(); } @@ -3489,12 +3492,12 @@ if ($action == 'preview' || $action == 'createfromclone' || $action == 'createpa { if (empty($websitekey) || $websitekey == '-1') { - print '

    '.$langs->trans("NoWebSiteCreateOneFirst").'


    '; + print '

    '.$langs->trans("NoWebSiteCreateOneFirst").'



    '; print '
    '; } else { - print '

    '.$langs->trans("PreviewOfSiteNotYetAvailable", $object->ref).'


    '; + print '

    '.$langs->trans("PreviewOfSiteNotYetAvailable", $object->ref).'



    '; print '
    '; } } From 16f44b0963025aca5ed12d29a78e479c6b98441a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 9 Oct 2019 15:07:12 +0200 Subject: [PATCH 252/484] Responsive --- htdocs/modulebuilder/index.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/modulebuilder/index.php b/htdocs/modulebuilder/index.php index 811d6d9b876..5cd32512713 100644 --- a/htdocs/modulebuilder/index.php +++ b/htdocs/modulebuilder/index.php @@ -1243,7 +1243,7 @@ $text=$langs->trans("ModuleBuilder"); print load_fiche_titre($text, '', 'title_setup'); -print ''.$langs->trans("ModuleBuilderDesc", 'https://wiki.dolibarr.org/index.php/Module_development#Create_your_module').'
    '; +print ''.$langs->trans("ModuleBuilderDesc", 'https://wiki.dolibarr.org/index.php/Module_development#Create_your_module').'
    '; $dirsrootforscan=array($dirread); // Add also the core modules into the list of modules to show/edit @@ -1309,7 +1309,7 @@ foreach($dirsrootforscan as $dirread) if (empty($newdircustom)) $newdircustom=img_warning(); // If dirread was forced to somewhere else, by using URL // htdocs/modulebuilder/index.php?module=Inventory@/home/ldestailleur/git/dolibarr/htdocs/product - print $langs->trans("DirScanned").' : '.$dirread.'
    '; + print $langs->trans("DirScanned").' : '.$dirread.'
    '; } //var_dump($listofmodules); From 2b9be13a7cd38906edf0d3ce40bbfdcd6fc06e6e Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Wed, 9 Oct 2019 15:26:55 +0200 Subject: [PATCH 253/484] Update card.php --- htdocs/product/card.php | 60 ++++++++++++++++++++++++++++++----------- 1 file changed, 45 insertions(+), 15 deletions(-) diff --git a/htdocs/product/card.php b/htdocs/product/card.php index ef144c10e0d..22a8af0d270 100644 --- a/htdocs/product/card.php +++ b/htdocs/product/card.php @@ -17,6 +17,7 @@ * Copyright (C) 2016 Meziane Sof * Copyright (C) 2017 Josep Lluís Amador * Copyright (C) 2019 Frédéric France + * Copyright (C) 2019 Thibault FOUCART * * 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 @@ -297,16 +298,18 @@ if (empty($reshook)) $object->duration_unit = $duration_unit; $object->fk_default_warehouse = GETPOST('fk_default_warehouse'); $object->seuil_stock_alerte = GETPOST('seuil_stock_alerte')?GETPOST('seuil_stock_alerte'):0; - $object->desiredstock = GETPOST('desiredstock')?GETPOST('desiredstock'):0; + $object->desiredstock = GETPOST('desiredstock')?GETPOST('desiredstock'):0; $object->canvas = GETPOST('canvas'); + $object->net_measure = GETPOST('net_measure'); + $object->net_measure_units = GETPOST('net_measure_units'); // This is not the fk_unit but the power of unit $object->weight = GETPOST('weight'); $object->weight_units = GETPOST('weight_units'); // This is not the fk_unit but the power of unit $object->length = GETPOST('size'); $object->length_units = GETPOST('size_units'); // This is not the fk_unit but the power of unit $object->width = GETPOST('sizewidth'); $object->height = GETPOST('sizeheight'); - $object->surface = GETPOST('surface'); - $object->surface_units = GETPOST('surface_units'); // This is not the fk_unit but the power of unit + $object->surface = GETPOST('surface'); + $object->surface_units = GETPOST('surface_units'); // This is not the fk_unit but the power of unit $object->volume = GETPOST('volume'); $object->volume_units = GETPOST('volume_units'); // This is not the fk_unit but the power of unit $object->finished = GETPOST('finished', 'alpha'); @@ -403,6 +406,8 @@ if (empty($reshook)) $object->duration_unit = GETPOST('duration_unit', 'alpha'); $object->canvas = GETPOST('canvas'); + $object->net_measure = GETPOST('net_measure'); + $object->net_measure_units = GETPOST('net_measure_units'); // This is not the fk_unit but the power of unit $object->weight = GETPOST('weight'); $object->weight_units = GETPOST('weight_units'); // This is not the fk_unit but the power of unit $object->length = GETPOST('size'); @@ -1053,13 +1058,20 @@ else $statutarray=array('1' => $langs->trans("Finished"), '0' => $langs->trans("RowMaterial")); print $form->selectarray('finished', $statutarray, GETPOST('finished', 'alpha'), 1); print ''; + + // Net Measure + print '
    '; - // Weight + // Brut Weight print ''; - // Length + + // Brut Length if (empty($conf->global->PRODUCT_DISABLE_SIZE)) { print ''; + + // Net Measure + print ''; - // Weight + // Brut Weight print ''; if (empty($conf->global->PRODUCT_DISABLE_SIZE)) { - // Length + // Brut Length print ''; + + // Net Measure + print '\n"; if (empty($conf->global->PRODUCT_DISABLE_SIZE)) { - // Length + // Brut Length print ''; if (! $i) $totalarray['nbfield']++; diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index bc29f1ff93a..ded274a8683 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -3029,14 +3029,14 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ //if (in_array($picto, array('switch_off', 'switch_on', 'off', 'on'))) if (empty($srconly) && in_array($pictowithouttext, array( '1downarrow', '1uparrow', '1leftarrow', '1rightarrow', '1uparrow_selected', '1downarrow_selected', '1leftarrow_selected', '1rightarrow_selected', - 'address', 'bank', 'building', 'cash-register', 'close_title', 'cubes', 'delete', 'edit', 'ellipsis-h', 'bookmark', 'filter', 'grip', 'grip_title', 'list', 'listlight', 'note', + 'address', 'bank', 'building', 'cash-register', 'close_title', 'cubes', 'delete', 'dolly', 'edit', 'ellipsis-h', 'bookmark', 'filter', 'grip', 'grip_title', 'list', 'listlight', 'note', 'object_list','object_calendar', 'object_calendarweek', 'object_calendarmonth', 'object_calendarday', 'object_calendarperuser', 'off', 'on', 'play', 'playdisabled', 'printer', 'resize', 'note', 'setup', 'sign-out', 'split', 'switch_off', 'switch_on', 'tools', 'unlink', 'uparrow', 'user', 'wrench', 'jabber','skype','twitter','facebook','linkedin', 'chevron-left','chevron-right','chevron-down','chevron-top', 'home', 'companies', 'products', 'commercial', 'invoicing', 'accountancy', 'project', 'hrm', 'members', 'ticket', 'generic', - 'warning', + 'error','warning', 'title_setup', 'title_accountancy', 'title_bank', 'title_hrm', 'title_agenda' ) )) { @@ -3049,13 +3049,14 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ 'switch_off'=>'toggle-off', 'switch_on'=>'toggle-on', 'bookmark'=>'star', 'bank'=>'university', 'close_title'=>'window-close', 'delete'=>'trash', 'edit'=>'pencil', 'filter'=>'filter', 'split'=>'code-fork', 'object_list'=>'list-alt','object_calendar'=>'calendar-alt', 'object_calendarweek'=>'calendar-week', 'object_calendarmonth'=>'calendar-alt', 'object_calendarday'=>'calendar-day', 'object_calendarperuser'=>'table', - 'warning'=>'exclamation-triangle', + 'error'=>'exclamation-triangle', 'warning'=>'exclamation-triangle', 'title_setup'=>'tools', 'title_accountancy'=>'money-check-alt', 'title_bank'=>'university', 'title_hrm'=>'umbrella-beach', 'title_agenda'=>'calendar-alt' ); - if ($pictowithouttext == 'warning') { + if ($pictowithouttext == 'error' || $pictowithouttext == 'warning') { $facolor = ''; $fakey = 'fa-'.$arrayconvpictotofa[$pictowithouttext]; $marginleftonlyshort = 0; + $morecss .= ($morecss ? ' ' : '').('picto'.$pictowithouttext); } elseif ($pictowithouttext == 'switch_off') { $facolor = '#999'; $fasize = '2em'; @@ -3156,12 +3157,12 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ elseif (! empty($arrayconvpictotofa[$pictowithouttext])) { $fakey = 'fa-'.$arrayconvpictotofa[$pictowithouttext]; - $facolor = '#444'; + //$facolor = '#444'; $marginleftonlyshort=0; } else { $fakey = 'fa-'.$pictowithouttext; - $facolor = '#444'; + //$facolor = '#444'; $marginleftonlyshort=0; } //this snippet only needed since function img_edit accepts only one additional parameter: no separate one for css only. diff --git a/htdocs/fourn/commande/list.php b/htdocs/fourn/commande/list.php index 14ac029bb27..6410f2c9e57 100644 --- a/htdocs/fourn/commande/list.php +++ b/htdocs/fourn/commande/list.php @@ -484,13 +484,13 @@ $help_url=''; $sql = 'SELECT'; if ($sall || $search_product_category > 0) $sql = 'SELECT DISTINCT'; -$sql.= ' s.rowid as socid, s.nom as name, s.town, s.zip, s.fk_pays, s.client, s.code_client,'; +$sql.= ' s.rowid as socid, s.nom as name, s.town, s.zip, s.fk_pays, s.client, s.code_client, s.email,'; $sql.= " typent.code as typent_code,"; $sql.= " state.code_departement as state_code, state.nom as state_name,"; $sql.= " cf.rowid, cf.ref, cf.ref_supplier, cf.fk_statut, cf.billed, cf.total_ht, cf.tva as total_tva, cf.total_ttc, cf.fk_user_author, cf.date_commande as date_commande, cf.date_livraison as date_delivery,"; $sql.= ' cf.date_creation as date_creation, cf.tms as date_update,'; $sql.= " p.rowid as project_id, p.ref as project_ref, p.title as project_title,"; -$sql.= " u.firstname, u.lastname, u.photo, u.login"; +$sql.= " u.firstname, u.lastname, u.photo, u.login, u.email as user_email"; // Add fields from extrafields foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); // Add fields from hooks @@ -946,20 +946,12 @@ if ($resql) { print ''."\n"; if (! $i) $totalarray['nbfield']++; @@ -987,20 +979,21 @@ if ($resql) $userstatic->firstname = $obj->firstname; $userstatic->login = $obj->login; $userstatic->photo = $obj->photo; + $userstatic->email = $obj->user_email; if (! empty($arrayfields['u.login']['checked'])) { - print ""; if (! $i) $totalarray['nbfield']++; } // Thirdparty if (! empty($arrayfields['s.nom']['checked'])) { - print ''."\n"; if (! $i) $totalarray['nbfield']++; diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index fd7a5670f8e..69865d7ab1b 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -3430,6 +3430,7 @@ img.boxhandle, img.boxclose { .ok { color: #114466; } .warning { color: #887711 !important; } .error { color: #550000 !important; font-weight: bold; } +.green { color: #118822; } div.ok { color: #114466; diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index 25f2bde7e60..8c6bd8d4d77 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -3461,6 +3461,7 @@ img.boxhandle, img.boxclose { .ok { color: #114466; } .warning { color: #887711 !important; } .error { color: #550000 !important; font-weight: bold; } +.green { color: #118822; } div.ok { color: #114466; From ec1acf710ce63b082e6217bbe51bde697e0c9af0 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 9 Oct 2019 18:15:59 +0200 Subject: [PATCH 258/484] Fix missing br --- htdocs/takepos/invoice.php | 52 +++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/htdocs/takepos/invoice.php b/htdocs/takepos/invoice.php index 3d2b736ad62..1511d3520a1 100644 --- a/htdocs/takepos/invoice.php +++ b/htdocs/takepos/invoice.php @@ -742,39 +742,39 @@ if ($invoice->socid != $conf->global->{'CASHDESK_ID_THIRDPARTY'.$_SESSION["takep } print '

    '; - // Module Adherent - if (! empty($conf->adherent->enabled)) + // Module Adherent + if (! empty($conf->adherent->enabled)) + { + require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; + $langs->load("members"); + print '

    '; + print $langs->trans("Member").': '; + $adh=new Adherent($db); + $result=$adh->fetch('', '', $invoice->socid); + if ($result > 0) { - require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; - $langs->load("members"); - print '

    '; - print $langs->trans("Member").': '; - $adh=new Adherent($db); - $result=$adh->fetch('', '', $invoice->socid); - if ($result > 0) + $adh->ref=$adh->getFullName($langs); + print $adh->getFullName($langs); + print '
    '.$langs->trans("Type").': '.$adh->type; + if ($adh->datefin) { - $adh->ref=$adh->getFullName($langs); - print $adh->getFullName($langs); - print '
    '.$langs->trans("Type").': '.$adh->type; - if ($adh->datefin) - { - print '
    '.$langs->trans("SubscriptionEndDate").': '.dol_print_date($adh->datefin, 'day'); - if ($adh->hasDelay()) { - print " ".img_warning($langs->trans("Late")); + print '
    '.$langs->trans("SubscriptionEndDate").': '.dol_print_date($adh->datefin, 'day'); + if ($adh->hasDelay()) { + print " ".img_warning($langs->trans("Late")); + } + } + else + { + print '
    '.$langs->trans("SubscriptionNotReceived"); + if ($adh->statut > 0) print " ".img_warning($langs->trans("Late")); // displays delay Pictogram only if not a draft and not terminated } } else { - print $langs->trans("SubscriptionNotReceived"); - if ($adh->statut > 0) print " ".img_warning($langs->trans("Late")); // displays delay Pictogram only if not a draft and not terminated - } - } - else - { - print ''.$langs->trans("ThirdpartyNotLinkedToMember").''; - } - print '

    '; + print ''.$langs->trans("ThirdpartyNotLinkedToMember").''; } + print '

    '; + } } if ($action == "search") From 0c8331b6d798eb83a1ad3c05059dcc0c79803102 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Wed, 9 Oct 2019 18:47:25 +0200 Subject: [PATCH 259/484] doxygen --- htdocs/compta/facture/class/facture.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index e4140357370..adf00d69d82 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -3506,7 +3506,7 @@ class Facture extends CommonInvoice * @param int $offset For pagination * @param string $sortfield Sort criteria * @param string $sortorder Sort order - * @return int -1 if KO, array with result if OK + * @return array|int -1 if KO, array with result if OK */ function liste_array($shortlist=0, $draft=0, $excluser='', $socid=0, $limit=0, $offset=0, $sortfield='f.datef,f.rowid', $sortorder='DESC') { @@ -3577,7 +3577,7 @@ class Facture extends CommonInvoice * (Status validated or abandonned for a reason 'other') + not payed + no payment at all + not already replaced * * @param int $socid Id thirdparty - * @return array Array of invoices ('id'=>id, 'ref'=>ref, 'status'=>status, 'paymentornot'=>0/1) + * @return array|int Array of invoices ('id'=>id, 'ref'=>ref, 'status'=>status, 'paymentornot'=>0/1) */ function list_replacable_invoices($socid=0) { From 6f7e4fd15c9f8919d43c701638a4a0ba1895324d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Wed, 9 Oct 2019 22:02:58 +0200 Subject: [PATCH 260/484] Update list.php --- htdocs/holiday/list.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php index 1854cce2800..882f59dbee6 100644 --- a/htdocs/holiday/list.php +++ b/htdocs/holiday/list.php @@ -3,6 +3,7 @@ * Copyright (C) 2013-2018 Laurent Destailleur * Copyright (C) 2012-2016 Regis Houssin * Copyright (C) 2018 Charlene Benke + * Copyright (C) 2019 Frédéric France * * 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 @@ -273,7 +274,9 @@ $sql.= " ua.login as validator_login,"; $sql.= " ua.statut as validator_statut,"; $sql.= " ua.photo as validator_photo"; // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +} // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook From 6bb14bdb0c4d36e7f849ffc5f1ad3a91e2fe8e7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Wed, 9 Oct 2019 22:07:52 +0200 Subject: [PATCH 261/484] Update list.php --- htdocs/expensereport/list.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php index daadfa913ec..2b4a2a9a983 100644 --- a/htdocs/expensereport/list.php +++ b/htdocs/expensereport/list.php @@ -7,6 +7,7 @@ * Copyright (C) 2018 Ferran Marcet * Copyright (C) 2018 Charlene Benke * Copyright (C) 2019 Juanjo Menent + * Copyright (C) 2019 Frédéric France * * 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 @@ -279,7 +280,9 @@ $sql = "SELECT d.rowid, d.ref, d.fk_user_author, d.total_ht, d.total_tva, d.tota $sql.= " d.date_debut, d.date_fin, d.date_create, d.tms as date_modif, d.date_valid, d.date_approve, d.note_private, d.note_public,"; $sql.= " u.rowid as id_user, u.firstname, u.lastname, u.login, u.email, u.statut, u.photo"; // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +} // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook From d4757a0b5be7220ee35f015943d4c4c871764e6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Wed, 9 Oct 2019 23:20:15 +0200 Subject: [PATCH 262/484] globe fontawesome --- htdocs/core/lib/functions.lib.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index ded274a8683..7c907885d27 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -3032,7 +3032,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ 'address', 'bank', 'building', 'cash-register', 'close_title', 'cubes', 'delete', 'dolly', 'edit', 'ellipsis-h', 'bookmark', 'filter', 'grip', 'grip_title', 'list', 'listlight', 'note', 'object_list','object_calendar', 'object_calendarweek', 'object_calendarmonth', 'object_calendarday', 'object_calendarperuser', 'off', 'on', 'play', 'playdisabled', 'printer', 'resize', - 'note', 'setup', 'sign-out', 'split', 'switch_off', 'switch_on', 'tools', 'unlink', 'uparrow', 'user', 'wrench', + 'note', 'setup', 'sign-out', 'split', 'switch_off', 'switch_on', 'tools', 'unlink', 'uparrow', 'user', 'wrench', 'globe', 'jabber','skype','twitter','facebook','linkedin', 'chevron-left','chevron-right','chevron-down','chevron-top', 'home', 'companies', 'products', 'commercial', 'invoicing', 'accountancy', 'project', 'hrm', 'members', 'ticket', 'generic', @@ -3126,11 +3126,11 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ if (preg_match('/selected/', $pictowithouttext)) $facolor = '#888'; $marginleftonlyshort = 1; } - elseif ($pictowithouttext == 'sign-out') { + elseif ($pictowithouttext == 'sign-out') { $fakey = 'fa-sign-out-alt'; $marginleftonlyshort=0; } - elseif ($pictowithouttext == 'unlink') { + elseif ($pictowithouttext == 'unlink') { $fakey = 'fa-chain-broken'; $facolor = '#555'; } From 43c7917108097c0d504e4546786e80930a03d77b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Wed, 9 Oct 2019 23:59:12 +0200 Subject: [PATCH 263/484] Update fournisseur.commande.class.php --- htdocs/fourn/class/fournisseur.commande.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index 4536cdc5bbd..56ad1f9481f 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -684,7 +684,7 @@ class CommandeFournisseur extends CommonOrder $billedtext = ' - '.$langs->trans("Billed"); } - $statusLong = $langs->trans($this->statuts_long[$status]).$billedtext; + $statusLong = $langs->trans($this->statuts[$status]).$billedtext; $statusShort = $langs->trans($this->statutshort[$status]); return dolGetStatus($statusLong, $statusShort, '', $statusClass, $mode); From 90257dc08714c6e8317ac8d6efd9daa48160e2d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Thu, 10 Oct 2019 08:09:39 +0200 Subject: [PATCH 264/484] Update box_factures_imp.php --- htdocs/core/boxes/box_factures_imp.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/core/boxes/box_factures_imp.php b/htdocs/core/boxes/box_factures_imp.php index 494950927a9..3c4ba1c9736 100644 --- a/htdocs/core/boxes/box_factures_imp.php +++ b/htdocs/core/boxes/box_factures_imp.php @@ -2,7 +2,7 @@ /* Copyright (C) 2003-2007 Rodolphe Quiedeville * Copyright (C) 2004-2007 Laurent Destailleur * Copyright (C) 2005-2009 Regis Houssin - * Copyright (C) 2015 Frederic France + * Copyright (C) 2015-2019 Frederic France * * 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 @@ -82,6 +82,8 @@ class box_factures_imp extends ModeleBoxes $facturestatic = new Facture($this->db); $societestatic = new Societe($this->db); + $langs->load("bills"); + $this->info_box_head = array('text' => $langs->trans("BoxTitleOldestUnpaidCustomerBills", $max)); if ($user->rights->facture->lire) From be005767174c10c171b8f4b3c8abb50a971829b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Thu, 10 Oct 2019 08:22:14 +0200 Subject: [PATCH 265/484] Update functions.lib.php --- htdocs/core/lib/functions.lib.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index ded274a8683..b0dc822bb56 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -3031,7 +3031,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ '1downarrow', '1uparrow', '1leftarrow', '1rightarrow', '1uparrow_selected', '1downarrow_selected', '1leftarrow_selected', '1rightarrow_selected', 'address', 'bank', 'building', 'cash-register', 'close_title', 'cubes', 'delete', 'dolly', 'edit', 'ellipsis-h', 'bookmark', 'filter', 'grip', 'grip_title', 'list', 'listlight', 'note', 'object_list','object_calendar', 'object_calendarweek', 'object_calendarmonth', 'object_calendarday', 'object_calendarperuser', - 'off', 'on', 'play', 'playdisabled', 'printer', 'resize', + 'off', 'on', 'play', 'playdisabled', 'printer', 'resize', 'stats', 'note', 'setup', 'sign-out', 'split', 'switch_off', 'switch_on', 'tools', 'unlink', 'uparrow', 'user', 'wrench', 'jabber','skype','twitter','facebook','linkedin', 'chevron-left','chevron-right','chevron-down','chevron-top', @@ -3046,7 +3046,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ $arrayconvpictotofa = array( 'address'=> 'address-book', 'setup'=>'cog', 'companies'=>'building', 'products'=>'cube', 'commercial'=>'suitcase', 'invoicing'=>'coins', 'accountancy'=>'money-check-alt', 'project'=>'sitemap', 'hrm'=>'umbrella-beach', 'members'=>'users', 'ticket'=>'ticket-alt', 'generic'=>'folder-open', - 'switch_off'=>'toggle-off', 'switch_on'=>'toggle-on', 'bookmark'=>'star', + 'switch_off'=>'toggle-off', 'switch_on'=>'toggle-on', 'bookmark'=>'star', 'stats' => 'chart-bar', 'bank'=>'university', 'close_title'=>'window-close', 'delete'=>'trash', 'edit'=>'pencil', 'filter'=>'filter', 'split'=>'code-fork', 'object_list'=>'list-alt','object_calendar'=>'calendar-alt', 'object_calendarweek'=>'calendar-week', 'object_calendarmonth'=>'calendar-alt', 'object_calendarday'=>'calendar-day', 'object_calendarperuser'=>'table', 'error'=>'exclamation-triangle', 'warning'=>'exclamation-triangle', @@ -3081,6 +3081,10 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ $fakey = 'fa-'.$arrayconvpictotofa[$pictowithouttext]; $facolor = '#444'; } + elseif ($pictowithouttext == 'stats') { + $fakey = 'fa-'.$arrayconvpictotofa[$pictowithouttext]; + $facolor = '#444'; + } elseif ($pictowithouttext == 'delete') { $fakey = 'fa-'.$arrayconvpictotofa[$pictowithouttext]; $facolor = '#444'; From 28b87f9e27206cce9d45cf0668515abe088cfed8 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 10 Oct 2019 10:35:18 +0200 Subject: [PATCH 266/484] Add image for members --- .../adherent/1/photos/person5.jpeg | Bin 0 -> 1079627 bytes .../1/photos/thumbs/person5_mini.jpeg | Bin 0 -> 2103 bytes .../1/photos/thumbs/person5_small.jpeg | Bin 0 -> 5036 bytes .../adherent/2/photos/pierrecurie.jpg | Bin 0 -> 5960 bytes .../2/photos/thumbs/pierrecurie_mini.jpg | Bin 0 -> 1940 bytes .../2/photos/thumbs/pierrecurie_small.jpg | Bin 0 -> 4886 bytes .../adherent/3/photos/person9.jpeg | Bin 0 -> 1088931 bytes .../3/photos/thumbs/person9_mini.jpeg | Bin 0 -> 2055 bytes .../3/photos/thumbs/person9_small.jpeg | Bin 0 -> 4897 bytes .../adherent/4/photos/person2.jpeg | Bin 0 -> 1190209 bytes .../4/photos/thumbs/person2_mini.jpeg | Bin 0 -> 1986 bytes .../4/photos/thumbs/person2_small.jpeg | Bin 0 -> 4501 bytes 12 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 htdocs/install/doctemplates/adherent/1/photos/person5.jpeg create mode 100644 htdocs/install/doctemplates/adherent/1/photos/thumbs/person5_mini.jpeg create mode 100644 htdocs/install/doctemplates/adherent/1/photos/thumbs/person5_small.jpeg create mode 100644 htdocs/install/doctemplates/adherent/2/photos/pierrecurie.jpg create mode 100644 htdocs/install/doctemplates/adherent/2/photos/thumbs/pierrecurie_mini.jpg create mode 100644 htdocs/install/doctemplates/adherent/2/photos/thumbs/pierrecurie_small.jpg create mode 100644 htdocs/install/doctemplates/adherent/3/photos/person9.jpeg create mode 100644 htdocs/install/doctemplates/adherent/3/photos/thumbs/person9_mini.jpeg create mode 100644 htdocs/install/doctemplates/adherent/3/photos/thumbs/person9_small.jpeg create mode 100644 htdocs/install/doctemplates/adherent/4/photos/person2.jpeg create mode 100644 htdocs/install/doctemplates/adherent/4/photos/thumbs/person2_mini.jpeg create mode 100644 htdocs/install/doctemplates/adherent/4/photos/thumbs/person2_small.jpeg diff --git a/htdocs/install/doctemplates/adherent/1/photos/person5.jpeg b/htdocs/install/doctemplates/adherent/1/photos/person5.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..3d541f760b8938a5fdb3eaffde228bc9b2265e4b GIT binary patch literal 1079627 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 |3I_XWFZilAi`qVB?B3>O@KE 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�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%0A_^g4>aNg^z!@JDlH(xa4 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

    t+1 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

    tJs@Ku@*9Q+ir2D#BT2qc)uCchDqE)AIy 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

    =mh2V>3fguB&pG!BAVaJ){nqbZ@{{TyL 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

    {6pyXL(U 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ν4JL^SLkg5YW3mA+xV; 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

      sAznrpPRb@M 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࡭Mw$fic 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%0Db)b0Nk;Beb!PV(-eSpufMDt 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%0Du1W}Z6GQQys^V6H2Io5&O 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

      wz26`ARzVTb$GPSo`3>JN_zzIdXd|H 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

      dt65VrwDo!a0M{|`0^}$YY#yHA>o2=J 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%0D&T%Mm9 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

      wO?fIO2|a2$>;vEyH_n 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%0Ay;A4UJ6Ne&oR;#m2;(9Dz#^m>qKDZ1oo6LX|8N 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

    |6?9oS?>0%l~*0~XF0K!3>Y`wRD9>Hh#! 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

    - + - + - + - + - + - + Date: Thu, 10 Oct 2019 11:44:21 +0200 Subject: [PATCH 270/484] NEW : Accountancy - List by account - Modify sortfield, nowrap on amount and sum of sous-total --- htdocs/accountancy/bookkeeping/listbyaccount.php | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/htdocs/accountancy/bookkeeping/listbyaccount.php b/htdocs/accountancy/bookkeeping/listbyaccount.php index d3dc9b4a190..2b9fc4fde29 100644 --- a/htdocs/accountancy/bookkeeping/listbyaccount.php +++ b/htdocs/accountancy/bookkeeping/listbyaccount.php @@ -71,7 +71,7 @@ $offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; if ($sortorder == "") $sortorder = "ASC"; -if ($sortfield == "") $sortfield = "t.rowid"; +if ($sortfield == "") $sortfield = "t.doc_date"; if (empty($search_date_start) && empty($search_date_end)) { $sql = "SELECT date_start, date_end from ".MAIN_DB_PREFIX."accounting_fiscalyear "; @@ -376,8 +376,8 @@ while ($i < min($num, $limit)) print strlen(length_accounta($line->subledger_account)) == 0 ? '' : ''; - print ''; - print ''; + print ''; + print ''; $accountingjournal = new AccountingJournal($db); $result = $accountingjournal->fetch('', $line->code_journal); @@ -400,18 +400,19 @@ while ($i < min($num, $limit)) // Affiche un Sous-Total du dernier compte comptable affiché print ''; print ''; -print "\n"; -print "\n"; +print '\n'; print ''; // Affiche le Total print ''; print ''; -print ''; -print ''; print ''; From 612c80b290ff2abc52bc9437ea80a227a071865b Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Thu, 10 Oct 2019 13:07:19 +0200 Subject: [PATCH 271/484] Update api_setup.class.php --- htdocs/api/class/api_setup.class.php | 66 +++++++++++++++++++++++++++- 1 file changed, 65 insertions(+), 1 deletion(-) diff --git a/htdocs/api/class/api_setup.class.php b/htdocs/api/class/api_setup.class.php index dd0a08039ef..9552380f090 100644 --- a/htdocs/api/class/api_setup.class.php +++ b/htdocs/api/class/api_setup.class.php @@ -358,6 +358,70 @@ class Setup extends DolibarrApi } + $sql.= $this->db->order($sortfield, $sortorder); + + if ($limit) { + if ($page < 0) { + $page = 0; + } + $offset = $limit * $page; + + $sql .= $this->db->plimit($limit, $offset); + } + + $result = $this->db->query($sql); + + if ($result) { + $num = $this->db->num_rows($result); + $min = min($num, ($limit <= 0 ? $num : $limit)); + for ($i = 0; $i < $min; $i++) { + $list[] = $this->db->fetch_object($result); + } + } else { + throw new RestException(503, 'Error when retrieving list of events types : '.$this->db->lasterror()); + } + + return $list; + } + + /** + * Get the list of contacts types. + * + * @param string $sortfield Sort field + * @param string $sortorder Sort order + * @param int $limit Number of items per page + * @param int $page Page number (starting from zero) + * @param string $type To filter on type of contact + * @param string $module To filter on module contacts + * @param int $active Payment term is active or not {@min 0} {@max 1} + * @param string $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.code:like:'A%') and (t.active:>=:0)" + * @return array List of Contacts types + * + * @url GET dictionary/contact_types + * + * @throws RestException + */ + public function getListOfContactTypes($sortfield = "code", $sortorder = 'ASC', $limit = 100, $page = 0, $type = '', $module = '', $active = 1, $sqlfilters = '') + { + $list = array(); + + $sql = "SELECT rowid, code, element as type, libelle as label, source, module, position"; + $sql.= " FROM ".MAIN_DB_PREFIX."c_type_contact as t"; + $sql.= " WHERE t.active = ".$active; + if ($type) $sql.=" AND type LIKE '%" . $this->db->escape($type) . "%'"; + if ($module) $sql.=" AND t.module LIKE '%" . $this->db->escape($module) . "%'"; + // Add sql filters + if ($sqlfilters) + { + if (! DolibarrApi::_checkFilters($sqlfilters)) + { + throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters); + } + $regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; + $sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; + } + + $sql.= $this->db->order($sortfield, $sortorder); if ($limit) { @@ -394,7 +458,7 @@ class Setup extends DolibarrApi * @param string $module To filter on module events * @param int $active Payment term is active or not {@min 0} {@max 1} * @param string $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.code:like:'A%') and (t.active:>=:0)" - * @return array List of civility types + * @return array List of civility types * * @url GET dictionary/civilities * From 56b6223bba5149115b125d16d1a59c678e0f8880 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Thu, 10 Oct 2019 14:23:18 +0200 Subject: [PATCH 272/484] Update api_setup.class.php --- htdocs/api/class/api_setup.class.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/api/class/api_setup.class.php b/htdocs/api/class/api_setup.class.php index 9552380f090..4ef09e5ae78 100644 --- a/htdocs/api/class/api_setup.class.php +++ b/htdocs/api/class/api_setup.class.php @@ -329,7 +329,7 @@ class Setup extends DolibarrApi * @param int $page Page number (starting from zero) * @param string $type To filter on type of event * @param string $module To filter on module events - * @param int $active Payment term is active or not {@min 0} {@max 1} + * @param int $active Event's type is active or not {@min 0} {@max 1} * @param string $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.code:like:'A%') and (t.active:>=:0)" * @return array List of events types * @@ -393,7 +393,7 @@ class Setup extends DolibarrApi * @param int $page Page number (starting from zero) * @param string $type To filter on type of contact * @param string $module To filter on module contacts - * @param int $active Payment term is active or not {@min 0} {@max 1} + * @param int $active Contact's type is active or not {@min 0} {@max 1} * @param string $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.code:like:'A%') and (t.active:>=:0)" * @return array List of Contacts types * @@ -456,7 +456,7 @@ class Setup extends DolibarrApi * @param int $limit Number of items per page * @param int $page Page number (starting from zero) * @param string $module To filter on module events - * @param int $active Payment term is active or not {@min 0} {@max 1} + * @param int $active Civility is active or not {@min 0} {@max 1} * @param string $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.code:like:'A%') and (t.active:>=:0)" * @return array List of civility types * From 015d51c16994f1e605c67501d8c97f63d0b98e00 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 10 Oct 2019 15:10:41 +0200 Subject: [PATCH 273/484] NEW Add column of module source and POS terminal in invoice list. --- htdocs/compta/facture/list.php | 124 ++++++++++++++++++++++----------- 1 file changed, 83 insertions(+), 41 deletions(-) diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php index c11d5796109..93d4e28d5c8 100644 --- a/htdocs/compta/facture/list.php +++ b/htdocs/compta/facture/list.php @@ -89,6 +89,8 @@ $search_montant_ttc=GETPOST('search_montant_ttc', 'alpha'); $search_status=GETPOST('search_status', 'intcomma'); $search_paymentmode=GETPOST('search_paymentmode', 'int'); $search_paymentterms=GETPOST('search_paymentterms', 'int'); +$search_module_source=GETPOST('search_module_source', 'alpha'); +$search_pos_source=GETPOST('search_pos_source', 'alpha'); $search_town=GETPOST('search_town', 'alpha'); $search_zip=GETPOST('search_zip', 'alpha'); $search_state=trim(GETPOST("search_state")); @@ -157,37 +159,39 @@ if (empty($user->socid)) $fieldstosearchall["f.note_private"]="NotePrivate"; $checkedtypetiers=0; $arrayfields=array( - 'f.ref'=>array('label'=>"Ref", 'checked'=>1), - 'f.ref_client'=>array('label'=>"RefCustomer", 'checked'=>1), - 'f.type'=>array('label'=>"Type", 'checked'=>0), - 'f.date'=>array('label'=>"DateInvoice", 'checked'=>1), - 'f.date_lim_reglement'=>array('label'=>"DateDue", 'checked'=>1), - 'p.ref'=>array('label'=>"ProjectRef", 'checked'=>1, 'enabled'=>(empty($conf->projet->enabled)?0:1)), - 'p.title'=>array('label'=>"ProjectLabel", 'checked'=>0, 'enabled'=>(empty($conf->projet->enabled)?0:1)), - 's.nom'=>array('label'=>"ThirdParty", 'checked'=>1), - 's.town'=>array('label'=>"Town", 'checked'=>1), - 's.zip'=>array('label'=>"Zip", 'checked'=>1), - 'state.nom'=>array('label'=>"StateShort", 'checked'=>0), - 'country.code_iso'=>array('label'=>"Country", 'checked'=>0), - 'typent.code'=>array('label'=>"ThirdPartyType", 'checked'=>$checkedtypetiers), - 'f.fk_mode_reglement'=>array('label'=>"PaymentMode", 'checked'=>1), - 'f.fk_cond_reglement'=>array('label'=>"PaymentConditionsShort", 'checked'=>1), - 'f.total_ht'=>array('label'=>"AmountHT", 'checked'=>1), - 'f.total_vat'=>array('label'=>"AmountVAT", 'checked'=>0), - 'f.total_localtax1'=>array('label'=>$langs->transcountry("AmountLT1", $mysoc->country_code), 'checked'=>0, 'enabled'=>($mysoc->localtax1_assuj=="1")), - 'f.total_localtax2'=>array('label'=>$langs->transcountry("AmountLT2", $mysoc->country_code), 'checked'=>0, 'enabled'=>($mysoc->localtax2_assuj=="1")), - 'f.total_ttc'=>array('label'=>"AmountTTC", 'checked'=>0), - 'dynamount_payed'=>array('label'=>"Received", 'checked'=>0), - 'rtp'=>array('label'=>"Rest", 'checked'=>0), + 'f.ref'=>array('label'=>"Ref", 'checked'=>1, 'position'=>5), + 'f.ref_client'=>array('label'=>"RefCustomer", 'checked'=>1, 'position'=>10), + 'f.type'=>array('label'=>"Type", 'checked'=>0, 'position'=>15), + 'f.date'=>array('label'=>"DateInvoice", 'checked'=>1, 'position'=>20), + 'f.date_lim_reglement'=>array('label'=>"DateDue", 'checked'=>1, 'position'=>25), + 'f.date_closing'=>array('label'=>"DateClosing", 'checked'=>0, 'position'=>30), + 'p.ref'=>array('label'=>"ProjectRef", 'checked'=>1, 'enabled'=>(empty($conf->projet->enabled)?0:1), 'position'=>40), + 'p.title'=>array('label'=>"ProjectLabel", 'checked'=>0, 'enabled'=>(empty($conf->projet->enabled)?0:1), 'position'=>40), + 's.nom'=>array('label'=>"ThirdParty", 'checked'=>1, 'position'=>50), + 's.town'=>array('label'=>"Town", 'checked'=>1, 'position'=>55), + 's.zip'=>array('label'=>"Zip", 'checked'=>1, 'position'=>60), + 'state.nom'=>array('label'=>"StateShort", 'checked'=>0, 'position'=>65), + 'country.code_iso'=>array('label'=>"Country", 'checked'=>0, 'position'=>70), + 'typent.code'=>array('label'=>"ThirdPartyType", 'checked'=>$checkedtypetiers, 'position'=>75), + 'f.fk_mode_reglement'=>array('label'=>"PaymentMode", 'checked'=>1, 'position'=>80), + 'f.fk_cond_reglement'=>array('label'=>"PaymentConditionsShort", 'checked'=>1, 'position'=>85), + 'f.module_source'=>array('label'=>"Module", 'checked'=>0, 'enabled'=>($conf->cashdesk->enabled || $conf->takepos->enabled || $conf->global->POS_EXTERNAL_ENABLED), 'position'=>90), + 'f.pos_source'=>array('label'=>"Terminal", 'checked'=>0, 'enabled'=>($conf->cashdesk->enabled || $conf->takepos->enabled || $conf->global->POS_EXTERNAL_ENABLED), 'position'=>91), + 'f.total_ht'=>array('label'=>"AmountHT", 'checked'=>1, 'position'=>95), + 'f.total_vat'=>array('label'=>"AmountVAT", 'checked'=>0, 'position'=>100), + 'f.total_localtax1'=>array('label'=>$langs->transcountry("AmountLT1", $mysoc->country_code), 'checked'=>0, 'enabled'=>($mysoc->localtax1_assuj=="1"), 'position'=>110), + 'f.total_localtax2'=>array('label'=>$langs->transcountry("AmountLT2", $mysoc->country_code), 'checked'=>0, 'enabled'=>($mysoc->localtax2_assuj=="1"), 'position'=>120), + 'f.total_ttc'=>array('label'=>"AmountTTC", 'checked'=>0, 'position'=>130), + 'dynamount_payed'=>array('label'=>"Received", 'checked'=>0, 'position'=>140), + 'rtp'=>array('label'=>"Rest", 'checked'=>0, 'position'=>150), 'f.datec'=>array('label'=>"DateCreation", 'checked'=>0, 'position'=>500), 'f.tms'=>array('label'=>"DateModificationShort", 'checked'=>0, 'position'=>500), - 'f.date_closing'=>array('label'=>"DateClosing", 'checked'=>0, 'position'=>500), 'f.fk_statut'=>array('label'=>"Status", 'checked'=>1, 'position'=>1000), ); if($conf->global->INVOICE_USE_SITUATION && $conf->global->INVOICE_USE_SITUATION_RETAINED_WARRANTY) { - $arrayfields['f.retained_warranty'] = array('label'=>$langs->trans("RetainedWarranty"), 'checked'=>0); + $arrayfields['f.retained_warranty'] = array('label'=>$langs->trans("RetainedWarranty"), 'checked'=>0, 'position'=>86); } // Extra fields @@ -236,6 +240,8 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter', $search_status=''; $search_paymentmode=''; $search_paymentterms=''; + $search_module_source=''; + $search_pos_source=''; $search_town=''; $search_zip=""; $search_state=""; @@ -381,13 +387,10 @@ $sql = 'SELECT'; if ($sall || $search_product_category > 0) $sql = 'SELECT DISTINCT'; $sql.= ' f.rowid as id, f.ref, f.ref_client, f.type, f.note_private, f.note_public, f.increment, f.fk_mode_reglement, f.fk_cond_reglement, f.total as total_ht, f.tva as total_vat, f.total_ttc,'; $sql.= ' f.localtax1 as total_localtax1, f.localtax2 as total_localtax2,'; -$sql.= ' f.datef as df, f.date_lim_reglement as datelimite,'; +$sql.= ' f.datef as df, f.date_lim_reglement as datelimite, f.module_source, f.pos_source,'; $sql.= ' f.paye as paye, f.fk_statut,'; $sql.= ' f.datec as date_creation, f.tms as date_update, f.date_closing as date_closing,'; -if($conf->global->INVOICE_USE_SITUATION && $conf->global->INVOICE_USE_SITUATION_RETAINED_WARRANTY) -{ - $sql.= ' f.retained_warranty, f.retained_warranty_date_limit, f.situation_final,f.situation_cycle_ref,f.situation_counter,'; -} +$sql.= ' f.retained_warranty, f.retained_warranty_date_limit, f.situation_final, f.situation_cycle_ref, f.situation_counter,'; $sql.= ' s.rowid as socid, s.nom as name, s.email, s.town, s.zip, s.fk_pays, s.client, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta as code_compta_client, s.code_compta_fournisseur,'; $sql.= " typent.code as typent_code,"; $sql.= " state.code_departement as state_code, state.nom as state_name,"; @@ -475,8 +478,10 @@ if ($search_status != '-1' && $search_status != '') $sql.= " AND f.fk_statut IN (".$db->escape($search_status).")"; // When search_status is '1,2' for example } } -if ($search_paymentmode > 0) $sql .= " AND f.fk_mode_reglement = ".$db->escape($search_paymentmode); +if ($search_paymentmode > 0) $sql .= " AND f.fk_mode_reglement = ".$db->escape($search_paymentmode); if ($search_paymentterms > 0) $sql .= " AND f.fk_cond_reglement = ".$db->escape($search_paymentterms); +if ($search_module_source) $sql .= natural_search("f.module_source", $search_module_source); +if ($search_pos_source) $sql .= natural_search("f.pos_source", $search_pos_source); $sql.= dolSqlDateFilter("f.datef", $search_day, $search_month, $search_year); $sql.= dolSqlDateFilter("f.date_lim_reglement", $search_day_lim, $search_month_lim, $search_year_lim); if ($option == 'late') $sql.=" AND f.date_lim_reglement < '".$db->idate(dol_now() - $conf->facture->client->warning_delay)."'"; @@ -496,9 +501,10 @@ if (! $sall) { $sql.= ' GROUP BY f.rowid, f.ref, ref_client, f.type, f.note_private, f.note_public, f.increment, f.fk_mode_reglement, f.fk_cond_reglement, f.total, f.tva, f.total_ttc,'; $sql.= ' f.localtax1, f.localtax2,'; - $sql.= ' f.datef, f.date_lim_reglement,'; + $sql.= ' f.datef, f.date_lim_reglement, f.module_source, f.pos_source,'; $sql.= ' f.paye, f.fk_statut,'; $sql.= ' f.datec, f.tms, f.date_closing,'; + $sql.= ' f.retained_warranty, f.retained_warranty_date_limit, f.situation_final, f.situation_cycle_ref, f.situation_counter,'; $sql.= ' s.rowid, s.nom, s.email, s.town, s.zip, s.fk_pays, s.client, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur,'; $sql.= ' typent.code,'; $sql.= ' state.code_departement, state.nom,'; @@ -591,6 +597,8 @@ if ($resql) if ($search_status != '') $param.='&search_status='.urlencode($search_status); if ($search_paymentmode > 0) $param.='&search_paymentmode='.urlencode($search_paymentmode); if ($search_paymentterms > 0) $param.='&search_paymentterms='.urlencode($search_paymentterms); + if ($search_module_source) $param.='&search_module_source='.urlencode($search_module_source); + if ($search_pos_source) $param.='&search_pos_source='.urlencode($search_pos_source); if ($show_files) $param.='&show_files='.urlencode($show_files); if ($option) $param.="&search_option=".urlencode($option); if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss); @@ -804,17 +812,31 @@ if ($resql) // Payment mode if (! empty($arrayfields['f.fk_mode_reglement']['checked'])) { - print ''; } // Payment terms if (! empty($arrayfields['f.fk_cond_reglement']['checked'])) { - print ''; } + // Module source + if (! empty($arrayfields['f.module_source']['checked'])) + { + print ''; + } + // POS Terminal + if (! empty($arrayfields['f.pos_source']['checked'])) + { + print ''; + } if (! empty($arrayfields['f.total_ht']['checked'])) { // Amount @@ -923,6 +945,8 @@ if ($resql) if (! empty($arrayfields['typent.code']['checked'])) print_liste_field_titre($arrayfields['typent.code']['label'], $_SERVER["PHP_SELF"], "typent.code", "", $param, 'align="center"', $sortfield, $sortorder); if (! empty($arrayfields['f.fk_mode_reglement']['checked'])) print_liste_field_titre($arrayfields['f.fk_mode_reglement']['label'], $_SERVER["PHP_SELF"], "f.fk_mode_reglement", "", $param, "", $sortfield, $sortorder); if (! empty($arrayfields['f.fk_cond_reglement']['checked'])) print_liste_field_titre($arrayfields['f.fk_cond_reglement']['label'], $_SERVER["PHP_SELF"], "f.fk_cond_reglement", "", $param, "", $sortfield, $sortorder); + if (! empty($arrayfields['f.module_source']['checked'])) print_liste_field_titre($arrayfields['f.module_source']['label'], $_SERVER["PHP_SELF"], "f.module_source", "", $param, "", $sortfield, $sortorder); + if (! empty($arrayfields['f.pos_source']['checked'])) print_liste_field_titre($arrayfields['f.pos_source']['label'], $_SERVER["PHP_SELF"], "f.pos_source", "", $param, "", $sortfield, $sortorder); if (! empty($arrayfields['f.total_ht']['checked'])) print_liste_field_titre($arrayfields['f.total_ht']['label'], $_SERVER['PHP_SELF'], 'f.total', '', $param, 'class="right"', $sortfield, $sortorder); if (! empty($arrayfields['f.total_vat']['checked'])) print_liste_field_titre($arrayfields['f.total_vat']['label'], $_SERVER['PHP_SELF'], 'f.tva', '', $param, 'class="right"', $sortfield, $sortorder); if (! empty($arrayfields['f.total_localtax1']['checked'])) print_liste_field_titre($arrayfields['f.total_localtax1']['label'], $_SERVER['PHP_SELF'], 'f.localtax1', '', $param, 'class="right"', $sortfield, $sortorder); @@ -1107,14 +1131,14 @@ if ($resql) if (! empty($arrayfields['s.nom']['checked'])) { print ''; if (! $i) $totalarray['nbfield']++; } @@ -1186,6 +1210,24 @@ if ($resql) if (! $i) $totalarray['nbfield']++; } + // Module Source + if (! empty($arrayfields['f.module_source']['checked'])) + { + print ''; + if (! $i) $totalarray['nbfield']++; + } + + // POS Terminal + if (! empty($arrayfields['f.pos_source']['checked'])) + { + print ''; + if (! $i) $totalarray['nbfield']++; + } + // Amount HT if (! empty($arrayfields['f.total_ht']['checked'])) { From d9a0dc2986a6a3bc01676b16d92a747eb0c848cd Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 10 Oct 2019 15:20:44 +0200 Subject: [PATCH 274/484] Fix trans --- htdocs/core/modules/modFacture.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/modules/modFacture.class.php b/htdocs/core/modules/modFacture.class.php index b1b10f34ffb..fccc7f365e2 100644 --- a/htdocs/core/modules/modFacture.class.php +++ b/htdocs/core/modules/modFacture.class.php @@ -234,7 +234,7 @@ class modFacture extends DolibarrModules } if (! empty($conf->cashdesk->enabled) || ! empty($conf->takepos->enabled) || ! empty($conf->global->INVOICE_SHOW_POS_IN_EXPORT)) { - $this->export_fields_array[$r]['f.module_source']='POSModule'; + $this->export_fields_array[$r]['f.module_source']='Module'; $this->export_fields_array[$r]['f.pos_source']='POSTerminal'; } $this->export_TypeFields_array[$r] = array( From b34cbfad74a7d7dde02ca61461b43db8b7547c68 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 10 Oct 2019 15:23:45 +0200 Subject: [PATCH 275/484] Rename const --- htdocs/compta/facture/list.php | 4 ++-- htdocs/core/modules/modFacture.class.php | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php index 93d4e28d5c8..77abac6e4d1 100644 --- a/htdocs/compta/facture/list.php +++ b/htdocs/compta/facture/list.php @@ -175,8 +175,8 @@ $arrayfields=array( 'typent.code'=>array('label'=>"ThirdPartyType", 'checked'=>$checkedtypetiers, 'position'=>75), 'f.fk_mode_reglement'=>array('label'=>"PaymentMode", 'checked'=>1, 'position'=>80), 'f.fk_cond_reglement'=>array('label'=>"PaymentConditionsShort", 'checked'=>1, 'position'=>85), - 'f.module_source'=>array('label'=>"Module", 'checked'=>0, 'enabled'=>($conf->cashdesk->enabled || $conf->takepos->enabled || $conf->global->POS_EXTERNAL_ENABLED), 'position'=>90), - 'f.pos_source'=>array('label'=>"Terminal", 'checked'=>0, 'enabled'=>($conf->cashdesk->enabled || $conf->takepos->enabled || $conf->global->POS_EXTERNAL_ENABLED), 'position'=>91), + 'f.module_source'=>array('label'=>"Module", 'checked'=>0, 'enabled'=>($conf->cashdesk->enabled || $conf->takepos->enabled || $conf->global->INVOICE_SHOW_POS), 'position'=>90), + 'f.pos_source'=>array('label'=>"Terminal", 'checked'=>0, 'enabled'=>($conf->cashdesk->enabled || $conf->takepos->enabled || $conf->global->INVOICE_SHOW_POS), 'position'=>91), 'f.total_ht'=>array('label'=>"AmountHT", 'checked'=>1, 'position'=>95), 'f.total_vat'=>array('label'=>"AmountVAT", 'checked'=>0, 'position'=>100), 'f.total_localtax1'=>array('label'=>$langs->transcountry("AmountLT1", $mysoc->country_code), 'checked'=>0, 'enabled'=>($mysoc->localtax1_assuj=="1"), 'position'=>110), diff --git a/htdocs/core/modules/modFacture.class.php b/htdocs/core/modules/modFacture.class.php index fccc7f365e2..01c80265e46 100644 --- a/htdocs/core/modules/modFacture.class.php +++ b/htdocs/core/modules/modFacture.class.php @@ -232,7 +232,7 @@ class modFacture extends DolibarrModules $this->export_fields_array[$r]['f.multicurrency_total_tva'] = 'MulticurrencyAmountVAT'; $this->export_fields_array[$r]['f.multicurrency_total_ttc'] = 'MulticurrencyAmountTTC'; } - if (! empty($conf->cashdesk->enabled) || ! empty($conf->takepos->enabled) || ! empty($conf->global->INVOICE_SHOW_POS_IN_EXPORT)) + if (! empty($conf->cashdesk->enabled) || ! empty($conf->takepos->enabled) || ! empty($conf->global->INVOICE_SHOW_POS)) { $this->export_fields_array[$r]['f.module_source']='Module'; $this->export_fields_array[$r]['f.pos_source']='POSTerminal'; @@ -248,7 +248,7 @@ class modFacture extends DolibarrModules 'fd.special_code'=>'Numeric', 'fd.product_type'=>"Numeric", 'fd.fk_product'=>'List:product:label', 'p.ref'=>'Text', 'p.label'=>'Text', 'p.accountancy_code_sell'=>'Text' ); - if (! empty($conf->cashdesk->enabled) || ! empty($conf->takepos->enabled) || ! empty($conf->global->INVOICE_SHOW_POS_IN_EXPORT)) + if (! empty($conf->cashdesk->enabled) || ! empty($conf->takepos->enabled) || ! empty($conf->global->INVOICE_SHOW_POS)) { $this->export_TypeFields_array[$r]['f.module_source']='Text'; $this->export_TypeFields_array[$r]['f.pos_source']='Text'; @@ -314,7 +314,7 @@ class modFacture extends DolibarrModules $this->export_fields_array[$r]['f.multicurrency_total_tva'] = 'MulticurrencyAmountVAT'; $this->export_fields_array[$r]['f.multicurrency_total_ttc'] = 'MulticurrencyAmountTTC'; } - if (! empty($conf->cashdesk->enabled) || ! empty($conf->takepos->enabled) || ! empty($conf->global->INVOICE_SHOW_POS_IN_EXPORT)) + if (! empty($conf->cashdesk->enabled) || ! empty($conf->takepos->enabled) || ! empty($conf->global->INVOICE_SHOW_POS)) { $this->export_fields_array[$r]['f.module_source']='POSModule'; $this->export_fields_array[$r]['f.pos_source']='POSTerminal'; @@ -328,7 +328,7 @@ class modFacture extends DolibarrModules 'pj.ref'=>'Text', 'p.amount'=>'Numeric', 'pf.amount'=>'Numeric', 'p.rowid'=>'Numeric', 'p.ref'=>'Text', 'p.title'=>'Text', 'p.datep'=>'Date', 'p.num_paiement'=>'Numeric', 'p.fk_bank'=>'Numeric', 'p.note'=>'Text', 'pt.code'=>'Text', 'pt.libelle'=>'text', 'ba.ref'=>'Text' ); - if (! empty($conf->cashdesk->enabled) || ! empty($conf->takepos->enabled) || ! empty($conf->global->INVOICE_SHOW_POS_IN_EXPORT)) + if (! empty($conf->cashdesk->enabled) || ! empty($conf->takepos->enabled) || ! empty($conf->global->INVOICE_SHOW_POS)) { $this->export_fields_array[$r]['f.module_source']='POSModule'; $this->export_fields_array[$r]['f.pos_source']='POSTerminal'; From 3b56cf5e1938b4d515eed7ace261726bf5b421d3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 10 Oct 2019 15:24:26 +0200 Subject: [PATCH 276/484] Trans --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index 0f4d3c30ddf..c8b7db19236 100644 --- a/ChangeLog +++ b/ChangeLog @@ -23,6 +23,7 @@ Following changes may create regressions for some external modules, but were nec * If you have developed your own emailing target selector and used parent::add_to_target(...), you must now use parent::addToTargets(...) * Removed function dol_micro_time. Use native PHP microtime instead. * The trigger BON_PRELEVEMENT_CREATE has been renamed into DIRECT_DEBIT_ORDER_CREATE. +* The constant INVOICE_SHOW_POS_IN_EXPORT has been renamed into INVOICE_SHOW_POS. ***** ChangeLog for 10.0.2 compared to 10.0.1 ***** From 060452ecf29771079ad19684bce9295e3fc13a0c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 10 Oct 2019 15:29:27 +0200 Subject: [PATCH 277/484] Fix link --- htdocs/takepos/admin/setup.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/takepos/admin/setup.php b/htdocs/takepos/admin/setup.php index d891b88f775..6289f382273 100644 --- a/htdocs/takepos/admin/setup.php +++ b/htdocs/takepos/admin/setup.php @@ -165,14 +165,14 @@ print "\n"; // Use Takepos printing print '\n"; -if ($conf->global->TAKEPOSCONNECTOR){ +if ($conf->global->TAKEPOSCONNECTOR) { print ''; @@ -189,7 +189,7 @@ print "\n"; if ($conf->global->TAKEPOS_BAR_RESTAURANT && $conf->global->TAKEPOSCONNECTOR){ print ''; From e5cb9bc22eaa7f8e014aee1ae8bcd3b5e6b2fe2f Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Thu, 10 Oct 2019 15:56:36 +0200 Subject: [PATCH 278/484] Update api_setup.class.php --- htdocs/api/class/api_setup.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/api/class/api_setup.class.php b/htdocs/api/class/api_setup.class.php index 4ef09e5ae78..1d4bb6a8cb7 100644 --- a/htdocs/api/class/api_setup.class.php +++ b/htdocs/api/class/api_setup.class.php @@ -442,7 +442,7 @@ class Setup extends DolibarrApi $list[] = $this->db->fetch_object($result); } } else { - throw new RestException(503, 'Error when retrieving list of events types : '.$this->db->lasterror()); + throw new RestException(503, 'Error when retrieving list of contacts types : '.$this->db->lasterror()); } return $list; From 2149b155d196a826e485b0b40526a16534df685e Mon Sep 17 00:00:00 2001 From: "ro@t.com" Date: Thu, 10 Oct 2019 15:57:26 +0200 Subject: [PATCH 279/484] ADD option MAIN_DONT_KEEP_NOTE_ON_CLONING to remove note on cloning --- htdocs/comm/propal/class/propal.class.php | 6 +++++- htdocs/compta/facture/class/facture.class.php | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index e9d969e5ab8..6babe8076a8 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -1287,7 +1287,11 @@ class Propal extends CommonObject $object->datep = $now; // deprecated $object->fin_validite = $object->date + ($object->duree_validite * 24 * 3600); if (empty($conf->global->MAIN_KEEP_REF_CUSTOMER_ON_CLONING)) $object->ref_client = ''; - + if ($conf->global->MAIN_DONT_KEEP_NOTE_ON_CLONING==1) + { + $object->note_private = ''; + $object->note_public = ''; + } // Create clone $object->context['createfromclone']='createfromclone'; $result=$object->create($user); diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index 09d3351fb4d..7f5432682ab 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -1046,6 +1046,11 @@ class Facture extends CommonInvoice $object->close_code = ''; $object->close_note = ''; $object->products = $object->lines; // For backward compatibility + if ($conf->global->MAIN_DONT_KEEP_NOTE_ON_CLONING==1) + { + $object->note_private = ''; + $object->note_public = ''; + } // Loop on each line of new invoice foreach($object->lines as $i => $line) From e2113c2f3342452852e6dbcbfb1a06c27558596f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 10 Oct 2019 16:41:24 +0200 Subject: [PATCH 280/484] Fix sort lost after uploading a file --- htdocs/core/class/html.formfile.class.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php index 76eec464399..7f9ada37e7d 100644 --- a/htdocs/core/class/html.formfile.class.php +++ b/htdocs/core/class/html.formfile.class.php @@ -118,9 +118,11 @@ class FormFile if (empty($usewithoutform)) { $out .= ''; + $out .= ''; $out .= ''; $out .= ''; - $out .= ''; + $out .= ''; + $out .= ''; } $out .= '
    '.$langs->trans("NetMeasure").''; + print ''; + print $formproduct->selectMeasuringUnits("net_measure_units", "net_measure", GETPOSTISSET('net_measure_units')?GETPOST('net_measure_units', 'alpha'):(empty($conf->global->MAIN_WEIGHT_DEFAULT_UNIT)?0:$conf->global->MAIN_WEIGHT_DEFAULT_UNIT), 0, 2); + print '
    '.$langs->trans("Weight").''; print ''; print $formproduct->selectMeasuringUnits("weight_units", "weight", GETPOSTISSET('weight_units')?GETPOST('weight_units', 'alpha'):(empty($conf->global->MAIN_WEIGHT_DEFAULT_UNIT)?0:$conf->global->MAIN_WEIGHT_DEFAULT_UNIT), 0, 2); print '
    '.$langs->trans("Length").' x '.$langs->trans("Width").' x '.$langs->trans("Height").''; @@ -1071,7 +1083,7 @@ else } if (empty($conf->global->PRODUCT_DISABLE_SURFACE)) { - // Surface + // Brut Surface print '
    '.$langs->trans("Surface").''; print ''; print $formproduct->selectMeasuringUnits("surface_units", "surface", GETPOSTISSET('surface_units')?GETPOST('surface_units', 'alpha'):'0', 0, 2); @@ -1079,7 +1091,7 @@ else } if (empty($conf->global->PRODUCT_DISABLE_VOLUME)) { - // Volume + // Brut Volume print '
    '.$langs->trans("Volume").''; print ''; print $formproduct->selectMeasuringUnits("volume_units", "volume", GETPOSTISSET('volume_units')?GETPOST('volume_units', 'alpha'):'0', 0, 2); @@ -1426,15 +1438,22 @@ else $statutarray=array('-1'=>' ', '1' => $langs->trans("Finished"), '0' => $langs->trans("RowMaterial")); print $form->selectarray('finished', $statutarray, $object->finished); print '
    '.$langs->trans("NetMeasure").''; + print ' '; + print $form->selectUnits($object->net_measure_units, 'units'); + //print $formproduct->selectMeasuringUnits("net_measure_units", "weight", $object->net_measure_units, 0, 2); + print '
    '.$langs->trans("Weight").''; print ' '; print $formproduct->selectMeasuringUnits("weight_units", "weight", $object->weight_units, 0, 2); print '
    '.$langs->trans("Length").' x '.$langs->trans("Width").' x '.$langs->trans("Height").''; print 'x'; print 'x'; @@ -1444,7 +1463,7 @@ else } if (empty($conf->global->PRODUCT_DISABLE_SURFACE)) { - // Surface + // Brut Surface print '
    '.$langs->trans("Surface").''; print ' '; print $formproduct->selectMeasuringUnits("surface_units", "surface", $object->surface_units, 0, 2); @@ -1452,7 +1471,7 @@ else } if (empty($conf->global->PRODUCT_DISABLE_VOLUME)) { - // Volume + // Brut Volume print '
    '.$langs->trans("Volume").''; print ' '; print $formproduct->selectMeasuringUnits("volume_units", "volume", $object->volume_units, 0, 2); @@ -1833,8 +1852,19 @@ else print '
    '.$langs->trans("Nature").''; print $object->getLibFinished(); print '
    '.$langs->trans("NetMeasure").''; + if ($object->net_measure != '') + { + print $object->net_measure." ".measuring_units_string(0, "weight", $object->net_measure_units); + } + else + { + print ' '; + } - // Weight + // Brut Weight print '
    '.$langs->trans("Weight").''; if ($object->weight != '') { @@ -1847,7 +1877,7 @@ else print "
    '.$langs->trans("Length").' x '.$langs->trans("Width").' x '.$langs->trans("Height").''; if ($object->length != '' || $object->width != '' || $object->height != '') { @@ -1864,7 +1894,7 @@ else } if (empty($conf->global->PRODUCT_DISABLE_SURFACE)) { - // Surface + // Brut Surface print '
    '.$langs->trans("Surface").''; if ($object->surface != '') { @@ -1878,7 +1908,7 @@ else } if (empty($conf->global->PRODUCT_DISABLE_VOLUME)) { - // Volume + // Brut Volume print '
    '.$langs->trans("Volume").''; if ($object->volume != '') { From d77f7556d8f19f4f622083eebf771e75962a6acb Mon Sep 17 00:00:00 2001 From: VESSILLER Date: Wed, 9 Oct 2019 16:00:14 +0200 Subject: [PATCH 254/484] NEW add parent category id or label in import category module --- .../modules/import/import_csv.modules.php | 6 +++++- .../modules/import/import_xlsx.modules.php | 6 +++++- htdocs/core/modules/modCategorie.class.php | 20 ++++++++++++++++--- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/htdocs/core/modules/import/import_csv.modules.php b/htdocs/core/modules/import/import_csv.modules.php index de428900ba9..734f516fa78 100644 --- a/htdocs/core/modules/import/import_csv.modules.php +++ b/htdocs/core/modules/import/import_csv.modules.php @@ -459,10 +459,14 @@ class ImportCsv extends ModeleImports $error++; }*/ $param_array = array('', $newval, 0, $arrayrecord[0]['val']); // Param to fetch parent from account, in chart. + } elseif ($class == 'Categorie') { + if ($objimport->array_import_convertvalue[0][$val]['rule']=='fetchidfromcodeorlabel') { + $param_array = array('', $newval, $arrayrecord[1]['val']); + } } call_user_func_array(array($classinstance, $method), $param_array); // If not found, try the fetch from label - if (! ($classinstance->id != '') && $objimport->array_import_convertvalue[0][$val]['rule']=='fetchidfromcodeorlabel') + if (! ($classinstance->id != '') && $objimport->array_import_convertvalue[0][$val]['rule']=='fetchidfromcodeorlabel' && $class!='Categorie') { $param_array = array('', '', $newval); call_user_func_array(array($classinstance, $method), $param_array); diff --git a/htdocs/core/modules/import/import_xlsx.modules.php b/htdocs/core/modules/import/import_xlsx.modules.php index c4799ba557e..1a92062b15f 100644 --- a/htdocs/core/modules/import/import_xlsx.modules.php +++ b/htdocs/core/modules/import/import_xlsx.modules.php @@ -486,10 +486,14 @@ class ImportXlsx extends ModeleImports $error++; }*/ $param_array = array('', $newval, 0, $arrayrecord[0]['val']); // Param to fetch parent from account, in chart. + } elseif ($class == 'Categorie') { + if ($objimport->array_import_convertvalue[0][$val]['rule']=='fetchidfromcodeorlabel') { + $param_array = array('', $newval, $arrayrecord[1]['val']); + } } call_user_func_array(array($classinstance, $method), $param_array); // If not found, try the fetch from label - if (! ($classinstance->id != '') && $objimport->array_import_convertvalue[0][$val]['rule']=='fetchidfromcodeorlabel') + if (! ($classinstance->id != '') && $objimport->array_import_convertvalue[0][$val]['rule']=='fetchidfromcodeorlabel' && $class!='Categorie') { $param_array = array('', '', $newval); call_user_func_array(array($classinstance, $method), $param_array); diff --git a/htdocs/core/modules/modCategorie.class.php b/htdocs/core/modules/modCategorie.class.php index c04a4d6b346..e8a1bd218cd 100644 --- a/htdocs/core/modules/modCategorie.class.php +++ b/htdocs/core/modules/modCategorie.class.php @@ -406,15 +406,29 @@ class modCategorie extends DolibarrModules $this->import_icon[$r]=$this->picto; $this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon $this->import_tables_array[$r]=array('ca'=>MAIN_DB_PREFIX.'categorie'); - $this->import_fields_array[$r]=array('ca.label'=>"Label*",'ca.type'=>"Type*",'ca.description'=>"Description"); - + $this->import_fields_array[$r]=array( + 'ca.label'=>"Label*",'ca.type'=>"Type*",'ca.description'=>"Description", + 'ca.fk_parent' => 'Parent' + ); $this->import_regex_array[$r]=array('ca.type'=>'^[0|1|2|3]'); + $this->import_convertvalue_array[$r] = array( + 'ca.fk_parent' => array( + 'rule' => 'fetchidfromcodeorlabel', + 'classfile' => '/categories/class/categorie.class.php', + 'class' => 'Categorie', + 'method' => 'fetch', + 'element' => 'category' + ) + ); $typeexample=""; if ($conf->product->enabled) { $typeexample.=($typeexample?"/":"")."0=Product"; } if ($conf->fournisseur->enabled) { $typeexample.=($typeexample?"/":"")."1=Supplier"; } if ($conf->societe->enabled) { $typeexample.=($typeexample?"/":"")."2=Customer-Prospect"; } if ($conf->adherent->enabled) { $typeexample.=($typeexample?"/":"")."3=Member"; } - $this->import_examplevalues_array[$r]=array('ca.label'=>"Supplier Category",'ca.type'=>$typeexample,'ca.description'=>"Imported category"); + $this->import_examplevalues_array[$r] = array( + 'ca.label'=>"Supplier Category",'ca.type'=>$typeexample,'ca.description'=>"Imported category", + 'ca.fk_parent' => '0' + ); if (! empty($conf->product->enabled)) { From 04dc9e957f1dfc1f049b97d8fc5a89ebd1f99841 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 9 Oct 2019 16:33:57 +0200 Subject: [PATCH 255/484] Update new LDCompta Export --- .../class/accountancyexport.class.php | 202 +++++++++++------- 1 file changed, 121 insertions(+), 81 deletions(-) diff --git a/htdocs/accountancy/class/accountancyexport.class.php b/htdocs/accountancy/class/accountancyexport.class.php index dac238f97d6..f90d5797d09 100644 --- a/htdocs/accountancy/class/accountancyexport.class.php +++ b/htdocs/accountancy/class/accountancyexport.class.php @@ -926,91 +926,131 @@ class AccountancyExport * * @return void */ - public function exportLDCompta($objectLines) - { + public function exportLDCompta($objectLines) + { - $separator = ';'; - $end_line = "\n"; + $separator = ';'; + $end_line = "\r\n"; - foreach ($objectLines as $line) { + foreach ($objectLines as $line) { - $date_document = dol_print_date($line->doc_date, '%Y%m%d'); - $date_creation = dol_print_date($line->date_creation, '%Y%m%d'); + $date_document = dol_print_date($line->doc_date, '%Y%m%d'); + $date_creation = dol_print_date($line->date_creation, '%Y%m%d'); - // TYPE - $type_enregistrement = 'E'; // For write movement - print $type_enregistrement . $separator; - // JNAL - print substr($line->code_journal, 0, 2) . $separator; - // NECR - print $line->id . $separator; - // NPIE - print $line->piece_num . $separator; - // DATP - print $date_document . $separator; - // LIBE - print $line->label_operation . $separator; - // DATH - print $line->date_lim_reglement . $separator; - // CNPI - if ($line->doc_type == 'supplier_invoice') { - if ($line->montant < 0) { - $nature_piece = 'AF'; - } else { - $nature_piece = 'FF'; - } - } elseif ($line->doc_type == 'customer_invoice') { - if ($line->montant < 0) { - $nature_piece = 'AC'; - } else { - $nature_piece = 'FC'; - } - } else { - $nature_piece = ''; - } - print $nature_piece . $separator; - // RACI - /* - if (! empty($line->subledger_account)) { - if ($line->doc_type == 'supplier_invoice') { - $racine_subledger_account = '40'; - } elseif ($line->doc_type == 'customer_invoice') { - $racine_subledger_account = '41'; - } else { - $nature_piece = ''; - } - print $racine_subledger_account . $separator; - } else { - print $separator; - } - */ - // MONT - print price(abs($line->montant)) . $separator; - // CODC - print $line->sens . $separator; - // CPTG - print length_accountg($line->numero_compte) . $separator; - // DATE - print $date_creation . $separator; - // CLET - print $line->lettering_code . $separator; - // DATL - print $line->date_lettering . $separator; - // CPTA - if (! empty($line->subledger_account)) { - print length_accounta($line->subledger_account) . $separator; - } - // CNAT - if ($line->doc_type == 'supplier_invoice' && ! empty($line->subledger_account)) { - print 'F'; - } elseif ($line->doc_type == 'customer_invoice' && ! empty($line->subledger_account)) { - print 'C'; - } else { - print ''; - } - print $end_line; - } - } + // TYPE + $type_enregistrement = 'E'; // For write movement + print $type_enregistrement . $separator; + // JNAL + print substr($line->code_journal, 0, 2) . $separator; + // NECR + print $line->id . $separator; + // NPIE + print $line->piece_num . $separator; + // DATP + print $date_document . $separator; + // LIBE + print $line->label_operation . $separator; + // DATH + print $line->date_lim_reglement . $separator; + // CNPI + if ($line->doc_type == 'supplier_invoice') { + if ($line->montant < 0) { + $nature_piece = 'AF'; + } else { + $nature_piece = 'FF'; + } + } elseif ($line->doc_type == 'customer_invoice') { + if ($line->montant < 0) { + $nature_piece = 'AC'; + } else { + $nature_piece = 'FC'; + } + } else { + $nature_piece = ''; + } + print $nature_piece . $separator; + // RACI + /* + if (! empty($line->subledger_account)) { + if ($line->doc_type == 'supplier_invoice') { + $racine_subledger_account = '40'; + } elseif ($line->doc_type == 'customer_invoice') { + $racine_subledger_account = '41'; + } else { + $nature_piece = ''; + } + print $racine_subledger_account . $separator; + } else { + print $separator; + } + */ + print $separator; // deprecated CPTG & CPTA use instead + // MONT + print price(abs($line->montant), 0, '', 1, 2) . $separator; + // CODC + print $line->sens . $separator; + // CPTG + print length_accountg($line->numero_compte) . $separator; + // DATE + print $date_creation . $separator; + // CLET + print $line->lettering_code . $separator; + // DATL + print $line->date_lettering . $separator; + // CPTA + if (! empty($line->subledger_account)) { + print length_accounta($line->subledger_account) . $separator; + } else { + print $separator; + } + // CNAT + if ($line->doc_type == 'supplier_invoice' && ! empty($line->subledger_account)) { + print 'F' . $separator; + } elseif ($line->doc_type == 'customer_invoice' && ! empty($line->subledger_account)) { + print 'C' . $separator; + } else { + print $separator; + } + // SECT + print $separator; + // CTRE + print $separator; + // NORL + print $separator; + // DATV + print $separator; + // REFD + print $line->doc_ref . $separator; + // CODH + print $separator; + // NSEQ + print $separator; + // MTDV + print '0' . $separator; + // CODV + print $separator; + // TXDV + print '0' . $separator; + // MOPM + print $separator; + // BONP + print $separator; + // BQAF + print $separator; + // ECES + print $separator; + // TXTL + print $separator; + // ECRM + print $separator; + // DATK + print $separator; + // HEUK + print $separator; + + print $end_line; + } + } /** * Export format : Charlemagne From db651a607d07c856e65ef9906828c97b0cc13e85 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 9 Oct 2019 17:33:46 +0200 Subject: [PATCH 256/484] Use fontawesome for img_warning --- htdocs/core/boxes/modules_boxes.php | 5 +++-- htdocs/core/lib/functions.lib.php | 14 +++++++++----- htdocs/theme/eldy/global.inc.php | 3 ++- htdocs/theme/eldy/theme_vars.inc.php | 2 +- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/htdocs/core/boxes/modules_boxes.php b/htdocs/core/boxes/modules_boxes.php index d445c2f27c0..8cc8de94295 100644 --- a/htdocs/core/boxes/modules_boxes.php +++ b/htdocs/core/boxes/modules_boxes.php @@ -301,6 +301,7 @@ class ModeleBoxes // Can't be abtract as it is instantiated to build "empty" box $textwithnotags=preg_replace('/<([^>]+)>/i', '', $text); $text2=isset($contents[$i][$j]['text2'])?$contents[$i][$j]['text2']:''; $text2withnotags=preg_replace('/<([^>]+)>/i', '', $text2); + $textnoformat=isset($contents[$i][$j]['textnoformat'])?$contents[$i][$j]['textnoformat']:''; //$out.= "xxx $textwithnotags y"; if (empty($contents[$i][$j]['tooltip'])) $contents[$i][$j]['tooltip']=""; @@ -332,13 +333,13 @@ class ModeleBoxes // Can't be abtract as it is instantiated to build "empty" box if (! empty($contents[$i][$j]['maxlength'])) $maxlength=$contents[$i][$j]['maxlength']; if ($maxlength) $textwithnotags=dol_trunc($textwithnotags, $maxlength); - if (preg_match('/^ 'address-book', 'setup'=>'cog', 'companies'=>'building', 'products'=>'cube', 'commercial'=>'suitcase', 'invoicing'=>'coins', 'accountancy'=>'money-check-alt', 'project'=>'sitemap', 'hrm'=>'umbrella-beach', 'members'=>'users', 'ticket'=>'ticket-alt', 'generic'=>'folder-open', 'switch_off'=>'toggle-off', 'switch_on'=>'toggle-on', 'bookmark'=>'star', 'bank'=>'university', 'close_title'=>'window-close', 'delete'=>'trash', 'edit'=>'pencil', 'filter'=>'filter', 'split'=>'code-fork', 'object_list'=>'list-alt','object_calendar'=>'calendar-alt', 'object_calendarweek'=>'calendar-week', 'object_calendarmonth'=>'calendar-alt', 'object_calendarday'=>'calendar-day', 'object_calendarperuser'=>'table', + 'warning'=>'exclamation-triangle', 'title_setup'=>'tools', 'title_accountancy'=>'money-check-alt', 'title_bank'=>'university', 'title_hrm'=>'umbrella-beach', 'title_agenda'=>'calendar-alt' ); - - if ($pictowithouttext == 'switch_off') { + if ($pictowithouttext == 'warning') { + $facolor = ''; + $fakey = 'fa-'.$arrayconvpictotofa[$pictowithouttext]; + $marginleftonlyshort = 0; + } elseif ($pictowithouttext == 'switch_off') { $facolor = '#999'; $fasize = '2em'; $fakey = 'fa-'.$arrayconvpictotofa[$pictowithouttext]; @@ -3174,7 +3178,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ $moreatt=trim($moreatt); $enabledisablehtml = ''; + $enabledisablehtml .= ($morecss ? ' ' . $morecss : '') . '" style="' . ($fasize ? ('font-size: ' . $fasize . ';') : '') . ($facolor ? (' color: ' . $facolor . ';') : '') . ($morestyle ? ' ' . $morestyle : '') . '"' . (($notitle || empty($titlealt)) ? '' : ' title="' . dol_escape_htmltag($titlealt) . '"') . ($moreatt ? ' ' . $moreatt : '') . '>'; if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { $enabledisablehtml.= $titlealt; } @@ -3510,7 +3514,7 @@ function img_warning($titlealt = 'default', $moreatt = '', $morecss = 'pictowarn if ($titlealt == 'default') $titlealt = $langs->trans('Warning'); //return '
    '.img_picto($titlealt, 'warning_white.png', 'class="pictowarning valignmiddle"'.($moreatt ? ($moreatt == '1' ? ' style="float: right"' : ' '.$moreatt): '')).'
    '; - return img_picto($titlealt, 'warning.png', 'class="valignmiddle'.($morecss?' '.$morecss:'').'"'.($moreatt ? ($moreatt == '1' ? ' style="float: right"' : ' '.$moreatt): '')); + return img_picto($titlealt, 'warning.png', 'class="'.$morecss.'"'.($moreatt ? ($moreatt == '1' ? ' style="float: right"' : ' '.$moreatt): '')); } /** diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index fe1d1f675e5..fd7a5670f8e 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -1349,7 +1349,8 @@ div.nopadding { padding-: 3px; } .pictowarning { - vertical-align: text-bottom; + /* vertical-align: text-bottom; */ + color: #9f4705; } .pictomodule { width: 14px; diff --git a/htdocs/theme/eldy/theme_vars.inc.php b/htdocs/theme/eldy/theme_vars.inc.php index 32fbeb37c1c..91b50b2a249 100644 --- a/htdocs/theme/eldy/theme_vars.inc.php +++ b/htdocs/theme/eldy/theme_vars.inc.php @@ -70,7 +70,7 @@ $colorbackbody='255,255,255'; $colortexttitlenotab='110,80,20'; $colortexttitle='0,0,0'; $colortext='0,0,0'; -$colortextlink='10, 10, 100'; +$colortextlink='10, 20, 120'; $fontsize='0.86em'; $fontsizesmaller='0.75em'; $topMenuFontSize='1.2em'; From 072a0a26d6014fbdee1a8102f5617c789bf3c819 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 9 Oct 2019 18:07:00 +0200 Subject: [PATCH 257/484] Use a font awesome icon to show "shippable" flag on orders. --- htdocs/commande/list.php | 16 +++------------- htdocs/core/lib/functions.lib.php | 13 +++++++------ htdocs/fourn/commande/list.php | 19 ++++++------------- htdocs/theme/eldy/global.inc.php | 1 + htdocs/theme/md/style.css.php | 1 + 5 files changed, 18 insertions(+), 32 deletions(-) diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php index 39844ce390f..115bc46813a 100644 --- a/htdocs/commande/list.php +++ b/htdocs/commande/list.php @@ -814,10 +814,7 @@ if ($resql) $generic_commande->lines=array(); $generic_commande->getLinesArray(); - print ''; - print ''; // Show shippable Icon (create subloop, so may be slow) if ($conf->stock->enabled) @@ -903,16 +900,15 @@ if ($resql) } } } - if ($notshippable==0) { - $text_icon = img_picto('', 'object_sending'); + if ($notshippable == 0) { + $text_icon = img_picto('', 'dolly', '', false, 0, 0, '', 'green paddingleft'); $text_info = $langs->trans('Shippable').'
    '.$text_info; } else { - $text_icon = img_picto('', 'error'); + $text_icon = img_picto('', 'dolly', '', false, 0, 0, '', 'error paddingleft'); $text_info = $langs->trans('NonShippable').'
    '.$text_info; } } - print ''; } // Warning late icon and note - print ''; - print ''; - print '
    '; print $generic_commande->getNomUrl(1, ($viewstatut != 2?0:$obj->fk_statut), 0, 0, 0, 1); - print ''; if ($nbprod) { print $form->textwithtooltip('', $text_info, 2, 1, $text_icon, '', 2); @@ -920,11 +916,9 @@ if ($resql) if ($warning) { // Always false in default mode print $form->textwithtooltip('', $langs->trans('NotEnoughForAllOrders').'
    '.$text_warning, 2, 1, img_picto('', 'error'), '', 2); } - print '
    '; if ($generic_commande->hasDelay()) { print img_picto($langs->trans("Late").' : '.$generic_commande->showDelay(), "warning"); } @@ -934,15 +928,11 @@ if ($resql) print ''.img_picto($langs->trans("ViewPrivateNote"), 'object_generic').''; print ''; } - print ''; $filename=dol_sanitizeFileName($obj->ref); $filedir=$conf->commande->multidir_output[$conf->entity] . '/' . dol_sanitizeFileName($obj->ref); $urlsource=$_SERVER['PHP_SELF'].'?id='.$obj->rowid; print $formfile->getDocumentsLink($generic_commande->element, $filename, $filedir); - print '
    '; print '
    '; - print ''; // Picto + Ref - print ''; - // Warning - //print ''; // Other picto tool - print '
    '; print $objectstatic->getNomUrl(1); - print ''; - //print ''; $filename=dol_sanitizeFileName($obj->ref); $filedir=$conf->fournisseur->commande->dir_output.'/' . dol_sanitizeFileName($obj->ref); print $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir); - print '
    '; print '
    "; + print ''; if ($userstatic->id) print $userstatic->getNomUrl(1); - else print " "; print "'; + print ''; $thirdpartytmp->id = $obj->socid; $thirdpartytmp->name = $obj->name; + $thirdpartytmp->email = $obj->email; print $thirdpartytmp->getNomUrl(1, 'supplier'); print 'gxQ!fO_>&2z7}*L&&66U^h&fZ9TiPao0FMnu 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%0AbGpVXTuq8}h|B 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 PIRcd9p=DH1D6jw71(!Q7 literal 0 HcmV?d00001 diff --git a/htdocs/install/doctemplates/adherent/1/photos/thumbs/person5_mini.jpeg b/htdocs/install/doctemplates/adherent/1/photos/thumbs/person5_mini.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..9cc8db56f702ab69f14c33a8cd5e08427d93de13 GIT binary patch literal 2103 zcmbW!X*Ao3769;nBob1C)E-MhN@FVxYH2ZwC^ZZj`!duLR7(&dB&L=kZ5dINXSB5x zt)=#*rL9^j)pk_uR4a;dXw*_m$F192JW;MjL3ud6R%S0EO^F`5{m!KNJRo3cy9-a6v)1xUh(jsFb+0w3N7{BvM`( zg_Om}NlKzM&={5Ds%ok-C{1lmthO>%75jY&2nK_}1>jz1;fe-J62?)ZE91b*z0(>Aam=6Nx=Z8QJr)h_M z0D|B@s(8{2D(2t|QzD7uu4LU6z?`jnCgC{9J*IOZB2f@7DJ3m~R8~2TRaMi~JEd=6 zXk>0-iMKjuZA19Q$=Su#&E3yGAdnao91A#KkMxfdw67YY<%LwENAZH{KDd=rL`~X8=G5S zw|92GyFdW=pRB)R|KUO$y7(XvFa-A91>%c2EHDDXuXqxA)XV|qOA=GUT@esJn{~JD znIJ~Tkt=Z_Vh}EQO!tHG+IQMNWd9v3@&A(j1^c&a0uTa&4xa}`0H(kcjN!?)Vb^?c z`dbDx1bDe-(h+voRmNYj%&*y?PdT%UGLzo)sKX{;eNIy&wVaDLhE;y8IO8`fNT$(l zbk19bsY!f`#Z2*ll$cJ@ZTjfQ+SJm;t9?gY*%fym7zO=IK6Qri=@iRlpSb7tfEtpV z?>6B&dPdvuSuK9l1nKGSC8KFV$!{f$esa}!{^0@=m$pX<2C(;#yWR<}UB5Ustbe$^;U%3uSBypA( zhQ1w7(6vY%Z$wOzz`G+~graJsILAJtQsSGAsk0t+^qrwoN_$%jv{HeJT(e2H@PY)-CDVjRkRL#eL%GrTB4 zZC7X3KD9dDJVb8tvHruPM5}jp988T-Ch7C9dR{+nwbcK}nYU6)fG?Mrkcn;cv#N21 zUZK>?E@Qub_NwmwID_)7TOm1NGyPjd4dFvJYWsZXZ^uowIg3HngMFHBiml`?Uf*sC z9Q77%^M^Fr*3*IY-N5#buTA#oWckg;m@Tmh&mRVDQ)CzMs?6A#E-$$y6VU>LK;}DQ zerM3@p)vBx+xC6ar?mkZ%zjcu#hEOP9q;M-$b!tSkv}Ppt8o^2QG|0tcfvlvwiDnJ z?083}oqk(JmlA||rSP_Wd3EfjKfA!H?JOdyL?uc+uwgN}xr6m(`c*{C0fc>7%a5tP zVh1HKxdZsMK6y&-Y0yaf=_jJWq_T?h+nh_c6n@pPe<&X^k~bTR&Z^eqpFE|HU%0Wn zyt!F5yW{q_a$Q|wV_IRsuEB||RkZ4JGS5~nj#F8CyHhim+gGbT-c`Z35>Yb4*p+f& zJ8@K0WXBY)K1THxq&%6d+1OxMYsKJKv}Bz~g$i@)1y#m7s~Pd`jFf!VwlFuCuGsv@ zf2OgXvm{VlP0_MJW;_v6OiKp^`WTDw0B^>Ih-$>9@fwwIb4W4|4KESXac#-CnC9*9 zrIs{0MYkCCvguuA%};Aw_K|dquc^0e%`m_~hsplQmT_K^SPNjVWSSL;9eJt~tD7U=W3C@kK2EIOO^n!2IpeC?(an`~s7(yp6JjhmjvBT8942lLcHujEJ%_py6! z7Nk1>cv8;6Yf?dn9j+KFN7q9ag4U7PswL}QeJi?K%2l=Ya)J+o#u~WRcBSk3{?Z&d zNi(A(I=4^3429zXVu;+(1JmD&8JviS;i4@fUOE6Cm6KZ)<*hj)E9!A4XO~ZWj&{-c zrQM^>9OCdjoFNa$_2FWR>x)u_Ru+dn4w;yC&QV~ry-qOl$ze~#{Uki Cb+cyx literal 0 HcmV?d00001 diff --git a/htdocs/install/doctemplates/adherent/1/photos/thumbs/person5_small.jpeg b/htdocs/install/doctemplates/adherent/1/photos/thumbs/person5_small.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..fce9527b378ae9810693cc162b15a2c00a93af53 GIT binary patch literal 5036 zcmbW(cQhPKy8!TAtM`pgvMYM;D~KA=OLT%rbgL|@msbfvi0oP{Q9^Xf;+5#qmPCjk zdRwA}MWRISpZDH-zI)F7>)!j!nZM?lIrBSn=9#&iyqpIx8|oV90)Rju;L%kBTwVZf zYg_1OS>3Zx;q`Qr^bTPw&^^k^^Xfk7IxJ^U~-C^vXs}f%&DA_EPQg0safw} ziW>+t{PGstY%YOAwCn;33xYfU(EdaAzk|j9zhwW0{kLlxKo0_59Uce_&;St0M-pX_ zru~|91}IT^qdb6_s6cSaEq%?0mRgTWB?2e{F4T7n;ok+AZ%oMjsUfL(`NAC=7C*2P zDl2oYaS5sNQEqHT*9^e&H*f~6qvgl>ShUi|s+-tPKfK$89FqDd213!6b}D6mW*xJ! zFXAJ5tB7N|U2fU;TL4ICt&J>BiBbK@I8L9xg_hcezu*90skf`d>yZ~mnS{3hwnZ{o z=C$~(YymbI)?){EtN4w#!-b2lTlcvJ`D)i>Kirh*@#f?Y>|8e^4-yd{+1$N|t}(u^ zr6kQx`f-t4$l&SVnBR&;b(=l`?uy=MU8$dOq`q)b2`X6r8$VU8KlJ@fE27jn2px=@M`rnb0*&oQ9MrfAxf0essQ2 z(DehWz<)(~gqQJJJJ9v``<1q~_zku8z&3&9P4!KnrtN~Iep zHM`7n@j>@c31Dx~cdI-dJJN5#Q`03(M(oqE4Jec2g8>=~OEskJ8F(S3p3FcjL`}cm zb10Zv@|AguFb>vd^R6+4^t~%c3J&2}WMaJMb&ERR`{bZ5-2QJ36~z7*`;#E^A(swa zi&FR!X1q1ppCF6x(X=*T{QfZ*(X~^R81_b?kX_m;!ulOPDh|Vy{4jC|rDRt94bOb& zOgKE5Fpnr^P~}7{+(zpX&NjH$Cl&nTzFMt%DH9GL`$Jqo*Ri6l@_d&7Bhd?tJ1>SQ zSZVO*T-nH0_M#$ci7e#eCc*haeRlm;hR?$}ehxkX}QKTKoyd_=Cn2+{m6%#{94=j-oy6H z3I5`<>e7lNYYxj|-ysuM9WOWAN?JpEO%eQg%o)7h_wc%hf@D8jGT;NdR2~zfG4K-L zz$d&gabn@Bhw{$x*gSDaVKfkYvo%*6E^MgszM3xHI>yybzKsB>cxOAmpW4)zv9uzI z?tD`tWv3YY9j!2|W_xF3sRboq4b=Q4j&FIk+$|H1el_;d~!Bz_kP9*4CEkCJ#l{ zcxAt>JZA+)(1toZ#DBrx(T43;g`zvd*FE*I-$l%-HzB2-g1^%QrPAHAnBJW5-A~MKHdM8j@>Xm>8r`?d1YnwpPvZ(B*UESjX#{JD7)c8CGh$6x` z88*L~P!uCh@~3cYYA*8e@nOmj;B$-*;6UvUrhJgZ%se^Tj8tp)MV=Hra~`p}`292H#r2q`e7~iR zzBXCPTyfDgf^y{!UvSF!pijmRDXW8erlZ;g7I%sEmn9y<+U>#ShfIgb`}I!T{Y$)Z zlZI~tW&5q(b~KNcWK0KZD2WaA$mpw&f#2TvB2a-J%!1w4YtErpw*gLkkC(S%J;SRh z*PHBYCC7Yr{s}Oe%BYHc2NuAcDMJ$@o&^xY>hEM74=vkP_VV5N@|8S<5}!QBw_49; z7hA)6#3c6qxK_d~ck6`&LS5H<_eOzy~&Cter zyNtZie1gC(6>+;x!OG$ub;$Vt6@1PRCCs)`#OiYZvc~*u(i8+#lsHU)=(&y$a#fTG*7)gEcn_-iQY2S>Xys(^!>t zx9#(49BRoJqZazP&BSYplx{$iswU~uJm2t$Sy3&~Ju-BXWL8xky2rnrR^(mKS*Py^ zOxOAxGX1VHhw5tpGVj}vUuo0WlE^DSz9!_yKueRxk0R;ezx{EebrCOr&%Vr!K#Y}( znT}pPGWPvNi+A%>hrS?-IhTTWnR69?Myz6fA5BE#NGV9>kVXS84gjijZ3Z^@<0z)j z!u?{Xr5&5@XPqGziq`b8|LcQSC*EVCU0&y?w9MPL!RY#Uh6bn~1V8gB^-SH={FSOj z+J9O|F|y^HD%6azk3gTm5egL4E=3K7Vk!2Ob01NZ&P7hk&r)x3QKs4_=)9~`RoLC)vtGz-~ZXC}(w z5VGrDb(Vw}Uaw$mQ;^hTFM)G#WKD;rgN8ud2P^1(STmjFB8^d-nIcUm#nO6n;3O?P z6VGIHi&i@@u$MkRK$+{t2ML==&dLJ0`LtBPam$@%Maa#e+@Y*Co7*3zg~?+$>&qK? zA>_&{t^Ki`>^UXF;m>qnxjc%l^pr{(Sbs0uuhkrC;+ZVp_XCd+Xw8<%oj8KQ7xjH3 z%eExW9#7hLD&xk}jR6j-8O(qirxUXNxaaq*?$^C{fDL>`q(#{Zt(N_2x~&EQ36esV z{pL@tXOjPH(F8sIk@rk1Tc-N%v-r1=QE#Ad$26BAVwDwEEDMv^lthESmYvw7h3**j znD<9)w!XjnG`Jb+{V?B4m04w_N%i(3GR$Z9y1vq*NZgh+6;Y7xS4a-cb@Q`0&*=t) zFr)q>rQi25&Wyfq!nDm=&*y+&T%tw|W=SxJHSYPMQB%@Xe4O3ct7xBIn1k-sC=NYY%3+~Ht>t?Fi*rp?elVykWz}S zW8P4aNz#VNsj`5$w6&VJ#RFNPMh5WA$}4iTxg(_9xgH)l_Lg})O=4v!NaXll<(ebr z5N+yLLJVs^Ox6f!=!^1IUrv?N+~YqPFMJ7Klm;svduDV_buhh;?Q9C(VmiVcD1>F# zm9t0$p*=JDQdi$2`>D-q%P;!3SjZLSD@vv{qH+a52njabW8X_Z&X`x;6! z*R`q)*(Lj@jJS{2;Tnxir&Gk$Z|U==o@e6Y7yKLirbCsJT?6S6@S};8>CORCs=n)k zR<9{#h?AUcMk=hyX!QAA#a9Xmf@rfQSG^JSF$s`hTAJL{sxWlve$uc$KNhPcL9PB{ zm5l_Y{pGais?eiagTx9%uc&EA#j324kiToxgodGfys0u&-eU7)sUBh1nONuHjSH!6 z&y4i1ieTQ?QI4M0`*Fw6<;W4ClH6-v)5?_ANep)v26?zGs@8f9=!y-wMQgdu9z@sjrt7-13a;37*zF%?L!Axc)QwstyY+UlYi8DCK{rDY~{;c=jMA1 zsZ+sDI=v zlx{iv}dIXU^cOtVokDlAI=Wz*o@jCEVBg0tMUbGRTeMLy{$g|)?F z=tY6NEZq+fbji`E(?ygYk+%Aisy6Hgi*fUX$oHiuP)S{R6wOtcx`Pid>H@1v)h;oJ zIARB>AWbudp$6)e3fmbqG-JtAvoV#@#X3?od{fnk3>R<_G*}*TZ=NAaH>a|zV)C<} zZ-;9duyB<)@$xU(CdrT})gyznI1$i|tN-eCTb%H>rV%#R-hw(IuM#+49N8zgA!7`C zu-du~#-X@6PAZ%%=dtFqsCOiRv4AfPI8gA)<5UxX=i}b0vRrHr&)MSFyYU`Oo zC8QN~zs9V}#1Ast{eEmm<)pbh!Bp8N{&9pTuR7fFf`B&OP5qhmt^&VSPiqGkQ^=lq|Leer z=jllfIqj5*E)YUojw;WesJ-RQOf6CLjx9?5mdwF&?E zvSF{7f$)$#15y3C1Z<3Lu}@1dPfEN>L9EQlF%cav0hU&hUvgMcL{FjS_(-9sDR+gc zw!_%$M8T1{FLr3Nw1&jTvz!`I(MbEuqoiqJ0%#XUQA6zY0}(AIY}z5u%sNaJ!(O5h3elK`46^eZU#PWA$pLlvpR zHfFM`IJMU*kj{7U5Q^|TuK%dV# Zt0=b_tx{R@SKW8we+ literal 0 HcmV?d00001 diff --git a/htdocs/install/doctemplates/adherent/2/photos/pierrecurie.jpg b/htdocs/install/doctemplates/adherent/2/photos/pierrecurie.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8ea6696ba455ccf12772436bfeecb8c699bd1596 GIT binary patch literal 5960 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 B$e92D literal 0 HcmV?d00001 diff --git a/htdocs/install/doctemplates/adherent/2/photos/thumbs/pierrecurie_mini.jpg b/htdocs/install/doctemplates/adherent/2/photos/thumbs/pierrecurie_mini.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fcb7cbb0f7402b7bf880e6c0d6f34cd5ca1be5fc GIT binary patch literal 1940 zcmbW!c|6pM769e)+W z9la)QB}8^^at(1QC9)TqEYl;8_ul8e&*%Mh?>pyn{yOJ#KIi*6JEJ@A0WmvkTWbIU zfdGEH3G93aOis91nY%f<7~{{-wa!Kap20JThjs9Tn5f`$XYjUmB)pxI6$#HY)KSyK zGh+NhgQMf{$MJ?bsGV`(1b~3S5pWm+0Y@N_2qBah3MDLz!Wy8ODLtVfGX5k_I9q;WDThg1n_>iPypjv5*n zpRlyDCfV59xw@Tl_we-c4xk5~J`)stHYz%Xc|JBS{?g^twDc=iGuSz~H}Y=Y`dj{; zvb*>0mseC)aUa#y|NQvL(}ovq?H!$6-95d7yrJROBcs2KO@5e~{x~x`H@~p@h5vPJ zePdJbZO;V(z<;xTm;H|mz3YO)U?2>+=Yl}b?-q!L!G9nk#Lb7scAp2L0aHM5m8Plg_W1Zh z5VG$zr_%_A0(dJISYyjqLiI;m zcl`N*;g&7PLv7B2cePw~I5HcpRNbABgi+{kE*bQ*;W)8?uTa*ptafjO^srBXM}OvW z`e)QF`%^^&MvzSm;p)wEBFf`lL43#R-U6efIp5-{sAAG|$Xv46p&~_{#`+AW1nwp3 z`Rd>?a?Le{e?Z8-Qo}$hW35!QsJ?^mZJpPvA^T*LO&F>OPio5IWz3dmX%zCQ<*Opt z?@G~$c!Pe2MP3A}EtSR!jirO;f1y z4Fh%0E>;Q!)-`!*Ykf>3_l{qLJ6cFH^4Fd>bslBB^QTC;)qG!6tTn}?E&txDD;USRFz&>Y zSf1&`0?DEI#;laQ_|RbkOa6_iy3=oPp5kph)o%kZ>QSFlgUWgR{sg)p<4Bw;;KA;B zN~g!D_ePvb6M8@!);zSbmaCzMBOcyf9Ks`KW_bovU%L5ZM6*aK}&~FFO zC4i-yU`)kavG(J^u<7%UhQU4tNHCE^|6Q;YY4)MHfIq&(wZ%~BeZ_CLuf>vH6e#Tg z`y^bSoz(LVuE;1GE+lTlnax_m%UU_zbp<`{x9SQ;80f6Vtqb71nM|?f2%fvbGp~Ht zdf>KR;%Yh!znIl0*%zDa#I{eKSjy8X?NH2W6s@Q=?O1pAp?Z;nE04{5!o7Cn9xTkh zZuGV1)w$tU^G6?f`Sz^i3jAEWJj3MQ4}d=sC~w~^7wX9}ueUG@FL#+F%O|VzFB`d1 zdn&!mO7?3T>>JMcr76B0Je_ZQC6a9u2w*NnJ%8~L9C#rWALOkSSQ-dVam8i##jx8S)Z{f7imXP}p>MaB@kE;ywM; z@SwQx?Diz(UDkt|5^_p{z3rNsjBAMLXn^iy6g#qsTe<@jdi=ufIJUl8mB>Mlc^2+Z z3OU=?VcdB$AgX*mK6g=aQFRP=fznQAyos4!(}yfIY@~b+Y|Q)+5;yTiL-9^6)}X6b zPjJDg>PRtmFq-x)t!f?x4Wr+BEAP z#t9aAlG}_hgr&*>&?<^eC5s!LQ!90+gtObqAD+4WfKu@3^m;VsE?UJRzITRv5_6Z~p{iHchYq literal 0 HcmV?d00001 diff --git a/htdocs/install/doctemplates/adherent/2/photos/thumbs/pierrecurie_small.jpg b/htdocs/install/doctemplates/adherent/2/photos/thumbs/pierrecurie_small.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3595b041ca21eae281035c52279a5f62a7d53c74 GIT binary patch literal 4886 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 QUGM50QhPpC4zmB{U%6xOt^fc4 literal 0 HcmV?d00001 diff --git a/htdocs/install/doctemplates/adherent/3/photos/person9.jpeg b/htdocs/install/doctemplates/adherent/3/photos/person9.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..7aff8dccefe7e0ac8716ee66b25cc605bfc36732 GIT binary patch literal 1088931 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 r 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

    rk+XsD>bG_?bTt1hQ|}X2jI_x6RE#u-!bA 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

    getNomUrl(1); ?>getNomUrl(1); ?> ref_client; ?> date, 'day'); ?> $objectlink) trans("CustomerOrder"); ?> global->MAIN_ENABLE_IMPORT_LINKED_OBJECT_LINES) print ' getNomUrl(1); ?>getNomUrl(1); ?> ref_client; ?> date, 'day'); ?> $objectlink) break; } ?>getNomUrl(1); ?>getNomUrl(1); ?> ref_client; ?> date, 'day'); ?> $objectlink) ?>
    trans("RepeatableInvoice"); ?>getNomUrl(1); ?>getNomUrl(1); ?> date_when, 'day'); ?> $objectlink) trans("Reception"); ?> global->MAIN_ENABLE_IMPORT_LINKED_OBJECT_LINES) print ' getNomUrl(1); ?>getNomUrl(1); ?> date_delivery, 'day'); ?> $objectlink) trans("Ticket"); ?> global->MAIN_ENABLE_IMPORT_LINKED_OBJECT_LINES) print ' getNomUrl(1); ?>getNomUrl(1); ?> ref_client; ?> datec, 'day'); ?> ' . $line->label_operation . '' . $line->label_operation . '
    (' . length_accounta($line->subledger_account) . ')
    ' . ($line->debit ? price($line->debit) :''). '' . ($line->credit ? price($line->credit) : '') . '' . ($line->debit ? price($line->debit) :''). '' . ($line->credit ? price($line->credit) : '') . '
    '.$langs->trans("SubTotal").':'.price($sous_total_debit).''.price($sous_total_credit).'  '; +print price($sous_total_debit - $sous_total_credit); +print '
    '.$langs->trans("Total").':'; +print ''; print price($total_debit); print ''; +print ''; print price($total_credit); print ''; + print ''; $form->select_types_paiements($search_paymentmode, 'search_paymentmode', '', 0, 1, 1, 10); print ''; + print ''; $form->select_conditions_paiements($search_paymentterms, 'search_paymentterms', -1, 1, 1); print ''; + print ''; + print ''; + print ''; + print ''; - if ($contextpage == 'poslist') - { - print $thirdpartystatic->name; - } - else - { - print $thirdpartystatic->getNomUrl(1, 'customer'); - } + if ($contextpage == 'poslist') + { + print $thirdpartystatic->name; + } + else + { + print $thirdpartystatic->getNomUrl(1, 'customer'); + } print ''; + print $obj->module_source; + print ''; + print $obj->pos_source; + print '
    '; -print $langs->trans("DolibarrReceiptPrinter").' ('.$langs->trans("TakeposConnectorNecesary").')'; +print $langs->trans("DolibarrReceiptPrinter").' ('.$langs->trans("TakeposConnectorNecesary").')'; print ''; print $form->selectyesno("TAKEPOSCONNECTOR", $conf->global->TAKEPOSCONNECTOR, 1); print "
    '; - print $langs->trans("IPAddress").' ('.$langs->trans("TakeposConnectorNecesary").')'; + print $langs->trans("IPAddress").' ('.$langs->trans("TakeposConnectorNecesary").')'; print ''; print ''; print '
    '; - print $langs->trans("OrderPrinters").' ('.$langs->trans("Setup").')'; + print $langs->trans("OrderPrinters").' ('.$langs->trans("Setup").')'; print ''; print $form->selectyesno("TAKEPOS_ORDER_PRINTERS", $conf->global->TAKEPOS_ORDER_PRINTERS, 1); print '
    '; From a8676e63c8d69e500c7810708842074e991d4a21 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 10 Oct 2019 16:46:50 +0200 Subject: [PATCH 281/484] CSS --- htdocs/comm/card.php | 4 +--- htdocs/core/class/html.formfile.class.php | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/htdocs/comm/card.php b/htdocs/comm/card.php index 3f50c6ab6c8..576851b7e2e 100644 --- a/htdocs/comm/card.php +++ b/htdocs/comm/card.php @@ -403,7 +403,7 @@ if ($object->id > 0) print '
    '; if ($user->rights->societe->creer && !$user->societe_id > 0) { - print ''.img_edit($langs->trans("Modify")).''; + print ''.img_edit($langs->trans("Modify")).''; } print '
    '; print ''; @@ -425,8 +425,6 @@ if ($object->id > 0) print ''; $limit_field_type = (! empty($conf->global->MAIN_USE_JQUERY_JEDITABLE)) ? 'numeric' : 'amount'; print $form->editfieldval("OutstandingBill", 'outstanding_limit', $object->outstanding_limit, $object, $user->rights->societe->creer, $limit_field_type, ($object->outstanding_limit != '' ? price($object->outstanding_limit) : '')); - //if (empty($object->outstanding_limit)) print $langs->trans("NoLimit"); - print ''; print ''; } diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php index 7f9ada37e7d..8a0341135c7 100644 --- a/htdocs/core/class/html.formfile.class.php +++ b/htdocs/core/class/html.formfile.class.php @@ -115,7 +115,7 @@ class FormFile if (empty($title)) $title=$langs->trans("AttachANewFile"); if ($title != 'none') $out.=load_fiche_titre($title, null, null); - if (empty($usewithoutform)) + if (empty($usewithoutform)) // Try to avoid this and set instead the form by the caller. { $out .= ''; $out .= ''; From 9a2fabff6fb77949be0ec027d82ed424f71dde58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Thu, 10 Oct 2019 18:42:29 +0200 Subject: [PATCH 282/484] doxygen --- .../modules/security/generate/modGeneratePassPerso.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php b/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php index 5a7d22670c7..8abcc41c263 100644 --- a/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php +++ b/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php @@ -177,7 +177,7 @@ class modGeneratePassPerso extends ModeleGenPassword * Validate a password * * @param string $password Password to check - * @return int 0 if KO, >0 if OK + * @return bool false if KO, true if OK */ public function validatePassword($password) { From ebf73c857c325c931a32b93d55bcbd574b44622a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Thu, 10 Oct 2019 21:09:08 +0200 Subject: [PATCH 283/484] get relative path for favicon --- htdocs/main.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 2d612f5808d..aa778a111bc 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -1224,7 +1224,7 @@ function top_htmlhead($head, $title = '', $disablejs = 0, $disablehead = 0, $arr print ''."\n"; // Favicon - $favicon = DOL_MAIN_URL_ROOT . '/theme/'.$conf->theme.'/img/favicon.ico'; + $favicon = dol_buildpath('/theme/'.$conf->theme.'/img/favicon.ico', 1); if (! empty($conf->global->MAIN_FAVICON_URL)) $favicon=$conf->global->MAIN_FAVICON_URL; if (empty($conf->dol_use_jmobile)) print ''."\n"; // Not required into an Android webview //if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) print ''."\n"; From 3bf6fac505bf6bbe8f0b96f14f25bb338ca2f52b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 10 Oct 2019 22:05:34 +0200 Subject: [PATCH 284/484] NEW Can filter on label on invoice in accounting vendor binding pages --- htdocs/accountancy/supplier/lines.php | 9 ++++----- htdocs/accountancy/supplier/list.php | 10 +++++----- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/htdocs/accountancy/supplier/lines.php b/htdocs/accountancy/supplier/lines.php index 97f1c771122..a815e5b858b 100644 --- a/htdocs/accountancy/supplier/lines.php +++ b/htdocs/accountancy/supplier/lines.php @@ -192,12 +192,12 @@ if ($search_lineid) { if (strlen(trim($search_invoice))) { $sql .= natural_search("f.ref", $search_invoice); } +if (strlen(trim($search_label))) { + $sql .= natural_search("f.libelle", $search_label); +} if (strlen(trim($search_ref))) { $sql .= natural_search("p.ref", $search_ref); } -if (strlen(trim($search_label))) { - $sql .= natural_search("p.label", $search_label); -} if (strlen(trim($search_desc))) { $sql .= natural_search("l.description", $search_desc); } @@ -300,14 +300,13 @@ if ($result) { print ''; print ''; print ''; - print ''; + print ''; print ''; if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print ''; print ''; $formother->select_year($search_year, 'search_year', 1, 20, 5); print ''; print ''; - //print ''; print ''; print ''; print ''; diff --git a/htdocs/accountancy/supplier/list.php b/htdocs/accountancy/supplier/list.php index 6ba3e244582..fc453a94250 100644 --- a/htdocs/accountancy/supplier/list.php +++ b/htdocs/accountancy/supplier/list.php @@ -234,12 +234,12 @@ if ($search_lineid) { if (strlen(trim($search_invoice))) { $sql .= natural_search("f.ref", $search_invoice); } +if (strlen(trim($search_label))) { + $sql .= natural_search("f.libelle", $search_label); +} if (strlen(trim($search_ref))) { $sql .= natural_search("p.ref", $search_ref); } -if (strlen(trim($search_label))) { - $sql .= natural_search("p.label", $search_label); -} if (strlen(trim($search_desc))) { $sql .= natural_search("l.description", $search_desc); } @@ -317,6 +317,7 @@ if ($result) { if ($search_year) $param.='&search_year='.urlencode($search_year); if ($search_invoice) $param.='&search_invoice='.urlencode($search_invoice); if ($search_ref) $param.='&search_ref='.urlencode($search_ref); + if ($search_label) $param.='&search_label='.urlencode($search_label); if ($search_desc) $param.='&search_desc='.urlencode($search_desc); if ($search_amount) $param.='&search_amount='.urlencode($search_amount); if ($search_vat) $param.='&search_vat='.urlencode($search_vat); @@ -362,14 +363,13 @@ if ($result) { print ''; print ''; print ''; - print ''; + print ''; print ''; if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print ''; print ''; $formother->select_year($search_year, 'search_year', 1, 20, 5); print ''; print ''; - //print ''; print ''; print ''; print ''; From f82f4162c3abffe3bac4e15693dc37d4cb9de65a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 10 Oct 2019 22:42:23 +0200 Subject: [PATCH 285/484] NEW Look and fill v11: Introduce CSS "trforbreak" --- htdocs/accountancy/bookkeeping/balance.php | 4 ++-- htdocs/theme/eldy/global.inc.php | 4 +++- htdocs/theme/md/style.css.php | 4 +++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/htdocs/accountancy/bookkeeping/balance.php b/htdocs/accountancy/bookkeeping/balance.php index 3c04548d7c6..7d48790348d 100644 --- a/htdocs/accountancy/bookkeeping/balance.php +++ b/htdocs/accountancy/bookkeeping/balance.php @@ -279,8 +279,8 @@ if ($action != 'export_csv') print ''; } - // Affiche le compte comptable en debut de ligne - print ""; + // Show first line of a break + print ''; print '' . $line->numero_compte . ($root_account_description ? ' - ' . $root_account_description : '') . ''; print ''; diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index 69865d7ab1b..ddd865cbbb2 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -2942,7 +2942,9 @@ td.evenodd, tr.nohoverpair td, #trlinefordates td { background: # !important; } .trforbreak td { - background-color: # !important; + font-weight: bold; + border-bottom: 1pt solid black !important; + /* background-color: # !important; */ } table.dataTable td { diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index 8c6bd8d4d77..dc666d77a02 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -3046,7 +3046,9 @@ td.evenodd, tr.nohoverpair td { background: # !important; } .trforbreak td { - background-color: # !important; + font-weight: bold; + border-bottom: 1pt solid black !important; + /* background-color: # !important; */ } table.dataTable td { From 5dc6e7d1a09de22b7d0d6cd63c1993323f3fcdc6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 10 Oct 2019 22:45:04 +0200 Subject: [PATCH 286/484] CSS --- htdocs/theme/md/info-box.inc.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/htdocs/theme/md/info-box.inc.php b/htdocs/theme/md/info-box.inc.php index fafa2978865..95e057e68f1 100644 --- a/htdocs/theme/md/info-box.inc.php +++ b/htdocs/theme/md/info-box.inc.php @@ -6,6 +6,11 @@ if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?> * Component: Info Box * ------------------- */ + +span.info-box-icon-text { /* hide box text number due to problems */ + display: none; +} + .info-box { display: block; min-height: 90px; From fce07cf8ca195c5ccd8594dba0bffcc34e4abcf6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 10 Oct 2019 22:52:11 +0200 Subject: [PATCH 287/484] CSS --- htdocs/theme/md/style.css.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index dc666d77a02..93f71d3a47e 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -1782,7 +1782,7 @@ div.mainmenu { position : relative; background-repeat:no-repeat; background-position:center top; - height: px; + height: px; margin-left: 0px; min-width: 40px; } @@ -3973,7 +3973,7 @@ table.cal_event td.cal_event_right { padding: 4px 4px !important; } .cal_peruserviewname { max-width: 140px; height: 22px; } .topmenuimage { - background-size: 28px auto; + background-size: 24px auto; } /* ============================================================================== */ @@ -5684,7 +5684,7 @@ border-top-right-radius: 6px; } .menuhider { - width: px; + width: px; } /* nboftopmenuentries = , fontsize= */ @@ -5703,7 +5703,7 @@ border-top-right-radius: 6px; font-size: 12px; } .topmenuimage { - background-size: 26px auto; + background-size: 24px auto; margin-top: 0px; } li.tmenu, li.tmenusel { From e7f56b67d84f2ab6d7a382a7329bf6ed1a2ac463 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 10 Oct 2019 23:00:33 +0200 Subject: [PATCH 288/484] Look and feel v11 --- htdocs/core/lib/usergroups.lib.php | 2 +- htdocs/theme/md/style.css.php | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/htdocs/core/lib/usergroups.lib.php b/htdocs/core/lib/usergroups.lib.php index ef875675ed7..b4140ba90a7 100644 --- a/htdocs/core/lib/usergroups.lib.php +++ b/htdocs/core/lib/usergroups.lib.php @@ -399,7 +399,7 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) print ''; if ($subdir == $conf->global->MAIN_THEME) $title=$langs->trans("ThemeCurrentlyActive"); else $title=$langs->trans("ShowPreview"); - print ''.$title.''; + print ''.$title.''; print '
    '; if ($subdir == $selected_theme) { diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index 93f71d3a47e..72974ded51f 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -3215,6 +3215,10 @@ tr.liste_sub_total, tr.liste_sub_total td { -webkit-box-shadow: 0px 0px 0px #f4f4f4 !important; box-shadow: 0px 0px 0px #f4f4f4 !important; } +.shadow { + -webkit-box-shadow: 2px 2px 5px #CCC !important; + box-shadow: 2px 2px 5px #CCC !important; +} div.tabBar .noborder { -webkit-box-shadow: 0px 0px 0px #f4f4f4 !important; From c80d055af31d21131c1fe02c19889f2ef45017f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Thu, 10 Oct 2019 23:51:54 +0200 Subject: [PATCH 289/484] fix search by roles --- htdocs/core/lib/company.lib.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index 36657d48dbc..76606c4a54e 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -1052,12 +1052,12 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') if (in_array($val['type'], array('date','datetime','timestamp'))) $align.=($align?' ':'').'center'; if (in_array($val['type'], array('timestamp'))) $align.=($align?' ':'').'nowrap'; if ($key == 'status' || $key == 'statut') $align.=($align?' ':'').'center'; - if (! empty($arrayfields['t.'.$key]['checked'])) + if (! empty($arrayfields['t.'.$key]['checked']) || ! empty($arrayfields['sc.'.$key]['checked'])) { print ''; if (in_array($key, array('statut'))){ print $form->selectarray('search_status', array('-1'=>'','0'=>$contactstatic->LibStatut(0, 1),'1'=>$contactstatic->LibStatut(1, 1)), $search_status); - }elseif (in_array($key, array('role'))) { + } elseif (in_array($key, array('role'))) { print $formcompany->showRoles("search_roles", $contactstatic, 'edit', $search_roles); } else { print ''; From 9194eb4bec9bb95e1afb4b96b631f60df50f9617 Mon Sep 17 00:00:00 2001 From: John Botella Date: Fri, 11 Oct 2019 09:14:10 +0200 Subject: [PATCH 290/484] Fix block title height if no button --- htdocs/core/lib/functions.lib.php | 6 +++--- htdocs/theme/eldy/global.inc.php | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index b9e6d17ccf5..450afe47a65 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -4120,9 +4120,9 @@ function load_fiche_titre($titre, $morehtmlright = '', $picto = 'generic', $pict if ($picto == 'setup') $picto='generic'; $return.= "\n"; - $return.= ''; // maring bottom must be same than into print_barre_list - if ($picto) $return.= ''; - $return.= '
    '.img_picto('', $picto, 'class="valignmiddle widthpictotitle pictotitle"', $pictoisfullpath).''; + $return.= ''; // maring bottom must be same than into print_barre_list + if ($picto) $return.= ''; + $return.= ''; if (dol_strlen($morehtmlcenter)) diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index ddd865cbbb2..8d1b73080de 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -3587,6 +3587,10 @@ div.titre, .secondary { color: rgb(); } +table.table-fiche-title .col-title div.titre{ + line-height: 40px; +} + #dolpaymenttable { min-width: 320px; font-size: 16px; } /* Width must have min to make stripe input area visible. Lower than 320 makes input area crazy for credit card that need zip code */ #tablepublicpayment { border: 1px solid #CCCCCC !important; width: 100%; padding: 20px; } #tablepublicpayment .CTableRow1 { background-color: #F0F0F0 !important; } From 535a09e85699229d9b1d9e9d5de52e431cd1b3a1 Mon Sep 17 00:00:00 2001 From: John Botella Date: Fri, 11 Oct 2019 09:17:17 +0200 Subject: [PATCH 291/484] Fix block title height if no button MD --- htdocs/theme/md/style.css.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index 72974ded51f..75c47ebe6f0 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -3625,6 +3625,10 @@ div.titre, .secondary { color: rgb(); } +table.table-fiche-title .col-title div.titre{ + line-height: 40px; +} + #dolpaymenttable { min-width: 320px; font-size: 16px; } /* Width must have min to make stripe input area visible. Lower than 320 makes input area crazy for credit card that need zip code */ #tablepublicpayment { border: 1px solid #CCCCCC !important; width: 100%; padding: 20px; } #tablepublicpayment .CTableRow1 { background-color: #F0F0F0 !important; } From af88f44fd9ab99fc1b62ae1f3144cd230bef7618 Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Fri, 11 Oct 2019 09:51:17 +0200 Subject: [PATCH 292/484] fix some translations --- htdocs/core/class/commondocgenerator.class.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/htdocs/core/class/commondocgenerator.class.php b/htdocs/core/class/commondocgenerator.class.php index 74253a19f51..cd117f3ca07 100644 --- a/htdocs/core/class/commondocgenerator.class.php +++ b/htdocs/core/class/commondocgenerator.class.php @@ -316,7 +316,7 @@ abstract class CommonDocGenerator // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Define array with couple subtitution key => subtitution value + * Define array with couple substitution key => substitution value * * @param Translate $outputlangs Language object for output * @return array Array of substitution key->code @@ -445,7 +445,7 @@ abstract class CommonDocGenerator $array_key.'_already_payed_all_locale'=>price(price2num($already_payed_all, 'MT'), 0, $outputlangs), $array_key.'_already_payed_all'=> price2num($already_payed_all, 'MT'), - // Remain to pay with all know infrmation (except open direct debit requests) + // Remain to pay with all know information (except open direct debit requests) $array_key.'_remain_to_pay_locale'=>price(price2num($object->total_ttc - $remain_to_pay, 'MT'), 0, $outputlangs), $array_key.'_remain_to_pay'=>price2num($object->total_ttc - $remain_to_pay, 'MT') ); @@ -479,7 +479,7 @@ abstract class CommonDocGenerator $totalUp = 0; foreach ($object->lines as $line) { - // $line->tva_tx format depends on database field accuraty, no reliable. This is kept for backward comaptibility + // $line->tva_tx format depends on database field accuraty, no reliable. This is kept for backward compatibility if (empty($resarray[$array_key.'_total_vat_'.$line->tva_tx])) $resarray[$array_key.'_total_vat_'.$line->tva_tx]=0; $resarray[$array_key.'_total_vat_'.$line->tva_tx]+=$line->total_tva; $resarray[$array_key.'_total_vat_locale_'.$line->tva_tx]=price($resarray[$array_key.'_total_vat_'.$line->tva_tx]); @@ -868,7 +868,7 @@ abstract class CommonDocGenerator /** - * uasort callback function to Sort colums fields + * uasort callback function to Sort columns fields * * @param array $a PDF lines array fields configs * @param array $b PDF lines array fields configs @@ -907,7 +907,7 @@ abstract class CommonDocGenerator // Positionning $curX = $this->page_largeur-$this->marge_droite; // start from right - // Array witdh + // Array width $arrayWidth = $this->page_largeur-$this->marge_droite-$this->marge_gauche; // Count flexible column @@ -915,10 +915,10 @@ abstract class CommonDocGenerator $countFlexCol = 0; foreach ($this->cols as $colKey =>& $colDef) { - if(!$this->getColumnStatus($colKey)) continue; // continue if desable + if(!$this->getColumnStatus($colKey)) continue; // continue if desabled if(!empty($colDef['scale'])){ - // In case of column widht is defined by percentage + // In case of column width is defined by percentage $colDef['width'] = abs($arrayWidth * $colDef['scale'] / 100); } From 13115a55a209d7fb70f5d6f6dbdde10d4e69a8cc Mon Sep 17 00:00:00 2001 From: John Botella Date: Fri, 11 Oct 2019 10:02:59 +0200 Subject: [PATCH 293/484] Fix logo background and hidden conf --- htdocs/core/menus/standard/eldy.lib.php | 9 ++++++++- htdocs/theme/eldy/global.inc.php | 10 ++++++---- htdocs/theme/md/style.css.php | 10 ++++++---- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index dbf56429086..878d7e13cd1 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -480,6 +480,12 @@ function print_eldy_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout = { $mysoc->logo_mini=(empty($conf->global->MAIN_INFO_SOCIETE_LOGO_MINI)?'':$conf->global->MAIN_INFO_SOCIETE_LOGO_MINI); $mysoc->logo_squarred_mini=(empty($conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI)?'':$conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI); + + $logoContainerAdditionalClass = 'backgroundforcompanylogo'; + if(!empty($conf->global->MAIN_INFO_SOCIETE_LOGO_NO_BACKGROUND)){ + $logoContainerAdditionalClass = ''; + } + if (! empty($mysoc->logo_squarred_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_squarred_mini)) { $urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_squarred_mini); @@ -497,7 +503,8 @@ function print_eldy_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout = print "\n".''."\n"; print_start_menu_entry('companylogo', 'class="tmenu tmenucompanylogo"', 1); - print ''."\n"; + + print ''."\n"; print_end_menu_entry(4); } diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index ddd865cbbb2..2fef266ab2e 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -1085,19 +1085,21 @@ div.blockvmenulogo { border-bottom: 0 !important; } -.backgroundforcompanylogo { +.menu-logo-container { margin: px; margin-left: 8px; margin-right: 8px; - background-color: rgba(255,255,255,0.7); padding: 0; - border-radius: 5px; height: px; /* width: 100px; */ max-width: 100px; vertical-align: middle; } -.backgroundforcompanylogo img.mycompany { +.backgroundforcompanylogo { + background-color: rgba(255,255,255,0.7); + border-radius: 5px; +} +.menu-logo-container img.mycompany { object-fit: contain; width: inherit; height: inherit; diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index 72974ded51f..9ee1f3d56e7 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -2253,19 +2253,21 @@ div.blockvmenulogo { border-bottom: 0 !important; } -.backgroundforcompanylogo { +.menu-logo-container { margin: px; margin-left: 12px; margin-right: 6px; - background-color: rgba(255,255,255,0.7); padding: 0; - border-radius: 5px; height: px; /* width: 100px; */ max-width: 100px; vertical-align: middle; } -.backgroundforcompanylogo img.mycompany { +.backgroundforcompanylogo { + background-color: rgba(255,255,255,0.7); + border-radius: 5px; +} +.menu-logo-container img.mycompany { object-fit: contain; width: inherit; height: inherit; From 4873cbd071664e3a2f9d735c7f39a9c3afe88ad8 Mon Sep 17 00:00:00 2001 From: John Botella Date: Fri, 11 Oct 2019 10:10:12 +0200 Subject: [PATCH 294/484] Fix css name --- htdocs/core/menus/standard/eldy.lib.php | 2 +- htdocs/theme/eldy/global.inc.php | 4 ++-- htdocs/theme/md/style.css.php | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 878d7e13cd1..d1ec07a2152 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -504,7 +504,7 @@ function print_eldy_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout = print_start_menu_entry('companylogo', 'class="tmenu tmenucompanylogo"', 1); - print ''."\n"; + print ''."\n"; print_end_menu_entry(4); } diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index 2fef266ab2e..fe4dcd376f2 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -1085,7 +1085,7 @@ div.blockvmenulogo { border-bottom: 0 !important; } -.menu-logo-container { +.menulogocontainer { margin: px; margin-left: 8px; margin-right: 8px; @@ -1099,7 +1099,7 @@ div.blockvmenulogo background-color: rgba(255,255,255,0.7); border-radius: 5px; } -.menu-logo-container img.mycompany { +.menulogocontainer img.mycompany { object-fit: contain; width: inherit; height: inherit; diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index 9ee1f3d56e7..87d39529e92 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -2253,7 +2253,7 @@ div.blockvmenulogo { border-bottom: 0 !important; } -.menu-logo-container { +.menulogocontainer { margin: px; margin-left: 12px; margin-right: 6px; @@ -2267,7 +2267,7 @@ div.blockvmenulogo background-color: rgba(255,255,255,0.7); border-radius: 5px; } -.menu-logo-container img.mycompany { +.menulogocontainer img.mycompany { object-fit: contain; width: inherit; height: inherit; From bcb7365a5a371142af6db2d4ae08117568ed3fc7 Mon Sep 17 00:00:00 2001 From: Philippe Grand Date: Fri, 11 Oct 2019 10:13:21 +0200 Subject: [PATCH 295/484] Update commondocgenerator.class.php --- htdocs/core/class/commondocgenerator.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/commondocgenerator.class.php b/htdocs/core/class/commondocgenerator.class.php index cd117f3ca07..84f49bafe3f 100644 --- a/htdocs/core/class/commondocgenerator.class.php +++ b/htdocs/core/class/commondocgenerator.class.php @@ -915,7 +915,7 @@ abstract class CommonDocGenerator $countFlexCol = 0; foreach ($this->cols as $colKey =>& $colDef) { - if(!$this->getColumnStatus($colKey)) continue; // continue if desabled + if(!$this->getColumnStatus($colKey)) continue; // continue if disabled if(!empty($colDef['scale'])){ // In case of column width is defined by percentage From 25b9be9de7b6db279a0797e2a9429f53c1c32d76 Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Fri, 11 Oct 2019 10:19:58 +0200 Subject: [PATCH 296/484] update code --- htdocs/core/modules/propale/doc/pdf_cyan.modules.php | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/htdocs/core/modules/propale/doc/pdf_cyan.modules.php b/htdocs/core/modules/propale/doc/pdf_cyan.modules.php index c678f0380fd..3049214679e 100644 --- a/htdocs/core/modules/propale/doc/pdf_cyan.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_cyan.modules.php @@ -198,13 +198,9 @@ class pdf_cyan extends ModelePDFPropales if (! is_object($outputlangs)) $outputlangs=$langs; // For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1'; - - $outputlangs->load("main"); - $outputlangs->load("dict"); - $outputlangs->load("companies"); - $outputlangs->load("bills"); - $outputlangs->load("propal"); - $outputlangs->load("products"); + + // Translations + $outputlangs->loadLangs(array("main", "dict", "companies", "bills", "products", "propal")); $nblines = count($object->lines); From de107fb02e93431ecfad06f8e8606767124d572b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 11:27:05 +0200 Subject: [PATCH 297/484] NEW Can set a squarred icon on your company setup --- htdocs/admin/company.php | 212 ++++++++++++------ .../install/mysql/migration/10.0.0-11.0.0.sql | 2 + htdocs/install/mysql/tables/llx_societe.sql | 1 + htdocs/langs/en_US/admin.lang | 3 + htdocs/societe/class/societe.class.php | 16 +- htdocs/theme/eldy/global.inc.php | 16 +- htdocs/theme/md/style.css.php | 4 + 7 files changed, 182 insertions(+), 72 deletions(-) diff --git a/htdocs/admin/company.php b/htdocs/admin/company.php index a3534d3bc5a..9da2e550501 100644 --- a/htdocs/admin/company.php +++ b/htdocs/admin/company.php @@ -105,69 +105,79 @@ if ( ($action == 'update' && ! GETPOST("cancel", 'alpha')) dolibarr_set_const($db, "MAIN_INFO_SOCIETE_NOTE", GETPOST("note", 'none'), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, "MAIN_INFO_SOCIETE_GENCOD", GETPOST("barcode", 'alpha'), 'chaine', 0, '', $conf->entity); - $varforimage='logo'; $dirforimage=$conf->mycompany->dir_output.'/logos/'; - if ($_FILES[$varforimage]["tmp_name"]) + $dirforimage=$conf->mycompany->dir_output.'/logos/'; + + $arrayofimages = array('logo', 'logo_squarred'); + + foreach($arrayofimages as $varforimage) { - if (preg_match('/([^\\/:]+)$/i', $_FILES[$varforimage]["name"], $reg)) + if ($_FILES[$varforimage]["tmp_name"]) { - $original_file=$reg[1]; - - $isimage=image_format_supported($original_file); - if ($isimage >= 0) + $reg = array(); + if (preg_match('/([^\\/:]+)$/i', $_FILES[$varforimage]["name"], $reg)) { - dol_syslog("Move file ".$_FILES[$varforimage]["tmp_name"]." to ".$dirforimage.$original_file); - if (! is_dir($dirforimage)) - { - dol_mkdir($dirforimage); - } - $result=dol_move_uploaded_file($_FILES[$varforimage]["tmp_name"], $dirforimage.$original_file, 1, 0, $_FILES[$varforimage]['error']); - if ($result > 0) - { - dolibarr_set_const($db, "MAIN_INFO_SOCIETE_LOGO", $original_file, 'chaine', 0, '', $conf->entity); + $original_file=$reg[1]; - // Create thumbs of logo (Note that PDF use original file and not thumbs) - if ($isimage > 0) + $isimage=image_format_supported($original_file); + if ($isimage >= 0) + { + dol_syslog("Move file ".$_FILES[$varforimage]["tmp_name"]." to ".$dirforimage.$original_file); + if (! is_dir($dirforimage)) { - // Create thumbs - //$object->addThumbs($newfile); // We can't use addThumbs here yet because we need name of generated thumbs to add them into constants. TODO Check if need such constants. We should be able to retreive value with get... - - // Create small thumb, Used on logon for example - $imgThumbSmall = vignette($dirforimage.$original_file, $maxwidthsmall, $maxheightsmall, '_small', $quality); - if (image_format_supported($imgThumbSmall) >= 0 && preg_match('/([^\\/:]+)$/i', $imgThumbSmall, $reg)) - { - $imgThumbSmall = $reg[1]; // Save only basename - dolibarr_set_const($db, "MAIN_INFO_SOCIETE_LOGO_SMALL", $imgThumbSmall, 'chaine', 0, '', $conf->entity); - } - else dol_syslog($imgThumbSmall); - - // Create mini thumb, Used on menu or for setup page for example - $imgThumbMini = vignette($dirforimage.$original_file, $maxwidthmini, $maxheightmini, '_mini', $quality); - if (image_format_supported($imgThumbMini) >= 0 && preg_match('/([^\\/:]+)$/i', $imgThumbMini, $reg)) - { - $imgThumbMini = $reg[1]; // Save only basename - dolibarr_set_const($db, "MAIN_INFO_SOCIETE_LOGO_MINI", $imgThumbMini, 'chaine', 0, '', $conf->entity); - } - else dol_syslog($imgThumbMini); + dol_mkdir($dirforimage); + } + $result=dol_move_uploaded_file($_FILES[$varforimage]["tmp_name"], $dirforimage.$original_file, 1, 0, $_FILES[$varforimage]['error']); + if ($result > 0) + { + $constant = "MAIN_INFO_SOCIETE_LOGO"; + if ($varforimage == 'logo_squarred') $constant = "MAIN_INFO_SOCIETE_LOGO_SQUARRED"; + + dolibarr_set_const($db, $constant, $original_file, 'chaine', 0, '', $conf->entity); + + // Create thumbs of logo (Note that PDF use original file and not thumbs) + if ($isimage > 0) + { + // Create thumbs + //$object->addThumbs($newfile); // We can't use addThumbs here yet because we need name of generated thumbs to add them into constants. TODO Check if need such constants. We should be able to retreive value with get... + + // Create small thumb, Used on logon for example + $imgThumbSmall = vignette($dirforimage.$original_file, $maxwidthsmall, $maxheightsmall, '_small', $quality); + if (image_format_supported($imgThumbSmall) >= 0 && preg_match('/([^\\/:]+)$/i', $imgThumbSmall, $reg)) + { + $imgThumbSmall = $reg[1]; // Save only basename + dolibarr_set_const($db, $constant."_SMALL", $imgThumbSmall, 'chaine', 0, '', $conf->entity); + } + else dol_syslog($imgThumbSmall); + + // Create mini thumb, Used on menu or for setup page for example + $imgThumbMini = vignette($dirforimage.$original_file, $maxwidthmini, $maxheightmini, '_mini', $quality); + if (image_format_supported($imgThumbMini) >= 0 && preg_match('/([^\\/:]+)$/i', $imgThumbMini, $reg)) + { + $imgThumbMini = $reg[1]; // Save only basename + dolibarr_set_const($db, $constant."_MINI", $imgThumbMini, 'chaine', 0, '', $conf->entity); + } + else dol_syslog($imgThumbMini); + } + else dol_syslog("ErrorImageFormatNotSupported", LOG_WARNING); + } elseif (preg_match('/^ErrorFileIsInfectedWithAVirus/', $result)) { + $error++; + $langs->load("errors"); + $tmparray=explode(':', $result); + setEventMessages($langs->trans('ErrorFileIsInfectedWithAVirus', $tmparray[1]), null, 'errors'); + } + else + { + $error++; + setEventMessages($langs->trans("ErrorFailedToSaveFile"), null, 'errors'); } - else dol_syslog("ErrorImageFormatNotSupported", LOG_WARNING); - } elseif (preg_match('/^ErrorFileIsInfectedWithAVirus/', $result)) { - $error++; - $langs->load("errors"); - $tmparray=explode(':', $result); - setEventMessages($langs->trans('ErrorFileIsInfectedWithAVirus', $tmparray[1]), null, 'errors'); } else { $error++; - setEventMessages($langs->trans("ErrorFailedToSaveFile"), null, 'errors'); + $langs->load("errors"); + setEventMessages($langs->trans("ErrorBadImageFormat"), null, 'errors'); } } - else - { - $error++; - $langs->load("errors"); - setEventMessages($langs->trans("ErrorBadImageFormat"), null, 'errors'); - } } } @@ -247,7 +257,7 @@ if ( ($action == 'update' && ! GETPOST("cancel", 'alpha')) } } -if ($action == 'addthumb') // Regenerate thumbs +if ($action == 'addthumb' || $action == 'addthumbsquarred') // Regenerate thumbs { if (file_exists($conf->mycompany->dir_output.'/logos/'.$_GET["file"])) { @@ -256,15 +266,20 @@ if ($action == 'addthumb') // Regenerate thumbs // Create thumbs of logo if ($isimage > 0) { + $constant = "MAIN_INFO_SOCIETE_LOGO"; + if ($action == 'addthumbsquarred') $constant = "MAIN_INFO_SOCIETE_LOGO_SQUARRED"; + + $reg = array(); + // Create thumbs - //$object->addThumbs($newfile); // We can't use addThumbs here yet because we need name of generated thumbs to add them into constants. TODO Check if need such constants. We should be able to retreive value with get... + //$object->addThumbs($newfile); // We can't use addThumbs here yet because we need name of generated thumbs to add them into constants. TODO Check if need such constants. We should be able to retreive value with get... // Create small thumb. Used on logon for example $imgThumbSmall = vignette($conf->mycompany->dir_output.'/logos/'.$_GET["file"], $maxwidthsmall, $maxheightsmall, '_small', $quality); if (image_format_supported($imgThumbSmall) >= 0 && preg_match('/([^\\/:]+)$/i', $imgThumbSmall, $reg)) { $imgThumbSmall = $reg[1]; // Save only basename - dolibarr_set_const($db, "MAIN_INFO_SOCIETE_LOGO_SMALL", $imgThumbSmall, 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, $constant."_SMALL", $imgThumbSmall, 'chaine', 0, '', $conf->entity); } else dol_syslog($imgThumbSmall); @@ -273,7 +288,7 @@ if ($action == 'addthumb') // Regenerate thumbs if (image_format_supported($imgThumbSmall) >= 0 && preg_match('/([^\\/:]+)$/i', $imgThumbMini, $reg)) { $imgThumbMini = $reg[1]; // Save only basename - dolibarr_set_const($db, "MAIN_INFO_SOCIETE_LOGO_MINI", $imgThumbMini, 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, $constant."_MINI", $imgThumbMini, 'chaine', 0, '', $conf->entity); } else dol_syslog($imgThumbMini); @@ -297,24 +312,37 @@ if ($action == 'addthumb') // Regenerate thumbs } } -if ($action == 'removelogo') + +if ($action == 'removelogo' || $action == 'removelogosquarred') { + $constant = "MAIN_INFO_SOCIETE_LOGO"; + if ($action == 'removelogosquarred') $constant = "MAIN_INFO_SOCIETE_LOGO_SQUARRED"; + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; - $logofile=$conf->mycompany->dir_output.'/logos/'.$mysoc->logo; - if ($mysoc->logo != '') dol_delete_file($logofile); - dolibarr_del_const($db, "MAIN_INFO_SOCIETE_LOGO", $conf->entity); - $mysoc->logo=''; + $logofilename = $mysoc->logo; + if ($action == 'removelogosquarred') $logofilename = $mysoc->logo_squarred; + $logofile=$conf->mycompany->dir_output.'/logos/'.$logofilename; + if ($logofilename != '') dol_delete_file($logofile); + dolibarr_del_const($db, $constant, $conf->entity); + if ($action == 'removelogosquarred') $mysoc->logo_squarred=''; + else $mysoc->logo=''; - $logosmallfile=$conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_small; - if ($mysoc->logo_small != '') dol_delete_file($logosmallfile); - dolibarr_del_const($db, "MAIN_INFO_SOCIETE_LOGO_SMALL", $conf->entity); - $mysoc->logo_small=''; + $logofilename = $mysoc->logo_small; + if ($action == 'removelogosquarred') $logofilename = $mysoc->logo_squarred_small; + $logosmallfile=$conf->mycompany->dir_output.'/logos/thumbs/'.$logofilename; + if ($logofilename != '') dol_delete_file($logosmallfile); + dolibarr_del_const($db, $constant."_SMALL", $conf->entity); + if ($action == 'removelogosquarred') $mysoc->logo_squarred_small=''; + else $mysoc->logo_small=''; - $logominifile=$conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini; - if ($mysoc->logo_mini != '') dol_delete_file($logominifile); - dolibarr_del_const($db, "MAIN_INFO_SOCIETE_LOGO_MINI", $conf->entity); - $mysoc->logo_mini=''; + $logofilename = $mysoc->logo_mini; + if ($action == 'removelogosquarred') $logofilename = $mysoc->logo_squarred_mini; + $logominifile=$conf->mycompany->dir_output.'/logos/thumbs/'.$logofilename; + if ($logofilename != '') dol_delete_file($logominifile); + dolibarr_del_const($db, $constant."_MINI", $conf->entity); + if ($action == 'removelogosquarred') $mysoc->logo_squarred_mini=''; + else $mysoc->logo_mini=''; } @@ -434,7 +462,7 @@ if ($action == 'edit' || $action == 'updateedit') // Logo print ''; + // Logo (squarred) + print ''; + // Note print ''; @@ -829,7 +874,7 @@ else // Logo - print ''; + // Logo (squarred) + print ''; + + // Note print ''; print '
    '.img_picto('', $picto, 'class="valignmiddle widthpictotitle pictotitle"', $pictoisfullpath).''; $return.= '
    '.$titre.'
    '; $return.= '
    '; print '
    '; - print ''; + print ''; print ''; if (! empty($mysoc->logo_mini)) { print ''.img_delete($langs->trans("Delete")).''; @@ -448,6 +476,23 @@ if ($action == 'edit' || $action == 'updateedit') print '
    '; print '
    '; + print '
    '; + print ''; + print ''; + if (! empty($mysoc->logo_squarred_mini)) { + print ''.img_delete($langs->trans("Delete")).''; + if (file_exists($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_squarred_mini)) { + print '   '; + print ''; + } + } else { + print ''; + } + print '
    '; + print '
    '; print '
    '.$langs->trans("Logo").''; + print '
    '.$form->textwithpicto($langs->trans("Logo"), $langs->trans("LogoDesc")).''; $tagtd='tagtd '; if ($conf->browser->layout == 'phone') $tagtd=''; @@ -854,7 +899,34 @@ else print '
    '.$form->textwithpicto($langs->trans("LogoSquarred"), $langs->trans("LogoSquarredDesc")).''; + + $tagtd='tagtd '; + if ($conf->browser->layout == 'phone') $tagtd=''; + print '
    '; + print $mysoc->logo_squarred; + print '
    '; + + // It offers the generation of the thumbnail if it does not exist + if (!is_file($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_squarred_mini) && preg_match('/(\.jpg|\.jpeg|\.png)$/i', $mysoc->logo_squarred)) + { + print '  '; + } + elseif ($mysoc->logo_squarred_mini && is_file($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_squarred_mini)) + { + print ''; + } + else + { + print ''; + } + print '
    '; + + print '
    '.$langs->trans("Note").'' . (! empty($conf->global->MAIN_INFO_SOCIETE_NOTE) ? nl2br($conf->global->MAIN_INFO_SOCIETE_NOTE) : '') . '
    '; diff --git a/htdocs/install/mysql/migration/10.0.0-11.0.0.sql b/htdocs/install/mysql/migration/10.0.0-11.0.0.sql index 1948ce28a57..a857898f5dc 100644 --- a/htdocs/install/mysql/migration/10.0.0-11.0.0.sql +++ b/htdocs/install/mysql/migration/10.0.0-11.0.0.sql @@ -76,6 +76,8 @@ ALTER TABLE llx_holiday_extrafields ADD INDEX idx_holiday_extrafields (fk_object ALTER TABLE llx_societe_rib MODIFY label varchar(200); +ALTER TABLE llx_societe ADD COLUMN logo_squarred varchar(255); + insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('USER_SENTBYMAIL','Email sent','Executed when an email is sent from user card','user',300); create table llx_entrepot_extrafields diff --git a/htdocs/install/mysql/tables/llx_societe.sql b/htdocs/install/mysql/tables/llx_societe.sql index 4db88defc68..f312015a662 100644 --- a/htdocs/install/mysql/tables/llx_societe.sql +++ b/htdocs/install/mysql/tables/llx_societe.sql @@ -107,6 +107,7 @@ create table llx_societe supplier_order_min_amount double(24,8) DEFAULT NULL, -- min amount for supplier orders default_lang varchar(6), -- default language logo varchar(255) DEFAULT NULL, + logo_squarred varchar(255) DEFAULT NULL, canvas varchar(32) DEFAULT NULL, -- type of canvas if used (null by default) fk_entrepot integer DEFAULT 0, -- if we need a link between third party and warehouse webservices_url varchar(255), -- supplier webservice url diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index afce2e4fa34..b34ca99013d 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -1070,6 +1070,9 @@ CompanyCountry=Country CompanyCurrency=Main currency CompanyObject=Object of the company Logo=Logo +LogoDesc=Main logo of company. Will be used into generated documents (PDF, ...) +LogoSquarred=Logo (squarred) +LogoSquarredDesc=Must be a squarred icon (width = height). This logo will be used as the favorite icon or other need like for the top menu bar (if not disabled into disaply setup). DoNotSuggestPaymentMode=Do not suggest NoActiveBankAccountDefined=No active bank account defined OwnerOfBankAccount=Owner of bank account %s diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index c4c702bc73b..2b4ae2bb7a0 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -465,6 +465,9 @@ class Societe extends CommonObject public $logo; public $logo_small; public $logo_mini; + public $logo_squarred; + public $logo_squarred_small; + public $logo_squarred_mini; public $array_options; @@ -1072,6 +1075,7 @@ class Societe extends CommonObject $sql .= ",barcode = ".(! empty($this->barcode)?"'".$this->db->escape($this->barcode)."'":"null"); $sql .= ",default_lang = ".(! empty($this->default_lang)?"'".$this->db->escape($this->default_lang)."'":"null"); $sql .= ",logo = ".(! empty($this->logo)?"'".$this->db->escape($this->logo)."'":"null"); + $sql .= ",logo_squarred = ".(! empty($this->logo_squarred)?"'".$this->db->escape($this->logo_squarred)."'":"null"); $sql .= ",outstanding_limit= ".($this->outstanding_limit!=''?$this->outstanding_limit:'null'); $sql .= ",order_min_amount= ".($this->order_min_amount!=''?$this->order_min_amount:'null'); $sql .= ",supplier_order_min_amount= ".($this->supplier_order_min_amount!=''?$this->supplier_order_min_amount:'null'); @@ -1266,7 +1270,7 @@ class Societe extends CommonObject $sql .= ', s.webservices_url, s.webservices_key'; $sql .= ', s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur, s.parent, s.barcode'; $sql .= ', s.fk_departement as state_id, s.fk_pays as country_id, s.fk_stcomm, s.remise_supplier, s.mode_reglement, s.cond_reglement, s.fk_account, s.tva_assuj'; - $sql .= ', s.mode_reglement_supplier, s.cond_reglement_supplier, s.localtax1_assuj, s.localtax1_value, s.localtax2_assuj, s.localtax2_value, s.fk_prospectlevel, s.default_lang, s.logo'; + $sql .= ', s.mode_reglement_supplier, s.cond_reglement_supplier, s.localtax1_assuj, s.localtax1_value, s.localtax2_assuj, s.localtax2_value, s.fk_prospectlevel, s.default_lang, s.logo, s.logo_squarred'; $sql .= ', s.fk_shipping_method'; $sql .= ', s.outstanding_limit, s.import_key, s.canvas, s.fk_incoterms, s.location_incoterms'; $sql .= ', s.order_min_amount, s.supplier_order_min_amount'; @@ -1420,6 +1424,7 @@ class Societe extends CommonObject $this->modelpdf = $obj->model_pdf; $this->default_lang = $obj->default_lang; $this->logo = $obj->logo; + $this->logo_squarred = $obj->logo_squarred; $this->webservices_url = $obj->webservices_url; $this->webservices_key = $obj->webservices_key; @@ -2110,6 +2115,12 @@ class Societe extends CommonObject $label.= Form::showphoto('societe', $this, 0, 40, 0, 'photowithmargin', 'mini', 0); // Important, we must force height so image will have height tags and if image is inside a tooltip, the tooltip manager can calculate height and position correctly the tooltip. $label.= '
    '; } + elseif (! empty($this->logo_squarred) && class_exists('Form')) + { + /*$label.= '
    '; + $label.= Form::showphoto('societe', $this, 0, 40, 0, 'photowithmargin', 'mini', 0); // Important, we must force height so image will have height tags and if image is inside a tooltip, the tooltip manager can calculate height and position correctly the tooltip. + $label.= '
    ';*/ + } $label.= '
    '; @@ -3522,6 +3533,9 @@ class Societe extends CommonObject $this->logo=empty($conf->global->MAIN_INFO_SOCIETE_LOGO)?'':$conf->global->MAIN_INFO_SOCIETE_LOGO; $this->logo_small=empty($conf->global->MAIN_INFO_SOCIETE_LOGO_SMALL)?'':$conf->global->MAIN_INFO_SOCIETE_LOGO_SMALL; $this->logo_mini=empty($conf->global->MAIN_INFO_SOCIETE_LOGO_MINI)?'':$conf->global->MAIN_INFO_SOCIETE_LOGO_MINI; + $this->logo_squarred=empty($conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED)?'':$conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED; + $this->logo_squarred_small=empty($conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_SMALL)?'':$conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_SMALL; + $this->logo_squarred_mini=empty($conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI)?'':$conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI; // Define if company use vat or not $this->tva_assuj=$conf->global->FACTURE_TVAOPTION; diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index ddd865cbbb2..1e69bdf1ecc 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -902,6 +902,17 @@ table[summary="list_of_modules"] .fa-cog { font-size: !important; } + div#login_left, div#login_right { + min-width: 150px !important; + max-width: 200px !important; + padding-left: 5px !important; + padding-right: 5px !important; + } + + div.login_block { + height: 64px !important; + } + .divmainbodylarge { margin-left: 20px !important; margin-right: 20px !important; } .tdoverflowonsmartphone { @@ -923,11 +934,14 @@ table[summary="list_of_modules"] .fa-cog { padding-bottom: 5px; } + .login_table .tdinputlogin { + min-width: unset !important; + } input, input[type=text], input[type=password], select, textarea { min-width: 20px; } .trinputlogin input[type=text], input[type=password] { - max-width: 180px; + max-width: 140px; } .vmenu .searchform input { max-width: 138px; /* length of input text in the quick search box when using a smartphone and without dolidroid */ diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index 72974ded51f..ba97c329073 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -1061,6 +1061,10 @@ table[summary="list_of_modules"] .fa-cog { font-size: px !important; } + .login_vertical_align { + padding-left: 0; + } + .divmainbodylarge { margin-left: 20px; margin-right: 20px; } .tdoverflowonsmartphone { From fc886b9950b03088597a58dc16825d08835fc021 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 11:29:39 +0200 Subject: [PATCH 298/484] css --- htdocs/theme/eldy/global.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index 1e69bdf1ecc..22515f9a76f 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -1105,7 +1105,7 @@ div.blockvmenulogo margin-right: 8px; background-color: rgba(255,255,255,0.7); padding: 0; - border-radius: 5px; + border-radius: 4px; height: px; /* width: 100px; */ max-width: 100px; From ab8199f71aa00a2e4b32d7130f84c2a2f877fa00 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 11:38:49 +0200 Subject: [PATCH 299/484] Fix avoid deletion of file if we still need it --- htdocs/admin/company.php | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/htdocs/admin/company.php b/htdocs/admin/company.php index 9da2e550501..46bd2352b46 100644 --- a/htdocs/admin/company.php +++ b/htdocs/admin/company.php @@ -321,25 +321,43 @@ if ($action == 'removelogo' || $action == 'removelogosquarred') require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; $logofilename = $mysoc->logo; - if ($action == 'removelogosquarred') $logofilename = $mysoc->logo_squarred; + $logofilenamebis = $mysoc->logo_squarred; + if ($action == 'removelogosquarred') + { + $logofilename = $mysoc->logo_squarred; + $logofilenamebis = $mysoc->logo; + } + $logofile=$conf->mycompany->dir_output.'/logos/'.$logofilename; - if ($logofilename != '') dol_delete_file($logofile); + if ($logofilename != '' && $logofilename != $logofilenamebis) dol_delete_file($logofile); dolibarr_del_const($db, $constant, $conf->entity); if ($action == 'removelogosquarred') $mysoc->logo_squarred=''; else $mysoc->logo=''; $logofilename = $mysoc->logo_small; - if ($action == 'removelogosquarred') $logofilename = $mysoc->logo_squarred_small; + $logofilenamebis = $mysoc->logo_squarred_small; + if ($action == 'removelogosquarred') + { + $logofilename = $mysoc->logo_squarred_small; + $logofilenamebis = $mysoc->logo_small; + } + $logosmallfile=$conf->mycompany->dir_output.'/logos/thumbs/'.$logofilename; - if ($logofilename != '') dol_delete_file($logosmallfile); + if ($logofilename != '' && $logofilename != $logofilenamebis) dol_delete_file($logosmallfile); dolibarr_del_const($db, $constant."_SMALL", $conf->entity); if ($action == 'removelogosquarred') $mysoc->logo_squarred_small=''; else $mysoc->logo_small=''; $logofilename = $mysoc->logo_mini; - if ($action == 'removelogosquarred') $logofilename = $mysoc->logo_squarred_mini; + $logofilenamebis = $mysoc->logo_squarred_mini; + if ($action == 'removelogosquarred') + { + $logofilename = $mysoc->logo_squarred_mini; + $logofilenamebis = $mysoc->logo_mini; + } + $logominifile=$conf->mycompany->dir_output.'/logos/thumbs/'.$logofilename; - if ($logofilename != '') dol_delete_file($logominifile); + if ($logofilename != '' && $logofilename != $logofilenamebis) dol_delete_file($logominifile); dolibarr_del_const($db, $constant."_MINI", $conf->entity); if ($action == 'removelogosquarred') $mysoc->logo_squarred_mini=''; else $mysoc->logo_mini=''; From 4db57f53f9e77d831351c94820ab2ea8200e3c1c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 11:39:33 +0200 Subject: [PATCH 300/484] typo --- htdocs/langs/en_US/admin.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index b34ca99013d..93bf4b90f94 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -1072,7 +1072,7 @@ CompanyObject=Object of the company Logo=Logo LogoDesc=Main logo of company. Will be used into generated documents (PDF, ...) LogoSquarred=Logo (squarred) -LogoSquarredDesc=Must be a squarred icon (width = height). This logo will be used as the favorite icon or other need like for the top menu bar (if not disabled into disaply setup). +LogoSquarredDesc=Must be a squarred icon (width = height). This logo will be used as the favorite icon or other need like for the top menu bar (if not disabled into display setup). DoNotSuggestPaymentMode=Do not suggest NoActiveBankAccountDefined=No active bank account defined OwnerOfBankAccount=Owner of bank account %s From 2fb776ee347e3e051ff0a9e52f93773aa46cd6af Mon Sep 17 00:00:00 2001 From: VESSILLER Date: Fri, 11 Oct 2019 11:57:11 +0200 Subject: [PATCH 301/484] NEW add new rule fetchidfromcodeandlabel for categories import --- .../modules/import/import_csv.modules.php | 49 +++++++++++++++++-- .../modules/import/import_xlsx.modules.php | 49 +++++++++++++++++-- htdocs/core/modules/modCategorie.class.php | 11 +++-- 3 files changed, 94 insertions(+), 15 deletions(-) diff --git a/htdocs/core/modules/import/import_csv.modules.php b/htdocs/core/modules/import/import_csv.modules.php index 734f516fa78..cb3ae176026 100644 --- a/htdocs/core/modules/import/import_csv.modules.php +++ b/htdocs/core/modules/import/import_csv.modules.php @@ -381,6 +381,11 @@ class ImportCsv extends ModeleImports //dol_syslog("Table ".$tablename." check for entity into cache is ".$tablewithentity_cache[$tablename]); } + // array of fields to column index + $arrayfield = array(); + foreach($sort_array_match_file_to_database as $key => $val) { + $arrayfield[$val] = ($key-1); + } // Loop on each fields in the match array: $key = 1..n, $val=alias of field (s.nom) foreach($sort_array_match_file_to_database as $key => $val) @@ -459,14 +464,10 @@ class ImportCsv extends ModeleImports $error++; }*/ $param_array = array('', $newval, 0, $arrayrecord[0]['val']); // Param to fetch parent from account, in chart. - } elseif ($class == 'Categorie') { - if ($objimport->array_import_convertvalue[0][$val]['rule']=='fetchidfromcodeorlabel') { - $param_array = array('', $newval, $arrayrecord[1]['val']); - } } call_user_func_array(array($classinstance, $method), $param_array); // If not found, try the fetch from label - if (! ($classinstance->id != '') && $objimport->array_import_convertvalue[0][$val]['rule']=='fetchidfromcodeorlabel' && $class!='Categorie') + if (! ($classinstance->id != '') && $objimport->array_import_convertvalue[0][$val]['rule']=='fetchidfromcodeorlabel') { $param_array = array('', '', $newval); call_user_func_array(array($classinstance, $method), $param_array); @@ -489,6 +490,44 @@ class ImportCsv extends ModeleImports } } } + elseif ($objimport->array_import_convertvalue[0][$val]['rule']=='fetchidfromcodeandlabel') + { + $isidorref='id'; + if (! is_numeric($newval) && $newval != '' && ! preg_match('/^id:/i', $newval)) $isidorref='ref'; + $newval=preg_replace('/^(id|ref):/i', '', $newval); + + if ($isidorref == 'ref') { + $file = (empty($objimport->array_import_convertvalue[0][$val]['classfile']) ? $objimport->array_import_convertvalue[0][$val]['file'] : $objimport->array_import_convertvalue[0][$val]['classfile']); + $class = $objimport->array_import_convertvalue[0][$val]['class']; + $method = $objimport->array_import_convertvalue[0][$val]['method']; + $codefromfield = $objimport->array_import_convertvalue[0][$val]['codefromfield']; + $code = $arrayrecord[$arrayfield[$codefromfield]]['val']; + if ($this->cacheconvert[$file . '_' . $class . '_' . $method . '_' . $code][$newval] != '') { + $newval = $this->cacheconvert[$file . '_' . $class . '_' . $method . '_' . $code][$newval]; + } else { + $resultload = dol_include_once($file); + if (empty($resultload)) { + dol_print_error('', 'Error trying to call file=' . $file . ', class=' . $class . ', method=' . $method . ', code=' . $code); + break; + } + $classinstance = new $class($this->db); + // Try the fetch from code and ref + $param_array = array('', $newval, $code); + call_user_func_array(array($classinstance, $method), $param_array); + $this->cacheconvert[$file . '_' . $class . '_' . $method . '_' . $code][$newval] = $classinstance->id; + if ($classinstance->id > 0) // we found record + { + $newval = $classinstance->id; + } else { + if (!empty($objimport->array_import_convertvalue[0][$val]['dict'])) $this->errors[$error]['lib'] = $langs->trans('ErrorFieldValueNotIn', $key, $newval, 'scale', $langs->transnoentitiesnoconv($objimport->array_import_convertvalue[0][$val]['dict'])); + else $this->errors[$error]['lib'] = 'ErrorFieldValueNotIn'; + $this->errors[$error]['type'] = 'FOREIGNKEY'; + $errorforthistable++; + $error++; + } + } + } + } elseif ($objimport->array_import_convertvalue[0][$val]['rule']=='zeroifnull') { if (empty($newval)) $newval='0'; diff --git a/htdocs/core/modules/import/import_xlsx.modules.php b/htdocs/core/modules/import/import_xlsx.modules.php index 1a92062b15f..c5fcc1441e3 100644 --- a/htdocs/core/modules/import/import_xlsx.modules.php +++ b/htdocs/core/modules/import/import_xlsx.modules.php @@ -408,6 +408,11 @@ class ImportXlsx extends ModeleImports //dol_syslog("Table ".$tablename." check for entity into cache is ".$tablewithentity_cache[$tablename]); } + // array of fields to column index + $arrayfield = array(); + foreach($sort_array_match_file_to_database as $key => $val) { + $arrayfield[$val] = ($key-1); + } // Loop on each fields in the match array: $key = 1..n, $val=alias of field (s.nom) foreach($sort_array_match_file_to_database as $key => $val) @@ -486,14 +491,10 @@ class ImportXlsx extends ModeleImports $error++; }*/ $param_array = array('', $newval, 0, $arrayrecord[0]['val']); // Param to fetch parent from account, in chart. - } elseif ($class == 'Categorie') { - if ($objimport->array_import_convertvalue[0][$val]['rule']=='fetchidfromcodeorlabel') { - $param_array = array('', $newval, $arrayrecord[1]['val']); - } } call_user_func_array(array($classinstance, $method), $param_array); // If not found, try the fetch from label - if (! ($classinstance->id != '') && $objimport->array_import_convertvalue[0][$val]['rule']=='fetchidfromcodeorlabel' && $class!='Categorie') + if (! ($classinstance->id != '') && $objimport->array_import_convertvalue[0][$val]['rule']=='fetchidfromcodeorlabel') { $param_array = array('', '', $newval); call_user_func_array(array($classinstance, $method), $param_array); @@ -516,6 +517,44 @@ class ImportXlsx extends ModeleImports } } } + elseif ($objimport->array_import_convertvalue[0][$val]['rule']=='fetchidfromcodeandlabel') + { + $isidorref='id'; + if (! is_numeric($newval) && $newval != '' && ! preg_match('/^id:/i', $newval)) $isidorref='ref'; + $newval=preg_replace('/^(id|ref):/i', '', $newval); + + if ($isidorref == 'ref') { + $file = (empty($objimport->array_import_convertvalue[0][$val]['classfile']) ? $objimport->array_import_convertvalue[0][$val]['file'] : $objimport->array_import_convertvalue[0][$val]['classfile']); + $class = $objimport->array_import_convertvalue[0][$val]['class']; + $method = $objimport->array_import_convertvalue[0][$val]['method']; + $codefromfield = $objimport->array_import_convertvalue[0][$val]['codefromfield']; + $code = $arrayrecord[$arrayfield[$codefromfield]]['val']; + if ($this->cacheconvert[$file . '_' . $class . '_' . $method . '_' . $code][$newval] != '') { + $newval = $this->cacheconvert[$file . '_' . $class . '_' . $method . '_' . $code][$newval]; + } else { + $resultload = dol_include_once($file); + if (empty($resultload)) { + dol_print_error('', 'Error trying to call file=' . $file . ', class=' . $class . ', method=' . $method . ', code=' . $code); + break; + } + $classinstance = new $class($this->db); + // Try the fetch from code and ref + $param_array = array('', $newval, $code); + call_user_func_array(array($classinstance, $method), $param_array); + $this->cacheconvert[$file . '_' . $class . '_' . $method . '_' . $code][$newval] = $classinstance->id; + if ($classinstance->id > 0) // we found record + { + $newval = $classinstance->id; + } else { + if (!empty($objimport->array_import_convertvalue[0][$val]['dict'])) $this->errors[$error]['lib'] = $langs->trans('ErrorFieldValueNotIn', $key, $newval, 'scale', $langs->transnoentitiesnoconv($objimport->array_import_convertvalue[0][$val]['dict'])); + else $this->errors[$error]['lib'] = 'ErrorFieldValueNotIn'; + $this->errors[$error]['type'] = 'FOREIGNKEY'; + $errorforthistable++; + $error++; + } + } + } + } elseif ($objimport->array_import_convertvalue[0][$val]['rule']=='zeroifnull') { if (empty($newval)) $newval='0'; diff --git a/htdocs/core/modules/modCategorie.class.php b/htdocs/core/modules/modCategorie.class.php index e8a1bd218cd..eb9e2c6b4a1 100644 --- a/htdocs/core/modules/modCategorie.class.php +++ b/htdocs/core/modules/modCategorie.class.php @@ -413,11 +413,12 @@ class modCategorie extends DolibarrModules $this->import_regex_array[$r]=array('ca.type'=>'^[0|1|2|3]'); $this->import_convertvalue_array[$r] = array( 'ca.fk_parent' => array( - 'rule' => 'fetchidfromcodeorlabel', - 'classfile' => '/categories/class/categorie.class.php', - 'class' => 'Categorie', - 'method' => 'fetch', - 'element' => 'category' + 'rule' => 'fetchidfromcodeandlabel', + 'classfile' => '/categories/class/categorie.class.php', + 'class' => 'Categorie', + 'method' => 'fetch', + 'element' => 'category', + 'codefromfield' => 'ca.type' ) ); $typeexample=""; From 5801d09dbeb7480e59bb59d6b31249e1f6fe7390 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 12:28:13 +0200 Subject: [PATCH 302/484] NEW Use the squarre logo as favicon of pages --- ChangeLog | 1 + htdocs/core/lib/security2.lib.php | 5 +++- htdocs/core/menus/standard/eldy.lib.php | 6 ++-- htdocs/main.inc.php | 37 ++++++++++++------------- htdocs/public/test/test_arrays.php | 1 - htdocs/theme/eldy/manifest.json.php | 10 +++---- 6 files changed, 31 insertions(+), 29 deletions(-) diff --git a/ChangeLog b/ChangeLog index c8b7db19236..ede0e10a89f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -24,6 +24,7 @@ Following changes may create regressions for some external modules, but were nec * Removed function dol_micro_time. Use native PHP microtime instead. * The trigger BON_PRELEVEMENT_CREATE has been renamed into DIRECT_DEBIT_ORDER_CREATE. * The constant INVOICE_SHOW_POS_IN_EXPORT has been renamed into INVOICE_SHOW_POS. +* If your logo was visible on the menu bar, you must upload a new logo into 'Home-Setup-Company/Organization' to have it visible agin in menu. ***** ChangeLog for 10.0.2 compared to 10.0.1 ***** diff --git a/htdocs/core/lib/security2.lib.php b/htdocs/core/lib/security2.lib.php index 07eecf0f352..c81ea9d98d7 100644 --- a/htdocs/core/lib/security2.lib.php +++ b/htdocs/core/lib/security2.lib.php @@ -282,8 +282,11 @@ if (! function_exists('dol_loginfunction')) // Set jquery theme $dol_loginmesg = (! empty($_SESSION["dol_loginmesg"])?$_SESSION["dol_loginmesg"]:''); - $favicon=dol_buildpath('/theme/'.$conf->theme.'/img/favicon.ico', 1); + + $favicon = DOL_URL_ROOT.'/theme/common/dolibarr_logo_256x256.png'; + if (! empty($mysoc->logo_squarred_mini)) $favicon = DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_squarred_mini); if (! empty($conf->global->MAIN_FAVICON_URL)) $favicon=$conf->global->MAIN_FAVICON_URL; + $jquerytheme = 'base'; if (! empty($conf->global->MAIN_USE_JQUERY_THEME)) $jquerytheme = $conf->global->MAIN_USE_JQUERY_THEME; diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index dbf56429086..0bfc9f9b7b9 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -478,16 +478,16 @@ function print_eldy_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout = // Show logo company if (empty($conf->global->MAIN_MENU_INVERT) && empty($noout) && ! empty($conf->global->MAIN_SHOW_LOGO) && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { - $mysoc->logo_mini=(empty($conf->global->MAIN_INFO_SOCIETE_LOGO_MINI)?'':$conf->global->MAIN_INFO_SOCIETE_LOGO_MINI); + //$mysoc->logo_mini=(empty($conf->global->MAIN_INFO_SOCIETE_LOGO_MINI)?'':$conf->global->MAIN_INFO_SOCIETE_LOGO_MINI); $mysoc->logo_squarred_mini=(empty($conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI)?'':$conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI); if (! empty($mysoc->logo_squarred_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_squarred_mini)) { $urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_squarred_mini); } - elseif (! empty($mysoc->logo_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini)) + /*elseif (! empty($mysoc->logo_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini)) { $urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_mini); - } + }*/ else { $urllogo=DOL_URL_ROOT.'/theme/dolibarr_logo_squarred.png'; diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 2d612f5808d..33c0e289aed 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -1195,7 +1195,7 @@ function top_httphead($contenttype = 'text/html', $forcenocache = 0) */ function top_htmlhead($head, $title = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $disablejmobile = 0, $disablenofollow = 0) { - global $db, $conf, $langs, $user, $hookmanager; + global $db, $conf, $langs, $user, $mysoc, $hookmanager; top_httphead(); @@ -1224,9 +1224,11 @@ function top_htmlhead($head, $title = '', $disablejs = 0, $disablehead = 0, $arr print ''."\n"; // Favicon - $favicon = DOL_MAIN_URL_ROOT . '/theme/'.$conf->theme.'/img/favicon.ico'; + $favicon = DOL_URL_ROOT.'/theme/common/dolibarr_logo_256x256.png'; + if (! empty($mysoc->logo_squarred_mini)) $favicon = DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_squarred_mini); if (! empty($conf->global->MAIN_FAVICON_URL)) $favicon=$conf->global->MAIN_FAVICON_URL; if (empty($conf->dol_use_jmobile)) print ''."\n"; // Not required into an Android webview + //if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) print ''."\n"; //if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) print ''."\n"; //if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) print ''."\n"; @@ -1614,9 +1616,6 @@ function top_menu($head, $title = '', $target = '', $disablejs = 0, $disablehead print '
    '; - print '
    '; - print ''; - print '     '; - print ''; - print '
    '; - print '
    '; +print '
    '; +print ''; +//print '     '; +//print ''; +print '
    '; +//print '
    '; - print ''; -} -else -{ - /* - * Show parameters - */ +print ''; - // Actions buttons - //print '
    '; - //print ''.$langs->trans("Modify").''; - //print '

    '; - - print '
    '; - print ''; - print ''; - - - print ''; - - - print ''; - - - print ''; - - - print ''; - - - print ''; - - - if (! empty($conf->global->MAIN_SHOW_REGION_IN_STATE_SELECT)) print ''; - - print ''; - - print ''; - - print ''; - - print ''; - - print ''; - - print ''; - - print '
    '.$langs->trans("CompanyInfo").''.$langs->trans("Value").'
    '.$langs->trans("CompanyName").''; - print $conf->global->MAIN_INFO_ACCOUNTANT_NAME; - print '
    '.$langs->trans("CompanyAddress").'' . nl2br(empty($conf->global->MAIN_INFO_ACCOUNTANT_ADDRESS)?'':$conf->global->MAIN_INFO_ACCOUNTANT_ADDRESS) . '
    '.$langs->trans("CompanyZip").'' . (empty($conf->global->MAIN_INFO_ACCOUNTANT_ZIP)?'':$conf->global->MAIN_INFO_ACCOUNTANT_ZIP) . '
    '.$langs->trans("CompanyTown").'' . (empty($conf->global->MAIN_INFO_ACCOUNTANT_TOWN)?'':$conf->global->MAIN_INFO_ACCOUNTANT_TOWN) . '
    '.$langs->trans("CompanyCountry").''; - if (! empty($conf->global->MAIN_INFO_ACCOUNTANT_COUNTRY)) - { - $code = getCountry($conf->global->MAIN_INFO_ACCOUNTANT_COUNTRY, 2); - $img=picto_from_langcode($code); - print $img?$img.' ':''; - print getCountry($conf->global->MAIN_INFO_ACCOUNTANT_COUNTRY, 1); - } - print '
    '.$langs->trans("Region-State").''; - else print '
    '.$langs->trans("State").''; - if (! empty($conf->global->MAIN_INFO_ACCOUNTANT_STATE)) print getState($conf->global->MAIN_INFO_ACCOUNTANT_STATE, $conf->global->MAIN_SHOW_STATE_CODE, 0, $conf->global->MAIN_SHOW_REGION_IN_STATE_SELECT); - else print ' '; - print '
    '.$langs->trans("Phone").'' . dol_print_phone($conf->global->MAIN_INFO_ACCOUNTANT_PHONE, $mysoc->country_code) . '
    '.$langs->trans("Fax").'' . dol_print_phone($conf->global->MAIN_INFO_ACCOUNTANT_FAX, $mysoc->country_code) . '
    '.$langs->trans("Mail").'' . dol_print_email($conf->global->MAIN_INFO_ACCOUNTANT_MAIL, 0, 0, 0, 80) . '
    '.$langs->trans("Web").'' . dol_print_url($conf->global->MAIN_INFO_ACCOUNTANT_WEB, '_blank', 80) . '
    '.$langs->trans("AccountantFileNumber").'' . $conf->global->MAIN_INFO_ACCOUNTANT_CODE . '
    '.$langs->trans("Note").'' . (! empty($conf->global->MAIN_INFO_ACCOUNTANT_NOTE) ? nl2br($conf->global->MAIN_INFO_ACCOUNTANT_NOTE) : '') . '
    '; - print "
    "; - - print ''; - - // Actions buttons - print '
    '; - print ''; - print '
    '; -} llxFooter(); diff --git a/htdocs/admin/company.php b/htdocs/admin/company.php index 46bd2352b46..dde962fe9bc 100644 --- a/htdocs/admin/company.php +++ b/htdocs/admin/company.php @@ -383,919 +383,423 @@ $head = company_admin_prepare_head(); dol_fiche_head($head, 'company', $langs->trans("Company"), -1, 'company'); -print ''.$langs->trans("CompanyFundationDesc", $langs->transnoentities("Modify"), $langs->transnoentities("Save"))."
    \n"; +print ''.$langs->trans("CompanyFundationDesc", $langs->transnoentities("Save"))."
    \n"; print "
    \n"; -if ($action == 'edit' || $action == 'updateedit') + +/** + * Edit parameters + */ +print "\n".''."\n"; + +print '
    '; +print ''; +print ''; + +print ''; +print ''."\n"; + +// Name + +print ''."\n"; + +// Addresse + +print ''."\n"; + + +print ''."\n"; + + +print ''."\n"; + +// Country + +print ''."\n"; + + +print ''; +} +// ProfId5 +if ($langs->transcountry("ProfId5", $mysoc->country_code) != '-') +{ + + print ''; +} + +// ProfId6 +if ($langs->transcountry("ProfId6", $mysoc->country_code) != '-') +{ + + print ''; +} + +// TVA Intra + +print ''; + +// Object of the company + +print ''; +print ''; + +print '
    '.$langs->trans("CompanyInfo").''.$langs->trans("Value").'
    '; +print '
    '; +print '
    '; +print '
    '; +print '
    '; +//if (empty($country_selected)) $country_selected=substr($langs->defaultlang,-2); // By default, country of localization +print $form->select_country($mysoc->country_id, 'country_id'); +if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); +print '
    '; +$state_id=0; +if (! empty($conf->global->MAIN_INFO_SOCIETE_STATE)) { - /** - * Edition des parametres - */ - print "\n".''."\n"; - - print ''; - print ''; - print ''; - - print ''; - print ''."\n"; - - // Name - - print ''."\n"; - - // Addresse - - print ''."\n"; + $tmp=explode(':', $conf->global->MAIN_INFO_SOCIETE_STATE); + $state_id=$tmp[0]; +} +$formcompany->select_departement($state_id, $mysoc->country_code, 'state_id'); +print ''."\n"; - print ''."\n"; +print ''."\n"; - print ''."\n"; - - // Country - - print ''."\n"; +print ''; +print ''."\n"; - print ''; +print ''."\n"; + + +print ''; +print ''."\n"; + +// Web +print ''; +print ''."\n"; + +// Barcode +if (! empty($conf->barcode->enabled)) { + + print ''; + print ''; +} + +// Logo +print ''; + +// Logo (squarred) +print ''; + +// Note +print ''; +print ''; + +print '
    '.$langs->trans("CompanyInfo").''.$langs->trans("Value").'
    '; - print '
    '; - print '
    '; - print '
    '; +print $form->selectCurrency($conf->currency, "currency"); +print '
    '; - print '
    '; - //if (empty($country_selected)) $country_selected=substr($langs->defaultlang,-2); // By default, country of localization - print $form->select_country($mysoc->country_id, 'country_id'); - if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); - print '
    '; +print '
    '; - $state_id=0; - if (! empty($conf->global->MAIN_INFO_SOCIETE_STATE)) +print '
    '; +print '
    '; +print '
    '; +print '
    '; + print '
    '; +print '
    '; +print ''; +print ''; +if (! empty($mysoc->logo_mini)) { + print ''.img_delete($langs->trans("Delete")).''; + if (file_exists($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini)) { + print '   '; + print ''; + } +} else { + print ''; +} +print '
    '; +print '
    '; +print '
    '; +print ''; +print ''; +if (! empty($mysoc->logo_squarred_mini)) { + print ''.img_delete($langs->trans("Delete")).''; + if (file_exists($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_squarred_mini)) { + print '   '; + print ''; + } +} else { + print ''; +} +print '
    '; +print '
    '; +print '
    '; + +print '
    '; + +// IDs of the company (country-specific) +print ''; +print ''; + +$langs->load("companies"); + +// Managing Director(s) + +print ''; + +// GDPR contact + +print ''; + +// Capital + +print ''; + +// Juridical Status + +print ''; + +// ProfID1 +if ($langs->transcountry("ProfId1", $mysoc->country_code) != '-') +{ + + print ''."\n"; - - - print ''."\n"; - - - print ''; - print ''."\n"; - - - print ''; - print ''."\n"; - - - print ''; - print ''."\n"; - - // Web - print ''; - print ''."\n"; - - // Barcode - if (! empty($conf->barcode->enabled)) { - - print ''; - print ''; - } - - // Logo - print ''; - - // Logo (squarred) - print ''; - - // Note - print ''; - print ''; - - print '
    '.$langs->trans("CompanyIds").''.$langs->trans("Value").'
    '; +print '
    '; +print $form->textwithpicto($langs->trans("GDPRContact"), $langs->trans("GDPRContactDesc")); +print ''; +print '
    '; +print '
    '; +if ($mysoc->country_code) { + print $formcompany->select_juridicalstatus($conf->global->MAIN_INFO_SOCIETE_FORME_JURIDIQUE, $mysoc->country_code, '', 'forme_juridique_code'); +} else { + print $countrynotdefined; +} +print '
    '; + if (! empty($mysoc->country_code)) { - $tmp=explode(':', $conf->global->MAIN_INFO_SOCIETE_STATE); - $state_id=$tmp[0]; + print ''; } - $formcompany->select_departement($state_id, $mysoc->country_code, 'state_id'); - print '
    '; - print $form->selectCurrency($conf->currency, "currency"); - print '
    '; - print '
    '; - print '
    '; - print '
    '; - print '
    '; - print '
    '; - print '
    '; - print ''; - print ''; - if (! empty($mysoc->logo_mini)) { - print ''.img_delete($langs->trans("Delete")).''; - if (file_exists($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini)) { - print '   '; - print ''; - } - } else { - print ''; - } - print '
    '; - print '
    '; - print '
    '; - print ''; - print ''; - if (! empty($mysoc->logo_squarred_mini)) { - print ''.img_delete($langs->trans("Delete")).''; - if (file_exists($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_squarred_mini)) { - print '   '; - print ''; - } - } else { - print ''; - } - print '
    '; - print '
    '; - print '
    '; - - print '
    '; - - // IDs of the company (country-specific) - print ''; - print ''; - - $langs->load("companies"); - - // Managing Director(s) - - print ''; - - // GDPR contact - - print ''; - - // Capital - - print ''; - - // Juridical Status - - print ''; - - // ProfID1 - if ($langs->transcountry("ProfId1", $mysoc->country_code) != '-') - { - - print ''; - } - - // ProfId2 - if ($langs->transcountry("ProfId2", $mysoc->country_code) != '-') - { - - print ''; - } - - // ProfId3 - if ($langs->transcountry("ProfId3", $mysoc->country_code) != '-') - { - - print ''; - } - - // ProfId4 - if ($langs->transcountry("ProfId4", $mysoc->country_code) != '-') - { - - print ''; - } - - // ProfId5 - if ($langs->transcountry("ProfId5", $mysoc->country_code) != '-') - { - - print ''; - } - - // ProfId6 - if ($langs->transcountry("ProfId6", $mysoc->country_code) != '-') - { - - print ''; - } - - // TVA Intra - - print ''; - - // Object of the company - - print ''; - print ''; - - print '
    '.$langs->trans("CompanyIds").''.$langs->trans("Value").'
    '; - print '
    '; - print $form->textwithpicto($langs->trans("GDPRContact"), $langs->trans("GDPRContactDesc")); - print ''; - print '
    '; - print '
    '; - if ($mysoc->country_code) { - print $formcompany->select_juridicalstatus($conf->global->MAIN_INFO_SOCIETE_FORME_JURIDIQUE, $mysoc->country_code, '', 'forme_juridique_code'); - } else { + else + { print $countrynotdefined; } print '
    '; - if (! empty($mysoc->country_code)) - { - print ''; - } - else - { - print $countrynotdefined; - } - print '
    '; - if (! empty($mysoc->country_code)) - { - print ''; - } - else - { - print $countrynotdefined; - } - print '
    '; - if (! empty($mysoc->country_code)) - { - print ''; - } - else - { - print $countrynotdefined; - } - print '
    '; - if (! empty($mysoc->country_code)) - { - print ''; - } - else - { - print $countrynotdefined; - } - print '
    '; - if (! empty($mysoc->country_code)) - { - print ''; - } - else - { - print $countrynotdefined; - } - print '
    '; - if (! empty($mysoc->country_code)) - { - print ''; - } - else - { - print $countrynotdefined; - } - print '
    '; - print ''; - print '
    '; - print '
    '; - - - // Fiscal year start - print '
    '; - print ''; - print ''; - print ''; - print "\n"; - - print ''; - - print "
    '.$langs->trans("FiscalYearInformation").''.$langs->trans("Value").'
    '; - print $formother->select_month($conf->global->SOCIETE_FISCAL_MONTH_START, 'SOCIETE_FISCAL_MONTH_START', 0, 1, 'maxwidth100') . '
    "; - - - // Fiscal options - print '
    '; - print ''; - print ''; - print ''; - print ''; - print "\n"; - - - print ""; - print '\n"; - - - print ""; - print '\n"; - - print "
    '.$langs->trans("VATManagement").''.$langs->trans("Description").' 
    '; - print ""; - print ""; - if ($mysoc->country_code == 'FR') print "\n"; - print "
    ".$langs->trans("Example").': '.$langs->trans("VATIsUsedExampleFR")."
    "; - print "
    '; - print ""; - print ""; - if ($mysoc->country_code == 'FR') print "\n"; - print "
    ".$langs->trans("Example").': '.$langs->trans("VATIsNotUsedExampleFR")."
    "; - print "
    "; - - /* - * Local Taxes - */ - if ($mysoc->useLocalTax(1)) - { - // Local Tax 1 - print '
    '; - print ''; - print ''; - print ''; - print ''; - print "\n"; - - // Note: When option is not set, it must not appears as set on on, because there is no default value for this option - print ""; - print '\n"; - - - print ""; - print '\n"; - print "
    '.$langs->transcountry("LocalTax1Management", $mysoc->country_code).''.$langs->trans("Description").' 
    global->FACTURE_LOCAL_TAX1_OPTION == '1' || $conf->global->FACTURE_LOCAL_TAX1_OPTION == "localtax1on")?" checked":"")."> ".$langs->transcountry("LocalTax1IsUsed", $mysoc->country_code)."'; - print ''; - print ""; - $example=$langs->transcountry("LocalTax1IsUsedExample", $mysoc->country_code); - print ($example!="LocalTax1IsUsedExample"?"\n":""); - if(! isOnlyOneLocalTax(1)) - { - print ''; - } - - $opcions=array($langs->trans("CalcLocaltax1").' '.$langs->trans("CalcLocaltax1Desc"),$langs->trans("CalcLocaltax2").' - '.$langs->trans("CalcLocaltax2Desc"),$langs->trans("CalcLocaltax3").' - '.$langs->trans("CalcLocaltax3Desc")); - - print ''; - print "
    ".$langs->trans("Example").': '.$langs->transcountry("LocalTax1IsUsedExample", $mysoc->country_code)."
    : '; - $formcompany->select_localtax(1, $conf->global->MAIN_INFO_VALUE_LOCALTAX1, "lt1"); - print '
    '.$langs->trans("CalcLocaltax").': '; - print $form->selectarray("clt1", $opcions, $conf->global->MAIN_INFO_LOCALTAX_CALC1); - print '
    "; - print "
    global->FACTURE_LOCAL_TAX1_OPTION) || $conf->global->FACTURE_LOCAL_TAX1_OPTION == "localtax1off")?" checked":"")."> ".$langs->transcountry("LocalTax1IsNotUsed", $mysoc->country_code)."'; - print ""; - print ""; - $example=$langs->transcountry("LocalTax1IsNotUsedExample", $mysoc->country_code); - print ($example!="LocalTax1IsNotUsedExample"?"\n":""); - print "
    ".$langs->trans("Example").': '.$langs->transcountry("LocalTax1IsNotUsedExample", $mysoc->country_code)."
    "; - print "
    "; - } - if ($mysoc->useLocalTax(2)) - { - // Local Tax 2 - print '
    '; - print ''; - print ''; - print ''; - print ''; - print "\n"; - - - // Note: When option is not set, it must not appears as set on on, because there is no default value for this option - print ""; - print '\n"; - - - print ""; - print '\n"; - print "
    '.$langs->transcountry("LocalTax2Management", $mysoc->country_code).''.$langs->trans("Description").' 
    global->FACTURE_LOCAL_TAX2_OPTION == '1' || $conf->global->FACTURE_LOCAL_TAX2_OPTION == "localtax2on")?" checked":"")."> ".$langs->transcountry("LocalTax2IsUsed", $mysoc->country_code)."'; - print ''; - print ""; - $example=$langs->transcountry("LocalTax2IsUsedExample", $mysoc->country_code); - print ($example!="LocalTax2IsUsedExample"?"\n":""); - if(! isOnlyOneLocalTax(2)) - { - print ''; - } - print ''; - print "
    ".$langs->trans("Example").': '.$langs->transcountry("LocalTax2IsUsedExample", $mysoc->country_code)."
    : '; - $formcompany->select_localtax(2, $conf->global->MAIN_INFO_VALUE_LOCALTAX2, "lt2"); - print '
    : '; - print $form->selectarray("clt2", $opcions, $conf->global->MAIN_INFO_LOCALTAX_CALC2); - print '
    "; - print "
    global->FACTURE_LOCAL_TAX2_OPTION) || $conf->global->FACTURE_LOCAL_TAX2_OPTION == "localtax2off")?" checked":"")."> ".$langs->transcountry("LocalTax2IsNotUsed", $mysoc->country_code)."'; - print ""; - print ""; - $example=$langs->transcountry("LocalTax2IsNotUsedExample", $mysoc->country_code); - print ($example!="LocalTax2IsNotUsedExample"?"\n":""); - print "
    ".$langs->trans("Example").': '.$langs->transcountry("LocalTax2IsNotUsedExample", $mysoc->country_code)."
    "; - print "
    "; - } - - - print '
    '; - print ''; - print '     '; - print ''; - print '
    '; - print '
    '; - - print ''; } -else + +// ProfId2 +if ($langs->transcountry("ProfId2", $mysoc->country_code) != '-') { - /* - * Show parameters - */ - // Actions buttons - //print '
    '; - //print ''.$langs->trans("Modify").''; - //print '

    '; - - print '
    '; - print ''; - print ''; - - - print ''; - - - print ''; - - - print ''; - - - print ''; - - - print ''; - - - if (! empty($conf->global->MAIN_SHOW_REGION_IN_STATE_SELECT)) print ''; - - - print ''; - - - print ''; - - - print ''; - - - print ''; - - // Web - - print ''; - - // Barcode - - if (! empty($conf->barcode->enabled)) - { - print ''; - } - - // Logo - - print ''; +} - // Logo (squarred) +// ProfId3 +if ($langs->transcountry("ProfId3", $mysoc->country_code) != '-') +{ - print ''; +} - // Note - print ''; +// ProfId4 +if ($langs->transcountry("ProfId4", $mysoc->country_code) != '-') +{ - print '
    '.$langs->trans("CompanyInfo").''.$langs->trans("Value").'
    '.$langs->trans("CompanyName").''; - if (! empty($conf->global->MAIN_INFO_SOCIETE_NOM)) print $conf->global->MAIN_INFO_SOCIETE_NOM; - else print img_warning().' '.$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CompanyName")).''; - print '
    '.$langs->trans("CompanyAddress").'' . nl2br(empty($conf->global->MAIN_INFO_SOCIETE_ADDRESS)?'':$conf->global->MAIN_INFO_SOCIETE_ADDRESS) . '
    '.$langs->trans("CompanyZip").'' . (empty($conf->global->MAIN_INFO_SOCIETE_ZIP)?'':$conf->global->MAIN_INFO_SOCIETE_ZIP) . '
    '.$langs->trans("CompanyTown").'' . (empty($conf->global->MAIN_INFO_SOCIETE_TOWN)?'':$conf->global->MAIN_INFO_SOCIETE_TOWN) . '
    '.$langs->trans("CompanyCountry").''; - if ($mysoc->country_code) + print '
    '; + if (! empty($mysoc->country_code)) { - $img=picto_from_langcode($mysoc->country_code); - print $img?$img.' ':''; - print getCountry($mysoc->country_code, 1); - } - else print img_warning().' '.$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CompanyCountry")).''; - print '
    '.$langs->trans("Region-State").''; - else print '
    '.$langs->trans("State").''; - if (! empty($conf->global->MAIN_INFO_SOCIETE_STATE)) - { - $tmp=explode(':', $conf->global->MAIN_INFO_SOCIETE_STATE); - $state_id=$tmp[0]; - print getState($state_id, $conf->global->MAIN_SHOW_STATE_CODE, 0, $conf->global->MAIN_SHOW_REGION_IN_STATE_SELECT); - } - print '
    '.$langs->trans("CompanyCurrency").''; - print currency_name($conf->currency, 0); - print ' ('.$conf->currency; - print ($conf->currency != $langs->getCurrencySymbol($conf->currency) ? ' - '.$langs->getCurrencySymbol($conf->currency) : ''); - print ')'; - print ' - '.$langs->trans("PriceFormatInCurrentLanguage", $langs->defaultlang).' : '.price(price2num('99.333333333', 'MT'), 1, $langs, 1, -1, -1, $conf->currency); - print '
    '.$langs->trans("Phone").'' . dol_print_phone($conf->global->MAIN_INFO_SOCIETE_TEL, $mysoc->country_code) . '
    '.$langs->trans("Fax").'' . dol_print_phone($conf->global->MAIN_INFO_SOCIETE_FAX, $mysoc->country_code) . '
    '.$langs->trans("Mail").'' . dol_print_email($conf->global->MAIN_INFO_SOCIETE_MAIL, 0, 0, 0, 80) . '
    '.$langs->trans("Web").''; - $arrayofurl = preg_split('/\s/', $conf->global->MAIN_INFO_SOCIETE_WEB); - foreach($arrayofurl as $urltoshow) - { - if ($urltoshow) print dol_print_url($urltoshow, '_blank', 80); - } - print '
    '.$langs->trans("Gencod").'' . $conf->global->MAIN_INFO_SOCIETE_GENCOD . '
    '.$form->textwithpicto($langs->trans("Logo"), $langs->trans("LogoDesc")).''; - - $tagtd='tagtd '; - if ($conf->browser->layout == 'phone') $tagtd=''; - print '
    '; - print $mysoc->logo; - print '
    '; - - // It offers the generation of the thumbnail if it does not exist - if (!is_file($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini) && preg_match('/(\.jpg|\.jpeg|\.png)$/i', $mysoc->logo)) - { - print '  '; - } - elseif ($mysoc->logo_mini && is_file($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini)) - { - print ''; + print ''; } else { - print ''; + print $countrynotdefined; } - print '
    '; - print '
    '.$form->textwithpicto($langs->trans("LogoSquarred"), $langs->trans("LogoSquarredDesc")).''; - - $tagtd='tagtd '; - if ($conf->browser->layout == 'phone') $tagtd=''; - print '
    '; - print $mysoc->logo_squarred; - print '
    '; - - // It offers the generation of the thumbnail if it does not exist - if (!is_file($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_squarred_mini) && preg_match('/(\.jpg|\.jpeg|\.png)$/i', $mysoc->logo_squarred)) + print '
    '; + if (! empty($mysoc->country_code)) { - print '  '; - } - elseif ($mysoc->logo_squarred_mini && is_file($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_squarred_mini)) - { - print ''; + print ''; } else { - print ''; + print $countrynotdefined; } - print ''; - print '
    '.$langs->trans("Note").'' . (! empty($conf->global->MAIN_INFO_SOCIETE_NOTE) ? nl2br($conf->global->MAIN_INFO_SOCIETE_NOTE) : '') . '
    '; - print "
    "; + print '
    '; + if (! empty($mysoc->country_code)) + { + print ''; + } + else + { + print $countrynotdefined; + } + print '
    '; + if (! empty($mysoc->country_code)) + { + print ''; + } + else + { + print $countrynotdefined; + } + print '
    '; + if (! empty($mysoc->country_code)) + { + print ''; + } + else + { + print $countrynotdefined; + } + print '
    '; +print ''; +print '
    '; +print '
    '; + + +// Fiscal year start +print '
    '; +print ''; +print ''; +print ''; +print "\n"; + +print ''; + +print "
    '.$langs->trans("FiscalYearInformation").''.$langs->trans("Value").'
    '; +print $formother->select_month($conf->global->SOCIETE_FISCAL_MONTH_START, 'SOCIETE_FISCAL_MONTH_START', 0, 1, 'maxwidth100') . '
    "; + + +// Fiscal options +print '
    '; +print ''; +print ''; +print ''; +print ''; +print "\n"; + + +print ""; +print '\n"; + + +print ""; +print '\n"; + +print "
    '.$langs->trans("VATManagement").''.$langs->trans("Description").' 
    '; +print ""; +print ""; +if ($mysoc->country_code == 'FR') print "\n"; +print "
    ".$langs->trans("Example").': '.$langs->trans("VATIsUsedExampleFR")."
    "; +print "
    '; +print ""; +print ""; +if ($mysoc->country_code == 'FR') print "\n"; +print "
    ".$langs->trans("Example").': '.$langs->trans("VATIsNotUsedExampleFR")."
    "; +print "
    "; + +/* + * Local Taxes + */ +if ($mysoc->useLocalTax(1)) +{ + // Local Tax 1 print '
    '; - - - // IDs of the company (country-specific) - print '
    '; - print ''; - - print '
    '; - print ''; - print ''; - - // Managing Director(s) - - print ''; - - // GDPR Contact - - print ''; - - // Capital - - print ''; - - // Juridical Status - - print ''; - - // ProfId1 - if ($langs->transcountry("ProfId1", $mysoc->country_code) != '-') - { - - print ''; - } - - // ProfId2 - if ($langs->transcountry("ProfId2", $mysoc->country_code) != '-') - { - - print ''; - } - - // ProfId3 - if ($langs->transcountry("ProfId3", $mysoc->country_code) != '-') - { - - print ''; - } - - // ProfId4 - if ($langs->transcountry("ProfId4", $mysoc->country_code) != '-') - { - - print ''; - } - - // ProfId5 - if ($langs->transcountry("ProfId5", $mysoc->country_code) != '-') - { - - print ''; - } - - // ProfId6 - if ($langs->transcountry("ProfId6", $mysoc->country_code) != '-') - { - - print ''; - } - - // VAT - - print ''; - print ''; - print ''; - - - print ''; - - print '
    '.$langs->trans("CompanyIds").''.$langs->trans("Value").'
    '.$langs->trans("ManagingDirectors").''; - print $conf->global->MAIN_INFO_SOCIETE_MANAGERS . '
    '.$langs->trans("GDPRContact").''; - print $conf->global->MAIN_INFO_GDPR . '
    '.$langs->trans("Capital").''; - print $conf->global->MAIN_INFO_CAPITAL . '
    '.$langs->trans("JuridicalStatus").''; - print getFormeJuridiqueLabel($conf->global->MAIN_INFO_SOCIETE_FORME_JURIDIQUE); - print '
    '.$langs->transcountry("ProfId1", $mysoc->country_code).''; - if (! empty($conf->global->MAIN_INFO_SIREN)) - { - print $conf->global->MAIN_INFO_SIREN; - $s = $mysoc->id_prof_url(1, $mysoc); - if ($s) print ' - '.$s; - } else { - print ' '; - } - print '
    '.$langs->transcountry("ProfId2", $mysoc->country_code).''; - if (! empty($conf->global->MAIN_INFO_SIRET)) - { - print $conf->global->MAIN_INFO_SIRET; - $s = $mysoc->id_prof_url(2, $mysoc); - if ($s) print ' - '.$s; - } else { - print ' '; - } - print '
    '.$langs->transcountry("ProfId3", $mysoc->country_code).''; - if (! empty($conf->global->MAIN_INFO_APE)) - { - print $conf->global->MAIN_INFO_APE; - $s = $mysoc->id_prof_url(3, $mysoc); - if ($s) print ' - '.$s; - } else { - print ' '; - } - print '
    '.$langs->transcountry("ProfId4", $mysoc->country_code).''; - if (! empty($conf->global->MAIN_INFO_RCS)) - { - print $conf->global->MAIN_INFO_RCS; - $s = $mysoc->id_prof_url(4, $mysoc); - if ($s) print ' - '.$s; - } else { - print ' '; - } - print '
    '.$langs->transcountry("ProfId5", $mysoc->country_code).''; - if (! empty($conf->global->MAIN_INFO_PROFID5)) - { - print $conf->global->MAIN_INFO_PROFID5; - $s = $mysoc->id_prof_url(5, $mysoc); - if ($s) print ' - '.$s; - } else { - print ' '; - } - print '
    '.$langs->transcountry("ProfId6", $mysoc->country_code).''; - if (! empty($conf->global->MAIN_INFO_PROFID6)) - { - print $conf->global->MAIN_INFO_PROFID6; - $s = $mysoc->id_prof_url(6, $mysoc); - if ($s) print ' - '.$s; - } else { - print ' '; - } - print '
    '.$langs->trans("VATIntra").''; - if (! empty($conf->global->MAIN_INFO_TVAINTRA)) - { - $s=''; - $s.=$conf->global->MAIN_INFO_TVAINTRA; - $s.=''; - if (empty($conf->global->MAIN_DISABLEVATCHECK) && $mysoc->isInEEC()) - { - $s.=' - '; - if (! empty($conf->use_javascript_ajax)) - { - print "\n"; - print ''; - print "\n"; - $s.=''.$langs->trans("VATIntraCheck").''; - $s = $form->textwithpicto($s, $langs->trans("VATIntraCheckDesc", $langs->transnoentitiesnoconv("VATIntraCheck")), 1); - } - else - { - $s.='id_country).'" target="_blank">'.img_picto($langs->trans("VATIntraCheckableOnEUSite"), 'help').''; - } - } - print $s; - } - else - { - print ' '; - } - print '
    '.$langs->trans("CompanyObject").'' . (! empty($conf->global->MAIN_INFO_SOCIETE_OBJECT) ? nl2br($conf->global->MAIN_INFO_SOCIETE_OBJECT) : '') . '
    '; - print "
    "; - - print '
    '; - - /* - * fiscal year beginning - */ - print '
    '; - - print '
    '; print ''; print ''; - print ''; + print ''; + print ''; print "\n"; + // Note: When option is not set, it must not appears as set on on, because there is no default value for this option + print ""; + print '\n"; - /* - * tax options - */ + + print ""; + print '\n"; + print "
    '.$langs->trans("FiscalYearInformation").''.$langs->trans("Value").''.$langs->transcountry("LocalTax1Management", $mysoc->country_code).''.$langs->trans("Description").' 
    global->FACTURE_LOCAL_TAX1_OPTION == '1' || $conf->global->FACTURE_LOCAL_TAX1_OPTION == "localtax1on")?" checked":"")."> ".$langs->transcountry("LocalTax1IsUsed", $mysoc->country_code)."'; + print ''; + print ""; + $example=$langs->transcountry("LocalTax1IsUsedExample", $mysoc->country_code); + print ($example!="LocalTax1IsUsedExample"?"\n":""); + if(! isOnlyOneLocalTax(1)) + { + print ''; + } - print ''; + $opcions=array($langs->trans("CalcLocaltax1").' '.$langs->trans("CalcLocaltax1Desc"),$langs->trans("CalcLocaltax2").' - '.$langs->trans("CalcLocaltax2Desc"),$langs->trans("CalcLocaltax3").' - '.$langs->trans("CalcLocaltax3Desc")); + print ''; print "
    ".$langs->trans("Example").': '.$langs->transcountry("LocalTax1IsUsedExample", $mysoc->country_code)."
    : '; + $formcompany->select_localtax(1, $conf->global->MAIN_INFO_VALUE_LOCALTAX1, "lt1"); + print '
    '.$langs->trans("FiscalMonthStart").''; - $monthstart=(! empty($conf->global->SOCIETE_FISCAL_MONTH_START)) ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1; - print dol_print_date(dol_mktime(12, 0, 0, $monthstart, 1, 2000, 1), '%B', 'gm') . '
    '.$langs->trans("CalcLocaltax").': '; + print $form->selectarray("clt1", $opcions, $conf->global->MAIN_INFO_LOCALTAX_CALC1); + print '
    "; - print ""; + print "
    global->FACTURE_LOCAL_TAX1_OPTION) || $conf->global->FACTURE_LOCAL_TAX1_OPTION == "localtax1off")?" checked":"")."> ".$langs->transcountry("LocalTax1IsNotUsed", $mysoc->country_code)."'; + print ""; + print ""; + $example=$langs->transcountry("LocalTax1IsNotUsedExample", $mysoc->country_code); + print ($example!="LocalTax1IsNotUsedExample"?"\n":""); + print "
    ".$langs->trans("Example").': '.$langs->transcountry("LocalTax1IsNotUsedExample", $mysoc->country_code)."
    "; + print "
    "; +} +if ($mysoc->useLocalTax(2)) +{ + // Local Tax 2 print '
    '; - print '
    '; print ''; print ''; - print ''; + print ''; print ''; print "\n"; - print '"; + // Note: When option is not set, it must not appears as set on on, because there is no default value for this option + print ""; print '\n"; - print '"; + print ""; print '\n"; - print "
    '.$langs->trans("VATManagement").''.$langs->trans("Description").''.$langs->transcountry("LocalTax2Management", $mysoc->country_code).''.$langs->trans("Description").' 
    '; - print "global->FACTURE_TVAOPTION)?"":" checked")."> ".$langs->trans("VATIsUsed")."
    global->FACTURE_LOCAL_TAX2_OPTION == '1' || $conf->global->FACTURE_LOCAL_TAX2_OPTION == "localtax2on")?" checked":"")."> ".$langs->transcountry("LocalTax2IsUsed", $mysoc->country_code)."'; - print ""; - print ""; - if ($mysoc->country_code == 'FR') print "\n"; + print '
    ".$langs->trans("Example").': '.$langs->trans("VATIsUsedExampleFR")."
    '; + print ""; + $example=$langs->transcountry("LocalTax2IsUsedExample", $mysoc->country_code); + print ($example!="LocalTax2IsUsedExample"?"\n":""); + if(! isOnlyOneLocalTax(2)) + { + print ''; + } + print ''; print "
    ".$langs->trans("Example").': '.$langs->transcountry("LocalTax2IsUsedExample", $mysoc->country_code)."
    : '; + $formcompany->select_localtax(2, $conf->global->MAIN_INFO_VALUE_LOCALTAX2, "lt2"); + print '
    : '; + print $form->selectarray("clt2", $opcions, $conf->global->MAIN_INFO_LOCALTAX_CALC2); + print '
    "; print "
    '; - print "global->FACTURE_TVAOPTION)?" checked":"")."> ".$langs->trans("VATIsNotUsed")."
    global->FACTURE_LOCAL_TAX2_OPTION) || $conf->global->FACTURE_LOCAL_TAX2_OPTION == "localtax2off")?" checked":"")."> ".$langs->transcountry("LocalTax2IsNotUsed", $mysoc->country_code)."'; print ""; - print ""; - if ($mysoc->country_code == 'FR') print "\n"; + print ""; + $example=$langs->transcountry("LocalTax2IsNotUsedExample", $mysoc->country_code); + print ($example!="LocalTax2IsNotUsedExample"?"\n":""); print "
    ".$langs->trans("VATIsNotUsedDesc")."
    ".$langs->trans("Example").': '.$langs->trans("VATIsNotUsedExampleFR")."
    ".$langs->trans("Example").': '.$langs->transcountry("LocalTax2IsNotUsedExample", $mysoc->country_code)."
    "; print "
    "; - print "
    "; - - /* - * Local Taxes - */ - if ($mysoc->useLocalTax(1)) // True if we found at least on vat with a setup adding a localtax 1 - { - // Local Tax 1 - print '
    '; - print '
    '; - print ''; - print ''; - print ''; - print ''; - print "\n"; - - - print ""; - print '\n"; - - - print '"; - print '\n"; - - print "
    '.$langs->transcountry("LocalTax1Management", $mysoc->country_code).''.$langs->trans("Description").' 
    "; - print "global->FACTURE_LOCAL_TAX1_OPTION == '1' || $conf->global->FACTURE_LOCAL_TAX1_OPTION == "localtax1on")?" checked":"")."> ".$langs->transcountry("LocalTax1IsUsed", $mysoc->country_code)."'; - print ""; - print ""; - $example=$langs->transcountry("LocalTax1IsUsedExample", $mysoc->country_code); - print ($example!="LocalTax1IsUsedExample"?"\n":""); - if($conf->global->MAIN_INFO_VALUE_LOCALTAX1!=0) - { - print ''; - } - print ''; - print "
    ".$langs->transcountry("LocalTax1IsUsedDesc", $mysoc->country_code)."
    ".$langs->trans("Example").': '.$langs->transcountry("LocalTax1IsUsedExample", $mysoc->country_code)."
    '.$langs->trans("LTRate").': '. $conf->global->MAIN_INFO_VALUE_LOCALTAX1 .'
    '.$langs->trans("CalcLocaltax").': '; - if($conf->global->MAIN_INFO_LOCALTAX_CALC1==0) - { - print $langs->trans("CalcLocaltax1").' - '.$langs->trans("CalcLocaltax1Desc"); - } - elseif($conf->global->MAIN_INFO_LOCALTAX_CALC1==1) - { - print $langs->trans("CalcLocaltax2").' - '.$langs->trans("CalcLocaltax2Desc"); - } - elseif($conf->global->MAIN_INFO_LOCALTAX_CALC1==2){ - print $langs->trans("CalcLocaltax3").' - '.$langs->trans("CalcLocaltax3Desc"); - } - - print '
    "; - print "
    '; - print "global->FACTURE_LOCAL_TAX1_OPTION) || $conf->global->FACTURE_LOCAL_TAX1_OPTION == "localtax1off")?" checked":"")."> ".$langs->transcountry("LocalTax1IsNotUsed", $mysoc->country_code)."'; - print ""; - print ""; - $example=$langs->transcountry("LocalTax1IsNotUsedExample", $mysoc->country_code); - print ($example!="LocalTax1IsNotUsedExample"?"\n":""); - print "
    ".$langs->trans("Example").': '.$langs->transcountry("LocalTax1IsNotUsedExample", $mysoc->country_code)."
    "; - print "
    "; - print "
    "; - } - if ($mysoc->useLocalTax(2)) // True if we found at least on vat with a setup adding a localtax 1 - { - // Local Tax 2 - print '
    '; - print '
    '; - print ''; - print ''; - print ''; - print ''; - print "\n"; - - - print ""; - print '\n"; - - - print ""; - print '\n"; - - print "
    '.$langs->transcountry("LocalTax2Management", $mysoc->country_code).''.$langs->trans("Description").' 
    "; - print "global->FACTURE_LOCAL_TAX2_OPTION == '1' || $conf->global->FACTURE_LOCAL_TAX2_OPTION == "localtax2on")?" checked":"")."> ".$langs->transcountry("LocalTax2IsUsed", $mysoc->country_code)."'; - print ""; - print ""; - $example=$langs->transcountry("LocalTax2IsUsedExample", $mysoc->country_code); - print ($example!="LocalTax2IsUsedExample"?"\n":""); - if($conf->global->MAIN_INFO_VALUE_LOCALTAX2!=0) - { - print ''; - } - print ''; - print "
    ".$langs->trans("Example").': '.$langs->transcountry("LocalTax2IsUsedExample", $mysoc->country_code)."
    '.$langs->trans("LTRate").': '. $conf->global->MAIN_INFO_VALUE_LOCALTAX2 .'
    '.$langs->trans("CalcLocaltax").': '; - if($conf->global->MAIN_INFO_LOCALTAX_CALC2==0) - { - print $langs->trans("CalcLocaltax1").' - '.$langs->trans("CalcLocaltax1Desc"); - } - elseif($conf->global->MAIN_INFO_LOCALTAX_CALC2==1) - { - print $langs->trans("CalcLocaltax2").' - '.$langs->trans("CalcLocaltax2Desc"); - } - elseif($conf->global->MAIN_INFO_LOCALTAX_CALC2==2) - { - print $langs->trans("CalcLocaltax3").' - '.$langs->trans("CalcLocaltax3Desc"); - } - - print '
    "; - print "
    global->FACTURE_LOCAL_TAX2_OPTION) || $conf->global->FACTURE_LOCAL_TAX2_OPTION == "localtax2off")?" checked":"")."> ".$langs->transcountry("LocalTax2IsNotUsed", $mysoc->country_code)."'; - print ""; - print ""; - $example=$langs->transcountry("LocalTax2IsNotUsedExample", $mysoc->country_code); - print ($example!="LocalTax2IsNotUsedExample"?"\n":""); - print "
    ".$langs->trans("Example").': '.$langs->transcountry("LocalTax2IsNotUsedExample", $mysoc->country_code)."
    "; - print "
    "; - print "
    "; - } - - - // Actions buttons - print '
    '; - print ''; - print '
    '; } + +print '
    '; +print ''; +print '
    '; + +print ''; + + // End of page llxFooter(); $db->close(); diff --git a/htdocs/admin/ihm.php b/htdocs/admin/ihm.php index edf3e4dbe86..df8929fd8fe 100644 --- a/htdocs/admin/ihm.php +++ b/htdocs/admin/ihm.php @@ -224,219 +224,217 @@ print load_fiche_titre($langs->trans("GUISetup"), '', 'title_setup'); print ''.$langs->trans("DisplayDesc")."
    \n"; print "
    \n"; -if (1 == 1) // Edit +//WYSIWYG Editor +require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; + +print '
    '; +print ''; +print ''; + +clearstatcache(); + +print '
    '; +print ''; +print ''; +print ''; +print ''; + +// Default language +print ''; +print ''; +print ''; + +// Multilingual GUI +print ''; +print ''; +print ''; + +print '
    '.$langs->trans("Language").' 
    '.$langs->trans("DefaultLanguage").''; +print $formadmin->select_language($conf->global->MAIN_LANG_DEFAULT, 'MAIN_LANG_DEFAULT', 1, 0, 0, 0, 0, 'minwidth300', 2); +print ' 
    '.$langs->trans("EnableMultilangInterface").''; +print $form->selectyesno('MAIN_MULTILANGS', $conf->global->MAIN_MULTILANGS, 1); +print ' 

    '."\n"; + +// Themes and themes options +showSkins(null, 1); +print '
    '; + +// Other +print ''; +print ''; +print ''; +print ''; + +// Disable javascript and ajax +print ''; +print ''; +print ''; + +// Max size of lists +print ''; +print ''; +print ''; + +// Max size of short lists on customer card +print ''; +print ''; +print ''; + +// show input border +/* + print ''; + print ''; + print ''; + */ + +// First day for weeks +print ''; +print ''; +print ''; + +// DefaultWorkingDays +print ''; +print ''; +print ''; + +// DefaultWorkingHours +print ''; +print ''; +print ''; + +// Firstname/Name +print ''; +print ''; +print ''; + +// Hide unauthorized button +print ''; +print ''; +print ''; + +// Hide version link +/* + +print ''; +print ''; +print ''; +*/ + +// Show bugtrack link +print ''; +print ''; +print ''; + +// Hide wiki link on login page +$pictohelp=''; +print ''; +print ''; +print ''; + +// Message of the day on home page +$substitutionarray=getCommonSubstitutionArray($langs, 0, array('object','objectamount')); +complete_substitutions_array($substitutionarray, $langs); + +print ''."\n"; + +print '
    '.$langs->trans("Miscellaneous").' 
    '.$langs->trans("DisableJavascript").''; +print $form->selectyesno('MAIN_DISABLE_JAVASCRIPT', isset($conf->global->MAIN_DISABLE_JAVASCRIPT)?$conf->global->MAIN_DISABLE_JAVASCRIPT:0, 1); +print ' 
    '.$langs->trans("DefaultMaxSizeList").' 
    '.$langs->trans("DefaultMaxSizeShortList").' 
    '.$langs->trans("showInputBorder").''; + print $form->selectyesno('main_showInputBorder',isset($conf->global->THEME_ELDY_SHOW_BORDER_INPUT)?$conf->global->THEME_ELDY_SHOW_BORDER_INPUT:0,1); + print ' 
    '.$langs->trans("WeekStartOnDay").''; +print $formother->select_dayofweek((isset($conf->global->MAIN_START_WEEK)?$conf->global->MAIN_START_WEEK:'1'), 'MAIN_START_WEEK', 0); +print ' 
    '.$langs->trans("DefaultWorkingDays").''; +print ''; +print ' 
    '.$langs->trans("DefaultWorkingHours").''; +print ''; +print ' 
    '.$langs->trans("FirstnameNamePosition").''; +$array=array(0=>$langs->trans("Firstname").' '.$langs->trans("Lastname"), 1=>$langs->trans("Lastname").' '.$langs->trans("Firstname")); +print $form->selectarray('MAIN_FIRSTNAME_NAME_POSITION', $array, (isset($conf->global->MAIN_FIRSTNAME_NAME_POSITION)?$conf->global->MAIN_FIRSTNAME_NAME_POSITION:0)); +print ' 
    '.$langs->trans("ButtonHideUnauthorized").''; +print $form->selectyesno('MAIN_BUTTON_HIDE_UNAUTHORIZED', isset($conf->global->MAIN_BUTTON_HIDE_UNAUTHORIZED)?$conf->global->MAIN_BUTTON_HIDE_UNAUTHORIZED:0, 1); +print ' 
    '.$langs->trans("HideVersionLink").''; +print $form->selectyesno('MAIN_HIDE_VERSION',$conf->global->MAIN_HIDE_VERSION,1); +print ' 
    '.$langs->trans("ShowBugTrackLink", $langs->transnoentitiesnoconv("FindBug")).''; +print $form->selectyesno('MAIN_BUGTRACK_ENABLELINK', $conf->global->MAIN_BUGTRACK_ENABLELINK, 1); +print ' 
    '.$langs->trans("DisableLinkToHelp", $pictohelp).''; +print $form->selectyesno('MAIN_HELP_DISABLELINK', isset($conf->global->MAIN_HELP_DISABLELINK)?$conf->global->MAIN_HELP_DISABLELINK:0, 1); +print ' 
    '; +$texthelp=$langs->trans("FollowingConstantsWillBeSubstituted").'
    '; +foreach($substitutionarray as $key => $val) { - //WYSIWYG Editor - require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - - print ''; - print ''; - print ''; - - clearstatcache(); - - print '
    '; - print ''; - print ''; - print ''; - print ''; - - // Default language - print ''; - print ''; - print ''; - - // Multilingual GUI - print ''; - print ''; - print ''; - - print '
    '.$langs->trans("Language").' 
    '.$langs->trans("DefaultLanguage").''; - print $formadmin->select_language($conf->global->MAIN_LANG_DEFAULT, 'MAIN_LANG_DEFAULT', 1, 0, 0, 0, 0, 'minwidth300', 2); - print ' 
    '.$langs->trans("EnableMultilangInterface").''; - print $form->selectyesno('MAIN_MULTILANGS', $conf->global->MAIN_MULTILANGS, 1); - print ' 

    '."\n"; - - // Themes and themes options - showSkins(null, 1); - print '
    '; - - // Other - print ''; - print ''; - print ''; - print ''; - - // Disable javascript and ajax - print ''; - print ''; - print ''; - - // Max size of lists - print ''; - print ''; - print ''; - - // Max size of short lists on customer card - print ''; - print ''; - print ''; - - // show input border - /* - print ''; - print ''; - print ''; - */ - - // First day for weeks - print ''; - print ''; - print ''; - - // DefaultWorkingDays - print ''; - print ''; - print ''; - - // DefaultWorkingHours - print ''; - print ''; - print ''; - - // Firstname/Name - print ''; - print ''; - print ''; - - // Hide unauthorized button - print ''; - print ''; - print ''; - - // Hide version link - /* - - print ''; - print ''; - print ''; - */ - - // Show bugtrack link - print ''; - print ''; - print ''; - - // Hide wiki link on login page - $pictohelp=''; - print ''; - print ''; - print ''; - - // Message of the day on home page - $substitutionarray=getCommonSubstitutionArray($langs, 0, array('object','objectamount')); - complete_substitutions_array($substitutionarray, $langs); - - print ''."\n"; - - print '
    '.$langs->trans("Miscellaneous").' 
    '.$langs->trans("DisableJavascript").''; - print $form->selectyesno('MAIN_DISABLE_JAVASCRIPT', isset($conf->global->MAIN_DISABLE_JAVASCRIPT)?$conf->global->MAIN_DISABLE_JAVASCRIPT:0, 1); - print ' 
    '.$langs->trans("DefaultMaxSizeList").' 
    '.$langs->trans("DefaultMaxSizeShortList").' 
    '.$langs->trans("showInputBorder").''; - print $form->selectyesno('main_showInputBorder',isset($conf->global->THEME_ELDY_SHOW_BORDER_INPUT)?$conf->global->THEME_ELDY_SHOW_BORDER_INPUT:0,1); - print ' 
    '.$langs->trans("WeekStartOnDay").''; - print $formother->select_dayofweek((isset($conf->global->MAIN_START_WEEK)?$conf->global->MAIN_START_WEEK:'1'), 'MAIN_START_WEEK', 0); - print ' 
    '.$langs->trans("DefaultWorkingDays").''; - print ''; - print ' 
    '.$langs->trans("DefaultWorkingHours").''; - print ''; - print ' 
    '.$langs->trans("FirstnameNamePosition").''; - $array=array(0=>$langs->trans("Firstname").' '.$langs->trans("Lastname"), 1=>$langs->trans("Lastname").' '.$langs->trans("Firstname")); - print $form->selectarray('MAIN_FIRSTNAME_NAME_POSITION', $array, (isset($conf->global->MAIN_FIRSTNAME_NAME_POSITION)?$conf->global->MAIN_FIRSTNAME_NAME_POSITION:0)); - print ' 
    '.$langs->trans("ButtonHideUnauthorized").''; - print $form->selectyesno('MAIN_BUTTON_HIDE_UNAUTHORIZED', isset($conf->global->MAIN_BUTTON_HIDE_UNAUTHORIZED)?$conf->global->MAIN_BUTTON_HIDE_UNAUTHORIZED:0, 1); - print ' 
    '.$langs->trans("HideVersionLink").''; - print $form->selectyesno('MAIN_HIDE_VERSION',$conf->global->MAIN_HIDE_VERSION,1); - print ' 
    '.$langs->trans("ShowBugTrackLink", $langs->transnoentitiesnoconv("FindBug")).''; - print $form->selectyesno('MAIN_BUGTRACK_ENABLELINK', $conf->global->MAIN_BUGTRACK_ENABLELINK, 1); - print ' 
    '.$langs->trans("DisableLinkToHelp", $pictohelp).''; - print $form->selectyesno('MAIN_HELP_DISABLELINK', isset($conf->global->MAIN_HELP_DISABLELINK)?$conf->global->MAIN_HELP_DISABLELINK:0, 1); - print ' 
    '; - $texthelp=$langs->trans("FollowingConstantsWillBeSubstituted").'
    '; - foreach($substitutionarray as $key => $val) - { - $texthelp.=$key.'
    '; - } - print $form->textwithpicto($langs->trans("MessageOfDay"), $texthelp, 1, 'help', '', 0, 2, 'tooltipmessageofday'); - - print '
    '; - - $doleditor = new DolEditor('main_motd', (isset($conf->global->MAIN_MOTD)?$conf->global->MAIN_MOTD:''), '', 142, 'dolibarr_notes', 'In', false, true, true, ROWS_4, '90%'); - $doleditor->Create(); - - print '
    '."\n"; - - print '
    '; - - // Other - print ''; - print ''; - print ''; - print ''; - - // Message on login page - $substitutionarray=getCommonSubstitutionArray($langs, 0, array('object','objectamount','user')); - complete_substitutions_array($substitutionarray, $langs); - print ''."\n"; - - // Hide helpcenter link on login page - print ''; - print ''; - print ''; - - // Background - print ''; - - print '
    '.$langs->trans("LoginPage").' 
    '; - $texthelp=$langs->trans("FollowingConstantsWillBeSubstituted").'
    '; - foreach($substitutionarray as $key => $val) - { - $texthelp.=$key.'
    '; - } - print $form->textwithpicto($langs->trans("MessageLogin"), $texthelp, 1, 'help', '', 0, 2, 'tooltipmessagelogin'); - print '
    '; - $doleditor = new DolEditor('main_home', (isset($conf->global->MAIN_HOME)?$conf->global->MAIN_HOME:''), '', 142, 'dolibarr_notes', 'In', false, true, true, ROWS_4, '90%'); - $doleditor->Create(); - print '
    '.$langs->trans("DisableLinkToHelpCenter").''; - print $form->selectyesno('MAIN_HELPCENTER_DISABLELINK', isset($conf->global->MAIN_HELPCENTER_DISABLELINK)?$conf->global->MAIN_HELPCENTER_DISABLELINK:0, 1); - print ' 
    '; - print '
    '; - $disabled = ''; - if (! empty($conf->global->ADD_UNSPLASH_LOGIN_BACKGROUND)) $disabled = ' disabled="disabled"'; - print ''; - if ($disabled) - { - print '('.$langs->trans("DisabledByOptionADD_UNSPLASH_LOGIN_BACKGROUND").') '; - } - if (! empty($conf->global->MAIN_LOGIN_BACKGROUND)) { - print ''.img_delete($langs->trans("Delete")).''; - if (file_exists($conf->mycompany->dir_output.'/logos/'.$conf->global->MAIN_LOGIN_BACKGROUND)) { - print '   '; - print ''; - } - } else { - print ''; - } - print '
    '; - print '
    '."\n"; - - - print '
    '; - print '
    '; - print ''; - print '
    '; - - print ''; + $texthelp.=$key.'
    '; } +print $form->textwithpicto($langs->trans("MessageOfDay"), $texthelp, 1, 'help', '', 0, 2, 'tooltipmessageofday'); + +print '
    '; + +$doleditor = new DolEditor('main_motd', (isset($conf->global->MAIN_MOTD)?$conf->global->MAIN_MOTD:''), '', 142, 'dolibarr_notes', 'In', false, true, true, ROWS_4, '90%'); +$doleditor->Create(); + +print '
    '."\n"; + +print '
    '; + +// Other +print ''; +print ''; +print ''; +print ''; + +// Message on login page +$substitutionarray=getCommonSubstitutionArray($langs, 0, array('object','objectamount','user')); +complete_substitutions_array($substitutionarray, $langs); +print ''."\n"; + +// Hide helpcenter link on login page +print ''; +print ''; +print ''; + +// Background +print ''; + +print '
    '.$langs->trans("LoginPage").' 
    '; +$texthelp=$langs->trans("FollowingConstantsWillBeSubstituted").'
    '; +foreach($substitutionarray as $key => $val) +{ + $texthelp.=$key.'
    '; +} +print $form->textwithpicto($langs->trans("MessageLogin"), $texthelp, 1, 'help', '', 0, 2, 'tooltipmessagelogin'); +print '
    '; +$doleditor = new DolEditor('main_home', (isset($conf->global->MAIN_HOME)?$conf->global->MAIN_HOME:''), '', 142, 'dolibarr_notes', 'In', false, true, true, ROWS_4, '90%'); +$doleditor->Create(); +print '
    '.$langs->trans("DisableLinkToHelpCenter").''; +print $form->selectyesno('MAIN_HELPCENTER_DISABLELINK', isset($conf->global->MAIN_HELPCENTER_DISABLELINK)?$conf->global->MAIN_HELPCENTER_DISABLELINK:0, 1); +print ' 
    '; +print '
    '; +$disabled = ''; +if (! empty($conf->global->ADD_UNSPLASH_LOGIN_BACKGROUND)) $disabled = ' disabled="disabled"'; +print ''; +if ($disabled) +{ + print '('.$langs->trans("DisabledByOptionADD_UNSPLASH_LOGIN_BACKGROUND").') '; +} +if (! empty($conf->global->MAIN_LOGIN_BACKGROUND)) { + print ''.img_delete($langs->trans("Delete")).''; + if (file_exists($conf->mycompany->dir_output.'/logos/'.$conf->global->MAIN_LOGIN_BACKGROUND)) { + print '   '; + print ''; + } +} else { + print ''; +} +print '
    '; +print '
    '."\n"; + + +print '
    '; +print '
    '; +print ''; +print '
    '; + +print ''; + // End of page llxFooter(); diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 93bf4b90f94..58cd78e102b 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -1118,7 +1118,7 @@ LogEventDesc=Enable logging for specific security events. Administrators the log AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. SystemAreaForAdminOnly=This area is available to administrator users only. Dolibarr user permissions cannot change this restriction. -CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page. +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" button at the bottom of the page. AccountantDesc=If you have an external accountant/bookkeeper, you can edit here its information. AccountantFileNumber=Accountant code DisplayDesc=Parameters affecting the look and behaviour of Dolibarr can be modified here. From c21224ef96932cd86a3fdcbd70800b25749c19b8 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 14:24:47 +0200 Subject: [PATCH 308/484] Align code of auguria menu handler with new architecture --- htdocs/core/menus/standard/auguria.lib.php | 115 ++++++++++---------- htdocs/core/menus/standard/auguria_menu.php | 27 ++++- htdocs/core/menus/standard/eldy.lib.php | 2 +- htdocs/core/menus/standard/eldy_menu.php | 4 +- 4 files changed, 81 insertions(+), 67 deletions(-) diff --git a/htdocs/core/menus/standard/auguria.lib.php b/htdocs/core/menus/standard/auguria.lib.php index 66f4dac2a44..39e2150280e 100644 --- a/htdocs/core/menus/standard/auguria.lib.php +++ b/htdocs/core/menus/standard/auguria.lib.php @@ -39,10 +39,11 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php'; */ function print_auguria_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout = 0, $mode = '') { - global $user,$conf,$langs,$dolibarr_main_db_name; + global $user,$conf,$langs,$mysoc; + global $dolibarr_main_db_name; - $mainmenu=$_SESSION["mainmenu"]; - $leftmenu=$_SESSION["leftmenu"]; + $mainmenu=(empty($_SESSION["mainmenu"])?'':$_SESSION["mainmenu"]); + $leftmenu=(empty($_SESSION["leftmenu"])?'':$_SESSION["leftmenu"]); $id='mainmenu'; $listofmodulesforexternal=explode(',', $conf->global->MAIN_MODULES_FOR_EXTERNAL); @@ -53,17 +54,17 @@ function print_auguria_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout if (empty($noout)) print_start_menu_array_auguria(); - global $usemenuhider; - $usemenuhider = 1; + global $usemenuhider; + $usemenuhider = 1; - // Show/Hide vertical menu - if ($mode != 'jmobile' && $mode != 'topnb' && $usemenuhider && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) + // Show/Hide vertical menu. The hamburger icon for .menuhider action. + if ($mode != 'jmobile' && $mode != 'topnb' && $usemenuhider && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { $showmode=1; $classname = 'class="tmenu menuhider"'; $idsel='menu'; - $menu->add('#', '', 0, $showmode, $atarget, "xxx", '', 0, $id, $idsel, $classname); + $menu->add('#', (! empty($conf->global->THEME_TOPMENU_DISABLE_IMAGE) ? '' : ''), 0, $showmode, $atarget, "xxx", '', 0, $id, $idsel, $classname); } $num = count($newTabMenu); @@ -125,20 +126,44 @@ function print_auguria_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout $menu->liste = dol_sort_array($menu->liste, 'position'); // Output menu entries - foreach($menu->liste as $menkey => $menuval) + // Show logo company + if (empty($conf->global->MAIN_MENU_INVERT) && empty($noout) && ! empty($conf->global->MAIN_SHOW_LOGO) && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { - if (empty($noout)) print_start_menu_entry_auguria($menuval['idsel'], $menuval['classname'], $menuval['enabled']); - if (empty($noout)) print_text_menu_entry_auguria($menuval['titre'], $menuval['enabled'], ($menuval['url']!='#'?DOL_URL_ROOT:'').$menuval['url'], $menuval['id'], $menuval['idsel'], $menuval['classname'], ($menuval['target']?$menuval['target']:$atarget)); - if (empty($noout)) print_end_menu_entry_auguria($menuval['enabled']); + //$mysoc->logo_mini=(empty($conf->global->MAIN_INFO_SOCIETE_LOGO_MINI)?'':$conf->global->MAIN_INFO_SOCIETE_LOGO_MINI); + $mysoc->logo_squarred_mini=(empty($conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI)?'':$conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI); + if (! empty($mysoc->logo_squarred_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_squarred_mini)) + { + $urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_squarred_mini); + } + else + { + $urllogo=DOL_URL_ROOT.'/theme/dolibarr_logo_squarred.png'; + } + $title=$langs->trans("GoIntoSetupToChangeLogo"); + + print "\n".''."\n"; + print_start_menu_entry_auguria('companylogo', 'class="tmenu tmenucompanylogo"', 1); + + print ''."\n"; + + print_end_menu_entry_auguria(4); + } + + if (empty($noout)) { + foreach($menu->liste as $menuval) + { + print_start_menu_entry_auguria($menuval['idsel'], $menuval['classname'], $menuval['enabled']); + print_text_menu_entry_auguria($menuval['titre'], $menuval['enabled'], ($menuval['url']!='#'?DOL_URL_ROOT:'').$menuval['url'], $menuval['id'], $menuval['idsel'], $menuval['classname'], ($menuval['target']?$menuval['target']:$atarget)); + print_end_menu_entry_auguria($menuval['enabled']); + } } $showmode=1; - if (empty($noout)) print_start_menu_entry_auguria('', 'class="tmenuend"', $showmode); - if (empty($noout)) print_end_menu_entry_auguria($showmode); - - if (empty($noout)) print_end_menu_array_auguria(); - - print "\n"; + if (empty($noout)) { + print_start_menu_entry_auguria('', 'class="tmenuend"', $showmode); + print_end_menu_entry_auguria($showmode); + print_end_menu_array_auguria(); + } return 0; } @@ -193,16 +218,16 @@ function print_text_menu_entry_auguria($text, $showmode, $url, $id, $idsel, $cla if ($showmode == 1) { - print ''; + print ''; print '
    '; print '
    '; - print ''; + print ''; print ''; print $text; print ''; print ''; } - if ($showmode == 2) + elseif ($showmode == 2) { print '
    '; print ''; @@ -244,17 +269,18 @@ function print_end_menu_array_auguria() /** * Core function to output left menu auguria + * Fill &$menu (example with $forcemainmenu='home' $forceleftmenu='all', return left menu tree of Home) * * @param DoliDB $db Database handler - * @param array $menu_array_before Table of menu entries to show before entries of menu handler - * @param array $menu_array_after Table of menu entries to show after entries of menu handler + * @param array $menu_array_before Table of menu entries to show before entries of menu handler (menu->liste filled with menu->add) + * @param array $menu_array_after Table of menu entries to show after entries of menu handler (menu->liste filled with menu->add) * @param array $tabMenu If array with menu entries already loaded, we put this array here (in most cases, it's empty) * @param Menu $menu Object Menu to return back list of menu entries * @param int $noout Disable output (Initialise &$menu only). * @param string $forcemainmenu 'x'=Force mainmenu to mainmenu='x' - * @param string $forceleftmenu 'all'=Force leftmenu to '' (= all) + * @param string $forceleftmenu 'all'=Force leftmenu to '' (= all). If value come being '', we change it to value in session and 'none' if not defined in session. * @param array $moredata An array with more data to output - * @return int Nb of entries + * @return int Nb of menu entries */ function print_left_auguria_menu($db, $menu_array_before, $menu_array_after, &$tabMenu, &$menu, $noout = 0, $forcemainmenu = '', $forceleftmenu = '', $moredata = null) { @@ -268,35 +294,6 @@ function print_left_auguria_menu($db, $menu_array_before, $menu_array_after, &$t global $usemenuhider; $usemenuhider = 0; - // Show logo company - if (empty($noout) && ! empty($conf->global->MAIN_SHOW_LOGO) && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) - { - $mysoc->logo_mini=(empty($conf->global->MAIN_INFO_SOCIETE_LOGO_MINI)?'':$conf->global->MAIN_INFO_SOCIETE_LOGO_MINI); - $mysoc->logo_squarred_mini=(empty($conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI)?'':$conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI); - if (! empty($mysoc->logo_squarred_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_squarred_mini)) - { - $urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_squarred_mini); - } - elseif (! empty($mysoc->logo_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini)) - { - $urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_mini); - } - else - { - $urllogo=DOL_URL_ROOT.'/theme/dolibarr_logo_squarred.png'; - } - $title=$langs->trans("GoIntoSetupToChangeLogo"); - print "\n".''."\n"; - print ''."\n"; - } - if (is_array($moredata) && ! empty($moredata['searchform'])) // searchform can contains select2 code or link to show old search form or link to switch on search page { print "\n"; @@ -355,9 +352,9 @@ function print_left_auguria_menu($db, $menu_array_before, $menu_array_after, &$t $db->free($resql); } - if (! empty($conf->accounting->enabled) && !empty($user->rights->accounting->mouvements->lire) && $mainmenu == 'accountancy') // Entry in accountancy journal for each bank account + if (! empty($conf->accounting->enabled) && !empty($user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy') // Entry in accountancy journal for each bank account { - $newmenu->add('', $langs->trans("Journalization"), 0, $user->rights->accounting->comptarapport->lire, '', 'accountancy', 'accountancy'); + $newmenu->add('', $langs->trans("RegistrationInAccounting"), 1, $user->rights->accounting->comptarapport->lire, '', 'accountancy', 'accountancy'); // Multi journal $sql = "SELECT rowid, code, label, nature"; @@ -390,7 +387,7 @@ function print_left_auguria_menu($db, $menu_array_before, $menu_array_after, &$t if ($objp->nature == 9) $nature="hasnew"; // To enable when page exists - if (! empty($conf->global->ACCOUNTANCY_SHOW_DEVELOP_JOURNAL)) + if (empty($conf->global->ACCOUNTANCY_SHOW_DEVELOP_JOURNAL)) { if ($nature == 'various' || $nature == 'hasnew' || $nature == 'inventory') $nature=''; } @@ -399,7 +396,7 @@ function print_left_auguria_menu($db, $menu_array_before, $menu_array_after, &$t { $langs->load('accountancy'); $journallabel=$langs->transnoentities($objp->label); // Labels in this table are set by loading llx_accounting_abc.sql. Label can be 'ACCOUNTING_SELL_JOURNAL', 'InventoryJournal', ... - if (empty($leftmenu) || preg_match('/accountancy/', $leftmenu)) $newmenu->add('/accountancy/journal/'.$nature.'journal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal='.$objp->rowid, $journallabel, 2, $user->rights->accounting->comptarapport->lire); + $newmenu->add('/accountancy/journal/'.$nature.'journal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal='.$objp->rowid, $journallabel, 2, $user->rights->accounting->comptarapport->lire); } $i++; } @@ -444,7 +441,7 @@ function print_left_auguria_menu($db, $menu_array_before, $menu_array_after, &$t */ } - if ($conf->ftp->enabled && $mainmenu == 'ftp') // Entry for FTP + if (! empty($conf->ftp->enabled) && $mainmenu == 'ftp') // Entry for FTP { $MAXFTP=20; $i=1; diff --git a/htdocs/core/menus/standard/auguria_menu.php b/htdocs/core/menus/standard/auguria_menu.php index c4622f2d6ee..b3c5814240c 100644 --- a/htdocs/core/menus/standard/auguria_menu.php +++ b/htdocs/core/menus/standard/auguria_menu.php @@ -111,15 +111,18 @@ class MenuManager $tabMenu=array(); $menuArbo = new Menubase($this->db, 'auguria'); $menuArbo->menuLoad($mainmenu, $leftmenu, $this->type_user, 'auguria', $tabMenu); - $this->tabMenu=$tabMenu; - } + //var_dump($tabMenu); + + //if ($forcemainmenu == 'all') { var_dump($this->tabMenu); exit; } + } /** * Show menu + * Menu defined in sql tables were stored into $this->tabMenu BEFORE this is called. * - * @param string $mode 'top', 'left', 'jmobile' (used to get full xml ul/li menu) + * @param string $mode 'top', 'topnb', 'left', 'jmobile' (used to get full xml ul/li menu) * @param array $moredata An array with more data to output * @return int 0 or nb of top menu entries if $mode = 'topnb' */ @@ -138,9 +141,18 @@ class MenuManager require_once DOL_DOCUMENT_ROOT.'/core/class/menu.class.php'; $this->menu=new Menu(); - if ($mode == 'top') print_auguria_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 0, $mode); - if ($mode == 'left') print_left_auguria_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $this->menu, 0, '', '', $moredata); - + if (empty($conf->global->MAIN_MENU_INVERT)) + { + if ($mode == 'top') print_auguria_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 0, $mode); + if ($mode == 'left') print_left_auguria_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $this->menu, 0, '', '', $moredata); + } + else + { + $conf->global->MAIN_SHOW_LOGO=0; + if ($mode == 'top') print_left_auguria_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $this->menu, 0); + if ($mode == 'left') print_auguria_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 0, $mode); + } + if ($mode == 'topnb') { print_auguria_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 1, $mode); @@ -315,5 +327,8 @@ class MenuManager } unset($this->menu); + + //print 'xx'.$mode; + return 0; } } diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 0bfc9f9b7b9..5d9a637de58 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -629,7 +629,7 @@ function print_end_menu_array() * @param string $forcemainmenu 'x'=Force mainmenu to mainmenu='x' * @param string $forceleftmenu 'all'=Force leftmenu to '' (= all). If value come being '', we change it to value in session and 'none' if not defined in session. * @param array $moredata An array with more data to output - * @return int nb of menu entries + * @return int Nb of menu entries */ function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabMenu, &$menu, $noout = 0, $forcemainmenu = '', $forceleftmenu = '', $moredata = null) { diff --git a/htdocs/core/menus/standard/eldy_menu.php b/htdocs/core/menus/standard/eldy_menu.php index d8a47d45c68..8389db029be 100644 --- a/htdocs/core/menus/standard/eldy_menu.php +++ b/htdocs/core/menus/standard/eldy_menu.php @@ -64,6 +64,8 @@ class MenuManager */ public function loadMenu($forcemainmenu = '', $forceleftmenu = '') { + global $conf, $user, $langs; + // On sauve en session le menu principal choisi if (isset($_GET["mainmenu"])) $_SESSION["mainmenu"]=$_GET["mainmenu"]; if (isset($_GET["idmenu"])) $_SESSION["idmenu"]=$_GET["idmenu"]; @@ -117,7 +119,7 @@ class MenuManager /** * Show menu. - * Module defined in sql tables were stored into $this->tabMenu BEFORE this is called. + * Menu defined in sql tables were stored into $this->tabMenu BEFORE this is called. * * @param string $mode 'top', 'topnb', 'left', 'jmobile' (used to get full xml ul/li menu) * @param array $moredata An array with more data to output From 7ce01c5ceb917f10dc3696055705d04b872a2e3d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 14:42:55 +0200 Subject: [PATCH 309/484] Look and feel v11 --- htdocs/admin/boxes.php | 2 +- htdocs/admin/delais.php | 4 +- htdocs/admin/ihm.php | 1 - htdocs/admin/limits.php | 2 +- htdocs/admin/menus.php | 143 ++-- htdocs/admin/pdf.php | 672 ++++++------------ htdocs/admin/security_other.php | 2 +- htdocs/admin/sms.php | 2 +- htdocs/admin/translation.php | 2 +- .../box_accountancy_suspense_account.php | 8 +- htdocs/core/menus/standard/eldy.lib.php | 2 +- 11 files changed, 285 insertions(+), 555 deletions(-) diff --git a/htdocs/admin/boxes.php b/htdocs/admin/boxes.php index 58c07b5ca3e..ca90c836929 100644 --- a/htdocs/admin/boxes.php +++ b/htdocs/admin/boxes.php @@ -222,7 +222,7 @@ llxHeader('', $langs->trans("Boxes")); print load_fiche_titre($langs->trans("Boxes"), '', 'title_setup'); -print $langs->trans("BoxesDesc")." ".$langs->trans("OnlyActiveElementsAreShown")."
    \n"; +print ''.$langs->trans("BoxesDesc")." ".$langs->trans("OnlyActiveElementsAreShown")."
    \n"; /* * Search for the default active boxes for each possible position diff --git a/htdocs/admin/delais.php b/htdocs/admin/delais.php index 47f668f69c3..d69a14deb2e 100644 --- a/htdocs/admin/delais.php +++ b/htdocs/admin/delais.php @@ -174,8 +174,8 @@ llxHeader(); print load_fiche_titre($langs->trans("DelaysOfToleranceBeforeWarning"), '', 'title_setup'); -print $langs->transnoentities("DelaysOfToleranceDesc", img_warning()); -print " ".$langs->trans("OnlyActiveElementsAreShown", DOL_URL_ROOT.'/admin/modules.php')."
    \n"; +print ''.$langs->transnoentities("DelaysOfToleranceDesc", img_warning()); +print " ".$langs->trans("OnlyActiveElementsAreShown", DOL_URL_ROOT.'/admin/modules.php')."
    \n"; print "
    \n"; $countrynotdefined=''.$langs->trans("ErrorSetACountryFirst").' ('.$langs->trans("SeeAbove").')'; diff --git a/htdocs/admin/ihm.php b/htdocs/admin/ihm.php index df8929fd8fe..dfbb548f5e0 100644 --- a/htdocs/admin/ihm.php +++ b/htdocs/admin/ihm.php @@ -222,7 +222,6 @@ $formadmin=new FormAdmin($db); print load_fiche_titre($langs->trans("GUISetup"), '', 'title_setup'); print ''.$langs->trans("DisplayDesc")."
    \n"; -print "
    \n"; //WYSIWYG Editor require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; diff --git a/htdocs/admin/limits.php b/htdocs/admin/limits.php index c9e69cc469e..ea19b7034a6 100644 --- a/htdocs/admin/limits.php +++ b/htdocs/admin/limits.php @@ -90,7 +90,7 @@ llxHeader(); print load_fiche_titre($langs->trans("LimitsSetup"), '', 'title_setup'); -print $langs->trans("LimitsDesc")."
    \n"; +print ''.$langs->trans("LimitsDesc")."
    \n"; print "
    \n"; if ($action == 'edit') diff --git a/htdocs/admin/menus.php b/htdocs/admin/menus.php index b334ccadf45..4187c4d3eb4 100644 --- a/htdocs/admin/menus.php +++ b/htdocs/admin/menus.php @@ -159,116 +159,63 @@ print ''.$langs->trans("MenusDesc")."
    \n"; print "
    \n"; -if ($action == 'edit') -{ - clearstatcache(); +clearstatcache(); - // Gestionnaires de menu - print ''; - print ''; - print ''; - print ''; - print ''; +// Gestionnaires de menu +print '
    '.$langs->trans("Menu").''; - print $form->textwithpicto($langs->trans("InternalUsers"), $langs->trans("InternalExternalDesc")); - print ''; - print $form->textwithpicto($langs->trans("ExternalUsers"), $langs->trans("InternalExternalDesc")); - print '
    '; +print ''; +print ''; +print ''; +print ''; - // Menu top - print ''; - print ''; - print ''; - print ''; +// Menu top +print ''; +print ''; +print ''; +print ''; - // Menu smartphone - print ''; - print ''; - print ''; - print ''; +// Menu smartphone +print ''; +print '
    '.$langs->trans("Menu").''; +print $form->textwithpicto($langs->trans("InternalUsers"), $langs->trans("InternalExternalDesc")); +print ''; +print $form->textwithpicto($langs->trans("ExternalUsers"), $langs->trans("InternalExternalDesc")); +print '
    '.$langs->trans("DefaultMenuManager").''; - $formadmin->select_menu(empty($conf->global->MAIN_MENU_STANDARD_FORCED)?$conf->global->MAIN_MENU_STANDARD:$conf->global->MAIN_MENU_STANDARD_FORCED, 'MAIN_MENU_STANDARD', $dirstandard, empty($conf->global->MAIN_MENU_STANDARD_FORCED)?'':' disabled'); - print ''; - $formadmin->select_menu(empty($conf->global->MAIN_MENUFRONT_STANDARD_FORCED)?$conf->global->MAIN_MENUFRONT_STANDARD:$conf->global->MAIN_MENUFRONT_STANDARD_FORCED, 'MAIN_MENUFRONT_STANDARD', $dirstandard, empty($conf->global->MAIN_MENUFRONT_STANDARD_FORCED)?'':' disabled'); - print '
    '.$langs->trans("DefaultMenuManager").''; +$formadmin->select_menu(empty($conf->global->MAIN_MENU_STANDARD_FORCED)?$conf->global->MAIN_MENU_STANDARD:$conf->global->MAIN_MENU_STANDARD_FORCED, 'MAIN_MENU_STANDARD', $dirstandard, empty($conf->global->MAIN_MENU_STANDARD_FORCED)?'':' disabled'); +print ''; +$formadmin->select_menu(empty($conf->global->MAIN_MENUFRONT_STANDARD_FORCED)?$conf->global->MAIN_MENUFRONT_STANDARD:$conf->global->MAIN_MENUFRONT_STANDARD_FORCED, 'MAIN_MENUFRONT_STANDARD', $dirstandard, empty($conf->global->MAIN_MENUFRONT_STANDARD_FORCED)?'':' disabled'); +print '
    '.$langs->trans("DefaultMenuSmartphoneManager").''; - $formadmin->select_menu(empty($conf->global->MAIN_MENU_SMARTPHONE_FORCED)?$conf->global->MAIN_MENU_SMARTPHONE:$conf->global->MAIN_MENU_SMARTPHONE_FORCED, 'MAIN_MENU_SMARTPHONE', array_merge($dirstandard, $dirsmartphone), empty($conf->global->MAIN_MENU_SMARTPHONE_FORCED)?'':' disabled'); - print ''; - $formadmin->select_menu(empty($conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED)?$conf->global->MAIN_MENUFRONT_SMARTPHONE:$conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED, 'MAIN_MENUFRONT_SMARTPHONE', array_merge($dirstandard, $dirsmartphone), empty($conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED)?'':' disabled'); - print '
    '.$langs->trans("DefaultMenuSmartphoneManager").''; +$formadmin->select_menu(empty($conf->global->MAIN_MENU_SMARTPHONE_FORCED)?$conf->global->MAIN_MENU_SMARTPHONE:$conf->global->MAIN_MENU_SMARTPHONE_FORCED, 'MAIN_MENU_SMARTPHONE', array_merge($dirstandard, $dirsmartphone), empty($conf->global->MAIN_MENU_SMARTPHONE_FORCED)?'':' disabled'); - print '
    '; -} -else -{ - // Gestionnaires de menu - print ''; - print ''; - print ''; - print ''; - print ''; - - - print ''; - print ''; - print ''; - print ''; - - - print ''; - print ''; - print ''; - print ''; - print ''; - - print '
    '.$langs->trans("Menu").''; - print $form->textwithpicto($langs->trans("InternalUsers"), $langs->trans("InternalExternalDesc")); - print ''; - print $form->textwithpicto($langs->trans("ExternalUsers"), $langs->trans("InternalExternalDesc")); - print '
    '.$langs->trans("DefaultMenuManager").''; - $filelib=preg_replace('/.php$/i', '', (empty($conf->global->MAIN_MENU_STANDARD_FORCED)?$conf->global->MAIN_MENU_STANDARD:$conf->global->MAIN_MENU_STANDARD_FORCED)); - print $filelib; - print ''; - $filelib=preg_replace('/.php$/i', '', (empty($conf->global->MAIN_MENUFRONT_STANDARD_FORCED)?$conf->global->MAIN_MENUFRONT_STANDARD:$conf->global->MAIN_MENUFRONT_STANDARD_FORCED)); - print $filelib; - print '
    '.$langs->trans("DefaultMenuSmartphoneManager").''; - $filelib=preg_replace('/.php$/i', '', (empty($conf->global->MAIN_MENU_SMARTPHONE_FORCED)?$conf->global->MAIN_MENU_SMARTPHONE:$conf->global->MAIN_MENU_SMARTPHONE_FORCED)); - print $filelib; - if (! empty($conf->global->MAIN_MENU_SMARTPHONE_FORCED) && preg_match('/smartphone/', $conf->global->MAIN_MENU_SMARTPHONE_FORCED) +if (! empty($conf->global->MAIN_MENU_SMARTPHONE_FORCED) && preg_match('/smartphone/', $conf->global->MAIN_MENU_SMARTPHONE_FORCED) || (empty($conf->global->MAIN_MENU_SMARTPHONE_FORCED) && ! empty($conf->global->MAIN_MENU_SMARTPHONE) && preg_match('/smartphone/', $conf->global->MAIN_MENU_SMARTPHONE))) - { - print ' '.img_warning($langs->transnoentitiesnoconv("ThisForceAlsoTheme")); - } - print ''; - $filelib=preg_replace('/.php$/i', '', (empty($conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED)?$conf->global->MAIN_MENUFRONT_SMARTPHONE:$conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED)); - print $filelib; - if (! empty($conf->global->MAIN_MENU_SMARTPHONE_FORCED) && preg_match('/smartphone/', $conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED) - || (empty($conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED) && ! empty($conf->global->MAIN_MENU_SMARTPHONE) && preg_match('/smartphone/', $conf->global->MAIN_MENUFRONT_SMARTPHONE))) - { - print ' '.img_warning($langs->transnoentitiesnoconv("ThisForceAlsoTheme")); - } - print '
    '; +{ + print ' '.img_warning($langs->transnoentitiesnoconv("ThisForceAlsoTheme")); } +print ''; +print ''; +$formadmin->select_menu(empty($conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED)?$conf->global->MAIN_MENUFRONT_SMARTPHONE:$conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED, 'MAIN_MENUFRONT_SMARTPHONE', array_merge($dirstandard, $dirsmartphone), empty($conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED)?'':' disabled'); + +if (! empty($conf->global->MAIN_MENU_SMARTPHONE_FORCED) && preg_match('/smartphone/', $conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED) + || (empty($conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED) && ! empty($conf->global->MAIN_MENU_SMARTPHONE) && preg_match('/smartphone/', $conf->global->MAIN_MENUFRONT_SMARTPHONE))) +{ + print ' '.img_warning($langs->transnoentitiesnoconv("ThisForceAlsoTheme")); +} + +print ''; +print ''; + +print ''; + dol_fiche_end(); - -if ($action == 'edit') -{ - print '
    '; - print ''; - print '       '; - print ''; - print '
    '; -} +print '
    '; +print ''; +print '
    '; print ''; - -if ($action != 'edit') -{ - print '
    '; -} - // End of page llxFooter(); $db->close(); diff --git a/htdocs/admin/pdf.php b/htdocs/admin/pdf.php index a8c1aa41b5f..e9346f49a3a 100644 --- a/htdocs/admin/pdf.php +++ b/htdocs/admin/pdf.php @@ -123,460 +123,244 @@ print "
    \n"; $noCountryCode = (empty($mysoc->country_code) ? true : false); -if ($action == 'edit') // Edit +print '
    '; +print ''; +print ''; + +clearstatcache(); + + +// Misc options +print load_fiche_titre($langs->trans("DictionaryPaperFormat"), '', ''); + +print '
    '; +print ''; +print ''; + +$selected=$conf->global->MAIN_PDF_FORMAT; +if (empty($selected)) $selected=dol_getDefaultFormat(); + +// Show pdf format + +print ''; + +print ''; +print ''; +print ''; +print ''; + +print '
    '.$langs->trans("Parameter").''.$langs->trans("Value").'
    '.$langs->trans("DictionaryPaperFormat").''; +print $formadmin->select_paper_format($selected, 'MAIN_PDF_FORMAT'); +print '
    '.$langs->trans("MAIN_PDF_MARGIN_LEFT").''; +print ''; +print '
    '.$langs->trans("MAIN_PDF_MARGIN_RIGHT").''; +print ''; +print '
    '.$langs->trans("MAIN_PDF_MARGIN_TOP").''; +print ''; +print '
    '.$langs->trans("MAIN_PDF_MARGIN_BOTTOM").''; +print ''; +print '
    '; +print '
    '; + +print '
    '; + + +// Addresses +print load_fiche_titre($langs->trans("PDFAddressForging"), '', ''); + +print '
    '; +print ''; +print ''; + +// Hide VAT Intra on address + +print ''; + +// Show prof id in address into pdf +for($i=1; $i<=6; $i++) { - print ''; - print ''; - print ''; - - clearstatcache(); - - - // Misc options - print load_fiche_titre($langs->trans("DictionaryPaperFormat"), '', ''); - - print '
    '; - print '
    '.$langs->trans("Parameter").''.$langs->trans("Value").'
    '.$langs->trans("ShowVATIntaInAddress").''; +print $form->selectyesno('MAIN_TVAINTRA_NOT_IN_ADDRESS', (! empty($conf->global->MAIN_TVAINTRA_NOT_IN_ADDRESS))?$conf->global->MAIN_TVAINTRA_NOT_IN_ADDRESS:0, 1); +print '
    '; - print ''; - - $selected=$conf->global->MAIN_PDF_FORMAT; - if (empty($selected)) $selected=dol_getDefaultFormat(); - - // Show pdf format - - print ''; - - print ''; - print ''; - print ''; - print ''; - - print '
    '.$langs->trans("Parameter").''.$langs->trans("Value").'
    '.$langs->trans("DictionaryPaperFormat").''; - print $formadmin->select_paper_format($selected, 'MAIN_PDF_FORMAT'); - print '
    '.$langs->trans("MAIN_PDF_MARGIN_LEFT").''; - print ''; - print '
    '.$langs->trans("MAIN_PDF_MARGIN_RIGHT").''; - print ''; - print '
    '.$langs->trans("MAIN_PDF_MARGIN_TOP").''; - print ''; - print '
    '.$langs->trans("MAIN_PDF_MARGIN_BOTTOM").''; - print ''; - print '
    '; - print '
    '; - - print '
    '; - - - // Addresses - print load_fiche_titre($langs->trans("PDFAddressForging"), '', ''); - - print '
    '; - print ''; - print ''; - - // Hide VAT Intra on address - - print ''; - - // Show prof id in address into pdf - for($i=1; $i<=6; $i++) - { - if (! $noCountryCode) - { - $pid=$langs->transcountry("ProfId".$i, $mysoc->country_code); - if ($pid == '-') $pid=false; - } - else - { - $pid = img_warning().' '.$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CompanyCountry")).''; - } - if ($pid) - { - print ''; - } - } - - print '
    '.$langs->trans("Parameter").''.$langs->trans("Value").'
    '.$langs->trans("ShowVATIntaInAddress").''; - print $form->selectyesno('MAIN_TVAINTRA_NOT_IN_ADDRESS', (! empty($conf->global->MAIN_TVAINTRA_NOT_IN_ADDRESS))?$conf->global->MAIN_TVAINTRA_NOT_IN_ADDRESS:0, 1); - print '
    '.$langs->trans("ShowProfIdInAddress").' - '.$pid.''; - $keyforconstant = 'MAIN_PROFID'.$i.'_IN_ADDRESS'; - print $form->selectyesno($keyforconstant, isset($conf->global->$keyforconstant)?$conf->global->$keyforconstant:0, 1, $noCountryCode); - print '
    '; - print '
    '; - - - print '
    '; - - - // Localtaxes - $locales =''; - $text=''; - if ($mysoc->useLocalTax(1) || $mysoc->useLocalTax(2)) - { - if ($mysoc->useLocalTax(1)) - { - $locales = $langs->transcountry("LT1", $mysoc->country_code); - $text ='' . $langs->trans("HideLocalTaxOnPDF", $langs->transcountry("LT1", $mysoc->country_code)) . ''; - $text.= $form->selectyesno('MAIN_PDF_MAIN_HIDE_SECOND_TAX', (!empty($conf->global->MAIN_PDF_MAIN_HIDE_SECOND_TAX)) ? $conf->global->MAIN_PDF_MAIN_HIDE_SECOND_TAX : 0, 1); - $text .= ''; - } - - if ($mysoc->useLocalTax(2)) - { - $locales.=($locales?' & ':'').$langs->transcountry("LT2", $mysoc->country_code); - - $text.= '' . $langs->trans("HideLocalTaxOnPDF", $langs->transcountry("LT2", $mysoc->country_code)) . ''; - $text.= $form->selectyesno('MAIN_PDF_MAIN_HIDE_THIRD_TAX', (!empty($conf->global->MAIN_PDF_MAIN_HIDE_THIRD_TAX)) ? $conf->global->MAIN_PDF_MAIN_HIDE_THIRD_TAX : 0, 1); - $text.= ''; - } - } - - $title = $langs->trans("PDFRulesForSalesTax"); - if ($mysoc->useLocalTax(1) || $mysoc->useLocalTax(2)) - { - $title.=' - '.$langs->trans("PDFLocaltax", $locales); - } - - print load_fiche_titre($title, '', ''); - - print ''; - print ''; - - // Hide any information on Sale tax / VAT - - print ''; - - // Locataxes - print $text; - - print '
    '.$langs->trans("Parameter").''.$langs->trans("Value").'
    '.$langs->trans("HideAnyVATInformationOnPDF").''; - print $form->selectyesno('MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT', (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT))?$conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT:0, 1); - print '
    '; - print '
    '; - - - // Other - print load_fiche_titre($langs->trans("Other"), '', ''); - - print '
    '; - print ''; - print ''; - - //Desc - - print ''; - - //Ref - - print ''; - - //Details - - print ''; - - //Invert sender and recipient - - print ''; - - // Place customer adress to the ISO location - - print ''; - - - print ''; - - print '
    '.$langs->trans("Parameter").''.$langs->trans("Value").'
    '.$langs->trans("HideDescOnPDF").''; - print $form->selectyesno('MAIN_GENERATE_DOCUMENTS_HIDE_DESC', (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DESC))?$conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DESC:0, 1); - print '
    '.$langs->trans("HideRefOnPDF").''; - print $form->selectyesno('MAIN_GENERATE_DOCUMENTS_HIDE_REF', (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF))?$conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF:0, 1); - print '
    '.$langs->trans("HideDetailsOnPDF").''; - print $form->selectyesno('MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS', (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS))?$conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS:0, 1); - print '
    '.$langs->trans("SwapSenderAndRecipientOnPDF").''; - print $form->selectyesno('MAIN_INVERT_SENDER_RECIPIENT', (! empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT))?$conf->global->MAIN_INVERT_SENDER_RECIPIENT:0, 1); - print '
    '.$langs->trans("PlaceCustomerAddressToIsoLocation").''; - print $form->selectyesno('MAIN_PDF_USE_ISO_LOCATION', (! empty($conf->global->MAIN_PDF_USE_ISO_LOCATION))?$conf->global->MAIN_PDF_USE_ISO_LOCATION:0, 1); - print '
    '.$langs->trans("ShowDetailsInPDFPageFoot").''; - print $form->selectarray('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', $arraydetailsforpdffoot, $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS); - print '
    '; - print '
    '; - - print '
    '; - print ''; - print '   '; - print ''; - print '
    '; - - print '
    '; - print '
    '; -} -else // Show -{ - // Misc options - print load_fiche_titre($langs->trans("DictionaryPaperFormat"), '', ''); - - - print '
    '; - print ''; - print ''; - - // Show pdf format - - print ''; - - print ''; - print ''; - print ''; - print ''; - - print '
    '.$langs->trans("Parameter").''.$langs->trans("Value").'
    '.$langs->trans("DictionaryPaperFormat").''; - - $pdfformatlabel=''; - if (empty($conf->global->MAIN_PDF_FORMAT)) - { - include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; - $pdfformatlabel=dol_getDefaultFormat(); - } - else $pdfformatlabel=$conf->global->MAIN_PDF_FORMAT; - if (! empty($pdfformatlabel)) - { - $sql="SELECT code, label, width, height, unit FROM ".MAIN_DB_PREFIX."c_paper_format"; - $sql.=" WHERE code LIKE '%".$db->escape($pdfformatlabel)."%'"; - - $resql=$db->query($sql); - if ($resql) - { - $obj=$db->fetch_object($resql); - $paperKey = $langs->trans('PaperFormat'.$obj->code); - $unitKey = $langs->trans('SizeUnit'.$obj->unit); - $pdfformatlabel = ($paperKey == 'PaperFormat'.$obj->code ? $obj->label : $paperKey).' - '.round($obj->width).'x'.round($obj->height).' '.($unitKey == 'SizeUnit'.$obj->unit ? $obj->unit : $unitKey); - } - } - print $pdfformatlabel; - print '
    '.$langs->trans("MAIN_PDF_MARGIN_LEFT").''; - print empty($conf->global->MAIN_PDF_MARGIN_LEFT)?10:$conf->global->MAIN_PDF_MARGIN_LEFT; - print '
    '.$langs->trans("MAIN_PDF_MARGIN_RIGHT").''; - print empty($conf->global->MAIN_PDF_MARGIN_RIGHT)?10:$conf->global->MAIN_PDF_MARGIN_RIGHT; - print '
    '.$langs->trans("MAIN_PDF_MARGIN_TOP").''; - print empty($conf->global->MAIN_PDF_MARGIN_TOP)?10:$conf->global->MAIN_PDF_MARGIN_TOP; - print '
    '.$langs->trans("MAIN_PDF_MARGIN_BOTTOM").''; - print empty($conf->global->MAIN_PDF_MARGIN_BOTTOM)?10:$conf->global->MAIN_PDF_MARGIN_BOTTOM; - print '
    '; - print '
    '; - - print '
    '; - - print load_fiche_titre($langs->trans("PDFAddressForging"), '', ''); - - print '
    '; - print ''; - print ''; - - // Hide Intra VAT on address - - print ''; - - // Show prof id in address into pdf - for ($i=1; $i<=6; $i++) + if (! $noCountryCode) { - if (! $noCountryCode) - { - $pid=$langs->transcountry("ProfId".$i, $mysoc->country_code); - if ($pid == '-') $pid=false; - } - else - { - $pid = img_warning().' '.$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CompanyCountry")).''; - } - if ($pid) - { - print ''; - } - } - - print '
    '.$langs->trans("Parameter").''.$langs->trans("Value").'
    '.$langs->trans("ShowVATIntaInAddress").''; - print yn($conf->global->MAIN_TVAINTRA_NOT_IN_ADDRESS, 1); - print '
    '.$langs->trans("ShowProfIdInAddress").' - '.$pid.''; - $keyforconstant = 'MAIN_PROFID'.$i.'_IN_ADDRESS'; - print yn($conf->global->$keyforconstant, 1); - print '
    '."\n"; - print '
    '; - - print '
    '; - - // Localtaxes - $locales =''; - $text=''; - if ($mysoc->useLocalTax(1) || $mysoc->useLocalTax(2)) - { - if ($mysoc->useLocalTax(1)) - { - $locales = $langs->transcountry("LT1", $mysoc->country_code); - $text ='' . $langs->trans("HideLocalTaxOnPDF", $langs->transcountry("LT1", $mysoc->country_code)) . ''; - $text .= yn($conf->global->MAIN_PDF_MAIN_HIDE_SECOND_TAX, 1); - $text .= ''; - } - - if ($mysoc->useLocalTax(2)) - { - $locales.=($locales?' & ':'').$langs->transcountry("LT2", $mysoc->country_code); - - $text.= '' . $langs->trans("HideLocalTaxOnPDF", $langs->transcountry("LT2", $mysoc->country_code)) . ''; - $text.= yn($conf->global->MAIN_PDF_MAIN_HIDE_THIRD_TAX, 1); - $text.= ''; - } - } - - // Sales TAX / VAT information - $title=$langs->trans("PDFRulesForSalesTax", $locales); - if ($mysoc->useLocalTax(1) || $mysoc->useLocalTax(2)) $title.=' - '.$langs->trans("PDFLocaltax", $locales); - - print load_fiche_titre($title, '', ''); - - print ''; - print ''; - - print ''; - - print $text; - - print '
    '.$langs->trans("Parameter").''.$langs->trans("Value").'
    '.$langs->trans("HideAnyVATInformationOnPDF").''; - print yn($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT, 1); - print '
    '; - print '
    '; - - - // Other - print load_fiche_titre($langs->trans("Other"), '', ''); - - print '
    '; - print ''; - print ''; - - // Encrypt and protect PDF - - print ''; - print ''; - print ''; - print '"; - - print ""; - print ''; - - // Hide Desc - - print ''; - - // Hide Ref - - print ''; - - // Hide Details - - print ''; - - // Invert sender and recipient - print ''; - - // Use French location - print ''; - - - print ''; - - print '
    '.$langs->trans("Parameter").''.$langs->trans("Value").'
    '; - $text = $langs->trans("ProtectAndEncryptPdfFiles"); - $desc = $form->textwithpicto($text, $langs->transnoentities("ProtectAndEncryptPdfFilesDesc"), 1); - print $desc; - print ''; - if($conf->global->PDF_SECURITY_ENCRYPTION == 1) - { - print img_picto($langs->trans("Active"), 'tick'); - } - print ''; - if (empty($conf->global->PDF_SECURITY_ENCRYPTION)) - { - print ''.$langs->trans("Activate").''; + $pid=$langs->transcountry("ProfId".$i, $mysoc->country_code); + if ($pid == '-') $pid=false; } else { - print ''.$langs->trans("Disable").''; + $pid = img_warning().' '.$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CompanyCountry")).''; } - print "
    '.$langs->trans("HideDescOnPDF").''; - print yn($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DESC, 1); - print '
    '.$langs->trans("HideRefOnPDF").''; - print yn($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF, 1); - print '
    '.$langs->trans("HideDetailsOnPDF").''; - print yn($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS, 1); - print '
    '.$langs->trans("SwapSenderAndRecipientOnPDF").''; - print yn($conf->global->MAIN_INVERT_SENDER_RECIPIENT, 1); - print '
    '.$langs->trans("PlaceCustomerAddressToIsoLocation").''; - print yn($conf->global->MAIN_PDF_USE_ISO_LOCATION, 1); - print '
    '.$langs->trans("ShowDetailsInPDFPageFoot").''; - print $arraydetailsforpdffoot[($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS ? $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS : 0)]; - print '
    '; - print '
    '; - - - /* - * Library - */ - - print '
    '; - print load_fiche_titre($langs->trans("Library"), '', ''); - - print '
    '; - print ''."\n"; - - print ''."\n"; - print ''."\n"; - print ''."\n"; - print "\n"; - - print ''."\n"; - print ''."\n"; - print ''; } - if (class_exists('TCPDF')) - { - if ($i) print ' + '; - print 'TCPDF'; - print ' ('.@constant('TCPDF_PATH').')'; - $i++; - } - if (class_exists('FPDI')) - { - if ($i) print ' + '; - print 'FPDI'; - print ' ('.@constant('FPDI_PATH').')'; - $i++; - } - if (class_exists('TCPDI')) - { - if ($i) print ' + '; - print 'TCPDI'; - print ' ('.@constant('TCPDI_PATH').')'; - $i++; - } - print ''."\n"; - print ''."\n"; - - print "
    '.$langs->trans("Name").''.$langs->trans("Value").'
    '.$langs->trans("LibraryToBuildPDF").''; - $i=0; - $pdf=pdf_getInstance('A4'); - if (class_exists('FPDF') && ! class_exists('TCPDF')) + if ($pid) { - if ($i) print ' + '; - print 'FPDF'; - print ' ('.@constant('FPDF_PATH').')'; - $i++; + print '
    '.$langs->trans("ShowProfIdInAddress").' - '.$pid.''; + $keyforconstant = 'MAIN_PROFID'.$i.'_IN_ADDRESS'; + print $form->selectyesno($keyforconstant, isset($conf->global->$keyforconstant)?$conf->global->$keyforconstant:0, 1, $noCountryCode); + print '
    \n"; - print '
    '; - - print '
    '; - print ''.$langs->trans("Modify").''; - print '
    '; - print '
    '; } +print ''; +print '
    '; + + +print '
    '; + + +// Localtaxes +$locales =''; +$text=''; +if ($mysoc->useLocalTax(1) || $mysoc->useLocalTax(2)) +{ + if ($mysoc->useLocalTax(1)) + { + $locales = $langs->transcountry("LT1", $mysoc->country_code); + $text ='' . $langs->trans("HideLocalTaxOnPDF", $langs->transcountry("LT1", $mysoc->country_code)) . ''; + $text.= $form->selectyesno('MAIN_PDF_MAIN_HIDE_SECOND_TAX', (!empty($conf->global->MAIN_PDF_MAIN_HIDE_SECOND_TAX)) ? $conf->global->MAIN_PDF_MAIN_HIDE_SECOND_TAX : 0, 1); + $text .= ''; + } + + if ($mysoc->useLocalTax(2)) + { + $locales.=($locales?' & ':'').$langs->transcountry("LT2", $mysoc->country_code); + + $text.= '' . $langs->trans("HideLocalTaxOnPDF", $langs->transcountry("LT2", $mysoc->country_code)) . ''; + $text.= $form->selectyesno('MAIN_PDF_MAIN_HIDE_THIRD_TAX', (!empty($conf->global->MAIN_PDF_MAIN_HIDE_THIRD_TAX)) ? $conf->global->MAIN_PDF_MAIN_HIDE_THIRD_TAX : 0, 1); + $text.= ''; + } +} + +$title = $langs->trans("PDFRulesForSalesTax"); +if ($mysoc->useLocalTax(1) || $mysoc->useLocalTax(2)) +{ + $title.=' - '.$langs->trans("PDFLocaltax", $locales); +} + +print load_fiche_titre($title, '', ''); + +print ''; +print ''; + +// Hide any information on Sale tax / VAT + +print ''; + +// Locataxes +print $text; + +print '
    '.$langs->trans("Parameter").''.$langs->trans("Value").'
    '.$langs->trans("HideAnyVATInformationOnPDF").''; +print $form->selectyesno('MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT', (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT))?$conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT:0, 1); +print '
    '; +print '
    '; + + +// Other +print load_fiche_titre($langs->trans("Other"), '', ''); + +print '
    '; +print ''; +print ''; + +//Desc + +print ''; + +//Ref + +print ''; + +//Details + +print ''; + +//Invert sender and recipient + +print ''; + +// Place customer adress to the ISO location + +print ''; + + +print ''; + +print '
    '.$langs->trans("Parameter").''.$langs->trans("Value").'
    '.$langs->trans("HideDescOnPDF").''; +print $form->selectyesno('MAIN_GENERATE_DOCUMENTS_HIDE_DESC', (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DESC))?$conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DESC:0, 1); +print '
    '.$langs->trans("HideRefOnPDF").''; +print $form->selectyesno('MAIN_GENERATE_DOCUMENTS_HIDE_REF', (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF))?$conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF:0, 1); +print '
    '.$langs->trans("HideDetailsOnPDF").''; +print $form->selectyesno('MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS', (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS))?$conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS:0, 1); +print '
    '.$langs->trans("SwapSenderAndRecipientOnPDF").''; +print $form->selectyesno('MAIN_INVERT_SENDER_RECIPIENT', (! empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT))?$conf->global->MAIN_INVERT_SENDER_RECIPIENT:0, 1); +print '
    '.$langs->trans("PlaceCustomerAddressToIsoLocation").''; +print $form->selectyesno('MAIN_PDF_USE_ISO_LOCATION', (! empty($conf->global->MAIN_PDF_USE_ISO_LOCATION))?$conf->global->MAIN_PDF_USE_ISO_LOCATION:0, 1); +print '
    '.$langs->trans("ShowDetailsInPDFPageFoot").''; +print $form->selectarray('MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', $arraydetailsforpdffoot, $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS); +print '
    '; +print '
    '; + + +/* + * Library + */ + +print '
    '; +print load_fiche_titre($langs->trans("Library"), '', ''); + +print '
    '; +print ''."\n"; + +print ''."\n"; +print ''."\n"; +print ''."\n"; +print "\n"; + +print ''."\n"; +print ''."\n"; +print ''."\n"; +print ''."\n"; + +print "
    '.$langs->trans("Name").''.$langs->trans("Value").'
    '.$langs->trans("LibraryToBuildPDF").''; +$i=0; +$pdf=pdf_getInstance('A4'); +if (class_exists('FPDF') && ! class_exists('TCPDF')) +{ + if ($i) print ' + '; + print 'FPDF'; + print ' ('.@constant('FPDF_PATH').')'; + $i++; +} +if (class_exists('TCPDF')) +{ + if ($i) print ' + '; + print 'TCPDF'; + print ' ('.@constant('TCPDF_PATH').')'; + $i++; +} +if (class_exists('FPDI')) +{ + if ($i) print ' + '; + print 'FPDI'; + print ' ('.@constant('FPDI_PATH').')'; + $i++; +} +if (class_exists('TCPDI')) +{ + if ($i) print ' + '; + print 'TCPDI'; + print ' ('.@constant('TCPDI_PATH').')'; + $i++; +} +print '
    \n"; +print '
    '; + + +print '
    '; +print ''; +print '
    '; + +print ''; + + // End of page llxFooter(); $db->close(); diff --git a/htdocs/admin/security_other.php b/htdocs/admin/security_other.php index 28c3db6f1d3..c9bf1ba4357 100644 --- a/htdocs/admin/security_other.php +++ b/htdocs/admin/security_other.php @@ -88,7 +88,7 @@ llxHeader('', $langs->trans("Miscellaneous"), $wikihelp); print load_fiche_titre($langs->trans("SecuritySetup"), '', 'title_setup'); -print $langs->trans("MiscellaneousDesc")."
    \n"; +print ''.$langs->trans("MiscellaneousDesc")."
    \n"; print "
    \n"; diff --git a/htdocs/admin/sms.php b/htdocs/admin/sms.php index e08c2c5eca8..73cad8f69ad 100644 --- a/htdocs/admin/sms.php +++ b/htdocs/admin/sms.php @@ -147,7 +147,7 @@ llxHeader('', $langs->trans("Setup"), $wikihelp); print load_fiche_titre($langs->trans("SmsSetup"), '', 'title_setup'); -print $langs->trans("SmsDesc")."
    \n"; +print ''.$langs->trans("SmsDesc")."
    \n"; print "
    \n"; // List of sending methods diff --git a/htdocs/admin/translation.php b/htdocs/admin/translation.php index ad7a2278991..ba2dde77bec 100644 --- a/htdocs/admin/translation.php +++ b/htdocs/admin/translation.php @@ -229,7 +229,7 @@ print load_fiche_titre($langs->trans("Translation"), $enabledisablehtml, 'title_ $current_language_code=$langs->defaultlang; $s=picto_from_langcode($current_language_code); -print $form->textwithpicto($langs->trans("CurrentUserLanguage").': '.$s.' '.$current_language_code.'', $langs->trans("TranslationDesc")).'
    '; +print ''.$form->textwithpicto($langs->trans("CurrentUserLanguage").': '.$s.' '.$current_language_code.'', $langs->trans("TranslationDesc")).'
    '; print '
    '; diff --git a/htdocs/core/boxes/box_accountancy_suspense_account.php b/htdocs/core/boxes/box_accountancy_suspense_account.php index 9740de82fbc..03c0f0ab7ae 100644 --- a/htdocs/core/boxes/box_accountancy_suspense_account.php +++ b/htdocs/core/boxes/box_accountancy_suspense_account.php @@ -108,14 +108,14 @@ class box_accountancy_suspense_account extends ModeleBoxes ); } else { $this->info_box_contents[0][0] = array( - 'td' => 'class="nohover opacitymedium left"', - 'text' => $langs->trans("SuspenseAccountNotDefined") + 'td' => 'class="nohover"', + 'text' => ''.$langs->trans("SuspenseAccountNotDefined").'' ); } } else { $this->info_box_contents[0][0] = array( - 'td' => 'class="nohover opacitymedium left"', - 'text' => $langs->trans("ReadPermissionNotAllowed") + 'td' => 'class="nohover"', + 'text' => ''.$langs->trans("ReadPermissionNotAllowed").'' ); } } diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 5d9a637de58..490d033dbf3 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -702,8 +702,8 @@ function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabM $warnpicto = ' '.img_warning($langs->trans("WarningMandatorySetupNotComplete")); } $newmenu->add("/admin/modules.php?mainmenu=home", $langs->trans("Modules").$warnpicto, 1); - $newmenu->add("/admin/menus.php?mainmenu=home", $langs->trans("Menus"), 1); $newmenu->add("/admin/ihm.php?mainmenu=home", $langs->trans("GUISetup"), 1); + $newmenu->add("/admin/menus.php?mainmenu=home", $langs->trans("Menus"), 1); $newmenu->add("/admin/translation.php?mainmenu=home", $langs->trans("Translation"), 1); $newmenu->add("/admin/defaultvalues.php?mainmenu=home", $langs->trans("DefaultValues"), 1); From c3aba5f1a32b9609c4597bd51a529f28b49e8ed8 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 14:53:30 +0200 Subject: [PATCH 310/484] FIX #12083 --- htdocs/debugbar/class/TraceableDB.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/debugbar/class/TraceableDB.php b/htdocs/debugbar/class/TraceableDB.php index d4bfd291602..20b5d47f0e8 100644 --- a/htdocs/debugbar/class/TraceableDB.php +++ b/htdocs/debugbar/class/TraceableDB.php @@ -333,9 +333,9 @@ class TraceableDB extends DoliDB 'sql' => $sql, 'duration' => $duration, 'memory_usage' => $memoryDelta, - 'is_success' => $resql, - 'error_code' => ! $resql ? $this->db->lasterrno() : null, - 'error_message' => ! $resql ? $this->db->lasterror() : null + 'is_success' => $resql ? true : false, + 'error_code' => $resql ? null : $this->db->lasterrno(), + 'error_message' => $resql ? null : $this->db->lasterror() ); } From 868bfb518b80c17b1253a8e485b5282bf3392290 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 15:08:10 +0200 Subject: [PATCH 311/484] FIX #11702 FIX #12088 --- htdocs/bom/tpl/objectline_create.tpl.php | 5 +++-- htdocs/core/tpl/objectline_create.tpl.php | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/htdocs/bom/tpl/objectline_create.tpl.php b/htdocs/bom/tpl/objectline_create.tpl.php index e266c142480..b77d713268f 100644 --- a/htdocs/bom/tpl/objectline_create.tpl.php +++ b/htdocs/bom/tpl/objectline_create.tpl.php @@ -100,14 +100,15 @@ if ($nolinesbefore) { $filtertype=''; if (! empty($object->element) && $object->element == 'contrat' && empty($conf->global->CONTRACT_SUPPORT_PRODUCTS)) $filtertype='1'; + $statustoshow = -1; if (! empty($conf->global->ENTREPOT_EXTRA_STATUS)) { // hide products in closed warehouse, but show products for internal transfer - $form->select_produits(GETPOST('idprod'), 'idprod', $filtertype, $conf->product->limit_size, $buyer->price_level, 1, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth500', 0, 'warehouseopen,warehouseinternal', GETPOST('combinations', 'array')); + $form->select_produits(GETPOST('idprod'), 'idprod', $filtertype, $conf->product->limit_size, $buyer->price_level, $statustoshow, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth500', 0, 'warehouseopen,warehouseinternal', GETPOST('combinations', 'array')); } else { - $form->select_produits(GETPOST('idprod'), 'idprod', $filtertype, $conf->product->limit_size, $buyer->price_level, 1, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth500', 0, '', GETPOST('combinations', 'array')); + $form->select_produits(GETPOST('idprod'), 'idprod', $filtertype, $conf->product->limit_size, $buyer->price_level, $statustoshow, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth500', 0, '', GETPOST('combinations', 'array')); } echo ''; diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php index 6bad5bb2ac5..ee34654f2f2 100644 --- a/htdocs/core/tpl/objectline_create.tpl.php +++ b/htdocs/core/tpl/objectline_create.tpl.php @@ -38,7 +38,6 @@ if (empty($object) || ! is_object($object)) { exit; } - $usemargins=0; if (! empty($conf->margin->enabled) && ! empty($object->element) && in_array($object->element, array('facture','facturerec','propal','commande'))) { @@ -248,14 +247,15 @@ if ($nolinesbefore) { if (empty($senderissupplier)) { + $statustoshow = 1; if (! empty($conf->global->ENTREPOT_EXTRA_STATUS)) { // hide products in closed warehouse, but show products for internal transfer - $form->select_produits(GETPOST('idprod'), 'idprod', $filtertype, $conf->product->limit_size, $buyer->price_level, -1, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth300', 0, 'warehouseopen,warehouseinternal', GETPOST('combinations', 'array')); + $form->select_produits(GETPOST('idprod'), 'idprod', $filtertype, $conf->product->limit_size, $buyer->price_level, $statustoshow, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth300', 0, 'warehouseopen,warehouseinternal', GETPOST('combinations', 'array')); } else { - $form->select_produits(GETPOST('idprod'), 'idprod', $filtertype, $conf->product->limit_size, $buyer->price_level, -1, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth300', 0, '', GETPOST('combinations', 'array')); + $form->select_produits(GETPOST('idprod'), 'idprod', $filtertype, $conf->product->limit_size, $buyer->price_level, $statustoshow, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth300', 0, '', GETPOST('combinations', 'array')); } if (! empty($conf->global->MAIN_AUTO_OPEN_SELECT2_ON_FOCUS_FOR_CUSTOMER_PRODUCTS)) From 85a4bac9e078e3c8e18ca72c2f34752b1cff0109 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 15:22:12 +0200 Subject: [PATCH 312/484] Better translation --- htdocs/langs/en_US/admin.lang | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index bc9981faf3f..5996d643624 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -870,9 +870,9 @@ Permission1251=Run mass imports of external data into database (data load) Permission1321=Export customer invoices, attributes and payments Permission1322=Reopen a paid bill Permission1421=Export sales orders and attributes -Permission2401=Read actions (events or tasks) linked to his account -Permission2402=Create/modify actions (events or tasks) linked to his account -Permission2403=Delete actions (events or tasks) linked to his account +Permission2401=Read actions (events or tasks) linked to his user account (if owner of event) +Permission2402=Create/modify actions (events or tasks) linked to his user account (if owner of event) +Permission2403=Delete actions (events or tasks) linked to his user account (if owner of event) Permission2411=Read actions (events or tasks) of others Permission2412=Create/modify actions (events or tasks) of others Permission2413=Delete actions (events or tasks) of others From 777c297353431b777f1d769ea29f735e2b16610a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 15:42:27 +0200 Subject: [PATCH 313/484] FIX #12054 --- .../compta/facture/invoicetemplate_list.php | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/htdocs/compta/facture/invoicetemplate_list.php b/htdocs/compta/facture/invoicetemplate_list.php index 5da37d46fd5..661f9604500 100644 --- a/htdocs/compta/facture/invoicetemplate_list.php +++ b/htdocs/compta/facture/invoicetemplate_list.php @@ -217,7 +217,17 @@ $sql = "SELECT s.nom as name, s.rowid as socid, f.rowid as facid, f.titre, f.tot $sql.= " f.nb_gen_done, f.nb_gen_max, f.date_last_gen, f.date_when, f.suspended,"; $sql.= " f.datec, f.tms,"; $sql.= " f.fk_cond_reglement, f.fk_mode_reglement"; -$sql.= " FROM ".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture_rec as f"; +// Add fields from extrafields +if (! empty($extrafields->attributes[$object->table_element]['label'])) + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); +// Add fields from hooks +$parameters=array(); +$reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters, $object); // Note that $action and $object may have been modified by hook +$sql.=preg_replace('/^,/', '', $hookmanager->resPrint); +$sql =preg_replace('/,\s*$/', '', $sql); + +$sql.= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."facture_rec as f"; +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."facture_rec_extrafields as ef ON ef.fk_object = f.rowid"; if (! $user->rights->societe->client->voir && ! $socid) { $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; } @@ -492,6 +502,8 @@ if ($resql) if (! empty($arrayfields['f.date_when']['checked'])) print_liste_field_titre($arrayfields['f.date_when']['label'], $_SERVER['PHP_SELF'], "f.date_when", "", $param, 'align="center"', $sortfield, $sortorder); if (! empty($arrayfields['f.datec']['checked'])) print_liste_field_titre($arrayfields['f.datec']['label'], $_SERVER['PHP_SELF'], "f.datec", "", $param, 'align="center"', $sortfield, $sortorder); if (! empty($arrayfields['f.tms']['checked'])) print_liste_field_titre($arrayfields['f.tms']['label'], $_SERVER['PHP_SELF'], "f.tms", "", $param, 'align="center"', $sortfield, $sortorder); + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; if (! empty($arrayfields['status']['checked'])) print_liste_field_titre($arrayfields['status']['label'], $_SERVER['PHP_SELF'], "f.suspended,f.frequency", "", $param, 'align="center"', $sortfield, $sortorder); print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'nomaxwidthsearch ')."\n"; print "\n"; @@ -630,6 +642,15 @@ if ($resql) print ''; if (! $i) $totalarray['nbfield']++; } + + $obj = $objp; + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; + // Fields from hook + $parameters=array('arrayfields'=>$arrayfields, 'obj'=>$objp, 'i'=>$i, 'totalarray'=>&$totalarray); + $reshook=$hookmanager->executeHooks('printFieldListValue', $parameters, $object); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + // Status if (! empty($arrayfields['status']['checked'])) { print ''; From c6a796d270efaaca1914e41540f13863b579a1ee Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 15:45:32 +0200 Subject: [PATCH 314/484] Try to fix #12097 --- htdocs/core/db/pgsql.class.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/htdocs/core/db/pgsql.class.php b/htdocs/core/db/pgsql.class.php index 637aac02545..2347d3d77e5 100644 --- a/htdocs/core/db/pgsql.class.php +++ b/htdocs/core/db/pgsql.class.php @@ -199,6 +199,12 @@ class DoliDBPgsql extends DoliDB $line=$newline; } + if (preg_match('/[\s\t\(]*(\w*)[\s\t]+bigint.*auto_increment/i', $line, $reg)) { + $newline=preg_replace('/([\s\t\(]*)([a-zA-Z_0-9]*)[\s\t]+int.*auto_increment[^,]*/i', '\\1 \\2 BIGSERIAL PRIMARY KEY', $line); + //$line = "-- ".$line." replaced by --\n".$newline; + $line=$newline; + } + // tinyint type conversion $line=preg_replace('/tinyint\(?[0-9]*\)?/', 'smallint', $line); $line=preg_replace('/tinyint/i', 'smallint', $line); From b5a2d373158096dcc27df9d33a1497059b5e6c3a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 16:10:09 +0200 Subject: [PATCH 315/484] Fix phpunit of BOM --- htdocs/bom/class/bom.class.php | 1 + test/phpunit/BOMTest.php | 149 ++++++++++++++++++++------------- 2 files changed, 94 insertions(+), 56 deletions(-) diff --git a/htdocs/bom/class/bom.class.php b/htdocs/bom/class/bom.class.php index 3835baf3b25..44370b40720 100644 --- a/htdocs/bom/class/bom.class.php +++ b/htdocs/bom/class/bom.class.php @@ -953,6 +953,7 @@ class BOM extends CommonObject public function initAsSpecimen() { $this->initAsSpecimenCommon(); + $this->ref = 'BOM-123'; $this->date = $this->date_creation; } diff --git a/test/phpunit/BOMTest.php b/test/phpunit/BOMTest.php index 551722aadd2..73603a5f336 100644 --- a/test/phpunit/BOMTest.php +++ b/test/phpunit/BOMTest.php @@ -22,89 +22,126 @@ * \brief PHPUnit test for BillOfMaterials class. */ -namespace test\unit; +global $conf,$user,$langs,$db; +//define('TEST_DB_FORCE_TYPE','mysql'); // This is to force using mysql driver +//require_once 'PHPUnit/Autoload.php'; +require_once dirname(__FILE__).'/../../htdocs/master.inc.php'; +require_once dirname(__FILE__).'/../../htdocs/bom/class/bom.class.php'; + +if (empty($user->id)) { + print "Load permissions for admin user nb 1\n"; + $user->fetch(1); + $user->getrights(); +} +$conf->global->MAIN_DISABLE_ALL_MAILS=1; + +$langs->load("main"); + /** * Class BillOfMaterialsTest * @package Testbillofmaterials */ -class BOMTest extends \PHPUnit\Framework\TestCase +class BOMTest extends PHPUnit\Framework\TestCase { + protected $savconf; + protected $savuser; + protected $savlangs; + protected $savdb; + /** - * Global test setup - * @return void + * Constructor + * We save global variables into local variables + * + * @return BOMTest */ + public function __construct() + { + parent::__construct(); + + //$this->sharedFixture + global $conf,$user,$langs,$db; + $this->savconf=$conf; + $this->savuser=$user; + $this->savlangs=$langs; + $this->savdb=$db; + + print __METHOD__." db->type=".$db->type." user->id=".$user->id; + //print " - db ".$db->db; + print "\n"; + } + + // Static methods public static function setUpBeforeClass() { - fwrite(STDOUT, __METHOD__ . "\n"); + global $conf,$user,$langs,$db; + $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. + + if (! empty($conf->global->MAIN_FIRSTNAME_NAME_POSITION)) { + print "\n".__METHOD__." Company must be setup to have name-firstname in order 'Firstname Lastname'\n"; + die(); + } + if (! empty($conf->global->MAIN_MODULE_LDAP)) { print "\n".__METHOD__." module LDAP must be disabled.\n"; die(); } + if (! empty($conf->global->MAIN_MODULE_MAILMANSPIP)) { print "\n".__METHOD__." module MailmanSpip must be disabled.\n"; die(); } + + print __METHOD__."\n"; + } + + // tear down after class + public static function tearDownAfterClass() + { + global $conf,$user,$langs,$db; + $db->rollback(); + + print __METHOD__."\n"; } /** - * Unit test setup - * @return void + * Init phpunit tests + * + * @return void */ protected function setUp() { - fwrite(STDOUT, __METHOD__ . "\n"); + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + print __METHOD__."\n"; } /** - * Verify pre conditions - * @return void - */ - protected function assertPreConditions() - { - fwrite(STDOUT, __METHOD__ . "\n"); - } - - /** - * A sample test - * @return bool - */ - public function testSomething() - { - fwrite(STDOUT, __METHOD__ . "\n"); - // TODO: test something - $this->assertTrue(true); - } - - /** - * Verify post conditions - * @return void - */ - protected function assertPostConditions() - { - fwrite(STDOUT, __METHOD__ . "\n"); - } - - /** - * Unit test teardown - * @return void + * End phpunit tests + * + * @return void */ protected function tearDown() { - fwrite(STDOUT, __METHOD__ . "\n"); + print __METHOD__."\n"; } /** - * Global test teardown - * @return void - */ - public static function tearDownAfterClass() - { - fwrite(STDOUT, __METHOD__ . "\n"); - } - - /** - * Unsuccessful test + * testBOMCreate * - * @param Exception $e Exception - * @return void - * @throws Exception + * @return int */ - protected function onNotSuccessfulTest(Exception $e) + public function testBOMCreate() { - fwrite(STDOUT, __METHOD__ . "\n"); - throw $e; + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + $localobject=new BOM($this->savdb); + $localobject->initAsSpecimen(); + $result=$localobject->create($user); + + print __METHOD__." result=".$result."\n"; + $this->assertLessThan($result, 0); + + return $localobject; } } From 7b81ffe3fe618eabe3219f0111d620b6cbac20f5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 16:29:16 +0200 Subject: [PATCH 316/484] Update list.php --- htdocs/expensereport/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php index 2b4a2a9a983..ecf32df6740 100644 --- a/htdocs/expensereport/list.php +++ b/htdocs/expensereport/list.php @@ -281,7 +281,7 @@ $sql.= " d.date_debut, d.date_fin, d.date_create, d.tms as date_modif, d.date_va $sql.= " u.rowid as id_user, u.firstname, u.lastname, u.login, u.email, u.statut, u.photo"; // Add fields from extrafields if (! empty($extrafields->attributes[$object->table_element]['label'])) { - foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); } // Add fields from hooks $parameters=array(); From d9e434965a87a0e163f9b5494a49255173d5803d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 16:29:44 +0200 Subject: [PATCH 317/484] Update list.php --- htdocs/holiday/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php index 882f59dbee6..b86dd2864b5 100644 --- a/htdocs/holiday/list.php +++ b/htdocs/holiday/list.php @@ -275,7 +275,7 @@ $sql.= " ua.statut as validator_statut,"; $sql.= " ua.photo as validator_photo"; // Add fields from extrafields if (! empty($extrafields->attributes[$object->table_element]['label'])) { - foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); } // Add fields from hooks $parameters=array(); From fbc4e3b441515c482338c9d137f89cc7ee584f81 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 16:37:10 +0200 Subject: [PATCH 318/484] Update listbyaccount.php --- htdocs/accountancy/bookkeeping/listbyaccount.php | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/htdocs/accountancy/bookkeeping/listbyaccount.php b/htdocs/accountancy/bookkeeping/listbyaccount.php index 2b9fc4fde29..640cf87d496 100644 --- a/htdocs/accountancy/bookkeeping/listbyaccount.php +++ b/htdocs/accountancy/bookkeeping/listbyaccount.php @@ -397,25 +397,27 @@ while ($i < min($num, $limit)) $i++; } -// Affiche un Sous-Total du dernier compte comptable affiché +// Show sub-total of last shown account print ''; print ''.$langs->trans("SubTotal").':'.price($sous_total_debit).''.price($sous_total_credit).''; -print ''; +print ''; print price($sous_total_debit - $sous_total_credit); -print '\n'; +print ''; +print ''; print ''; -// Affiche le Total +// Show total print ''; print ''.$langs->trans("Total").':'; -print ''; +print ''; print price($total_debit); print ''; -print ''; +print ''; print price($total_credit); print ''; -print ''; +print ''; +print ''; print ''; print ""; From b276abea26c58e78320137fc22a7e1d431ff71bb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 16:49:58 +0200 Subject: [PATCH 319/484] Fix missing token in form Fix date lost after search --- htdocs/accountancy/bookkeeping/list.php | 4 +-- .../accountancy/bookkeeping/listbyaccount.php | 31 +++++++++++-------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php index 5cf64a70e67..b5f0c06738a 100644 --- a/htdocs/accountancy/bookkeeping/list.php +++ b/htdocs/accountancy/bookkeeping/list.php @@ -502,9 +502,9 @@ if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&con if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; print '
    '; +print ''; print ''; if ($optioncss != '') print ''; -print ''; print ''; print ''; print ''; @@ -542,7 +542,7 @@ if (empty($reshook)) $moreforfilter .= $hookmanager->resPrint; else $moreforfilter = $hookmanager->resPrint; print '
    '; -print ''; +print '
    '; // Filters lines print ''; diff --git a/htdocs/accountancy/bookkeeping/listbyaccount.php b/htdocs/accountancy/bookkeeping/listbyaccount.php index 640cf87d496..d91772a6ab3 100644 --- a/htdocs/accountancy/bookkeeping/listbyaccount.php +++ b/htdocs/accountancy/bookkeeping/listbyaccount.php @@ -37,9 +37,6 @@ require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php'; // Load translation files required by the page $langs->loadLangs(array("accountancy")); -$page = GETPOST("page"); -$sortorder = GETPOST("sortorder"); -$sortfield = GETPOST("sortfield"); $action = GETPOST('action', 'alpha'); $search_date_start = dol_mktime(0, 0, 0, GETPOST('search_date_startmonth', 'int'), GETPOST('search_date_startday', 'int'), GETPOST('search_date_startyear', 'int')); $search_date_end = dol_mktime(0, 0, 0, GETPOST('search_date_endmonth', 'int'), GETPOST('search_date_endday', 'int'), GETPOST('search_date_endyear', 'int')); @@ -71,9 +68,9 @@ $offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; if ($sortorder == "") $sortorder = "ASC"; -if ($sortfield == "") $sortfield = "t.doc_date"; +if ($sortfield == "") $sortfield = "t.doc_date,t.rowid"; -if (empty($search_date_start) && empty($search_date_end)) { +if (empty($search_date_start) && empty($search_date_end) && GETPOSTISSET('search_date_startday') && GETPOSTISSET('search_date_startmonth') && GETPOSTISSET('search_date_starthour')) { $sql = "SELECT date_start, date_end from ".MAIN_DB_PREFIX."accounting_fiscalyear "; $sql.= " where date_start < '".$db->idate(dol_now())."' and date_end > '".$db->idate(dol_now())."'"; $sql.= $db->plimit(1); @@ -255,6 +252,14 @@ if ($action == 'delbookkeepingyear') { print ''; +print ''; +print ''; +if ($optioncss != '') print ''; +print ''; +print ''; +print ''; +print ''; + $newcardbutton.= dolGetButtonTitle($langs->trans('ViewFlatList'), '', 'fa fa-list paddingleft', DOL_URL_ROOT.'/accountancy/bookkeeping/list.php?'.$param); $newcardbutton.= dolGetButtonTitle($langs->trans('NewAccountingMvt'), '', 'fa fa-plus-circle paddingleft', './card.php?action=create'); @@ -265,12 +270,11 @@ if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($lim print_barre_liste($title_page, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $result, $nbtotalofrecords, 'title_accountancy', 0, $viewflat.$newcardbutton, '', $limit); // Reverse sort order -if ( preg_match('/^asc/i', $sortorder) ) - $sortorder = "asc"; -else - $sortorder = "desc"; +if (preg_match('/^asc/i', $sortorder)) $sortorder = "asc"; +else $sortorder = "desc"; -print '
    '; +print '
    '; +print '
    '; print ''; print ''; +print ''; print ''; print_liste_field_titre("AccountAccountingShort", $_SERVER['PHP_SELF']); @@ -313,8 +318,6 @@ print_liste_field_titre("Codejournal", $_SERVER['PHP_SELF'], "t.code_journal", " print_liste_field_titre('', $_SERVER["PHP_SELF"], "", $param, "", 'width="60"', $sortfield, $sortorder, 'center '); print "\n"; -print ''; - $total_debit = 0; $total_credit = 0; @@ -400,7 +403,7 @@ while ($i < min($num, $limit)) // Show sub-total of last shown account print ''; print ''; -print ''; print ''; @@ -421,6 +424,8 @@ print ''; print ''; print "
    '; @@ -300,6 +304,7 @@ print ''; $searchpicto=$form->showFilterAndCheckAddButtons(0); print $searchpicto; print '
    '.$langs->trans("SubTotal").':'.price($sous_total_debit).''.price($sous_total_credit).''; +print ''; print price($sous_total_debit - $sous_total_credit); print '
    "; +print '
    '; + print '
    '; // End of page From b58c2c38b2fbb13ef05a7d45ae64fcfb4c142efc Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 16:57:47 +0200 Subject: [PATCH 320/484] Fix missing token --- htdocs/core/lib/company.lib.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index 36657d48dbc..9b6876aefe9 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -993,7 +993,8 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') $title = (! empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("ContactsForCompany") : $langs->trans("ContactsAddressesForCompany")); print load_fiche_titre($title, $newcardbutton, ''); - print '
    '; + print ''; + print ''; print ''; print ''; print ''; From 95305a313d7b70daa137475b243ee930ec624863 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 17:02:35 +0200 Subject: [PATCH 321/484] Fix trans --- htdocs/core/lib/company.lib.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index 864d5d85c53..ced8c37c6d7 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -932,7 +932,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') 't.name'=>array('label'=>"Name", 'checked'=>1, 'position'=>10), 't.poste'=>array('label'=>"PostOrFunction", 'checked'=>1, 'position'=>20), 't.address'=>array('label'=>(empty($conf->dol_optimize_smallscreen) ? $langs->trans("Address").' / '.$langs->trans("Phone").' / '.$langs->trans("Email") : $langs->trans("Address")), 'checked'=>1, 'position'=>30), - 'sc.role'=>array('label'=>"Roles", 'checked'=>1, 'position'=>40), + 'sc.role'=>array('label'=>"ContactByDefaultFor", 'checked'=>1, 'position'=>40), 't.statut'=>array('label'=>"Status", 'checked'=>1, 'position'=>50, 'class'=>'center'), ); // Extra fields @@ -1091,7 +1091,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') if (in_array($val['type'], array('timestamp'))) $align.=($align?' ':'').'nowrap'; if ($key == 'status' || $key == 'statut') $align.=($align?' ':'').'center'; if (! empty($arrayfields['t.'.$key]['checked'])) print getTitleFieldOfList($val['label'], 0, $_SERVER['PHP_SELF'], 't.'.$key, '', $param, ($align?'class="'.$align.'"':''), $sortfield, $sortorder, $align.' ')."\n"; - if ($key == 'role') $align.=($align?' ':'').'center'; + if ($key == 'role') $align.=($align?' ':'').'left'; if (! empty($arrayfields['sc.'.$key]['checked'])) { print getTitleFieldOfList($arrayfields['sc.'.$key]['label'], 0, $_SERVER['PHP_SELF'], 'sc.'.$key, '', $param, ($align?'class="'.$align.'"':''), $sortfield, $sortorder, $align.' ')."\n"; } From d9dde34ba6eb8ca86ba5bc0bad249279de60abd1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 17:24:02 +0200 Subject: [PATCH 322/484] Fix phpcs --- .../modulebuilder/template/myobject_list.php | 36 +++++++++---------- htdocs/theme/eldy/manifest.json.php | 12 +++---- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/htdocs/modulebuilder/template/myobject_list.php b/htdocs/modulebuilder/template/myobject_list.php index 54885f8e380..1c1d0e101b9 100644 --- a/htdocs/modulebuilder/template/myobject_list.php +++ b/htdocs/modulebuilder/template/myobject_list.php @@ -22,24 +22,24 @@ * \brief List page for myobject */ -//if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); // Do not create database handler $db -//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Do not load object $user -//if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1'); // Do not load object $mysoc -//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); // Do not load object $langs -//if (! defined('NOSCANGETFORINJECTION')) define('NOSCANGETFORINJECTION','1'); // Do not check injection attack on GET parameters -//if (! defined('NOSCANPOSTFORINJECTION')) define('NOSCANPOSTFORINJECTION','1'); // Do not check injection attack on POST parameters -//if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK','1'); // Do not check CSRF attack (test on referer + on token if option MAIN_SECURITY_CSRF_WITH_TOKEN is on). -//if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Do not roll the Anti CSRF token (used if MAIN_SECURITY_CSRF_WITH_TOKEN is on) -//if (! defined('NOSTYLECHECK')) define('NOSTYLECHECK','1'); // Do not check style html tag into posted data -//if (! defined('NOIPCHECK')) define('NOIPCHECK','1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip -//if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1'); // If there is no need to load and show top and left menu -//if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); // If we don't need to load the html.form.class.php -//if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); // Do not load ajax.lib.php library -//if (! defined("NOLOGIN")) define("NOLOGIN",'1'); // If this page is public (can be called outside logged session) -//if (! defined("MAIN_LANG_DEFAULT")) define('MAIN_LANG_DEFAULT','auto'); // Force lang to a particular value -//if (! defined("MAIN_AUTHENTICATION_MODE")) define('MAIN_AUTHENTICATION_MODE','aloginmodule'); // Force authentication handler -//if (! defined("NOREDIRECTBYMAINTOLOGIN")) define('NOREDIRECTBYMAINTOLOGIN',1); // The main.inc.php does not make a redirect if not logged, instead show simple error message -//if (! defined("XFRAMEOPTIONS_ALLOWALL")) define('XFRAMEOPTIONS_ALLOWALL',1); // Do not add the HTTP header 'X-Frame-Options: SAMEORIGIN' but 'X-Frame-Options: ALLOWALL' +//if (! defined('NOREQUIREDB')) define('NOREQUIREDB', '1'); // Do not create database handler $db +//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER', '1'); // Do not load object $user +//if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC', '1'); // Do not load object $mysoc +//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN', '1'); // Do not load object $langs +//if (! defined('NOSCANGETFORINJECTION')) define('NOSCANGETFORINJECTION', '1'); // Do not check injection attack on GET parameters +//if (! defined('NOSCANPOSTFORINJECTION')) define('NOSCANPOSTFORINJECTION', '1'); // Do not check injection attack on POST parameters +//if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1'); // Do not check CSRF attack (test on referer + on token if option MAIN_SECURITY_CSRF_WITH_TOKEN is on). +//if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1'); // Do not roll the Anti CSRF token (used if MAIN_SECURITY_CSRF_WITH_TOKEN is on) +//if (! defined('NOSTYLECHECK')) define('NOSTYLECHECK', '1'); // Do not check style html tag into posted data +//if (! defined('NOIPCHECK')) define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip +//if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); // If there is no need to load and show top and left menu +//if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); // If we don't need to load the html.form.class.php +//if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); // Do not load ajax.lib.php library +//if (! defined("NOLOGIN")) define("NOLOGIN", '1'); // If this page is public (can be called outside logged session) +//if (! defined("MAIN_LANG_DEFAULT")) define('MAIN_LANG_DEFAULT', 'auto'); // Force lang to a particular value +//if (! defined("MAIN_AUTHENTICATION_MODE")) define('MAIN_AUTHENTICATION_MODE', 'aloginmodule'); // Force authentication handler +//if (! defined("NOREDIRECTBYMAINTOLOGIN")) define('NOREDIRECTBYMAINTOLOGIN', '1'); // The main.inc.php does not make a redirect if not logged, instead show simple error message +//if (! defined("XFRAMEOPTIONS_ALLOWALL")) define('XFRAMEOPTIONS_ALLOWALL', '1'); // Do not add the HTTP header 'X-Frame-Options: SAMEORIGIN' but 'X-Frame-Options: ALLOWALL' // Load Dolibarr environment $res=0; diff --git a/htdocs/theme/eldy/manifest.json.php b/htdocs/theme/eldy/manifest.json.php index 8809286ed1e..889b406ab3f 100644 --- a/htdocs/theme/eldy/manifest.json.php +++ b/htdocs/theme/eldy/manifest.json.php @@ -28,12 +28,12 @@ if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER', '1'); if (! defined('NOREQUIREDB')) define('NOREQUIREDB', '1'); if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC', '1'); -if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); -if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK', 1); -if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', 1); -if (! defined('NOLOGIN')) define('NOLOGIN', 1); -if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU',1); -if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML', 1); +if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN', '1'); +if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1'); +if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1'); +if (! defined('NOLOGIN')) define('NOLOGIN', '1'); +if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); +if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); require_once __DIR__.'/../../main.inc.php'; From fa928f7dc333d3a2e086830b7e47a080a24daf6c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 17:33:13 +0200 Subject: [PATCH 323/484] Update modCategorie.class.php --- htdocs/core/modules/modCategorie.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/modules/modCategorie.class.php b/htdocs/core/modules/modCategorie.class.php index eb9e2c6b4a1..d157e35a555 100644 --- a/htdocs/core/modules/modCategorie.class.php +++ b/htdocs/core/modules/modCategorie.class.php @@ -427,7 +427,7 @@ class modCategorie extends DolibarrModules if ($conf->societe->enabled) { $typeexample.=($typeexample?"/":"")."2=Customer-Prospect"; } if ($conf->adherent->enabled) { $typeexample.=($typeexample?"/":"")."3=Member"; } $this->import_examplevalues_array[$r] = array( - 'ca.label'=>"Supplier Category",'ca.type'=>$typeexample,'ca.description'=>"Imported category", + 'ca.label'=>"Supplier Category",'ca.type'=>$typeexample,'ca.description'=>"My Category description", 'ca.fk_parent' => '0' ); From 5446a7bd8e6d78c1092469398de6e6777d961ebe Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 17:43:15 +0200 Subject: [PATCH 324/484] Try phpunit fix --- test/phpunit/BOMTest.php | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/test/phpunit/BOMTest.php b/test/phpunit/BOMTest.php index 73603a5f336..b69e59c6283 100644 --- a/test/phpunit/BOMTest.php +++ b/test/phpunit/BOMTest.php @@ -39,8 +39,11 @@ $langs->load("main"); /** - * Class BillOfMaterialsTest - * @package Testbillofmaterials + * Class for PHPUnit tests + * + * @backupGlobals disabled + * @backupStaticAttributes enabled + * @remarks backupGlobals must be disabled to have db,conf,user and lang not erased. */ class BOMTest extends PHPUnit\Framework\TestCase { @@ -77,13 +80,6 @@ class BOMTest extends PHPUnit\Framework\TestCase global $conf,$user,$langs,$db; $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. - if (! empty($conf->global->MAIN_FIRSTNAME_NAME_POSITION)) { - print "\n".__METHOD__." Company must be setup to have name-firstname in order 'Firstname Lastname'\n"; - die(); - } - if (! empty($conf->global->MAIN_MODULE_LDAP)) { print "\n".__METHOD__." module LDAP must be disabled.\n"; die(); } - if (! empty($conf->global->MAIN_MODULE_MAILMANSPIP)) { print "\n".__METHOD__." module MailmanSpip must be disabled.\n"; die(); } - print __METHOD__."\n"; } @@ -142,6 +138,6 @@ class BOMTest extends PHPUnit\Framework\TestCase print __METHOD__." result=".$result."\n"; $this->assertLessThan($result, 0); - return $localobject; + return $result; } } From d109341ebedd95d7b0eeaa84a4d9510e7db7fcfe Mon Sep 17 00:00:00 2001 From: JC Prieto Date: Fri, 11 Oct 2019 18:08:15 +0200 Subject: [PATCH 325/484] Update card.php Variable $mesg not do anything --- htdocs/fourn/card.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/htdocs/fourn/card.php b/htdocs/fourn/card.php index 5ebe8ffed56..5c183cc212b 100644 --- a/htdocs/fourn/card.php +++ b/htdocs/fourn/card.php @@ -85,10 +85,7 @@ if (empty($reshook)) $result=$object->fetch($id); $object->code_compta_fournisseur=$_POST["supplieraccountancycode"]; $result=$object->update($object->id, $user, 1, 0, 1); - if ($result < 0) - { - $mesg=join(',', $object->errors); - } + if ($result < 0) setEventMessages($object->error, $object->errors, 'errors'); } // terms of the settlement if ($action == 'setconditions' && $user->rights->societe->creer) From 51383ce6afe742fba85502b83bac04008c1a8c87 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 18:42:07 +0200 Subject: [PATCH 326/484] FIX Reset of password can use email like the login. --- htdocs/user/class/user.class.php | 7 ++++++- htdocs/user/passwordforgotten.php | 9 +++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php index e8a45efcd62..fecbafe1dba 100644 --- a/htdocs/user/class/user.class.php +++ b/htdocs/user/class/user.class.php @@ -238,9 +238,10 @@ class User extends CommonObject * @param string $sid If defined, sid to used for search * @param int $loadpersonalconf 1=also load personal conf of user (in $user->conf->xxx), 0=do not load personal conf. * @param int $entity If a value is >= 0, we force the search on a specific entity. If -1, means search depens on default setup. + * @param int $email If defined, email to used for search * @return int <0 if KO, 0 not found, >0 if OK */ - public function fetch($id = '', $login = '', $sid = '', $loadpersonalconf = 0, $entity = -1) + public function fetch($id = '', $login = '', $sid = '', $loadpersonalconf = 0, $entity = -1, $email = '') { global $conf, $user; @@ -305,6 +306,10 @@ class User extends CommonObject { $sql.= " AND u.login = '".$this->db->escape($login)."'"; } + elseif ($email) + { + $sql.= " AND u.email = '".$this->db->escape($email)."'"; + } else { $sql.= " AND u.rowid = ".$id; diff --git a/htdocs/user/passwordforgotten.php b/htdocs/user/passwordforgotten.php index ada75da6110..8f85465cde2 100644 --- a/htdocs/user/passwordforgotten.php +++ b/htdocs/user/passwordforgotten.php @@ -45,8 +45,8 @@ $action=GETPOST('action', 'alpha'); $mode=$dolibarr_main_authentication; if (! $mode) $mode='http'; -$username = GETPOST('username', 'alpha'); -$passwordhash = GETPOST('passwordhash', 'alpha'); +$username = trim(GETPOST('username', 'alpha')); +$passwordhash = trim(GETPOST('passwordhash', 'alpha')); $conf->entity = (GETPOST('entity', 'int') ? GETPOST('entity', 'int') : 1); // Instantiate hooks of thirdparty module only if not already define @@ -104,6 +104,11 @@ if ($action == 'buildnewpassword' && $username) { $edituser = new User($db); $result=$edituser->fetch('', $username, '', 1); + if ($result == 0 && preg_match('/@/', $username)) + { + $result=$edituser->fetch('', '', '', 1, -1, $username); + } + if ($result <= 0 && $edituser->error == 'USERNOTFOUND') { $message = '
    '.$langs->trans("ErrorLoginDoesNotExists", $username).'
    '; From dfaf2ae34b20383a8c18d06efca2bf4e03bdf267 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 19:20:52 +0200 Subject: [PATCH 327/484] Trans --- htdocs/install/mysql/migration/repair.sql | 2 +- htdocs/langs/en_US/compta.lang | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/install/mysql/migration/repair.sql b/htdocs/install/mysql/migration/repair.sql index 4d87203b068..eac0d5b3bd9 100755 --- a/htdocs/install/mysql/migration/repair.sql +++ b/htdocs/install/mysql/migration/repair.sql @@ -471,7 +471,7 @@ UPDATE llx_accounting_bookkeeping set date_creation = tms where date_creation IS -- Note to make all deposit as payed when there is already a discount generated from it. --drop table tmp_invoice_deposit_mark_as_available; --create table tmp_invoice_deposit_mark_as_available as select * from llx_facture as f where f.type = 3 and f.paye = 0 and f.rowid in (select fk_facture_source from llx_societe_remise_except); ---update llx_facture set paye = 1 where rowid in (select rowid from tmp_invoice_deposit_mark_as_available); +--update llx_facture set paye = 1, fk_statut = 2 where rowid in (select rowid from tmp_invoice_deposit_mark_as_available); diff --git a/htdocs/langs/en_US/compta.lang b/htdocs/langs/en_US/compta.lang index 42d88f3f722..eb76d9c64a2 100644 --- a/htdocs/langs/en_US/compta.lang +++ b/htdocs/langs/en_US/compta.lang @@ -112,7 +112,7 @@ ShowVatPayment=Show VAT payment TotalToPay=Total to pay BalanceVisibilityDependsOnSortAndFilters=Balance is visible in this list only if table is sorted ascending on %s and filtered for 1 bank account CustomerAccountancyCode=Customer accounting code -SupplierAccountancyCode=vendor accounting code +SupplierAccountancyCode=Vendor accounting code CustomerAccountancyCodeShort=Cust. account. code SupplierAccountancyCodeShort=Sup. account. code AccountNumber=Account number From f345b5fdb0d2b3bc4f2ce52d541393a1f1c7d050 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 19:32:45 +0200 Subject: [PATCH 328/484] Fix look and feel v10 --- htdocs/comm/multiprix.php | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/htdocs/comm/multiprix.php b/htdocs/comm/multiprix.php index 8a5226d36d2..6442bb45a88 100644 --- a/htdocs/comm/multiprix.php +++ b/htdocs/comm/multiprix.php @@ -91,15 +91,13 @@ if ($_socid > 0) dol_fiche_head($head, $tabchoice, $langs->trans("ThirdParty"), 0, 'company'); - print ''; - print '\n"; - - - print ""; - print "
    '; - print ''; + print '
    '; - print '"; + print '"; - print '
    '; - print $langs->trans("PriceLevel").''.$objsoc->price_level."
    '; + print $langs->trans("PriceLevel").''.$objsoc->price_level."
    '; - print $langs->trans("NewValue").''; + print '
    '; + print $langs->trans("NewValue").''; print '
    "; - print "
    "; - dol_fiche_end(); print '
    '; @@ -157,8 +149,8 @@ if ($_socid > 0) while ($i < $num ) { $obj = $db->fetch_object($resql); - $tag = !$tag; - print ''; + + print ''; print ''.dol_print_date($db->jdate($obj->dc), "dayhour").''; print ''.$obj->price_level.' '; $userstatic->id=$obj->uid; From 2fa3b23cf10c9e05afc81be1caec91c6b6990d74 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 19:36:36 +0200 Subject: [PATCH 329/484] Fix missing price level field --- htdocs/core/modules/modSociete.class.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/htdocs/core/modules/modSociete.class.php b/htdocs/core/modules/modSociete.class.php index e41e96c5add..a0d190c65cd 100644 --- a/htdocs/core/modules/modSociete.class.php +++ b/htdocs/core/modules/modSociete.class.php @@ -270,6 +270,9 @@ class modSociete extends DolibarrModules 'st.code'=>'ProspectStatus','payterm.libelle'=>'PaymentConditions','paymode.libelle'=>'PaymentMode' ); if (! empty($conf->global->SOCIETE_USEPREFIX)) $this->export_fields_array[$r]['s.prefix']='Prefix'; + + if (! empty($conf->global->SOCIETE_USEPREFIX)) $this->export_fields_array[$r]['s.prefix']='Prefix'; + if (! empty($conf->global->PRODUIT_MULTIPRICES)) $this->export_fields_array[$r]['s.price_level']='PriceLevel'; // Add multicompany field if (! empty($conf->global->MULTICOMPANY_ENTITY_IN_EXPORT_IF_SHARED)) { @@ -295,7 +298,8 @@ class modSociete extends DolibarrModules 's.tva_intra'=>"Text",'s.capital'=>"Numeric",'s.note_private'=>"Text",'s.note_public'=>"Text",'t.libelle'=>"Text", 'ce.code'=>"List:c_effectif:libelle:code","cfj.libelle"=>"Text",'s.fk_prospectlevel'=>'List:c_prospectlevel:label:code', 'st.code'=>'List:c_stcomm:libelle:code','d.nom'=>'Text','u.login'=>'Text','u.firstname'=>'Text','u.lastname'=>'Text','payterm.libelle'=>'Text', - 'paymode.libelle'=>'Text','s.entity'=>'Numeric' + 'paymode.libelle'=>'Text','s.entity'=>'Numeric', + 's.price_level'=>'Numeric' ); $this->export_entities_array[$r]=array('u.login'=>'user','u.firstname'=>'user','u.lastname'=>'user'); // We define here only fields that use another picto From 9f596565898857b7503b597a00e9bfc64d7c2bd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Fri, 11 Oct 2019 23:08:33 +0200 Subject: [PATCH 330/484] fix typo inspired by grandoc --- dev/tools/dolibarr-mysql2pgsql.pl | 86 +++++++++---------- htdocs/adherents/class/adherent.class.php | 2 +- .../compta/facture/invoicetemplate_list.php | 4 +- .../core/class/commondocgenerator.class.php | 10 +-- .../supplier_order/pdf/pdf_cornas.modules.php | 6 +- .../jquery/plugins/flot/jquery.flot.js | 6 +- 6 files changed, 57 insertions(+), 57 deletions(-) diff --git a/dev/tools/dolibarr-mysql2pgsql.pl b/dev/tools/dolibarr-mysql2pgsql.pl index 1f510ad60f1..2fe03aaf2b5 100755 --- a/dev/tools/dolibarr-mysql2pgsql.pl +++ b/dev/tools/dolibarr-mysql2pgsql.pl @@ -58,7 +58,7 @@ foreach my $file (keys %filelist) { $ARGV[1]="$DESTI/$file"; print "Convert file $ARGV[0] into $ARGV[1]\n"; - + # MySQL to PostgreSQL dump file converter # # For usage: perl mysql2pgsql.perl --help @@ -76,18 +76,18 @@ foreach my $file (keys %filelist) { # 4) add debug option # see rest of changelog at http://cvs.linux.hr/cvsweb.cgi/sql/mysql2pgsql # 2003-12-16 jsp -- Joe Speigle : - # converts: s/\) *Type=MyISAM;/);/i, enum data type -> references, + # converts: s/\) *Type=MyISAM;/);/i, enum data type -> references, # auto_increment->sequences # 2004-01-13 jsp -- moved project to gborg; both the above declined ownership # 2004-06-29 converts: year(4), year(2) - # homepage: gborg.postgresql.org - + # homepage: gborg.postgresql.org + GetOptions("debug", "help"); - + my $DEBUG = $opt_debug || 0; my $HELP = $opt_help || 0; - - + + if (($HELP) || ! defined($ARGV[0]) || ! defined($ARGV[1])) { print "Usage: perl $0 {--verbose|--help|--debug} mysql_dump_file.sql pg_dump_file.sql\n"; print "\t* OPTIONS\n"; @@ -106,15 +106,15 @@ foreach my $file (keys %filelist) { print "\tpg_dump_file.sql (undefined)\n"; } exit 1; - } - + } + open(IN,"<$ARGV[0]") || die "can't open mysql dump file $ARGV[0]"; open(OUT,">$ARGV[1]") || die "can't open pg dump file $ARGV[1]"; print OUT "-- Generated by $PROG\n"; print OUT "-- (c) 2004, PostgreSQL Inc.\n"; print OUT "-- (c) 2005, Laurent Destailleur.\n"; print OUT "\n"; - + # Output for create table and create index sub output_create { # If command ends with "xxx,);", we change to "xxx);" @@ -128,7 +128,7 @@ foreach my $file (keys %filelist) { print OUT $create_index; } } - + # Reset when moving from each "create table" to "insert" part of dump sub reset_vars() { $create_sql=""; @@ -137,24 +137,24 @@ foreach my $file (keys %filelist) { $enum_column=''; } - + # Boucle sur contenu fichier source #---------------------------------- while() { - + # comments or empty lines - if (/^-- \$Id/) { + if (/^-- \$Id/) { $_ =~ s/\$//g; - print OUT $_; + print OUT $_; next; } # comments or empty lines if (/^#/ || /^$/ || /^--/) { - print OUT $_; + print OUT $_; next; } - if (/^USE\s*([^;]*);/) { - print OUT "\\c ". $1; + if (/^USE\s*([^;]*);/) { + print OUT "\\c ". $1; next; } if ($create_sql ne "") { # we are inside create table statement so lets process datatypes @@ -167,14 +167,14 @@ foreach my $file (keys %filelist) { # LDR Added "innodb" and "engine" } elsif (/(ISAM|innodb)/i) { # end of create table sequence - s/\) *type=(MyISAM|innodb);/);/i; - s/\) *engine=(MyISAM|innodb);/);/i; + s/\) *type=(MyISAM|innodb);/);/i; + s/\) *engine=(MyISAM|innodb);/);/i; $create_sql =~ s/,$//g; # strip last , inside create table $create_sql .= $_; &output_create; &reset_vars(); next; - } + } # enum -> check if (/([\w\"]*)\s+enum\s*\(((?:['"][\?\w]+['"]\s*,)+['"][\?\w]+['"])\)(.*)$/i) { @@ -189,7 +189,7 @@ foreach my $file (keys %filelist) { $enum_datafield{$enum_column} =~ s/\"/\'/g; $_ = qq~ $enum_column CHAR($maxlength) CHECK ($enum_column IN ($enum_datafield{$enum_column})) $suite\n~; # int, auto_increment -> serial - } elsif (/^[\s\t]*(\w*)\s*.*int.*auto_increment/i) { + } elsif (/^[\s\t]*(\w*)\s*.*int.*auto_increment/i) { $seq = qq~${table}_${1}_seq~; s/[\s\t]*([a-zA-Z_0-9]*)\s*.*int.*auto_increment[^,]*/ $1 SERIAL PRIMARY KEY/ig; $create_sql.=$_; @@ -211,40 +211,40 @@ foreach my $file (keys %filelist) { elsif (/tinyint/i) { s/tinyint/smallint/g; } - + # nuke unsigned s/(int\w+|smallint)\s+unsigned/$1/gi; - + # blob -> text s/\w*blob/text/gi; # tinytext/mediumtext -> text s/tinytext/text/gi; s/mediumtext/text/gi; - + # char -> varchar # PostgreSQL would otherwise pad with spaces as opposed # to MySQL! Your user interface may depend on this! s/(\s+)char/${1}varchar/gi; - + # nuke date representation (not supported in PostgreSQL) s/datetime default '[^']+'/datetime/i; s/date default '[^']+'/datetime/i; s/time default '[^']+'/datetime/i; - + # change not null datetime field to null valid ones # (to support remapping of "zero time" to null s/datetime not null/datetime/i; s/datetime/timestamp/i; - + # nuke size of timestamp s/timestamp\([^)]*\)/timestamp/i; - + # double -> numeric s/^double/numeric/i; s/(\s*)double/${1}numeric/i; - + # float -> numeric s/^float/numeric/i; s/(\s*)float/${1}numeric/i; @@ -261,7 +261,7 @@ foreach my $file (keys %filelist) { $create_sql.=$_; next; } - + # unique key [name] (field) if (/unique key\s*(\w*)\s*\((\w+)\)/i) { s/unique key\s*(\w*)\s*\((\w+)\)/UNIQUE\($2\)/i; @@ -288,30 +288,30 @@ foreach my $file (keys %filelist) { $create_index .= "CREATE INDEX $idxname ON $table ($fieldlist);\n"; next; } - + # index(field) if (/index\s*(\w*)\s*\((\w+)\)/i) { my $idxname=($1?"$1":"idx_${table}_$2"); $create_index .= "CREATE INDEX $idxname ON $table ($2);\n"; next; } - + # primary key if (/\bkey\b/i && !/^\s+primary key\s+/i) { s/KEY(\s+)[^(]*(\s+)/$1 UNIQUE $2/i; # hack off name of the non-primary key } - + # key(xxx) if (/key\s*\((\w+)\)/i) { my $idxname="idx_${table}_$1"; $create_index .= "CREATE INDEX $idxname ON $table ($1);\n"; next; } - + # Quote column names s/(^\s*)([^\s\-\(]+)(\s*)/$1"$2"$3/gi if (!/\bkey\b/i); - - # Remap colums with names of existing system attribute + + # Remap columns with names of existing system attribute if (/"oid"/i) { s/"oid"/"_oid"/g; print STDERR "WARNING: table $table uses column \"oid\" which is renamed to \"_oid\"\nYou should fix application manually! Press return to continue."; @@ -330,13 +330,13 @@ foreach my $file (keys %filelist) { s!\x85!... !g; # \ldots s!\x92!`!g; } - + # fix dates '0000-00-00 00:00:00' (should be null) s/'0000-00-00 00:00:00'/null/gi; s/'0000-00-00'/null/gi; s/'00:00:00'/null/gi; s/([12]\d\d\d)([01]\d)([0-3]\d)([0-2]\d)([0-6]\d)([0-6]\d)/'$1-$2-$3 $4:$5:$6'/; - + if (/create\s+table\s+(\w+)/i) { $create_sql = $_; /create\s*table\s*(\w+)/i; @@ -345,11 +345,11 @@ foreach my $file (keys %filelist) { print OUT $_; } } # end of if inside create_table - } # END while() - + } # END while() + close IN; close OUT; - + } print "\n"; @@ -358,4 +358,4 @@ print "\n"; print "Press a key to finish...\n"; $stop=; -0; \ No newline at end of file +0; diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php index 14eb401866a..2bcbc21c3a0 100644 --- a/htdocs/adherents/class/adherent.class.php +++ b/htdocs/adherents/class/adherent.class.php @@ -1282,7 +1282,7 @@ class Adherent extends CommonObject $this->societe = $obj->company; $this->company = $obj->company; $this->socid = $obj->fk_soc; - $this->fk_soc = $obj->fk_soc; // For backward comaptibility + $this->fk_soc = $obj->fk_soc; // For backward compatibility $this->address = $obj->address; $this->zip = $obj->zip; $this->town = $obj->town; diff --git a/htdocs/compta/facture/invoicetemplate_list.php b/htdocs/compta/facture/invoicetemplate_list.php index 3e9011bb74b..e13dc30204f 100644 --- a/htdocs/compta/facture/invoicetemplate_list.php +++ b/htdocs/compta/facture/invoicetemplate_list.php @@ -416,7 +416,7 @@ if ($resql) print ''; if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print ''; print ''; - $formother->select_year($search_year?$search_year:-1, 'search_year', 1, 20, 5, 0, 0, '', 'witdhauto valignmiddle'); + $formother->select_year($search_year?$search_year:-1, 'search_year', 1, 20, 5, 0, 0, '', 'widthauto valignmiddle'); print ''; } // Date next generation @@ -425,7 +425,7 @@ if ($resql) print ''; if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print ''; print ''; - $formother->select_year($search_year_date_when?$search_year_date_when:-1, 'search_year_date_when', 1, 20, 5, 0, 0, '', 'witdhauto valignmiddle'); + $formother->select_year($search_year_date_when?$search_year_date_when:-1, 'search_year_date_when', 1, 20, 5, 0, 0, '', 'widthauto valignmiddle'); print ''; } // Extra fields diff --git a/htdocs/core/class/commondocgenerator.class.php b/htdocs/core/class/commondocgenerator.class.php index 84f49bafe3f..c99f78c3483 100644 --- a/htdocs/core/class/commondocgenerator.class.php +++ b/htdocs/core/class/commondocgenerator.class.php @@ -63,7 +63,7 @@ abstract class CommonDocGenerator // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Define array with couple subtitution key => subtitution value + * Define array with couple substitution key => substitution value * * @param User $user User * @param Translate $outputlangs Language object for output @@ -101,7 +101,7 @@ abstract class CommonDocGenerator // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Define array with couple subtitution key => subtitution value + * Define array with couple substitution key => substitution value * * @param Societe $mysoc Object thirdparty * @param Translate $outputlangs Language object for output @@ -161,7 +161,7 @@ abstract class CommonDocGenerator // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Define array with couple subtitution key => subtitution value + * Define array with couple substitution key => substitution value * * @param Societe $object Object * @param Translate $outputlangs Language object for output @@ -242,7 +242,7 @@ abstract class CommonDocGenerator // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Define array with couple subtitution key => subtitution value + * Define array with couple substitution key => substitution value * * @param Contact $object contact * @param Translate $outputlangs object for output @@ -723,7 +723,7 @@ abstract class CommonDocGenerator // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Define array with couple subtitution key => subtitution value + * Define array with couple substitution key => substitution value * * @param Object $object Dolibarr Object * @param Translate $outputlangs Language object for output diff --git a/htdocs/core/modules/supplier_order/pdf/pdf_cornas.modules.php b/htdocs/core/modules/supplier_order/pdf/pdf_cornas.modules.php index 04a62d3d924..ee858c35cf7 100644 --- a/htdocs/core/modules/supplier_order/pdf/pdf_cornas.modules.php +++ b/htdocs/core/modules/supplier_order/pdf/pdf_cornas.modules.php @@ -1625,7 +1625,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders */ /** - * uasort callback function to Sort colums fields + * uasort callback function to Sort columns fields * * @param array $a PDF lines array fields configs * @param array $b PDF lines array fields configs @@ -1663,7 +1663,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders // Positionning $curX = $this->page_largeur-$this->marge_droite; // start from right - // Array witdh + // Array width $arrayWidth = $this->page_largeur-$this->marge_droite-$this->marge_gauche; // Count flexible column @@ -1671,7 +1671,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders $countFlexCol = 0; foreach ($this->cols as $colKey => &$colDef) { - if (!$this->getColumnStatus($colKey)) continue; // continue if desable + if (!$this->getColumnStatus($colKey)) continue; // continue if disabled if (!empty($colDef['scale'])){ // In case of column widht is defined by percentage diff --git a/htdocs/includes/jquery/plugins/flot/jquery.flot.js b/htdocs/includes/jquery/plugins/flot/jquery.flot.js index 39f3e4cf3ef..c97ceb1bf44 100644 --- a/htdocs/includes/jquery/plugins/flot/jquery.flot.js +++ b/htdocs/includes/jquery/plugins/flot/jquery.flot.js @@ -2010,7 +2010,7 @@ Licensed under the MIT license. ctx.lineTo(xrange.to + subPixel, yrange.to); } else { ctx.moveTo(xrange.from, yrange.to + subPixel); - ctx.lineTo(xrange.to, yrange.to + subPixel); + ctx.lineTo(xrange.to, yrange.to + subPixel); } ctx.stroke(); } else { @@ -2525,9 +2525,9 @@ Licensed under the MIT license. radius = series.points.radius, symbol = series.points.symbol; - // If the user sets the line width to 0, we change it to a very + // If the user sets the line width to 0, we change it to a very // small value. A line width of 0 seems to force the default of 1. - // Doing the conditional here allows the shadow setting to still be + // Doing the conditional here allows the shadow setting to still be // optional even with a lineWidth of 0. if( lw == 0 ) From c3e8aec07c6be4e0c315409c34ef65de83b8ee12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Fri, 11 Oct 2019 23:54:05 +0200 Subject: [PATCH 331/484] fix translation for showemailing in lang files, it's ShowEMailing not ShowEmailing --- htdocs/comm/mailing/class/mailing.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/comm/mailing/class/mailing.class.php b/htdocs/comm/mailing/class/mailing.class.php index 9df3a04a786..dba1de41cfd 100644 --- a/htdocs/comm/mailing/class/mailing.class.php +++ b/htdocs/comm/mailing/class/mailing.class.php @@ -548,7 +548,7 @@ class Mailing extends CommonObject $result = ''; $companylink = ''; - $label = '' . $langs->trans("ShowEmailing") . ''; + $label = '' . $langs->trans("ShowEMailing") . ''; $label.= '
    '; $label.= '' . $langs->trans('Ref') . ': ' . $this->ref; @@ -567,7 +567,7 @@ class Mailing extends CommonObject { if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { - $label=$langs->trans("ShowEmailing"); + $label=$langs->trans("ShowEMailing"); $linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"'; } $linkclose.=' title="'.dol_escape_htmltag($label, 1).'"'; From 849eda20232f47e91bf9afe1874365d1586fe0ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sat, 12 Oct 2019 00:05:26 +0200 Subject: [PATCH 332/484] Update index.php --- htdocs/comm/mailing/index.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/htdocs/comm/mailing/index.php b/htdocs/comm/mailing/index.php index d6ade738e3e..0f3e42d366f 100644 --- a/htdocs/comm/mailing/index.php +++ b/htdocs/comm/mailing/index.php @@ -175,13 +175,15 @@ if ($result) { while ($i < $num ) { $obj = $db->fetch_object($result); + $mailstatic=new Mailing($db); + $mailstatic->id = $obj->rowid; + $mailstatic->ref = $obj->rowid; print ''; - print ''.img_object($langs->trans("ShowEMail"), "email").' '.$obj->rowid.''; + print ''.$mailstatic->getNomUrl(1).''; print ''.dol_trunc($obj->titre, 38).''; print ''.dol_print_date($db->jdate($obj->date_creat), 'day').''; print ''.($obj->nbemail?$obj->nbemail:"0").''; - $mailstatic=new Mailing($db); print ''.$mailstatic->LibStatut($obj->statut, 5).''; print ''; $i++; From 71227e43faf1f7f9a98df7d73f47710fbe50f54e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Oct 2019 04:51:41 +0200 Subject: [PATCH 333/484] Debug stripe deprecated page --- htdocs/stripe/class/stripe.class.php | 122 ++++++++++++++++++++++----- htdocs/stripe/payment.php | 2 +- 2 files changed, 101 insertions(+), 23 deletions(-) diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index 1f1610438e8..593447919a7 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -803,7 +803,8 @@ class Stripe extends CommonObject } /** - * Create charge with public/payment/newpayment.php, stripe/card.php, cronjobs or REST API + * Create charge. + * This is called by page htdocs/stripe/payment.php and may be deprecated. * * @param int $amount Amount to pay * @param string $currency EUR, GPB... @@ -854,12 +855,12 @@ class Stripe extends CommonObject $description = ""; $ref = ""; - if ($origin == order) { + if ($origin == 'order') { $order = new Commande($this->db); $order->fetch($item); $ref = $order->ref; $description = "ORD=" . $ref . ".CUS=" . $societe->id.".PM=stripe"; - } elseif ($origin == invoice) { + } elseif ($origin == 'invoice') { $invoice = new Facture($this->db); $invoice->fetch($item); $ref = $invoice->ref; @@ -881,9 +882,42 @@ class Stripe extends CommonObject global $stripearrayofkeysbyenv; \Stripe\Stripe::setApiKey($stripearrayofkeysbyenv[$status]['secret_key']); - if (empty($conf->stripeconnect->enabled)) + if (empty($conf->stripeconnect->enabled)) // With a common Stripe account { - if (preg_match('/acct_/i', $source)) + if (preg_match('/pm_/i', $source)) + { + $stripecard = $source; + $amountstripe = $stripeamount; + $FULLTAG = 'PFBO'; // Payment From Back Office + $stripe = $return; + $amounttopay = $amount; + $servicestatus = $status; + + dol_syslog("* createPaymentStripe get stripeacc", LOG_DEBUG); + $stripeacc = $stripe->getStripeAccount($service); // Get Stripe OAuth connect account if it exists (no network access here) + + dol_syslog("* createPaymentStripe Create payment on card ".$stripecard->id.", amounttopay=".$amounttopay.", amountstripe=".$amountstripe.", FULLTAG=".$FULLTAG, LOG_DEBUG); + + // Create payment intent and charge payment (confirmnow = true) + $paymentintent = $stripe->getPaymentIntent($amounttopay, $currency, $FULLTAG, $description, $invoice, $customer->id, $stripeacc, $servicestatus, 0, 'automatic', true, $stripecard->id, 1); + + $charge = new stdClass(); + if ($paymentintent->status == 'succeeded') + { + $charge->status = 'ok'; + } + else + { + $charge->status = 'failed'; + $charge->failure_code = $stripe->code; + $charge->failure_message = $stripe->error; + $charge->failure_declinecode = $stripe->declinecode; + $stripefailurecode = $stripe->code; + $stripefailuremessage = $stripe->error; + $stripefailuredeclinecode = $stripe->declinecode; + } + } + elseif (preg_match('/acct_/i', $source)) { $charge = \Stripe\Charge::create(array( "amount" => "$stripeamount", @@ -914,12 +948,14 @@ class Stripe extends CommonObject $charge = \Stripe\Charge::create($paymentarray, array("idempotency_key" => "$description")); } } else { - $fee = $amount * ($conf->global->STRIPE_APPLICATION_FEE_PERCENT / 100) + $conf->global->STRIPE_APPLICATION_FEE; - if ($fee >= $conf->global->STRIPE_APPLICATION_FEE_MAXIMAL && $conf->global->STRIPE_APPLICATION_FEE_MAXIMAL > $conf->global->STRIPE_APPLICATION_FEE_MINIMAL) { - $fee = $conf->global->STRIPE_APPLICATION_FEE_MAXIMAL; - } elseif ($fee < $conf->global->STRIPE_APPLICATION_FEE_MINIMAL) { - $fee = $conf->global->STRIPE_APPLICATION_FEE_MINIMAL; - } + // With Stripe Connect + $fee = $amount * ($conf->global->STRIPE_APPLICATION_FEE_PERCENT / 100) + $conf->global->STRIPE_APPLICATION_FEE; + if ($fee >= $conf->global->STRIPE_APPLICATION_FEE_MAXIMAL && $conf->global->STRIPE_APPLICATION_FEE_MAXIMAL > $conf->global->STRIPE_APPLICATION_FEE_MINIMAL) { + $fee = $conf->global->STRIPE_APPLICATION_FEE_MAXIMAL; + } elseif ($fee < $conf->global->STRIPE_APPLICATION_FEE_MINIMAL) { + $fee = $conf->global->STRIPE_APPLICATION_FEE_MINIMAL; + } + if (! in_array($currency, $arrayzerounitcurrency)) $stripefee = round($fee * 100); else $stripefee = round($fee); @@ -942,22 +978,64 @@ class Stripe extends CommonObject $paymentarray["receipt_email"] = $societe->email; } - $charge = \Stripe\Charge::create($paymentarray, array("idempotency_key" => "$description", "stripe_account" => "$account")); + if (preg_match('/pm_/i', $source)) + { + $stripecard = $source; + $amountstripe = $stripeamount; + $FULLTAG = 'PFBO'; // Payment From Back Office + $stripe = $return; + $amounttopay = $amount; + $servicestatus = $status; + + dol_syslog("* createPaymentStripe get stripeacc", LOG_DEBUG); + $stripeacc = $stripe->getStripeAccount($service); // Get Stripe OAuth connect account if it exists (no network access here) + + dol_syslog("* createPaymentStripe Create payment on card ".$stripecard->id.", amounttopay=".$amounttopay.", amountstripe=".$amountstripe.", FULLTAG=".$FULLTAG, LOG_DEBUG); + + // Create payment intent and charge payment (confirmnow = true) + $paymentintent = $stripe->getPaymentIntent($amounttopay, $currency, $FULLTAG, $description, $invoice, $customer->id, $stripeacc, $servicestatus, 0, 'automatic', true, $stripecard->id, 1); + + $charge = new stdClass(); + if ($paymentintent->status == 'succeeded') + { + $charge->status = 'ok'; + $charge->id = $paymentintent->id; + } + else + { + $charge->status = 'failed'; + $charge->failure_code = $stripe->code; + $charge->failure_message = $stripe->error; + $charge->failure_declinecode = $stripe->declinecode; + } + } + else + { + $charge = \Stripe\Charge::create($paymentarray, array("idempotency_key" => "$description", "stripe_account" => "$account")); + } } if (isset($charge->id)) {} $return->statut = 'success'; $return->id = $charge->id; - if ($charge->source->type == 'card') { - $return->message = $charge->source->card->brand . " ...." . $charge->source->card->last4; - } elseif ($charge->source->type == 'three_d_secure') { - $stripe = new Stripe($this->db); - $src = \Stripe\Source::retrieve("" . $charge->source->three_d_secure->card . "", array( - "stripe_account" => $stripe->getStripeAccount($service) - )); - $return->message = $src->card->brand . " ...." . $src->card->last4; - } else { - $return->message = $charge->id; + + if (preg_match('/pm_/i', $source)) + { + $return->message = 'Payment retreived by card status = '.$charge->status; + } + else + { + if ($charge->source->type == 'card') { + $return->message = $charge->source->card->brand . " ...." . $charge->source->card->last4; + } elseif ($charge->source->type == 'three_d_secure') { + $stripe = new Stripe($this->db); + $src = \Stripe\Source::retrieve("" . $charge->source->three_d_secure->card . "", array( + "stripe_account" => $stripe->getStripeAccount($service) + )); + $return->message = $src->card->brand . " ...." . $src->card->last4; + } else { + $return->message = $charge->id; + } } } catch (\Stripe\Error\Card $e) { include DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; diff --git a/htdocs/stripe/payment.php b/htdocs/stripe/payment.php index dfcb79e18a0..894753f6440 100644 --- a/htdocs/stripe/payment.php +++ b/htdocs/stripe/payment.php @@ -28,7 +28,7 @@ /** * \file htdocs/stripe/payment.php * \ingroup stripe - * \brief Payment page for customers invoices. TODO Seems deprecated and bugged ! + * \brief Payment page for customers invoices. @TODO Seems deprecated and bugged and not used (no link to this page) ! */ // Load Dolibarr environment From dccfdad9dda6d9b7660c63b4530358a9b4b092a3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Oct 2019 11:25:44 +0200 Subject: [PATCH 334/484] Work on inventory feature --- htdocs/langs/en_US/stocks.lang | 3 + .../modulebuilder/template/myobject_card.php | 2 +- htdocs/product/inventory/card.php | 8 +- htdocs/product/inventory/inventory.php | 283 ++++++++++++++++++ .../product/inventory/lib/inventory.lib.php | 3 +- .../product/inventory/tpl/inventory.tpl.php | 202 +------------ htdocs/theme/eldy/btn.inc.php | 2 +- htdocs/theme/md/btn.inc.php | 13 + 8 files changed, 308 insertions(+), 208 deletions(-) create mode 100644 htdocs/product/inventory/inventory.php diff --git a/htdocs/langs/en_US/stocks.lang b/htdocs/langs/en_US/stocks.lang index a98d4e18cbf..18dc7faaeb9 100644 --- a/htdocs/langs/en_US/stocks.lang +++ b/htdocs/langs/en_US/stocks.lang @@ -212,3 +212,6 @@ StockIncreaseAfterCorrectTransfer=Increase by correction/transfer StockDecreaseAfterCorrectTransfer=Decrease by correction/transfer StockIncrease=Stock increase StockDecrease=Stock decrease +InventoryForASpecificWarehouse=Inventory for a specific warehouse +InventoryForASpecificProduct=Inventory for a specific product + diff --git a/htdocs/modulebuilder/template/myobject_card.php b/htdocs/modulebuilder/template/myobject_card.php index 7f28794d51b..6af2312938b 100644 --- a/htdocs/modulebuilder/template/myobject_card.php +++ b/htdocs/modulebuilder/template/myobject_card.php @@ -228,7 +228,7 @@ if (($id || $ref) && $action == 'edit') dol_fiche_head(); - print ''."\n"; + print '
    '."\n"; // Common attributes include DOL_DOCUMENT_ROOT . '/core/tpl/commonfields_edit.tpl.php'; diff --git a/htdocs/product/inventory/card.php b/htdocs/product/inventory/card.php index eb9181c8060..87e6fadb57a 100644 --- a/htdocs/product/inventory/card.php +++ b/htdocs/product/inventory/card.php @@ -148,7 +148,7 @@ jQuery(document).ready(function() { // Part to create if ($action == 'create') { - print load_fiche_titre($langs->trans("NewInventory", $langs->transnoentitiesnoconv("MyInventory")), '', 'products'); + print load_fiche_titre($langs->trans("NewInventory"), '', 'products'); print ''; print ''; @@ -183,7 +183,7 @@ if ($action == 'create') // Part to edit record if (($id || $ref) && $action == 'edit') { - print load_fiche_titre($langs->trans("Inventory")); + print load_fiche_titre($langs->trans("Inventory"), '', 'products'); print ''; print ''; @@ -193,7 +193,7 @@ if (($id || $ref) && $action == 'edit') dol_fiche_head(); - print '
    '."\n"; + print '
    '."\n"; // Common attributes include DOL_DOCUMENT_ROOT . '/core/tpl/commonfields_edit.tpl.php'; @@ -218,7 +218,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $res = $object->fetch_optionals(); $head = inventoryPrepareHead($object); - dol_fiche_head($head, 'inventory', $langs->trans("Inventory"), -1, 'inventory'); + dol_fiche_head($head, 'card', $langs->trans("Inventory"), -1, 'stock'); $formconfirm = ''; diff --git a/htdocs/product/inventory/inventory.php b/htdocs/product/inventory/inventory.php new file mode 100644 index 00000000000..ab1a31fe4de --- /dev/null +++ b/htdocs/product/inventory/inventory.php @@ -0,0 +1,283 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file htdocs/product/inventory/inventory.php + * \ingroup inventory + * \brief Tabe to enter counting + */ + +require '../../main.inc.php'; +include_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; +include_once DOL_DOCUMENT_ROOT.'/product/inventory/class/inventory.class.php'; +include_once DOL_DOCUMENT_ROOT.'/product/inventory/lib/inventory.lib.php'; + +// Load translation files required by the page +$langs->loadLangs(array("stocks","other")); + +// Get parameters +$id = GETPOST('id', 'int'); +$ref = GETPOST('ref', 'alpha'); +$action = GETPOST('action', 'aZ09'); +$confirm = GETPOST('confirm', 'alpha'); +$cancel = GETPOST('cancel', 'aZ09'); +$contextpage= GETPOST('contextpage', 'aZ')?GETPOST('contextpage', 'aZ'):'myobjectcard'; // To manage different context of search +$backtopage = GETPOST('backtopage', 'alpha'); + +if (empty($conf->global->MAIN_USE_ADVANCED_PERMS)) +{ + $result = restrictedArea($user, 'stock', $id); +} +else +{ + $result = restrictedArea($user, 'stock', $id, '', 'inventory_advance'); +} + +// Initialize technical objects +$object=new Inventory($db); +$extrafields = new ExtraFields($db); +$diroutputmassaction=$conf->stock->dir_output . '/temp/massgeneration/'.$user->id; +$hookmanager->initHooks(array('inventorycard')); // Note that conf->hooks_modules contains array + +// Fetch optionals attributes and labels +$extrafields->fetch_name_optionals_label($object->table_element); + +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); + +// Initialize array of search criterias +$search_all=trim(GETPOST("search_all", 'alpha')); +$search=array(); +foreach($object->fields as $key => $val) +{ + if (GETPOST('search_'.$key, 'alpha')) $search[$key]=GETPOST('search_'.$key, 'alpha'); +} + +if (empty($action) && empty($id) && empty($ref)) $action='view'; + +// Load object +include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once. + +// Security check - Protection if external user +//if ($user->societe_id > 0) access_forbidden(); +//if ($user->societe_id > 0) $socid = $user->societe_id; +//$result = restrictedArea($user, 'mymodule', $id); + +if (empty($conf->global->MAIN_USE_ADVANCED_PERMS)) +{ + $permissiontoadd = $user->rights->stock->creer; + $permissiontodelete = $user->rights->stock->supprimer; +} +else +{ + $permissiontoadd = $user->rights->stock->inventory_advance->write; + $permissiontodelete = $user->rights->stock->inventory_advance->write; +} + + +/* + * Actions + */ + +$parameters=array(); +$reshook=$hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + +if (empty($reshook)) +{ + $error=0; + + $backurlforlist = DOL_URL_ROOT.'/product/inventory/list.php'; + + // Actions cancel, add, update, delete or clone + include DOL_DOCUMENT_ROOT.'/core/actions_addupdatedelete.inc.php'; + + // Actions when linking object each other + include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php'; + + // Actions when printing a doc from card + include DOL_DOCUMENT_ROOT.'/core/actions_printing.inc.php'; + + // Actions to send emails + /*$trigger_name='MYOBJECT_SENTBYMAIL'; + $autocopy='MAIN_MAIL_AUTOCOPY_MYOBJECT_TO'; + $trackid='myobject'.$object->id; + include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php';*/ +} + + + + +/* + * View + */ + +$form=new Form($db); + +llxHeader('', $langs->trans('Inventory'), ''); + +// Example : Adding jquery code +print ''; + + +// Part to show record +if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'create'))) +{ + $res = $object->fetch_optionals(); + + $head = inventoryPrepareHead($object); + dol_fiche_head($head, 'inventory', $langs->trans("Inventory"), -1, 'stock'); + + $formconfirm = ''; + + // Confirmation to delete + if ($action == 'delete') { + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('DeleteInventory'), $langs->trans('ConfirmDeleteOrder'), 'confirm_delete', '', 0, 1); + } + // Confirmation to delete line + if ($action == 'deleteline') + { + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&lineid='.$lineid, $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_deleteline', '', 0, 1); + } + + // Clone confirmation + if ($action == 'clone') { + // Create an array for form + $formquestion = array(); + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('ToClone'), $langs->trans('ConfirmCloneMyObject', $object->ref), 'confirm_clone', $formquestion, 'yes', 1); + } + + // Call Hook formConfirm + $parameters = array('lineid' => $lineid); + $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + if (empty($reshook)) $formconfirm.=$hookmanager->resPrint; + elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint; + + // Print form confirm + print $formconfirm; + + + // Object card + // ------------------------------------------------------------ + $linkback = '' . $langs->trans("BackToList") . ''; + + $morehtmlref='
    '; + /* + // Ref bis + $morehtmlref.=$form->editfieldkey("RefBis", 'ref_client', $object->ref_client, $object, $user->rights->inventory->creer, 'string', '', 0, 1); + $morehtmlref.=$form->editfieldval("RefBis", 'ref_client', $object->ref_client, $object, $user->rights->inventory->creer, 'string', '', null, null, '', 1); + // Thirdparty + $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . $soc->getNomUrl(1); + // Project + if (! empty($conf->projet->enabled)) + { + $langs->load("projects"); + $morehtmlref.='
    '.$langs->trans('Project') . ' '; + if ($user->rights->inventory->creer) + { + if ($action != 'classify') + { + $morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; + if ($action == 'classify') { + //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); + $morehtmlref.=''; + $morehtmlref.=''; + $morehtmlref.=''; + $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref.=''; + $morehtmlref.=''; + } else { + $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + } + } + } else { + if (! empty($object->fk_project)) { + $proj = new Project($db); + $proj->fetch($object->fk_project); + $morehtmlref.=$proj->getNomUrl(); + } else { + $morehtmlref.=''; + } + } + } + */ + $morehtmlref.='
    '; + + + dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); + + + print '
    '; + print '
    '; + print '
    '; + print '
    '."\n"; + + // Common attributes + include DOL_DOCUMENT_ROOT . '/core/tpl/commonfields_view.tpl.php'; + + // Other attributes. Fields from hook formObjectOptions and Extrafields. + include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php'; + + print '
    '; + print '
    '; + print '
    '; + + print '
    '; + + dol_fiche_end(); + + + // Buttons for actions + if ($action != 'presend' && $action != 'editline') { + print '
    '."\n"; + $parameters=array(); + $reshook=$hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + + if (empty($reshook)) + { + if ($permissiontoadd) + { + print ''.$langs->trans("Validate").''."\n"; + } + else + { + print ''.$langs->trans('Validate').''."\n"; + } + } + print '
    '."\n"; + } + + + include DOL_DOCUMENT_ROOT.'/product/inventory/tpl/inventory.tpl.php'; + +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/product/inventory/lib/inventory.lib.php b/htdocs/product/inventory/lib/inventory.lib.php index 361a89c923c..e0af60588ed 100644 --- a/htdocs/product/inventory/lib/inventory.lib.php +++ b/htdocs/product/inventory/lib/inventory.lib.php @@ -69,7 +69,8 @@ function inventoryPrepareHead(&$inventory, $title = 'Inventory', $get = '') global $langs; return array( - array(dol_buildpath('/product/inventory/card.php?id='.$inventory->id.$get, 1), $langs->trans($title),'inventory') + array(dol_buildpath('/product/inventory/card.php?id='.$inventory->id.$get, 1), $langs->trans('Card'), 'card'), + array(dol_buildpath('/product/inventory/inventory.php?id='.$inventory->id.$get, 1), $langs->trans('Inventory'), 'inventory') ); } diff --git a/htdocs/product/inventory/tpl/inventory.tpl.php b/htdocs/product/inventory/tpl/inventory.tpl.php index 8d85b20dc43..992557505db 100644 --- a/htdocs/product/inventory/tpl/inventory.tpl.php +++ b/htdocs/product/inventory/tpl/inventory.tpl.php @@ -8,207 +8,7 @@ if (empty($conf) || ! is_object($conf)) } ?> - - -status != 1) { ?> - trans('AddInventoryProduct'); ?> : -
    - - - - - - -

    - - -
    - - -
    Cet inventaire est validé
    - - - - - - - $row) { - - $total_pmp+=$row['pmp_stock']; - $total_pa+=$row['pa_stock']; - $total_pmp_actual+=$row['pmp_actual']; - $total_pa_actual+=$row['pa_actual']; - - if($i%20 === 0) - { - _headerList($view); - } // Fin IF principal - ?> - - - - barcode->enabled)) { ?> - - - - - - - global->INVENTORY_USE_MIN_PA_IF_NO_LAST_PA)){ - echo ''; - $total_current_pa+=$row['current_pa_stock']; - } - - ?> - - - - - rights->stock->changePMP)) { - echo ''; - } - ?> - - global->INVENTORY_USE_MIN_PA_IF_NO_LAST_PA)){ - echo ''; - $total_current_pa_actual+=$row['current_pa_actual']; - } - - ?> - - - - - - - -
      '.price($row['current_pa_stock']).'   - - '.$row['pmp_new'].''.price($row['current_pa_actual']).'
    - - status != 1) { ?> -
    - - - trans('Modify') ?> - rights->stock->changePMP)) { - echo ''.$langs->trans('ApplyPMP').''; - } - - if ($can_validate == 1) { ?> - trans('RegulateStock') ?> - - - - - - - trans('Flush'); ?> -     - trans('Delete') ?> - -
    - - status == 1) { ?> -
    - - - - trans('Delete') ?> - - -
    - -
    -

    Date de création : getDate('datec') ?> -
    Dernière mise à jour : getDate('tms') ?>

    +TODO... diff --git a/htdocs/theme/eldy/btn.inc.php b/htdocs/theme/eldy/btn.inc.php index a3000715712..c69ee57c17b 100644 --- a/htdocs/theme/eldy/btn.inc.php +++ b/htdocs/theme/eldy/btn.inc.php @@ -61,7 +61,7 @@ span.butAction, span.butActionDelete { cursor: pointer; } -.tableforfieldcreate a.butActionNew>span.fa-plus-circle, a.butActionNew>span.fa-plus-circle:hover, +.tableforfieldcreate a.butActionNew>span.fa-plus-circle, .tableforfieldcreate a.butActionNew>span.fa-plus-circle:hover, span.butActionNew>span.fa-plus-circle, span.butActionNew>span.fa-plus-circle:hover, a.butActionNewRefused>span.fa-plus-circle, a.butActionNewRefused>span.fa-plus-circle:hover, span.butActionNewRefused>span.fa-plus-circle, span.butActionNewRefused>span.fa-plus-circle:hover, diff --git a/htdocs/theme/md/btn.inc.php b/htdocs/theme/md/btn.inc.php index 384b968d220..be897e8f841 100644 --- a/htdocs/theme/md/btn.inc.php +++ b/htdocs/theme/md/btn.inc.php @@ -77,6 +77,19 @@ span.butAction, span.butActionDelete { a.butActionNew>span.fa-plus-circle { padding-left: 6px; font-size: 1.5em; } a.butActionNewRefused>span.fa-plus-circle { padding-left: 6px; font-size: 1.5em; } +.tableforfieldcreate a.butActionNew>span.fa-plus-circle, .tableforfieldcreate a.butActionNew>span.fa-plus-circle:hover, +span.butActionNew>span.fa-plus-circle, span.butActionNew>span.fa-plus-circle:hover, +a.butActionNewRefused>span.fa-plus-circle, a.butActionNewRefused>span.fa-plus-circle:hover, +span.butActionNewRefused>span.fa-plus-circle, span.butActionNewRefused>span.fa-plus-circle:hover, +a.butActionNew>span.fa-list-alt, a.butActionNew>span.fa-list-alt:hover, +span.butActionNew>span.fa-list-alt, span.butActionNew>span.fa-list-alt:hover, +a.butActionNewRefused>span.fa-list-alt, a.butActionNewRefused>span.fa-list-alt:hover, +span.butActionNewRefused>span.fa-list-alt, span.butActionNewRefused>span.fa-list-alt:hover +{ + font-size: 1em; + padding-left: 0px; +} + .button, .butAction { color: #ffffff !important; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); From 33efd77fc7949e7d55ee7fe34bd906a302727091 Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Sat, 12 Oct 2019 12:10:33 +0200 Subject: [PATCH 335/484] more internationalization --- htdocs/core/modules/action/modules_action.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/htdocs/core/modules/action/modules_action.php b/htdocs/core/modules/action/modules_action.php index 5199933c0a2..0a559ae2d92 100644 --- a/htdocs/core/modules/action/modules_action.php +++ b/htdocs/core/modules/action/modules_action.php @@ -47,23 +47,23 @@ abstract class ModeleAction extends CommonDocGenerator global $conf; $type='action'; - $liste=array(); + $list=array(); include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; - $liste=getListOfModels($db, $type, $maxfilenamelength); + $list=getListOfModels($db, $type, $maxfilenamelength); - return $liste; + return $list; } } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps /** - * Create an product document on disk using template defined into PRODUCT_ADDON_PDF + * Create a product document on disk using template defined into PRODUCT_ADDON_PDF * - * @param DoliDB $db objet base de donnee + * @param DoliDB $db data base object * @param Object $object Object fichinter - * @param string $modele force le modele a utiliser ('' par defaut) - * @param Translate $outputlangs objet lang a utiliser pour traduction + * @param string $modele forces the model to use ('' by default) + * @param Translate $outputlangs lang object to use for translation * @param int $hidedetails Hide details of lines * @param int $hidedesc Hide description * @param int $hideref Hide ref @@ -79,7 +79,7 @@ function action_create($db, $object, $modele, $outputlangs, $hidedetails = 0, $h $srctemplatepath=''; - // Positionne modele sur le nom du modele de fichinter a utiliser + // Position modele on the name of fichinter model to use if (! dol_strlen($modele)) { if (! empty($conf->global->ACTION_EVENT_ADDON_PDF)) From 9ba992b8b6cc936cae7869395444fd4de63c7375 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Oct 2019 12:31:35 +0200 Subject: [PATCH 336/484] Work on inventory module --- htdocs/bom/bom_list.php | 8 ++--- htdocs/comm/action/card.php | 2 ++ htdocs/core/lib/functions2.lib.php | 35 +++++++++++-------- .../modulebuilder/template/myobject_list.php | 5 +-- htdocs/product/inventory/card.php | 11 +++++- .../inventory/class/inventory.class.php | 22 +++++++----- htdocs/product/inventory/inventory.php | 23 +++++++++--- htdocs/product/inventory/list.php | 31 ++++++++++------ 8 files changed, 93 insertions(+), 44 deletions(-) diff --git a/htdocs/bom/bom_list.php b/htdocs/bom/bom_list.php index 4b0a6ff29be..635f0f9db65 100644 --- a/htdocs/bom/bom_list.php +++ b/htdocs/bom/bom_list.php @@ -375,14 +375,14 @@ print ''; foreach($object->fields as $key => $val) { $cssforfield=(empty($val['css'])?'':$val['css']); - if ($key == 'status') $cssforfield='center'; + if ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center'; elseif (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center'; elseif (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap'; - elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real'))) $cssforfield.=($cssforfield?' ':'').'right'; + elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $val['label'] != 'TechnicalID') $cssforfield.=($cssforfield?' ':'').'right'; if (! empty($arrayfields['t.'.$key]['checked'])) { print ''; - if (is_array($val['arrayofkeyval'])) print $form->selectarray('search_'.$key, $val['arrayofkeyval'], $search[$key], $val['notnull'], 0, 0, '', 0, 0, 0, '', 'maxwidth75'); + if (is_array($val['arrayofkeyval'])) print $form->selectarray('search_'.$key, $val['arrayofkeyval'], $search[$key], $val['notnull'], 0, 0, '', 1, 0, 0, '', 'maxwidth75'); else print ''; print ''; } @@ -411,7 +411,7 @@ foreach($object->fields as $key => $val) if ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center'; elseif (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center'; elseif (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap'; - elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real'))) $cssforfield.=($cssforfield?' ':'').'right'; + elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $val['label'] != 'TechnicalID') $cssforfield.=($cssforfield?' ':'').'right'; if (! empty($arrayfields['t.'.$key]['checked'])) { print getTitleFieldOfList($arrayfields['t.'.$key]['label'], 0, $_SERVER['PHP_SELF'], 't.'.$key, '', $param, ($cssforfield?'class="'.$cssforfield.'"':''), $sortfield, $sortorder, ($cssforfield?$cssforfield.' ':''))."\n"; diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php index baf454fdf67..cc3accde763 100644 --- a/htdocs/comm/action/card.php +++ b/htdocs/comm/action/card.php @@ -1080,6 +1080,8 @@ if ($action == 'create') $formproject->selectTasks((! empty($societe->id)?$societe->id:-1), $tid, 'taskid', 24, 0, '1', 1, 0, 0, 'maxwidth500', $projectsListId); print ''; } + + // Object linked if (!empty($origin) && !empty($originid)) { include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; diff --git a/htdocs/core/lib/functions2.lib.php b/htdocs/core/lib/functions2.lib.php index 8ff78fe5be0..c2c3528c869 100644 --- a/htdocs/core/lib/functions2.lib.php +++ b/htdocs/core/lib/functions2.lib.php @@ -1820,69 +1820,76 @@ function dolGetElementUrl($objectid, $objecttype, $withpicto = 0, $option = '') $subelement = $regs[2]; } + // Generic case for $classpath $classpath = $element.'/class'; - // To work with non standard path + // Special cases, to work with non standard path if ($objecttype == 'facture' || $objecttype == 'invoice') { $classpath = 'compta/facture/class'; $module='facture'; $subelement='facture'; } - if ($objecttype == 'commande' || $objecttype == 'order') { + elseif ($objecttype == 'commande' || $objecttype == 'order') { $classpath = 'commande/class'; $module='commande'; $subelement='commande'; } - if ($objecttype == 'propal') { + elseif ($objecttype == 'propal') { $classpath = 'comm/propal/class'; } - if ($objecttype == 'supplier_proposal') { + elseif ($objecttype == 'supplier_proposal') { $classpath = 'supplier_proposal/class'; } - if ($objecttype == 'shipping') { + elseif ($objecttype == 'shipping') { $classpath = 'expedition/class'; $subelement = 'expedition'; $module = 'expedition_bon'; } - if ($objecttype == 'delivery') { + elseif ($objecttype == 'delivery') { $classpath = 'livraison/class'; $subelement = 'livraison'; $module = 'livraison_bon'; } - if ($objecttype == 'contract') { + elseif ($objecttype == 'contract') { $classpath = 'contrat/class'; $module='contrat'; $subelement='contrat'; } - if ($objecttype == 'member') { + elseif ($objecttype == 'member') { $classpath = 'adherents/class'; $module='adherent'; $subelement='adherent'; } - if ($objecttype == 'cabinetmed_cons') { + elseif ($objecttype == 'cabinetmed_cons') { $classpath = 'cabinetmed/class'; $module='cabinetmed'; $subelement='cabinetmedcons'; } - if ($objecttype == 'fichinter') { + elseif ($objecttype == 'fichinter') { $classpath = 'fichinter/class'; $module='ficheinter'; $subelement='fichinter'; } - if ($objecttype == 'task') { + elseif ($objecttype == 'task') { $classpath = 'projet/class'; $module='projet'; $subelement='task'; } - if ($objecttype == 'stock') { + elseif ($objecttype == 'stock') { $classpath = 'product/stock/class'; $module='stock'; $subelement='stock'; } + elseif ($objecttype == 'inventory') { + $classpath = 'product/inventory/class'; + $module='stock'; + $subelement='inventory'; + } - //print "objecttype=".$objecttype." module=".$module." subelement=".$subelement; - + // Generic case for $classfile and $classname $classfile = strtolower($subelement); $classname = ucfirst($subelement); + //print "objecttype=".$objecttype." module=".$module." subelement=".$subelement." classfile=".$classfile." classname=".$classname; + if ($objecttype == 'invoice_supplier') { $classfile = 'fournisseur.facture'; $classname='FactureFournisseur'; diff --git a/htdocs/modulebuilder/template/myobject_list.php b/htdocs/modulebuilder/template/myobject_list.php index 1c1d0e101b9..bf24be61023 100644 --- a/htdocs/modulebuilder/template/myobject_list.php +++ b/htdocs/modulebuilder/template/myobject_list.php @@ -219,8 +219,9 @@ foreach($object->fields as $key => $val) $sql.='t.'.$key.', '; } // Add fields from extrafields -if (! empty($extrafields->attributes[$object->table_element]['label'])) +if (! empty($extrafields->attributes[$object->table_element]['label'])) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.' as options_'.$key.', ' : ''); +} // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters, $object); // Note that $action and $object may have been modified by hook @@ -414,7 +415,7 @@ foreach($object->fields as $key => $val) if (! empty($arrayfields['t.'.$key]['checked'])) { print ''; - if (is_array($val['arrayofkeyval'])) print $form->selectarray('search_'.$key, $val['arrayofkeyval'], $search[$key], $val['notnull'], 0, 0, '', 0, 0, 0, '', 'maxwidth75'); + if (is_array($val['arrayofkeyval'])) print $form->selectarray('search_'.$key, $val['arrayofkeyval'], $search[$key], $val['notnull'], 0, 0, '', 1, 0, 0, '', 'maxwidth75'); else print ''; print ''; } diff --git a/htdocs/product/inventory/card.php b/htdocs/product/inventory/card.php index 87e6fadb57a..639b04cdbcc 100644 --- a/htdocs/product/inventory/card.php +++ b/htdocs/product/inventory/card.php @@ -340,6 +340,15 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print ''.$langs->trans('Modify').''."\n"; } + if ($permissiontoadd) + { + print ''.$langs->trans("Validate").''."\n"; + } + else + { + print ''.$langs->trans('Validate').''."\n"; + } + if ($permissiontodelete) { print ''.$langs->trans('Delete').''."\n"; @@ -382,7 +391,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $MAXEVENT = 10; - $morehtmlright = ''; + $morehtmlright = ''; $morehtmlright.= $langs->trans("SeeAll"); $morehtmlright.= ''; diff --git a/htdocs/product/inventory/class/inventory.class.php b/htdocs/product/inventory/class/inventory.class.php index 2445934b98c..e9284781a5d 100644 --- a/htdocs/product/inventory/class/inventory.class.php +++ b/htdocs/product/inventory/class/inventory.class.php @@ -54,22 +54,29 @@ class Inventory extends CommonObject */ public $picto = 'stock'; + const STATUS_DRAFT = 0; + const STATUS_VALIDATED = 1; + const STATUS_RECORDED = 2; + const STATUS_CANCELED = 9; /** - * 'type' if the field format. + * 'type' if the field format ('integer', 'integer:Class:pathtoclass', 'varchar(x)', 'double(24,8)', 'text', 'html', 'datetime', 'timestamp', 'float') * 'label' the translation key. * 'enabled' is a condition when the field must be managed. * 'visible' says if field is visible in list (Examples: 0=Not visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create). Using a negative value means field is not shown by default on list but can be selected for viewing) + * 'noteditable' says if field is not editable (1 or 0) * 'notnull' is set to 1 if not null in database. Set to -1 if we must set data to null if empty ('' or 0). + * 'default' is a default value for creation (can still be replaced by the global setup of default values) * 'index' if we want an index in database. * 'foreignkey'=>'tablename.field' if the field is a foreign key (it is recommanded to name the field fk_...). * 'position' is the sort order of field. * 'searchall' is 1 if we want to search in this field when making a search from the quick search button. * 'isameasure' must be set to 1 if you want to have a total on list for this field. Field type must be summable like integer or double(24,8). + * 'css' is the CSS style to use on field. For example: 'maxwidth200' * 'help' is a string visible as a tooltip on field * 'comment' is not used. You can store here any text of your choice. It is not used by application. - * 'default' is a default value for creation (can still be replaced by the global setup of default values) - * 'showoncombobox' if field must be shown into the label of combobox + * 'showoncombobox' if value of the field must be visible into the label of the combobox that list record + * 'arraykeyval' to set list of value if type is a list of predefined values. For example: array("0"=>"Draft","1"=>"Active","-1"=>"Cancel") */ // BEGIN MODULEBUILDER PROPERTIES @@ -85,18 +92,15 @@ class Inventory extends CommonObject 'fk_product' => array('type'=>'integer:Product:product/class/product.class.php', 'label'=>'Product', 'visible'=>1, 'enabled'=>1, 'position'=>32, 'index'=>1, 'help'=>'InventoryForASpecificProduct'), 'date_inventory' => array('type'=>'date', 'label'=>'DateValue', 'visible'=>1, 'enabled'=>1, 'position'=>35), - 'date_validation' => array('type'=>'datetime', 'label'=>'DateValidation', 'visible'=>-2, 'enabled'=>1, 'position'=>502,), - 'fk_user_valid' => array('type'=>'integer', 'label'=>'UserValidation', 'visible'=>-2, 'enabled'=>1, 'position'=>512,), - 'date_creation' =>array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>500), 'tms' =>array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>501), - //'date_valid' =>array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-2, 'position'=>502), + 'date_validation' => array('type'=>'datetime', 'label'=>'DateValidation', 'visible'=>-2, 'enabled'=>1, 'position'=>502), 'fk_user_creat' =>array('type'=>'integer', 'label'=>'UserAuthor', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>510), 'fk_user_modif' =>array('type'=>'integer', 'label'=>'UserModif', 'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'position'=>511), - //'fk_user_valid' =>array('type'=>'integer', 'label'=>'UserValidation', 'enabled'=>1, 'visible'=>-1, 'position'=>512), + 'fk_user_valid' => array('type'=>'integer', 'label'=>'UserValidation', 'visible'=>-2, 'enabled'=>1, 'position'=>512), 'import_key' =>array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'index'=>0, 'position'=>1000), - 'status' => array('type'=>'integer', 'label'=>'Status', 'visible'=>4, 'enabled'=>1, 'position'=>1000, 'default'=>0, 'arrayofkeyval'=>array(0=>'ToDo', 1=>'Done', -1=>'Cancel')), + 'status' => array('type'=>'integer', 'label'=>'Status', 'visible'=>4, 'enabled'=>1, 'position'=>1000, 'default'=>0, 'arrayofkeyval'=>array(0=>'Draft', 1=>'Validated', 2=>'Recorded', -1=>'Canceled')), ); /** diff --git a/htdocs/product/inventory/inventory.php b/htdocs/product/inventory/inventory.php index ab1a31fe4de..c91834e54e5 100644 --- a/htdocs/product/inventory/inventory.php +++ b/htdocs/product/inventory/inventory.php @@ -261,13 +261,28 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea if (empty($reshook)) { - if ($permissiontoadd) + if ($object->status == Inventory::STATUS_DRAFT) { - print ''.$langs->trans("Validate").''."\n"; + if ($permissiontoadd) + { + print ''.$langs->trans("Validate").''."\n"; + } + else + { + print ''.$langs->trans('Validate').''."\n"; + } } - else + + if ($object->status == Inventory::STATUS_VALIDATED) { - print ''.$langs->trans('Validate').''."\n"; + if ($permissiontoadd) + { + print ''.$langs->trans("RecordVerb").''."\n"; + } + else + { + print ''.$langs->trans('RecordVerb').''."\n"; + } } } print '
    '."\n"; diff --git a/htdocs/product/inventory/list.php b/htdocs/product/inventory/list.php index f2e4853908d..b81e989cbb9 100644 --- a/htdocs/product/inventory/list.php +++ b/htdocs/product/inventory/list.php @@ -366,11 +366,18 @@ print ''; foreach($object->fields as $key => $val) { - $align=''; - if (in_array($val['type'], array('date','datetime','timestamp'))) $align.=($align?' ':'').'center'; - if (in_array($val['type'], array('timestamp'))) $align.=($align?' ':'').'nowrap'; - if ($key == 'status') $align.=($align?' ':'').'center'; - if (! empty($arrayfields['t.'.$key]['checked'])) print ''; + $cssforfield=(empty($val['css'])?'':$val['css']); + if ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center'; + elseif (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center'; + elseif (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap'; + elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $val['label'] != 'TechnicalID') $cssforfield.=($cssforfield?' ':'').'right'; + if (! empty($arrayfields['t.'.$key]['checked'])) + { + print ''; + } } // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php'; @@ -392,11 +399,15 @@ print ''."\n"; print ''; foreach($object->fields as $key => $val) { - $align=''; - if (in_array($val['type'], array('date','datetime','timestamp'))) $align.=($align?' ':'').'center'; - if (in_array($val['type'], array('timestamp'))) $align.=($align?' ':'').'nowrap'; - if ($key == 'status') $align.=($align?' ':'').'center'; - if (! empty($arrayfields['t.'.$key]['checked'])) print getTitleFieldOfList($arrayfields['t.'.$key]['label'], 0, $_SERVER['PHP_SELF'], 't.'.$key, '', $param, ($align?'class="'.$align.'"':''), $sortfield, $sortorder, $align.' ')."\n"; + $cssforfield=(empty($val['css'])?'':$val['css']); + if ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center'; + elseif (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center'; + elseif (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap'; + elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $val['label'] != 'TechnicalID') $cssforfield.=($cssforfield?' ':'').'right'; + if (! empty($arrayfields['t.'.$key]['checked'])) + { + print getTitleFieldOfList($arrayfields['t.'.$key]['label'], 0, $_SERVER['PHP_SELF'], 't.'.$key, '', $param, ($cssforfield?'class="'.$cssforfield.'"':''), $sortfield, $sortorder, ($cssforfield?$cssforfield.' ':''))."\n"; + } } // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; From bcc41c2a3389da42e480780babbfd1e4010eefe7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Oct 2019 13:16:12 +0200 Subject: [PATCH 337/484] NEW Can filter on description on bank account transaction lists. --- htdocs/compta/bank/bankentries_list.php | 79 ++++++++++++++++--------- 1 file changed, 52 insertions(+), 27 deletions(-) diff --git a/htdocs/compta/bank/bankentries_list.php b/htdocs/compta/bank/bankentries_list.php index cd964c7f4f4..1b0f7feffe4 100644 --- a/htdocs/compta/bank/bankentries_list.php +++ b/htdocs/compta/bank/bankentries_list.php @@ -75,15 +75,15 @@ else $result=restrictedArea($user, 'banque'); } -$description=GETPOST("description", 'alpha'); $dateop = dol_mktime(12, 0, 0, GETPOST("opmonth", 'int'), GETPOST("opday", 'int'), GETPOST("opyear", 'int')); -$debit=GETPOST("debit", 'alpha'); -$credit=GETPOST("credit", 'alpha'); +$search_debit=GETPOST("search_debit", 'alpha'); +$search_credit=GETPOST("search_credit", 'alpha'); $search_type=GETPOST("search_type", 'alpha'); $search_account=GETPOST("search_account", 'int')?GETPOST("search_account", 'int'):GETPOST("account", 'int'); $search_accountancy_code=GETPOST('search_accountancy_code', 'alpha')?GETPOST('search_accountancy_code', 'alpha'):GETPOST('accountancy_code', 'alpha'); $search_bid=GETPOST("search_bid", "int")?GETPOST("search_bid", "int"):GETPOST("bid", "int"); $search_ref=GETPOST('search_ref', 'alpha'); +$search_description=GETPOST("search_description", 'alpha'); $search_dt_start = dol_mktime(0, 0, 0, GETPOST('search_start_dtmonth', 'int'), GETPOST('search_start_dtday', 'int'), GETPOST('search_start_dtyear', 'int')); $search_dt_end = dol_mktime(0, 0, 0, GETPOST('search_end_dtmonth', 'int'), GETPOST('search_end_dtday', 'int'), GETPOST('search_end_dtyear', 'int')); $search_dv_start = dol_mktime(0, 0, 0, GETPOST('search_start_dvmonth', 'int'), GETPOST('search_start_dvday', 'int'), GETPOST('search_start_dvyear', 'int')); @@ -142,7 +142,7 @@ $search_array_options=$extrafields->getOptionalsFromPost('banktransaction', '', $arrayfields=array( 'b.rowid'=>array('label'=>$langs->trans("Ref"), 'checked'=>1), - 'description'=>array('label'=>$langs->trans("Description"), 'checked'=>1), + 'b.label'=>array('label'=>$langs->trans("Description"), 'checked'=>1), 'b.dateo'=>array('label'=>$langs->trans("DateOperationShort"), 'checked'=>1), 'b.datev'=>array('label'=>$langs->trans("DateValueShort"), 'checked'=>1), 'type'=>array('label'=>$langs->trans("Type"), 'checked'=>1), @@ -186,13 +186,13 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' $search_dt_end=''; $search_dv_start=''; $search_dv_end=''; - $description=""; $search_type=""; - $debit=""; - $credit=""; + $search_debit=""; + $search_credit=""; $search_bid=""; $search_ref=""; $search_req_nb=''; + $search_description=''; $search_thirdparty=''; $search_num_releve=''; $search_conciliated=''; @@ -263,6 +263,7 @@ if ((GETPOST('confirm_savestatement', 'alpha') || GETPOST('confirm_reconcile', ' if ($offset) $param.='&offset='.urlencode($offset); if ($search_thirdparty) $param.='&search_thirdparty='.urlencode($search_thirdparty); if ($search_num_releve) $param.='&search_num_releve='.urlencode($search_num_releve); + if ($search_description) $param.='&search_description='.urlencode($search_description); if ($search_start_dt) $param.='&search_start_dt='.urlencode($search_start_dt); if ($search_end_dt) $param.='&search_end_dt='.urlencode($search_end_dt); if ($search_start_dv) $param.='&search_start_dv='.urlencode($search_start_dv); @@ -393,11 +394,11 @@ if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($lim if ($id > 0) $param.='&id='.urlencode($id); if (!empty($ref)) $param.='&ref='.urlencode($ref); if (!empty($search_ref)) $param.='&search_ref='.urlencode($search_ref); -if (!empty($description)) $param.='&description='.urlencode($description); +if (!empty($search_description)) $param.='&search_description='.urlencode($search_description); if (!empty($search_type)) $param.='&type='.urlencode($search_type); if (!empty($search_thirdparty)) $param.='&search_thirdparty='.urlencode($search_thirdparty); -if (!empty($debit)) $param.='&debit='.urlencode($debit); -if (!empty($credit)) $param.='&credit='.urlencode($credit); +if (!empty($search_debit)) $param.='&search_debit='.urlencode($search_debit); +if (!empty($search_credit)) $param.='&search_credit='.urlencode($search_credit); if (!empty($search_account)) $param.='&search_account='.urlencode($search_account); if (!empty($search_num_releve)) $param.='&search_num_releve='.urlencode($search_num_releve); if ($search_conciliated != '' && $search_conciliated != '-1') $param.='&search_conciliated='.urlencode($search_conciliated); @@ -498,14 +499,36 @@ if ($search_req_nb) $sql.= natural_search("b.num_chq", $search_req_nb); if ($search_num_releve) $sql.= natural_search("b.num_releve", $search_num_releve); if ($search_conciliated != '' && $search_conciliated != '-1') $sql.= " AND b.rappro = ".$search_conciliated; if ($search_thirdparty) $sql.= natural_search("s.nom", $search_thirdparty); -if ($description) $sql.= natural_search("b.label", $description); // Warning some text are just translation keys, not translated strings +if ($search_description) +{ + $search_description_to_use = $search_description; + $arrayoffixedlabels=array( + 'payment_salary', + 'CustomerInvoicePayment', 'CustomerInvoicePaymentBack', + 'SupplierInvoicePayment', 'SupplierInvoicePaymentBack', + 'DonationPayment', + 'ExpenseReportPayment', + 'SocialContributionPayment', + 'SubscriptionPayment', + 'WithdrawalPayment' + ); + foreach($arrayoffixedlabels as $keyforlabel) + { + $translatedlabel = $langs->transnoentitiesnoconv($keyforlabel); + if (preg_match('/'.$search_description.'/i', $translatedlabel)) + { + $search_description_to_use.="|".$keyforlabel; + } + } + $sql.= natural_search("b.label", $search_description_to_use); // Warning some text are just translation keys, not translated strings +} if ($search_bid > 0) $sql.= " AND b.rowid=l.lineid AND l.fk_categ=".$search_bid; if (! empty($search_type)) $sql.= " AND b.fk_type = '".$db->escape($search_type)."' "; // Search criteria amount -$debit = price2num(str_replace('-', '', $debit)); -$credit = price2num(str_replace('-', '', $credit)); -if ($debit) $sql.= natural_search('- b.amount', $debit, 1); -if ($credit) $sql.= natural_search('b.amount', $credit, 1); +$search_debit = price2num(str_replace('-', '', $search_debit)); +$search_credit = price2num(str_replace('-', '', $search_credit)); +if ($search_debit) $sql.= natural_search('- b.amount', $search_debit, 1); +if ($search_credit) $sql.= natural_search('b.amount', $search_credit, 1); // Add where from extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; @@ -853,10 +876,10 @@ if ($resql) print ''; print ''; } - if (! empty($arrayfields['description']['checked'])) + if (! empty($arrayfields['b.label']['checked'])) { print ''; } if (! empty($arrayfields['b.dateo']['checked'])) @@ -891,13 +914,13 @@ if ($resql) if (! empty($arrayfields['b.debit']['checked'])) { print ''; } if (! empty($arrayfields['b.credit']['checked'])) { print ''; } if (! empty($arrayfields['balancebefore']['checked'])) @@ -937,7 +960,7 @@ if ($resql) // Fields title print ''; if (! empty($arrayfields['b.rowid']['checked'])) print_liste_field_titre($arrayfields['b.rowid']['label'], $_SERVER['PHP_SELF'], 'b.rowid', '', $param, '', $sortfield, $sortorder); - if (! empty($arrayfields['description']['checked'])) print_liste_field_titre($arrayfields['description']['label'], $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder); + if (! empty($arrayfields['b.label']['checked'])) print_liste_field_titre($arrayfields['b.label']['label'], $_SERVER['PHP_SELF'], 'b.label', '', $param, '', $sortfield, $sortorder); if (! empty($arrayfields['b.dateo']['checked'])) print_liste_field_titre($arrayfields['b.dateo']['label'], $_SERVER['PHP_SELF'], 'b.dateo', '', $param, '', $sortfield, $sortorder, "center "); if (! empty($arrayfields['b.datev']['checked'])) print_liste_field_titre($arrayfields['b.datev']['label'], $_SERVER['PHP_SELF'], 'b.datev,b.dateo,b.rowid', '', $param, 'align="center"', $sortfield, $sortorder); if (! empty($arrayfields['type']['checked'])) print_liste_field_titre($arrayfields['type']['label'], $_SERVER['PHP_SELF'], '', '', $param, 'align="center"', $sortfield, $sortorder); @@ -1142,7 +1165,7 @@ if ($resql) } // Description - if (! empty($arrayfields['description']['checked'])) + if (! empty($arrayfields['b.label']['checked'])) { print "'; } + // If no record found + if ($num == 0) + { + $colspan=1; + foreach($arrayfields as $key => $val) { if (! empty($val['checked'])) $colspan++; } + print ''; + } + print "
    '; + if (is_array($val['arrayofkeyval'])) print $form->selectarray('search_'.$key, $val['arrayofkeyval'], $search[$key], $val['notnull'], 0, 0, '', 1, 0, 0, '', 'maxwidth75'); + else print ''; + print '
    '; - //print ''; + print ''; print ''; - print ''; + print ''; print ''; - print ''; + print ''; print '
    "; @@ -1557,6 +1580,14 @@ if ($resql) print '
    '.$langs->trans("NoRecordFound").'
    "; print ""; @@ -1568,12 +1599,6 @@ else dol_print_error($db); } -// If no data to display after a search -if ($_POST["action"] == "search" && ! $num) -{ - print '
    '.$langs->trans("NoRecordFound").'
    '; -} - // End of page llxFooter(); $db->close(); From 9871dd8770a4ffbe59f700a26191c260a5764d01 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Oct 2019 15:27:06 +0200 Subject: [PATCH 338/484] Debug variants --- htdocs/langs/en_US/products.lang | 4 ++-- htdocs/product/stock/product.php | 12 ++++++++---- htdocs/variants/combinations.php | 26 +++++++++++++++++--------- 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/htdocs/langs/en_US/products.lang b/htdocs/langs/en_US/products.lang index 36ca0ede002..21f4d4947ce 100644 --- a/htdocs/langs/en_US/products.lang +++ b/htdocs/langs/en_US/products.lang @@ -208,8 +208,8 @@ UseMultipriceRules=Use price segment rules (defined into product module setup) t PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products -VariantRefExample=Example: COL -VariantLabelExample=Example: Color +VariantRefExample=Examples: COL, SIZE +VariantLabelExample=Examples: Color, Size ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment diff --git a/htdocs/product/stock/product.php b/htdocs/product/stock/product.php index 2c0515d309c..9ef671e9913 100644 --- a/htdocs/product/stock/product.php +++ b/htdocs/product/stock/product.php @@ -804,8 +804,8 @@ if (! $variants) { */ print '
    '; + print ''; - print '
    '; print ''; print ''; print ''; @@ -918,7 +918,8 @@ if (! $variants) { print ''; print ''; print ''; - print ''; + print ''; + print ''; } } } @@ -926,12 +927,13 @@ if (! $variants) { } } else dol_print_error($db); + // Total line print ''; print ''; print ''; -// Value purchase + // Value purchase print ''; @@ -939,12 +941,13 @@ if (! $variants) { if (empty($conf->global->PRODUIT_MULTIPRICES)) print ($total ? price($totalvaluesell / $total, 1) : ' '); else print $langs->trans("Variable"); print ''; -// Value to sell + // Value to sell print ''; print ""; + print "
    ' . $langs->trans("Warehouse") . '' . $langs->trans("NumberOfUnit") . '' . dol_print_date($pdluo->eatby, 'day') . '' . dol_print_date($pdluo->sellby, 'day') . '' . $pdluo->qty . ($pdluo->qty < 0 ? ' ' . img_warning() : '') . '
    ' . $langs->trans("Total") . ':' . price2num($total, 'MS') . ''; print ($totalwithpmp ? price(price2num($totalvalue / $totalwithpmp, 'MU')) : ' '); // This value may have rounding errors print ''; print $totalvalue ? price(price2num($totalvalue, 'MT'), 1) : ' '; print ''; if (empty($conf->global->PRODUIT_MULTIPRICES)) print price(price2num($totalvaluesell, 'MT'), 1); else print $langs->trans("Variable"); print '
    "; print '
    '; @@ -1067,6 +1070,7 @@ if (! $variants) { print ''; print ''.$langs->trans("Total").''; print ''.$stock_total.''; + print ''; print ''; } else diff --git a/htdocs/variants/combinations.php b/htdocs/variants/combinations.php index 3239dbb5060..4a7774b1a08 100644 --- a/htdocs/variants/combinations.php +++ b/htdocs/variants/combinations.php @@ -377,6 +377,7 @@ if (! empty($id) || ! empty($ref)) dol_fiche_end(); + $listofvariantselected = ''; // Create or edit a varian if ($action == 'add' || ($action == 'edit')) { @@ -386,7 +387,7 @@ if (! empty($id) || ! empty($ref)) //print dol_fiche_head(); $features = $_SESSION['addvariant_'.$object->id]; //First, sanitize - print '
    '; + $listofvariantselected = '
    '; if (! empty($features)) { foreach ($features as $feature) { @@ -400,16 +401,14 @@ if (! empty($id) || ! empty($ref)) continue; } - print '' . $prodattr->label . ':'. $prodattr_val->value . ' '; + $listofvariantselected .= '' . $prodattr->label . ':'. $prodattr_val->value . ' '; } } - print '
    '; - print '

    '; + $listofvariantselected .= '
    '; //print dol_fiche_end(); } else { $title = $langs->trans('EditProductCombination'); } - print load_fiche_titre($title); if ($action == 'add') { $prodattr_all = $prodattr->fetchAll(); @@ -499,6 +498,10 @@ if (! empty($id) || ! empty($ref)) '; + + print load_fiche_titre($title); + print '
    '."\n"; print ''; print ''."\n"; @@ -507,9 +510,9 @@ if (! empty($id) || ! empty($ref)) print ''."\n"; } - print dol_fiche_head(); + print dol_fiche_head(); - ?> + ?> @@ -524,6 +527,7 @@ if (! empty($id) || ! empty($ref)) print ''; foreach ($prodattr_all as $attr) { + //print ''; print ''; } print ''; @@ -561,6 +565,10 @@ if (! empty($id) || ! empty($ref)) "> + +
    + +
    variation_price >= 0 ? '+' : '').price($currcomb->variation_price).($currcomb->variation_price_percentage ? ' %' : '') ?> isProduct()) print ''.($currcomb->variation_weight >= 0 ? '+' : '').price($currcomb->variation_weight).' '.measuring_units_string($prodstatic->weight_units, 'weight').''; ?> - getLibStatut(2, 0) ?> - getLibStatut(2, 1) ?> + getLibStatut(2, 0) ?> + getLibStatut(2, 1) ?> From 67d76787eba1dd3493dc435c36d5695751584131 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Oct 2019 15:29:06 +0200 Subject: [PATCH 339/484] Add new hidden conf VARIANT_ALLOW_STOCK_MOVEMENT_ON_VARIANT_PARENT --- htdocs/product/stock/product.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/product/stock/product.php b/htdocs/product/stock/product.php index 9ef671e9913..944b3ce96cd 100644 --- a/htdocs/product/stock/product.php +++ b/htdocs/product/stock/product.php @@ -764,7 +764,7 @@ if (empty($reshook)) if ($user->rights->stock->mouvement->creer) { - if (! $variants) { + if (! $variants || ! empty($conf->global->VARIANT_ALLOW_STOCK_MOVEMENT_ON_VARIANT_PARENT)) { print '' . $langs->trans("CorrectStock") . ''; } else @@ -780,7 +780,7 @@ if (empty($reshook)) //if (($user->rights->stock->mouvement->creer) && ! $object->hasbatch()) if ($user->rights->stock->mouvement->creer) { - if (! $variants) { + if (! $variants || ! empty($conf->global->VARIANT_ALLOW_STOCK_MOVEMENT_ON_VARIANT_PARENT)) { print '' . $langs->trans("TransferStock") . ''; } else From cef935468d6669765ee563b97cb0275824e4799e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sat, 12 Oct 2019 18:40:39 +0200 Subject: [PATCH 340/484] Update list.php --- htdocs/compta/bank/list.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/bank/list.php b/htdocs/compta/bank/list.php index 843b3b0e323..df5442f02d6 100644 --- a/htdocs/compta/bank/list.php +++ b/htdocs/compta/bank/list.php @@ -454,7 +454,7 @@ foreach ($accounts as $key=>$type) if (! empty($arrayfields['b.account_number']['checked'])) { print ''; - if (! empty($conf->accounting->enabled)) + if (! empty($conf->accounting->enabled) && ! empty($objecttmp->account_number)) { $accountingaccount = new AccountingAccount($db); $accountingaccount->fetch('', $objecttmp->account_number, 1); @@ -472,7 +472,7 @@ foreach ($accounts as $key=>$type) if (! empty($arrayfields['b.fk_accountancy_journal']['checked'])) { print ''; - if (! empty($conf->accounting->enabled)) + if (! empty($conf->accounting->enabled) && ! empty($objecttmp->fk_accountancy_journal)) { $accountingjournal = new AccountingJournal($db); $accountingjournal->fetch($objecttmp->fk_accountancy_journal); From 9c94ffeea9cb61efd5cdb2dc3cf6693d9709ef3d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Oct 2019 18:40:41 +0200 Subject: [PATCH 341/484] Fix css --- htdocs/comm/mailing/cibles.php | 2 +- htdocs/theme/eldy/global.inc.php | 3 +++ htdocs/theme/md/style.css.php | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/htdocs/comm/mailing/cibles.php b/htdocs/comm/mailing/cibles.php index 3cc5f12566d..532e792bd6e 100644 --- a/htdocs/comm/mailing/cibles.php +++ b/htdocs/comm/mailing/cibles.php @@ -338,7 +338,7 @@ if ($object->fetch($id) >= 0) print '
    '; if (empty($obj->picto)) $obj->picto='generic'; - print img_object($langs->trans("EmailingTargetSelector").': '.get_class($obj), $obj->picto); + print img_object($langs->trans("EmailingTargetSelector").': '.get_class($obj), $obj->picto, 'class="valignmiddle pictomodule"'); print ' '; print $obj->getDesc(); print '
    '; diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index 46d24b08cc6..0189a3988dd 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -1293,6 +1293,9 @@ div.nopadding { .pictowarning { vertical-align: text-bottom; } +.pictomodule { + width: 14px; +} .fiche .arearef img.pictoedit, .fiche .arearef span.pictoedit, .fiche .fichecenter img.pictoedit, .fiche .fichecenter span.pictoedit, .tagtdnote span.pictoedit { diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index a9e94eb885c..8e0cf75047b 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -1483,6 +1483,9 @@ table.noborder tr.liste_titre td { .pictowarning { vertical-align: text-bottom; } +.pictomodule { + width: 14px; +} .fiche .arearef img.pictoedit, .fiche .arearef span.pictoedit, .fiche .fichecenter img.pictoedit, .fiche .fichecenter span.pictoedit, .tagtdnote span.pictoedit { From 650cd2b54ffe616cff7228a0478291812b08ffdd Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Oct 2019 18:41:33 +0200 Subject: [PATCH 342/484] Prepare 10.0.3 --- htdocs/filefunc.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/filefunc.inc.php b/htdocs/filefunc.inc.php index 94455858e8b..fffd9be3636 100644 --- a/htdocs/filefunc.inc.php +++ b/htdocs/filefunc.inc.php @@ -31,7 +31,7 @@ */ if (! defined('DOL_APPLICATION_TITLE')) define('DOL_APPLICATION_TITLE', 'Dolibarr'); -if (! defined('DOL_VERSION')) define('DOL_VERSION', '10.0.2'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c +if (! defined('DOL_VERSION')) define('DOL_VERSION', '10.0.3'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c if (! defined('EURO')) define('EURO', chr(128)); From b424fc6e274a2596428291cd8b4612978f6a1e12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sat, 12 Oct 2019 18:57:08 +0200 Subject: [PATCH 343/484] Update list.php --- htdocs/compta/bank/list.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/bank/list.php b/htdocs/compta/bank/list.php index 843b3b0e323..de8c743803c 100644 --- a/htdocs/compta/bank/list.php +++ b/htdocs/compta/bank/list.php @@ -505,8 +505,13 @@ foreach ($accounts as $key=>$type) if ($result<0) { setEventMessages($objecttmp->error, $objecttmp->errors, 'errors'); } else { - print $result->nbtodo; - if ($result->nbtodolate) print '   ('.$result->nbtodolate.img_warning($langs->trans("Late")).')'; + print ''.$result->nbtodo.''; + if ($result->nbtodolate) { + print ' '; + print ''; + print ' '.$result->nbtodolate; + print ''; + } } } else print $langs->trans("FeatureDisabled"); From c338db6c367be395ae2f8df826875adeb0475281 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Oct 2019 19:16:36 +0200 Subject: [PATCH 344/484] Fix unlink picto --- htdocs/core/lib/functions.lib.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index a17b3c19c5f..1aee5e67cd5 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -3135,7 +3135,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ $marginleftonlyshort=0; } elseif ($pictowithouttext == 'unlink') { - $fakey = 'fa-chain-broken'; + $fakey = 'fa-unlink'; $facolor = '#555'; } elseif ($pictowithouttext == 'playdisabled') { @@ -3169,6 +3169,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ //$facolor = '#444'; $marginleftonlyshort=0; } + //this snippet only needed since function img_edit accepts only one additional parameter: no separate one for css only. //class/style need to be extracted to avoid duplicate class/style validation errors when $moreatt is added to the end of the attributes $reg=array(); From 33f620603107909a180a3c5293022ca2b33088a9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Oct 2019 20:12:24 +0200 Subject: [PATCH 345/484] NEW Add link to export target of emailings into a CSV file. --- htdocs/comm/mailing/cibles.php | 76 +++++++++++++++++++++++++++------- 1 file changed, 60 insertions(+), 16 deletions(-) diff --git a/htdocs/comm/mailing/cibles.php b/htdocs/comm/mailing/cibles.php index 1e467331d90..4ca8b75af31 100644 --- a/htdocs/comm/mailing/cibles.php +++ b/htdocs/comm/mailing/cibles.php @@ -54,16 +54,17 @@ if (! $sortorder) $sortorder="ASC"; $id=GETPOST('id', 'int'); $rowid=GETPOST('rowid', 'int'); $action=GETPOST('action', 'aZ09'); -$search_lastname=GETPOST("search_lastname"); -$search_firstname=GETPOST("search_firstname"); -$search_email=GETPOST("search_email"); -$search_other=GETPOST("search_other"); -$search_dest_status=GETPOST('search_dest_status'); +$search_lastname=GETPOST("search_lastname", 'alphanohtml'); +$search_firstname=GETPOST("search_firstname", 'alphanohtml'); +$search_email=GETPOST("search_email", 'alphanohtml'); +$search_other=GETPOST("search_other", 'alphanohtml'); +$search_dest_status=GETPOST('search_dest_status', 'alphanohtml'); // Search modules dirs $modulesdir = dolGetModulesDirs('/mailings'); $object = new Mailing($db); +$result=$object->fetch($id); /* @@ -112,7 +113,7 @@ if ($action == 'add') } } -if (GETPOST('clearlist')) +if (GETPOST('clearlist', 'int')) { // Loading Class $obj = new MailingTargets($db); @@ -123,6 +124,50 @@ if (GETPOST('clearlist')) */ } +if (GETPOST('exportcsv', 'int')) +{ + $completefilename = 'targets_emailing'.$object->id.'_'.dol_print_date(dol_now(), 'dayhourlog').'csv'; + header('Content-Type: text/csv'); + header('Content-Disposition: attachment;filename=' . $completefilename); + + // List of selected targets + $sql = "SELECT mc.rowid, mc.lastname, mc.firstname, mc.email, mc.other, mc.statut, mc.date_envoi, mc.tms,"; + $sql .= " mc.source_url, mc.source_id, mc.source_type, mc.error_text"; + $sql .= " FROM ".MAIN_DB_PREFIX."mailing_cibles as mc"; + $sql .= " WHERE mc.fk_mailing=".$object->id; + $sql .= $db->order($sortfield, $sortorder); + + $resql=$db->query($sql); + if ($resql) + { + $num = $db->num_rows($resql); + $sep = ','; + + while ($obj = $db->fetch_object($resql)) + { + print $obj->rowid . $sep; + print $obj->lastname . $sep; + print $obj->firstname . $sep; + print $obj->email . $sep; + print $obj->other . $sep; + print $obj->date_envoi . $sep; + print $obj->tms . $sep; + print $obj->source_url . $sep; + print $obj->source_id . $sep; + print $obj->source_type . $sep; + print $obj->error_text . $sep; + print "\n"; + } + + exit; + } + else + { + dol_print_error($db); + } + exit; +} + if ($action == 'delete') { // Ici, rowid indique le destinataire et id le mailing @@ -437,10 +482,11 @@ if ($object->fetch($id) >= 0) $param = "&id=".$object->id; //if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage); if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit); - if ($search_lastname) $param.= "&search_lastname=".urlencode($search_lastname); - if ($search_firstname) $param.= "&search_firstname=".urlencode($search_firstname); - if ($search_email) $param.= "&search_email=".urlencode($search_email); - if ($search_other) $param.= "&search_other=".urlencode($search_other); + if ($search_lastname) $param.= "&search_lastname=".urlencode($search_lastname); + if ($search_firstname) $param.= "&search_firstname=".urlencode($search_firstname); + if ($search_email) $param.= "&search_email=".urlencode($search_email); + if ($search_other) $param.= "&search_other=".urlencode($search_other); + if ($page) $param.= "&page=".urlencode($page); print ''; print ''; @@ -449,11 +495,12 @@ if ($object->fetch($id) >= 0) print ''; print ''; - $cleartext=''; + $morehtmlcenter=''; if ($allowaddtarget) { - $cleartext=$langs->trans("ToClearAllRecipientsClickHere").' '.'id.'" class="button reposition">'.$langs->trans("TargetsReset").''; + $morehtmlcenter=''.$langs->trans("ToClearAllRecipientsClickHere").' id.'" class="button reposition">'.$langs->trans("TargetsReset").''; } - print_barre_liste($langs->trans("MailSelectedRecipients"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $cleartext, $num, $nbtotalofrecords, 'generic', 0, '', '', $limit); + $morehtmlcenter.=' id.'">'.$langs->trans("Download").''; + print_barre_liste($langs->trans("MailSelectedRecipients"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $morehtmlcenter, $num, $nbtotalofrecords, 'generic', 0, '', '', $limit); print ''; @@ -466,9 +513,6 @@ if ($object->fetch($id) >= 0) print ''; print ''; - - if ($page) $param.= "&page=".$page; - print '
    '; print ''; From bb21d048f476d749836ddfb29ac196e6487787f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sat, 12 Oct 2019 22:08:11 +0200 Subject: [PATCH 346/484] keep a copy of object for trigger --- htdocs/contact/card.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php index 4139176e84e..9de1672db90 100644 --- a/htdocs/contact/card.php +++ b/htdocs/contact/card.php @@ -250,6 +250,7 @@ if (empty($reshook)) if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->societe->contact->supprimer) { $result=$object->fetch($id); + $object->oldcopy = clone $object; $object->old_lastname = GETPOST("old_lastname"); $object->old_firstname = GETPOST("old_firstname"); From 2d3a6d2108f5aa09853830c26d05defd155ee0da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sun, 13 Oct 2019 06:05:21 +0200 Subject: [PATCH 347/484] Update card.php --- htdocs/societe/card.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index 39754b14fe0..e2a8f731856 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -817,6 +817,7 @@ if (empty($reshook)) if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->societe->supprimer) { $object->fetch($socid); + $object->oldcopy = clone $object; $result = $object->delete($socid, $user); if ($result > 0) From f6a2fd6eb88a31cf2a96dcfdd2d061a829d66884 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sun, 13 Oct 2019 06:08:32 +0200 Subject: [PATCH 348/484] Update card.php --- htdocs/user/card.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/user/card.php b/htdocs/user/card.php index bdef850fa6b..edcb99678bb 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -156,6 +156,7 @@ if (empty($reshook)) { $object = new User($db); $object->fetch($id); + $object->oldcopy = clone $object; $result = $object->delete($user); if ($result < 0) { From 9eaad235640851791a4ea6fa013446c33fcf78a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sun, 13 Oct 2019 06:12:53 +0200 Subject: [PATCH 349/484] Update api_contacts.class.php --- htdocs/societe/class/api_contacts.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/societe/class/api_contacts.class.php b/htdocs/societe/class/api_contacts.class.php index b2432afe243..cfddddb7b96 100644 --- a/htdocs/societe/class/api_contacts.class.php +++ b/htdocs/societe/class/api_contacts.class.php @@ -292,7 +292,7 @@ class Contacts extends DolibarrApi { throw new RestException(401, 'Access not allowed for login ' . DolibarrApiAccess::$user->login); } - + $this->contact->oldcopy = clone $this->contact; return $this->contact->delete($id); } From 809d98129f5640ead0c2ee3601c66d66d5c13bce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sun, 13 Oct 2019 06:14:45 +0200 Subject: [PATCH 350/484] Update api_thirdparties.class.php --- htdocs/societe/class/api_thirdparties.class.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/societe/class/api_thirdparties.class.php b/htdocs/societe/class/api_thirdparties.class.php index 3d2104cc6f2..adcde4b0d5e 100644 --- a/htdocs/societe/class/api_thirdparties.class.php +++ b/htdocs/societe/class/api_thirdparties.class.php @@ -418,7 +418,7 @@ class Thirdparties extends DolibarrApi // External modules should update their ones too if (!$errors) { -$reshook = $hookmanager->executeHooks('replaceThirdparty', array( + $reshook = $hookmanager->executeHooks('replaceThirdparty', array( 'soc_origin' => $soc_origin->id, 'soc_dest' => $object->id ), $soc_dest, $action); @@ -488,6 +488,7 @@ $reshook = $hookmanager->executeHooks('replaceThirdparty', array( if( ! DolibarrApi::_checkAccessToResource('societe', $this->company->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } + $this->company->oldcopy = $this->company; return $this->company->delete($id); } From 0ae1e8c2a98990f7257c73d4a4a433849c5a257f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sun, 13 Oct 2019 06:17:57 +0200 Subject: [PATCH 351/484] Update api_users.class.php --- htdocs/user/class/api_users.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/user/class/api_users.class.php b/htdocs/user/class/api_users.class.php index 72690c65dcb..9549fbe2ef1 100644 --- a/htdocs/user/class/api_users.class.php +++ b/htdocs/user/class/api_users.class.php @@ -350,7 +350,7 @@ class Users extends DolibarrApi { throw new RestException(401, 'Access not allowed for login ' . DolibarrApiAccess::$user->login); } - + $this->useraccount->oldcopy = clone $this->useraccount; return $this->useraccount->delete(DolibarrApiAccess::$user); } From 352df8241e6e9c8405563a2a22db3f82f06ab88a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sun, 13 Oct 2019 06:19:40 +0200 Subject: [PATCH 352/484] Update api_thirdparties.class.php --- htdocs/societe/class/api_thirdparties.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/societe/class/api_thirdparties.class.php b/htdocs/societe/class/api_thirdparties.class.php index adcde4b0d5e..ed3b26e04ac 100644 --- a/htdocs/societe/class/api_thirdparties.class.php +++ b/htdocs/societe/class/api_thirdparties.class.php @@ -488,7 +488,7 @@ class Thirdparties extends DolibarrApi if( ! DolibarrApi::_checkAccessToResource('societe', $this->company->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } - $this->company->oldcopy = $this->company; + $this->company->oldcopy = clone $this->company; return $this->company->delete($id); } From 499eb87173aa6b35a843808aca8a5e03e7414c5c Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Sun, 13 Oct 2019 08:20:37 +0200 Subject: [PATCH 353/484] lang file for holidays is holiday --- htdocs/core/modules/holiday/modules_holiday.php | 4 ++-- htdocs/holiday/document.php | 4 +--- htdocs/holiday/list.php | 2 +- htdocs/index.php | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/htdocs/core/modules/holiday/modules_holiday.php b/htdocs/core/modules/holiday/modules_holiday.php index 9bd0a448ebc..8797d1f377c 100644 --- a/htdocs/core/modules/holiday/modules_holiday.php +++ b/htdocs/core/modules/holiday/modules_holiday.php @@ -96,7 +96,7 @@ class ModelNumRefHolidays public function info() { global $langs; - $langs->load("holidays"); + $langs->load("holiday"); return $langs->trans("NoDescription"); } @@ -108,7 +108,7 @@ class ModelNumRefHolidays public function getExample() { global $langs; - $langs->load("holidays"); + $langs->load("holiday"); return $langs->trans("NoExample"); } diff --git a/htdocs/holiday/document.php b/htdocs/holiday/document.php index a594a920e74..30803a9ecbc 100644 --- a/htdocs/holiday/document.php +++ b/htdocs/holiday/document.php @@ -37,7 +37,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/holiday.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; // Load translation files required by the page -$langs->loadLangs(array('other', 'holidays', 'companies')); +$langs->loadLangs(array('other', 'holiday', 'companies')); $id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); @@ -48,8 +48,6 @@ $confirm = GETPOST('confirm', 'alpha'); if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'holiday', $id, 'holiday'); -$langs->load("holiday"); - // Get parameters $sortfield = GETPOST('sortfield', 'alpha'); $sortorder = GETPOST('sortorder', 'alpha'); diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php index f74d731e8bd..1c03e3801b6 100644 --- a/htdocs/holiday/list.php +++ b/htdocs/holiday/list.php @@ -35,7 +35,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/usergroups.lib.php'; // Load translation files required by the page -$langs->loadLangs(array('users', 'holidays', 'hrm')); +$langs->loadLangs(array('users', 'holiday', 'hrm')); // Protection if external user if ($user->societe_id > 0) accessforbidden(); diff --git a/htdocs/index.php b/htdocs/index.php index d6ce8c90067..5eee02efa1e 100644 --- a/htdocs/index.php +++ b/htdocs/index.php @@ -218,7 +218,7 @@ if (empty($user->societe_id)) 'askprice', 'projects', 'expensereports', - 'holidays', + 'holiday', 'donations' ); // Dashboard Icon lines From 67278e4781505149fc806501de2a54c746281641 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sun, 13 Oct 2019 10:18:41 +0200 Subject: [PATCH 354/484] Update box_last_ticket.php --- htdocs/core/boxes/box_last_ticket.php | 53 +++++++++++++++------------ 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/htdocs/core/boxes/box_last_ticket.php b/htdocs/core/boxes/box_last_ticket.php index 5469efd8fc5..18990cd8bb6 100644 --- a/htdocs/core/boxes/box_last_ticket.php +++ b/htdocs/core/boxes/box_last_ticket.php @@ -1,7 +1,8 @@ - * 2016 Christophe Battarel + * Copyright (C) 2013-2016 Jean-François FERRY + * Copyright (C) 2016 Christophe Battarel + * Copyright (C) 2018-2019 Frédéric France * * 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 @@ -46,7 +47,7 @@ class box_last_ticket extends ModeleBoxes /** * Constructor - * @param DoliDB $db Database handler + * @param DoliDB $db Database handler * @param string $param More parameters */ public function __construct($db, $param = '') @@ -70,7 +71,7 @@ class box_last_ticket extends ModeleBoxes $this->max = $max; - dol_include_once("/ticket/class/ticket.class.php"); + require_once DOL_DOCUMENT_ROOT."/ticket/class/ticket.class.php"; $text = $langs->trans("BoxLastTicketDescription", $max); $this->info_box_head = array( @@ -86,7 +87,7 @@ class box_last_ticket extends ModeleBoxes if ($user->rights->ticket->read) { $sql = "SELECT t.rowid as id, t.ref, t.track_id, t.fk_soc, t.fk_user_create, t.fk_user_assign, t.subject, t.message, t.fk_statut, t.type_code, t.category_code, t.severity_code, t.datec, t.date_read, t.date_close, t.origin_email "; $sql .= ", type.label as type_label, category.label as category_label, severity.label as severity_label"; - $sql .= ", s.nom as company_name"; + $sql .= ", s.nom as company_name, s.email as socemail, s.client, s.fournisseur"; $sql .= " FROM " . MAIN_DB_PREFIX . "ticket as t"; $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "c_ticket_type as type ON type.code=t.type_code"; $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "c_ticket_category as category ON category.code=t.category_code"; @@ -108,7 +109,6 @@ class box_last_ticket extends ModeleBoxes $resql = $this->db->query($sql); if ($resql) { $num = $this->db->num_rows($resql); - $now = gmmktime(); $i = 0; @@ -120,22 +120,30 @@ class box_last_ticket extends ModeleBoxes $late = ''; $ticket = new Ticket($this->db); + $ticket->id = $objp->id; + $ticket->track_id = $objp->track_id; + $ticket->ref = $objp->ref; + $ticket->fk_statut = $objp->fk_statut; + $ticket->subject = $objp->subject; + if ($objp->fk_soc > 0) { + $thirdparty = new Societe($this->db); + $thirdparty->id = $objp->fk_soc; + $thirdparty->email = $objp->socemail; + $thirdparty->client = $objp->client; + $thirdparty->fournisseur = $objp->fournisseur; + $thirdparty->name = $objp->company_name; + $link = $thirdparty->getNomUrl(1); + } else { + $link = dol_print_email($objp->origin_email); + } $r = 0; - // Picto - $this->info_box_contents[$i][0] = array( - 'td' => 'class="left" width="16"', - 'logo' => $this->boximg, - 'url' => dol_buildpath("/ticket/card.php?track_id=" . $objp->track_id, 1), - ); - $r++; - - // Id + // Ticket $this->info_box_contents[$i][$r] = array( 'td' => 'class="left"', - 'text' => $objp->ref, - 'url' => dol_buildpath("/ticket/card.php?track_id=" . $objp->track_id, 1), + 'text' => $ticket->getNomUrl(1), + 'asis' => 1 ); $r++; @@ -143,16 +151,15 @@ class box_last_ticket extends ModeleBoxes $this->info_box_contents[$i][$r] = array( 'td' => 'class="left"', 'text' => $objp->subject, // Some event have no ref - 'url' => dol_buildpath("/ticket/card.php?track_id=" . $objp->track_id, 1), + 'url' => DOL_URL_ROOT."/ticket/card.php?track_id=" . $objp->track_id, ); $r++; // Customer $this->info_box_contents[$i][$r] = array( 'td' => 'class="left"', - 'logo' => ($objp->fk_soc > 0 ? 'company' : ''), - 'text' => ($objp->company_name ? $objp->company_name : $objp->origin_email), - 'url' => ($objp->fk_soc > 0 ? DOL_URL_ROOT . "/comm/card.php?socid=" . $objp->fk_soc : ''), + 'text' => $link, + 'asis' => 1, ); $r++; @@ -164,11 +171,9 @@ class box_last_ticket extends ModeleBoxes $r++; // Statut - $ticketstat = new Ticket($this->db); - $ticketstat->fk_statut = $objp->fk_statut; $this->info_box_contents[$i][$r] = array( 'td' => 'class="right"', - 'text' => $ticketstat->getLibStatut(3), + 'text' => $ticket->getLibStatut(3), ); $r++; From 92e4b962faa12b49f205e213bda3eaba7d002fb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sun, 13 Oct 2019 10:37:30 +0200 Subject: [PATCH 355/484] Update box_last_modified_ticket.php --- .../core/boxes/box_last_modified_ticket.php | 48 ++++++++++--------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/htdocs/core/boxes/box_last_modified_ticket.php b/htdocs/core/boxes/box_last_modified_ticket.php index 87d7e0f7d50..8f86be5a115 100644 --- a/htdocs/core/boxes/box_last_modified_ticket.php +++ b/htdocs/core/boxes/box_last_modified_ticket.php @@ -47,7 +47,7 @@ class box_last_modified_ticket extends ModeleBoxes /** * Constructor - * @param DoliDB $db Database handler + * @param DoliDB $db Database handler * @param string $param More parameters */ public function __construct($db, $param = '') @@ -71,7 +71,7 @@ class box_last_modified_ticket extends ModeleBoxes $this->max = $max; - dol_include_once("/ticket/class/ticket.class.php"); + require_once DOL_DOCUMENT_ROOT."/ticket/class/ticket.class.php"; $text = $langs->trans("BoxLastModifiedTicketDescription", $max); $this->info_box_head = array( @@ -87,7 +87,7 @@ class box_last_modified_ticket extends ModeleBoxes if ($user->rights->ticket->read) { $sql = "SELECT t.rowid as id, t.ref, t.track_id, t.fk_soc, t.fk_user_create, t.fk_user_assign, t.subject, t.message, t.fk_statut, t.type_code, t.category_code, t.severity_code, t.datec, t.date_read, t.date_close, t.origin_email "; $sql.= ", type.label as type_label, category.label as category_label, severity.label as severity_label"; - $sql.= ", s.nom as company_name"; + $sql.= ", s.nom as company_name, s.email as socemail, s.client, s.fournisseur"; $sql.= " FROM ".MAIN_DB_PREFIX."ticket as t"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_ticket_type as type ON type.code=t.type_code"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_ticket_category as category ON category.code=t.category_code"; @@ -107,7 +107,6 @@ class box_last_modified_ticket extends ModeleBoxes $resql = $this->db->query($sql); if ($resql) { $num = $this->db->num_rows($resql); - $now=gmmktime(); $i = 0; @@ -119,23 +118,31 @@ class box_last_modified_ticket extends ModeleBoxes $late = ''; $ticket = new Ticket($this->db); + $ticket->id = $objp->id; + $ticket->track_id = $objp->track_id; + $ticket->ref = $objp->ref; + $ticket->fk_statut = $objp->fk_statut; + $ticket->subject = $objp->subject; + if ($objp->fk_soc > 0) { + $thirdparty = new Societe($this->db); + $thirdparty->id = $objp->fk_soc; + $thirdparty->email = $objp->socemail; + $thirdparty->client = $objp->client; + $thirdparty->fournisseur = $objp->fournisseur; + $thirdparty->name = $objp->company_name; + $link = $thirdparty->getNomUrl(1); + } else { + $link = dol_print_email($objp->origin_email); + } $r=0; - // Picto + // Ticket $this->info_box_contents[$i][0] = array( - 'td' => 'class="left" width="16"', - 'logo' => $this->boximg, - 'url' => dol_buildpath("/ticket/card.php?track_id=".$objp->track_id, 1), - ); - $r++; - - // Id - $this->info_box_contents[$i][$r] = array( 'td' => 'class="left"', - 'text' => $objp->ref, - 'url' => dol_buildpath("/ticket/card.php?track_id=".$objp->track_id, 1), + 'text' => $ticket->getNomUrl(1), + 'asis' => 1, ); $r++; @@ -143,16 +150,15 @@ class box_last_modified_ticket extends ModeleBoxes $this->info_box_contents[$i][$r] = array( 'td' => 'class="left"', 'text' => $objp->subject, // Some event have no ref - 'url' => dol_buildpath("/ticket/card.php?track_id=".$objp->track_id, 1), + 'url' => DOL_URL_ROOT."/ticket/card.php?track_id=".$objp->track_id, ); $r++; // Customer $this->info_box_contents[$i][$r] = array( 'td' => 'class="left"', - 'logo' => ($objp->fk_soc>0?'company':''), - 'text' => ($objp->company_name?$objp->company_name:$objp->origin_email), - 'url' => ($objp->fk_soc>0?DOL_URL_ROOT."/comm/card.php?socid=".$objp->fk_soc:'') + 'text' => $link, + 'asis' => 1, ); $r++; @@ -165,11 +171,9 @@ class box_last_modified_ticket extends ModeleBoxes $r++; // Statut - $ticketstat = new Ticket($this->db); - $ticketstat->fk_statut = $objp->fk_statut; $this->info_box_contents[$i][$r] = array( 'td' => 'class="right"', - 'text' => $ticketstat->getLibStatut(3) + 'text' => $ticket->getLibStatut(3) ); $r++; From e50d32dc00536523090307691cd1c0b1d6518119 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Sun, 13 Oct 2019 13:20:45 +0200 Subject: [PATCH 356/484] Remove a duplicate line --- htdocs/core/modules/modSociete.class.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/htdocs/core/modules/modSociete.class.php b/htdocs/core/modules/modSociete.class.php index a0d190c65cd..8d6490becfe 100644 --- a/htdocs/core/modules/modSociete.class.php +++ b/htdocs/core/modules/modSociete.class.php @@ -269,8 +269,6 @@ class modSociete extends DolibarrModules 't.libelle'=>"ThirdPartyType",'ce.code'=>"Staff","cfj.libelle"=>"JuridicalStatus",'s.fk_prospectlevel'=>'ProspectLevel', 'st.code'=>'ProspectStatus','payterm.libelle'=>'PaymentConditions','paymode.libelle'=>'PaymentMode' ); - if (! empty($conf->global->SOCIETE_USEPREFIX)) $this->export_fields_array[$r]['s.prefix']='Prefix'; - if (! empty($conf->global->SOCIETE_USEPREFIX)) $this->export_fields_array[$r]['s.prefix']='Prefix'; if (! empty($conf->global->PRODUIT_MULTIPRICES)) $this->export_fields_array[$r]['s.price_level']='PriceLevel'; // Add multicompany field From 9efc5a1b9d85184c7fab5fb715b8d36f86177662 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 13 Oct 2019 15:00:07 +0200 Subject: [PATCH 357/484] Fix extension --- htdocs/comm/mailing/cibles.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/comm/mailing/cibles.php b/htdocs/comm/mailing/cibles.php index 4ca8b75af31..998f4a6c202 100644 --- a/htdocs/comm/mailing/cibles.php +++ b/htdocs/comm/mailing/cibles.php @@ -126,7 +126,7 @@ if (GETPOST('clearlist', 'int')) if (GETPOST('exportcsv', 'int')) { - $completefilename = 'targets_emailing'.$object->id.'_'.dol_print_date(dol_now(), 'dayhourlog').'csv'; + $completefilename = 'targets_emailing'.$object->id.'_'.dol_print_date(dol_now(), 'dayhourlog').'.csv'; header('Content-Type: text/csv'); header('Content-Disposition: attachment;filename=' . $completefilename); From f91b98d326f6a2f591e6538f1dba9e7ba22ff338 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 13 Oct 2019 20:50:03 +0200 Subject: [PATCH 358/484] Add frequency in template invoice popup --- .../compta/facture/class/facture-rec.class.php | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/htdocs/compta/facture/class/facture-rec.class.php b/htdocs/compta/facture/class/facture-rec.class.php index a71860c01c1..e65db4d2f5e 100644 --- a/htdocs/compta/facture/class/facture-rec.class.php +++ b/htdocs/compta/facture/class/facture-rec.class.php @@ -1,6 +1,6 @@ - * Copyright (C) 2004-2015 Laurent Destailleur + * Copyright (C) 2004-2019 Laurent Destailleur * Copyright (C) 2009-2012 Regis Houssin * Copyright (C) 2010-2011 Juanjo Menent * Copyright (C) 2012 Cedric Salvador @@ -1241,14 +1241,17 @@ class FactureRec extends CommonInvoice $result=''; $label = '' . $langs->trans("ShowInvoice") . ''; - if (! empty($this->ref)) + if (! empty($this->ref)) { $label .= '
    '.$langs->trans('Ref') . ': ' . $this->ref; - if (! empty($this->date_last_gen)) + } + if ($this->frequency > 0) { + $label .= '
    '.$langs->trans('Frequency') . ': ' . $this->frequency.$this->unit_frequency; + } + if (! empty($this->date_last_gen)) { $label .= '
    '.$langs->trans('DateLastGeneration') . ': ' . dol_print_date($this->date_last_gen, 'dayhour'); - if ($this->frequency > 0) - { - if (! empty($this->date_when)) - { + } + if ($this->frequency > 0) { + if (! empty($this->date_when)) { $label .= '
    '.$langs->trans('NextDateToExecution') . ': '; $label .= (empty($this->suspended)?'':''). dol_print_date($this->date_when, 'day').(empty($this->suspended)?'':''); // No hour for this property if (! empty($this->suspended)) $label .= ' ('.$langs->trans("Disabled").')'; From 323f31d8323f8e80b1d33d224b5130119f93efe9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 13 Oct 2019 20:54:00 +0200 Subject: [PATCH 359/484] Trans frequency --- .../facture/class/facture-rec.class.php | 2 +- htdocs/compta/facture/fiche-rec.php | 20 +++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/htdocs/compta/facture/class/facture-rec.class.php b/htdocs/compta/facture/class/facture-rec.class.php index e65db4d2f5e..18d153dc597 100644 --- a/htdocs/compta/facture/class/facture-rec.class.php +++ b/htdocs/compta/facture/class/facture-rec.class.php @@ -1245,7 +1245,7 @@ class FactureRec extends CommonInvoice $label .= '
    '.$langs->trans('Ref') . ': ' . $this->ref; } if ($this->frequency > 0) { - $label .= '
    '.$langs->trans('Frequency') . ': ' . $this->frequency.$this->unit_frequency; + $label .= '
    '.$langs->trans('Frequency') . ': ' . $langs->trans('FrequencyPer_'.$this->unit_frequency, $this->frequency); } if (! empty($this->date_last_gen)) { $label .= '
    '.$langs->trans('DateLastGeneration') . ': ' . dol_print_date($this->date_last_gen, 'dayhour'); diff --git a/htdocs/compta/facture/fiche-rec.php b/htdocs/compta/facture/fiche-rec.php index 713d5e9554d..fb56ccb916f 100644 --- a/htdocs/compta/facture/fiche-rec.php +++ b/htdocs/compta/facture/fiche-rec.php @@ -154,7 +154,7 @@ if (empty($reshook)) // Create predefined invoice if ($action == 'add') { - if (! GETPOST('titre')) + if (! GETPOST('titre', 'nohtml')) { setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->trans("Title")), null, 'errors'); $action = "create"; @@ -162,15 +162,15 @@ if (empty($reshook)) } $frequency=GETPOST('frequency', 'int'); - $reyear=GETPOST('reyear'); - $remonth=GETPOST('remonth'); - $reday=GETPOST('reday'); - $rehour=GETPOST('rehour'); - $remin=GETPOST('remin'); + $reyear=GETPOST('reyear', 'int'); + $remonth=GETPOST('remonth', 'int'); + $reday=GETPOST('reday', 'int'); + $rehour=GETPOST('rehour', 'int'); + $remin=GETPOST('remin', 'int'); $nb_gen_max=GETPOST('nb_gen_max', 'int'); //if (empty($nb_gen_max)) $nb_gen_max =0; - if (GETPOST('frequency')) + if (GETPOST('frequency', 'int')) { if (empty($reyear) || empty($remonth) || empty($reday)) { @@ -188,12 +188,12 @@ if (empty($reshook)) if (! $error) { - $object->titre = GETPOST('titre', 'alpha'); // deprecated - $object->title = GETPOST('titre', 'alpha'); + $object->titre = GETPOST('titre', 'nohtml'); // deprecated + $object->title = GETPOST('titre', 'nohtml'); $object->note_private = GETPOST('note_private', 'none'); $object->note_public = GETPOST('note_public', 'none'); $object->modelpdf = GETPOST('modelpdf', 'alpha'); - $object->usenewprice = GETPOST('usenewprice'); + $object->usenewprice = GETPOST('usenewprice', 'alpha'); $object->frequency = $frequency; $object->unit_frequency = GETPOST('unit_frequency', 'alpha'); From e2ca646b6e5f6238f2000700b379a2e87a0305f1 Mon Sep 17 00:00:00 2001 From: Tobias Sekan Date: Mon, 14 Oct 2019 10:22:47 +0200 Subject: [PATCH 360/484] Fix MS Outlook import error --- htdocs/core/lib/xcal.lib.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/core/lib/xcal.lib.php b/htdocs/core/lib/xcal.lib.php index f0edbd6f877..a4ddb68dbd3 100644 --- a/htdocs/core/lib/xcal.lib.php +++ b/htdocs/core/lib/xcal.lib.php @@ -180,7 +180,9 @@ function build_calfile($format, $title, $desc, $events_array, $outputfile) if (! empty($location)) fwrite($calfileh, "LOCATION:".$encoding.$location."\n"); if ($fulldayevent) fwrite($calfileh, "X-FUNAMBOL-ALLDAY:1\n"); - if ($fulldayevent) fwrite($calfileh, "X-MICROSOFT-CDO-ALLDAYEVENT:1\n"); + + // see https://docs.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-oxcical/0f262da6-c5fd-459e-9f18-145eba86b5d2 + if ($fulldayevent) fwrite($calfileh, "X-MICROSOFT-CDO-ALLDAYEVENT:TRUE\n"); // Date must be GMT dates // Current date From 7973b0320166f2cefec0158714e6da9e49eadf2f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 11:38:36 +0200 Subject: [PATCH 361/484] NEW Add estimated duration on the BOM module --- htdocs/bom/class/bom.class.php | 5 +- htdocs/core/class/commonobject.class.php | 117 +++++++++++------- .../install/mysql/migration/10.0.0-11.0.0.sql | 2 + htdocs/install/mysql/tables/llx_bom_bom.sql | 1 + htdocs/langs/en_US/mrp.lang | 4 +- 5 files changed, 79 insertions(+), 50 deletions(-) diff --git a/htdocs/bom/class/bom.class.php b/htdocs/bom/class/bom.class.php index 44370b40720..73e26de8aea 100644 --- a/htdocs/bom/class/bom.class.php +++ b/htdocs/bom/class/bom.class.php @@ -94,6 +94,7 @@ class BOM extends CommonObject 'fk_product' => array('type'=>'integer:Product:product/class/product.class.php', 'label'=>'Product', 'enabled'=>1, 'visible'=>1, 'position'=>35, 'notnull'=>1, 'index'=>1, 'help'=>'ProductBOMHelp'), 'qty' => array('type'=>'real', 'label'=>'Quantity', 'enabled'=>1, 'visible'=>1, 'default'=>1, 'position'=>55, 'notnull'=>1, 'isameasure'=>'1', 'css'=>'maxwidth75imp'), 'efficiency' => array('type'=>'real', 'label'=>'ManufacturingEfficiency', 'enabled'=>1, 'visible'=>-1, 'default'=>1, 'position'=>100, 'notnull'=>0, 'css'=>'maxwidth50imp', 'help'=>'ValueOfMeansLoss'), + 'duration' => array('type'=>'real', 'label'=>'EstimatedDuration', 'enabled'=>1, 'visible'=>-1, 'position'=>101, 'notnull'=>-1, 'css'=>'maxwidth50imp', 'help'=>'EstimatedDurationDesc'), 'note_public' => array('type'=>'html', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>-1, 'position'=>161, 'notnull'=>-1,), 'note_private' => array('type'=>'html', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>-1, 'position'=>162, 'notnull'=>-1,), 'date_creation' => array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-2, 'position'=>300, 'notnull'=>1,), @@ -202,7 +203,7 @@ class BOM extends CommonObject */ public function create(User $user, $notrigger = false) { - if ($this->efficiency < 0 || $this->efficiency > 1) $this->efficiency = 1; + if ($this->efficiency <= 0 || $this->efficiency > 1) $this->efficiency = 1; return $this->createCommon($user, $notrigger); } @@ -412,7 +413,7 @@ class BOM extends CommonObject */ public function update(User $user, $notrigger = false) { - if ($this->efficiency < 0 || $this->efficiency > 1) $this->efficiency = 1; + if ($this->efficiency <= 0 || $this->efficiency > 1) $this->efficiency = 1; return $this->updateCommon($user, $notrigger); } diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index bc1e93314ec..484bb5fa4d4 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -2572,8 +2572,7 @@ abstract class CommonObject public function updateRangOfLine($rowid, $rang) { $fieldposition = 'rang'; // @TODO Rename 'rang' into 'position' - if (in_array($this->table_element_line, array('ecm_files', 'emailcollector_emailcollectoraction'))) $fieldposition = 'position'; - if (in_array($this->table_element_line, array('bom_bomline'))) $fieldposition = 'position'; + if (in_array($this->table_element_line, array('bom_bomline', 'ecm_files', 'emailcollector_emailcollectoraction'))) $fieldposition = 'position'; $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET '.$fieldposition.' = '.$rang; $sql.= ' WHERE rowid = '.$rowid; @@ -2879,11 +2878,11 @@ abstract class CommonObject $MODULE = "MODULE_DISALLOW_UPDATE_PRICE_PROPOSAL"; elseif ($this->element == 'commande' || $this->element == 'order') $MODULE = "MODULE_DISALLOW_UPDATE_PRICE_ORDER"; - elseif ($this->element == 'facture') + elseif ($this->element == 'facture' || $this->element == 'invoice') $MODULE = "MODULE_DISALLOW_UPDATE_PRICE_INVOICE"; - elseif ($this->element == 'facture_fourn') + elseif ($this->element == 'facture_fourn' || $this->element == 'supplier_invoice') $MODULE = "MODULE_DISALLOW_UPDATE_PRICE_SUPPLIER_INVOICE"; - elseif ($this->element == 'order_supplier') + elseif ($this->element == 'order_supplier' || $this->element == 'supplier_order') $MODULE = "MODULE_DISALLOW_UPDATE_PRICE_SUPPLIER_ORDER"; elseif ($this->element == 'supplier_proposal') $MODULE = "MODULE_DISALLOW_UPDATE_PRICE_SUPPLIER_PROPOSAL"; @@ -6271,18 +6270,12 @@ abstract class CommonObject $value=''; } } - elseif ($type == 'double') + elseif ($type == 'double' || $type == 'real') { if (!empty($value)) { $value=price($value); } } - elseif ($type == 'real') - { - if (!empty($value)) { - $value=price($value); - } - } elseif ($type == 'boolean') { $checked=''; @@ -7115,7 +7108,7 @@ abstract class CommonObject * Function test if type is array * * @param array $info content informations of field - * @return bool + * @return bool true if array */ protected function isArray($info) { @@ -7124,42 +7117,26 @@ abstract class CommonObject if(isset($info['type']) && $info['type']=='array') return true; else return false; } - else return false; - } - - /** - * Function test if type is null - * - * @param array $info content informations of field - * @return bool - */ - protected function isNull($info) - { - if(is_array($info)) - { - if(isset($info['type']) && $info['type']=='null') return true; - else return false; - } - else return false; + return false; } /** * Function test if type is date * * @param array $info content informations of field - * @return bool + * @return bool true if date */ public function isDate($info) { if(isset($info['type']) && ($info['type']=='date' || $info['type']=='datetime' || $info['type']=='timestamp')) return true; - else return false; + return false; } /** * Function test if type is integer * * @param array $info content informations of field - * @return bool + * @return bool true if integer */ public function isInt($info) { @@ -7175,7 +7152,7 @@ abstract class CommonObject * Function test if type is float * * @param array $info content informations of field - * @return bool + * @return bool true if float */ public function isFloat($info) { @@ -7184,14 +7161,14 @@ abstract class CommonObject if (isset($info['type']) && (preg_match('/^(double|real|price)/i', $info['type']))) return true; else return false; } - else return false; + return false; } /** * Function test if type is text * * @param array $info content informations of field - * @return bool + * @return bool true if type text */ public function isText($info) { @@ -7200,7 +7177,39 @@ abstract class CommonObject if(isset($info['type']) && $info['type']=='text') return true; else return false; } - else return false; + return false; + } + + /** + * Function test if field can be null + * + * @param array $info content informations of field + * @return bool true if it can be null + */ + protected function canBeNull($info) + { + if(is_array($info)) + { + if(isset($info['notnull']) && $info['notnull']!='1') return true; + else return false; + } + return true; + } + + /** + * Function test if field is forced to null if zero or empty + * + * @param array $info content informations of field + * @return bool true if forced to null + */ + protected function isForcedToNullIfZero($info) + { + if(is_array($info)) + { + if(isset($info['notnull']) && $info['notnull']=='-1') return true; + else return false; + } + return false; } /** @@ -7216,7 +7225,7 @@ abstract class CommonObject if(isset($info['index']) && $info['index']==true) return true; else return false; } - else return false; + return false; } /** @@ -7309,17 +7318,30 @@ abstract class CommonObject elseif($this->isInt($info)) { if ($field == 'rowid') $this->id = (int) $obj->{$field}; - else $this->{$field} = (int) $obj->{$field}; + else + { + if ($this->isForcedToNullIfZero($info)) + { + if (empty($obj->{$field})) $this->{$field} = null; + else $this->{$field} = (double) $obj->{$field}; + } + else + { + $this->{$field} = (int) $obj->{$field}; + } + } } elseif($this->isFloat($info)) { - $this->{$field} = (double) $obj->{$field}; - } - elseif($this->isNull($info)) - { - $val = $obj->{$field}; - // zero is not null - $this->{$field} = (is_null($val) || (empty($val) && $val!==0 && $val!=='0') ? null : $val); + if ($this->isForcedToNullIfZero($info)) + { + if (empty($obj->{$field})) $this->{$field} = null; + else $this->{$field} = (double) $obj->{$field}; + } + else + { + $this->{$field} = (double) $obj->{$field}; + } } else { @@ -7376,7 +7398,8 @@ abstract class CommonObject if (array_key_exists('date_creation', $fieldvalues) && empty($fieldvalues['date_creation'])) $fieldvalues['date_creation']=$this->db->idate($now); if (array_key_exists('fk_user_creat', $fieldvalues) && ! ($fieldvalues['fk_user_creat'] > 0)) $fieldvalues['fk_user_creat']=$user->id; unset($fieldvalues['rowid']); // The field 'rowid' is reserved field name for autoincrement field so we don't need it into insert. - + if (array_key_exists('ref', $fieldvalues)) $fieldvalues['ref']=dol_string_nospecial($fieldvalues['ref']); // If field is a ref,we sanitize data + $keys=array(); $values = array(); foreach ($fieldvalues as $k => $v) { diff --git a/htdocs/install/mysql/migration/10.0.0-11.0.0.sql b/htdocs/install/mysql/migration/10.0.0-11.0.0.sql index a857898f5dc..42097685f6f 100644 --- a/htdocs/install/mysql/migration/10.0.0-11.0.0.sql +++ b/htdocs/install/mysql/migration/10.0.0-11.0.0.sql @@ -49,6 +49,8 @@ UPDATE llx_c_units SET label = 'SurfaceUnitm2' WHERE code IN ('M2'); -- For v11 +ALTER TABLE llx_bom_bom ADD COLUMN duration double(8,4) DEFAULT NULL; + create table llx_categorie_warehouse ( fk_categorie integer NOT NULL, diff --git a/htdocs/install/mysql/tables/llx_bom_bom.sql b/htdocs/install/mysql/tables/llx_bom_bom.sql index d66c3f9ffbf..d195dc4ec5d 100644 --- a/htdocs/install/mysql/tables/llx_bom_bom.sql +++ b/htdocs/install/mysql/tables/llx_bom_bom.sql @@ -26,6 +26,7 @@ CREATE TABLE llx_bom_bom( fk_product integer, qty double(24,8), efficiency double(8,4) DEFAULT 1, + duration double(8,4) DEFAULT NULL, date_creation datetime NOT NULL, date_valid datetime, tms timestamp, diff --git a/htdocs/langs/en_US/mrp.lang b/htdocs/langs/en_US/mrp.lang index 29bb88a80a4..f9c24aadc17 100644 --- a/htdocs/langs/en_US/mrp.lang +++ b/htdocs/langs/en_US/mrp.lang @@ -21,4 +21,6 @@ NewMO=New Manufacturing Order QtyToProduce=Qty to produce DateStartPlannedMo=Date start planned DateEndPlannedMo=Date end planned -KeepEmptyForAsap=Empty means 'As Soon As Possible' \ No newline at end of file +KeepEmptyForAsap=Empty means 'As Soon As Possible' +EstimatedDuration=Estimated duration +EstimatedDurationDesc=Estimated duration to manufacture this product using this BOM \ No newline at end of file From ef09da87945859d5e68ba03bafff77ac92bdce32 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 11:45:13 +0200 Subject: [PATCH 362/484] Fix CSRF check --- htdocs/admin/modulehelp.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/admin/modulehelp.php b/htdocs/admin/modulehelp.php index d5b0f864be6..de9d1677932 100644 --- a/htdocs/admin/modulehelp.php +++ b/htdocs/admin/modulehelp.php @@ -21,7 +21,9 @@ * \brief Page to activate/disable all modules */ -if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); // If there is no need to load and show top and left menu +if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); // If there is no need to load and show top and left menu +if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1'); // Disabled because this page is into a popup on module search page and we want to avoid to have an Anti CSRF token error (done if MAIN_SECURITY_CSRF_WITH_TOKEN is on) when we make a second search after closing popup. + require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; From a33fb4777736de9e14b96618b1256c254d95e679 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 12:10:14 +0200 Subject: [PATCH 363/484] Work on MO module --- htdocs/core/modules/modBom.class.php | 6 +++--- htdocs/core/modules/modVariants.class.php | 2 ++ htdocs/langs/en_US/mrp.lang | 4 ++++ htdocs/theme/eldy/img/object_mrp.png | Bin 0 -> 548 bytes htdocs/theme/md/img/object_movement.png | Bin 0 -> 548 bytes htdocs/theme/md/img/object_mrp.png | Bin 0 -> 548 bytes 6 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 htdocs/theme/eldy/img/object_mrp.png create mode 100644 htdocs/theme/md/img/object_movement.png create mode 100644 htdocs/theme/md/img/object_mrp.png diff --git a/htdocs/core/modules/modBom.class.php b/htdocs/core/modules/modBom.class.php index 9502c4c0af8..92cd956a260 100644 --- a/htdocs/core/modules/modBom.class.php +++ b/htdocs/core/modules/modBom.class.php @@ -54,14 +54,14 @@ class modBom extends DolibarrModules // It is used to group modules by family in module setup page $this->family = "products"; // Module position in the family on 2 digits ('01', '10', '20', ...) - $this->module_position = '90'; + $this->module_position = '60'; // Gives the possibility for the module, to provide his own family info and position of this family (Overwrite $this->family and $this->module_position. Avoid this) //$this->familyinfo = array('myownfamily' => array('position' => '01', 'label' => $langs->trans("MyOwnFamily"))); // Module label (no space allowed), used if translation string 'ModuleBomName' not found (Bom is name of module). $this->name = preg_replace('/^mod/i', '', get_class($this)); // Module description, used if translation string 'ModuleBomDesc' not found (Bom is name of module). - $this->description = "Bill of Materials (BOM) definitions for Manufacturing Resource Planning"; + $this->description = "Module to define your Bills Of Materials (BOM). Can be used for Manufacturing Resource Planning by the module Manufacturing Orders (MO)"; // Used only if file README.md and README-LL.md not found. $this->descriptionlong = "Bill of Materials definitions. They can be used to make Manufacturing Resource Planning"; @@ -75,7 +75,7 @@ class modBom extends DolibarrModules // Name of image file used for this module. // If file is in theme/yourtheme/img directory under name object_pictovalue.png, use this->picto='pictovalue' // If file is in module/img directory under name object_pictovalue.png, use this->picto='pictovalue@module' - $this->picto='generic'; + $this->picto='bom'; // Define some features supported by module (triggers, login, substitutions, menus, css, etc...) $this->module_parts = array( diff --git a/htdocs/core/modules/modVariants.class.php b/htdocs/core/modules/modVariants.class.php index 31e008b2870..728107ea08f 100644 --- a/htdocs/core/modules/modVariants.class.php +++ b/htdocs/core/modules/modVariants.class.php @@ -53,6 +53,8 @@ class modVariants extends DolibarrModules // Family can be 'crm','financial','hr','projects','products','ecm','technic','other' // It is used to group modules in module setup page $this->family = "products"; + // Module position in the family on 2 digits ('01', '10', '20', ...) + $this->module_position = '50'; // Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module) $this->name = preg_replace('/^mod/i', '', get_class($this)); // Module description, used if translation string 'ModuleXXXDesc' not found (where XXX is value of numeric property 'numero' of module) diff --git a/htdocs/langs/en_US/mrp.lang b/htdocs/langs/en_US/mrp.lang index f9c24aadc17..9d8e85f889d 100644 --- a/htdocs/langs/en_US/mrp.lang +++ b/htdocs/langs/en_US/mrp.lang @@ -1,6 +1,10 @@ +Mrp=Manufacturing Orders +MRPDescription=Module to manage Manufacturing Orders (MO). MRPArea=MRP Area +MrpSetupPage=Setup of module MO MenuBOM=Bills of material LatestBOMModified=Latest %s Bills of materials modified +Bom=Bills of Material BillOfMaterials=Bill of Material BOMsSetup=Setup of module BOM ListOfBOMs=List of bills of material - BOM diff --git a/htdocs/theme/eldy/img/object_mrp.png b/htdocs/theme/eldy/img/object_mrp.png new file mode 100644 index 0000000000000000000000000000000000000000..38b59646d710dfac4f94e01bbf41bb6b1779c0c6 GIT binary patch literal 548 zcmV+<0^9wGP)NCbZ?_my9^sP^Lq==>fRY)$Zp?_lD zm4N3MYAVYy+g(Qz_l6<+!_ZICIQp>xHv%7>!@AUfkS5^?d@B=4{3G}lxxXF++Oh+gwij(rEZ`+=bs!~^1 zJ=C%giU~|D3(2Rz|4_O4PGRIUz|zVW@yXQN-wZ(zYl%!YLVY0J1 mN5A$LDKQhLw=ZjNO#cI4PwLNUR3Co;00001s=)Ifzm#A|bYiS|b)bxV3E9MBBK;fUyVJCZIttE=F*Ppj+_g z6%XK!ZR90Gl8{kVy$)NMn>@pos|wr?IUtiZL`Xv=%?NisA{rd@^xL8vj-~*CCk` znkwDt8i)zfb18P_vLwkrJK>vncIbf+yYum>Xm?ExZtD+!)X1uk=Hu$Il>bBY_4)qt zc;H5Daph}LmA7Lxf2%yhm)Yp2c6$_NufFn*(yh{y!IQ;@!NSvWUt@CV0&m=o9>F)y zPWMFC{*(^amI__NCbZ?_my9^sP^Lq==>fRY)$Zp?_lD zm4N3MYAVYy+g(Qz_l6<+!_ZICIQp>xHv%7>!@AUfkS5^?d@B=4{3G}lxxXF++Oh+gwij(rEZ`+=bs!~^1 zJ=C%giU~|D3(2Rz|4_O4PGRIUz|zVW@yXQN-wZ(zYl%!YLVY0J1 mN5A$LDKQhLw=ZjNO#cI4PwLNUR3Co;0000 Date: Mon, 14 Oct 2019 12:27:44 +0200 Subject: [PATCH 364/484] Fix trans export --- htdocs/exports/export.php | 2 +- htdocs/langs/en_US/admin.lang | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index df298153062..c404fc2b264 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -33,7 +33,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/export/modules_export.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; // Load translation files required by the page -$langs->loadlangs(array('exports', 'other', 'users', 'companies', 'projects')); +$langs->loadlangs(array('admin', 'exports', 'other', 'users', 'companies', 'projects', 'suppliers', 'products')); // Everybody should be able to go on this page //if (! $user->admin) diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 5996d643624..bef32dfcd84 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -1061,6 +1061,7 @@ CompanyTown=Town CompanyCountry=Country CompanyCurrency=Main currency CompanyObject=Object of the company +IDCountry=ID country Logo=Logo DoNotSuggestPaymentMode=Do not suggest NoActiveBankAccountDefined=No active bank account defined From b4827dbe067e6755665a268262c9ea2deb59f4fa Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 12:30:26 +0200 Subject: [PATCH 365/484] Prepare 10.0.3 --- ChangeLog | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index ee409bb7588..3583c10385b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,8 +2,68 @@ English Dolibarr ChangeLog -------------------------------------------------------------- -***** ChangeLog for 10.0.2 compared to 10.0.1 ***** +***** ChangeLog for 10.0.3 compared to 10.0.2 ***** +FIX: #11702 +FIX: #11861 No consistent code to manage measuring units +FIX: #11942 +FIX: #12026 +FIX: #12040 +FIX: #12041 +FIX: #12054 +FIX: #12083 +FIX: #12088 +FIX: access to public interface when origin email has an alias. +FIX: Alias name is not into the email recipient label. +FIX: allow standalone credit note even if no invoice +FIX: an admin can not access his own permissions after enabling advanced +FIX: an admin can not access his own permissions after enabling advanced permissions +FIX: Attachement of linked files on ticket when sending a message +FIX: avoid non numeric warning +FIX: Bad currency var used in stripe for connect +FIX: Bad list of ticket on public interface for ticket emailcollector +FIX: Can't modify vendor invoice if transfered into accountancy +FIX: change product type must be allowed if we activate hidden conf +FIX: colspan on VAT quadri report +FIX: CSS +FIX: Debug feature orderstoinvoice for suppliers +FIX: do not output return code on screen after a select of bank account +FIX: Edit of ticket module parameters erased others +FIX: empty cache when we want to load specific warehouses in select +FIX: escape email alias +FIX: expedition.class.php +FIX: Export of leave request show the number of open days +FIX: Filtering the HTTP Header "Accept-Language". +FIX: Filter on project on ticket list +FIX: Filter "Open all" of ticket was ko. +FIX: Force downlaod of file with .noexe as octet-stream mime type +FIX: form not closed. +FIX: hidden conf to prevent from changing product_type +FIX: If product account not suggested during bind, it is not preselected +FIX: If we share invoice, we need to see discount created from a deposit on each entity +FIX: Import of product using units +FIX: label of thirdparty is wrong on open project list +FIX: Look and feel v10 +FIX: missing begin() +FIX: missing "$this->id" in "fetch" function +FIX: navigation on ticket tab of projects +FIX: new invoice with generic thirdparty in takepos +FIX: Pb in units of shipments +FIX: regression with option to hide picto on top menu +FIX: selection of project i am contact of. +FIX: Send email from expense report card. +FIX: shipping card: missing user error messages when classifying closed or billed +FIX: SQL injection on qty +FIX: stripe payment when there is a quote into address +FIX: Substitution of __PROJECT_XXX__ not done +FIX: TakePOS no invoice validation control and good payment translate +FIX: the access of the bank account of one user +FIX: top menu right padding +FIX: Update of leave request when CSRF with token is on +FIX: Var not enough sanitized +FIX: wrong test +FIX: XSS +***** ChangeLog for 10.0.2 compared to 10.0.1 ***** FIX: #10460 compatibility with MariaDB 10.4 FIX: #11401 Adherent unknown language key FIX: #11422 Can't edit his own events with standard rights From 4e52276d1f99e2aff354b9e32a849f38f95a37ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Mon, 14 Oct 2019 13:14:02 +0200 Subject: [PATCH 366/484] fix travis --- htdocs/product/inventory/inventory.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/htdocs/product/inventory/inventory.php b/htdocs/product/inventory/inventory.php index c91834e54e5..c36dd3e47a6 100644 --- a/htdocs/product/inventory/inventory.php +++ b/htdocs/product/inventory/inventory.php @@ -288,9 +288,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print ''."\n"; } - include DOL_DOCUMENT_ROOT.'/product/inventory/tpl/inventory.tpl.php'; - } // End of page From 84c00a0133fbfcc6275331c019cad210ef101562 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 14:44:14 +0200 Subject: [PATCH 367/484] css --- htdocs/theme/eldy/theme_vars.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/theme/eldy/theme_vars.inc.php b/htdocs/theme/eldy/theme_vars.inc.php index 91b50b2a249..f0f74cc1e44 100644 --- a/htdocs/theme/eldy/theme_vars.inc.php +++ b/htdocs/theme/eldy/theme_vars.inc.php @@ -70,7 +70,7 @@ $colorbackbody='255,255,255'; $colortexttitlenotab='110,80,20'; $colortexttitle='0,0,0'; $colortext='0,0,0'; -$colortextlink='10, 20, 120'; +$colortextlink='10, 20, 110'; $fontsize='0.86em'; $fontsizesmaller='0.75em'; $topMenuFontSize='1.2em'; From 369f29b1f3c19ddf7f574706704eba013ab78b2c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 14:51:44 +0200 Subject: [PATCH 368/484] css --- htdocs/theme/eldy/global.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index ddbea5cd43b..850631c6382 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -1102,7 +1102,7 @@ div.blockvmenulogo .menulogocontainer { margin: px; margin-left: 8px; - margin-right: 8px; + margin-right: 2px; padding: 0; height: px; /* width: 100px; */ From 0b19c4ff953ca25acbea7424985b6518d2da836c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 14:53:22 +0200 Subject: [PATCH 369/484] css --- htdocs/theme/eldy/global.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index 850631c6382..9a7972c2381 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -1102,7 +1102,7 @@ div.blockvmenulogo .menulogocontainer { margin: px; margin-left: 8px; - margin-right: 2px; + margin-right: 4px; padding: 0; height: px; /* width: 100px; */ From f9f4faa0d2ec1e76cf0eab382f9d09117c96160a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 14:54:30 +0200 Subject: [PATCH 370/484] css --- htdocs/theme/eldy/global.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index 9a7972c2381..d2cb0e424c4 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -1101,7 +1101,7 @@ div.blockvmenulogo } .menulogocontainer { margin: px; - margin-left: 8px; + margin-left: 12px; margin-right: 4px; padding: 0; height: px; From 9922ff39caf97dd5f6d816cd2532343b6ed91415 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 15:01:37 +0200 Subject: [PATCH 371/484] Fix show duration in list of services --- htdocs/product/list.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/product/list.php b/htdocs/product/list.php index 50b1347da6b..1e6f1317b87 100644 --- a/htdocs/product/list.php +++ b/htdocs/product/list.php @@ -171,7 +171,7 @@ $arrayfields=array( 'p.label'=>array('label'=>$langs->trans("Label"), 'checked'=>1), 'p.fk_product_type'=>array('label'=>$langs->trans("Type"), 'checked'=>0, 'enabled'=>(! empty($conf->product->enabled) && ! empty($conf->service->enabled))), 'p.barcode'=>array('label'=>$langs->trans("Gencod"), 'checked'=>1, 'enabled'=>(! empty($conf->barcode->enabled))), - 'p.duration'=>array('label'=>$langs->trans("Duration"), 'checked'=>($contextpage != 'productlist'), 'enabled'=>(! empty($conf->service->enabled))), + 'p.duration'=>array('label'=>$langs->trans("Duration"), 'checked'=>($contextpage != 'productlist'), 'enabled'=>(! empty($conf->service->enabled) && (string) $type == '1')), 'p.weight'=>array('label'=>$langs->trans("Weight"), 'checked'=>0, 'enabled'=>(! empty($conf->product->enabled))), 'p.length'=>array('label'=>$langs->trans("Length"), 'checked'=>0, 'enabled'=>(! empty($conf->product->enabled) && ! empty($conf->global->PRODUCT_DISABLE_SIZE))), 'p.surface'=>array('label'=>$langs->trans("Surface"), 'checked'=>0, 'enabled'=>(! empty($conf->product->enabled) && ! empty($conf->global->PRODUCT_DISABLE_SURFACE))), @@ -604,7 +604,7 @@ if ($resql) print ''; } // Duration - if ((string) $type == '1' && ! empty($arrayfields['p.duration']['checked'])) + if (! empty($arrayfields['p.duration']['checked'])) { print '
    '; @@ -748,7 +748,7 @@ if ($resql) if (! empty($arrayfields['p.barcode']['checked'])) { print_liste_field_titre($arrayfields['p.barcode']['label'], $_SERVER["PHP_SELF"], "p.barcode", "", $param, "", $sortfield, $sortorder); } - if ((string) $type == '1' && ! empty($arrayfields['p.duration']['checked'])) { + if (! empty($arrayfields['p.duration']['checked'])) { print_liste_field_titre($arrayfields['p.duration']['label'], $_SERVER["PHP_SELF"], "p.duration", "", $param, '', $sortfield, $sortorder, 'center '); } if (! empty($arrayfields['p.weight']['checked'])) print_liste_field_titre($arrayfields['p.weight']['label'], $_SERVER["PHP_SELF"], "p.weight", "", $param, '', $sortfield, $sortorder, 'center '); @@ -921,7 +921,7 @@ if ($resql) } // Duration - if ((string) $type == '1' && ! empty($arrayfields['p.duration']['checked'])) + if (! empty($arrayfields['p.duration']['checked'])) { print ''; print ''; print ''; - if (!empty($conf->multicurrency->enabled)) { - print ''; - } + //if (!empty($conf->multicurrency->enabled)) { + // print ''; + //} print ''; if ($conf->global->PRODUCT_USE_UNITS) print ''; print ''; @@ -1571,8 +1571,7 @@ else $objp = $db->fetch_object($result); - // - + // Line in view mode if ($action != 'editline' || GETPOST('rowid') != $objp->rowid) { print ''; @@ -1608,21 +1607,21 @@ else { print '\n"; } - // TVA + // VAT print ''; // Price print '\n"; // Price multicurrency - if (!empty($conf->multicurrency->enabled)) { + /*if (!empty($conf->multicurrency->enabled)) { print ''; - } - // Quantite + }*/ + // Quantity print ''; // Unit if($conf->global->PRODUCT_USE_UNITS) print ''; - // Remise + // Discount if ($objp->remise_percent > 0) { print '\n"; @@ -1711,7 +1710,7 @@ else print $line->showOptionals($extrafields, 'view', array('style'=>'class="oddeven"', 'colspan'=>$colspan), '', '', empty($conf->global->MAIN_EXTRAFIELDS_IN_ONE_TD)?0:1); } } - // Ligne en mode update + // Line in mode update else { // Ligne carac @@ -1741,18 +1740,34 @@ else $doleditor->Create(); print ''; + + // VAT print ''; + + // Price print ''; + + // Price multicurrency + /*if (!empty($conf->multicurrency->enabled)) { + print ''; + }*/ + + // Quantity print ''; + + // Unit if ($conf->global->PRODUCT_USE_UNITS) { print ''; } + + // Discount print ''; + if (! empty($usemargins)) { print ' - +
    '; print ''; @@ -939,7 +939,7 @@ if ($resql) $dur=array("i"=>$langs->trans("Minute"),"h"=>$langs->trans("Hour"),"d"=>$langs->trans("Day"),"w"=>$langs->trans("Week"),"m"=>$langs->trans("Month"),"y"=>$langs->trans("Year")); } print $duration_value; - print (! empty($duration_unit) && isset($dur[$duration_unit]) ? ' '.$langs->trans($dur[$duration_unit]) : ''); + print ((! empty($duration_unit) && isset($dur[$duration_unit]) && $duration_value != '') ? ' '.$langs->trans($dur[$duration_unit]) : ''); } else { From 0a9cc9656405173ea79b765fbdd4cb6914f966d4 Mon Sep 17 00:00:00 2001 From: iouston <4319513+iouston@users.noreply.github.com> Date: Mon, 14 Oct 2019 15:01:57 +0200 Subject: [PATCH 372/484] Update document.php Add 2 hidden options for set by default a sort (sort and order) on document page --- htdocs/comm/propal/document.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/htdocs/comm/propal/document.php b/htdocs/comm/propal/document.php index 14b845a3e8a..8e3bf45bf68 100644 --- a/htdocs/comm/propal/document.php +++ b/htdocs/comm/propal/document.php @@ -60,6 +60,10 @@ if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, $offset = $conf->liste_limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; + +if (isset($conf->global->MAIN_DOC_SORT_FIELD)){$sortfield=$conf->global->MAIN_DOC_SORT_FIELD;} +if (isset($conf->global->MAIN_DOC_SORT_ORDER)){$sortorder=$conf->global->MAIN_DOC_SORT_ORDER;} + if (! $sortorder) $sortorder="ASC"; if (! $sortfield) $sortfield="name"; From 720245422e6b2c18edba95fcf82dbe7b7dd3a134 Mon Sep 17 00:00:00 2001 From: iouston <4319513+iouston@users.noreply.github.com> Date: Mon, 14 Oct 2019 15:04:49 +0200 Subject: [PATCH 373/484] Update document.php add 2 hidden options for sort files on document page --- htdocs/commande/document.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/htdocs/commande/document.php b/htdocs/commande/document.php index 4d784e299fb..8a40ad83d25 100644 --- a/htdocs/commande/document.php +++ b/htdocs/commande/document.php @@ -59,6 +59,10 @@ if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, $offset = $conf->liste_limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; + +if (isset($conf->global->MAIN_DOC_SORT_FIELD)){$sortfield=$conf->global->MAIN_DOC_SORT_FIELD;} +if (isset($conf->global->MAIN_DOC_SORT_ORDER)){$sortorder=$conf->global->MAIN_DOC_SORT_ORDER;} + if (! $sortorder) $sortorder="ASC"; if (! $sortfield) $sortfield="name"; From 0cd451ef1ad11751d5b935271054c0bb9ce6e75a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 15:06:21 +0200 Subject: [PATCH 374/484] Fix show duration in list of services --- htdocs/product/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/product/list.php b/htdocs/product/list.php index 1e6f1317b87..2b36582025f 100644 --- a/htdocs/product/list.php +++ b/htdocs/product/list.php @@ -941,7 +941,7 @@ if ($resql) print $duration_value; print ((! empty($duration_unit) && isset($dur[$duration_unit]) && $duration_value != '') ? ' '.$langs->trans($dur[$duration_unit]) : ''); } - else + elseif (! preg_match('/^[a-z]$/i', $obj->duration)) // If duration is a simple char (like 's' of 'm'), we do not show value { print $obj->duration; } From f6aafea33c42042fac243e5da992910153b5f63e Mon Sep 17 00:00:00 2001 From: iouston <4319513+iouston@users.noreply.github.com> Date: Mon, 14 Oct 2019 15:09:59 +0200 Subject: [PATCH 375/484] Update document.php add 2 hidden options for set a default field and a defaut order on document page --- htdocs/projet/document.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/htdocs/projet/document.php b/htdocs/projet/document.php index e16e90982a6..b2065029b72 100644 --- a/htdocs/projet/document.php +++ b/htdocs/projet/document.php @@ -62,6 +62,10 @@ if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, $offset = $conf->liste_limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; + +if (isset($conf->global->MAIN_DOC_SORT_FIELD)){$sortfield=$conf->global->MAIN_DOC_SORT_FIELD;} +if (isset($conf->global->MAIN_DOC_SORT_ORDER)){$sortorder=$conf->global->MAIN_DOC_SORT_ORDER;} + if (! $sortorder) $sortorder="ASC"; if (! $sortfield) $sortfield="name"; From 6ebdce8a9db1dd739800ce3a727e57ef6caa8144 Mon Sep 17 00:00:00 2001 From: iouston <4319513+iouston@users.noreply.github.com> Date: Mon, 14 Oct 2019 15:13:07 +0200 Subject: [PATCH 376/484] Update document.php add 2 hidden options for set a default field and a default order on document page --- htdocs/societe/document.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/htdocs/societe/document.php b/htdocs/societe/document.php index 54a2bea1d41..5ea892f0670 100644 --- a/htdocs/societe/document.php +++ b/htdocs/societe/document.php @@ -55,6 +55,10 @@ if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, $offset = $conf->liste_limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; + +if (isset($conf->global->MAIN_DOC_SORT_FIELD)){$sortfield=$conf->global->MAIN_DOC_SORT_FIELD;} +if (isset($conf->global->MAIN_DOC_SORT_ORDER)){$sortorder=$conf->global->MAIN_DOC_SORT_ORDER;} + if (! $sortorder) $sortorder="ASC"; if (! $sortfield) $sortfield="position_name"; From 83b4f41eb5749e267f2219ffe9a68dcf028690ba Mon Sep 17 00:00:00 2001 From: iouston <4319513+iouston@users.noreply.github.com> Date: Mon, 14 Oct 2019 15:15:34 +0200 Subject: [PATCH 377/484] Update document.php add 2 hidden options for set a default field sort and a default order on a document page --- htdocs/contact/document.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/htdocs/contact/document.php b/htdocs/contact/document.php index 6fb2803f715..b081582337e 100644 --- a/htdocs/contact/document.php +++ b/htdocs/contact/document.php @@ -62,6 +62,10 @@ if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, $offset = $conf->liste_limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; + + if (isset($conf->global->MAIN_DOC_SORT_FIELD)){$sortfield=$conf->global->MAIN_DOC_SORT_FIELD;} + if (isset($conf->global->MAIN_DOC_SORT_ORDER)){$sortorder=$conf->global->MAIN_DOC_SORT_ORDER;} + if (! $sortorder) $sortorder="ASC"; if (! $sortfield) $sortfield="name"; From 92c624daf0bdd80313bed5a4862e750775bf22de Mon Sep 17 00:00:00 2001 From: atm-greg Date: Mon, 14 Oct 2019 15:28:06 +0200 Subject: [PATCH 378/484] add security.lib.php for dol_hash --- htdocs/blockedlog/class/blockedlog.class.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/blockedlog/class/blockedlog.class.php b/htdocs/blockedlog/class/blockedlog.class.php index d7302a2c795..4413b78a6a4 100644 --- a/htdocs/blockedlog/class/blockedlog.class.php +++ b/htdocs/blockedlog/class/blockedlog.class.php @@ -1048,6 +1048,7 @@ class BlockedLog if (empty($conf->global->BLOCKEDLOG_ENTITY_FINGERPRINT)) { // creation of a unique fingerprint require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; + require_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; $fingerprint = dol_hash(print_r($mysoc, true).getRandomPassword(1), '5'); From 44476afdac8d09cae7b3e12d2f3794101d707d16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric?= <35066297+c3do@users.noreply.github.com> Date: Mon, 14 Oct 2019 15:35:04 +0200 Subject: [PATCH 379/484] FIX: No pricing rule on new clean installation There is no pricing rule on new fresh installation of Dolibarr. I think the pricing rule "PRODUCT_PRICE_UNIQ" should be set by default because it is needed to update a product through API REST. --- htdocs/core/modules/modProduct.class.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/htdocs/core/modules/modProduct.class.php b/htdocs/core/modules/modProduct.class.php index da2ac06dcea..a3e3e539468 100644 --- a/htdocs/core/modules/modProduct.class.php +++ b/htdocs/core/modules/modProduct.class.php @@ -85,6 +85,13 @@ class modProduct extends DolibarrModules $this->const[$r][3] = 'Module to control product codes'; $this->const[$r][4] = 0; $r++; + + $this->const[$r][0] = "PRODUCT_PRICE_UNIQ"; + $this->const[$r][1] = "chaine"; + $this->const[$r][2] = "1"; + $this->const[$r][3] = 'pricing rule by default'; + $this->const[$r][4] = 0; + $r++; /*$this->const[$r][0] = "PRODUCT_ADDON_PDF"; $this->const[$r][1] = "chaine"; From 5056d7220b8d67a178ec2cbfa0f5ddbc4a7aeb4a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 15:36:28 +0200 Subject: [PATCH 380/484] Fix multicurrency not yet supported on contracts --- htdocs/contrat/card.php | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/htdocs/contrat/card.php b/htdocs/contrat/card.php index bbefeb7eb4f..51f5e7382f6 100644 --- a/htdocs/contrat/card.php +++ b/htdocs/contrat/card.php @@ -1559,9 +1559,9 @@ else print ''.$langs->trans("ServiceNb", $cursorline).''.$langs->trans("VAT").''.$langs->trans("PriceUHT").''.$langs->trans("PriceUHTCurrency").''.$langs->trans("PriceUHTCurrency").''.$langs->trans("Qty").''.$langs->trans("Unit").''.$langs->trans("ReductionShort").'
    '.img_object($langs->trans("ShowProductOrService"), ($objp->product_type ? 'service' : 'product')).' '.dol_htmlentitiesbr($objp->description)."'; print vatrate($objp->tva_tx.($objp->vat_src_code?(' ('.$objp->vat_src_code.')'):''), '%', $objp->info_bits); print ''.($objp->subprice != '' ? price($objp->subprice) : '')."'.price($objp->multicurrency_subprice).''.$objp->qty.''.$langs->trans($object->lines[$cursorline-1]->getLabelOfUnit()).''.$objp->remise_percent."%'; print $form->load_tva("eltva_tx", $objp->tva_tx.($objp->vat_src_code?(' ('.$objp->vat_src_code.')'):''), $mysoc, $object->thirdparty, $objp->fk_product, $objp->info_bits, $objp->product_type, 0, 1); print ''.price($objp->multicurrency_subprice).''; print $form->selectUnits($objp->fk_unit, "unit"); print '%'; @@ -2063,6 +2078,7 @@ else if ($action != 'editline') { $forcetoshowtitlelines=1; + if (empty($object->multicurrency_code)) $object->multicurrency_code = $conf->currency; // TODO Remove this when multicurrency supported on contracts // Add free products/services $object->formAddObjectLine(1, $mysoc, $soc); From 4f10009113a776462c26c4500d3c24c593dc9d63 Mon Sep 17 00:00:00 2001 From: atm-josselin Date: Mon, 14 Oct 2019 15:39:38 +0200 Subject: [PATCH 381/484] Add fields definition in product batch class for extrafields compatibility --- htdocs/product/stock/class/productlot.class.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/htdocs/product/stock/class/productlot.class.php b/htdocs/product/stock/class/productlot.class.php index f3cec8f9a98..dd811a66cf6 100644 --- a/htdocs/product/stock/class/productlot.class.php +++ b/htdocs/product/stock/class/productlot.class.php @@ -53,6 +53,19 @@ class Productlot extends CommonObject */ public $ismultientitymanaged = 1; + /** + * @var array Array with all fields and their property. Do not use it as a static var. It may be modified by constructor. + */ + public $fields=array( + 'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'index'=>1, 'position'=>1, 'comment'=>'Id'), + 'batch' =>array('type'=>'varchar(30)', 'label'=>'Batch', 'enabled'=>1, 'visible'=>1, 'notnull'=>0, 'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'comment'=>'Batch'), + 'entity' =>array('type'=>'integer', 'label'=>'Entity', 'enabled'=>1, 'visible'=>0, 'default'=>1, 'notnull'=>1, 'index'=>1, 'position'=>20), + 'datec' =>array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>500), + 'tms' =>array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>501), + 'fk_user_author'=>array('type'=>'integer', 'label'=>'UserAuthor', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>510, 'foreignkey'=>'llx_user.rowid'), + 'fk_user_modif' =>array('type'=>'integer', 'label'=>'UserModif', 'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'position'=>511) + ); + /** * @var int Entity */ From e326c232452645506a11ffd295e0cc2f72c7d7fd Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Mon, 14 Oct 2019 15:48:24 +0200 Subject: [PATCH 382/484] add missing translation --- htdocs/core/modules/commande/doc/pdf_einstein.modules.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php index e6b960be0ce..c101f73fca0 100644 --- a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php @@ -307,7 +307,7 @@ class pdf_einstein extends ModelePDFCommandes $pdf->SetMargins($this->marge_gauche, $this->marge_haute, $this->marge_droite); // Left, Top, Right - // Positionne $this->atleastonediscount si on a au moins une remise + // Set $this->atleastonediscount if you have at least one discount for ($i = 0 ; $i < $nblines ; $i++) { if ($object->lines[$i]->remise_percent) @@ -361,7 +361,7 @@ class pdf_einstein extends ModelePDFCommandes } } - // Affiche notes + // Displays notes $notetoshow=empty($object->note_public)?'':$object->note_public; if (! empty($conf->global->MAIN_ADD_SALE_REP_SIGNATURE_IN_NOTE)) { @@ -461,7 +461,7 @@ class pdf_einstein extends ModelePDFCommandes $pdf->setPage($pageposafter); $curY = $tab_top_newpage; } - $pdf->SetFont('', '', $default_font_size - 1); // On repositionne la police par defaut + $pdf->SetFont('', '', $default_font_size - 1); // We reposition the default font // VAT Rate if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT) && empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT_COLUMN)) @@ -503,7 +503,7 @@ class pdf_einstein extends ModelePDFCommandes $pdf->SetXY($this->postotalht, $curY); $pdf->MultiCell($this->page_largeur-$this->marge_droite-$this->postotalht, 3, $total_excl_tax, 0, 'R', 0); - // Collecte des totaux par valeur de tva dans $this->tva["taux"]=total_tva + // Collection of totals by value of vat in $this->vat["rate"] = total_tva if ($conf->multicurrency->enabled && $object->multicurrency_tx != 1) $tvaligne=$object->lines[$i]->multicurrency_total_tva; else $tvaligne=$object->lines[$i]->total_tva; From fd90ebe63ba6780881497255567dc64617156a40 Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Mon, 14 Oct 2019 15:57:29 +0200 Subject: [PATCH 383/484] add missing translation --- .../modules/commande/doc/pdf_eratosthene.modules.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php b/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php index 90efc67cd7f..9688d160303 100644 --- a/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php @@ -430,7 +430,7 @@ class pdf_eratosthene extends ModelePDFCommandes { $pdf->rollbackTransaction(true); - // prepar pages to receive notes + // prepare pages to receive notes while ($pagenb < $pageposafternote) { $pdf->AddPage(); $pagenb++; @@ -464,7 +464,7 @@ class pdf_eratosthene extends ModelePDFCommandes } - // apply note frame to previus pages + // apply note frame to previous pages $i = $pageposbeforenote; while ($i < $pageposafternote) { $pdf->setPage($i); @@ -526,7 +526,7 @@ class pdf_eratosthene extends ModelePDFCommandes } - // Use new auto collum system + // Use new auto column system $this->prepareArrayColumnField($object, $outputlangs, $hidedetails, $hidedesc, $hideref); // tab simulation to know line height @@ -636,7 +636,7 @@ class pdf_eratosthene extends ModelePDFCommandes $pdf->setPage($pageposafter); $curY = $tab_top_newpage; } - $pdf->SetFont('', '', $default_font_size - 1); // On repositionne la police par defaut + $pdf->SetFont('', '', $default_font_size - 1); // We reposition the default font // VAT Rate if ($this->getColumnStatus('vat')) @@ -701,7 +701,7 @@ class pdf_eratosthene extends ModelePDFCommandes $reshook=$hookmanager->executeHooks('printPDFline', $parameters, $this); // Note that $object may have been modified by hook - // Collecte des totaux par valeur de tva dans $this->tva["taux"]=total_tva + // Collection of totals by value of vat in $this->vat["rate"] = total_tva if ($conf->multicurrency->enabled && $object->multicurrency_tx != 1) $tvaligne=$object->lines[$i]->multicurrency_total_tva; else $tvaligne=$object->lines[$i]->total_tva; From 28339920b3cf3d3e952c524c9262fbc2a345729b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 16:00:03 +0200 Subject: [PATCH 384/484] Translation --- htdocs/compta/facture/class/facture.class.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index baaed787023..713c68c8e8a 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -1233,7 +1233,7 @@ class Facture extends CommonInvoice */ public function getNomUrl($withpicto = 0, $option = '', $max = 0, $short = 0, $moretitle = '', $notooltip = 0, $addlinktonotes = 0, $save_lastsearch_value = -1, $target = '') { - global $langs, $conf, $user; + global $langs, $conf, $user, $mysoc; if (! empty($conf->dol_no_mouse_hover)) $notooltip=1; // Force disable tooltips @@ -1276,11 +1276,11 @@ class Facture extends CommonInvoice if (! empty($this->total_ht)) $label.= '
    ' . $langs->trans('AmountHT') . ': ' . price($this->total_ht, 0, $langs, 0, -1, -1, $conf->currency); if (! empty($this->total_tva)) - $label.= '
    ' . $langs->trans('VAT') . ': ' . price($this->total_tva, 0, $langs, 0, -1, -1, $conf->currency); + $label.= '
    ' . $langs->trans('AmountVAT') . ': ' . price($this->total_tva, 0, $langs, 0, -1, -1, $conf->currency); if (! empty($this->total_localtax1) && $this->total_localtax1 != 0) // We keep test != 0 because $this->total_localtax1 can be '0.00000000' - $label.= '
    ' . $langs->trans('LT1') . ': ' . price($this->total_localtax1, 0, $langs, 0, -1, -1, $conf->currency); + $label.= '
    ' . $langs->transcountry('AmountLT1', $mysoc->country_code) . ': ' . price($this->total_localtax1, 0, $langs, 0, -1, -1, $conf->currency); if (! empty($this->total_localtax2) && $this->total_localtax2 != 0) - $label.= '
    ' . $langs->trans('LT2') . ': ' . price($this->total_localtax2, 0, $langs, 0, -1, -1, $conf->currency); + $label.= '
    ' . $langs->transcountry('AmountLT2', $mysoc->country_code) . ': ' . price($this->total_localtax2, 0, $langs, 0, -1, -1, $conf->currency); if (! empty($this->total_ttc)) $label.= '
    ' . $langs->trans('AmountTTC') . ': ' . price($this->total_ttc, 0, $langs, 0, -1, -1, $conf->currency); if ($moretitle) $label.=' - '.$moretitle; @@ -2136,7 +2136,7 @@ class Facture extends CommonInvoice if ($this->paye != 1) { $this->db->begin(); - + $now=dol_now(); dol_syslog(get_class($this)."::set_paid rowid=".$this->id, LOG_DEBUG); @@ -3557,7 +3557,7 @@ class Facture extends CommonInvoice $cluser->fetch($obj->fk_user_closing); $this->user_closing = $cluser; } - + $this->date_creation = $this->db->jdate($obj->datec); $this->date_modification = $this->db->jdate($obj->datem); $this->date_validation = $this->db->jdate($obj->datev); From dba9450b0104e74245ebab78734b70a041757a2a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 16:03:12 +0200 Subject: [PATCH 385/484] css --- htdocs/compta/facture/tpl/linkedobjectblockForRec.tpl.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/facture/tpl/linkedobjectblockForRec.tpl.php b/htdocs/compta/facture/tpl/linkedobjectblockForRec.tpl.php index f9e3d4336f0..f6f854d9635 100644 --- a/htdocs/compta/facture/tpl/linkedobjectblockForRec.tpl.php +++ b/htdocs/compta/facture/tpl/linkedobjectblockForRec.tpl.php @@ -48,7 +48,7 @@ foreach($linkedObjectBlock as $key => $objectlink) ?>
    trans("RepeatableInvoice"); ?>getNomUrl(1); ?>getNomUrl(1); ?> date_when, 'day'); ?> Date: Mon, 14 Oct 2019 16:07:54 +0200 Subject: [PATCH 386/484] css --- htdocs/theme/eldy/global.inc.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index d2cb0e424c4..2eb5a4d17e9 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -785,6 +785,9 @@ table[summary="list_of_modules"] .fa-cog { font-size: 1.5em; } +.linkedcol-element { + min-width: 100px; +} /* ============================================================================== */ /* Styles to hide objects */ @@ -865,6 +868,10 @@ table[summary="list_of_modules"] .fa-cog { .minwidth300imp { min-width: 300px !important; } .minwidth400imp { min-width: 300px !important; } .minwidth500imp { min-width: 300px !important; } + + .linkedcol-element { + min-width: unset; + } } /* Force values for small screen 1000 */ From 4b7987374b699fb7168bd238409f3a3083a955f8 Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Mon, 14 Oct 2019 14:46:04 +0000 Subject: [PATCH 387/484] Fixing style errors. --- htdocs/comm/propal/class/propal.class.php | 4 ++-- htdocs/compta/facture/class/facture.class.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index 6babe8076a8..45cc0399a93 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -1287,11 +1287,11 @@ class Propal extends CommonObject $object->datep = $now; // deprecated $object->fin_validite = $object->date + ($object->duree_validite * 24 * 3600); if (empty($conf->global->MAIN_KEEP_REF_CUSTOMER_ON_CLONING)) $object->ref_client = ''; - if ($conf->global->MAIN_DONT_KEEP_NOTE_ON_CLONING==1) + if ($conf->global->MAIN_DONT_KEEP_NOTE_ON_CLONING==1) { $object->note_private = ''; $object->note_public = ''; - } + } // Create clone $object->context['createfromclone']='createfromclone'; $result=$object->create($user); diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index 7f5432682ab..70edd98a2f0 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -1046,11 +1046,11 @@ class Facture extends CommonInvoice $object->close_code = ''; $object->close_note = ''; $object->products = $object->lines; // For backward compatibility - if ($conf->global->MAIN_DONT_KEEP_NOTE_ON_CLONING==1) + if ($conf->global->MAIN_DONT_KEEP_NOTE_ON_CLONING==1) { $object->note_private = ''; $object->note_public = ''; - } + } // Loop on each line of new invoice foreach($object->lines as $i => $line) From dbdc62b0289c1cd71bffd0acd29d569e72d8f869 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 18:41:46 +0200 Subject: [PATCH 388/484] Fix td --- htdocs/compta/prelevement/create.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/htdocs/compta/prelevement/create.php b/htdocs/compta/prelevement/create.php index 61db16c505c..3aaad5662a3 100644 --- a/htdocs/compta/prelevement/create.php +++ b/htdocs/compta/prelevement/create.php @@ -142,7 +142,7 @@ if ($nb < 0 || $nb1 < 0 || $nb11 < 0) { dol_print_error($bprev->error); } -print ''; +print '
    '; print ''; print ''; print ''; print ''; + print ''; print ''; } else From 2257706a3026edc8908941bbb87d2ce6d6868e98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric?= <35066297+c3do@users.noreply.github.com> Date: Mon, 14 Oct 2019 22:22:20 +0200 Subject: [PATCH 404/484] New: Update product type with update method --- htdocs/product/class/api_products.class.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/htdocs/product/class/api_products.class.php b/htdocs/product/class/api_products.class.php index 2a9f407bf54..81e2659d918 100644 --- a/htdocs/product/class/api_products.class.php +++ b/htdocs/product/class/api_products.class.php @@ -246,8 +246,13 @@ class Products extends DolibarrApi } $this->product->$field = $value; } + + $updatetype = false; + if ($this->product->type != $oldproduct->type && ($this->product->isProduct() || $this->product->isService())) { + $updatetype = true; + } - $result = $this->product->update($id, DolibarrApiAccess::$user, 1, 'update'); + $result = $this->product->update($id, DolibarrApiAccess::$user, 1, 'update', $updatetype); // If price mode is 1 price per product if ($result > 0 && ! empty($conf->global->PRODUCT_PRICE_UNIQ)) { From 3429cb7c1d8dc4d4a43b4372b077a1e998ea6ab1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric?= <35066297+c3do@users.noreply.github.com> Date: Mon, 14 Oct 2019 22:42:38 +0200 Subject: [PATCH 405/484] New: Update product type with update method --- htdocs/product/class/product.class.php | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 1b46a656511..aa0c575d8d7 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -787,13 +787,14 @@ class Product extends CommonObject * Update a record into database. * If batch flag is set to on, we create records into llx_product_batch * - * @param int $id Id of product - * @param User $user Object user making update - * @param int $notrigger Disable triggers - * @param string $action Current action for hookmanager ('add' or 'update') + * @param int $id Id of product + * @param User $user Object user making update + * @param int $notrigger Disable triggers + * @param string $action Current action for hookmanager ('add' or 'update') + * @param int $updatetype Update product type * @return int 1 if OK, -1 if ref already exists, -2 if other error */ - public function update($id, $user, $notrigger = false, $action = 'update') + public function update($id, $user, $notrigger = false, $action = 'update', $updatetype = false) { global $langs, $conf, $hookmanager; @@ -939,6 +940,11 @@ class Product extends CommonObject $sql = "UPDATE ".MAIN_DB_PREFIX."product"; $sql.= " SET label = '" . $this->db->escape($this->label) ."'"; + + if ($updatetype && ($this->isProduct() || $this->isService())) { + $sql.= ", fk_product_type = " . $this->type; + } + $sql.= ", ref = '" . $this->db->escape($this->ref) ."'"; $sql.= ", ref_ext = ".(! empty($this->ref_ext)?"'".$this->db->escape($this->ref_ext)."'":"null"); $sql.= ", default_vat_code = ".($this->default_vat_code ? "'".$this->db->escape($this->default_vat_code)."'" : "null"); From b77d2f2ff2d71ac8c1948ee25db8e2b63804f78f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Mon, 14 Oct 2019 23:27:37 +0200 Subject: [PATCH 406/484] Update box_task.php --- htdocs/core/boxes/box_task.php | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/htdocs/core/boxes/box_task.php b/htdocs/core/boxes/box_task.php index 59b31086db5..dbe1757d55d 100644 --- a/htdocs/core/boxes/box_task.php +++ b/htdocs/core/boxes/box_task.php @@ -134,7 +134,13 @@ class box_task extends ModeleBoxes }); }); '; - + // set cookie by js + $boxcontent.=''; + $this->info_box_contents[0][] = array( + 'tr'=>'class="nohover"', + 'td' => 'class="nohover"', + 'textnoformat' => $boxcontent, + ); $sql = "SELECT pt.rowid, pt.ref, pt.fk_projet, pt.fk_task_parent, pt.datec, pt.dateo, pt.datee, pt.datev, pt.label, pt.description, pt.duration_effective, pt.planned_workload, pt.progress"; @@ -163,7 +169,7 @@ class box_task extends ModeleBoxes $sql.= $this->db->plimit($max, 0); $result = $this->db->query($sql); - $i = 0; + $i = 1; if ($result) { $num = $this->db->num_rows($result); while ($objp = $this->db->fetch_object($result)) { @@ -183,8 +189,12 @@ class box_task extends ModeleBoxes $label = $projectstatic->getNomUrl(1).' '.$taskstatic->getNomUrl(1).' '.dol_htmlentities($taskstatic->label); - $boxcontent.= getTaskProgressView($taskstatic, $label, true, false, true); + $boxcontent = getTaskProgressView($taskstatic, $label, true, false, true); + $this->info_box_contents[$i][] = array( + 'td' => '', + 'text' => $boxcontent, + ); $i++; } } else { @@ -192,15 +202,6 @@ class box_task extends ModeleBoxes } } - // set cookie by js - if(empty($i)){ - $boxcontent.=''; - } - - $this->info_box_contents[0][] = array( - 'td' => '', - 'text' => $boxcontent, - ); } /** From 540f20c18f7c0df6726ee35d21d9d11c8d04a326 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 23:49:26 +0200 Subject: [PATCH 407/484] css --- htdocs/theme/eldy/global.inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index 353c14041f4..0fe2236c33a 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -1114,8 +1114,8 @@ div.blockvmenulogo } .menulogocontainer { margin: px; - margin-left: 12px; - margin-right: 4px; + margin-left: 11px; + margin-right: 9px; padding: 0; height: px; /* width: 100px; */ From a53c7cfca8d9887e566b21717f59c153072c5f8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Tue, 15 Oct 2019 00:13:52 +0200 Subject: [PATCH 408/484] Update box_last_modified_ticket.php --- htdocs/core/boxes/box_last_modified_ticket.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/boxes/box_last_modified_ticket.php b/htdocs/core/boxes/box_last_modified_ticket.php index 8f86be5a115..56299c60429 100644 --- a/htdocs/core/boxes/box_last_modified_ticket.php +++ b/htdocs/core/boxes/box_last_modified_ticket.php @@ -166,7 +166,7 @@ class box_last_modified_ticket extends ModeleBoxes // Date creation $this->info_box_contents[$i][$r] = array( 'td' => 'class="right"', - 'text' => dol_print_date($this->db->idate($objp->datec), 'dayhour') + 'text' => dol_print_date($datec, 'dayhour') ); $r++; From 194072fc60ec7728877f51bacbf54407644211bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Tue, 15 Oct 2019 00:14:43 +0200 Subject: [PATCH 409/484] Update box_last_ticket.php --- htdocs/core/boxes/box_last_ticket.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/boxes/box_last_ticket.php b/htdocs/core/boxes/box_last_ticket.php index 18990cd8bb6..cf4b7f305f7 100644 --- a/htdocs/core/boxes/box_last_ticket.php +++ b/htdocs/core/boxes/box_last_ticket.php @@ -166,7 +166,7 @@ class box_last_ticket extends ModeleBoxes // Date creation $this->info_box_contents[$i][$r] = array( 'td' => 'class="right"', - 'text' => dol_print_date($this->db->idate($objp->datec), 'dayhour'), + 'text' => dol_print_date($datec, 'dayhour'), ); $r++; From 415379c4f2e4d9ffd19c454a92999d293e3c93ab Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 15 Oct 2019 00:27:09 +0200 Subject: [PATCH 410/484] Link show tutorial in middle --- htdocs/accountancy/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/accountancy/index.php b/htdocs/accountancy/index.php index 4eab81ea49f..0eeccbd3395 100644 --- a/htdocs/accountancy/index.php +++ b/htdocs/accountancy/index.php @@ -88,7 +88,7 @@ if ($conf->accounting->enabled) } - print load_fiche_titre($langs->trans("AccountancyArea"), $showtutorial . $resultboxes['selectboxlist'], 'accountancy'); + print load_fiche_titre($langs->trans("AccountancyArea"), $resultboxes['selectboxlist'], 'accountancy', 0, '', '', $showtutorial); print '
    '; // hideobject is to start hidden print "
    \n"; From f50a75194c205863d4bd420e1f7be402be38d5ac Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 15 Oct 2019 00:44:22 +0200 Subject: [PATCH 411/484] Removed warning --- htdocs/core/class/conf.class.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/htdocs/core/class/conf.class.php b/htdocs/core/class/conf.class.php index 535db40e0e4..60b33e51188 100644 --- a/htdocs/core/class/conf.class.php +++ b/htdocs/core/class/conf.class.php @@ -227,10 +227,7 @@ class Conf $filesList = explode(":", $this->global->LOCAL_CONSTS_FILES); foreach ($filesList as $file) { $file=dol_sanitizeFileName($file); - include_once DOL_DOCUMENT_ROOT . "/".$file."/".$file."_consts.php"; - foreach ($file2bddconsts as $key=>$value) { - $this->global->$key=$value; - } + include_once DOL_DOCUMENT_ROOT . "/".$file."/".$file."_consts.php"; // This file must set $this->global->XXX vars. } } @@ -669,6 +666,8 @@ class Conf if (! isset($this->global->MAIN_EXTRAFIELDS_IN_ONE_TD)) $this->global->MAIN_EXTRAFIELDS_IN_ONE_TD = 1; + if (! isset($this->global->MAIN_USE_OLD_TITLE_BUTTON)) $this->global->MAIN_USE_OLD_TITLE_BUTTON = 1; + if (empty($this->global->MAIN_MODULE_DOLISTORE_API_SRV)) $this->global->MAIN_MODULE_DOLISTORE_API_SRV='https://www.dolistore.com'; if (empty($this->global->MAIN_MODULE_DOLISTORE_API_KEY)) $this->global->MAIN_MODULE_DOLISTORE_API_KEY='dolistorecatalogpublickey1234567'; From a1c93cb2e6c5a42a496f2a24bd46dd8dc5d28704 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 15 Oct 2019 02:45:12 +0200 Subject: [PATCH 412/484] MAIN_ACTIVATE_HTML5 is now always on now (so option removed). Look and feel v11 --- htdocs/accountancy/bookkeeping/list.php | 4 ++-- htdocs/core/class/conf.class.php | 3 +-- htdocs/core/lib/functions.lib.php | 7 +++---- htdocs/exports/class/export.class.php | 3 +-- htdocs/theme/eldy/btn.inc.php | 22 ++++++++++++++------ htdocs/theme/eldy/dropdown.inc.php | 2 +- htdocs/theme/eldy/global.inc.php | 18 +++++++++++++--- htdocs/theme/eldy/theme_vars.inc.php | 2 +- htdocs/theme/md/style.css.php | 5 +++++ htdocs/ticket/card.php | 12 +++++++---- htdocs/ticket/class/actions_ticket.class.php | 4 ++-- 11 files changed, 55 insertions(+), 27 deletions(-) diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php index b5f0c06738a..2958a229d24 100644 --- a/htdocs/accountancy/bookkeeping/list.php +++ b/htdocs/accountancy/bookkeeping/list.php @@ -518,9 +518,9 @@ else $buttonLabel = $langs->trans("ExportList"); // Button re-export if (! empty($conf->global->ACCOUNTING_REEXPORT)) { - $newcardbutton =''.img_picto($langs->trans("Activated"), 'switch_on').' '; + $newcardbutton =''.img_picto($langs->trans("Activated"), 'switch_on').' '; } else { - $newcardbutton =''.img_picto($langs->trans("Disabled"), 'switch_off').' '; + $newcardbutton =''.img_picto($langs->trans("Disabled"), 'switch_off').' '; } $newcardbutton.= ''.$langs->trans("IncludeDocsAlreadyExported").''; diff --git a/htdocs/core/class/conf.class.php b/htdocs/core/class/conf.class.php index 60b33e51188..287d8121213 100644 --- a/htdocs/core/class/conf.class.php +++ b/htdocs/core/class/conf.class.php @@ -439,7 +439,6 @@ class Conf // Set some default values //$this->global->MAIN_LIST_FILTER_ON_DAY=1; // On filter that show date, we must show input field for day before or after month - $this->global->MAIN_ACTIVATE_HTML5=1; $this->global->MAIN_MAIL_USE_MULTI_PART=1; // societe @@ -666,7 +665,7 @@ class Conf if (! isset($this->global->MAIN_EXTRAFIELDS_IN_ONE_TD)) $this->global->MAIN_EXTRAFIELDS_IN_ONE_TD = 1; - if (! isset($this->global->MAIN_USE_OLD_TITLE_BUTTON)) $this->global->MAIN_USE_OLD_TITLE_BUTTON = 1; + if (! isset($this->global->MAIN_USE_OLD_TITLE_BUTTON)) $this->global->MAIN_USE_OLD_TITLE_BUTTON = 0; if (empty($this->global->MAIN_MODULE_DOLISTORE_API_SRV)) $this->global->MAIN_MODULE_DOLISTORE_API_SRV='https://www.dolistore.com'; if (empty($this->global->MAIN_MODULE_DOLISTORE_API_KEY)) $this->global->MAIN_MODULE_DOLISTORE_API_KEY='dolistorecatalogpublickey1234567'; diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index f178a25f4c2..7bda225978f 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -4125,7 +4125,7 @@ function load_fiche_titre($titre, $morehtmlright = '', $picto = 'generic', $pict if ($picto == 'setup') $picto='generic'; $return.= "\n"; - $return.= '
    '.$langs->trans("NbOfInvoiceToWithdraw").''; @@ -161,6 +161,7 @@ print ''; if ($mesg) print $mesg; print "
    \n"; + print '
    '; print ''; if ($nb) { @@ -193,6 +194,7 @@ else } print "
    \n"; + print "
    \n"; print '
    '; @@ -245,7 +247,7 @@ if ($resql) print_barre_liste($langs->trans("InvoiceWaitingWithdraw"), $page, $_SERVER['PHP_SELF'], $param, '', '', '', $num, $nbtotalofrecords, 'invoicing', 0, '', '', $limit); - print ''; + print '
    '; print ''; print ''; print ''; @@ -299,7 +301,10 @@ if ($resql) $i++; } } - else print ''; + else + { + print ''; + } print "
    '.$langs->trans("Invoice").''.$langs->trans("ThirdParty").'
    '.$langs->trans("None").'
    '.$langs->trans("None").'
    "; print ""; print "
    \n"; From 3b84e2bac34b72a200bdad73fed5710b0930e464 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 19:21:13 +0200 Subject: [PATCH 389/484] Use img-thumb css --- htdocs/core/lib/usergroups.lib.php | 2 +- htdocs/core/lib/website2.lib.php | 2 +- htdocs/theme/eldy/global.inc.php | 6 ++++++ htdocs/theme/eldy/theme_vars.inc.php | 2 +- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/htdocs/core/lib/usergroups.lib.php b/htdocs/core/lib/usergroups.lib.php index 66698be76cc..be5871bf6e3 100644 --- a/htdocs/core/lib/usergroups.lib.php +++ b/htdocs/core/lib/usergroups.lib.php @@ -397,7 +397,7 @@ function showSkins($fuser, $edit = 0, $foruserprofile = false) print ''; if ($subdir == $conf->global->MAIN_THEME) $title=$langs->trans("ThemeCurrentlyActive"); else $title=$langs->trans("ShowPreview"); - print ''.$title.''; + print ''.$title.''; print '
    '; if ($subdir == $selected_theme) { diff --git a/htdocs/core/lib/website2.lib.php b/htdocs/core/lib/website2.lib.php index 9b2abe22904..ba2505cc15a 100644 --- a/htdocs/core/lib/website2.lib.php +++ b/htdocs/core/lib/website2.lib.php @@ -433,7 +433,7 @@ function showWebsiteTemplates(Website $website) if (! empty($urladvanced)) $ret.=''; else $ret.=''; print $ret; - print ''.$title.''; + print ''.$title.''; print ''; print '
    '; diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index 2eb5a4d17e9..353c14041f4 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -789,6 +789,12 @@ table[summary="list_of_modules"] .fa-cog { min-width: 100px; } +.img-skinthumb { + width: 160px; + height: 120px; +} + + /* ============================================================================== */ /* Styles to hide objects */ /* ============================================================================== */ diff --git a/htdocs/theme/eldy/theme_vars.inc.php b/htdocs/theme/eldy/theme_vars.inc.php index f0f74cc1e44..37569ebcd6c 100644 --- a/htdocs/theme/eldy/theme_vars.inc.php +++ b/htdocs/theme/eldy/theme_vars.inc.php @@ -67,7 +67,7 @@ $colorbacklinepairhover='230,237,244'; // line hover $colorbacklinepairchecked='230,237,244'; // line checked $colorbacklinebreak='233,228,230'; // line break $colorbackbody='255,255,255'; -$colortexttitlenotab='110,80,20'; +$colortexttitlenotab='140,80,10'; // 140,80,10 or 10,140,80 $colortexttitle='0,0,0'; $colortext='0,0,0'; $colortextlink='10, 20, 110'; From 502d154cea7fd7c85415463762fca7ec7ad304b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Mon, 14 Oct 2019 20:01:35 +0200 Subject: [PATCH 390/484] Update check_notifications.php --- htdocs/core/ajax/check_notifications.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/htdocs/core/ajax/check_notifications.php b/htdocs/core/ajax/check_notifications.php index dd994823a4b..02e304b3d44 100644 --- a/htdocs/core/ajax/check_notifications.php +++ b/htdocs/core/ajax/check_notifications.php @@ -1,6 +1,7 @@ * Copyright (C) 2017 Juanjo Menent + * Copyright (C) 2019 Frédéric France * * 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 @@ -16,6 +17,7 @@ * along with this program. If not, see . */ +if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1'); if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1'); // Disables token renewal if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); From 45b3d623bbe90e57252377a6f6efc4404bf33a8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Mon, 14 Oct 2019 20:30:31 +0200 Subject: [PATCH 391/484] Update list.php --- htdocs/fourn/facture/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/fourn/facture/list.php b/htdocs/fourn/facture/list.php index 8985ee33de2..1da06b03d63 100644 --- a/htdocs/fourn/facture/list.php +++ b/htdocs/fourn/facture/list.php @@ -805,7 +805,7 @@ if ($resql) if (! empty($arrayfields['country.code_iso']['checked'])) print_liste_field_titre($arrayfields['country.code_iso']['label'],$_SERVER["PHP_SELF"],"country.code_iso","",$param,'align="center"',$sortfield,$sortorder); if (! empty($arrayfields['typent.code']['checked'])) print_liste_field_titre($arrayfields['typent.code']['label'],$_SERVER["PHP_SELF"],"typent.code","",$param,'align="center"',$sortfield,$sortorder); if (! empty($arrayfields['f.fk_mode_reglement']['checked'])) print_liste_field_titre($arrayfields['f.fk_mode_reglement']['label'],$_SERVER["PHP_SELF"],"f.fk_mode_reglement","",$param,"",$sortfield,$sortorder); - if (! empty($arrayfields['f.total_ht']['checked'])) print_liste_field_titre($arrayfields['f.total_ht']['label'],$_SERVER['PHP_SELF'],'f.total','',$param,'align="right"',$sortfield,$sortorder); + if (! empty($arrayfields['f.total_ht']['checked'])) print_liste_field_titre($arrayfields['f.total_ht']['label'],$_SERVER['PHP_SELF'],'f.total_ht','',$param,'align="right"',$sortfield,$sortorder); if (! empty($arrayfields['f.total_vat']['checked'])) print_liste_field_titre($arrayfields['f.total_vat']['label'],$_SERVER['PHP_SELF'],'f.tva','',$param,'align="right"',$sortfield,$sortorder); if (! empty($arrayfields['f.total_localtax1']['checked'])) print_liste_field_titre($arrayfields['f.total_localtax1']['label'],$_SERVER['PHP_SELF'],'f.localtax1','',$param,'align="right"',$sortfield,$sortorder); if (! empty($arrayfields['f.total_localtax2']['checked'])) print_liste_field_titre($arrayfields['f.total_localtax2']['label'],$_SERVER['PHP_SELF'],'f.localtax2','',$param,'align="right"',$sortfield,$sortorder); From 056f7f826bfaad2048597b4a785467176fcee0d9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 20:41:28 +0200 Subject: [PATCH 392/484] Clean code --- htdocs/modulebuilder/template/myobject_card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/modulebuilder/template/myobject_card.php b/htdocs/modulebuilder/template/myobject_card.php index 72bc424c53c..132bf158ac8 100644 --- a/htdocs/modulebuilder/template/myobject_card.php +++ b/htdocs/modulebuilder/template/myobject_card.php @@ -446,7 +446,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Clone if (! empty($user->rights->mymodule->write)) { - print ''; + print '' . $langs->trans("ToClone") . ''."\n"; } /* From 5a5599754075cdff0d484c9f43566ce3e89690d6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 20:53:18 +0200 Subject: [PATCH 393/484] Update pdf_eratosthene.modules.php --- htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php b/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php index 9688d160303..d3f7f3016a0 100644 --- a/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php @@ -701,7 +701,7 @@ class pdf_eratosthene extends ModelePDFCommandes $reshook=$hookmanager->executeHooks('printPDFline', $parameters, $this); // Note that $object may have been modified by hook - // Collection of totals by value of vat in $this->vat["rate"] = total_tva + // Collection of totals by value of vat in $this->tva["rate"] = total_tva if ($conf->multicurrency->enabled && $object->multicurrency_tx != 1) $tvaligne=$object->lines[$i]->multicurrency_total_tva; else $tvaligne=$object->lines[$i]->total_tva; From 3866ac60363a90376dfa6e4e906310888054bbcc Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 21:18:22 +0200 Subject: [PATCH 394/484] Update document.php --- htdocs/societe/document.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/societe/document.php b/htdocs/societe/document.php index 5ea892f0670..971944c4f30 100644 --- a/htdocs/societe/document.php +++ b/htdocs/societe/document.php @@ -56,8 +56,8 @@ $offset = $conf->liste_limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; -if (isset($conf->global->MAIN_DOC_SORT_FIELD)){$sortfield=$conf->global->MAIN_DOC_SORT_FIELD;} -if (isset($conf->global->MAIN_DOC_SORT_ORDER)){$sortorder=$conf->global->MAIN_DOC_SORT_ORDER;} +if (! empty($conf->global->MAIN_DOC_SORT_FIELD)) { $sortfield=$conf->global->MAIN_DOC_SORT_FIELD; } +if (! empty($conf->global->MAIN_DOC_SORT_ORDER)) { $sortorder=$conf->global->MAIN_DOC_SORT_ORDER; } if (! $sortorder) $sortorder="ASC"; if (! $sortfield) $sortfield="position_name"; From c8d3aea18ae84e43d8030224d181ad53baf0a8c3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 21:20:17 +0200 Subject: [PATCH 395/484] Update document.php --- htdocs/commande/document.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/commande/document.php b/htdocs/commande/document.php index 8a40ad83d25..515e14095bd 100644 --- a/htdocs/commande/document.php +++ b/htdocs/commande/document.php @@ -60,8 +60,8 @@ $offset = $conf->liste_limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; -if (isset($conf->global->MAIN_DOC_SORT_FIELD)){$sortfield=$conf->global->MAIN_DOC_SORT_FIELD;} -if (isset($conf->global->MAIN_DOC_SORT_ORDER)){$sortorder=$conf->global->MAIN_DOC_SORT_ORDER;} +if (! empty($conf->global->MAIN_DOC_SORT_FIELD)) { $sortfield=$conf->global->MAIN_DOC_SORT_FIELD; } +if (! empty($conf->global->MAIN_DOC_SORT_ORDER)) { $sortorder=$conf->global->MAIN_DOC_SORT_ORDER; } if (! $sortorder) $sortorder="ASC"; if (! $sortfield) $sortfield="name"; From 15d4a185996d3e29a7b5765a0b86121cea6513b6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 21:21:04 +0200 Subject: [PATCH 396/484] Update document.php --- htdocs/projet/document.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/projet/document.php b/htdocs/projet/document.php index b2065029b72..10c7a140df7 100644 --- a/htdocs/projet/document.php +++ b/htdocs/projet/document.php @@ -63,8 +63,8 @@ $offset = $conf->liste_limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; -if (isset($conf->global->MAIN_DOC_SORT_FIELD)){$sortfield=$conf->global->MAIN_DOC_SORT_FIELD;} -if (isset($conf->global->MAIN_DOC_SORT_ORDER)){$sortorder=$conf->global->MAIN_DOC_SORT_ORDER;} +if (! empty($conf->global->MAIN_DOC_SORT_FIELD)) { $sortfield=$conf->global->MAIN_DOC_SORT_FIELD; } +if (! empty($conf->global->MAIN_DOC_SORT_ORDER)) { $sortorder=$conf->global->MAIN_DOC_SORT_ORDER; } if (! $sortorder) $sortorder="ASC"; if (! $sortfield) $sortfield="name"; From e5e94f5e7a0c938f3900b58e3e77214586d3aaa3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 21:23:08 +0200 Subject: [PATCH 397/484] Update document.php --- htdocs/contact/document.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/contact/document.php b/htdocs/contact/document.php index b081582337e..ad8bbb68e5f 100644 --- a/htdocs/contact/document.php +++ b/htdocs/contact/document.php @@ -63,8 +63,8 @@ $offset = $conf->liste_limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; - if (isset($conf->global->MAIN_DOC_SORT_FIELD)){$sortfield=$conf->global->MAIN_DOC_SORT_FIELD;} - if (isset($conf->global->MAIN_DOC_SORT_ORDER)){$sortorder=$conf->global->MAIN_DOC_SORT_ORDER;} + if (! empty($conf->global->MAIN_DOC_SORT_FIELD)) { $sortfield=$conf->global->MAIN_DOC_SORT_FIELD; } + if (! empty($conf->global->MAIN_DOC_SORT_ORDER)) { $sortorder=$conf->global->MAIN_DOC_SORT_ORDER; } if (! $sortorder) $sortorder="ASC"; if (! $sortfield) $sortfield="name"; From 176436ec341665648a8d75f07d5a7c674086ca2f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 21:23:52 +0200 Subject: [PATCH 398/484] Update document.php --- htdocs/comm/propal/document.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/comm/propal/document.php b/htdocs/comm/propal/document.php index 8e3bf45bf68..eca5ce52fa7 100644 --- a/htdocs/comm/propal/document.php +++ b/htdocs/comm/propal/document.php @@ -61,8 +61,8 @@ $offset = $conf->liste_limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; -if (isset($conf->global->MAIN_DOC_SORT_FIELD)){$sortfield=$conf->global->MAIN_DOC_SORT_FIELD;} -if (isset($conf->global->MAIN_DOC_SORT_ORDER)){$sortorder=$conf->global->MAIN_DOC_SORT_ORDER;} +if (! empty($conf->global->MAIN_DOC_SORT_FIELD)) { $sortfield=$conf->global->MAIN_DOC_SORT_FIELD; } +if (! empty($conf->global->MAIN_DOC_SORT_ORDER)) { $sortorder=$conf->global->MAIN_DOC_SORT_ORDER; } if (! $sortorder) $sortorder="ASC"; if (! $sortfield) $sortfield="name"; From 7ce5ddbf025a2bb6e7f895929348105d20fbdafc Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Mon, 14 Oct 2019 21:25:43 +0200 Subject: [PATCH 399/484] Internationalization --- htdocs/core/modules/contract/doc/pdf_strato.modules.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/core/modules/contract/doc/pdf_strato.modules.php b/htdocs/core/modules/contract/doc/pdf_strato.modules.php index d2dd1f56218..badf7343295 100644 --- a/htdocs/core/modules/contract/doc/pdf_strato.modules.php +++ b/htdocs/core/modules/contract/doc/pdf_strato.modules.php @@ -269,7 +269,7 @@ class pdf_strato extends ModelePDFContract $tab_top = 90; $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)?42:10); - // Affiche notes + // Display notes if (! empty($object->note_public)) { $tab_top -= 2; @@ -411,7 +411,7 @@ class pdf_strato extends ModelePDFContract $pdf->setPage($pageposafter); $curY = $tab_top_newpage; } - $pdf->SetFont('', '', $default_font_size - 1); // On repositionne la police par defaut + $pdf->SetFont('', '', $default_font_size - 1); // We reposition the default font // Detect if some page were added automatically and output _tableau for past pages while ($pagenb < $pageposafter) @@ -613,7 +613,7 @@ class pdf_strato extends ModelePDFContract pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', $conf->global->CONTRACT_DRAFT_WATERMARK); } - //Prepare la suite + //Prepare next $pdf->SetTextColor(0, 0, 60); $pdf->SetFont('', 'B', $default_font_size + 3); @@ -727,7 +727,7 @@ class pdf_strato extends ModelePDFContract $this->recipient = $object->thirdparty; //Recipient name - // On peut utiliser le nom de la societe du contact + // You can use the name of the contact company if ($usecontact && !empty($conf->global->MAIN_USE_COMPANY_NAME_OF_CONTACT)) { $thirdparty = $object->contact; } else { From b88059433c18706f26bd1f9d0ed5a878c4bc1cf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Mon, 14 Oct 2019 21:36:38 +0200 Subject: [PATCH 400/484] Update list.php --- htdocs/fourn/commande/list.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/htdocs/fourn/commande/list.php b/htdocs/fourn/commande/list.php index 6410f2c9e57..5f0ca9f9be1 100644 --- a/htdocs/fourn/commande/list.php +++ b/htdocs/fourn/commande/list.php @@ -349,7 +349,7 @@ if (empty($reshook)) { $fk_parent_line = 0; } - $result = $object->addline( + $result = $object->addline( $desc, $lines[$i]->subprice, $lines[$i]->qty, @@ -492,7 +492,9 @@ $sql.= ' cf.date_creation as date_creation, cf.tms as date_update,'; $sql.= " p.rowid as project_id, p.ref as project_ref, p.title as project_title,"; $sql.= " u.firstname, u.lastname, u.photo, u.login, u.email as user_email"; // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); +} // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook From 6761e1ef3334dcddf425d81076dc4f5bbfa5cbed Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Mon, 14 Oct 2019 21:38:21 +0200 Subject: [PATCH 401/484] Internationalization --- .../expedition/doc/pdf_espadon.modules.php | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php b/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php index 8d29edec7d8..40ae16aff59 100644 --- a/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php @@ -218,7 +218,7 @@ class pdf_espadon extends ModelePdfExpedition if ($conf->expedition->dir_output) { - // Definition de $dir et $file + // Definition of $dir and $file if ($object->specimen) { $dir = $conf->expedition->dir_output."/sending"; @@ -390,10 +390,10 @@ class pdf_espadon extends ModelePdfExpedition } - // Use new auto collum system + // Use new auto column system $this->prepareArrayColumnField($object, $outputlangs, $hidedetails, $hidedesc, $hideref); - // Simulation de tableau pour connaitre la hauteur de la ligne de titre + // Table simulation to know the height of the title line $pdf->startTransaction(); $this->pdfTabTitles($pdf, $tab_top, $tab_height, $outputlangs, $hidetop); $pdf->rollbackTransaction(true); @@ -606,10 +606,10 @@ class pdf_espadon extends ModelePdfExpedition $bottomlasttab=$this->page_hauteur - $heightforinfotot - $heightforfreetext - $heightforfooter + 1; } - // Affiche zone totaux + // Display total area $posy=$this->_tableau_tot($pdf, $object, 0, $bottomlasttab, $outputlangs); - // Pied de page + // Pagefoot $this->_pagefoot($pdf, $object, $outputlangs); if (method_exists($pdf, 'AliasNbPages')) $pdf->AliasNbPages(); @@ -653,12 +653,12 @@ class pdf_espadon extends ModelePdfExpedition /** * Show total to pay * - * @param PDF $pdf Object PDF + * @param PDF $pdf Object PDF * @param Facture $object Object invoice - * @param int $deja_regle Montant deja regle - * @param int $posy Position depart + * @param int $deja_regle Amount already paid + * @param int $posy Start Position * @param Translate $outputlangs Objet langs - * @return int Position pour suite + * @return int Position for suite */ protected function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs) { @@ -673,7 +673,7 @@ class pdf_espadon extends ModelePdfExpedition $tab2_hl = 4; $pdf->SetFont('', 'B', $default_font_size - 1); - // Tableau total + // Total table $col1x = $this->posxweightvol-50; $col2x = $this->posxweightvol; /*if ($this->page_largeur < 210) // To work with US executive format { @@ -824,7 +824,7 @@ class pdf_espadon extends ModelePdfExpedition pdf_watermark($pdf, $outputlangs, $this->page_hauteur, $this->page_largeur, 'mm', $conf->global->SHIPPING_DRAFT_WATERMARK); } - //Prepare la suite + //Prepare next $pdf->SetTextColor(0, 0, 60); $pdf->SetFont('', 'B', $default_font_size + 3); @@ -1006,7 +1006,7 @@ class pdf_espadon extends ModelePdfExpedition } //Recipient name - // On peut utiliser le nom de la societe du contact + // You can use the name of the contact company if ($usecontact && !empty($conf->global->MAIN_USE_COMPANY_NAME_OF_CONTACT)) { $thirdparty = $object->contact; } else { From 30099a821b471cbbcc91ef587fea43c46a43d212 Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Mon, 14 Oct 2019 19:39:00 +0000 Subject: [PATCH 402/484] Fixing style errors. --- htdocs/core/modules/expedition/doc/pdf_espadon.modules.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php b/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php index 40ae16aff59..ddc07db0380 100644 --- a/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php @@ -656,7 +656,7 @@ class pdf_espadon extends ModelePdfExpedition * @param PDF $pdf Object PDF * @param Facture $object Object invoice * @param int $deja_regle Amount already paid - * @param int $posy Start Position + * @param int $posy Start Position * @param Translate $outputlangs Objet langs * @return int Position for suite */ From 234dfec351344e7234175d54274edc4cc8fcda0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Mon, 14 Oct 2019 21:53:25 +0200 Subject: [PATCH 403/484] add missing td --- htdocs/product/stock/product.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/product/stock/product.php b/htdocs/product/stock/product.php index b91c5d9c5ec..345151138e0 100644 --- a/htdocs/product/stock/product.php +++ b/htdocs/product/stock/product.php @@ -1073,6 +1073,7 @@ if (! $variants) { print '
    '.$langs->trans("Total").''.$stock_total.'
    '; // maring bottom must be same than into print_barre_list + $return.= '
    '; // maring bottom must be same than into print_barre_list if ($picto) $return.= ''; $return.= ''; } - if (! empty($arrayfields['a.datep2']['checked'])) { + if (! empty($arrayfields['a.datep2']['checked'])) { print ''; @@ -548,6 +548,7 @@ if ($resql) $actionstatic->type_label=$obj->type_label; $actionstatic->type_picto=$obj->type_picto; $actionstatic->label=$obj->label; + $actionstatic->location = $obj->location; $actionstatic->note=dol_htmlentitiesbr($obj->note); print ''; @@ -609,11 +610,11 @@ if ($resql) print $form->textwithtooltip(dol_trunc($text, 40), $actionstatic->note); print ''; } - + $formatToUse = $obj->fulldayevent?'day':'dayhour'; // Start date if (! empty($arrayfields['a.datep']['checked'])) { print ''; } From 12f1962085501bd3f735ae56d0558fba3bc306ad Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Oct 2019 00:40:42 +0200 Subject: [PATCH 426/484] Better error message when module file is corrupted --- htdocs/admin/modules.php | 2 +- htdocs/langs/en_US/errors.lang | 1 + htdocs/mrp/class/mo.class.php | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php index 787f3ded291..f26e657679a 100644 --- a/htdocs/admin/modules.php +++ b/htdocs/admin/modules.php @@ -190,7 +190,7 @@ if ($action=='install') //var_dump($modulenamedir); if (! dol_is_dir($modulenamedir)) { - setEventMessages($langs->trans("ErrorModuleFileSeemsToHaveAWrongFormat").'
    Dir not found: '.$conf->admin->dir_temp.'/'.$tmpdir.'/'.$modulename.'
    '.$conf->admin->dir_temp.'/'.$tmpdir.'/htdocs/'.$modulename, null, 'errors'); + setEventMessages($langs->trans("ErrorModuleFileSeemsToHaveAWrongFormat").'
    '.$langs->trans("ErrorModuleFileSeemsToHaveAWrongFormat2", $modulename, 'htdocs/'.$modulename), null, 'errors'); $error++; } } diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang index f8c3c1a1aee..0b4b9b61746 100644 --- a/htdocs/langs/en_US/errors.lang +++ b/htdocs/langs/en_US/errors.lang @@ -196,6 +196,7 @@ ErrorPhpMailDelivery=Check that you don't use a too high number of recipients an ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. +ErrorModuleFileSeemsToHaveAWrongFormat2=At least one mandatory directory must exists into zip of module: %s or %s ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. diff --git a/htdocs/mrp/class/mo.class.php b/htdocs/mrp/class/mo.class.php index a459a582bba..d485ec0ef16 100644 --- a/htdocs/mrp/class/mo.class.php +++ b/htdocs/mrp/class/mo.class.php @@ -1,3 +1,4 @@ + * Copyright (C) ---Put here your own copyright and developer email--- From b0355dd1498368d293cf1a61cb5ee1e380c06dbb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Oct 2019 01:20:58 +0200 Subject: [PATCH 427/484] Module BOM have now status DRAFT, VALIDATED, DISABLED --- htdocs/bom/bom_card.php | 143 ++++++++++++++++++++++- htdocs/bom/class/bom.class.php | 103 +++++++++------- htdocs/commande/class/commande.class.php | 2 +- htdocs/core/class/commonobject.class.php | 53 ++++++++- htdocs/langs/en_US/mrp.lang | 5 +- 5 files changed, 252 insertions(+), 54 deletions(-) diff --git a/htdocs/bom/bom_card.php b/htdocs/bom/bom_card.php index 5f3ec89da61..899fcdbe0e6 100644 --- a/htdocs/bom/bom_card.php +++ b/htdocs/bom/bom_card.php @@ -206,6 +206,62 @@ if (empty($reshook)) setEventMessages($object->error, $object->errors, 'errors'); } } + + if ($action == 'confirm_close' && $confirm == 'yes' && $permissionedit) + { + $result = $object->cancel($user); + if ($result >= 0) + { + // Define output language + if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + { + $outputlangs = $langs; + $newlang = ''; + if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) $newlang = GETPOST('lang_id', 'aZ09'); + if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; + if (! empty($newlang)) { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + } + $model=$object->modelpdf; + $ret = $object->fetch($id); // Reload to get new records + + $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); + } + } + else + { + setEventMessages($object->error, $object->errors, 'errors'); + } + } + + if ($action == 'confirm_reopen' && $confirm == 'yes' && $permissionedit) + { + $result = $object->reopen($user); + if ($result >= 0) + { + // Define output language + if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + { + $outputlangs = $langs; + $newlang = ''; + if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) $newlang = GETPOST('lang_id', 'aZ09'); + if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; + if (! empty($newlang)) { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + } + $model=$object->modelpdf; + $ret = $object->fetch($id); // Reload to get new records + + $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); + } + } + else + { + setEventMessages($object->error, $object->errors, 'errors'); + } + } } @@ -339,13 +395,13 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea } $text = $langs->trans('ConfirmValidateBom', $numref); - if (! empty($conf->notification->enabled)) + /*if (! empty($conf->notification->enabled)) { require_once DOL_DOCUMENT_ROOT . '/core/class/notify.class.php'; $notify = new Notify($db); $text .= '
    '; $text .= $notify->confirmMessage('BOM_VALIDATE', $object->socid, $object); - } + }*/ $formquestion=array(); if (! empty($conf->bom->enabled)) @@ -362,7 +418,67 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea ); } - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('ValidateOrder'), $text, 'confirm_validate', $formquestion, 0, 1, 220); + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('Validate'), $text, 'confirm_validate', $formquestion, 0, 1, 220); + } + + // Confirmation of closing + if ($action == 'close') + { + $text = $langs->trans('ConfirmCloseBom', $object->ref); + /*if (! empty($conf->notification->enabled)) + { + require_once DOL_DOCUMENT_ROOT . '/core/class/notify.class.php'; + $notify = new Notify($db); + $text .= '
    '; + $text .= $notify->confirmMessage('BOM_CLOSE', $object->socid, $object); + }*/ + + $formquestion=array(); + if (! empty($conf->bom->enabled)) + { + $langs->load("mrp"); + require_once DOL_DOCUMENT_ROOT . '/product/class/html.formproduct.class.php'; + $formproduct = new FormProduct($db); + $forcecombo=0; + if ($conf->browser->name == 'ie') $forcecombo = 1; // There is a bug in IE10 that make combo inside popup crazy + $formquestion = array( + // 'text' => $langs->trans("ConfirmClone"), + // array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1), + // array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1), + ); + } + + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('Close'), $text, 'confirm_close', $formquestion, 0, 1, 220); + } + + // Confirmation of reopen + if ($action == 'reopen') + { + $text = $langs->trans('ConfirmReopenBom', $object->ref); + /*if (! empty($conf->notification->enabled)) + { + require_once DOL_DOCUMENT_ROOT . '/core/class/notify.class.php'; + $notify = new Notify($db); + $text .= '
    '; + $text .= $notify->confirmMessage('BOM_CLOSE', $object->socid, $object); + }*/ + + $formquestion=array(); + if (! empty($conf->bom->enabled)) + { + $langs->load("mrp"); + require_once DOL_DOCUMENT_ROOT . '/product/class/html.formproduct.class.php'; + $formproduct = new FormProduct($db); + $forcecombo=0; + if ($conf->browser->name == 'ie') $forcecombo = 1; // There is a bug in IE10 that make combo inside popup crazy + $formquestion = array( + // 'text' => $langs->trans("ConfirmClone"), + // array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1), + // array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1), + ); + } + + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('ReOpen'), $text, 'confirm_reopen', $formquestion, 0, 1, 220); } // Clone confirmation @@ -546,20 +662,35 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print ''.$langs->trans('Modify').''."\n"; } + // Validate if ($user->rights->bom->write && $object->status == BOM::STATUS_DRAFT) { - print ''; + if (is_array($object->lines) && count($object->lines) > 0) + { + print '' . $langs->trans("Validate") . ''; + } + else + { + print '' . $langs->trans("Validate") . ''; + } } + // Close / Cancel if ($user->rights->bom->write && $object->status == BOM::STATUS_VALIDATED) { - print ''; + print '' . $langs->trans("Disable") . ''; + } + + // Re-open + if ($user->rights->bom->write && $object->status == BOM::STATUS_CANCELED) + { + print '' . $langs->trans("ReOpen") . ''; } // Clone if ($user->rights->bom->write) { - print ''; + print '' . $langs->trans("ToClone") . ''; } /* diff --git a/htdocs/bom/class/bom.class.php b/htdocs/bom/class/bom.class.php index c8855c9cc03..3968c6d2813 100644 --- a/htdocs/bom/class/bom.class.php +++ b/htdocs/bom/class/bom.class.php @@ -640,62 +640,75 @@ class BOM extends CommonObject * Set draft status * * @param User $user Object user that modify + * @param int $notrigger 1=Does not execute triggers, 0=Execute triggers * @return int <0 if KO, >0 if OK */ - public function setDraft($user) + public function setDraft($user, $notrigger = 0) { - global $conf, $langs; + // Protection + if ($this->status <= self::STATUS_DRAFT) + { + return 0; + } - $error=0; + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bom->write)) + || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bom->bom_advance->validate)))) + { + $this->error='Permission denied'; + return -1; + }*/ - // Protection - if ($this->status <= self::STATUS_DRAFT) - { - return 0; - } + return $this->setStatusCommon($user, self::STATUS_DRAFT, $notrigger, 'BOM_UNVALIDATE'); + } - /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bom->write)) - || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bom->bom_advance->validate)))) - { - $this->error='Permission denied'; - return -1; - }*/ + /** + * Set cancel status + * + * @param User $user Object user that modify + * @param int $notrigger 1=Does not execute triggers, 0=Execute triggers + * @return int <0 if KO, 0=Nothing done, >0 if OK + */ + public function cancel($user, $notrigger = 0) + { + // Protection + if ($this->status != self::STATUS_VALIDATED) + { + return 0; + } - $this->db->begin(); + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bom->write)) + || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bom->bom_advance->validate)))) + { + $this->error='Permission denied'; + return -1; + }*/ - $sql = "UPDATE ".MAIN_DB_PREFIX."bom"; - $sql.= " SET status = ".self::STATUS_DRAFT; - $sql.= " WHERE rowid = ".$this->id; + return $this->setStatusCommon($user, self::STATUS_CANCELED, 'BOM_CLOSE'); + } - dol_syslog(get_class($this)."::setDraft", LOG_DEBUG); - if ($this->db->query($sql)) - { - if (! $error) - { - $this->oldcopy= clone $this; - } + /** + * Set cancel status + * + * @param User $user Object user that modify + * @param int $notrigger 1=Does not execute triggers, 0=Execute triggers + * @return int <0 if KO, 0=Nothing done, >0 if OK + */ + public function reopen($user, $notrigger = 0) + { + // Protection + if ($this->status != self::STATUS_CANCELED) + { + return 0; + } - if (!$error) { - // Call trigger - $result=$this->call_trigger('BOM_UNVALIDATE', $user); - if ($result < 0) $error++; - } + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bom->write)) + || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->bom->bom_advance->validate)))) + { + $this->error='Permission denied'; + return -1; + }*/ - if (!$error) { - $this->status=self::STATUS_DRAFT; - $this->db->commit(); - return 1; - } else { - $this->db->rollback(); - return -1; - } - } - else - { - $this->error=$this->db->error(); - $this->db->rollback(); - return -1; - } + return $this->setStatusCommon($user, self::STATUS_VALIDATED, 'BOM_REOPEN'); } /** diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index 16d9dcdc3d8..66a15857a04 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -647,7 +647,7 @@ class Commande extends CommonOrder $now=dol_now(); - $sql = 'UPDATE '.MAIN_DB_PREFIX.'commande'; + $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element; $sql.= ' SET fk_statut = '.self::STATUS_CLOSED.','; $sql.= ' fk_user_cloture = '.$user->id.','; $sql.= " date_cloture = '".$this->db->idate($now)."'"; diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 484bb5fa4d4..d17d49e326e 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -7399,7 +7399,7 @@ abstract class CommonObject if (array_key_exists('fk_user_creat', $fieldvalues) && ! ($fieldvalues['fk_user_creat'] > 0)) $fieldvalues['fk_user_creat']=$user->id; unset($fieldvalues['rowid']); // The field 'rowid' is reserved field name for autoincrement field so we don't need it into insert. if (array_key_exists('ref', $fieldvalues)) $fieldvalues['ref']=dol_string_nospecial($fieldvalues['ref']); // If field is a ref,we sanitize data - + $keys=array(); $values = array(); foreach ($fieldvalues as $k => $v) { @@ -7857,6 +7857,57 @@ abstract class CommonObject } } + + /** + * Set draft status + * + * @param User $user Object user that modify + * @param int $status New status to set (often a constant like self::STATUS_XXX) + * @param int $notrigger 1=Does not execute triggers, 0=Execute triggers + * @param string $triggercode Trigger code to use + * @return int <0 if KO, >0 if OK + */ + public function setStatusCommon($user, $status, $notrigger = 0, $triggercode = '') + { + $error=0; + + $this->db->begin(); + + $sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element; + $sql.= " SET status = ".$status; + $sql.= " WHERE rowid = ".$this->id; + + if ($this->db->query($sql)) + { + if (! $error) + { + $this->oldcopy= clone $this; + } + + if (! $error && ! $notrigger) { + // Call trigger + $result=$this->call_trigger($triggercode, $user); + if ($result < 0) $error++; + } + + if (!$error) { + $this->status = $status; + $this->db->commit(); + return 1; + } else { + $this->db->rollback(); + return -1; + } + } + else + { + $this->error=$this->db->error(); + $this->db->rollback(); + return -1; + } + } + + /** * Initialise object with example values * Id must be 0 if object instance is a specimen diff --git a/htdocs/langs/en_US/mrp.lang b/htdocs/langs/en_US/mrp.lang index 9d8e85f889d..601fe792cd6 100644 --- a/htdocs/langs/en_US/mrp.lang +++ b/htdocs/langs/en_US/mrp.lang @@ -27,4 +27,7 @@ DateStartPlannedMo=Date start planned DateEndPlannedMo=Date end planned KeepEmptyForAsap=Empty means 'As Soon As Possible' EstimatedDuration=Estimated duration -EstimatedDurationDesc=Estimated duration to manufacture this product using this BOM \ No newline at end of file +EstimatedDurationDesc=Estimated duration to manufacture this product using this BOM +ConfirmValidateBom=Are you sure you want to validate this BOM (you will be able to use it to build new Manufacturing Orders) +ConfirmCloseBom=Are you sure you want to cancel this BOM (you won't be able to use it to build new Manufacturing Orders anymore) ? +ConfirmReopenBom=Are you sure you want to re-open this BOM (you will be able to use it to build new Manufacturing Orders) \ No newline at end of file From d3df04c5aa4b9cd6ca856715e695c30eb1e51a86 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Oct 2019 01:36:07 +0200 Subject: [PATCH 428/484] Mutualize code --- htdocs/bom/bom_card.php | 84 ------------------ htdocs/bom/class/bom.class.php | 9 +- htdocs/core/actions_addupdatedelete.inc.php | 88 ++++++++++++++++++- .../template/class/myobject.class.php | 76 ++++++++++++++++ 4 files changed, 168 insertions(+), 89 deletions(-) diff --git a/htdocs/bom/bom_card.php b/htdocs/bom/bom_card.php index 899fcdbe0e6..15ae8f3c21f 100644 --- a/htdocs/bom/bom_card.php +++ b/htdocs/bom/bom_card.php @@ -178,90 +178,6 @@ if (empty($reshook)) $action = ''; } } - - if ($action == 'confirm_validate' && $confirm == 'yes' && $permissionedit) - { - $result = $object->valid($user); - if ($result >= 0) - { - // Define output language - if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) - { - $outputlangs = $langs; - $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) $newlang = GETPOST('lang_id', 'aZ09'); - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; - if (! empty($newlang)) { - $outputlangs = new Translate("", $conf); - $outputlangs->setDefaultLang($newlang); - } - $model=$object->modelpdf; - $ret = $object->fetch($id); // Reload to get new records - - $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); - } - } - else - { - setEventMessages($object->error, $object->errors, 'errors'); - } - } - - if ($action == 'confirm_close' && $confirm == 'yes' && $permissionedit) - { - $result = $object->cancel($user); - if ($result >= 0) - { - // Define output language - if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) - { - $outputlangs = $langs; - $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) $newlang = GETPOST('lang_id', 'aZ09'); - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; - if (! empty($newlang)) { - $outputlangs = new Translate("", $conf); - $outputlangs->setDefaultLang($newlang); - } - $model=$object->modelpdf; - $ret = $object->fetch($id); // Reload to get new records - - $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); - } - } - else - { - setEventMessages($object->error, $object->errors, 'errors'); - } - } - - if ($action == 'confirm_reopen' && $confirm == 'yes' && $permissionedit) - { - $result = $object->reopen($user); - if ($result >= 0) - { - // Define output language - if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) - { - $outputlangs = $langs; - $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) $newlang = GETPOST('lang_id', 'aZ09'); - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; - if (! empty($newlang)) { - $outputlangs = new Translate("", $conf); - $outputlangs->setDefaultLang($newlang); - } - $model=$object->modelpdf; - $ret = $object->fetch($id); // Reload to get new records - - $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); - } - } - else - { - setEventMessages($object->error, $object->errors, 'errors'); - } - } } diff --git a/htdocs/bom/class/bom.class.php b/htdocs/bom/class/bom.class.php index 3968c6d2813..284191d0672 100644 --- a/htdocs/bom/class/bom.class.php +++ b/htdocs/bom/class/bom.class.php @@ -513,7 +513,7 @@ class BOM extends CommonObject * @param int $notrigger 1=Does not execute triggers, 0= execute triggers * @return int <=0 if OK, 0=Nothing done, >0 if KO */ - public function valid($user, $notrigger = 0) + public function validate($user, $notrigger = 0) { global $conf, $langs; @@ -553,7 +553,7 @@ class BOM extends CommonObject $this->newref = $num; // Validate - $sql = "UPDATE ".MAIN_DB_PREFIX."bom_bom"; + $sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element; $sql.= " SET ref = '".$this->db->escape($num)."',"; $sql.= " status = ".self::STATUS_VALIDATED.","; $sql.= " date_valid='".$this->db->idate($now)."',"; @@ -683,7 +683,7 @@ class BOM extends CommonObject return -1; }*/ - return $this->setStatusCommon($user, self::STATUS_CANCELED, 'BOM_CLOSE'); + return $this->setStatusCommon($user, self::STATUS_CANCELED, $notrigger, 'BOM_CLOSE'); } /** @@ -708,9 +708,10 @@ class BOM extends CommonObject return -1; }*/ - return $this->setStatusCommon($user, self::STATUS_VALIDATED, 'BOM_REOPEN'); + return $this->setStatusCommon($user, self::STATUS_VALIDATED, $notrigger, 'BOM_REOPEN'); } + /** * Return a link to the object card (with optionaly the picto) * diff --git a/htdocs/core/actions_addupdatedelete.inc.php b/htdocs/core/actions_addupdatedelete.inc.php index 66428eea974..abe80b5a832 100644 --- a/htdocs/core/actions_addupdatedelete.inc.php +++ b/htdocs/core/actions_addupdatedelete.inc.php @@ -18,7 +18,7 @@ /** * \file htdocs/core/actions_addupdatedelete.inc.php - * \brief Code for common actions cancel / add / update / delete / clone + * \brief Code for common actions cancel / add / update / update_extras / delete / deleteline / validate / cancel / reopen / clone */ @@ -231,6 +231,92 @@ if ($action == 'confirm_deleteline' && $confirm == 'yes' && ! empty($permissiont } } +// Action validate object +if ($action == 'confirm_validate' && $confirm == 'yes' && $permissionedit) +{ + $result = $object->valid($user); + if ($result >= 0) + { + // Define output language + if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + { + $outputlangs = $langs; + $newlang = ''; + if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) $newlang = GETPOST('lang_id', 'aZ09'); + if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; + if (! empty($newlang)) { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + } + $model=$object->modelpdf; + $ret = $object->fetch($id); // Reload to get new records + + $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); + } + } + else + { + setEventMessages($object->error, $object->errors, 'errors'); + } +} + +// Action close object +if ($action == 'confirm_close' && $confirm == 'yes' && $permissionedit) +{ + $result = $object->cancel($user); + if ($result >= 0) + { + // Define output language + if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + { + $outputlangs = $langs; + $newlang = ''; + if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) $newlang = GETPOST('lang_id', 'aZ09'); + if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; + if (! empty($newlang)) { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + } + $model=$object->modelpdf; + $ret = $object->fetch($id); // Reload to get new records + + $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); + } + } + else + { + setEventMessages($object->error, $object->errors, 'errors'); + } +} + +// Action reopen object +if ($action == 'confirm_reopen' && $confirm == 'yes' && $permissionedit) +{ + $result = $object->reopen($user); + if ($result >= 0) + { + // Define output language + if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + { + $outputlangs = $langs; + $newlang = ''; + if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) $newlang = GETPOST('lang_id', 'aZ09'); + if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; + if (! empty($newlang)) { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + } + $model=$object->modelpdf; + $ret = $object->fetch($id); // Reload to get new records + + $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); + } + } + else + { + setEventMessages($object->error, $object->errors, 'errors'); + } +} // Action clone object if ($action == 'confirm_clone' && $confirm == 'yes' && ! empty($permissiontoadd)) diff --git a/htdocs/modulebuilder/template/class/myobject.class.php b/htdocs/modulebuilder/template/class/myobject.class.php index 371c4498da8..5c17723e4dd 100644 --- a/htdocs/modulebuilder/template/class/myobject.class.php +++ b/htdocs/modulebuilder/template/class/myobject.class.php @@ -489,6 +489,82 @@ class MyObject extends CommonObject return $this->deleteLineCommon($user, $idline, $notrigger); } + + /** + * Set draft status + * + * @param User $user Object user that modify + * @param int $notrigger 1=Does not execute triggers, 0=Execute triggers + * @return int <0 if KO, >0 if OK + */ + public function setDraft($user, $notrigger = 0) + { + // Protection + if ($this->status <= self::STATUS_DRAFT) + { + return 0; + } + + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->mymodule->write)) + || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->mymodule->mymodule_advance->validate)))) + { + $this->error='Permission denied'; + return -1; + }*/ + + return $this->setStatusCommon($user, self::STATUS_DRAFT, $notrigger, 'BOM_UNVALIDATE'); + } + + /** + * Set cancel status + * + * @param User $user Object user that modify + * @param int $notrigger 1=Does not execute triggers, 0=Execute triggers + * @return int <0 if KO, 0=Nothing done, >0 if OK + */ + public function cancel($user, $notrigger = 0) + { + // Protection + if ($this->status != self::STATUS_VALIDATED) + { + return 0; + } + + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->mymodule->write)) + || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->mymodule->mymodule_advance->validate)))) + { + $this->error='Permission denied'; + return -1; + }*/ + + return $this->setStatusCommon($user, self::STATUS_CANCELED, $notrigger, 'BOM_CLOSE'); + } + + /** + * Set back to validated status + * + * @param User $user Object user that modify + * @param int $notrigger 1=Does not execute triggers, 0=Execute triggers + * @return int <0 if KO, 0=Nothing done, >0 if OK + */ + public function reopen($user, $notrigger = 0) + { + // Protection + if ($this->status != self::STATUS_CANCELED) + { + return 0; + } + + /*if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->mymodule->write)) + || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->mymodule->mymodule_advance->validate)))) + { + $this->error='Permission denied'; + return -1; + }*/ + + return $this->setStatusCommon($user, self::STATUS_VALIDATED, $notrigger, 'BOM_REOPEN'); + } + /** * Return a link to the object card (with optionaly the picto) * From ffc48209702ed36c9effb9c30764ed925144cf0b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Oct 2019 02:05:23 +0200 Subject: [PATCH 429/484] Fix counter of BOM --- htdocs/bom/bom_card.php | 4 ++-- htdocs/bom/class/bom.class.php | 6 +++--- htdocs/core/actions_addupdatedelete.inc.php | 2 +- htdocs/core/modules/bom/mod_bom_advanced.php | 6 +++--- htdocs/core/modules/bom/mod_bom_standard.php | 10 +++++----- htdocs/langs/en_US/mrp.lang | 2 +- htdocs/modulebuilder/template/myobject_card.php | 2 +- 7 files changed, 16 insertions(+), 16 deletions(-) diff --git a/htdocs/bom/bom_card.php b/htdocs/bom/bom_card.php index 15ae8f3c21f..8e6551e92ea 100644 --- a/htdocs/bom/bom_card.php +++ b/htdocs/bom/bom_card.php @@ -97,8 +97,8 @@ if (empty($reshook)) $permissiontodelete = $user->rights->bom->delete || ($permissiontoadd && $object->status == 0); $backurlforlist = DOL_URL_ROOT.'/bom/bom_list.php'; if (empty($backtopage)) { - if (empty($id)) $backtopage = $backurlforlist; - else $backtopage = DOL_URL_ROOT.'/bom/bom_card.php?id='.$id; + if (empty($id) && $action != 'add' && $action != 'create') $backtopage = $backurlforlist; + else $backtopage = DOL_URL_ROOT.'/bom/bom_card.php?id='.($id > 0 ? $id : '__ID__'); } $triggermodname = 'BOM_MODIFY'; // Name of trigger action code to execute when we modify record diff --git a/htdocs/bom/class/bom.class.php b/htdocs/bom/class/bom.class.php index 284191d0672..d8e5387f075 100644 --- a/htdocs/bom/class/bom.class.php +++ b/htdocs/bom/class/bom.class.php @@ -524,7 +524,7 @@ class BOM extends CommonObject // Protection if ($this->statut == self::STATUS_VALIDATED) { - dol_syslog(get_class($this)."::valid action abandonned: already validated", LOG_WARNING); + dol_syslog(get_class($this)."::validate action abandonned: already validated", LOG_WARNING); return 0; } @@ -560,7 +560,7 @@ class BOM extends CommonObject $sql.= " fk_user_valid = ".$user->id; $sql.= " WHERE rowid = ".$this->id; - dol_syslog(get_class($this)."::valid()", LOG_DEBUG); + dol_syslog(get_class($this)."::validate()", LOG_DEBUG); $resql=$this->db->query($sql); if (! $resql) { @@ -597,7 +597,7 @@ class BOM extends CommonObject $dirdest = $conf->bom->dir_output.'/'.$newref; if (! $error && file_exists($dirsource)) { - dol_syslog(get_class($this)."::valid() rename dir ".$dirsource." into ".$dirdest); + dol_syslog(get_class($this)."::validate() rename dir ".$dirsource." into ".$dirdest); if (@rename($dirsource, $dirdest)) { diff --git a/htdocs/core/actions_addupdatedelete.inc.php b/htdocs/core/actions_addupdatedelete.inc.php index abe80b5a832..7082bc5e882 100644 --- a/htdocs/core/actions_addupdatedelete.inc.php +++ b/htdocs/core/actions_addupdatedelete.inc.php @@ -234,7 +234,7 @@ if ($action == 'confirm_deleteline' && $confirm == 'yes' && ! empty($permissiont // Action validate object if ($action == 'confirm_validate' && $confirm == 'yes' && $permissionedit) { - $result = $object->valid($user); + $result = $object->validate($user); if ($result >= 0) { // Define output language diff --git a/htdocs/core/modules/bom/mod_bom_advanced.php b/htdocs/core/modules/bom/mod_bom_advanced.php index be6bd9f095d..eed79c037fd 100644 --- a/htdocs/core/modules/bom/mod_bom_advanced.php +++ b/htdocs/core/modules/bom/mod_bom_advanced.php @@ -118,11 +118,11 @@ class mod_bom_advanced extends ModeleNumRefboms /** * Return next free value * - * @param Societe $objsoc Object thirdparty + * @param Product $objprod Object product * @param Object $object Object we need next value for * @return string Value if KO, <0 if KO */ - public function getNextValue($objsoc, $object) + public function getNextValue($objprod, $object) { global $db,$conf; @@ -139,7 +139,7 @@ class mod_bom_advanced extends ModeleNumRefboms $date = ($object->date_bom ? $object->date_bom : $object->date); - $numFinal=get_next_value($db, $mask, 'bom_bom', 'ref', '', $objsoc, $date); + $numFinal=get_next_value($db, $mask, 'bom_bom', 'ref', '', null, $date); return $numFinal; } diff --git a/htdocs/core/modules/bom/mod_bom_standard.php b/htdocs/core/modules/bom/mod_bom_standard.php index af7e173bbae..5eacb3289df 100644 --- a/htdocs/core/modules/bom/mod_bom_standard.php +++ b/htdocs/core/modules/bom/mod_bom_standard.php @@ -108,16 +108,16 @@ class mod_bom_standard extends ModeleNumRefboms /** * Return next free value * - * @param Societe $objsoc Object thirdparty + * @param Product $objprod Object product * @param Object $object Object we need next value for * @return string Value if KO, <0 if KO */ - public function getNextValue($objsoc, $object) + public function getNextValue($objprod, $object) { global $db,$conf; // D'abord on recupere la valeur max - $posindice=8; + $posindice=9; $sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max"; $sql.= " FROM ".MAIN_DB_PREFIX."bom_bom"; $sql.= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'"; @@ -137,9 +137,9 @@ class mod_bom_standard extends ModeleNumRefboms } //$date=time(); - $date=$object->date; + $date=$object->date_creation; $yymm = strftime("%y%m", $date); - +; if ($max >= (pow(10, 4) - 1)) $num=$max+1; // If counter > 9999, we do not format on 4 chars, we take number as it is else $num = sprintf("%04s", $max+1); diff --git a/htdocs/langs/en_US/mrp.lang b/htdocs/langs/en_US/mrp.lang index 601fe792cd6..9fbbe6a7161 100644 --- a/htdocs/langs/en_US/mrp.lang +++ b/htdocs/langs/en_US/mrp.lang @@ -28,6 +28,6 @@ DateEndPlannedMo=Date end planned KeepEmptyForAsap=Empty means 'As Soon As Possible' EstimatedDuration=Estimated duration EstimatedDurationDesc=Estimated duration to manufacture this product using this BOM -ConfirmValidateBom=Are you sure you want to validate this BOM (you will be able to use it to build new Manufacturing Orders) +ConfirmValidateBom=Are you sure you want to validate the BOM with the reference %s (you will be able to use it to build new Manufacturing Orders) ConfirmCloseBom=Are you sure you want to cancel this BOM (you won't be able to use it to build new Manufacturing Orders anymore) ? ConfirmReopenBom=Are you sure you want to re-open this BOM (you will be able to use it to build new Manufacturing Orders) \ No newline at end of file diff --git a/htdocs/modulebuilder/template/myobject_card.php b/htdocs/modulebuilder/template/myobject_card.php index 01d800f23c8..c443641ffd6 100644 --- a/htdocs/modulebuilder/template/myobject_card.php +++ b/htdocs/modulebuilder/template/myobject_card.php @@ -129,7 +129,7 @@ if (empty($reshook)) $permissiontodelete = $user->rights->mymodule->delete || ($permissiontoadd && $object->status == 0); $backurlforlist = dol_buildpath('/mymodule/myobject_list.php', 1); if (empty($backtopage)) { - if (empty($id)) $backtopage = $backurlforlist; + if (empty($id) && $action != 'add' && $action != 'create') $backtopage = $backurlforlist; else $backtopage = dol_buildpath('/mymodule/myobject_card.php', 1).'?id='.($id > 0 ? $id : '__ID__'); } $triggermodname = 'MYMODULE_MYOBJECT_MODIFY'; // Name of trigger action code to execute when we modify record From b0de030f3e732aa8fb9b0244b4fd03688cd52981 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Oct 2019 02:05:47 +0200 Subject: [PATCH 430/484] phpcs --- htdocs/core/modules/bom/mod_bom_standard.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/modules/bom/mod_bom_standard.php b/htdocs/core/modules/bom/mod_bom_standard.php index 5eacb3289df..eefbc7570c0 100644 --- a/htdocs/core/modules/bom/mod_bom_standard.php +++ b/htdocs/core/modules/bom/mod_bom_standard.php @@ -139,7 +139,7 @@ class mod_bom_standard extends ModeleNumRefboms //$date=time(); $date=$object->date_creation; $yymm = strftime("%y%m", $date); -; + if ($max >= (pow(10, 4) - 1)) $num=$max+1; // If counter > 9999, we do not format on 4 chars, we take number as it is else $num = sprintf("%04s", $max+1); From fc90916de944287e9327915ca7de3336c51be4b9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Oct 2019 03:17:53 +0200 Subject: [PATCH 431/484] Look and feel v11 --- htdocs/bom/bom_list.php | 48 +- htdocs/mrp/mo_list.php | 21 +- htdocs/product/inventory/list.php | 92 ++- htdocs/product/stock/class/entrepot.class.php | 24 + htdocs/product/stock/list.php | 592 ++++++++++++------ 5 files changed, 479 insertions(+), 298 deletions(-) diff --git a/htdocs/bom/bom_list.php b/htdocs/bom/bom_list.php index 635f0f9db65..46473d52ddb 100644 --- a/htdocs/bom/bom_list.php +++ b/htdocs/bom/bom_list.php @@ -21,6 +21,7 @@ * \ingroup bom * \brief List page for bom */ + // Load Dolibarr environment require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; @@ -99,7 +100,7 @@ $arrayfields=array(); foreach($object->fields as $key => $val) { // If $val['visible']==0, then we never show the field - if (! empty($val['visible'])) $arrayfields['t.'.$key]=array('label'=>$val['label'], 'checked'=>(($val['visible']<0)?0:1), 'enabled'=>$val['enabled'], 'position'=>$val['position']); + if (! empty($val['visible'])) $arrayfields['t.'.$key]=array('label'=>$val['label'], 'checked'=>(($val['visible']<0)?0:1), 'enabled'=>($val['enabled'] && ($val['visible'] != 3)), 'position'=>$val['position']); } // Extra fields if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label']) > 0) @@ -179,8 +180,9 @@ foreach($object->fields as $key => $val) $sql.='t.'.$key.', '; } // Add fields from extrafields -if (! empty($extrafields->attributes[$object->table_element]['label'])) +if (! empty($extrafields->attributes[$object->table_element]['label'])) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.' as options_'.$key.', ' : ''); +} // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters, $object); // Note that $action and $object may have been modified by hook @@ -213,6 +215,7 @@ foreach($object->fields as $key => $val) // Add fields from extrafields if (! empty($extrafields->attributes[$object->table_element]['label'])) { foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.', ' : ''); +} // Add where from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListGroupBy',$parameters); // Note that $action and $object may have been modified by hook @@ -258,7 +261,7 @@ if ($num == 1 && ! empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && { $obj = $db->fetch_object($resql); $id = $obj->rowid; - header("Location: ".dol_buildpath('/bom/bom_card.php', 1).'?id='.$id); + header("Location: ".DOL_URL_ROOT.'/bom/bom_card.php?id='.$id); exit; } @@ -290,7 +293,8 @@ if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&con if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit); foreach($search as $key => $val) { - $param.= '&search_'.$key.'='.urlencode($search[$key]); + if (is_array($search[$key]) && count($search[$key])) foreach($search[$key] as $skey) $param.='&search_'.$key.'[]='.urlencode($skey); + else $param.= '&search_'.$key.'='.urlencode($search[$key]); } if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss); // Add $param from extra fields @@ -315,19 +319,7 @@ print ''; print ''; print ''; -$newcardbutton=''; -//if ($user->rights->bom->creer) -//{ - $newcardbutton=''.$langs->trans('New').''; - $newcardbutton.= ''; - $newcardbutton.= ''; -//} -//else -//{ -// $newcardbutton=''.$langs->trans('New').''; -// $newcardbutton.= ''; -// $newcardbutton.= ''; -//} +$newcardbutton = dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/bom/bom_card.php?action=create&backtopage='.urlencode($_SERVER['PHP_SELF']), '', $user->rights->bom->write); print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'cubes', 0, $newcardbutton, '', $limit); @@ -338,10 +330,10 @@ $objecttmp=new BOM($db); $trackid='xxxx'.$object->id; include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; -if ($sall) +if ($search_all) { foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val); - print '
    '.$langs->trans("FilterOnInto", $sall) . join(', ', $fieldstosearchall).'
    '; + print '
    '.$langs->trans("FilterOnInto", $search_all) . join(', ', $fieldstosearchall).'
    '; } $moreforfilter = ''; @@ -424,7 +416,7 @@ $parameters=array('arrayfields'=>$arrayfields,'param'=>$param,'sortfield'=>$sort $reshook=$hookmanager->executeHooks('printFieldListTitle', $parameters, $object); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; // Action column -print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch ')."\n"; +print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; print '
    '."\n"; @@ -460,12 +452,14 @@ while ($i < min($num, $limit)) foreach($object->fields as $key => $val) { $cssforfield=(empty($val['css'])?'':$val['css']); - if ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center'; - elseif ($key == 'ref') $cssforfield.=($cssforfield?' ':'').'nowrap'; - elseif (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center'; - elseif (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap'; - elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real'))) $cssforfield.=($cssforfield?' ':'').'right'; - + if (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center'; + elseif ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center'; + + if (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap'; + elseif ($key == 'ref') $cssforfield.=($cssforfield?' ':'').'nowrap'; + + if (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $key != 'status') $cssforfield.=($cssforfield?' ':'').'right'; + if (! empty($arrayfields['t.'.$key]['checked'])) { print ''; @@ -488,7 +482,7 @@ while ($i < min($num, $limit)) $reshook=$hookmanager->executeHooks('printFieldListValue', $parameters, $object); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; // Action column - print ''; } @@ -442,7 +429,7 @@ foreach($object->fields as $key => $val) if ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center'; elseif (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center'; elseif (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap'; - elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price'))) $cssforfield.=($cssforfield?' ':'').'right'; + elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $val['label'] != 'TechnicalID') $cssforfield.=($cssforfield?' ':'').'right'; if (! empty($arrayfields['t.'.$key]['checked'])) { print getTitleFieldOfList($arrayfields['t.'.$key]['label'], 0, $_SERVER['PHP_SELF'], 't.'.$key, '', $param, ($cssforfield?'class="'.$cssforfield.'"':''), $sortfield, $sortorder, ($cssforfield?$cssforfield.' ':''))."\n"; diff --git a/htdocs/product/inventory/list.php b/htdocs/product/inventory/list.php index b81e989cbb9..59c81c83e29 100644 --- a/htdocs/product/inventory/list.php +++ b/htdocs/product/inventory/list.php @@ -21,6 +21,7 @@ * \brief List page for inventory */ +// Load Dolibarr environment require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; @@ -30,7 +31,7 @@ require_once DOL_DOCUMENT_ROOT.'/product/inventory/class/inventory.class.php'; // Load translation files required by the page $langs->loadLangs(array("stocks","other")); -$action = GETPOST('action', 'alpha')?GETPOST('action', 'alpha'):'view'; // The action 'add', 'create', 'edit', 'update', 'view', ... +$action = GETPOST('action', 'aZ09')?GETPOST('action', 'aZ09'):'view'; // The action 'add', 'create', 'edit', 'update', 'view', ... $massaction = GETPOST('massaction', 'alpha'); // The bulk action (combo box choice into lists) $show_files = GETPOST('show_files', 'int'); // Show files area generated by bulk actions ? $confirm = GETPOST('confirm', 'alpha'); // Result of a confirmation @@ -47,7 +48,7 @@ $limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit; $sortfield = GETPOST('sortfield', 'alpha'); $sortorder = GETPOST('sortorder', 'alpha'); $page = GETPOST('page', 'int'); -if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 +if (empty($page) || $page == -1 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha') || (empty($toselect) && $massaction === '0')) { $page = 0; } // If $page is not defined, or '' or -1 or if we click on clear filters or if we select empty mass action $offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; @@ -67,7 +68,7 @@ if (! $sortorder) $sortorder="ASC"; // Security check $socid=0; -if ($user->societe_id > 0) +if ($user->societe_id > 0) // Protection if external user { //$socid = $user->societe_id; accessforbidden(); @@ -101,10 +102,10 @@ $arrayfields=array(); foreach($object->fields as $key => $val) { // If $val['visible']==0, then we never show the field - if (! empty($val['visible'])) $arrayfields['t.'.$key]=array('label'=>$val['label'], 'checked'=>(($val['visible']<0)?0:1), 'enabled'=>$val['enabled'], 'position'=>$val['position']); + if (! empty($val['visible'])) $arrayfields['t.'.$key]=array('label'=>$val['label'], 'checked'=>(($val['visible']<0)?0:1), 'enabled'=>($val['enabled'] && ($val['visible'] != 3)), 'position'=>$val['position']); } // Extra fields -if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label']) > 0) { foreach($extrafields->attributes[$object->table_element]['label'] as $key => $val) { @@ -119,8 +120,6 @@ $arrayfields = dol_sort_array($arrayfields, 'position'); /* * Actions - * - * Put here all code to do according to value of "$action" parameter */ if (GETPOST('cancel', 'alpha')) { $action='list'; $massaction=''; } @@ -164,8 +163,6 @@ if (empty($reshook)) /* * View - * - * Put here all code to render page */ $form=new Form($db); @@ -192,10 +189,10 @@ if (! empty($extrafields->attributes[$object->table_element]['label'])) { $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters, $object); // Note that $action and $object may have been modified by hook $sql.=$hookmanager->resPrint; -$sql=preg_replace('/, $/', '', $sql); +$sql=preg_replace('/,\s*$/', '', $sql); $sql.= " FROM ".MAIN_DB_PREFIX.$object->table_element." as t"; -if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."myobject_extrafields as ef on (t.rowid = ef.fk_object)"; -if ($object->ismultientitymanaged == 1) $sql.= " WHERE t.entity IN (".getEntity('myobject').")"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (t.rowid = ef.fk_object)"; +if ($object->ismultientitymanaged == 1) $sql.= " WHERE t.entity IN (".getEntity($object->element).")"; else $sql.=" WHERE 1 = 1"; foreach($search as $key => $val) { @@ -218,11 +215,14 @@ foreach($object->fields as $key => $val) $sql.='t.'.$key.', '; } // Add fields from extrafields -foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.', ' : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.', ' : ''); +} // Add where from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListGroupBy',$parameters); // Note that $action and $object may have been modified by hook $sql.=$hookmanager->resPrint; +$sql=preg_replace('/, $/','', $sql); */ $sql.=$db->order($sortfield, $sortorder); @@ -231,18 +231,17 @@ $sql.=$db->order($sortfield, $sortorder); $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $result = $db->query($sql); - $nbtotalofrecords = $db->num_rows($result); - if (($page * $limit) > $nbtotalofrecords) // if total resultset is smaller then paging size (filtering), goto and load page 0 + $resql = $db->query($sql); + $nbtotalofrecords = $db->num_rows($resql); + if (($page * $limit) > $nbtotalofrecords) // if total of record found is smaller than page * limit, goto and load page 0 { $page = 0; $offset = 0; } } -// if total resultset is smaller the limit, no need to do paging. +// if total of record found is smaller than limit, no need to do paging and to restart another select with limits set. if (is_numeric($nbtotalofrecords) && $limit > $nbtotalofrecords) { - $resql = $result; $num = $nbtotalofrecords; } else @@ -274,21 +273,6 @@ if ($num == 1 && ! empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && llxHeader('', $title, $help_url); -// Example : Adding jquery code -print ''; - $arrayofselected=is_array($toselect)?$toselect:array(); $param=''; @@ -296,7 +280,8 @@ if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&con if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit); foreach($search as $key => $val) { - $param.= '&search_'.$key.'='.urlencode($search[$key]); + if (is_array($search[$key]) && count($search[$key])) foreach($search[$key] as $skey) $param.='&search_'.$key.'[]='.urlencode($skey); + else $param.= '&search_'.$key.'='.urlencode($search[$key]); } if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss); // Add $param from extra fields @@ -308,7 +293,7 @@ $arrayofmassactions = array( //'builddoc'=>$langs->trans("PDFMerge"), ); if ($user->rights->stock->supprimer) $arrayofmassactions['predelete']=''.$langs->trans("Delete"); -if (in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array(); +if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array(); $massactionbutton=$form->selectMassAction('', $arrayofmassactions); print ''; @@ -321,7 +306,9 @@ print ''; print ''; print ''; -print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'products', 0, '', '', $limit); +$newcardbutton = dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/bom/bom_card.php?action=create&backtopage='.urlencode($_SERVER['PHP_SELF']), '', $user->rights->bom->write); + +print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'products', 0, $newcardbutton, '', $limit); // Add code for pre mass action (confirmation or email presend form) $topicmail="Information"; @@ -330,7 +317,7 @@ $objecttmp=new Inventory($db); $trackid='inve'.$object->id; include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; -if ($sall) +if ($search_all) { foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val); print '
    '.$langs->trans("FilterOnInto", $sall) . join(', ', $fieldstosearchall).'
    '; @@ -415,13 +402,15 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; $parameters=array('arrayfields'=>$arrayfields,'param'=>$param,'sortfield'=>$sortfield,'sortorder'=>$sortorder); $reshook=$hookmanager->executeHooks('printFieldListTitle', $parameters, $object); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; -print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch ')."\n"; +// Action column +print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; print ''."\n"; // Detect if we need a fetch on each output line $needToFetchEachLine=0; -if (! empty($extrafields->attributes[$object->table_element]['computed'])) { +if (is_array($extrafields->attributes[$object->table_element]['computed']) && count($extrafields->attributes[$object->table_element]['computed']) > 0) +{ foreach ($extrafields->attributes[$object->table_element]['computed'] as $key => $val) { if (preg_match('/\$object/', $val)) $needToFetchEachLine++; // There is at least one compute field that use $object @@ -448,16 +437,21 @@ while ($i < min($num, $limit)) print ''; foreach($object->fields as $key => $val) { - $align=''; - if (in_array($val['type'], array('date','datetime','timestamp'))) $align.=($align?' ':'').'center'; - if (in_array($val['type'], array('timestamp'))) $align.=($align?' ':'').'nowrap'; - if ($key == 'status') $align.=($align?' ':'').'center'; + $cssforfield=(empty($val['css'])?'':$val['css']); + if (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center'; + elseif ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center'; + + if (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap'; + elseif ($key == 'ref') $cssforfield.=($cssforfield?' ':'').'nowrap'; + + if (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $key != 'status') $cssforfield.=($cssforfield?' ':'').'right'; + if (! empty($arrayfields['t.'.$key]['checked'])) { - print ''; - print $object->showOutputField($val, $key, $obj->$key, ''); + print ''; + if ($key == 'status') print $object->getLibStatut(5); + elseif (in_array($val['type'], array('date','datetime','timestamp'))) print $object->showOutputField($val, $key, $db->jdate($obj->$key), ''); + else print $object->showOutputField($val, $key, $obj->$key, ''); print ''; if (! $i) $totalarray['nbfield']++; if (! empty($val['isameasure'])) @@ -474,7 +468,7 @@ while ($i < min($num, $limit)) $reshook=$hookmanager->executeHooks('printFieldListValue', $parameters, $object); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; // Action column - print ''; if (! $i) $totalarray['nbfield']++; - print ''; + print ''."\n"; $i++; } diff --git a/htdocs/product/stock/class/entrepot.class.php b/htdocs/product/stock/class/entrepot.class.php index 824934992bf..004ad49ce46 100644 --- a/htdocs/product/stock/class/entrepot.class.php +++ b/htdocs/product/stock/class/entrepot.class.php @@ -95,6 +95,30 @@ class Entrepot extends CommonObject // List of short language codes for status public $statuts = array(); + /** + * @var array Array with all fields and their property. Do not use it as a static var. It may be modified by constructor. + */ + public $fields=array( + 'rowid' =>array('type'=>'integer', 'label'=>'ID', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>10), + 'ref' =>array('type'=>'varchar(255)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>-2, 'showoncombobox'=>1, 'position'=>25), + 'entity' =>array('type'=>'integer', 'label'=>'Entity', 'enabled'=>1, 'visible'=>0, 'notnull'=>1, 'position'=>30), + 'description' =>array('type'=>'text', 'label'=>'Description', 'enabled'=>1, 'visible'=>-2, 'position'=>35), + 'lieu' =>array('type'=>'varchar(64)', 'label'=>'LocationSummary', 'enabled'=>1, 'visible'=>-2, 'position'=>40), + 'fk_parent' =>array('type'=>'integer', 'label'=>'ParentWarehouse', 'enabled'=>1, 'visible'=>-2, 'position'=>41), + 'address' =>array('type'=>'varchar(255)', 'label'=>'Address', 'enabled'=>1, 'visible'=>-2, 'position'=>45), + 'zip' =>array('type'=>'varchar(10)', 'label'=>'Zip', 'enabled'=>1, 'visible'=>-2, 'position'=>50), + 'town' =>array('type'=>'varchar(50)', 'label'=>'Town', 'enabled'=>1, 'visible'=>-2, 'position'=>55), + 'fk_departement' =>array('type'=>'integer', 'label'=>'State', 'enabled'=>1, 'visible'=>0, 'position'=>60), + 'fk_pays' =>array('type'=>'integer', 'label'=>'Country', 'enabled'=>1, 'visible'=>-2, 'position'=>65), + //'fk_user_author' =>array('type'=>'integer', 'label'=>'Fk user author', 'enabled'=>1, 'visible'=>-2, 'position'=>82), + //'model_pdf' =>array('type'=>'varchar(255)', 'label'=>'ModelPDF', 'enabled'=>1, 'visible'=>-2, 'position'=>84), + //'import_key' =>array('type'=>'varchar(14)', 'label'=>'ImportKey', 'enabled'=>1, 'visible'=>-2, 'position'=>85), + 'statut' =>array('type'=>'tinyint(4)', 'label'=>'Status', 'enabled'=>1, 'visible'=>-2, 'position'=>200), + 'datec' =>array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-2, 'position'=>500), + 'tms' =>array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>501), + ); + + /** * Constructor * diff --git a/htdocs/product/stock/list.php b/htdocs/product/stock/list.php index ae39ba63f3b..b38888be9bb 100644 --- a/htdocs/product/stock/list.php +++ b/htdocs/product/stock/list.php @@ -28,34 +28,50 @@ require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/product/stock/class/entrepot.class.php'; // Load translation files required by the page -$langs->load("stocks"); +$langs->loadLangs(array("stocks","other")); -// Security check -$result=restrictedArea($user, 'stock'); +$action = GETPOST('action', 'aZ09')?GETPOST('action', 'aZ09'):'view'; // The action 'add', 'create', 'edit', 'update', 'view', ... +$massaction = GETPOST('massaction', 'alpha'); // The bulk action (combo box choice into lists) +$show_files = GETPOST('show_files', 'int'); // Show files area generated by bulk actions ? +$confirm = GETPOST('confirm', 'alpha'); // Result of a confirmation +$cancel = GETPOST('cancel', 'alpha'); // We click on a Cancel button +$toselect = GETPOST('toselect', 'array'); // Array of ids of elements selected into a list +$contextpage= GETPOST('contextpage', 'aZ')?GETPOST('contextpage', 'aZ'):'stocklist'; // To manage different context of search +$backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page +$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') -$sall=trim((GETPOST('search_all', 'alphanohtml')!='')?GETPOST('search_all', 'alphanohtml'):GETPOST('sall', 'alphanohtml')); +$search_all=trim((GETPOST('search_all', 'alphanohtml')!='')?GETPOST('search_all', 'alphanohtml'):GETPOST('sall', 'alphanohtml')); $search_ref=GETPOST("sref", "alpha")?GETPOST("sref", "alpha"):GETPOST("search_ref", "alpha"); $search_label=GETPOST("snom", "alpha")?GETPOST("snom", "alpha"):GETPOST("search_label", "alpha"); $search_status=GETPOST("search_status", "int"); +// Load variable for pagination $limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit; -$sortfield = GETPOST("sortfield"); -$sortorder = GETPOST("sortorder"); +$sortfield = GETPOST('sortfield', 'alpha'); +$sortorder = GETPOST('sortorder', 'alpha'); +$page = GETPOST('page', 'int'); +if (empty($page) || $page == -1 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha') || (empty($toselect) && $massaction === '0')) { $page = 0; } // If $page is not defined, or '' or -1 or if we click on clear filters or if we select empty mass action +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; if (! $sortfield) $sortfield="e.ref"; if (! $sortorder) $sortorder="ASC"; -$page = GETPOST("page"); -if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 -$offset = $limit * $page; + +// Security check +$result=restrictedArea($user, 'stock'); + $year = strftime("%Y", time()); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $object = new Entrepot($db); -$hookmanager->initHooks(array('stocklist')); $extrafields = new ExtraFields($db); +$diroutputmassaction=$conf->inventory->dir_output . '/temp/massgeneration/'.$user->id; +$hookmanager->initHooks(array('stocklist')); -// fetch optionals attributes and labels +// Fetch optionals attributes and labels $extrafields->fetch_name_optionals_label($object->table_element); + $search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); @@ -69,30 +85,69 @@ $fieldstosearchall = array( 'e.town'=>'Town', ); - -// Extra fields -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) +// Definition of fields for list +$arrayfields=array( + 'stockqty'=>array('type'=>'float', 'label'=>'PhysicalStock', 'enabled'=>1, 'visible'=>-2, 'position'=>70), + 'estimatedvalue'=>array('type'=>'float', 'label'=>'EstimatedStockValue', 'enabled'=>1, 'visible'=>-2, 'position'=>71), + 'sellvalue'=>array('type'=>'float', 'label'=>'EstimatedStockValueSell', 'enabled'=>1, 'visible'=>-2, 'position'=>72), +); +foreach($object->fields as $key => $val) { - foreach($extrafields->attribute_label as $key => $val) - { - if (! empty($extrafields->attribute_list[$key])) $arrayfields["ef.".$key]=array('label'=>$extrafields->attribute_label[$key], 'checked'=>(($extrafields->attribute_list[$key]<0)?0:1), 'position'=>$extrafields->attribute_pos[$key], 'enabled'=>(abs($extrafields->attribute_list[$key])!=3 && $extrafields->attribute_perms[$key])); - } + // If $val['visible']==0, then we never show the field + if (! empty($val['visible'])) $arrayfields['t.'.$key]=array('label'=>$val['label'], 'checked'=>(($val['visible']<0)?0:1), 'enabled'=>($val['enabled'] && ($val['visible'] != 3)), 'position'=>$val['position']); } +// Extra fields +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label']) > 0) +{ + foreach($extrafields->attributes[$object->table_element]['label'] as $key => $val) + { + if (! empty($extrafields->attributes[$object->table_element]['list'][$key])) + $arrayfields["ef.".$key]=array('label'=>$extrafields->attributes[$object->table_element]['label'][$key], 'checked'=>(($extrafields->attributes[$object->table_element]['list'][$key]<0)?0:1), 'position'=>$extrafields->attributes[$object->table_element]['pos'][$key], 'enabled'=>(abs($extrafields->attributes[$object->table_element]['list'][$key])!=3 && $extrafields->attributes[$object->table_element]['perms'][$key])); + } +} +$object->fields = dol_sort_array($object->fields, 'position'); +$arrayfields = dol_sort_array($arrayfields, 'position'); /* * Actions */ -include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php'; +if (GETPOST('cancel', 'alpha')) { $action='list'; $massaction=''; } +if (! GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction=''; } -if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // Both test are required to be compatible with all browsers +$parameters=array(); +$reshook=$hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + +if (empty($reshook)) { - $search_ref=""; - $sall=""; - $search_label=""; - $search_status=""; - $search_array_options=array(); + // Selection of new fields + include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php'; + + // Purge search criteria + if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') ||GETPOST('button_removefilter', 'alpha')) // All tests are required to be compatible with all browsers + { + $search_ref=""; + $sall=""; + $search_label=""; + $search_status=""; + $toselect=''; + $search_array_options=array(); + } + if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha') + || GETPOST('button_search_x', 'alpha') || GETPOST('button_search.x', 'alpha') || GETPOST('button_search', 'alpha')) + { + $massaction=''; // Protection to avoid mass action if we force a new search during a mass action confirmation + } + + // Mass actions + $objectclass='Entrepot'; + $objectlabel='Warehouse'; + $permtoread = $user->rights->stock->lire; + $permtodelete = $user->rights->stock->supprimer; + $uploaddir = $conf->stock->dir_output; + include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; } @@ -103,6 +158,14 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' $form=new Form($db); $warehouse=new Entrepot($db); +$now=dol_now(); + +$help_url='EN:Module_Stocks_En|FR:Module_Stock|ES:Módulo_Stocks'; +$title = $langs->trans("ListOfWarehouses"); + + +// Build and execute select +// -------------------------------------------------------------------- $sql = "SELECT e.rowid, e.ref, e.statut, e.lieu, e.address, e.zip, e.town, e.fk_pays, e.fk_parent,"; $sql.= " SUM(p.pmp * ps.reel) as estimatedvalue, SUM(p.price * ps.reel) as sellvalue, SUM(ps.reel) as stockqty"; // Add fields from extrafields @@ -115,16 +178,16 @@ if (! empty($extrafields->attributes[$object->table_element]['label'])) { $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters, $object); // Note that $action and $object may have been modified by hook $sql.=$hookmanager->resPrint; -//$sql=preg_replace('/, $/', '', $sql); -$sql.= " FROM ".MAIN_DB_PREFIX."entrepot as e"; +$sql=preg_replace('/,\s*$/', '', $sql); +$sql.= " FROM ".MAIN_DB_PREFIX.$object->table_element." as e"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (e.rowid = ef.fk_object)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_stock as ps ON e.rowid = ps.fk_entrepot"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON ps.fk_product = p.rowid"; -if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (e.rowid = ef.fk_object)"; $sql.= " WHERE e.entity IN (".getEntity('stock').")"; if ($search_ref) $sql.= natural_search("e.ref", $search_ref); // ref if ($search_label) $sql.= natural_search("e.lieu", $search_label); // label if ($search_status != '' && $search_status >= 0) $sql.= " AND e.statut = ".$search_status; -if ($sall) $sql .= natural_search(array_keys($fieldstosearchall), $sall); +if ($search_all) $sql .= natural_search(array_keys($fieldstosearchall), $search_all); // Add where from extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; // Add where from hooks @@ -149,189 +212,308 @@ if ($result) } } $sql.= $db->order($sortfield, $sortorder); -$sql.= $db->plimit($limit+1, $offset); -$result = $db->query($sql); -if ($result) +// Count total nb of records +$nbtotalofrecords = ''; +if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $num = $db->num_rows($result); - - $i = 0; - - $help_url='EN:Module_Stocks_En|FR:Module_Stock|ES:Módulo_Stocks'; - llxHeader("", $langs->trans("ListOfWarehouses"), $help_url); - - $param=''; - if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage; - if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; - if ($search_ref) $param.="&search_ref=".urlencode($search_ref); - if ($search_label) $param.="&search_label=".urlencode($search_label); - if ($search_status) $param.="&search_status=".urlencode($search_status); - if ($sall) $param.="&sall=".urlencode($sall); - - // Add $param from extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; - - $newcardbutton=''; - if ($user->rights->stock->creer) + $resql = $db->query($sql); + $nbtotalofrecords = $db->num_rows($resql); + if (($page * $limit) > $nbtotalofrecords) // if total of record found is smaller than page * limit, goto and load page 0 { - $newcardbutton=''.$langs->trans('MenuNewWarehouse').''; - $newcardbutton.= ''; - $newcardbutton.= ''; + $page = 0; + $offset = 0; } - - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - - print_barre_liste($langs->trans("ListOfWarehouses"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $totalnboflines, 'generic', 0, $newcardbutton, '', $limit); - - if ($sall) - { - foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val); - print '
    '.$langs->trans("FilterOnInto", $sall) . join(', ', $fieldstosearchall).'
    '; - } - - $moreforfilter=''; - - print '
    '; - print '
    '.img_picto('', $picto, 'class="valignmiddle widthpictotitle pictotitle"', $pictoisfullpath).''; $return.= '
    '.$titre.'
    '; @@ -4187,11 +4187,10 @@ function print_barre_liste($titre, $page, $file, $options = '', $sortfield = '', print "\n"; print "\n"; - print ''; // maring bottom must be same than into load_fiche_tire + print '
    '; // maring bottom must be same than into load_fiche_tire // Left - //if ($picto && $titre) print ''; - print ''; // User assigned - print ''; // Progression diff --git a/htdocs/ticket/class/actions_ticket.class.php b/htdocs/ticket/class/actions_ticket.class.php index 2a9fc198592..f6d03d3360a 100644 --- a/htdocs/ticket/class/actions_ticket.class.php +++ b/htdocs/ticket/class/actions_ticket.class.php @@ -197,7 +197,7 @@ class ActionsTicket print $langs->trans("InitialMessage"); print ''; @@ -208,7 +208,7 @@ class ActionsTicket $msg = GETPOST('message_initial', 'alpha') ? GETPOST('message_initial', 'alpha') : $object->message; include_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php'; $uselocalbrowser = true; - $doleditor = new DolEditor('message_initial', $msg, '100%', 250, 'dolibarr_details', 'In', true, $uselocalbrowser, $conf->global->FCKEDITOR_ENABLE_TICKET); + $doleditor = new DolEditor('message_initial', $msg, '100%', 250, 'dolibarr_details', 'In', true, $uselocalbrowser, $conf->global->FCKEDITOR_ENABLE_TICKET, ROWS_4, '95%'); $doleditor->Create(); } else { // Deal with format differences (text / HTML) From 2ed96c9e5ffe5c6632bbc036d18d607f1e6e2040 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 15 Oct 2019 02:54:19 +0200 Subject: [PATCH 413/484] Fix scrutinizer --- htdocs/contact/class/contact.class.php | 4 +-- .../box_accountancy_suspense_account.php | 4 +-- htdocs/core/lib/ticket.lib.php | 1 + ...rface_90_modSociete_ContactRoles.class.php | 25 +++++++++++-------- htdocs/ticket/class/ticket.class.php | 2 +- 5 files changed, 20 insertions(+), 16 deletions(-) diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index 560a6e2bc0d..1d88ebc87aa 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -1514,8 +1514,8 @@ class Contact extends CommonObject /** * Get Contact roles for a thirdparty * - * @param string $element element type - * @return array|int + * @param string $element Element type + * @return array|int Array of contact roles or -1 * @throws Exception */ public function getContactRoles($element = '') diff --git a/htdocs/core/boxes/box_accountancy_suspense_account.php b/htdocs/core/boxes/box_accountancy_suspense_account.php index 03c0f0ab7ae..86971e1e042 100644 --- a/htdocs/core/boxes/box_accountancy_suspense_account.php +++ b/htdocs/core/boxes/box_accountancy_suspense_account.php @@ -74,7 +74,7 @@ class box_accountancy_suspense_account extends ModeleBoxes include_once DOL_DOCUMENT_ROOT.'/accountancy/class/bookkeeping.class.php'; - $bookkeepingstatic = new BookKeeping($this->db); + //$bookkeepingstatic = new BookKeeping($this->db); $this->info_box_head = array('text' => $langs->trans("BoxTitleSuspenseAccount")); @@ -103,7 +103,7 @@ class box_accountancy_suspense_account extends ModeleBoxes $this->info_box_contents[0][1] = array( 'td' => 'class="right"', - 'text' => '' . $nbSuspenseAccount . '', + 'text' => '' . $nbSuspenseAccount . '', 'asis' => 1 ); } else { diff --git a/htdocs/core/lib/ticket.lib.php b/htdocs/core/lib/ticket.lib.php index 53afbe50dce..543bdb025fa 100644 --- a/htdocs/core/lib/ticket.lib.php +++ b/htdocs/core/lib/ticket.lib.php @@ -151,6 +151,7 @@ function showDirectPublicLink($object) require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; $email = CMailFile::getValidAddress($object->origin_email, 2); + $url = ''; if ($email) { $url = dol_buildpath('/public/ticket/view.php', 3).'?track_id='.$object->track_id.'&email='.$email; diff --git a/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php b/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php index 13eb44d4eee..79b99e59a8f 100644 --- a/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php +++ b/htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php @@ -90,20 +90,23 @@ class InterfaceContactRoles extends DolibarrTriggers if (!empty($cloneFrom->id)) $TContactAlreadyLinked = array_merge($cloneFrom->liste_contact(-1, 'external'), $cloneFrom->liste_contact(-1, 'internal')); } - foreach($TContact as $i => $infos) { - foreach ($TContactAlreadyLinked as $contactData) { - if($contactData['id'] == $infos['fk_socpeople'] && $contactData['fk_c_type_contact'] == $infos['type_contact']) unset($TContact[$i]); + if (is_array($TContact)) + { + foreach($TContact as $i => $infos) { + foreach ($TContactAlreadyLinked as $contactData) { + if ($contactData['id'] == $infos['fk_socpeople'] && $contactData['fk_c_type_contact'] == $infos['type_contact']) unset($TContact[$i]); + } } - } - $nb = 0; - foreach($TContact as $infos) { - $res = $object->add_contact($infos['fk_socpeople'], $infos['type_contact']); - if($res > 0) $nb++; - } + $nb = 0; + foreach($TContact as $infos) { + $res = $object->add_contact($infos['fk_socpeople'], $infos['type_contact']); + if ($res > 0) $nb++; + } - if($nb > 0) { - setEventMessages($langs->trans('ContactAddedAutomatically', $nb), null, 'mesgs'); + if($nb > 0) { + setEventMessages($langs->trans('ContactAddedAutomatically', $nb), null, 'mesgs'); + } } } } diff --git a/htdocs/ticket/class/ticket.class.php b/htdocs/ticket/class/ticket.class.php index 5443e943583..0daba74be77 100644 --- a/htdocs/ticket/class/ticket.class.php +++ b/htdocs/ticket/class/ticket.class.php @@ -1609,7 +1609,7 @@ class Ticket extends CommonObject * @param array $filename_list List of files to attach (full path of filename on file system) * @param array $mimetype_list List of MIME type of attached files * @param array $mimefilename_list List of attached file name in message - * @return void + * @return int <0 if KO, >0 if OK */ public function createTicketMessage($user, $notrigger = 0, $filename_list = array(), $mimetype_list = array(), $mimefilename_list = array()) { From 568faef7f4c2f77087fd9005b9a0b37dd0bffc85 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 15 Oct 2019 04:08:34 +0200 Subject: [PATCH 414/484] Fix encoding of message --- htdocs/takepos/takepos.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/takepos/takepos.php b/htdocs/takepos/takepos.php index bd14e227876..311bcd00d8b 100644 --- a/htdocs/takepos/takepos.php +++ b/htdocs/takepos/takepos.php @@ -396,7 +396,7 @@ function Refresh() { function New() { // If we go here,it means $conf->global->TAKEPOS_BAR_RESTAURANT is not defined console.log("New with place = , js place="+place); - var r = confirm(' 0 ? $langs->trans("ConfirmDeletionOfThisPOSSale") : $langs->trans("ConfirmDiscardOfThisPOSSale")); ?>'); + var r = confirm(' 0 ? $langs->transnoentitiesnoconv("ConfirmDeletionOfThisPOSSale") : $langs->transnoentitiesnoconv("ConfirmDiscardOfThisPOSSale")); ?>'); if (r == true) { $("#poslines").load("invoice.php?action=delete&place="+place, function() { //$('#poslines').scrollTop($('#poslines')[0].scrollHeight); From 33cc0c017cf43eb87bb784c5da9a1d480e589e90 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 15 Oct 2019 04:20:51 +0200 Subject: [PATCH 415/484] responsive --- htdocs/hrm/index.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/hrm/index.php b/htdocs/hrm/index.php index ef8df639d26..80a9366186c 100644 --- a/htdocs/hrm/index.php +++ b/htdocs/hrm/index.php @@ -225,7 +225,7 @@ if (! empty($conf->holiday->enabled) && $user->rights->holiday->read) print ''; print ''; - print ''; + print ''; print ''; $starthalfday=($obj->halfday == -1 || $obj->halfday == 2)?'afternoon':'morning'; @@ -304,7 +304,7 @@ if (! empty($conf->deplacement->enabled) && $user->rights->deplacement->lire) print ''; print ''; - print ''; + print ''; print ''; print ''; print ''; @@ -376,7 +376,7 @@ if (! empty($conf->expensereport->enabled) && $user->rights->expensereport->lire print ''; print ''; - print ''; + print ''; print ''; print ''; print ''; From 00bac9e98911fea926babb7806a35e5accd264d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Tue, 15 Oct 2019 08:02:59 +0200 Subject: [PATCH 416/484] Update interface_50_modAgenda_ActionsAuto.class.php Update agenda.lang Update agenda.lang Update interface_50_modAgenda_ActionsAuto.class.php --- htdocs/langs/en_US/agenda.lang | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/langs/en_US/agenda.lang b/htdocs/langs/en_US/agenda.lang index 8ad19e06695..465846a43db 100644 --- a/htdocs/langs/en_US/agenda.lang +++ b/htdocs/langs/en_US/agenda.lang @@ -76,6 +76,7 @@ ContractSentByEMail=Contract %s sent by email OrderSentByEMail=Sales order %s sent by email InvoiceSentByEMail=Customer invoice %s sent by email SupplierOrderSentByEMail=Purchase order %s sent by email +ORDER_SUPPLIER_DELETEInDolibarr=Purchase order %s deleted SupplierInvoiceSentByEMail=Vendor invoice %s sent by email ShippingSentByEMail=Shipment %s sent by email ShippingValidated= Shipment %s validated From 0d69ae9e8c0a6a8f6b025b546c65c0c70fccce84 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Tue, 15 Oct 2019 09:52:14 +0200 Subject: [PATCH 417/484] NEW mode for list thirdparty API (add supplier) add new mode for more universel use of the api and easy switch between customer's and supplier's modes --- htdocs/societe/class/api_thirdparties.class.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/htdocs/societe/class/api_thirdparties.class.php b/htdocs/societe/class/api_thirdparties.class.php index ed3b26e04ac..b5ae7d94c03 100644 --- a/htdocs/societe/class/api_thirdparties.class.php +++ b/htdocs/societe/class/api_thirdparties.class.php @@ -117,6 +117,7 @@ class Thirdparties extends DolibarrApi * @param int $mode Set to 1 to show only customers * Set to 2 to show only prospects * Set to 3 to show only those are not customer neither prospect + * Set to 4 to show only suppliers * @param string $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.nom:like:'TheCompany%') and (t.date_creation:<:'20160101')" * @return array Array of thirdparty objects */ @@ -143,6 +144,7 @@ class Thirdparties extends DolibarrApi if ($mode == 1) $sql.= " AND t.client IN (1, 3)"; if ($mode == 2) $sql.= " AND t.client IN (2, 3)"; if ($mode == 3) $sql.= " AND t.client IN (0)"; + if ($mode == 4) $sql.= " AND t.fournisseur IN (1)"; $sql.= ' AND t.entity IN ('.getEntity('societe').')'; if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) || $search_sale > 0) $sql.= " AND t.rowid = sc.fk_soc"; //if ($email != NULL) $sql.= " AND s.email = \"".$email."\""; From 63a60c7811465eb5e46d53c1a16d6ef5483cac64 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 15 Oct 2019 11:13:14 +0200 Subject: [PATCH 418/484] NEW Add option MAIN_PDF_FORCE_FONT_SIZE --- htdocs/core/lib/pdf.lib.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index d16fc569961..b233b937be7 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -240,14 +240,18 @@ function pdf_getPDFFont($outputlangs) */ function pdf_getPDFFontSize($outputlangs) { + global $conf; + $size=10; // By default, for FPDI or ISO language on TCPDF - if (class_exists('TCPDF')) // If TCPDF on, we can use an UTF8 one like DejaVuSans if required (slower) + if (class_exists('TCPDF')) // If TCPDF on, we can use an UTF8 font like DejaVuSans if required (slower) { - if ($outputlangs->trans('FONTSIZEFORPDF')!='FONTSIZEFORPDF') + if ($outputlangs->trans('FONTSIZEFORPDF') != 'FONTSIZEFORPDF') { $size = (int) $outputlangs->trans('FONTSIZEFORPDF'); } } + if (! empty($conf->global->MAIN_PDF_FORCE_FONT_SIZE)) $size = $conf->global->MAIN_PDF_FORCE_FONT_SIZE; + return $size; } From a45ad29e71e6b6cfd83d544bb3c0a4f2186fa5b9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 15 Oct 2019 11:32:53 +0200 Subject: [PATCH 419/484] Doc --- ChangeLog | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ChangeLog b/ChangeLog index 3583c10385b..d4e1356b493 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,11 @@ English Dolibarr ChangeLog -------------------------------------------------------------- ***** ChangeLog for 10.0.3 compared to 10.0.2 ***** +IMPORTANT : This version fixes a serious bug in saving the units of weight, size, surface and volume on product card. +The unit were not saved correctly in database making calculation on shipments wrong. +Update to this version must be done if you use them and have installed version 10.0.0, 10.0.1 or 10.0.2 and set some products after installing or upgrading to this version. +Once update is done you must then edit (manually) the product that has bad unit to set the correct unit to have features restored. + FIX: #11702 FIX: #11861 No consistent code to manage measuring units FIX: #11942 From 9ce71c26aa7b7f673a1319cf45a5ebf82b17205b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 15 Oct 2019 11:41:22 +0200 Subject: [PATCH 420/484] Use alpha logo by default --- htdocs/core/menus/standard/auguria.lib.php | 2 +- htdocs/core/menus/standard/eldy.lib.php | 5 +++-- htdocs/theme/dolibarr_logo_squarred_alpha.png | Bin 0 -> 8921 bytes 3 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 htdocs/theme/dolibarr_logo_squarred_alpha.png diff --git a/htdocs/core/menus/standard/auguria.lib.php b/htdocs/core/menus/standard/auguria.lib.php index 39e2150280e..5f27a68d63a 100644 --- a/htdocs/core/menus/standard/auguria.lib.php +++ b/htdocs/core/menus/standard/auguria.lib.php @@ -137,7 +137,7 @@ function print_auguria_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout } else { - $urllogo=DOL_URL_ROOT.'/theme/dolibarr_logo_squarred.png'; + $urllogo=DOL_URL_ROOT.'/theme/dolibarr_logo_squarred_alpha.png'; } $title=$langs->trans("GoIntoSetupToChangeLogo"); diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 5d6bf501d82..cf95da29568 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -482,7 +482,7 @@ function print_eldy_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout = $mysoc->logo_squarred_mini=(empty($conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI)?'':$conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI); $logoContainerAdditionalClass = 'backgroundforcompanylogo'; - if(!empty($conf->global->MAIN_INFO_SOCIETE_LOGO_NO_BACKGROUND)){ + if(! empty($conf->global->MAIN_INFO_SOCIETE_LOGO_NO_BACKGROUND)){ $logoContainerAdditionalClass = ''; } @@ -496,7 +496,8 @@ function print_eldy_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout = }*/ else { - $urllogo=DOL_URL_ROOT.'/theme/dolibarr_logo_squarred.png'; + $urllogo=DOL_URL_ROOT.'/theme/dolibarr_logo_squarred_alpha.png'; + $logoContainerAdditionalClass = ''; } $title=$langs->trans("GoIntoSetupToChangeLogo"); diff --git a/htdocs/theme/dolibarr_logo_squarred_alpha.png b/htdocs/theme/dolibarr_logo_squarred_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..06e69ad8b7b66c0fb6b464644290dd3bcc66064e GIT binary patch literal 8921 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 L`rV>CkKg Date: Tue, 15 Oct 2019 14:29:27 +0200 Subject: [PATCH 421/484] Fix non-numeric value encountered on ical export --- htdocs/comm/action/class/actioncomm.class.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/htdocs/comm/action/class/actioncomm.class.php b/htdocs/comm/action/class/actioncomm.class.php index 5803c0afc20..1ce4dce01a0 100644 --- a/htdocs/comm/action/class/actioncomm.class.php +++ b/htdocs/comm/action/class/actioncomm.class.php @@ -1543,6 +1543,19 @@ class ActionComm extends CommonObject $event['uid']='dolibarragenda-'.$this->db->database_name.'-'.$obj->id."@".$_SERVER["SERVER_NAME"]; $event['type']=$type; $datestart=$this->db->jdate($obj->datep)-(empty($conf->global->AGENDA_EXPORT_FIX_TZ)?0:($conf->global->AGENDA_EXPORT_FIX_TZ*3600)); + + // fix for -> Warning: A non-numeric value encountered + if(is_numeric($this->db->jdate($obj->datep2))) + { + $dateend = $this->db->jdate($obj->datep2) + - (empty($conf->global->AGENDA_EXPORT_FIX_TZ) ? 0 : ($conf->global->AGENDA_EXPORT_FIX_TZ * 3600)); + } + else + { + // use start date as fall-back to avoid import erros on empty end date + $datestart = $dateend; + } + $dateend=$this->db->jdate($obj->datep2)-(empty($conf->global->AGENDA_EXPORT_FIX_TZ)?0:($conf->global->AGENDA_EXPORT_FIX_TZ*3600)); $duration=($datestart && $dateend)?($dateend - $datestart):0; $event['summary']=$obj->label.($obj->socname?" (".$obj->socname.")":""); From 6a8e8907efc528598cec19f395a8f97e53399d19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Tue, 15 Oct 2019 17:55:07 +0200 Subject: [PATCH 422/484] Update list.php --- htdocs/comm/propal/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php index 893a3935cba..511166991bf 100644 --- a/htdocs/comm/propal/list.php +++ b/htdocs/comm/propal/list.php @@ -267,7 +267,7 @@ $sql.= ' p.rowid, p.entity, p.note_private, p.total_ht, p.tva as total_vat, p.to $sql.= ' p.datec as date_creation, p.tms as date_update,'; $sql.= " pr.rowid as project_id, pr.ref as project_ref, pr.title as project_label,"; $sql.= ' u.login'; -if (! $user->rights->societe->client->voir && ! $socid) $sql .= ", sc.fk_soc, sc.fk_user,"; +if (! $user->rights->societe->client->voir && ! $socid) $sql .= ", sc.fk_soc, sc.fk_user"; if ($search_categ_cus) $sql .= ", cc.fk_categorie, cc.fk_soc"; // Add fields from extrafields foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); From e94d47daf74ccb62122e236cb6599d1f980f1816 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 15 Oct 2019 19:57:23 +0200 Subject: [PATCH 423/484] Work on MRP module --- htdocs/bom/bom_card.php | 91 ++++++++++++++++++- htdocs/bom/class/bom.class.php | 2 +- htdocs/commande/card.php | 2 +- .../install/mysql/migration/10.0.0-11.0.0.sql | 2 + .../install/mysql/tables/llx_bom_bomline.sql | 2 +- htdocs/mrp/index.php | 3 +- 6 files changed, 97 insertions(+), 5 deletions(-) diff --git a/htdocs/bom/bom_card.php b/htdocs/bom/bom_card.php index 5e24724b6f7..5f3ec89da61 100644 --- a/htdocs/bom/bom_card.php +++ b/htdocs/bom/bom_card.php @@ -42,6 +42,11 @@ $contextpage= GETPOST('contextpage', 'aZ')?GETPOST('contextpage', 'aZ'):'bomcard $backtopage = GETPOST('backtopage', 'alpha'); $lineid = GETPOST('lineid', 'int'); +// PDF +$hidedetails = (GETPOST('hidedetails', 'int') ? GETPOST('hidedetails', 'int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS) ? 1 : 0)); +$hidedesc = (GETPOST('hidedesc', 'int') ? GETPOST('hidedesc', 'int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DESC) ? 1 : 0)); +$hideref = (GETPOST('hideref', 'int') ? GETPOST('hideref', 'int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF) ? 1 : 0)); + // Initialize technical objects $object=new BOM($db); $extrafields = new ExtraFields($db); @@ -173,6 +178,34 @@ if (empty($reshook)) $action = ''; } } + + if ($action == 'confirm_validate' && $confirm == 'yes' && $permissionedit) + { + $result = $object->valid($user); + if ($result >= 0) + { + // Define output language + if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + { + $outputlangs = $langs; + $newlang = ''; + if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) $newlang = GETPOST('lang_id', 'aZ09'); + if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; + if (! empty($newlang)) { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + } + $model=$object->modelpdf; + $ret = $object->fetch($id); // Reload to get new records + + $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); + } + } + else + { + setEventMessages($object->error, $object->errors, 'errors'); + } + } } @@ -286,6 +319,52 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea { $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&lineid='.$lineid, $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_deleteline', '', 0, 1); } + $formconfirm = ''; + + // Confirmation to delete + if ($action == 'delete') { + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('DeleteOrder'), $langs->trans('ConfirmDeleteOrder'), 'confirm_delete', '', 0, 1); + } + + // Confirmation of validation + if ($action == 'validate') + { + // We check that object has a temporary ref + $ref = substr($object->ref, 1, 4); + if ($ref == 'PROV') { + $object->fetch_product(); + $numref = $object->getNextNumRef($object->product); + } else { + $numref = $object->ref; + } + + $text = $langs->trans('ConfirmValidateBom', $numref); + if (! empty($conf->notification->enabled)) + { + require_once DOL_DOCUMENT_ROOT . '/core/class/notify.class.php'; + $notify = new Notify($db); + $text .= '
    '; + $text .= $notify->confirmMessage('BOM_VALIDATE', $object->socid, $object); + } + + $formquestion=array(); + if (! empty($conf->bom->enabled)) + { + $langs->load("mrp"); + require_once DOL_DOCUMENT_ROOT . '/product/class/html.formproduct.class.php'; + $formproduct = new FormProduct($db); + $forcecombo=0; + if ($conf->browser->name == 'ie') $forcecombo = 1; // There is a bug in IE10 that make combo inside popup crazy + $formquestion = array( + // 'text' => $langs->trans("ConfirmClone"), + // array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1), + // array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1), + ); + } + + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('ValidateOrder'), $text, 'confirm_validate', $formquestion, 0, 1, 220); + } + // Clone confirmation if ($action == 'clone') { // Create an array for form @@ -467,10 +546,20 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print ''.$langs->trans('Modify').''."\n"; } + if ($user->rights->bom->write && $object->status == BOM::STATUS_DRAFT) + { + print ''; + } + + if ($user->rights->bom->write && $object->status == BOM::STATUS_VALIDATED) + { + print ''; + } + // Clone if ($user->rights->bom->write) { - print ''; + print ''; } /* diff --git a/htdocs/bom/class/bom.class.php b/htdocs/bom/class/bom.class.php index 73e26de8aea..c8855c9cc03 100644 --- a/htdocs/bom/class/bom.class.php +++ b/htdocs/bom/class/bom.class.php @@ -1052,7 +1052,7 @@ class BOMLine extends CommonObject 'description' => array('type'=>'text', 'label'=>'Description', 'enabled'=>1, 'visible'=>-1, 'position'=>60, 'notnull'=>-1,), 'qty' => array('type'=>'double(24,8)', 'label'=>'Quantity', 'enabled'=>1, 'visible'=>1, 'position'=>100, 'notnull'=>1, 'isameasure'=>'1',), 'efficiency' => array('type'=>'double(8,4)', 'label'=>'ManufacturingEfficiency', 'enabled'=>1, 'visible'=>1, 'default'=>1, 'position'=>110, 'notnull'=>1, 'css'=>'maxwidth50imp', 'help'=>'ValueOfMeansLoss'), - 'position' => array('type'=>'integer', 'label'=>'Rank', 'enabled'=>1, 'visible'=>0, 'position'=>200, 'notnull'=>1,), + 'position' => array('type'=>'integer', 'label'=>'Rank', 'enabled'=>1, 'visible'=>0, 'default'=>0, 'position'=>200, 'notnull'=>1,), 'import_key' => array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'position'=>1000, 'notnull'=>-1,), ); public $rowid; diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index 968607ed660..0d13537037c 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -1924,7 +1924,7 @@ if ($action == 'create' && $usercancreate) // Confirmation of validation if ($action == 'validate') { - // on verifie si l'objet est en numerotation provisoire + // We check that object has a temporary ref $ref = substr($object->ref, 1, 4); if ($ref == 'PROV') { $numref = $object->getNextNumRef($soc); diff --git a/htdocs/install/mysql/migration/10.0.0-11.0.0.sql b/htdocs/install/mysql/migration/10.0.0-11.0.0.sql index 42097685f6f..1a8379d857a 100644 --- a/htdocs/install/mysql/migration/10.0.0-11.0.0.sql +++ b/htdocs/install/mysql/migration/10.0.0-11.0.0.sql @@ -50,6 +50,8 @@ UPDATE llx_c_units SET label = 'SurfaceUnitm2' WHERE code IN ('M2'); -- For v11 ALTER TABLE llx_bom_bom ADD COLUMN duration double(8,4) DEFAULT NULL; +ALTER TABLE llx_bom_bomline ADD COLUMN position integer NOT NULL DEFAULT 0; +ALTER TABLE llx_bom_bomline DROP COLUMN rank; create table llx_categorie_warehouse ( diff --git a/htdocs/install/mysql/tables/llx_bom_bomline.sql b/htdocs/install/mysql/tables/llx_bom_bomline.sql index cb7079cf16a..330f1bb18d6 100644 --- a/htdocs/install/mysql/tables/llx_bom_bomline.sql +++ b/htdocs/install/mysql/tables/llx_bom_bomline.sql @@ -23,6 +23,6 @@ CREATE TABLE llx_bom_bomline( import_key varchar(14), qty double(24,8) NOT NULL, efficiency double(8,4) NOT NULL DEFAULT 1, - position integer NOT NULL + position integer NOT NULL DEFAULT 0 -- END MODULEBUILDER FIELDS ) ENGINE=innodb; diff --git a/htdocs/mrp/index.php b/htdocs/mrp/index.php index f5f723a8fac..b6c20cde620 100644 --- a/htdocs/mrp/index.php +++ b/htdocs/mrp/index.php @@ -175,7 +175,7 @@ print '
    '; */ $max=5; -$sql = "SELECT a.rowid, a.status, a.ref, a.tms as datem"; +$sql = "SELECT a.rowid, a.status, a.ref, a.tms as datem, a.status"; $sql.= " FROM ".MAIN_DB_PREFIX."bom_bom as a"; $sql.= " WHERE a.entity IN (".getEntity('bom').")"; $sql.= $db->order("a.tms", "DESC"); @@ -200,6 +200,7 @@ if ($resql) $staticbom->id=$obj->rowid; $staticbom->ref=$obj->ref; $staticbom->date_modification=$obj->datem; + $staticbom->status=$obj->status; print '
    '; print ''; From d2eeb9e749711b5363af954ec7889fd501588ddc Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 15 Oct 2019 19:59:16 +0200 Subject: [PATCH 424/484] Wor kon BOM --- htdocs/mrp/ChangeLog.md | 5 + htdocs/mrp/README.md | 3 + htdocs/mrp/admin/setup.php | 151 ++++ htdocs/mrp/class/mo.class.php | 746 ++++++++++++++++++ htdocs/mrp/core/modules/modMrp.class.php | 349 ++++++++ htdocs/mrp/lib/mrp.lib.php | 54 ++ htdocs/mrp/lib/mrp_mo.lib.php | 83 ++ htdocs/mrp/mo_agenda.php | 262 ++++++ htdocs/mrp/mo_card.php | 550 +++++++++++++ htdocs/mrp/mo_document.php | 167 ++++ htdocs/mrp/mo_list.php | 602 ++++++++++++++ htdocs/mrp/mo_note.php | 165 ++++ htdocs/mrp/modulebuilder.txt | 3 + htdocs/mrp/sql/llx_mrp_mo.key.sql | 35 + htdocs/mrp/sql/llx_mrp_mo.sql | 39 + htdocs/mrp/sql/llx_mrp_mo_extrafields.key.sql | 19 + htdocs/mrp/sql/llx_mrp_mo_extrafields.sql | 23 + 17 files changed, 3256 insertions(+) create mode 100644 htdocs/mrp/ChangeLog.md create mode 100644 htdocs/mrp/README.md create mode 100644 htdocs/mrp/admin/setup.php create mode 100644 htdocs/mrp/class/mo.class.php create mode 100644 htdocs/mrp/core/modules/modMrp.class.php create mode 100644 htdocs/mrp/lib/mrp.lib.php create mode 100644 htdocs/mrp/lib/mrp_mo.lib.php create mode 100644 htdocs/mrp/mo_agenda.php create mode 100644 htdocs/mrp/mo_card.php create mode 100644 htdocs/mrp/mo_document.php create mode 100644 htdocs/mrp/mo_list.php create mode 100644 htdocs/mrp/mo_note.php create mode 100644 htdocs/mrp/modulebuilder.txt create mode 100644 htdocs/mrp/sql/llx_mrp_mo.key.sql create mode 100644 htdocs/mrp/sql/llx_mrp_mo.sql create mode 100644 htdocs/mrp/sql/llx_mrp_mo_extrafields.key.sql create mode 100644 htdocs/mrp/sql/llx_mrp_mo_extrafields.sql diff --git a/htdocs/mrp/ChangeLog.md b/htdocs/mrp/ChangeLog.md new file mode 100644 index 00000000000..416bad1d559 --- /dev/null +++ b/htdocs/mrp/ChangeLog.md @@ -0,0 +1,5 @@ +# CHANGELOG MRP FOR DOLIBARR ERP CRM + +## 1.0 +Initial version + diff --git a/htdocs/mrp/README.md b/htdocs/mrp/README.md new file mode 100644 index 00000000000..b23e31fb577 --- /dev/null +++ b/htdocs/mrp/README.md @@ -0,0 +1,3 @@ +# MRP Module + +Module to manage Manufacturing Orders (MO) \ No newline at end of file diff --git a/htdocs/mrp/admin/setup.php b/htdocs/mrp/admin/setup.php new file mode 100644 index 00000000000..8d7df29b383 --- /dev/null +++ b/htdocs/mrp/admin/setup.php @@ -0,0 +1,151 @@ + + * Copyright (C) 2019 Alicealalalamdskfldmjgdfgdfhfghgfh Adminson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file mrp/admin/setup.php + * \ingroup mrp + * \brief Mrp setup page. + */ + +// Load Dolibarr environment +$res=0; +// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined) +if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php"; +// Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME +$tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1; +while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; } +if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include substr($tmp, 0, ($i+1))."/main.inc.php"; +if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include dirname(substr($tmp, 0, ($i+1)))."/main.inc.php"; +// Try main.inc.php using relative path +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"); + +global $langs, $user; + +// Libraries +require_once DOL_DOCUMENT_ROOT . "/core/lib/admin.lib.php"; +require_once '../lib/mrp.lib.php'; +//require_once "../class/myclass.class.php"; + +// Translations +$langs->loadLangs(array("admin", "mrp")); + +// Access control +if (! $user->admin) accessforbidden(); + +// Parameters +$action = GETPOST('action', 'alpha'); +$backtopage = GETPOST('backtopage', 'alpha'); + +$arrayofparameters=array( + 'MRP_MYPARAM1'=>array('css'=>'minwidth200','enabled'=>1), + 'MRP_MYPARAM2'=>array('css'=>'minwidth500','enabled'=>1) +); + + + +/* + * Actions + */ + +if ((float) DOL_VERSION >= 6) +{ + include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; +} + + + +/* + * View + */ + +$page_name = "MrpSetup"; +llxHeader('', $langs->trans($page_name)); + +// Subheader +$linkback = ''.$langs->trans("BackToModuleList").''; + +print load_fiche_titre($langs->trans($page_name), $linkback, 'object_mrp'); + +// Configuration header +$head = mrpAdminPrepareHead(); +dol_fiche_head($head, 'settings', '', -1, "mrp"); + +// Setup page goes here +echo ''.$langs->trans("MrpSetupPage").'

    '; + + +if ($action == 'edit') +{ + print '
    '; + print ''; + print ''; + + print '
    '.img_picto('', $picto, 'id="pictotitle"', $pictoisfullpath).''; + print ''; if ($picto && $titre) print img_picto('', $picto, 'class="hideonsmartphone valignmiddle opacityhigh pictotitle widthpictotitle"', $pictoisfullpath); print '
    '.$titre; if (!empty($titre) && $savtotalnboflines >= 0 && (string) $savtotalnboflines != '') print ' ('.$totalnboflines.')'; diff --git a/htdocs/exports/class/export.class.php b/htdocs/exports/class/export.class.php index cd4d70c2518..d6b6a8676ae 100644 --- a/htdocs/exports/class/export.class.php +++ b/htdocs/exports/class/export.class.php @@ -399,8 +399,7 @@ class Export $szFilterField=''; break; case 'Status': - if (! empty($conf->global->MAIN_ACTIVATE_HTML5)) $szFilterField=''; - else $szFilterField=''; + $szFilterField=''; break; case 'Boolean': $szFilterField='
    ' . $langs->trans("AssignedTo") . ''; + print '
    '; + print ''; + } + print '
    '; + print $langs->trans("AssignedTo"); + if ($object->fk_statut < 8 && GETPOST('set', 'alpha') != "assign_ticket" && $user->rights->ticket->manage) { + print '' . img_edit($langs->trans('Modify'), '') . '
    '; + print '
    '; if ($object->fk_user_assign > 0) { $userstat->fetch($object->fk_user_assign); print $userstat->getNomUrl(1); @@ -892,9 +899,6 @@ if (empty($action) || $action == 'view' || $action == 'addlink' || $action == 'd print ' '; print ''; } - if ($object->fk_statut < 8 && GETPOST('set', 'alpha') != "assign_ticket" && $user->rights->ticket->manage) { - print '' . img_picto('', 'edit') . ' ' . $langs->trans('Modify') . ''; - } print '
    '; if ($user->rights->ticket->manage) { - print '' . img_edit($langs->trans('Modify')) . ''; + print '' . img_edit($langs->trans('Modify')) . ''; } print '
    '.$holidaystatic->getNomUrl(1).''.$userstatic->getNomUrl(-1, 'leave').''.$userstatic->getNomUrl(-1, 'leave').''.$typeleaves[$obj->fk_type]['label'].'
    '.$deplacementstatic->getNomUrl(1).''.$userstatic->getNomUrl(-1).''.$userstatic->getNomUrl(-1).''.$obj->km.''.dol_print_date($db->jdate($obj->dm), 'day').''.$deplacementstatic->LibStatut($obj->fk_statut, 3).'
    '.$expensereportstatic->getNomUrl(1).''.$userstatic->getNomUrl(-1).''.$userstatic->getNomUrl(-1).''.price($obj->total_ttc).''.dol_print_date($db->jdate($obj->dm), 'day').''.$expensereportstatic->LibStatut($obj->status, 3).'
    '.$staticbom->getNomUrl(1, 32).'
    '; + print ''; + + foreach($arrayofparameters as $key => $val) + { + print ''; + } + print '
    '.$langs->trans("Parameter").''.$langs->trans("Value").'
    '; + $tooltiphelp = (($langs->trans($key.'Tooltip') != $key.'Tooltip') ? $langs->trans($key.'Tooltip') : ''); + print $form->textwithpicto($langs->trans($key), $tooltiphelp); + print '
    '; + + print '
    '; + print ''; + print '
    '; + + print ''; + print '
    '; +} +else +{ + if (! empty($arrayofparameters)) + { + print ''; + print ''; + + foreach($arrayofparameters as $key => $val) + { + print ''; + } + + print '
    '.$langs->trans("Parameter").''.$langs->trans("Value").'
    '; + $tooltiphelp = (($langs->trans($key.'Tooltip') != $key.'Tooltip') ? $langs->trans($key.'Tooltip') : ''); + print $form->textwithpicto($langs->trans($key), $tooltiphelp); + print '' . $conf->global->$key . '
    '; + + print '
    '; + print ''.$langs->trans("Modify").''; + print '
    '; + } + else + { + print '
    '.$langs->trans("NothingToSetup"); + } +} + + +// Page end +dol_fiche_end(); + +llxFooter(); +$db->close(); diff --git a/htdocs/mrp/class/mo.class.php b/htdocs/mrp/class/mo.class.php new file mode 100644 index 00000000000..a459a582bba --- /dev/null +++ b/htdocs/mrp/class/mo.class.php @@ -0,0 +1,746 @@ + + * Copyright (C) ---Put here your own copyright and developer email--- + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file class/mo.class.php + * \ingroup mrp + * \brief This file is a CRUD class file for Mo (Create/Read/Update/Delete) + */ + +// Put here all includes required by your class file +require_once DOL_DOCUMENT_ROOT . '/core/class/commonobject.class.php'; +//require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php'; +//require_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php'; + +/** + * Class for Mo + */ +class Mo extends CommonObject +{ + /** + * @var string ID to identify managed object + */ + public $element = 'mo'; + + /** + * @var string Name of table without prefix where object is stored + */ + public $table_element = 'mrp_mo'; + + /** + * @var int Does mo support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by societe + */ + public $ismultientitymanaged = 0; + + /** + * @var int Does mo support extrafields ? 0=No, 1=Yes + */ + public $isextrafieldmanaged = 1; + + /** + * @var string String with name of icon for mo. Must be the part after the 'object_' into object_mo.png + */ + public $picto = 'mrp'; + + + const STATUS_DRAFT = 0; + const STATUS_VALIDATED = 1; // To produce + const STATUS_INPROGRESS = 2; + const STATUS_DONE = 3; + const STATUS_CANCELED = -1; + + + + /** + * 'type' if the field format ('integer', 'integer:Class:pathtoclass', 'varchar(x)', 'double(24,8)', 'text', 'html', 'datetime', 'timestamp', 'float') + * 'label' the translation key. + * 'enabled' is a condition when the field must be managed. + * 'visible' says if field is visible in list (Examples: 0=Not visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create). Using a negative value means field is not shown by default on list but can be selected for viewing) + * 'noteditable' says if field is not editable (1 or 0) + * 'notnull' is set to 1 if not null in database. Set to -1 if we must set data to null if empty ('' or 0). + * 'default' is a default value for creation (can still be replaced by the global setup of default values) + * 'index' if we want an index in database. + * 'foreignkey'=>'tablename.field' if the field is a foreign key (it is recommanded to name the field fk_...). + * 'position' is the sort order of field. + * 'searchall' is 1 if we want to search in this field when making a search from the quick search button. + * 'isameasure' must be set to 1 if you want to have a total on list for this field. Field type must be summable like integer or double(24,8). + * 'css' is the CSS style to use on field. For example: 'maxwidth200' + * 'help' is a string visible as a tooltip on field + * 'comment' is not used. You can store here any text of your choice. It is not used by application. + * 'showoncombobox' if value of the field must be visible into the label of the combobox that list record + * 'arraykeyval' to set list of value if type is a list of predefined values. For example: array("0"=>"Draft","1"=>"Active","-1"=>"Cancel") + */ + + // BEGIN MODULEBUILDER PROPERTIES + /** + * @var array Array with all fields and their property. Do not use it as a static var. It may be modified by constructor. + */ + public $fields=array( + 'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-1, 'position'=>1, 'notnull'=>1, 'index'=>1, 'comment'=>"Id",), + 'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>1, 'position'=>10, 'notnull'=>1, 'default'=>'(PROV)', 'index'=>1, 'searchall'=>1, 'comment'=>"Reference of object", 'showoncombobox'=>'1',), + 'entity' => array('type'=>'integer', 'label'=>'Entity', 'enabled'=>1, 'visible'=>-1, 'position'=>20, 'notnull'=>1, 'default'=>'1', 'index'=>1,), + 'label' => array('type'=>'varchar(255)', 'label'=>'Label', 'enabled'=>1, 'visible'=>1, 'position'=>30, 'notnull'=>-1, 'searchall'=>1, 'showoncombobox'=>'1',), + 'qty' => array('type'=>'real', 'label'=>'QtyToProduce', 'enabled'=>1, 'visible'=>1, 'position'=>40, 'notnull'=>1, 'index'=>1, 'comment'=>"Qty to produce",), + 'fk_soc' => array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'enabled'=>1, 'visible'=>-1, 'position'=>50, 'notnull'=>-1, 'index'=>1), + 'note_public' => array('type'=>'html', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>-1, 'position'=>61, 'notnull'=>-1,), + 'note_private' => array('type'=>'html', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>-1, 'position'=>62, 'notnull'=>-1,), + 'date_creation' => array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-2, 'position'=>500, 'notnull'=>1,), + 'tms' => array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-2, 'position'=>501, 'notnull'=>-1,), + 'fk_user_creat' => array('type'=>'integer', 'label'=>'UserAuthor', 'enabled'=>1, 'visible'=>-2, 'position'=>510, 'notnull'=>1, 'foreignkey'=>'user.rowid',), + 'fk_user_modif' => array('type'=>'integer', 'label'=>'UserModif', 'enabled'=>1, 'visible'=>-2, 'position'=>511, 'notnull'=>-1,), + 'import_key' => array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'position'=>1000, 'notnull'=>-1,), + 'fk_product' => array('type'=>'integer:Product:product/class/product.class.php', 'label'=>'Product', 'enabled'=>1, 'visible'=>1, 'position'=>35, 'notnull'=>1, 'index'=>1, 'comment'=>"Product to produce",), + 'date_start_planned' => array('type'=>'datetime', 'label'=>'DateStartPlannedMo', 'enabled'=>1, 'visible'=>1, 'position'=>55, 'notnull'=>-1, 'index'=>1, 'help'=>'KeepEmptyForAsap'), + 'date_end_planned' => array('type'=>'datetime', 'label'=>'DateEndPlannedMo', 'enabled'=>1, 'visible'=>1, 'position'=>56, 'notnull'=>-1, 'index'=>1,), + 'fk_bom' => array('type'=>'integer:Bom:bom/class/bom.class.php', 'label'=>'BOM', 'enabled'=>1, 'visible'=>1, 'position'=>33, 'notnull'=>-1, 'index'=>1, 'comment'=>"Original BOM",), + 'fk_project' => array('type'=>'integer:Project:projet/class/project.class.php', 'label'=>'Project', 'enabled'=>1, 'visible'=>-1, 'position'=>52, 'notnull'=>-1, 'index'=>1,), + 'status' => array('type'=>'integer', 'label'=>'Status', 'enabled'=>1, 'visible'=>4, 'position'=>1000, 'default'=>0, 'notnull'=>1, 'index'=>1, 'arrayofkeyval'=>array('0'=>'Brouillon', '1'=>'Validated', '2'=>'InProgress', '3'=>'Done', '-1'=>'Canceled')), + ); + public $rowid; + public $ref; + public $entity; + public $label; + public $qty; + public $fk_soc; + public $note_public; + public $note_private; + public $date_creation; + public $tms; + public $fk_user_creat; + public $fk_user_modif; + public $import_key; + public $status; + public $fk_product; + public $date_start_planned; + public $date_end_planned; + public $fk_bom; + public $fk_project; + // END MODULEBUILDER PROPERTIES + + + // If this object has a subtable with lines + + /** + * @var int Name of subtable line + */ + //public $table_element_line = 'mrp_moline'; + + /** + * @var int Field with ID of parent key if this field has a parent + */ + //public $fk_element = 'fk_mo'; + + /** + * @var int Name of subtable class that manage subtable lines + */ + //public $class_element_line = 'Moline'; + + /** + * @var array List of child tables. To test if we can delete object. + */ + //protected $childtables=array(); + + /** + * @var array List of child tables. To know object to delete on cascade. + */ + //protected $childtablesoncascade=array('mrp_modet'); + + /** + * @var MoLine[] Array of subtable lines + */ + //public $lines = array(); + + + + /** + * Constructor + * + * @param DoliDb $db Database handler + */ + public function __construct(DoliDB $db) + { + global $conf, $langs; + + $this->db = $db; + + if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) $this->fields['rowid']['visible']=0; + if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) $this->fields['entity']['enabled']=0; + + // Unset fields that are disabled + foreach($this->fields as $key => $val) + { + if (isset($val['enabled']) && empty($val['enabled'])) + { + unset($this->fields[$key]); + } + } + + // Translate some data of arrayofkeyval + foreach($this->fields as $key => $val) + { + if (is_array($val['arrayofkeyval'])) + { + foreach($val['arrayofkeyval'] as $key2 => $val2) + { + $this->fields[$key]['arrayofkeyval'][$key2]=$langs->trans($val2); + } + } + } + } + + /** + * Create object into database + * + * @param User $user User that creates + * @param bool $notrigger false=launch triggers after, true=disable triggers + * @return int <0 if KO, Id of created object if OK + */ + public function create(User $user, $notrigger = false) + { + return $this->createCommon($user, $notrigger); + } + + /** + * Clone an object into another one + * + * @param User $user User that creates + * @param int $fromid Id of object to clone + * @return mixed New object created, <0 if KO + */ + public function createFromClone(User $user, $fromid) + { + global $langs, $extrafields; + $error = 0; + + dol_syslog(__METHOD__, LOG_DEBUG); + + $object = new self($this->db); + + $this->db->begin(); + + // Load source object + $result = $object->fetchCommon($fromid); + if ($result > 0 && ! empty($object->table_element_line)) $object->fetchLines(); + + // get lines so they will be clone + //foreach($this->lines as $line) + // $line->fetch_optionals(); + + // Reset some properties + unset($object->id); + unset($object->fk_user_creat); + unset($object->import_key); + + + // Clear fields + $object->ref = "copy_of_".$object->ref; + $object->title = $langs->trans("CopyOf")." ".$object->title; + // ... + // Clear extrafields that are unique + if (is_array($object->array_options) && count($object->array_options) > 0) + { + $extrafields->fetch_name_optionals_label($this->table_element); + foreach($object->array_options as $key => $option) + { + $shortkey = preg_replace('/options_/', '', $key); + if (! empty($extrafields->attributes[$this->element]['unique'][$shortkey])) + { + //var_dump($key); var_dump($clonedObj->array_options[$key]); exit; + unset($object->array_options[$key]); + } + } + } + + // Create clone + $object->context['createfromclone'] = 'createfromclone'; + $result = $object->createCommon($user); + if ($result < 0) { + $error++; + $this->error = $object->error; + $this->errors = $object->errors; + } + + if (! $error) + { + // copy internal contacts + if ($this->copy_linked_contact($object, 'internal') < 0) + { + $error++; + } + } + + if (! $error) + { + // copy external contacts if same company + if (property_exists($this, 'socid') && $this->socid == $object->socid) + { + if ($this->copy_linked_contact($object, 'external') < 0) + $error++; + } + } + + unset($object->context['createfromclone']); + + // End + if (!$error) { + $this->db->commit(); + return $object; + } else { + $this->db->rollback(); + return -1; + } + } + + /** + * Load object in memory from the database + * + * @param int $id Id object + * @param string $ref Ref + * @return int <0 if KO, 0 if not found, >0 if OK + */ + public function fetch($id, $ref = null) + { + $result = $this->fetchCommon($id, $ref); + if ($result > 0 && ! empty($this->table_element_line)) $this->fetchLines(); + return $result; + } + + /** + * Load object lines in memory from the database + * + * @return int <0 if KO, 0 if not found, >0 if OK + */ + public function fetchLines() + { + $this->lines=array(); + + $result = $this->fetchLinesCommon(); + return $result; + } + + + /** + * Load list of objects in memory from the database. + * + * @param string $sortorder Sort Order + * @param string $sortfield Sort field + * @param int $limit limit + * @param int $offset Offset + * @param array $filter Filter array. Example array('field'=>'valueforlike', 'customurl'=>...) + * @param string $filtermode Filter mode (AND or OR) + * @return array|int int <0 if KO, array of pages if OK + */ + public function fetchAll($sortorder = '', $sortfield = '', $limit = 0, $offset = 0, array $filter = array(), $filtermode = 'AND') + { + global $conf; + + dol_syslog(__METHOD__, LOG_DEBUG); + + $records=array(); + + $sql = 'SELECT '; + $sql .= $this->getFieldList(); + $sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element. ' as t'; + if (isset($this->ismultientitymanaged) && $this->ismultientitymanaged == 1) $sql .= ' WHERE t.entity IN ('.getEntity($this->table_element).')'; + else $sql .= ' WHERE 1 = 1'; + // Manage filter + $sqlwhere = array(); + if (count($filter) > 0) { + foreach ($filter as $key => $value) { + if ($key=='t.rowid') { + $sqlwhere[] = $key . '='. $value; + } + elseif (strpos($key, 'date') !== false) { + $sqlwhere[] = $key.' = \''.$this->db->idate($value).'\''; + } + elseif ($key=='customsql') { + $sqlwhere[] = $value; + } + else { + $sqlwhere[] = $key . ' LIKE \'%' . $this->db->escape($value) . '%\''; + } + } + } + if (count($sqlwhere) > 0) { + $sql .= ' AND (' . implode(' '.$filtermode.' ', $sqlwhere).')'; + } + + if (!empty($sortfield)) { + $sql .= $this->db->order($sortfield, $sortorder); + } + if (!empty($limit)) { + $sql .= ' ' . $this->db->plimit($limit, $offset); + } + + $resql = $this->db->query($sql); + if ($resql) { + $num = $this->db->num_rows($resql); + $i = 0; + while ($i < min($limit, $num)) + { + $obj = $this->db->fetch_object($resql); + + $record = new self($this->db); + $record->setVarsFromFetchObj($obj); + + $records[$record->id] = $record; + + $i++; + } + $this->db->free($resql); + + return $records; + } else { + $this->errors[] = 'Error ' . $this->db->lasterror(); + dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR); + + return -1; + } + } + + /** + * Update object into database + * + * @param User $user User that modifies + * @param bool $notrigger false=launch triggers after, true=disable triggers + * @return int <0 if KO, >0 if OK + */ + public function update(User $user, $notrigger = false) + { + return $this->updateCommon($user, $notrigger); + } + + /** + * Delete object in database + * + * @param User $user User that deletes + * @param bool $notrigger false=launch triggers after, true=disable triggers + * @return int <0 if KO, >0 if OK + */ + public function delete(User $user, $notrigger = false) + { + return $this->deleteCommon($user, $notrigger); + //return $this->deleteCommon($user, $notrigger, 1); + } + + /** + * Delete a line of object in database + * + * @param User $user User that delete + * @param int $idline Id of line to delete + * @param bool $notrigger false=launch triggers after, true=disable triggers + * @return int >0 if OK, <0 if KO + */ + public function deleteLine(User $user, $idline, $notrigger = false) + { + if ($this->status < 0) + { + $this->error = 'ErrorDeleteLineNotAllowedByObjectStatus'; + return -2; + } + + return $this->deleteLineCommon($user, $idline, $notrigger); + } + + /** + * Return a link to the object card (with optionaly the picto) + * + * @param int $withpicto Include picto in link (0=No picto, 1=Include picto into link, 2=Only picto) + * @param string $option On what the link point to ('nolink', ...) + * @param int $notooltip 1=Disable tooltip + * @param string $morecss Add more css on link + * @param int $save_lastsearch_value -1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking + * @return string String with URL + */ + public function getNomUrl($withpicto = 0, $option = '', $notooltip = 0, $morecss = '', $save_lastsearch_value = -1) + { + global $conf, $langs, $hookmanager; + + if (! empty($conf->dol_no_mouse_hover)) $notooltip=1; // Force disable tooltips + + $result = ''; + + $label = '' . $langs->trans("Mo") . ''; + $label.= '
    '; + $label.= '' . $langs->trans('Ref') . ': ' . $this->ref; + + $url = dol_buildpath('/mrp/mo_card.php', 1).'?id='.$this->id; + + if ($option != 'nolink') + { + // Add param to save lastsearch_values or not + $add_save_lastsearch_values=($save_lastsearch_value == 1 ? 1 : 0); + if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) $add_save_lastsearch_values=1; + if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1'; + } + + $linkclose=''; + if (empty($notooltip)) + { + if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) + { + $label=$langs->trans("ShowMo"); + $linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"'; + } + $linkclose.=' title="'.dol_escape_htmltag($label, 1).'"'; + $linkclose.=' class="classfortooltip'.($morecss?' '.$morecss:'').'"'; + } + else $linkclose = ($morecss?' class="'.$morecss.'"':''); + + $linkstart = ''; + $linkend=''; + + $result .= $linkstart; + if ($withpicto) $result.=img_object(($notooltip?'':$label), ($this->picto?$this->picto:'generic'), ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1); + if ($withpicto != 2) $result.= $this->ref; + $result .= $linkend; + //if ($withpicto != 2) $result.=(($addlabel && $this->label) ? $sep . dol_trunc($this->label, ($addlabel > 1 ? $addlabel : 0)) : ''); + + global $action,$hookmanager; + $hookmanager->initHooks(array('modao')); + $parameters=array('id'=>$this->id, 'getnomurl'=>$result); + $reshook=$hookmanager->executeHooks('getNomUrl', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks + if ($reshook > 0) $result = $hookmanager->resPrint; + else $result .= $hookmanager->resPrint; + + return $result; + } + + /** + * Return label of the status + * + * @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 6=Long label + Picto + * @return string Label of status + */ + public function getLibStatut($mode = 0) + { + return $this->LibStatut($this->status, $mode); + } + + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + /** + * Return the status + * + * @param int $status Id status + * @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 6=Long label + Picto + * @return string Label of status + */ + public function LibStatut($status, $mode = 0) + { + // phpcs:enable + if (empty($this->labelstatus)) + { + global $langs; + //$langs->load("mrp"); + $this->labelstatus[self::STATUS_DRAFT] = $langs->trans('Draft'); + $this->labelstatus[self::STATUS_VALIDATED] = $langs->trans('Enabled'); + $this->labelstatus[self::STATUS_CANCELED] = $langs->trans('Disabled'); + } + + if ($mode == 0) + { + return $this->labelstatus[$status]; + } + elseif ($mode == 1) + { + return $this->labelstatus[$status]; + } + elseif ($mode == 2) + { + return img_picto($this->labelstatus[$status], 'statut'.$status, '', false, 0, 0, '', 'valignmiddle').' '.$this->labelstatus[$status]; + } + elseif ($mode == 3) + { + return img_picto($this->labelstatus[$status], 'statut'.$status, '', false, 0, 0, '', 'valignmiddle'); + } + elseif ($mode == 4) + { + return img_picto($this->labelstatus[$status], 'statut'.$status, '', false, 0, 0, '', 'valignmiddle').' '.$this->labelstatus[$status]; + } + elseif ($mode == 5) + { + return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status], 'statut'.$status, '', false, 0, 0, '', 'valignmiddle'); + } + elseif ($mode == 6) + { + return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status], 'statut'.$status, '', false, 0, 0, '', 'valignmiddle'); + } + } + + /** + * Load the info information in the object + * + * @param int $id Id of object + * @return void + */ + public function info($id) + { + $sql = 'SELECT rowid, date_creation as datec, tms as datem,'; + $sql.= ' fk_user_creat, fk_user_modif'; + $sql.= ' FROM '.MAIN_DB_PREFIX.$this->table_element.' as t'; + $sql.= ' WHERE t.rowid = '.$id; + $result=$this->db->query($sql); + if ($result) + { + if ($this->db->num_rows($result)) + { + $obj = $this->db->fetch_object($result); + $this->id = $obj->rowid; + if ($obj->fk_user_author) + { + $cuser = new User($this->db); + $cuser->fetch($obj->fk_user_author); + $this->user_creation = $cuser; + } + + if ($obj->fk_user_valid) + { + $vuser = new User($this->db); + $vuser->fetch($obj->fk_user_valid); + $this->user_validation = $vuser; + } + + if ($obj->fk_user_cloture) + { + $cluser = new User($this->db); + $cluser->fetch($obj->fk_user_cloture); + $this->user_cloture = $cluser; + } + + $this->date_creation = $this->db->jdate($obj->datec); + $this->date_modification = $this->db->jdate($obj->datem); + $this->date_validation = $this->db->jdate($obj->datev); + } + + $this->db->free($result); + } + else + { + dol_print_error($this->db); + } + } + + /** + * Initialise object with example values + * Id must be 0 if object instance is a specimen + * + * @return void + */ + public function initAsSpecimen() + { + $this->initAsSpecimenCommon(); + } + + /** + * Create an array of lines + * + * @return array|int array of lines if OK, <0 if KO + */ + public function getLinesArray() + { + $this->lines=array(); + + $objectline = new MoLine($this->db); + $result = $objectline->fetchAll('ASC', 'position', 0, 0, array('customsql'=>'fk_mo = '.$this->id)); + + if (is_numeric($result)) + { + $this->error = $this->error; + $this->errors = $this->errors; + return $result; + } + else + { + $this->lines = $result; + return $this->lines; + } + } + + /** + * Create a document onto disk according to template module. + * + * @param string $modele Force template to use ('' to not force) + * @param Translate $outputlangs objet lang a utiliser pour traduction + * @param int $hidedetails Hide details of lines + * @param int $hidedesc Hide description + * @param int $hideref Hide ref + * @param null|array $moreparams Array to provide more information + * @return int 0 if KO, 1 if OK + */ + public function generateDocument($modele, $outputlangs, $hidedetails = 0, $hidedesc = 0, $hideref = 0, $moreparams = null) + { + global $conf,$langs; + + $langs->load("mrp"); + + if (! dol_strlen($modele)) { + + $modele = 'standard'; + + if ($this->modelpdf) { + $modele = $this->modelpdf; + } elseif (! empty($conf->global->MO_ADDON_PDF)) { + $modele = $conf->global->MO_ADDON_PDF; + } + } + + $modelpath = "core/modules/mrp/doc/"; + + return $this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams); + } + + /** + * Action executed by scheduler + * CAN BE A CRON TASK. In such a case, parameters come from the schedule job setup field 'Parameters' + * + * @return int 0 if OK, <>0 if KO (this function is used also by cron so only 0 is OK) + */ + //public function doScheduledJob($param1, $param2, ...) + public function doScheduledJob() + { + global $conf, $langs; + + //$conf->global->SYSLOG_FILE = 'DOL_DATA_ROOT/dolibarr_mydedicatedlofile.log'; + + $error = 0; + $this->output = ''; + $this->error=''; + + dol_syslog(__METHOD__, LOG_DEBUG); + + $now = dol_now(); + + $this->db->begin(); + + // ... + + $this->db->commit(); + + return $error; + } +} + +/** + * Class MoLine. You can also remove this and generate a CRUD class for lines objects. + */ +class MoLine +{ + // To complete with content of an object MoLine + // We should have a field rowid, fk_mo and position +} diff --git a/htdocs/mrp/core/modules/modMrp.class.php b/htdocs/mrp/core/modules/modMrp.class.php new file mode 100644 index 00000000000..7e57f70c6c8 --- /dev/null +++ b/htdocs/mrp/core/modules/modMrp.class.php @@ -0,0 +1,349 @@ + + * Copyright (C) 2018-2019 Nicolas ZABOURI + * Copyright (C) 2019 Frédéric France + * Copyright (C) 2019 Alicealalalamdskfldmjgdfgdfhfghgfh Adminson + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \defgroup mrp Module Mrp + * \brief Mrp module descriptor. + * + * \file htdocs/mrp/core/modules/modMrp.class.php + * \ingroup mrp + * \brief Description and activation file for module Mrp + */ +include_once DOL_DOCUMENT_ROOT .'/core/modules/DolibarrModules.class.php'; + +/** + * Description and activation class for module Mrp + */ +class modMrp extends DolibarrModules +{ + /** + * Constructor. Define names, constants, directories, boxes, permissions + * + * @param DoliDB $db Database handler + */ + public function __construct($db) + { + global $langs,$conf; + $this->db = $db; + + // Id for module (must be unique). + // Use here a free id (See in Home -> System information -> Dolibarr for list of used modules id). + $this->numero = 660; // TODO Go on page https://wiki.dolibarr.org/index.php/List_of_modules_id to reserve an id number for your module + // Key text used to identify module (for permissions, menus, etc...) + $this->rights_class = 'mrp'; + // Family can be 'base' (core modules),'crm','financial','hr','projects','products','ecm','technic' (transverse modules),'interface' (link with external tools),'other','...' + // It is used to group modules by family in module setup page + $this->family = "products"; + // Module position in the family on 2 digits ('01', '10', '20', ...) + $this->module_position = '62'; + // Gives the possibility for the module, to provide his own family info and position of this family (Overwrite $this->family and $this->module_position. Avoid this) + //$this->familyinfo = array('myownfamily' => array('position' => '01', 'label' => $langs->trans("MyOwnFamily"))); + // Module label (no space allowed), used if translation string 'ModuleMrpName' not found (Mrp is name of module). + $this->name = preg_replace('/^mod/i', '', get_class($this)); + // Module description, used if translation string 'ModuleMrpDesc' not found (Mrp is name of module). + $this->description = "MRPDescription"; + // Used only if file README.md and README-LL.md not found. + $this->descriptionlong = "Module to Manage Manufacturing Orders (MO)"; + // Possible values for version are: 'development', 'experimental', 'dolibarr', 'dolibarr_deprecated' or a version string like 'x.y.z' + $this->version = 'dolibarr'; + // Url to the file with your last numberversion of this module + //$this->url_last_version = 'http://www.example.com/versionmodule.txt'; + + // Key used in llx_const table to save module status enabled/disabled (where MRP is value of property name of module in uppercase) + $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name); + // Name of image file used for this module. + // If file is in theme/yourtheme/img directory under name object_pictovalue.png, use this->picto='pictovalue' + // If file is in module/img directory under name object_pictovalue.png, use this->picto='pictovalue@module' + $this->picto='mrp'; + // Define some features supported by module (triggers, login, substitutions, menus, css, etc...) + $this->module_parts = array( + // Set this to 1 if module has its own trigger directory (core/triggers) + 'triggers' => 0, + // Set this to 1 if module has its own login method file (core/login) + 'login' => 0, + // Set this to 1 if module has its own substitution function file (core/substitutions) + 'substitutions' => 0, + // Set this to 1 if module has its own menus handler directory (core/menus) + 'menus' => 0, + // Set this to 1 if module overwrite template dir (core/tpl) + 'tpl' => 0, + // Set this to 1 if module has its own barcode directory (core/modules/barcode) + 'barcode' => 0, + // Set this to 1 if module has its own models directory (core/modules/xxx) + 'models' => 0, + // Set this to 1 if module has its own theme directory (theme) + 'theme' => 0, + // Set this to relative path of css file if module has its own css file + 'css' => array( + // '/mrp/css/mrp.css.php', + ), + // Set this to relative path of js file if module must load a js on all pages + 'js' => array( + // '/mrp/js/mrp.js.php', + ), + // Set here all hooks context managed by module. To find available hook context, make a "grep -r '>initHooks(' *" on source code. You can also set hook context to 'all' + 'hooks' => array( + // 'data' => array( + // 'hookcontext1', + // 'hookcontext2', + // ), + // 'entity' => '0', + ), + // Set this to 1 if features of module are opened to external users + 'moduleforexternal' => 0, + ); + // Data directories to create when module is enabled. + // Example: this->dirs = array("/mrp/temp","/mrp/subdir"); + $this->dirs = array("/mrp/temp"); + // Config pages. Put here list of php page, stored into mrp/admin directory, to use to setup module. + $this->config_page_url = array("setup.php@mrp"); + // Dependencies + // A condition to hide module + $this->hidden = false; + // List of module class names as string that must be enabled if this module is enabled. Example: array('always1'=>'modModuleToEnable1','always2'=>'modModuleToEnable2', 'FR1'=>'modModuleToEnableFR'...) + $this->depends = array('modBom'); + $this->requiredby = array(); // List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...) + $this->conflictwith = array(); // List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...) + $this->langfiles = array("mrp"); + $this->phpmin = array(5,5); // Minimum version of PHP required by module + $this->need_dolibarr_version = array(8,0); // Minimum version of Dolibarr required by module + $this->warnings_activation = array(); // Warning to show when we activate module. array('always'='text') or array('FR'='textfr','ES'='textes'...) + $this->warnings_activation_ext = array(); // Warning to show when we activate an external module. array('always'='text') or array('FR'='textfr','ES'='textes'...) + //$this->automatic_activation = array('FR'=>'MrpWasAutomaticallyActivatedBecauseOfYourCountryChoice'); + //$this->always_enabled = true; // If true, can't be disabled + + // Constants + // List of particular constants to add when module is enabled (key, 'chaine', value, desc, visible, 'current' or 'allentities', deleteonunactive) + // Example: $this->const=array(1 => array('MRP_MYNEWCONST1', 'chaine', 'myvalue', 'This is a constant to add', 1), + // 2 => array('MRP_MYNEWCONST2', 'chaine', 'myvalue', 'This is another constant to add', 0, 'current', 1) + // ); + $this->const = array( + // 1 => array('MRP_MYCONSTANT', 'chaine', 'avalue', 'This is a constant to add', 1, 'allentities', 1) + ); + + // Some keys to add into the overwriting translation tables + /*$this->overwrite_translation = array( + 'en_US:ParentCompany'=>'Parent company or reseller', + 'fr_FR:ParentCompany'=>'Maison mère ou revendeur' + )*/ + + if (! isset($conf->mrp) || ! isset($conf->mrp->enabled)) { + $conf->mrp=new stdClass(); + $conf->mrp->enabled=0; + } + + // Array to add new pages in new tabs + $this->tabs = array(); + // Example: + // $this->tabs[] = array('data'=>'objecttype:+tabname1:Title1:mylangfile@mrp:$user->rights->mrp->read:/mrp/mynewtab1.php?id=__ID__'); // To add a new tab identified by code tabname1 + // $this->tabs[] = array('data'=>'objecttype:+tabname2:SUBSTITUTION_Title2:mylangfile@mrp:$user->rights->othermodule->read:/mrp/mynewtab2.php?id=__ID__', // To add another new tab identified by code tabname2. Label will be result of calling all substitution functions on 'Title2' key. + // $this->tabs[] = array('data'=>'objecttype:-tabname:NU:conditiontoremove'); // To remove an existing tab identified by code tabname + // + // Where objecttype can be + // 'categories_x' to add a tab in category view (replace 'x' by type of category (0=product, 1=supplier, 2=customer, 3=member) + // 'contact' to add a tab in contact view + // 'contract' to add a tab in contract view + // 'group' to add a tab in group view + // 'intervention' to add a tab in intervention view + // 'invoice' to add a tab in customer invoice view + // 'invoice_supplier' to add a tab in supplier invoice view + // 'member' to add a tab in fundation member view + // 'opensurveypoll' to add a tab in opensurvey poll view + // 'order' to add a tab in customer order view + // 'order_supplier' to add a tab in supplier order view + // 'payment' to add a tab in payment view + // 'payment_supplier' to add a tab in supplier payment view + // 'product' to add a tab in product view + // 'propal' to add a tab in propal view + // 'project' to add a tab in project view + // 'stock' to add a tab in stock view + // 'thirdparty' to add a tab in third party view + // 'user' to add a tab in user view + + // Dictionaries + $this->dictionaries=array(); + /* Example: + $this->dictionaries=array( + 'langs'=>'mylangfile@mrp', + // List of tables we want to see into dictonnary editor + 'tabname'=>array(MAIN_DB_PREFIX."table1",MAIN_DB_PREFIX."table2",MAIN_DB_PREFIX."table3"), + // Label of tables + 'tablib'=>array("Table1","Table2","Table3"), + // Request to select fields + 'tabsql'=>array('SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'table1 as f','SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'table2 as f','SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'table3 as f'), + // Sort order + 'tabsqlsort'=>array("label ASC","label ASC","label ASC"), + // List of fields (result of select to show dictionary) + 'tabfield'=>array("code,label","code,label","code,label"), + // List of fields (list of fields to edit a record) + 'tabfieldvalue'=>array("code,label","code,label","code,label"), + // List of fields (list of fields for insert) + 'tabfieldinsert'=>array("code,label","code,label","code,label"), + // Name of columns with primary key (try to always name it 'rowid') + 'tabrowid'=>array("rowid","rowid","rowid"), + // Condition to show each dictionary + 'tabcond'=>array($conf->mrp->enabled,$conf->mrp->enabled,$conf->mrp->enabled) + ); + */ + + // Boxes/Widgets + // Add here list of php file(s) stored in mrp/core/boxes that contains a class to show a widget. + $this->boxes = array( + // 0 => array( + // 'file' => 'mrpwidget1.php@mrp', + // 'note' => 'Widget provided by Mrp', + // 'enabledbydefaulton' => 'Home', + // ), + // ... + ); + + // Cronjobs (List of cron jobs entries to add when module is enabled) + // unit_frequency must be 60 for minute, 3600 for hour, 86400 for day, 604800 for week + $this->cronjobs = array( + // 0 => array( + // 'label' => 'MyJob label', + // 'jobtype' => 'method', + // 'class' => '/mrp/class/mo.class.php', + // 'objectname' => 'Mo', + // 'method' => 'doScheduledJob', + // 'parameters' => '', + // 'comment' => 'Comment', + // 'frequency' => 2, + // 'unitfrequency' => 3600, + // 'status' => 0, + // 'test' => '$conf->mrp->enabled', + // 'priority' => 50, + // ), + ); + // Example: $this->cronjobs=array( + // 0=>array('label'=>'My label', 'jobtype'=>'method', 'class'=>'/dir/class/file.class.php', 'objectname'=>'MyClass', 'method'=>'myMethod', 'parameters'=>'param1, param2', 'comment'=>'Comment', 'frequency'=>2, 'unitfrequency'=>3600, 'status'=>0, 'test'=>'$conf->mrp->enabled', 'priority'=>50), + // 1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'param1, param2', 'comment'=>'Comment', 'frequency'=>1, 'unitfrequency'=>3600*24, 'status'=>0, 'test'=>'$conf->mrp->enabled', 'priority'=>50) + // ); + + // Permissions provided by this module + $this->rights = array(); + $r=0; + // Add here entries to declare new permissions + /* BEGIN MODULEBUILDER PERMISSIONS */ + $this->rights[$r][0] = $this->numero + $r; // Permission id (must not be already used) + $this->rights[$r][1] = 'Read objects of Mrp'; // Permission label + $this->rights[$r][4] = 'read'; // In php code, permission will be checked by test if ($user->rights->mrp->level1->level2) + $this->rights[$r][5] = ''; // In php code, permission will be checked by test if ($user->rights->mrp->level1->level2) + $r++; + $this->rights[$r][0] = $this->numero + $r; // Permission id (must not be already used) + $this->rights[$r][1] = 'Create/Update objects of Mrp'; // Permission label + $this->rights[$r][4] = 'write'; // In php code, permission will be checked by test if ($user->rights->mrp->level1->level2) + $this->rights[$r][5] = ''; // In php code, permission will be checked by test if ($user->rights->mrp->level1->level2) + $r++; + $this->rights[$r][0] = $this->numero + $r; // Permission id (must not be already used) + $this->rights[$r][1] = 'Delete objects of Mrp'; // Permission label + $this->rights[$r][4] = 'delete'; // In php code, permission will be checked by test if ($user->rights->mrp->level1->level2) + $this->rights[$r][5] = ''; // In php code, permission will be checked by test if ($user->rights->mrp->level1->level2) + $r++; + /* END MODULEBUILDER PERMISSIONS */ + + // Main menu entries to add + $this->menu = array(); + $r=0; + // Add here entries to declare new menus + /* BEGIN MODULEBUILDER TOPMENU */ + /* END MODULEBUILDER LEFTMENU MO */ + + // Exports profiles provided by this module + $r=1; + /* BEGIN MODULEBUILDER EXPORT MO */ + /* + $langs->load("mrp"); + $this->export_code[$r]=$this->rights_class.'_'.$r; + $this->export_label[$r]='MoLines'; // Translation key (used only if key ExportDataset_xxx_z not found) + $this->export_icon[$r]='mo@mrp'; + $keyforclass = 'Mo'; $keyforclassfile='/mymobule/class/mo.class.php'; $keyforelement='mo'; + include DOL_DOCUMENT_ROOT.'/core/commonfieldsinexport.inc.php'; + $keyforselect='mo'; $keyforaliasextra='extra'; $keyforelement='mo'; + include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php'; + //$this->export_dependencies_array[$r]=array('mysubobject'=>'ts.rowid', 't.myfield'=>array('t.myfield2','t.myfield3')); // To force to activate one or several fields if we select some fields that need same (like to select a unique key if we ask a field of a child to avoid the DISTINCT to discard them, or for computed field than need several other fields) + $this->export_sql_start[$r]='SELECT DISTINCT '; + $this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'mo as t'; + $this->export_sql_end[$r] .=' WHERE 1 = 1'; + $this->export_sql_end[$r] .=' AND t.entity IN ('.getEntity('mo').')'; + $r++; */ + /* END MODULEBUILDER EXPORT MO */ + + // Imports profiles provided by this module + $r=1; + /* BEGIN MODULEBUILDER IMPORT MO */ + /* + $langs->load("mrp"); + $this->export_code[$r]=$this->rights_class.'_'.$r; + $this->export_label[$r]='MoLines'; // Translation key (used only if key ExportDataset_xxx_z not found) + $this->export_icon[$r]='mo@mrp'; + $keyforclass = 'Mo'; $keyforclassfile='/mymobule/class/mo.class.php'; $keyforelement='mo'; + include DOL_DOCUMENT_ROOT.'/core/commonfieldsinexport.inc.php'; + $keyforselect='mo'; $keyforaliasextra='extra'; $keyforelement='mo'; + include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php'; + //$this->export_dependencies_array[$r]=array('mysubobject'=>'ts.rowid', 't.myfield'=>array('t.myfield2','t.myfield3')); // To force to activate one or several fields if we select some fields that need same (like to select a unique key if we ask a field of a child to avoid the DISTINCT to discard them, or for computed field than need several other fields) + $this->export_sql_start[$r]='SELECT DISTINCT '; + $this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'mo as t'; + $this->export_sql_end[$r] .=' WHERE 1 = 1'; + $this->export_sql_end[$r] .=' AND t.entity IN ('.getEntity('mo').')'; + $r++; */ + /* END MODULEBUILDER IMPORT MO */ + } + + /** + * Function called when module is enabled. + * The init function add constants, boxes, permissions and menus (defined in constructor) into Dolibarr database. + * It also creates data directories + * + * @param string $options Options when enabling module ('', 'noboxes') + * @return int 1 if OK, 0 if KO + */ + public function init($options = '') + { + $result=$this->_load_tables('/mrp/sql/'); + if ($result < 0) return -1; // Do not activate module if error 'not allowed' returned when loading module SQL queries (the _load_table run sql with run_sql with the error allowed parameter set to 'default') + + // Create extrafields during init + //include_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; + //$extrafields = new ExtraFields($this->db); + //$result1=$extrafields->addExtraField('myattr1', "New Attr 1 label", 'boolean', 1, 3, 'thirdparty', 0, 0, '', '', 1, '', 0, 0, '', '', 'mrp', '$conf->mrp->enabled'); + //$result2=$extrafields->addExtraField('myattr2', "New Attr 2 label", 'varchar', 1, 10, 'project', 0, 0, '', '', 1, '', 0, 0, '', '', 'mrp', '$conf->mrp->enabled'); + //$result3=$extrafields->addExtraField('myattr3', "New Attr 3 label", 'varchar', 1, 10, 'bank_account', 0, 0, '', '', 1, '', 0, 0, '', '', 'mrp', '$conf->mrp->enabled'); + //$result4=$extrafields->addExtraField('myattr4', "New Attr 4 label", 'select', 1, 3, 'thirdparty', 0, 1, '', array('options'=>array('code1'=>'Val1','code2'=>'Val2','code3'=>'Val3')), 1,'', 0, 0, '', '', 'mrp', '$conf->mrp->enabled'); + //$result5=$extrafields->addExtraField('myattr5', "New Attr 5 label", 'text', 1, 10, 'user', 0, 0, '', '', 1, '', 0, 0, '', '', 'mrp', '$conf->mrp->enabled'); + + $sql = array(); + 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 + * + * @param string $options Options when enabling module ('', 'noboxes') + * @return int 1 if OK, 0 if KO + */ + public function remove($options = '') + { + $sql = array(); + return $this->_remove($sql, $options); + } +} diff --git a/htdocs/mrp/lib/mrp.lib.php b/htdocs/mrp/lib/mrp.lib.php new file mode 100644 index 00000000000..7ee1fcd04c7 --- /dev/null +++ b/htdocs/mrp/lib/mrp.lib.php @@ -0,0 +1,54 @@ + + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file mrp/lib/mrp.lib.php + * \ingroup mrp + * \brief Library files with common functions for Mrp + */ + +/** + * Prepare admin pages header + * + * @return array + */ +function mrpAdminPrepareHead() +{ + global $langs, $conf; + + $langs->load("mrp"); + + $h = 0; + $head = array(); + + $head[$h][0] = dol_buildpath("/mrp/admin/setup.php", 1); + $head[$h][1] = $langs->trans("Settings"); + $head[$h][2] = 'settings'; + $h++; + + // Show more tabs from modules + // Entries must be declared in modules descriptor with line + //$this->tabs = array( + // 'entity:+tabname:Title:@mrp:/mrp/mypage.php?id=__ID__' + //); // to add new tab + //$this->tabs = array( + // 'entity:-tabname:Title:@mrp:/mrp/mypage.php?id=__ID__' + //); // to remove a tab + complete_head_from_modules($conf, $langs, null, $head, $h, 'mrp'); + + return $head; +} diff --git a/htdocs/mrp/lib/mrp_mo.lib.php b/htdocs/mrp/lib/mrp_mo.lib.php new file mode 100644 index 00000000000..6189761269e --- /dev/null +++ b/htdocs/mrp/lib/mrp_mo.lib.php @@ -0,0 +1,83 @@ +. + */ + +/** + * \file lib/mrp_mo.lib.php + * \ingroup mrp + * \brief Library files with common functions for Mo + */ + +/** + * Prepare array of tabs for Mo + * + * @param Mo $object Mo + * @return array Array of tabs + */ +function moPrepareHead($object) +{ + global $db, $langs, $conf; + + $langs->load("mrp"); + + $h = 0; + $head = array(); + + $head[$h][0] = dol_buildpath("/mrp/mo_card.php", 1).'?id='.$object->id; + $head[$h][1] = $langs->trans("Card"); + $head[$h][2] = 'card'; + $h++; + + if (isset($object->fields['note_public']) || isset($object->fields['note_private'])) + { + $nbNote = 0; + if (!empty($object->note_private)) $nbNote++; + if (!empty($object->note_public)) $nbNote++; + $head[$h][0] = dol_buildpath('/mrp/mo_note.php', 1).'?id='.$object->id; + $head[$h][1] = $langs->trans('Notes'); + if ($nbNote > 0) $head[$h][1].= ' '.$nbNote.''; + $head[$h][2] = 'note'; + $h++; + } + + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; + $upload_dir = $conf->mrp->dir_output . "/mo/" . dol_sanitizeFileName($object->ref); + $nbFiles = count(dol_dir_list($upload_dir, 'files', 0, '', '(\.meta|_preview.*\.png)$')); + $nbLinks=Link::count($db, $object->element, $object->id); + $head[$h][0] = dol_buildpath("/mrp/mo_document.php", 1).'?id='.$object->id; + $head[$h][1] = $langs->trans('Documents'); + if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ' '.($nbFiles+$nbLinks).''; + $head[$h][2] = 'document'; + $h++; + + $head[$h][0] = dol_buildpath("/mrp/mo_agenda.php", 1).'?id='.$object->id; + $head[$h][1] = $langs->trans("Events"); + $head[$h][2] = 'agenda'; + $h++; + + // Show more tabs from modules + // Entries must be declared in modules descriptor with line + //$this->tabs = array( + // 'entity:+tabname:Title:@mrp:/mrp/mypage.php?id=__ID__' + //); // to add new tab + //$this->tabs = array( + // 'entity:-tabname:Title:@mrp:/mrp/mypage.php?id=__ID__' + //); // to remove a tab + complete_head_from_modules($conf, $langs, $object, $head, $h, 'mo@mrp'); + + return $head; +} diff --git a/htdocs/mrp/mo_agenda.php b/htdocs/mrp/mo_agenda.php new file mode 100644 index 00000000000..aab1ff10581 --- /dev/null +++ b/htdocs/mrp/mo_agenda.php @@ -0,0 +1,262 @@ + + * Copyright (C) ---Put here your own copyright and developer email--- + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file mo_agenda.php + * \ingroup mrp + * \brief Page of Mo events + */ + +// Load Dolibarr environment +$res=0; +// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined) +if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php"; +// Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME +$tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1; +while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; } +if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include substr($tmp, 0, ($i+1))."/main.inc.php"; +if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include dirname(substr($tmp, 0, ($i+1)))."/main.inc.php"; +// Try main.inc.php using relative path +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_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; +dol_include_once('/mrp/class/mo.class.php'); +dol_include_once('/mrp/lib/mrp_mo.lib.php'); + + +// Load translation files required by the page +$langs->loadLangs(array("mrp","other")); + +// Get parameters +$id = GETPOST('id', 'int'); +$ref = GETPOST('ref', 'alpha'); +$action = GETPOST('action', 'alpha'); +$cancel = GETPOST('cancel', 'aZ09'); +$backtopage = GETPOST('backtopage', 'alpha'); + +if (GETPOST('actioncode', 'array')) +{ + $actioncode=GETPOST('actioncode', 'array', 3); + if (! count($actioncode)) $actioncode='0'; +} +else +{ + $actioncode=GETPOST("actioncode", "alpha", 3)?GETPOST("actioncode", "alpha", 3):(GETPOST("actioncode")=='0'?'0':(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)); +} +$search_agenda_label=GETPOST('search_agenda_label'); + +// Security check - Protection if external user +//if ($user->societe_id > 0) access_forbidden(); +//if ($user->societe_id > 0) $socid = $user->societe_id; +//$result = restrictedArea($user, 'mrp', $id); + +$limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit; +$sortfield = GETPOST("sortfield", 'alpha'); +$sortorder = GETPOST("sortorder", 'alpha'); +$page = GETPOST("page", 'int'); +if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; +if (! $sortfield) $sortfield='a.datep,a.id'; +if (! $sortorder) $sortorder='DESC'; + +// Initialize technical objects +$object=new Mo($db); +$extrafields = new ExtraFields($db); +$diroutputmassaction=$conf->mrp->dir_output . '/temp/massgeneration/'.$user->id; +$hookmanager->initHooks(array('moagenda','globalcard')); // Note that conf->hooks_modules contains array + +// Fetch optionals attributes and labels +$extrafields->fetch_name_optionals_label($object->table_element); + +// Load object +include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals +if ($id > 0 || ! empty($ref)) $upload_dir = $conf->mrp->multidir_output[$object->entity] . "/" . $object->id; + + + +/* + * Actions + */ + +$parameters=array('id'=>$socid); +$reshook=$hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + +if (empty($reshook)) +{ + // Cancel + if (GETPOST('cancel', 'alpha') && ! empty($backtopage)) + { + header("Location: ".$backtopage); + exit; + } + + // Purge search criteria + if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // All tests are required to be compatible with all browsers + { + $actioncode=''; + $search_agenda_label=''; + } +} + + + +/* + * View + */ + +$contactstatic = new Contact($db); + +$form = new Form($db); + +if ($object->id > 0) +{ + $title=$langs->trans("Agenda"); + //if (! empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/',$conf->global->MAIN_HTML_TITLE) && $object->name) $title=$object->name." - ".$title; + $help_url = ''; + llxHeader('', $title, $help_url); + + if (! empty($conf->notification->enabled)) $langs->load("mails"); + $head = moPrepareHead($object); + + + dol_fiche_head($head, 'agenda', $langs->trans("Mo"), -1, $object->picto); + + // Object card + // ------------------------------------------------------------ + $linkback = '' . $langs->trans("BackToList") . ''; + + $morehtmlref='
    '; + /* + // Ref customer + $morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1); + $morehtmlref.=$form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1); + // Thirdparty + $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1); + // Project + if (! empty($conf->projet->enabled)) + { + $langs->load("projects"); + $morehtmlref.='
    '.$langs->trans('Project') . ' '; + if ($user->rights->mrp->creer) + { + if ($action != 'classify') + //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; + $morehtmlref.=' : '; + if ($action == 'classify') { + //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); + $morehtmlref.='
    '; + $morehtmlref.=''; + $morehtmlref.=''; + $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref.=''; + $morehtmlref.='
    '; + } else { + $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + } + } else { + if (! empty($object->fk_project)) { + $proj = new Project($db); + $proj->fetch($object->fk_project); + $morehtmlref.=''; + $morehtmlref.=$proj->ref; + $morehtmlref.=''; + } else { + $morehtmlref.=''; + } + } + }*/ + $morehtmlref.='
    '; + + + dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); + + print '
    '; + print '
    '; + + $object->info($object->id); + dol_print_object_info($object, 1); + + print '
    '; + + dol_fiche_end(); + + + + // Actions buttons + + $objthirdparty=$object; + $objcon=new stdClass(); + + $out='&origin='.$object->element.'&originid='.$object->id; + $permok=$user->rights->agenda->myactions->create; + if ((! empty($objthirdparty->id) || ! empty($objcon->id)) && $permok) + { + //$out.='trans("AddAnAction"),'filenew'); + //$out.=""; + } + + + print '
    '; + + if (! empty($conf->agenda->enabled)) + { + if (! empty($user->rights->agenda->myactions->create) || ! empty($user->rights->agenda->allactions->create)) + { + print ''.$langs->trans("AddAction").''; + } + else + { + print ''.$langs->trans("AddAction").''; + } + } + + print '
    '; + + if (! empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read) )) + { + $param='&id='.$object->id.'&socid='.$socid; + if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage); + if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit); + + + //print load_fiche_titre($langs->trans("ActionsOnMo"), '', ''); + + // List of all actions + $filters=array(); + $filters['search_agenda_label']=$search_agenda_label; + + // TODO Replace this with same code than into list.php + //show_actions_done($conf, $langs, $db, $object, null, 0, $actioncode, '', $filters, $sortfield, $sortorder); + } +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/mrp/mo_card.php b/htdocs/mrp/mo_card.php new file mode 100644 index 00000000000..f15b45b96e5 --- /dev/null +++ b/htdocs/mrp/mo_card.php @@ -0,0 +1,550 @@ + + * Copyright (C) ---Put here your own copyright and developer email--- + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file mo_card.php + * \ingroup mrp + * \brief Page to create/edit/view mo + */ + +//if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); // Do not create database handler $db +//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Do not load object $user +//if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1'); // Do not load object $mysoc +//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); // Do not load object $langs +//if (! defined('NOSCANGETFORINJECTION')) define('NOSCANGETFORINJECTION','1'); // Do not check injection attack on GET parameters +//if (! defined('NOSCANPOSTFORINJECTION')) define('NOSCANPOSTFORINJECTION','1'); // Do not check injection attack on POST parameters +//if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK','1'); // Do not check CSRF attack (test on referer + on token if option MAIN_SECURITY_CSRF_WITH_TOKEN is on). +//if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Do not roll the Anti CSRF token (used if MAIN_SECURITY_CSRF_WITH_TOKEN is on) +//if (! defined('NOSTYLECHECK')) define('NOSTYLECHECK','1'); // Do not check style html tag into posted data +//if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1'); // If there is no need to load and show top and left menu +//if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); // If we don't need to load the html.form.class.php +//if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); // Do not load ajax.lib.php library +//if (! defined("NOLOGIN")) define("NOLOGIN",'1'); // If this page is public (can be called outside logged session). This include the NOIPCHECK too. +//if (! defined('NOIPCHECK')) define('NOIPCHECK','1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip +//if (! defined("MAIN_LANG_DEFAULT")) define('MAIN_LANG_DEFAULT','auto'); // Force lang to a particular value +//if (! defined("MAIN_AUTHENTICATION_MODE")) define('MAIN_AUTHENTICATION_MODE','aloginmodule'); // Force authentication handler +//if (! defined("NOREDIRECTBYMAINTOLOGIN")) define('NOREDIRECTBYMAINTOLOGIN',1); // The main.inc.php does not make a redirect if not logged, instead show simple error message +//if (! defined("FORCECSP")) define('FORCECSP','none'); // Disable all Content Security Policies + + +// Load Dolibarr environment +$res=0; +// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined) +if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php"; +// Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME +$tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1; +while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; } +if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include substr($tmp, 0, ($i+1))."/main.inc.php"; +if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include dirname(substr($tmp, 0, ($i+1)))."/main.inc.php"; +// Try main.inc.php using relative path +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_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; +dol_include_once('/mrp/class/mo.class.php'); +dol_include_once('/mrp/lib/mrp_mo.lib.php'); + +// Load translation files required by the page +$langs->loadLangs(array("mrp", "other")); + +// Get parameters +$id = GETPOST('id', 'int'); +$ref = GETPOST('ref', 'alpha'); +$action = GETPOST('action', 'aZ09'); +$confirm = GETPOST('confirm', 'alpha'); +$cancel = GETPOST('cancel', 'aZ09'); +$contextpage= GETPOST('contextpage', 'aZ')?GETPOST('contextpage', 'aZ'):'mocard'; // To manage different context of search +$backtopage = GETPOST('backtopage', 'alpha'); +//$lineid = GETPOST('lineid', 'int'); + +// Initialize technical objects +$object=new Mo($db); +$extrafields = new ExtraFields($db); +$diroutputmassaction=$conf->mrp->dir_output . '/temp/massgeneration/'.$user->id; +$hookmanager->initHooks(array('mocard','globalcard')); // Note that conf->hooks_modules contains array + +// Fetch optionals attributes and labels +$extrafields->fetch_name_optionals_label($object->table_element); + +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); + +// Initialize array of search criterias +$search_all=trim(GETPOST("search_all", 'alpha')); +$search=array(); +foreach($object->fields as $key => $val) +{ + if (GETPOST('search_'.$key, 'alpha')) $search[$key]=GETPOST('search_'.$key, 'alpha'); +} + +if (empty($action) && empty($id) && empty($ref)) $action='view'; + +// Load object +include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once. + +// Security check - Protection if external user +//if ($user->societe_id > 0) access_forbidden(); +//if ($user->societe_id > 0) $socid = $user->societe_id; +//$isdraft = (($object->statut == Mo::STATUS_DRAFT) ? 1 : 0); +//$result = restrictedArea($user, 'mrp', $object->id, '', '', 'fk_soc', 'rowid', $isdraft); + +$permissionnote=$user->rights->mrp->write; // Used by the include of actions_setnotes.inc.php +$permissiondellink=$user->rights->mrp->write; // Used by the include of actions_dellink.inc.php +$permissionedit=$user->rights->mrp->write; // Used by the include of actions_lineupdown.inc.php +$permissiontoadd=$user->rights->mrp->write; // Used by the include of actions_addupdatedelete.inc.php + + + +/* + * Actions + * + * Put here all code to do according to value of "action" parameter + */ + +$parameters=array(); +$reshook=$hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + +if (empty($reshook)) +{ + $error=0; + + $permissiontodelete = $user->rights->mrp->delete || ($permissiontoadd && $object->status == 0); + $backurlforlist = dol_buildpath('/mrp/mo_list.php', 1); + if (empty($backtopage)) { + if (empty($id)) $backtopage = $backurlforlist; + else $backtopage = dol_buildpath('/mrp/mo_card.php', 1).'?id='.($id > 0 ? $id : '__ID__'); + } + $triggermodname = 'MRP_MO_MODIFY'; // Name of trigger action code to execute when we modify record + + // Actions cancel, add, update, delete or clone + include DOL_DOCUMENT_ROOT.'/core/actions_addupdatedelete.inc.php'; + + // Actions when linking object each other + include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php'; + + // Actions when printing a doc from card + include DOL_DOCUMENT_ROOT.'/core/actions_printing.inc.php'; + + // Actions to send emails + $trigger_name='MO_SENTBYMAIL'; + $autocopy='MAIN_MAIL_AUTOCOPY_MO_TO'; + $trackid='mo'.$object->id; + include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php'; +} + + + + +/* + * View + * + * Put here all code to build page + */ + +$form=new Form($db); +$formfile=new FormFile($db); + +llxHeader('', $langs->trans('Mo'), ''); + +// Example : Adding jquery code +print ''; + + +// Part to create +if ($action == 'create') +{ + print load_fiche_titre($langs->trans("NewObject", $langs->transnoentitiesnoconv("Mo")), '', 'cubes'); + + print '
    '; + print ''; + print ''; + print ''; + + dol_fiche_head(array(), ''); + + print ''."\n"; + + // Common attributes + include DOL_DOCUMENT_ROOT . '/core/tpl/commonfields_add.tpl.php'; + + // Other attributes + include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_add.tpl.php'; + + print '
    '."\n"; + + dol_fiche_end(); + + print ' + + '; + + print '
    '; + print ''; + print '  '; + print ''; // Cancel for create does not post form if we don't know the backtopage + print '
    '; + + print '
    '; +} + +// Part to edit record +if (($id || $ref) && $action == 'edit') +{ + print load_fiche_titre($langs->trans("Mo"), '', 'cubes'); + + print '
    '; + print ''; + print ''; + print ''; + print ''; + + dol_fiche_head(); + + print ''."\n"; + + // Common attributes + include DOL_DOCUMENT_ROOT . '/core/tpl/commonfields_edit.tpl.php'; + + // Other attributes + include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_edit.tpl.php'; + + print '
    '; + + dol_fiche_end(); + + print '
    '; + print '   '; + print '
    '; + + print '
    '; +} + +// Part to show record +if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'create'))) +{ + $res = $object->fetch_optionals(); + + $head = moPrepareHead($object); + dol_fiche_head($head, 'card', $langs->trans("Mo"), -1, $object->picto); + + $formconfirm = ''; + + // Confirmation to delete + if ($action == 'delete') + { + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('DeleteMo'), $langs->trans('ConfirmDeleteMo'), 'confirm_delete', '', 0, 1); + } + // Confirmation to delete line + if ($action == 'deleteline') + { + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&lineid='.$lineid, $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_deleteline', '', 0, 1); + } + // Clone confirmation + if ($action == 'clone') { + // Create an array for form + $formquestion = array(); + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('ToClone'), $langs->trans('ConfirmCloneMo', $object->ref), 'confirm_clone', $formquestion, 'yes', 1); + } + + // Confirmation of action xxxx + if ($action == 'xxx') + { + $formquestion=array(); + /* + $forcecombo=0; + if ($conf->browser->name == 'ie') $forcecombo = 1; // There is a bug in IE10 that make combo inside popup crazy + $formquestion = array( + // 'text' => $langs->trans("ConfirmClone"), + // array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1), + // array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1), + // array('type' => 'other', 'name' => 'idwarehouse', 'label' => $langs->trans("SelectWarehouseForStockDecrease"), 'value' => $formproduct->selectWarehouses(GETPOST('idwarehouse')?GETPOST('idwarehouse'):'ifone', 'idwarehouse', '', 1, 0, 0, '', 0, $forcecombo)) + ); + */ + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('XXX'), $text, 'confirm_xxx', $formquestion, 0, 1, 220); + } + + // Call Hook formConfirm + $parameters = array('lineid' => $lineid); + $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + if (empty($reshook)) $formconfirm.=$hookmanager->resPrint; + elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint; + + // Print form confirm + print $formconfirm; + + + // Object card + // ------------------------------------------------------------ + $linkback = '' . $langs->trans("BackToList") . ''; + + $morehtmlref='
    '; + /* + // Ref bis + $morehtmlref.=$form->editfieldkey("RefBis", 'ref_client', $object->ref_client, $object, $user->rights->mrp->creer, 'string', '', 0, 1); + $morehtmlref.=$form->editfieldval("RefBis", 'ref_client', $object->ref_client, $object, $user->rights->mrp->creer, 'string', '', null, null, '', 1); + // Thirdparty + $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . $soc->getNomUrl(1); + // Project + if (! empty($conf->projet->enabled)) + { + $langs->load("projects"); + $morehtmlref.='
    '.$langs->trans('Project') . ' '; + if ($user->rights->mrp->write) + { + if ($action != 'classify') + $morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; + if ($action == 'classify') { + //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); + $morehtmlref.='
    '; + $morehtmlref.=''; + $morehtmlref.=''; + $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', 0, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref.=''; + $morehtmlref.='
    '; + } else { + $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + } + } else { + if (! empty($object->fk_project)) { + $proj = new Project($db); + $proj->fetch($object->fk_project); + $morehtmlref.=$proj->getNomUrl(); + } else { + $morehtmlref.=''; + } + } + } + */ + $morehtmlref.='
    '; + + + dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); + + + print '
    '; + print '
    '; + print '
    '; + print ''."\n"; + + // Common attributes + //$keyforbreak='fieldkeytoswitchonsecondcolumn'; + include DOL_DOCUMENT_ROOT . '/core/tpl/commonfields_view.tpl.php'; + + // Other attributes + include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php'; + + print '
    '; + print '
    '; + print '
    '; + + print '
    '; + + dol_fiche_end(); + + + /* + * Lines + */ + + if (! empty($object->table_element_line)) + { + // Show object lines + $result = $object->getLinesArray(); + + print '
    + + + + + '; + + if (! empty($conf->use_javascript_ajax) && $object->status == 0) { + include DOL_DOCUMENT_ROOT . '/core/tpl/ajaxrow.tpl.php'; + } + + print '
    '; + if (! empty($object->lines) && $object->status == 0 && $permissiontoadd && $action != 'selectlines' && $action != 'editline') + { + print ''; + } + + if (! empty($object->lines)) + { + $object->printObjectLines($action, $mysoc, null, GETPOST('lineid', 'int'), 1); + } + + // Form to add new line + if ($object->status == 0 && $permissiontoadd && $action != 'selectlines') + { + if ($action != 'editline') + { + // Add products/services form + $object->formAddObjectLine(1, $mysoc, $soc); + + $parameters = array(); + $reshook = $hookmanager->executeHooks('formAddObjectLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + } + } + + if (! empty($object->lines) && $object->status == 0 && $permissiontoadd && $action != 'selectlines' && $action != 'editline') + { + print '
    '; + } + print '
    '; + + print "
    \n"; + } + + + // Buttons for actions + + if ($action != 'presend' && $action != 'editline') { + print '
    '."\n"; + $parameters=array(); + $reshook=$hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + + if (empty($reshook)) + { + // Send + print '' . $langs->trans('SendMail') . ''."\n"; + + // Modify + if (! empty($user->rights->mrp->write)) + { + print ''.$langs->trans("Modify").''."\n"; + } + else + { + print ''.$langs->trans('Modify').''."\n"; + } + + // Clone + if (! empty($user->rights->mrp->write)) + { + print ''; + } + + /* + if ($user->rights->mrp->write) + { + if ($object->status == 1) + { + print ''.$langs->trans("Disable").''."\n"; + } + else + { + print ''.$langs->trans("Enable").''."\n"; + } + } + */ + + // Delete (need delete permission, or if draft, just need create/modify permission) + if (! empty($user->rights->mrp->delete) || (! empty($object->fields['status']) && $object->status == $object::STATUS_DRAFT && ! empty($user->rights->mrp->write))) + { + print ''.$langs->trans('Delete').''."\n"; + } + else + { + print ''.$langs->trans('Delete').''."\n"; + } + } + print '
    '."\n"; + } + + + // Select mail models is same action as presend + if (GETPOST('modelselected')) { + $action = 'presend'; + } + + if ($action != 'presend') + { + print '
    '; + print ''; // ancre + + // Documents + /*$objref = dol_sanitizeFileName($object->ref); + $relativepath = $comref . '/' . $comref . '.pdf'; + $filedir = $conf->mrp->dir_output . '/' . $objref; + $urlsource = $_SERVER["PHP_SELF"] . "?id=" . $object->id; + $genallowed = $user->rights->mrp->read; // If you can read, you can build the PDF to read content + $delallowed = $user->rights->mrp->create; // If you can create/edit, you can remove a file on card + print $formfile->showdocuments('mrp', $objref, $filedir, $urlsource, $genallowed, $delallowed, $object->modelpdf, 1, 0, 0, 28, 0, '', '', '', $soc->default_lang); + */ + + // Show links to link elements + $linktoelem = $form->showLinkToObjectBlock($object, null, array('mo')); + $somethingshown = $form->showLinkedObjectBlock($object, $linktoelem); + + + print '
    '; + + $MAXEVENT = 10; + + $morehtmlright = ''; + $morehtmlright.= $langs->trans("SeeAll"); + $morehtmlright.= ''; + + // List of actions on element + include_once DOL_DOCUMENT_ROOT . '/core/class/html.formactions.class.php'; + $formactions = new FormActions($db); + $somethingshown = $formactions->showactions($object, 'mo', $socid, 1, '', $MAXEVENT, '', $morehtmlright); + + print '
    '; + } + + //Select mail models is same action as presend + /* + if (GETPOST('modelselected')) $action = 'presend'; + + // Presend form + $modelmail='inventory'; + $defaulttopic='InformationMessage'; + $diroutput = $conf->product->dir_output.'/inventory'; + $trackid = 'stockinv'.$object->id; + + include DOL_DOCUMENT_ROOT.'/core/tpl/card_presend.tpl.php'; + */ +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/mrp/mo_document.php b/htdocs/mrp/mo_document.php new file mode 100644 index 00000000000..09f34ae583e --- /dev/null +++ b/htdocs/mrp/mo_document.php @@ -0,0 +1,167 @@ + + * Copyright (C) ---Put here your own copyright and developer email--- + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file mo_document.php + * \ingroup mrp + * \brief Tab for documents linked to Mo + */ + +// Load Dolibarr environment +$res=0; +// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined) +if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php"; +// Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME +$tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1; +while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; } +if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include substr($tmp, 0, ($i+1))."/main.inc.php"; +if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include dirname(substr($tmp, 0, ($i+1)))."/main.inc.php"; +// Try main.inc.php using relative path +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_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; +dol_include_once('/mrp/class/mo.class.php'); +dol_include_once('/mrp/lib/mrp_mo.lib.php'); + +// Load translation files required by the page +$langs->loadLangs(array("mrp","companies","other","mails")); + + +$action=GETPOST('action', 'aZ09'); +$confirm=GETPOST('confirm'); +$id=(GETPOST('socid', 'int') ? GETPOST('socid', 'int') : GETPOST('id', 'int')); +$ref = GETPOST('ref', 'alpha'); + +// Security check - Protection if external user +//if ($user->societe_id > 0) access_forbidden(); +//if ($user->societe_id > 0) $socid = $user->societe_id; +//$result = restrictedArea($user, 'mrp', $id); + +// Get parameters +$sortfield = GETPOST("sortfield", 'alpha'); +$sortorder = GETPOST("sortorder", 'alpha'); +$page = GETPOST("page", 'int'); +if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 +$offset = $conf->liste_limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; +if (! $sortorder) $sortorder="ASC"; +if (! $sortfield) $sortfield="name"; +//if (! $sortfield) $sortfield="position_name"; + +// Initialize technical objects +$object=new Mo($db); +$extrafields = new ExtraFields($db); +$diroutputmassaction=$conf->mrp->dir_output . '/temp/massgeneration/'.$user->id; +$hookmanager->initHooks(array('modocument','globalcard')); // Note that conf->hooks_modules contains array + +// Fetch optionals attributes and labels +$extrafields->fetch_name_optionals_label($object->table_element); + +// Load object +include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals + +//if ($id > 0 || ! empty($ref)) $upload_dir = $conf->mrp->multidir_output[$object->entity?$object->entity:$conf->entity] . "/mo/" . dol_sanitizeFileName($object->id); +if ($id > 0 || ! empty($ref)) $upload_dir = $conf->mrp->multidir_output[$object->entity?$object->entity:$conf->entity] . "/mo/" . dol_sanitizeFileName($object->ref); + + +/* + * Actions + */ + +include_once DOL_DOCUMENT_ROOT . '/core/actions_linkedfiles.inc.php'; + + +/* + * View + */ + +$form = new Form($db); + +$title=$langs->trans("Mo").' - '.$langs->trans("Files"); +$help_url=''; +//$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; +llxHeader('', $title, $help_url); + +if ($object->id) +{ + /* + * Show tabs + */ + $head = moPrepareHead($object); + + dol_fiche_head($head, 'document', $langs->trans("Mo"), -1, $object->picto); + + + // Build file list + $filearray=dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC), 1); + $totalsize=0; + foreach($filearray as $key => $file) + { + $totalsize+=$file['size']; + } + + // Object card + // ------------------------------------------------------------ + $linkback = '' . $langs->trans("BackToList") . ''; + + dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); + + print '
    '; + + print '
    '; + print ''; + + // Number of files + print ''; + + // Total size + print ''; + + print '
    '.$langs->trans("NbOfAttachedFiles").''.count($filearray).'
    '.$langs->trans("TotalSizeOfAttachedFiles").''.$totalsize.' '.$langs->trans("bytes").'
    '; + + print '
    '; + + dol_fiche_end(); + + $modulepart = 'mrp'; + //$permission = $user->rights->mrp->create; + $permission = 1; + //$permtoedit = $user->rights->mrp->create; + $permtoedit = 1; + $param = '&id=' . $object->id; + + //$relativepathwithnofile='mo/' . dol_sanitizeFileName($object->id).'/'; + $relativepathwithnofile='mo/' . dol_sanitizeFileName($object->ref).'/'; + + include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php'; +} +else +{ + accessforbidden('', 0, 1); +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/mrp/mo_list.php b/htdocs/mrp/mo_list.php new file mode 100644 index 00000000000..891ad76eaf8 --- /dev/null +++ b/htdocs/mrp/mo_list.php @@ -0,0 +1,602 @@ + + * Copyright (C) ---Put here your own copyright and developer email--- + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file mo_list.php + * \ingroup mrp + * \brief List page for mo + */ + +//if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); // Do not create database handler $db +//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Do not load object $user +//if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1'); // Do not load object $mysoc +//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); // Do not load object $langs +//if (! defined('NOSCANGETFORINJECTION')) define('NOSCANGETFORINJECTION','1'); // Do not check injection attack on GET parameters +//if (! defined('NOSCANPOSTFORINJECTION')) define('NOSCANPOSTFORINJECTION','1'); // Do not check injection attack on POST parameters +//if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK','1'); // Do not check CSRF attack (test on referer + on token if option MAIN_SECURITY_CSRF_WITH_TOKEN is on). +//if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Do not roll the Anti CSRF token (used if MAIN_SECURITY_CSRF_WITH_TOKEN is on) +//if (! defined('NOSTYLECHECK')) define('NOSTYLECHECK','1'); // Do not check style html tag into posted data +//if (! defined('NOIPCHECK')) define('NOIPCHECK','1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip +//if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1'); // If there is no need to load and show top and left menu +//if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); // If we don't need to load the html.form.class.php +//if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); // Do not load ajax.lib.php library +//if (! defined("NOLOGIN")) define("NOLOGIN",'1'); // If this page is public (can be called outside logged session) +//if (! defined("MAIN_LANG_DEFAULT")) define('MAIN_LANG_DEFAULT','auto'); // Force lang to a particular value +//if (! defined("MAIN_AUTHENTICATION_MODE")) define('MAIN_AUTHENTICATION_MODE','aloginmodule'); // Force authentication handler +//if (! defined("NOREDIRECTBYMAINTOLOGIN")) define('NOREDIRECTBYMAINTOLOGIN',1); // The main.inc.php does not make a redirect if not logged, instead show simple error message +//if (! defined("XFRAMEOPTIONS_ALLOWALL")) define('XFRAMEOPTIONS_ALLOWALL',1); // Do not add the HTTP header 'X-Frame-Options: SAMEORIGIN' but 'X-Frame-Options: ALLOWALL' + +// Load Dolibarr environment +$res=0; +// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined) +if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php"; +// Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME +$tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1; +while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; } +if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include substr($tmp, 0, ($i+1))."/main.inc.php"; +if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include dirname(substr($tmp, 0, ($i+1)))."/main.inc.php"; +// Try main.inc.php using relative path +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_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; + +// load mrp libraries +require_once __DIR__ . '/class/mo.class.php'; + +// for other modules +//dol_include_once('/othermodule/class/otherobject.class.php'); + +// Load translation files required by the page +$langs->loadLangs(array("mrp","other")); + +$action = GETPOST('action', 'aZ09')?GETPOST('action', 'aZ09'):'view'; // The action 'add', 'create', 'edit', 'update', 'view', ... +$massaction = GETPOST('massaction', 'alpha'); // The bulk action (combo box choice into lists) +$show_files = GETPOST('show_files', 'int'); // Show files area generated by bulk actions ? +$confirm = GETPOST('confirm', 'alpha'); // Result of a confirmation +$cancel = GETPOST('cancel', 'alpha'); // We click on a Cancel button +$toselect = GETPOST('toselect', 'array'); // Array of ids of elements selected into a list +$contextpage= GETPOST('contextpage', 'aZ')?GETPOST('contextpage', 'aZ'):'molist'; // To manage different context of search +$backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page +$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') + +$id = GETPOST('id', 'int'); + +// Load variable for pagination +$limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit; +$sortfield = GETPOST('sortfield', 'alpha'); +$sortorder = GETPOST('sortorder', 'alpha'); +$page = GETPOST('page', 'int'); +if (empty($page) || $page == -1 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha') || (empty($toselect) && $massaction === '0')) { $page = 0; } // If $page is not defined, or '' or -1 or if we click on clear filters or if we select empty mass action +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; +//if (! $sortfield) $sortfield="p.date_fin"; +//if (! $sortorder) $sortorder="DESC"; + +// Initialize technical objects +$object = new Mo($db); +$extrafields = new ExtraFields($db); +$diroutputmassaction = $conf->mrp->dir_output . '/temp/massgeneration/'.$user->id; +$hookmanager->initHooks(array('molist')); // Note that conf->hooks_modules contains array + +// Fetch optionals attributes and labels +$extrafields->fetch_name_optionals_label($object->table_element); + +$search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); + +// Default sort order (if not yet defined by previous GETPOST) +if (! $sortfield) $sortfield="t.".key($object->fields); // Set here default search field. By default 1st field in definition. +if (! $sortorder) $sortorder="ASC"; + +// Security check +if (empty($conf->mrp->enabled)) accessforbidden('Module not enabled'); +$socid=0; +if ($user->societe_id > 0) // Protection if external user +{ + //$socid = $user->societe_id; + accessforbidden(); +} +//$result = restrictedArea($user, 'mrp', $id, ''); + + +// Initialize array of search criterias +$search_all=trim(GETPOST("search_all", 'alpha')); +$search=array(); +foreach($object->fields as $key => $val) +{ + if (GETPOST('search_'.$key, 'alpha')) $search[$key]=GETPOST('search_'.$key, 'alpha'); +} + +// List of fields to search into when doing a "search in all" +$fieldstosearchall = array(); +foreach($object->fields as $key => $val) +{ + if ($val['searchall']) $fieldstosearchall['t.'.$key]=$val['label']; +} + +// Definition of fields for list +$arrayfields=array(); +foreach($object->fields as $key => $val) +{ + // If $val['visible']==0, then we never show the field + if (! empty($val['visible'])) $arrayfields['t.'.$key]=array('label'=>$val['label'], 'checked'=>(($val['visible']<0)?0:1), 'enabled'=>($val['enabled'] && ($val['visible'] != 3)), 'position'=>$val['position']); +} +// Extra fields +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label']) > 0) +{ + foreach($extrafields->attributes[$object->table_element]['label'] as $key => $val) + { + if (! empty($extrafields->attributes[$object->table_element]['list'][$key])) + $arrayfields["ef.".$key]=array('label'=>$extrafields->attributes[$object->table_element]['label'][$key], 'checked'=>(($extrafields->attributes[$object->table_element]['list'][$key]<0)?0:1), 'position'=>$extrafields->attributes[$object->table_element]['pos'][$key], 'enabled'=>(abs($extrafields->attributes[$object->table_element]['list'][$key])!=3 && $extrafields->attributes[$object->table_element]['perms'][$key])); + } +} +$object->fields = dol_sort_array($object->fields, 'position'); +$arrayfields = dol_sort_array($arrayfields, 'position'); + + + +/* + * Actions + */ + +if (GETPOST('cancel', 'alpha')) { $action='list'; $massaction=''; } +if (! GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction=''; } + +$parameters=array(); +$reshook=$hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + +if (empty($reshook)) +{ + // Selection of new fields + include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php'; + + // Purge search criteria + if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') ||GETPOST('button_removefilter', 'alpha')) // All tests are required to be compatible with all browsers + { + foreach($object->fields as $key => $val) + { + $search[$key]=''; + } + $toselect=''; + $search_array_options=array(); + } + if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha') + || GETPOST('button_search_x', 'alpha') || GETPOST('button_search.x', 'alpha') || GETPOST('button_search', 'alpha')) + { + $massaction=''; // Protection to avoid mass action if we force a new search during a mass action confirmation + } + + // Mass actions + $objectclass='Mo'; + $objectlabel='Mo'; + $permtoread = $user->rights->mrp->read; + $permtodelete = $user->rights->mrp->delete; + $uploaddir = $conf->mrp->dir_output; + include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; +} + + + +/* + * View + */ + +$form=new Form($db); + +$now=dol_now(); + +//$help_url="EN:Module_Mo|FR:Module_Mo_FR|ES:Módulo_Mo"; +$help_url=''; +$title = $langs->trans('ListOfManufacturingOrders'); + + +// Build and execute select +// -------------------------------------------------------------------- +$sql = 'SELECT '; +foreach($object->fields as $key => $val) +{ + $sql.='t.'.$key.', '; +} +// Add fields from extrafields +if (! empty($extrafields->attributes[$object->table_element]['label'])) + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.' as options_'.$key.', ' : ''); +// Add fields from hooks +$parameters=array(); +$reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters, $object); // Note that $action and $object may have been modified by hook +$sql.=$hookmanager->resPrint; +$sql=preg_replace('/, $/', '', $sql); +$sql.= " FROM ".MAIN_DB_PREFIX.$object->table_element." as t"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (t.rowid = ef.fk_object)"; +if ($object->ismultientitymanaged == 1) $sql.= " WHERE t.entity IN (".getEntity($object->element).")"; +else $sql.=" WHERE 1 = 1"; +foreach($search as $key => $val) +{ + if ($key == 'status' && $search[$key] == -1) continue; + $mode_search=(($object->isInt($object->fields[$key]) || $object->isFloat($object->fields[$key])) ? 1 : 0); + if ($search[$key] != '') $sql.=natural_search($key, $search[$key], (($key == 'status')?2:$mode_search)); +} +if ($search_all) $sql.= natural_search(array_keys($fieldstosearchall), $search_all); +// Add where from extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; +// Add where from hooks +$parameters=array(); +$reshook=$hookmanager->executeHooks('printFieldListWhere', $parameters, $object); // Note that $action and $object may have been modified by hook +$sql.=$hookmanager->resPrint; + +/* If a group by is required +$sql.= " GROUP BY " +foreach($object->fields as $key => $val) +{ + $sql.='t.'.$key.', '; +} +// Add fields from extrafields +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.', ' : ''); +// Add where from hooks +$parameters=array(); +$reshook=$hookmanager->executeHooks('printFieldListGroupBy',$parameters); // Note that $action and $object may have been modified by hook +$sql.=$hookmanager->resPrint; +$sql=preg_replace('/, $/','', $sql); +*/ + +$sql.=$db->order($sortfield, $sortorder); + +// Count total nb of records +$nbtotalofrecords = ''; +if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) +{ + $resql = $db->query($sql); + $nbtotalofrecords = $db->num_rows($resql); + if (($page * $limit) > $nbtotalofrecords) // if total of record found is smaller than page * limit, goto and load page 0 + { + $page = 0; + $offset = 0; + } +} +// if total of record found is smaller than limit, no need to do paging and to restart another select with limits set. +if (is_numeric($nbtotalofrecords) && $limit > $nbtotalofrecords) +{ + $num = $nbtotalofrecords; +} +else +{ + $sql.= $db->plimit($limit+1, $offset); + + $resql=$db->query($sql); + if (! $resql) + { + dol_print_error($db); + exit; + } + + $num = $db->num_rows($resql); +} + +// Direct jump if only one record found +if ($num == 1 && ! empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $search_all) +{ + $obj = $db->fetch_object($resql); + $id = $obj->rowid; + header("Location: ".dol_buildpath('/mrp/mo_card.php', 1).'?id='.$id); + exit; +} + + +// Output page +// -------------------------------------------------------------------- + +llxHeader('', $title, $help_url); + +// Example : Adding jquery code +print ''; + +$arrayofselected=is_array($toselect)?$toselect:array(); + +$param=''; +if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage); +if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit); +foreach($search as $key => $val) +{ + if (is_array($search[$key]) && count($search[$key])) foreach($search[$key] as $skey) $param.='&search_'.$key.'[]='.urlencode($skey); + else $param.= '&search_'.$key.'='.urlencode($search[$key]); +} +if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss); +// Add $param from extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; + +// List of mass actions available +$arrayofmassactions = array( + //'validate'=>$langs->trans("Validate"), + //'generate_doc'=>$langs->trans("ReGeneratePDF"), + //'builddoc'=>$langs->trans("PDFMerge"), + //'presend'=>$langs->trans("SendByMail"), +); +if ($user->rights->mrp->delete) $arrayofmassactions['predelete']=''.$langs->trans("Delete"); +if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array(); +$massactionbutton=$form->selectMassAction('', $arrayofmassactions); + +print '
    '; +if ($optioncss != '') print ''; +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; + +$newcardbutton = dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/mrp/mo_card.php?action=create&backtopage='.urlencode($_SERVER['PHP_SELF']), '', $user->rights->mrp->write); + +print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'cubes', 0, $newcardbutton, '', $limit); + +// Add code for pre mass action (confirmation or email presend form) +$topicmail="SendMoRef"; +$modelmail="mo"; +$objecttmp=new Mo($db); +$trackid='xxxx'.$object->id; +include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; + +if ($search_all) +{ + foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val); + print '
    '.$langs->trans("FilterOnInto", $search_all) . join(', ', $fieldstosearchall).'
    '; +} + +$moreforfilter = ''; +/*$moreforfilter.='
    '; +$moreforfilter.= $langs->trans('MyFilter') . ': '; +$moreforfilter.= '
    ';*/ + +$parameters=array(); +$reshook=$hookmanager->executeHooks('printFieldPreListTitle', $parameters, $object); // Note that $action and $object may have been modified by hook +if (empty($reshook)) $moreforfilter .= $hookmanager->resPrint; +else $moreforfilter = $hookmanager->resPrint; + +if (! empty($moreforfilter)) +{ + print '
    '; + print $moreforfilter; + print '
    '; +} + +$varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage; +$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields +$selectedfields.=(count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : ''); + +print '
    '; // You can use div-table-responsive-no-min if you dont need reserved height for your table +print ''."\n"; + + +// Fields title search +// -------------------------------------------------------------------- +print ''; +foreach($object->fields as $key => $val) +{ + $cssforfield=(empty($val['css'])?'':$val['css']); + if ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center'; + elseif (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center'; + elseif (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap'; + elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price'))) $cssforfield.=($cssforfield?' ':'').'right'; + if (! empty($arrayfields['t.'.$key]['checked'])) + { + print ''; + } +} +// Extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php'; + +// Fields from hook +$parameters=array('arrayfields'=>$arrayfields); +$reshook=$hookmanager->executeHooks('printFieldListOption', $parameters, $object); // Note that $action and $object may have been modified by hook +print $hookmanager->resPrint; +// Action column +print ''; +print ''."\n"; + + +// Fields title label +// -------------------------------------------------------------------- +print ''; +foreach($object->fields as $key => $val) +{ + $cssforfield=(empty($val['css'])?'':$val['css']); + if ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center'; + elseif (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center'; + elseif (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap'; + elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price'))) $cssforfield.=($cssforfield?' ':'').'right'; + if (! empty($arrayfields['t.'.$key]['checked'])) + { + print getTitleFieldOfList($arrayfields['t.'.$key]['label'], 0, $_SERVER['PHP_SELF'], 't.'.$key, '', $param, ($cssforfield?'class="'.$cssforfield.'"':''), $sortfield, $sortorder, ($cssforfield?$cssforfield.' ':''))."\n"; + } +} +// Extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; +// Hook fields +$parameters=array('arrayfields'=>$arrayfields,'param'=>$param,'sortfield'=>$sortfield,'sortorder'=>$sortorder); +$reshook=$hookmanager->executeHooks('printFieldListTitle', $parameters, $object); // Note that $action and $object may have been modified by hook +print $hookmanager->resPrint; +// Action column +print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; +print ''."\n"; + + +// Detect if we need a fetch on each output line +$needToFetchEachLine=0; +if (is_array($extrafields->attributes[$object->table_element]['computed']) && count($extrafields->attributes[$object->table_element]['computed']) > 0) +{ + foreach ($extrafields->attributes[$object->table_element]['computed'] as $key => $val) + { + if (preg_match('/\$object/', $val)) $needToFetchEachLine++; // There is at least one compute field that use $object + } +} + + +// Loop on record +// -------------------------------------------------------------------- +$i=0; +$totalarray=array(); +while ($i < min($num, $limit)) +{ + $obj = $db->fetch_object($resql); + if (empty($obj)) break; // Should not happen + + // Store properties in $object + $object->id = $obj->rowid; + foreach($object->fields as $key => $val) + { + if (property_exists($obj, $key)) $object->$key = $obj->$key; + } + + // Show here line of result + print ''; + foreach($object->fields as $key => $val) + { + $cssforfield=(empty($val['css'])?'':$val['css']); + if (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center'; + elseif ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center'; + + if (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap'; + elseif ($key == 'ref') $cssforfield.=($cssforfield?' ':'').'nowrap'; + + if (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $key != 'status') $cssforfield.=($cssforfield?' ':'').'right'; + + if (! empty($arrayfields['t.'.$key]['checked'])) + { + print ''; + if ($key == 'status') print $object->getLibStatut(5); + elseif (in_array($val['type'], array('date','datetime','timestamp'))) print $object->showOutputField($val, $key, $db->jdate($obj->$key), ''); + else print $object->showOutputField($val, $key, $obj->$key, ''); + print ''; + if (! $i) $totalarray['nbfield']++; + if (! empty($val['isameasure'])) + { + if (! $i) $totalarray['pos'][$totalarray['nbfield']]='t.'.$key; + $totalarray['val']['t.'.$key] += $obj->$key; + } + } + } + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; + // Fields from hook + $parameters=array('arrayfields'=>$arrayfields, 'obj'=>$obj); + $reshook=$hookmanager->executeHooks('printFieldListValue', $parameters, $object); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + // Action column + print ''; + if (! $i) $totalarray['nbfield']++; + + print ''; + + $i++; +} + +// Show total line +if (isset($totalarray['pos'])) +{ + print ''; + $i=0; + while ($i < $totalarray['nbfield']) + { + $i++; + if (! empty($totalarray['pos'][$i])) print ''; + else + { + if ($i == 1) + { + if ($num < $limit) print ''; + else print ''; + } + else print ''; + } + } + print ''; +} + +// If no record found +if ($num == 0) +{ + $colspan=1; + foreach($arrayfields as $key => $val) { if (! empty($val['checked'])) $colspan++; } + print ''; +} + + +$db->free($resql); + +$parameters=array('arrayfields'=>$arrayfields, 'sql'=>$sql); +$reshook=$hookmanager->executeHooks('printFieldListFooter', $parameters, $object); // Note that $action and $object may have been modified by hook +print $hookmanager->resPrint; + +print '
    '; + if (is_array($val['arrayofkeyval'])) print $form->selectarray('search_'.$key, $val['arrayofkeyval'], $search[$key], $val['notnull'], 0, 0, '', 0, 0, 0, '', 'maxwidth75'); + else print ''; + print ''; +$searchpicto=$form->showFilterButtons(); +print $searchpicto; +print '
    '; + if ($massactionbutton || $massaction) // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + { + $selected=0; + if (in_array($obj->rowid, $arrayofselected)) $selected=1; + print ''; + } + print '
    '.price($totalarray['val'][$totalarray['pos'][$i]]).''.$langs->trans("Total").''.$langs->trans("Totalforthispage").'
    '.$langs->trans("NoRecordFound").'
    '."\n"; +print '
    '."\n"; + +print '
    '."\n"; + +if (in_array('builddoc', $arrayofmassactions) && ($nbtotalofrecords === '' || $nbtotalofrecords)) +{ + $hidegeneratedfilelistifempty=1; + if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) $hidegeneratedfilelistifempty=0; + + require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; + $formfile = new FormFile($db); + + // Show list of available documents + $urlsource=$_SERVER['PHP_SELF'].'?sortfield='.$sortfield.'&sortorder='.$sortorder; + $urlsource.=str_replace('&', '&', $param); + + $filedir=$diroutputmassaction; + $genallowed=$user->rights->mrp->read; + $delallowed=$user->rights->mrp->write; + + print $formfile->showdocuments('massfilesarea_mrp', '', $filedir, $urlsource, 0, $delallowed, '', 1, 1, 0, 48, 1, $param, $title, '', '', '', null, $hidegeneratedfilelistifempty); +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/mrp/mo_note.php b/htdocs/mrp/mo_note.php new file mode 100644 index 00000000000..a006f79a609 --- /dev/null +++ b/htdocs/mrp/mo_note.php @@ -0,0 +1,165 @@ + + * Copyright (C) ---Put here your own copyright and developer email--- + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file mo_note.php + * \ingroup mrp + * \brief Car with notes on Mo + */ + +// Load Dolibarr environment +$res=0; +// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined) +if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php"; +// Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME +$tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1; +while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; } +if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include substr($tmp, 0, ($i+1))."/main.inc.php"; +if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include dirname(substr($tmp, 0, ($i+1)))."/main.inc.php"; +// Try main.inc.php using relative path +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"); + +dol_include_once('/mrp/class/mo.class.php'); +dol_include_once('/mrp/lib/mrp_mo.lib.php'); + +// Load translation files required by the page +$langs->loadLangs(array("mrp","companies")); + +// Get parameters +$id = GETPOST('id', 'int'); +$ref = GETPOST('ref', 'alpha'); +$action = GETPOST('action', 'alpha'); +$cancel = GETPOST('cancel', 'aZ09'); +$backtopage = GETPOST('backtopage', 'alpha'); + +// Initialize technical objects +$object=new Mo($db); +$extrafields = new ExtraFields($db); +$diroutputmassaction=$conf->mrp->dir_output . '/temp/massgeneration/'.$user->id; +$hookmanager->initHooks(array('monote','globalcard')); // Note that conf->hooks_modules contains array + +// Fetch optionals attributes and labels +$extrafields->fetch_name_optionals_label($object->table_element); + +// Security check - Protection if external user +//if ($user->societe_id > 0) access_forbidden(); +//if ($user->societe_id > 0) $socid = $user->societe_id; +//$result = restrictedArea($user, 'mrp', $id); + +// Load object +include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals +if ($id > 0 || ! empty($ref)) $upload_dir = $conf->mrp->multidir_output[$object->entity] . "/" . $object->id; + +$permissionnote=1; +//$permissionnote=$user->rights->mrp->creer; // Used by the include of actions_setnotes.inc.php + + + +/* + * Actions + */ + +include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include, not include_once + + +/* + * View + */ + +$form = new Form($db); + +//$help_url='EN:Customers_Orders|FR:Commandes_Clients|ES:Pedidos de clientes'; +$help_url=''; +llxHeader('', $langs->trans('Mo'), $help_url); + +if ($id > 0 || ! empty($ref)) +{ + $object->fetch_thirdparty(); + + $head = moPrepareHead($object); + + dol_fiche_head($head, 'note', $langs->trans("Mo"), -1, $object->picto); + + // Object card + // ------------------------------------------------------------ + $linkback = '' . $langs->trans("BackToList") . ''; + + $morehtmlref='
    '; + /* + // Ref customer + $morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1); + $morehtmlref.=$form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1); + // Thirdparty + $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1); + // Project + if (! empty($conf->projet->enabled)) + { + $langs->load("projects"); + $morehtmlref.='
    '.$langs->trans('Project') . ' '; + if ($user->rights->mrp->creer) + { + if ($action != 'classify') + //$morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; + $morehtmlref.=' : '; + if ($action == 'classify') { + //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); + $morehtmlref.='
    '; + $morehtmlref.=''; + $morehtmlref.=''; + $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref.=''; + $morehtmlref.='
    '; + } else { + $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + } + } else { + if (! empty($object->fk_project)) { + $proj = new Project($db); + $proj->fetch($object->fk_project); + $morehtmlref.=''; + $morehtmlref.=$proj->ref; + $morehtmlref.=''; + } else { + $morehtmlref.=''; + } + } + }*/ + $morehtmlref.='
    '; + + + dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); + + + print '
    '; + print '
    '; + + + $cssclass="titlefield"; + include DOL_DOCUMENT_ROOT.'/core/tpl/notes.tpl.php'; + + print '
    '; + + dol_fiche_end(); +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/mrp/modulebuilder.txt b/htdocs/mrp/modulebuilder.txt new file mode 100644 index 00000000000..24ea0d6eac5 --- /dev/null +++ b/htdocs/mrp/modulebuilder.txt @@ -0,0 +1,3 @@ +# DO NOT DELETE THIS FILE MANUALLY +# File to flag module built using official module template. +# When this file is present into a module directory, you can edit it with the module builder tool. Use ModuleBuilder if you want to delete module. \ No newline at end of file diff --git a/htdocs/mrp/sql/llx_mrp_mo.key.sql b/htdocs/mrp/sql/llx_mrp_mo.key.sql new file mode 100644 index 00000000000..071a663dd56 --- /dev/null +++ b/htdocs/mrp/sql/llx_mrp_mo.key.sql @@ -0,0 +1,35 @@ +-- Copyright (C) ---Put here your own copyright and developer email--- +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see http://www.gnu.org/licenses/. + + +-- BEGIN MODULEBUILDER INDEXES +ALTER TABLE llx_mrp_mo ADD INDEX idx_mrp_mo_rowid (rowid); +ALTER TABLE llx_mrp_mo ADD INDEX idx_mrp_mo_ref (ref); +ALTER TABLE llx_mrp_mo ADD INDEX idx_mrp_mo_entity (entity); +ALTER TABLE llx_mrp_mo ADD INDEX idx_mrp_mo_qty (qty); +ALTER TABLE llx_mrp_mo ADD INDEX idx_mrp_mo_fk_soc (fk_soc); +ALTER TABLE llx_mrp_mo ADD CONSTRAINT llx_mrp_mo_fk_user_creat FOREIGN KEY (fk_user_creat) REFERENCES user(rowid); +ALTER TABLE llx_mrp_mo ADD INDEX idx_mrp_mo_status (status); +ALTER TABLE llx_mrp_mo ADD INDEX idx_mrp_mo_fk_product (fk_product); +ALTER TABLE llx_mrp_mo ADD INDEX idx_mrp_mo_date_start_planned (date_start_planned); +ALTER TABLE llx_mrp_mo ADD INDEX idx_mrp_mo_date_end_planned (date_end_planned); +ALTER TABLE llx_mrp_mo ADD INDEX idx_mrp_mo_fk_bom (fk_bom); +ALTER TABLE llx_mrp_mo ADD INDEX idx_mrp_mo_fk_project (fk_project); +-- END MODULEBUILDER INDEXES + +--ALTER TABLE llx_mrp_mo ADD UNIQUE INDEX uk_mrp_mo_fieldxy(fieldx, fieldy); + +--ALTER TABLE llx_mrp_mo ADD CONSTRAINT llx_mrp_mo_fk_field FOREIGN KEY (fk_field) REFERENCES llx_mrp_myotherobject(rowid); + diff --git a/htdocs/mrp/sql/llx_mrp_mo.sql b/htdocs/mrp/sql/llx_mrp_mo.sql new file mode 100644 index 00000000000..dbb8b0faa01 --- /dev/null +++ b/htdocs/mrp/sql/llx_mrp_mo.sql @@ -0,0 +1,39 @@ +-- Copyright (C) ---Put here your own copyright and developer email--- +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see http://www.gnu.org/licenses/. + + +CREATE TABLE llx_mrp_mo( + -- BEGIN MODULEBUILDER FIELDS + rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, + ref varchar(128) DEFAULT '(PROV)' NOT NULL, + entity integer DEFAULT 1 NOT NULL, + label varchar(255), + qty real NOT NULL, + fk_soc integer, + note_public text, + note_private text, + date_creation datetime NOT NULL, + tms timestamp, + fk_user_creat integer NOT NULL, + fk_user_modif integer, + import_key varchar(14), + status integer NOT NULL, + fk_product integer NOT NULL, + date_start_planned datetime, + date_end_planned datetime, + fk_bom integer, + fk_project integer + -- END MODULEBUILDER FIELDS +) ENGINE=innodb; \ No newline at end of file diff --git a/htdocs/mrp/sql/llx_mrp_mo_extrafields.key.sql b/htdocs/mrp/sql/llx_mrp_mo_extrafields.key.sql new file mode 100644 index 00000000000..5b280acc41f --- /dev/null +++ b/htdocs/mrp/sql/llx_mrp_mo_extrafields.key.sql @@ -0,0 +1,19 @@ +-- Copyright (C) 2019 Alicealalalamdskfldmjgdfgdfhfghgfh Adminson +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see http://www.gnu.org/licenses/. + + +-- BEGIN MODULEBUILDER INDEXES +ALTER TABLE llx_mrp_myobject_extrafields ADD INDEX idx_fk_object(fk_object); +-- END MODULEBUILDER INDEXES diff --git a/htdocs/mrp/sql/llx_mrp_mo_extrafields.sql b/htdocs/mrp/sql/llx_mrp_mo_extrafields.sql new file mode 100644 index 00000000000..9245ac1c341 --- /dev/null +++ b/htdocs/mrp/sql/llx_mrp_mo_extrafields.sql @@ -0,0 +1,23 @@ +-- Copyright (C) 2019 Alicealalalamdskfldmjgdfgdfhfghgfh Adminson +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see http://www.gnu.org/licenses/. + +create table llx_mrp_myobject_extrafields +( + rowid integer AUTO_INCREMENT PRIMARY KEY, + tms timestamp, + fk_object integer NOT NULL, + import_key varchar(14) -- import key +) ENGINE=innodb; + From ccd9da99f45dc9a15c6e2223c7f5d7ca32921d63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Tue, 15 Oct 2019 20:11:15 +0200 Subject: [PATCH 425/484] Update list.php --- htdocs/comm/action/list.php | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/htdocs/comm/action/list.php b/htdocs/comm/action/list.php index efb11a7e22b..65f593e26a0 100644 --- a/htdocs/comm/action/list.php +++ b/htdocs/comm/action/list.php @@ -21,7 +21,7 @@ */ /** - * \file htdocs/comm/action/list.php + * \file htdocs/comm/action/list.php * \ingroup agenda * \brief Page to list actions */ @@ -239,7 +239,7 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; $sql = "SELECT"; if ($usergroup > 0) $sql.=" DISTINCT"; $sql.= " s.nom as societe, s.rowid as socid, s.client, s.email as socemail,"; -$sql.= " a.id, a.label, a.note, a.datep as dp, a.datep2 as dp2,"; +$sql.= " a.id, a.label, a.note, a.datep as dp, a.datep2 as dp2, a.fulldayevent, a.location,"; $sql.= ' a.fk_user_author,a.fk_user_action,'; $sql.= " a.fk_contact, a.note, a.percent as percent,"; $sql.= " a.fk_element, a.elementtype, a.datec, a.tms as datem,"; @@ -286,14 +286,14 @@ if (! empty($actioncode)) elseif ($actioncode == 'AC_ALL_AUTO') $sql.= " AND c.type = 'systemauto'"; else { - if (is_array($actioncode)) - { - $sql.=" AND c.code IN ('".implode("','", $actioncode)."')"; - } - else - { - $sql.=" AND c.code IN ('".implode("','", explode(',', $actioncode))."')"; - } + if (is_array($actioncode)) + { + $sql.=" AND c.code IN ('".implode("','", $actioncode)."')"; + } + else + { + $sql.=" AND c.code IN ('".implode("','", explode(',', $actioncode))."')"; + } } } } @@ -460,7 +460,7 @@ if ($resql) print $form->selectDate($datestart, 'datestart', 0, 0, 1, '', 1, 0); print '
    '; print $form->selectDate($dateend, 'dateend', 0, 0, 1, '', 1, 0); print '
    '; - print dol_print_date($db->jdate($obj->dp), "dayhour"); + print dol_print_date($db->jdate($obj->dp), $formatToUse); $late=0; if ($obj->percent == 0 && $obj->dp && $db->jdate($obj->dp) < ($now - $delay_warning)) $late=1; if ($obj->percent == 0 && ! $obj->dp && $obj->dp2 && $db->jdate($obj->dp) < ($now - $delay_warning)) $late=1; @@ -626,7 +627,7 @@ if ($resql) // End date if (! empty($arrayfields['a.datep2']['checked'])) { print ''; - print dol_print_date($db->jdate($obj->dp2), "dayhour"); + print dol_print_date($db->jdate($obj->dp2), $formatToUse); print '
    '; + print ''; if ($massactionbutton || $massaction) // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined { $selected=0; diff --git a/htdocs/mrp/mo_list.php b/htdocs/mrp/mo_list.php index 891ad76eaf8..2f32058a41f 100644 --- a/htdocs/mrp/mo_list.php +++ b/htdocs/mrp/mo_list.php @@ -42,20 +42,7 @@ //if (! defined("XFRAMEOPTIONS_ALLOWALL")) define('XFRAMEOPTIONS_ALLOWALL',1); // Do not add the HTTP header 'X-Frame-Options: SAMEORIGIN' but 'X-Frame-Options: ALLOWALL' // Load Dolibarr environment -$res=0; -// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined) -if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php"; -// Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME -$tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1; -while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; } -if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include substr($tmp, 0, ($i+1))."/main.inc.php"; -if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include dirname(substr($tmp, 0, ($i+1)))."/main.inc.php"; -// Try main.inc.php using relative path -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'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; @@ -409,11 +396,11 @@ foreach($object->fields as $key => $val) if ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center'; elseif (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center'; elseif (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap'; - elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price'))) $cssforfield.=($cssforfield?' ':'').'right'; + elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $val['label'] != 'TechnicalID') $cssforfield.=($cssforfield?' ':'').'right'; if (! empty($arrayfields['t.'.$key]['checked'])) { print ''; - if (is_array($val['arrayofkeyval'])) print $form->selectarray('search_'.$key, $val['arrayofkeyval'], $search[$key], $val['notnull'], 0, 0, '', 0, 0, 0, '', 'maxwidth75'); + if (is_array($val['arrayofkeyval'])) print $form->selectarray('search_'.$key, $val['arrayofkeyval'], $search[$key], $val['notnull'], 0, 0, '', 1, 0, 0, '', 'maxwidth75'); else print ''; print '
    '; + print ''; if ($massactionbutton || $massaction) // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined { $selected=0; @@ -484,7 +478,7 @@ while ($i < min($num, $limit)) print '
    '."\n"; - - // Fields title search - print ''; - - print ''; - - print ''; - - print ''; - - // Extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php'; - - print ''; - - print ''; - - print ''; - - print ''; - print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "e.ref", "", $param, "", $sortfield, $sortorder); - print_liste_field_titre("LocationSummary", $_SERVER["PHP_SELF"], "e.lieu", "", $param, "", $sortfield, $sortorder); - print_liste_field_titre("PhysicalStock", $_SERVER["PHP_SELF"], "stockqty", '', $param, '', $sortfield, $sortorder, 'right '); - print_liste_field_titre("EstimatedStockValue", $_SERVER["PHP_SELF"], "estimatedvalue", '', $param, '', $sortfield, $sortorder, 'right '); - print_liste_field_titre("EstimatedStockValueSell", $_SERVER["PHP_SELF"], "", '', $param, '', $sortfield, $sortorder, 'right '); - // Extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; - print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "e.statut", '', $param, '', $sortfield, $sortorder, 'right '); - print_liste_field_titre('', $_SERVER["PHP_SELF"], "", '', $param, '', $sortfield, $sortorder, 'maxwidthsearch '); - print "\n"; - - if ($num) - { - $warehouse=new Entrepot($db); - $var=false; - $totalarray=array(); - while ($i < min($num, $limit)) - { - $obj = $db->fetch_object($result); - - $warehouse->id = $obj->rowid; - $warehouse->ref = $obj->ref; - $warehouse->label = $obj->ref; - $warehouse->lieu = $obj->lieu; - $warehouse->fk_parent = $obj->fk_parent; - $warehouse->statut = $obj->statut; - - print ''; - print ''; - if (! $i) $totalarray['nbfield']++; - // Location - print ''; - if (! $i) $totalarray['nbfield']++; - - // Stock qty - print ''; - if (! $i) $totalarray['nbfield']++; - - // PMP value - print ''; - if (! $i) $totalarray['nbfield']++; - - // Selling value - print ''; - if (! $i) $totalarray['nbfield']++; - - // Extra fields - include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; - - // Status - print ''; - if (! $i) $totalarray['nbfield']++; - - print ''; - if (! $i) $totalarray['nbfield']++; - - print "\n"; - - - $i++; - } - - if ($totalnboflines-$offset <= $limit) - { - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print "\n"; - } - } - - $db->free($result); - - print "
    '; - print ''; - print ''; - print ''; - print ''; - print ''; - print $form->selectarray('search_status', $warehouse->statuts, $search_status, 1, 0, 0, '', 1); - print ''; - $searchpicto=$form->showFilterAndCheckAddButtons(0); - print $searchpicto; - print '
    ' . $warehouse->getNomUrl(1) . ''.$obj->lieu.''.price2num($obj->stockqty, 5).''; - if (price2num($obj->estimatedvalue, 'MT')) print price(price2num($obj->estimatedvalue, 'MT'), 1); - else print ''; - print ''; - if (empty($conf->global->PRODUIT_MULTIPRICES)) print price(price2num($obj->sellvalue, 'MT'), 1); - else - { - $htmltext=$langs->trans("OptionMULTIPRICESIsOn"); - print $form->textwithtooltip($langs->trans("Variable"), $htmltext); - } - print ''.$warehouse->LibStatut($obj->statut, 5).'
    '.$langs->trans("Total").''.price2num($totalStock, 5).''.price(price2num($total, 'MT'), 1, $langs, 0, 0, -1, $conf->currency).''; - if (empty($conf->global->PRODUIT_MULTIPRICES)) print price(price2num($totalsell, 'MT'), 1, $langs, 0, 0, -1, $conf->currency); - else - { - $htmltext=$langs->trans("OptionMULTIPRICESIsOn"); - print $form->textwithtooltip($langs->trans("Variable"), $htmltext); - } - print '
    "; - print "
    "; - - print ''; +} +// if total of record found is smaller than limit, no need to do paging and to restart another select with limits set. +if (is_numeric($nbtotalofrecords) && $limit > $nbtotalofrecords) +{ + $num = $nbtotalofrecords; } else { - dol_print_error($db); + $sql.= $db->plimit($limit+1, $offset); + + $resql=$db->query($sql); + if (! $resql) + { + dol_print_error($db); + exit; + } + + $num = $db->num_rows($resql); +} + +// Direct jump if only one record found +if ($num == 1 && ! empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $search_all) +{ + $obj = $db->fetch_object($resql); + $id = $obj->rowid; + header("Location: ".DOL_URL_ROOT.'/product/stock/card.php?id='.$id); + exit; +} + + +// Output page +// -------------------------------------------------------------------- + +llxHeader('', $title, $help_url); + +$arrayofselected=is_array($toselect)?$toselect:array(); + +$param=''; +if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage); +if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit); +if ($search_ref) $param.="&search_ref=".urlencode($search_ref); +if ($search_label) $param.="&search_label=".urlencode($search_label); +if ($search_status) $param.="&search_status=".urlencode($search_status); +if ($search_all) $param.="&search_all=".urlencode($search_all); +if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss); +// Add $param from extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; + +// List of mass actions available +$arrayofmassactions = array( + //'presend'=>$langs->trans("SendByMail"), + //'builddoc'=>$langs->trans("PDFMerge"), +); +//if ($user->rights->stock->supprimer) $arrayofmassactions['predelete']=''.$langs->trans("Delete"); +if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array(); +$massactionbutton=$form->selectMassAction('', $arrayofmassactions); + +print '
    '; +if ($optioncss != '') print ''; +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; + +$newcardbutton = dolGetButtonTitle($langs->trans('MenuNewWarehouse'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/product/stock/card.php?action=create&backtopage='.urlencode($_SERVER['PHP_SELF']), '', $user->rights->stock->creer); + +print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'generic', 0, $newcardbutton, '', $limit); + +// Add code for pre mass action (confirmation or email presend form) +$topicmail="Information"; +$modelmail="warehouse"; +$objecttmp=new Entrepot($db); +$trackid='ware'.$object->id; +include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; + + +if ($search_all) +{ + foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val); + print '
    '.$langs->trans("FilterOnInto", $sall) . join(', ', $fieldstosearchall).'
    '; +} + +$moreforfilter = ''; +/*$moreforfilter.='
    '; + $moreforfilter.= $langs->trans('MyFilter') . ': '; + $moreforfilter.= '
    ';*/ + +$parameters=array(); +$reshook=$hookmanager->executeHooks('printFieldPreListTitle', $parameters, $object); // Note that $action and $object may have been modified by hook +if (empty($reshook)) $moreforfilter .= $hookmanager->resPrint; +else $moreforfilter = $hookmanager->resPrint; + +if (! empty($moreforfilter)) +{ + print '
    '; + print $moreforfilter; + print '
    '; +} + +$varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage; +$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields +$selectedfields.=(count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : ''); + +print '
    '; // You can use div-table-responsive-no-min if you dont need reserved height for your table +print ''."\n"; + +// Fields title search +// -------------------------------------------------------------------- +print ''; + +print ''; + +print ''; + +print ''; +print ''; +print ''; + +// Extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php'; +// Fields from hook +$parameters=array('arrayfields'=>$arrayfields); +$reshook=$hookmanager->executeHooks('printFieldListOption', $parameters, $object); // Note that $action and $object may have been modified by hook +print $hookmanager->resPrint; + +// Status +print ''; + +// Action column +print ''; +print ''."\n"; + +// Fields title label +// -------------------------------------------------------------------- +print ''; +print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "e.ref", "", $param, "", $sortfield, $sortorder); +print_liste_field_titre("LocationSummary", $_SERVER["PHP_SELF"], "e.lieu", "", $param, "", $sortfield, $sortorder); +print_liste_field_titre("PhysicalStock", $_SERVER["PHP_SELF"], "stockqty", '', $param, '', $sortfield, $sortorder, 'right '); +print_liste_field_titre("EstimatedStockValue", $_SERVER["PHP_SELF"], "estimatedvalue", '', $param, '', $sortfield, $sortorder, 'right '); +print_liste_field_titre("EstimatedStockValueSell", $_SERVER["PHP_SELF"], "", '', $param, '', $sortfield, $sortorder, 'right '); +// Extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; +// Hook fields +$parameters=array('arrayfields'=>$arrayfields,'param'=>$param,'sortfield'=>$sortfield,'sortorder'=>$sortorder); +$reshook=$hookmanager->executeHooks('printFieldListTitle', $parameters, $object); // Note that $action and $object may have been modified by hook +print $hookmanager->resPrint; +print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "e.statut", '', $param, '', $sortfield, $sortorder, 'right '); +// Action column +print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"], '', '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ')."\n"; +print ''."\n"; + +// Loop on record +// -------------------------------------------------------------------- +$i=0; +$totalarray=array(); +if ($num) +{ + $warehouse=new Entrepot($db); + + $totalarray=array(); + while ($i < min($num, $limit)) + { + $obj = $db->fetch_object($resql); + if (empty($obj)) break; // Should not happen + + $warehouse->id = $obj->rowid; + $warehouse->ref = $obj->ref; + $warehouse->label = $obj->ref; + $warehouse->lieu = $obj->lieu; + $warehouse->fk_parent = $obj->fk_parent; + $warehouse->statut = $obj->statut; + + // Show here line of result + print ''; + print ''; + if (! $i) $totalarray['nbfield']++; + // Location + print ''; + if (! $i) $totalarray['nbfield']++; + + // Stock qty + print ''; + if (! $i) $totalarray['nbfield']++; + + // PMP value + print ''; + if (! $i) $totalarray['nbfield']++; + + // Selling value + print ''; + if (! $i) $totalarray['nbfield']++; + + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; + // Fields from hook + $parameters=array('arrayfields'=>$arrayfields, 'obj'=>$obj); + $reshook=$hookmanager->executeHooks('printFieldListValue', $parameters, $object); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + + // Status + print ''; + if (! $i) $totalarray['nbfield']++; + + // Action column + print ''; + if (! $i) $totalarray['nbfield']++; + + print ''."\n"; + + + $i++; + } + + if ($totalnboflines-$offset <= $limit) + { + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print "\n"; + } +} + +$db->free($resql); + +$parameters=array('arrayfields'=>$arrayfields, 'sql'=>$sql); +$reshook=$hookmanager->executeHooks('printFieldListFooter', $parameters, $object); // Note that $action and $object may have been modified by hook +print $hookmanager->resPrint; + +print '
    '; +print ''; +print ''; +print ''; +print ''; +print $form->selectarray('search_status', $warehouse->statuts, $search_status, 1, 0, 0, '', 1); +print ''; +$searchpicto=$form->showFilterButtons(); +print $searchpicto; +print '
    ' . $warehouse->getNomUrl(1) . ''.$obj->lieu.''.price2num($obj->stockqty, 5).''; + if (price2num($obj->estimatedvalue, 'MT')) print price(price2num($obj->estimatedvalue, 'MT'), 1); + else print ''; + print ''; + if (empty($conf->global->PRODUIT_MULTIPRICES)) print price(price2num($obj->sellvalue, 'MT'), 1); + else + { + $htmltext=$langs->trans("OptionMULTIPRICESIsOn"); + print $form->textwithtooltip($langs->trans("Variable"), $htmltext); + } + print ''.$warehouse->LibStatut($obj->statut, 5).''; + if ($massactionbutton || $massaction) // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + { + $selected=0; + if (in_array($obj->rowid, $arrayofselected)) $selected=1; + print ''; + } + print '
    '.$langs->trans("Total").''.price2num($totalStock, 5).''.price(price2num($total, 'MT'), 1, $langs, 0, 0, -1, $conf->currency).''; + if (empty($conf->global->PRODUIT_MULTIPRICES)) print price(price2num($totalsell, 'MT'), 1, $langs, 0, 0, -1, $conf->currency); + else + { + $htmltext=$langs->trans("OptionMULTIPRICESIsOn"); + print $form->textwithtooltip($langs->trans("Variable"), $htmltext); + } + print '
    '."\n"; +print '
    '."\n"; + +print '
    '."\n"; + +if (in_array('builddoc', $arrayofmassactions) && ($nbtotalofrecords === '' || $nbtotalofrecords)) +{ + $hidegeneratedfilelistifempty=1; + if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) $hidegeneratedfilelistifempty=0; + + require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; + $formfile = new FormFile($db); + + // Show list of available documents + $urlsource=$_SERVER['PHP_SELF'].'?sortfield='.$sortfield.'&sortorder='.$sortorder; + $urlsource.=str_replace('&', '&', $param); + + $filedir=$diroutputmassaction; + $genallowed=$user->rights->mymodule->read; + $delallowed=$user->rights->mymodule->create; + + print $formfile->showdocuments('massfilesarea_mymodule', '', $filedir, $urlsource, 0, $delallowed, '', 1, 1, 0, 48, 1, $param, $title, '', '', '', null, $hidegeneratedfilelistifempty); } // End of page From e07e01580db7de0078259127ec3626ff881efa3e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Oct 2019 03:34:32 +0200 Subject: [PATCH 432/484] Replace deprecated code with new one --- htdocs/comm/action/list.php | 4 +++- htdocs/compta/bank/bankentries_list.php | 4 +++- htdocs/compta/bank/card.php | 2 +- htdocs/compta/bank/list.php | 11 ++++++++--- htdocs/contact/list.php | 4 +++- htdocs/contrat/list.php | 4 +++- htdocs/contrat/services_list.php | 4 +++- .../modules/stock/doc/pdf_stdmovement.modules.php | 5 ++++- htdocs/expedition/list.php | 4 +++- htdocs/fichinter/list.php | 4 +++- htdocs/fourn/commande/list.php | 4 +++- htdocs/fourn/facture/list.php | 4 +++- htdocs/product/stock/movement_card.php | 4 +++- htdocs/product/stock/movement_list.php | 4 +++- htdocs/projet/list.php | 6 ++++-- htdocs/projet/tasks/list.php | 4 +++- htdocs/reception/list.php | 4 +++- htdocs/societe/list.php | 4 +++- htdocs/supplier_proposal/list.php | 4 +++- htdocs/user/list.php | 4 +++- 20 files changed, 65 insertions(+), 23 deletions(-) diff --git a/htdocs/comm/action/list.php b/htdocs/comm/action/list.php index efb11a7e22b..38ce916aeee 100644 --- a/htdocs/comm/action/list.php +++ b/htdocs/comm/action/list.php @@ -247,7 +247,9 @@ $sql.= " c.code as type_code, c.libelle as type_label,"; $sql.= " sp.lastname, sp.firstname, sp.email, sp.phone, sp.address, sp.phone as phone_pro, sp.phone_mobile, sp.phone_perso, sp.fk_pays as country_id"; // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); +} // Add fields from hooks $parameters=array(); diff --git a/htdocs/compta/bank/bankentries_list.php b/htdocs/compta/bank/bankentries_list.php index 1b0f7feffe4..7f43b24763a 100644 --- a/htdocs/compta/bank/bankentries_list.php +++ b/htdocs/compta/bank/bankentries_list.php @@ -473,7 +473,9 @@ $sql.= " ba.rowid as bankid, ba.ref as bankref,"; $sql.= " bu.url_id,"; $sql.= " s.nom, s.name_alias, s.client, s.fournisseur, s.email, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur"; // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); +} // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook diff --git a/htdocs/compta/bank/card.php b/htdocs/compta/bank/card.php index fd5a2b42723..ac32ce98c30 100644 --- a/htdocs/compta/bank/card.php +++ b/htdocs/compta/bank/card.php @@ -627,7 +627,7 @@ else $conciliate=$object->canBeConciliated(); if ($conciliate == -2) print $langs->trans("No").' ('.$langs->trans("CashAccount").')'; elseif ($conciliate == -3) print $langs->trans("No").' ('.$langs->trans("Closed").')'; - else print ($object->rappro==1 ? $langs->trans("Yes") : ($langs->trans("No").' ('.$langs->trans("ConciliationDisabled").')')); + else print ($object->rappro==1 ? $langs->trans("Yes") : ($langs->trans("No").' ('.$langs->trans("ConciliationDisabled").')')); print ''; print ''.$langs->trans("BalanceMinimalAllowed").''; diff --git a/htdocs/compta/bank/list.php b/htdocs/compta/bank/list.php index 8f87d6f7151..6a143d4a8d1 100644 --- a/htdocs/compta/bank/list.php +++ b/htdocs/compta/bank/list.php @@ -73,7 +73,7 @@ $hookmanager->initHooks(array('bankaccountlist')); $extrafields = new ExtraFields($db); // fetch optionals attributes and labels -$extrafields->fetch_name_optionals_label('bank_account'); +$extrafields->fetch_name_optionals_label($object->table_element); $search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); // List of fields to search into when doing a "search in all" @@ -144,7 +144,9 @@ $accounts = array(); $sql = "SELECT b.rowid, b.label, b.courant, b.rappro, b.account_number, b.fk_accountancy_journal, b.currency_code, b.datec as date_creation, b.tms as date_update"; // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); +} // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook @@ -514,7 +516,10 @@ foreach ($accounts as $key=>$type) } } } - else print $langs->trans("FeatureDisabled"); + else + { + print ''.$langs->trans("FeatureDisabled").''; + } print ''; if (! $i) $totalarray['nbfield']++; } diff --git a/htdocs/contact/list.php b/htdocs/contact/list.php index 1eed9497619..9f3dc206447 100644 --- a/htdocs/contact/list.php +++ b/htdocs/contact/list.php @@ -276,7 +276,9 @@ $sql.= " p.rowid, p.lastname as lastname, p.statut, p.firstname, p.zip, p.town, $sql.= " p.phone as phone_pro, p.phone_mobile, p.phone_perso, p.fax, p.fk_pays, p.priv, p.datec as date_creation, p.tms as date_update,"; $sql.= " co.code as country_code"; // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); +} // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook diff --git a/htdocs/contrat/list.php b/htdocs/contrat/list.php index fc110d4a396..0fd27d29826 100644 --- a/htdocs/contrat/list.php +++ b/htdocs/contrat/list.php @@ -218,7 +218,9 @@ $sql.= ' SUM('.$db->ifsql("cd.statut=4 AND (cd.date_fin_validite IS NOT NULL AND $sql.= ' SUM('.$db->ifsql("cd.statut=4 AND (cd.date_fin_validite IS NOT NULL AND cd.date_fin_validite < '".$db->idate($now - $conf->contrat->services->expires->warning_delay)."')", 1, 0).') as nb_late,'; $sql.= ' SUM('.$db->ifsql("cd.statut=5", 1, 0).') as nb_closed'; // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); +} // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook diff --git a/htdocs/contrat/services_list.php b/htdocs/contrat/services_list.php index 3e5b9f55c98..fac71516e99 100644 --- a/htdocs/contrat/services_list.php +++ b/htdocs/contrat/services_list.php @@ -219,7 +219,9 @@ $sql.= " cd.subprice,"; //$sql.= " cd.date_c as date_creation,"; $sql.= " cd.tms as date_update"; // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); +} // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook diff --git a/htdocs/core/modules/stock/doc/pdf_stdmovement.modules.php b/htdocs/core/modules/stock/doc/pdf_stdmovement.modules.php index 2a5f797147e..3ed4ff7e813 100644 --- a/htdocs/core/modules/stock/doc/pdf_stdmovement.modules.php +++ b/htdocs/core/modules/stock/doc/pdf_stdmovement.modules.php @@ -253,6 +253,7 @@ class pdf_stdmovement extends ModelePDFMovement $warehousestatic=new Entrepot($db); $movement=new MouvementStock($db); $userstatic=new User($db); + $element = 'movement'; $sql = "SELECT p.rowid, p.ref as product_ref, p.label as produit, p.tobatch, p.fk_product_type as type, p.entity,"; $sql.= " e.ref as stock, e.rowid as entrepot_id, e.lieu,"; @@ -262,7 +263,9 @@ class pdf_stdmovement extends ModelePDFMovement $sql.= " pl.rowid as lotid, pl.eatby, pl.sellby,"; $sql.= " u.login, u.photo, u.lastname, u.firstname"; // Add fields from extrafields - foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); + if (! empty($extrafields->attributes[$element]['label'])) { + foreach ($extrafields->attributes[$element]['label'] as $key => $val) $sql.=($extrafields->attributes[$element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); + } // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook diff --git a/htdocs/expedition/list.php b/htdocs/expedition/list.php index ebe0bcfd8df..1840569fd0e 100644 --- a/htdocs/expedition/list.php +++ b/htdocs/expedition/list.php @@ -192,7 +192,9 @@ $sql.= " typent.code as typent_code,"; $sql.= " state.code_departement as state_code, state.nom as state_name,"; $sql.= ' e.date_creation as date_creation, e.tms as date_update'; // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); +} // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook diff --git a/htdocs/fichinter/list.php b/htdocs/fichinter/list.php index 7160eb8152c..7df7eac69b0 100644 --- a/htdocs/fichinter/list.php +++ b/htdocs/fichinter/list.php @@ -209,7 +209,9 @@ if (!empty($conf->contrat->enabled)) { $sql .= ", c.rowid as contrat_id, c.ref as contrat_ref, c.ref_customer as contrat_ref_supplier, c.ref_supplier as contrat_ref_supplier"; } // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); +} // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook diff --git a/htdocs/fourn/commande/list.php b/htdocs/fourn/commande/list.php index 6410f2c9e57..1b1cf0c9b6d 100644 --- a/htdocs/fourn/commande/list.php +++ b/htdocs/fourn/commande/list.php @@ -492,7 +492,9 @@ $sql.= ' cf.date_creation as date_creation, cf.tms as date_update,'; $sql.= " p.rowid as project_id, p.ref as project_ref, p.title as project_title,"; $sql.= " u.firstname, u.lastname, u.photo, u.login, u.email as user_email"; // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); +} // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook diff --git a/htdocs/fourn/facture/list.php b/htdocs/fourn/facture/list.php index 862e4d6ece5..4bd6059df3e 100644 --- a/htdocs/fourn/facture/list.php +++ b/htdocs/fourn/facture/list.php @@ -277,7 +277,9 @@ $sql.= " p.rowid as project_id, p.ref as project_ref, p.title as project_label"; // TODO Better solution to be able to sort on already payed or remain to pay is to store amount_payed in a denormalized field. if (! $search_all) $sql.= ', SUM(pf.amount) as dynamount_payed'; // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); +} // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook diff --git a/htdocs/product/stock/movement_card.php b/htdocs/product/stock/movement_card.php index 0278e1572e6..c08fc8078a8 100644 --- a/htdocs/product/stock/movement_card.php +++ b/htdocs/product/stock/movement_card.php @@ -451,7 +451,9 @@ $sql.= " m.type_mouvement,"; $sql.= " pl.rowid as lotid, pl.eatby, pl.sellby,"; $sql.= " u.login, u.photo, u.lastname, u.firstname"; // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); +} // Add fields from hooks $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook diff --git a/htdocs/product/stock/movement_list.php b/htdocs/product/stock/movement_list.php index 73b783e09b9..a4831d46844 100644 --- a/htdocs/product/stock/movement_list.php +++ b/htdocs/product/stock/movement_list.php @@ -429,7 +429,9 @@ $sql.= " m.fk_projet,"; $sql.= " pl.rowid as lotid, pl.eatby, pl.sellby,"; $sql.= " u.login, u.photo, u.lastname, u.firstname"; // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); +} // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook diff --git a/htdocs/projet/list.php b/htdocs/projet/list.php index 59d727c5027..9a5514ff1cc 100644 --- a/htdocs/projet/list.php +++ b/htdocs/projet/list.php @@ -293,8 +293,10 @@ $sql.= ", s.rowid as socid, s.nom as name, s.email"; $sql.= ", cls.code as opp_status_code"; // We'll need these fields in order to filter by categ if ($search_categ) $sql .= ", cs.fk_categorie, cs.fk_project"; -// Add fields for extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +// Add fields from extrafields +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); +} // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook diff --git a/htdocs/projet/tasks/list.php b/htdocs/projet/tasks/list.php index 00ef201aa9f..e13b7092b26 100644 --- a/htdocs/projet/tasks/list.php +++ b/htdocs/projet/tasks/list.php @@ -271,7 +271,9 @@ if (! empty($arrayfields['t.tobill']['checked']) || ! empty($arrayfields['t.bill $sql.=" , SUM(tt.task_duration * ".$db->ifsql("invoice_id IS NULL", "1", "0").") as tobill, SUM(tt.task_duration * ".$db->ifsql("invoice_id IS NULL", "0", "1").") as billed"; } // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); +} // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook diff --git a/htdocs/reception/list.php b/htdocs/reception/list.php index 65fdf153dd4..7978f7eaab3 100644 --- a/htdocs/reception/list.php +++ b/htdocs/reception/list.php @@ -427,7 +427,9 @@ $sql.= " typent.code as typent_code,"; $sql.= " state.code_departement as state_code, state.nom as state_name,"; $sql.= ' e.date_creation as date_creation, e.tms as date_update'; // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); +} // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php index e29edb07717..7420c417aae 100644 --- a/htdocs/societe/list.php +++ b/htdocs/societe/list.php @@ -388,7 +388,9 @@ if ($search_sale) $sql .= ", sc.fk_soc, sc.fk_user"; if ($search_categ_cus) $sql .= ", cc.fk_categorie, cc.fk_soc"; if ($search_categ_sup) $sql .= ", cs.fk_categorie, cs.fk_soc"; // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); +} // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook diff --git a/htdocs/supplier_proposal/list.php b/htdocs/supplier_proposal/list.php index f36013b289c..687d98911f2 100644 --- a/htdocs/supplier_proposal/list.php +++ b/htdocs/supplier_proposal/list.php @@ -250,7 +250,9 @@ $sql.= " p.rowid as project_id, p.ref as project_ref,"; if (! $user->rights->societe->client->voir && ! $socid) $sql .= " sc.fk_soc, sc.fk_user,"; $sql.= " u.firstname, u.lastname, u.photo, u.login"; // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); +} // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook diff --git a/htdocs/user/list.php b/htdocs/user/list.php index d65d852294f..5520465a75d 100644 --- a/htdocs/user/list.php +++ b/htdocs/user/list.php @@ -198,7 +198,9 @@ $sql.= " u.tms as date_update, u.datec as date_creation,"; $sql.= " u2.rowid as id2, u2.login as login2, u2.firstname as firstname2, u2.lastname as lastname2, u2.admin as admin2, u2.fk_soc as fk_soc2, u2.email as email2, u2.gender as gender2, u2.photo as photo2, u2.entity as entity2,"; $sql.= " s.nom as name, s.canvas"; // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +if (! empty($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); +} // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook From 42d8f276fca2425ea2873c52aa937964c25d58b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Wed, 16 Oct 2019 08:17:13 +0200 Subject: [PATCH 433/484] Update mo.class.php --- htdocs/mrp/class/mo.class.php | 1 - 1 file changed, 1 deletion(-) diff --git a/htdocs/mrp/class/mo.class.php b/htdocs/mrp/class/mo.class.php index d485ec0ef16..a459a582bba 100644 --- a/htdocs/mrp/class/mo.class.php +++ b/htdocs/mrp/class/mo.class.php @@ -1,4 +1,3 @@ - * Copyright (C) ---Put here your own copyright and developer email--- From 4bb16770796b07b197c8e1dcdd6fe5a44efd7340 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 16 Oct 2019 10:39:35 +0200 Subject: [PATCH 434/484] Fix - Accountancy - Various payment - Subledger is not recovered in bank journal --- htdocs/accountancy/journal/bankjournal.php | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index 8003cf1c523..a532379c358 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -4,12 +4,12 @@ * Copyright (C) 2011 Juanjo Menent * Copyright (C) 2012 Regis Houssin * Copyright (C) 2013 Christophe Battarel - * Copyright (C) 2013-2018 Alexandre Spangaro + * Copyright (C) 2013-2019 Alexandre Spangaro * Copyright (C) 2013-2014 Florian Henry * Copyright (C) 2013-2014 Olivier Geffroy * Copyright (C) 2017-2018 Frédéric France - * Copyright (C) 2018 Ferran Marcet - * Copyright (C) 2018 Eric Seigne + * Copyright (C) 2018 Ferran Marcet + * Copyright (C) 2018 Eric Seigne * * 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 @@ -387,7 +387,9 @@ if ($result) { $tabpay[$obj->rowid]["paymentvariousid"] = $paymentvariousstatic->id; $paymentvariousstatic->fetch($paymentvariousstatic->id); $account_various = (! empty($paymentvariousstatic->accountancy_code) ? $paymentvariousstatic->accountancy_code : 'NotDefined'); // NotDefined is a reserved word - $tabtp[$obj->rowid][$account_various] += $obj->amount; + $account_subledger = (! empty($paymentvariousstatic->subledger_account) ? $paymentvariousstatic->subledger_account : ''); // NotDefined is a reserved word + $tabpay[$obj->rowid]["account_various"] = $account_various; + $tabtp[$obj->rowid][$account_subledger] += $obj->amount; } elseif ($links[$key]['type'] == 'payment_loan') { $paymentloanstatic->id = $links[$key]['url_id']; $paymentloanstatic->ref = $links[$key]['url_id']; @@ -660,11 +662,11 @@ if (! $error && $action == 'writebookkeeping') { $accountingaccount->fetch(null, $k, true); $bookkeeping->label_compte = $accountingaccount->label; } elseif ($tabtype[$key] == 'payment_various') { - $bookkeeping->subledger_account = ''; - $bookkeeping->subledger_label = ''; - $bookkeeping->numero_compte = $k; + $bookkeeping->subledger_account = $k; + $bookkeeping->subledger_label = $tabcompany[$key]['name']; + $bookkeeping->numero_compte = $tabpay[$obj->rowid]["account_various"]; - $accountingaccount->fetch(null, $k, true); + $accountingaccount->fetch(null, $bookkeeping->numero_compte, true); $bookkeeping->label_compte = $accountingaccount->label; } elseif ($tabtype[$key] == 'banktransfert') { $bookkeeping->subledger_account = ''; @@ -1123,6 +1125,7 @@ if (empty($action) || $action == 'view') { if ($tabtype[$key] == 'payment_salary') $account_ledger = $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT; if ($tabtype[$key] == 'payment_vat') $account_ledger = $conf->global->ACCOUNTING_VAT_PAY_ACCOUNT; if ($tabtype[$key] == 'member') $account_ledger = $conf->global->ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT; + if ($tabtype[$key] == 'payment_various') $account_ledger = $tabpay[$key]["account_various"]; $accounttoshow = length_accounta($account_ledger); if (empty($accounttoshow) || $accounttoshow == 'NotDefined') { @@ -1156,7 +1159,7 @@ if (empty($action) || $action == 'view') { // Subledger account print ""; - if (in_array($tabtype[$key], array('payment', 'payment_supplier', 'payment_expensereport', 'payment_salary'))) // Type of payment with subledger + if (in_array($tabtype[$key], array('payment', 'payment_supplier', 'payment_expensereport', 'payment_salary', 'payment_various'))) // Type of payment with subledger { $accounttoshowsubledger = length_accounta($k); if ($accounttoshow != $accounttoshowsubledger) From 5a1682509beb97483b41431dde8f1873d85d4a29 Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Wed, 16 Oct 2019 11:11:34 +0200 Subject: [PATCH 435/484] FIX It is not possible to create an expedition if there is no unit data --- htdocs/expedition/class/expedition.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php index 915177164ac..1a9a249effc 100644 --- a/htdocs/expedition/class/expedition.class.php +++ b/htdocs/expedition/class/expedition.class.php @@ -325,8 +325,8 @@ class Expedition extends CommonObject $sql.= ", ".$this->sizeS; // TODO Should use this->trueDepth $sql.= ", ".$this->sizeW; // TODO Should use this->trueWidth $sql.= ", ".$this->sizeH; // TODO Should use this->trueHeight - $sql.= ", ".$this->weight_units; - $sql.= ", ".$this->size_units; + $sql.= ", ".($this->weight_units>0?$this->weight_units:'NULL'); + $sql.= ", ".($this->size_units>0?$this->size_units:'NULL'); $sql.= ", ".(!empty($this->note_private)?"'".$this->db->escape($this->note_private)."'":"null"); $sql.= ", ".(!empty($this->note_public)?"'".$this->db->escape($this->note_public)."'":"null"); $sql.= ", ".(!empty($this->model_pdf)?"'".$this->db->escape($this->model_pdf)."'":"null"); From 517fcf45d144c6c3ce1639432fd04a6a46967ac3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Oct 2019 11:23:06 +0200 Subject: [PATCH 436/484] Look and feel v11 --- htdocs/modulebuilder/index.php | 39 +++++++++++++++++++++++++++++++++- htdocs/societe/card.php | 18 ++++++++-------- 2 files changed, 47 insertions(+), 10 deletions(-) diff --git a/htdocs/modulebuilder/index.php b/htdocs/modulebuilder/index.php index 5cd32512713..0f5ab5e2c90 100644 --- a/htdocs/modulebuilder/index.php +++ b/htdocs/modulebuilder/index.php @@ -537,6 +537,26 @@ if ($dirins && $action == 'initobject' && $module && GETPOST('createtablearray', } else { + /** + * 'type' if the field format ('integer', 'integer:Class:pathtoclass', 'varchar(x)', 'double(24,8)', 'text', 'html', 'datetime', 'timestamp', 'float') + * 'label' the translation key. + * 'enabled' is a condition when the field must be managed. + * 'visible' says if field is visible in list (Examples: 0=Not visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only (not list), 4=Visible on list and update/view form only (not create). Using a negative value means field is not shown by default on list but can be selected for viewing) + * 'noteditable' says if field is not editable (1 or 0) + * 'notnull' is set to 1 if not null in database. Set to -1 if we must set data to null if empty ('' or 0). + * 'default' is a default value for creation (can still be replaced by the global setup of default values) + * 'index' if we want an index in database. + * 'foreignkey'=>'tablename.field' if the field is a foreign key (it is recommanded to name the field fk_...). + * 'position' is the sort order of field. + * 'searchall' is 1 if we want to search in this field when making a search from the quick search button. + * 'isameasure' must be set to 1 if you want to have a total on list for this field. Field type must be summable like integer or double(24,8). + * 'css' is the CSS style to use on field. For example: 'maxwidth200' + * 'help' is a string visible as a tooltip on field + * 'comment' is not used. You can store here any text of your choice. It is not used by application. + * 'showoncombobox' if value of the field must be visible into the label of the combobox that list record + * 'arraykeyval' to set list of value if type is a list of predefined values. For example: array("0"=>"Draft","1"=>"Active","-1"=>"Cancel") + */ + /*public $fields=array( 'rowid' =>array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'index'=>1, 'position'=>1, 'comment'=>'Id'), 'ref' =>array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1, 'comment'=>'Reference of object'), @@ -562,14 +582,31 @@ if ($dirins && $action == 'initobject' && $module && GETPOST('createtablearray', $i=10; while ($obj = $db->fetch_object($_results)) { + // fieldname $fieldname = $obj->Field; + // type $type = $obj->Type; if ($type == 'int(11)') $type='integer'; + // notnull $notnull = ($obj->Null == 'YES'?0:1); + // label $label = preg_replace('/_/', ' ', ucfirst($fieldname)); if ($fieldname == 'rowid') $label='ID'; + if ($fieldname == 'import_key') $label='ImportKey'; + // visible + $visible = -1; + if ($fieldname == 'entity') $visible = -2; + if ($fieldname == 'model_pdf') $visible = 0; + // enabled + $enabled = 1; + // default + $default = ''; + if ($fieldname == 'entity') $default=1; - $string.= "'".$obj->Field."' =>array('type'=>'".$type."', 'label'=>'".$label."', 'enabled'=>1, 'visible'=>-2"; + $string.= "'".$obj->Field."' =>array('type'=>'".$type."', 'label'=>'".$label."',"; + if ($default != '') $string.= " 'default'=>".$default.","; + $string.= " 'enabled'=>".$enabled.","; + $string.= " 'visible'=>".$visible; if ($notnull) $string.= ", 'notnull'=>".$notnull; if ($fieldname == 'ref') $string.= ", 'showoncombobox'=>1"; $string.= ", 'position'=>".$i."),\n"; diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index e2a8f731856..344fa76fa8d 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -1293,9 +1293,9 @@ else } // Email / Web - print ''.$form->editfieldkey('EMail', 'email', '', $object, 0, 'string', '', $conf->global->SOCIETE_EMAIL_MANDATORY).''; + print ''.img_picto('', 'object_email').' '.$form->editfieldkey('EMail', 'email', '', $object, 0, 'string', '', $conf->global->SOCIETE_EMAIL_MANDATORY).''; print ''; - print ''.$form->editfieldkey('Web', 'url', '', $object, 0).''; + print ''.img_picto('', 'globe').' '.$form->editfieldkey('Web', 'url', '', $object, 0).''; print ''; if (! empty($conf->socialnetworks->enabled)) @@ -1335,9 +1335,9 @@ else } // Phone / Fax - print ''.$form->editfieldkey('Phone', 'phone', '', $object, 0).''; + print ''.img_picto('', 'object_phoning').' '.$form->editfieldkey('Phone', 'phone', '', $object, 0).''; print ''; - print ''.$form->editfieldkey('Fax', 'fax', '', $object, 0).''; + print ''.img_picto('', 'object_phoning_fax').' '.$form->editfieldkey('Fax', 'fax', '', $object, 0).''; print ''; // Prof ids @@ -1916,9 +1916,9 @@ else } // EMail / Web - print ''.$form->editfieldkey('EMail', 'email', '', $object, 0, 'string', '', (! empty($conf->global->SOCIETE_EMAIL_MANDATORY))).''; + print ''.img_picto('', 'object_email').' '.$form->editfieldkey('EMail', 'email', GETPOST('email','alpha'), $object, 0, 'string', '', (! empty($conf->global->SOCIETE_EMAIL_MANDATORY))).''; print ''; - print ''.$form->editfieldkey('Web', 'url', '', $object, 0).''; + print ''.img_picto('', 'globe').' '.$form->editfieldkey('Web', 'url', GETPOST('url','alpha'), $object, 0).''; print ''; if (! empty($conf->socialnetworks->enabled)) @@ -1950,9 +1950,9 @@ else } // Phone / Fax - print ''.$form->editfieldkey('Phone', 'phone', '', $object, 0).''; + print ''.img_picto('', 'object_phoning').' '.$form->editfieldkey('Phone', 'phone', GETPOST('phone', 'alpha'), $object, 0).''; print ''; - print ''.$form->editfieldkey('Fax', 'fax', '', $object, 0).''; + print ''.img_picto('', 'object_phoning_fax').' '.$form->editfieldkey('Fax', 'fax', GETPOST('fax', 'alpha'), $object, 0).''; print ''; // Prof ids @@ -2666,7 +2666,7 @@ else { print ''."\n"; } - + if (! empty($conf->adherent->enabled)) { $adh = new Adherent($db); From 6d05d42c50178f035e07c4342711c7773ca47cb9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Oct 2019 11:26:20 +0200 Subject: [PATCH 437/484] Look and feel v11 --- htdocs/core/lib/functions.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 7bda225978f..b3140c7e051 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -2220,7 +2220,7 @@ function dol_print_socialnetworks($value, $cid, $socid, $type) if (! empty($type)) { $newskype ='
    '; - $newskype.=img_picto($langs->trans(strtoupper($type)), $type.'.png', '', false, 0, 0, '', 'paddingright'); + $newskype.=img_picto($langs->trans(strtoupper($type)), $type.'.png', '', false, 0, 0, '', 'paddingright', 0); $newskype.=$value; if ($type == 'skype') { From 8d4960954902e7997009d228abf9958ee674fc4d Mon Sep 17 00:00:00 2001 From: Norbert Penel Date: Wed, 16 Oct 2019 12:28:50 +0200 Subject: [PATCH 438/484] Fix user time instead of server time it seems that we want to use a user time by clicking on now button. IDEA : may i use client time ??? because if page is old, the now button insert an old time. --- htdocs/core/class/html.form.class.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index d9442e43457..19c01f151cf 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -5607,10 +5607,10 @@ class Form $reset_scripts = ""; // Generate the date part, depending on the use or not of the javascript calendar - $reset_scripts .= 'jQuery(\'#'.$prefix.'\').val(\''.dol_print_date(dol_now(), 'day').'\');'; - $reset_scripts .= 'jQuery(\'#'.$prefix.'day\').val(\''.dol_print_date(dol_now(), '%d').'\');'; - $reset_scripts .= 'jQuery(\'#'.$prefix.'month\').val(\''.dol_print_date(dol_now(), '%m').'\');'; - $reset_scripts .= 'jQuery(\'#'.$prefix.'year\').val(\''.dol_print_date(dol_now(), '%Y').'\');'; + $reset_scripts .= 'jQuery(\'#'.$prefix.'\').val(\''.dol_print_date(dol_now(), 'day','tzuser').'\');'; + $reset_scripts .= 'jQuery(\'#'.$prefix.'day\').val(\''.dol_print_date(dol_now(), '%d','tzuser').'\');'; + $reset_scripts .= 'jQuery(\'#'.$prefix.'month\').val(\''.dol_print_date(dol_now(), '%m','tzuser').'\');'; + $reset_scripts .= 'jQuery(\'#'.$prefix.'year\').val(\''.dol_print_date(dol_now(), '%Y','tzuser').'\');'; /*if ($usecalendar == "eldy") { $base=DOL_URL_ROOT.'/core/'; @@ -5627,7 +5627,7 @@ class Form { if ($fullday) $reset_scripts .= " if (jQuery('#fullday:checked').val() == null) {"; //$reset_scripts .= 'this.form.elements[\''.$prefix.'hour\'].value=formatDate(new Date(), \'HH\'); '; - $reset_scripts .= 'jQuery(\'#'.$prefix.'hour\').val(\''.dol_print_date(dol_now(), '%H').'\');'; + $reset_scripts .= 'jQuery(\'#'.$prefix.'hour\').val(\''.dol_print_date(dol_now(), '%H','tzuser').'\');'; if ($fullday) $reset_scripts .= ' } '; } // Update the minute part @@ -5635,7 +5635,7 @@ class Form { if ($fullday) $reset_scripts .= " if (jQuery('#fullday:checked').val() == null) {"; //$reset_scripts .= 'this.form.elements[\''.$prefix.'min\'].value=formatDate(new Date(), \'mm\'); '; - $reset_scripts .= 'jQuery(\'#'.$prefix.'min\').val(\''.dol_print_date(dol_now(), '%M').'\');'; + $reset_scripts .= 'jQuery(\'#'.$prefix.'min\').val(\''.dol_print_date(dol_now(), '%M','tzuser').'\');'; if ($fullday) $reset_scripts .= ' } '; } // If reset_scripts is not empty, print the link with the reset_scripts in the onClick From e1521b6c7d28efe5fa495197dcac79dfd7024584 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Oct 2019 12:31:44 +0200 Subject: [PATCH 439/484] Fix phpcs --- htdocs/societe/card.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index 344fa76fa8d..e855cb71b8c 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -1916,9 +1916,9 @@ else } // EMail / Web - print ''.img_picto('', 'object_email').' '.$form->editfieldkey('EMail', 'email', GETPOST('email','alpha'), $object, 0, 'string', '', (! empty($conf->global->SOCIETE_EMAIL_MANDATORY))).''; + print ''.img_picto('', 'object_email').' '.$form->editfieldkey('EMail', 'email', GETPOST('email', 'alpha'), $object, 0, 'string', '', (! empty($conf->global->SOCIETE_EMAIL_MANDATORY))).''; print ''; - print ''.img_picto('', 'globe').' '.$form->editfieldkey('Web', 'url', GETPOST('url','alpha'), $object, 0).''; + print ''.img_picto('', 'globe').' '.$form->editfieldkey('Web', 'url', GETPOST('url', 'alpha'), $object, 0).''; print ''; if (! empty($conf->socialnetworks->enabled)) From a9e57fa2b27a8820331885ff0f453d6efd66672e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Oct 2019 12:32:26 +0200 Subject: [PATCH 440/484] Clean page --- htdocs/modulebuilder/index.php | 46 ++++++++++++++++------------------ 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/htdocs/modulebuilder/index.php b/htdocs/modulebuilder/index.php index 0f5ab5e2c90..2e22e9fb23e 100644 --- a/htdocs/modulebuilder/index.php +++ b/htdocs/modulebuilder/index.php @@ -1615,7 +1615,7 @@ elseif (! empty($module)) print ''; print '
    '; - print load_fiche_titre($langs->trans("DescriptorFile")); + print load_fiche_titre($langs->trans("DescriptorFile"), '', ''); if (! empty($moduleobj)) { @@ -1675,35 +1675,33 @@ elseif (! empty($module)) print ''; print ''; - - print '

    '; - - // Readme file - print load_fiche_titre($langs->trans("ReadmeFile")); - - print '
    '; - print '
    '; - if (dol_is_file($dirread.'/'.$pathtofilereadme)) print $moduleobj->getDescLong(); - else print $langs->trans("ErrorFileNotFound", $pathtofilereadme); - - print '

    '; - - // ChangeLog - print load_fiche_titre($langs->trans("ChangeLog")); - - print '
    '; - print '
    '; - - if (dol_is_file($dirread.'/'.$pathtochangelog)) print $moduleobj->getChangeLog(); - else print $langs->trans("ErrorFileNotFound", $pathtochangelog); - - print '
    '; } else { print $langs->trans("ErrorFailedToLoadModuleDescriptorForXXX", $module).'
    '; } + if (! empty($moduleobj)) + { + print '

    '; + + // Readme file + print load_fiche_titre($langs->trans("ReadmeFile"), '', ''); + + print ''; + if (dol_is_file($dirread.'/'.$pathtofilereadme)) print '
    '.$moduleobj->getDescLong().'
    '; + else print ''.$langs->trans("ErrorFileNotFound", $pathtofilereadme).''; + + print '

    '; + + // ChangeLog + print load_fiche_titre($langs->trans("ChangeLog"), '', ''); + + print ''; + if (dol_is_file($dirread.'/'.$pathtochangelog)) print '
    '.$moduleobj->getChangeLog().'
    '; + else print ''.$langs->trans("ErrorFileNotFound", $pathtochangelog).''; + } + dol_fiche_end(); } else From bba042c0c31ee10b662bf908996d1dc8aa1dd0e6 Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Wed, 16 Oct 2019 10:34:47 +0000 Subject: [PATCH 441/484] Fixing style errors. --- htdocs/core/class/html.form.class.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 19c01f151cf..2130a7d7e38 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -5607,10 +5607,10 @@ class Form $reset_scripts = ""; // Generate the date part, depending on the use or not of the javascript calendar - $reset_scripts .= 'jQuery(\'#'.$prefix.'\').val(\''.dol_print_date(dol_now(), 'day','tzuser').'\');'; - $reset_scripts .= 'jQuery(\'#'.$prefix.'day\').val(\''.dol_print_date(dol_now(), '%d','tzuser').'\');'; - $reset_scripts .= 'jQuery(\'#'.$prefix.'month\').val(\''.dol_print_date(dol_now(), '%m','tzuser').'\');'; - $reset_scripts .= 'jQuery(\'#'.$prefix.'year\').val(\''.dol_print_date(dol_now(), '%Y','tzuser').'\');'; + $reset_scripts .= 'jQuery(\'#'.$prefix.'\').val(\''.dol_print_date(dol_now(), 'day', 'tzuser').'\');'; + $reset_scripts .= 'jQuery(\'#'.$prefix.'day\').val(\''.dol_print_date(dol_now(), '%d', 'tzuser').'\');'; + $reset_scripts .= 'jQuery(\'#'.$prefix.'month\').val(\''.dol_print_date(dol_now(), '%m', 'tzuser').'\');'; + $reset_scripts .= 'jQuery(\'#'.$prefix.'year\').val(\''.dol_print_date(dol_now(), '%Y', 'tzuser').'\');'; /*if ($usecalendar == "eldy") { $base=DOL_URL_ROOT.'/core/'; @@ -5627,7 +5627,7 @@ class Form { if ($fullday) $reset_scripts .= " if (jQuery('#fullday:checked').val() == null) {"; //$reset_scripts .= 'this.form.elements[\''.$prefix.'hour\'].value=formatDate(new Date(), \'HH\'); '; - $reset_scripts .= 'jQuery(\'#'.$prefix.'hour\').val(\''.dol_print_date(dol_now(), '%H','tzuser').'\');'; + $reset_scripts .= 'jQuery(\'#'.$prefix.'hour\').val(\''.dol_print_date(dol_now(), '%H', 'tzuser').'\');'; if ($fullday) $reset_scripts .= ' } '; } // Update the minute part @@ -5635,7 +5635,7 @@ class Form { if ($fullday) $reset_scripts .= " if (jQuery('#fullday:checked').val() == null) {"; //$reset_scripts .= 'this.form.elements[\''.$prefix.'min\'].value=formatDate(new Date(), \'mm\'); '; - $reset_scripts .= 'jQuery(\'#'.$prefix.'min\').val(\''.dol_print_date(dol_now(), '%M','tzuser').'\');'; + $reset_scripts .= 'jQuery(\'#'.$prefix.'min\').val(\''.dol_print_date(dol_now(), '%M', 'tzuser').'\');'; if ($fullday) $reset_scripts .= ' } '; } // If reset_scripts is not empty, print the link with the reset_scripts in the onClick From 9663205601233fa6fe812ce7d0ec3ce1ad656437 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Oct 2019 13:55:29 +0200 Subject: [PATCH 442/484] FIX css (some buttons not aligned) --- htdocs/theme/eldy/btn.inc.php | 3 ++- htdocs/theme/md/btn.inc.php | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/htdocs/theme/eldy/btn.inc.php b/htdocs/theme/eldy/btn.inc.php index a3a952925e3..a9b1a6708a3 100644 --- a/htdocs/theme/eldy/btn.inc.php +++ b/htdocs/theme/eldy/btn.inc.php @@ -11,7 +11,8 @@ if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?> div.divButAction { margin-bottom: 1.4em; } -div.tabsAction > a.butAction, div.tabsAction > a.butActionRefused { +div.tabsAction > a.butAction, div.tabsAction > a.butActionRefused, div.tabsAction > a.butActionDelete, +div.tabsAction > span.butAction, div.tabsAction > span.butActionRefused, div.tabsAction > span.butActionDelete { margin-bottom: 1.4em !important; } div.tabsActionNoBottom > a.butAction, div.tabsActionNoBottom > a.butActionRefused { diff --git a/htdocs/theme/md/btn.inc.php b/htdocs/theme/md/btn.inc.php index be897e8f841..51cdd1ce11b 100644 --- a/htdocs/theme/md/btn.inc.php +++ b/htdocs/theme/md/btn.inc.php @@ -13,7 +13,8 @@ div.divButAction { margin-bottom: 1.4em; vertical-align: top; } -div.tabsAction > a.butAction, div.tabsAction > a.butActionRefused { +div.tabsAction > a.butAction, div.tabsAction > a.butActionRefused, div.tabsAction > a.butActionDelete, +div.tabsAction > span.butAction, div.tabsAction > span.butActionRefused, div.tabsAction > span.butActionDelete { margin-bottom: 1.4em !important; } From 741627897ee2ff709dd59d68787dc60159a27161 Mon Sep 17 00:00:00 2001 From: Tobias Sekan Date: Wed, 16 Oct 2019 13:56:11 +0200 Subject: [PATCH 443/484] fix interchanged allocation --- htdocs/comm/action/class/actioncomm.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/comm/action/class/actioncomm.class.php b/htdocs/comm/action/class/actioncomm.class.php index 1ce4dce01a0..42e77c898c3 100644 --- a/htdocs/comm/action/class/actioncomm.class.php +++ b/htdocs/comm/action/class/actioncomm.class.php @@ -1553,7 +1553,7 @@ class ActionComm extends CommonObject else { // use start date as fall-back to avoid import erros on empty end date - $datestart = $dateend; + $dateend = $datestart; } $dateend=$this->db->jdate($obj->datep2)-(empty($conf->global->AGENDA_EXPORT_FIX_TZ)?0:($conf->global->AGENDA_EXPORT_FIX_TZ*3600)); From b9ec45fd49150c01951282b479e2a3b245ed947d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Oct 2019 14:02:13 +0200 Subject: [PATCH 444/484] Clean code --- htdocs/commande/card.php | 20 ++++---- htdocs/compta/facture/card.php | 84 +++++++++++++++++----------------- test/phpunit/FilesLibTest.php | 4 +- 3 files changed, 54 insertions(+), 54 deletions(-) diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index 0d13537037c..ea423a0a99c 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -2543,19 +2543,19 @@ if ($action == 'create' && $usercancreate) // Send if ($object->statut > Commande::STATUS_DRAFT || !empty($conf->global->COMMANDE_SENDBYEMAIL_FOR_ALL_STATUS)) { if ($usercansend) { - print ''; + print '' . $langs->trans('SendMail') . ''; } else - print ''; + print '' . $langs->trans('SendMail') . ''; } // Valid if ($object->statut == Commande::STATUS_DRAFT && $object->total_ttc >= 0 && $numlines > 0 && $usercanvalidate) { - print ''; + print '' . $langs->trans('Validate') . ''; } // Edit if ($object->statut == Commande::STATUS_VALIDATED && $usercancreate) { - print ''; + print '' . $langs->trans('Modify') . ''; } // Create event /*if ($conf->agenda->enabled && ! empty($conf->global->MAIN_ADD_EVENT_ON_ELEMENT_CARD)) @@ -2572,9 +2572,9 @@ if ($action == 'create' && $usercancreate) if ($object->statut > Commande::STATUS_DRAFT && $object->statut < Commande::STATUS_CLOSED && $object->getNbOfServicesLines() > 0) { if ($user->rights->ficheinter->creer) { - print ''; + print '' . $langs->trans('AddIntervention') . ''; } else { - print ''; + print '' . $langs->trans('AddIntervention') . ''; } } } @@ -2584,7 +2584,7 @@ if ($action == 'create' && $usercancreate) $langs->load("contracts"); if ($user->rights->contrat->creer) { - print ''; + print '' . $langs->trans('AddContract') . ''; } } @@ -2596,13 +2596,13 @@ if ($action == 'create' && $usercancreate) if ($object->statut > Commande::STATUS_DRAFT && $object->statut < Commande::STATUS_CLOSED && ($object->getNbOfProductsLines() > 0 || !empty($conf->global->STOCK_SUPPORTS_SERVICES))) { if (($conf->expedition_bon->enabled && $user->rights->expedition->creer) || ($conf->livraison_bon->enabled && $user->rights->expedition->livraison->creer)) { if ($user->rights->expedition->creer) { - print ''; + print '' . $langs->trans('CreateShipment') . ''; } else { - print ''; + print '' . $langs->trans('CreateShipment') . ''; } } else { $langs->load("errors"); - print ''; + print 'transnoentitiesnoconv("Shipment"))) . '">' . $langs->trans('CreateShipment') . ''; } } } diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index 9467cebde59..2a08c55eeba 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -4845,20 +4845,20 @@ elseif ($id > 0 || ! empty($ref)) { if ($usercanunvalidate) { - print ''; + print '' . $langs->trans('Modify') . ''; } else { - print '
    ' . $langs->trans('Modify') . '
    '; + print '' . $langs->trans('Modify') . ''; } } elseif (!$object->is_last_in_cycle()) { - print '
    ' . $langs->trans('Modify') . '
    '; + print '' . $langs->trans('Modify') . ''; } else { - print '
    ' . $langs->trans('Modify') . '
    '; + print '' . $langs->trans('Modify') . ''; } } } else { - print '
    ' . $langs->trans('Modify') . '
    '; + print '' . $langs->trans('Modify') . ''; } } @@ -4874,9 +4874,9 @@ elseif ($id > 0 || ! empty($ref)) { if ($object->close_code != 'replaced' || (! $objectidnext)) // Not replaced by another invoice or replaced but the replacement invoice has been deleted { - print ''; + print '' . $langs->trans('ReOpen') . ''; } else { - print '
    ' . $langs->trans('ReOpen') . '
    '; + print '' . $langs->trans('ReOpen') . ''; } } @@ -4884,19 +4884,19 @@ elseif ($id > 0 || ! empty($ref)) if ($object->statut == Facture::STATUS_DRAFT && count($object->lines) > 0 && ((($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT || $object->type == Facture::TYPE_DEPOSIT || $object->type == Facture::TYPE_PROFORMA || $object->type == Facture::TYPE_SITUATION) && (! empty($conf->global->FACTURE_ENABLE_NEGATIVE) || $object->total_ttc >= 0)) || ($object->type == Facture::TYPE_CREDIT_NOTE && $object->total_ttc <= 0))) { if ($usercanvalidate) { - print ''; + print '' . $langs->trans('Validate') . ''; } } // Send by mail if (($object->statut == Facture::STATUS_VALIDATED || $object->statut == Facture::STATUS_CLOSED) || ! empty($conf->global->FACTURE_SENDBYEMAIL_FOR_ALL_STATUS)) { if ($objectidnext) { - print '
    ' . $langs->trans('SendMail') . '
    '; + print '' . $langs->trans('SendMail') . ''; } else { if ($usercansend) { - print ''; + print '' . $langs->trans('SendMail') . ''; } else - print ''; + print '' . $langs->trans('SendMail') . ''; } } @@ -4911,7 +4911,7 @@ elseif ($id > 0 || ! empty($ref)) { print ''.$langs->trans("MakeWithdrawRequest").''; } else { - print '
    ' . $langs->trans('MakeWithdrawRequest') . '
    '; + print '' . $langs->trans('MakeWithdrawRequest') . ''; } } else @@ -4930,18 +4930,18 @@ elseif ($id > 0 || ! empty($ref)) { $langs->load("cashdesk"); $receipt_url=DOL_URL_ROOT."/takepos/receipt.php"; - print ''; + print '' . $langs->trans('POSTicket') .''; } // Create payment if ($object->type != Facture::TYPE_CREDIT_NOTE && $object->statut == 1 && $object->paye == 0 && $usercanissuepayment) { if ($objectidnext) { - print '
    ' . $langs->trans('DoPayment') . '
    '; + print '' . $langs->trans('DoPayment') . ''; } else { //if ($resteapayer == 0) { // Sometimes we can receive more, so we accept to enter more and will offer a button to convert into discount (but it is not a credit note, just a prepayment done) // print '
    ' . $langs->trans('DoPayment') . '
    '; //} else { - print ''; + print '' . $langs->trans('DoPayment') . ''; //} } } @@ -4953,27 +4953,27 @@ elseif ($id > 0 || ! empty($ref)) { if ($resteapayer == 0) { - print '
    '.$langs->trans('DoPaymentBack').'
    '; + print ''.$langs->trans('DoPaymentBack').''; } else { - print ''; + print ''.$langs->trans('DoPaymentBack').''; } } // For standard invoice with excess received if ($object->type == Facture::TYPE_STANDARD && empty($object->paye) && ($object->total_ttc - $totalpaye - $totalcreditnotes - $totaldeposits) < 0 && $usercancreate && empty($discount->id)) { - print ''; + print ''.$langs->trans('ConvertExcessReceivedToReduc').''; } // For credit note if ($object->type == Facture::TYPE_CREDIT_NOTE && $object->statut == 1 && $object->paye == 0 && $usercancreate && $object->getSommePaiement() == 0) { - print ''; + print '' . $langs->trans('ConvertToReduc') . ''; } // For deposit invoice if ($object->type == Facture::TYPE_DEPOSIT && $usercancreate && $object->statut > 0 && empty($discount->id)) { - print ''; + print ''.$langs->trans('ConvertToReduc').''; } } @@ -4982,7 +4982,7 @@ elseif ($id > 0 || ! empty($ref)) || ($object->type == Facture::TYPE_DEPOSIT && $object->paye == 0 && $object->total_ttc > 0 && $resteapayer == 0 && $usercanissuepayment && empty($discount->id)) ) { - print ''; + print ''.$langs->trans('ClassifyPaid').''; } // Classify 'closed not completely paid' (possible si validee et pas encore classee payee) @@ -4992,7 +4992,7 @@ elseif ($id > 0 || ! empty($ref)) if ($totalpaye > 0 || $totalcreditnotes > 0) { // If one payment or one credit note was linked to this invoice - print ''; + print '' . $langs->trans('ClassifyPaidPartially') . ''; } else { @@ -5000,11 +5000,11 @@ elseif ($id > 0 || ! empty($ref)) { if ($objectidnext) { - print '
    ' . $langs->trans('ClassifyCanceled') . '
    '; + print '' . $langs->trans('ClassifyCanceled') . ''; } else { - print ''; + print '' . $langs->trans('ClassifyCanceled') . ''; } } } @@ -5013,7 +5013,7 @@ elseif ($id > 0 || ! empty($ref)) // Clone if (($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_DEPOSIT || $object->type == Facture::TYPE_PROFORMA) && $usercancreate) { - print ''; + print '' . $langs->trans("ToClone") . ''; } // Clone as predefined / Create template @@ -5021,7 +5021,7 @@ elseif ($id > 0 || ! empty($ref)) { if (! $objectidnext && count($object->lines) > 0) { - print ''; + print '' . $langs->trans("ChangeIntoRepeatableInvoice") . ''; } } @@ -5030,7 +5030,7 @@ elseif ($id > 0 || ! empty($ref)) { if (! $objectidnext) { - print ''; + print '' . $langs->trans("CreateCreditNote") . ''; } } @@ -5045,9 +5045,9 @@ elseif ($id > 0 || ! empty($ref)) { if ($usercanunvalidate) { - print ''; + print '' . $langs->trans("CreateCreditNote") . ''; } else { - print '
    ' . $langs->trans("CreateCreditNote") . '
    '; + print '' . $langs->trans("CreateCreditNote") . ''; } } @@ -5063,22 +5063,22 @@ elseif ($id > 0 || ! empty($ref)) { if(($object->total_ttc - $totalcreditnotes ) == 0 ) { - print ''; + print '' . $langs->trans("RemoveSituationFromCycle") . ''; } else { - print ''; + print '' . $langs->trans("RemoveSituationFromCycle") . ''; } } // Create next situation invoice if ($usercancreate && ($object->type == 5) && ($object->statut == 1 || $object->statut == 2)) { if ($object->is_last_in_cycle() && $object->situation_final != 1) { - print ''; + print '' . $langs->trans('CreateNextSituationInvoice') . ''; } elseif (!$object->is_last_in_cycle()) { - print ''; + print '' . $langs->trans('CreateNextSituationInvoice') . ''; } else { - print ''; + print '' . $langs->trans('CreateNextSituationInvoice') . ''; } } @@ -5088,31 +5088,31 @@ elseif ($id > 0 || ! empty($ref)) { //var_dump($isErasable); if ($isErasable == -4) { - print ''; + print '' . $langs->trans('Delete') . ''; } elseif ($isErasable == -3) { - print ''; + print '' . $langs->trans('Delete') . ''; } elseif ($isErasable == -2) { - print ''; + print '' . $langs->trans('Delete') . ''; } elseif ($isErasable == -1) { - print ''; + print '' . $langs->trans('Delete') . ''; } elseif ($isErasable <= 0) // Any other cases { - print ''; + print '' . $langs->trans('Delete') . ''; } elseif ($objectidnext) { - print ''; + print '' . $langs->trans('Delete') . ''; } else { - print ''; + print '' . $langs->trans('Delete') . ''; } } else { - print ''; + print '' . $langs->trans('Delete') . ''; } } print '
    '; diff --git a/test/phpunit/FilesLibTest.php b/test/phpunit/FilesLibTest.php index 9b990d78922..d73d99f7078 100644 --- a/test/phpunit/FilesLibTest.php +++ b/test/phpunit/FilesLibTest.php @@ -413,11 +413,11 @@ class FilesLibTest extends PHPUnit\Framework\TestCase $result=dol_compress_file($filein, $fileout, $format, $errorstring); print __METHOD__." result=".$result."\n"; - $this->assertGreaterThanOrEqual(1, $result, "Pb with dol_compress_file on ".$filein." : ".$errorstring); + $this->assertGreaterThanOrEqual(1, $result, "Pb with dol_compress_file on ".$filein." into ".$fileout." : ".$errorstring); $result=dol_uncompress($fileout, $dirout); print __METHOD__." result=".join(',', $result)."\n"; - $this->assertEquals(0, count($result), "Pb with dol_uncompress_file"); + $this->assertEquals(0, count($result), "Pb with dol_uncompress_file of file ".$fileout); } /** From 86e4ca55dfd9ec41ff43296c622231079037e302 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Oct 2019 13:55:29 +0200 Subject: [PATCH 445/484] Merge --- htdocs/theme/eldy/btn.inc.php | 3 ++- htdocs/theme/md/style.css.php | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/htdocs/theme/eldy/btn.inc.php b/htdocs/theme/eldy/btn.inc.php index 2e42d42acaa..3ee6a164f75 100644 --- a/htdocs/theme/eldy/btn.inc.php +++ b/htdocs/theme/eldy/btn.inc.php @@ -11,7 +11,8 @@ if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?> div.divButAction { margin-bottom: 1.4em; } -div.tabsAction > a.butAction, div.tabsAction > a.butActionRefused { +div.tabsAction > a.butAction, div.tabsAction > a.butActionRefused, div.tabsAction > a.butActionDelete, +div.tabsAction > span.butAction, div.tabsAction > span.butActionRefused, div.tabsAction > span.butActionDelete { margin-bottom: 1.4em !important; } div.tabsActionNoBottom > a.butAction, div.tabsActionNoBottom > a.butActionRefused { diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index 8e0cf75047b..65436182755 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -2571,7 +2571,9 @@ div.divButAction { margin-bottom: 1.4em; vertical-align: top; } -div.tabsAction > a.butAction, div.tabsAction > a.butActionRefused { + +div.tabsAction > a.butAction, div.tabsAction > a.butActionRefused, div.tabsAction > a.butActionDelete, +div.tabsAction > span.butAction, div.tabsAction > span.butActionRefused, div.tabsAction > span.butActionDelete { margin-bottom: 1.4em !important; } From dd97a2e6663484391397796b9e516cbf454dcbff Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Oct 2019 14:11:11 +0200 Subject: [PATCH 446/484] CSS --- htdocs/theme/md/style.css.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index 9aec13e5fc7..05249c99b03 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -504,6 +504,9 @@ input[name=weight], input[name=volume], input[name=surface], input[name=sizeheig input[name=surface] { margin-right: 4px; } fieldset { border: 1px solid #AAAAAA !important; } .legendforfieldsetstep { padding-bottom: 10px; } +input#onlinepaymenturl, input#directdownloadlink { + opacity: 0.7; +} div#moretabsListaction { z-index: 5; From f88733f46a9539c4756546645cc62da430f93e0a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Oct 2019 14:14:32 +0200 Subject: [PATCH 447/484] Html code simplest --- htdocs/comm/propal/card.php | 38 ++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php index 92267d97033..8891c2280f0 100644 --- a/htdocs/comm/propal/card.php +++ b/htdocs/comm/propal/card.php @@ -2471,39 +2471,39 @@ if ($action == 'create') { if ($usercanvalidate) { - print ''; + print '' . $langs->trans('Validate') . ''; } else - print ''; + print '' . $langs->trans('Validate') . ''; } // Create event /*if ($conf->agenda->enabled && ! empty($conf->global->MAIN_ADD_EVENT_ON_ELEMENT_CARD)) // Add hidden condition because this is not a "workflow" action so should appears somewhere else on page. { - print ''; + print '' . $langs->trans("AddAction") . '
    '; }*/ // Edit if ($object->statut == Propal::STATUS_VALIDATED && $usercancreate) { - print ''; + print '' . $langs->trans('Modify') . ''; } // ReOpen if (($object->statut == Propal::STATUS_SIGNED || $object->statut == Propal::STATUS_NOTSIGNED || $object->statut == Propal::STATUS_BILLED) && $usercanclose) { - print ''; + print 'global->MAIN_JUMP_TAG) ? '' : '#reopen') . '"'; + print '>' . $langs->trans('ReOpen') . ''; } // Send if ($object->statut == Propal::STATUS_VALIDATED || $object->statut == Propal::STATUS_SIGNED || !empty($conf->global->PROPOSAL_SENDBYEMAIL_FOR_ALL_STATUS)) { if ($usercansend) { - print ''; + print '' . $langs->trans('SendMail') . ''; } else - print ''; + print '' . $langs->trans('SendMail') . ''; } // Create an order if (! empty($conf->commande->enabled) && $object->statut == Propal::STATUS_SIGNED) { if ($usercancreateorder) { - print ''; + print '' . $langs->trans("AddOrder") . ''; } } @@ -2511,7 +2511,7 @@ if ($action == 'create') if (! empty($conf->service->enabled) && ! empty($conf->ficheinter->enabled) && $object->statut == Propal::STATUS_SIGNED) { if ($usercancreateintervention) { $langs->load("interventions"); - print ''; + print '' . $langs->trans("AddIntervention") . ''; } } @@ -2520,7 +2520,7 @@ if ($action == 'create') $langs->load("contracts"); if ($usercancreatecontract) { - print ''; + print '' . $langs->trans('AddContract') . ''; } } @@ -2529,7 +2529,7 @@ if ($action == 'create') { if (! empty($conf->facture->enabled) && $usercancreateinvoice) { - print ''; + print '' . $langs->trans("AddBill") . ''; } $arrayofinvoiceforpropal = $object->getInvoiceArrayList(); @@ -2537,30 +2537,30 @@ if ($action == 'create') { if ($usercanclose) { - print ''; + print 'socid . '">' . $langs->trans("ClassifyBilled") . ''; } else { - print ''; + print '' . $langs->trans("ClassifyBilled") . ''; } } } // Set accepted/refused if ($object->statut == Propal::STATUS_VALIDATED && $usercanclose) { - print ''; + print 'global->MAIN_JUMP_TAG) ? '' : '#close') . '"'; + print '>' . $langs->trans('SetAcceptedRefused') . ''; } // Clone if ($usercancreate) { - print ''; + print '' . $langs->trans("ToClone") . ''; } // Delete if ($usercandelete) { - print ''; + print '' . $langs->trans('Delete') . ''; } } } From b60ddc255c744a17a304a786eb27c68d287ada92 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Oct 2019 14:17:53 +0200 Subject: [PATCH 448/484] Removed useless html tags --- htdocs/product/card.php | 22 +++++++++---------- htdocs/projet/card.php | 48 ++++++++++++++++++++--------------------- htdocs/societe/card.php | 12 +++++------ 3 files changed, 41 insertions(+), 41 deletions(-) diff --git a/htdocs/product/card.php b/htdocs/product/card.php index 22a8af0d270..df195d0c932 100644 --- a/htdocs/product/card.php +++ b/htdocs/product/card.php @@ -1058,7 +1058,7 @@ else $statutarray=array('1' => $langs->trans("Finished"), '0' => $langs->trans("RowMaterial")); print $form->selectarray('finished', $statutarray, GETPOST('finished', 'alpha'), 1); print ''; - + // Net Measure print ''.$langs->trans("NetMeasure").''; print ''; @@ -1070,7 +1070,7 @@ else print ''; print $formproduct->selectMeasuringUnits("weight_units", "weight", GETPOSTISSET('weight_units')?GETPOST('weight_units', 'alpha'):(empty($conf->global->MAIN_WEIGHT_DEFAULT_UNIT)?0:$conf->global->MAIN_WEIGHT_DEFAULT_UNIT), 0, 2); print ''; - + // Brut Length if (empty($conf->global->PRODUCT_DISABLE_SIZE)) { @@ -1438,7 +1438,7 @@ else $statutarray=array('-1'=>' ', '1' => $langs->trans("Finished"), '0' => $langs->trans("RowMaterial")); print $form->selectarray('finished', $statutarray, $object->finished); print ''; - + // Net Measure print ''.$langs->trans("NetMeasure").''; print ' '; @@ -1852,7 +1852,7 @@ else print ''.$langs->trans("Nature").''; print $object->getLibFinished(); print ''; - + // Net Measure print ''.$langs->trans("NetMeasure").''; if ($object->net_measure != '') @@ -2035,17 +2035,17 @@ if ($action != 'create' && $action != 'edit') { if ($usercancreate) { - if (! isset($object->no_button_edit) || $object->no_button_edit <> 1) print ''; + if (! isset($object->no_button_edit) || $object->no_button_edit <> 1) print 'id.'">'.$langs->trans("Modify").''; if (! isset($object->no_button_copy) || $object->no_button_copy <> 1) { if (! empty($conf->use_javascript_ajax) && empty($conf->dol_use_jmobile)) { - print '
    '.$langs->trans('ToClone').'
    '."\n"; + print ''.$langs->trans('ToClone').''."\n"; } else { - print ''; + print 'id.'">'.$langs->trans("ToClone").''; } } } @@ -2057,21 +2057,21 @@ if ($action != 'create' && $action != 'edit') { if (! empty($conf->use_javascript_ajax) && empty($conf->dol_use_jmobile)) { - print '
    '.$langs->trans('Delete').'
    '."\n"; + print ''.$langs->trans('Delete').''."\n"; } else { - print ''; + print 'id.'">'.$langs->trans("Delete").''; } } else { - print ''; + print ''.$langs->trans("Delete").''; } } else { - print ''; + print ''.$langs->trans("Delete").''; } } diff --git a/htdocs/projet/card.php b/htdocs/projet/card.php index 4c04ee6ee23..7469c99c3dd 100644 --- a/htdocs/projet/card.php +++ b/htdocs/projet/card.php @@ -1172,13 +1172,13 @@ elseif ($object->id > 0) // "workflow" action so should appears somewhere else on // page. { - print ''; + print '' . $langs->trans("AddAction") . ''; }*/ // Send if ($object->statut != 2) { - print ''; + print '' . $langs->trans('SendMail').''; } // Modify @@ -1186,11 +1186,11 @@ elseif ($object->id > 0) { if ($userWrite > 0) { - print ''; + print ''.$langs->trans("Modify").''; } else { - print ''; + print ''.$langs->trans('Modify').''; } } @@ -1199,11 +1199,11 @@ elseif ($object->id > 0) { if ($userWrite > 0) { - print ''; + print ''.$langs->trans("Validate").''; } else { - print ''; + print ''.$langs->trans('Validate').''; } } @@ -1212,11 +1212,11 @@ elseif ($object->id > 0) { if ($userWrite > 0) { - print ''; + print ''.$langs->trans("Close").''; } else { - print ''; + print ''.$langs->trans('Close').''; } } @@ -1225,11 +1225,11 @@ elseif ($object->id > 0) { if ($userWrite > 0) { - print ''; + print ''.$langs->trans("ReOpen").''; } else { - print ''; + print ''.$langs->trans('ReOpen').''; } } @@ -1239,52 +1239,52 @@ elseif ($object->id > 0) if (! empty($conf->propal->enabled) && $user->rights->propal->creer) { $langs->load("propal"); - print ''; + print ''.$langs->trans("AddProp").''; } if (! empty($conf->commande->enabled) && $user->rights->commande->creer) { $langs->load("orders"); - print ''; + print ''.$langs->trans("CreateOrder").''; } if (! empty($conf->facture->enabled) && $user->rights->facture->creer) { $langs->load("bills"); - print ''; + print ''.$langs->trans("CreateBill").''; } if (! empty($conf->supplier_proposal->enabled) && $user->rights->supplier_proposal->creer) { $langs->load("supplier_proposal"); - print ''; + print ''.$langs->trans("AddSupplierProposal").''; } if (! empty($conf->supplier_order->enabled) && $user->rights->fournisseur->commande->creer) { $langs->load("suppliers"); - print ''; + print ''.$langs->trans("AddSupplierOrder").''; } if (! empty($conf->supplier_invoice->enabled) && $user->rights->fournisseur->facture->creer) { $langs->load("suppliers"); - print ''; + print ''.$langs->trans("AddSupplierInvoice").''; } if (! empty($conf->ficheinter->enabled) && $user->rights->ficheinter->creer) { $langs->load("interventions"); - print ''; + print ''.$langs->trans("AddIntervention").''; } if (! empty($conf->contrat->enabled) && $user->rights->contrat->creer) { $langs->load("contracts"); - print ''; + print ''.$langs->trans("AddContract").''; } if (! empty($conf->expensereport->enabled) && $user->rights->expensereport->creer) { $langs->load("trips"); - print ''; + print ''.$langs->trans("AddTrip").''; } if (! empty($conf->don->enabled) && $user->rights->don->creer) { $langs->load("donations"); - print ''; + print ''.$langs->trans("AddDonation").''; } } @@ -1293,11 +1293,11 @@ elseif ($object->id > 0) { if ($userWrite > 0) { - print ''; + print ''.$langs->trans('ToClone').''; } else { - print ''; + print ''.$langs->trans('ToClone').''; } } @@ -1306,11 +1306,11 @@ elseif ($object->id > 0) { if ($userDelete > 0 || ($object->statut == 0 && $user->rights->projet->creer)) { - print ''; + print ''.$langs->trans("Delete").''; } else { - print ''; + print ''.$langs->trans('Delete').''; } } } diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index e855cb71b8c..cb11324eb68 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -2654,17 +2654,17 @@ else if (! empty($object->email) || $at_least_one_email_contact) { $langs->load("mails"); - print ''; + print ''.$langs->trans('SendMail').''; } else { $langs->load("mails"); - print ''; + print ''.$langs->trans('SendMail').''; } if ($user->rights->societe->creer) { - print ''."\n"; + print ''.$langs->trans("Modify").'
    '."\n"; } if (! empty($conf->adherent->enabled)) @@ -2679,18 +2679,18 @@ else if ($user->rights->societe->supprimer) { - print ''; + print ''.$langs->trans('Merge').''; } if ($user->rights->societe->supprimer) { if ($conf->use_javascript_ajax && empty($conf->dol_use_jmobile)) // We can't use preloaded confirm form with jmobile { - print '
    '.$langs->trans('Delete').'
    '."\n"; + print ''.$langs->trans('Delete').''."\n"; } else { - print ''."\n"; + print ''.$langs->trans('Delete').''."\n"; } } } From 4ca9fddfcc93ecc829f2ffc5e3710ae87824ba38 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Oct 2019 14:26:49 +0200 Subject: [PATCH 449/484] Update product.class.php --- htdocs/product/class/product.class.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index aa0c575d8d7..2b3fc3ece65 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -787,12 +787,12 @@ class Product extends CommonObject * Update a record into database. * If batch flag is set to on, we create records into llx_product_batch * - * @param int $id Id of product - * @param User $user Object user making update - * @param int $notrigger Disable triggers - * @param string $action Current action for hookmanager ('add' or 'update') - * @param int $updatetype Update product type - * @return int 1 if OK, -1 if ref already exists, -2 if other error + * @param int $id Id of product + * @param User $user Object user making update + * @param int $notrigger Disable triggers + * @param string $action Current action for hookmanager ('add' or 'update') + * @param boolean $updatetype Update product type + * @return int 1 if OK, -1 if ref already exists, -2 if other error */ public function update($id, $user, $notrigger = false, $action = 'update', $updatetype = false) { From 8d75e83e5506219068af85161ac150e06e3eacf1 Mon Sep 17 00:00:00 2001 From: Norbert Penel Date: Wed, 16 Oct 2019 14:32:17 +0200 Subject: [PATCH 450/484] use current local time on Now button use current local time for feed the date according to locale settings --- htdocs/core/class/html.form.class.php | 51 ++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 8 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 2130a7d7e38..51e93557417 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -5323,7 +5323,7 @@ class Form * @param int $empty 0=Fields required, 1=Empty inputs are allowed, 2=Empty inputs are allowed for hours only * @param string $form_name Not used * @param int $d 1=Show days, month, years - * @param int $addnowlink Add a link "Now" + * @param int $addnowlink Add a link "Now", 1 with server time, 2 with local computer time * @param int $disabled Disable input fields * @param int $fullday When a checkbox with this html name is on, hour and day are set with 00:00 or 23:59 * @param string $addplusone Add a link "+1 hour". Value must be name of another selectDate field. @@ -5605,12 +5605,32 @@ class Form { // Script which will be inserted in the onClick of the "Now" link $reset_scripts = ""; - + if ($addnowlink==2) // local computer time + { + // pad add leading 0 on numbers + $reset_scripts.="Number.prototype.pad = function(size) { + var s = String(this); + while (s.length < (size || 2)) {s = '0' + s;} + return s; + }; + var d = new Date();"; + } + // Generate the date part, depending on the use or not of the javascript calendar - $reset_scripts .= 'jQuery(\'#'.$prefix.'\').val(\''.dol_print_date(dol_now(), 'day', 'tzuser').'\');'; - $reset_scripts .= 'jQuery(\'#'.$prefix.'day\').val(\''.dol_print_date(dol_now(), '%d', 'tzuser').'\');'; - $reset_scripts .= 'jQuery(\'#'.$prefix.'month\').val(\''.dol_print_date(dol_now(), '%m', 'tzuser').'\');'; - $reset_scripts .= 'jQuery(\'#'.$prefix.'year\').val(\''.dol_print_date(dol_now(), '%Y', 'tzuser').'\');'; + if($addnowlink==1) // server time expressed in user time setup + { + $reset_scripts .= 'jQuery(\'#'.$prefix.'\').val(\''.dol_print_date(dol_now(), 'day','tzuser').'\');'; + $reset_scripts .= 'jQuery(\'#'.$prefix.'day\').val(\''.dol_print_date(dol_now(), '%d','tzuser').'\');'; + $reset_scripts .= 'jQuery(\'#'.$prefix.'month\').val(\''.dol_print_date(dol_now(), '%m','tzuser').'\');'; + $reset_scripts .= 'jQuery(\'#'.$prefix.'year\').val(\''.dol_print_date(dol_now(), '%Y','tzuser').'\');'; + } + elseif($addnowlink==2) + { + $reset_scripts .= 'jQuery(\'#'.$prefix.'\').val(d.toLocaleDateString(\''.str_replace('_', '-', $langs->defaultlang).'\'));'; + $reset_scripts .= 'jQuery(\'#'.$prefix.'day\').val(d.getDate().pad());'; + $reset_scripts .= 'jQuery(\'#'.$prefix.'month\').val(d.getMonth().pad());'; + $reset_scripts .= 'jQuery(\'#'.$prefix.'year\').val(d.getFullYear());'; + } /*if ($usecalendar == "eldy") { $base=DOL_URL_ROOT.'/core/'; @@ -5627,7 +5647,15 @@ class Form { if ($fullday) $reset_scripts .= " if (jQuery('#fullday:checked').val() == null) {"; //$reset_scripts .= 'this.form.elements[\''.$prefix.'hour\'].value=formatDate(new Date(), \'HH\'); '; - $reset_scripts .= 'jQuery(\'#'.$prefix.'hour\').val(\''.dol_print_date(dol_now(), '%H', 'tzuser').'\');'; + if($addnowlink==1) + { + $reset_scripts .= 'jQuery(\'#'.$prefix.'hour\').val(\''.dol_print_date(dol_now(), '%H','tzuser').'\');'; + } + elseif($addnowlink==2) + { + $reset_scripts .= 'jQuery(\'#'.$prefix.'hour\').val(d.getHours().pad());'; + } + if ($fullday) $reset_scripts .= ' } '; } // Update the minute part @@ -5635,7 +5663,14 @@ class Form { if ($fullday) $reset_scripts .= " if (jQuery('#fullday:checked').val() == null) {"; //$reset_scripts .= 'this.form.elements[\''.$prefix.'min\'].value=formatDate(new Date(), \'mm\'); '; - $reset_scripts .= 'jQuery(\'#'.$prefix.'min\').val(\''.dol_print_date(dol_now(), '%M', 'tzuser').'\');'; + if($addnowlink==1) + { + $reset_scripts .= 'jQuery(\'#'.$prefix.'min\').val(\''.dol_print_date(dol_now(), '%M','tzuser').'\');'; + } + elseif($addnowlink==2) + { + $reset_scripts .= 'jQuery(\'#'.$prefix.'min\').val(d.getMinutes().pad());'; + } if ($fullday) $reset_scripts .= ' } '; } // If reset_scripts is not empty, print the link with the reset_scripts in the onClick From fce1f1991c9b275dd3fae6c9b64ed3da029207ff Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Wed, 16 Oct 2019 12:34:42 +0000 Subject: [PATCH 451/484] Fixing style errors. --- htdocs/core/class/html.form.class.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 51e93557417..0a069bb2ced 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -5619,10 +5619,10 @@ class Form // Generate the date part, depending on the use or not of the javascript calendar if($addnowlink==1) // server time expressed in user time setup { - $reset_scripts .= 'jQuery(\'#'.$prefix.'\').val(\''.dol_print_date(dol_now(), 'day','tzuser').'\');'; - $reset_scripts .= 'jQuery(\'#'.$prefix.'day\').val(\''.dol_print_date(dol_now(), '%d','tzuser').'\');'; - $reset_scripts .= 'jQuery(\'#'.$prefix.'month\').val(\''.dol_print_date(dol_now(), '%m','tzuser').'\');'; - $reset_scripts .= 'jQuery(\'#'.$prefix.'year\').val(\''.dol_print_date(dol_now(), '%Y','tzuser').'\');'; + $reset_scripts .= 'jQuery(\'#'.$prefix.'\').val(\''.dol_print_date(dol_now(), 'day', 'tzuser').'\');'; + $reset_scripts .= 'jQuery(\'#'.$prefix.'day\').val(\''.dol_print_date(dol_now(), '%d', 'tzuser').'\');'; + $reset_scripts .= 'jQuery(\'#'.$prefix.'month\').val(\''.dol_print_date(dol_now(), '%m', 'tzuser').'\');'; + $reset_scripts .= 'jQuery(\'#'.$prefix.'year\').val(\''.dol_print_date(dol_now(), '%Y', 'tzuser').'\');'; } elseif($addnowlink==2) { @@ -5649,7 +5649,7 @@ class Form //$reset_scripts .= 'this.form.elements[\''.$prefix.'hour\'].value=formatDate(new Date(), \'HH\'); '; if($addnowlink==1) { - $reset_scripts .= 'jQuery(\'#'.$prefix.'hour\').val(\''.dol_print_date(dol_now(), '%H','tzuser').'\');'; + $reset_scripts .= 'jQuery(\'#'.$prefix.'hour\').val(\''.dol_print_date(dol_now(), '%H', 'tzuser').'\');'; } elseif($addnowlink==2) { @@ -5665,7 +5665,7 @@ class Form //$reset_scripts .= 'this.form.elements[\''.$prefix.'min\'].value=formatDate(new Date(), \'mm\'); '; if($addnowlink==1) { - $reset_scripts .= 'jQuery(\'#'.$prefix.'min\').val(\''.dol_print_date(dol_now(), '%M','tzuser').'\');'; + $reset_scripts .= 'jQuery(\'#'.$prefix.'min\').val(\''.dol_print_date(dol_now(), '%M', 'tzuser').'\');'; } elseif($addnowlink==2) { From cd825ba4be226536bcedef860f5b0a51717c4684 Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Wed, 16 Oct 2019 15:46:46 +0200 Subject: [PATCH 452/484] internationalization --- htdocs/core/modules/expedition/doc/pdf_espadon.modules.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php b/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php index ddc07db0380..21658ed32d0 100644 --- a/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php @@ -146,7 +146,7 @@ class pdf_espadon extends ModelePdfExpedition /** * Function to build pdf onto disk * - * @param Object $object Object expedition to generate (or id if old method) + * @param Object $object Object expedition to generate (or id if old method) * @param Translate $outputlangs Lang output object * @param string $srctemplatepath Full path of source filename for generator using a template file * @param int $hidedetails Do not show line details @@ -370,7 +370,7 @@ class pdf_espadon extends ModelePdfExpedition // Notes if (! empty($object->note_public)) { - $pdf->SetFont('', '', $default_font_size - 1); // Dans boucle pour gerer multi-page + $pdf->SetFont('', '', $default_font_size - 1); // In loop to manage multi-page $pdf->writeHTMLCell(190, 3, $this->posxdesc-1, $tab_top_alt, dol_htmlentitiesbr($object->note_public), 0, 1); } @@ -502,7 +502,7 @@ class pdf_espadon extends ModelePdfExpedition $pdf->setPage($pageposafter); $curY = $tab_top_newpage; } - $pdf->SetFont('', '', $default_font_size - 1); // On repositionne la police par defaut + $pdf->SetFont('', '', $default_font_size - 1); // We reposition the default font // weight From 10fd472392195997bb3326ec34bc7fe7b1caaa67 Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Wed, 16 Oct 2019 15:59:08 +0200 Subject: [PATCH 453/484] internationalization --- .../expedition/doc/pdf_merou.modules.php | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php index ad676dba22e..53f46ccc861 100644 --- a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php @@ -174,20 +174,20 @@ class pdf_merou extends ModelePdfExpedition $origin = $object->origin; - //Creation de l expediteur + //Create sender $this->expediteur = $mysoc; - //Creation du destinataire + //Create recipient $idcontact = $object->$origin->getIdContact('external', 'SHIPPING'); $this->destinataire = new Contact($this->db); if (! empty($idcontact[0])) $this->destinataire->fetch($idcontact[0]); - //Creation du livreur + //Create deliverer $idcontact = $object->$origin->getIdContact('internal', 'LIVREUR'); $this->livreur = new User($this->db); if (! empty($idcontact[0])) $this->livreur->fetch($idcontact[0]); - // Definition de $dir et $file + // Definition of $dir and $file if ($object->specimen) { $dir = $conf->expedition->dir_output."/sending"; @@ -273,7 +273,7 @@ class pdf_merou extends ModelePdfExpedition $tab_height = $this->page_hauteur - $tab_top - $heightforfooter; $tab_height_newpage = $this->page_hauteur - $tab_top_newpage - $heightforfooter; - // Affiche notes + // Display notes if (! empty($object->note_public)) { $pdf->SetFont('', '', $default_font_size - 1); @@ -314,7 +314,7 @@ class pdf_merou extends ModelePdfExpedition $pdf->setPageOrientation('', 1, $heightforfooter); // The only function to edit the bottom margin of current page to set it. $pageposbefore=$pdf->getPage(); - // Description de la ligne produit + // Description of product line $libelleproduitservice = pdf_writelinedesc($pdf, $object, $i, $outputlangs, 90, 3, 50, $curY, 0, 1); $nexY = $pdf->GetY(); @@ -335,7 +335,7 @@ class pdf_merou extends ModelePdfExpedition $pdf->Rect(10+3, $curY, 3, 3); $pdf->Rect(20+3, $curY, 3, 3); - //Insertion de la reference du produit + //Inserting the product reference $pdf->SetXY(30, $curY); $pdf->SetFont('', 'B', $default_font_size - 3); $pdf->MultiCell(24, 3, $outputlangs->convToOutputCharset($object->lines[$i]->ref), 0, 'L', 0); @@ -404,7 +404,7 @@ class pdf_merou extends ModelePdfExpedition $bottomlasttab=$this->page_hauteur - $heightforinfotot - $heightforfreetext - $heightforfooter + 1; } - // Pied de page + // Pagefoot $this->_pagefoot($pdf, $object, $outputlangs); if (method_exists($pdf, 'AliasNbPages')) $pdf->AliasNbPages(); @@ -579,11 +579,11 @@ class pdf_merou extends ModelePdfExpedition } //*********************Entete**************************** - //Nom du Document + //Document name $pdf->SetXY($Xoff, 7); $pdf->SetFont('', 'B', $default_font_size + 2); $pdf->SetTextColor(0, 0, 0); - $pdf->MultiCell(0, 3, $outputlangs->transnoentities("SendingSheet"), '', 'L'); // Bordereau expedition + $pdf->MultiCell(0, 3, $outputlangs->transnoentities("SendingSheet"), '', 'L'); // Sending sheet //Num Expedition $Yoff = $Yoff+7; $Xoff = 142; @@ -601,7 +601,7 @@ class pdf_merou extends ModelePdfExpedition $posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 100, 3, 'R', $default_font_size - 1, $hookmanager); //$this->Code39($Xoff+43, $Yoff+1, $object->commande->ref,$ext = true, $cks = false, $w = 0.4, $h = 4, $wide = true); - //Definition Emplacement du bloc Societe + //Definition Location of the Company block $Xoff = 110; $blSocX=90; $blSocY=24; @@ -632,7 +632,7 @@ class pdf_merou extends ModelePdfExpedition $pdf->MultiCell(100, 3, $outputlangs->transnoentities("CustomerCode")." : " . $outputlangs->transnoentities($object->thirdparty->code_client), '', 'R'); } - // Date Expedition + // Date delivery $Yoff = $Yoff+7; $pdf->SetXY($blSocX-80, $blSocY+17); @@ -698,7 +698,7 @@ class pdf_merou extends ModelePdfExpedition } // Recipient name - // On peut utiliser le nom de la societe du contact + // You can use the name of the contact company if ($usecontact && !empty($conf->global->MAIN_USE_COMPANY_NAME_OF_CONTACT)) { $thirdparty = $object->contact; } else { From 75a47eebe043e7a5a48fb49222fe8ea604910b75 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Oct 2019 16:17:51 +0200 Subject: [PATCH 454/484] Fix Method fetchAll must NEVER be used for table with more than 1000 record --- htdocs/accountancy/bookkeeping/list.php | 534 +++++++++++------- .../class/accountancyexport.class.php | 11 +- 2 files changed, 341 insertions(+), 204 deletions(-) diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php index 2958a229d24..b14a118a342 100644 --- a/htdocs/accountancy/bookkeeping/list.php +++ b/htdocs/accountancy/bookkeeping/list.php @@ -155,6 +155,12 @@ $arrayfields=array( if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING)) unset($arrayfields['t.lettering_code']); +$listofformat=AccountancyExport::getType(); +$formatexportset = $conf->global->ACCOUNTING_EXPORT_MODELCSV; +if (empty($listofformat[$formatexportset])) $formatexportset = 1; + +$error = 0; + /* * Actions @@ -373,10 +379,97 @@ if ($action == 'delmouvconfirm' && $user->rights->accounting->mouvements->suppri exit; } } +if ($action == 'setreexport') { + $setreexport = GETPOST('value', 'int'); + if (! dolibarr_set_const($db, "ACCOUNTING_REEXPORT", $setreexport, 'yesno', 0, '', $conf->entity)) $error++; + + if (! $error) { + if ($conf->global->ACCOUNTING_REEXPORT == 1) { + setEventMessages($langs->trans("ExportOfPiecesAlreadyExportedIsEnable"), null, 'mesgs'); + } else { + setEventMessages($langs->trans("ExportOfPiecesAlreadyExportedIsDisable"), null, 'mesgs'); + } + } else { + setEventMessages($langs->trans("Error"), null, 'errors'); + } +} + +// Build and execute select (used by page and export action) +// must de set after the action that set $filter +// -------------------------------------------------------------------- + +$sql = 'SELECT'; +$sql .= ' t.rowid,'; +$sql .= " t.doc_date,"; +$sql .= " t.doc_type,"; +$sql .= " t.doc_ref,"; +$sql .= " t.fk_doc,"; +$sql .= " t.fk_docdet,"; +$sql .= " t.thirdparty_code,"; +$sql .= " t.subledger_account,"; +$sql .= " t.subledger_label,"; +$sql .= " t.numero_compte,"; +$sql .= " t.label_compte,"; +$sql .= " t.label_operation,"; +$sql .= " t.debit,"; +$sql .= " t.credit,"; +$sql .= " t.lettering_code,"; +$sql .= " t.montant,"; +$sql .= " t.sens,"; +$sql .= " t.fk_user_author,"; +$sql .= " t.import_key,"; +$sql .= " t.code_journal,"; +$sql .= " t.journal_label,"; +$sql .= " t.piece_num,"; +$sql .= " t.date_creation,"; +$sql .= " t.tms as date_modification,"; +$sql .= " t.date_export"; +$sql .= ' FROM ' . MAIN_DB_PREFIX . $object->table_element . ' as t'; +// Manage filter +$sqlwhere = array (); +if (count($filter) > 0) { + foreach ($filter as $key => $value) { + if ($key == 't.doc_date') { + $sqlwhere[] = $key . '=\'' . $db->idate($value) . '\''; + } elseif ($key == 't.doc_date>=' || $key == 't.doc_date<=') { + $sqlwhere[] = $key . '\'' . $db->idate($value) . '\''; + } elseif ($key == 't.numero_compte>=' || $key == 't.numero_compte<=' || $key == 't.subledger_account>=' || $key == 't.subledger_account<=') { + $sqlwhere[] = $key . '\'' . $db->escape($value) . '\''; + } elseif ($key == 't.fk_doc' || $key == 't.fk_docdet' || $key == 't.piece_num') { + $sqlwhere[] = $key . '=' . $value; + } elseif ($key == 't.subledger_account' || $key == 't.numero_compte') { + $sqlwhere[] = $key . ' LIKE \'' . $db->escape($value) . '%\''; + } elseif ($key == 't.date_creation>=' || $key == 't.date_creation<=') { + $sqlwhere[] = $key . '\'' . $db->idate($value) . '\''; + } elseif ($key == 't.tms>=' || $key == 't.tms<=') { + $sqlwhere[] = $key . '\'' . $db->idate($value) . '\''; + } elseif ($key == 't.date_export>=' || $key == 't.date_export<=') { + $sqlwhere[] = $key . '\'' . $db->idate($value) . '\''; + } elseif ($key == 't.credit' || $key == 't.debit') { + $sqlwhere[] = natural_search($key, $value, 1, 1); + } else { + $sqlwhere[] = natural_search($key, $value, 0, 1); + } + } +} +$sql.= ' WHERE t.entity IN (' . getEntity('accountancy') . ')'; +if ($conf->global->ACCOUNTING_REEXPORT == 0) { + $sql .= " AND t.date_export IS NULL"; +} +if (count($sqlwhere) > 0) { + $sql .= ' AND ' . implode(' AND ', $sqlwhere); +} +if (! empty($sortfield)) { + $sql .= $db->order($sortfield, $sortorder); +} +//print $sql; + // Export into a file with format defined into setup (FEC, CSV, ...) +// Must be after definition of $sql if ($action == 'export_file' && $user->rights->accounting->mouvements->export) { + // TODO Replace the fetchAll + ->export later that consume too much memory on large export with the query($sql) and loop on each line to export them. $result = $object->fetchAll($sortorder, $sortfield, 0, 0, $filter, 'AND', $conf->global->ACCOUNTING_REEXPORT); if ($result < 0) @@ -387,55 +480,54 @@ if ($action == 'export_file' && $user->rights->accounting->mouvements->export) { { // Export files $accountancyexport = new AccountancyExport($db); - $accountancyexport->export($object->lines); + $accountancyexport->export($object->lines, $formatexportset); if (! empty($accountancyexport->errors)) { setEventMessages('', $accountancyexport->errors, 'errors'); - } else { + } + else + { // Specify as export : update field date_export - // TODO Move in class bookKeeping $error=0; $db->begin(); - if (is_array($object->lines)) { - foreach ($object->lines as $movement) { + if (is_array($object->lines)) + { + foreach ($object->lines as $movement) + { $now = dol_now(); + $sql = " UPDATE " . MAIN_DB_PREFIX . "accounting_bookkeeping"; $sql .= " SET date_export = '" . $db->idate($now) . "'"; $sql .= " WHERE rowid = " . $movement->id; dol_syslog("/accountancy/bookeeping/list.php Function export_file Specify movements as exported sql=" . $sql, LOG_DEBUG); $result = $db->query($sql); - if ($result) { - $db->commit(); - // setEventMessages($langs->trans("AllExportedMovementsWereRecordedAsExported"), null, 'mesgs'); - } else { - $db->rollback(); - // setEventMessages($langs->trans("NotAllExportedMovementsCouldBeRecordedAsExported"), null, 'errors'); + if (! $result) + { + $error++; + break; } } } + + if (! $error) + { + $db->commit(); + // setEventMessages($langs->trans("AllExportedMovementsWereRecordedAsExported"), null, 'mesgs'); + } + else + { + $error++; + $db->rollback(); + setEventMessages($langs->trans("NotAllExportedMovementsCouldBeRecordedAsExported"), null, 'errors'); + } } exit; } } -if ($action == 'setreexport') { - $export = 0; - $setreexport = GETPOST('value', 'int'); - if (! dolibarr_set_const($db, "ACCOUNTING_REEXPORT", $setreexport, 'yesno', 0, '', $conf->entity)) $error++; - - if (! $error) { - if ($conf->global->ACCOUNTING_REEXPORT == 1) { - setEventMessages($langs->trans("ExportOfPiecesAlreadyExportedIsEnable"), null, 'mesgs'); - } else { - setEventMessages($langs->trans("ExportOfPiecesAlreadyExportedIsDisable"), null, 'mesgs'); - } - } else { - setEventMessages($langs->trans("Error"), null, 'errors'); - } -} /* * View @@ -443,24 +535,43 @@ if ($action == 'setreexport') { $title_page = $langs->trans("Bookkeeping"); -llxHeader('', $title_page); - -// List +// Count total nb of records $nbtotalofrecords = ''; -if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $nbtotalofrecords = $object->fetchAll($sortorder, $sortfield, 0, 0, $filter, 'AND', $conf->global->ACCOUNTING_REEXPORT); - if ($nbtotalofrecords < 0) { - setEventMessages($object->error, $object->errors, 'errors'); +if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) +{ + $resql = $db->query($sql); + $nbtotalofrecords = $db->num_rows($resql); + if (($page * $limit) > $nbtotalofrecords) // if total of record found is smaller than page * limit, goto and load page 0 + { + $page = 0; + $offset = 0; } } +// if total of record found is smaller than limit, no need to do paging and to restart another select with limits set. +if (is_numeric($nbtotalofrecords) && $limit > $nbtotalofrecords) +{ + $num = $nbtotalofrecords; +} +else +{ + $sql.= $db->plimit($limit+1, $offset); -// TODO Do not use this -$result = $object->fetchAll($sortorder, $sortfield, $limit, $offset, $filter, 'AND', $conf->global->ACCOUNTING_REEXPORT); -if ($result < 0) { - setEventMessages($object->error, $object->errors, 'errors'); + $resql=$db->query($sql); + if (! $resql) + { + dol_print_error($db); + exit; + } + + $num = $db->num_rows($resql); } -$num=count($object->lines); + +// Output page +// -------------------------------------------------------------------- + +llxHeader('', $title_page); + if ($action == 'delmouv') { $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?mvt_num='.GETPOST('mvt_num').$param, $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvtPartial'), 'delmouvconfirm', '', 0, 1); @@ -510,9 +621,6 @@ print ''; print ''; print ''; -$button .= ''; - -$listofformat=AccountancyExport::getType(); if (count($filter)) $buttonLabel = $langs->trans("ExportFilteredList"); else $buttonLabel = $langs->trans("ExportList"); @@ -524,13 +632,13 @@ if (! empty($conf->global->ACCOUNTING_REEXPORT)) { } $newcardbutton.= ''.$langs->trans("IncludeDocsAlreadyExported").''; -$newcardbutton.= dolGetButtonTitle($buttonLabel, $langs->trans("ExportFilteredList").' ('.$listofformat[$conf->global->ACCOUNTING_EXPORT_MODELCSV].')', 'fa fa-file-export paddingleft', $_SERVER["PHP_SELF"].'?action=export_file'.($param?'&'.$param:''), $user->rights->accounting->mouvements->export); +$newcardbutton.= dolGetButtonTitle($buttonLabel, $langs->trans("ExportFilteredList").' ('.$listofformat[$formatexportset].')', 'fa fa-file-export paddingleft', $_SERVER["PHP_SELF"].'?action=export_file'.($param?'&'.$param:''), $user->rights->accounting->mouvements->export); $newcardbutton.= dolGetButtonTitle($langs->trans('GroupByAccountAccounting'), '', 'fa fa-stream paddingleft', DOL_URL_ROOT.'/accountancy/bookkeeping/listbyaccount.php?'.$param); $newcardbutton.= dolGetButtonTitle($langs->trans('NewAccountingMvt'), '', 'fa fa-plus-circle paddingleft', './card.php?action=create', '', $user->rights->accounting->mouvements->creer); -print_barre_liste($title_page, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $result, $nbtotalofrecords, 'title_accountancy', 0, $newcardbutton, '', $limit); +print_barre_liste($title_page, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_accountancy', 0, $newcardbutton, '', $limit); $varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage; $selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields @@ -650,7 +758,6 @@ if (! empty($arrayfields['t.code_journal']['checked'])) print ''; } - // Fields from hook $parameters=array('arrayfields'=>$arrayfields); $reshook=$hookmanager->executeHooks('printFieldListOption', $parameters); // Note that $action and $object may have been modified by hook @@ -727,171 +834,200 @@ print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $ print "\n"; -if ($num > 0) +$line = new BookKeepingLine(); + +// Loop on record +// -------------------------------------------------------------------- +$i=0; +$totalarray=array(); +while ($i < min($num, $limit)) +{ + $obj = $db->fetch_object($resql); + if (empty($obj)) break; // Should not happen + + $line->id = $obj->rowid; + $line->doc_date = $db->jdate($obj->doc_date); + $line->doc_type = $obj->doc_type; + $line->doc_ref = $obj->doc_ref; + $line->fk_doc = $obj->fk_doc; + $line->fk_docdet = $obj->fk_docdet; + $line->thirdparty_code = $obj->thirdparty_code; + $line->subledger_account = $obj->subledger_account; + $line->subledger_label = $obj->subledger_label; + $line->numero_compte = $obj->numero_compte; + $line->label_compte = $obj->label_compte; + $line->label_operation = $obj->label_operation; + $line->debit = $obj->debit; + $line->credit = $obj->credit; + $line->montant = $obj->montant; + $line->sens = $obj->sens; + $line->lettering_code = $obj->lettering_code; + $line->fk_user_author = $obj->fk_user_author; + $line->import_key = $obj->import_key; + $line->code_journal = $obj->code_journal; + $line->journal_label = $obj->journal_label; + $line->piece_num = $obj->piece_num; + $line->date_creation = $db->jdate($obj->date_creation); + $line->date_modification = $db->jdate($obj->date_modification); + $line->date_export = $db->jdate($obj->date_export); + + $total_debit += $line->debit; + $total_credit += $line->credit; + + print ''; + + // Piece number + if (! empty($arrayfields['t.piece_num']['checked'])) + { + print ''; + $object->id = $line->id; + $object->piece_num = $line->piece_num; + print $object->getNomUrl(1, '', 0, '', 1); + print ''; + if (! $i) $totalarray['nbfield']++; + } + + // Document date + if (! empty($arrayfields['t.doc_date']['checked'])) + { + print '' . dol_print_date($line->doc_date, 'day') . ''; + if (! $i) $totalarray['nbfield']++; + } + + // Document ref + if (! empty($arrayfields['t.doc_ref']['checked'])) + { + print '' . $line->doc_ref . ''; + if (! $i) $totalarray['nbfield']++; + } + + // Account number + if (! empty($arrayfields['t.numero_compte']['checked'])) + { + print '' . length_accountg($line->numero_compte) . ''; + if (! $i) $totalarray['nbfield']++; + } + + // Subledger account + if (! empty($arrayfields['t.subledger_account']['checked'])) + { + print '' . length_accounta($line->subledger_account) . ''; + if (! $i) $totalarray['nbfield']++; + } + + // Label operation + if (! empty($arrayfields['t.label_operation']['checked'])) + { + print '' . $line->label_operation . ''; + if (! $i) $totalarray['nbfield']++; + } + + // Amount debit + if (! empty($arrayfields['t.debit']['checked'])) + { + print '' . ($line->debit ? price($line->debit) : ''). ''; + if (! $i) $totalarray['nbfield']++; + if (! $i) $totalarray['totaldebitfield']=$totalarray['nbfield']; + $totalarray['totaldebit'] += $line->debit; + } + + // Amount credit + if (! empty($arrayfields['t.credit']['checked'])) + { + print '' . ($line->credit ? price($line->credit) : '') . ''; + if (! $i) $totalarray['nbfield']++; + if (! $i) $totalarray['totalcreditfield']=$totalarray['nbfield']; + $totalarray['totalcredit'] += $line->credit; + } + + // Lettering code + if (! empty($arrayfields['t.lettering_code']['checked'])) + { + print '' . $line->lettering_code . ''; + if (! $i) $totalarray['nbfield']++; + } + + // Journal code + if (! empty($arrayfields['t.code_journal']['checked'])) + { + $accountingjournal = new AccountingJournal($db); + $result = $accountingjournal->fetch('', $line->code_journal); + $journaltoshow = (($result > 0)?$accountingjournal->getNomUrl(0, 0, 0, '', 0) : $line->code_journal); + print '' . $journaltoshow . ''; + if (! $i) $totalarray['nbfield']++; + } + + // Fields from hook + $parameters=array('arrayfields'=>$arrayfields, 'obj'=>$obj); + $reshook=$hookmanager->executeHooks('printFieldListValue', $parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + + // Creation operation date + if (! empty($arrayfields['t.date_creation']['checked'])) + { + print '' . dol_print_date($line->date_creation, 'dayhour') . ''; + if (! $i) $totalarray['nbfield']++; + } + + // Modification operation date + if (! empty($arrayfields['t.tms']['checked'])) + { + print '' . dol_print_date($line->date_modification, 'dayhour') . ''; + if (! $i) $totalarray['nbfield']++; + } + + // Exported operation date + if (! empty($arrayfields['t.date_export']['checked'])) + { + print '' . dol_print_date($line->date_export, 'dayhour') . ''; + if (! $i) $totalarray['nbfield']++; + } + + // Action column + print ''; + if (empty($line->date_export)) { + if ($user->rights->accounting->mouvements->creer) { + print '' . img_edit() . ''; + } + if ($user->rights->accounting->mouvements->supprimer) { + print ' ' . img_delete() . ''; + } + } + print ''; + + if (! $i) $totalarray['nbfield']++; + + print "\n"; + + $i++; +} + +// Show total line +if (isset($totalarray['totaldebitfield']) || isset($totalarray['totalcreditfield'])) { $i=0; - $totalarray=array(); - while ($i < min($num, $limit)) + print ''; + while ($i < $totalarray['nbfield']) { - $line = $object->lines[$i]; - - $total_debit += $line->debit; - $total_credit += $line->credit; - - print ''; - - // Piece number - if (! empty($arrayfields['t.piece_num']['checked'])) - { - print ''; - $object->id = $line->id; - $object->piece_num = $line->piece_num; - print $object->getNomUrl(1, '', 0, '', 1); - print ''; - if (! $i) $totalarray['nbfield']++; - } - - // Document date - if (! empty($arrayfields['t.doc_date']['checked'])) - { - print '' . dol_print_date($line->doc_date, 'day') . ''; - if (! $i) $totalarray['nbfield']++; - } - - // Document ref - if (! empty($arrayfields['t.doc_ref']['checked'])) - { - print '' . $line->doc_ref . ''; - if (! $i) $totalarray['nbfield']++; - } - - // Account number - if (! empty($arrayfields['t.numero_compte']['checked'])) - { - print '' . length_accountg($line->numero_compte) . ''; - if (! $i) $totalarray['nbfield']++; - } - - // Subledger account - if (! empty($arrayfields['t.subledger_account']['checked'])) - { - print '' . length_accounta($line->subledger_account) . ''; - if (! $i) $totalarray['nbfield']++; - } - - // Label operation - if (! empty($arrayfields['t.label_operation']['checked'])) - { - print '' . $line->label_operation . ''; - if (! $i) $totalarray['nbfield']++; - } - - // Amount debit - if (! empty($arrayfields['t.debit']['checked'])) - { - print '' . ($line->debit ? price($line->debit) : ''). ''; - if (! $i) $totalarray['nbfield']++; - if (! $i) $totalarray['totaldebitfield']=$totalarray['nbfield']; - $totalarray['totaldebit'] += $line->debit; - } - - // Amount credit - if (! empty($arrayfields['t.credit']['checked'])) - { - print '' . ($line->credit ? price($line->credit) : '') . ''; - if (! $i) $totalarray['nbfield']++; - if (! $i) $totalarray['totalcreditfield']=$totalarray['nbfield']; - $totalarray['totalcredit'] += $line->credit; - } - - // Lettering code - if (! empty($arrayfields['t.lettering_code']['checked'])) - { - print '' . $line->lettering_code . ''; - if (! $i) $totalarray['nbfield']++; - } - - // Journal code - if (! empty($arrayfields['t.code_journal']['checked'])) - { - $accountingjournal = new AccountingJournal($db); - $result = $accountingjournal->fetch('', $line->code_journal); - $journaltoshow = (($result > 0)?$accountingjournal->getNomUrl(0, 0, 0, '', 0) : $line->code_journal); - print '' . $journaltoshow . ''; - if (! $i) $totalarray['nbfield']++; - } - - // Fields from hook - $parameters=array('arrayfields'=>$arrayfields, 'obj'=>$obj); - $reshook=$hookmanager->executeHooks('printFieldListValue', $parameters); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - - // Creation operation date - if (! empty($arrayfields['t.date_creation']['checked'])) - { - print '' . dol_print_date($line->date_creation, 'dayhour') . ''; - if (! $i) $totalarray['nbfield']++; - } - - // Modification operation date - if (! empty($arrayfields['t.tms']['checked'])) - { - print '' . dol_print_date($line->date_modification, 'dayhour') . ''; - if (! $i) $totalarray['nbfield']++; - } - - // Exported operation date - if (! empty($arrayfields['t.date_export']['checked'])) - { - print '' . dol_print_date($line->date_export, 'dayhour') . ''; - if (! $i) $totalarray['nbfield']++; - } - - // Action column - print ''; - if (empty($line->date_export)) { - if ($user->rights->accounting->mouvements->creer) { - print '' . img_edit() . ''; - } - if ($user->rights->accounting->mouvements->supprimer) { - print ' ' . img_delete() . ''; - } - } - print ''; - - if (! $i) $totalarray['nbfield']++; - - print "\n"; - $i++; - } - - // Show total line - if (isset($totalarray['totaldebitfield']) || isset($totalarray['totalcreditfield'])) - { - $i=0; - print ''; - while ($i < $totalarray['nbfield']) + if ($i == 1) { - $i++; - if ($i == 1) - { - if ($num < $limit && empty($offset)) print ''.$langs->trans("Total").''; - else print ''.$langs->trans("Totalforthispage").''; - } - elseif ($totalarray['totaldebitfield'] == $i) print ''.price($totalarray['totaldebit']).''; - elseif ($totalarray['totalcreditfield'] == $i) print ''.price($totalarray['totalcredit']).''; - else print ''; + if ($num < $limit && empty($offset)) print ''.$langs->trans("Total").''; + else print ''.$langs->trans("Totalforthispage").''; } - $parameters=array('arrayfields'=>$arrayfields, 'sql'=>$sql); - $reshook=$hookmanager->executeHooks('printFieldListFooter', $parameters); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - - print ''; + elseif ($totalarray['totaldebitfield'] == $i) print ''.price($totalarray['totaldebit']).''; + elseif ($totalarray['totalcreditfield'] == $i) print ''.price($totalarray['totalcredit']).''; + else print ''; } + $parameters=array('arrayfields'=>$arrayfields, 'sql'=>$sql); + $reshook=$hookmanager->executeHooks('printFieldListFooter', $parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + + print ''; } + print ""; print ''; diff --git a/htdocs/accountancy/class/accountancyexport.class.php b/htdocs/accountancy/class/accountancyexport.class.php index f90d5797d09..84a851eea50 100644 --- a/htdocs/accountancy/class/accountancyexport.class.php +++ b/htdocs/accountancy/class/accountancyexport.class.php @@ -224,22 +224,23 @@ class AccountancyExport /** * Function who chose which export to use with the default config, and make the export into a file * - * @param array $TData data - * @return void + * @param array $TData Array with data + * @param int $formatexportset Id of export format + * @return void */ - public function export(&$TData) + public function export(&$TData, $formatexportset) { global $conf, $langs; global $search_date_end; // Used into /accountancy/tpl/export_journal.tpl.php // Define name of file to save - $filename = 'general_ledger-'.$this->getFormatCode($conf->global->ACCOUNTING_EXPORT_MODELCSV); + $filename = 'general_ledger-'.$this->getFormatCode($formatexportset); $type_export = 'general_ledger'; include DOL_DOCUMENT_ROOT . '/accountancy/tpl/export_journal.tpl.php'; - switch ($conf->global->ACCOUNTING_EXPORT_MODELCSV) { + switch ($formatexportset) { case self::$EXPORT_TYPE_CONFIGURABLE : $this->exportConfigurable($TData); break; From 8f03813aa9eda51aa29f1ef88f51e0a761808531 Mon Sep 17 00:00:00 2001 From: andreubisquerra Date: Wed, 16 Oct 2019 16:26:00 +0200 Subject: [PATCH 455/484] Phone layout and functional improvements --- htdocs/takepos/css/phone.css | 81 +++++++++++++++ htdocs/takepos/invoice.php | 48 ++++----- htdocs/takepos/phone.php | 190 +++++++++++++++++++++++++++++++++++ htdocs/takepos/takepos.php | 2 +- 4 files changed, 291 insertions(+), 30 deletions(-) create mode 100644 htdocs/takepos/css/phone.css create mode 100644 htdocs/takepos/phone.php diff --git a/htdocs/takepos/css/phone.css b/htdocs/takepos/css/phone.css new file mode 100644 index 00000000000..49d833ade17 --- /dev/null +++ b/htdocs/takepos/css/phone.css @@ -0,0 +1,81 @@ +html,body { + box-sizing: border-box; + padding:3px; + margin:0; + height:100%; + width:100%; +} + +.container{ + width: 100%; + height: 100%; + margin: 0 auto; + overflow: visible; + box-sizing: border-box; +} + +.phonerow1{ + margin: 0 auto; + width: 100%; + height: 40%; + min-height: 40%; +} + +.phonerow2{ + margin: 0 auto; + width: 100%; + height: 40%; +} + +.phonebuttonsrow{ + margin: 0 auto; + width: 100%; + height: 5%; +} + +.phonediv1{ + height:100%; + min-height: 100%; + width: 100%; + text-align: center; + box-sizing: border-box; + overflow: auto; + padding-top: 0; + padding-bottom: 10px; + padding-right: 5px; + padding-left: 5px; +} + +.phonediv2{ + height: 100%; + width: 100%; + box-sizing: border-box; + padding-top: 0; + padding-bottom: 10px; + padding-right: 5px; + padding-left: 5px; +} + +.phonediv3{ + height: 100%; + width: 100%; + box-sizing: border-box; + padding-top: 0; + padding-bottom: 10px; + padding-right: 5px; + padding-left: 5px; +} + +button.phonebutton { + display: inline-block; + position: relative; + padding: 0; + line-height: normal; + cursor: pointer; + vertical-align: middle; + text-align: center; + overflow: visible; /* removes extra width in IE */ + width:24%; + height:90%; + font-weight: bold; +} diff --git a/htdocs/takepos/invoice.php b/htdocs/takepos/invoice.php index 1511d3520a1..a2c92aa13e4 100644 --- a/htdocs/takepos/invoice.php +++ b/htdocs/takepos/invoice.php @@ -570,13 +570,19 @@ if ($conf->global->TAKEPOS_BAR_RESTAURANT) $label = $obj->label; $floor = $obj->floor; } - print $langs->trans('Place')." ".$label." - "; - print $langs->trans('Floor')." ".$floor." - "; + // In phone version only show when is invoice page + if ($mobilepage=="invoice" || $mobilepage=="") { + print $langs->trans('Place') . " " . $label . " - "; + print $langs->trans('Floor') . " " . $floor . " - "; + } +} +// In phone version only show when is invoice page +if ($mobilepage=="invoice" || $mobilepage=="") { + print $langs->trans('TotalTTC'); + print ' : ' . price($invoice->total_ttc, 1, '', 1, -1, -1, $conf->currency) . ''; + print '
    ' . $sectionwithinvoicelink; + print ''; } -print $langs->trans('TotalTTC'); -print ' : '.price($invoice->total_ttc, 1, '', 1, - 1, - 1, $conf->currency).''; -print '
    '.$sectionwithinvoicelink; -print ''; if ($_SESSION["basiclayout"]!=1) { print '' . $langs->trans('ReductionShort') . ''; @@ -595,16 +601,14 @@ if ($_SESSION["basiclayout"]==1) $htmlforlines = ''; foreach ($categories as $row){ $htmlforlines.= ''; + $htmlforlines.= '" onclick="LoadProducts(' . $row['id'] . ');">'; $htmlforlines.= ''; $htmlforlines.= $row['label']; $htmlforlines.= ''; $htmlforlines.= ''."\n"; } $htmlforlines.= ''; - $htmlforlines.= '
    '; - $htmlforlines.= ''.$langs->trans("Floors").''; - $htmlforlines.= '
    '; + $htmlforlines.= ''; print $htmlforlines; } @@ -618,17 +622,13 @@ if ($_SESSION["basiclayout"]==1) $htmlforlines = ''; foreach ($prods as $row) { $htmlforlines.= ''; + $htmlforlines.= '" onclick="AddProduct(\'' . $place . '\', ' . $row->id . ')">'; $htmlforlines.= ''; $htmlforlines.= $row->label; $htmlforlines.= ''; $htmlforlines.= ''."\n"; } $htmlforlines.= ''; - $htmlforlines.= '
    '; - $htmlforlines.= ''.$langs->trans("Categories").''; - $htmlforlines.= ''.$langs->trans("Floors").''; - $htmlforlines.= '
    '; print $htmlforlines; } @@ -641,24 +641,22 @@ if ($_SESSION["basiclayout"]==1) while($row = $db->fetch_array($resql)){ $rows[] = $row; $htmlforlines.= ''; + $htmlforlines.= '" onclick="LoadPlace(\'' . $row['label'] . '\')">'; $htmlforlines.= ''; $htmlforlines.= $row['label']; $htmlforlines.= ''; $htmlforlines.= ''."\n"; } $htmlforlines.= ''; - $htmlforlines.= '
    '; - $htmlforlines.= ''.$langs->trans("Categories").''; - $htmlforlines.= ''.$langs->trans("Floors").''; - $htmlforlines.= '
    '; print $htmlforlines; } } if ($placeid > 0) { - if ($_SESSION["basiclayout"]==1 && $mobilepage!="invoice") return; + //In Phone basic layout hide some content depends situation + if ($_SESSION["basiclayout"]==1 && $mobilepage!="invoice" && $action!="order") return; + if (is_array($invoice->lines) && count($invoice->lines)) { $tmplines = array_reverse($invoice->lines); @@ -716,14 +714,6 @@ else { // No invoice generated yet print ''; -if ($_SESSION["basiclayout"]==1 && $mobilepage=="invoice") -{ - print ''; -} - if ($invoice->socid != $conf->global->{'CASHDESK_ID_THIRDPARTY'.$_SESSION["takeposterminal"]}) { $soc = new Societe($db); diff --git a/htdocs/takepos/phone.php b/htdocs/takepos/phone.php new file mode 100644 index 00000000000..2bd21626f34 --- /dev/null +++ b/htdocs/takepos/phone.php @@ -0,0 +1,190 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file htdocs/takepos/phone.php + * \ingroup takepos + * \brief TakePOS Phone screen + */ + +//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Not disabled cause need to load personalized language +//if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); // Not disabled cause need to load personalized language +//if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1'); +//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); +if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1'); +if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1'); +if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); +if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); +if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); + +require '../main.inc.php'; // Load $user and permissions +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; +require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php'; + +$place = (GETPOST('place', 'int') > 0 ? GETPOST('place', 'int') : 0); // $place is id of table for Ba or Restaurant +$action = GETPOST('action', 'alpha'); +$setterminal = GETPOST('setterminal', 'int'); + +if ($setterminal>0) +{ + $_SESSION["takeposterminal"]=$setterminal; +} + +$langs->loadLangs(array("bills","orders","commercial","cashdesk","receiptprinter")); + +/* + * View + */ + +// Title +$title='TakePOS - Dolibarr '.DOL_VERSION; +if (! empty($conf->global->MAIN_APPLICATION_TITLE)) $title='TakePOS - '.$conf->global->MAIN_APPLICATION_TITLE; +$head=' + + +'; +top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); + +?> + + + + +global->TAKEPOS_NUM_TERMINALS!="1" && $_SESSION["takeposterminal"]=="") print '
    '.$langs->trans('TerminalSelect').'
    '; +?> +
    +
    + + + + +
    +
    +
    +
    +
    +
    +
    +
    + +close(); diff --git a/htdocs/takepos/takepos.php b/htdocs/takepos/takepos.php index c49479c7ce1..7ff588b12c0 100644 --- a/htdocs/takepos/takepos.php +++ b/htdocs/takepos/takepos.php @@ -63,7 +63,7 @@ if ($conf->browser->layout == 'phone') if ($_SESSION["takeposterminal"]!="" && $conf->global->TAKEPOS_PHONE_BASIC_LAYOUT==1) { $_SESSION["basiclayout"]=1; - header("Location: invoice.php?mobilepage=invoice"); + header("Location: phone.php?mobilepage=invoice"); exit; } } From 205967976cbc53ec91506ff8b73974c127f59f17 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Oct 2019 18:35:15 +0200 Subject: [PATCH 456/484] Can set a BOM to draft --- htdocs/bom/bom_card.php | 23 ++++++++----------- htdocs/core/actions_addupdatedelete.inc.php | 14 +++++++++++ htdocs/core/boxes/box_task.php | 1 - .../modulebuilder/template/myobject_card.php | 8 +++++-- 4 files changed, 30 insertions(+), 16 deletions(-) diff --git a/htdocs/bom/bom_card.php b/htdocs/bom/bom_card.php index 8e6551e92ea..0949fa1a334 100644 --- a/htdocs/bom/bom_card.php +++ b/htdocs/bom/bom_card.php @@ -405,20 +405,12 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea } // Confirmation of action xxxx - if ($action == 'xxx') + if ($action == 'setdraft') { + $text = $langs->trans('ConfirmSetToDraft', $object->ref); + $formquestion=array(); - /* - $forcecombo=0; - if ($conf->browser->name == 'ie') $forcecombo = 1; // There is a bug in IE10 that make combo inside popup crazy - $formquestion = array( - // 'text' => $langs->trans("ConfirmClone"), - // array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1), - // array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1), - // array('type' => 'other', 'name' => 'idwarehouse', 'label' => $langs->trans("SelectWarehouseForStockDecrease"), 'value' => $formproduct->selectWarehouses(GETPOST('idwarehouse')?GETPOST('idwarehouse'):'ifone', 'idwarehouse', '', 1, 0, 0, '', 0, $forcecombo)) - ); - */ - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('XXX'), $text, 'confirm_xxx', $formquestion, 0, 1, 220); + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('SetToDraft'), $text, 'confirm_setdraft', $formquestion, 0, 1, 220); } // Call Hook formConfirm @@ -568,6 +560,11 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Send //print '' . $langs->trans('SendMail') . ''."\n"; + if ($user->rights->bom->write && $object->status == BOM::STATUS_VALIDATED) + { + print '' . $langs->trans("SetToDraft") . ''; + } + // Modify if ($user->rights->bom->write) { @@ -594,7 +591,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Close / Cancel if ($user->rights->bom->write && $object->status == BOM::STATUS_VALIDATED) { - print '' . $langs->trans("Disable") . ''; + print '' . $langs->trans("Disable") . ''; } // Re-open diff --git a/htdocs/core/actions_addupdatedelete.inc.php b/htdocs/core/actions_addupdatedelete.inc.php index 7082bc5e882..e87333e4c01 100644 --- a/htdocs/core/actions_addupdatedelete.inc.php +++ b/htdocs/core/actions_addupdatedelete.inc.php @@ -289,6 +289,20 @@ if ($action == 'confirm_close' && $confirm == 'yes' && $permissionedit) } } +// Action setdraft object +if ($action == 'confirm_setdraft' && $confirm == 'yes' && $permissionedit) +{ + $result = $object->setDraft($user); + if ($result >= 0) + { + // Nothing else done + } + else + { + setEventMessages($object->error, $object->errors, 'errors'); + } +} + // Action reopen object if ($action == 'confirm_reopen' && $confirm == 'yes' && $permissionedit) { diff --git a/htdocs/core/boxes/box_task.php b/htdocs/core/boxes/box_task.php index dbe1757d55d..67ed84c0797 100644 --- a/htdocs/core/boxes/box_task.php +++ b/htdocs/core/boxes/box_task.php @@ -201,7 +201,6 @@ class box_task extends ModeleBoxes dol_print_error($this->db); } } - } /** diff --git a/htdocs/modulebuilder/template/myobject_card.php b/htdocs/modulebuilder/template/myobject_card.php index c443641ffd6..5727d596a6d 100644 --- a/htdocs/modulebuilder/template/myobject_card.php +++ b/htdocs/modulebuilder/template/myobject_card.php @@ -114,8 +114,6 @@ $permissiontoadd=$user->rights->mymodule->write; // Used by the include of actio /* * Actions - * - * Put here all code to do according to value of "action" parameter */ $parameters=array(); @@ -437,6 +435,12 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Send print '' . $langs->trans('SendMail') . ''."\n"; + // Back to draft + if (! empty($user->rights->mymodule->write) && $object->status == BOM::STATUS_VALIDATED) + { + print '' . $langs->trans("SetToDraft") . ''; + } + // Modify if (! empty($user->rights->mymodule->write)) { From 012ddd1cdcff471134e3cee971850c475ee8b71e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Oct 2019 18:37:26 +0200 Subject: [PATCH 457/484] Fix bom --- htdocs/bom/class/bom.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/bom/class/bom.class.php b/htdocs/bom/class/bom.class.php index d8e5387f075..9b2646b3e9d 100644 --- a/htdocs/bom/class/bom.class.php +++ b/htdocs/bom/class/bom.class.php @@ -95,8 +95,8 @@ class BOM extends CommonObject 'qty' => array('type'=>'real', 'label'=>'Quantity', 'enabled'=>1, 'visible'=>1, 'default'=>1, 'position'=>55, 'notnull'=>1, 'isameasure'=>'1', 'css'=>'maxwidth75imp'), 'efficiency' => array('type'=>'real', 'label'=>'ManufacturingEfficiency', 'enabled'=>1, 'visible'=>-1, 'default'=>1, 'position'=>100, 'notnull'=>0, 'css'=>'maxwidth50imp', 'help'=>'ValueOfMeansLoss'), 'duration' => array('type'=>'real', 'label'=>'EstimatedDuration', 'enabled'=>1, 'visible'=>-1, 'position'=>101, 'notnull'=>-1, 'css'=>'maxwidth50imp', 'help'=>'EstimatedDurationDesc'), - 'note_public' => array('type'=>'html', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>-1, 'position'=>161, 'notnull'=>-1,), - 'note_private' => array('type'=>'html', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>-1, 'position'=>162, 'notnull'=>-1,), + 'note_public' => array('type'=>'html', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>-2, 'position'=>161, 'notnull'=>-1,), + 'note_private' => array('type'=>'html', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>-2, 'position'=>162, 'notnull'=>-1,), 'date_creation' => array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-2, 'position'=>300, 'notnull'=>1,), 'tms' => array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-2, 'position'=>501, 'notnull'=>1,), 'date_valid' => array('type'=>'datetime', 'label'=>'DateValidation', 'enabled'=>1, 'visible'=>-2, 'position'=>502, 'notnull'=>0,), From 41dd53170e8d9c6744098ed8d57f5b901444845a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Oct 2019 19:07:17 +0200 Subject: [PATCH 458/484] Code comment --- htdocs/core/class/conf.class.php | 2 +- htdocs/main.inc.php | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/htdocs/core/class/conf.class.php b/htdocs/core/class/conf.class.php index 287d8121213..72aa4bc4265 100644 --- a/htdocs/core/class/conf.class.php +++ b/htdocs/core/class/conf.class.php @@ -227,7 +227,7 @@ class Conf $filesList = explode(":", $this->global->LOCAL_CONSTS_FILES); foreach ($filesList as $file) { $file=dol_sanitizeFileName($file); - include_once DOL_DOCUMENT_ROOT . "/".$file."/".$file."_consts.php"; // This file must set $this->global->XXX vars. + include_once DOL_DOCUMENT_ROOT . "/".$file."/".$file."_consts.php"; // This file can run code like setting $this->global->XXX vars. } } diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index b7bef1aa46a..4fc94feb1f4 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -1926,8 +1926,6 @@ function top_menu_bookmark(User $user, Translate $langs) global $menumanager; $html = ''; - - // Define $bookmarks if (! empty($conf->bookmark->enabled) && $user->rights->bookmark->lire) { @@ -2015,7 +2013,6 @@ function top_menu_search(User $user, Translate $langs) $buttonList.=''; - $searchInput = ''; @@ -2105,7 +2102,6 @@ function top_menu_search(User $user, Translate $langs) '; - return $html; } From e75f7d448c13d789e2c9156d10d65b531d42767b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Wed, 16 Oct 2019 20:00:01 +0200 Subject: [PATCH 459/484] Squiz.WhiteSpace.ControlStructureSpacing.SpacingAfterOpen --- dev/initdata/generate-thirdparty.php | 1 - dev/setup/codesniffer/ruleset.xml | 12 ++++--- htdocs/accountancy/admin/accountmodel.php | 1 - htdocs/accountancy/admin/card.php | 1 - htdocs/accountancy/admin/categories.php | 2 -- htdocs/accountancy/admin/categories_list.php | 7 ++-- htdocs/accountancy/admin/closure.php | 1 - htdocs/accountancy/admin/defaultaccounts.php | 3 -- htdocs/accountancy/admin/export.php | 3 +- htdocs/accountancy/admin/journals_list.php | 1 - htdocs/accountancy/admin/productaccount.php | 2 -- .../bookkeeping/balancebymonth.php | 1 - htdocs/accountancy/bookkeeping/card.php | 3 -- htdocs/accountancy/bookkeeping/list.php | 5 --- .../accountancy/bookkeeping/listbyaccount.php | 3 -- .../thirdparty_lettering_customer.php | 2 -- .../thirdparty_lettering_supplier.php | 2 -- .../class/accountancyexport.class.php | 5 --- .../class/accountingaccount.class.php | 1 - .../accountancy/class/bookkeeping.class.php | 2 -- htdocs/accountancy/class/lettering.class.php | 1 - htdocs/accountancy/customer/card.php | 1 - htdocs/accountancy/customer/index.php | 4 --- htdocs/accountancy/expensereport/index.php | 3 -- htdocs/accountancy/journal/bankjournal.php | 3 -- .../journal/expensereportsjournal.php | 2 -- .../accountancy/journal/purchasesjournal.php | 2 -- htdocs/accountancy/journal/sellsjournal.php | 2 -- htdocs/accountancy/supplier/index.php | 3 -- htdocs/adherents/class/adherent.class.php | 1 - .../adherents/class/adherent_type.class.php | 1 - htdocs/adherents/document.php | 1 - .../adherents/tpl/linkedobjectblock.tpl.php | 1 - htdocs/adherents/type.php | 1 - htdocs/admin/agenda_other.php | 2 -- htdocs/admin/bank.php | 2 -- htdocs/admin/barcode.php | 3 -- htdocs/admin/bom.php | 2 -- htdocs/admin/boxes.php | 1 - htdocs/admin/commande.php | 3 -- htdocs/admin/company.php | 7 ---- htdocs/admin/compta.php | 1 - htdocs/admin/const.php | 1 - htdocs/admin/contract.php | 3 -- htdocs/admin/delais.php | 8 ----- htdocs/admin/dict.php | 1 - .../admin/dolistore/class/dolistore.class.php | 1 - htdocs/admin/expedition.php | 1 - htdocs/admin/expensereport.php | 3 -- htdocs/admin/external_rss.php | 1 - htdocs/admin/facture.php | 1 - htdocs/admin/fichinter.php | 3 -- htdocs/admin/holiday.php | 3 -- htdocs/admin/limits.php | 1 - htdocs/admin/livraison.php | 2 -- htdocs/admin/mails.php | 2 -- htdocs/admin/mails_emailing.php | 1 - htdocs/admin/menus/edit.php | 1 - htdocs/admin/modules.php | 1 - htdocs/admin/notification.php | 2 -- htdocs/admin/oauthlogintokens.php | 2 -- htdocs/admin/propal.php | 2 -- htdocs/admin/reception_setup.php | 1 - htdocs/admin/security.php | 2 -- htdocs/admin/sms.php | 1 - htdocs/admin/supplier_invoice.php | 2 -- htdocs/admin/supplier_order.php | 1 - htdocs/admin/supplier_payment.php | 2 -- htdocs/admin/supplier_proposal.php | 4 --- htdocs/admin/syslog.php | 1 - htdocs/admin/system/database-tables.php | 1 - htdocs/admin/ticket.php | 1 - htdocs/admin/translation.php | 2 -- htdocs/admin/user.php | 1 - htdocs/admin/usergroup.php | 1 - htdocs/admin/website.php | 1 - htdocs/asset/type.php | 1 - htdocs/barcode/printsheet.php | 1 - htdocs/blockedlog/admin/blockedlog_list.php | 1 - htdocs/blockedlog/ajax/authority.php | 2 -- htdocs/blockedlog/class/authority.class.php | 3 -- htdocs/blockedlog/class/blockedlog.class.php | 3 -- htdocs/bom/class/bom.class.php | 1 - htdocs/bookmarks/bookmarks.lib.php | 1 - htdocs/bookmarks/card.php | 1 - htdocs/cashdesk/admin/cashdesk.php | 2 -- htdocs/cashdesk/class/Facturation.class.php | 33 ------------------- htdocs/cashdesk/facturation.php | 2 -- htdocs/cashdesk/tpl/liste_articles.tpl.php | 2 -- htdocs/cashdesk/tpl/validation1.tpl.php | 5 --- htdocs/categories/class/categorie.class.php | 1 - htdocs/categories/photos.php | 1 - htdocs/categories/viewcat.php | 2 -- htdocs/comm/action/card.php | 1 - htdocs/comm/action/peruser.php | 2 -- htdocs/comm/action/rapport/index.php | 1 - htdocs/comm/index.php | 4 --- htdocs/comm/mailing/advtargetemailing.php | 8 ----- .../mailing/class/advtargetemailing.class.php | 8 ----- .../html.formadvtargetemailing.class.php | 8 ----- htdocs/comm/mailing/class/mailing.class.php | 2 -- htdocs/comm/propal/card.php | 1 - htdocs/comm/propal/class/propal.class.php | 3 -- htdocs/comm/propal/index.php | 1 - htdocs/comm/prospect/index.php | 1 - htdocs/commande/card.php | 1 - htdocs/commande/class/commande.class.php | 3 -- htdocs/commande/index.php | 5 --- htdocs/compta/accounting-files.php | 1 - htdocs/compta/bank/annuel.php | 1 - htdocs/compta/bank/bankentries_list.php | 4 --- htdocs/compta/bank/card.php | 1 - htdocs/compta/bank/categ.php | 3 -- htdocs/compta/bank/class/account.class.php | 2 -- htdocs/compta/bank/document.php | 1 - htdocs/compta/facture/card.php | 5 --- .../facture/class/facture-rec.class.php | 1 - htdocs/compta/facture/class/facture.class.php | 4 --- htdocs/compta/facture/list.php | 1 - htdocs/compta/localtax/card.php | 1 - htdocs/compta/localtax/clients.php | 2 -- htdocs/compta/paiement/cheque/card.php | 1 - .../cheque/class/remisecheque.class.php | 2 -- .../compta/paiement/class/paiement.class.php | 4 --- htdocs/compta/paiement/rapport.php | 1 - htdocs/compta/paiement_charge.php | 1 - .../class/bonprelevement.class.php | 2 -- htdocs/compta/recap-compta.php | 2 -- htdocs/compta/resultat/result.php | 1 - htdocs/compta/sociales/card.php | 1 - .../class/paymentsocialcontribution.class.php | 1 - htdocs/compta/stats/byratecountry.php | 5 --- htdocs/compta/stats/cabyprodserv.php | 5 --- htdocs/compta/stats/cabyuser.php | 5 --- htdocs/compta/stats/casoc.php | 5 --- htdocs/compta/tva/clients.php | 1 - htdocs/contact/class/contact.class.php | 1 - htdocs/contact/consumption.php | 2 -- htdocs/contrat/card.php | 1 - htdocs/contrat/class/contrat.class.php | 4 --- htdocs/contrat/index.php | 1 - htdocs/core/actions_builddoc.inc.php | 1 - htdocs/core/actions_massactions.inc.php | 2 -- htdocs/core/ajax/ajaxdirtree.php | 1 - htdocs/core/ajax/check_notifications.php | 1 - htdocs/core/ajax/price.php | 2 -- htdocs/core/ajax/ziptown.php | 1 - htdocs/core/boxes/box_activity.php | 1 - htdocs/core/boxes/box_goodcustomers.php | 1 - htdocs/core/boxes/box_project.php | 1 - htdocs/core/boxes/box_task.php | 1 - htdocs/core/class/CMailFile.class.php | 1 - htdocs/core/class/CSMSFile.class.php | 1 - .../core/class/commondocgenerator.class.php | 1 - htdocs/core/class/commonobject.class.php | 4 --- htdocs/core/class/discount.class.php | 1 - htdocs/core/class/extrafields.class.php | 2 -- htdocs/core/class/html.form.class.php | 1 - htdocs/core/class/html.formcron.class.php | 1 - htdocs/core/class/html.formother.class.php | 1 - htdocs/core/class/infobox.class.php | 1 - htdocs/core/class/link.class.php | 1 - htdocs/core/class/utils.class.php | 1 - htdocs/core/lib/bank.lib.php | 1 - htdocs/core/lib/functions.lib.php | 1 - htdocs/core/lib/functions2.lib.php | 1 - htdocs/core/lib/json.lib.php | 1 - htdocs/core/lib/ldap.lib.php | 1 - htdocs/core/lib/modulebuilder.lib.php | 1 - htdocs/core/lib/pdf.lib.php | 1 - htdocs/core/lib/product.lib.php | 1 - htdocs/core/lib/ticket.lib.php | 1 - htdocs/core/lib/usergroups.lib.php | 9 ----- .../expedition/doc/pdf_rouget.modules.php | 1 - .../facture/doc/pdf_sponge.modules.php | 4 --- .../modules/printing/printgcp.modules.php | 1 - .../modules/propale/doc/pdf_azur.modules.php | 2 -- .../modules/propale/doc/pdf_cyan.modules.php | 2 -- .../reception/doc/pdf_squille.modules.php | 3 -- .../modGeneratePassStandard.class.php | 1 - .../stock/doc/pdf_stdmovement.modules.php | 1 - htdocs/core/tpl/advtarget.tpl.php | 4 --- htdocs/core/tpl/contacts.tpl.php | 3 -- htdocs/core/tpl/object_discounts.tpl.php | 2 -- htdocs/core/tpl/objectline_create.tpl.php | 1 - htdocs/core/tpl/objectline_edit.tpl.php | 1 - htdocs/core/tpl/resource_view.tpl.php | 1 - .../interface_80_modStripe_Stripe.class.php | 1 - ...rface_90_modSociete_ContactRoles.class.php | 1 - ...face_99_modZapier_ZapierTriggers.class.php | 1 - .../class/actions_datapolicy.class.php | 5 --- .../datapolicy/class/datapolicycron.class.php | 1 - htdocs/datapolicy/mailing.php | 1 - htdocs/don/card.php | 4 --- htdocs/don/class/don.class.php | 1 - htdocs/don/class/paymentdonation.class.php | 1 - htdocs/don/index.php | 1 - htdocs/don/list.php | 1 - htdocs/don/payment/payment.php | 1 - htdocs/expedition/card.php | 1 - htdocs/expedition/class/expedition.class.php | 2 -- htdocs/expedition/note.php | 1 - .../class/expensereport.class.php | 4 --- htdocs/expensereport/export_csv.php | 2 -- .../tpl/linkedobjectblock.tpl.php | 1 - htdocs/fichinter/card-rec.php | 1 - htdocs/fichinter/class/fichinter.class.php | 4 --- .../class/fournisseur.commande.class.php | 4 --- .../fournisseur.commande.dispatch.class.php | 1 - .../fourn/class/fournisseur.facture.class.php | 2 -- .../fourn/class/fournisseur.product.class.php | 2 -- htdocs/fourn/class/paiementfourn.class.php | 1 - htdocs/fourn/commande/card.php | 2 -- htdocs/fourn/commande/dispatch.php | 2 -- htdocs/fourn/commande/index.php | 1 - htdocs/fourn/commande/list.php | 3 -- htdocs/fourn/commande/orderstoinvoice.php | 3 -- htdocs/fourn/facture/card.php | 1 - htdocs/fourn/facture/list.php | 1 - htdocs/fourn/index.php | 1 - htdocs/ftp/admin/ftpclient.php | 1 - htdocs/ftp/index.php | 1 - htdocs/holiday/card.php | 3 -- htdocs/holiday/class/holiday.class.php | 12 ------- htdocs/hrm/establishment/card.php | 1 - htdocs/imports/import.php | 2 -- htdocs/install/check.php | 2 -- htdocs/install/step1.php | 1 - htdocs/install/upgrade2.php | 2 -- htdocs/livraison/card.php | 2 -- htdocs/livraison/class/livraison.class.php | 1 - htdocs/loan/calcmens.php | 1 - htdocs/loan/createschedule.php | 4 --- htdocs/loan/schedule.php | 4 --- htdocs/margin/checkMargins.php | 1 - htdocs/margin/customerMargins.php | 1 - htdocs/margin/productMargins.php | 1 - htdocs/modulebuilder/index.php | 3 -- .../template/class/actions_mymodule.class.php | 2 -- .../template/class/myobject.class.php | 1 - ..._99_modMyModule_MyModuleTriggers.class.php | 1 - htdocs/mrp/class/mo.class.php | 1 - htdocs/opensurvey/card.php | 2 -- .../class/opensurveysondage.class.php | 1 - htdocs/opensurvey/results.php | 3 -- htdocs/opensurvey/wizard/choix_autre.php | 1 - htdocs/opensurvey/wizard/choix_date.php | 5 ++- htdocs/printing/admin/printing.php | 1 - htdocs/product/admin/price_rules.php | 4 --- htdocs/product/admin/product.php | 1 - htdocs/product/admin/product_tools.php | 1 - htdocs/product/ajax/products.php | 3 +- .../canvas/product/tpl/card_create.tpl.php | 1 - .../canvas/service/tpl/card_create.tpl.php | 1 - htdocs/product/card.php | 1 - htdocs/product/class/product.class.php | 3 -- htdocs/product/class/productbatch.class.php | 2 -- .../class/productcustomerprice.class.php | 9 ----- .../class/propalmergepdfproduct.class.php | 2 -- htdocs/product/document.php | 3 -- htdocs/product/price.php | 3 -- htdocs/product/reassort.php | 1 - htdocs/product/stock/card.php | 1 - htdocs/product/stock/class/entrepot.class.php | 1 - .../stock/class/mouvementstock.class.php | 1 - .../class/productstockentrepot.class.php | 1 - htdocs/product/stock/massstockmove.php | 2 -- htdocs/product/stock/movement_card.php | 2 +- htdocs/product/stock/product.php | 6 ---- htdocs/product/stock/productlot_document.php | 2 -- htdocs/product/stock/productlot_list.php | 1 - htdocs/projet/card.php | 1 - htdocs/projet/class/project.class.php | 1 - htdocs/projet/class/task.class.php | 2 -- htdocs/projet/element.php | 2 -- htdocs/projet/ganttview.php | 1 - htdocs/projet/graph_opportunities.inc.php | 1 - htdocs/projet/index.php | 1 - htdocs/public/donations/donateurs_code.php | 1 - htdocs/public/onlinesign/newonlinesign.php | 2 -- htdocs/public/opensurvey/studs.php | 1 - htdocs/public/payment/newpayment.php | 1 - htdocs/public/stripe/ipn.php | 4 --- htdocs/public/test/test_arrays.php | 1 - htdocs/public/ticket/create_ticket.php | 1 - htdocs/public/ticket/list.php | 1 - htdocs/reception/card.php | 2 -- htdocs/reception/class/reception.class.php | 1 - htdocs/reception/list.php | 2 -- htdocs/reception/note.php | 1 - .../class/html.formresource.class.php | 2 -- htdocs/resource/element_resource.php | 3 -- htdocs/salaries/card.php | 1 - htdocs/salaries/class/paymentsalary.class.php | 1 - htdocs/societe/card.php | 2 -- .../societe/class/api_thirdparties.class.php | 2 -- .../class/companybankaccount.class.php | 3 -- htdocs/societe/consumption.php | 2 -- htdocs/societe/paymentmodes.php | 4 --- htdocs/societe/price.php | 8 ----- htdocs/stripe/charge.php | 1 - htdocs/stripe/payment.php | 3 -- htdocs/stripe/payout.php | 1 - htdocs/stripe/transaction.php | 1 - htdocs/supplier_proposal/card.php | 2 -- .../class/supplier_proposal.class.php | 3 -- htdocs/support/inc.php | 1 - htdocs/takepos/admin/terminal.php | 1 - htdocs/theme/eldy/main_menu_fa_icons.inc.php | 1 - htdocs/theme/md/badges.inc.php | 1 - htdocs/ticket/index.php | 1 - htdocs/ticket/list.php | 1 - htdocs/user/card.php | 1 - htdocs/user/class/user.class.php | 1 - htdocs/user/class/userbankaccount.class.php | 1 - htdocs/user/clicktodial.php | 1 - htdocs/user/group/card.php | 1 - htdocs/user/notify/card.php | 1 - htdocs/user/passwordforgotten.php | 2 -- htdocs/variants/admin/admin.php | 1 - htdocs/variants/card.php | 9 ----- .../variants/class/ProductAttribute.class.php | 1 - .../class/ProductAttributeValue.class.php | 1 - .../class/ProductCombination.class.php | 6 ---- htdocs/variants/combinations.php | 12 ------- htdocs/variants/create.php | 1 - htdocs/variants/create_val.php | 1 - htdocs/variants/generator.php | 2 -- htdocs/webservices/server_actioncomm.php | 1 - htdocs/webservices/server_contact.php | 3 -- htdocs/webservices/server_invoice.php | 2 -- htdocs/webservices/server_order.php | 4 --- .../webservices/server_productorservice.php | 1 - htdocs/webservices/server_thirdparty.php | 2 -- htdocs/website/class/website.class.php | 1 - htdocs/website/index.php | 1 - .../accountancy/export-thirdpartyaccount.php | 1 - 337 files changed, 15 insertions(+), 710 deletions(-) diff --git a/dev/initdata/generate-thirdparty.php b/dev/initdata/generate-thirdparty.php index 54e17c7f8d7..f1e0f4f360b 100755 --- a/dev/initdata/generate-thirdparty.php +++ b/dev/initdata/generate-thirdparty.php @@ -116,7 +116,6 @@ for ($s = 0 ; $s < GEN_NUMBER_SOCIETE ; $s++) $contact->firstname = $listoflastname[mt_rand(0, count($listoflastname)-1)]; if ( $contact->create($user) ) { - } } diff --git a/dev/setup/codesniffer/ruleset.xml b/dev/setup/codesniffer/ruleset.xml index 6773e1d2c03..32c44ce91e4 100644 --- a/dev/setup/codesniffer/ruleset.xml +++ b/dev/setup/codesniffer/ruleset.xml @@ -122,14 +122,14 @@ - + 0 0 - + @@ -195,7 +195,7 @@ --> - + @@ -213,6 +213,8 @@ 0 + + @@ -337,7 +339,7 @@ - @@ -375,7 +377,7 @@ 0 - + 0 diff --git a/htdocs/accountancy/admin/accountmodel.php b/htdocs/accountancy/admin/accountmodel.php index 06a2fb60d67..2f23cd3eae8 100644 --- a/htdocs/accountancy/admin/accountmodel.php +++ b/htdocs/accountancy/admin/accountmodel.php @@ -677,7 +677,6 @@ if ($id) { foreach ($fieldlist as $field => $value) { - $showfield=1; $class="left"; $valuetoshow=$obj->{$fieldlist[$field]}; diff --git a/htdocs/accountancy/admin/card.php b/htdocs/accountancy/admin/card.php index c49ed42741b..f54c477ff52 100644 --- a/htdocs/accountancy/admin/card.php +++ b/htdocs/accountancy/admin/card.php @@ -273,7 +273,6 @@ if ($action == 'create') { print ''; } elseif ($id > 0 || $ref) { - $result = $object->fetch($id, $ref, 1); if ($result > 0) { diff --git a/htdocs/accountancy/admin/categories.php b/htdocs/accountancy/admin/categories.php index a7fe40acefc..5fdd43eb020 100644 --- a/htdocs/accountancy/admin/categories.php +++ b/htdocs/accountancy/admin/categories.php @@ -130,7 +130,6 @@ if (! empty($cat_id)) } if (is_array($accountingcategory->lines_cptbk) && count($accountingcategory->lines_cptbk) > 0) { - print $form->multiselectarray('cpt_bk', $arraykeyvalue, GETPOST('cpt_bk', 'array'), null, null, null, null, "90%"); print '
    '; /*print ''; print ''; foreach ($list_account_main as $key) { - print ''; // Param $label = $langs->trans($key); diff --git a/htdocs/accountancy/admin/defaultaccounts.php b/htdocs/accountancy/admin/defaultaccounts.php index 13d3a267956..6b47578761c 100644 --- a/htdocs/accountancy/admin/defaultaccounts.php +++ b/htdocs/accountancy/admin/defaultaccounts.php @@ -83,7 +83,6 @@ if (GETPOST('change_chart', 'alpha')) $chartofaccounts = GETPOST('chartofaccounts', 'int'); if (! empty($chartofaccounts)) { - if (! dolibarr_set_const($db, 'CHARTOFACCOUNTS', $chartofaccounts, 'chaine', 0, '', $conf->entity)) { $error ++; } @@ -144,7 +143,6 @@ print ''; print '
    '; foreach ($list_account_main as $key) { - print ''; // Param $label = $langs->trans($key); @@ -172,7 +170,6 @@ print '
    '; print '
    '; foreach ($list_account as $key) { - print ''; // Param $label = $langs->trans($key); diff --git a/htdocs/accountancy/admin/export.php b/htdocs/accountancy/admin/export.php index e13a66998b7..e506f5bf512 100644 --- a/htdocs/accountancy/admin/export.php +++ b/htdocs/accountancy/admin/export.php @@ -114,7 +114,7 @@ if ($action == 'update') { $error ++; } } - } + } if (! $error) { // reload @@ -203,7 +203,6 @@ print "\n"; $num = count($main_option); if ($num) { foreach ($main_option as $key) { - print ''; // Param diff --git a/htdocs/accountancy/admin/journals_list.php b/htdocs/accountancy/admin/journals_list.php index fcdf4de032c..44fe3e936cd 100644 --- a/htdocs/accountancy/admin/journals_list.php +++ b/htdocs/accountancy/admin/journals_list.php @@ -609,7 +609,6 @@ if ($id) $langs->load("accountancy"); foreach ($fieldlist as $field => $value) { - $showfield=1; $class="left"; $valuetoshow=$obj->{$fieldlist[$field]}; diff --git a/htdocs/accountancy/admin/productaccount.php b/htdocs/accountancy/admin/productaccount.php index 2922d3bdf23..091018dc909 100644 --- a/htdocs/accountancy/admin/productaccount.php +++ b/htdocs/accountancy/admin/productaccount.php @@ -117,7 +117,6 @@ if ($action == 'update') { ); if (in_array($accounting_product_mode, $accounting_product_modes)) { - if (! dolibarr_set_const($db, 'ACCOUNTING_PRODUCT_MODE', $accounting_product_mode, 'chaine', 0, '', $conf->entity)) { $error ++; } @@ -129,7 +128,6 @@ if ($action == 'update') { if (! empty($btn_changeaccount)) { //$msg = '
    ' . $langs->trans("Processing") . '...
    '; if (! empty($chk_prod)) { - $accounting = new AccountingAccount($db); //$msg .= '
    ' . count($chk_prod) . ' ' . $langs->trans("SelectedLines") . '
    '; diff --git a/htdocs/accountancy/bookkeeping/balancebymonth.php b/htdocs/accountancy/bookkeeping/balancebymonth.php index d0e9b940074..bdc78911513 100644 --- a/htdocs/accountancy/bookkeeping/balancebymonth.php +++ b/htdocs/accountancy/bookkeeping/balancebymonth.php @@ -105,7 +105,6 @@ if ($resql) { $num = $db->num_rows($resql); while ( $i < $num ) { - $row = $db->fetch_row($resql); print ''; diff --git a/htdocs/accountancy/bookkeeping/card.php b/htdocs/accountancy/bookkeeping/card.php index 5f9ba37d341..cc6307bae2c 100644 --- a/htdocs/accountancy/bookkeeping/card.php +++ b/htdocs/accountancy/bookkeeping/card.php @@ -83,7 +83,6 @@ $object = new BookKeeping($db); */ if ($action == "confirm_update") { - $error = 0; if ((floatval($debit) != 0.0) && (floatval($credit) != 0.0)) { @@ -585,7 +584,6 @@ if ($action == 'create') if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); } else { - print load_fiche_titre($langs->trans("ListeMvts"), '', ''); print ''; @@ -601,7 +599,6 @@ if ($action == 'create') print "
    ' . length_accountg($row[0]) . '
    "; if (count($object->linesmvt) > 0) { - $total_debit = 0; $total_credit = 0; diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php index b14a118a342..5158e12ebb6 100644 --- a/htdocs/accountancy/bookkeeping/list.php +++ b/htdocs/accountancy/bookkeeping/list.php @@ -316,7 +316,6 @@ if (empty($reshook)) } if ($action == 'delbookkeeping' && $user->rights->accounting->mouvements->supprimer) { - $import_key = GETPOST('importkey', 'alpha'); if (! empty($import_key)) { @@ -331,7 +330,6 @@ if ($action == 'delbookkeeping' && $user->rights->accounting->mouvements->suppri } } if ($action == 'delbookkeepingyearconfirm' && $user->rights->accounting->mouvements->supprimer_tous) { - $delyear = GETPOST('delyear', 'int'); if ($delyear==-1) { $delyear=0; @@ -362,7 +360,6 @@ if ($action == 'delbookkeepingyearconfirm' && $user->rights->accounting->mouveme } } if ($action == 'delmouvconfirm' && $user->rights->accounting->mouvements->supprimer) { - $mvt_num = GETPOST('mvt_num', 'int'); if (! empty($mvt_num)) { @@ -468,7 +465,6 @@ if (! empty($sortfield)) { // Export into a file with format defined into setup (FEC, CSV, ...) // Must be after definition of $sql if ($action == 'export_file' && $user->rights->accounting->mouvements->export) { - // TODO Replace the fetchAll + ->export later that consume too much memory on large export with the query($sql) and loop on each line to export them. $result = $object->fetchAll($sortorder, $sortfield, 0, 0, $filter, 'AND', $conf->global->ACCOUNTING_REEXPORT); @@ -578,7 +574,6 @@ if ($action == 'delmouv') { print $formconfirm; } if ($action == 'delbookkeepingyear') { - $form_question = array (); $delyear = GETPOST('delyear'); $deljournal = GETPOST('deljournal'); diff --git a/htdocs/accountancy/bookkeeping/listbyaccount.php b/htdocs/accountancy/bookkeeping/listbyaccount.php index d91772a6ab3..4f275e3e2b0 100644 --- a/htdocs/accountancy/bookkeeping/listbyaccount.php +++ b/htdocs/accountancy/bookkeeping/listbyaccount.php @@ -179,7 +179,6 @@ if (! empty($search_credit)) { if ($action == 'delmouvconfirm') { - $mvt_num = GETPOST('mvt_num', 'int'); if (! empty($mvt_num)) { @@ -229,7 +228,6 @@ if ($action == 'delmouv') { print $formconfirm; } if ($action == 'delbookkeepingyear') { - $form_question = array (); $delyear = GETPOST('delyear'); @@ -338,7 +336,6 @@ while ($i < min($num, $limit)) // Is it a break ? if ($accountg != $displayed_account_number || ! isset($displayed_account_number)) { - // Affiche un Sous-Total par compte comptable if (isset($displayed_account_number)) { print ''; diff --git a/htdocs/accountancy/bookkeeping/thirdparty_lettering_customer.php b/htdocs/accountancy/bookkeeping/thirdparty_lettering_customer.php index b7a19101758..4bc60fc904f 100644 --- a/htdocs/accountancy/bookkeeping/thirdparty_lettering_customer.php +++ b/htdocs/accountancy/bookkeeping/thirdparty_lettering_customer.php @@ -100,7 +100,6 @@ if ($result < 0) */ if ($action == 'lettering') { - $result = $lettering->updateLettering($toselect); if ($result < 0) { @@ -251,7 +250,6 @@ if ($resql) { $tmp = ''; while ( $obj = $db->fetch_object($resql) ) { - if ($tmp != $obj->lettering_code || empty($tmp)) $tmp = $obj->lettering_code; /*if ($tmp != $obj->lettering_code || empty($obj->lettering_code))*/ $solde += ($obj->credit - $obj->debit); diff --git a/htdocs/accountancy/bookkeeping/thirdparty_lettering_supplier.php b/htdocs/accountancy/bookkeeping/thirdparty_lettering_supplier.php index eaa741e1722..df513f8d074 100644 --- a/htdocs/accountancy/bookkeeping/thirdparty_lettering_supplier.php +++ b/htdocs/accountancy/bookkeeping/thirdparty_lettering_supplier.php @@ -99,7 +99,6 @@ if ($result<0) * Action */ if ($action == 'lettering') { - $result = $lettering->updateLettering($toselect); if ($result < 0) { @@ -248,7 +247,6 @@ if ($resql) { $solde = 0; $tmp = ''; while ($obj = $db->fetch_object($resql)) { - if ($tmp != $obj->lettering_code || empty($tmp)) $tmp = $obj->lettering_code; /*if ($tmp != $obj->lettering_code || empty($obj->lettering_code))*/ $solde += ($obj->credit - $obj->debit); diff --git a/htdocs/accountancy/class/accountancyexport.class.php b/htdocs/accountancy/class/accountancyexport.class.php index 84a851eea50..7e8f14f2a53 100644 --- a/htdocs/accountancy/class/accountancyexport.class.php +++ b/htdocs/accountancy/class/accountancyexport.class.php @@ -549,7 +549,6 @@ class AccountancyExport $end_line = "\n"; foreach ($objectLines as $line) { - $date = dol_print_date($line->doc_date, '%d%m%Y'); print $line->id . $separator; @@ -585,7 +584,6 @@ class AccountancyExport $end_line = "\n"; foreach ($objectLines as $line) { - $date = dol_print_date($line->doc_date, '%d%m%Y'); print $line->piece_num . $separator; @@ -625,7 +623,6 @@ class AccountancyExport $end_line = "\n"; foreach ($objectLines as $line) { - $date = dol_print_date($line->doc_date, '%d/%m/%Y'); print $date . $separator; @@ -934,7 +931,6 @@ class AccountancyExport $end_line = "\r\n"; foreach ($objectLines as $line) { - $date_document = dol_print_date($line->doc_date, '%Y%m%d'); $date_creation = dol_print_date($line->date_creation, '%Y%m%d'); @@ -1087,7 +1083,6 @@ class AccountancyExport print $end_line; foreach($objectLines as $line) { - $date = dol_print_date($line->doc_date, '%Y%m%d'); print $date . $separator; //Date diff --git a/htdocs/accountancy/class/accountingaccount.class.php b/htdocs/accountancy/class/accountingaccount.class.php index f9c2e3391ba..21cbdeb9662 100644 --- a/htdocs/accountancy/class/accountingaccount.class.php +++ b/htdocs/accountancy/class/accountingaccount.class.php @@ -407,7 +407,6 @@ class AccountingAccount extends CommonObject $result = $this->checkUsage(); if ($result > 0) { - $this->db->begin(); // if (! $error) { diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php index 16dc458d833..24d2936680a 100644 --- a/htdocs/accountancy/class/bookkeeping.class.php +++ b/htdocs/accountancy/class/bookkeeping.class.php @@ -1584,9 +1584,7 @@ class BookKeeping extends CommonObject dol_syslog(get_class($this) . "::" . __METHOD__, LOG_DEBUG); $result = $this->db->query($sql); if ($result) { - while ($obj = $this->db->fetch_object($result)) { - $line = new BookKeepingLine(); $line->id = $obj->rowid; diff --git a/htdocs/accountancy/class/lettering.class.php b/htdocs/accountancy/class/lettering.class.php index e20b49dbd25..ef63fc8b15f 100644 --- a/htdocs/accountancy/class/lettering.class.php +++ b/htdocs/accountancy/class/lettering.class.php @@ -149,7 +149,6 @@ class Lettering extends BookKeeping } } } elseif ($obj->type == 'payment') { - $sql = 'SELECT DISTINCT bk.rowid, fac.ref, fac.ref, pay.fk_bank, fac.rowid as fact_id'; $sql .= " FROM " . MAIN_DB_PREFIX . "facture fac "; $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "paiement_facture as payfac ON payfac.fk_facture=fac.rowid"; diff --git a/htdocs/accountancy/customer/card.php b/htdocs/accountancy/customer/card.php index 52057485a30..00c4a945ff9 100644 --- a/htdocs/accountancy/customer/card.php +++ b/htdocs/accountancy/customer/card.php @@ -112,7 +112,6 @@ if (! empty($id)) { $i = 0; if ($num_lines) { - $objp = $db->fetch_object($result); print '' . "\n"; diff --git a/htdocs/accountancy/customer/index.php b/htdocs/accountancy/customer/index.php index 68649aa264d..f43ca801c25 100644 --- a/htdocs/accountancy/customer/index.php +++ b/htdocs/accountancy/customer/index.php @@ -97,7 +97,6 @@ if ($action == 'clean' || $action == 'validatehistory') } if ($action == 'validatehistory') { - $error = 0; $db->begin(); @@ -195,7 +194,6 @@ if ($resql) { $num = $db->num_rows($resql); while ( $row = $db->fetch_row($resql)) { - print ''; for($i = 1; $i <= 12; $i ++) { print ''; diff --git a/htdocs/accountancy/expensereport/index.php b/htdocs/accountancy/expensereport/index.php index d3fc63d3bf8..ea855921c5a 100644 --- a/htdocs/accountancy/expensereport/index.php +++ b/htdocs/accountancy/expensereport/index.php @@ -94,7 +94,6 @@ if ($action == 'clean' || $action == 'validatehistory') } if ($action == 'validatehistory') { - $error = 0; $db->begin(); @@ -187,7 +186,6 @@ if ($resql) { $num = $db->num_rows($resql); while ( $row = $db->fetch_row($resql)) { - print ' diff --git a/htdocs/adherents/type.php b/htdocs/adherents/type.php index b24e3361d16..2848ed4119e 100644 --- a/htdocs/adherents/type.php +++ b/htdocs/adherents/type.php @@ -94,7 +94,6 @@ $hookmanager->initHooks(array('membertypecard','globalcard')); */ if ($cancel) { - $action=''; if (! empty($backtopage)) { diff --git a/htdocs/admin/agenda_other.php b/htdocs/admin/agenda_other.php index a13b7bd1580..3caa3418af5 100644 --- a/htdocs/admin/agenda_other.php +++ b/htdocs/admin/agenda_other.php @@ -268,7 +268,6 @@ if ($conf->global->MAIN_FEATURES_LEVEL >= 2) // Active if (in_array($name, $def)) { - print ''."\n"; if (! empty($conf->global->AGENDA_USE_EVENT_TYPE)) { - print ''; print ''."\n"; print ''."\n"; diff --git a/htdocs/admin/bank.php b/htdocs/admin/bank.php index 689202c023d..70b273e2fcc 100644 --- a/htdocs/admin/bank.php +++ b/htdocs/admin/bank.php @@ -253,7 +253,6 @@ $i = 0; $nbofbank = count($bankorder); while ($i < $nbofbank) { - print ''; print ''; // Chemin du binaire genbarcode sous linux if (! isset($_SERVER['WINDIR'])) { - print ''; print ''; print ''; print ''; print ''; print ''; print ''; @@ -381,7 +380,6 @@ if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { if (preg_match('/\.modules\.php$/i', $file) && preg_match('/^(pdf_|doc_)/', $file)) { - if (file_exists($dir.'/'.$file)) { $name = substr($file, 4, dol_strlen($file) -16); diff --git a/htdocs/admin/boxes.php b/htdocs/admin/boxes.php index ca90c836929..1e158bc7a7f 100644 --- a/htdocs/admin/boxes.php +++ b/htdocs/admin/boxes.php @@ -474,7 +474,6 @@ print ''; // Activate FileCache - Developement if ($conf->global->MAIN_FEATURES_LEVEL == 2 || ! empty($conf->global->MAIN_ACTIVATE_FILECACHE)) { - print ''; diff --git a/htdocs/admin/commande.php b/htdocs/admin/commande.php index cb07d741a06..5bb2dbe79ed 100644 --- a/htdocs/admin/commande.php +++ b/htdocs/admin/commande.php @@ -282,7 +282,6 @@ foreach ($dirmodels as $reldir) $handle = opendir($dir); if (is_resource($handle)) { - while (($file = readdir($handle))!==false) { if (substr($file, 0, 13) == 'mod_commande_' && substr($file, dol_strlen($file)-3, 3) == 'php') @@ -299,7 +298,6 @@ foreach ($dirmodels as $reldir) if ($module->isEnabled()) { - print ''; @@ -423,7 +421,6 @@ foreach ($dirmodels as $reldir) { if (preg_match('/\.modules\.php$/i', $file) && preg_match('/^(pdf_|doc_)/', $file)) { - if (file_exists($dir.'/'.$file)) { $name = substr($file, 4, dol_strlen($file) -16); diff --git a/htdocs/admin/company.php b/htdocs/admin/company.php index dde962fe9bc..e6ea9a2cb17 100644 --- a/htdocs/admin/company.php +++ b/htdocs/admin/company.php @@ -470,7 +470,6 @@ print ''."\n"; // Barcode if (! empty($conf->barcode->enabled)) { - print ''; print ''; @@ -555,7 +554,6 @@ print ''; // ProfID1 if ($langs->transcountry("ProfId1", $mysoc->country_code) != '-') { - print ''; @@ -359,7 +357,6 @@ foreach ($dirmodels as $reldir) { if (preg_match('/\.modules\.php$/i', $file) && preg_match('/^(pdf_|doc_)/', $file)) { - if (file_exists($dir.'/'.$file)) { $name = substr($file, 4, dol_strlen($file) -16); diff --git a/htdocs/admin/delais.php b/htdocs/admin/delais.php index d69a14deb2e..7e724c52280 100644 --- a/htdocs/admin/delais.php +++ b/htdocs/admin/delais.php @@ -265,7 +265,6 @@ print '
    '; print ''.$langs->trans("DescWeather").' '; if($action == 'edit') { - $str_mode_std = $langs->trans('MeteoStdModEnabled').' : '.$langs->trans('MeteoUseMod', $langs->transnoentitiesnoconv('MeteoPercentageMod')); $str_mode_percentage = $langs->trans('MeteoPercentageModEnabled').' : '.$langs->trans('MeteoUseMod', $langs->transnoentitiesnoconv('MeteoStdMod')); if(empty($conf->global->MAIN_USE_METEO_WITH_PERCENTAGE)) $str_mode_enabled = $str_mode_std; @@ -292,8 +291,6 @@ $text=''; $options='class="valignmiddle" height="60px"'; if ($action == 'edit') { - - print '
    global->MAIN_USE_METEO_WITH_PERCENTAGE) ? '' : 'style="display:none;"').'>'; print '
    '; @@ -364,9 +361,7 @@ if ($action == 'edit') { global->MAIN_USE_METEO_WITH_PERCENTAGE)) { - print '
    '; print '
    '; print img_weather($text, 0, $options); @@ -386,7 +381,6 @@ if ($action == 'edit') { print '
    '; print '
    '; } else { - print '
    '; print '
    '; print img_weather($text, 0, $options); @@ -411,11 +405,9 @@ if ($action == 'edit') { print '
    '; if($action == 'edit') { - print '
    '; print '
    '; } else { - print '
    '; } diff --git a/htdocs/admin/dict.php b/htdocs/admin/dict.php index 31ade656480..501a6d18113 100644 --- a/htdocs/admin/dict.php +++ b/htdocs/admin/dict.php @@ -1728,7 +1728,6 @@ else { if ($showemptyline) { - print '
    '; $showemptyline=0; } diff --git a/htdocs/admin/dolistore/class/dolistore.class.php b/htdocs/admin/dolistore/class/dolistore.class.php index 4951f57c22f..e65eb2bbb0a 100644 --- a/htdocs/admin/dolistore/class/dolistore.class.php +++ b/htdocs/admin/dolistore/class/dolistore.class.php @@ -226,7 +226,6 @@ class Dolistore $html .= self::get_categories($cat->id); $html .= "\n"; } else { - } } diff --git a/htdocs/admin/expedition.php b/htdocs/admin/expedition.php index e8dbfab9942..29ef6d40a1e 100644 --- a/htdocs/admin/expedition.php +++ b/htdocs/admin/expedition.php @@ -366,7 +366,6 @@ foreach ($dirmodels as $reldir) { if (preg_match('/\.modules\.php$/i', $file) && preg_match('/^(pdf_|doc_)/', $file)) { - if (file_exists($dir.'/'.$file)) { $name = substr($file, 4, dol_strlen($file) -16); diff --git a/htdocs/admin/expensereport.php b/htdocs/admin/expensereport.php index 8dde3449b6e..8a5cef82ceb 100644 --- a/htdocs/admin/expensereport.php +++ b/htdocs/admin/expensereport.php @@ -247,7 +247,6 @@ foreach ($dirmodels as $reldir) if ($module->isEnabled()) { - print ''; @@ -367,10 +366,8 @@ foreach ($dirmodels as $reldir) { if (preg_match('/\.modules\.php$/i', $file) && preg_match('/^(pdf_|doc_)/', $file)) { - if (file_exists($dir.'/'.$file)) { - $name = substr($file, 4, dol_strlen($file) -16); $classname = substr($file, 0, dol_strlen($file) -12); diff --git a/htdocs/admin/external_rss.php b/htdocs/admin/external_rss.php index d16f3e493f5..e3adeaca890 100644 --- a/htdocs/admin/external_rss.php +++ b/htdocs/admin/external_rss.php @@ -300,7 +300,6 @@ if ($resql) // Logo if ($result > 0 && empty($rss->error)) { - print ''; print ""; print ''; @@ -303,7 +302,6 @@ print '
    '; if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { - /* * Documents models for Holidays */ @@ -369,7 +367,6 @@ foreach ($dirmodels as $reldir) { if (preg_match('/\.modules\.php$/i', $file) && preg_match('/^(pdf_|doc_)/', $file)) { - if (file_exists($dir.'/'.$file)) { $name = substr($file, 4, dol_strlen($file) -16); diff --git a/htdocs/admin/limits.php b/htdocs/admin/limits.php index ea19b7034a6..27f99ecb4f1 100644 --- a/htdocs/admin/limits.php +++ b/htdocs/admin/limits.php @@ -172,7 +172,6 @@ if (empty($mysoc->country_code)) } else { - // Show examples print ''.$langs->trans("ExamplesWithCurrentSetup").":
    \n"; diff --git a/htdocs/admin/livraison.php b/htdocs/admin/livraison.php index 1f8a74f6eb8..99cd481095b 100644 --- a/htdocs/admin/livraison.php +++ b/htdocs/admin/livraison.php @@ -356,8 +356,6 @@ foreach ($dirmodels as $reldir) { if (file_exists($dir.'/'.$file)) { - - $name = substr($file, 4, dol_strlen($file) -16); $classname = substr($file, 0, dol_strlen($file) -12); diff --git a/htdocs/admin/mails.php b/htdocs/admin/mails.php index ff2b788a026..79d152fb7bf 100644 --- a/htdocs/admin/mails.php +++ b/htdocs/admin/mails.php @@ -364,7 +364,6 @@ if ($action == 'edit') // ID if (! empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE) && in_array($conf->global->MAIN_MAIL_SENDMODE, array('smtps', 'swiftmailer')))) { - $mainstmpid=(! empty($conf->global->MAIN_MAIL_SMTPS_ID)?$conf->global->MAIN_MAIL_SMTPS_ID:''); print ''; print ''; print ''; diff --git a/htdocs/admin/propal.php b/htdocs/admin/propal.php index 4c8f4188e4b..db9efb0e5c7 100644 --- a/htdocs/admin/propal.php +++ b/htdocs/admin/propal.php @@ -294,7 +294,6 @@ foreach ($dirmodels as $reldir) if ($module->isEnabled()) { - print ''; @@ -596,7 +595,6 @@ if (empty($conf->facture->enabled)) $i = 0; while ($i < $num) { - $row = $db->fetch_row($resql); print '
    '.$langs->trans("SubTotal").':'.price($sous_total_debit).''.price($sous_total_credit).'
    '; if ($row[0] == 'tobind') { @@ -271,7 +269,6 @@ if ($resql) { $num = $db->num_rows($resql); while ( $row = $db->fetch_row($resql)) { - print '
    '; if ($row[0] == 'tobind') { @@ -398,7 +395,6 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. $num = $db->num_rows($resql); while ($row = $db->fetch_row($resql)) { - print '
    ' . $row[0] . '' . price(price2num($row[$i])) . '
    '; if ($row[0] == 'tobind') { @@ -259,7 +257,6 @@ if ($resql) { $num = $db->num_rows($resql); while ( $row = $db->fetch_row($resql)) { - print '
    '; if ($row[0] == 'tobind') { diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index 2dd4f845c39..6e709835f42 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -167,7 +167,6 @@ $journal_label = $accountingjournalstatic->label; dol_syslog("accountancy/journal/bankjournal.php", LOG_DEBUG); $result = $db->query($sql); if ($result) { - $num = $db->num_rows($result); //print $sql; @@ -268,10 +267,8 @@ if ($result) { // get_url may return -1 which is not traversable if (is_array($links) && count($links) > 0) { - // Now loop on each link of record in bank. foreach ($links as $key => $val) { - if (in_array($links[$key]['type'], array('sc', 'payment_sc', 'payment', 'payment_supplier', 'payment_vat', 'payment_expensereport', 'banktransfert', 'payment_donation', 'member', 'payment_loan', 'payment_salary', 'payment_various'))) { // So we excluded 'company' and 'user' here. We want only payment lines diff --git a/htdocs/accountancy/journal/expensereportsjournal.php b/htdocs/accountancy/journal/expensereportsjournal.php index 23d97360563..6cefc893b39 100644 --- a/htdocs/accountancy/journal/expensereportsjournal.php +++ b/htdocs/accountancy/journal/expensereportsjournal.php @@ -115,7 +115,6 @@ $sql .= " ORDER BY er.date_debut"; dol_syslog('accountancy/journal/expensereportsjournal.php', LOG_DEBUG); $result = $db->query($sql); if ($result) { - $taber = array (); $tabht = array (); $tabtva = array (); @@ -485,7 +484,6 @@ if ($action == 'exportcsv') { // ISO and not UTF8 ! } if (empty($action) || $action == 'view') { - llxHeader('', $langs->trans("ExpenseReportsJournal")); $nom = $langs->trans("ExpenseReportsJournal") . ' | ' . $accountingjournalstatic->getNomUrl(0, 1, 1, '', 1); diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php index c83c004c6b2..ddf456c85f0 100644 --- a/htdocs/accountancy/journal/purchasesjournal.php +++ b/htdocs/accountancy/journal/purchasesjournal.php @@ -242,7 +242,6 @@ if ($action == 'writebookkeeping') { $invoicestatic = new FactureFournisseur($db); foreach ($tabfac as $key => $val) { // Loop on each invoice - $errorforline = 0; $totalcredit = 0; @@ -716,7 +715,6 @@ if ($action == 'exportcsv') { // ISO and not UTF8 ! } if (empty($action) || $action == 'view') { - llxHeader('', $langs->trans("PurchasesJournal")); $nom = $langs->trans("PurchasesJournal") . ' | ' . $accountingjournalstatic->getNomUrl(0, 1, 1, '', 1); diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php index 17b2657b5dc..ed56065df0a 100644 --- a/htdocs/accountancy/journal/sellsjournal.php +++ b/htdocs/accountancy/journal/sellsjournal.php @@ -255,7 +255,6 @@ if ($action == 'writebookkeeping') { $invoicestatic = new Facture($db); foreach ($tabfac as $key => $val) { // Loop on each invoice - $errorforline = 0; $totalcredit = 0; @@ -654,7 +653,6 @@ if ($action == 'exportcsv') { // ISO and not UTF8 ! if (empty($action) || $action == 'view') { - llxHeader('', $langs->trans("SellsJournal")); $nom = $langs->trans("SellsJournal") . ' | ' . $accountingjournalstatic->getNomUrl(0, 1, 1, '', 1); diff --git a/htdocs/accountancy/supplier/index.php b/htdocs/accountancy/supplier/index.php index 88a599d1fc5..faa48ac9176 100644 --- a/htdocs/accountancy/supplier/index.php +++ b/htdocs/accountancy/supplier/index.php @@ -95,7 +95,6 @@ if ($action == 'clean' || $action == 'validatehistory') } if ($action == 'validatehistory') { - $error = 0; $db->begin(); @@ -187,7 +186,6 @@ if ($resql) { $num = $db->num_rows($resql); while ( $row = $db->fetch_row($resql)) { - print '
    '; if ($row[0] == 'tobind') { @@ -258,7 +256,6 @@ if ($resql) { $num = $db->num_rows($resql); while ( $row = $db->fetch_row($resql)) { - print '
    '; if ($row[0] == 'tobind') { diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php index 2bcbc21c3a0..e9bd50de0ff 100644 --- a/htdocs/adherents/class/adherent.class.php +++ b/htdocs/adherents/class/adherent.class.php @@ -2370,7 +2370,6 @@ class Adherent extends CommonObject $langs->load("orders"); if (! dol_strlen($modele)) { - $modele = 'standard'; if ($this->modelpdf) { diff --git a/htdocs/adherents/class/adherent_type.class.php b/htdocs/adherents/class/adherent_type.class.php index a57a90a3aac..94df4b10ba0 100644 --- a/htdocs/adherents/class/adherent_type.class.php +++ b/htdocs/adherents/class/adherent_type.class.php @@ -383,7 +383,6 @@ class AdherentType extends CommonObject $result = $this->db->query($sql); if ($result) { - $this->description = $this->db->escape($this->note); // Multilangs diff --git a/htdocs/adherents/document.php b/htdocs/adherents/document.php index 092827ef731..a6343596632 100644 --- a/htdocs/adherents/document.php +++ b/htdocs/adherents/document.php @@ -90,7 +90,6 @@ if ($id > 0) $result=$membert->fetch($object->typeid); if ($result > 0) { - // Build file list $filearray=dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview.*\.png)$', $sortfield, (strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC), 1); $totalsize=0; diff --git a/htdocs/adherents/tpl/linkedobjectblock.tpl.php b/htdocs/adherents/tpl/linkedobjectblock.tpl.php index 4334a54605b..8e2ec3ba730 100644 --- a/htdocs/adherents/tpl/linkedobjectblock.tpl.php +++ b/htdocs/adherents/tpl/linkedobjectblock.tpl.php @@ -39,7 +39,6 @@ $langs->load("members"); $total=0; foreach($linkedObjectBlock as $key => $objectlink) { - ?>
    trans("Subscription"); ?>'."\n"; if ($conf->global->ACTION_EVENT_ADDON_PDF != "$name") { @@ -363,7 +362,6 @@ print '
    '.$langs->trans("AGENDA_USE_EVENT_TYPE_DEFAULT").'
    ' . $bankorder[$i][0] . "\n"; print $bankorder[$i][1]; @@ -341,7 +340,6 @@ foreach ($dirmodels as $reldir) { foreach ($filelist as $file) { if (preg_match('/\.modules\.php$/i', $file) && preg_match('/^(pdf_|doc_)/', $file)) { - if (file_exists($dir . '/' . $file)) { $name = substr($file, 4, dol_strlen($file) - 16); $classname = substr($file, 0, dol_strlen($file) - 12); diff --git a/htdocs/admin/barcode.php b/htdocs/admin/barcode.php index 0475cdfccf1..b6c9a5dec9a 100644 --- a/htdocs/admin/barcode.php +++ b/htdocs/admin/barcode.php @@ -319,7 +319,6 @@ print '
    '.$langs->trans("GenbarcodeLocation").''; @@ -335,7 +334,6 @@ if (! isset($_SERVER['WINDIR'])) // Module products if (! empty($conf->product->enabled)) { - print '
    '.$langs->trans("SetDefaultBarcodeTypeProducts").''; @@ -346,7 +344,6 @@ if (! empty($conf->product->enabled)) // Module thirdparty if (! empty($conf->societe->enabled)) { - print '
    '.$langs->trans("SetDefaultBarcodeTypeThirdParties").''; diff --git a/htdocs/admin/bom.php b/htdocs/admin/bom.php index e5e12d41808..5bf01de1053 100644 --- a/htdocs/admin/bom.php +++ b/htdocs/admin/bom.php @@ -255,7 +255,6 @@ foreach ($dirmodels as $reldir) if ($module->isEnabled()) { - print '
    '.$module->name."\n"; print $module->info(); print '
    '.$langs->trans("EnableFileCache").''; print $form->selectyesno('MAIN_ACTIVATE_FILECACHE', $conf->global->MAIN_ACTIVATE_FILECACHE, 1); print '
    '.$module->name."\n"; print $module->info(); print '
    '; print '
    '; if (! empty($mysoc->country_code)) { @@ -571,7 +569,6 @@ if ($langs->transcountry("ProfId1", $mysoc->country_code) != '-') // ProfId2 if ($langs->transcountry("ProfId2", $mysoc->country_code) != '-') { - print '
    '; if (! empty($mysoc->country_code)) { @@ -587,7 +584,6 @@ if ($langs->transcountry("ProfId2", $mysoc->country_code) != '-') // ProfId3 if ($langs->transcountry("ProfId3", $mysoc->country_code) != '-') { - print '
    '; if (! empty($mysoc->country_code)) { @@ -603,7 +599,6 @@ if ($langs->transcountry("ProfId3", $mysoc->country_code) != '-') // ProfId4 if ($langs->transcountry("ProfId4", $mysoc->country_code) != '-') { - print '
    '; if (! empty($mysoc->country_code)) { @@ -619,7 +614,6 @@ if ($langs->transcountry("ProfId4", $mysoc->country_code) != '-') // ProfId5 if ($langs->transcountry("ProfId5", $mysoc->country_code) != '-') { - print '
    '; if (! empty($mysoc->country_code)) { @@ -635,7 +629,6 @@ if ($langs->transcountry("ProfId5", $mysoc->country_code) != '-') // ProfId6 if ($langs->transcountry("ProfId6", $mysoc->country_code) != '-') { - print '
    '; if (! empty($mysoc->country_code)) { diff --git a/htdocs/admin/compta.php b/htdocs/admin/compta.php index bb2bfdde409..0955d7c6d17 100644 --- a/htdocs/admin/compta.php +++ b/htdocs/admin/compta.php @@ -68,7 +68,6 @@ if ($action == 'update') if (in_array($accounting_mode, $accounting_modes)) { - if (!dolibarr_set_const($db, 'ACCOUNTING_MODE', $accounting_mode, 'chaine', 0, '', $conf->entity)) { $error++; } diff --git a/htdocs/admin/const.php b/htdocs/admin/const.php index 53555a35586..37559c3d4ab 100644 --- a/htdocs/admin/const.php +++ b/htdocs/admin/const.php @@ -118,7 +118,6 @@ if (! empty($consts) && $action == 'update') // Mass delete if (! empty($consts) && $action == 'delete') { - $nbdeleted=0; foreach($consts as $const) { diff --git a/htdocs/admin/contract.php b/htdocs/admin/contract.php index e6c8c15c0d4..0aa97dd36e6 100644 --- a/htdocs/admin/contract.php +++ b/htdocs/admin/contract.php @@ -219,7 +219,6 @@ foreach ($dirmodels as $reldir) $handle = opendir($dir); if (is_resource($handle)) { - while (($file = readdir($handle))!==false) { if (substr($file, 0, 13) == 'mod_contract_' && substr($file, dol_strlen($file)-3, 3) == 'php') @@ -236,7 +235,6 @@ foreach ($dirmodels as $reldir) if ($module->isEnabled()) { - print '
    '.$module->nom."\n"; print $module->info(); print '
       
    '.$module->nom."\n"; print $module->info(); print '
    ".$langs->trans("Logo")."'; diff --git a/htdocs/admin/facture.php b/htdocs/admin/facture.php index 759038930ef..dccfcdfdda1 100644 --- a/htdocs/admin/facture.php +++ b/htdocs/admin/facture.php @@ -720,7 +720,6 @@ if ($resql) $i = 0; while ($i < $num) { - $row = $db->fetch_row($resql); print '
    '.$module->nom."\n"; print $module->info(); print '
    '.$langs->trans("MAIN_MAIL_SMTPS_ID").''; // SuperAdministrator access only @@ -384,7 +383,6 @@ if ($action == 'edit') // PW if (! empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE) && in_array($conf->global->MAIN_MAIL_SENDMODE, array('smtps', 'swiftmailer')))) { - $mainsmtppw=(! empty($conf->global->MAIN_MAIL_SMTPS_PW)?$conf->global->MAIN_MAIL_SMTPS_PW:''); print '
    '.$langs->trans("MAIN_MAIL_SMTPS_PW").''; // SuperAdministrator access only diff --git a/htdocs/admin/mails_emailing.php b/htdocs/admin/mails_emailing.php index 3d6cfc2d228..94f3820c5b9 100644 --- a/htdocs/admin/mails_emailing.php +++ b/htdocs/admin/mails_emailing.php @@ -316,7 +316,6 @@ if ($action == 'edit') // ID if (! empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE_EMAILING) && in_array($conf->global->MAIN_MAIL_SENDMODE_EMAILING, array('smtps', 'swiftmailer')))) { - $mainstmpid=(! empty($conf->global->MAIN_MAIL_SMTPS_ID_EMAILING)?$conf->global->MAIN_MAIL_SMTPS_ID_EMAILING:''); print '
    '.$langs->trans("MAIN_MAIL_SMTPS_ID").''; // SuperAdministrator access only diff --git a/htdocs/admin/menus/edit.php b/htdocs/admin/menus/edit.php index 43888d3e061..5a54a9e5c9f 100644 --- a/htdocs/admin/menus/edit.php +++ b/htdocs/admin/menus/edit.php @@ -323,7 +323,6 @@ if ($action == 'create') $res = $db->query($sql); if ($res) { - while ($menu = $db->fetch_array($res)) { $parent_rowid = $menu['rowid']; diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php index f26e657679a..687c3750c89 100644 --- a/htdocs/admin/modules.php +++ b/htdocs/admin/modules.php @@ -729,7 +729,6 @@ if ($mode == 'common') print ''; } else { - print ''; print img_picto($langs->trans("Activated"), 'switch_on'); print ''; diff --git a/htdocs/admin/notification.php b/htdocs/admin/notification.php index cc1d53d14f8..6d1a5c57cf6 100644 --- a/htdocs/admin/notification.php +++ b/htdocs/admin/notification.php @@ -164,7 +164,6 @@ print ''; $i=0; foreach($listofnotifiedevents as $notifiedevent) { - $label=$langs->trans("Notify_".$notifiedevent['code']); //!=$langs->trans("Notify_".$notifiedevent['code'])?$langs->trans("Notify_".$notifiedevent['code']):$notifiedevent['label']; $elementLabel = $langs->trans(ucfirst($notifiedevent['elementtype'])); @@ -209,7 +208,6 @@ $listofnotifiedevents=$notificationtrigger->getListOfManagedEvents(); foreach($listofnotifiedevents as $notifiedevent) { - $label=$langs->trans("Notify_".$notifiedevent['code']); //!=$langs->trans("Notify_".$notifiedevent['code'])?$langs->trans("Notify_".$notifiedevent['code']):$notifiedevent['label']; $elementLabel = $langs->trans(ucfirst($notifiedevent['elementtype'])); diff --git a/htdocs/admin/oauthlogintokens.php b/htdocs/admin/oauthlogintokens.php index 20c0ae222eb..bb3c83c2ee2 100644 --- a/htdocs/admin/oauthlogintokens.php +++ b/htdocs/admin/oauthlogintokens.php @@ -122,7 +122,6 @@ dol_fiche_head($head, 'tokengeneration', '', -1, 'technic'); if ($mode == 'setup' && $user->admin) { - print $langs->trans("OAuthSetupForLogin")."

    \n"; foreach($list as $key) @@ -381,7 +380,6 @@ if ($mode == 'userconf' && $user->admin) $sql = 'SELECT p.rowid, p.printer_name, p.printer_location, p.printer_id, p.copy, p.module, p.driver, p.userid, u.login FROM '.MAIN_DB_PREFIX.'printing as p, '.MAIN_DB_PREFIX.'user as u WHERE p.userid=u.rowid'; $resql = $db->query($sql); while ($row=$db->fetch_array($resql)) { - print '
    '.$row['login'].''.$row['module'].'
    '.$module->nom."\n"; print $module->info(); print '
    '; diff --git a/htdocs/admin/sms.php b/htdocs/admin/sms.php index 73cad8f69ad..833d6c25d22 100644 --- a/htdocs/admin/sms.php +++ b/htdocs/admin/sms.php @@ -207,7 +207,6 @@ if ($action == 'edit') } else { - if (! count($listofmethods)) print '
    '.$langs->trans("NoSmsEngine", 'DoliStore').'
    '; print '
    '; diff --git a/htdocs/admin/supplier_invoice.php b/htdocs/admin/supplier_invoice.php index 27a126c7ef6..9cb387aedc9 100644 --- a/htdocs/admin/supplier_invoice.php +++ b/htdocs/admin/supplier_invoice.php @@ -237,7 +237,6 @@ foreach ($dirmodels as $reldir) $handle = opendir($dir); if (is_resource($handle)) { - while (($file = readdir($handle))!==false) { if (substr($file, 0, 24) == 'mod_facture_fournisseur_' && substr($file, dol_strlen($file)-3, 3) == 'php') @@ -365,7 +364,6 @@ foreach ($dirmodels as $reldir) if (is_dir($dir)) { - $handle=opendir($dir); diff --git a/htdocs/admin/supplier_order.php b/htdocs/admin/supplier_order.php index ac7d5e98539..6369efb1361 100644 --- a/htdocs/admin/supplier_order.php +++ b/htdocs/admin/supplier_order.php @@ -267,7 +267,6 @@ foreach ($dirmodels as $reldir) $handle = opendir($dir); if (is_resource($handle)) { - while (($file = readdir($handle))!==false) { if (substr($file, 0, 25) == 'mod_commande_fournisseur_' && substr($file, dol_strlen($file)-3, 3) == 'php') diff --git a/htdocs/admin/supplier_payment.php b/htdocs/admin/supplier_payment.php index 65bb18fcc5f..8da430a9fa1 100644 --- a/htdocs/admin/supplier_payment.php +++ b/htdocs/admin/supplier_payment.php @@ -213,7 +213,6 @@ foreach ($dirmodels as $reldir) $handle = opendir($dir); if (is_resource($handle)) { - while (($file = readdir($handle))!==false) { if (! is_dir($dir.$file) || (substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS')) @@ -337,7 +336,6 @@ foreach ($dirmodels as $reldir) if (is_dir($dir)) { - $handle=opendir($dir); diff --git a/htdocs/admin/supplier_proposal.php b/htdocs/admin/supplier_proposal.php index 55fb4329d39..bd2cb10a3ad 100644 --- a/htdocs/admin/supplier_proposal.php +++ b/htdocs/admin/supplier_proposal.php @@ -246,7 +246,6 @@ foreach ($dirmodels as $reldir) $handle = opendir($dir); if (is_resource($handle)) { - while (($file = readdir($handle))!==false) { if (substr($file, 0, 22) == 'mod_supplier_proposal_' && substr($file, dol_strlen($file)-3, 3) == 'php') @@ -263,7 +262,6 @@ foreach ($dirmodels as $reldir) if ($module->isEnabled()) { - print ''; @@ -537,7 +535,6 @@ print ''; if ($conf->banque->enabled) { - print ''; } diff --git a/htdocs/admin/syslog.php b/htdocs/admin/syslog.php index 92823045a62..bd93d7a9fc5 100644 --- a/htdocs/admin/syslog.php +++ b/htdocs/admin/syslog.php @@ -50,7 +50,6 @@ foreach ($dirsyslogs as $reldir) { $handle = opendir($newdir); if (is_resource($handle)) { - while (($file = readdir($handle)) !== false) { if (substr($file, 0, 11) == 'mod_syslog_' && substr($file, dol_strlen($file) - 3, 3) == 'php') { $file = substr($file, 0, dol_strlen($file) - 4); diff --git a/htdocs/admin/system/database-tables.php b/htdocs/admin/system/database-tables.php index 195b5c83143..01836dd4a72 100644 --- a/htdocs/admin/system/database-tables.php +++ b/htdocs/admin/system/database-tables.php @@ -202,7 +202,6 @@ else if ($resql) { while ($row = $db->fetch_row($resql)) { - $rescount = $db->query("SELECT COUNT(*) FROM " . $row[0]); if ($rescount) { $row_count = $db->fetch_row($rescount); diff --git a/htdocs/admin/ticket.php b/htdocs/admin/ticket.php index d97252dc53b..8bb39f0056b 100644 --- a/htdocs/admin/ticket.php +++ b/htdocs/admin/ticket.php @@ -214,7 +214,6 @@ foreach ($dirmodels as $reldir) { if (is_dir($dir)) { $handle = opendir($dir); if (is_resource($handle)) { - while (($file = readdir($handle)) !== false) { if (preg_match('/^(mod_.*)\.php$/i', $file, $reg)) { $file = $reg[1]; diff --git a/htdocs/admin/translation.php b/htdocs/admin/translation.php index ba2dde77bec..4d234e266e8 100644 --- a/htdocs/admin/translation.php +++ b/htdocs/admin/translation.php @@ -108,7 +108,6 @@ if ($action == 'update') } else { - $db->rollback(); if ($db->lasterrno() == 'DB_ERROR_RECORD_ALREADY_EXISTS') { @@ -158,7 +157,6 @@ if ($action == 'add') } else { - $db->rollback(); if ($db->lasterrno() == 'DB_ERROR_RECORD_ALREADY_EXISTS') { diff --git a/htdocs/admin/user.php b/htdocs/admin/user.php index 2ead8e03210..ba6c3660bcd 100644 --- a/htdocs/admin/user.php +++ b/htdocs/admin/user.php @@ -239,7 +239,6 @@ foreach ($dirmodels as $reldir) { if (preg_match('/\.modules\.php$/i', $file) && preg_match('/^(pdf_|doc_)/', $file)) { - if (file_exists($dir.'/'.$file)) { $name = substr($file, 4, dol_strlen($file) -16); diff --git a/htdocs/admin/usergroup.php b/htdocs/admin/usergroup.php index c0c4e3c57d8..190391b462b 100644 --- a/htdocs/admin/usergroup.php +++ b/htdocs/admin/usergroup.php @@ -186,7 +186,6 @@ foreach ($dirmodels as $reldir) { if (preg_match('/\.modules\.php$/i', $file) && preg_match('/^(pdf_|doc_)/', $file)) { - if (file_exists($dir.'/'.$file)) { $name = substr($file, 4, dol_strlen($file) -16); diff --git a/htdocs/admin/website.php b/htdocs/admin/website.php index 1c7fe75f0de..0343fecf69d 100644 --- a/htdocs/admin/website.php +++ b/htdocs/admin/website.php @@ -572,7 +572,6 @@ if ($id) // Lines with values while ($i < $num) { - $obj = $db->fetch_object($resql); //print_r($obj); print ''; diff --git a/htdocs/asset/type.php b/htdocs/asset/type.php index 6803f9d65e7..459bd2d8edc 100644 --- a/htdocs/asset/type.php +++ b/htdocs/asset/type.php @@ -83,7 +83,6 @@ $hookmanager->initHooks(array('assettypecard','globalcard')); */ if ($cancel) { - $action=''; if (! empty($backtopage)) diff --git a/htdocs/barcode/printsheet.php b/htdocs/barcode/printsheet.php index a0bb66f2b81..1ed7c449868 100644 --- a/htdocs/barcode/printsheet.php +++ b/htdocs/barcode/printsheet.php @@ -197,7 +197,6 @@ if ($action == 'builddoc') // For labels if ($mode == 'label') { - $txtforsticker="%PHOTO%"; // Photo will be barcode image, %BARCODE% posible when using TCPDF generator $textleft=make_substitutions((empty($conf->global->BARCODE_LABEL_LEFT_TEXT)?$txtforsticker:$conf->global->BARCODE_LABEL_LEFT_TEXT), $substitutionarray); $textheader=make_substitutions((empty($conf->global->BARCODE_LABEL_HEADER_TEXT)?'':$conf->global->BARCODE_LABEL_HEADER_TEXT), $substitutionarray); diff --git a/htdocs/blockedlog/admin/blockedlog_list.php b/htdocs/blockedlog/admin/blockedlog_list.php index b44f27f7fe8..1f0c82e780b 100644 --- a/htdocs/blockedlog/admin/blockedlog_list.php +++ b/htdocs/blockedlog/admin/blockedlog_list.php @@ -92,7 +92,6 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' } if ($action === 'downloadblockchain') { - $auth = new BlockedLogAuthority($db); $bc = $auth->getLocalBlockChain(); diff --git a/htdocs/blockedlog/ajax/authority.php b/htdocs/blockedlog/ajax/authority.php index bcbb4a66f91..45479c1e4db 100644 --- a/htdocs/blockedlog/ajax/authority.php +++ b/htdocs/blockedlog/ajax/authority.php @@ -51,7 +51,6 @@ if($auth->fetch(0, $signature)<=0) { if(!empty($hash)) { - echo $auth->checkBlockchain($hash) ? 'hashisok' : 'hashisjunk'; } elseif(!empty($newblock)){ @@ -62,7 +61,6 @@ elseif(!empty($newblock)){ echo 'blockadded'; } else{ - echo 'blockalreadyadded'; } } diff --git a/htdocs/blockedlog/class/authority.class.php b/htdocs/blockedlog/class/authority.class.php index 7325f9ae50c..cec6410b7b6 100644 --- a/htdocs/blockedlog/class/authority.class.php +++ b/htdocs/blockedlog/class/authority.class.php @@ -310,17 +310,14 @@ class BlockedLogAuthority $signature=$block_static->getSignature(); foreach($blocks as &$block) { - $url = $conf->global->BLOCKEDLOG_AUTHORITY_URL.'/blockedlog/ajax/authority.php?s='.$signature.'&b='.$block->signature; $res = file_get_contents($url); echo $block->signature.' '.$url. ' '.$res.'
    '; if($res === 'blockalreadyadded' || $res === 'blockadded') { - $block->setCertified(); } else { - $this->error = $langs->trans('ImpossibleToContactAuthority ', $url); return -1; } diff --git a/htdocs/blockedlog/class/blockedlog.class.php b/htdocs/blockedlog/class/blockedlog.class.php index 14366f46de7..24548f736f2 100644 --- a/htdocs/blockedlog/class/blockedlog.class.php +++ b/htdocs/blockedlog/class/blockedlog.class.php @@ -977,7 +977,6 @@ class BlockedLog if (empty($cachedlogs)) $cachedlogs=array(); if ($element=='all') { - $sql="SELECT rowid FROM ".MAIN_DB_PREFIX."blockedlog WHERE entity=".$conf->entity; } @@ -1006,7 +1005,6 @@ class BlockedLog $res = $this->db->query($sql); if($res) { - $results=array(); $i = 0; @@ -1046,7 +1044,6 @@ class BlockedLog global $db,$conf,$mysoc; if (empty($conf->global->BLOCKEDLOG_ENTITY_FINGERPRINT)) { // creation of a unique fingerprint - require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; diff --git a/htdocs/bom/class/bom.class.php b/htdocs/bom/class/bom.class.php index 9b2646b3e9d..84560d5a533 100644 --- a/htdocs/bom/class/bom.class.php +++ b/htdocs/bom/class/bom.class.php @@ -943,7 +943,6 @@ class BOM extends CommonObject $langs->load("mrp"); if (! dol_strlen($modele)) { - $modele = 'standard'; if ($this->modelpdf) { diff --git a/htdocs/bookmarks/bookmarks.lib.php b/htdocs/bookmarks/bookmarks.lib.php index 1e54cc816fd..8128815ef3b 100644 --- a/htdocs/bookmarks/bookmarks.lib.php +++ b/htdocs/bookmarks/bookmarks.lib.php @@ -38,7 +38,6 @@ function printBookmarksList($aDb, $aLangs) $ret = ''."\n"; if (! empty($conf->use_javascript_ajax)) { // Bookmark autosubmit can't work when javascript is off. - require_once DOL_DOCUMENT_ROOT.'/bookmarks/class/bookmark.class.php'; if (! isset($conf->global->BOOKMARKS_SHOW_IN_MENU)) $conf->global->BOOKMARKS_SHOW_IN_MENU=5; diff --git a/htdocs/bookmarks/card.php b/htdocs/bookmarks/card.php index 0ba6d7569b5..7feb0aac37a 100644 --- a/htdocs/bookmarks/card.php +++ b/htdocs/bookmarks/card.php @@ -54,7 +54,6 @@ $object=new Bookmark($db); if ($action == 'add' || $action == 'addproduct' || $action == 'update') { - if ($action == 'update') { $invertedaction = 'edit'; } else { diff --git a/htdocs/cashdesk/admin/cashdesk.php b/htdocs/cashdesk/admin/cashdesk.php index 22b8fea0a05..f9c438149e7 100644 --- a/htdocs/cashdesk/admin/cashdesk.php +++ b/htdocs/cashdesk/admin/cashdesk.php @@ -125,7 +125,6 @@ print $form->select_company($conf->global->CASHDESK_ID_THIRDPARTY, 'socid', '(s. print ''; if (! empty($conf->banque->enabled)) { - print ''; print ''; // Force warehouse (this is not a default value) print ''); } else { - echo (''); } ?> @@ -87,16 +85,13 @@ $langs->loadLangs(array("main","bills","banks")); getsetPaymentMode() == 'DIF' ) { - echo (''); } else { - echo (''); } // Affichage du montant rendu (reglement en especes) if ( $obj_facturation->montantRendu() ) { - echo (''); } diff --git a/htdocs/categories/class/categorie.class.php b/htdocs/categories/class/categorie.class.php index 48bb4179afc..cd3885b77b1 100644 --- a/htdocs/categories/class/categorie.class.php +++ b/htdocs/categories/class/categorie.class.php @@ -1637,7 +1637,6 @@ class Categorie extends CommonObject { $nbfile = count($file['name']); for ($i = 0; $i <= $nbfile; $i ++) { - $originImage = $dir . $file['name'][$i]; // Cree fichier en taille origine diff --git a/htdocs/categories/photos.php b/htdocs/categories/photos.php index 70cf6e3e8f7..6def65666a0 100644 --- a/htdocs/categories/photos.php +++ b/htdocs/categories/photos.php @@ -69,7 +69,6 @@ if ($id > 0) if (isset($_FILES['userfile']) && $_FILES['userfile']['size'] > 0 && $_POST["sendit"] && ! empty($conf->global->MAIN_UPLOAD_DOC)) { if ($object->id) { - $file = $_FILES['userfile']; if (is_array($file['name']) && count($file['name']) > 0) { diff --git a/htdocs/categories/viewcat.php b/htdocs/categories/viewcat.php index 737b488c090..fb246b5358b 100644 --- a/htdocs/categories/viewcat.php +++ b/htdocs/categories/viewcat.php @@ -125,7 +125,6 @@ if ($id > 0 && $removeelem > 0) $elementtype = 'member'; } elseif ($type == Categorie::TYPE_CONTACT && $user->rights->societe->creer) { - require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; $tmpobject = new Contact($db); $result = $tmpobject->fetch($removeelem); @@ -644,7 +643,6 @@ if ($type == Categorie::TYPE_CONTACT) } else { - print ''; print ''; print ''; diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php index cc3accde763..6e8c5535f03 100644 --- a/htdocs/comm/action/card.php +++ b/htdocs/comm/action/card.php @@ -278,7 +278,6 @@ if (empty($reshook) && $action == 'add') $taskid = GETPOST('taskid', 'int'); if(!empty($taskid)){ - $taskProject = new Task($db); if($taskProject->fetch($taskid)>0){ $object->fk_project = $taskProject->fk_project; diff --git a/htdocs/comm/action/peruser.php b/htdocs/comm/action/peruser.php index e6ee5e9d1d0..fc343f443a2 100644 --- a/htdocs/comm/action/peruser.php +++ b/htdocs/comm/action/peruser.php @@ -631,7 +631,6 @@ $currentdaytoshow = $firstdaytoshow; echo '
    '; while($currentdaytoshow<$lastdaytoshow) { - echo '
    '.$module->nom."\n"; print $module->info(); print '
    '; print $langs->trans("BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL").' '; if (! empty($conf->use_javascript_ajax)) @@ -559,7 +556,6 @@ if ($conf->banque->enabled) } else { - print '
    '; print $langs->trans("BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL").' '.$langs->trans('NotAvailable').'
    '.$langs->trans("CashDeskBankAccountForSell").''; $form->select_comptes($conf->global->CASHDESK_ID_BANKACCOUNT_CASH, 'CASHDESK_ID_BANKACCOUNT_CASH', 0, "courant=2", 1); @@ -146,7 +145,6 @@ if (! empty($conf->banque->enabled)) if (! empty($conf->stock->enabled)) { - print '
    '.$langs->trans("CashDeskDoNotDecreaseStock").''; if (empty($conf->productbatch->enabled)) { diff --git a/htdocs/cashdesk/class/Facturation.class.php b/htdocs/cashdesk/class/Facturation.class.php index 40b338ccca6..2f8a993829e 100644 --- a/htdocs/cashdesk/class/Facturation.class.php +++ b/htdocs/cashdesk/class/Facturation.class.php @@ -296,12 +296,10 @@ class Facturation } elseif ( $aId == 'RESET' ) { - $this->id = null; } else { - $this->id = $aId; } } @@ -343,7 +341,6 @@ class Facturation } elseif ( $aQte == 'RESET' ) { - $this->qte = null; } else @@ -408,13 +405,10 @@ class Facturation { if (is_null($aMontantRemise)) { - return $this->montant_remise; } elseif ( $aMontantRemise == 'RESET' ) { - $this->montant_remise = null; } else { - $this->montant_remise = $aMontantRemise; } } @@ -429,13 +423,10 @@ class Facturation { if (is_null($aPrix)) { - return $this->prix; } elseif ( $aPrix == 'RESET' ) { - $this->prix = null; } else { - $this->prix = $aPrix; } } @@ -449,13 +440,10 @@ class Facturation public function tva($aTva = null) { if (is_null($aTva)) { - return $this->tva; } elseif ( $aTva == 'RESET' ) { - $this->tva = null; } else { - $this->tva = $aTva; } } @@ -469,13 +457,10 @@ class Facturation public function numInvoice($aNumFacture = null) { if (is_null($aNumFacture)) { - return $this->num_facture; } elseif ( $aNumFacture == 'RESET' ) { - $this->num_facture = null; } else { - $this->num_facture = $aNumFacture; } } @@ -490,13 +475,10 @@ class Facturation { if (is_null($aModeReglement)) { - return $this->mode_reglement; } elseif ( $aModeReglement == 'RESET' ) { - $this->mode_reglement = null; } else { - $this->mode_reglement = $aModeReglement; } } @@ -511,13 +493,10 @@ class Facturation { if (is_null($aMontantEncaisse)) { - return $this->montant_encaisse; } elseif ( $aMontantEncaisse == 'RESET' ) { - $this->montant_encaisse = null; } else { - $this->montant_encaisse = $aMontantEncaisse; } } @@ -532,13 +511,10 @@ class Facturation { if (is_null($aMontantRendu)) { - return $this->montant_rendu; } elseif ( $aMontantRendu == 'RESET' ) { - $this->montant_rendu = null; } else { - $this->montant_rendu = $aMontantRendu; } } @@ -552,13 +528,10 @@ class Facturation public function paiementLe($aPaiementLe = null) { if (is_null($aPaiementLe)) { - return $this->paiement_le; } elseif ( $aPaiementLe == 'RESET' ) { - $this->paiement_le = null; } else { - $this->paiement_le = $aPaiementLe; } } @@ -572,13 +545,10 @@ class Facturation public function prixTotalHt($aTotalHt = null) { if (is_null($aTotalHt)) { - return $this->prix_total_ht; } elseif ( $aTotalHt == 'RESET' ) { - $this->prix_total_ht = null; } else { - $this->prix_total_ht = $aTotalHt; } } @@ -592,13 +562,10 @@ class Facturation public function montantTva($aMontantTva = null) { if (is_null($aMontantTva)) { - return $this->montant_tva; } elseif ( $aMontantTva == 'RESET' ) { - $this->montant_tva = null; } else { - $this->montant_tva = $aMontantTva; } } diff --git a/htdocs/cashdesk/facturation.php b/htdocs/cashdesk/facturation.php index f7e7c3af501..c52ecccef77 100644 --- a/htdocs/cashdesk/facturation.php +++ b/htdocs/cashdesk/facturation.php @@ -36,7 +36,6 @@ $form=new Form($db); // Get list of articles (in warehouse '$conf_fkentrepot' if defined and stock module enabled) if ( GETPOST('filtre', 'alpha') ) { - // Avec filtre $ret=array(); $i=0; @@ -88,7 +87,6 @@ if ( GETPOST('filtre', 'alpha') ) { } $tab_designations=$ret; } else { - // Sans filtre $ret=array(); $i=0; diff --git a/htdocs/cashdesk/tpl/liste_articles.tpl.php b/htdocs/cashdesk/tpl/liste_articles.tpl.php index a35abb46789..d892c1df0e6 100644 --- a/htdocs/cashdesk/tpl/liste_articles.tpl.php +++ b/htdocs/cashdesk/tpl/liste_articles.tpl.php @@ -57,10 +57,8 @@ else echo ('

    '.$tab[$i]['ref'].' - '.$tab[$i]['label'].'

    '."\n"); if ( $tab[$i]['remise_percent'] > 0 ) { - $remise_percent = ' -'.$tab[$i]['remise_percent'].'%'; } else { - $remise_percent = ''; } diff --git a/htdocs/cashdesk/tpl/validation1.tpl.php b/htdocs/cashdesk/tpl/validation1.tpl.php index 64f340983ff..e8c16712b74 100644 --- a/htdocs/cashdesk/tpl/validation1.tpl.php +++ b/htdocs/cashdesk/tpl/validation1.tpl.php @@ -39,12 +39,10 @@ $langs->loadLangs(array("main","bills","banks")); montantTva() ) { - echo ('
    '.$langs->trans("VAT").''.price(price2num($obj_facturation->montantTva(), 'MT'), 0, $langs, 0, 0, -1, $conf->currency).'
    '.$langs->trans("VAT").''.$langs->trans("NoVAT").'
    '.$langs->trans("DateDue").''.$obj_facturation->paiementLe().'
    '.$langs->trans("Received").''.price(price2num($obj_facturation->montantEncaisse(), 'MT'), 0, $langs, 0, 0, -1, $conf->currency).'
    '.$langs->trans("Change").''.price(price2num($obj_facturation->montantRendu(), 'MT'), 0, $langs, 0, 0, -1, $conf->currency).'
    '; echo ''; @@ -779,7 +778,6 @@ while($currentdaytoshow<$lastdaytoshow) { $i = 0; for ($iter_day = 0; $iter_day < 8; $iter_day++) { - if (($i + 1) < $begin_d || ($i + 1) > $end_d) { $i++; diff --git a/htdocs/comm/action/rapport/index.php b/htdocs/comm/action/rapport/index.php index 5d1b7ba919e..8cc1774cba2 100644 --- a/htdocs/comm/action/rapport/index.php +++ b/htdocs/comm/action/rapport/index.php @@ -144,7 +144,6 @@ if ($resql) if ($obj) { - print ''; // Date diff --git a/htdocs/comm/index.php b/htdocs/comm/index.php index c0d2c4703ca..43af4f8f1c0 100644 --- a/htdocs/comm/index.php +++ b/htdocs/comm/index.php @@ -208,7 +208,6 @@ if (! empty($conf->propal->enabled) && $user->rights->propal->lire) } else { - print ''; } print "
    '.$langs->trans("NoProposal").'

    "; @@ -379,7 +378,6 @@ if (! empty($conf->commande->enabled) && $user->rights->commande->lire) } else { - print ''.$langs->trans("NoOrder").''; } print ""; @@ -430,7 +428,6 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->commande $nbofloop=min($num, (empty($conf->global->MAIN_MAXLIST_OVERLOAD)?500:$conf->global->MAIN_MAXLIST_OVERLOAD)); while ($i < $nbofloop) { - $obj = $db->fetch_object($resql); print ''; $supplierorderstatic->id=$obj->rowid; @@ -470,7 +467,6 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->commande } else { - print ''.$langs->trans("NoSupplierOrder").''; } print ""; diff --git a/htdocs/comm/mailing/advtargetemailing.php b/htdocs/comm/mailing/advtargetemailing.php index 9544a394508..1049431b7f2 100644 --- a/htdocs/comm/mailing/advtargetemailing.php +++ b/htdocs/comm/mailing/advtargetemailing.php @@ -114,7 +114,6 @@ if ($action == 'loadfilter') { } if ($action == 'add') { - $user_contact_query = false; $array_query = array (); @@ -168,7 +167,6 @@ if ($action == 'add') { } if (preg_match("/^contact_/", $key)) { - $array_query[$key] = GETPOST($key); $specials_date_key = array ( @@ -262,7 +260,6 @@ if ($action == 'clear') { } if ($action == 'savefilter' || $action == 'createfilter') { - $template_name = GETPOST('template_name'); $error = 0; @@ -272,7 +269,6 @@ if ($action == 'savefilter' || $action == 'createfilter') { } if (empty($error)) { - $array_query = array (); // Get extra fields @@ -325,7 +321,6 @@ if ($action == 'savefilter' || $action == 'createfilter') { } if (preg_match("/^contact_/", $key)) { - $array_query[$key] = GETPOST($key); $specials_date_key = array ( @@ -359,7 +354,6 @@ if ($action == 'savefilter' || $action == 'createfilter') { setEventMessages($advTarget->error, $advTarget->errors, 'errors'); } } elseif ($action == 'savefilter') { - $result = $advTarget->update($user); if ($result < 0) { setEventMessages($advTarget->error, $advTarget->errors, 'errors'); @@ -421,7 +415,6 @@ $formcompany = new FormCompany($db); $formother = new FormOther($db); if ($object->fetch($id) >= 0) { - $head = emailing_prepare_head($object); dol_fiche_head($head, 'advtargets', $langs->trans("Mailing"), 0, 'email'); @@ -465,7 +458,6 @@ if ($object->fetch($id) >= 0) { // Show email selectors if ($object->statut == 0 && $user->rights->mailing->creer) { - include DOL_DOCUMENT_ROOT . '/core/tpl/advtarget.tpl.php'; } } diff --git a/htdocs/comm/mailing/class/advtargetemailing.class.php b/htdocs/comm/mailing/class/advtargetemailing.class.php index 7346bf87543..465bf7dcc50 100644 --- a/htdocs/comm/mailing/class/advtargetemailing.class.php +++ b/htdocs/comm/mailing/class/advtargetemailing.class.php @@ -556,7 +556,6 @@ class AdvanceTargetingMailing extends CommonObject $sqlwhere[]= 't.entity IN ('.getEntity('societe').')'; if (count($arrayquery)>0) { - if (array_key_exists('cust_saleman', $arrayquery)) { $sql.= " LEFT OUTER JOIN " . MAIN_DB_PREFIX . "societe_commerciaux as saleman ON saleman.fk_soc=t.rowid "; } @@ -565,7 +564,6 @@ class AdvanceTargetingMailing extends CommonObject } if (!empty($arrayquery['cust_name'])) { - $sqlwhere[]= $this->transformToSQL('t.nom', $arrayquery['cust_name']); } if (!empty($arrayquery['cust_code'])) { @@ -617,13 +615,11 @@ class AdvanceTargetingMailing extends CommonObject //Standard Extrafield feature if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) { - $elementtype = Societe::$table_element; $extrafields->fetch_name_optionals_label($elementtype); foreach($extrafields->attributes[$elementtype]['label'] as $key=>$val) { - if (($extrafields->attributes[$elementtype]['type'][$key] == 'varchar') || ($extrafields->attributes[$elementtype]['type'][$key] == 'text')) { if (!empty($arrayquery['options_'.$key])) { @@ -713,7 +709,6 @@ class AdvanceTargetingMailing extends CommonObject $sqlwhere[]= 't.entity IN ('.getEntity('socpeople').')'; if (count($arrayquery)>0) { - if (array_key_exists('contact_categ', $arrayquery)) { $sql.= " LEFT OUTER JOIN " . MAIN_DB_PREFIX . "categorie_contact as contactcateg ON contactcateg.fk_socpeople=t.rowid "; } @@ -767,7 +762,6 @@ class AdvanceTargetingMailing extends CommonObject $extrafields->fetch_name_optionals_label($elementtype); foreach($extrafields->attributes[$elementtype]['label'] as $key=>$val) { - if (($extrafields->attributes[$elementtype]['type'][$key] == 'varchar') || ($extrafields->attributes[$elementtype]['type'][$key] == 'text')) { if (!empty($arrayquery['options_'.$key.'_cnct'])) { @@ -809,7 +803,6 @@ class AdvanceTargetingMailing extends CommonObject } if (!empty($arrayquery['cust_name'])) { - $sqlwhere[]= $this->transformToSQL('ts.nom', $arrayquery['cust_name']); } if (!empty($arrayquery['cust_code'])) { @@ -870,7 +863,6 @@ class AdvanceTargetingMailing extends CommonObject $extrafields->fetch_name_optionals_label($elementtype); foreach($extrafields->attributes[$elementtype]['label'] as $key=>$val) { - if (($extrafields->attributes[$elementtype]['type'][$key] == 'varchar') || ($extrafields->attributes[$elementtype]['type'][$key] == 'text')) { if (!empty($arrayquery['options_'.$key])) { diff --git a/htdocs/comm/mailing/class/html.formadvtargetemailing.class.php b/htdocs/comm/mailing/class/html.formadvtargetemailing.class.php index 55b7177eb73..67ec7414e7c 100644 --- a/htdocs/comm/mailing/class/html.formadvtargetemailing.class.php +++ b/htdocs/comm/mailing/class/html.formadvtargetemailing.class.php @@ -114,7 +114,6 @@ class FormAdvTargetEmailing extends Form dol_syslog(get_class($this) . "::select_country sql=" . $sql); $resql = $this->db->query($sql); if ($resql) { - $num = $this->db->num_rows($resql); $i = 0; if ($num) { @@ -175,7 +174,6 @@ class FormAdvTargetEmailing extends Form $resql_usr = $this->db->query($sql_usr); if ($resql_usr) { while ( $obj_usr = $this->db->fetch_object($resql_usr) ) { - $label = $obj_usr->firstname . " " . $obj_usr->name . " (" . $obj_usr->login . ')'; $options_array [$obj_usr->rowid] = $label; @@ -249,7 +247,6 @@ class FormAdvTargetEmailing extends Form $sql = 'SELECT ' . $keyList . ', ' . $InfoFieldList [1]; $sql .= ' FROM ' . MAIN_DB_PREFIX . $InfoFieldList [0]; if (! empty($InfoFieldList [3])) { - // We have to join on extrafield table if (strpos($InfoFieldList [3], 'extra') !== false) { $sql .= ' as main, ' . MAIN_DB_PREFIX . $InfoFieldList [0] . '_extrafields as extra'; @@ -266,7 +263,6 @@ class FormAdvTargetEmailing extends Form dol_syslog(get_class($this) . "::".__METHOD__, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { - $num = $this->db->num_rows($resql); $i = 0; if ($num) { @@ -306,7 +302,6 @@ class FormAdvTargetEmailing extends Form $resql=$this->db->query($sql); if ($resql) { - $num = $this->db->num_rows($resql); $i = 0; if ($num) @@ -396,7 +391,6 @@ class FormAdvTargetEmailing extends Form $resql=$this->db->query($sql); if ($resql) { - $num = $this->db->num_rows($resql); $i = 0; if ($num) @@ -442,8 +436,6 @@ class FormAdvTargetEmailing extends Form dol_syslog(get_class($this) . "::".__METHOD__, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { - - $out .= ''; print ''; diff --git a/htdocs/compta/bank/class/account.class.php b/htdocs/compta/bank/class/account.class.php index 4e72c6312e6..5cd3902b7d1 100644 --- a/htdocs/compta/bank/class/account.class.php +++ b/htdocs/compta/bank/class/account.class.php @@ -265,7 +265,6 @@ class Account extends CommonObject $string = ''; foreach ($this->getFieldsToShow() as $val) { - if ($val == 'BankCode') { $string .= $this->code_banque.' '; } elseif ($val == 'BankAccountNumber') { @@ -493,7 +492,6 @@ class Account extends CommonObject } if ($accline->insert() > 0) { - if ($categorie>0) { $sql = "INSERT INTO ".MAIN_DB_PREFIX."bank_class ("; $sql .= "lineid, fk_categ"; diff --git a/htdocs/compta/bank/document.php b/htdocs/compta/bank/document.php index 0d517a43fec..32bfe66f7d1 100644 --- a/htdocs/compta/bank/document.php +++ b/htdocs/compta/bank/document.php @@ -97,7 +97,6 @@ $form = new Form($db); if ($id > 0 || !empty($ref)) { if ($object->fetch($id, $ref)) { - $upload_dir = $conf->bank->dir_output . '/' . $object->ref; // Onglets diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index 2a08c55eeba..f7ec617ee1d 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -1822,7 +1822,6 @@ if (empty($reshook)) } if (! $error && ($qty >= 0) && (! empty($product_desc) || ! empty($idprod))) { - $ret = $object->fetch($id); if ($ret < 0) { dol_print_error($db, $object->error); @@ -2327,7 +2326,6 @@ if (empty($reshook)) // Change each progression persent on each lines foreach($object->lines as $line) { - // no traitement for special product if ($line->product_type == 9 ) continue; @@ -3185,7 +3183,6 @@ if ($action == 'create') if (! empty($conf->global->INVOICE_USE_SITUATION)) { if($conf->global->INVOICE_USE_SITUATION_RETAINED_WARRANTY){ - $rwStyle = 'display:none;'; if(GETPOST('type', 'int') == Facture::TYPE_SITUATION){ $rwStyle = ''; @@ -4347,7 +4344,6 @@ elseif ($id > 0 || ! empty($ref)) // List of previous situation invoices if (($object->situation_cycle_ref > 0) && ! empty($conf->global->INVOICE_USE_SITUATION)) { - print ''; @@ -4660,7 +4656,6 @@ elseif ($id > 0 || ! empty($ref)) // Retained warranty : usualy use on construction industry if(!empty($object->situation_final) && !empty($object->retained_warranty) && $displayWarranty){ - // Billed - retained warranty if($object->type == Facture::TYPE_SITUATION) { diff --git a/htdocs/compta/facture/class/facture-rec.class.php b/htdocs/compta/facture/class/facture-rec.class.php index 18d153dc597..9ff90b7b025 100644 --- a/htdocs/compta/facture/class/facture-rec.class.php +++ b/htdocs/compta/facture/class/facture-rec.class.php @@ -1839,7 +1839,6 @@ class FactureLigneRec extends CommonInvoiceLine $result = $this->db->query($sql); if ($result) { - $objp = $this->db->fetch_object($result); $this->id = $objp->rowid; diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index 6149a161694..84835fa9608 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -848,7 +848,6 @@ class Facture extends CommonInvoice if (! $error) { - $result=$this->update_price(1); if ($result > 0) { @@ -1933,7 +1932,6 @@ class Facture extends CommonInvoice if (! $error) { - $this->ref_client = $ref_client; $this->db->commit(); @@ -3465,7 +3463,6 @@ class Facture extends CommonInvoice $dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); foreach ($dirmodels as $reldir) { - $dir = dol_buildpath($reldir."core/modules/facture/"); // Load file with numbering class (if found) @@ -5216,7 +5213,6 @@ class FactureLigne extends CommonInvoiceLine $returnPercent = floatval($res['situation_percent']); if($include_credit_note) { - $sql = 'SELECT fd.situation_percent FROM ' . MAIN_DB_PREFIX . 'facturedet fd'; $sql.= ' JOIN ' . MAIN_DB_PREFIX . 'facture f ON (f.rowid = fd.fk_facture) '; $sql.= ' WHERE fd.fk_prev_id =' . $this->fk_prev_id; diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php index 77abac6e4d1..1fed45f09cd 100644 --- a/htdocs/compta/facture/list.php +++ b/htdocs/compta/facture/list.php @@ -356,7 +356,6 @@ if ($massaction == 'withdrawrequest') } else { - $db->rollback(); setEventMessages($aBill->error, $aBill->errors, 'errors'); } diff --git a/htdocs/compta/localtax/card.php b/htdocs/compta/localtax/card.php index 86388fd7e87..e7762b834e4 100644 --- a/htdocs/compta/localtax/card.php +++ b/htdocs/compta/localtax/card.php @@ -61,7 +61,6 @@ if ($_POST["cancel"] == $langs->trans("Cancel") && ! $id) if ($action == 'add' && $_POST["cancel"] <> $langs->trans("Cancel")) { - $db->begin(); $datev=dol_mktime(12, 0, 0, $_POST["datevmonth"], $_POST["datevday"], $_POST["datevyear"]); diff --git a/htdocs/compta/localtax/clients.php b/htdocs/compta/localtax/clients.php index 1e6ab5b4da1..97f97bbc735 100644 --- a/htdocs/compta/localtax/clients.php +++ b/htdocs/compta/localtax/clients.php @@ -195,7 +195,6 @@ if($calc ==0 || $calc == 2) { if(($min == 0 || ($min > 0 && $coll->amount > $min)) && ($local==1?$coll->localtax1:$coll->localtax2) !=0) { - $intra = str_replace($find, $replace, $coll->tva_intra); if(empty($intra)) { @@ -269,7 +268,6 @@ if($calc ==0 || $calc == 1){ { if(($min == 0 || ($min > 0 && $coll->amount > $min)) && ($local==1?$coll->localtax1:$coll->localtax2) != 0) { - $intra = str_replace($find, $replace, $coll->tva_intra); if(empty($intra)) { diff --git a/htdocs/compta/paiement/cheque/card.php b/htdocs/compta/paiement/cheque/card.php index 9ab469376e5..3afce69e94b 100644 --- a/htdocs/compta/paiement/cheque/card.php +++ b/htdocs/compta/paiement/cheque/card.php @@ -444,7 +444,6 @@ if ($action == 'new') foreach ($accounts as $bid => $account_label) { - print ' '; } elseif (GETPOST('action') == 'confirm_delete' && GETPOST('confirm') == 'yes' && GETPOST('socid') > 0) { - // La suppression n'a pas été possible require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php'; $societe = new Societe($this->db); $societe->fetch(GETPOST('socid')); // On vérifie si il est utilisé if ((in_array($object->forme_juridique_code, array(11, 12, 13, 15, 17, 18, 19, 35, 60, 200, 311, 312, 316, 401, 600, 700, 1005)) || $societe->typent_id == 8) && $societe->isObjectUsed(GETPOST('socid'))) { - require_once DOL_DOCUMENT_ROOT . '/core/class/html.form.class.php'; $form = new Form($this->db); echo $form->formconfirm($_SERVER["PHP_SELF"] . "?socid=" . GETPOST('socid'), substr($langs->trans("DATAPOLICIES_POPUP_ANONYME_TITLE"), 0, strlen($langs->trans("DATAPOLICIES_POPUP_ANONYME_TITLE")) - 2), $langs->trans("DATAPOLICIES_POPUP_ANONYME_TEXTE"), 'anonymiser', '', '', 1); @@ -428,7 +424,6 @@ class ActionsDatapolicy $societe->fetch(GETPOST('socid')); if (!in_array($object->forme_juridique_code, array(11, 12, 13, 15, 17, 18, 19, 35, 60, 200, 311, 312, 316, 401, 600, 700, 1005)) && $societe->typent_id != 8) { - require_once DOL_DOCUMENT_ROOT . '/core/class/html.form.class.php'; $jsscript .= '