OrderService.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. namespace App\Services;
  3. use App\Logistic;
  4. use App\OracleDOCOrderHeader;
  5. use App\Order;
  6. use App\Owner;
  7. use App\Shop;
  8. Class OrderService
  9. {
  10. public function createOrFindByOrderHead($oracleOrderNo){
  11. $order = Order::where('code',$oracleOrderNo)->first();
  12. if($order == null){
  13. $orderHeadAttr = OracleDOCOrderHeader::where('OrderNo',trim($oracleOrderNo,"'"))->first()->toArray();
  14. // wms 货主
  15. $customer_name = $orderHeadAttr['oracleBASCustomer_descr_c'];
  16. $owner = Owner::updateOrCreate(['name'=>$orderHeadAttr['customerid'],'code'=>$customer_name]);
  17. $owner_id = $owner->value('id'); // was 货主id
  18. // 商铺id
  19. $shop_name = $orderHeadAttr['issuepartyname'];
  20. $shop = Shop::updateOrCreate(['name'=>$shop_name,'owner_id'=>$owner_id]);
  21. $shop_Id = $shop->id;
  22. // 承运商ID
  23. $logistics = Logistic::updateOrCreate(['name'=>$orderHeadAttr['carrierid'],'code'=>$orderHeadAttr['carriername']]);
  24. $logistics_id = $logistics->value('id');
  25. $arr = [
  26. 'code'=>$orderHeadAttr['orderno'],
  27. 'owner_id'=>$owner->value('id'),
  28. 'wms_status'=>$orderHeadAttr['oracleBASCode_codename_c'],
  29. 'created_at'=>$orderHeadAttr['addtime'],
  30. 'logistic_number'=>$orderHeadAttr['soreference5'],
  31. 'logistic_id'=>$logistics_id,
  32. 'shop_id'=>$shop_Id,
  33. 'consignee_name'=>$orderHeadAttr['c_contact'],
  34. 'consignee_phone'=>$orderHeadAttr['c_tel2'],
  35. 'province'=> $orderHeadAttr['c_province'],
  36. 'city'=>$orderHeadAttr['c_city'],
  37. 'district'=>$orderHeadAttr['c_district'],
  38. 'address'=>$orderHeadAttr['c_address1'],
  39. ];
  40. $order = Order::create($arr);
  41. }
  42. return $order;
  43. }
  44. }