From 1b4fb86c75338543db60f2b441a7e2b2e2c49e8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20A?= <35066297+c3do@users.noreply.github.com> Date: Fri, 23 Feb 2024 17:20:20 +0100 Subject: [PATCH] NEW Filter shipments by selecting multiple shipping methods (#28376) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Filter shipments by selecting multiple shipping methods * FIX GETPOST from «array» to «array:int» * FIX "Opening brace must be the last content on the line" * Update list.php --------- Co-authored-by: Laurent Destailleur --- htdocs/expedition/list.php | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/htdocs/expedition/list.php b/htdocs/expedition/list.php index b452d32fc75..28494156eb2 100644 --- a/htdocs/expedition/list.php +++ b/htdocs/expedition/list.php @@ -55,7 +55,7 @@ $search_ref_exp = GETPOST("search_ref_exp", 'alpha'); $search_ref_liv = GETPOST('search_ref_liv', 'alpha'); $search_ref_customer = GETPOST('search_ref_customer', 'alpha'); $search_company = GETPOST("search_company", 'alpha'); -$search_shipping_method_id = GETPOST('search_shipping_method_id'); +$search_shipping_method_ids = GETPOST('search_shipping_method_ids', 'array:int'); $search_tracking = GETPOST("search_tracking", 'alpha'); $search_town = GETPOST('search_town', 'alpha'); $search_zip = GETPOST('search_zip', 'alpha'); @@ -191,7 +191,7 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' $search_type = ''; $search_country = ''; $search_tracking = ''; - $search_shipping_method_id = ''; + $search_shipping_method_ids = []; $search_type_thirdparty = ''; $search_billed = ''; $search_datedelivery_start = ''; @@ -346,8 +346,8 @@ if ($search_state) { if ($search_country) { $sql .= " AND s.fk_pays IN (".$db->sanitize($search_country).')'; } -if ($search_shipping_method_id > 0) { - $sql .= " AND e.fk_shipping_method = ".((int) $search_shipping_method_id); +if (!empty($search_shipping_method_ids)) { + $sql .= " AND e.fk_shipping_method IN (".$db->sanitize(implode(',', $search_shipping_method_ids)).')'; } if ($search_tracking) { $sql .= natural_search("e.tracking_number", $search_tracking); @@ -536,8 +536,10 @@ if ($search_sale > 0) { if ($search_company) { $param .= "&search_company=".urlencode($search_company); } -if ($search_shipping_method_id) { - $param .= "&search_shipping_method_id=".urlencode($search_shipping_method_id); +if ($search_shipping_method_ids) { + foreach ($search_shipping_method_ids as $value) { + $param .= "&search_shipping_method_ids[]=".urlencode($value); + } } if ($search_tracking) { $param .= "&search_tracking=".urlencode($search_tracking); @@ -767,7 +769,7 @@ if (!empty($arrayfields['e.fk_shipping_method']['checked'])) { // Delivery method print ''; $shipment->fetch_delivery_methods(); - print $form->selectarray("search_shipping_method_id", $shipment->meths, $search_shipping_method_id, 1, 0, 0, "", 1, 0, 0, '', 'maxwidth150'); + print $form->selectarray("search_shipping_method_ids[]", $shipment->meths, $search_shipping_method_ids, 1, 0, 0, 'multiple', 1, 0, 0, '', 'maxwidth150'); print "\n"; } // Tracking number