$request->date, 'nominal' => preg_replace('/[^0-9]/', '', $request->nominal), 'id_project' => $request->id_project, 'id_bank' => $request->id_bank, 'status' => 'non-approve', 'id_user' => Auth::user()->id ]); $cr->bank->saldo = $cr->bank->saldo - $cr->nominal; $cr->bank->save(); BankTransaction::create([ 'id_bank' => $cr->id_bank, 'id_cash_request' => $cr->id, 'withdrawals' => $cr->nominal, 'date' => $cr->date ]); return redirect()->route('cash_request.index')->with('msg', 'data berhasil ditambahkan'); } /** * 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'] == 'cashRequestData') { $columns = array( 0 => 'id', 1 => 'id', ); $level = Auth::user()->level; if (strtoupper($level) == 'SUPERADMIN' || strtoupper($level) == 'GENERAL MANAGER' || strtoupper($level) == 'FINANCE MANAGER' || strtoupper($level) == 'SUPPLY CHAIN MANAGER' || strtoupper($level) == 'MARKETING MANAGER' || strtoupper($level) == 'PROJECT MANAGER') { $totalData = CashRequest::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'))) { $cash_requests = CashRequest::offset($start) ->limit($limit) ->orderBy($order, $dir) ->get(); } else { $search = $request->input('search.value'); $cash_requests = CashRequest::whereHas('project', function ($q) use ($search) { $q->where('projects.name', 'LIKE', "%{$search}%"); })->orWhereHas('project.supervisi', function ($q) use ($search) { $q->where('users.fullname', 'LIKE', "%{$search}%"); }) ->offset($start) ->limit($limit) ->orderBy($order, $dir) ->get(); $totalFiltered = CashRequest::whereHas('project', function ($q) use ($search) { $q->where('projects.name', 'LIKE', "%{$search}%"); })->orWhereHas('project.supervisi', function ($q) use ($search) { $q->where('users.fullname', 'LIKE', "%{$search}%"); }) ->count(); } } else { $totalData = CashRequest::where('id_user', Auth::user()->id)->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'))) { $cash_requests = CashRequest::where('id_user', Auth::user()->id) ->offset($start) ->limit($limit) ->orderBy($order, $dir) ->get(); } else { $search = $request->input('search.value'); $cash_requests = CashRequest::whereHas('project', function ($q) use ($search) { $q->where('projects.name', 'LIKE', "%{$search}%"); })->orWhereHas('project.supervisi', function ($q) use ($search) { $q->where('users.fullname', 'LIKE', "%{$search}%"); }) ->where('id_user', Auth::user()->id) ->offset($start) ->limit($limit) ->orderBy($order, $dir) ->get(); $totalFiltered = CashRequest::whereHas('project', function ($q) use ($search) { $q->where('projects.name', 'LIKE', "%{$search}%"); })->orWhereHas('project.supervisi', function ($q) use ($search) { $q->where('users.fullname', 'LIKE', "%{$search}%"); }) ->where('id_user', Auth::user()->id) ->count(); } } $data = array(); if (!empty($cash_requests) && $cash_requests->count() > 0) { foreach ($cash_requests as $row) { $nestedData['project'] = $row->project->name; $nestedData['date'] = $row->date; $nestedData['nominal'] = number_format($row->nominal, 0, "", "."); $nestedData['spv'] = $row->project->supervisi->fullname; $nestedData['paid_through'] = '['.$row->bank->account_number.']'.' '.$row->bank->account_name; if($row->id_user == NULL) { $nestedData['created_by'] = ''; } else { $nestedData['created_by'] = $row->user->fullname; } if(RoleController::access('cash_request', 'edit') > 0 || RoleController::access('cash_request', 'delete') > 0) { $nestedData['opsi'] = "
"; if(RoleController::access('cash_request', 'edit') > 0 && $row->status == 'non-approve'){ $nestedData['opsi'] .= "
".csrf_field()." ".method_field('put')."
"; } if(RoleController::access('cash_request', 'edit') > 0) { $nestedData['opsi'] .= " edit "; } if (RoleController::access('cash_request', 'delete') > 0) { $nestedData['opsi'] .= "
" . csrf_field() . " " . method_field('delete') . "
"; } $nestedData['opsi'] .= "
"; } $data[] = $nestedData; } } $json_data = array( "draw" => intval($request->input('draw')), "recordsTotal" => intval($totalData), "recordsFiltered" => intval($totalFiltered), "data" => $data, ); echo json_encode($json_data); } } } } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { $projects = Project::all(); $banks = Bank::all(); $cash_request = CashRequest::findOrFail($id); return view('staff.cash-request-edit', compact('projects', 'banks','cash_request')); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { if ($request->act == 'approve-cash_request') { $cr = CashRequest::findOrFail($id); $cr->status = 'approve'; $cr->save(); return redirect()->route('cash_request.index')->with('msg', 'data berhasil disubmit'); }else{ CashRequest::where('id',$id) ->update([ 'date' => $request->date, 'nominal' => preg_replace('/[^0-9]/', '', $request->nominal), 'id_project' => $request->id_project, ]); $cr = CashRequest::findOrFail($id); $cr->bank->saldo = $cr->bank->saldo - $cr->transaction->withdrawals; $cr->bank->save(); $cr->bank->saldo = $cr->bank->saldo + $cr->nominal; $cr->bank->save(); $cr->transaction->withdrawals = $cr->nominal; $cr->transaction->save(); return redirect()->route('cash_request.index')->with('msg', 'data berhasil dirubah'); } } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { CashRequest::destroy($id); return redirect()->route('cash_request.index')->with('msg', 'data berhasil dihapus'); } }