public function delatt()
 {
     $tab = \Input::all();
     $obj = Attendance::findOrFail($tab['id']);
     $obj->delete();
     if ($obj->trashed()) {
         $att = Attendance::onlyTrashed()->findOrFail($tab['id']);
         $att->forceDelete();
     }
 }
 /**
  * Update the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function update(Request $request, $id)
 {
     $this->validate($request, ['attendance' => 'required|date', 'student_id' => 'integer', 'user_id' => 'integer']);
     $attendanceStudentData = Attendance::findOrFail($id);
     $attendanceUserData = AttendanceUser::findOrFail($id);
     $attendanceStudentData->update(['attendance' => $request->date, 'student_id' => $request->student_id]);
     $attendanceUserData->update(['attendance' => $request->date, 'user_id' => $request->user_id]);
     return Redirect::route('attendance.show');
 }
 public function delatt()
 {
     $tab = \Input::all();
     $obj = Attendance::findOrFail($tab['id']);
     $obj->delete();
 }
 public function archive_att($id)
 {
     $att = Attendance::findOrFail($id);
     $att->delete();
     if ($att->trashed()) {
         return redirect()->back()->with('success', "l'opération d'archivage a été effectué avec succès");
     }
 }
 /**
  * Update the specified resource in storage.
  *
  * @param  Request  $request
  * @param  int  $id
  * @return Response
  */
 public function update(Request $request, $activityId, $attId)
 {
     $oldId = 0;
     $newId = 0;
     // ?action = [ late | sms | leave | update ]
     $action = $request->query('action', 'update');
     // TODO: Set the correct "Recorded By" as a system user
     $recordedBy = 1;
     // This value should be set by the SESSION
     $postData = $request->input('attendance', []);
     $comments = $request->input('comments', '');
     try {
         $activity = Activity::findOrFail($activityId);
         $requestedAtt = Attendance::findOrFail($attId);
         if ($activity->acty_id != $requestedAtt->acty_id) {
             throw new Exception("Requested att record {$attId} does not belong to activity {$activityId}", 'ERR_MISMATCH');
         }
         if ($action == 'update') {
             if (array_key_exists('recorded_value', $postData)) {
                 $recordedValue = $postData['recorded_value'];
                 // value to be recorded
                 $ultimateAtt = $this->chainLookupUltimate($requestedAtt);
                 $oldId = $ultimateAtt->att_id;
                 if ($ultimateAtt->recorded_value == '0') {
                     // Case 1: If the attendance record is "blank" i.e. recorded_value = '0'
                     // Update the existing record
                     $ultimateAtt->comments = $comments;
                     $ultimateAtt->recorded_value = $recordedValue;
                     $ultimateAtt->recorded_by = $recordedBy;
                     $ultimateAtt->save();
                     $newId = $ultimateAtt->att_id;
                 } else {
                     // Case 2: The attendance record was already filled.
                     // Make a superseding one
                     $newAtt = new Attendance();
                     $newAtt->regt_num = $ultimateAtt->regt_num;
                     $newAtt->prev_att_id = $ultimateAtt->att_id;
                     $newAtt->recorded_value = $recordedValue;
                     $newAtt->recorded_by = $recordedBy;
                     $savedAtt = $activity->attendances()->save($newAtt);
                     $newId = $savedAtt->att_id;
                 }
             } else {
                 // Payload didn't specify an attendance value. return an error
                 throw new \Exception('No attendance value in payload', ResponseCodes::ERR_POSTDATA_MISSING);
             }
         } else {
             $oldId = $requestedAtt->att_id;
             if ($action == 'late') {
                 // Case 3: If the update mode is "lateness"
                 // Update the existing record
                 if (array_key_exists('is_late', $postData)) {
                     $requestedAtt->is_late = $postData['is_late'] == '1' ? 1 : 0;
                     $requestedAtt->save();
                     $newId = $requestedAtt->att_id;
                 } else {
                     throw new \Exception('Expected is_late value in post data', self::ERR_POSTDATA_MISSING);
                 }
             } elseif ($action == 'leave') {
                 // Case 4: If the update mode is "linking a leave record"
                 // Update the existing record
                 // $leaveId = $request->input('leave', 0);
                 // if ($leaveId){
                 // $requestedAtt->leave_id = ;
                 // $requestedAtt->save();
                 // $newId = $requestedAtt->att_id;
                 // }
                 // else {
                 // $error = ['code' => 'EX', 'reason' => $ex->getMessage()];
                 // }
             } elseif ($action == 'sms') {
                 // Case 5: Updating the SMS sent status
                 // Update the existing record
                 foreach (['is_sms_sent' => 0, 'sms_timestamp' => date('Y-m-d'), 'sms_mobile' => 'unknown', 'sms_failure' => 'N/A'] as $smsKey => $defaultValue) {
                     if (array_key_exists($smsKey, $postData)) {
                         $ultimateAtt->{$smsKey} = $postData[$smsKey];
                         // $ultimateAtt->is_sms_sent = $request->input('smsSent', 0);
                         // $ultimateAtt->sms_timestamp = $request->input('smsTimestamp', date('Y-m-d'));
                         // $ultimateAtt->sms_mobile = $request->input('smsMobile', 'unknown');
                         // $ultimateAtt->sms_failure = $request->input('smsFailure', 'N/A');
                     } else {
                         $ultimateAtt->{$smsKey} = $defaultValue;
                     }
                 }
                 $ultimateAtt->save();
                 $newId = $ultimateAtt->att_id;
             }
         }
         return response()->json(['attId' => $attId, 'oldRecordId' => $oldId, 'recordId' => $newId]);
     } catch (\Exception $ex) {
         return response()->json(['error' => ['code' => $ex->getCode(), 'reason' => $ex->getMessage()]], 400);
     }
 }