OrderPackageCommoditiesService.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace App\Services;
  3. use App\Commodity;
  4. use App\OracleActAllocationDetails;
  5. use App\OracleBasSKU;
  6. use App\OracleDOCOrderDetail;
  7. use App\Order;
  8. use App\OrderPackage;
  9. use App\OrderPackageCommodities;
  10. use App\Owner;
  11. class OrderPackageCommoditiesService
  12. {
  13. public function createdOrderPackage(OrderPackage $orderPackage)
  14. {
  15. $detail = OracleActAllocationDetails::where('picktotraceid',$orderPackage->logistic_number)->first();
  16. $owner = Owner::where(['code' => $detail->customerid])->first(); // 货主
  17. $sku = $detail->sku;
  18. $owner_id = $owner->id;
  19. $commodity = Commodity::where(['sku' => $sku, 'owner_id' => $owner_id])->first();
  20. if ($commodity == null) {
  21. $basSku = OracleBasSKU::where(['sku' => $sku, 'customerid' => $detail->customerid])->first();
  22. $commodity = Commodity::create(['sku' => $sku, 'owner_id' => $owner_id, 'name' => $basSku->descr_c]);
  23. }
  24. $arr = [
  25. 'order_package_id' => $orderPackage->id, // 包裹id
  26. 'commodity_id' => $commodity->id, // 商品id
  27. 'amount' => $detail->qty, // 商品数量
  28. ];
  29. $OrderPackageCommodities = OrderPackageCommodities::create($arr);
  30. $OrderPackageCommodities->commodity = $commodity;
  31. return $OrderPackageCommodities;
  32. }
  33. public function getOrderPackageCommoditiesByOrderId($orderId){
  34. $order = Order::where('id',$orderId)->first();
  35. if(!$order){
  36. return null;
  37. }
  38. $orderPackageIds = OrderPackage::select('id')->where('order_id',$order['id'])->get();
  39. if(!$orderPackageIds){
  40. return null;
  41. }
  42. return OrderPackageCommodities::with('commodity')->whereIn('order_package_id',$orderPackageIds)->get();
  43. }
  44. }