act == 'report') { if ($request->from) { $task = Task::findOrFail($request->from); } else { $task = null; } return view('staff.task-create_report', compact('task')); } else { $task_to = User::where('id', '<>', Auth::user()->id)->get(); return view('staff.task-create', compact('task_to')); } } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $t = Task::create([ 'task_from' => Auth::user()->id, 'task_to' => $request->task_to, 'date' => $request->date, 'deadline' => $request->deadline, 'tugas' => $request->tugas, 'status' => $request->status, ]); if ($request->file_task) { ini_set('upload_max_size', '1024M'); ini_set('post_max_size', '1024M'); set_time_limit(0); $file = $request->file_task; $file->move(public_path('uploads/'), $file->getClientOriginalName()); $t->file_task = 'uploads/'.$file->getClientOriginalName(); $t->save(); } return redirect()->route('task.show', $t->id)->with('msg', 'task 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'] == 'taskfromdata') { $columns = array( 0 => 'id', ); $totalData = Task::where('task_to', 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'))) { $tasks = Task::where('task_to', Auth::user()->id) ->offset($start) ->limit($limit) ->orderBy($order, $dir) ->get(); } else { $search = $request->input('search.value'); $tasks = Task::whereHas('taskFrom', function ($q) use ($search) { $q->where('users.fullname', 'LIKE', "%{$search}%"); }) ->where('task_to', Auth::user()->id) ->offset($start) ->limit($limit) ->orderBy($order, $dir) ->get(); $totalFiltered = Task::whereHas('taskFrom', function ($q) use ($search) { $q->where('users.fullname', 'LIKE', "%{$search}%"); }) ->where('task_to', Auth::user()->id) ->count(); } $data = array(); if (!empty($tasks)) { foreach ($tasks as $row) { $nestedData['task_from'] = $row->taskFrom->fullname; $nestedData['date'] = $row->date; $nestedData['deadline'] = $row->deadline; $nestedData['status'] = $row->status_report; $nestedData['priorities'] = $row->status; $nestedData['opsi'] = "
"; $nestedData['opsi'] .= " detail
"; $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'] == 'taskfordata') { $columns = array( 0 => 'id', ); $totalData = Task::where('task_from', 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'))) { $tasks = Task::where('task_from', Auth::user()->id) ->offset($start) ->limit($limit) ->orderBy($order, $dir) ->get(); } else { $search = $request->input('search.value'); $tasks = Task::whereHas('taskTo', function ($q) use ($search) { $q->where('users.fullname', 'LIKE', "%{$search}%"); }) ->where('task_from', Auth::user()->id) ->offset($start) ->limit($limit) ->orderBy($order, $dir) ->get(); $totalFiltered = Task::whereHas('taskTo', function ($q) use ($search) { $q->where('users.fullname', 'LIKE', "%{$search}%"); }) ->where('task_to', Auth::user()->id) ->count(); } $data = array(); if (!empty($tasks)) { foreach ($tasks as $row) { $nestedData['task_for'] = $row->taskTo->fullname; $nestedData['date'] = $row->date; $nestedData['deadline'] = $row->deadline; $nestedData['status'] = $row->status_report; $nestedData['priorities'] = $row->status; $nestedData['opsi'] = "
"; $nestedData['opsi'] .= " detail
"; $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'] == 'taskfromreportdata') { $columns = array( 0 => 'id', ); $totalData = Task::where('task_to', 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'))) { $tasks = Task::where('task_to', Auth::user()->id) ->offset($start) ->limit($limit) ->orderBy($order, $dir) ->get(); } else { $search = $request->input('search.value'); $tasks = Task::whereHas('taskFrom', function ($q) use ($search) { $q->where('users.fullname', 'LIKE', "%{$search}%"); }) ->where('task_to', Auth::user()->id) ->offset($start) ->limit($limit) ->orderBy($order, $dir) ->get(); $totalFiltered = Task::whereHas('taskFrom', function ($q) use ($search) { $q->where('users.fullname', 'LIKE', "%{$search}%"); }) ->where('task_to', Auth::user()->id) ->count(); } $data = array(); if (!empty($tasks)) { foreach ($tasks as $row) { $nestedData['task_from'] = $row->taskFrom->fullname; $nestedData['date'] = $row->date; $nestedData['deadline'] = $row->deadline; $nestedData['status'] = $row->status; $nestedData['status_report'] = $row->status_report; $nestedData['opsi'] = "
"; if ($row->status_report == 'on progress') { $nestedData['opsi'] .= " create report "; } $nestedData['opsi'] .= " detail
"; $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'] == 'taskforreportdata') { $columns = array( 0 => 'id', ); $totalData = Task::where('task_from', 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'))) { $tasks = Task::where('task_from', Auth::user()->id) ->offset($start) ->limit($limit) ->orderBy($order, $dir) ->get(); } else { $search = $request->input('search.value'); $tasks = Task::whereHas('taskTo', function ($q) use ($search) { $q->where('users.fullname', 'LIKE', "%{$search}%"); }) ->where('task_from', Auth::user()->id) ->offset($start) ->limit($limit) ->orderBy($order, $dir) ->get(); $totalFiltered = Task::whereHas('taskTo', function ($q) use ($search) { $q->where('users.fullname', 'LIKE', "%{$search}%"); }) ->where('task_from', Auth::user()->id) ->count(); } $data = array(); if (!empty($tasks)) { foreach ($tasks as $row) { $nestedData['task_for'] = $row->taskTo->fullname; $nestedData['date'] = $row->date; $nestedData['deadline'] = $row->deadline; $nestedData['priorities'] = $row->status; $nestedData['status_report'] = $row->status_report; $nestedData['opsi'] = "
"; $nestedData['opsi'] .= " detail
"; $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'] == 'prmelebihianggaran') { $columns = array( 0 => 'id', 1 => 'id', 2 => 'status', 3 => 'tanggal', ); $totalData = PurchaseOrder::where('status', 'minta approve')->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'))) { $prS = PurchaseOrder::where('status', 'minta approve') ->offset($start) ->limit($limit) ->orderBy($order, $dir) ->get(); } else { $search = $request->input('search.value'); $prS = PurchaseOrder::where('status', 'minta approve') ->whereHas('project', function ($q) use ($search) { $q->where('projects.name', 'LIKE', "%{$search}%"); })->orWhereHas('mandor', function ($q) use ($search) { $q->where('mandors.name', 'LIKE', "%{$search}%"); })->where('status', 'minta approve') ->offset($start) ->limit($limit) ->orderBy($order, $dir) ->get(); $totalFiltered = PurchaseOrder::where('status', 'minta approve') ->whereHas('project', function ($q) use ($search) { $q->where('projects.name', 'LIKE', "%{$search}%"); })->orWhereHas('mandor', function ($q) use ($search) { $q->where('mandors.name', 'LIKE', "%{$search}%"); })->where('status', 'minta approve') ->count(); } $data = array(); if (!empty($prS)) { foreach ($prS as $row) { $nestedData['project'] = $row->purchaseRequest->project->name; $nestedData['no_po'] = $row->po_number; $nestedData['status'] = $row->status; $nestedData['tanggal'] = $row->tanggal; $nestedData['tanggal_pengiriman'] = $row->tanggal_pengiriman; $nestedData['mandor'] = $row->purchaseRequest->mandor->name; $nestedData['opsi'] = "
" . csrf_field() . " " . method_field('put') . "
"; $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'] == 'ahs_nonapprove') { $columns = array( 0 => 'id', ); $totalData = Ahs::where('status', 'non approve')->count() + AhsVendor::where('status', 'non approve')->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'))) { $ahsS = Ahs::where('status', 'non approve') ->offset($start) ->limit($limit) ->orderBy($order, $dir) ->get(); $ahsVendors = AhsVendor::where('status', 'non approve') ->offset($start) ->limit($limit) ->orderBy($order, $dir) ->get(); } else { $search = $request->input('search.value'); $ahsS = Ahs::where('status', 'non approve') ->where('nama_pekerjaan', 'like', $search.'%') ->offset($start) ->limit($limit) ->orderBy($order, $dir) ->get(); $ahsVendors = AhsVendor::where('status', 'non approve') ->whereHas('vendor', function ($q) use ($search) { $q->where('nama_pekerjaan', 'like', $search.'%'); }) ->offset($start) ->limit($limit) ->orderBy($order, $dir) ->get(); $totalFiltered = Ahs::where('status', 'non approve') ->where('nama_pekerjaan', 'like', $search.'%') ->count() + AhsVendor::where('status', 'non approve') ->whereHas('vendor', function ($q) use ($search) { $q->where('nama_pekerjaan', 'like', $search.'%'); })->count() ; } $data = array(); if (!empty($ahsS) or !empty($ahsVendors)) { foreach ($ahsS as $row) { $routeDetail = route('ahs.show', $row->id); $routeEdit = route('ahs.edit', $row->id).'?redirect_url='.route('task.index'); $nestedData['id'] = $row->id; $nestedData['nama_pekerjaan'] = $row->nama_pekerjaan; $nestedData['dimensi_spesifikasi'] = $row->dimensi_spesifikasi; $nestedData['satuan'] = $row->satuan; $nestedData['harga_modal'] = 'Rp'.number_format(\App\Http\Controllers\AhsController::cekTotalAhs($row->id), 0, "", "."); $nestedData['persen_profit'] = $row->percent_profit; $nestedData['harga_jual'] = 'Rp'.number_format(\App\Http\Controllers\AhsController::cekTotalAhs($row->id) * ($row->percent_profit/100), 0, "", "."); $nestedData['opsi'] = "
" . csrf_field() . " " . method_field('put') . "
"; $nestedData['opsi'] .= " edit "; $nestedData['opsi'] .= " detail "; $nestedData['opsi'] .= "
" . csrf_field() . " " . method_field('delete') . "
"; $data[] = $nestedData; } foreach ($ahsVendors as $row) { $nestedData['id'] = $row->id; $nestedData['nama_pekerjaan'] = $row->vendor->nama_pekerjaan; $nestedData['dimensi_spesifikasi'] = $row->vendor->dimensi_spesifikasi; $nestedData['satuan'] = $row->vendor->satuan; $nestedData['harga_modal'] = 'Rp'.number_format($row->vendor->harga_modal, 0, "", "."); $nestedData['persen_profit'] = $row->percent_profit; $nestedData['harga_jual'] = 'Rp'.number_format($row->vendor->harga_modal*($row->percent_profit/100), 0, "", "."); $nestedData['opsi'] = "
" . csrf_field() . " " . method_field('put') . "
"; $data[] = $nestedData; } } usort($data, function ($a, $b) { return strcmp($b['id'], $a['id']); }); $json_data = array( "draw" => intval($request->input('draw')), "recordsTotal" => intval($totalData), "recordsFiltered" => intval($totalFiltered), "data" => $data, ); echo json_encode($json_data); } } } else { $task = Task::findOrFail($id); return view('staff.task-detail', compact('task')); } } /** * 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) { if ($request->act == 'create-report') { $t = Task::findOrFail($id); $t->report = $request->report; if ($request->file_report) { $file = $request->file_report; $file->move(public_path('uploads/'), $file->getClientOriginalName()); $t->file_report = 'uploads/'.$file->getClientOriginalName(); } $t->status_report = 'done'; $t->save(); return redirect(route('task.index').'?act=report')->with('msg', 'report task berhasil dibuat'); } } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } }