コード例 #1
0
        /// <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);
            }
        }