input('deleted'); $orderBy = $request->input('sortBy','id'); $order = $request->input('order','asc'); $queryBuilder = Vehiculo::select('cat_vehiculos.*', 'cat_tipos_vehiculos.nombre as tipo_vehiculo') ->join('cat_tipos_vehiculos', 'cat_tipos_vehiculos.id', '=', 'cat_vehiculos.tipo_vehiculo_id') ->join('vehiculos_sucursales', 'vehiculos_sucursales.vehiculo_id', '=', 'cat_vehiculos.id') ->where('vehiculos_sucursales.sucursal_id', $user->sucursal_id) ->orderBy($orderBy,$order); if($query = $request->get('query',false)){ $queryBuilder->where(function($q) use ($query){ $q->where('num_economico','like','%' .$query.'%') ->orWhere('cat_tipos_vehiculos.nombre','like','%' .$query.'%'); }); } if($deleted) { $queryBuilder->onlyTrashed(); } if($perPage = $request->input('perPage',false)){ $data = $queryBuilder->paginate($perPage); foreach ($data->items() as $vehiculo){ $vehiculo->sucursales = VehiculoSucursal::select('sucursales.id as sucursal_id', 'sucursales.nombre as sucursal') ->where('vehiculo_id', $vehiculo->id) ->join('sucursales', 'sucursales.id', '=', 'vehiculos_sucursales.sucursal_id') ->get(); } $vehiculo = $data; }else{ $data = $queryBuilder->get(); foreach ($data as $vehiculo){ $vehiculo->sucursales = VehiculoSucursal::select('sucursales.id as sucursal_id', 'sucursales.nombre as sucursal') ->where('vehiculo_id', $vehiculo->id) ->join('sucursales', 'sucursales.id', '=', 'vehiculos_sucursales.sucursal_id') ->get(); } $vehiculo = ['data'=>$data]; } return response()->success($vehiculo); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(VehiculosRequest $request) { $data = $request->all(); foreach ($data['sucursales'] as $s){ if(!Sucursal::where('id', $s)->first()){ return response()->unprocessable('Error', ['No se encuentra la sucursal ingresada.']); } } DB::beginTransaction(); try { $vehiculo = Vehiculo::create($data); foreach ($data['sucursales'] as $s){ VehiculoSucursal::create(['vehiculo_id' => $vehiculo->id, 'sucursal_id' => $s]); } DB::commit(); return response()->success($vehiculo); } catch (\Exception $e) { DB::rollBack(); return response()->unprocessable('Error', ['Error al guardar el Estatus de Servicio.']); } } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { $vehiculo = Vehiculo::select('cat_vehiculos.*', 'cat_tipos_vehiculos.nombre as tipo_vehiculo') ->where('cat_vehiculos.id', $id) ->join('cat_tipos_vehiculos', 'cat_tipos_vehiculos.id', '=', 'cat_vehiculos.tipo_vehiculo_id') ->withTrashed() ->firstOrFail(); $vehiculo->sucursales = VehiculoSucursal::select('sucursales.id as sucursal_id', 'sucursales.nombre as sucursal') ->where('vehiculo_id', $vehiculo->id) ->join('sucursales', 'sucursales.id', '=', 'vehiculos_sucursales.sucursal_id') ->get(); return response()->success($vehiculo); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(VehiculosRequest $request, $id) { $data = $request->all(); DB::beginTransaction(); try { $vehiculo = Vehiculo::where('id',$id) ->withTrashed() ->firstOrFail(); $vehiculo->update($data); VehiculoSucursal::where('vehiculo_id', $id)->delete(); foreach ($data['sucursales'] as $s){ VehiculoSucursal::create(['vehiculo_id' => $vehiculo->id, 'sucursal_id' => $s]); } DB::commit(); return response()->success($vehiculo); } catch (\Exception $e) { DB::rollBack(); return response()->unprocessable('Error', ['Error al actualizar el Estatus de Servicio.']); } } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id, Request $request) { $deleted = $request->input('deleted'); if($deleted){ $vehiculo = Vehiculo::where('id',$id) ->onlyTrashed() ->first(); $vehiculo->restore(); }else{ $vehiculo = Vehiculo::findOrFail($id); $vehiculo->delete(); VehiculoSucursal::where('vehiculo_id', $id)->delete(); } return response()->success(['result' => 'ok']); } public function sucursales(){ $sucursales = Sucursal::get(); return response()->success($sucursales); } public function tiposVehiculos(Request $request){ $orderBy = $request->input('sortBy','nombre'); $order = $request->input('order','asc'); $queryBuilder = TipoVehiculo::orderBy($orderBy,$order); if($query = $request->get('query',false)){ $queryBuilder->where(function($q) use ($query){ $q->where('nombre','like','%' .$query.'%'); }); } if($perPage = $request->input('perPage',false)){ $data = $queryBuilder->paginate($perPage); }else{ $data = ['data'=>$queryBuilder->get()]; } return response()->success($data); } }