public function revertAssignedWork(RevertAssignedWorkRequest $request)
 {
     if ($request->revert == 1) {
         $work = Work::where('id', '=', $request->work_id)->first();
         if ($work->created_by == $this->currentUser->getId()) {
             /**
              * İŞİ GERİ ÇEKİLİNCE
              */
             $departmentWork = DepartmentWork::where('id', '=', $work->last_department_work_id)->first();
             $departmentWithSenior = Department::where('id', '=', $departmentWork->department_id)->with('senior')->first();
             $seniorUser = $departmentWithSenior->senior[0];
             $username = $seniorUser->first_name . " " . $seniorUser->last_name;
             $username = mb_convert_case($username, MB_CASE_TITLE, 'utf-8');
             CommonController::mailSendNotQueue('IS TAKIP SISTEMI', [$seniorUser->email], ['fullname' => $username, 'message' => 'Departmanınıza açılan "' . $work->title . '" başlıklı iş geri
                 alınmıştır. Lütfen ' . $this->currentUser->first_name . ' ' . $this->currentUser->last_name . ' ile irtibata geçiniz. '], 'emails.work-mail-template');
             CommonController::sendSms('RHPOZTFYAY', $seniorUser->phone, 'Departmanınızdaki "' . $work->title . '" başlıklı iş geri
             alınmıştır.Lütfen ' . $this->currentUser->first_name . ' ' . $this->currentUser->last_name . '  ile irtibata geçiniz.');
             $work->last_department_work_id = null;
             $work->save();
         } else {
             $workDepartment = DepartmentWork::where('id', '=', $work->last_department_work_id)->first();
             $userWork = UserWork::where('id', '=', $workDepartment->last_user_work_id)->first();
             $user = User::where('id', '=', $userWork->assigned_to)->first();
             $username = $user->first_name . " " . $user->last_name;
             $username = mb_convert_case($username, MB_CASE_TITLE, 'utf-8');
             CommonController::mailSendNotQueue('IS TAKIP SISTEMI', [$user->email], ['fullname' => $username, 'message' => 'Size acılan "' . $work->title . '" başlıklı iş geri alınmıştır.
                  Lütfen departman lideriniz ile irtibata geçiniz. '], 'emails.work-mail-template');
             CommonController::sendSms('RHPOZTFYAY', $user->phone, 'Size açılmış  "' . $work->title . '" başlıklı iş geri alınmıştır.
             Lütfen departman lideri ile irtibata geçiniz.');
             $workDepartment->last_user_work_id = null;
             $workDepartment->accepted = null;
             $workDepartment->save();
         }
         return response()->json(['success' => true, 'messages' => 'İş Geri Alma İşlemi Başarılı', 'revert' => true, 'work_id' => $work->id]);
     } else {
         return response()->json(['success' => true, 'messages' => 'İş Geri Alma İşlemi Başarılı', 'revert' => false]);
     }
 }
 /**
  * Update the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request $request
  * @param  int $id
  * @return \Illuminate\Http\Response
  */
 public function update(WorkFlowTodoWorkRequest $request, $id)
 {
     if ($this->currentUser->hasAccess('wts.management.edit')) {
         DB::transaction(function () use($request) {
             $editWork = Work::where('id', '=', $request->work_id)->with('departmentWork')->first();
             $editWork->slug = $request->slug_name;
             $editWork->title = $request->title;
             $editWork->description = $request->description;
             $editWork->importance = $request->importance;
             $editWork->deadline = strtotime(str_replace('/', '-', $request->deadline));
             if ($request->hasFile('file')) {
                 if ($editWork->file != '') {
                     \File::delete(public_path() . "/uploads/works-files/" . $editWork->file);
                 }
                 $file = $request->file('file');
                 $fileName = CommonController::fileUpload($file, 'uploads/works-files');
                 $editWork->file = $fileName;
                 $editWork->save();
             } elseif (!$request->hasFile('file') && $request->file_hidden == 1) {
                 if ($editWork->file != '') {
                     \File::delete(public_path() . "/uploads/works-files/" . $editWork->file);
                     $editWork->file = "";
                 }
             }
             if (empty($editWork->departmentWork) || $editWork->departmentWork->department_id != $request->department) {
                 if ($request->department == '') {
                     $editWork->last_department_id = '';
                 } else {
                     $departmentWork = new DepartmentWork();
                     $departmentWork->department_id = $request->department;
                     $departmentWork->assign_date = time();
                     //@todo DATE HATASI !!! BURALAR REVİZE EDİLMELİ
                     $departmentWork->accepted = 0;
                     $departmentWork->save();
                     $editWork->last_department_work_id = $departmentWork->id;
                     if ($request->is_senior == 1 && $request->has('department_worker')) {
                         $userWork = new UserWork();
                         $userWork->department_id = $request->department;
                         $userWork->assign_date = time();
                         //@todo DATE HATASI !!! BURALAR REVİZE EDİLMELİ
                         $userWork->assigned_to = $request->department_worker;
                         $userWork->accepted = 0;
                         $userWork->save();
                         $departmentWork->accepted = 1;
                         $departmentWork->last_user_work_id = $userWork->id;
                         $departmentWork->save();
                         /**
                          * İŞ AÇILAN KİŞİYE MAİL ATMA
                          */
                         $user = User::where('id', '=', $request->department_worker)->first();
                         $username = $user->first_name . " " . $user->last_name;
                         $username = mb_convert_case($username, MB_CASE_TITLE, 'utf-8');
                         $workCreator = User::where('id', '=', $editWork->created_by)->first();
                         $creatorusername = $workCreator->first_name . " " . $workCreator->last_name;
                         $creatorusername = mb_convert_case($creatorusername, MB_CASE_TITLE, 'utf-8');
                         CommonController::mailSendNotQueue('IS TAKIP SISTEMI', [$user->email], ['fullname' => $username, 'message' => 'Departman lideriniz ' . $creatorusername . ' tarafından size , "' . $editWork->title . '" başlıklı yeni bir iş açıldı. Detaylar için lütfen sisteme gidiniz.'], 'emails.work-mail-template');
                         CommonController::sendSms('RHPOZTFYAY', $user->phone, 'Merhaba ' . $username . ', departman lideriniz ' . $creatorusername . ' tarafından size yeni bir iş açıldı lütfen sistem üzerinden ayrıntıları inceleyin');
                         /**
                          * İŞİ OLUŞTURAN KİŞİYE BİLGİLENDİRME
                          */
                         $departmentWithSenior = Department::where('id', '=', $request->department)->with('senior')->first();
                         $seniorUser = $departmentWithSenior->senior[0];
                         $seniorUsername = $seniorUser->first_name . " " . $seniorUser->last_name;
                         $seniorUsername = mb_convert_case($seniorUsername, MB_CASE_TITLE, 'utf-8');
                         CommonController::mailSendNotQueue('IS TAKIP SISTEMI', [$seniorUser->email], ['fullname' => $seniorUsername, 'message' => 'Departmanınıza "' . $editWork->title . '" başlıklı yeni bir iş açılmış ve bu iş ' . $username . ' kişisine atanmıştır. İşin detayları ve işi atamak için lütfen sisteme gidiniz.'], 'emails.work-mail-template');
                         CommonController::sendSms('RHPOZTFYAY', $seniorUser->phone, 'Merhaba ' . $seniorUsername . ', departmanınıza "' . $editWork->title . '" başlıklı yeni bir iş açılmış ve bu iş ' . $username . ' kişisine atanmıştır . İşin detayları ve işi atamak için lütfen sisteme gidiniz.');
                     } else {
                         $workCreator = User::where('id', '=', $editWork->created_by)->first();
                         $creatorusername = $workCreator->first_name . " " . $workCreator->last_name;
                         $creatorusername = mb_convert_case($creatorusername, MB_CASE_TITLE, 'utf-8');
                         /**
                          * İŞİ OLUŞTURULAN KİŞİYE BİLGİLENDİRME
                          */
                         $departmentWithSenior = Department::where('id', '=', $request->department)->with('senior')->first();
                         $seniorUser = $departmentWithSenior->senior[0];
                         $username = $seniorUser->first_name . " " . $seniorUser->last_name;
                         $username = mb_convert_case($username, MB_CASE_TITLE, 'utf-8');
                         CommonController::mailSendNotQueue('IS TAKIP SISTEMI', [$seniorUser->email], ['fullname' => $username, 'message' => 'Departmanınıza ' . $creatorusername . ' kişisi tarafından, "' . $editWork->title . '" başlıklı yeni bir iş açılmıştır. İşin detayları ve işi atamak için lütfen sisteme gidiniz.'], 'emails.work-mail-template');
                         CommonController::sendSms('RHPOZTFYAY', $seniorUser->phone, 'Merhaba ' . $username . ', departmanınıza ' . $creatorusername . ' kişisi tarafından ,"' . $editWork->title . '" başlıklı yeni bir iş açılmıştır. İşin detayları ve işi atamak için lütfen sisteme gidiniz.');
                     }
                 }
             }
             $editWork->save();
         });
         return response()->json($this->editResponseMessage);
     } else {
         abort(403, $this->accessForbidden);
     }
 }