/// <summary> /// Consulta la unidad en la bd de idealease /// </summary> /// <param name="equipoId">Identificador del equipo</param> /// <param name="unidadId">identificador de la unidad</param> /// <returns>Objeto UnidadBO</returns> public BPMO.SDNI.Equipos.BO.UnidadBO ObtenerUnidad(int?equipoId, int?unidadId) { var unidadBR = new UnidadBR(); return(unidadBR.Consultar(dctx, new BPMO.SDNI.Equipos.BO.UnidadBO() { EquipoID = equipoId, UnidadID = unidadId }).FirstOrDefault()); }
public void Consultar() { try { UnidadBOF bo = (UnidadBOF)this.InterfazUsuarioADato(); List <BO.UnidadBO> lst = controlador.Consultar(dataContext, bo).ConvertAll(s => (BO.UnidadBO)s); this.vista.Resultado = this.ComplementarDatos(lst); this.vista.ActualizarResultado(); if (lst.Count < 1) { this.vista.MostrarMensaje("La búsqueda no produjo resultados", ETipoMensajeIU.INFORMACION, "No se encontraron coincidencias con los criterios ingresados. Verifique sus datos"); } } catch (Exception ex) { throw new Exception(this.nombreClase + ".Consultar:" + ex.Message); } }
private void ConsultarTramites() { try { UnidadBO unidadTemp = new UnidadBO { UnidadID = this.vista.Tramitable.TramitableID, NumeroSerie = this.vista.Tramitable.DescripcionTramitable }; List <UnidadBO> lstunidad = unidadBR.Consultar(dctx, unidadTemp); if (lstunidad.Count != 0) { if (lstunidad.Count == 1) { UnidadBO unidad = lstunidad[0]; if (unidad.UnidadID != null) { if (unidad.Modelo != null) { this.vista.Modelo = unidad.Modelo.Nombre; if (unidad.Modelo.Marca != null) { this.vista.Marca = unidad.Modelo.Marca.Nombre; } } this.vista.NumeroSerie = unidad.NumeroSerie; #region Tramites //Consulta de Trámites List <TenenciaBO> lstTenencia = tenenciaBR.ConsultarCompleto(dctx, new TenenciaBO { Activo = true, Tramitable = this.vista.Tramitable }); if (lstTenencia.Count == 1) { this.vista.Tenencia = lstTenencia[0]; } if (lstTenencia.Count > 1) { throw new Exception("Inconsistencia en el tramites de tenencias, la consulta devolvió mas de una tenencia activa"); } List <VerificacionBO> lstVerificacionAmbiental = verificacionBR.ConsultarCompleto(dctx, new VerificacionBO { Activo = true, Tipo = ETipoTramite.VERIFICACION_AMBIENTAL, Tramitable = this.vista.Tramitable }); if (lstVerificacionAmbiental.Count == 1) { this.vista.VerificacionAmbiental = lstVerificacionAmbiental[0]; } if (lstVerificacionAmbiental.Count > 1) { throw new Exception("Inconsistencia en el tramites de Verificacion Ambiental, la consulta devolvió mas de una Verificación Ambiental activa"); } List <VerificacionBO> lstVerificacionMecanico = verificacionBR.ConsultarCompleto(dctx, new VerificacionBO { Activo = true, Tipo = ETipoTramite.VERIFICACION_FISICO_MECANICA, Tramitable = this.vista.Tramitable }); if (lstVerificacionMecanico.Count == 1) { this.vista.VerificacionMecanica = lstVerificacionMecanico[0]; } if (lstVerificacionMecanico.Count > 1) { throw new Exception("Inconsistencia en el tramites de Verificación Físico - Mecánico, la consulta devolvió mas de una Verificación Fisico- Mecánica activa"); } List <PlacaEstatalBO> lstPlacaEstatal = placaBR.Consultar(dctx, new PlacaEstatalBO { Activo = true, Tramitable = this.vista.Tramitable, Tipo = ETipoTramite.PLACA_ESTATAL }); if (lstPlacaEstatal.Count == 1) { this.vista.PlacaEstatal = lstPlacaEstatal[0]; } if (lstPlacaEstatal.Count > 1) { throw new Exception("Inconsistencia en el tramites de Placa Estatal, la consulta devolvió mas de una Placa Estatal activa"); } List <PlacaFederalBO> lstPlacaFederal = placaBR.Consultar(dctx, new PlacaFederalBO { Tramitable = this.vista.Tramitable, Tipo = ETipoTramite.PLACA_FEDERAL }); if (lstPlacaFederal != null && lstPlacaFederal.Count > 0) { var lstPlacasFederalesActivas = lstPlacaFederal.Where(p => p.Activo == true).ToList(); if (lstPlacasFederalesActivas.Count > 1) { throw new Exception("Inconsistencia en el tramites de Placa Federal, la consulta devolvió mas de una Placa Federal activa"); } if (lstPlacasFederalesActivas.Count == 1) { this.vista.PlacaFederal = lstPlacasFederalesActivas[0]; } else { this.vista.PlacaFederal = lstPlacaFederal.FirstOrDefault(p => p.FechaRecepcion.Value == lstPlacaFederal.Max(p1 => p1.FechaRecepcion).Value); } } List <GPSBO> lstGPS = gpsBR.Consultar(dctx, new GPSBO { Tramitable = this.vista.Tramitable, Activo = true }); if (lstGPS.Count == 1) { this.vista.GPS = lstGPS[0]; } if (lstGPS.Count > 1) { throw new Exception("Inconsistencia en el tramites de GPS, la consulta devolvió mas de un GPS activo"); } List <FiltroAKBO> lstFiltro = filtroBR.Consultar(dctx, new FiltroAKBO { Tramitable = this.vista.Tramitable, Activo = true }); if (lstFiltro.Count == 1) { this.vista.FiltroAK = lstFiltro[0]; } if (lstFiltro.Count > 1) { throw new Exception("Inconsistencia en el tramites de Filtro AK, la consulta devolvió mas de un Filtro AK activo"); } List <SeguroBO> lstSeguros = seguroBR.ConsultarCompleto(dctx, new SeguroBO { Tramitable = this.vista.Tramitable, Tipo = ETipoTramite.SEGURO, Activo = true }); if (lstSeguros != null) { if (lstSeguros.Count == 1) { this.vista.Poliza = lstSeguros[0].NumeroPoliza; this.vista.Aseguradora = lstSeguros[0].Aseguradora; this.vista.FechaInicial = lstSeguros[0].VigenciaInicial; this.vista.FechaFinal = lstSeguros[0].VigenciaFinal; this.vista.Seguro = lstSeguros[0]; } if (lstSeguros.Count > 1) { throw new Exception("Inconsistencia en el tramites de Seguro, la consulta devolvió mas de un Seguro activo"); } } #endregion this.DatoAInterfazUsuario(); } else { this.MostrarMensaje("Error al intentar obtener los datos de la unidad", ETipoMensajeIU.ERROR, nombreClase + ".ConsultarTramites(): La unidad es nulo"); } } else { this.MostrarMensaje("Error al intentar obtener los datos de la unidad ", ETipoMensajeIU.ERROR, nombreClase + ".ConsultarTramites(): La consulta devolvió más de una unidad"); } } else { this.MostrarMensaje("Error al intentar obtener los datos de la unidad ", ETipoMensajeIU.ERROR, nombreClase + "ConsultarTramites(): La consulta no devolvió ningún resultado"); } } catch (Exception ex) { this.MostrarMensaje("Error al intentar consultar los trámites", ETipoMensajeIU.ERROR, nombreClase + ".ConsultarTramites: " + ex.Message); } }
/// <summary> /// Determina de acuerdo a la capacidad del taller si el limite ya se ha superado /// </summary> /// <param name="fecha"></param> /// <returns></returns> public bool LimiteTallerSuperado(DateTime?fecha) { var tipoMantto = (ETipoMantenimiento)Enum.Parse(typeof(ETipoMantenimiento), this.vista.TipoMantenimiento); var fechaInicial = new DateTime(fecha.Value.Year, fecha.Value.Month, fecha.Value.Day); var fechaFinal = new DateTime(fecha.Value.Year, fecha.Value.Month, fecha.Value.Day, 23, 59, 59); do { if (fechaInicial.DayOfWeek != DayOfWeek.Monday) { fechaInicial = fechaInicial.AddDays(-1); } } while (fechaInicial.DayOfWeek != DayOfWeek.Monday); do { if (fechaFinal.DayOfWeek != DayOfWeek.Sunday) { fechaFinal = fechaFinal.AddDays(1); } } while (fechaFinal.DayOfWeek != DayOfWeek.Sunday); decimal tiempoPorDia = FacadeBR.ConsultarTiempoDisponibleTaller(dctx, this.vista.TallerID, this.vista.SucursalID, this.vista.UnidadOperativaID, fechaInicial, fechaFinal, fecha.Value.DayOfWeek == DayOfWeek.Saturday); CitaMantenimientoBR citaMantenimientoBR = new CitaMantenimientoBR(); var citas = new List <CitaMantenimientoBO>(); citas.AddRange(citaMantenimientoBR.ConsultarPorRangoFechas(dctx, new CitaMantenimientoBOF() { FechaInicio = new DateTime(fecha.Value.Year, fecha.Value.Month, fecha.Value.Day), FechaFin = new DateTime(fecha.Value.Year, fecha.Value.Month, fecha.Value.Day, 23, 59, 59), Estatus = EEstatusCita.CALENDARIZADA })); citas.AddRange(citaMantenimientoBR.ConsultarPorRangoFechas(dctx, new CitaMantenimientoBOF() { FechaInicio = new DateTime(fecha.Value.Year, fecha.Value.Month, fecha.Value.Day), FechaFin = new DateTime(fecha.Value.Year, fecha.Value.Month, fecha.Value.Day, 23, 59, 59), Estatus = EEstatusCita.RECALENDARIZADA })); citas.AddRange(citaMantenimientoBR.ConsultarPorRangoFechas(dctx, new CitaMantenimientoBOF() { FechaInicio = new DateTime(fecha.Value.Year, fecha.Value.Month, fecha.Value.Day), FechaFin = new DateTime(fecha.Value.Year, fecha.Value.Month, fecha.Value.Day, 23, 59, 59), Estatus = EEstatusCita.INICIADA })); UnidadBR unidadBR = new UnidadBR(); ConsultarMantenimientoProgramadoBR mantenimientoProgramadoBR = new ConsultarMantenimientoProgramadoBR(); decimal tiempoConsumido = 0; foreach (var cita in citas.Where(x => (x.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad.UnidadID != this.vista.UnidadID).ToList()) { var manttoProgramado = mantenimientoProgramadoBR.Consultar(dctx, new MantenimientoProgramadoUnidadBO() { MantenimientoProgramadoID = cita.MantenimientoProgramado.MantenimientoProgramadoID }).FirstOrDefault(); (manttoProgramado as MantenimientoProgramadoUnidadBO).Unidad = unidadBR.Consultar(dctx, new Equipos.BO.UnidadBO() { EquipoID = (manttoProgramado as MantenimientoProgramadoUnidadBO).EquipoID }).FirstOrDefault(); var equiposAliados = unidadBR.ConsultarEquipoAliado(dctx, (manttoProgramado as MantenimientoProgramadoUnidadBO).Unidad, false); List <MantenimientoProgramadoEquipoAliadoBO> manttoEquiposAliados = new List <MantenimientoProgramadoEquipoAliadoBO>(); foreach (var equipoAliado in equiposAliados) { var manttoEA = mantenimientoProgramadoBR.Consultar(dctx, new MantenimientoProgramadoEquipoAliadoBO() { EquipoID = equipoAliado.EquipoID, Activo = true, EstatusMantenimientoProgramado = EEstatusMantenimientoProgramado.PROGRAMADO }).FirstOrDefault(); if (manttoEA != null) { manttoEquiposAliados.Add(manttoEA as MantenimientoProgramadoEquipoAliadoBO); } } var tiempoMantto = this.ObtenerTiempoMantenimiento(manttoProgramado as MantenimientoProgramadoUnidadBO, manttoEquiposAliados); tiempoConsumido = tiempoConsumido + tiempoMantto != null ? tiempoMantto.Value : 0; } BPMO.SDNI.Equipos.BO.UnidadBO unidad; if (citas.Any(x => (x.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad.UnidadID == this.vista.UnidadID)) { var cita = citas.FirstOrDefault(x => (x.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad.UnidadID == this.vista.UnidadID); unidad = (cita.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad; } else { unidad = unidadBR.Consultar(dctx, new BPMO.SDNI.Equipos.BO.UnidadBO() { UnidadID = this.vista.UnidadID }).FirstOrDefault(); } decimal?tiempo = 0; var configuracionPosicionTrabajo = new ConfiguracionPosicionTrabajoBO() { ConfiguracionModeloMotorizacion = new ConfiguracionModeloMotorizacionBO() { Modelo = unidad.Modelo }, DescriptorTrabajo = new DescriptorTrabajoBO { Nombre = tipoMantto.ToString() } }; var configPosicion = FacadeBR.ConsultarConfiguracionPosicionTrabajoDetalle(dctx, configuracionPosicionTrabajo); configPosicion.ForEach(x => { tiempo = tiempo + x.TiempoSRT; }); return(tiempo + tiempoConsumido > tiempoPorDia); }