public function previous($level, $self)
 {
     if ($level < 0) {
         return null;
     } elseif ($level == 0) {
         return $self;
     } else {
         $previous = TicketHistory::where('id', '=', $self->previous_id)->first();
         return count($previous) ? $this->previous(--$level, $previous) : null;
     }
 }
 private function updateHistory($ticket)
 {
     $history = new TicketHistory();
     $last_history = TicketHistory::where('ticket_id', $ticket->id)->orderBy("created_at", "DESC")->first();
     $history->previous_id = count($last_history) ? $last_history->id : NULL;
     $history->changer_id = Auth::user()->active_contact->id;
     $history->ticket_id = $ticket->id;
     $history->title = $ticket->title;
     $history->post = $ticket->post;
     $history->creator_id = $ticket->creator_id;
     $history->assignee_id = $ticket->assignee_id;
     $history->status_id = $ticket->status_id;
     $history->priority_id = $ticket->priority_id;
     $history->division_id = $ticket->division_id;
     $history->equipment_id = $ticket->equipment_id;
     $history->company_id = $ticket->company_id;
     $history->contact_id = $ticket->contact_id;
     $history->level_id = $ticket->level_id;
     $history->job_type_id = $ticket->job_type_id;
     $history->emails = $ticket->emails;
     $history->save();
 }
Example #3
0
 public function anchestor($level = 1)
 {
     $last = TicketHistory::where('ticket_id', '=', $this->id)->orderBy('created_at', 'desc')->first();
     return count($last) ? $last->previous($level, $last) : null;
 }
 private function updateTicket($request)
 {
     $updated = false;
     $ticket = Ticket::find($request->get('ticket_id'));
     $status_id = $request->get('status_id');
     $priority_id = $request->get('priority_id');
     $ticket->status_id = $status_id;
     $ticket->priority_id = $priority_id;
     $updated = $ticket->isDirty();
     if ($updated) {
         $ticket->save();
         $history = new TicketHistory();
         $last_history = TicketHistory::where('ticket_id', $ticket->id)->orderBy("created_at", "DESC")->first();
         $history->previous_id = count($last_history) ? $last_history->id : NULL;
         $history->changer_id = Auth::user()->active_contact->id;
         $history->ticket_id = $ticket->id;
         $history->title = $ticket->title;
         $history->post = $ticket->post;
         $history->creator_id = $ticket->creator_id;
         $history->assignee_id = $ticket->assignee_id;
         $history->status_id = $ticket->status_id;
         $history->priority_id = $ticket->priority_id;
         $history->division_id = $ticket->division_id;
         $history->equipment_id = $ticket->equipment_id;
         $history->company_id = $ticket->company_id;
         $history->contact_id = $ticket->contact_id;
         $history->level_id = $ticket->level_id;
         $history->job_type_id = $ticket->job_type_id;
         $history->emails = $ticket->emails;
         $history->save();
     }
     return $updated;
 }