id; $query=(new Ticket)->newQuery(); $query->with(['user','created_user','user.company_data']); //$query->where('status','!=',3); if(\Auth::user()->utype==3) { $query->where('client_id',$client_id); } $query->orderBy('id','desc'); $data['tickets']=$query->paginate(5); $data['title']='Support Ticket'; return view('client.ticket.index',$data); } function create() { $data['clients']=CompanyModel::where('status',2)->orderBy('name')->get(['id','name']); $data['services']=ServiceList::orderBy('name','asc')->get(['id','name']); $data['title']='New Support Ticket'; return view('client.ticket.create',$data); } function store(Request $req) { $this->validate($req,[ 'title'=>'required', 'service'=>'required', ]); $client=0; if(\Auth::user()->utype==3) { $client=\Auth::user()->id; } else { $client=$req->get('client'); } $documentUpload = $req->file('ticket_document'); if ( !empty( $documentUpload )) { $documentname = $documentUpload->getClientOriginalName(); $path = 'public/ticket_document/'; $documentUpload->move($path,$documentname); $ticketDocument = $documentname; } else { $ticketDocument = ''; } $ticket=new Ticket(); $ticket->client_id = $client; $ticket->ticket_id = $this->generate_ticket_id(); $ticket->service_id = $req->get('service'); $ticket->title = $req->get('title'); $ticket->details = $req->get('details'); $ticket->priority = $req->get('prority'); $ticket->ticket_document = $ticketDocument; $ticket->status = 0; $ticket->created_by = \Auth::user()->id; $ticket->save(); $client=AddressBookModel::find($ticket->client_id); $service=ServiceList::find($ticket->service_id); $created_user=User::find($ticket->created_by); //dd($ticket->client_id); $company_id = $created_user->company; $company = CompanyModel::find($company_id); $manager_id = $company->account_manager; if($manager_id != null){ $manager_details = User::find($manager_id); $manager_email = $manager_details->email; } $data['client']=$client; $data['created_by']=$created_user; $data['company']=$company; $data['service']=$service; $data['title']=''; $data['ticket']=$ticket; if($manager_id != null){ Mail::send('emails.ticket_created_email',$data,function($message)use($created_user,$client,$manager_email){ $message->from('m.revinr@gmail.com', 'Revinr CMS'); //$message->to($manager_email)->subject('New ticket created'); if($manager_email) { $message->to($manager_email)->subject('New ticket created'); } if($client) { $message->to($client->email1)->subject('New ticket created'); } if($created_user) { $message->to($created_user->email)->subject('New ticket created'); } $message->bcc('helaldu@gmail.com','Shamim Shams'); }); }else{ Mail::send('emails.ticket_created_email',$data,function($message)use($created_user,$client){ $message->from('m.revinr@gmail.com', 'Revinr CMS'); $message->to('helaldu@gmail.com')->subject('New ticket created'); if($client) { $message->to($client->email1)->subject('New ticket created'); } if($created_user) { $message->to($created_user->email)->subject('New ticket created'); } $message->cc('sabuj@revinr.com', 'New ticket created'); $message->bcc('tarikul@revinr.com','New ticket created'); }); } return redirect('ticket')->with('msg','Ticket created successfully !!'); } function client_mail() { } function admin_mail() { } function show($id) { $data['ticket']=Ticket::with(['user','created_user','user.company_data'])->find($id); // echo "
";
// print_r ($data['ticket']);
// echo "";
// exit;
$data['title']='Ticket Details';
return view('client.ticket.show',$data);
}
function edit($id)
{
$data['title']='Edit Support Ticket';
return view('client.ticket.edit',$data);
}
function update(Request $req)
{
}
function save_comment(Request $req)
{
$comment=new TicketThread();
$comment->ticket_id=$req->get('ticket');
$comment->comment_by=\Auth::user()->id;
$comment->comment=$req->get('comment');
$comment->display=1;
$comment->save();
return "ok";
}
function get_comments($tkt_id)
{
$data['comments']=TicketThread::where('ticket_id',$tkt_id)->get();
return view('client.ticket.comment',$data)->render();
}
function change_status(Request $req)
{
$id=$req->get('ticket_id');
$status=$req->get('status');
$ticket=Ticket::find($id);
$ticket->status=$status;
$ticket->save();
$client=AddressBookModel::find($ticket->client_id);
$service=ServiceList::find($ticket->service_id);
$created_user=User::find($ticket->created_by);
$data['client']=$client;
$data['service']=$service;
$data['title']='';
$data['ticket']=$ticket;
Mail::send('emails.ticket_status_change_email',$data,function($message)use($created_user,$client){
$message->from('m.revinr@gmail.com', 'Revinr CMS');
if($client)
{
$message->to($client->email1)->subject('New ticket created');
}
if($created_user)
{
$message->to($created_user->email)->subject('New ticket created');
}
$message->to('helaldu@gmail.com')->subject('Ticket Status Change');
$message->bcc('shamim@revinr.com','Shamim Shams');
});
return "ok";
}
function generate_ticket_id()
{
$ticket=Ticket::orderBy('id','desc')->first();
if($ticket)
{
$last_ticket_id=$ticket->ticket_id;
if(empty($last_ticket_id))
{
return 'REV-0001';
}
$ticket_arr=explode('-',$last_ticket_id);
$ticket_id=(int)$ticket_arr[1];
$ticket_id=$ticket_id+1;
if($ticket_id<10)
{
return 'REV-000'.$ticket_id;
}
if($ticket_id<100)
{
return 'REV-00'.$ticket_id;
}
if($ticket_id<1000)
{
return 'REV-0'.$ticket_id;
}
if($ticket_id<10000)
{
return 'REV-'.$ticket_id;
}
}
else
{
return 'REV-001';
}
}
}