%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/ugotscom/bos_naturals/app/Http/Controllers/
Upload File :
Create Path :
Current File : /home/ugotscom/bos_naturals/app/Http/Controllers/MaintenanceController3.php

<?php

namespace App\Http\Controllers;
use App\MaintenanceActivity;
use App\maintenance;
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 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){
    $images=$request->get('images');
    $m_id=$request->m_id;
    
    error_log('message here.');
    if($images)
    { 
        foreach($images as $image){
            $file = new Filesystem();
            $string = Str::random(5);
            $name = $string.time().'.' . explode('/', explode(':', substr($image, 0, strpos($image, ';')))[1])[1];
            $directory = 'images/site/'.$m_id.'/';
             if ( $file->isDirectory(storage_path($directory)) )
           {
            \Image::make($image)->save(storage_path($directory).$name);
           }
            else
            {
                
                $file->makeDirectory(storage_path($directory), 755, true, true);
                \Image::make($image)->save(storage_path($directory).$name);
            }
            
        //    \Image::make($image)->save(public_path($directory).$name);
            
               
         }
        
       
        
    }
    return response()->json($images);
   }
   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();
    // $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')->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);       
        }
}


Zerion Mini Shell 1.0