Esempio n. 1
0
 public function reportDetailed(Request $request)
 {
     $from_date = Carbon::parse($request->get('from_date'))->startOfDay();
     $to_date = Carbon::parse($request->get('to_date'))->endOfDay();
     $inventory = Inventory::with(['stock' => function ($query) use($from_date, $to_date) {
         $query->whereBetween('stock.created_at', [$from_date, $to_date])->orderBy('stock.created_at');
     }])->get();
     foreach ($inventory as $item) {
         $total_changes = array_sum($item->stock->pluck('quantity')->toArray());
         $starting_quantity = $item->quantity - $total_changes;
         foreach ($item->stock as $stock) {
             $stock->previous_quantity = number_format($starting_quantity, 1);
             $stock->updated_quantity = number_format($starting_quantity += $stock->quantity, 1);
         }
     }
     return $inventory;
 }