/// <summary> /// Crea y obtiene el Mantenimiento Unidad Idealease completo. /// </summary> /// <param name="mantenimiento">El filtro para obtener el Mantenimiento Unidad Idealease.</param> /// <returns>Objeto de tipo MantenimientoUnidadBO</returns> private MantenimientoUnidadBO getMantenimientoCompleto(MantenimientoUnidadBO mantenimiento) { MantenimientoUnidadBO mantenimientoCompleto = ctrlMantenimiento.Consultar(dataContext, new MantenimientoUnidadBO() { MantenimientoUnidadId = mantenimiento.MantenimientoUnidadId }).FirstOrDefault(); mantenimientoCompleto.IngresoUnidad.Unidad = new BPMO.SDNI.Equipos.BR.UnidadBR().ConsultarCompleto(dataContext, mantenimientoCompleto.IngresoUnidad.Unidad).FirstOrDefault(); if (mantenimientoCompleto.FechaSalida == null) { mantenimiento.FechaSalida = DateTime.Now; } else { mantenimiento.FechaSalida = mantenimientoCompleto.FechaSalida; } mantenimientoCompleto.MantenimientoEquiposAliados = ctrlMantenimiento.ConsultarMantenimientosEquiposAliados(dataContext, new MantenimientoUnidadBO() { MantenimientoUnidadId = mantenimiento.MantenimientoUnidadId }).MantenimientoEquiposAliados; foreach (MantenimientoEquipoAliadoBO equipoAliado in mantenimientoCompleto.MantenimientoEquiposAliados) { if (equipoAliado.TipoServicio.Nombre == null) { equipoAliado.TipoServicio.Nombre = "N/A"; } } return(mantenimientoCompleto); }
/// <summary> /// Realiza la búsqueda del Mantenimiento Unidad Idealease por la Orden de Servicio E-Lider. Obtiene los Mantenimientos Equipos Aliados Idealease /// del Mantenimiento Unidad Idealease. /// </summary> /// <param name="ordenServicioElider">La Orden de Servicio E-Lider</param> /// <returns>Retorna True si encontró resultados, en caso contrario retorna False.</returns> private bool BuscarUnidadPorOrdenElider(OrdenServicioBO ordenServicioElider) { Boolean encontrado = false; MantenimientoUnidadBO filtroMantenimientoUnidadIdealease = new MantenimientoUnidadBO() { OrdenServicio = ordenServicioElider }; MantenimientoUnidadBO mantenimientoUnidadIdealease = ctrlMantenimientoUnidadIdealease.Consultar(dataContext, filtroMantenimientoUnidadIdealease).FirstOrDefault(); if (mantenimientoUnidadIdealease != null && mantenimientoUnidadIdealease.MantenimientoUnidadId != null) { BPMO.SDNI.Equipos.BO.UnidadBO filtroUnidadIdealease = new BPMO.SDNI.Equipos.BO.UnidadBO() { UnidadID = mantenimientoUnidadIdealease.IngresoUnidad.Unidad.UnidadID }; BPMO.SDNI.Equipos.BR.UnidadBR ctrlUnidadIdealease = new BPMO.SDNI.Equipos.BR.UnidadBR(); BPMO.SDNI.Equipos.BO.UnidadBO unidadIdealease = ctrlUnidadIdealease.Consultar(dataContext, filtroUnidadIdealease).FirstOrDefault(); if (unidadIdealease != null && unidadIdealease.UnidadID != null) { if (unidadIdealease.Modelo == null || unidadIdealease.Modelo.Id == null) { BPMO.SDNI.Equipos.BO.UnidadBO unidadCompleta = new BPMO.SDNI.Equipos.BO.UnidadBO(unidadIdealease.ActaNacimiento); unidadIdealease.Modelo = unidadCompleta.Modelo; } mantenimientoUnidadIdealease.IngresoUnidad.Unidad = unidadIdealease; mantenimientoUnidadIdealease.OrdenServicio = ordenServicioElider; vista.MantenimientosUnidad = new List <MantenimientoUnidadBO>(); vista.MantenimientosUnidad.Add(mantenimientoUnidadIdealease); 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> /// 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"); } }