/** * Display product stock's movement * * @param skip, take * @return Response */ public function card($id = null) { $varian = \App\Models\Varian::id($id); $detail = \App\Models\TransactionDetail::varianid($id)->stockmovement(true); if (Input::has('search')) { $search = Input::get('search'); foreach ($search as $key => $value) { switch (strtolower($key)) { case 'ondate': if (is_array($value)) { $balance = \App\Models\Varian::id($id)->TransactionLogChangedAt($value[0]); $prev_date = $value[0]; $detail = $detail->TransactionLogChangedAt($value); $varian = $varian->TransactionLogChangedAt($value[1]); } else { $detail = $detail->TransactionLogChangedAt($value); $varian = $varian->TransactionLogChangedAt($value); } break; default: # code... break; } } } if (!$varian->first()) { return new JSend('error', (array) Input::all(), 'ID Tidak valid.'); } $varian = $varian->with(['product'])->first()->toArray(); if (isset($balance)) { $balance = $balance->first(); $balance_old[] = ['ref' => 'Balance', 'varian_id' => $id, 'transact_at' => Carbon::parse($prev_date)->format('Y-m-d H:i:s'), 'stock_in' => $balance['inventory_stock'], 'stock_out' => 0]; $detail_old = $detail->get()->toArray(); if (!empty($detail_old)) { $varian['details'] = array_merge($balance_old, $detail_old); } else { $varian['details'] = $balance_old; } } else { $varian['details'] = $detail->get()->toArray(); } return new JSend('success', (array) $varian); }