/// <summary> /// Obtiene la Auditoría Mantenimiento Idealease seleccionado. /// </summary> /// <param name="seleccionado">La Auditoría Mantenimiento Idealease seleccionado.</param> /// <returns>Retorna True si encontró la Auditoría Mantenimiento Idealease.</returns> public bool VerAuditoriaCompleta(AuditoriaMantenimientoBO seleccionado) { bool cargarAuditoria = false; try{ AuditoriaMantenimientoBO filtro = seleccionado; ConsultarAuditoriaMantenimientoBR ctrlAuditoriaCompleta = new ConsultarAuditoriaMantenimientoBR(); AuditoriaMantenimientoBO auditoriaCompleta = ctrlAuditoriaCompleta.ConsultarAuditoriaCompleta(dataContext, filtro); auditoriaCompleta.OrdenServicio.AdscripcionServicio = seleccionado.OrdenServicio.AdscripcionServicio; if (auditoriaCompleta != null && auditoriaCompleta.AuditoriaMantenimientoID != null) { vista.AuditoriaSeleccionada = auditoriaCompleta; cargarAuditoria = true; } else { vista.MostrarMensaje("No se encontraron resultados para esta auditoria", ETipoMensajeIU.ADVERTENCIA); } } catch (Exception e) { if (!e.Message.Equals("")) { vista.MostrarMensaje(e.Message, ETipoMensajeIU.ADVERTENCIA); } } return(cargarAuditoria); }
/// <summary> /// Realiza la búsqueda de Auditorías de Mantenimientos Idealease por, Orden de Servicio y Tipo de Mantenimiento seleccionado. /// Si el Tipo de Mantenimiento seleccionado es nulo, realiza la búsqueda para todos los Tipos de Mantenimientos con la Orden de Servicio. /// </summary> /// <returns>Retorna True si encontró resultados, en caso contrario retorna False</returns> private bool BuscarPorOrdenServicio() { bool encontrado = false; if (vista.TipoMantenimiento == null) { vista.Auditorias = new List <AuditoriaMantenimientoBO>(); for (int i = 1; i < 4; i++) { ETipoMantenimiento tipoMantenimiento = (ETipoMantenimiento)Enum.Parse(typeof(ETipoMantenimiento), i.ToString()); AuditoriaMantenimientoBO result = ctrlAuditoria.ConsultarAuditoria(dataContext, getFiltroAuditoriaOrdenServicio(tipoMantenimiento)).FirstOrDefault(); if (result != null && result.AuditoriaMantenimientoID != null) { result.OrdenServicio = getOrdenServicioCompleta((int)result.OrdenServicio.Id); vista.Auditorias.Add(result); encontrado = true; } } } else { AuditoriaMantenimientoBO result = ctrlAuditoria.ConsultarAuditoria(dataContext, getFiltroAuditoriaOrdenServicio(vista.TipoMantenimiento.Value)).FirstOrDefault(); if (result != null && result.AuditoriaMantenimientoID != null) { result.OrdenServicio = getOrdenServicioCompleta((int)result.OrdenServicio.Id); vista.Auditorias = new List <AuditoriaMantenimientoBO>(); vista.Auditorias.Add(result); encontrado = true; } } return(encontrado); }
/// <summary> /// Crea una nueva instancia de la lista de Auditorías de Mantenimientos Idealease encontradas y la Auditoría de Mantenimiento Idealease seleccionada. /// </summary> private void IniciarCampos() { if (Session["recargarAuditorias"] == null) { Auditorias = new List <AuditoriaMantenimientoBO>(); } AuditoriaSeleccionada = new AuditoriaMantenimientoBO(); }
/// <summary> /// Muestra el objeto Auditoria en la interfaz /// </summary> /// <param name="resultado"></param> private void DesplegarResultado(AuditoriaMantenimientoBO resultado) { this.vista.OrdenServicioID = resultado.OrdenServicio.Id; this.vista.TipoMantenimiento = resultado.TipoMantenimiento.ToString(); this.vista.Tecnicos = resultado.Tecnicos; this.vista.DetalleAuditoria = resultado.DetalleAuditoria; this.vista.ActividadesAuditoria.DataSource = resultado.DetalleAuditoria; this.vista.ActividadesAuditoria.DataBind(); }
/// <summary> /// Crea y obtiene un nuevo Filtro de AuditoriaMantenimientoBO con el Tipo de Mantenimiento Seleccionado, para realizar la búsqueda de las /// Auditorías Mantenimientos Idealease. /// </summary> /// <param name="tipoMantenimiento">Tipo de Mantenimiento Seleccionado</param> /// <returns>Un Objeto de tipo AuditoriaMantenimientoBO</returns> private AuditoriaMantenimientoBO getFiltroAuditoria(ETipoMantenimiento tipoMantenimiento) { AuditoriaMantenimientoBO filtro = new AuditoriaMantenimientoBO() { TipoMantenimiento = tipoMantenimiento }; return(filtro); }
/// <summary> /// llama al AuditoriaBR para guardar la auditoria realizada y despliega un mensaje de error si no se completo el guardado /// </summary> /// <returns></returns> public int GuardarAuditoria() { AuditoriaMantenimientoBO AuditoriaRecibida = this.InterfazUsuarioADato(); int error = 0; int formatoCorrecto = 0; bool resultado = AuditoriaRecibida.DetalleAuditoria.Exists(x => x.ResultadoAuditoria == 0); List <bool> existFormat = new List <bool>(); List <string> formatos = this.vista.ObtenerConfiguracionFormatos(); if (AuditoriaRecibida.EvidenciaMantenimiento.DocumentoEvidencia != null) { foreach (var item in formatos) { bool format = this.vista.Evidencia.PostedFile.FileName.EndsWith(item); existFormat.Add(format); } ; } if (existFormat.Exists(x => x == true)) { formatoCorrecto = 1; } if (resultado == true) { error = 1; } else if (AuditoriaRecibida.EvidenciaMantenimiento.DocumentoEvidencia == null) { error = 2; } else if (AuditoriaRecibida.Observaciones == string.Empty) { error = 3; } else if (formatoCorrecto == 0) { error = 4; } else { SeguridadBO seguridad = this.obtenerUsuario(); try { new AuditoriaMantenimientoBR().Insertar(dataContext, AuditoriaRecibida, seguridad); } catch (Exception) { throw; } } return(error); }
/// <summary> /// Metodo para imprimir la auditoria /// </summary> public void ImprimirAuditoria() { AuditoriaMantenimientoBO auditoriaRecibida = this.InterfazUsuarioADato(); if (this.ValidarCampos(auditoriaRecibida)) { Dictionary <string, object> datosReporte = new ImprimirAuditoriaRealizadaBR().EstablecerDatosReporte(dataContext, auditoriaRecibida); this.vista.EstablecerValoresImpresion("PLEN.BEP.15.MODMTTO.CU020", datosReporte); this.vista.RedirigirAImprimir(); } }
/// <summary> /// Crea y obtiene un nuevo Filtro de AuditoriaMantenimientoBO con el Tipo de Mantenimiento Seleccionado y la Orden de Servicio, para realizar la /// búsqueda de las Auditorías Mantenimientos Idealease. /// </summary> /// <param name="tipoMantenimiento">El Tipo de Mantenimiento seleccionado</param> /// <returns>Objeto de tipo AuditoriaMantenimientoBO</returns> private AuditoriaMantenimientoBO getFiltroAuditoriaOrdenServicio(ETipoMantenimiento tipoMantenimiento) { AuditoriaMantenimientoBO filtro = new AuditoriaMantenimientoBO() { TipoMantenimiento = tipoMantenimiento, OrdenServicio = new OrdenServicioBO() { Id = vista.OrdenServicioID } }; return(filtro); }
/// <summary> /// Realiza la búsqueda de Auditorías de Mantenimientos Idealease por, el Técnico seleccionado y el Tipo de Mantenimiento seleccionado. /// Si el Tipo de Mantenimiento seleccionado es nulo, realiza la búsqueda para todos los Tipos de Mantenimientos y el Técnico seleccionado. /// </summary> /// <returns>Retorna True si encontró resultados, en caso contrario retorna False</returns> private bool BuscarAuditoriaPorTecnicos() { bool encontrado = false; List <AuditoriaMantenimientoTecnicoBO> auditoriasPorTecnico = new List <AuditoriaMantenimientoTecnicoBO>(); List <AuditoriaMantenimientoTecnicoBO> result = new List <AuditoriaMantenimientoTecnicoBO>(); if (vista.TipoMantenimiento == null) { for (int i = 1; i < 4; i++) { ETipoMantenimiento tipoMantenimiento = (ETipoMantenimiento)Enum.Parse(typeof(ETipoMantenimiento), i.ToString()); List <AuditoriaMantenimientoTecnicoBO> result2 = getAuditoriasPorTecnicos(auditoriasPorTecnico, tipoMantenimiento); if (result2 != null && result2.Count > 0) { result.AddRange(result2); } } } else { result = getAuditoriasPorTecnicos(auditoriasPorTecnico, vista.TipoMantenimiento.Value); } if (result.Count > 0) { auditoriasPorTecnico.AddRange(result); } if (auditoriasPorTecnico.Count > 0) { List <AuditoriaMantenimientoBO> auditorias = new List <AuditoriaMantenimientoBO>(); foreach (AuditoriaMantenimientoTecnicoBO auditoriaTecnico in auditoriasPorTecnico) { AuditoriaMantenimientoBO auditoria = ctrlAuditoria.ConsultarAuditoria(dataContext, auditoriaTecnico.AuditoriaMantenimiento).FirstOrDefault(); if (auditoria != null && auditoria.AuditoriaMantenimientoID != null && auditoria.OrdenServicio != null && auditoria.OrdenServicio.Id != null) { auditoria.OrdenServicio = getOrdenServicioCompleta((int)auditoria.OrdenServicio.Id); auditorias.Add(auditoria); } } if (auditorias.Count > 0) { vista.Auditorias = auditorias; encontrado = true; } } return(encontrado); }
/// <summary> /// Obtiene el maantenimiento que se va a auditar /// </summary> public void Consultar() { try { AuditoriaMantenimientoBO bo = new AuditoriaMantenimientoBO { OrdenServicio = this.vista.MantenimientoRecibido }; MantenimientoUnidadBO mantenimientoUnidad = new MantenimientoUnidadBO() { OrdenServicio = bo.OrdenServicio }; MantenimientoEquipoAliadoBO mantenimientoAliado = new MantenimientoEquipoAliadoBO() { OrdenServicio = bo.OrdenServicio }; List <MantenimientoUnidadBO> listMantenimientosUnidad = ctrMantenimientoUnidad.Consultar(dataContext, mantenimientoUnidad); if (listMantenimientosUnidad == null || listMantenimientosUnidad.Count == 0) { List <MantenimientoEquipoAliadoBO> listMantenimientoAliado = ctrMantenimientoEquipoAliado.Consultar(dataContext, mantenimientoAliado); if (listMantenimientoAliado != null && listMantenimientoAliado.Count > 0) { bo.TipoMantenimiento = (ETipoMantenimiento)listMantenimientoAliado.FirstOrDefault().TipoMantenimiento; } else { this.vista.MostrarMensaje("La búsqueda no produjo resultados", ETipoMensajeIU.INFORMACION, "No se encontraron coincidencias con los criterios ingresados. Verifique sus datos"); } } else { bo.TipoMantenimiento = (ETipoMantenimiento)listMantenimientosUnidad.FirstOrDefault().TipoMantenimiento; } bo = this.ComplementarDatos(bo); this.vista.Resultado = bo; this.DesplegarResultado(bo); } catch (Exception ex) { throw new Exception(this.nombreClase + ".Consultar:" + ex.Message); } }
/// <summary> /// Crea y obtiene un nuevo Filtro de AuditoriaMantenimientoBO con la Sucursal seleccionada, el Tipo de Mantenimiento seleccionado y la Orden de Servicio. /// Si la Orden de Servicio es nula, crea la nueva instancia de AuditoriaMantenimientoBO con la Sucursal seleccionada y el Tipo de Mantenimiento seleccionado, /// para realizar la búsqueda de las Auditorías Mantenimientos Idealease. /// </summary> /// <param name="tipoMantenimiento">Tipo de Mantenimiento Seleccionado.</param> /// <returns>Objeto de tipo AuditoriaMantenimientoBO</returns> private AuditoriaMantenimientoBO getFiltroSucursal(ETipoMantenimiento tipoMantenimiento) { AuditoriaMantenimientoBO filtro = new AuditoriaMantenimientoBO() { TipoMantenimiento = tipoMantenimiento, OrdenServicio = new OrdenServicioBO() { Adscripcion = new AdscripcionBO() { Sucursal = new SucursalBO() { Id = vista.SucursalID } } } }; if (vista.OrdenServicioID != null && vista.OrdenServicioID > 0) { filtro.OrdenServicio.Id = vista.OrdenServicioID; } return(filtro); }
/// <summary> /// Verifica que la auditoria este completa para poder imprimir /// </summary> /// <param name="auditoriaRecibida"></param> /// <returns></returns> private bool ValidarCampos(AuditoriaMantenimientoBO auditoriaRecibida, bool esGuardado = false) { int error = 0; bool resultado = auditoriaRecibida.DetalleAuditoria.Exists(x => x.ResultadoAuditoria == 0); if (resultado) { error = 1; } if (esGuardado && auditoriaRecibida.EvidenciaMantenimiento.DocumentoEvidencia == null) { error = 2; } if (string.IsNullOrEmpty(auditoriaRecibida.Observaciones)) { error = 3; } switch (error) { case 1: this.vista.MostrarMensaje("Todo las actividades de la auditoria deben tener una calificación", ETipoMensajeIU.ADVERTENCIA); break; case 2: this.vista.MostrarMensaje("Debe adjuntar un documento de evidencia a la auditoria", ETipoMensajeIU.ADVERTENCIA); break; case 3: this.vista.MostrarMensaje("Debe llenar el campo de observaciones de auditoria", ETipoMensajeIU.ADVERTENCIA); break; } return(error == 0); }
/// <summary> /// Mapea la interfaz de usuario al Objeto Auditoria /// </summary> /// <returns></returns> private AuditoriaMantenimientoBO InterfazUsuarioADato() { if (this.vista.MantenimientoRecibido == null) { throw new Exception(".InterfazUsuarioADato: El folio de la orden de servicio no puede ser nulo"); } AuditoriaMantenimientoBO bo = new AuditoriaMantenimientoBO(); bo.EvidenciaMantenimiento = new EvidenciaAuditoriaMantenimientoBO(); bo.OrdenServicio = this.vista.Resultado.OrdenServicio; if (this.vista.TipoMantenimiento != null) { if (this.vista.TipoMantenimiento.Trim() == ETipoMantenimiento.PMA.ToString()) { bo.TipoMantenimiento = ETipoMantenimiento.PMA; } if (this.vista.TipoMantenimiento.Trim() == ETipoMantenimiento.PMB.ToString()) { bo.TipoMantenimiento = ETipoMantenimiento.PMB; } if (this.vista.TipoMantenimiento.Trim() == ETipoMantenimiento.PMC.ToString()) { bo.TipoMantenimiento = ETipoMantenimiento.PMC; } } if (this.vista.Tecnicos != null && this.vista.Tecnicos.Count > 0) { bo.Tecnicos = this.vista.Tecnicos; } foreach (GridViewRow item in this.vista.ActividadesAuditoria.Rows) { DetalleAuditoriaMantenimientoBO detalle = new DetalleAuditoriaMantenimientoBO(); detalle.PosicionTrabajoPaquete = new PosicionTrabajoPaqueteBO(); detalle.PosicionTrabajoPaquete.ConfiguracionPosicionTrabajo = new ConfiguracionPosicionTrabajoBO(); detalle.PosicionTrabajoPaquete.ConfiguracionPosicionTrabajo.DescriptorTrabajo = new DescriptorTrabajoBO(); Label NombreActividad = item.FindControl("lbActividadAuditoria") as Label; Label idActividad = item.FindControl("lbActividadID") as Label; Label lblCriterio = item.FindControl("lbCriterioAuditoria") as Label; CheckBox chbxSatifactorio = item.FindControl("chbxSatisfactorio") as CheckBox; CheckBox chbxReparar = item.FindControl("chbxReparar") as CheckBox; CheckBox chbxAjustado = item.FindControl("chbxAjustado") as CheckBox; TextBox comentarioactividad = item.FindControl("txbComentarioActividad") as TextBox; if (chbxSatifactorio.Checked == true) { detalle.ResultadoAuditoria = EResultadoAuditoria.Satisfactoria; } if (chbxReparar.Checked == true) { detalle.ResultadoAuditoria = EResultadoAuditoria.Reparar; } if (chbxAjustado.Checked == true) { detalle.ResultadoAuditoria = EResultadoAuditoria.Ajustado; } detalle.Comentarios = comentarioactividad.Text.ToUpper(); detalle.Criterio = lblCriterio.Text.ToUpper(); detalle.PosicionTrabajoPaquete.ConfiguracionPosicionTrabajo.DescriptorTrabajo.Nombre = NombreActividad.Text; detalle.PosicionTrabajoPaquete.ConfiguracionPosicionTrabajo.Id = int.Parse(idActividad.Text); bo.DetalleAuditoria.Add(detalle); bo.EvidenciaMantenimiento.DocumentoEvidencia = this.vista.Evidencia.HasFile ? this.vista.Evidencia.FileBytes : null; bo.EvidenciaMantenimiento.Nombre = this.vista.Evidencia.HasFile ? this.vista.Evidencia.FileName : string.Empty;; bo.Observaciones = this.vista.Observaciones.ToUpper(); } return(bo); }
/// <summary> /// Complementa los datos del mantenimiento para la crearcion del objeto de auditoria /// </summary> /// <param name="AuditoriaMantenimiento"></param> /// <returns></returns> private AuditoriaMantenimientoBO ComplementarDatos(AuditoriaMantenimientoBO AuditoriaMantenimiento) { AuditoriaMantenimiento = this.ctrAuditoriaMantenimiento.ComplementarAuditoria(dataContext, AuditoriaMantenimiento); if (AuditoriaMantenimiento.OrdenServicio.Unidad.ConfiguracionModeloMotorizacion.Modelo != null) { ConfiguracionAuditoriaMantenimientoBO configuracionAuditoria = new ConfiguracionAuditoriaMantenimientoBO() { Sucursal = AuditoriaMantenimiento.OrdenServicio.AdscripcionServicio.Sucursal, Modelo = AuditoriaMantenimiento.OrdenServicio.Unidad.ConfiguracionModeloMotorizacion.Modelo, Taller = AuditoriaMantenimiento.OrdenServicio.AdscripcionServicio.Taller, TipoMantenimiento = AuditoriaMantenimiento.TipoMantenimiento }; configuracionAuditoria = this.ctrConfiguracionAuditoria.Consultar(dataContext, configuracionAuditoria).FirstOrDefault(); if (configuracionAuditoria != null) { foreach (var item in AuditoriaMantenimiento.DetalleAuditoria) { var DetalleConfig = configuracionAuditoria.DetalleConfiguracion.Find(x => x.ConfiguracionPosicionTrabajo.Id == item.PosicionTrabajoPaquete.ConfiguracionPosicionTrabajo.Id); if (DetalleConfig != null) { item.Criterio = DetalleConfig.Criterio; } } List <DetalleAuditoriaMantenimientoBO> listaPosicionesAleatorias = new List <DetalleAuditoriaMantenimientoBO>(); List <DetalleAuditoriaMantenimientoBO> DetalleObligatorias = new List <DetalleAuditoriaMantenimientoBO>(); foreach (var item in AuditoriaMantenimiento.DetalleAuditoria) { if (configuracionAuditoria.DetalleConfiguracion.Exists(x => x.ConfiguracionPosicionTrabajo.Id == item.PosicionTrabajoPaquete.ConfiguracionPosicionTrabajo.Id && x.Obligatorio == false) == true) { listaPosicionesAleatorias.Add(item); } else if (configuracionAuditoria.DetalleConfiguracion.Exists(x => x.ConfiguracionPosicionTrabajo.Id == item.PosicionTrabajoPaquete.ConfiguracionPosicionTrabajo.Id && x.Obligatorio == true) == true) { DetalleObligatorias.Add(item); } } AuditoriaMantenimiento.DetalleAuditoria = DetalleObligatorias; if (listaPosicionesAleatorias != null && listaPosicionesAleatorias.Count > 0) { Random IndexRandom = new Random(); int indexMaximo = listaPosicionesAleatorias.Count; int iteraciones = (int)configuracionAuditoria.NumeroActividadesAleatorias; for (int i = 0; i < iteraciones; i++) { bool bandera; int index; do { index = IndexRandom.Next(0, indexMaximo); bandera = AuditoriaMantenimiento.DetalleAuditoria.Exists(x => x.PosicionTrabajoPaquete.ConfiguracionPosicionTrabajo.Id == listaPosicionesAleatorias[index].PosicionTrabajoPaquete.ConfiguracionPosicionTrabajo.Id); } while (bandera == true); AuditoriaMantenimiento.DetalleAuditoria.Add(listaPosicionesAleatorias[index]); } } } else { this.vista.MostrarMensaje("No se encontro una configuracion de auditoria para el modelo, taller y tipo de mantenimiento de esta unidad", ETipoMensajeIU.ERROR); } } else { this.vista.MostrarMensaje("No se encontro la unidad de esta orden de servicio", ETipoMensajeIU.ERROR); } return(AuditoriaMantenimiento); }
/// <summary> /// Realiza la redirección al visor de Consulta de Auditoría Mantenimiento Idealease. /// </summary> /// <param name="sender">Objeto que desencadenó el evento.</param> /// <param name="e">Argumento asociado al evento.</param> protected void btnFinalizar_Click(Object sender, EventArgs e) { Auditoria = new AuditoriaMantenimientoBO(); RedirigirAConsultaAuditoria(); }