/// <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);
            }
        }
Esempio n. 2
0
        /// <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);
            }
        }