bind("orderPackageService", OrderPackageService::class); } public function findOrCreateByClientCode($clientCode) { $order = Order::where('client_code', $clientCode)->first(); $orderHeader = OracleDOCOrderHeader::where('SOREFERENCE1',$clientCode )->first(); if ($orderHeader == null) { return null; } $orderHeadAttr = $orderHeader->toArray(); if ($order == null) { $customer_name = $orderHeadAttr['oracleBASCustomer_descr_c']; $owner = Owner::firstOrCreate(['name' => $customer_name, 'code' => $orderHeadAttr['customerid']]); $owner_id = $owner->id; $shop_name = $orderHeadAttr['issuepartyname']; $shop_Id = null; if ($shop_name) { $shop = Shop::firstOrCreate(['name' => $shop_name, 'owner_id' => $owner_id]); $shop_Id = $shop->id; } $logistics = Logistic::where(['name' => $orderHeadAttr['carriername']])->first(); $logistics_id = null; if ($logistics) { $logistics_id = $logistics->id; } $arr = [ 'code' => $orderHeadAttr['orderno'], 'owner_id' => $owner_id, 'wms_status' => $orderHeadAttr['oracleBASCode_codename_c'], 'created_at' => $orderHeadAttr['addtime'], 'logistic_id' => $logistics_id, 'shop_id' => $shop_Id, 'consignee_name' => $orderHeadAttr['c_contact'], 'consignee_phone' => $orderHeadAttr['c_tel2'], 'province' => $orderHeadAttr['c_province'], 'city' => $orderHeadAttr['c_city'], 'district' => $orderHeadAttr['c_district'], 'address' => $orderHeadAttr['c_address1'], 'client_code'=> $orderHeadAttr['soreference1'], ]; $order = Order::create($arr); $orderPackageService = app('orderPackageService'); $orderPackageService->createdByOrder($order); } return $this->getOrderInfo($order['id']); } public function getOrderInfo($orderId) { return Order::with(['packages' => function ($query) { return $query->with(['commodities' => function ($query) { return $query->with(['commodity']); }]); }])->where('id', $orderId)->first(); } public function getRejectedBillOfClientCode($clientCode){ $orderHeader = OracleDOCOrderHeader::where('SOReference1',$clientCode)->first(); if(!$orderHeader){ return null; } $ASNHeader = OracleDOCASNHeader::where('ASNReference2',$orderHeader->soreference2)->first(); if(!$ASNHeader){ return null; } return RejectedBill::with(['owner','logistic','items'])->where('logistic_number_return',$ASNHeader->asnreference2)->first(); } public function findOrCreteByLogisticNumberReturn($logisticNumberReturn){ $ASNHeader = OracleDOCASNHeader::where('ASNReference3',$logisticNumberReturn)->first(); if(!$ASNHeader){ return null; } $orderHeader = OracleDOCOrderHeader::where('SOReference1',$ASNHeader->ASNReference2); if(!$orderHeader){ return null; } return $this->findOrCreateByClientCode($orderHeader[soreference1]); } }