|
|
@@ -28,7 +28,7 @@ class OrderPackageCommoditySerialNumberService
|
|
|
$query->with('commodity', 'serialNumbers');
|
|
|
}])->whereIn('order_id', $orderQuery)->get();
|
|
|
|
|
|
- $createdModels = $this->getCreateModelBy($orderHeaders, $orderPackages);
|
|
|
+ $createdModels = $this->getCreateParamsBy($orderHeaders, $orderPackages);
|
|
|
|
|
|
$regroupParams = $this->regroupOrderPackage($orderPackages);
|
|
|
|
|
|
@@ -97,7 +97,7 @@ class OrderPackageCommoditySerialNumberService
|
|
|
if($delete>0)LogService::log(__CLASS__,'Delete OrderPackageCommoditySerialNumber',json_encode($deleteParams));
|
|
|
}
|
|
|
|
|
|
- public function getCreateModelBy($orderHeaders, $orderPackages): array
|
|
|
+ public function getCreateParamsBy($orderHeaders, $orderPackages): array
|
|
|
{
|
|
|
/** @var DataHandlerService $dataHandlerService */
|
|
|
$dataHandlerService = app(DataHandlerService::class);
|
|
|
@@ -117,26 +117,41 @@ class OrderPackageCommoditySerialNumberService
|
|
|
if (!$orderPackage) continue;
|
|
|
$orderPackageCommodityMap = [];
|
|
|
if(!isset($orderPackage['commodities']))continue;
|
|
|
+
|
|
|
foreach ($orderPackage['commodities'] as $orderPackageCommodity) {
|
|
|
$sku = $orderPackageCommodity['commodity']['sku'] ?? '';
|
|
|
if($sku === '')continue;
|
|
|
$orderPackageCommodityMap[$sku] = $orderPackageCommodity;
|
|
|
}
|
|
|
|
|
|
- $oracleDocOrderSubSerialNo = $actAllocationDetail['oracleDocOrderSubSerialNo'];
|
|
|
- if(!$oracleDocOrderSubSerialNo)continue;
|
|
|
- $createParams = $this->getCreateModel($oracleDocOrderSubSerialNo, $orderPackageCommodityMap);
|
|
|
- if (count($createParams) == 0) continue;
|
|
|
- $sku = $oracleDocOrderSubSerialNo['sku'];
|
|
|
+ $oracleDocOrderSubSerialNos = $actAllocationDetail['oracleDocOrderSubSerialNos'];
|
|
|
+ $createParams = $this->getCreateModelsBy($oracleDocOrderSubSerialNos,$orderPackageCommodityMap);
|
|
|
if (!isset($orderPackageSerialNumbers[$logisticNumber])) $orderPackageSerialNumbers[$logisticNumber] = [];
|
|
|
- if (!isset($orderPackageSerialNumbers[$logisticNumber][$sku])) $orderPackageSerialNumbers[$logisticNumber][$sku] = [];
|
|
|
- $orderPackageSerialNumbers[$logisticNumber][$sku][$createParams['serial_number']] = $createParams;
|
|
|
+ foreach ($createParams as $sku => $createParam) {
|
|
|
+ if(!isset($orderPackageSerialNumbers[$logisticNumber][$sku])){
|
|
|
+ foreach ($createParam as $serialNumber=>$item) {
|
|
|
+ $orderPackageSerialNumbers[$logisticNumber][$sku][$serialNumber] = $item;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else $orderPackageSerialNumbers[$logisticNumber][$sku] = $createParam;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
return $orderPackageSerialNumbers;
|
|
|
}
|
|
|
|
|
|
- public function getCreateModel($oracleDocOrderSubSerialNo, $orderPackageCommodityMap)
|
|
|
+ public function getCreateModelsBy($oracleDocOrderSubSerialNos,$orderPackageCommodityMap): array
|
|
|
+ {
|
|
|
+ $createdParams = [];
|
|
|
+ foreach ($oracleDocOrderSubSerialNos as $oracleDocOrderSubSerialNo) {
|
|
|
+ $model = $this->getCreateModel($oracleDocOrderSubSerialNo,$orderPackageCommodityMap);
|
|
|
+ $sku = $oracleDocOrderSubSerialNo['sku'];
|
|
|
+ $createdParams[$sku][$model['serial_number']] =$model;
|
|
|
+ }
|
|
|
+ return $createdParams;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function getCreateModel($oracleDocOrderSubSerialNo, $orderPackageCommodityMap): array
|
|
|
{
|
|
|
$orderPackageCommodity = $orderPackageCommodityMap[$oracleDocOrderSubSerialNo['sku']] ?? null;
|
|
|
if (!$orderPackageCommodity) return [];
|