Carga inicial

This commit is contained in:
IvanAS94
2025-12-26 17:21:11 -08:00
parent 45d9afc951
commit 51880798ca
359 changed files with 42159 additions and 1 deletions

View File

@@ -0,0 +1,214 @@
<?php
namespace App\Http\Controllers\Administrador;
use App\Http\Requests\Administrador\VehiculosRequest;
use App\Models\Sucursal;
use App\Models\TipoVehiculo;
use App\Models\Vehiculo;
use App\Models\VehiculoSucursal;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Pagination\Paginator;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Log;
class VehiculosController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
{
$user = Auth::user();
$deleted = $request->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);
}
}