From 25196fa7092b561ab14cd3f0c670aed31a2de2cc Mon Sep 17 00:00:00 2001 From: Marc de Lima Lucio <68746600+marc-dll@users.noreply.github.com> Date: Thu, 19 May 2022 10:20:31 +0200 Subject: [PATCH 01/24] FIX: new member subscription: bank account and payment mode might be hidden --- htdocs/adherents/subscription.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/adherents/subscription.php b/htdocs/adherents/subscription.php index 799f043c4df..c069f0d12e2 100644 --- a/htdocs/adherents/subscription.php +++ b/htdocs/adherents/subscription.php @@ -960,12 +960,12 @@ if ($rowid > 0) { // Bank account print ''.$langs->trans("FinancialAccount").''; - $form->select_comptes(GETPOST('accountid'), 'accountid', 0, '', 2); + $form->select_comptes(GETPOST('accountid'), 'accountid', 0, '', 2, '', 0, 'minwidth200'); print "\n"; // Payment mode print ''.$langs->trans("PaymentMode").''; - $form->select_types_paiements(GETPOST('operation'), 'operation', '', 2); + $form->select_types_paiements(GETPOST('operation'), 'operation', '', 2, 1, 0, 0, 1, 'minwidth200'); print "\n"; // Date of payment From a2fe72225f61054db1f58342d5f1f00177f70595 Mon Sep 17 00:00:00 2001 From: Quentin VIAL-GOUTEYRON Date: Fri, 20 May 2022 10:06:28 +0200 Subject: [PATCH 02/24] NEW : hook for dol_format_address --- htdocs/core/lib/functions.lib.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index e891904e39e..19fa4cd5c63 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -2154,7 +2154,7 @@ function dol_bc($var, $moreclass = '') */ function dol_format_address($object, $withcountry = 0, $sep = "\n", $outputlangs = '', $mode = 0, $extralangcode = '') { - global $conf, $langs; + global $conf, $langs, $hookmanager; $ret = ''; $countriesusingstate = array('AU', 'CA', 'US', 'IN', 'GB', 'ES', 'UK', 'TR'); // See also MAIN_FORCE_STATE_INTO_ADDRESS @@ -2220,6 +2220,14 @@ function dol_format_address($object, $withcountry = 0, $sep = "\n", $outputlangs $langs->load("dict"); $ret .= (empty($object->country_code) ? '' : ($ret ? $sep : '').$outputlangs->convToOutputCharset($outputlangs->transnoentitiesnoconv("Country".$object->country_code))); } + if ($hookmanager) { + $parameters = array('withcountry' => $withcountry, 'sep' => $sep, 'outputlangs' => $outputlangs,'mode' => $mode, 'extralangcode' => $extralangcode); + $reshook = $hookmanager->executeHooks('formatAddress', $parameters, $object); + if ($reshook > 0) { + $ret = ''; + } + $ret .= $hookmanager->resPrint; + } return $ret; } From 8231a9ea0fab852d3c9268c29a97833d7f3f49f2 Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Fri, 20 May 2022 23:29:35 +0200 Subject: [PATCH 03/24] Fix wrong right test to show button --- 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 07d3e018390..acd6a60f0f9 100644 --- a/htdocs/expensereport/card.php +++ b/htdocs/expensereport/card.php @@ -2648,7 +2648,7 @@ if ($action != 'create' && $action != 'edit') } // If bank module is not used - if (($user->rights->expensereport->to_paid || empty($conf->banque->enabled)) && $object->status == ExpenseReport::STATUS_APPROVED) + if (($user->rights->expensereport->to_paid && empty($conf->banque->enabled)) && $object->status == ExpenseReport::STATUS_APPROVED) { //if ((round($remaintopay) == 0 || empty($conf->banque->enabled)) && $object->paid == 0) if ($object->paid == 0) From 4c10ef8f4c913cca2c16b3be2cfda25c5687ea22 Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sat, 21 May 2022 15:36:04 +0200 Subject: [PATCH 04/24] Fix labels in tickets widgets --- htdocs/core/boxes/box_graph_nb_tickets_type.php | 2 +- htdocs/core/boxes/box_graph_ticket_by_severity.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/boxes/box_graph_nb_tickets_type.php b/htdocs/core/boxes/box_graph_nb_tickets_type.php index 2da54d84e7a..f4efce23797 100644 --- a/htdocs/core/boxes/box_graph_nb_tickets_type.php +++ b/htdocs/core/boxes/box_graph_nb_tickets_type.php @@ -131,7 +131,7 @@ class box_graph_nb_tickets_type extends ModeleBoxes } foreach ($listofoppcode as $rowid => $code) { $dataseries[] = array( - 'label' => $langs->getLabelFromKey($this->db, 'TicketTypeShort' . $code, 'c_ticket_category', 'code', 'label', $code), + 'label' => $langs->getLabelFromKey($this->db, 'TicketTypeShort' . $code, 'c_ticket_type', 'code', 'label', $code), 'data' => (empty($data[$code]) ? 0 : $data[$code]) ); } diff --git a/htdocs/core/boxes/box_graph_ticket_by_severity.php b/htdocs/core/boxes/box_graph_ticket_by_severity.php index 13cd0c40c86..a7fa571b6c7 100644 --- a/htdocs/core/boxes/box_graph_ticket_by_severity.php +++ b/htdocs/core/boxes/box_graph_ticket_by_severity.php @@ -152,7 +152,7 @@ class box_graph_ticket_by_severity extends ModeleBoxes } foreach ($listofoppcode as $rowid => $code) { $dataseries[] = array( - 'label' => $langs->getLabelFromKey($this->db, 'TicketSeverityShort' . $code, 'c_ticket_category', 'code', 'label', $code), + 'label' => $langs->getLabelFromKey($this->db, 'TicketSeverityShort' . $code, 'c_ticket_severity', 'code', 'label', $code), 'data' => (empty($data[$code]) ? 0 : $data[$code]) ); } From 4932f86a2d2f5cc04d065417cc5eccdff7eb4899 Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sat, 21 May 2022 15:41:34 +0200 Subject: [PATCH 05/24] Fix default value for boolean extrafield --- htdocs/core/class/commonobject.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 02421ea9157..14c91ccd19a 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -7518,7 +7518,7 @@ abstract class CommonObject } // HTML, text, select, integer and varchar: take into account default value in database if in create mode - if (in_array($extrafields->attributes[$this->table_element]['type'][$key], array('html', 'text', 'varchar', 'select', 'int'))) { + if (in_array($extrafields->attributes[$this->table_element]['type'][$key], array('html', 'text', 'varchar', 'select', 'int', 'boolean'))) { if ($action == 'create') { $value = (GETPOSTISSET($keyprefix.'options_'.$key.$keysuffix) || $value) ? $value : $extrafields->attributes[$this->table_element]['default'][$key]; } From 9b2a54317090025c0dc5151b0f12c25a1abd46ef Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sat, 21 May 2022 15:49:27 +0200 Subject: [PATCH 06/24] Fix phpcs too long line --- htdocs/core/class/commonobject.class.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 14c91ccd19a..a706583c7cc 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -7503,14 +7503,16 @@ abstract class CommonObject if (!is_numeric($this->array_options['options_'.$key])) { // For backward compatibility $datenotinstring = $this->db->jdate($datenotinstring); } - $value = (GETPOSTISSET($keyprefix.'options_'.$key.$keysuffix)) ? dol_mktime(12, 0, 0, GETPOST($keyprefix.'options_'.$key.$keysuffix."month", 'int', 3), GETPOST($keyprefix.'options_'.$key.$keysuffix."day", 'int', 3), GETPOST($keyprefix.'options_'.$key.$keysuffix."year", 'int', 3)) : $datenotinstring; + $datekey = $keyprefix.'options_'.$key.$keysuffix; + $value = (GETPOSTISSET($datekey)) ? dol_mktime(12, 0, 0, GETPOST($datekey.'month', 'int', 3), GETPOST($datekey.'day', 'int', 3), GETPOST($datekey.'year', 'int', 3)) : $datenotinstring; } if (in_array($extrafields->attributes[$this->table_element]['type'][$key], array('datetime'))) { $datenotinstring = $this->array_options['options_'.$key]; if (!is_numeric($this->array_options['options_'.$key])) { // For backward compatibility $datenotinstring = $this->db->jdate($datenotinstring); } - $value = (GETPOSTISSET($keyprefix.'options_'.$key.$keysuffix)) ? dol_mktime(GETPOST($keyprefix.'options_'.$key.$keysuffix."hour", 'int', 3), GETPOST($keyprefix.'options_'.$key.$keysuffix."min", 'int', 3), GETPOST($keyprefix.'options_'.$key.$keysuffix."sec", 'int', 3), GETPOST($keyprefix.'options_'.$key.$keysuffix."month", 'int', 3), GETPOST($keyprefix.'options_'.$key.$keysuffix."day", 'int', 3), GETPOST($keyprefix.'options_'.$key.$keysuffix."year", 'int', 3), 'tzuserrel') : $datenotinstring; + $timekey = $keyprefix.'options_'.$key.$keysuffix; + $value = (GETPOSTISSET($timekey)) ? dol_mktime(GETPOST($timekey.'hour', 'int', 3), GETPOST($timekey.'min', 'int', 3), GETPOST($timekey.'sec', 'int', 3), GETPOST($timekey.'month', 'int', 3), GETPOST($timekey.'day', 'int', 3), GETPOST($timekey.'year', 'int', 3), 'tzuserrel') : $datenotinstring; } // Convert float submited string into real php numeric (value in memory must be a php numeric) if (in_array($extrafields->attributes[$this->table_element]['type'][$key], array('price', 'double'))) { From d8a68d280ee197729dfc700acf05d9d1f301e0a5 Mon Sep 17 00:00:00 2001 From: Nicolas Date: Sat, 21 May 2022 17:06:36 +0200 Subject: [PATCH 07/24] FIX missing morecss for multiselectarray --- htdocs/core/class/commonobject.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 02421ea9157..bbca87fe125 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -6760,7 +6760,7 @@ abstract class CommonObject $out .= ''; } elseif ($type == 'checkbox') { $value_arr = explode(',', $value); - $out = $form->multiselectarray($keyprefix.$key.$keysuffix, (empty($param['options']) ?null:$param['options']), $value_arr, '', 0, '', 0, '100%'); + $out = $form->multiselectarray($keyprefix.$key.$keysuffix, (empty($param['options']) ?null:$param['options']), $value_arr, '', 0, $morecss, 0, '100%'); } elseif ($type == 'radio') { $out = ''; foreach ($param['options'] as $keyopt => $val) { From e5c38572d196bb38ae0f3bedbba784f55ed2ce94 Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sun, 22 May 2022 00:23:16 +0200 Subject: [PATCH 08/24] Fix no document available on job candidature --- htdocs/core/modules/modRecruitment.class.php | 12 +++++------- .../recruitment/modules_recruitmentcandidature.php | 2 +- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/htdocs/core/modules/modRecruitment.class.php b/htdocs/core/modules/modRecruitment.class.php index 3d4e88872ef..41679c19a1c 100644 --- a/htdocs/core/modules/modRecruitment.class.php +++ b/htdocs/core/modules/modRecruitment.class.php @@ -423,7 +423,7 @@ class modRecruitment extends DolibarrModules $sql = array(); // Document template - $moduledir = 'mymodule'; + $moduledir = 'recruitment'; $myTmpObjects = array(); $myTmpObjects['RecruitmentJobPosition'] = array('includerefgeneration'=>1, 'includedocgeneration'=>1); @@ -431,10 +431,10 @@ class modRecruitment extends DolibarrModules if ($myTmpObjectKey == 'MyObject') { continue; } - if ($myTmpObjectArray['includerefgeneration']) { - $src = DOL_DOCUMENT_ROOT.'/install/doctemplates/mymodule/template_myobjects.odt'; - $dirodt = DOL_DATA_ROOT.'/doctemplates/mymodule'; - $dest = $dirodt.'/template_myobjects.odt'; + if ($myTmpObjectArray['includedocgeneration']) { + $src = DOL_DOCUMENT_ROOT.'/install/doctemplates/'.$moduledir.'/template_recruitmentjobposition.odt'; + $dirodt = DOL_DATA_ROOT.'/doctemplates/'.$moduledir; + $dest = $dirodt.'/template_recruitmentjobposition.odt'; if (file_exists($src) && !file_exists($dest)) { require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -450,8 +450,6 @@ class modRecruitment extends DolibarrModules $sql = array_merge($sql, array( "DELETE FROM ".MAIN_DB_PREFIX."document_model WHERE nom = 'standard_".strtolower($myTmpObjectKey)."' AND type = '".strtolower($myTmpObjectKey)."' AND entity = ".$conf->entity, "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('standard_".strtolower($myTmpObjectKey)."','".strtolower($myTmpObjectKey)."',".$conf->entity.")", - "DELETE FROM ".MAIN_DB_PREFIX."document_model WHERE nom = 'generic_".strtolower($myTmpObjectKey)."_odt' AND type = '".strtolower($myTmpObjectKey)."' AND entity = ".$conf->entity, - "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('generic_".strtolower($myTmpObjectKey)."_odt', '".strtolower($myTmpObjectKey)."', ".$conf->entity.")" )); } } diff --git a/htdocs/recruitment/core/modules/recruitment/modules_recruitmentcandidature.php b/htdocs/recruitment/core/modules/recruitment/modules_recruitmentcandidature.php index 84bfd30401c..089aa720fa7 100644 --- a/htdocs/recruitment/core/modules/recruitment/modules_recruitmentcandidature.php +++ b/htdocs/recruitment/core/modules/recruitment/modules_recruitmentcandidature.php @@ -51,7 +51,7 @@ abstract class ModelePDFRecruitmentCandidature extends CommonDocGenerator // phpcs:enable global $conf; - $type = 'recruitmentjobposition'; + $type = 'recruitmentjobcandidature'; $list = array(); include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; From c1473b55149d6ae578a75712dded5ee7668662dc Mon Sep 17 00:00:00 2001 From: Eric Seigne Date: Sun, 22 May 2022 01:21:52 +0200 Subject: [PATCH 09/24] fix #18338: Undefined property $ficheinter --- htdocs/comm/propal/card.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php index a77e242379f..bf0c63e5b11 100644 --- a/htdocs/comm/propal/card.php +++ b/htdocs/comm/propal/card.php @@ -121,7 +121,9 @@ $usercansend = (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights-> $usercancreateorder = $user->rights->commande->creer; $usercancreateinvoice = $user->rights->facture->creer; $usercancreatecontract = $user->rights->contrat->creer; -$usercancreateintervention = $user->rights->ficheinter->creer; +if ($conf->ficheinter->enabled) { + $usercancreateintervention = $user->rights->ficheinter->creer; +} $usercancreatepurchaseorder = ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer); $permissionnote = $usercancreate; // Used by the include of actions_setnotes.inc.php From 4a222fe5d5e91c946abb92ffe6bf2acb76c31e01 Mon Sep 17 00:00:00 2001 From: Eric Seigne Date: Sun, 22 May 2022 01:38:32 +0200 Subject: [PATCH 10/24] fix potential warning ($conf->ficheinter->enabled) --- htdocs/comm/propal/card.php | 2 +- htdocs/commande/card.php | 2 +- htdocs/ticket/card.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php index bf0c63e5b11..3e9c2cb4eeb 100644 --- a/htdocs/comm/propal/card.php +++ b/htdocs/comm/propal/card.php @@ -121,7 +121,7 @@ $usercansend = (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights-> $usercancreateorder = $user->rights->commande->creer; $usercancreateinvoice = $user->rights->facture->creer; $usercancreatecontract = $user->rights->contrat->creer; -if ($conf->ficheinter->enabled) { +if (!empty($conf->ficheinter->enabled)) { $usercancreateintervention = $user->rights->ficheinter->creer; } $usercancreatepurchaseorder = ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer); diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index 3ed5ede556c..3e5ec08a0f3 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -2525,7 +2525,7 @@ if ($action == 'create' && $usercancreate) { } // Create intervention - if ($conf->ficheinter->enabled) { + if (!empty($conf->ficheinter->enabled)) { $langs->load("interventions"); if ($object->statut > Commande::STATUS_DRAFT && $object->statut < Commande::STATUS_CLOSED && $object->getNbOfServicesLines() > 0) { diff --git a/htdocs/ticket/card.php b/htdocs/ticket/card.php index ab2c2794e38..9c1a7c709b7 100644 --- a/htdocs/ticket/card.php +++ b/htdocs/ticket/card.php @@ -1047,7 +1047,7 @@ if ($action == 'create' || $action == 'presend') { print ''; // Timing (Duration sum of linked fichinter) - if ($conf->ficheinter->enabled) { + if (!empty($conf->ficheinter->enabled)) { $object->fetchObjectLinked(); $num = count($object->linkedObjects); $timing = 0; From 45bc1ff28748b8f4193bd0cba6acf32538f824c5 Mon Sep 17 00:00:00 2001 From: Eric Seigne Date: Sun, 22 May 2022 01:50:01 +0200 Subject: [PATCH 11/24] fix #18339 : Attempt to read property creer --- htdocs/comm/propal/card.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php index a77e242379f..501be1bbca1 100644 --- a/htdocs/comm/propal/card.php +++ b/htdocs/comm/propal/card.php @@ -121,7 +121,9 @@ $usercansend = (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights-> $usercancreateorder = $user->rights->commande->creer; $usercancreateinvoice = $user->rights->facture->creer; $usercancreatecontract = $user->rights->contrat->creer; -$usercancreateintervention = $user->rights->ficheinter->creer; +if (!empty($conf->ficheinter->enabled)) { + $usercancreateintervention = $user->rights->ficheinter->creer; +} $usercancreatepurchaseorder = ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer); $permissionnote = $usercancreate; // Used by the include of actions_setnotes.inc.php From 1ca1afd73402b5e57167583c8c1b1f39c2d790f3 Mon Sep 17 00:00:00 2001 From: Eric Seigne Date: Sun, 22 May 2022 01:50:10 +0200 Subject: [PATCH 12/24] fix #18339 : Attempt to read property creer --- htdocs/comm/propal/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php index 501be1bbca1..3e9c2cb4eeb 100644 --- a/htdocs/comm/propal/card.php +++ b/htdocs/comm/propal/card.php @@ -122,7 +122,7 @@ $usercancreateorder = $user->rights->commande->creer; $usercancreateinvoice = $user->rights->facture->creer; $usercancreatecontract = $user->rights->contrat->creer; if (!empty($conf->ficheinter->enabled)) { - $usercancreateintervention = $user->rights->ficheinter->creer; + $usercancreateintervention = $user->rights->ficheinter->creer; } $usercancreatepurchaseorder = ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer); From c3fb7647c5f8cf4d4cd8d744af1fecc2f5e2cbed Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sun, 22 May 2022 02:30:35 +0200 Subject: [PATCH 13/24] Fix delete customer payment --- htdocs/compta/paiement/card.php | 2 +- htdocs/core/lib/security.lib.php | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/paiement/card.php b/htdocs/compta/paiement/card.php index b53debd79ba..47897902a9c 100644 --- a/htdocs/compta/paiement/card.php +++ b/htdocs/compta/paiement/card.php @@ -48,7 +48,7 @@ $object = new Paiement($db); // Load object include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once. -$result = restrictedArea($user, $object->element, $object->id, 'paiement', ''); +$result = restrictedArea($user, $object->element, $object->id, 'paiement'); // Security check if ($user->socid) $socid = $user->socid; diff --git a/htdocs/core/lib/security.lib.php b/htdocs/core/lib/security.lib.php index f8bde1ce489..c1eda701604 100644 --- a/htdocs/core/lib/security.lib.php +++ b/htdocs/core/lib/security.lib.php @@ -185,7 +185,7 @@ function restrictedArea($user, $features, $objectid = 0, $tableandshare = '', $f //dol_syslog("functions.lib:restrictedArea $feature, $objectid, $dbtablename, $feature2, $dbt_socfield, $dbt_select, $isdraft"); //print "user_id=".$user->id.", features=".$features.", feature2=".$feature2.", objectid=".$objectid; - //print ", dbtablename=".$dbtablename.", dbt_socfield=".$dbt_keyfield.", dbt_select=".$dbt_select; + //print ", dbtablename=".$tableandshare.", dbt_socfield=".$dbt_keyfield.", dbt_select=".$dbt_select; //print ", perm: ".$features."->".$feature2."=".($user->rights->$features->$feature2->lire)."
"; $parentfortableentity = ''; @@ -374,6 +374,8 @@ function restrictedArea($user, $features, $objectid = 0, $tableandshare = '', $f } elseif ($feature == 'salaries') { if (!$user->rights->salaries->delete) $deleteok = 0; + } elseif ($feature == 'payment') { + if (!$user->rights->facture->paiement) $deleteok = 0; } elseif ($feature == 'payment_supplier') { if (!$user->rights->fournisseur->facture->creer) { $deleteok = 0; } From a193474fa38046605fdca8cfabcad92a315242f8 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 22 May 2022 17:15:43 +0200 Subject: [PATCH 14/24] Update card.php --- htdocs/comm/propal/card.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php index 3e9c2cb4eeb..cb7e512bc36 100644 --- a/htdocs/comm/propal/card.php +++ b/htdocs/comm/propal/card.php @@ -121,9 +121,7 @@ $usercansend = (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights-> $usercancreateorder = $user->rights->commande->creer; $usercancreateinvoice = $user->rights->facture->creer; $usercancreatecontract = $user->rights->contrat->creer; -if (!empty($conf->ficheinter->enabled)) { - $usercancreateintervention = $user->rights->ficheinter->creer; -} +$usercancreateintervention = empty($conf->ficheinter->enabled) ? 0 : $user->rights->ficheinter->creer; $usercancreatepurchaseorder = ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer); $permissionnote = $usercancreate; // Used by the include of actions_setnotes.inc.php From 460687504cb1b1973a04e6c0aa490883afd35bc2 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 22 May 2022 17:16:48 +0200 Subject: [PATCH 15/24] Update card.php --- htdocs/comm/propal/card.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php index 3e9c2cb4eeb..cb7e512bc36 100644 --- a/htdocs/comm/propal/card.php +++ b/htdocs/comm/propal/card.php @@ -121,9 +121,7 @@ $usercansend = (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights-> $usercancreateorder = $user->rights->commande->creer; $usercancreateinvoice = $user->rights->facture->creer; $usercancreatecontract = $user->rights->contrat->creer; -if (!empty($conf->ficheinter->enabled)) { - $usercancreateintervention = $user->rights->ficheinter->creer; -} +$usercancreateintervention = empty($conf->ficheinter->enabled) ? 0 : $user->rights->ficheinter->creer; $usercancreatepurchaseorder = ($user->rights->fournisseur->commande->creer || $user->rights->supplier_order->creer); $permissionnote = $usercancreate; // Used by the include of actions_setnotes.inc.php From e437a53657d378ac765d117359f190442cc959a7 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Mon, 23 May 2022 21:40:47 +0200 Subject: [PATCH 16/24] Typo --- htdocs/accountancy/class/accountingaccount.class.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/accountancy/class/accountingaccount.class.php b/htdocs/accountancy/class/accountingaccount.class.php index a4dcac8c1ad..b50139a2d76 100644 --- a/htdocs/accountancy/class/accountingaccount.class.php +++ b/htdocs/accountancy/class/accountingaccount.class.php @@ -732,11 +732,11 @@ class AccountingAccount extends CommonObject global $hookmanager; // Instantiate hooks for external modules - $hookmanager->initHooks(array('accoutancyBindingCalculation')); + $hookmanager->initHooks(array('accountancyBindingCalculation')); - // Execute hook accoutancyBindingCalculation + // Execute hook accountancyBindingCalculation $parameters = array('buyer' => $buyer, 'seller' => $seller, 'product' => $product, 'facture' => $facture, 'factureDet' => $factureDet ,'accountingAccount'=>$accountingAccount, $type); - $reshook = $hookmanager->executeHooks('accoutancyBindingCalculation', $parameters); // Note that $action and $object may have been modified by some hooks + $reshook = $hookmanager->executeHooks('accountancyBindingCalculation', $parameters); // Note that $action and $object may have been modified by some hooks if (empty($reshook)) { if ($type == 'customer') { From c5bbbd88afb528e3279e9ec214b553840f6ffe7f Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Tue, 24 May 2022 07:14:22 +0200 Subject: [PATCH 17/24] Merge problem --- htdocs/langs/en_US/errors.lang | 8 -------- 1 file changed, 8 deletions(-) diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang index 61f0c4d71bd..1a4250834b2 100644 --- a/htdocs/langs/en_US/errors.lang +++ b/htdocs/langs/en_US/errors.lang @@ -313,8 +313,6 @@ WarningAvailableOnlyForHTTPSServers=Available only if using HTTPS secured connec WarningModuleXDisabledSoYouMayMissEventHere=Module %s has not been enabled. So you may miss a lot of event here. WarningPaypalPaymentNotCompatibleWithStrict=The value 'Strict' makes the online payment features not working correctly. Use 'Lax' instead. -<<<<<<< HEAD -<<<<<<< HEAD # Validate RequireValidValue = Value not valid RequireAtLeastXString = Requires at least %s character(s) @@ -335,9 +333,3 @@ BadSetupOfField = Error bad setup of field BadSetupOfFieldClassNotFoundForValidation = Error bad setup of field : Class not found for validation BadSetupOfFieldFileNotFound = Error bad setup of field : File not found for inclusion BadSetupOfFieldFetchNotCallable = Error bad setup of field : Fetch not callable on class -======= -======= ->>>>>>> branch '13.0' of git@github.com:Dolibarr/dolibarr.git ->>>>>>> branch '14.0' of git@github.com:Dolibarr/dolibarr.git -======= ->>>>>>> branch '14.0' of git@github.com:Dolibarr/dolibarr.git From 192f273e27dca33865cad196c6b041556bca1e56 Mon Sep 17 00:00:00 2001 From: kamel Date: Tue, 24 May 2022 15:02:35 +0200 Subject: [PATCH 18/24] FIX: Fix show errors in card --- htdocs/contrat/card.php | 7 +++---- htdocs/fichinter/card.php | 10 ++++++++-- htdocs/projet/tasks/task.php | 3 +++ 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/htdocs/contrat/card.php b/htdocs/contrat/card.php index 1466f595b3d..624d59b0d94 100644 --- a/htdocs/contrat/card.php +++ b/htdocs/contrat/card.php @@ -236,10 +236,6 @@ if (empty($reshook)) { } $id = $object->create($user); - if ($id < 0) { - setEventMessages($object->error, $object->errors, 'errors'); - } - if ($id > 0) { dol_include_once('/'.$element.'/class/'.$subelement.'.class.php'); @@ -351,6 +347,9 @@ if (empty($reshook)) { setEventMessages($object->error, $object->errors, 'errors'); $error++; } + if ($error) { + $action = 'create'; + } } else { $result = $object->create($user); if ($result > 0) { diff --git a/htdocs/fichinter/card.php b/htdocs/fichinter/card.php index 225f9ebacb8..8fb73d1b780 100644 --- a/htdocs/fichinter/card.php +++ b/htdocs/fichinter/card.php @@ -375,11 +375,15 @@ if (empty($reshook)) { } } } else { - $mesg = $srcobject->error; + $langs->load("errors"); + setEventMessages($srcobject->error, $srcobject->errors, 'errors'); + $action = 'create'; $error++; } } else { - $mesg = $object->error; + $langs->load("errors"); + setEventMessages($object->error, $object->errors, 'errors'); + $action = 'create'; $error++; } } else { @@ -403,12 +407,14 @@ if (empty($reshook)) { $langs->load("errors"); setEventMessages($object->error, $object->errors, 'errors'); $action = 'create'; + $error++; } } } } else { $mesg = $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ThirdParty")); $action = 'create'; + $error++; } } elseif ($action == 'update' && $user->rights->ficheinter->creer) { $object->socid = $socid; diff --git a/htdocs/projet/tasks/task.php b/htdocs/projet/tasks/task.php index bec61ec0f48..86ac5b3caab 100644 --- a/htdocs/projet/tasks/task.php +++ b/htdocs/projet/tasks/task.php @@ -116,7 +116,10 @@ if ($action == 'update' && !GETPOST("cancel") && $user->rights->projet->creer) { $result = $object->update($user); if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); + $action='edit'; } + } else { + $action = 'edit'; } } else { $action = 'edit'; From 79462c43fa57d754ddb02746a376275f14ebe2b8 Mon Sep 17 00:00:00 2001 From: kamel Date: Tue, 24 May 2022 15:13:19 +0200 Subject: [PATCH 19/24] FIX: Fix get origin from other than supplier proposal when add a new supplier proposal --- htdocs/supplier_proposal/card.php | 32 +++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/htdocs/supplier_proposal/card.php b/htdocs/supplier_proposal/card.php index 1500f00ba91..4ad5fa9ff56 100644 --- a/htdocs/supplier_proposal/card.php +++ b/htdocs/supplier_proposal/card.php @@ -303,8 +303,20 @@ if (empty($reshook)) { if (!$error) { if ($origin && $originid) { - $element = 'supplier_proposal'; - $subelement = 'supplier_proposal'; + $element = $subelement = $origin; + if (preg_match('/^([^_]+)_([^_]+)/i', $origin, $regs)) { + $element = $regs[1]; + $subelement = $regs[2]; + } + + // For compatibility + if ($element == 'order') { + $element = $subelement = 'commande'; + } + if ($element == 'propal') { + $element = 'comm/propal'; + $subelement = 'propal'; + } $object->origin = $origin; $object->origin_id = $originid; @@ -1063,8 +1075,20 @@ if ($action == 'create') { // Load objectsrc if (!empty($origin) && !empty($originid)) { - $element = 'supplier_proposal'; - $subelement = 'supplier_proposal'; + $element = $subelement = GETPOST('origin'); + if (preg_match('/^([^_]+)_([^_]+)/i', GETPOST('origin'), $regs)) { + $element = $regs[1]; + $subelement = $regs[2]; + } + + // For compatibility + if ($element == 'order' || $element == 'commande') { + $element = $subelement = 'commande'; + } + if ($element == 'propal') { + $element = 'comm/propal'; + $subelement = 'propal'; + } dol_include_once('/'.$element.'/class/'.$subelement.'.class.php'); From 9d31d6448c3c19acaea2e8a109ff52f6a1c78775 Mon Sep 17 00:00:00 2001 From: John BOTELLA Date: Wed, 25 May 2022 09:59:45 +0200 Subject: [PATCH 20/24] Fix btn confirm url --- htdocs/core/lib/functions.lib.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 43a549655b9..93fbf98e81b 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -10043,9 +10043,11 @@ function dolGetButtonAction($label, $html = '', $actionType = 'default', $url = // Js Confirm button if ($userRight && !empty($params['confirm'])) { if (!is_array($params['confirm'])) { - $params['confirm'] = array( - 'url' => $url . (strpos($url, '?') > 0 ? '&' : '?') . 'confirm=yes' - ); + $params['confirm'] = array(); + } + + if (empty($params['confirm'])) { + $params['confirm']['url'] = $url . (strpos($url, '?') > 0 ? '&' : '?') . 'confirm=yes'; } // for js desabled compatibility set $url as call to confirm action and $params['confirm']['url'] to confirmed action From e07827a0befca2d2a0c28a1edf7262a57889cf8a Mon Sep 17 00:00:00 2001 From: John BOTELLA Date: Wed, 25 May 2022 10:03:08 +0200 Subject: [PATCH 21/24] Fix btn confirm url --- 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 93fbf98e81b..99320a47072 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -10046,7 +10046,7 @@ function dolGetButtonAction($label, $html = '', $actionType = 'default', $url = $params['confirm'] = array(); } - if (empty($params['confirm'])) { + if (empty($params['confirm']['url'])) { $params['confirm']['url'] = $url . (strpos($url, '?') > 0 ? '&' : '?') . 'confirm=yes'; } From 4e289741f9bc0c0e6cc057bfa8c01847107d5a4b Mon Sep 17 00:00:00 2001 From: Florian HENRY Date: Wed, 25 May 2022 16:59:23 +0200 Subject: [PATCH 22/24] fix: extrafields chkbxlst or checkbox or badly displayed in line object --- htdocs/core/class/commonobject.class.php | 2 +- htdocs/theme/eldy/global.inc.php | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 8df70054d11..9dad6b49279 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -7571,7 +7571,7 @@ abstract class CommonObject if ($display_type == 'card') { $out .= ''; } elseif ($display_type == 'line') { - $out .= '
'; + $out .= '
'; } switch ($mode) { diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index 9eb479d93ad..61b60a00644 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -7104,6 +7104,11 @@ if (!empty($conf->global->THEME_CUSTOM_CSS)) { ?> + div.extra_inline_chkbxlst, + div.extra_inline_checkbox { + min-width:150px; + } + /* Must be at end */ div.flot-text .flot-tick-label .tickLabel { color: unset; From f1914ff66f248ac20bee36eb96bd891a15427f14 Mon Sep 17 00:00:00 2001 From: kamel Date: Wed, 25 May 2022 18:02:18 +0200 Subject: [PATCH 23/24] FIX: Show sellist type of extrafield when none category selected --- htdocs/core/class/extrafields.class.php | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index 7a449f3e7ea..6e4f6892e05 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -1766,15 +1766,18 @@ class ExtraFields } } } else { - require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; - $toprint = array(); $obj = $this->db->fetch_object($resql); - $c = new Categorie($this->db); - $c->fetch($obj->rowid); - $ways = $c->print_all_ways(); // $ways[0] = "ccc2 >> ccc2a >> ccc2a1" with html formatted text - foreach ($ways as $way) { - $toprint[] = '
  • color ? ' style="background: #'.$c->color.';"' : ' style="background: #bbb"').'>'.img_object('', 'category').' '.$way.'
  • '; + if ($obj->rowid) { + require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php'; + $c = new Categorie($this->db); + $result = $c->fetch($obj->rowid); + if ($result > 0) { + $ways = $c->print_all_ways(); // $ways[0] = "ccc2 >> ccc2a >> ccc2a1" with html formatted text + foreach ($ways as $way) { + $toprint[] = '
  • color ? ' style="background: #' . $c->color . ';"' : ' style="background: #bbb"') . '>' . img_object('', 'category') . ' ' . $way . '
  • '; + } + } } $value = '
      '.implode(' ', $toprint).'
    '; } From c9eda09964711a9cdc12b5be2c63331196ccbb92 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 31 May 2022 14:30:47 +0200 Subject: [PATCH 24/24] FIX ODT generation of BOM document --- htdocs/admin/bom.php | 23 +++++++++--------- htdocs/core/lib/doc.lib.php | 4 +-- .../bom/doc/doc_generic_bom_odt.modules.php | 14 ++++++++++- .../doctemplates/boms/template_bom.odt | Bin 17674 -> 29535 bytes 4 files changed, 26 insertions(+), 15 deletions(-) diff --git a/htdocs/admin/bom.php b/htdocs/admin/bom.php index a36c3698306..f8c2cf0bc06 100644 --- a/htdocs/admin/bom.php +++ b/htdocs/admin/bom.php @@ -91,7 +91,7 @@ if ($action == 'updateMask') { header("Location: ".DOL_URL_ROOT."/document.php?modulepart=bom&file=SPECIMEN.pdf"); return; } else { - setEventMessages($module->error, null, 'errors'); + setEventMessages($module->error, $module->errors, 'errors'); dol_syslog($module->error, LOG_ERR); } } else { @@ -174,7 +174,7 @@ $head = bomAdminPrepareHead(); print dol_get_fiche_head($head, 'settings', $langs->trans("BOMs"), -1, 'bom'); /* - * BOMs Numbering model + * Numbering module */ print load_fiche_titre($langs->trans("BOMsNumberingModules"), '', ''); @@ -200,10 +200,11 @@ foreach ($dirmodels as $reldir) { while (($file = readdir($handle)) !== false) { if (substr($file, 0, 8) == 'mod_bom_' && substr($file, dol_strlen($file) - 3, 3) == 'php') { $file = substr($file, 0, dol_strlen($file) - 4); + $classname = $file; require_once $dir.$file.'.php'; - $module = new $file($db); + $module = new $classname($db); // Show modules according to features level if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) { @@ -218,7 +219,7 @@ foreach ($dirmodels as $reldir) { print $module->info(); print ''; - // Show example of numbering model + // Show example of numbering module print ''; $tmp = $module->getExample(); if (preg_match('/^Error/', $tmp)) { @@ -275,13 +276,13 @@ foreach ($dirmodels as $reldir) { } print ""; print "
    "; -print "
    \n"; /* * Document templates generators */ +print "
    \n"; print load_fiche_titre($langs->trans("BOMsModelModule"), '', ''); // Load array def with activated templates @@ -305,8 +306,8 @@ if ($resql) { print '
    '; -print "\n"; -print "\n"; +print '
    '; +print ''; print ''; print ''; print '\n"; @@ -362,13 +363,13 @@ foreach ($dirmodels as $reldir) { // Active if (in_array($name, $def)) { print ''; } else { print '"; } @@ -377,7 +378,7 @@ foreach ($dirmodels as $reldir) { if ($conf->global->BOM_ADDON_PDF == $name) { print img_picto($langs->trans("Default"), 'on'); } else { - print 'scandir.'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"), 'off').''; + print 'scandir).'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"), 'off').''; } print ''; @@ -419,12 +420,12 @@ foreach ($dirmodels as $reldir) { print '
    '.$langs->trans("Name").''.$langs->trans("Description").''.$langs->trans("Status")."'."\n"; - print ''; + print ''; print img_picto($langs->trans("Enabled"), 'switch_on'); print ''; print ''."\n"; - print 'scandir.'&label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"), 'switch_off').''; + print 'scandir).'&label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"), 'switch_off').''; print "
    '; print '
    '; -print "
    "; /* * Other options */ +print "
    "; print load_fiche_titre($langs->trans("OtherOptions"), '', ''); print '
    '; diff --git a/htdocs/core/lib/doc.lib.php b/htdocs/core/lib/doc.lib.php index 97eaa7d0b9e..d1a7cea5d9a 100644 --- a/htdocs/core/lib/doc.lib.php +++ b/htdocs/core/lib/doc.lib.php @@ -128,11 +128,9 @@ function doc_getlinedesc($line, $outputlangs, $hideref = 0, $hidedesc = 0, $issu } else { $ref_prodserv = $prodser->ref; // Show local ref only } - - $ref_prodserv .= " - "; } - $libelleproduitservice = $prefix_prodserv.$ref_prodserv.$libelleproduitservice; + $libelleproduitservice = $prefix_prodserv.$ref_prodserv.($libelleproduitservice ? " - " : "").$libelleproduitservice; } } diff --git a/htdocs/core/modules/bom/doc/doc_generic_bom_odt.modules.php b/htdocs/core/modules/bom/doc/doc_generic_bom_odt.modules.php index 463cbc46a24..946d9f32649 100644 --- a/htdocs/core/modules/bom/doc/doc_generic_bom_odt.modules.php +++ b/htdocs/core/modules/bom/doc/doc_generic_bom_odt.modules.php @@ -169,7 +169,7 @@ class doc_generic_bom_odt extends ModelePDFBom $texte .= '
    '; // Show list of found files foreach ($listoffiles as $file) { - $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').'
    '; + $texte .= '- '.$file['name'].' '.img_picto('', 'listlight').'
    '; } $texte .= '
    '; } @@ -406,10 +406,22 @@ class doc_generic_bom_odt extends ModelePDFBom $foundtagforlines = 0; dol_syslog($e->getMessage(), LOG_INFO); } + if ($foundtagforlines) { $linenumber = 0; foreach ($object->lines as $line) { $linenumber++; + + if ($line->fk_product > 0) { + $line->fetch_product(); + + $line->product_ref = $line->product->ref; + $line->product_desc = $line->product->description; + $line->product_label = $line->product->label; + $line->product_type = $line->product->type; + $line->product_barcode = $line->product->barcode; + } + $tmparray = $this->get_substitutionarray_lines($line, $outputlangs, $linenumber); complete_substitutions_array($tmparray, $outputlangs, $object, $line, "completesubstitutionarray_lines"); // Call the ODTSubstitutionLine hook diff --git a/htdocs/install/doctemplates/boms/template_bom.odt b/htdocs/install/doctemplates/boms/template_bom.odt index 701753c3dba164ffa6f6b482e4418efe1993e557..573e97a0a8442cf83392f70460cc263c97943080 100644 GIT binary patch literal 29535 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 U?8k2r;wO;e_a~S5x8HmJ3;U(mBLDyZ