first()){ $last_id = ManualJournal::orderBy('id','desc')->first()->id; }else{ $last_id = 1; } $banks = Bank::all(); return view('staff.manual-journal-create', compact('last_id','banks')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $manualJournal = ManualJournal::create([ 'date' => $request->date, 'user_id' => Auth::user()->id, 'reference' => $request->reference, 'notes' => $request->notes, ]); foreach($request->banks as $key => $val){ $detail = ManualJournalDetail::create([ 'bank_id' => $val, 'manual_journal_id' => $manualJournal->id, 'description' => isset($request->description[$key])?$request->description[$key]:null, 'debits' => isset($request->debits[$key])?str_replace('.','',$request->debits[$key]):0, 'credits' => isset($request->credits[$key])?str_replace('.','',$request->credits[$key]):0, ]); $bank = Bank::find($val); if($bank){ $bank->saldo += $detail->debits; $bank->save(); $bank->saldo -= $detail->credits; $bank->save(); if($detail->debits){ BankTransaction::create([ 'id_bank' => $val, 'id_manual_journal' => $manualJournal->id, 'deposit' => $detail->debits, 'date' => $manualJournal->date ]); } if($detail->credits){ BankTransaction::create([ 'id_bank' => $val, 'id_manual_journal' => $manualJournal->id, 'withdrawals' => $detail->credits, 'date' => $manualJournal->date ]); } } } return redirect()->route('manual_journal.index')->with('msg','data berhasil dibuat'); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show(Request $request,$id) { if (\Request::ajax()) { if (isset($_GET['act'])) { if ($_GET['act'] == 'manual_journals') { $columns = array( 0 => 'id', ); $totalData = ManualJournal::count(); $totalFiltered = $totalData; $limit = $request->input('length'); $start = $request->input('start'); $order = $columns[$request->input('order.0.column')]; $dir = $request->input('order.0.dir'); if (empty($request->input('search.value'))) { $manualJournals = ManualJournal::offset($start) ->limit($limit) ->orderBy($order, $dir) ->get(); }else{ $search = $request->input('search.value'); $manualJournals = ManualJournal::where('date','LIKE', "%{$search}%") ->orWhere('notes','LIKE', "%{$search}%") ->orWhereHas('user',function($q) use ($search){ $q->where('fullname','LIKE', "%{$search}%"); }) ->offset($start) ->limit($limit) ->orderBy($order, $dir) ->get(); $totalFiltered = ManualJournal::where('date','LIKE', "%{$search}%") ->orWhere('notes','LIKE', "%{$search}%") ->orWhereHas('user',function($q) use ($search){ $q->where('fullname','LIKE', "%{$search}%"); })->count(); } $data = array(); if (!empty($manualJournals)) { foreach ($manualJournals as $row) { $nestedData['date'] = $row->date; $nestedData['journal'] = $row->id; $nestedData['reference'] = '-'; $nestedData['status'] = '-'; $nestedData['notes'] = $row->notes; $amount = 0; foreach($row->details as $row2){ $amount -= $row2->credits; $amount += $row2->debits; } $nestedData['amount'] = 'Rp '.number_format($amount,0,"","."); $nestedData['created_by'] = $row->user->fullname; $nestedData['opsi'] = "
"; $nestedData['opsi'] .= " detail
"; if (strtoupper(Auth::user()->level) == 'SUPERADMIN'){ $nestedData['opsi'] .= "
" . csrf_field() . " " . method_field('delete') . "
"; } $data[] = $nestedData; } } $json_data = array( "draw" => intval($request->input('draw')), "recordsTotal" => intval($totalData), "recordsFiltered" => intval($totalFiltered), "data" => $data, ); echo json_encode($json_data); } } }else{ $journal = ManualJournal::findOrFail($id); return view('staff.manual-journal-detail' , compact('journal')); } } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $manualJournal = ManualJournal::findOrFail($id); foreach($manualJournal->details as $detail){ $bank = Bank::find($detail->bank_id); $bank->saldo -= $detail->credits; $bank->save(); $bank->saldo += $detail->debits; $bank->save(); } if(BankTransaction::where('id_manual_journal', $id)->first()){ BankTransaction::where('id_manual_journal', $id)->delete(); } $manualJournal->delete(); return redirect()->route('manual_journal.index')->with('msg','data berhasil dihapus'); } }