예제 #1
0
 public function destroy($id)
 {
     $store = Store::find($id);
     if ($store->file_entries_id !== 0) {
         $entry = FileEntry::find($store->file_entries_id);
         Storage::delete($entry->filename);
         $entry->delete();
     }
     $store->delete();
     return response()->json(['id' => $id]);
 }
예제 #2
0
    Route::get('callback', ['as' => 'wechat.callback', 'uses' => 'WechatController@callback']);
});
Route::group(['namespace' => 'Admin', 'prefix' => 'admin', 'middleware' => ['admin.auth', 'acl'], 'is' => 'administrator|assistant'], function () {
    Route::get('stores/{id}/classrooms', 'StoreController@getClassroomsByID');
    Route::post('stores/cover/{id}', 'StoreController@updateCover');
    Route::resource('stores', 'StoreController');
    Route::resource('classrooms', 'ClassroomController');
    Route::get('coaches/export', ['uses' => 'CoachController@exportExcel']);
    Route::resource('coaches', 'CoachController');
    Route::get('courses/list', 'CourseController@scheduleList');
    Route::get('courses/{id}/schedules', 'CourseController@getCourseSchedules');
    Route::get('course/check', 'CourseController@checkCourse');
    Route::post('courses/{id}/schedules', 'CourseController@saveCourseSchedules');
    Route::put('courses/schedules/{id}', 'CourseController@updateCourseSchedule');
    Route::delete('courses/schedules/{id}', 'CourseController@destroyCourseSchedule');
    Route::resource('courses', 'CourseController');
    Route::put('reserves/{id}/verify', ['uses' => 'ReserveController@verify']);
    Route::resource('reserves', 'ReserveController');
    Route::put('users/{id}/audit', ['uses' => 'UserController@audit']);
    Route::get('users/export', ['uses' => 'UserController@exportExcel']);
    Route::put('changePwd', ['uses' => 'UserController@changePwd']);
    Route::resource('users', 'UserController');
    Route::resource('roles', 'RoleController');
    Route::get('/', ['uses' => 'HomeController@getIndex']);
});
Route::controller('admin', 'AdminController');
Route::get('file/{id}', ['as' => 'getfile', function ($id) {
    $entry = FileEntry::find($id);
    $file = Storage::disk('local')->get($entry->filename);
    return (new Response($file, 200))->header('Content-Type', $entry->mime);
}]);
 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store(Request $request, Validator $validator)
 {
     $data = $request->all();
     // dd($data);
     $data['technical_consult']['owner_id'] = $request->user()->id;
     $data['technical_consult']['color'] = (new Alfred())->randomColor();
     $data['email_message']['date'] = empty($data['email_message']['date']) ? date('Y-m-d') : $data['email_message']['date'];
     $data['email_message']['time'] = empty($data['email_message']['time']) ? date('H:i') : $data['email_message']['time'];
     // CRIA CONSULTA TÉCNICA
     if (isset($data['technical_consult_id']) && $data['technical_consult_id'] > 0) {
         $technical_consult = TechnicalConsult::find($data['technical_consult_id']);
     } else {
         $technical_consult = TechnicalConsult::create($data['technical_consult']);
     }
     if (!$technical_consult) {
         $this->sys_notifications[] = array('type' => 'danger', 'message' => 'Erro ao criar consulta técnica');
         $request->session()->flash('sys_notifications', $this->sys_notifications);
         return back()->withInput($request->all());
     }
     $email_data = $data['email_message'];
     $email_data['date'] = date('Y-m-d H:i:s', strtotime($email_data['date'] . ' ' . $email_data['time'] . ':00'));
     $contact = Contact::find($data['technical_consult']['contact_id']);
     $email_data['to'] = $contact->email;
     $email_data['toname'] = $contact->name;
     $email_data['from'] = $request->user()->email;
     $email_data['subject'] = $data['technical_consult']['title'];
     $email_data['consulta_tecnica_id'] = $technical_consult->id;
     $email_data['owner_id'] = $request->user()->id;
     $email_data['body_html'] = $data['technical_consult']['description'];
     $email_data['body_text'] = strip_tags($data['technical_consult']['description']);
     $email_data['email_message_id'] = $data['email_message_id'] && !empty($data['email_message_id']) ? $data['email_message_id'] : null;
     // CRIA EMAIL MESSAGE
     $email_message = EmailMessage::create($email_data);
     if (!$email_message) {
         $this->sys_notifications[] = array('type' => 'danger', 'message' => $validator->errors()->first());
         $request->session()->flash('sys_notifications', $this->sys_notifications);
         return back()->withInput($request->all());
     }
     // ATTACH FILES
     $files = $request->file('file');
     if ($files[0] != null) {
         $filesupload = (new FileEntryController())->upload($request, false, $email_message->id);
         if ($filesupload['uploaded'] > 0) {
             // $this->sys_notifications[] = array('type' => 'success', 'message' => $filesupload['uploaded'] . ' arquivos anexados');
         }
     }
     $anexos = array();
     if (!empty($filesupload['ids'])) {
         foreach ($filesupload['ids'] as $key => $fileid) {
             $entry = FileEntry::find($fileid);
             $entry->email_message_id = $email_message->id;
             $entry->save();
             $anexos[] = $entry;
         }
     }
     // SEND MAIL
     if ($email_data['type'] == 1) {
         Mail::send('emails.message', ['email_data' => $email_data], function ($message) use($email_data, $anexos, $request, $email_message, $technical_consult) {
             foreach ($anexos as $anexo) {
                 $message->attach(storage_path('app/' . $request->user()->id . '/' . $email_message->id . '/' . $anexo->original_filename));
             }
             $message->from($email_data['from'], 'Consultas Técnicas');
             $message->to($email_data['to'], $email_data['toname'])->subject('Consulta Técnica CT0' . $technical_consult->id);
             $message->bcc('*****@*****.**', $email_data['toname'])->subject('Consulta Técnica CT0' . $technical_consult->id);
         });
     }
     $this->sys_notifications[] = array('type' => 'success', 'message' => 'Nova consulta técnica registrada com sucesso!');
     $request->session()->flash('sys_notifications', $this->sys_notifications);
     return redirect('obras/');
     return back()->withInput($request->all());
 }
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request, Validator $validator)
 {
     $data = $request->all();
     if (!isset($data['email_message']['project_id'])) {
         return 'Informe a obra';
     }
     $obra = Obra::find(@$data['email_message']['project_id']);
     $data['technical_consult']['cod'] = $obra->consultas_tecnicas->max('cod') + 1;
     switch (@$data['email_message']['type']) {
         case 0:
             // CRIA ACONTECIMENTO
             $technical_consult = ConsultaTecnica::create($data['technical_consult']);
             // CRIA EMAIL MESSAGE
             $email_message = new EmailMessage();
             break;
         case 2:
             // REGISTRAR RETORNO
             $technical_consult = ConsultaTecnica::find($data['technical_consult']['id']);
             // CRIA EMAIL MESSAGE
             $email_message = new EmailMessage();
             $email_message->email_message_id = $data['email_message']['email_message_id'];
             break;
         default:
             // CRIA CONSULTA TÉCNICA
             $technical_consult = new ConsultaTecnica();
             $technical_consult->owner_id = $request->user()->id;
             $technical_consult->color = (new Alfred())->randomColor();
             $technical_consult->project_id = @$data['technical_consult']['project_id'];
             $technical_consult->project_stage_id = @$data['technical_consult']['project_stage_id'];
             $technical_consult->project_discipline_id = @$data['technical_consult']['project_discipline_id'];
             $technical_consult->title = @$data['technical_consult']['title'];
             $technical_consult->cod = $data['technical_consult']['cod'];
             $technical_consult->save();
             // CRIA EMAIL MESSAGE
             $email_message = new EmailMessage();
             break;
     }
     if (isset($data['email_message']['date'])) {
         $date = str_replace('/', '-', $data['email_message']['date']);
     } else {
         $date = date('Y-m-d');
     }
     $data['email_message']['date'] = empty($data['email_message']['date']) ? date('Y-m-d') : date('Y-m-d', strtotime($date));
     $data['email_message']['time'] = empty($data['email_message']['time']) ? date('H:i') : $data['email_message']['time'];
     $email_message->date = date('Y-m-d H:i:s', strtotime($data['email_message']['date'] . ' ' . $data['email_message']['time']));
     // DADOS PARA O CORPO DO EMAIL
     $email_data = $data['email_message'];
     $email_data['obra'] = $technical_consult->project->title;
     $email_data['subject'] = $technical_consult->title;
     $email_data['consulta_tecnica_id'] = $technical_consult->formattedCod('CT #');
     $email_data['etapa'] = $technical_consult->projectstage ? $technical_consult->projectstage->title : '';
     $email_data['disciplina'] = $technical_consult->projectdiscipline ? $technical_consult->projectdiscipline->title : '';
     $email_data['body_html'] = $email_data['description'];
     // dd($email_data);
     $contatos = array();
     $email_data_to['contato_emails'] = array();
     $email_message->type = null !== @$email_data['type'] ? $email_data['type'] : 1;
     if (null == @$email_data['to']) {
         $email_data['to'] = EmailMessage::find($email_message->email_message_id)->to;
         $email_data['to'] = explode(',', @$email_data['to']);
     }
     foreach ($email_data['to'] as $contato_id) {
         $contato = Contato::find($contato_id);
         if (null !== $contato) {
             $contatos[] = $contato;
             $email_data_to['contato_emails'][] = $contato->email;
         }
     }
     $email_message->to = implode(',', $email_data_to['contato_emails']);
     $email_message->from = $request->user()->email;
     $email_message->subject = $email_data['subject'];
     $email_message->consulta_tecnica_id = $technical_consult->id;
     $email_message->owner_id = $request->user()->id;
     $email_message->body_html = $email_data['description'];
     $email_message->rating = @$email_data['rating'];
     $email_message->private = null === @$email_data['private'] ? false : true;
     // SALVA EMAIL MESSAGE
     $email_message->save();
     if (!$technical_consult) {
         $this->sys_notifications[] = array('type' => 'danger', 'message' => 'Erro ao adicionar consulta técnica');
         $request->session()->flash('sys_notifications', $this->sys_notifications);
         return back()->withInput($request->all());
     }
     if (!$email_message) {
         $this->sys_notifications[] = array('type' => 'danger', 'message' => $validator->errors()->first());
         $request->session()->flash('sys_notifications', $this->sys_notifications);
         return back()->withInput($request->all());
     }
     // ENVIAR EMAIL
     if ($email_message->type == 1 && "on" == @$data['sendnow']) {
         // ATTACH FILES
         $files = $request->file('file');
         if ($files[0] != null) {
             $filesupload = (new FileEntryController())->upload($request, false, $email_message->id);
             if ($filesupload['uploaded'] > 0) {
                 // $this->sys_notifications[] = array('type' => 'success', 'message' => $filesupload['uploaded'] . ' arquivos anexados');
             }
         }
         $anexos = array();
         if (!empty($filesupload['ids'])) {
             foreach ($filesupload['ids'] as $key => $fileid) {
                 $entry = FileEntry::find($fileid);
                 $entry->email_message_id = $email_message->id;
                 $entry->save();
                 $anexos[] = $entry;
             }
         }
         // SEND MAIL TO ME
         if (null !== @$data['sendtome']) {
             $email_data['bcc'] = $request->user()->email;
         }
         // PROCESS THE JOB
         $this->dispatch(new SendEmail($email_data, $anexos, $request, $email_message, $technical_consult, $contatos));
         // return view('emails.message', compact('email_data', 'anexos', 'request', 'email_message', 'technical_consult', 'contatos'));
         $this->sys_notifications[] = array('type' => 'success', 'message' => 'E-mail enviado!');
     }
     $this->sys_notifications[] = array('type' => 'success', 'message' => 'Consulta Técnica registrada com sucesso!');
     $request->session()->flash('sys_notifications', $this->sys_notifications);
     return redirect('obras/' . $technical_consult->project_id);
 }