public RegistrarCuentaClientePRE(IRegistrarCuentaClienteVIS vista, IucDatosObligadoSolidarioVIS vistaObligado, IucDatosRepresentanteLegalVIS vistaRepresentante, IucDatosRepresentanteLegalVIS vistaRepresentantesObligado) { try { this.vista = vista; this.vistaObligado = vistaObligado; this.vistaRepresentante = vistaRepresentante; this.vistaRepresentantesObligado = vistaRepresentantesObligado; presentadorObligado = new ucDatosObligadoSolidarioPRE(vistaObligado); presentadorRepresentante = new ucDatosRepresentanteLegalPRE(vistaRepresentante); presentadorRepresentantesObligado = new ucDatosRepresentanteLegalPRE(vistaRepresentantesObligado); if (this.vista.UnidadOperativa.Id == (int)ETipoEmpresa.Generacion || this.vista.UnidadOperativa.Id == (int)ETipoEmpresa.Equinova || this.vista.UnidadOperativa.Id == (int)ETipoEmpresa.Construccion) { presentadorRepresentantesObligado.HabilitarCampos(); } clienteBR = new CuentaClienteIdealeaseBR(); dctx = FacadeBR.ObtenerConexion(); } catch (Exception ex) { vista.MostrarMensaje("Inconsistencias en los parámetros de configuración", ETipoMensajeIU.ERROR, nombreClase + ".RegistrarClientePRE: " + ex.Message); } }
/// <summary> /// Obtiene la lista de Contactos Cliente Idealease de acuerdo al Cliente Idealease de la Unidad, la Sucursal de la /// Unidad Idealease y si recibe correo. En caso de no encontrar Contactos Cliente Idealease se toma el Correo configurado /// del Cliente Idealease, en caso de no tener un correo configurado despliega un mensaje de error. /// </summary> private void CargarDatosContactoCliente() { ClienteBO cliente = mantenimientoSeleccionado.IngresoUnidad.Unidad.Cliente; CuentaClienteIdealeaseBR ctrlCuentaIdealease = new CuentaClienteIdealeaseBR(); CuentaClienteIdealeaseBO cuentaIdealease = ctrlCuentaIdealease.Consultar(dataContext, getFiltroCuentaClienteIdealease(cliente)).FirstOrDefault(); string nombreCliente = cliente.NombreCompleto != null ? (" " + cliente.NombreCompleto) : ""; if (cuentaIdealease != null && cuentaIdealease.Id != null) { ContactoClienteBR ctrlContactoCliente = new ContactoClienteBR(); List <ContactoClienteBO> contactos = ctrlContactoCliente.Consultar(dataContext, getFiltroContactoCliente(cuentaIdealease, mantenimientoSeleccionado.IngresoUnidad.Unidad.Sucursal)); if (contactos.Count > 0) { List <DetalleContactoClienteBO> detalles = new List <DetalleContactoClienteBO>(); foreach (ContactoClienteBO contacto in contactos) { ContactoClienteBO c = ctrlContactoCliente.ConsultarCompleto(dataContext, contacto).FirstOrDefault(); foreach (DetalleContactoClienteBO detalle in c.Detalles) { if (detalle.RecibeCorreoElectronico.Value) { detalles.Add(detalle); } } } if (detalles.Count == 0) { vista.MostrarMensaje("El Cliente Idealease " + nombreCliente + " no tiene algún contacto cliente para recibir correos electronicos.", ETipoMensajeIU.ADVERTENCIA); } else { vista.ContactoClienteSeleccionado = detalles.First(); } vista.ContactosCliente = detalles; } else { if (cuentaIdealease.Correo == null || cuentaIdealease.Correo.Trim() == null || cuentaIdealease.Correo.Equals("")) { vista.MostrarMensaje("El Cliente Idealease" + nombreCliente + " no tiene un Correo configurado.", ETipoMensajeIU.ADVERTENCIA); } DetalleContactoClienteBO contacto = new DetalleContactoClienteBO() { Nombre = cuentaIdealease.Nombre != null ? cuentaIdealease.Nombre : "", Correo = cuentaIdealease.Correo, }; vista.ContactoClienteSeleccionado = contacto; } vista.CargarDatosContactoCliente(); } else { vista.ContactoClienteSeleccionado = null; vista.MostrarMensaje("El Cliente" + nombreCliente + " no tiene una Cuenta Cliente Idealease.", ETipoMensajeIU.ADVERTENCIA); } }
/// <summary> /// Agrega un Obligados Solidario al Contrato /// </summary> /// <param name="obligado">Obligado Solidario a Agregar al Contrato</param> /// <param name="representantes">Representantes Legales del Obligado Solidario</param> public void AgregarObligadoSolidarioContrato(ObligadoSolidarioBO obligado, List <RepresentanteLegalBO> representantes) { try { if (representantes == null) { vista.MostrarMensaje("Es necesario seleccionar al menos un representante legal, para el obligado solidarío.", ETipoMensajeIU.ADVERTENCIA); } if (representantes.Count <= 0) { vista.MostrarMensaje("Es necesario seleccionar al menos un representante legal, para el obligado solidarío.", ETipoMensajeIU.ADVERTENCIA); } if (obligado != null && obligado.Id != null) { if (vista.ObligadosSolidariosContrato.Find(obl => obligado.Id == obl.Id) == null) { if (obligado.DireccionPersona == null || string.IsNullOrEmpty(obligado.DireccionPersona.Calle)) { var cciBR = new CuentaClienteIdealeaseBR(); List <ObligadoSolidarioBO> obls = cciBR.ConsultarObligadosSolidarios(dataContext, obligado, new CuentaClienteIdealeaseBO()); ObligadoSolidarioBO encontrado = obls.Find(ob => ob.Id == obligado.Id); if (encontrado != null) { obligado = encontrado; } } //SC0005 ((ObligadoSolidarioMoralBO)obligado).Representantes = representantes; var Obligados = new List <ObligadoSolidarioBO>(vista.ObligadosSolidariosContrato) { obligado }; vista.ObligadosSolidariosContrato = Obligados; } else { vista.MostrarMensaje("El Obligado Solidario seleccionado ya se encuentra asignado al contrato.", ETipoMensajeIU.ADVERTENCIA); } } else { vista.MostrarMensaje("Se requiere de un Obligado Solidario seleccionado valido para agregar al contrato.", ETipoMensajeIU.ADVERTENCIA); } } catch (Exception ex) { vista.MostrarMensaje("Inconsistencias al intentar agregar un Obligado Solidario al contrato.", ETipoMensajeIU.ERROR, NombreClase + ".AgregarObligadoSolidarioContrato :" + ex.Message); } }
/// <summary> /// Obtiene nuevamente el cliente de la unidad y consulta los contactos del cliente /// </summary> public void ActualizarContactosCliente() { int?clienteId = this.vista.ClienteID; if (clienteId != null) { List <ContactoClienteBO> contactosCliente = new List <ContactoClienteBO>(); var clienteIdealeaseBR = new CuentaClienteIdealeaseBR(); var cliente = clienteIdealeaseBR.Consultar(dctx, new CuentaClienteIdealeaseBO() { Cliente = new ClienteBO() { Id = clienteId }, UnidadOperativa = new UnidadOperativaBO() { Id = this.vista.UnidadOperativaID } }).FirstOrDefault(); if (cliente != null) { bool?activo = this.vista.CitaMantenimientoID != null ? null : (bool?)true; var contactos = new ContactoClienteBR().ConsultarCompleto(dctx, new ContactoClienteBO() { CuentaClienteIdealease = cliente, Activo = activo, Sucursal = new SucursalBO() { Id = this.vista.SucursalID } }); 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); } } this.vista.ListadoContactosCliente = contactosCliente; this.vista.EstablecerContactosCliente(); } }
public ConsultarCuentaClientePRE(IConsultarCuentaClienteVIS vista) { try { this.vista = vista; dctx = FacadeBR.ObtenerConexion(); clienteBR = new CuentaClienteIdealeaseBR(); } catch (Exception ex) { this.MostrarMensaje("Inconsistencias en la configuracion", ETipoMensajeIU.ERROR, nombreClase + ex.Message); } }
public DetalleCuentaClientePRE(IDetalleCuentaClienteVIS vista, IucDatosRepresentanteLegalVIS vistaRepresentante) { try { this.vista = vista; this.vistaRepresentante = vistaRepresentante; dctx = FacadeBR.ObtenerConexion(); clienteBR = new CuentaClienteIdealeaseBR(); presentadorRepresentante = new ucDatosRepresentanteLegalPRE(vistaRepresentante); } catch (Exception ex) { this.MostrarMensaje("Inconsistencias en la configuración", ETipoMensajeIU.ERROR, nombreClase + ex.Message); } }
public void ObtenerRepresentanteOS(ObligadoSolidarioBO obligado) { var cuentaBR = new CuentaClienteIdealeaseBR(); try { if (obligado != null && obligado.Id != null) { List <ObligadoSolidarioBO> obligs = cuentaBR.ConsultarObligadosSolidarios(dataContext, obligado, new CuentaClienteIdealeaseBO { Id = vista.CuentaClienteID }); if (obligs == null) { return; } if (obligs.Count <= 0) { return; } if (obligs.Count > 1) { throw new Exception("La consulta ha devuelto más de un valor, esto podría significar un conflicto en el sistema, verifique su información por favor"); } ObligadoSolidarioBO oblig = obligs[0]; if (oblig.TipoObligado == ETipoObligadoSolidario.Moral) { vista.RepresentantesObligado = cuentaBR.ConsultarRepresentantesLegales(dataContext, new CuentaClienteIdealeaseBO { Id = vista.CuentaClienteID }, obligado, new RepresentanteLegalBO { Activo = true }); vista.MostrarRepresentantesObligados(true); } else { vista.RepresentantesObligado = new List <RepresentanteLegalBO>(); } } } catch (Exception ex) { vista.MostrarMensaje("Inconsistencias al intentar agregar un Obligado Solidario al contrato.", ETipoMensajeIU.ERROR, NombreClase + ".ObtenerRepresentanteOS :" + ex.Message); } }
public ObligadoSolidarioBO ConsultarObligadoSolidario(ObligadoSolidarioBO obligado) { ObligadoSolidarioBO obligadoa = null; try { if (obligado != null && obligado.Id != null) { if (vista.ObligadosSolidariosContrato.Find(obl => obligado.Id == obl.Id) == null) { if (obligado.DireccionPersona == null || string.IsNullOrEmpty(obligado.DireccionPersona.Calle)) { var cciBR = new CuentaClienteIdealeaseBR(); List <ObligadoSolidarioBO> obls = cciBR.ConsultarObligadosSolidarios(dataContext, obligado, new CuentaClienteIdealeaseBO()); ObligadoSolidarioBO encontrado = obls.Find(ob => ob.Id == obligado.Id); if (encontrado != null) { obligadoa = encontrado; } } } else { vista.MostrarMensaje("El Obligado Solidario seleccionado ya se encuentra asignado al contrato.", ETipoMensajeIU.ADVERTENCIA); } } else { vista.MostrarMensaje("Se requiere de un Obligado Solidario seleccionado valido para agregar al contrato.", ETipoMensajeIU.ADVERTENCIA); } return(obligadoa); } catch (Exception ex) { throw new Exception("Inconsistencias al intentar consultar un Obligado Solidario al contrato." + ex.Message); } }
/// <summary> /// Agrega un Representante Legal al Contrato al Contrato /// </summary> /// <param name="representante">Representante Lega a agregar</param> public void AgregarRepresentanteLegalContrato(RepresentanteLegalBO representante) { try { if (representante != null && representante.Id != null) { if (vista.RepresentantesLegalesContrato.Find(obl => representante.Id == obl.Id) == null) { var Representantes = new List <RepresentanteLegalBO>(vista.RepresentantesLegalesContrato); var cliente = new CuentaClienteIdealeaseBO { Id = vista.CuentaClienteID, Cliente = new ClienteBO { Id = vista.ClienteID } }; var cciBR = new CuentaClienteIdealeaseBR(); representante = cciBR.ConsultarRepresentantesLegales(dataContext, new RepresentanteLegalBO { Id = representante.Id }, cliente ) .Find(rep => rep.Id == representante.Id); // Si es Depositario if (representante.EsDepositario == true) { // Reestablece el valor de es depositario en los representantes legales. foreach (var item in vista.ListadoRepresentantesLegales) { var replegal = Representantes.Find(rep => rep.Id == item.Id); if (replegal != null) { replegal.EsDepositario = item.EsDepositario; } } } Representantes.Add(representante); vista.RepresentantesLegalesContrato = Representantes; } else { vista.MostrarMensaje("El Representante Legal seleccionado ya se encuentra asignado al contrato.", ETipoMensajeIU.ADVERTENCIA); } } else { vista.MostrarMensaje("Se requiere de un Representante Legal seleccionado valido para agregar al contrato.", ETipoMensajeIU.ADVERTENCIA); } } catch (Exception ex) { vista.MostrarMensaje("Inconsistencias al intertar agregar un Representante Legal al Contrato", ETipoMensajeIU.ERROR, NombreClase + ".AgregarRepresentanteLegalContrato: " + ex.Message); } }
/// <summary> /// Obtiene y Muesta el listado de Representantes Legales y Obligados Solidarios /// </summary> private void DesplegarPersonasCliente() { try { // Variables var cciBR = new CuentaClienteIdealeaseBR(); vista.ListadoObligadosSolidarios = null; vista.ListadoRepresentantesLegales = null; //Inicializa los Representantes Legales del Contrato vista.RepresentantesLegalesContrato = null; //Inicializa los Obligados Solidarios del Contrato vista.ObligadosSolidariosContrato = null; //Inicializar los avales vista.AvalesTotales = null; vista.AvalesSeleccionados = null; vista.ActualizarAvales(); if (vista.UnidadOperativa == null) { throw new Exception("Se requiere de la unidad operativa para realizar la operación"); } // Se consultan y obtiene el Cliente Completo if (vista.CuentaClienteID != null) { var cliente = new CuentaClienteIdealeaseBO { Id = vista.CuentaClienteID, Cliente = new ClienteBO { Id = vista.ClienteID }, UnidadOperativa = vista.UnidadOperativa }; List <CuentaClienteIdealeaseBO> listado = cciBR.ConsultarCompleto(dataContext, cliente); cliente = listado.Find(cli => cli.Id == vista.CuentaClienteID); if (cliente != null) { var representantesActivos = new List <PersonaBO>(cliente.RepresentantesLegales.Where( persona => persona.Activo == true)).ConvertAll(s => (RepresentanteLegalBO)s); foreach (var representantesActivo in representantesActivos.Where(representantesActivo => representantesActivo.EsDepositario == true)) { representantesActivo.Nombre = "(D) " + representantesActivo.Nombre; } vista.HabilitarListadoRepresentantesLegales(representantesActivos.Count > 0); vista.HabilitarAgregarRepresentanteLegal(representantesActivos.Count > 0); vista.ListadoRepresentantesLegales = representantesActivos; var obligadosActivos = new List <PersonaBO>(cliente.ObligadosSolidarios.Where(persona => persona.Activo == true)).ConvertAll(s => (ObligadoSolidarioBO)s); vista.HabilitarListadoObligadosSolidarios(obligadosActivos.Count > 0); vista.HabilitarAgregarObligadoSolidario(obligadosActivos.Count > 0); vista.ListadoObligadosSolidarios = obligadosActivos.ConvertAll(s => (ObligadoSolidarioBO)s); vista.HabilitarObligadosComoAvales(obligadosActivos.Count > 0); //Mostrar Avales List <AvalBO> lstAvales = null; if (obligadosActivos != null) { lstAvales = obligadosActivos.ConvertAll(s => this.ObligadoAAval(s)); } this.vista.AvalesTotales = lstAvales; this.vista.AvalesSeleccionados = null; //Sólo permite seleccionar avales si el cliente ha sido seleccionado this.vista.PermitirSeleccionarAvales(this.vista.ModoEditar && this.vista.CuentaClienteID != null); //Sólo permite agregar avales si el cliente ha sido seleccionado y tiene obligados solidarios configurados this.vista.PermitirAgregarAvales(this.vista.ModoEditar && this.vista.AvalesTotales != null && this.vista.AvalesTotales.Count > 0); vista.ActualizarAvales(); if (vista.SoloRepresentantes != null && vista.SoloRepresentantes == false) { if (vista.ObligadosComoAvales != null && vista.ObligadosComoAvales == false) { vista.MostrarAvales(true); } } } else { throw new Exception("El cliente seleccionado no es valido en el sistema."); } } else { throw new Exception("Se requiere seleccionar un Cliente para obtener los listados de Representantes Legales y Obligados Solidarios."); } } catch (Exception ex) { vista.MostrarMensaje("Inconsistencias al presentar la información", ETipoMensajeIU.ERROR, NombreClase + ".MostrarPersonasCliente : " + ex.Message); } }
/// <summary> /// Consulta los Contratos de RD en CURSO segun los filtros /// </summary> public void Consultar() { try { var contratoBo = (ContratoRDBO)this.InterfazUsuarioDato(); contratoBo.Estatus = EEstatusContrato.EnCurso; var listaContratos = controlador.Consultar(this.dataContext, contratoBo); if (!listaContratos.Any()) { this.vista.PresentarResultadoConsulta(listaContratos); this.vista.MostrarMensaje("La búsqueda no produjo resultados", ETipoMensajeIU.INFORMACION, "No se encontraron coincidencias con los criterios ingresados. Verifique sus datos"); return; } String sucursalesNoEncontradas = String.Empty; String clientesNoEncontrados = String.Empty; var listaClientes = new List <CuentaClienteIdealeaseBO>(); CuentaClienteIdealeaseBR cuentaClienteBr = new CuentaClienteIdealeaseBR(); var listaSucursales = new List <SucursalBO>(); foreach (ContratoRDBO bo in listaContratos) { if (listaSucursales.Any(x => x.Id == bo.Sucursal.Id)) { bo.Sucursal = listaSucursales.First(x => x.Id == bo.Sucursal.Id); } else { var listaTempSucursal = FacadeBR.ConsultarSucursal(this.dataContext, new SucursalBO() { Id = bo.Sucursal.Id, UnidadOperativa = new UnidadOperativaBO { Id = this.vista.UnidadOperativa.Id } }); if (listaTempSucursal.Any()) { listaSucursales.Add(listaTempSucursal.First()); bo.Sucursal = listaTempSucursal.First(); } else { sucursalesNoEncontradas = String.IsNullOrEmpty(sucursalesNoEncontradas) ? bo.Sucursal.Id.Value.ToString() : sucursalesNoEncontradas + ", " + bo.Sucursal.Id.Value.ToString(); } } if (listaClientes.Any(x => x.Id == bo.Cliente.Id)) { bo.Cliente = listaClientes.First(x => x.Id == bo.Cliente.Id); } else { var listaTempClientes = cuentaClienteBr.Consultar(this.dataContext, new CuentaClienteIdealeaseBO() { Id = bo.Cliente.Id, UnidadOperativa = new UnidadOperativaBO() { Id = this.vista.UnidadOperativa.Id } }); if (listaTempClientes.Any()) { listaClientes.Add(listaTempClientes.First()); bo.Cliente = listaTempClientes.First(); } else { clientesNoEncontrados = String.IsNullOrEmpty(clientesNoEncontrados) ? bo.Cliente.Id.Value.ToString() : clientesNoEncontrados + ", " + bo.Cliente.Id.Value.ToString(); } } } listaContratos = listaContratos.OrderBy(y => y.NumeroContrato).ToList(); this.vista.PresentarResultadoConsulta(listaContratos); string mensaje = String.Empty; if (!String.IsNullOrEmpty(sucursalesNoEncontradas)) { mensaje += "No se encontraron las Sucursales con los siguientes identificadores: " + sucursalesNoEncontradas; } if (!String.IsNullOrEmpty(clientesNoEncontrados)) { mensaje += "No se encontraron los Clientes con los siguientes identificadores (CuentaClienteId): " + clientesNoEncontrados; } if (!String.IsNullOrEmpty(mensaje)) { this.vista.MostrarMensaje(mensaje, ETipoMensajeIU.INFORMACION); } } catch (Exception ex) { throw new Exception(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(CitaMantenimientoBO citaMantenimiento) { if (citaMantenimiento != null) { CitaMantenimientoBO cita = citaMantenimiento; 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 }); } } List <ContactoClienteBO> contactosCliente = new List <ContactoClienteBO>(); 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); } (cita.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad.Cliente.NombreCompleto = cliente.Cliente.NombreCompleto; } else { var clienteServicio = FacadeBR.ConsultarCliente(dctx, new ClienteBO() { Id = (cita.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad.Cliente.Id }).FirstOrDefault(); if (clienteServicio != null) { (cita.MantenimientoProgramado as MantenimientoProgramadoUnidadBO).Unidad.Cliente.NombreCompleto = clienteServicio.NombreCompleto; } } } this.ObjetoAInterfazUsuario(cita, mantenimientosEA, contactosCliente, tramitePlacaFederal != null && !String.IsNullOrEmpty(tramitePlacaFederal.Resultado) ? tramitePlacaFederal.Resultado : String.Empty, tramitePlacaEstatal != null && !String.IsNullOrEmpty(tramitePlacaEstatal.Resultado) ? tramitePlacaEstatal.Resultado : String.Empty); } else { throw new Exception("No hay citas de mantenimiento para presentar"); } }
/// <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"); } }