Files
Sio-Back/app/Http/Controllers/SupervisorOperaciones/AsesoresController.php
SIO Admin de656b70a2 feat: Actualizacion sistema SIO Backend
- Nuevo modulo de historial de cambios (ServicioHistorial)
- Observer para tracking automatico de cambios en servicios
- Correccion de variables auxiliar en ServiciosController
- Actualizacion de configuraciones y migraciones
- Endpoint para consultar historial de cambios

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 23:01:55 +00:00

129 lines
5.6 KiB
PHP
Executable File

<?php
namespace App\Http\Controllers\SupervisorOperaciones;
use const App\Http\Controllers\ASESOR_OPERACIONES;
use const App\Http\Controllers\PENDIENTE;
use const App\Http\Controllers\REALIZADO;
use App\Models\ServicioDet;
use App\Models\User;
use Carbon\Carbon;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Auth;
class AsesoresController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$user = Auth::user();
$asesores = User::select('users.id', 'users.nombre', 'users.apellido_paterno', 'users.apellido_materno')
->where('tipo_empleado_id', ASESOR_OPERACIONES)
->where('sucursal_id', $user->sucursal_id)
->get();
foreach ($asesores as $a){
$consulta = ServicioDet::join('servicios_enc', 'servicios_enc.id', '=', 'servicios_det.servicio_enc_id')
->where('servicios_det.operador_id', $a->id)
->where('servicios_enc.sucursal_id', $user->sucursal_id)
->whereDate('servicios_det.fecha_solicitud', Carbon::now()->format('Y-m-d'));
//$a->servicios_total = $consulta->whereIn('servicios_det.estatus_servicio_id', [PENDIENTE, REALIZADO])->count();
$a->servicios_total = $consulta->count();
$a->servicios_pendiente = $consulta->whereNotIn('servicios_det.estatus_servicio_id', [REALIZADO])->count();
}
return response()->success($asesores);
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function serviciosXAsesor($asesor_id)
{
$user = Auth::user();
$campos = [
'servicios_enc.id as solicitud_servicio_id',
'servicios_enc.forma_pago_id',
'cat_formas_pagos.nombre as forma_pago_nombre',
'fecha_agenda',
'usuario_agenda_id',
'users.nombre as usuario_agenda_nombre',
'users.apellido_paterno as usuario_agenda_apellido_paterno',
'users.apellido_materno as usuario_agenda_apellido_materno',
'servicios_enc.cliente_id',
'clientes.denominacion',
'servicios_enc.cliente_domicilio_id',
'clientes_domicilios.nombre_responsable_sucursal as clientes_nombre_responsable_sucursal',
'clientes_domicilios.celular_responsable as clientes_celular_responsable',
'clientes_domicilios.calle as clientes_calle',
'clientes_domicilios.num_ext as clientes_num_ext',
'clientes_domicilios.num_int as clientes_num_int',
'clientes_domicilios.colonia as clientes_colonia',
'clientes_domicilios.cp as clientes_cp',
'clientes_domicilios.telefono as clientes_telefono',
'clientes_domicilios.lat as clientes_lat',
'clientes_domicilios.lng as clientes_lng',
'servicios_enc.deleted_at',
'servicios_det.id',
'servicios_det.servicio_id',
'cat_servicios.nombre as servicio_nombre',
'servicios_det.estatus_servicio_id',
'cat_estatus_servicios.nombre as estatus_servicio_nombre',
'servicios_det.tipo_servicio_id',
'cat_tipos_servicios.nombre as tipo_servicio_nombre',
'cat_estatus_servicios.color_1 as estatus_servicio_color_1',
'cat_estatus_servicios.color_2 as estatus_servicio_color_2',
'fecha_solicitud',
'duracion',
'definido_cliente',
'servicios_det.operador_id',
'operador.nombre as operador_nombre',
'operador.apellido_paterno as operador_apellido_paterno',
'operador.apellido_materno as operador_apellido_materno',
'servicios_det.vehiculo_id',
'cat_vehiculos.num_economico as vehiculo_num_economico',
'servicios_det.fecha_solicitud',
'sucursales.nombre as vehiculo_sucursal',
'sucursales.id as vehiculo_sucursal_id',
'sucursal_operador.nombre as operador_sucursal',
'sucursal_operador.id as operador_sucursal_id',
'servicios_det.auxiliar_1 as auxiliar_1_id',
'servicios_det.auxiliar_2 as auxiliar_2_id',
'auxiliares_1.nombre as auxiliar_1',
'auxiliares_2.nombre as auxiliar_2',
'sucursal_auxiliares_1.nombre as sucursal_auxiliar_1',
'sucursal_auxiliares_2.nombre as sucursal_auxiliar_2',
'servicios_det.costo_servicio',
'servicios_det.aceptado',
'servicios_det.observacion_atencion_cliente'
];
$servicios = ServicioDet::select($campos)
->joinDetalleServicioDet()
->join('servicios_enc', 'servicios_enc.id', '=', 'servicios_det.servicio_enc_id')
->join('cat_formas_pagos', 'cat_formas_pagos.id', '=', 'servicios_enc.forma_pago_id')
->join('users', 'users.id', '=', 'servicios_enc.usuario_agenda_id')
->join('clientes', 'clientes.id', '=', 'servicios_enc.cliente_id')
->join('clientes_domicilios', 'clientes_domicilios.id', '=', 'servicios_enc.cliente_domicilio_id')
//->whereIn('servicios_det.estatus_servicio_id', [PENDIENTE, REALIZADO])
->where('servicios_det.operador_id', $asesor_id)
->where('servicios_enc.sucursal_id', $user->sucursal_id)
->whereDate('servicios_det.fecha_solicitud', Carbon::now()->format('Y-m-d'))
->orderBy('servicios_det.fecha_solicitud')
->get();
return response()->success($servicios);
}
}