|
|
@@ -4,6 +4,11 @@ namespace Tests\Services\OrderService;
|
|
|
|
|
|
use App\Commodity;
|
|
|
use App\Logistic;
|
|
|
+use App\OracleActAllocationDetails;
|
|
|
+use App\OracleBasCode;
|
|
|
+use App\OracleBasCustomer;
|
|
|
+use App\OracleBasSKU;
|
|
|
+use App\OracleDOCOrderDetail;
|
|
|
use App\OracleDOCOrderHeader;
|
|
|
use App\Order;
|
|
|
use App\OrderPackage;
|
|
|
@@ -14,6 +19,7 @@ use App\Shop;
|
|
|
use App\Warehouse;
|
|
|
use Carbon\Carbon;
|
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
|
+use Illuminate\Support\Str;
|
|
|
use Tests\TestCase;
|
|
|
|
|
|
class CreateOrFindOrderInfoTest extends TestCase
|
|
|
@@ -30,57 +36,40 @@ class CreateOrFindOrderInfoTest extends TestCase
|
|
|
{
|
|
|
parent::setUp(); // TODO: Change the autogenerated stub
|
|
|
$this->orderService = app('OrderService');
|
|
|
- $this->data['orderno'] = '订单编号'.((string)Carbon::now());
|
|
|
- $this->data['warehouse_code'] = 'test';
|
|
|
- $this->data['userdefine1'] ='测试物流';
|
|
|
- $this->data['customerid'] = '测试货主';
|
|
|
- $this->data['issuepartyname'] = '测试商铺';
|
|
|
- $this->data['orderType'] = '测试';
|
|
|
|
|
|
- $orderHeader = new OracleDOCOrderHeader();
|
|
|
- $orderHeader->orderno = md5('订单编号');
|
|
|
- $orderHeader->c_contact='京东旗舰店';
|
|
|
- $orderHeader->c_tel2 = md5('承运商');
|
|
|
- $orderHeader->c_province = md5('收货人');
|
|
|
- $orderHeader->c_city = md5('shou');
|
|
|
- $orderHeader->c_district = md5('shou');
|
|
|
- $orderHeader->c_address1 = md5('shou');
|
|
|
- $orderHeader->soreference1 = md5('客户订单号');
|
|
|
- $orderHeader->userdefine1 = $this->data['userdefine1'];
|
|
|
- $orderHeader->warehouseid = $this->data['warehouse_code'];
|
|
|
- $orderHeader->customerid = $this->data['customerid'];
|
|
|
- $orderHeader->issuepartyname =$this->data['issuepartyname'];
|
|
|
- $orderHeader['orderType']['codename_c'] =$this->data['orderType'];
|
|
|
- $orderHeader->edittime = Carbon::now();
|
|
|
- $orderHeader->addtime = Carbon::now();
|
|
|
- $this->data['orderHeader'] =$orderHeader;
|
|
|
- $this->data['logistic'] = Logistic::query()->firstOrCreate(['code'=>$this->data['userdefine1'],'name'=>'测试物流']);
|
|
|
- $this->data['owner'] = Owner::query()->firstOrCreate(['code'=>$this->data['customerid'],'name'=>'测试货主']);
|
|
|
- $this->data['shop'] =Shop::query()->firstOrCreate(['name'=>$this->data['issuepartyname'],'owner_id'=>$this->data['owner']->id]);
|
|
|
- $this->data['warehouse'] = Warehouse::query()->firstOrCreate(["code"=>$this->data['warehouse_code'],"name"=>'测试仓库']);
|
|
|
- $orderHeader->actAllocationDetails = $this->getActAllocationDetails($this->data['orderno'],$this->data['owner']);
|
|
|
- }
|
|
|
+ $basSku1 = factory(OracleBasSKU::class)->make(['customerid' => 'TEST_OW']);
|
|
|
+ $basSku2 = factory(OracleBasSKU::class)->make(['customerid' => 'TEST_OW']);
|
|
|
+ $basSku3 = factory(OracleBasSKU::class)->make(['customerid' => 'TEST_OW']);
|
|
|
+
|
|
|
+ $logistic_BasCustomer = factory(OracleBasCustomer::class)->make(['customer_type'=>'CA','customerid'=>'TEST_CA','descr_c'=>'测试承运商']);
|
|
|
+ $owner_basCustomer = factory(OracleBasCustomer::class)->make(['customer_type'=>'OW','customerid'=>'TEST_OW','descr_c'=>'测试货主']);
|
|
|
+
|
|
|
+ $orderType = factory(OracleBasCode::class)->make(['code'=>'sysy', 'codeid'=>'SO_TYP', 'codename_c'=>'测试状态']);
|
|
|
+ $wmsOrderHeader = factory(OracleDOCOrderHeader::class)->make(['customerid'=>'TEST_OW','orderType'=>'sysy','userdefine1'=>'TEST_CA']);
|
|
|
+
|
|
|
+ $oracleDOCOrderDetail1 = factory(OracleDOCOrderDetail::class)->make(['orderno'=>$wmsOrderHeader->orderno,'customerid'=>'TEST_CA','sku'=>$basSku1->sku]);
|
|
|
+ $oracleDOCOrderDetail2 = factory(OracleDOCOrderDetail::class)->make(['orderno'=>$wmsOrderHeader->orderno,'customerid'=>'TEST_CA','sku'=>$basSku2->sku]);
|
|
|
+ $oracleDOCOrderDetail3 = factory(OracleDOCOrderDetail::class)->make(['orderno'=>$wmsOrderHeader->orderno,'customerid'=>'TEST_CA','sku'=>$basSku3->sku]);
|
|
|
+ $oracleDOCOrderDetails = collect([$oracleDOCOrderDetail1,$oracleDOCOrderDetail3,$oracleDOCOrderDetail2]);
|
|
|
+
|
|
|
+ $OracleActAllocationDetail1 = factory(OracleActAllocationDetails::class)->make(['orderno'=>$wmsOrderHeader->orderno,'customerid'=>'TEST_CA','sku'=>$basSku1->sku]);
|
|
|
+ $OracleActAllocationDetail2 = factory(OracleActAllocationDetails::class)->make(['orderno'=>$wmsOrderHeader->orderno,'customerid'=>'TEST_CA','sku'=>$basSku2->sku]);
|
|
|
+ $OracleActAllocationDetail3 = factory(OracleActAllocationDetails::class)->make(['orderno'=>$wmsOrderHeader->orderno,'customerid'=>'TEST_CA','sku'=>$basSku3->sku]);
|
|
|
+ $OracleActAllocationDetails = collect($OracleActAllocationDetail1,$OracleActAllocationDetail2,$OracleActAllocationDetail3);
|
|
|
|
|
|
- public function getActAllocationDetails($orderno,$owner){
|
|
|
- $sums = rand(3,6);
|
|
|
- $actAllocationDetails = [];
|
|
|
- $picktotraceids = [
|
|
|
- md5((string)rand(10000,99999)),md5((string)rand(10000,99999)),md5((string)rand(10000,99999)),md5((string)rand(10000,99999))
|
|
|
- ];
|
|
|
- $sku = ['ABC'.(rand(10000,99999)),'ABC'.(rand(10000,99999)),'ABC'.(rand(10000,99999))];
|
|
|
- foreach ($sku as $item) {
|
|
|
- Commodity::query()->firstOrCreate(['owner_id'=>$owner['id'],'sku'=>$item,'name'=>md5($item)]);
|
|
|
- }
|
|
|
- for ($i=0;$i<$sums;$i++){
|
|
|
- $actAllocationDetails[] =[
|
|
|
- 'orderno' => $orderno,
|
|
|
- 'picktotraceid' => $picktotraceids[rand(0,count($picktotraceids)-1)],
|
|
|
- 'sku' => $sku[rand(0,count($sku)-1)],
|
|
|
- 'qty_each' => rand(1,15),
|
|
|
- 'customerid' =>$owner['code']
|
|
|
- ];
|
|
|
- }
|
|
|
- return $actAllocationDetails;
|
|
|
+ $wmsOrderHeader->setRelation('oracleDOCOrderDetails',$oracleDOCOrderDetails);
|
|
|
+ $wmsOrderHeader->setRelation('oracleActAllocationDetail',$OracleActAllocationDetails);
|
|
|
+ $wmsOrderHeader->setRelation('orderType',$orderType);
|
|
|
+
|
|
|
+ $this->data['orderHeader'] = $wmsOrderHeader;
|
|
|
+
|
|
|
+ $this->data['logistic'] = factory(Logistic::class)->create(['code'=>$logistic_BasCustomer->customerid,'name'=>$logistic_BasCustomer->descr_c]);
|
|
|
+ $this->data['owner'] = factory(Owner::class)->create(['code'=>$owner_basCustomer->customerid,'name'=>$owner_basCustomer->descr_c]);
|
|
|
+ $this->data['shop'] = factory(Shop::class)->create(['owner_id'=>$this->data['owner']['id']]);
|
|
|
+ $this->data['sku'] = [];
|
|
|
+ $this->data['sku'][] = factory(Commodity::class)->create(['owner_id'=>$this->data['owner']['id'],'sku'=>$basSku1['sku']]);
|
|
|
+ $this->data['sku'][] = factory(Commodity::class)->create(['owner_id'=>$this->data['owner']['id'],'sku'=>$basSku2['sku']]);
|
|
|
+ $this->data['sku'][] = factory(Commodity::class)->create(['owner_id'=>$this->data['owner']['id'],'sku'=>$basSku3['sku']]);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -89,34 +78,26 @@ class CreateOrFindOrderInfoTest extends TestCase
|
|
|
public function createOrFindOrderInfo()
|
|
|
{
|
|
|
$this->orderService->createOrFindOrderInfo($this->data['orderHeader']);
|
|
|
- $order = Order::query()->where('code',$this->data['orderHeader']['orderno'])->first();
|
|
|
+ $order = Order::query()->where('code',$this->data['orderno'])->first();
|
|
|
$this->assertNotNull($order);
|
|
|
$this->assertEquals($order->code,$this->data['orderHeader']['orderno']);
|
|
|
$orderPackages = OrderPackage::query()->where('order_id',$order['id'])->get();
|
|
|
- $orderPackagesCommodities = OrderPackageCommodities::query()->whereIn('order_package_id');
|
|
|
+ $orderPackagesCommodities = OrderPackageCommodities::query()->whereIn('order_package_id',data_get($orderPackages,'*.id'))->get();
|
|
|
$this->data['delete']['order_id'] = $order['id'];
|
|
|
- $this->data['delete']['order_package_id'] = $orderPackages->each(function($orderPackage){
|
|
|
- return $orderPackage['id'];
|
|
|
- });
|
|
|
- $this->data['delete']['order_package_commodity_id'] = $orderPackagesCommodities->each(function($orderPackageCommodity){
|
|
|
- return $orderPackageCommodity['id'];
|
|
|
- });
|
|
|
- $this->data['delete']['commodity_id'] = $orderPackagesCommodities->each(function($orderPackageCommodity){
|
|
|
- return $orderPackageCommodity['commodity_id'];
|
|
|
- });
|
|
|
+ $this->data['delete']['order_package_id'] = data_get($orderPackages,'*.id');
|
|
|
+ $this->data['delete']['order_package_commodity_id'] = data_get($orderPackagesCommodities,'*.id');
|
|
|
}
|
|
|
|
|
|
public function tearDown(): void
|
|
|
{
|
|
|
cache()->flush();
|
|
|
+ $order = Order::query()->where('code',$this->data['orderHeader']['orderno'])->first();
|
|
|
+ $order->delete();
|
|
|
+ Commodity::query()->whereIn('id',data_get($this->data['sku'],'*.id'))->delete();
|
|
|
$this->data['logistic']->delete();
|
|
|
$this->data['owner']->delete();
|
|
|
+ $this->data['logistic']->delete();
|
|
|
$this->data['shop']->delete();
|
|
|
- $this->data['warehouse']->delete();
|
|
|
- Order::find($this->data['delete']['order_id'])->delete();
|
|
|
- OrderPackage::query()->whereIn('id',$this->data['delete']['order_package_id'])->delete();
|
|
|
- OrderPackageCommodities::query()->whereIn('id',$this->data['delete']['order_package_commodity_id'])->delete();
|
|
|
- Commodity::query()->whereIn('id',$this->data['delete']['commodity_id'])->delete();
|
|
|
parent::tearDown(); // TODO: Change the autogenerated stub
|
|
|
}
|
|
|
}
|