/** * Create User while creating ticket * @param type $emailadd * @param type $username * @param type $subject * @param type $body * @param type $phone * @param type $helptopic * @param type $sla * @param type $priority * @param type $system * @return type bool */ public function create_user($emailadd, $username, $subject, $body, $phone, $helptopic, $sla, $priority, $source, $headers, $dept, $assignto, $from_data) { // define global variables // dd($source); // dd($emailadd); $email; $username; // check emails $ticket_creator = $username; $checkemail = $this->check_email($emailadd); $company = $this->company(); if ($checkemail == false) { // Generate password $password = $this->generateRandomString(); // create user $user = new User(); if ($username == null) { $username = $emailadd; } $user->user_name = $username; $user->email = $emailadd; $user->password = Hash::make($password); $user->phone_number = $phone; $user->role = "user"; $user->active = "1"; // mail user his/her password \Event::fire(new \App\Events\ClientTicketFormPost($from_data, $emailadd, $source)); if ($user->save()) { $user_id = $user->id; // Event fire \Event::fire(new \App\Events\ReadMailEvent($user_id, $password)); if (Mail::send('emails.pass', ['password' => $password, 'name' => $username, 'from' => $company, 'emailadd' => $emailadd], function ($message) use($emailadd, $username, $company) { $message->to($emailadd, $username)->subject('Welcome to ' . $company . ' helpdesk'); })) { // need to do something here.... } } } else { $username = $checkemail->username; $user_id = $checkemail->id; } $ticket_number = $this->check_ticket($user_id, $subject, $body, $helptopic, $sla, $priority, $source, $headers, $dept, $assignto, $from_data); $ticket_number2 = $ticket_number[0]; $ticketdata = Tickets::where('ticket_number', '=', $ticket_number2)->first(); $threaddata = Ticket_Thread::where('ticket_id', '=', $ticketdata->id)->first(); // dd($threaddata); $is_reply = $ticket_number[1]; $system = $this->system(); $updated_subject = $threaddata->title . '[#' . $ticket_number2 . ']'; if ($ticket_number2) { // send ticket create details to user if ($is_reply == 0) { $mail = "Admin_mail"; if (Auth::user()) { $sign = Auth::user()->agent_sign; } else { $sign = $company; } if ($source == 3) { Mail::send('emails.Ticket_Create', ['sign' => $sign, 'content' => $body, 'name' => $username, 'ticket_number' => $ticket_number2, 'system' => $system], function ($message) use($emailadd, $username, $ticket_number2, $updated_subject) { $message->to($emailadd, $username)->subject($updated_subject); }); } else { $body2 = null; Mail::send('emails.Ticket_Create', ['sign' => $sign, 'content' => $body2, 'name' => $username, 'ticket_number' => $ticket_number2, 'system' => $system], function ($message) use($emailadd, $username, $ticket_number2, $updated_subject) { $message->to($emailadd, $username)->subject($updated_subject); }); } } else { $mail = "email_reply"; } if (Alert::first()->ticket_status == 1 || Alert::first()->ticket_admin_email == 1) { // send email to admin $admins = User::where('role', '=', 'admin')->get(); // $ticket_creator = $user->user_name; foreach ($admins as $admin) { $admin_email = $admin->email; $admin_user = $admin->first_name; Mail::send('emails.' . $mail, ['agent' => $admin_user, 'content' => $body, 'ticket_number' => $ticket_number2, 'from' => $company, 'email' => $emailadd, 'name' => $ticket_creator, 'system' => $system], function ($message) use($admin_email, $admin_user, $ticket_number2, $updated_subject) { $message->to($admin_email, $admin_user)->subject($updated_subject); }); } } if ($is_reply == 0) { if (Alert::first()->ticket_status == 1 || Alert::first()->ticket_department_member == 1) { // send email to agents $agents = User::where('role', '=', 'agent')->get(); // dd($agents); foreach ($agents as $agent) { $department_data = Department::where('id', '=', $ticketdata->dept_id)->first(); if ($department_data->name == $agent->primary_dpt) { $agent_email = $agent->email; $agent_user = $agent->first_name; Mail::send('emails.' . $mail, ['agent' => $agent_user, 'content' => $body, 'ticket_number' => $ticket_number2, 'from' => $company, 'email' => $emailadd, 'name' => $ticket_creator, 'system' => $system], function ($message) use($agent_email, $agent_user, $ticket_number2, $updated_subject) { $message->to($agent_email, $agent_user)->subject($updated_subject); }); } } } } if ($ticketdata->assigned_to) { $assigned_to = User::where('id', '=', $ticketdata->assigned_to)->first(); $agent_email = $assigned_to->email; $agent_user = $assigned_to->first_name; Mail::send('emails.' . $mail, ['agent' => $assigned_to->user_name, 'content' => $body, 'ticket_number' => $ticket_number2, 'from' => $company, 'email' => $assigned_to->email, 'name' => $ticket_creator, 'system' => $system], function ($message) use($agent_email, $agent_user, $ticket_number2, $updated_subject) { $message->to($agent_email, $agent_user)->subject($updated_subject); }); } return ['0' => $ticket_number2, '1' => true]; } }
/** * function to assign ticket * @param type $id * @return type bool */ public function assign($id) { $UserEmail = Input::get('user'); // $UserEmail = '*****@*****.**'; $user = User::where('email', '=', $UserEmail)->first(); $user_id = $user->id; $ticket = Tickets::where('id', '=', $id)->first(); $ticket_number = $ticket->ticket_number; $ticket->assigned_to = $user_id; $ticket->save(); $ticket_thread = Ticket_Thread::where('ticket_id', '=', $id)->first(); $ticket_subject = $ticket_thread->title; $thread = new Ticket_Thread(); $thread->ticket_id = $ticket->id; $thread->user_id = Auth::user()->id; $thread->is_internal = 1; $thread->body = "This Ticket has been assigned to " . $user->first_name . " " . $user->last_name; $thread->save(); $company = $this->company(); $system = $this->system(); $agent = $user->first_name; $agent_email = $user->email; $master = Auth::user()->first_name . " " . Auth::user()->last_name; if (Alert::first()->internal_status == 1 || Alert::first()->internal_assigned_agent == 1) { // ticket assigned send mail Mail::send('emails.Ticket_assign', ['agent' => $agent, 'ticket_number' => $ticket_number, 'from' => $company, 'master' => $master, 'system' => $system], function ($message) use($agent_email, $agent, $ticket_number, $ticket_subject) { $message->to($agent_email, $agent)->subject($ticket_subject . '[#' . $ticket_number . ']'); }); } return 1; }