| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- <?php
- namespace App\Services;
- use App\OracleActAllocationDetails;
- use App\OracleDOCOrderDetail;
- use App\OracleDOCOrderHeader;
- use App\Order;
- use App\OrderPackage;
- class OrderPackageService
- {
- public function __construct()
- {
- app()->bind('orderPackageCommoditiesService', OrderPackageCommoditiesService::class);
- }
- public function createOrFindBy(Order $order, OracleDOCOrderHeader $orderHeader = null)
- {
- if (!$orderHeader) {
- $orderHeader = OracleDOCOrderHeader::where('OrderNo', trim($order->code, "'"))->first();
- }
- // 获取orderNo 对应的打包详情
- $orderActAllocationDetails = OracleActAllocationDetails::where(['OrderNo' => $order->code])->get();
- if (!$orderActAllocationDetails) {
- return;
- }
- $orderPackageCommoditiesService = app('orderPackageCommoditiesService');
- foreach ($orderActAllocationDetails as $detail) {
- if ($detail->picktotraceid == '*') {
- continue;
- }
- // 根据打包详情创建orderPackage
- $orderPackage = OrderPackage::firstOrCreate(['order_id' => $order->id, 'logistic_number' => $detail->picktotraceid]);
- $orderPackageCommoditiesService->createOrFindBy($orderPackage, $detail);
- }
- }
- }
|