create(['type' => 'erp']); $supplier = Supplier::factory()->create(); $brand = Brand::factory()->create(); $response = $this->postJson('/api/purchase-orders/draft', [ 'warehouse_id' => $warehouse->id, 'supplier_id' => $supplier->id, 'brand_id' => $brand->id, 'expected_arrival' => '2026-03-20', 'shipping_method' => 'express', 'freight' => 50.00, 'category' => '电子产品', 'remark' => '测试采购单', ]); $response->assertStatus(200) ->assertJsonStructure([ 'code', 'data' => [ 'id', 'po_no', 'warehouse_id', 'supplier_id', 'status', 'total_amount', ], 'message' ]) ->assertJson([ 'code' => 200, 'message' => '采购单草稿创建成功' ]); } public function test_update_purchase_order_with_items() { // 创建采购单草稿 $warehouse = Warehouse::factory()->create(['type' => 'erp']); $supplier = Supplier::factory()->create(); $brand = Brand::factory()->create(); $draftResponse = $this->postJson('/api/purchase-orders/draft', [ 'warehouse_id' => $warehouse->id, 'supplier_id' => $supplier->id, 'brand_id' => $brand->id, 'expected_arrival' => '2026-03-20', 'shipping_method' => 'express', ]); $purchaseOrderId = $draftResponse->json('data.id'); // 更新采购单,添加商品项 $response = $this->putJson("/api/purchase-orders/{$purchaseOrderId}", [ 'items' => [ [ 'sku_code' => 'TEST001', 'sku_name' => '测试商品1', 'quantity' => 10, 'price' => 100.00, ], [ 'sku_code' => 'TEST002', 'sku_name' => '测试商品2', 'quantity' => 5, 'price' => 200.00, ] ] ]); $response->assertStatus(200) ->assertJson([ 'code' => 200, 'message' => '采购单更新成功' ]); } public function test_submit_purchase_order_for_review() { // 创建采购单草稿并添加商品 $warehouse = Warehouse::factory()->create(['type' => 'erp']); $supplier = Supplier::factory()->create(); $brand = Brand::factory()->create(); $draftResponse = $this->postJson('/api/purchase-orders/draft', [ 'warehouse_id' => $warehouse->id, 'supplier_id' => $supplier->id, 'brand_id' => $brand->id, 'expected_arrival' => '2026-03-20', 'shipping_method' => 'express', ]); $purchaseOrderId = $draftResponse->json('data.id'); // 添加商品 $this->putJson("/api/purchase-orders/{$purchaseOrderId}", [ 'items' => [ [ 'sku_code' => 'TEST001', 'sku_name' => '测试商品', 'quantity' => 10, 'price' => 100.00, ] ] ]); // 提交审核 $response = $this->postJson("/api/purchase-orders/{$purchaseOrderId}/submit-review"); $response->assertStatus(200) ->assertJson([ 'code' => 200, 'message' => '采购单已提交审核' ]); } }