%PDF- %PDF-
Direktori : /home/ugotscom/kma/app/Http/Controllers/ |
Current File : /home/ugotscom/kma/app/Http/Controllers/MaintenanceController.php |
<?php namespace App\Http\Controllers; use App\MaintenanceActivity; use App\maintenance; use App\Contractor; use App\User; use App\MaintenanceFile; use Illuminate\Support\Str; use Illuminate\Http\Request; use Illuminate\Filesystem\Filesystem; use Image; use File; use Carbon\Carbon; use Notification; use App\Notifications\MaintenanceStatus; use Illuminate\Notifications\DatabaseNotification; class MaintenanceController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { // $data=maintenance::leftJoin('maintenance_status', 'maintenance_status.id', '=', 'maintenances.status')->leftJoin('clients','clients.id','=','maintenances.client_id')->latest('maintenances.m_id')->paginate(10); return response()->json($data); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // $maintenance = new maintenance; $maintenance->client_id=$request->client_id; $maintenance->property_id=$request->m_property_id; $maintenance->property_name=$request->property_name; $maintenance->maintenance_type=$request->maintenance_type; $maintenance->location=$request->location; $maintenance->request=$request->m_request; $maintenance->source=$request->source; $maintenance->save(); $maintenance_activity = new maintenanceActivity; $maintenance_activity->client_id=$request->client_id; $maintenance_activity->maintenance_id=$maintenance->m_id; $maintenance_activity->activity='Ticket Opened'; $maintenance_activity->activity_description=$request->m_request; $maintenance_activity->save(); // $this->sendNotification(); } /** * Display the specified resource. * * @param \App\maintenance $maintenance * @return \Illuminate\Http\Response */ public function show(maintenance $maintenance) { // } /** * Show the form for editing the specified resource. * * @param \App\maintenance $maintenance * @return \Illuminate\Http\Response */ public function edit(maintenance $maintenance) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param \App\maintenance $maintenance * @return \Illuminate\Http\Response */ public function update($id, Request $request) { $user = maintenance::findOrFail($id); $user->update($request->all()); } /** * Remove the specified resource from storage. * * @param \App\maintenance $maintenance * @return \Illuminate\Http\Response */ public function destroy(maintenance $maintenance) { // } public function maintenancebyid($id){ $maintenance=maintenance::leftJoin('maintenance_status', 'maintenance_status.id', '=', 'maintenances.status')->where('m_id',$id)->get(); return response()->json($maintenance); } public function updatecontractvalue(Request $request){ $m_id=$request->m_id; $contractid=$request->contractid; $contract_value=$request->contract_value; $status=$request->checkstatus; // $current_value=maintenance::where('m_id', $m_id)->value('contract_value'); maintenance::where('m_id',$m_id)->update([ 'contract_value' =>$contract_value ]); Contractor::where('id',$contractid)->update([ 'status' =>$status ]); } public function updateStatus(Request $request){ $id=$request->id; $status=$request->status; maintenance::where('m_id',$id)->update([ 'status' =>$status ]); $assigned=$request->assigned; $date=$request->due_date; $user = User::find($assigned); $maintenance_activity = new maintenanceActivity; $maintenance_activity->client_id=$request->client_id; $maintenance_activity->maintenance_id=$request->id; if($status==2){ $maintenance_activity->activity='Site Visit Assigned -'.$user->name.' Date -'.$date; } elseif($status==3){ $maintenance_activity->activity='Site Visit Photos Added'; } elseif($status==4){ $maintenance_activity->activity='Quote Submitted'; } else{ $maintenance_activity->activity='hehe'; } $maintenance_activity->activity_description=''; $maintenance_activity->save(); $this->sendstatusNotification($maintenance_activity->activity); } public function maintenancebyClientid($id){ $maintenance=maintenance::leftJoin('maintenance_status', 'maintenance_status.id', '=', 'maintenances.status')->where('client_id',$id)->get(); return response()->json($maintenance); } public function maintenanceactivitybyid($id){ $maintenance=maintenanceActivity::where('maintenance_id',$id)->get(); return response()->json($maintenance); } public function fileupload(Request $request){ $request->validate([ 'file.*' => 'required|file|mimes:ppt,pptx,doc,docx,pdf,xls,xlsx|max:2048', ]); $fileUpload = new MaintenanceFile; if($request->file()) { $file_name = time().'_'.$request->file->getClientOriginalName(); $file_path = $request->file('file')->storeAs('uploads', $file_name, 'public'); $fileUpload->maintenance_id= $request->maintenance_id; $fileUpload->file_name=$file_name; $fileUpload->name = $request->file_name; $fileUpload->type = $request->type; $fileUpload->path = '/storage/' . $file_path; $fileUpload->save(); // $this->sendstatusNotification('File Uploaded'); return response()->json(['success'=>'File uploaded successfully.']); } } public function inspectionimages(Request $request){ $request->validate([ 'file.*' => 'required|mimes:jpg,jpeg,png,csv,txt,xlx,xls,pdf|max:2048' ]); $fileUpload = new MaintenanceFile; if($request->file('pics')) { $uploadedFiles=$request->file('pics'); $id=$request->id; foreach ($uploadedFiles as $file) { $file_name = time(). $file->getClientOriginalName(); $directory = 'site/'.$id.'/'; $file_path = $file->storeAs($directory, $file_name, 'images'); $fileUpload->name = $file_name; $fileUpload->path = '/storage/' . $file_path; $fileUpload->save(); } } //return response()->json(['success'=>'File uploaded successfully.']); //return response()->json($uploadedFiles); } public function searchquery(){ if($search =\Request :: get('q')){ $users=maintenance::leftJoin('maintenance_status', 'maintenance_status.id', '=', 'maintenances.status')->leftJoin('clients','clients.id','=','maintenances.client_id')->leftJoin('maintenance_sources', 'maintenance_sources.id', '=', 'maintenances.source')->select("maintenances.*","maintenance_status.status_name","maintenance_status.color","clients.name","maintenance_sources.source")->where(function($query) use ($search){ $query->where('name','LIKE',"%$search%") ->orwhere ('property_id','LIKE',"%$search%") ->orwhere ('m_id','LIKE',"%$search%") ->orwhere ('property_name','LIKE',"%$search%") ->orwhere ('request','LIKE',"%$search%") ;})->paginate(50); } else { $users=maintenance::leftJoin('maintenance_status', 'maintenance_status.id', '=', 'maintenances.status')->leftJoin('maintenance_sources', 'maintenance_sources.id', '=', 'maintenances.source')->leftJoin('clients','clients.id','=','maintenances.client_id')->latest('maintenances.m_id')->select("maintenances.*","maintenance_status.status_name","maintenance_status.color","clients.name","maintenance_sources.source")->paginate(20); } return $users; } public function getFiles($id) { $path = storage_path('images/site/'.$id); $fileNames = []; $files = File::allfiles($path); foreach ($files as $key => $file) { // array_push($fileNames, $file->getFilename()); $fileNames[$key] = array( "Foo" => $file->getFilename(), "Fiz" => $file->getExtension ()); } return $fileNames; } public function totalcount(){ $users['total']=maintenance::all()->count(); $users['sitevisit']=maintenance::where('status',1)->count(); $users['quoteinprogreess']=maintenance::where('status',3)->count(); $users['won']=maintenance::where('status',5)->count(); // $propertytype = [1, 2, 3,4]; // $commercial=[5,6,7,8,9]; // $users['residential']=maintenance::whereIn('property_type',$propertytype)->where('status',2)->count(); // $users['commercial']=maintenance::whereIn('property_type',$commercial)->where('status',2)->count(); // $users['rent']=maintenance::where('property_for',1)->where('status',2)->count(); // $users['sale']=maintenance::where('property_for',2)->where('status',2)->count(); // $users['apartment']=maintenance::where('property_type',1)->where('status',2)->count(); // $users['house']=maintenance::where('property_type',2)->where('status',2)->count(); // $users['gated']=maintenance::where('property_type',3)->where('status',2)->count(); // $users['rland']=maintenance::where('property_type',4)->where('status',2)->count(); // $users['offices']=maintenance::where('property_type',9)->where('status',2)->count(); // $users['itpark']=maintenance::where('property_type',5)->where('status',2)->count(); // $users['retail']=maintenance::where('property_type',6)->where('status',2)->count(); // $users['cland']=maintenance::where('property_type',7)->where('status',2)->count(); // $users['warehouse']=maintenance::where('property_type',8)->where('status',2)->count(); return $users; } public function getDocs($id){ $maintenanceFiles=MaintenanceFile::where('maintenance_id',$id)->get(); return response()->json($maintenanceFiles); } public function monthly(){ $counts=maintenance::selectRaw('year(created_at) year, monthname(created_at) month, count(*) total') ->groupBy(maintenance::raw("DATE_FORMAT(created_at, '%M')"))->get(); return $counts; } public function sendNotification() { $users = User::all(); $status =[ 'm_id' => '46', 'body' => 'You received an offer.', 'thanks' => 'Thank you', 'offerText' => 'New Maintenance Created', 'offerUrl' => url('/'), 'offer_id' => 007 ]; Notification::send($users, new MaintenanceStatus($status)); dd('Task completed!'); } public function sendstatusNotification($status) { $users = User::all(); $status =[ 'm_id' => '46', 'body' => 'You received an offer.', 'thanks' => 'Thank you', 'offerText' => $status, 'offerUrl' => url('/'), 'offer_id' => 007 ]; Notification::send($users, new MaintenanceStatus($status)); dd('Task completed!'); } public function leads($id) { // if($id==0){ $data=maintenance::leftJoin('maintenance_status', 'maintenance_status.id', '=', 'maintenances.status')->leftJoin('clients','clients.id','=','maintenances.client_id')->leftJoin('maintenance_sources', 'maintenance_sources.id', '=', 'maintenances.source')->latest('maintenances.m_id')->select("maintenances.*","maintenance_status.status_name","maintenance_status.color","clients.name","maintenance_sources.source")->paginate(10); return response()->json($data); } else{ $data=maintenance::leftJoin('maintenance_status', 'maintenance_status.id', '=', 'maintenances.status')->leftJoin('clients','clients.id','=','maintenances.client_id')->where('maintenances.status',$id)->latest('maintenances.m_id')->paginate(10); return response()->json($data); } } public function allprojects(){ $users = maintenance::distinct()->select('property_name','m_id')->get(); return response()->json($users); } public function maintenancefiledelete($id){ MaintenanceFile::where('id',$id)->delete(); } }