/// <summary> /// Obtiene el tiempo que tomara realizar el trabajo de la unidad y de sus equipos aliados /// </summary> /// <param name="mantenimientoUnidad">Mantenimiento programado de unidad</param> /// <param name="manttoEquiposAliados">Manteniminetos programados para los equipos aliados</param> /// <returns>Tiempo total de mantenimiento</returns> private decimal?ObtenerTiempoMantenimiento(MantenimientoProgramadoUnidadBO mantenimientoUnidad, List <MantenimientoProgramadoEquipoAliadoBO> manttoEquiposAliados) { decimal?tiempo = 0; var configuracionPosicionTrabajo = new ConfiguracionPosicionTrabajoBO() { ConfiguracionModeloMotorizacion = new ConfiguracionModeloMotorizacionBO() { Modelo = mantenimientoUnidad.Unidad.Modelo }, DescriptorTrabajo = new DescriptorTrabajoBO { Nombre = mantenimientoUnidad.TipoMantenimiento.ToString() } }; var configPosicion = FacadeBR.ConsultarConfiguracionPosicionTrabajoDetalle(dctx, configuracionPosicionTrabajo); configPosicion.ForEach(x => { tiempo = tiempo + x.TiempoSRT; }); manttoEquiposAliados.Where(x => x.EquipoAliado.Modelo != null && x.EquipoAliado.Modelo.Id != null).ToList().ForEach(mantto => { configuracionPosicionTrabajo.ConfiguracionModeloMotorizacion.Modelo = mantto.EquipoAliado.Modelo; configuracionPosicionTrabajo.DescriptorTrabajo.Nombre = mantto.TipoMantenimiento.ToString(); var configEAliado = FacadeBR.ConsultarConfiguracionPosicionTrabajoDetalle(dctx, configuracionPosicionTrabajo); configEAliado.ForEach(x => { tiempo = tiempo + x.TiempoSRT; }); }); return(Math.Round(tiempo.Value, 2)); }
public void consultarActividadesPM() { if (this.ucvista.Modelo != null && this.ucvista.ModeloID != null) { var configuracionPosicionTrabajo = new ConfiguracionPosicionTrabajoBO() { ConfiguracionModeloMotorizacion = new ConfiguracionModeloMotorizacionBO() { Modelo = new ModeloBO { Id = this.ucvista.ModeloID } }, DescriptorTrabajo = new DescriptorTrabajoBO { Nombre = this.vista.TipoMantenimiento.ToString().Trim() } }; var configPosicion = FacadeBR.ConsultarConfiguracionPosicionTrabajoDetalle(dataContext, configuracionPosicionTrabajo); if (configPosicion != null && configPosicion.Count > 0) { var posicion = FacadeBR.ConsultarConfiguracionPosicionTrabajoDetallePaquete(dataContext, configPosicion.FirstOrDefault(), null); var detalleConfiguracion = new List <DetalleConfiguracionAuditoriaMantenimientoBO>(); foreach (var item in posicion.ConfiguracionPosicionTrabajoPaquete) { var detalle = new DetalleConfiguracionAuditoriaMantenimientoBO() { ConfiguracionPosicionTrabajo = item.ConfiguracionPosicionTrabajo, Obligatorio = false }; detalleConfiguracion.Add(detalle); } this.vista.ActividadesAuditoria = detalleConfiguracion; this.vista.GridActividadesAuditoria.PageIndex = 0; this.vista.GridActividadesAuditoria.DataSource = this.vista.ActividadesAuditoria; this.vista.GridActividadesAuditoria.DataBind(); if (ucvista.TallerID != null) { this.ucvista.HabilitarSucursal(false); this.ucvista.HabilitarTaller(false); } if (ucvista.ModeloID != null) { this.ucvista.HabilitarModelo(false); } } else { this.vista.MostrarMensaje("ESTE MODELO NO TIENE CONFIGURADO EN E-SERVICE UN PAQUETE DE ACTIVIDADES " + this.vista.TipoMantenimiento.ToString(), ETipoMensajeIU.INFORMACION); } } else { this.vista.MostrarMensaje("DEBE SELECCIONAR UN MODELO", ETipoMensajeIU.ADVERTENCIA); } }
private List <ConfiguracionAuditoriaMantenimientoBO> CompletarDatos(List <ConfiguracionAuditoriaMantenimientoBO> configuraciones) { foreach (var item in configuraciones) { var configuracionPosicionTrabajo = new ConfiguracionPosicionTrabajoBO() { ConfiguracionModeloMotorizacion = new ConfiguracionModeloMotorizacionBO() { Modelo = item.Modelo }, DescriptorTrabajo = new DescriptorTrabajoBO { Nombre = item.TipoMantenimiento.ToString() } }; var configPosicion = FacadeBR.ConsultarConfiguracionPosicionTrabajoDetalle(dataContext, configuracionPosicionTrabajo); if (configPosicion != null && configPosicion.Count > 0) { var posicion = FacadeBR.ConsultarConfiguracionPosicionTrabajoDetallePaquete(dataContext, configPosicion.FirstOrDefault(), null); foreach (var itemPaquete in posicion.ConfiguracionPosicionTrabajoPaquete) { var pmEncontrado = item.DetalleConfiguracion.Find(x => x.ConfiguracionPosicionTrabajo.Id == itemPaquete.ConfiguracionPosicionTrabajo.Id); if (pmEncontrado != null) { pmEncontrado.ConfiguracionPosicionTrabajo = itemPaquete.ConfiguracionPosicionTrabajo; } else if (pmEncontrado == null) { var ActividadNueva = new DetalleConfiguracionAuditoriaMantenimientoBO { ConfiguracionPosicionTrabajo = itemPaquete.ConfiguracionPosicionTrabajo, Obligatorio = false }; item.DetalleConfiguracion.Add(ActividadNueva); } } List <DetalleConfiguracionAuditoriaMantenimientoBO> listBorrar = new List <DetalleConfiguracionAuditoriaMantenimientoBO>(); foreach (var itemActividades in item.DetalleConfiguracion) { if (itemActividades.ConfiguracionPosicionTrabajo.DescriptorTrabajo == null) { var boBorrar = item.DetalleConfiguracion.Find(x => x.Equals(itemActividades)); listBorrar.Add(boBorrar); } } foreach (var itemBorrar in listBorrar) { item.DetalleConfiguracion.Remove(itemBorrar); } } } return(configuraciones); }
/// <summary> /// Complementa los datos de las actividades /// </summary> /// <param name="configuraciones"></param> /// <returns></returns> private List <ConfiguracionAuditoriaMantenimientoBO> CompletarDatos(List <ConfiguracionAuditoriaMantenimientoBO> configuraciones) { foreach (var item in configuraciones) { var configuracionPosicionTrabajo = new ConfiguracionPosicionTrabajoBO() { ConfiguracionModeloMotorizacion = new ConfiguracionModeloMotorizacionBO() { Modelo = item.Modelo }, DescriptorTrabajo = new DescriptorTrabajoBO { Nombre = item.TipoMantenimiento.ToString() } }; var configPosicion = FacadeBR.ConsultarConfiguracionPosicionTrabajoDetalle(dataContext, configuracionPosicionTrabajo); if (configPosicion != null && configPosicion.Count > 0) { var posicion = FacadeBR.ConsultarConfiguracionPosicionTrabajoDetallePaquete(dataContext, configPosicion.FirstOrDefault(), null); foreach (var itemPaquete in posicion.ConfiguracionPosicionTrabajoPaquete) { var pmEncontrado = item.DetalleConfiguracion.Find(x => x.ConfiguracionPosicionTrabajo.Id == itemPaquete.ConfiguracionPosicionTrabajo.Id); if (pmEncontrado != null) { pmEncontrado.ConfiguracionPosicionTrabajo = itemPaquete.ConfiguracionPosicionTrabajo; } else if (pmEncontrado == null) { var ActividadNueva = new DetalleConfiguracionAuditoriaMantenimientoBO { ConfiguracionPosicionTrabajo = itemPaquete.ConfiguracionPosicionTrabajo }; item.DetalleConfiguracion.Add(ActividadNueva); } } foreach (var itemActividades in item.DetalleConfiguracion) { if (itemActividades.ConfiguracionPosicionTrabajo.DescriptorTrabajo == null) { itemActividades.ConfiguracionPosicionTrabajo.DescriptorTrabajo = new DescriptorTrabajoBO { Nombre = "ACTIVIDAD ELIMINADA EN SERVICIO" } } ; } } else { configuraciones = null; } } return(configuraciones); }
/// <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); }