|
|
@@ -524,10 +524,13 @@ class OrderService
|
|
|
}
|
|
|
|
|
|
$insert_params = $this->getParamsByOrderHeader($orderHeaders,$owners_code_map,$logistics_code_map,$shop_name_map,$warehouses_code_map);
|
|
|
-
|
|
|
+ $update_params = $this->getUpdateParams($orderHeaders,$owners_code_map,$logistics_code_map,$shop_name_map,$warehouses_code_map);
|
|
|
if(count($insert_params)> 0){
|
|
|
$this->create($insert_params);
|
|
|
}
|
|
|
+ if(count($update_params)>1){
|
|
|
+ $this->batchUpdate($update_params);
|
|
|
+ }
|
|
|
$orderPackageService->createByWmsOrder($orderHeaders);
|
|
|
$order_nos = data_get($orderHeaders,'*.orderno');
|
|
|
unset($orderHeaders_map,$orders_code_map,$shop_name_map,$logistics_code_map,$owners_code_map);
|
|
|
@@ -543,7 +546,7 @@ class OrderService
|
|
|
$order_code_map[$order->code]= $order;
|
|
|
}
|
|
|
foreach ($orderHeaders_map as $orderHeader) {
|
|
|
- if($order_code_map[$orderHeader->orderno] ?? false)continue;
|
|
|
+ if($order_code_map[$orderHeader->orderno] ?? false)continue;
|
|
|
$owner = $owners_code_map[$orderHeader->customerid] ?? null;
|
|
|
$logistic = $logistics_code_map[$orderHeader->userdefine1] ?? null;
|
|
|
$warehouse=$warehouses_code_map[$orderHeader->warehouseid] ?? null;
|
|
|
@@ -570,6 +573,32 @@ class OrderService
|
|
|
return $params;
|
|
|
}
|
|
|
|
|
|
+ public function getUpdateParams($orderHeaders,$owners_code_map,$logistics_code_map,$shop_name_map,$warehouses_code_map)
|
|
|
+ {
|
|
|
+ if(!$orderHeaders){[];}
|
|
|
+ $orders = Order::query()->whereIn('code',data_get($orderHeaders,'*.orderno'))->get();
|
|
|
+ $update_params = [[
|
|
|
+ 'id','owner_id','wms_status','logistic_id','shop_id','consignee_name','consignee_phone','province','city','district','address','client_code','updated_at','wms_edittime','warehouse_id'
|
|
|
+ ]];
|
|
|
+ $orderHeaders_map = [];
|
|
|
+ foreach ($orderHeaders as $orderHeader) {
|
|
|
+ $orderHeaders_map[$orderHeader->orderno] = $orderHeader;
|
|
|
+ }
|
|
|
+ $updated_at = Carbon::now()->toDateTimeString();
|
|
|
+ $orders->each(function($order)use($orderHeaders_map,&$owners_code_map,&$logistics_code_map,&$shop_name_map,&$warehouses_code_map,&$update_params,$updated_at){
|
|
|
+ $order_header = $orderHeaders_map[$order->code] ?? null;
|
|
|
+ if(isset($order_header)){
|
|
|
+ $owner = $owners_code_map[$order_header->customerid] ?? null;
|
|
|
+ $logistic = $logistics_code_map[$order_header->userdefine1] ?? null;
|
|
|
+ $warehouse=$warehouses_code_map[$order_header->warehouseid] ?? null;
|
|
|
+ $key = ' owner_code='.$order_header->customerid.' name='.$order_header->issuepartyname ?? null;
|
|
|
+ $shop = $shop_name_map[$key] ?? null;
|
|
|
+ $this->UpdateOrderParamBy($shop, $logistic, $owner, $warehouse, $order, $order_header, $updated_at, $update_params);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return $update_params;
|
|
|
+ }
|
|
|
+
|
|
|
public function create(array $params){
|
|
|
if(count($params) == 0) return [];
|
|
|
try {
|
|
|
@@ -614,40 +643,7 @@ class OrderService
|
|
|
$owner = $dataHandlerService->getKeyValue(['code'=>$orderHeader->customerid] ,$owner_code_map);
|
|
|
$shop = $dataHandlerService->getKeyValue(['owner_id'=>$owner->id ?? '','name'=> $orderHeader->issuepartyname] ,$shops_map);
|
|
|
$warehouse=$dataHandlerService->getKeyValue(['code'=>$orderHeader->warehouseid],$warehouses_map);
|
|
|
- $shop_id = $shop->id ?? null;
|
|
|
- $logistic_id = $logistic->id ?? null;
|
|
|
- $owner_id = $owner->id ?? null;
|
|
|
- $warehouse_id=$warehouse->id??null;
|
|
|
-
|
|
|
- if(($order->wms_status !== $orderHeader->oracleBASCode_codename_c) ||
|
|
|
- ($order->logistic_id !== $logistic_id) ||
|
|
|
- ($order->shop_id !==$shop_id) ||
|
|
|
- ($order->owner_id !== $owner_id) ||
|
|
|
- ($order->consignee_name !== $orderHeader->c_contact) ||
|
|
|
- ($order->consignee_phone !== empty($orderHeader->c_tel2)?$orderHeader->c_tel1:$orderHeader->c_tel2) ||
|
|
|
- $order->province !== ($orderHeader->c_province) ||
|
|
|
- $order->city !== ($orderHeader->c_city) ||
|
|
|
- $order->district !== ($orderHeader->c_district) ||
|
|
|
- $order->address !== ($orderHeader->c_address1) ||
|
|
|
- $order->client_code !== ($orderHeader->soreference1) ||
|
|
|
- ($order->wms_edittime !== $orderHeader->edittime) ||
|
|
|
- ($order->warehouse_id!==$warehouse_id)){
|
|
|
- $updateParams[] = ['id'=>$order->id,
|
|
|
- 'owner_id' => $owner_id,
|
|
|
- 'wms_status' => $orderHeader->oracleBASCode_codename_c ?? '',
|
|
|
- 'logistic_id' => $logistic_id,
|
|
|
- 'shop_id' => $shop_id,
|
|
|
- 'consignee_name' => $orderHeader->c_contact,
|
|
|
- 'consignee_phone' => empty($orderHeader->c_tel2)?$orderHeader->c_tel1:$orderHeader->c_tel2,
|
|
|
- 'province' => $orderHeader->c_province,
|
|
|
- 'city' => $orderHeader->c_city,
|
|
|
- 'district' => $orderHeader->c_district,
|
|
|
- 'address' => $orderHeader->c_address1,
|
|
|
- 'client_code' => $orderHeader->soreference1,
|
|
|
- 'updated_at' =>$updated_at,
|
|
|
- 'wms_edittime' =>$orderHeader->edittime,
|
|
|
- 'warehouse_id'=>$warehouse_id];
|
|
|
- }
|
|
|
+ $this->UpdateOrderParamBy($shop, $logistic, $owner, $warehouse, $order, $orderHeader, $updated_at, $updateParams);
|
|
|
}
|
|
|
if(count($updateParams) > 1){
|
|
|
$this->batchUpdate($updateParams);
|
|
|
@@ -847,6 +843,7 @@ class OrderService
|
|
|
}
|
|
|
return $collect;
|
|
|
}
|
|
|
+
|
|
|
// TODO
|
|
|
public function getCreateOrderModels($orderHeader,$warehouse_map,$owner_map,$logistic_map,$shop_map)
|
|
|
{
|
|
|
@@ -877,4 +874,53 @@ class OrderService
|
|
|
]);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @param $shop
|
|
|
+ * @param $logistic
|
|
|
+ * @param $owner
|
|
|
+ * @param $warehouse
|
|
|
+ * @param $order
|
|
|
+ * @param $orderHeader
|
|
|
+ * @param string $updated_at
|
|
|
+ * @param $updateParams
|
|
|
+ * @return mixed
|
|
|
+ */
|
|
|
+ public function UpdateOrderParamBy($shop, $logistic, $owner, $warehouse, $order, $orderHeader, string $updated_at, &$updateParams)
|
|
|
+ {
|
|
|
+ $shop_id = $shop->id ?? null;
|
|
|
+ $logistic_id = $logistic->id ?? null;
|
|
|
+ $owner_id = $owner->id ?? null;
|
|
|
+ $warehouse_id = $warehouse->id ?? null;
|
|
|
+
|
|
|
+ if (($order->wms_status !== $orderHeader->oracleBASCode_codename_c) ||
|
|
|
+ ($order->logistic_id !== $logistic_id) ||
|
|
|
+ ($order->shop_id !== $shop_id) ||
|
|
|
+ ($order->owner_id !== $owner_id) ||
|
|
|
+ ($order->consignee_name !== $orderHeader->c_contact) ||
|
|
|
+ $order->consignee_phone !==( empty($orderHeader->c_tel2) ? $orderHeader->c_tel1 : $orderHeader->c_tel2) ||
|
|
|
+ $order->province !== ($orderHeader->c_province) ||
|
|
|
+ $order->city !== ($orderHeader->c_city) ||
|
|
|
+ $order->district !== ($orderHeader->c_district) ||
|
|
|
+ $order->address !== ($orderHeader->c_address1) ||
|
|
|
+ $order->client_code !== ($orderHeader->soreference1) ||
|
|
|
+ ($order->wms_edittime !== $orderHeader->edittime) ||
|
|
|
+ ($order->warehouse_id !== $warehouse_id)) {
|
|
|
+ $updateParams[] = ['id' => $order->id,
|
|
|
+ 'owner_id' => $owner_id,
|
|
|
+ 'wms_status' => $orderHeader->oracleBASCode_codename_c ?? '',
|
|
|
+ 'logistic_id' => $logistic_id,
|
|
|
+ 'shop_id' => $shop_id,
|
|
|
+ 'consignee_name' => $orderHeader->c_contact,
|
|
|
+ 'consignee_phone' => empty($orderHeader->c_tel2) ? $orderHeader->c_tel1 : $orderHeader->c_tel2,
|
|
|
+ 'province' => $orderHeader->c_province,
|
|
|
+ 'city' => $orderHeader->c_city,
|
|
|
+ 'district' => $orderHeader->c_district,
|
|
|
+ 'address' => $orderHeader->c_address1,
|
|
|
+ 'client_code' => $orderHeader->soreference1,
|
|
|
+ 'updated_at' => $updated_at,
|
|
|
+ 'wms_edittime' => $orderHeader->edittime,
|
|
|
+ 'warehouse_id' => $warehouse_id];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|