예제 #1
0
 public function masuk()
 {
     $absensi = new Absensi();
     //$absensi->waktumasuk=Carbon::now();
     $absensi->pegawai_id = \Auth::user()->idpegawai;
     $absensi->waktumasuk = Carbon::now();
     if (Carbon::now()->hour > 8) {
         $absensi->statusmasuk = 'Terlambat';
     } else {
         $absensi->statusmasuk = 'Tepat Waktu';
     }
     $absensi->save();
     flash()->overlay('Absen Masuk Sukses!');
     return redirect('absensi');
 }
예제 #2
0
 public function upload_save(Request $request)
 {
     $this->validate($request, ['excel' => 'required']);
     $inputFileName = $request->excel;
     try {
         $inputFileType = PHPExcel_IOFactory::identify($inputFileName);
         $objReader = PHPExcel_IOFactory::createReader($inputFileType);
         $objPHPExcel = $objReader->load($inputFileName);
     } catch (Exception $e) {
         die('Error loading file "' . pathinfo($inputFileName, PATHINFO_BASENAME) . '": ' . $e->getMessage());
     }
     $data_count = 0;
     $errors = 0;
     $semester = Semester::get_active_semester()->id;
     foreach ($objPHPExcel->getWorksheetIterator() as $sheet) {
         $highestRow = $sheet->getHighestRow();
         $highestColumn = $sheet->getHighestColumn();
         $start = false;
         for ($row = 1; $row <= $highestRow; $row++) {
             $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE);
             if (!$start) {
                 // Start check
                 if ($rowData[0][0] == "1" || $rowData[0][0] == "1.") {
                     $start = true;
                 }
             }
             if ($start) {
                 $id_siswa = null;
                 $data_count++;
                 if (!empty($rowData[0][1])) {
                     $siswa = Siswa::where('nis', $rowData[0][1])->first();
                     if (!$siswa) {
                         $errors++;
                         $id_siswa = null;
                         continue;
                     }
                     $id_siswa = $siswa->id;
                 }
                 if (!$id_siswa) {
                     continue;
                 }
                 $new = new Absensi();
                 $created = null;
                 $check = Absensi::where('id_siswa', $id_siswa)->where('id_semester', $semester);
                 $old = $check->first();
                 if ($old) {
                     $created = $old->created_at;
                     $check->delete();
                 }
                 $new->id_siswa = $id_siswa;
                 $new->id_semester = $semester;
                 $new->sakit = $rowData[0][3] !== null ? $rowData[0][3] : null;
                 $new->izin = $rowData[0][4] !== null ? $rowData[0][4] : null;
                 $new->alpa = $rowData[0][5] !== null ? $rowData[0][5] : null;
                 if ($created) {
                     $new->created_at = $created;
                 }
                 try {
                     $new->save();
                 } catch (\Illuminate\Database\QueryException $e) {
                     $errors++;
                 }
             }
         }
     }
     $message = "Upload file selesai. Terbaca ada {$data_count} data. ";
     $message .= $errors > 0 ? "Ada masalah dengan {$errors} data, dan tidak dapat dimasukkan ke dalam database." : "Semua data berhasil ditambahkan.";
     return redirect()->route('absensi')->with('message', $message);
 }