From e1fee2e14c83fe7e0b0517c7be77d135a1ed01c5 Mon Sep 17 00:00:00 2001 From: Gauthier PC portable 024 Date: Wed, 22 Mar 2023 16:29:18 +0100 Subject: [PATCH 1/5] FIX : missing column default workstation --- htdocs/product/list.php | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/htdocs/product/list.php b/htdocs/product/list.php index 356253cfab7..88fea64b6fc 100644 --- a/htdocs/product/list.php +++ b/htdocs/product/list.php @@ -43,6 +43,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/product.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; +require_once DOL_DOCUMENT_ROOT.'/workstation/class/workstation.class.php'; if (isModEnabled('categorie')) { require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcategory.class.php'; @@ -230,6 +231,7 @@ $arrayfields = array( 'p.volume'=>array('label'=>'Volume', 'checked'=>0, 'enabled'=>(isModEnabled("product") && empty($conf->global->PRODUCT_DISABLE_VOLUME) && $type != '1'), 'position'=>30), 'p.volume_units'=>array('label'=>'VolumeUnits', 'checked'=>0, 'enabled'=>(isModEnabled("product") && empty($conf->global->PRODUCT_DISABLE_VOLUME) && $type != '1'), 'position'=>31), 'cu.label'=>array('label'=>"DefaultUnitToShow", 'checked'=>0, 'enabled'=>(isModEnabled("product") && !empty($conf->global->PRODUCT_USE_UNITS)), 'position'=>32), + 'p.fk_default_worksation'=>array('label'=>'DefaultWorkstation', 'checked'=>0, 'enabled'=>isModEnabled('workstation') && $type == 1, 'position'=>33), 'p.sellprice'=>array('label'=>"SellingPrice", 'checked'=>1, 'enabled'=>empty($conf->global->PRODUIT_MULTIPRICES), 'position'=>40), 'p.tva_tx'=>array('label'=>"VATRate", 'checked'=>0, 'enabled'=>empty($conf->global->PRODUIT_MULTIPRICES), 'position'=>41), 'p.minbuyprice'=>array('label'=>"BuyingPriceMinShort", 'checked'=>1, 'enabled'=>(!empty($user->rights->fournisseur->lire)), 'position'=>42), @@ -409,7 +411,10 @@ if ($search_type != '' && $search_type != '-1') { $sql = 'SELECT p.rowid, p.ref, p.label, p.fk_product_type, p.barcode, p.price, p.tva_tx, p.price_ttc, p.price_base_type, p.entity,'; $sql .= ' p.fk_product_type, p.duration, p.finished, p.tosell, p.tobuy, p.seuil_stock_alerte, p.desiredstock,'; -$sql .= ' p.tobatch,'; +$sql .= ' p.tobatch, '; +if (isModEnabled('workstation')) { + $sql .= ' p.fk_default_workstation, ws.status as status_workstation, ws.ref as ref_workstation, '; +} if (empty($conf->global->MAIN_PRODUCT_PERENTITY_SHARED)) { $sql .= " p.accountancy_code_sell, p.accountancy_code_sell_intra, p.accountancy_code_sell_export, p.accountancy_code_buy, p.accountancy_code_buy_intra, p.accountancy_code_buy_export,"; } else { @@ -438,6 +443,9 @@ $sql .= $hookmanager->resPrint; $sqlfields = $sql; // $sql fields to remove for count total $sql .= ' FROM '.MAIN_DB_PREFIX.'product as p'; +if (isModEnabled('workstation')) { + $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "workstation_workstation ws ON (p.fk_default_workstation = ws.rowid)"; +} if (!empty($conf->global->MAIN_PRODUCT_PERENTITY_SHARED)) { $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product_perentity as ppe ON ppe.fk_product = p.rowid AND ppe.entity = " . ((int) $conf->entity); } @@ -1015,6 +1023,12 @@ if (!empty($arrayfields['cu.label']['checked'])) { print ''; } +// Default workstation +if (!empty($arrayfields['p.fk_default_worksation']['checked'])) { + print ''; + print ''; +} + // Sell price if (!empty($arrayfields['p.sellprice']['checked'])) { print ''; @@ -1230,6 +1244,9 @@ if (!empty($arrayfields['p.volume_units']['checked'])) { if (!empty($arrayfields['cu.label']['checked'])) { print_liste_field_titre($arrayfields['cu.label']['label'], $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder, 'center '); } +if (!empty($arrayfields['p.fk_default_worksation']['checked'])) { + print_liste_field_titre($arrayfields['p.fk_default_worksation']['label'], $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder, 'center '); +} if (!empty($arrayfields['p.sellprice']['checked'])) { print_liste_field_titre($arrayfields['p.sellprice']['label'], $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder, 'right '); } @@ -1665,6 +1682,25 @@ while ($i < min($num, $limit)) { } } + // Default Workstation + if (!empty($arrayfields['p.fk_default_worksation']['checked'])) { + + print ''; + if (!empty($obj->fk_default_workstation)) { + $static_ws = new Workstation($db); + $static_ws->id = $obj->fk_default_workstation; + $static_ws->ref = $obj->ref_workstation; + $static_ws->status = $obj->status_workstation; + + print $static_ws->getNomUrl(1); + } + print ''; + if (!$i) { + $totalarray['nbfield']++; + } + + } + // Sell price if (!empty($arrayfields['p.sellprice']['checked'])) { print ''; From ffae1ac0d2cbd22e78ac97e1de430c6e464e0b5a Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Wed, 22 Mar 2023 15:35:49 +0000 Subject: [PATCH 2/5] Fixing style errors. --- htdocs/product/list.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/htdocs/product/list.php b/htdocs/product/list.php index 88fea64b6fc..daeeea9e4b8 100644 --- a/htdocs/product/list.php +++ b/htdocs/product/list.php @@ -1684,7 +1684,6 @@ while ($i < min($num, $limit)) { // Default Workstation if (!empty($arrayfields['p.fk_default_worksation']['checked'])) { - print ''; if (!empty($obj->fk_default_workstation)) { $static_ws = new Workstation($db); @@ -1698,7 +1697,6 @@ while ($i < min($num, $limit)) { if (!$i) { $totalarray['nbfield']++; } - } // Sell price From a3762281cb041752b37f45469b5016cc90af867e Mon Sep 17 00:00:00 2001 From: Gauthier PC portable 024 Date: Wed, 22 Mar 2023 17:32:13 +0100 Subject: [PATCH 3/5] FIX : feedbacks --- htdocs/product/list.php | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/htdocs/product/list.php b/htdocs/product/list.php index 88fea64b6fc..cf5798bce7b 100644 --- a/htdocs/product/list.php +++ b/htdocs/product/list.php @@ -70,6 +70,7 @@ $search_ref = GETPOST("search_ref", 'alpha'); $search_ref_supplier = GETPOST("search_ref_supplier", 'alpha'); $search_barcode = GETPOST("search_barcode", 'alpha'); $search_label = GETPOST("search_label", 'alpha'); +$search_default_workstation = GETPOST("search_default_workstation", 'alpha'); $search_type = GETPOST("search_type", 'int'); $search_vatrate = GETPOST("search_vatrate", 'alpha'); $searchCategoryProductOperator = 0; @@ -231,7 +232,7 @@ $arrayfields = array( 'p.volume'=>array('label'=>'Volume', 'checked'=>0, 'enabled'=>(isModEnabled("product") && empty($conf->global->PRODUCT_DISABLE_VOLUME) && $type != '1'), 'position'=>30), 'p.volume_units'=>array('label'=>'VolumeUnits', 'checked'=>0, 'enabled'=>(isModEnabled("product") && empty($conf->global->PRODUCT_DISABLE_VOLUME) && $type != '1'), 'position'=>31), 'cu.label'=>array('label'=>"DefaultUnitToShow", 'checked'=>0, 'enabled'=>(isModEnabled("product") && !empty($conf->global->PRODUCT_USE_UNITS)), 'position'=>32), - 'p.fk_default_worksation'=>array('label'=>'DefaultWorkstation', 'checked'=>0, 'enabled'=>isModEnabled('workstation') && $type == 1, 'position'=>33), + 'p.fk_default_workstation'=>array('label'=>'DefaultWorkstation', 'checked'=>0, 'enabled'=>isModEnabled('workstation') && $type == 1, 'position'=>33), 'p.sellprice'=>array('label'=>"SellingPrice", 'checked'=>1, 'enabled'=>empty($conf->global->PRODUIT_MULTIPRICES), 'position'=>40), 'p.tva_tx'=>array('label'=>"VATRate", 'checked'=>0, 'enabled'=>empty($conf->global->PRODUIT_MULTIPRICES), 'position'=>41), 'p.minbuyprice'=>array('label'=>"BuyingPriceMinShort", 'checked'=>1, 'enabled'=>(!empty($user->rights->fournisseur->lire)), 'position'=>42), @@ -333,6 +334,7 @@ if (empty($reshook)) { $search_ref = ""; $search_ref_supplier = ""; $search_label = ""; + $search_default_workstation = ""; $search_barcode = ""; $searchCategoryProductOperator = 0; $searchCategoryProductList = array(); @@ -501,6 +503,9 @@ if ($search_ref) { if ($search_label) { $sql .= natural_search('p.label', $search_label); } +if ($search_default_workstation) { + $sql .= natural_search('ws.ref', $search_default_workstation); +} if ($search_barcode) { $sql .= natural_search('p.barcode', $search_barcode); } @@ -707,6 +712,9 @@ if ($search_barcode) { if ($search_label) { $param .= "&search_label=".urlencode($search_label); } +if ($search_default_workstation) { + $param .= "&search_default_workstation=".urlencode($search_default_workstation); +} if ($search_tosell != '') { $param .= "&search_tosell=".urlencode($search_tosell); } @@ -1024,8 +1032,9 @@ if (!empty($arrayfields['cu.label']['checked'])) { } // Default workstation -if (!empty($arrayfields['p.fk_default_worksation']['checked'])) { +if (!empty($arrayfields['p.fk_default_workstation']['checked'])) { print ''; + print ''; print ''; } @@ -1244,8 +1253,8 @@ if (!empty($arrayfields['p.volume_units']['checked'])) { if (!empty($arrayfields['cu.label']['checked'])) { print_liste_field_titre($arrayfields['cu.label']['label'], $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder, 'center '); } -if (!empty($arrayfields['p.fk_default_worksation']['checked'])) { - print_liste_field_titre($arrayfields['p.fk_default_worksation']['label'], $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder, 'center '); +if (!empty($arrayfields['p.fk_default_workstation']['checked'])) { + print_liste_field_titre($arrayfields['p.fk_default_workstation']['label'], $_SERVER['PHP_SELF'], 'ws.ref', '', $param, '', $sortfield, $sortorder); } if (!empty($arrayfields['p.sellprice']['checked'])) { print_liste_field_titre($arrayfields['p.sellprice']['label'], $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder, 'right '); @@ -1339,6 +1348,7 @@ print "\n"; $product_static = new Product($db); +$static_ws = new Workstation($db); $product_fourn = new ProductFournisseur($db); $i = 0; @@ -1683,11 +1693,10 @@ while ($i < min($num, $limit)) { } // Default Workstation - if (!empty($arrayfields['p.fk_default_worksation']['checked'])) { + if (!empty($arrayfields['p.fk_default_workstation']['checked'])) { - print ''; + print ''; if (!empty($obj->fk_default_workstation)) { - $static_ws = new Workstation($db); $static_ws->id = $obj->fk_default_workstation; $static_ws->ref = $obj->ref_workstation; $static_ws->status = $obj->status_workstation; From edbb58e55eaad11ccb33ed6493740e60a0d25eed Mon Sep 17 00:00:00 2001 From: Gauthier PC portable 024 Date: Thu, 23 Mar 2023 09:43:30 +0100 Subject: [PATCH 4/5] FIX : full group by handle --- htdocs/product/list.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/htdocs/product/list.php b/htdocs/product/list.php index cf5798bce7b..0145831d72a 100644 --- a/htdocs/product/list.php +++ b/htdocs/product/list.php @@ -600,6 +600,9 @@ $sql .= ' p.weight, p.weight_units, p.length, p.length_units, p.width, p.width_u if (!empty($conf->global->PRODUCT_USE_UNITS)) { $sql .= ', p.fk_unit, cu.label'; } +if (isModEnabled('workstation')) { + $sql .= ', p.fk_default_workstation, ws.status, ws.ref '; +} if (isModEnabled('variants') && (!empty($conf->global->PRODUIT_ATTRIBUTES_HIDECHILD) && !$show_childproducts)) { $sql .= ', pac.rowid'; From 7c989c31280d7257f7330ac3f93f89b2b40ad80e Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Thu, 23 Mar 2023 08:51:23 +0000 Subject: [PATCH 5/5] Fixing style errors. --- htdocs/product/list.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/htdocs/product/list.php b/htdocs/product/list.php index 0145831d72a..4a00c711040 100644 --- a/htdocs/product/list.php +++ b/htdocs/product/list.php @@ -1697,7 +1697,6 @@ while ($i < min($num, $limit)) { // Default Workstation if (!empty($arrayfields['p.fk_default_workstation']['checked'])) { - print ''; if (!empty($obj->fk_default_workstation)) { $static_ws->id = $obj->fk_default_workstation; @@ -1710,7 +1709,6 @@ while ($i < min($num, $limit)) { if (!$i) { $totalarray['nbfield']++; } - } // Sell price