/** * Run the database seeds. * * @return void */ public function run() { factory(Maker::class, 3)->create(); factory(Buyer::class, 3)->create(); factory(Commodity::class, 5)->create(); factory(Goods::class, 5)->create(); $goods = Goods::all()->random(2); $exJoinings = []; $inJoinings = []; foreach ($goods->keys() as $key) { $exJoinings[$key] = $this->randJoiningsFoxExternalOrder(); $inJoinings[$key] = $this->randJoiningsForInternalOrder(); } $externalOrder = new ExternalOrder(); $externalOrder->contract_no = '15EL1166'; $externalOrder->sign_date = Carbon::now(); $externalOrder->buyer()->associate(Buyer::all()->random()); $externalOrder->save(); $externalOrder->goods()->saveMany($goods->all(), $exJoinings); $internalOrder = new InternalOrder(); $internalOrder->externalOrder()->associate($externalOrder); $internalOrder->maker()->associate(Maker::all()->random()); $internalOrder->save(); $internalOrder->goods()->saveMany($goods->all(), $inJoinings); }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(ExternalOrderPostRequest $request) { // store basic information $order = new ExternalOrder($request->only(['contract_no', 'sign_date'])); $order->buyer()->associate(Buyer::find($request->input('buyer_id'))); $order->save(); // store commodities and specification if ($request->input('unknow_goods')) { $inputForNewGoods = []; foreach ($request->input('unknow_goods') as $input) { $goods = $this->retrieveGoods($input['commodity'], $input['specification']); $inputForNewGoods[$goods->id] = collect($input)->except(['commodity', 'specification'])->all(); } $order->goods()->sync($inputForNewGoods); } return redirect()->route('external_order.show', $order->id); }