get(); return view('staff.cash-report-create', compact('crs')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $cr = CashReport::create([ 'id_cash_request' => $request->id_cash_request, 'id_user' => Auth::user()->id ]); foreach ($request->date as $key => $value) { CashReportDetail::create([ 'id_cash_report' => $cr->id, 'date' => $value, 'description' => $request->description[$key], 'kredit' => preg_replace('/[^0-9]/','',$request->kredit[$key]), 'account' => $request->account[$key], ]); } return redirect()->route('cash_report.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'] == 'crData') { $cr = CashRequest::with('project', 'project.supervisi')->findOrFail($id); return response()->json([ 'cr' => $cr, ]); }elseif ($_GET['act'] == 'cashReportData') { $columns = array( 0 => 'date', ); $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 = CashReport::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_reports = CashReport::offset($start) ->limit($limit) ->get(); } else { $search = $request->input('search.value'); $cash_reports = CashReport::whereHas('cash_request.project', function ($q) use ($search) { $q->where('projects.name', 'LIKE', "%{$search}%"); })->orWhereHas('cash_request.project.supervisi', function ($q) use ($search) { $q->where('users.fullname', 'LIKE', "%{$search}%"); }) ->offset($start) ->limit($limit) ->get(); $totalFiltered = CashReport::whereHas('cash_request.project', function ($q) use ($search) { $q->where('projects.name', 'LIKE', "%{$search}%"); })->orWhereHas('cash_request.project.supervisi', function ($q) use ($search) { $q->where('users.fullname', 'LIKE', "%{$search}%"); }) ->count(); } } else { $totalData = CashReport::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_reports = CashReport::where('id_user', Auth::user()->id) ->offset($start) ->limit($limit) ->get(); } else { $search = $request->input('search.value'); $cash_reports = CashReport::whereHas('cash_request.project', function ($q) use ($search) { $q->where('projects.name', 'LIKE', "%{$search}%"); })->orWhereHas('cash_request.project.supervisi', function ($q) use ($search) { $q->where('users.fullname', 'LIKE', "%{$search}%"); }) ->where('id_user', Auth::user()->id) ->offset($start) ->limit($limit) ->get(); $totalFiltered = CashReport::whereHas('cash_request.project', function ($q) use ($search) { $q->where('projects.name', 'LIKE', "%{$search}%"); })->orWhereHas('cash_request.project.supervisi', function ($q) use ($search) { $q->where('users.fullname', 'LIKE', "%{$search}%"); }) ->where('id_user', Auth::user()->id) ->count(); } } $data = array(); if (!empty($cash_reports) && $cash_reports->count() > 0) { foreach ($cash_reports as $row) { $nestedData['ref_cr'] = $row->cash_request->date .' | '.'Rp'.number_format($row->cash_request->nominal,0,"",".").' | '.$row->cash_request->project->name.' | '.$row->cash_request->project->supervisi->fullname.' | '.'['.$row->cash_request->bank->account_number.']'.$row->cash_request->bank->account_name; if($row->id_user == NULL) { $nestedData['created_by'] = ''; } else { $nestedData['created_by'] = $row->user->fullname; } $nestedData['opsi'] = "
"; $nestedData['opsi'] .= " detail "; // $nestedData['opsi'] .= " // // // edit // // "; if (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); }elseif ($_GET['act'] == 'cashReportDetailData') { $columns = array( 0 => 'date', ); $totalData = CashReportDetail::where('id_cash_report',$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_report_details = CashReportDetail::where('id_cash_report',$id) ->offset($start) ->limit($limit) ->orderBy($order,$dir) ->get(); $totalFiltered = CashReportDetail::where('id_cash_report',$id) ->offset($start)->limit($limit)->count(); } $data = array(); if (!empty($cash_report_details) && $cash_report_details->count() > 0) { foreach ($cash_report_details as $row) { $nestedData['date'] = $row->date; $nestedData['kredit'] = number_format($row->kredit,0,"","."); $nestedData['account'] = $row->account; $nestedData['description'] = $row->description; if(RoleController::access('cash_report', 'edit') > 0 || RoleController::access('cash_report', 'delete') > 0) { $nestedData['opsi'] = "
"; if(RoleController::access('cash_report', 'edit') > 0) { $nestedData['opsi'] .= " "; } if (RoleController::access('cash_report', '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); }elseif ($_GET['act'] == 'detailData') { $detail = CashReportDetail::findOrFail($id); return response()->json([ 'detail' => $detail ]); } } } else { $cr = CashReport::findOrFail($id); return view('staff.cash-report-detail',compact('cr')); } } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { $crs = CashRequest::where('status', 'approve')->get(); $cash_report = CashReport::findOrFail($id); return view('staff.cash-report-edit', compact('crs','cash_report')); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $cr = CashReport::findOrFail($id); if ($request->id_cash_request) { $cr->id_cash_request = $request->id_cash_request; $cr->save(); } if ($request->curr_id) { foreach ($request->curr_id as $key => $value) { CashReportDetail::where('id',$value) ->update([ 'date' => $request->curr_date[$key], 'description' => $request->curr_description[$key], 'kredit' => preg_replace('/[^0-9]/','',$request->curr_kredit[$key]), 'account' => $request->curr_account[$key], ]); } } if ($request->date) { foreach ($request->date as $key => $value) { CashReportDetail::create([ 'id_cash_report' => $cr->id, 'date' => $value, 'description' => $request->description[$key], 'kredit' => preg_replace('/[^0-9]/','',$request->kredit[$key]), 'account' => $request->account[$key], ]); } } if ($request->act == 'add-item') { return redirect()->route('cash_report.show',$id)->with('msg', 'data berhasil ditambahkan'); }else{ return redirect()->route('cash_report.index')->with('msg', 'data berhasil diperbarui'); } } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy(Request $request,$id) { if ($request->act == 'deleteCRD') { $crd = CashReportDetail::findOrFail($id); $id = $crd->id_cash_report; $crd->delete(); return redirect()->route('cash_report.show',$id)->with('msg', 'data berhasil dihapus'); }else{ CashReport::destroy($id); return redirect()->route('cash_report.index')->with('msg', 'data berhasil dihapus'); } } }