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') { $report = DailyReport::orderBy('id', 'desc')->get(); } else { $report = DailyReport::where('id_user', Auth::user()->id)->orderBy('id', 'desc')->get(); } $project = Project::whereHas('daily_report')->get(); return view('staff.daily-report', compact('report', 'project')); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // $project = Project::whereHas('database_pekerja')->get(); $project = Project::whereDoesntHave('daily_report', function ($q) { $q->where([['created_at', '>=', date('Y-m-d H:i:s', strtotime(date('Y-m-d') . ' 00:00:00'))], ['created_at', '<', date('Y-m-d H:i:s', strtotime('+1 days', strtotime(date('Y-m-d') . ' 00:00:00')))]]); })->whereHas('database_pekerja')->get(); return view('staff.create_daily_report', compact('project')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $id_project = $request->get('id_project'); $row = DailyReport::where([['id_project', $id_project], ['created_at', '>=', date('Y-m-d H:i:s', strtotime(date('Y-m-d') . ' 00:00:00'))], ['created_at', '<', date('Y-m-d H:i:s', strtotime('+1 days', strtotime(date('Y-m-d') . ' 00:00:00')))]])->count(); if ($row < 1) { $id_database_pekerja = $request->get('id_pekerja'); $tersedia = $request->get('tersedia'); $qty = $request->get('qty'); $id_material = $request->get('id_material'); $note = $request->get('note'); $pekerjaan = $request->get('pekerjaan'); $jenis = $request->get('jenis'); // Daily Report $daily_reports = new DailyReport(); $daily_reports->id_user = Auth::user()->id; $daily_reports->id_project = $id_project; $daily_reports->note = $note; $daily_reports->pekerjaan = $pekerjaan; $daily_reports->created_at = date('Y-m-d H:i:s'); $daily_reports->save(); $id_daily_reports = $daily_reports->id; // Absensi if (!empty($id_database_pekerja)) { for ($i = 0; $i <= count($id_database_pekerja) - 1; $i++) { $absen = new Absensi(); $absen->id_database_pekerja = $id_database_pekerja[$i]; $absen->id_daily_reports = $id_daily_reports; $absen->created_at = date('Y-m-d H:i:s'); $absen->save(); } } if (!empty($id_material)) { // History for ($b = 0; $b <= count($id_material) - 1; $b++) { if (str_replace(',', '.', $qty[$b]) != 0) { $history = new HistoryMaterial(); $history->id_daily_reports = $id_daily_reports; if ($jenis[$b] == 'material') { $history->id_material = $id_material[$b]; } else if ($jenis[$b] == 'vendor') { $history->id_vendor = $id_material[$b]; } $history->jml_awal = $tersedia[$b]; $history->jml_akhir = $tersedia[$b] - str_replace(',', '.', $qty[$b]); $history->terambil = str_replace(',', '.', $qty[$b]); $history->created_at = date('Y-m-d H:i:s'); $history->save(); $project = Project::findOrFail($id_project); if ($jenis[$b] == 'material') { $material = Crap::where([['id_material', $id_material[$b]], ['id_rab', $project->rab->id]])->first(); } else if ($jenis[$b] == 'vendor') { $material = Crap::where([['id_vendor', $id_material[$b]], ['id_rab', $project->rab->id]])->first(); } $material->qty_terpakai = $material->qty_terpakai + str_replace(',', '.', $qty[$b]); $material->save(); } } } return redirect()->route('daily-reports.index')->with('msg', 'Laporan Harian Berhasil Ditambahkan'); } else if ($row > 0) { return redirect()->route('daily-reports.index')->with('msg', 'Laporan Harian Hanya Bisa Diinput 1 Kali Per Project Per Hari'); } } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { $material = HistoryMaterial::where('id_daily_reports', $id)->get(); return view('staff.history_material', compact('material')); } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { $report = DailyReport::findOrFail($id); $id_project = $report->id_project; $history = HistoryMaterial::where('id_daily_reports', $id)->get(); $absensi = Absensi::where('id_daily_reports', $id)->get(); $mandor = DatabasePekerja::where([['id_project', $id_project], ['keahlian', 'Mandor']])->first(); $kepala_tukang = DatabasePekerja::where([['id_project', $id_project], ['keahlian', 'Kepala Tukang']])->first(); $tukang = DatabasePekerja::where([['id_project', $id_project], ['keahlian', 'Tukang']])->get(); $pekerja = DatabasePekerja::where([['id_project', $id_project], ['keahlian', 'Pekerja']])->get(); $row_pekerja = DatabasePekerja::where([['id_project', $id_project], ['keahlian', 'Pekerja']])->count(); return view('staff.edit-daily-reports', compact('report', 'history', 'absensi', 'mandor', 'kepala_tukang', 'tukang', 'pekerja', 'row_pekerja')); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $daily_reports = DailyReport::findOrFail($id); $id_rab = $daily_reports->project->rab->id; $id_database_pekerja = $request->get('id_pekerja'); $tersedia = $request->get('tersedia'); $qty = $request->get('qty'); $id_material = $request->get('id_material'); $note = $request->get('note'); $pekerjaan = $request->get('pekerjaan'); $jenis = $request->get('jenis'); // Daily Report $daily_reports->note = $note; $daily_reports->pekerjaan = $pekerjaan; $daily_reports->save(); // Baru Sampe Sini Ngerjain buat updatenya // Absensi if (!empty($id_database_pekerja)) { for ($i = 0; $i <= count($id_database_pekerja) - 1; $i++) { $check_pekerja = Absensi::where([['id_database_pekerja', $id_database_pekerja[$i]], ['id_daily_reports', $id]])->count(); if ($check_pekerja < 1) { $pekerja = new Absensi(); $pekerja->id_database_pekerja = $id_database_pekerja[$i]; $pekerja->id_daily_reports = $id; $pekerja->created_at = $daily_reports->created_at; $pekerja->save(); } } } // Delete Unchecked Pekerja $absensi = Absensi::where('id_daily_reports', $id)->get(); foreach ($absensi as $a) { if (!in_array($a->id_database_pekerja, $id_database_pekerja)) { Absensi::where('id_database_pekerja', $a->id_database_pekerja)->delete(); } } if (!empty($id_material)) { // History for ($b = 0; $b <= count($id_material) - 1; $b++) { if ($jenis[$b] == 'material') { $history = HistoryMaterial::where([['id_material', $id_material[$b]], ['id_daily_reports', $id]])->first(); $crap = Crap::where([['id_material', $id_material[$b]], ['id_rab', $id_rab]])->first(); if (str_replace(',', '.', $qty[$b]) == 0) { $undo_qty_terpakai = $history->terambil; $crap->qty_terpakai += $undo_qty_terpakai; HistoryMaterial::where([['id_material', $id_material[$b]], ['id_daily_reports', $id]])->delete(); } else { $undo_qty_terpakai = $history->terambil; $history->jml_akhir = $tersedia[$b] - str_replace(',', '.', $qty[$b]); $history->terambil = str_replace(',', '.', $qty[$b]); $history->save(); $crap->qty_terpakai -= $undo_qty_terpakai; $crap->save(); } } else if ($jenis[$b] == 'vendor') { $history = HistoryMaterial::where([['id_vendor', $id_material[$b]], ['id_daily_reports', $id]])->first(); $crap = Crap::where([['id_vendor', $id_material[$b]], ['id_rab', $id_rab]])->first(); if (str_replace(',', '.', $qty[$b]) == 0) { $undo_qty_terpakai = $history->terambil; $crap->qty_terpakai -= $undo_qty_terpakai; HistoryMaterial::where([['id_vendor', $id_material[$b]], ['id_daily_reports', $id]])->delete(); } else { $undo_qty_terpakai = $history->terambil; $history->jml_akhir = $tersedia[$b] - str_replace(',', '.', $qty[$b]); $history->terambil = str_replace(',', '.', $qty[$b]); $history->save(); $crap->qty_terpakai -= $undo_qty_terpakai; $crap->save(); } } } } return redirect()->route('daily-reports.index')->with('msg', 'Laporan Harian Berhasil Disimpan'); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $report = DailyReport::findOrFail($id); $material = HistoryMaterial::where('id_daily_reports', $id)->get(); $id_rab = Rab::where('id_project', $report->id_project)->first()->id; foreach ($material as $m) { if ($m->id_vendor == NULL) { $materi = Crap::where([['id_material', $m->id_material], ['id_rab', $id_rab]])->first(); $materi->qty_terpakai -= $m->terambil; $materi->save(); } else if ($m->id_material == NULL) { $materi = Crap::where([['id_vendor', $m->id_vendor], ['id_rab', $id_rab]])->first(); $materi->qty_terpakai -= $m->terambil; $materi->save(); } } HistoryMaterial::where('id_daily_reports', $id)->delete(); DailyReport::destroy($id); return redirect()->route('daily-reports.index')->with('msg', 'Daily Reports Berhasil Dihapus'); } public function getProject(Request $request) { $id_project = $request->get('id_project'); $mandor = DatabasePekerja::where([['id_project', $id_project], ['keahlian', 'Mandor']])->first(); $kepala_tukang = DatabasePekerja::where([['id_project', $id_project], ['keahlian', 'Kepala Tukang']])->first(); $tukang = DatabasePekerja::where([['id_project', $id_project], ['keahlian', 'Tukang']])->get(); $pekerja = DatabasePekerja::where([['id_project', $id_project], ['keahlian', 'Pekerja']])->get(); $row_pekerja = DatabasePekerja::where([['id_project', $id_project], ['keahlian', 'Pekerja']])->count(); $project = Project::findOrFail($id_project); $material = Crap::where([['id_rab', $project->rab->id], ['qty_terambil', '>', 0]])->get(); $html = ''; if ($material != NULL) { // Material $html .= '
Nama | Satuan | QTY Tersedia | QTY Terpakai | QTY Sisa | |||
---|---|---|---|---|---|---|---|
' . $m->material->nama_material . ' | '; $html .= '' . $m->material->satuan . ' | '; } else if ($m->id_material == NULL) { $html .= '' . $m->vendor->nama_pekerjaan . ' | '; $html .= '' . $m->vendor->satuan . ' | '; } $html .= ''; if ($m->id_material == NULL) { $html .= ' | '; } else if ($m->id_vendor == NULL) { $html .= ' | '; } $html .= ' | '; $html .= ' |