// ***************************************************************************** // Computación en Acción, S.A. de C.V. (C) Copyright 2009 // Todos los Derechos Reservados. // // Sistema: CONTPAQ i BANCOS // // Título: Estado de Cuenta (Saldos Contables) // // Descripción: Imprime el estado de cuenta de cuentas de cheques usando sus // saldos contables // // Fecha: 23/Marzo/2009 // Autor: Ricardo Palau Castañeda // ***************************************************************************** // Historial de Revisiones: // Fecha ID-ND/NC Descripción // ***************************************************************************** // 28/09/2010 ND2253 No se imprimen los cheques cancelados o devueltos (GVGV) // ----------------------------------------------------------------------------- // 2016-03-30 ND 8454 (VMSA) RECOMPILACIÓN POR CAMBIO EN BibliotecaCheques.RPT // ***************************************************************************** Incluye BibliotecaFechas.rpt // ***************************************************************************** // TABLAS A UTILIZAR // ***************************************************************************** UsaEmpresa tEmpresa;'contpaqw1.00' // ***************************************************************************** // CONSULTAS SQL PARA PARÁMETROS // ***************************************************************************** Consulta tCuentasP = tEmpresa['SELECT Id, Codigo + \' - \' + Nombre AS Nombre FROM CuentasCheques ORDER BY Nombre'] Consulta tEjercicio= tEmpresa['SELECT FecIniPer' & tEmpresa->PeriodoActual & ' AS FecIni, ' & (tEmpresa->PeriodoActual = 14 ? 'FecFinEje' : 'FecIniPer' & (tEmpresa->PeriodoActual+1) & '-1') & ' AS FecFin FROM Ejercicios WHERE Id = ' & tEmpresa->IdEjercicioActual] // ***************************************************************************** // PARÁMETROS DEL REPORTE // ***************************************************************************** Parametros Titulo 'titulo.1' Pagina 'pagina.1' Parametro pFechaDe = fFechaIniPerBANCOS(tEmpresa->UsaPeriodosContables; tEjercicio('FecIni'); tEmpresa->EjercicioVigenteBN; tEmpresa->PeriodoVigenteBN) Captura Titulo 'parametro.1' Ayuda 'ayuda.1' Control CtrlFecha CambiaAlSalir pFechaA = pFechaDe FinCaptura Parametro pFechaA = fFechaFinPerBANCOS(tEmpresa->UsaPeriodosContables; tEjercicio('FecFin'); tEmpresa->EjercicioVigenteBN; tEmpresa->PeriodoVigenteBN) Captura Titulo 'parametro.2' Ayuda 'ayuda.2' Control CtrlFecha Valida >=; pFechaDe; 'valida.1' FinCaptura Parametro pListaCuentasCheques = 0 Captura Titulo 'parametro.3' Ayuda 'ayuda.3' Control CtrlOpcion Datos Origen tCuentasP('Nombre');tCuentasP('Id') OrdenaPor tCuentasP('Nombre') FinDatos FinCaptura Parametro vacio = 0 Captura Control CtrlVacio FinCaptura Parametro pTipoDocto = 1 Captura Titulo 'parametro.6' Ayuda 'ayuda.6' Control CtrlLista Datos 'dato.1';1;'dato.2';2;'dato.3';3 FinDatos FinCaptura Parametro pOrden = 1 Captura Titulo 'parametro.8' Ayuda 'ayuda.8' Control CtrlLista Datos 'p8_dato.1';1;'p8_dato.2';2 FinDatos FinCaptura Parametro pImprimeCanDev = false Captura Titulo 'parametro.7' Ayuda 'ayuda.7' Control CtrlCheckBox FinCaptura FinPagina Pagina 'pagina.2' Parametro pImpFecha = True Captura Titulo 'parametro.4' Ayuda 'ayuda.4' Control CtrlCheckBox Dependencia False; pFechaReporte = False Dependencia True; pFechaReporte = True FinCaptura Parametro pFechaReporte = @Hoy( ) Captura Titulo 'parametro.5' Ayuda 'ayuda.5' Control CtrlFecha FinCaptura FinPagina FinParametros Si pListaCuentasCheques = '' pListaCuentasCheques = 0 FinSi // ***************************************************************************** // FUNCIONES DE LIBRERÍA // ***************************************************************************** Incluye BibliotecaCheques.rpt // ***************************************************************************** // Definiciones y asumidos globales para el reporte // ***************************************************************************** // Configuración de la hoja Configuracion //Orientacion Vertical Orientacion Horizontal Papel Carta Margen Superior; 1 Margen Inferior; 1 Margen Izquierdo; 1 Margen Derecho; 1 FinConfiguracion Columnas 8;2,2.5,1,3.3,3.2,2.5,2.5,2.5 Usaletra 'Dialog' Altura 9 [C4,C5,C6,C7].Coma // ***************************************************************************** // Variables de uso global: // ***************************************************************************** pResumenMostrado = False // ***************************************************************************** // Funciones del reporte // ***************************************************************************** ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //*** Función que se ejecuta cuando se da click a una región sensible DefFunc fEjecutaReporte(aColumna; aLista) lTipoDocumento = 1 Escoge @Escoge(aLista;2) Caso '04050' // Cheque lTipoDocumento = 1 FinCaso Caso '04040' // Egreso lTipoDocumento = 2 FinCaso Caso '04020' // Ingreso lTipoDocumento = 3 FinCaso Caso '04010' // Ingreso no depositado lTipoDocumento = 4 FinCaso Caso '04030' // Deposito lTipoDocumento = 5 FinCaso FinEscoge Ejecuta 'DetalleDeDocumentosBancarios.RTW'; @Escoge(aLista;0), @Escoge(aLista;0), False, False, @Escoge(aLista;1), lTipoDocumento, @Escoge(aLista;3), @Escoge(aLista;3), True, True, True, True, True, True , @HOY(); aLista FinFunc Incluye BibliotecaFormatoEdoCta.rpt // ***************************************************************************** // Imprime los datos de la cuenta y el resumen de movimientos // // Argumento - aIdCtaCheques: Id de la cuenta, pasado por referencia // Argumento - aCuenta: Número de cuenta // Argumento - aNombre: Nombre de la cuenta // Argumento - aMoneda: Moneda de la cuenta // Argumento - aSaldo: Saldo de la cuenta, con cada movimiento se actualiza, se // pasa por referencia // ***************************************************************************** DefFunc fImprimeResumenCuenta(aIdCtaCheques; aCuenta; aNombre; aMoneda; aSaldo) Local lImprime, lDepositos, lAbonos, lCheques, lCargos, lDepositosImporte, lAbonosImporte, lChequesImporte, lCargosImporte SaltaLin Negritas True Texto 0;aCuenta & ' - ' & aNombre & ' (' & aMoneda & ')' Imprime Negritas False SaltaLin //fCambiarColumnas(2) fEstableceColumnasParaResumenDecuenta() lImprime = ''[C0..C10] lImprime = (pIdioma = 0 ? 'Saldo inicial:' : 'Initial balance')[C1] lImprime = @Col(aSaldo;0)[C4] Lista lImprime [C1..C4].SubrayaCol Imprime // Cuenta los movimientos fCuentaMovimientos(aIdCtaCheques; &lDepositos; &lAbonos; &lCheques; &lCargos; &lDepositosImporte; &lAbonosImporte; &lChequesImporte; &lCargosImporte) // Imprime depósitos lImprime = '(+)'[C1] lImprime = @Col(lDepositos;0)[C2] lImprime = (pIdioma = 0 ? 'Depósitos' : 'Deposits')[C3] lImprime = @Col(lDepositosImporte;0)[C4] Lista lImprime // Imprime abonos lImprime = '(+)'[C1] lImprime = @Col(lAbonos;0)[C2] //lImprime = (pIdioma = 0 ? 'Abonos' : 'Income')[C3] lImprime = (pIdioma = 0 ? 'Ingresos' : 'Incomes')[C3] lImprime = @Col(lAbonosImporte;0)[C4] Lista lImprime // Imprime cheques lImprime = '(-)'[C1] lImprime = @Col(lCheques;0)[C2] lImprime = (pIdioma = 0 ? 'Cheques' : 'Checks')[C3] lImprime = @Col(lChequesImporte;0)[C4] Lista lImprime // Imprime Cargos lImprime = '(-)'[C1] lImprime = @Col(lCargos;0)[C2] //lImprime = (pIdioma = 0 ? 'Cargos' : 'Expenses')[C3] lImprime = (pIdioma = 0 ? 'Egresos' : 'Outlays')[C3] lImprime = @Col(lCargosImporte;0)[C4] Lista lImprime [C1..C4].SubrayaCol Imprime lImprime = ''[C0..C7] lImprime = (pIdioma = 0 ? 'Saldo final:' : 'Final balance')[C1] aSaldo = aSaldo + lDepositosImporte + lAbonosImporte - lChequesImporte - lCargosImporte[C0] lImprime = @Col(aSaldo;0)[C4] Lista lImprime Saltalin FinFunc // ***************************************************************************** // ENCABEZADO DEL REPORTE // ***************************************************************************** Encab fEscribeEncabCheques(tEmpresa->Nombre) Si pIdioma = 0 Texto '^Auxiliar de Bancos' Si pImpFecha = True Texto '"Fecha: ' & fEditaFecha(pFechaReporte; 0) FinSi Imprime Texto '^del ' & fEditaFecha(pFechaDe; 0) & ' al ' & fEditaFecha(pFechaA; 0) Imprime gTextoCancelado = 'Cancelado ' gTextoDevuelto = 'Devuelto ' SiNo Texto '^Transaction List by Bank Account' Si pImpFecha = True Texto '"Date: ' & fEditaFecha(pFechaReporte; 1) FinSi Imprime Texto '^from ' & fEditaFecha(pFechaDe; 1) & ' to ' & fEditaFecha(pFechaA; 1) Imprime gTextoCancelado = 'Canceled' gTextoDevueltoso = 'Returned' FinSi Saltalin Altura 9 FinEncab // ***************************************************************************** // CUERPO PRINCIPAL DEL REPORTE // ***************************************************************************** DefRegion fEjecutaReporte gStrQuery = 'SELECT c.Id, c.Codigo, c.Nombre, m.Nombre AS Moneda, m.Decimales FROM CuentasCheques c ' gStrQuery = gStrQuery & 'INNER JOIN Monedas m ON m.Codigo = c.CodigoMoneda ' gStrQuery = gStrQuery & 'WHERE c.Id IN (' & pListaCuentasCheques & ') ORDER BY c.Codigo' Consulta tCuenta = tEmpresa[gStrQuery] Mientras tCuenta->Encontro [C4,C5,C6,C7].Decimales tCuenta('Decimales') //ND: 8514 (VMNB) gSaldo = fCalculaSaldoCtaCheques(tCuenta('Id'); fRestaDias(pFechaDe;1); 'C') // Imprime el resumen del estado de cuenta fImprimeResumenCuenta(tCuenta('Id'); tCuenta('Codigo'); tCuenta('Nombre'); tCuenta('Moneda'); gSaldo) Si pOrden = 1 // Lee los movimientos de la cuenta fImprimeMovimientos(tCuenta('Id'); &gSaldo; tCuenta('Codigo')) SiNo // se muestran los registros por ingresos y egresos gIngresos= fImprimeMovtosIE(tCuenta('Id'); 'I'; &gSaldo) // Ingresos SaltaLin 2 gEgresos = fImprimeMovtosIE(tCuenta('Id'); 'E'; &gSaldo) // Egresos FinSi tCuenta.Busca Siguiente FinMientras // Hay cuentas Lista ' ' // Fin Reporte