From 63902e58384f04a2f9a24c00ab0edc63425c0101 Mon Sep 17 00:00:00 2001 From: Ramon Gutierrez Date: Tue, 30 Jul 2024 16:39:11 +0800 Subject: [PATCH] Restore inventory retrieval on processing form #806 --- .../JobOrderHandler/ResqJobOrderHandler.php | 98 +++++++++++-------- 1 file changed, 56 insertions(+), 42 deletions(-) diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index b2d6fd68..7abba636 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -2676,47 +2676,65 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $params['hubs'][$hub_id] = $hub; } + // get all enabled filters + $enabled_filter_str = $_ENV['ENABLED_HUB_FILTERS']; + $enabled_filters = explode(",", $enabled_filter_str); + + // if inventory filter is disabled, fetch inventory here + if (!in_array('InventoryHubFilter', $enabled_filters) || $this->skipInventoryCheck($obj->getCoordinates())) { + error_log("NO INVENTORY CHECKS, GETTING INVENTORY FOR JO " . $obj->getID()); + + // get battery (if any) + $skus = []; + $invoice = $obj->getInvoice(); + $inv_items = $invoice->getItems(); + foreach ($inv_items as $inv_item) + { + $batt = $inv_item->getBattery(); + if ($batt == null) + continue; + + $skus[] = $batt->getSapCode(); + } + + // get inventory + $mres = $motiv->getInventory($branch_codes, $skus); + $x = 0; + + error_log("TOTAL RESULTS FROM MOTIV: " . count($mres) . " OUT OF " . count($branch_codes) . " BRANCH CODES AND " . count($skus) . " SKUS"); + + foreach ($mres as $mres_item) + { + // check if we have a valid response from motiv, ignore otherwise + if (isset($mres_item['BranchCode'])) + { + $bcode = $mres_item['BranchCode']; + $inv_count = $mres_item['Quantity']; + if (isset($inv_data[$bcode])) + { + $hub_id = $inv_data[$bcode]['hub_id']; + + $params['hubs'][$hub_id]['inventory'] = $inv_count; + + error_log("SETTING HUB " . $hub_id . " INVENTORY TO " . $inv_count); + $x++; + } else { + error_log("CANNOT FIND BCODE FOR " . $bcode); + } + } else { + error_log("CANNOT FIND BCODE FOR RESULT: " . print_r($mres_item, true)); + } + } + + error_log("SET QUANTITY OF " . $x . " HUBS TO NON ZERO"); + + // error_log(print_r($mres, true)); + } + $params['obj'] = $obj; // get template to display $params['template'] = $this->getTwigTemplate('jo_processing_form'); - // NOTE: as we have included inventory now from the hub selector, we no longer have to redo it here - - // get battery (if any) - /* - $skus = []; - $invoice = $obj->getInvoice(); - $inv_items = $invoice->getItems(); - foreach ($inv_items as $inv_item) - { - $batt = $inv_item->getBattery(); - if ($batt == null) - continue; - - $skus[] = $batt->getSapCode(); - } - - // get inventory - $mres = $motiv->getInventory($branch_codes, $skus); - foreach ($mres as $mres_item) - { - // check if we have a valid response from motiv, ignore otherwise - if (isset($mres_item['BranchCode'])) - { - $bcode = $mres_item['BranchCode']; - $inv_count = $mres_item['Quantity']; - if (isset($inv_data[$bcode])) - { - $hub_id = $inv_data[$bcode]['hub_id']; - - $params['hubs'][$hub_id]['inventory'] = $inv_count; - } - } - } - */ - - // error_log(print_r($mres, true)); - return $params; } @@ -3027,11 +3045,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $params['hubs'][$hub_id] = $hub; } - - // NOTE: as we have included inventory now from the hub selector, we no longer have to redo it here - - //error_log("TOTAL HUBS FOUND WITH BRANCH CODE: " . count($inv_data)); - + // get all enabled filters $enabled_filter_str = $_ENV['ENABLED_HUB_FILTERS']; $enabled_filters = explode(",", $enabled_filter_str); -- 2.43.5