input('deleted'); $orderBy = $request->input('sortBy','nombre'); $order = $request->input('order','asc'); $queryBuilder = Sucursal::orderBy($orderBy,$order); if($query = $request->get('query',false)){ $queryBuilder->where(function($q) use ($query){ $q->where('nombre','like','%' .$query.'%'); }); } if($deleted) { $queryBuilder->onlyTrashed(); } if($perPage = $request->input('perPage',false)){ $sucursal = $queryBuilder->paginate($perPage); }else{ $sucursal = ['data'=>$queryBuilder->get()]; } return response()->success($sucursal); } public function servicios(Request $request) { $deleted = $request->input('deleted'); $orderBy = $request->input('sortBy','nombre'); $order = $request->input('order','asc'); $queryBuilder = CatServicio::orderBy($orderBy,$order); if($query = $request->get('query',false)){ $queryBuilder->where(function($q) use ($query){ $q->where('nombre','like','%' .$query.'%'); }); } if($deleted) { $queryBuilder->onlyTrashed(); } if($perPage = $request->input('perPage',false)){ $servicios = $queryBuilder->paginate($perPage); }else{ $servicios = ['data'=>$queryBuilder->get()]; } return response()->success($servicios); } public function tiposServicio(Request $request) { $deleted = $request->input('deleted'); $orderBy = $request->input('sortBy','nombre'); $order = $request->input('order','asc'); $queryBuilder = CatTipoServicio::orderBy($orderBy,$order); if($query = $request->get('query',false)){ $queryBuilder->where(function($q) use ($query){ $q->where('nombre','like','%' .$query.'%'); }); } if($deleted) { $queryBuilder->onlyTrashed(); } if($perPage = $request->input('perPage',false)){ $tipos_servicios = $queryBuilder->paginate($perPage); }else{ $tipos_servicios = ['data'=>$queryBuilder->get()]; } return response()->success($tipos_servicios); } public function estatusServicio(Request $request) { $deleted = $request->input('deleted'); $orderBy = $request->input('sortBy','nombre'); $order = $request->input('order','asc'); $queryBuilder = CatEstatuServicio::orderBy($orderBy,$order); if($query = $request->get('query',false)){ $queryBuilder->where(function($q) use ($query){ $q->where('nombre','like','%' .$query.'%'); }); } if($deleted) { $queryBuilder->onlyTrashed(); } if($perPage = $request->input('perPage',false)){ $estatus = $queryBuilder->paginate($perPage); }else{ $estatus = ['data'=>$queryBuilder->get()]; } return response()->success($estatus); } public function origenes(Request $request) { $orderBy = $request->input('sortBy','nombre'); $order = $request->input('order','asc'); $queryBuilder = CatOrigen::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); } public function asesores(FiltroAsesoresRequest $request) { $sucursal = $request->input('sucursal'); $orderBy = $request->input('sortBy','tipo_empleado_id'); $order = $request->input('order','asc'); $month = $request->input('mes'); $year = $request->input('year'); $queryBuilder = User::select('id', 'nombre', 'apellido_paterno', 'apellido_materno', 'tipo_empleado_id') ->where('sucursal_id', $sucursal) ->whereIn('tipo_empleado_id', [ASESOR_OPERACIONES, AUXILIAR_TECNICO_1, AUXILIAR_TECNICO_2]) ->orderBy($orderBy, $order) ->orderBy('nombre','asc'); if($query = $request->get('query',false)){ $queryBuilder->where(function($q) use ($query){ $q->where('nombre','like','%' .$query.'%') ->orWhere('apellido_paterno','like','%' .$query.'%') ->orWhere('apellido_materno','like','%' .$query.'%'); }); } if($perPage = $request->input('perPage',false)){ $data = $queryBuilder->paginate($perPage); foreach ($data->items() as $u){ if($u->tipo_empleado_id == ASESOR_OPERACIONES){ $u->tipo_empleado = 'Asesor de Operaciones'; $servi = ServicioDet::select('id') ->where('servicios_det.operador_id', $u->id) ->whereMonth('fecha_solicitud', $month) ->whereYear('fecha_solicitud', $year) ->where('requiere_encuesta', 1)->pluck('id'); $encuesta_d = ServicioEncuestaDomestico::select('servicio_det_id')->whereIn('servicio_det_id',$servi)->groupBy('servicio_det_id')->get(); $encuesta_e = ServicioEncuestaEmpresarial::select('servicio_det_id')->whereIn('servicio_det_id',$servi)->groupBy('servicio_det_id')->get(); $total = count($encuesta_d) + count($encuesta_e); $u->servicios_cantidad = $total.' Encuestas '.' de '.count($servi).' Servicios'; /*$u->servicios_cantidad = ServicioDet::where('servicios_det.operador_id', $u->id) ->whereMonth('fecha_solicitud', $month) ->whereYear('fecha_solicitud', $year) ->where('requiere_encuesta', 1)->count();*/ } if($u->tipo_empleado_id == AUXILIAR_TECNICO_1 || $u->tipo_empleado_id == AUXILIAR_TECNICO_2){ $u->tipo_empleado = 'Auxiliar de Operaciones'; $servi = ServicioDet::select('id') ->whereMonth('fecha_solicitud', $month) ->whereYear('fecha_solicitud', $year) ->where(function($q) use ($u){ $q->where('servicios_det.auxiliar_1', $u->id) ->orWhere('servicios_det.auxiliar_2', $u->id); })->pluck('id'); $encuesta_d = ServicioEncuestaDomestico::select('servicio_det_id')->whereIn('servicio_det_id',$servi)->groupBy('servicio_det_id')->get(); $encuesta_e = ServicioEncuestaEmpresarial::select('servicio_det_id')->whereIn('servicio_det_id',$servi)->groupBy('servicio_det_id')->get(); $total = count($encuesta_d) + count($encuesta_e); $u->servicios_cantidad = $total.' Encuestas '. ' de '. count($servi).' Servicios'; } } $users = $data; } else{ $data = $queryBuilder->get(); foreach ($data as $u){ if($u->tipo_empleado_id == ASESOR_OPERACIONES){ $u->tipo_empleado = 'Asesor de Operaciones'; $u->servicios_cantidad = ServicioDet::where('operador_id', $u->id) ->where('requiere_encuesta', 1) ->whereMonth('fecha_solicitud', $month) ->whereYear('fecha_solicitud', $year) ->count(); } if($u->tipo_empleado_id == AUXILIAR_TECNICO_1 || $u->tipo_empleado_id == AUXILIAR_TECNICO_2){ $u->tipo_empleado = 'Auxiliar de Operaciones'; $u->servicios_cantidad = ServicioDet::whereMonth('fecha_solicitud', $month) ->whereYear('fecha_solicitud', $year) ->where(function($q) use ($u){ $q->where('servicios_det.auxiliar_1', $u->id) ->orWhere('servicios_det.auxiliar_2', $u->id); }) ->count(); } } $users = ['data'=>collect($data)->where('servicios_cantidad','<>',0)->values()]; } return response()->success($users); } }