/// <summary> /// Obtiene la unidad que deseas editar /// </summary> /// <param name="unidadAnterior">Unidad que se desea editar</param> /// <returns>Unidad Completa para su edicion</returns> private UnidadBO ObtenerUnidad(UnidadBO unidadAnterior) { var obj = unidadAnterior; UnidadBR unidadBR = new UnidadBR(); //Consultamos el objeto var unidades = unidadBR.ConsultarCompleto(dctx, obj, true); //Limpiamso la instancia del objeto obj = null; //Validamos que realmente hay una unidad para su edición if (!ReferenceEquals(unidades, null)) { if (unidades.Count > 0) { obj = unidades[0]; } } //Retornamos el objeto return(obj); }
public void SeleccionarUnidad(Equipos.BO.UnidadBO unidad) { try { #region Se obtiene la información completa de la unidad y sus trámites List <TramiteBO> lstTramites = new List <TramiteBO>(); if (unidad != null && (unidad.UnidadID != null || unidad.EquipoID != null)) { List <Equipos.BO.UnidadBO> lst = new UnidadBR().ConsultarCompleto(this.dctx, new Equipos.BO.UnidadBO() { UnidadID = unidad.UnidadID, EquipoID = unidad.EquipoID }, true); if (lst.Count <= 0) { throw new Exception("No se encontró la información completa de la unidad seleccionada."); } unidad = lst[0]; lstTramites = new TramiteBR().ConsultarCompleto(this.dctx, new TramiteProxyBO() { Activo = true, Tramitable = unidad }, false); bool esValido = ((EAreaConstruccion)unidad.Area == EAreaConstruccion.RO || (EAreaConstruccion)unidad.Area == EAreaConstruccion.ROC); if (this.vista.UnidadOperativaID == (int)ETipoEmpresa.Construccion && esValido) { CatalogoBaseBO catalogoBase = unidad.TipoEquipoServicio; unidad.TipoEquipoServicio = FacadeBR.ConsultarTipoUnidad(dctx, catalogoBase).FirstOrDefault(); ContratoPSLBR Contratobr = new ContratoPSLBR(); ETipoUnidad? tipo = Contratobr.ObtenerTipoUnidadPorClave(dctx, unidad.TipoEquipoServicio.NombreCorto, null); if (tipo == null) { this.vista.HabilitarBotonTerminar(false); this.vista.MostrarMensaje(this.nombreClase + ".SeleccionarUnidad: " + "No es posible seleccionar la unidad " + unidad.NumeroSerie + " debido a que no existe un checklist para su tipo (" + unidad.TipoEquipoServicio.NombreCorto + ")", ETipoMensajeIU.ADVERTENCIA, null); return; } else { this.vista.HabilitarBotonTerminar(true); } } else { this.vista.HabilitarBotonTerminar(true); } } #endregion #region Dato a Interfaz de Usuario //Información de la Unidad if (unidad == null) { unidad = new Equipos.BO.UnidadBO(); } if (unidad.Modelo == null) { unidad.Modelo = new BPMO.Servicio.Catalogos.BO.ModeloBO(); } if (unidad.Modelo.Marca == null) { unidad.Modelo.Marca = new BPMO.Servicio.Catalogos.BO.MarcaBO(); } if (unidad.Sucursal == null) { unidad.Sucursal = new SucursalBO(); } if (unidad.CaracteristicasUnidad == null) { unidad.CaracteristicasUnidad = new CaracteristicasUnidadBO(); } #endregion } catch (Exception ex) { throw new Exception(this.nombreClase + ".SeleccionarUnidad: " + ex.Message); } }
private void EstablecerLineaContrato(LineaContratoManttoBO linea, bool edicion = false) { try { if (linea == null) { linea = new LineaContratoManttoBO(); } if (linea.Equipo == null) { linea.Equipo = new Equipos.BO.UnidadBO(); } if (!(linea.Equipo is Equipos.BO.UnidadBO)) { throw new Exception("El equipo de la línea de contrato no es una unidad."); } List <TramiteBO> lstTramites = new List <TramiteBO>(); #region Se obtiene la información completa de la unidad y sus trámites if (((Equipos.BO.UnidadBO)linea.Equipo).UnidadID != null) { Equipos.BO.UnidadBO bo = (Equipos.BO.UnidadBO)linea.Equipo; //SC_0051: cambie de consultar completo a consultar detalle List <Equipos.BO.UnidadBO> lst = new UnidadBR().ConsultarDetalle(this.dctx, new Equipos.BO.UnidadBO() { UnidadID = bo.UnidadID, EquipoID = bo.EquipoID }, true); if (lst.Count <= 0) { throw new Exception("No se encontró la información completa de la unidad seleccionada."); } if (!edicion) { bo = lst[0]; } if (bo.Sucursal != null)//SC_0051 { if (bo.Sucursal.Id.HasValue) { var lstUnis = FacadeBR.ConsultarSucursal(dctx, bo.Sucursal); var sucUni = lstUnis.FirstOrDefault(x => x.Id == bo.Sucursal.Id); if (sucUni != null) { bo.Sucursal = sucUni; } } } lstTramites = new TramiteBR().ConsultarCompleto(this.dctx, new TramiteProxyBO() { Activo = true, Tramitable = bo }, false); linea.Equipo = bo; } #endregion #region Se completa la información de la sub-línea de contrato con los equipos aliados de la unidad if (linea.SubLineasContrato != null) { foreach (SubLineaContratoManttoBO sublinea in linea.SubLineasContrato) { if (sublinea.EquipoAliado == null) { sublinea.EquipoAliado = new EquipoAliadoBO(); } if (sublinea.EquipoAliado.EquipoAliadoID != null && ((Equipos.BO.UnidadBO)linea.Equipo).EquiposAliados != null) { EquipoAliadoBO eaTemp = ((Equipos.BO.UnidadBO)linea.Equipo).EquiposAliados.Find(p => p.EquipoAliadoID == sublinea.EquipoAliado.EquipoAliadoID); if (eaTemp != null) { sublinea.EquipoAliado = eaTemp; } } } } else { if (linea.Equipo != null && linea.Equipo is Equipos.BO.UnidadBO && ((Equipos.BO.UnidadBO)linea.Equipo).EquiposAliados != null) { linea.SubLineasContrato = new List <SubLineaContratoManttoBO>(); foreach (EquipoAliadoBO ea in ((Equipos.BO.UnidadBO)linea.Equipo).EquiposAliados) { SubLineaContratoManttoBO subLinea = new SubLineaContratoManttoBO(); subLinea.EquipoAliado = ea; subLinea.Mantenimiento = false; linea.SubLineasContrato.Add(subLinea); } } } #endregion this.DatoAInterfazUsuario(lstTramites); this.DatoAInterfazUsuario(linea); } catch (Exception ex) { throw new Exception(this.nombreClase + ".EstablecerLineaContrato: " + 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); }
/// <summary> /// Presenta el detalle de una Cita de Mantenimiento Seleccionada /// </summary> /// <param name="id">Identificador de la cita o el mantenimiento programado</param> /// <param name="esCita">Determina si el ID es para una Cita de Mantenimiento</param> public void PresentarDetalles(CitaMantenimientoBO citaMantenimiento) { if (citaMantenimiento != null) { CitaMantenimientoBO cita = citaMantenimiento; BPMO.SDNI.Equipos.BO.UnidadBO unidad = (cita.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad; UnidadBR unidadBR = new UnidadBR(); TramiteProxyBO filter = new TramiteProxyBO() { Activo = true, Tramitable = new BPMO.SDNI.Equipos.BO.UnidadBO { UnidadID = unidad.UnidadID } }; TramiteBR tramiteBR = new TramiteBR(); List <TramiteBO> lstTramites = tramiteBR.ConsultarCompleto(dctx, filter, false); TramiteBO tramitePlacaFederal = lstTramites.Find(p => p.Tipo != null && p.Tipo == ETipoTramite.PLACA_FEDERAL && p.Activo != null && p.Activo == true); TramiteBO tramitePlacaEstatal = lstTramites.Find(p => p.Tipo != null && p.Tipo == ETipoTramite.PLACA_ESTATAL && p.Activo != null && p.Activo == true); String placas = tramitePlacaFederal != null && !String.IsNullOrEmpty(tramitePlacaFederal.Resultado) ? tramitePlacaFederal.Resultado : (tramitePlacaEstatal != null && !String.IsNullOrEmpty(tramitePlacaEstatal.Resultado) ? tramitePlacaEstatal.Resultado : null); var equiposAliados = unidadBR.ConsultarEquipoAliado(dctx, unidad, true); List <MantenimientoProgramadoEquipoAliadoBO> mantenimientosEA = new List <MantenimientoProgramadoEquipoAliadoBO>(); var mantenimientoProgramadoBR = new ConsultarMantenimientoProgramadoBR(); foreach (EquipoAliadoBO equipoAliado in equiposAliados) { var manttosEA = mantenimientoProgramadoBR.Consultar(dctx, new MantenimientoProgramadoBOF() { EsUnidad = false, EquipoID = equipoAliado.EquipoID, Activo = true, EstatusMantenimientoProgramado = EEstatusMantenimientoProgramado.PROGRAMADO }); if (manttosEA != null && manttosEA.Any()) { var manttoEA = manttosEA.FirstOrDefault() as MantenimientoProgramadoEquipoAliadoBO; manttoEA.EquipoAliado = equipoAliado; mantenimientosEA.Add(manttoEA); } else { mantenimientosEA.Add(new MantenimientoProgramadoEquipoAliadoBO() { EquipoAliado = equipoAliado }); } } List <ContactoClienteBO> contactosCliente = new List <ContactoClienteBO>(); if ((cita.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad.Cliente != null && (cita.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad.Cliente.Id != null) { var clienteIdealeaseBR = new CuentaClienteIdealeaseBR(); var cliente = clienteIdealeaseBR.Consultar(dctx, new CuentaClienteIdealeaseBO() { Cliente = new ClienteBO() { Id = (cita.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad.Cliente.Id }, UnidadOperativa = new UnidadOperativaBO() { Id = this.vista.UnidadOperativaID } }).FirstOrDefault(); if (cliente != null) { bool?activo = cita.CitaMantenimientoID != null ? null : (bool?)true; var contactos = new ContactoClienteBR().ConsultarCompleto(dctx, new ContactoClienteBO() { CuentaClienteIdealease = cliente, Activo = activo, Sucursal = cita.Sucursal }); if (contactos != null && contactos.Any()) { contactos.ForEach(contacto => { contacto.Detalles.ForEach(detail => { detail.ContactoCliente.Sucursal = new SucursalBO() { Id = contacto.Sucursal.Id, Nombre = contacto.Sucursal.Nombre }; detail.ContactoCliente.Direccion = contacto.Direccion; }); }); contactosCliente.AddRange(contactos); } (cita.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad.Cliente.NombreCompleto = cliente.Cliente.NombreCompleto; } else { var clienteServicio = FacadeBR.ConsultarCliente(dctx, new ClienteBO() { Id = (cita.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad.Cliente.Id }).FirstOrDefault(); if (clienteServicio != null) { (cita.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad.Cliente.NombreCompleto = clienteServicio.NombreCompleto; } } } this.ObjetoAInterfazUsuario(cita, mantenimientosEA, contactosCliente, tramitePlacaFederal != null && !String.IsNullOrEmpty(tramitePlacaFederal.Resultado) ? tramitePlacaFederal.Resultado : String.Empty, tramitePlacaEstatal != null && !String.IsNullOrEmpty(tramitePlacaEstatal.Resultado) ? tramitePlacaEstatal.Resultado : String.Empty); } else { throw new Exception("No hay citas de mantenimiento para presentar"); } }
/// <summary> /// Presenta el detalle de una Cita de Mantenimiento Seleccionada /// </summary> /// <param name="id">Identificador de la cita o el mantenimiento programado</param> /// <param name="esCita">Determina si el ID es para una Cita de Mantenimiento</param> public void PresentarDetalles(int id, bool esCita) { if (this.vista.CitasMantenimiento != null && this.vista.CitasMantenimiento.Any()) { CitaMantenimientoBO cita = null; if (esCita) { cita = this.vista.CitasMantenimiento.FirstOrDefault(x => x.CitaMantenimientoID == id); } else { cita = this.vista.CitasMantenimiento.FirstOrDefault(x => x.MantenimientoProgramado.MantenimientoProgramadoID == id); } BPMO.SDNI.Equipos.BO.UnidadBO unidad = (cita.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad; UnidadBR unidadBR = new UnidadBR(); TramiteProxyBO filter = new TramiteProxyBO() { Activo = true, Tramitable = new BPMO.SDNI.Equipos.BO.UnidadBO { UnidadID = unidad.UnidadID } }; TramiteBR tramiteBR = new TramiteBR(); List <TramiteBO> lstTramites = tramiteBR.ConsultarCompleto(dctx, filter, false); TramiteBO tramitePlacaFederal = lstTramites.Find(p => p.Tipo != null && p.Tipo == ETipoTramite.PLACA_FEDERAL && p.Activo != null && p.Activo == true); TramiteBO tramitePlacaEstatal = lstTramites.Find(p => p.Tipo != null && p.Tipo == ETipoTramite.PLACA_ESTATAL && p.Activo != null && p.Activo == true); String placas = tramitePlacaFederal != null && !String.IsNullOrEmpty(tramitePlacaFederal.Resultado) ? tramitePlacaFederal.Resultado : (tramitePlacaEstatal != null && !String.IsNullOrEmpty(tramitePlacaEstatal.Resultado) ? tramitePlacaEstatal.Resultado : null); var equiposAliados = unidadBR.ConsultarEquipoAliado(dctx, unidad, true); List <MantenimientoProgramadoEquipoAliadoBO> mantenimientosEA = new List <MantenimientoProgramadoEquipoAliadoBO>(); var mantenimientoProgramadoBR = new ConsultarMantenimientoProgramadoBR(); foreach (EquipoAliadoBO equipoAliado in equiposAliados) { var manttosEA = mantenimientoProgramadoBR.Consultar(dctx, new MantenimientoProgramadoBOF() { EsUnidad = false, EquipoID = equipoAliado.EquipoID, Activo = true, EstatusMantenimientoProgramado = EEstatusMantenimientoProgramado.PROGRAMADO }); if (manttosEA != null && manttosEA.Any()) { var manttoEA = manttosEA.FirstOrDefault() as MantenimientoProgramadoEquipoAliadoBO; manttoEA.EquipoAliado = equipoAliado; mantenimientosEA.Add(manttoEA); } else { mantenimientosEA.Add(new MantenimientoProgramadoEquipoAliadoBO() { EquipoAliado = equipoAliado }); } } var nombreSucursal = ""; var nombreTaller = ""; int? kmUltimoServicio = null; DateTime?fechaUltimoServicio = null; string clienteNombre = ""; List <ContactoClienteBO> contactosCliente = new List <ContactoClienteBO>(); if (cita.CitaMantenimientoID != null) { var sucursal = FacadeBR.ConsultarSucursal(dctx, new SucursalBO() { Id = cita.Sucursal.Id }).FirstOrDefault(); if (sucursal != null) { cita.Sucursal.Nombre = sucursal.Nombre; nombreSucursal = sucursal.Nombre; } var taller = FacadeBR.ConsultarTaller(dctx, new TallerBO() { Id = cita.TallerInterno.Id }).FirstOrDefault(); if (taller != null) { cita.TallerInterno.Nombre = taller.Nombre; cita.TallerInterno.NombreCorto = taller.NombreCorto; nombreTaller = taller.Nombre; } } var unidadManttoBR = new MantenimientoUnidadBR(); var mantemiento = unidadManttoBR.Consultar(dctx, new MantenimientoUnidadBO() { IngresoUnidad = new IngresoUnidadBO() { Unidad = (cita.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad }, TipoServicio = new TipoServicioBO() { Id = this.TipoMantenimiento }, Activo = true }).Where(x => x.FechaSalida != null).OrderBy(x => x.FechaSalida).ToList().LastOrDefault(); if (mantemiento != null) { kmUltimoServicio = mantemiento.KilometrajeEntrada; fechaUltimoServicio = mantemiento.FechaSalida.Value; } if ((cita.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad.Cliente != null && (cita.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad.Cliente.Id != null) { var clienteIdealeaseBR = new CuentaClienteIdealeaseBR(); var cliente = clienteIdealeaseBR.Consultar(dctx, new CuentaClienteIdealeaseBO() { Cliente = new ClienteBO() { Id = (cita.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad.Cliente.Id }, UnidadOperativa = new UnidadOperativaBO() { Id = this.vista.UnidadOperativaID } }).FirstOrDefault(); if (cliente != null) { bool?activo = cita.CitaMantenimientoID != null ? null : (bool?)true; var contactos = new ContactoClienteBR().ConsultarCompleto(dctx, new ContactoClienteBO() { CuentaClienteIdealease = cliente, Activo = activo, Sucursal = cita.Sucursal }); if (contactos != null && contactos.Any()) { contactos.ForEach(contacto => { contacto.Detalles.ForEach(detail => { detail.ContactoCliente.Sucursal = new SucursalBO() { Id = contacto.Sucursal.Id, Nombre = contacto.Sucursal.Nombre }; detail.ContactoCliente.Direccion = contacto.Direccion; }); }); contactosCliente.AddRange(contactos); } clienteNombre = cliente.Cliente.NombreCompleto; } else { var clienteServicio = FacadeBR.ConsultarCliente(dctx, new ClienteBO() { Id = (cita.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad.Cliente.Id }).FirstOrDefault(); if (clienteServicio != null) { clienteNombre = clienteServicio.NombreCompleto; } } } var fechaInicial = new DateTime(); if (mantemiento.FechaUltimoServicio.HasValue) { fechaInicial = mantemiento.FechaArranque.Value > mantemiento.FechaUltimoServicio.Value && mantemiento.FechaArranque.Value < mantemiento.FechaProximoServicio.Value ? mantemiento.FechaArranque.Value : DateTime.Today; } else { fechaInicial = DateTime.Today; } var diasRetraso = Convert.ToInt32(Math.Round((fechaInicial - new DateTime(cita.MantenimientoProgramado.Fecha.Value.Year, cita.MantenimientoProgramado.Fecha.Value.Month, cita.MantenimientoProgramado.Fecha.Value.Day)).TotalDays, 2)); this.vista.ClienteNombre = clienteNombre; this.vista.Area = (cita.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad.Area.ToString(); this.vista.VINUnidad = (cita.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad.NumeroSerie; this.vista.NumeroEconomico = (cita.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad.NumeroEconomico; this.vista.KmUltimoServicio = kmUltimoServicio; this.vista.FechaUltimoServicio = fechaUltimoServicio; this.vista.PlacaEstatal = tramitePlacaEstatal != null && !String.IsNullOrEmpty(tramitePlacaEstatal.Resultado) ? tramitePlacaEstatal.Resultado : ""; this.vista.PlacaFederal = tramitePlacaFederal != null && !String.IsNullOrEmpty(tramitePlacaFederal.Resultado) ? tramitePlacaFederal.Resultado : ""; this.vista.FechaSugerida = cita.MantenimientoProgramado.Fecha; this.vista.TipoMantenimiento = (cita.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).TipoMantenimientoNombre; this.vista.NombreSucursalDetalle = nombreSucursal; this.vista.NombreTallerDetalle = nombreTaller; this.vista.ListadoManttoEquiposAliados = mantenimientosEA; this.vista.EstatusMantenimiento = cita.CitaMantenimientoID != null?cita.EstatusCita.ToString() : EEstatusCita.PRECALENDARIZADA.ToString(); this.vista.DiasRetraso = diasRetraso <= 0 ? int.Parse(diasRetraso.ToString("G")) : int.Parse(diasRetraso.ToString()); this.vista.ListadoContactosCliente = contactosCliente; this.vista.EstablecerEquiposAliados(); this.vista.EstablecerContactosCliente(); } else { throw new Exception("No hay citas de mantenimiento para presentar"); } }
/// <summary> /// Consulta los mantenimientos programados /// </summary> public void ConsultarMantenimientosProgramados() { try { int AnoActual = DateTime.Now.Year; int MesActual = DateTime.Now.Month; int MesAnterior = 1; if (MesActual > 1) { MesAnterior = MesActual - 1; } else if (MesActual == 1) { MesAnterior = 12; AnoActual = AnoActual - 1; } var fecha = new DateTime(AnoActual, MesAnterior, 1); var fechaFinal = fecha.AddMonths(3).AddDays(-1).AddHours(23).AddMinutes(59).AddSeconds(59); var mantenimientoProgramadoBR = new ConsultarMantenimientoProgramadoBR(); var mantenimientoBOF = new MantenimientoProgramadoBOF() { Auditoria = new AuditoriaBO(), Fecha = fecha, FechaFinal = fechaFinal, EsUnidad = true, Sucursal = new SucursalBO() { Id = this.vista.SucursalID } }; SucursalBO sucursal = new SucursalBO() { Id = this.vista.SucursalID }; List <DateTime> diasInhabiles = new List <DateTime>(); if (this.vista.SucursalID != null) { diasInhabiles.AddRange(FacadeBR.ConsultarDiasInhabiles(dctx, fecha, fechaFinal, sucursal)); } var listadoMantenimientos = mantenimientoProgramadoBR.ConsultarPreventivosSinRealizar(this.dctx, mantenimientoBOF); var listaCitas = new List <CitaMantenimientoBO>(); var unidadBR = new UnidadBR(); if (listadoMantenimientos != null && listadoMantenimientos.Count > 0) { foreach (var mantenimientoProgramado in listadoMantenimientos) { var agregar = true; var citaMantenimiento = new CitaMantenimientoBO() { MantenimientoProgramado = new MantenimientoProgramadoUnidadBO(), Auditoria = new AuditoriaBO() }; var citasUnidad = controlador.Consultar(dctx, new CitaMantenimientoBO() { MantenimientoProgramado = new MantenimientoProgramadoBO() { MantenimientoProgramadoID = mantenimientoProgramado.MantenimientoProgramadoID } }); if (citasUnidad != null && citasUnidad.Any()) { citaMantenimiento = citasUnidad.FirstOrDefault(); citaMantenimiento.MantenimientoProgramado = new MantenimientoProgramadoUnidadBO() { MantenimientoProgramadoID = mantenimientoProgramado.MantenimientoProgramadoID, Activo = mantenimientoProgramado.Activo, EquipoID = mantenimientoProgramado.EquipoID, EstatusMantenimientoProgramado = mantenimientoProgramado.EstatusMantenimientoProgramado, EsUnidad = mantenimientoProgramado.EsUnidad, Fecha = mantenimientoProgramado.Fecha, Horas = mantenimientoProgramado.Horas, Km = mantenimientoProgramado.Km, TipoMantenimiento = mantenimientoProgramado.TipoMantenimiento, }; if (this.vista.SucursalID != null && this.vista.TallerID != null) //if (this.vista.TallerID != null) { if (citaMantenimiento.Sucursal.Id != this.vista.SucursalID && citaMantenimiento.TallerInterno.Id != this.vista.TallerID) { //if (citaMantenimiento.TallerInterno.Id != this.vista.TallerID) agregar = false; } else { (citaMantenimiento.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad = this.ObtenerUnidad(mantenimientoProgramado.EquipoID, null); } } else { if (this.vista.SucursalID != null && this.vista.TallerID == null) { if (citaMantenimiento.Sucursal.Id != this.vista.SucursalID) { agregar = false; } else { (citaMantenimiento.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad = this.ObtenerUnidad(mantenimientoProgramado.EquipoID, null); } } else { (citaMantenimiento.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad = this.ObtenerUnidad(mantenimientoProgramado.EquipoID, null); } } } else { citaMantenimiento.MantenimientoProgramado = new MantenimientoProgramadoUnidadBO() { MantenimientoProgramadoID = mantenimientoProgramado.MantenimientoProgramadoID, Activo = mantenimientoProgramado.Activo, EquipoID = mantenimientoProgramado.EquipoID, EstatusMantenimientoProgramado = mantenimientoProgramado.EstatusMantenimientoProgramado, EsUnidad = mantenimientoProgramado.EsUnidad, Fecha = mantenimientoProgramado.Fecha, Horas = mantenimientoProgramado.Horas, Km = mantenimientoProgramado.Km, TipoMantenimiento = mantenimientoProgramado.TipoMantenimiento, }; (citaMantenimiento.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad = this.ObtenerUnidad(mantenimientoProgramado.EquipoID, null); } if (agregar) { if (listaCitas.Count(x => x.MantenimientoProgramado.EquipoID == mantenimientoProgramado.EquipoID && x.MantenimientoProgramado.Fecha == mantenimientoProgramado.Fecha) > 0) { } else { listaCitas.Add(citaMantenimiento); } } } } else { this.vista.MostrarMensaje("No se encontro ningun mantenimiento programado para este mes", Primitivos.Enumeradores.ETipoMensajeIU.INFORMACION); } this.vista.EstablecerMantenimientos(listaCitas, diasInhabiles); } catch (Exception ex) { throw new Exception(nombreClase + ": " + ex.Message); } }