%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/ugotscom/kma/app/Http/Controllers/
Upload File :
Create Path :
Current File : /home/ugotscom/kma/app/Http/Controllers/MaintenanceController5.php

<?php

namespace App\Http\Controllers;
use App\MaintenanceActivity;
use App\maintenance;
use App\Contractor;
use App\User;
use App\MaintenanceSource;
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')->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('clients','clients.id','=','maintenances.client_id')->latest('maintenances.m_id')->paginate(5);
       
     }   
    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')->latest('maintenances.m_id')->leftJoin('maintenance_sources', 'maintenance_sources.id', '=', 'maintenances.source')->select('maintenances.m_id',"maintenances.client_id","maintenances.property_id","maintenances.property_name","maintenances.request","maintenances.maintenance_type","maintenances.location","maintenances.source","maintenances.status","maintenances.client_status","maintenances.contract_value","maintenances.created_at","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('maintenance_status', 'maintenance_status.id', '=', 'maintenances.status')->leftJoin('maintenance_sources', 'maintenance_sources.id', '=', 'maintenances.source')->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);       
        }
}


Zerion Mini Shell 1.0