HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/agile-selling-wpb/app/Http/Controllers/CoverageController.php
<?php

namespace App\Http\Controllers;

use App\City;
use App\Coverage;
use App\Parameter;
use Datatables;
use DB;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Mapper;

class CoverageController extends Controller
{
    public function __construct(Request $request)
    {
        $this->middleware('auth');
        // $this->middleware(function ($request, $next) {
        //     $this->user = Auth::user();
        //     if (Auth::user()->rol->id == 1 || Auth::user()->rol->id == 6) {
        //         $this->changeDbDefault($request);
        //     }
        //     return $next($request);
        // });
    }

    public function index()
    {
        // $rol = Auth::user()->rol->id;
        // if ($rol == 1 || $rol == 6) {
            $coverages = Coverage::all();
            return view('coverages.coverages')->with('coverages', $coverages);
        // } else {
        //     return redirect()->back();
        // }
    }

    public function indexPending()
    {
        // $rol = Auth::user()->rol->id;
        // if ($rol == 1 ||  $rol == 6) {
            return view('coverages_pending.coverages_pending');
        // } else {
        //     return redirect()->back();
        // }
    }

    public function create()
    {
        $lat = Auth::user()->userInfo->sucursal->address->lat;
        $long = Auth::user()->userInfo->sucursal->address->long;
        $cities = City::where('active', true)->get();
        $parameters = Parameter::where('id', 1)->first();

        Mapper::map($lat, $long, ['zoom' => 15,
            'markers' => ['title' => Auth::user()->userInfo->sucursal->name,
                'animation' => 'DROP'],
            'eventBeforeLoad' => 'initMapa(map);']);

        return view('coverages.addCoverages')
            ->with('cities', $cities)
            ->with('parameters', $parameters);
    }

    public function store(Request $request)
    {
        $obj = new Coverage;

        $obj->name = $request->name;
        $obj->cost_delivery = $request->cost_delivery;
        $obj->city_id = $request->city_id;
        $obj->coords = base64_encode(serialize($request->coords));

        $obj->save();

        $res[] = array('message' => 'Se ha creado la cobertura correctamente');
        $dres = json_encode($res);
        return json_decode($dres, true);
    }

    public function edit(Request $request)
    {
        $lat = Auth::user()->userInfo->sucursal->address->lat;
        $long = Auth::user()->userInfo->sucursal->address->long;
        $cities = City::where('active', true)->get();
        $parameters = Parameter::where('id', 1)->first();

        Mapper::map($lat, $long, ['zoom' => 15,
            'markers' => ['title' => Auth::user()->userInfo->sucursal->name,
                'animation' => 'DROP'],
            'clusters' => ['size' => 10,
                'center' => true, 'zoom' => 20],
            'eventBeforeLoad' => 'initMapa(map);']);

        $obj = Coverage::find($request->id);
        $coords = unserialize(base64_decode($obj->coords));
        $res = array('id' => $obj->id, 'name' => $obj->name, 'cost_delivery' => $obj->cost_delivery,'coords' => base64_encode(json_encode($coords)), 'city_id' => $obj->city_id);

        return view('coverages.editCoverages')
            ->with('obj', $res)
            ->with('cities', $cities)
            ->with('parameters', $parameters);
    }

    public function update(Request $request)
    {
        $obj = Coverage::find($request->id);
        $obj->name = $request->name;
        $obj->cost_delivery = $request->cost_delivery;
        $obj->city_id = $request->city_id;
        $obj->coords = base64_encode(serialize($request->coords));

        $obj->save();

        $res[] = array('message' => 'Se ha modificado la cobertura correctamente');
        $dres = json_encode($res);
        return json_decode($dres, true);
    }

    public function getAll()
    {

        // $coberturas=Cobertura::with('sucursales')->get();
        $coberturas = Coverage::join('sucursal', 'cobertura.id', '=', 'cobertura_id')->get();
        // dd($coberturas);
        foreach ($coberturas as $key => $cobertura) {
            $cobertura->coords = unserialize(base64_decode($cobertura->coords));
            # code...
            // dd($cobertura);
        }

        $res[] = array('respuesta' => true, 'coberturas' => $coberturas);
        $dres = json_encode($res);
        return json_decode($dres, true);

    }

    public function stateCoverage(Request $request)
    {

        $id = $request['id'];
        $state = $request['state'];

        $coverage = Coverage::find($id);
        $coverage->active = $state;
        $coverage->save();

        return array('r' => true);

    }

    /**
     * Método para eliminar una cobertura
     * @param request[id] id de la cobertura
     * @param request[eliminar] (1) valor para indicar eliminado
     */
    public function eliminarCobertura(Request $request)
    {
        $id = $request['id'];
        $eliminar = $request['eliminar'];

        $cobertura = Coverage::where('id', '=', $id)->first();
        $cobertura->eliminar = $eliminar;
        $cobertura->save();

        $res[] = array('respuesta' => true);
        $dres = json_encode($res);
        return json_decode($dres, true);
    }

    public function tableFilter()
    {
        $obj = $obj = DB::table('coverages')
            ->select('coverages.id', 'coverages.name', 'coverages.cost_delivery','coverages.active')->whereNull('coverages.deleted_at');

        return Datatables::of($obj)
            ->addColumn('actions', function ($obj) {
                return '<i class="fa fa-pencil iconMini " onClick="editCoverage(' . $obj->id . ')" data-id="' . $obj->id . '"  title="Editar"></i>
            <i class="fa fa-trash iconMini " onClick="deleteCoverage(' . $obj->id . ')" data-id="' . $obj->id . '"  title="Eliminar"></i>';

            })

            ->editColumn('active', function ($obj) {
                if ($obj->active == 0) {
                    return '<div class="switch"><label><div class="checkbox checbox-switch switch-success"> <label> No <input type="checkbox" onChange="chkCoverage(' . $obj->id . ')" data-id="' . $obj->id . '" id="Checkactive' . $obj->id . '" name="Checkactivo" /> <span></span>Si </label></div> </label> </div>';
                } else {
                    return '<div class="switch"><label> <div class="checkbox checbox-switch switch-success"> <label>   No <input type="checkbox" onChange="chkCoverage(' . $obj->id . ')" data-id="' . $obj->id . '" id="Checkactive' . $obj->id . '" name="Checkactivo" checked="" />
                <span></span> Si </label> </div>  </label> </div>';

                }

            })
            ->rawColumns(['active', 'actions'])
            ->make(true);

    }

    public function tableFilterP()
    {
        $obj = $obj = DB::table('coverage_pendings')
            ->join('cities','cities.id','=', 'coverage_pendings.city_id')
            ->select('coverage_pendings.id', 'coverage_pendings.email', 'coverage_pendings.created_at', 'cities.name as city' );

        return Datatables::of($obj)->make(true);

    }
}