/// <summary> /// Realiza la impresión del Historico de Pagos para una referencia de Contrato Seleccionada /// </summary> public void ImprimirPagos() { try { var numeroContrato = Vista.NumeroContrato; // Validar la Informacion de la Referencia de Contrato Seleccionada var msg = ValidarDatos(numeroContrato); if (!string.IsNullOrEmpty(msg)) { Vista.MostrarMensaje(msg, ETipoMensajeIU.ADVERTENCIA); return; } // Validar la existencia de folio del contrato var contratoBR = new ContratoBR(); var contratos = contratoBR.Consultar(dataContext, new ContratoProxyBO { NumeroContrato = numeroContrato.ToUpper() }); if (!contratos.Any()) { Vista.MostrarMensaje("No existe un Contrato con el Folio proporcionado.", ETipoMensajeIU.ADVERTENCIA); return; } var referencia = contratos.First(); var usuario = new UsuarioBO { Id = Vista.UsuarioId }; var unidadOperativa = new UnidadOperativaBO { Id = Vista.UnidadOperativaId }; var sucursales = ConsultarSucursales(usuario, unidadOperativa); // Validar que el contrato pertenezca a una sucursal del usuario if (sucursales.All(x => x.Id != referencia.Sucursal.Id)) { Vista.MostrarMensaje("El Folio del Contrato proporcionado pertence a una sucursal no asignada al usuario.", ETipoMensajeIU.ADVERTENCIA); return; } // Validar la existencia de Pagos del Contrato int conteo = 0; ReferenciaContratoBO referenciaContrato = new ReferenciaContratoBO { ReferenciaContratoID = referencia.ContratoID, UnidadOperativa = unidadOperativa }; switch (referencia.Tipo) { case ETipoContrato.RO: case ETipoContrato.RE: case ETipoContrato.ROC: PagoContratoPSLBOF pagoPsl = new PagoContratoPSLBOF() { ReferenciaContrato = referenciaContrato, Sucursales = sucursales }; PagoContratoPSLBR pagosPslBR = new PagoContratoPSLBR(); conteo = pagosPslBR.ContarPagos(dataContext, pagoPsl); break; default: PagoUnidadContratoBOF pago = new PagoUnidadContratoBOF { ReferenciaContrato = referenciaContrato, Sucursales = sucursales }; PagoUnidadContratoBR pagosBR = new PagoUnidadContratoBR(); conteo = pagosBR.ContarPagos(dataContext, pago); break; } if (conteo == 0) { Vista.MostrarMensaje("El contrato no cuenta con pagos generados.", ETipoMensajeIU.ADVERTENCIA); return; } //Obtener Datos de Reporte var adscripcion = new AdscripcionBO { UnidadOperativa = unidadOperativa }; var seguridad = new SeguridadBO(Guid.Empty, usuario, adscripcion); var imprmirPagosBR = new ImprimirPagosBR(); var datosReporte = imprmirPagosBR.ObtenerDatosHistoricoPagos(dataContext, referenciaContrato, unidadOperativa, seguridad, this.Vista.URLLogoEmpresa); Vista.EstablecerPaqueteNavegacionImprimir(codigoImprimirHistorico, datosReporte); Vista.IrAImprimirHistorico(); } catch (Exception ex) { var strMetodo = new StackFrame().GetMethod().Name; var strMsg = string.Format("{0}.{1}: {2}", nombreClase, strMetodo, ex.Message); Vista.MostrarMensaje("Inconsistencias al Desplegar los Pagos del Contrato", ETipoMensajeIU.ERROR, strMsg); } }
/// <summary> /// Consulta los Contratos en CURSO segun los filtros /// </summary> public void Consultar() { try { var contratoBo = (ContratoProxyBO)this.InterfazUsuarioDato(); contratoBo.Estatus = EEstatusContrato.EnCurso; var listaContratos = controlador.Consultar(this.dataContext, contratoBo); if (!listaContratos.Any()) { this.vista.PresentarResultadoConsulta(listaContratos.ConvertAll(x => (ContratoBO)x)); 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 (ContratoProxyBO 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.UnidadOperativaID } }); 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.UnidadOperativaID } }); 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(); } } } var contratosRd = listaContratos.Where(x => x.Tipo == ETipoContrato.RD).ToList().OrderBy(y => y.NumeroContrato).ToList(); var contratosFsl = listaContratos.Where(x => x.Tipo == ETipoContrato.FSL).ToList().OrderBy(y => y.NumeroContrato).ToList(); var contratosCm = listaContratos.Where(x => x.Tipo == ETipoContrato.CM).ToList().OrderBy(y => y.NumeroContrato).ToList(); var contratosSd = listaContratos.Where(x => x.Tipo == ETipoContrato.SD).ToList().OrderBy(y => y.NumeroContrato).ToList(); listaContratos.Clear(); listaContratos.AddRange(contratosRd); listaContratos.AddRange(contratosFsl); listaContratos.AddRange(contratosCm); listaContratos.AddRange(contratosSd); this.vista.PresentarResultadoConsulta(listaContratos.ConvertAll(x => (ContratoBO)x)); 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); } }