/** * Run the database seeds. * * @return void */ public function run() { $outlets = Outlet::with(['products.variants'])->get(); //employees create stock entry, stock out, opname and purchase order $outlets->each(function (Outlet $outlet) { $variants = $outlet->variants; $suppliers = Supplier::whereCompanyId($outlet->company_id)->get(); $employees = $outlet->users; /* --STOCK ENTRY-- */ //create stock entry $entries = factory(Entry::class, 50)->create(['user_id' => $employees->random()->id, 'outlet_id' => $outlet->id]); //add it in stock entry foreach ($entries as $entry) { $entry->variants()->attach($variants->random(10)->lists('id')->toArray(), ['total' => rand(1, 50)]); } /* --STOCK OUT-- */ //create stock out $outs = factory(Out::class, 50)->create(['user_id' => $employees->random()->id, 'outlet_id' => $outlet->id]); //add it in stock out foreach ($outs as $out) { $out->variants()->attach($variants->random(10)->lists('id')->toArray(), ['total' => rand(1, 50)]); } /* --OPNAME-- */ //create stock opname $opnames = factory(Opname::class, 50)->create(['user_id' => $employees->random()->id, 'outlet_id' => $outlet->id]); //add it in stock opname foreach ($opnames as $opname) { $opname->variants()->attach($variants->random(10)->lists('id')->toArray(), ['total' => rand(1, 50)]); } /* --PURCHASE ORDER-- */ //create stock opname $purchases = factory(PurchaseOrder::class, 50)->create(['supplier_id' => $suppliers->random()->id, 'outlet_id' => $outlet->id]); //add it in purchase order foreach ($purchases as $purchase) { $purchase->variants()->attach($variants->random(10)->lists('id')->toArray(), ['total' => rand(1, 50)]); } }); }