/** * Create a new ticket * @param TicketRequest $request * @return $this|\Illuminate\Http\RedirectResponse */ public function store(TicketRequest $request) { try { $ticket = new Ticket(['account_id' => get_user()->account_id, 'email_address' => get_user()->email_address, 'subject' => $request->input('subject'), 'description' => $request->input('description'), 'ticket_group_id' => Config::get("customer_portal.ticket_group_id"), 'user_id' => Config::get("customer_portal.ticket_user_id"), 'priority' => Config::get("customer_portal.ticket_priority"), 'inbound_email_account_id' => Config::get("customer_portal.inbound_email_account_id")]); } catch (Exception $e) { Log::error($e->getMessage()); return redirect()->back()->withErrors(trans("errors.failedToCreateTicket"))->withInput(); } $accountTicketController = new AccountTicketController(); try { $accountTicketController->createTicket($ticket, get_user()->contact_name, get_user()->email_address); } catch (Exception $e) { Log::error($e->getMessage()); return redirect()->back()->withErrors(trans("errors.failedToCreateTicket"))->withInput(); } $this->clearTicketCache(); return redirect()->action("TicketController@index")->with('success', trans("tickets.ticketCreated")); }
public function update(TicketRequest $request, Ticket $ticket) { if (!Entrust::can('edit_ticket')) { return redirect('/dashboard')->withErrors(config('constants.NA')); } if (!Helper::getMode()) { return redirect()->back()->withErrors(config('constants.DISABLE_MESSAGE')); } $data = $request->except('user_id'); $ticket->fill($data)->save(); $service_time = Helper::getServiceTime($ticket->ticket_priority); if ($service_time['resolution_time_type'] == 'business_hour') { $ticket->resolution_due_time = Helper::calculateDueTime($service_time['resolution_time'], $ticket->created_at); } else { $ticket->resolution_due_time = date('Y-m-d H:i', $service_time['resolution_time'] * 60 + strtotime($ticket->created_at)); } if ($service_time['response_time_type'] == 'business_hour') { $ticket->response_due_time = Helper::calculateDueTime($service_time['response_time'], $ticket->created_at); } else { $ticket->response_due_time = date('Y-m-d H:i', $service_time['response_time'] * 60 + strtotime($ticket->created_at)); } $ticket->save(); Helper::updateCustomField($this->form, $ticket->id, $data); $ticket->assignedUser()->sync($request->input('user_id') ?: []); return redirect()->back()->withSuccess(config('constants.ADDED')); }