/**
  * Create Ticket
  * @param type $user_id
  * @param type $subject
  * @param type $body
  * @param type $helptopic
  * @param type $sla
  * @param type $priority
  * @return type string
  */
 public function create_ticket($user_id, $subject, $body, $helptopic, $sla, $priority, $source, $headers, $dept, $assignto, $form_data, $attach = '')
 {
     try {
         $max_number = Tickets::whereRaw('id = (select max(`id`) from tickets)')->first();
         if ($max_number == null) {
             $ticket_number = "AAAA-9999-9999999";
         } else {
             foreach ($max_number as $number) {
                 $ticket_number = $max_number->ticket_number;
             }
         }
         $ticket = new Tickets();
         $ticket->ticket_number = $this->ticket_number($ticket_number);
         $ticket->user_id = $user_id;
         $ticket->dept_id = $dept;
         $ticket->help_topic_id = $helptopic;
         $ticket->sla = $sla;
         $ticket->assigned_to = $assignto;
         $ticket->status = '1';
         $ticket->priority_id = $priority;
         $ticket->source = $source;
         $ticket->save();
         $ticket_number = $ticket->ticket_number;
         $id = $ticket->id;
         if ($form_data != null) {
             $help_topic = Help_topic::where('id', '=', $helptopic)->first();
             $forms = Fields::where('forms_id', '=', $help_topic->custom_form)->get();
             foreach ($form_data as $key => $form_details) {
                 foreach ($forms as $from) {
                     if ($from->name == $key) {
                         $form_value = new Ticket_Form_Data();
                         $form_value->ticket_id = $id;
                         $form_value->title = $from->label;
                         $form_value->content = $form_details;
                         $form_value->save();
                     }
                 }
             }
         }
         $this->store_collaborators($headers, $id);
         $thread = $this->ticket_thread($subject, $body, $id, $user_id);
         if (!empty($attach)) {
             $this->attach($thread, $attach);
         }
         return $thread;
     } catch (\Exception $e) {
         return $e->getMessage();
     }
 }
 /**
  * Create Ticket
  * @param type $user_id
  * @param type $subject
  * @param type $body
  * @param type $helptopic
  * @param type $sla
  * @param type $priority
  * @return type string
  */
 public function create_ticket($user_id, $subject, $body, $helptopic, $sla, $priority, $source, $headers, $dept, $assignto, $form_data)
 {
     $max_number = Tickets::whereRaw('id = (select max(`id`) from tickets)')->first();
     if ($max_number == null) {
         $ticket_number = "AAAA-9999-9999999";
     } else {
         foreach ($max_number as $number) {
             $ticket_number = $max_number->ticket_number;
         }
     }
     $ticket = new Tickets();
     $ticket->ticket_number = $this->ticket_number($ticket_number);
     $ticket->user_id = $user_id;
     $ticket->dept_id = $dept;
     $ticket->help_topic_id = $helptopic;
     $ticket->sla = $sla;
     $ticket->assigned_to = $assignto;
     $ticket->status = '1';
     $ticket->priority_id = $priority;
     $ticket->source = $source;
     $ticket->save();
     $sla_plan = Sla_plan::where('id', '=', $sla)->first();
     $ovdate = $ticket->created_at;
     // dd($sla_plan->grace_period);
     $new_date = date_add($ovdate, date_interval_create_from_date_string($sla_plan->grace_period));
     $ticket->duedate = $new_date;
     $ticket->save();
     // dd($ticket->duedate);
     $ticket_number = $ticket->ticket_number;
     $id = $ticket->id;
     // store Form Data
     // Form Data comes from raising a ticket from client panel
     // dd($helptopic);
     if ($form_data != null) {
         $help_topic = Help_topic::where('id', '=', $helptopic)->first();
         $forms = Fields::where('forms_id', '=', $help_topic->custom_form)->get();
         foreach ($form_data as $key => $form_details) {
             foreach ($forms as $from) {
                 if ($from->name == $key) {
                     $form_value = new Ticket_Form_Data();
                     $form_value->ticket_id = $id;
                     $form_value->title = $from->label;
                     $form_value->content = $form_details;
                     $form_value->save();
                 }
             }
         }
     }
     // store collaborators
     // dd($headers);
     $this->store_collaborators($headers, $id);
     if ($this->ticket_thread($subject, $body, $id, $user_id) == true) {
         return $ticket_number;
     }
 }