/// <summary> /// Mueve el pago a la Consulta de Pagos Por Facturar /// </summary> /// <param name="pagoID"></param> public void MoverAFacturar(int pagoID) { object pago = null; string mensaje = "No se puede actualizar el pago, el cliente no cuenta con crédito en tipo de moneda "; if (ETipoEmpresa.Idealease == (ETipoEmpresa)this.Vista.UnidadOperativaID) { pago = new PagoUnidadContratoBOF { PagoID = pagoID } } ; else { pago = new PagoContratoPSLBOF { PagoContratoID = pagoID } }; MonitorCreditoClienteBR monitorCreditoBR = new MonitorCreditoClienteBR(); var usr = new UsuarioBO { Id = Vista.UsuarioID }; var adscripcion = new AdscripcionBO { UnidadOperativa = new UnidadOperativaBO { Id = Vista.UnidadOperativaID } }; var seguridadBO = new SeguridadBO(Guid.Empty, usr, adscripcion); if (monitorCreditoBR.LiberarPagoCredito(FacadeBR.ObtenerConexion(), ref pago, seguridadBO)) { // Si es correcto, se quita el pago de la lista de pagos no-facturados. if (pago is PagoUnidadContratoBOF || pago is PagoUnidadContratoBO) { this.Vista.PagosConsultados.Remove(Vista.PagosConsultados.First(p => p.PagoID == (pago as PagoUnidadContratoBO).PagoID)); } else if (pago is PagoContratoPSLBO) { this.Vista.PagosConsultadosPSL.Remove(Vista.PagosConsultadosPSL.First(p => p.PagoContratoID == (pago as PagoContratoPSLBO).PagoContratoID)); } Vista.ActualizarMarcadoresEnviarAFacturar(); Vista.CargarPagosConsultados(); } else { if (pago is PagoUnidadContratoBOF || pago is PagoUnidadContratoBO) { mensaje += (pago as PagoUnidadContratoBO).Divisa.MonedaDestino.Codigo; } else if (pago is PagoContratoPSLBO) { mensaje += (pago as PagoContratoPSLBO).Divisa.MonedaDestino.Codigo; } Vista.MostrarMensaje(mensaje, ETipoMensajeIU.INFORMACION); } }
/// <summary> /// Consultar los pagos en base a filtro proporcionados /// </summary> /// <param name="bof"></param> private void Consultar(PagoContratoPSLBOF bof) { var resultado = ControladorPSL.ConsultarFiltroSinCuentas(dataContext, bof, this.Vista.ModuloID); Vista.PagosConsultadosPSL = resultado; Vista.CargarPagosConsultados(); }
/// <summary> /// Consultar los pagos en base a filtro proporcionados /// </summary> /// <param name="bof"></param> private void Consultar(PagoContratoPSLBOF bof) { List <PagoContratoPSLBO> listaPagos = new List <PagoContratoPSLBO>(); listaPagos = ControladorPSL.ConsultarFiltroSinCuentas(dataContext, bof, this.Vista.ModuloID); if (Vista.UltimosPagosPSL == null) { Vista.UltimosPagosPSL = new List <PagoContratoPSLBO>(); Vista.UltimosPagosPSL.AddRange(listaPagos); } Vista.PagosConsultadosPSL = listaPagos; Vista.CargarPagosConsultados(); }
/// <summary> /// Decide que controlador usar para consultar pagos /// </summary> private List <PagoContratoPSLBO> ConsultarPagos(Int32?pagoId, Int32?referenciaContratoId, Boolean esCompleto) { var listaPagos = new List <PagoContratoPSLBO>(); PagoContratoPSLBR pagoBr = new PagoContratoPSLBR(); PagoContratoPSLBO pago = new PagoContratoPSLBOF(); if (pagoId != null) { pago.PagoContratoID = pagoId; } if (referenciaContratoId != null) { pago.ReferenciaContrato = new ReferenciaContratoBO() { ReferenciaContratoID = referenciaContratoId } } ; listaPagos.AddRange(esCompleto ? pagoBr.ConsultarCompleto(this.dataContext, pago) : pagoBr.Consultar(this.dataContext, pago)); return(listaPagos); }
/// <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> /// Actualiza los marcadores de conteo de los pagos /// </summary> public void ActualizarMarcadores() { int TotalFacturar = 0; int TotalNoFacturado = 0; if (ETipoEmpresa.Idealease == (ETipoEmpresa)this.Vista.UnidadOperativaID) { //Pagos por Facturar var bof = new PagoUnidadContratoBOF { Sucursales = Vista.SucursalesUsuario, Activo = true, EnviadoFacturacion = false, FechaVencimientoFinal = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 23, 59, 59), Facturado = false, ReferenciaContrato = new ReferenciaContratoBO { UnidadOperativa = new UnidadOperativaBO { Id = Vista.UnidadOperativaID } }, FacturaEnCeros = false, BloqueadoCredito = false }; TotalFacturar = Controlador.ContarPagos(dataContext, bof); // Pagos No Facturados bof = new PagoUnidadContratoBOF { Sucursales = Vista.SucursalesUsuario, Activo = true, BloqueadoCredito = true, ReferenciaContrato = new ReferenciaContratoBO { UnidadOperativa = new UnidadOperativaBO { Id = Vista.UnidadOperativaID } }, FacturaEnCeros = false }; TotalNoFacturado = Controlador.ContarPagos(dataContext, bof); } else { //Pagos por Facturar var bof = new PagoContratoPSLBOF { Sucursales = Vista.SucursalesUsuario, Activo = true, EnviadoFacturacion = false, FechaVencimientoFinal = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 23, 59, 59), Facturado = false, ReferenciaContrato = new ReferenciaContratoBO { UnidadOperativa = new UnidadOperativaBO { Id = Vista.UnidadOperativaID } }, FacturaEnCeros = false, BloqueadoCredito = false }; TotalFacturar = ControladorPSL.ContarPagos(dataContext, bof); // Pagos No Facturados bof = new PagoContratoPSLBOF { Sucursales = Vista.SucursalesUsuario, Activo = true, BloqueadoCredito = true, ReferenciaContrato = new ReferenciaContratoBO { UnidadOperativa = new UnidadOperativaBO { Id = Vista.UnidadOperativaID } }, FacturaEnCeros = false }; TotalNoFacturado = ControladorPSL.ContarPagos(dataContext, bof); } Vista.TotalFacturar = TotalFacturar; Vista.TotalNoFacturado = TotalNoFacturado; }