/// <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); } }