// ***************************************************************************** // Computación en Acción, S.A. de C.V. (C) Copyright 2009 // Todos los Derechos Reservados. // // Sistema: CONTPAQ i BANCOS // // Título: Conciliación Bancaria // // Imprime: Calcula y despliega la conciliación bancaria a una fecha de corte // determinada. // Autor: Ismael Mayer Orozco Piña // Mantenimiento: Daniel Hijar Gaspar (15/12/2009) // ***************************************************************************** // ***************************************************************************** // Historial de Revisiones: // Fecha ID-ND/NC Descripción // ***************************************************************************** // Actualización a módulo de bancos. // Fecha: 05/Febrero/2009 (Ismael Orozco) // Fecha: 15/Diciembre/2009 (Daniel Hijar Gaspar) // Fecha: 12/Agosto/2011 (Victor Manuel Sanchez Aldana) MKD '20110812' // 2016-03-30 ND 8454 (VMSA) RECOMPILACIÓN POR CAMBIO EN BibliotecaCheques.RPT // ***************************************************************************** Incluye BibliotecaFechas.rpt // ***************************************************************************** // Empresa y Tablas a utilizar // ***************************************************************************** UsaEmpresa tEmpresa;'contpaqw1.00' UsaTabla tCuentasCH = tEmpresa['CuentasCheques'] // ***************************************************************************** // Parámetros del reporte: // ***************************************************************************** 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] Parametros Titulo 'titulo.1' Pagina 'pagina.1' Parametro pCodigoCuenta = 1 Captura Titulo 'parametro.1' Ayuda 'ayuda.1' Control CtrlCodigo '30';'CuentasCheques';'Nombre' FinCaptura Parametro vacio = 0 Captura Control CtrlVacio FinCaptura Parametro pFechaDe = fFechaIniPerBANCOS(tEmpresa->UsaPeriodosContables; tEjercicio('FecIni'); tEmpresa->EjercicioVigenteBN; tEmpresa->PeriodoVigenteBN) Captura Titulo 'parametro.5' Ayuda 'ayuda.5' Control CtrlFecha FinCaptura Parametro vacio = 0 Captura Control CtrlVacio FinCaptura Parametro pPorNumero = False Captura Titulo 'parametro.10' Ayuda 'ayuda.10' Control CtrlCheckBox Dependencia True; pFechaDe = False Dependencia True; pNumeroConciliacion = True Dependencia False; pFechaDe = True Dependencia False; pNumeroConciliacion = False FinCaptura Parametro pNumeroConciliacion = 1 Captura Titulo 'parametro.9' Ayuda 'ayuda.9' Control CtrlNumero Rango 1,999999 FinCaptura FinPagina Pagina 'pagina.2' Parametro pImpFecha = True Captura Titulo 'parametro.7' Ayuda 'ayuda.7' Control CtrlCheckBox Dependencia False; pFechaReporte = False Dependencia True; pFechaReporte = True FinCaptura Parametro pFechaReporte = @Hoy( ) Captura Titulo 'parametro.8' Ayuda 'ayuda.8' Control CtrlFecha FinCaptura FinPagina FinParametros // ***************************************************************************** // Funciones de librería // ***************************************************************************** Incluye BibliotecaCheques.rpt Incluye BibliotecaCuentas.rpt Incluye BibliotecaCatalogos.rpt // ***************************************************************************** // Definiciones y asumidos globales para el reporte // ***************************************************************************** // Configuración de la hoja Configuracion Orientacion Horizontal Papel Carta Margen Superior; 1 Margen Inferior; 1 Margen Izquierdo; 1 Margen Derecho; 1 FinConfiguracion // Numero de columnas a usar en el reporte Columnas 2; 4,10 Usaletra 'Dialog' Altura 8 Coma Blanco ' ' // ***************************************************************************** // Variables de ámbito global // ***************************************************************************** // ***************************************************************************** //Consulta a SQL // ***************************************************************************** //Consulta a la Tabla de Cuentas de Cheques CadenaConsulta = 'SELECT id,Codigo,Nombre ' CadenaConsulta = CadenaConsulta & ' FROM CuentasCheques ' CadenaConsulta = CadenaConsulta & ' WHERE codigo = \'' & pCodigoCuenta & '\'' Consulta Cuenta = tEmpresa[CadenaConsulta] gTotalCargos = 0.0 gTotalAbonos = 0.0 gSaldoFinal = 0.0 gAbonosNCBanco = 0.0 gCargosNCBanco = 0.0 gEstado = 0 // ***************************************************************************** // FUNCIONES DEL REPORTE // ***************************************************************************** DefFunc fEstableceColumnasParaResumenDecuenta() Columnas 11; 0, 2.5, 1.5, 1.5, 3, 2.5, 2.5, 0, 6.5, 3, 3 Finfunc DefFunc fEncabezadoColumnas(aImprimeRel ) Saltalin Negritas True Si pIdioma = 0 Texto C0;'Aplicación' Texto C1;'Fecha' Texto C2;'Tipo' Texto C3;'"Folio' Texto C4;'' Texto C5;'Beneficiario/Pagador' Texto C6;'Concepto' Texto C7;'Referencia' Texto C8;'"Cargo' Texto C9;'"Abono' si aImprimeRel = 1 Texto C10;'"Rel.' FinSI SiNo Texto C0;'Clear date' Texto C1;'Date' Texto C2;'Type' Texto C3;'"Number' Texto C4;'' Texto C5;'Payee/Payer' Texto C6;'Concept' Texto C7;'Reference' Texto C8;'"Debit' Texto C9;'"Credit' si aImprimeRel = 1 Texto C10;'"Rel.' FinSI FinSi Imprime SubrayaCol Negritas False Imprime FinFunc // ***************************************************************************** //fCambiaColumnas (gColumnas) // ***************************************************************************** DefFunc fCambiaColumnas(gColumnas) Escoge gColumnas Caso 1 Columnas 7; 15,3,0.0,2,0.25,2.5,0.25,4.5 FinCaso Caso 2 Columnas 1; 20 FinCaso Caso 3 Columnas 10; 2.1,2.1,3.3,1.5,0.25,3.25,3,3,3,3,2.5 FinCaso Caso 4 Columnas 6; 16,3,2.8,0.2,2.8,2.5 Caso 5 Columnas 3; 16,6,2.5 FinCaso FinEscoge FinFunc // ***************************************************************************** //fConsultaTablas ( ) //Consulta a SQL // ***************************************************************************** DefFunc fConsultaTablas ( ) Si gEstado = 0 // '20110812' esta pendiente // consulta no conciliados // busca los movimientos cuya fecha de emision sea menor o igual a la fecha de corte y // fecha de aplicacion mayor a la fecha de corte anterior ConsultaNoConci = 'SELECT \'Cheques\' AS Tabla, \'Cheque\' AS Tipo, ch.beneficiarioPagador, ch.Id, ch.NatBancaria, ch.EsConciliado, ch.Total, ch.Referencia, ch.FechaAplicacion, ' ConsultaNoConci = ConsultaNoConci & ' ch.Folio, ch.Fecha, ch.Concepto, ch.IdDocumentoDe, ch.EsImpreso, ch.IdMovEdoCta, td.nombre ' ConsultaNoConci = ConsultaNoConci & ' FROM Cheques ch JOIN TiposDocumentos td ON (ch.tipoDocumento = td.codigo) ' ConsultaNoConci = ConsultaNoConci & ' WHERE ch.EsAutorizado = 1 AND ch.EsProyectado = 0 AND ch.EsCancelado = 0 AND ch.EsDevuelto = 0 AND ch.IdMovEdoCta = 0 AND ch.EsConciliado = \'false\' ' ConsultaNoConci = ConsultaNoConci & ' AND ch.Fecha <= \'' & pFechaFin & '\' AND ch.FechaAplicacion >= \'' & pFechaIni & '\' AND ch.IdCuentaCheques = ' & lIdCtaBancaria & ' ' ConsultaNoConci = ConsultaNoConci & ' UNION SELECT \'Egresos\', \'Egreso\', e.beneficiarioPagador, e.Id, e.NatBancaria, e.EsConciliado, e.Total, e.Referencia, e.FechaAplicacion, e.Folio, e.Fecha, ' ConsultaNoConci = ConsultaNoConci & ' e.Concepto, e.IdDocumentoDe, 1, e.IdMovEdoCta, td.nombre ' ConsultaNoConci = ConsultaNoConci & ' FROM Egresos e JOIN TiposDocumentos td ON (e.tipoDocumento = td.codigo) WHERE e.EsProyectado = 0 AND e.IdMovEdoCta = 0 AND e.EsConciliado = \'false\' ' ConsultaNoConci = ConsultaNoConci & ' AND e.Fecha <= \'' & pFechaFin & '\' AND e.FechaAplicacion >= \'' & pFechaIni & '\' AND e.IdCuentaCheques = ' & lIdCtaBancaria & ' ' ConsultaNoConci = ConsultaNoConci & ' ORDER BY Fecha, Tipo, Total' Consulta gDoctosNoConciliadosE = tEmpresa[ConsultaNoConci] ConsultaNoConci = ' SELECT \'Ingresos\', \'Ingreso\' AS Tipo, i.beneficiarioPagador, i.Id, i.NatBancaria, i.EsConciliado, i.Total, i.Referencia, i.FechaAplicacion, i.Folio, i.Fecha, ' ConsultaNoConci = ConsultaNoConci & ' i.Concepto, i.IdDocumentoDe, 1, i.IdMovEdoCta, td.nombre ' ConsultaNoConci = ConsultaNoConci & ' FROM Ingresos i JOIN TiposDocumentos td ON (i.tipoDocumento = td.codigo) ' ConsultaNoConci = ConsultaNoConci & ' WHERE i.EsProyectado = 0 AND i.IdMovEdoCta = 0 AND i.EsConciliado = \'false\' ' ConsultaNoConci = ConsultaNoConci & ' AND i.Fecha <= \'' & pFechaFin & '\' AND i.FechaAplicacion >= \'' & pFechaIni & '\' AND i.IdCuentaCheques = ' & lIdCtaBancaria & ' ' ConsultaNoConci = ConsultaNoConci & ' UNION SELECT \'Depositos\', \'Depósito\', \'\', d.Id, d.NatBancaria, d.EsConciliado, d.Total, d.Referencia, d.FechaAplicacion, d.Folio, ' ConsultaNoConci = ConsultaNoConci & ' d.Fecha, d.Concepto, d.IdDocumentoDe, 1, d.IdMovEdoCta, td.nombre ' ConsultaNoConci = ConsultaNoConci & ' FROM Depositos d JOIN TiposDocumentos td ON (d.tipoDocumento = td.codigo) ' ConsultaNoConci = ConsultaNoConci & ' WHERE d.IdMovEdoCta = 0 AND d.EsConciliado = \'false\' ' ConsultaNoConci = ConsultaNoConci & ' AND d.Fecha <= \'' & pFechaFin & '\' AND d.FechaAplicacion >= \'' & pFechaIni &'\' AND d.IdCuentaCheques = ' & lIdCtaBancaria & ' ' ConsultaNoConci = ConsultaNoConci & ' ORDER BY Fecha, Tipo, Total' Consulta gDoctosNoConciliados = tEmpresa[ConsultaNoConci] FinSi // Cargos ya considerados por el banco ConsultaConci = 'SELECT \'Cheques\' AS Tabla, \'Cheque\' AS Tipo, ch.beneficiarioPagador, ch.Id, ch.NatBancaria, ch.EsConciliado, ch.Total, ch.Referencia, ch.FechaAplicacion, ' ConsultaConci = ConsultaConci & ' ch.Folio, ch.Fecha, ch.Concepto, ch.IdDocumentoDe, ch.EsImpreso, ch.IdMovEdoCta, td.nombre ' ConsultaConci = ConsultaConci & ' FROM Cheques ch JOIN TiposDocumentos td ON (ch.tipoDocumento = td.codigo) ' ConsultaConci = ConsultaConci & ' WHERE ch.EsAutorizado = 1 AND ch.EsProyectado = 0 AND ch.EsCancelado = 0 AND ch.EsDevuelto = 0 AND ch.IdMovEdoCta > 0 AND ch.EsConciliado = 1 ' ConsultaConci = ConsultaConci & ' AND ch.Fecha <= \'' & pFechaFin & '\' AND ch.FechaAplicacion > \'' & pFechaFin & '\' AND ch.IdCuentaCheques = ' & lIdCtaBancaria & ' ' ConsultaConci = ConsultaConci & ' UNION SELECT \'Egresos\', \'Egreso\', e.beneficiarioPagador, e.Id, e.NatBancaria, e.EsConciliado, e.Total, e.Referencia, e.FechaAplicacion, e.Folio, e.Fecha, ' ConsultaConci = ConsultaConci & ' e.Concepto, e.IdDocumentoDe, 1, e.IdMovEdoCta, td.nombre ' ConsultaConci = ConsultaConci & ' FROM Egresos e JOIN TiposDocumentos td ON (e.tipoDocumento = td.codigo) WHERE e.EsProyectado = 0 AND e.IdMovEdoCta > 0 AND e.EsConciliado = 1 ' ConsultaConci = ConsultaConci & ' AND e.Fecha <= \'' & pFechaFin & '\' AND e.FechaAplicacion > \'' & pFechaFin & '\' AND e.IdCuentaCheques = ' & lIdCtaBancaria & ' ' ConsultaConci = ConsultaConci & ' ORDER BY Fecha, Tipo, Total' Consulta gDoctosConciliadosE = tEmpresa[ConsultaConci] // Abonos ya considerados por el banco ConsultaConci = ' SELECT \'Ingresos\', \'Ingreso\' AS Tipo, i.beneficiarioPagador, i.Id, i.NatBancaria, i.EsConciliado, i.Total, i.Referencia, i.FechaAplicacion, i.Folio, i.Fecha, ' ConsultaConci = ConsultaConci & ' i.Concepto, i.IdDocumentoDe, 1, i.IdMovEdoCta, td.nombre ' ConsultaConci = ConsultaConci & ' FROM Ingresos i JOIN TiposDocumentos td ON (i.tipoDocumento = td.codigo) ' ConsultaConci = ConsultaConci & ' WHERE i.EsProyectado = 0 AND i.IdMovEdoCta > 0 AND i.EsConciliado = 1 ' ConsultaConci = ConsultaConci & ' AND i.Fecha <= \'' & pFechaFin & '\' AND i.FechaAplicacion > \'' & pFechaFin & '\' AND i.IdCuentaCheques = ' & lIdCtaBancaria & ' ' ConsultaConci = ConsultaConci & ' UNION SELECT \'Depositos\', \'Depósito\', \'\', d.Id, d.NatBancaria, d.EsConciliado, d.Total, d.Referencia, d.FechaAplicacion, d.Folio, ' ConsultaConci = ConsultaConci & ' d.Fecha, d.Concepto, d.IdDocumentoDe, 1, d.IdMovEdoCta, td.nombre ' ConsultaConci = ConsultaConci & ' FROM Depositos d JOIN TiposDocumentos td ON (d.tipoDocumento = td.codigo) ' ConsultaConci = ConsultaConci & ' WHERE d.IdMovEdoCta > 0 AND d.EsConciliado = 1 ' ConsultaConci = ConsultaConci & ' AND d.Fecha <= \'' & pFechaFin & '\' AND d.FechaAplicacion > \'' & pFechaFin &'\' AND d.IdCuentaCheques = ' & lIdCtaBancaria & ' ' ConsultaConci = ConsultaConci & ' ORDER BY Fecha, Tipo, Total' Consulta gDoctosConciliadosI = tEmpresa[ConsultaNoConci] Si gEstado = 1 // '20110812' -> esta cerrada la conciliacion (usado para reportar los movimientos que no se conciliacion en su momento en las conciliaciones cerradas ConsultaNoConci = 'SELECT \'Cheques\' AS Tabla, \'Cheque\' AS Tipo, ch.beneficiarioPagador, ch.Id, ch.NatBancaria, ch.EsConciliado, ch.Total, ch.Referencia, ch.FechaAplicacion, ' ConsultaNoConci = ConsultaNoConci & ' ch.Folio, ch.Fecha, ch.Concepto, ch.IdDocumentoDe, ch.EsImpreso, ch.IdMovEdoCta, td.nombre ' ConsultaNoConci = ConsultaNoConci & ' FROM Cheques ch JOIN TiposDocumentos td ON (ch.tipoDocumento = td.codigo) ' ConsultaNoConci = ConsultaNoConci & ' WHERE ch.EsAutorizado = 1 AND ch.EsProyectado = 0 AND ch.EsCancelado = 0 AND ch.EsDevuelto = 0 AND ch.IdMovEdoCta = 0 '//AND ch.EsConciliado = \'false\' ' ConsultaNoConci = ConsultaNoConci & ' AND ((ch.Fecha < \'' & pFechaIni & '\' AND ch.FechaAplicacion > \'' & pFechaFin & '\')' ConsultaNoConci = ConsultaNoConci & ' OR ((ch.Fecha >= \'' & pFechaIni & '\' AND ch.Fecha <= \'' & pFechaFin & '\')' ConsultaNoConci = ConsultaNoConci & ' AND (ch.FechaAplicacion > \'' & pFechaFin & '\'))) AND ch.IdCuentaCheques = ' & lIdCtaBancaria & ' ' ConsultaNoConci = ConsultaNoConci & ' UNION SELECT \'Egresos\', \'Egreso\', e.beneficiarioPagador, e.Id, e.NatBancaria, e.EsConciliado, e.Total, e.Referencia, e.FechaAplicacion, e.Folio, e.Fecha, ' ConsultaNoConci = ConsultaNoConci & ' e.Concepto, e.IdDocumentoDe, 1, e.IdMovEdoCta, td.nombre ' ConsultaNoConci = ConsultaNoConci & ' FROM Egresos e JOIN TiposDocumentos td ON (e.tipoDocumento = td.codigo) WHERE e.EsProyectado = 0 AND e.IdMovEdoCta = 0 '//AND e.EsConciliado = \'false\'' ConsultaNoConci = ConsultaNoConci & ' AND ((e.Fecha < \'' & pFechaIni & '\' AND e.FechaAplicacion > \'' & pFechaFin & '\')' ConsultaNoConci = ConsultaNoConci & ' OR ((e.Fecha >= \'' & pFechaIni & '\' AND e.Fecha <= \'' & pFechaFin & '\')' ConsultaNoConci = ConsultaNoConci & ' ANd (e.FechaAplicacion > \'' & pFechaFin & '\'))) AND e.IdCuentaCheques = ' & lIdCtaBancaria & ' ' ConsultaNoConci = ConsultaNoConci & ' ORDER BY Fecha, Tipo, Total' Consulta gDoctosNoConciliadosE1 = tEmpresa[ConsultaNoConci] ConsultaNoConci = ' SELECT \'Ingresos\', \'Ingreso\' AS Tipo, i.beneficiarioPagador, i.Id, i.NatBancaria, i.EsConciliado, i.Total, i.Referencia, i.FechaAplicacion, i.Folio, i.Fecha, ' ConsultaNoConci = ConsultaNoConci & ' i.Concepto, i.IdDocumentoDe, 1, i.IdMovEdoCta, td.nombre ' ConsultaNoConci = ConsultaNoConci & ' FROM Ingresos i JOIN TiposDocumentos td ON (i.tipoDocumento = td.codigo) ' ConsultaNoConci = ConsultaNoConci & ' WHERE i.EsProyectado = 0 AND i.IdMovEdoCta = 0 '//AND i.EsConciliado = \'false\' ' ConsultaNoConci = ConsultaNoConci & ' AND ((i.Fecha < \'' & pFechaIni & '\' AND i.FechaAplicacion > \'' & pFechaFin & '\')' ConsultaNoConci = ConsultaNoConci & ' OR ((i.Fecha >= \'' & pFechaIni & '\' AND i.Fecha <= \'' & pFechaFin & '\')' ConsultaNoConci = ConsultaNoConci & ' ANd (i.FechaAplicacion > \'' & pFechaFin & '\'))) AND i.IdCuentaCheques = ' & lIdCtaBancaria & ' ' ConsultaNoConci = ConsultaNoConci & ' UNION SELECT \'Depositos\', \'Depósito\', \'\', d.Id, d.NatBancaria, d.EsConciliado, d.Total, d.Referencia, d.FechaAplicacion, d.Folio, ' ConsultaNoConci = ConsultaNoConci & ' d.Fecha, d.Concepto, d.IdDocumentoDe, 1, d.IdMovEdoCta, td.nombre ' ConsultaNoConci = ConsultaNoConci & ' FROM Depositos d JOIN TiposDocumentos td ON (d.tipoDocumento = td.codigo) ' ConsultaNoConci = ConsultaNoConci & ' WHERE d.IdMovEdoCta = 0 AND d.EsConciliado = \'false\' ' ConsultaNoConci = ConsultaNoConci & ' AND ((d.Fecha < \'' & pFechaIni & '\' AND d.FechaAplicacion > \'' & pFechaFin & '\')' ConsultaNoConci = ConsultaNoConci & ' OR ((d.Fecha >= \'' & pFechaIni & '\' AND d.Fecha <= \'' & pFechaFin & '\')' ConsultaNoConci = ConsultaNoConci & ' ANd (d.FechaAplicacion > \'' & pFechaFin & '\'))) AND d.IdCuentaCheques = ' & lIdCtaBancaria & ' ' ConsultaNoConci = ConsultaNoConci & ' ORDER BY Fecha, Tipo, Total' Consulta gDoctosNoConciliados1 = tEmpresa[ConsultaNoConci] // Cheques Cancelados - NC : 554211 EMV ConsultaNoConci = 'SELECT \'Cheques\' AS Tabla, \'Cheque\' AS Tipo, ch.beneficiarioPagador, ch.Id, ch.NatBancaria, ch.EsConciliado, ch.EsCancelado, ch.Total, ch.Referencia, ch.FechaAplicacion, ' ConsultaNoConci = ConsultaNoConci & ' ch.Folio, ch.Fecha, ch.Concepto, ch.IdDocumentoDe, ch.EsImpreso, ch.IdMovEdoCta, td.nombre ' ConsultaNoConci = ConsultaNoConci & ' FROM Cheques ch JOIN TiposDocumentos td ON (ch.tipoDocumento = td.codigo) ' ConsultaNoConci = ConsultaNoConci & ' WHERE ch.EsCancelado = \'true\' ' ConsultaNoConci = ConsultaNoConci & ' AND ch.Fecha <= \'' & pFechaFin & '\' AND ch.FechaAplicacion > \'' & pFechaFin & '\' AND ch.IdCuentaCheques = ' & lIdCtaBancaria & ' ' ConsultaNoConci = ConsultaNoConci & ' ORDER BY Fecha, Tipo, Total' Consulta gDoctosNoConciliadosCancel = tEmpresa[ConsultaNoConci] FinSi // '20110812' <- // consulta conciliados ConsultaConci = 'SELECT \'Cheques\' AS Tabla, \'Cheque\' AS Tipo, ch.beneficiarioPagador, ch.Id, ch.NatBancaria, ch.EsConciliado, ch.Total, ch.Referencia, ch.FechaAplicacion, ' ConsultaConci = ConsultaConci & ' ch.Folio, ch.Fecha, ch.Concepto, ch.IdDocumentoDe, ch.EsImpreso, ch.IdMovEdoCta, td.nombre ' ConsultaConci = ConsultaConci & ' FROM Cheques ch JOIN TiposDocumentos td ON (ch.tipoDocumento = td.codigo) ' ConsultaConci = ConsultaConci & ' WHERE ch.EsConciliado = \'true\' ' ConsultaConci = ConsultaConci & ' AND ch.FechaAplicacion <= \'' & pFechaFin & '\' AND ch.FechaAplicacion >= \'' & pFechaIni & '\' AND ch.IdCuentaCheques = ' & lIdCtaBancaria & ' ' ConsultaConci = ConsultaConci & ' UNION SELECT \'Egresos\', \'Egreso\', e.beneficiarioPagador, e.Id, e.NatBancaria, e.EsConciliado, e.Total, e.Referencia, e.FechaAplicacion, e.Folio, e.Fecha, ' ConsultaConci = ConsultaConci & ' e.Concepto, e.IdDocumentoDe, 1, e.IdMovEdoCta, td.nombre ' ConsultaConci = ConsultaConci & ' FROM Egresos e JOIN TiposDocumentos td ON (e.tipoDocumento = td.codigo) WHERE e.EsConciliado = \'true\'' ConsultaConci = ConsultaConci & ' AND e.FechaAplicacion <= \'' & pFechaFin & '\' AND e.FechaAplicacion >= \'' & pFechaIni & '\' AND e.IdCuentaCheques = ' & lIdCtaBancaria & ' ' ConsultaConci = ConsultaConci & ' UNION SELECT \'Ingresos\', \'Ingreso\', i.beneficiarioPagador, i.Id, i.NatBancaria, i.EsConciliado, i.Total, i.Referencia, i.FechaAplicacion, i.Folio, i.Fecha, ' ConsultaConci = ConsultaConci & ' i.Concepto, i.IdDocumentoDe, 1, i.IdMovEdoCta, td.nombre ' ConsultaConci = ConsultaConci & ' FROM Ingresos i JOIN TiposDocumentos td ON (i.tipoDocumento = td.codigo) ' ConsultaConci = ConsultaConci & ' WHERE i.EsConciliado = \'true\' ' ConsultaConci = ConsultaConci & ' AND i.FechaAplicacion <= \'' & pFechaFin & '\' AND i.FechaAplicacion >= \'' & pFechaIni & '\' AND i.IdCuentaCheques = ' & lIdCtaBancaria & ' ' ConsultaConci = ConsultaConci & ' UNION SELECT \'Depositos\', \'Depósito\', \'\', d.Id, d.NatBancaria, d.EsConciliado, d.Total, d.Referencia, d.FechaAplicacion, d.Folio, ' ConsultaConci = ConsultaConci & ' d.Fecha, d.Concepto, d.IdDocumentoDe, 1, d.IdMovEdoCta, td.nombre ' ConsultaConci = ConsultaConci & ' FROM Depositos d JOIN TiposDocumentos td ON (d.tipoDocumento = td.codigo) ' ConsultaConci = ConsultaConci & ' WHERE d.EsConciliado = \'true\' ' ConsultaConci = ConsultaConci & ' AND d.FechaAplicacion <= \'' & pFechaFin & '\' AND d.FechaAplicacion >= \'' & pFechaIni &'\' AND d.IdCuentaCheques = ' & lIdCtaBancaria & ' ' ConsultaConci = ConsultaConci & ' ORDER BY FechaAplicacion, Folio, Tipo' Consulta gDoctoConciliados = tEmpresa[ConsultaConci] FinFunc // ***************************************************************************** //Encabezado del Reporte // ***************************************************************************** Encab fEscribeEncabCheques(tEmpresa->Nombre) Si pIdioma = 0 Texto '^Conciliación Bancaria' Si pImpFecha = True Texto '"Fecha: ' & fEditaFecha(pFechaReporte; 0) FinSi Imprime SubrayaCol Imprime SiNo Texto '^Banking conciliation' Si pImpFecha = True Texto '"Date: ' & fEditaFecha(pFechaReporte; 1) FinSi Imprime SubrayaCol Imprime FinSi Altura 9 FinEncab // ***************************************************************************** //Código Principal del Reporte // ***************************************************************************** // ***************************************************************************** // Cuenta y suma los movimientos de una cuenta para usarlos en el resumen // // Argumento - aIdCtaCheques: Id de la cuenta, pasado por referencia // Argumento - aDepositos: Cuenta de los depósito, pasado por referencia // Argumento - aAbonos: Cuenta de los ingresos, pasado por referencia // Argumento - aCheques: Cuenta de los cheques, pasado por referencia // Argumento - aCargos: Cuenta de los egresos, pasado por referencia // Argumento - aDepositosImporte: Suma de los depósitos, pasado por referencia // Argumento - aAbonosImporte: Suma de los ingresos, pasado por referencia // Argumento - aChequesImporte: Suma de los cheques, pasado por referencia // Argumento - aCargosImporte: Suma de los egresos, pasado por referencia // // Retorna cuenta y suma de movimientos en parámetros por referencia // ***************************************************************************** DefFunc fCuentaMovimientos(aIdCtaCheques; aDepositos; aAbonos; aCheques; aCargos; aDepositosImporte; aAbonosImporte; aChequesImporte; aCargosImporte) Local lStrQuery aDepositos= 0 aAbonos = 0 aCheques = 0 aCargos = 0 aAbonosImporte = 0.0 aChequesImporte = 0.0 aCargosImporte = 0.0 // Obtiene la cuenta y suma de los movimientos usando SUMs de SQL lStrQuery = 'SELECT COUNT(Id), SUM(Total) FROM Depositos ' lStrQuery = lStrQuery & 'WHERE IdCuentaCheques = ' & aIdCtaCheques & ' AND EsConciliado = 1 ' lStrQuery = lStrQuery & 'AND FechaAplicacion BETWEEN \'' & pFechaIni & '\' AND \'' & pFechaFin & '\'' Consulta tDepositos = tEmpresa[lStrQuery] Si tDepositos->Encontro aDepositos = tDepositos(1) aDepositosImporte = tDepositos(2) FinSi lStrQuery = 'SELECT COUNT(Id), SUM(Total) FROM Ingresos ' lStrQuery = lStrQuery & 'WHERE IdCuentaCheques = ' & aIdCtaCheques & ' AND EsConciliado = 1 ' lStrQuery = lStrQuery & 'AND FechaAplicacion BETWEEN \'' & pFechaIni & '\' AND \'' & pFechaFin & '\'' Consulta tAbonos = tEmpresa[lStrQuery] Si tAbonos->Encontro aAbonos = tAbonos(1) aAbonosImporte = tAbonos(2) FinSi lStrQuery = ' ' lStrQuery = lStrQuery & 'SELECT COUNT(Id), SUM(Total) FROM Cheques ' lStrQuery = lStrQuery & 'WHERE IdCuentaCheques = ' & aIdCtaCheques & ' AND EsConciliado = 1 AND EsCancelado = 0 AND EsDevuelto = 0 ' lStrQuery = lStrQuery & 'AND FechaAplicacion BETWEEN \'' & pFechaIni & '\' AND \'' & pFechaFin & '\'' Consulta tCheques = tEmpresa[lStrQuery] Si tCheques->Encontro aCheques = tCheques(1) aChequesImporte = tCheques(2) FinSi lStrQuery = 'SELECT COUNT(Id), SUM(Total) FROM Egresos ' lStrQuery = lStrQuery & 'WHERE IdCuentaCheques = ' & aIdCtaCheques & ' AND EsConciliado = 1 ' lStrQuery = lStrQuery & 'AND FechaAplicacion BETWEEN \'' & pFechaIni & '\' AND \'' & pFechaFin & '\'' Consulta tCargos = tEmpresa[lStrQuery] Si tCargos->Encontro aCargos = tCargos(1) aCargosImporte = tCargos(2) FinSi FinFunc // ***************************************************************************** // 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; aSaldo; aNumero; aSaldoFinal; aEstadoConciliacion) Local lImprime, lDepositos, lAbonos, lCheques, lCargos, lDepositosImporte, lAbonosImporte, lChequesImporte, lCargosImporte Local lSaldo, lPorConciliar lDepositos = 0 lAbonos = 0 lCheques = 0 lCargos = 0 lDepositosImporte = 0.00 lAbonosImporte = 0.00 lChequesImporte = 0.00 lCargosImporte = 0.00 lPorConciliar = 0.00 SaltaLin Negritas True Texto 0;aCuenta & ' - ' & aNombre //& ' (' & aMoneda & ')' Imprime Negritas False SaltaLin fEstableceColumnasParaResumenDecuenta() lImprime = ''[C0..C10] lImprime = (pIdioma = 0 ? 'Saldo inicial:' : 'Initial balance')[C1] lImprime = @Col(aSaldo;0)[C4] lImprime = (pIdioma = 0 ? 'Conciliación No.' : 'Reconciliation No.' )[C9] lImprime = '"' & aNumero[C10] 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) != 0 ? @Col(lDepositos;0) : '"0 ')[C2] lImprime = (pIdioma = 0 ? 'Depósitos' : 'Deposits')[C3] lImprime = (@Col(lDepositosImporte;0) != 0 ? @Col(lDepositosImporte;0) : '"0.00')[C4] // lImprime = 'Estado' Si pIdioma = 0 lImprime = 'Estado'[C9] lImprime = ('"' & (aEstadoConciliacion = True ? 'Cerrada' : 'Pendiente'))[C10] SiNo lImprime = 'Status'[C9] lImprime = ('"' & (aEstadoConciliacion = True ? 'Closed' : 'Pending'))[C10] FinSi Lista lImprime // Imprime abonos lImprime = '(+)'[C1] lImprime = (@Col(lAbonos;0) != 0 ? @Col(lAbonos;0) : '"0 ')[C2] lImprime = (pIdioma = 0 ? 'Ingresos' : 'Incomes')[C3] lImprime = (@Col(lAbonosImporte;0) != 0 ? @Col(lAbonosImporte;0) : '"0.00')[C4] lImprime = (pIdioma = 0 ? 'Fecha inicial' : 'Initial date' )[C9] lImprime = '"' & fEditaFecha(pFechaIni;pIdioma)[C10] Lista lImprime // Imprime cheques lImprime = '(-)'[C1] lImprime = (@Col(lCheques;0) != 0 ? @Col(lCheques;0) : '"0 ')[C2] lImprime = (pIdioma = 0 ? 'Cheques' : 'Checks')[C3] lImprime = (@Col(lChequesImporte;0) != 0 ? @Col(lChequesImporte;0) : '"0.00')[C4] lImprime = (pIdioma = 0 ? 'Fecha de corte' : 'Ending date' )[C9] lImprime = '"' & fEditaFecha(pFechaFin;pIdioma)[C10] Lista lImprime // Imprime Cargos lImprime = '(-)'[C1] lImprime = (@Col(lCargos;0) != 0 ? @Col(lCargos;0) : '"0 ')[C2] lImprime = (pIdioma = 0 ? 'Egresos' : 'Outlays')[C3] lImprime = (@Col(lCargosImporte;0) != 0 ? @Col(lCargosImporte;0) : '"0.00')[C4] lImprime = (pIdioma = 0 ? 'Saldo al corte' : 'Ending balance' )[C9] lImprime = (aSaldoFinal != 0 ? aSaldoFinal : '"0.00')[C10] Lista lImprime [C1..C4].SubrayaCol Imprime lImprime = ''[C0..C10] lImprime = (pIdioma = 0 ? 'Saldo final:' : 'Final balance')[C1] lSaldo = @Col(aSaldo;0) + lDepositosImporte + lAbonosImporte - lChequesImporte - lCargosImporte lImprime = (lSaldo != 0 ? lSaldo : '"0.00')[C4] // lImprime el saldo por conciliar lImprime = (pIdioma = 0 ? 'Por conciliar' : 'By Conciliate' )[C9] lPorConciliar = aSaldoFinal - lSaldo lImprime = (lPorConciliar != 0 ? lPorConciliar : '"0.00')[C10] Lista lImprime Saltalin FinFunc //Imprime el código de la cuenta y su nombre si Cuenta->Encontro // Negritas True // Texto C0;Cuenta('Codigo') // Texto C1;Cuenta('Nombre') // Negritas False // Imprime gStrQuery = 'SELECT cta.Codigo, cta.Nombre, edo.FechaInicial as FechaInicial, edo.FechaFinal as FechaFinal, ' gStrQuery = gStrQuery &'edo.SaldoInicial, edo.SaldoFinal , edo.id, edo.EstadoConciliacion, edo.Numero ' gStrQuery = gStrQuery &'FROM dbo.EdoCtaBancos as edo ' gStrQuery = gStrQuery &'JOIN CuentasCheques as cta on cta.id = edo.idCuentaCheques ' Si pPorNumero gStrQuery = gStrQuery &'WHERE edo.Numero='& pNumeroConciliacion &' and cta.Codigo = \''& pCodigoCuenta & '\'' SiNo gStrQuery = gStrQuery &'WHERE \'' & pFechaDe &'\' between edo.FechaInicial and edo.FechaFinal and cta.Codigo = \''& pCodigoCuenta & '\'' FinSi Consulta tEdoCuenta = tEmpresa[gStrQuery] finSi // Encontro la Cuenta Si tEdoCuenta->Encontro Si Cuenta ->Encontro lIdCtaBancaria = Cuenta('Id') FinSi pFechaIni = tEdoCuenta('FechaInicial') pFechaFin = tEdoCuenta('FechaFinal') gSaldo = fCalculaSaldoCtaCheques(Cuenta('Id'); fRestaDias(pFechaIni;1); 'B') QueryTotalConci = 'Select sum(Total) as TotalSaldoConc ' QueryTotalConci = QueryTotalConci & 'From ' QueryTotalConci = QueryTotalConci & '( ' QueryTotalConci = QueryTotalConci & 'SELECT sum(ch.Total*-1) as Total ' QueryTotalConci = QueryTotalConci & 'FROM Cheques ch ' QueryTotalConci = QueryTotalConci & 'WHERE ch.EsConciliado = \'true\' ' QueryTotalConci = QueryTotalConci & 'AND ch.FechaAplicacion <= \'' & pFechaFin & '\' AND ch.FechaAplicacion >= \'' & pFechaIni & '\' AND ch.IdCuentaCheques = ' & lIdCtaBancaria & ' ' QueryTotalConci = QueryTotalConci & 'UNION All ' QueryTotalConci = QueryTotalConci & 'SELECT sum(e.Total *-1) as Total ' QueryTotalConci = QueryTotalConci & 'FROM Egresos e ' QueryTotalConci = QueryTotalConci & 'WHERE e.EsConciliado = \'true\' ' QueryTotalConci = QueryTotalConci & 'AND e.FechaAplicacion <= \'' & pFechaFin & '\' AND e.FechaAplicacion >= \'' & pFechaIni & '\' AND e.IdCuentaCheques = ' & lIdCtaBancaria & ' ' QueryTotalConci = QueryTotalConci & 'UNION All ' QueryTotalConci = QueryTotalConci & 'SELECT sum(i.Total) as Total ' QueryTotalConci = QueryTotalConci & 'FROM Ingresos i ' QueryTotalConci = QueryTotalConci & 'WHERE i.EsConciliado = \'true\' ' QueryTotalConci = QueryTotalConci & 'AND i.FechaAplicacion <= \'' & pFechaFin & '\' AND i.FechaAplicacion >= \'' & pFechaIni & '\' AND i.IdCuentaCheques = ' & lIdCtaBancaria & ' ' QueryTotalConci = QueryTotalConci & 'UNION All ' QueryTotalConci = QueryTotalConci & 'SELECT sum(d.Total) as Total ' QueryTotalConci = QueryTotalConci & 'FROM Depositos d ' QueryTotalConci = QueryTotalConci & 'WHERE d.EsConciliado = \'true\' ' QueryTotalConci = QueryTotalConci & 'AND d.FechaAplicacion <= \'' & pFechaFin & '\' AND d.FechaAplicacion >= \'' & pFechaIni & '\' AND d.IdCuentaCheques = ' & lIdCtaBancaria & ' ' QueryTotalConci = QueryTotalConci & ') as q1 ' Consulta gTotalConci = tEmpresa[QueryTotalConci] // Imprime el resumen del estado de cuenta fImprimeResumenCuenta(Cuenta('Id'); Cuenta('Codigo'); Cuenta('Nombre'); gSaldo; tEdoCuenta('Numero'); tEdoCuenta('SaldoFinal'); tEdoCuenta('EstadoConciliacion') ) gColumnas = 1 fCambiaColumnas (gColumnas) lImprime = ''[C0..C7] lImprime = 'No.: ' & tEdoCuenta('Numero')[C0] Si pIdioma = 0 lImprime = 'Fecha Inicial: '[C1] lImprime = 'Saldo Inicial: '[C5] SiNo lImprime = 'Date From: '[C1] lImprime = 'Initial Balance: '[C5] FinSi si tEdoCuenta('SaldoInicial') != 0 lImprime = tEdoCuenta('SaldoInicial') [C7] SiNo lImprime = '"0.00 ' [C7] FinSi lImprime = fEditaFecha(pFechaIni;pIdioma) [C3] // Lista lImprime lImprime = ''[C0..C7] Si pIdioma = 0 si tEdoCuenta('EstadoConciliacion') lImprime = 'Estado: Cerrada' [C0] gEstado = 1 //'20110812' sino lImprime = 'Estado: Pendiente' [C0] gEstado = 0 //'20110812' FinSi lImprime = 'Fecha de corte: '[C1] lImprime = 'Saldo al corte: '[C5] SiNo si tEdoCuenta('EstadoConciliacion') lImprime = 'Status: Closed' [C0] sino lImprime = 'Status: Pending' [C0] FinSi lImprime = 'Ending Date: '[C1] lImprime = 'Ending Balance: '[C5] FinSi lImprime = fEditaFecha(pFechaFin;pIdioma) [C3] Si tEdoCuenta('SaldoFinal') != 0 lImprime = tEdoCuenta('SaldoFinal')[C7] gSaldoFinal = tEdoCuenta('SaldoFinal') SiNo lImprime = '"0.00 ' [C7] FinSi // Lista lImprime lImprime = ''[C0..C7] Si pIdioma = 0 lImprime = 'Por Conciliar:'[C5] SiNo lImprime = 'By Conciliate:'[C5] FinSi SaldoTotalConc = 0 SaldoPorConciliar = 0 Si gTotalConci->Encontro SaldoTotalConc = gTotalConci('TotalSaldoConc') FinSi Si (tEdoCuenta('SaldoFinal') - tEdoCuenta('SaldoInicial')- SaldoTotalConc) != 0 lImprime = tEdoCuenta('SaldoFinal') - tEdoCuenta('SaldoInicial') - SaldoTotalConc [C7] // '20110812' usado para acumular el importe en el concepto de "Saldo registrado contable" SaldoPorConciliar = tEdoCuenta('SaldoFinal') - tEdoCuenta('SaldoInicial') - SaldoTotalConc SiNo lImprime = '"0.00 ' [C7] FinSi // Lista lImprime saltalin Si tEdoCuenta->Encontro fConsultaTablas( ) FinSi //jzr_ini gTotalCargos = 0 gTotalAbonos = 0 gColumnas = 2 fCambiaColumnas (gColumnas) Saltalin 1 [C0].Negritas True Si pIdioma = 0 Texto C0;'Documentos Conciliados' SiNo Texto C0;'Conciliated Documents' FinSi Imprime Negritas False gColumnas = 3 fCambiaColumnas (gColumnas) fEncabezadoColumnas(1) //Imprime los doctos encontrados en la tabla del Cheque, Egreso, Ingreso y depósitos Si gDoctoConciliados->Encontro Mientras gDoctoConciliados->Encontro //Saltalin lImprime = fEditaFecha(gDoctoConciliados('FechaAplicacion');pIdioma) [C0] lImprime = fEditaFecha(gDoctoConciliados('Fecha');pIdioma) [C1] lImprime = gDoctoConciliados('Nombre')[C2] lImprime = '"' & @trim(1;gDoctoConciliados('Folio'))[C3] lImprime = gDoctoConciliados('BeneficiarioPagador')[C5] lImprime = fEliminaEnter(gDoctoConciliados('Concepto'))[C6] lImprime = gDoctoConciliados('Referencia')[C7] Si gDoctoConciliados('NatBancaria') = 0 gTotalCargos = gTotalCargos + gDoctoConciliados('Total') lImprime = gDoctoConciliados('Total')[C8] lImprime = ''[C9] SiNo gTotalAbonos = gTotalAbonos + gDoctoConciliados('Total') lImprime = ''[C8] lImprime = gDoctoConciliados('Total')[C9] FinSi Si gDoctoConciliados('IdMovEdoCta') != 0 Si pIdioma = 0 lImprime = '^Si'[C10] SiNo lImprime = '^Yes'[C10] FinSi SiNo Si pIdioma = 0 lImprime = '^No'[C10] Sino lImprime = '^No'[C10] FinSi FinSi Lista lImprime gDoctoConciliados.Busca Siguiente FinMientras FinSi gColumnas = 3 fCambiaColumnas (gColumnas) Saltalin [C8,C9].SubrayaCol True Imprime SubrayaCol False Saltalin lImprime = '' [C0..C10] [C7].Negritas true lImprime ='^Total: '[C7] Si gTotalCargos != 0 lImprime = gTotalCargos[C8] SiNo lImprime = '"0.00 ' [C8] FinSi Si gTotalAbonos != 0 lImprime = gTotalAbonos[C9] SiNo lImprime = '"0.00 ' [C9] FinSi Lista lImprime [C7].Negritas false gTotalCargos = 0 gTotalAbonos = 0 //jzr_fin gColumnas = 2 fCambiaColumnas (gColumnas) [C0].Negritas True Si pIdioma = 0 Texto C0;'Abonos no considerados por el banco' SiNo Texto C0;'Credits not considered by the bank' FinSi Imprime Negritas False gColumnas = 3 fCambiaColumnas (gColumnas) fEncabezadoColumnas(0) //Imprime los doctos encontrados en la tabla del Cheque, Egreso, Ingreso y depósitos Si gDoctosNoConciliados->Encontro Mientras gDoctosNoConciliados->Encontro //Saltalin lImprime = fEditaFecha(gDoctosNoConciliados('FechaAplicacion');pIdioma) [C0] lImprime = fEditaFecha(gDoctosNoConciliados('Fecha');pIdioma) [C1] lImprime = gDoctosNoConciliados('Nombre')[C2] lImprime = '"' & @trim(1;gDoctosNoConciliados('Folio'))[C3] lImprime = gDoctosNoConciliados('BeneficiarioPagador')[C5] lImprime = fEliminaEnter(gDoctosNoConciliados('Concepto'))[C6] lImprime = gDoctosNoConciliados('Referencia')[C7] Si gDoctosNoConciliados('NatBancaria') = 0 gTotalCargos = gTotalCargos + gDoctosNoConciliados('Total') lImprime = gDoctosNoConciliados('Total')[C8] lImprime = ''[C9] SiNo gTotalAbonos = gTotalAbonos + gDoctosNoConciliados('Total') lImprime = ''[C8] lImprime = gDoctosNoConciliados('Total')[C9] FinSi //Si gDoctosNoConciliados('IdMovEdoCta') != 0 // Si pIdioma = 0 // lImprime = '^Si'[C10] // SiNo // lImprime = '^Yes'[C10] // FinSi //SiNo // Si pIdioma = 0 // lImprime = '^No'[C10] // Sino // lImprime = '^No'[C10] // FinSi //FinSi Lista lImprime gDoctosNoConciliados.Busca Siguiente FinMientras FinSi // '20110812' -> Solo si la conciliacion esta Cerrada Si gDoctosNoConciliados1->Encontro Mientras gDoctosNoConciliados1->Encontro //Saltalin lImprime = fEditaFecha(gDoctosNoConciliados1('FechaAplicacion');pIdioma) [C0] lImprime = fEditaFecha(gDoctosNoConciliados1('Fecha');pIdioma) [C1] lImprime = gDoctosNoConciliados1('Nombre')[C2] lImprime = '"' & @trim(1;gDoctosNoConciliados1('Folio'))[C3] lImprime = gDoctosNoConciliados1('BeneficiarioPagador')[C5] lImprime = fEliminaEnter(gDoctosNoConciliados1('Concepto'))[C6] lImprime = gDoctosNoConciliados1('Referencia')[C7] Si gDoctosNoConciliados1('NatBancaria') = 0 gTotalCargos = gTotalCargos + gDoctosNoConciliados1('Total') lImprime = gDoctosNoConciliados1('Total')[C8] lImprime = ''[C9] SiNo gTotalAbonos = gTotalAbonos + gDoctosNoConciliados1('Total') lImprime = ''[C8] lImprime = gDoctosNoConciliados1('Total')[C9] FinSi Lista lImprime gDoctosNoConciliados1.Busca Siguiente FinMientras FinSi // '20110812' <- gColumnas = 2 fCambiaColumnas (gColumnas) Saltalin 2 [C0].Negritas True Si pIdioma = 0 Texto C0;'Cargos no considerados por el banco' SiNo Texto C0;'Debits not considered by the bank' FinSi Imprime Negritas False gColumnas = 3 fCambiaColumnas (gColumnas) fEncabezadoColumnas(0) Si gDoctosNoConciliadosE->Encontro Mientras gDoctosNoConciliadosE->Encontro //Saltalin lImprime = fEditaFecha(gDoctosNoConciliadosE('FechaAplicacion');pIdioma) [C0] lImprime = fEditaFecha(gDoctosNoConciliadosE('Fecha');pIdioma) [C1] lImprime = gDoctosNoConciliadosE('Nombre')[C2] lImprime = '"' & @trim(1;gDoctosNoConciliadosE('Folio'))[C3] lImprime = gDoctosNoConciliadosE('BeneficiarioPagador')[C5] lImprime = fEliminaEnter(gDoctosNoConciliadosE('Concepto'))[C6] lImprime = gDoctosNoConciliadosE('Referencia')[C7] Si gDoctosNoConciliadosE('NatBancaria') = 0 gTotalCargos = gTotalCargos + gDoctosNoConciliadosE('Total') lImprime = gDoctosNoConciliadosE('Total')[C8] lImprime = ''[C9] SiNo gTotalAbonos = gTotalAbonos + gDoctosNoConciliadosE('Total') lImprime = ''[C8] lImprime = gDoctosNoConciliadosE('Total')[C9] FinSi Lista lImprime gDoctosNoConciliadosE.Busca Siguiente FinMientras FinSi // '20110812' -> Solo si la Conciliacion esta cerrada Si gDoctosNoConciliadosE1->Encontro Mientras gDoctosNoConciliadosE1->Encontro //Saltalin lImprime = fEditaFecha(gDoctosNoConciliadosE1('FechaAplicacion');pIdioma) [C0] lImprime = fEditaFecha(gDoctosNoConciliadosE1('Fecha');pIdioma) [C1] lImprime = gDoctosNoConciliadosE1('Nombre')[C2] lImprime = '"' & @trim(1;gDoctosNoConciliadosE1('Folio'))[C3] lImprime = gDoctosNoConciliadosE1('BeneficiarioPagador')[C5] lImprime = fEliminaEnter(gDoctosNoConciliadosE1('Concepto'))[C6] lImprime = gDoctosNoConciliadosE1('Referencia')[C7] Si gDoctosNoConciliadosE1('NatBancaria') = 0 gTotalCargos = gTotalCargos + gDoctosNoConciliadosE1('Total') lImprime = gDoctosNoConciliadosE1('Total')[C8] lImprime = ''[C9] SiNo gTotalAbonos = gTotalAbonos + gDoctosNoConciliadosE1('Total') lImprime = ''[C8] lImprime = gDoctosNoConciliadosE1('Total')[C9] FinSi Lista lImprime gDoctosNoConciliadosE1.Busca Siguiente FinMientras FinSi // '20110812' <- // ND : 554211 - EMV Si gDoctosNoConciliadosCancel->Encontro Mientras gDoctosNoConciliadosCancel->Encontro //Saltalin lImprime = fEditaFecha(gDoctosNoConciliadosCancel('FechaAplicacion');pIdioma) [C0] lImprime = fEditaFecha(gDoctosNoConciliadosCancel('Fecha');pIdioma) [C1] lImprime = gDoctosNoConciliadosCancel('Nombre')[C2] lImprime = '"' & @trim(1;gDoctosNoConciliadosCancel('Folio'))[C3] lImprime = gDoctosNoConciliadosCancel('BeneficiarioPagador')[C5] lImprime = fEliminaEnter(gDoctosNoConciliadosCancel('Concepto'))[C6] lImprime = gDoctosNoConciliadosCancel('Referencia')[C7] Si gDoctosNoConciliadosCancel('NatBancaria') = 0 gTotalCargos = gTotalCargos + gDoctosNoConciliadosCancel('Total') lImprime = gDoctosNoConciliadosCancel('Total')[C8] lImprime = ''[C9] SiNo gTotalAbonos = gTotalAbonos + gDoctosNoConciliadosCancel('Total') lImprime = ''[C8] lImprime = gDoctosNoConciliadosCancel('Total')[C9] FinSi Lista lImprime gDoctosNoConciliadosCancel.Busca Siguiente FinMientras FinSi // ND : 554211 - EMV gColumnas = 3 fCambiaColumnas (gColumnas) //Saltalin [C8,C9].SubrayaCol True Imprime SubrayaCol False Saltalin lImprime = '' [C0..C10] [C7].Negritas true lImprime = '^Total: ' [C7] si gTotalCargos != 0 lImprime = gTotalCargos [C8] SiNo lImprime = '"0.00 ' [C8] FinSi si gTotalAbonos != 0 lImprime = gTotalAbonos [C9] SiNo lImprime = '"0.00 ' [C9] FinSi Lista lImprime [C7].Negritas false gAbonosNCBanco = gTotalAbonos gCargosNCBanco = gTotalCargos // ***************** Movimientos considerados por el banco ****************** // gColumnas = 2 fCambiaColumnas (gColumnas) [C0].Negritas True Si pIdioma = 0 Texto C0;'Abonos considerados por el banco después de la fecha de corte' SiNo Texto C0;'Credits considered by the bank after ending date' FinSi Imprime Negritas False gColumnas = 3 fCambiaColumnas (gColumnas) fEncabezadoColumnas(0) //Imprime los doctos encontrados en la tabla del Cheque, Egreso, Ingreso y depósitos Si gDoctosConciliadosI->Encontro Mientras gDoctosConciliadosI->Encontro lImprime = fEditaFecha(gDoctosConciliadosI('FechaAplicacion');pIdioma) [C0] lImprime = fEditaFecha(gDoctosConciliadosI('Fecha');pIdioma) [C1] lImprime = gDoctosConciliadosI('Nombre')[C2] lImprime = '"' & @trim(1;gDoctosConciliadosI('Folio'))[C3] lImprime = gDoctosConciliadosI('BeneficiarioPagador')[C5] lImprime = fEliminaEnter(gDoctosConciliadosI('Concepto'))[C6] lImprime = gDoctosConciliadosI('Referencia')[C7] Si gDoctosConciliadosI('NatBancaria') = 0 gTotalCargos = gTotalCargos + gDoctosConciliadosI('Total') lImprime = gDoctosConciliadosI('Total')[C8] lImprime = ''[C9] SiNo gTotalAbonos = gTotalAbonos + gDoctosConciliadosI('Total') lImprime = ''[C8] lImprime = gDoctosConciliadosI('Total')[C9] FinSi Lista lImprime gDoctosConciliadosI.Busca Siguiente FinMientras FinSi gColumnas = 2 fCambiaColumnas (gColumnas) Saltalin 2 [C0].Negritas True Si pIdioma = 0 Texto C0;'Cargos considerados por el banco después de la fecha de corte' SiNo Texto C0;'Debits considered by the bank after ending date' FinSi Imprime Negritas False gColumnas = 3 fCambiaColumnas (gColumnas) fEncabezadoColumnas(0) Si gDoctosConciliadosE->Encontro Mientras gDoctosConciliadosE->Encontro lImprime = fEditaFecha(gDoctosConciliadosE('FechaAplicacion');pIdioma) [C0] lImprime = fEditaFecha(gDoctosConciliadosE('Fecha');pIdioma) [C1] lImprime = gDoctosConciliadosE('Nombre')[C2] lImprime = '"' & @trim(1;gDoctosConciliadosE('Folio'))[C3] lImprime = gDoctosConciliadosE('BeneficiarioPagador')[C5] lImprime = fEliminaEnter(gDoctosConciliadosE('Concepto'))[C6] lImprime = gDoctosConciliadosE('Referencia')[C7] Si gDoctosConciliadosE('NatBancaria') = 0 gTotalCargos = gTotalCargos + gDoctosConciliadosE('Total') lImprime = gDoctosConciliadosE('Total')[C8] lImprime = ''[C9] SiNo gTotalAbonos = gTotalAbonos + gDoctosConciliadosE('Total') lImprime = ''[C8] lImprime = gDoctosConciliadosE('Total')[C9] FinSi Lista lImprime gDoctosConciliadosE.Busca Siguiente FinMientras FinSi gColumnas = 3 fCambiaColumnas (gColumnas) //Saltalin [C8,C9].SubrayaCol True Imprime SubrayaCol False Saltalin lImprime = '' [C0..C10] [C7].Negritas true lImprime = '^Total: ' [C7] si gTotalCargos != 0 lImprime = gTotalCargos [C8] SiNo lImprime = '"0.00 ' [C8] FinSi si gTotalAbonos != 0 lImprime = gTotalAbonos [C9] SiNo lImprime = '"0.00 ' [C9] FinSi Lista lImprime [C7].Negritas false gAbonosNCBanco = gTotalAbonos gCargosNCBanco = gTotalCargos // ************************************* Movimientos del Estado de cuenta *****************************************************/ si tEdoCuenta->Encontro gStrQuery = 'SELECT Fecha as Fecha,Referencia, Concepto, Total, Numero, TipoMovto , EsConciliado ' gStrQuery = gStrQuery &' From MovtosEdoCtaBancos ' gStrQuery = gStrQuery &'WHERE IdEdoCtaBanco = ' & tEdoCuenta('Id') & ' ' gStrQuery = gStrQuery &'AND EsConciliado = \'false\' ' gStrQuery = gStrQuery &'AND TipoMovto IN (\'C\',\'E\') ' gStrQuery = gStrQuery &'order by Fecha, Numero, TipoMovto' Consulta tMovtosEdoCta = tEmpresa[gStrQuery] gStrQuery = 'SELECT Fecha as Fecha,Referencia, Concepto, Total, Numero, TipoMovto , EsConciliado ' gStrQuery = gStrQuery &' From MovtosEdoCtaBancos ' gStrQuery = gStrQuery &'WHERE IdEdoCtaBanco = ' & tEdoCuenta('Id') & ' ' gStrQuery = gStrQuery &'AND EsConciliado = \'false\' ' gStrQuery = gStrQuery &'AND TipoMovto IN (\'D\',\'I\') ' gStrQuery = gStrQuery &'order by Fecha, Numero, TipoMovto' Consulta tMovtosEdoCtaA = tEmpresa[gStrQuery] FinSi gTotalCargos = 0 gTotalAbonos = 0 saltalin Negritas True Si pIdioma = 0 Texto 'Movimientos del estado de cuenta' SiNo Texto 'Banck Statement' FinSi Imprime //******************************** Codigo nuevo */ saltalin Negritas True Si pIdioma = 0 Texto 'Abonos no considerados por la empresa' SiNo Texto 'Credits not considered by the company' FinSi Imprime saltalin Columnas 8;2,1.5,3.75,0.25,2.5,7.5,4,3,2.5 Negritas true si pIdioma = 0 lImprime = 'Fecha'[C0] lImprime = 'Tipo'[C1] lImprime = '"Número'[C2] lImprime = ''[C3] lImprime = 'Referencia'[C4] lImprime = 'Concepto'[C5] lImprime = '"Cargo'[C6] lImprime = '"Abono'[C7] lImprime = '"Rel.'[C8] sino lImprime = 'Date'[C0] lImprime = 'Type'[C1] lImprime = '"Number'[C2] lImprime = ''[C3] lImprime = 'Reference'[C4] lImprime = 'Concept'[C5] lImprime = '"Debit'[C6] lImprime = '"Credit'[C7] lImprime = '"Rel.'[C8] Finsi Lista lImprime [C0..C7].SubrayaCol imprime Negritas false si tMovtosEdoCtaA->Encontro mientras tMovtosEdoCtaA->Encontro lImprime = fEditaFecha(tMovtosEdoCtaA('Fecha');pIdioma)[C0] Si pIdioma = 0 Escoge tMovtosEdoCtaA('TipoMovto') Caso 'I'// Ingresos lImprime = 'Ingreso'[C1] FinCaso Caso 'D' // Depositos lImprime = 'Deposito'[C1] FinCaso Caso 'C' // Cheques lImprime = 'Cheque'[C1] FinCaso Caso 'E' // Egresos lImprime = 'Egreso'[C1] FinCaso FinEscoge SiNo Escoge tMovtosEdoCtaA('TipoMovto') Caso 'I'// Ingresos lImprime = 'Income'[C1] FinCaso Caso 'D' // Depositos lImprime = 'Deposit'[C1] FinCaso Caso 'C' // Cheques lImprime = 'Check'[C1] FinCaso Caso 'E' // Egresos lImprime = 'Outlay'[C1] FinCaso FinEscoge FinSi lImprime = '"' & tMovtosEdoCtaA('Numero')[C2] lImprime = ''[C3] lImprime = tMovtosEdoCtaA('Referencia')[C4] lImprime = tMovtosEdoCtaA('Concepto')[C5] si tMovtosEdoCtaA('TipoMovto') = 'C' O tMovtosEdoCtaA('TipoMovto') = 'E' lImprime = tMovtosEdoCtaA('Total')[C6] lImprime = ''[C7] gTotalCargos = gTotalCargos + tMovtosEdoCtaA('Total') sino lImprime = ''[C6] lImprime = tMovtosEdoCtaA('Total')[C7] gTotalAbonos = gTotalAbonos + tMovtosEdoCtaA('Total') finsi Si tMovtosEdoCtaA('EsConciliado') != 0 Si pIdioma = 0 lImprime = '^Si'[C8] SiNo lImprime = '^Yes'[C8] FinSi SiNo Si pIdioma = 0 lImprime = '^No'[C8] Sino lImprime = '^No'[C8] FinSi FinSi Lista lImprime tMovtosEdoCtaA.Busca Siguiente finmientras FinSi // Si encontro movimientos del estado de cuenta saltalin Negritas True Si pIdioma = 0 Texto 'Cargos no considerados por la empresa' SiNo Texto 'Debits are considered by the company' FinSi Imprime saltalin Columnas 8;2,1.5,3.75,0.25,2.5,7.5,4,3,2.5 Negritas true si pIdioma = 0 lImprime = 'Fecha'[C0] lImprime = 'Tipo'[C1] lImprime = '"Número'[C2] lImprime = ''[C3] lImprime = 'Referencia'[C4] lImprime = 'Concepto'[C5] lImprime = '"Cargo'[C6] lImprime = '"Abono'[C7] lImprime = '"Rel.'[C8] sino lImprime = 'Date'[C0] lImprime = 'Type'[C1] lImprime = '"Number'[C2] lImprime = ''[C3] lImprime = 'Reference'[C4] lImprime = 'Concept'[C5] lImprime = '"Debit'[C6] lImprime = '"Credit'[C7] lImprime = '"Rel.'[C8] Finsi Lista lImprime [C0..C7].SubrayaCol imprime Negritas false si tMovtosEdoCta->Encontro //sino si tMovtosEdoCta->Encontro = falso Altura 8 Consulta tCuenta = tEmpresa['SELECT Codigo, Nombre FROM CuentasCheques where Codigo = \''& pIdCuenta & '\''] saltalin si pIdioma=0 texto '" *No se encotraron movimientos en el estado de cuenta bancario' sino texto '" *Not found movimients int the banck statement' finsi imprime finsi mientras tMovtosEdoCta->Encontro lImprime = fEditaFecha(tMovtosEdoCta('Fecha');pIdioma)[C0] Si pIdioma = 0 Escoge tMovtosEdoCta('TipoMovto') Caso 'I'// Ingresos lImprime = 'Ingreso'[C1] FinCaso Caso 'D' // Depositos lImprime = 'Deposito'[C1] FinCaso Caso 'C' // Cheques lImprime = 'Cheque'[C1] FinCaso Caso 'E' // Egresos lImprime = 'Egreso'[C1] FinCaso FinEscoge SiNo Escoge tMovtosEdoCta('TipoMovto') Caso 'I'// Ingresos lImprime = 'Income'[C1] FinCaso Caso 'D' // Depositos lImprime = 'Deposit'[C1] FinCaso Caso 'C' // Cheques lImprime = 'Check'[C1] FinCaso Caso 'E' // Egresos lImprime = 'Outlay'[C1] FinCaso FinEscoge FinSi lImprime = '"' & tMovtosEdoCta('Numero')[C2] lImprime = ''[C3] lImprime = tMovtosEdoCta('Referencia')[C4] lImprime = tMovtosEdoCta('Concepto')[C5] si tMovtosEdoCta('TipoMovto') = 'C' O tMovtosEdoCta('TipoMovto') = 'E' lImprime = tMovtosEdoCta('Total')[C6] lImprime = ''[C7] gTotalCargos = gTotalCargos + tMovtosEdoCta('Total') sino lImprime = ''[C6] lImprime = tMovtosEdoCta('Total')[C7] gTotalAbonos = gTotalAbonos + tMovtosEdoCta('Total') finsi Si tMovtosEdoCta('EsConciliado') != 0 Si pIdioma = 0 lImprime = '^Si'[C8] SiNo lImprime = '^Yes'[C8] FinSi SiNo Si pIdioma = 0 lImprime = '^No'[C8] Sino lImprime = '^No'[C8] FinSi FinSi Lista lImprime tMovtosEdoCta.Busca Siguiente finmientras FinSi // Si encontro movimientos en el estado de cuenta //FinSi gColumnas = 3 fCambiaColumnas (gColumnas) //Saltalin [C8,C9].SubrayaCol True Imprime SubrayaCol False Saltalin lImprime = '' [C0..C10] [C7].Negritas true lImprime = '^Total: ' [C7] Si gTotalCargos != 0 lImprime = gTotalCargos [C8] SiNo lImprime = '"0.00 ' [C8] FinSi Si gTotalAbonos != 0 lImprime = gTotalAbonos [C9] SiNo lImprime = '"0.00 ' [C9] FinSi Lista lImprime [C7].Negritas false FinSi //************************ aquí termina *******************/ // **** Saldo calculado y registrado contable **** gColumnas = 5 fCambiaColumnas (gColumnas) SaltaLin SaltaLin lImprime = '' [C0..C2] [C1].Negritas true lCalculadoContable = gSaldoFinal + gAbonosNCBanco - gCargosNCBanco - gTotalAbonos + gTotalCargos Si pIdioma = 0 lImprime ='^Saldo calculado contable: ' [C1] SiNo lImprime ='^Calculated account balance: ' [C1] FinSi Si lCalculadoContable != 0 lImprime = lCalculadoContable [C2] SiNo lImprime = '"0.00 ' [C2] FinSi Lista lImprime SaltaLin lImprime = '' [C0..C2] // '20110812'se agregan los importes de SaldoPorConciliar y SaldoFinal para cuadrar con el reporte de CheqPAQ lRegistradoContable = (SaldoPorConciliar * -1) + gSaldoFinal + gAbonosNCBanco - gCargosNCBanco Si pIdioma = 0 lImprime ='^Saldo registrado contable: ' [C1] SiNo lImprime ='^Registered account balance: ' [C1] FinSi Si lRegistradoContable != 0 lImprime = lRegistradoContable [C2] SiNo lImprime = '"0.00 ' [C2] FinSi Lista lImprime [C1].Negritas false si Cuenta->Encontro = false Saltalin Negritas True Si pIdioma = 0 Texto '"*No se encontro la cuenta bancaria '& pCodigoCuenta SiNo Texto '"*Not found the bank account '& pCodigoCuenta FinSi Imprime Negritas False sino si tEdoCuenta ->Encontro = false Saltalin Negritas True Si pIdioma = 0 Texto '"*No se encontro una conciliacion guardada para la fecha indicada' SiNo Texto '*Not found banck statement by the account:' FinSi Imprime Negritas False FinSi finsi