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);
}
}