I UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y Físicas Carrera de Ingeniería en Sistemas Computacionales “Módulo Financiero para el Control Empresarial Orientado al Mercado PYMES aplicando Tecnología RIA con Herramientas Open Source” PROYECTO DE TESIS DE GRADO CURSO DE GRADUACIÓN Previo a la Obtención del Título de: INGENIERO EN SISTEMAS COMPUTACIONALES Autor(es): Sr. Maximo Alexis Asanza Quezada Sra. Karina Alexandra Franco Farías Sr. Raúl Gabriel Ríos León GUAYAQUIL-ECUADOR Año: 2010 Módulo Financiero II AGRADECIMIENTO A mis padres, A mi hermana Maximo Alexis Asanza Quezada Módulo Financiero III AGRADECIMIENTO Agradezco a Dios por darme salud, fortaleza y tolerancia a lo largo de todo este camino recorrido. A mis compañeros de proyecto de graduación, Maximo Asanza y Gabriel Ríos, por brindarme su apoyo con sus consejos y conocimientos. A mis profesores que dieron lo mejor de sí para formar cada día buenos profesionales. Finalmente un agradecimiento muy especial a mi gran amigo el Ing. Israel Ortega por la ayuda brindada para culminar con éxito este proyecto de Graduación. Gracias infinitas, gracias a todos ustedes Karina Alexandra Franco Farías Módulo Financiero IV AGRADECIMIENTO Le doy gracias a Dios por estar en cada acto de mi vida, por darme la fortaleza en momentos difíciles. Agradezco a mi familia por comprender lo mucho que hago por estar aquí, brindándome el apoyo y cariño que necesitaba. A mi mamá por apoyarme en todo momento; los buenos y los malos, por el ánimo, la colaboración pero sobre todo con el amor de madre y sus consejos para mi superación en esta vida competitiva. Raúl Gabriel Ríos León Módulo Financiero V DEDICATORIA A mis padres, A mi hermana Maximo Alexis Asanza Quezada Módulo Financiero VI DEDICATORIA Le dedico este Proyecto de Grado a mis padres, el Sr. Amanio Franco y a la Sra. Mercedes Farías quienes con su esfuerzo, dedicación y apoyo incondicional supieron guiarme a lo largo de mi vida profesional, brindándome su amor y sabios consejos para poder culminar con éxito mi educación superior. A mi esposo el Dr. Veterinario Alfredo Véliz y a mi hija Nathaly Véliz porque siempre están a mi lado apoyándome, porque son la inspiración de cada día y por ellos estoy dando lo mejor de mí. A quien fue mi segunda madre, mi Tía Norma Farías y a mi Tío César Serrano. Finalmente a mis hermanos Fernando Franco, Raquel Franco y Eliana Serrano por estar a mi lado incondicionalmente y por ser una luz en mi camino. Para ustedes mis éxitos Karina Alexandra Franco Farías Módulo Financiero VII DEDICATORIA Dedico este Proyecto de Grado a mi señora madre que me ha preparado el camino, sin obstáculos de por medio para que pueda seguirlo. A ella que ha sabido dar el todo por el todo a sus hijos, por todos estos años que ha sido y será una madre excepcional. Raúl Gabriel Ríos León Módulo Financiero VIII TRIBUNAL DE GRADUACIÓN Presidente Tribunal 2do. Vocal Módulo Financiero 1er. Vocal Secretario IX DECLARACIÓN EXPRESA “La autoría de la tesis de grado corresponde exclusivamente al suscrito(s), perteneciendo a la Universidad de Guayaquil los derechos que generen la aplicación de la misma” (Reglamento de Graduación de la Carrera de Ingeniería en sistemas Computacionales, Art. 26) Maximo Alexis Asanza Quezada [email protected] Karina Alexandra Franco Farías [email protected] Raúl Gabriel Ríos León [email protected] Módulo Financiero X INTRODUCCIÓN Este manual se diseñó para los usuarios del sistema Business Gestor del Módulo Financiero, en éste encontrara toda la información concerniente a las funciones que brinda este sistema, desde su ingreso hasta la ejecución de un proceso determinado, además del manejo y un paseo guiado por las distintas pantallas del navegador web en el cual podrá hacer ingresos, consultas, generar reportes, ubicar los recursos económicos, manejo de bancos, cuentas, créditos, débitos, análisis de índices y razones financieras, etc. Este manual técnico explica detalladamente lo mencionado y el uso de los mismos en forma didáctica. El manual, es sólo para usuarios del módulo financiero, no contiene información de los otros módulos que intervienen en el E.R.P. Para mayor comprensión del usuario se ilustra la información con gráficas que muestran las mismas pantallas que se despliegan en el sitio web. El ingreso desde el menú de bienvenida nos lleva a la pantalla donde se encuentran los diferentes módulos que intervienen en el E.R.P., para luego escoger la opción del menú “Financiero”, del cual se despliega la gama de procesos que realiza el módulo pudiendo así escoger de entre ellos el deseado. Módulo Financiero XI ÍNDICE GENERAL AGRADECIMIENTO ....................................................................................... II DEDICATORIA ............................................................................................... V TRIBUNAL DE GRADUACIÓN .................................................................... VIII DECLARACIÓN EXPRESA ........................................................................... IX ÍNDICE GENERAL ........................................................................................ XI ÍNDICE ILUSTRACIONES ...........................................................................XV MANUAL DE USUARIO ................................................................................. 1 1 MÓDULO FINANCIERO ............................................................................ 2 1.1 BANCO ................................................................................................ 3 1.2 MANTENIMIENTOS BANCOS. ..................................................................... 4 1.2.1 Entidades Bancarias ..................................................................... 5 1.2.2 Cuentas Bancarias ........................................................................ 8 1.2.3 Tipo de Notas Bancarias ............................................................. 14 1.2.4 Tipo de Protestos ........................................................................ 18 1.2.5 Procesos Bancarios .................................................................... 23 1.2.6 Depósitos Generales................................................................... 24 1.2.7 Notas de Crédito ......................................................................... 27 1.2.8 Notas de Débito .......................................................................... 31 Módulo Financiero XII 1.2.9 Conciliación Bancaria.................................................................. 36 1.2.10 Transferencias ............................................................................ 41 1.2.11 Depósito Caja Banco Efectivo ..................................................... 44 1.2.12 Depósito Caja Banco Cheque ..................................................... 48 1.2.13 Registro Cheques Protestados en Depósito ............................... 52 1.2.14 Reportes Bancarios..................................................................... 56 1.2.15 Movimientos Bancarios ............................................................... 57 1.2.16 Conciliaciones Realizadas .......................................................... 61 1.2.17 Saldos Bancarios ........................................................................ 64 1.3 RAZONES FINANCIERAS ......................................................................... 68 1.3.1 Reporte de Razones Financieras ................................................ 68 1.3.2 Índices Financieros ..................................................................... 69 1.3.3 Mantenimientos Razones Financieras ........................................ 74 1.3.4 Razones Financieras .................................................................. 74 1.3.5 Grupos Razones Financieras...................................................... 81 1.4 REPORTES COMPARATIVOS .......................................................... 88 1.4.1 Balance General Comparativo .................................................... 88 1.5 ESTADO DE RESULTADO COMPARATIVO ................................................. 95 MANUAL TÉCNICO ................................................................................... 102 2 MANUAL TÉCNICO ............................................................................... 103 2.1 DICCIONARIO DE DATOS ...................................................................... 103 2.1.1 Tablas del Diagrama Entidad Relación (DER). ......................... 104 Módulo Financiero XIII 2.1.2 Tablas de las Razones Financieras .......................................... 116 2.1.3 Tablas Temporales ................................................................... 119 2.2 NOMENCLATURA DE OBJETOS UTILIZADOS. ............................................ 121 2.2.1 Tablas ....................................................................................... 121 2.2.2 Campos..................................................................................... 122 2.2.3 Constraints ................................................................................ 122 2.2.4 Clases – Paginas ...................................................................... 123 2.3 SCRIPT DE CREACIÓN DE TABLAS. ....................................................... 124 2.3.1 Scripts de creación de tablas de Bancos .................................. 124 2.4 CODIFICACIÓN DE LOS COMPONENTES ................................................. 136 2.4.1 Configurando la Conexión......................................................... 136 2.4.2 Clases y Programacion de Bancos. .......................................... 138 2.4.3 Clases y Programación Razones Financieras .......................... 206 2.4.4 Clases y Programación Balance General Comparativo. ........... 214 2.5 LIBRERÍAS USADAS EN LAS PÁGINAS DE PRESENTACIÓN. ..... 220 2.5.1 Jquery. ...................................................................................... 220 2.5.2 Dhtmlx. ...................................................................................... 220 2.5.3 Meio código. .............................................................................. 221 2.6 LIBRERÍAS CREADAS PARA EL PROYECTO. ........................................... 222 2.6.1 Creador de ventanas................................................................. 222 2.6.2 Creador de mensajes de dialogo. ............................................. 223 2.7 DIAGRAMAS DE FLUJO DE DATOS. ........................................................ 227 Módulo Financiero XIV 2.8 DIAGRAMA DE ITERACIÓN O SECUENCIA................................................ 230 2.8.1 Bancos ...................................................................................... 230 2.8.2 Diagrama de Secuencia Depósitos ........................................... 231 2.8.3 Diagrama de Secuencia Notas de Crédito/ Debito. ................... 231 2.8.4 Diagrama de Secuencia Transferencias. .................................. 232 2.8.5 Anulaciones. ............................................................................. 233 2.8.6 Conciliación bancaria. ............................................................... 234 2.8.7 Reportes Bancarios................................................................... 235 2.8.8 Razones Financieras. ............................................................... 236 2.8.9 Secuencia Reportes Financieros. ............................................ 237 Módulo Financiero XV ÍNDICE ILUSTRACIONES 1. Pantalla de Bienvenida ............................................................................... 2 Ilustración 2. Pantalla de bienvenida Entidades Bancarias............................. 5 3. Entidades Bancarias - Botón Nuevo -> Ingreso .......................................... 6 4. Entidades Bancarias - Botón Buscar .......................................................... 7 5. Entidades Bancarias - Botón Imprimir -> PDF ............................................ 8 6. Pantalla Bienvenida Cuentas Bancarias ..................................................... 9 7. Cuentas Bancarias - Botón Nuevo -> Ingreso ............................................ 9 8. Cuentas Bancarias - Botón Buscar ........................................................... 11 Ilustración 9. Cuentas Bancarias - Editar Banco ........................................... 12 10. Cuentas Bancarias - Editar Cuenta......................................................... 12 11. Cuentas Bancarias - Botón Imprimir ....................................................... 14 12. Pantalla Bienvenida Tipo de Notas Bancarias ........................................ 15 13. Tipo de Notas Bancarias - Seleccionar Editar y luego Guardar .............. 15 14. Tipo de Notas Bancarias - Botón Nueva Nota ........................................ 16 15. Tipo de Notas Bancarias - Nuevo -> Seleccionar Cuenta Contable ....... 17 16. Tipo de Notas Bancarias - Botón Guardar Nota...................................... 17 17. Tipo de Notas Bancarias - Botón Imprimir .............................................. 18 18. Pantalla Bienvenida Tipo de Protestos ................................................... 19 19. Tipo de Protestos - Botón Nuevo -> Pantalla Llenar ............................... 20 20. Tipo de Protestos - Botón Guardar Cambios .......................................... 20 Módulo Financiero XVI 21. Tipo de Protestos - Botón Consultar -> Seleccionar Tipo Nota............... 21 22.Tipo de Protestos - Editar Nota -> Seleccionar Cargo A .......................... 21 23. Tipo de Protestos - Edición -> Guarda Cambios..................................... 22 24. Tipo de Protestos - Botón Imprimir ......................................................... 22 25. Pantalla Procesos Bancarios .................................................................. 23 26. Pantalla de inicio a Depósitos Generales................................................ 24 27. Botón Procesar - Seleccionar Cuenta ..................................................... 25 28. Botón Procesar - Seleccionar Cuenta Contable...................................... 26 29. Botón Procesar - Guardar Cambios ........................................................ 27 30. Pantalla de Bienvenida Notas de Crédito ............................................... 28 31. Notas de Crédito - Seleccionar Cuenta ................................................... 29 32. Notas de Crédito - Seleccionar Tipo Nota y Sucursal ............................. 29 33. Notas de Crédito - Ver Registro .............................................................. 30 34. Notas de Crédito - Botón Guardar .......................................................... 31 35. Pantalla Bienvenida notas de Débito ...................................................... 32 36. Notas de Débito - Seleccionar Cuenta y Sucursal .................................. 33 37. Notas de Débito - Seleccionar Tipo Nota y Fecha .................................. 33 38. Notas de Débito - Botón Guardar............................................................ 34 39. Notas de Débito - Botón Imprimir ............................................................ 35 40. Notas de Débito - Botón Anular Documento ........................................... 35 41. Pantalla Bienvenida Conciliación Bancaria ............................................. 36 42. Conciliación Bancaria - Opciones a Escoger .......................................... 37 Módulo Financiero XVII 43. Conciliación Bancaria - Subir Archivo ..................................................... 38 44. Conciliación Bancaria - Saltar este Paso ................................................ 38 45. Conciliación Bancaria - Elegir Cuenta a Conciliar ................................... 39 46. Conciliación Bancaria - Seleccionar Fecha ............................................. 39 47. Conciliación Bancaria - Botón Conciliar .................................................. 41 48. Pantalla de Bienvenida Transferencias................................................... 42 49. Transferencias - Seleccionar Sucursal ................................................... 42 50. Transferencias - Botón Guardar.............................................................. 44 51. Pantalla Bienvenida Depósito Caja Banco Efectivo ................................ 45 52. Depósito Caja Banco Efectivo - Seleccionar Cuenta Bancaria ............... 45 53. Depósito Caja Banco Efectivo - Seleccionar Sucursal ............................ 46 54. Depósito Caja Banco Efectivo - Botón Procesar -> Alerta ...................... 47 55. Pantalla Bienvenida Depósito Caja Banco Cheques .............................. 48 56. Depósito Caja Banco Cheques - Seleccionar Cuenta............................. 49 57. Depósito Caja Banco Cheques - Seleccionar Sucursal .......................... 49 58. Depósito Caja Banco Cheques - Visto Bueno Seleccionando el Check . 50 59. Depósito Caja Banco Cheques - Botón Procesar ................................... 51 60. Pantalla de bienvenida Registro Cheques Protestados en Depósito ...... 52 61. Registro Cheques Protestados en Depósito - Seleccionar Sucursal ...... 53 62. Registro Cheques Protestados en Depósito - Seleccionar Cheques ...... 54 63. Registro Cheques Protestados en Depósito - Seleccionar Tipo de Cargos ...................................................................................................................... 54 Módulo Financiero XVIII 64. REPORTES BANCARIOS ...................................................................... 56 65. Pantalla Bienvenida Movimientos Bancarios .......................................... 57 66. Movimientos Bancarios - Seleccionar Cuenta......................................... 58 67. Movimientos Bancarios - Seleccionar Desde .......................................... 58 68. Movimientos Bancarios - Seleccionar el Tipo de Movimiento ................. 58 69. Movimientos Bancarios - Seleccionar Sucursal ...................................... 59 70. Movimientos Bancarios - Seleccionar Naturaleza del Movimiento .......... 59 71. Movimientos Bancarios - Botón Consultar -> Consulta ........................... 60 72. Movimientos Bancarios - Botón Imprimir ................................................ 60 73. Movimientos Bancarios - Botón Exportar A Cvs o Excel ......................... 61 74. Pantalla Bienvenida Conciliaciones Realizadas...................................... 62 75. Conciliaciones Realizadas - Seleccionar Cuenta .................................... 62 76. Conciliaciones Realizadas - Botón Imprimir ............................................ 63 77. Conciliaciones Realizadas - Botón Exportar A Excel o Cvs .................... 64 78. Pantalla Bienvenida Saldos Bancarios ................................................... 65 79. Saldos Bancarios - Consulta Directa ...................................................... 65 80. Saldos Bancarios - Botón Imprimir.......................................................... 66 81. Saldos Bancarios - Botón Exportar a Excel o Cvs .................................. 67 82. Pantalla Bienvenida Reporte de Razones Financieras ........................... 69 83. Índices Financieros - Seleccionar Periodo .............................................. 70 84. Índices Financieros - Seleccionar Periodo y Desde ................................ 70 Ilustración 85. Índices Financieros - Botón Generar -> Todos ...................... 71 Módulo Financiero XIX Ilustración 86. Índices Financieros -> Generar -> Ver Gráfica ...................... 72 Ilustración 87. Índices Financieros - Botón Imprimir ..................................... 73 Ilustración 88. Índices Financieros - Botón Exportar a Excel o Cvs .............. 73 Ilustración 89. MANTENIMIENTOS RAZONES FINANCIERAS ................... 74 Ilustración 90. Pantalla Bienvenida Razones Financieras ............................ 75 Ilustración 91. Razones Financieras Grupo .................................................. 75 Ilustración 92. Razones Financieras - Botón Nuevo Grupo .......................... 76 Ilustración 93. Razones Financieras - Seleccionar Grupo y Objetivo ........... 76 Ilustración 94. Razones Financieras - Editor de Formulas............................ 77 Ilustración 95. Razones Financieras - Editor de Formulas -> Guardar ......... 78 Ilustración 96. Razones Financieras - Editar -> Botón Guardar .................... 79 Ilustración 97. Razones Financieras - Botón Procesar Búsqueda ................ 79 Ilustración 98. Razones Financieras - Botón Imprimir................................... 80 Ilustración 99. Razones Financieras - Botón Exportar A Excel o Cvs ........... 80 Ilustración 100. Razones Financieras - Editar Registros .............................. 81 Ilustración 101. Pantalla Bienvenida Grupos Razones Financieras .............. 82 Ilustración 102. Grupos Razones Financieras - Editar Razón Financiera ..... 83 Ilustración 103. Grupos Razones Financieras - Edición ............................... 83 Ilustración 104. Grupos Razones Financieras - Editar -> Botón Guardar ..... 84 Ilustración 105. Grupos Razones Financieras - Botón Nuevo ...................... 84 Ilustración 106. Grupos Razones Financieras - Nuevo -> Botón Guardar .... 85 Ilustración 107. Grupos Razones Financieras - Botón Buscar ...................... 85 Módulo Financiero XX Ilustración 108. Grupos Razones Financieras - Botón Imprimir .................... 86 Ilustración 109. Grupos Razones Financieras - Botón Exportar a Excel o Cvs ...................................................................................................................... 87 Ilustración 110. Pantalla Bienvenida Balance General Comparativo ............ 89 Ilustración 111. Balance General Comparativo - Ingreso Datos ................... 89 Ilustración 112. Balance General Comparativo - Botón Nuevo ..................... 90 Ilustración 113. Balance General Comparativo - Botón Reporte Horizontal . 91 Ilustración 114. Balance General Comparativo - Reporte Vertical ................ 91 Ilustración 115. Balance General Comparativo - Botón Exportar A Excel o Pdf ...................................................................................................................... 92 Ilustración 116. Balance General Comparativo - Ejemplo Exportar a Excel . 92 Ilustración 117. Balance General Comparativo - Botón Gráfico -> Pestaña Activo ............................................................................................................ 93 Ilustración 118. Balance General Comparativo - Botón Gráfico -> Pestaña Pasivo ........................................................................................................... 93 Ilustración 119. Balance General Comparativo - Botón Gráfico -> Pestaña Patrimonio ..................................................................................................... 94 Ilustración 120. Balance General Comparativo - Botón Imprimir .................. 94 Ilustración 121. Pantalla Bienvenida Estado de Resultado Comparativo...... 95 Ilustración 122. Estado de Resultado Comparativo - Botón Nuevo -> Seleccionar Sucursal .................................................................................... 97 Módulo Financiero XXI Ilustración 123. Estado de Resultado Comparativo - Botón Reporte -> Presentación Vertical .................................................................................... 97 Ilustración 124. Estado de Resultado Comparativo - Botón Exportar A Pdf o Excel ............................................................................................................. 98 Ilustración 125. Estado de Resultado Comparativo - Botón Exportar -> Ejemplo ......................................................................................................... 99 Ilustración 126. Estado de Resultado Comparativo - Botón Exportar -> Ejemplo Excel ............................................................................................. 100 Ilustración 127. Estado de Resultado Comparativo - Botón Imprimir .......... 101 Ilustración 128. Conciliación Bancaria ........................................................ 227 Ilustración 130. Reportes ............................................................................ 228 Ilustración 129. DFD Reportes Financieros ................................................ 228 Ilustración 131. . DFD de los Reportes – Razones Financieras .................. 229 Ilustración 132. Diagrama de Secuencia Bancos........................................ 230 Ilustración 4. Diagrama de Secuencias Depósitos ...................................... 231 Ilustración 134. Diagrama Secuencia Notas ............................................... 231 Ilustración 135. Diagrama Secuencias Transferencias ............................... 232 Ilustración 136. Diagrama Secuencia Anulaciones ..................................... 233 Ilustración 137. Diagrama Secuencia Conciliación Bancaria ...................... 234 Ilustración 138. Secuencia reportes Bancarios ........................................... 235 Ilustración 139. Diagrama Secuencia Razones .......................................... 236 Ilustración 140. Diagrama Secuencia Reportes .......................................... 237 Módulo Financiero XXII ÍNDICE DE TABLAS Tabla 1 Entidad: fin_banco ......................................................................... 104 Tabla 2 Entidad: fin_banco_cheques_devueltos......................................... 105 Tabla 3 Entidad: fin_banco_conciliacion ..................................................... 106 Tabla 4 Entidad: fin_banco_cuenta............................................................. 107 Tabla 5 Entidad: fin_banco_detalla ............................................................. 108 Tabla 6 Entidad: fin_banco_detalle_movimiento......................................... 109 Tabla 7 Entidad: fin_banco_movimientos ................................................... 111 Tabla 8 Entidad: fin_banco_notasdebcheques ........................................... 112 Tabla 9 Entidad: fin_banco_tipo_cuenta ..................................................... 113 Tabla 10 Entidad: fin_banco_tipo_movimiento ........................................... 114 Tabla 11 Entidad: fin_tipo_nota .................................................................. 115 Tabla 12 Entidad: fin_formulas ................................................................... 117 Tabla 13 Entidad:fin_grupo_razones .......................................................... 118 Tabla 14 Entidad: fin_cuentas_totales ........................................................ 119 Tabla 15 Entidad: fin_cuentas_totales_temp .............................................. 120 Módulo Financiero MANUAL DE USUARIO 2 1 Módulo Financiero Para acceder al ERP Business Gestor debemos acceder a la dirección Web del servidor que contiene a nuestro Módulo Financiero, como se aprecia en la Ilustracion 1. Pantalla de Bienvenida. Ejemplo: http//192.168.0.1/BG26-02-2010/BG/index.php Posteriormente el sistema nos pedirá autenticarnos, es decir; solicitara ingreso de un usuario y una contraseña. Ilustración 1. Pantalla de Bienvenida Usuario: Se ingresa el usuario según el nombre de identificación de acceso proporcionado por seguridades. Contraseña: Clave proporcionada por el módulo de seguridades para el respectivo acceso al sitio Web. Módulo Financiero 3 1.1 BANCO El E.R.P. permite que EL MÓDULO funcione en forma independiente o integrado con otros módulos del mismo sistema, tiene capacidad para manejar: o Tantas EMPRESAS como número de combinaciones se pueden formar con los dígitos alfanuméricos. o Un sin número de ENTIDADES BANCARIAS O GRUPOS CREDITICIOS, por cada Empresa. o Tantas CUENTAS BANCARIAS por cada una de las Entidades Bancarias, el límite de número de cuentas bancarias será el que la organización desee. El módulo interactúa automáticamente con otros módulos, tales como Contabilidad, Cuentas por Pagar, Caja, Facturación, etc. Todo dependiendo de los módulos generales disponibles dentro del Sistema Integrado Business Gestor. Módulo Financiero 4 1.2 Mantenimientos Bancos. Este componente permite al usuario crear un mantenimiento preventivo o correctivo establecido oficialmente por el software, pudiendo enlazar estas a un sistema o categoría de cuenta. Los mantenimientos se gestionan de forma completamente manual por medio de pantalla y se puede incluir en ellos cualquier tipo de cuenta, con el control de números de cuenta; Las cuentas de mantenimiento pueden agruparse por tipos de cuenta. Es posible asignar varias cuentas a una entidad crediticia, codificables mediante las respectivas tablas creadas para el mismo trabajo. Permite realizar mantenimientos, en espera de confirmación por parte del administrador. Módulo Financiero 5 Entre sus principales funciones encontramos las siguientes: 1.2.1 Entidades Bancarias Es el conjunto de entidades o instituciones que, dentro de una economía determinada, prestan el servicio de banco. Seleccionamos desde el menú de módulos la presente opción para que nos lleve automáticamente a la pantalla “buscar”, la imagen muestra una barra de menú (toolbar), y el ingreso de datos que se requieren para generar una consulta, creación o modificación de una entidad bancaria. Ilustración 2. Pantalla de bienvenida Entidades Bancarias Botón Nuevo: Nos lleva a una nueva ventana para ingreso de datos para poder identificar la nueva institución crediticia. Módulo Financiero 6 Código: Lo da el sistema automáticamente al guardar. Ruc: Número de identificación fiscal obligatorio. Nombre: Razón Social de la institución bancaria. Dirección: Ubicación de la institución. País: Nación de la institución. Provincia: Demarcación de la institución. Ciudad: Localidad de la institución. Teléfono: Número para poder contactar a la institución. Teléfono-Fax: Número para envío de documentos Web Site: Página Oficial en internet para banca en línea e-mail: Dirección de correo electrónico para comunicación. Observación: Ingreso de datos alternativos de la institución. Ilustración 3. Entidades Bancarias - Botón Nuevo -> Ingreso Módulo Financiero 7 Botón Buscar: Esta opción permite buscar la institución bancaria, sea esta por código o nombre. Nos permite la edición o eliminación de la información por medio de la opción ubicada en la parte derecha de la presentación buscada. Ilustración 4. Entidades Bancarias - Botón Buscar Botón Imprimir: La opción permite imprimir a formato PDF. Para así poder almacenar el documento en físico y respaldo en archivos sin que pueda ser manipulado electrónicamente. Módulo Financiero 8 Ilustración 5. Entidades Bancarias - Botón Imprimir -> PDF 1.2.2 Cuentas Bancarias Una cuenta bancaria es un contrato financiero con una entidad bancaria en virtud del cual se registran el balance y los subsiguientes movimientos de dinero del cliente. Existen diferentes tipos de cuentas bancarias, como las cuentas corrientes, para efectuar las operaciones bancarias del día a día, o las cuentas de ahorro para encomendar la custodia de fondos de un cliente. Seleccionamos desde el menú de módulos la presente opción para que nos lleve automáticamente a la pantalla “buscar”, la imagen muestra una barra de menú (toolbar), y el ingreso de Módulo Financiero 9 datos que se requieren para generar una consulta, creación o modificación de una entidad bancaria. Ilustración 6. Pantalla Bienvenida Cuentas Bancarias Botón Nuevo: Nos lleva a una nueva ventana para ingreso de datos para poder identificar la nueva institución crediticia. Ilustración 7. Cuentas Bancarias - Botón Nuevo -> Ingreso Módulo Financiero 10 Pestaña Cuenta Código: Generado automáticamente por el sistema. Número de cuenta: Ingreso según código suministrado por el Banco. Banco: Identificación de la institución según Base de Datos. Cuenta Contable: Para la respectiva partida doble en la contabilidad. Fecha de Apertura: Creación o reapertura de la cuenta. Nombre de Cuenta: Según sea el caso lo da el origen de la cuenta. Secuencia de Cheque (Siguiente): Número en que inicia o reinicia un determinado Cheque. Titular: Identificación de quién es el dueño de la cuenta. Nota: Datos adicionales para ingresar, de darse el caso. Pestaña Contacto Contacto: Identifica a la persona encargada de la cuenta (Oficial). Teléfono: Número para contactar al oficial de cuenta. Teléfono-Fax: Número para envío de correspondencia. Módulo Financiero 11 Cargo: Ocupación de la persona que atiende la cuenta en el banco. Comentario: Cualquier comentario adicional para referirse al contacto. Botón Buscar: Genera automáticamente la búsqueda de la información como también si lo desea por especificación de la institución o nombre de cuenta. Ilustración 8. Cuentas Bancarias - Botón Buscar Se tiene también la edición o eliminación del registro según vemos a continuación. Módulo Financiero 12 Ilustración 9. Cuentas Bancarias - Editar Banco La edición puede ser desde la pestaña Cuenta como también la del Contacto. Ilustración 10. Cuentas Bancarias - Editar Cuenta Pestaña Cuenta Código: Generado automáticamente por el sistema. Número de cuenta: Ingreso según código suministrado por el Banco. Módulo Financiero 13 Banco: Identificación de la institución según Base de Datos. Cuenta Contable: Para la respectiva partida doble en la contabilidad. Fecha de Apertura: Creación o reapertura de la cuenta. Nombre de Cuenta: Según sea el caso lo da el origen de la cuenta. Secuencia de Cheque (Siguiente): Número en que inicia o reinicia. Titular: Identificación de quién es el dueño de la cuenta. Nota: Datos adicionales para ingresar, de darse el caso. Pestaña Contacto Contacto: Identifica a la persona encargada de la cuenta en la institución crediticia (Oficial de cuenta). Teléfono: Número para contactar al oficial de cuenta. Teléfono-Fax: Número para envío de correspondencia. Cargo: Ocupación de la persona que atiende la cuenta en el banco (oficial de cuenta, cajero o administrador). Comentario: Cualquier comentario adicional para referirse al contacto en la misma institución crediticia de la cuenta. Módulo Financiero 14 Botón Imprimir: Esta opción permite imprimir el documento en formato PDF. Ilustración 11. Cuentas Bancarias - Botón Imprimir 1.2.3 Tipo de Notas Bancarias Entre los principales documentos bancarios de esta clase tenemos dos, que son notas de crédito y notas de débito, son créditos o débitos debido a las diferentes transacciones que se realizan en el día a día de una organización. Seleccionamos desde el menú de módulos la opción para que nos lleve a la pantalla “consultar”, la imagen muestra una barra de menú (toolbar), y el ingreso de datos que se requieren para generar una consulta, creación o modificación de una nota bancaria. Módulo Financiero 15 Ilustración 12. Pantalla Bienvenida Tipo de Notas Bancarias Botón Nuevo: Crea una nueva Nota, sea esta según las especificaciones ingresadas. Ilustración 13. Tipo de Notas Bancarias - Seleccionar Editar y luego Guardar Módulo Financiero 16 Notas: Puede ser de Crédito o de Débito bancario. Ilustración 14. Tipo de Notas Bancarias - Botón Nueva Nota Descripción: Se puede definir un identificador o glosa para describir el movimiento. Contabilidad: Se identifica la Cuenta Contable que identifica la Nota Bancaria. Módulo Financiero 17 Ilustración 15. Tipo de Notas Bancarias - Nuevo -> Seleccionar Cuenta Contable Botón Guardar: Almacena la Nota según la creación. Ilustración 16. Tipo de Notas Bancarias - Botón Guardar Nota Módulo Financiero 18 Botón Imprimir: Esta opción permite imprimir el documento en formato PDF. Ilustración 17. Tipo de Notas Bancarias - Botón Imprimir 1.2.4 Tipo de Protestos El protesto de un cheque es el acto que permite acreditar en la forma prevista por ley que se ha producido una negativa del firmante a pagar en esa fecha; en el caso de que el cheque haya de sido mal endosado o falta de firma, como también falta de fondos una vez llegado el momento del vencimiento, sea cual sea el modo en que éste se haya fijado es un protesto. Ingresamos desde el menú de módulos a la presente opción para que nos lleve automáticamente a la pantalla “consultar”, la imagen muestra una barra de menú (toolbar), y el ingreso de Módulo Financiero 19 datos que se requieren para generar una consulta, creación o modificación del documento que fue devuelto en un determinado momento. Ilustración 18. Pantalla Bienvenida Tipo de Protestos Botón Nuevo: Permite crear e identificar un cheque o documento que esté protestado por la institución crediticia. Descripción: Se desea el ingreso específico del porqué se protestó el documento, no ha simple vista sino en concreto y al detalle. Cargo A: Se desea saber quién se equivoco o hizo mal utilización del documento, dentro de la organización. Módulo Financiero 20 Ilustración 19. Tipo de Protestos - Botón Nuevo -> Pantalla Llenar Botón Guardar: Permite almacenar las razones por las que fue protestado el documento. Ilustración 20. Tipo de Protestos - Botón Guardar Cambios Módulo Financiero 21 Botón Consultar: Se puede consultar por 2 métodos mostrados, Descripción y Tipo Notas, en esta última tenemos las originadas por el cliente e internas a nuestra institución. Ilustración 21. Tipo de Protestos - Botón Consultar -> Seleccionar Tipo Nota Icono Edición: Podemos editar la información de ser necesario, se lo hace ubicando el cursor a la derecha de la opción a editar, luego nos envía a una ventana para su edición. I Ilustración 22.Tipo de Protestos - Editar Nota -> Seleccionar Cargo A Módulo Financiero 22 Botón Guardar: Nos permite almacenar los cambios realizados en la edición del tipo de protesto. Ilustración 23. Tipo de Protestos - Edición -> Guarda Cambios Botón Imprimir: Esta opción permite imprimir o exportar el documento en formato PDF, para su almacenamiento físico. Ilustración 24. Tipo de Protestos - Botón Imprimir Módulo Financiero 23 1.2.5 Procesos Bancarios El ingreso desde el menú de módulos a la presente opción, nos lleva automáticamente a la pantalla de Inicio luego a “Depósitos Generales”, la imagen mostrará una barra de menú (toolbar), y el ingreso de datos que se requieren para generar un depósito y a la vez consulta, así como la modificación del documento que fue creado en un determinado momento. Ilustración 25. Pantalla Procesos Bancarios Módulo Financiero 24 1.2.6 Depósitos Generales Depósito Bancario de Dinero: es un contrato con el cual el depositante entrega una suma de dinero a una institución de crédito para su guarda y custodia. Ilustración 26. Pantalla de inicio a Depósitos Generales. Área Depósitos Cuenta: Se escoge de entre las diferentes instituciones bancarias existentes en la empresa, además de que estén en buen funcionamiento y generen procesos. Módulo Financiero 25 Ilustración 27. Botón Procesar - Seleccionar Cuenta Número del documento: Identificación del documento, ingresado manualmente, para concordancia de registros. Sucursal: Se escoge una de todas las sucursales existentes y activas registradas por la organización a nivel nacional. Fecha: Día en que se crea o creo dicha transacción para su registro. Total: Cantidad extraída según datos solicitados por esta página. Son: Descripción del mismo “Total” pero en letras, para seguir estándar. Concepto: Breve reseña de lo que se desea registrar en la transacción. Módulo Financiero 26 Ilustración 28. Botón Procesar - Seleccionar Cuenta Contable Área Detalle Depósitos Cuenta: Identifica la institución en la que se depósito según valor. Descripción: Indica las cuentas contables que intervinieron en la transacción. Debe: Indica la entrada a la cuenta "bancos". Haber: Indica la salida de las cuentas "intervenidas". Módulo Financiero 27 Botón Procesar: Indica si desea Aceptar las transacciones hechas para poder ser almacenadas en la Base de Datos. Ilustración 29. Botón Procesar - Guardar Cambios 1.2.7 Notas de Crédito Las notas de crédito son documentos que se emiten para anular operaciones, aceptar devoluciones y conceder descuentos o bonificaciones. Ingresamos desde el menú de módulos a la presente opción para que nos lleve automáticamente a la pantalla “consultar”, la imagen muestra una barra de menú (toolbar), y el ingreso de Módulo Financiero 28 datos que se requieren para generar una consulta, creación o modificación del documento que fue devuelto en un determinado momento. Ilustración 30. Pantalla de Bienvenida Notas de Crédito Área Nota de Crédito Cuenta: En este campo seleccionamos la institución bancaria que interviene en esta transacción. Módulo Financiero 29 Ilustración 31. Notas de Crédito - Seleccionar Cuenta Sucursal: Escogemos una de las diferentes sucursales activas de la empresa. Ilustración 32. Notas de Crédito - Seleccionar Tipo Nota y Sucursal Tipo de Nota: Escogemos el tipo de entre las permitidas por el sistema Fecha: Día en que se hace la transacción. Documento #: Identificación con que se registra el documento. Módulo Financiero 30 Valor: Cantidad en cifras de lo que se va gestionar. Observación: Ingreso de una descripción del porqué se generó dicha nota de crédito. Ilustración 33. Notas de Crédito - Ver Registro Área Contabilidad Cuenta: Identifica la cuenta según el Plan de Cuentas de Contabilidad, se lo puede apreciar bajo el ingreso de los Datos en el sector “Contabilidad”. Descripción: Describe en sí la cuenta Contable que interviene en la transacción siendo esta siempre para el DEBE la cuenta “banco” y varía para el Haber Debe: Identifica las cantidades que ingresan a la cuenta Banco. Haber: Identifica las cuentas que salieron para entrar a la cuenta Banco. Módulo Financiero 31 Botón Guardar: Permite Almacenar la transacción realizada, de estar aprobada por el sistema pasa a la base de datos para su respectiva consulta en lo posterior. Ilustración 34. Notas de Crédito - Botón Guardar 1.2.8 Notas de Débito Es un comprobante que el banco envía a su cliente, en la que se le notifica haber cargado o debitado en su cuenta una determinada suma o valor, por el concepto que se indica en la misma nota. Este documento incrementa el valor de la deuda o saldo de la cuenta, ya sea por un error en la facturación, interés por mora en el pago, o cualquier otra circunstancia que signifique el incremento del saldo de la cuenta. Ingresamos desde el menú de módulos a la presente opción para que nos lleve automáticamente a la pantalla “crear”, la Módulo Financiero 32 imagen muestra una barra de menú (toolbar), y el ingreso de datos que se requieren para generar una creación o modificación del documento que fue emitido en un determinado momento. Ilustración 35. Pantalla Bienvenida notas de Débito Área Nota de Débito Cuenta: En este campo seleccionamos la institución bancaria que interviene en esta transacción. Módulo Financiero 33 Ilustración 36. Notas de Débito - Seleccionar Cuenta y Sucursal Sucursal: Escogemos una de las diferentes sucursales activas de la empresa. Tipo de Nota: Escogemos el tipo de entre las permitidas por el sistema Ilustración 37. Notas de Débito - Seleccionar Tipo Nota y Fecha Fecha: Día en que se hace la transacción. Documento #: Identificación con que se registra el documento. Módulo Financiero 34 Valor: Cantidad en cifras de lo que se va gestionar Saldo Banco: Cantidad que se encuentra en el banco según movimientos en el sistema business_gestor. Observación: Pequeña descripción de lo que se realiza en la transacción, sólo para identificar cómo y por qué. Botón Guardar: Permite Almacenar la transacción realizada, de estar aprobada por el sistema pasa a la base de datos para su respectiva consulta en lo posterior. Ilustración 38. Notas de Débito - Botón Guardar Área Contabilidad Cuenta: Identifica la cuenta según el Plan de Cuentas de Contabilidad, se lo puede apreciar bajo el ingreso de los Datos en el sector “Contabilidad”. Módulo Financiero 35 Descripción: Describe en sí la cuenta Contable que interviene en la transacción siendo esta siempre para el DEBE la cuenta “banco” y varía para el Haber. Debe: Identifica las cantidades que ingresan a la cuenta Banco. Haber: Identifica las cuentas que salieron para entrar a la cuenta Banco. Ilustración 39. Notas de Débito - Botón Imprimir Ilustración 40. Notas de Débito - Botón Anular Documento Módulo Financiero 36 1.2.9 Conciliación Bancaria La conciliación bancaria es un proceso que permite confrontar y conciliar los valores que la empresa tiene registrados, de una cuenta de ahorros o corriente, con los valores que el banco suministra por medio del extracto bancario Ingresamos desde el menú de módulos a la presente opción para que nos lleve automáticamente a la pantalla “subida de archivo”, la imagen muestra una barra de menú (toolbar), y el ingreso de archivo que se requiere para generar la creación o modificación de la conciliación. Ilustración 41. Pantalla Bienvenida Conciliación Bancaria Módulo Financiero 37 Procesar Conciliación: Esta pantalla nos permite muchas opciones para crear una conciliación, los métodos Subir Archivo o Saltar este paso, no requieren de mucho conocimiento ni esfuerzo, las interfaz le permitirá a continuación aprender las 2 maneras. Ilustración 42. Conciliación Bancaria - Opciones a Escoger Browse: Permite buscar el archivo emitido por el banco para poder corroborar las transacciones que se hicieron a través de un determinado tiempo. Módulo Financiero 38 Ilustración 43. Conciliación Bancaria - Subir Archivo Saltar este Paso: Requiere información detallada de lo que existe en nuestro sistema, ya que no se tiene un archivo emitido por la institución crediticia para su respectiva conciliación. Ilustración 44. Conciliación Bancaria - Saltar este Paso Nos trae a la presente página para hacer una concordancia de las transacciones realizadas. Módulo Financiero 39 Ilustración 45. Conciliación Bancaria - Elegir Cuenta a Conciliar Cuenta: Permite elegir a una de las instituciones bancarias que deseamos conciliar. Conciliación Anterior: Trae del sistema automáticamente la conciliación inmediata anterior para poder ser analizada. Fecha Ec.: Tiempo en que se genera la conciliación con horario de ecuador. Ilustración 46. Conciliación Bancaria - Seleccionar Fecha Saldo en Banco: Trae el valor existente y actual del Saldo hasta la fecha. Saldo a Conciliar: Valor que se ha generado desde la base. Módulo Financiero 40 Mes: Extraído automáticamente del sistema, de ser el caso o modificarse para ver qué mes se va a conciliar. Año: Extraído automáticamente del sistema de, ser el caso modificarse para ver qué año se va a conciliar. Total conciliado: Valor que se genera a través de un cálculo generado por la misma página según datos almacenados. Diferencia: Valor que se genera a través del cálculo de la página y que permite saber el grado de error y concordancia con la banca. Fecha: Fecha en que se generó la transacción. No. documento: Identificación con la que se almacenó la transacción. Concepto: El motivo por el cual se generó la transacción. Sucursal: Lugar de donde se generó la transacción. Tipo: Qué tipo de entrada o salida se generó Operación: Si fue de alguna salida o entrada. Valor: Cantidad con la que se generó dicha transacción. Botón Guardar: Permite Almacenar la conciliación realizada, de estar aprobada por el sistema pasa a la base de datos para su respectiva consulta en lo posterior. Módulo Financiero 41 Ilustración 47. Conciliación Bancaria - Botón Conciliar 1.2.10 Transferencias Operación por la que por orden de un cliente de una entidad bancaria se produce el traspaso de una determinada cantidad de dinero que el cliente tiene depositado en una cuenta en ese banco a otra cuenta de la misma institución financiera o de otra distinta, y por lo que la entidad puede cobrar a su cliente una comisión en concepto de gastos de transferencia. Ingresamos desde el menú de módulos a la presente opción para que nos lleve automáticamente a la pantalla “transferencias”, la imagen muestra una barra de menú (toolbar), y el ingreso de datos que se requiere para generar la transferencia entre cuentas. Módulo Financiero 42 Ilustración 48. Pantalla de Bienvenida Transferencias Área Transferencia Sucursal: Escogemos una de las diferentes sucursales activas de la empresa y en funcionamiento de operaciones. Ilustración 49. Transferencias - Seleccionar Sucursal Número del Documento: ingresado manualmente Módulo Financiero Identificación del documento, 43 Cuenta Origen: Entidad o cuenta en donde se encuentra el dinero a ser trasladado o transferido. Cuenta Destino: Entidad o cuenta en donde se traslada o recibe lo transferido. Monto: Cantidad que se ingresa manualmente para ser transferida. Saldo: Cantidad que le que a la cuenta que fue debitada. Fecha: Tiempo en que se genera la transacción. Son: Cantidad generada automáticamente por el sistema en letras. Concepto: El por qué del monto trasladado. Área Detalle Contabilidad Cuenta: Número de cuenta o Institución que fue afectada con el giro del débito Descripción: Breve descripción de la transacción, cuenta banco. Debe: Cantidad que ingresó. Haber: Cantidad que egresó. Botón Guardar: Permite Almacenar la transferencia realizada, de estar aprobada por el sistema según datos visualizados en Módulo Financiero 44 pantalla, pasa a la base de datos para su respectiva consulta en lo posterior. Ilustración 50. Transferencias - Botón Guardar 1.2.11 Depósito Caja Banco Efectivo Ingresamos desde el menú de módulos a la opción para que nos lleve automáticamente a la pantalla “depósitos”, la imagen muestra una barra de menú (toolbar), y el ingreso de datos que se requiere para generar un depósito a la institución financiera seleccionada para este fin. Módulo Financiero 45 Ilustración 51. Pantalla Bienvenida Depósito Caja Banco Efectivo Área Depósitos Cuenta: Se escoge de entre las diferentes instituciones bancarias que se encuentren en funcionamiento con las cuentas. Ilustración 52. Depósito Caja Banco Efectivo - Seleccionar Cuenta Bancaria Módulo Financiero 46 Número del documento: Identificación del documento, ingresado manualmente por el usuario. Sucursal: Se escoge una de todas las sucursales existentes y activas. Ilustración 53. Depósito Caja Banco Efectivo - Seleccionar Sucursal Fecha: Día en que se crea o creo dicha transacción para su registro. Total: Cantidad extraída según datos solicitados y registros de esta página. Son: Descripción del mismo “Total” pero en letras, para seguir estándar. Concepto: Breve reseña de lo que se desea registrar en la transacción. Módulo Financiero 47 Área Detalle Depósitos Traer Movimientos: Extrae los registros que están registrados para el respectivo depósito. Visto bueno: Si se desea depositar se lo selecciona y va sumando al "Total". Nombre: La cuenta que es la emisora del efectivo para ser llevado al banco. Fecha: Tiempo en que se generó la transacción. Contabilidad: Cuenta contable afectada. Saldo: Cantidad en que se ve el valor del depósito de cada una de las cuentas seleccionadas por medio del visto bueno. Botón Procesar: Una vez ingresado los datos se verifica que todos los campos requeridos estén llenos para validarlos, teniendo estos se hace el respectivo proceso de depósito. Ilustración 54. Depósito Caja Banco Efectivo - Botón Procesar -> Alerta Módulo Financiero 48 1.2.12 Depósito Caja Banco Cheque Ingresamos desde el menú de módulos a la opción para que nos lleve automáticamente a la pantalla “depósitos”, la imagen muestra una barra de menú (toolbar), y el ingreso de datos que se requiere para generar un depósito a la institución financiera seleccionada para este fin. Ilustración 55. Pantalla Bienvenida Depósito Caja Banco Cheques Módulo Financiero 49 Área Depósitos Cuenta: Se escoge de entre las diferentes instituciones bancarias que se encuentren en funcionamiento con las cuentas. Ilustración 56. Depósito Caja Banco Cheques - Seleccionar Cuenta Número del documento: Identificación del documento, ingresado manualmente por el usuario. Sucursal: Se escoge una de todas las sucursales existentes y activas. Ilustración 57. Depósito Caja Banco Cheques - Seleccionar Sucursal Módulo Financiero 50 Fecha: Día en que se crea o creo dicha transacción para su registro. Total: Cantidad extraída según datos solicitados y registros de esta página. Son: Descripción del mismo “Total” pero en letras, para seguir estándar. Concepto: Breve reseña de lo que se desea registrar en la transacción. Área Detalle Depósitos Traer Movimientos: Extrae los registros que están registrados para el respectivo depósito. Visto bueno: Si se desea depositar se lo selecciona y va sumando al "Total". Ilustración 58. Depósito Caja Banco Cheques - Visto Bueno Seleccionando el Check Módulo Financiero 51 Nombre: La cuenta que es la emisora del efectivo para ser llevado al banco. Fecha: Tiempo en que se generó la transacción. Contabilidad: Cuenta contable afectada. Saldo: Cantidad en que se ve el valor del depósito de cada una de las cuentas seleccionadas por medio del visto bueno. Botón Procesar: Una vez ingresado los datos se verifica que todos los campos requeridos estén llenos para validarlos, teniendo estos se hace el respectivo proceso de depósito, se almacenan los registros para su futura consulta. Ilustración 59. Depósito Caja Banco Cheques - Botón Procesar Módulo Financiero 52 1.2.13 Registro Cheques Protestados en Depósito Es común que a una empresa lleguen cheques sin fondos o con cualquier otro problema que luego son devueltos por el banco, debiendo la empresa registrar este hecho en la contabilidad. Ingresamos desde el menú de módulos a la opción para que nos lleve automáticamente a la pantalla “registro”, la imagen muestra una barra de menú (toolbar), y el ingreso de datos que se requiere para generar un registro a la institución financiera seleccionada para este fin. Ilustración 60. Pantalla de bienvenida Registro Cheques Protestados en Depósito Módulo Financiero 53 Sucursal: Se escoge una de todas las sucursales existentes y activas. Ilustración 61. Registro Cheques Protestados en Depósito Seleccionar Sucursal Número Documento del Banco: Se ingresa según informe emitido por el banco, en el mismo existe el número del documento. Ingreso Depósitos: Aquí se encuentra según datos guardados y registrados los distintos depósitos realizados para ir asignando la concordancia con el banco. Ingreso Cheque: Identifica el cheque en sí que se está protestando en la banca. Módulo Financiero 54 Ilustración 62. Registro Cheques Protestados en Depósito Seleccionar Cheques Tipo de Cargo: Se puede escoger de entre los más comunes tipos de protestos. Ilustración 63. Registro Cheques Protestados en Depósito Seleccionar Tipo de Cargos Módulo Financiero 55 Valores de Recargos: Aquí se ingresa el monto que cobra la institución bancaria por el protesto del cheque siendo este un valor variable, no siempre son los mismos aunque sea por el mismo motivo. Valor total: Tenemos la sumatoria del total que se generó por protestarse un cheque. Observación: Aquí el ingreso de un comentario para justificar el motivo del protesto para mayor claridad en el futuro. Módulo Financiero 56 1.2.14 Reportes Bancarios El reporte bancario, es el que registra el “detalle de movimientos” de las diferentes cuentas de las últimas fechas o indica que ésta fue abierta desde una fecha determinada como también puede ser reactivada presentando los respectivos depósitos iniciales. Ilustración 64. REPORTES BANCARIOS Módulo Financiero 57 1.2.15 Movimientos Bancarios Esta opción se encarga de registrar en forma automática todos los movimientos bancarios que se realizaron en la empresa, tales como depósitos, retiros, entre otros. Al ingresar a ella, el módulo le muestra la siguiente pantalla: Ingresamos desde el menú de módulos a la opción para que nos lleve automáticamente a la pantalla “consulta”, la imagen muestra una barra de menú (toolbar), y el ingreso de datos que se requiere para generar un registro a la institución financiera seleccionada para este fin. Ilustración 65. Pantalla Bienvenida Movimientos Bancarios Módulo Financiero 58 Área Consulta Movimientos Cuenta: Seleccionar de entre las diferentes cuentas existentes y activas que se tiene en el sistema. Ilustración 66. Movimientos Bancarios - Seleccionar Cuenta Desde: Representa el inicio del periodo a consultar. Ilustración 67. Movimientos Bancarios - Seleccionar Desde Tipo Movimiento: Se puede seleccionar de entre una gama de movimientos tales como, Depósitos, transferencias, Notas y más. Ilustración 68. Movimientos Bancarios - Seleccionar el Tipo de Movimiento Módulo Financiero 59 Sucursal: Se escoge una de todas las sucursales existentes y activas. Ilustración 69. Movimientos Bancarios - Seleccionar Sucursal Hasta: Representa el final del periodo a consultar. Naturaleza del Movimiento: Pudiendo ser la naturaleza entrante o saliente de dinero. Ilustración 70. Movimientos Bancarios - Seleccionar Naturaleza del Movimiento Descripción: Breve reseña de lo que se desea explicar en el por qué de la consulta. Número Documento: Ingresado manualmente para tener un respaldo del mismo en carpeta. Módulo Financiero 60 Botón Consultar: Extrae de la base de datos todos los movimientos generados a través del tiempo solicitado y según los parámetros de restricción que se llenaron en la ventana a continuación. Ilustración 71. Movimientos Bancarios - Botón Consultar -> Consulta Botón Imprimir: Esta opción permite imprimir el documento en formato Pdf. Para su respectiva impresión como informe de respaldo y archivo. Ilustración 72. Movimientos Bancarios - Botón Imprimir Módulo Financiero 61 Botón Exportar A: Esta opción permite hacer documentos en Excel o CVS para su respectivo respaldo electrónico o impresión del mismo para respaldo documentado. Ilustración 73. Movimientos Bancarios - Botón Exportar A CVS o Excel 1.2.16 Conciliaciones Realizadas Esta automatización implica, conocer el total de conciliaciones realizadas en el sitio y primer lugar un significativo ahorro de tiempos de ejecución de estas tareas “rutinarias”, lo que directamente se traduce en un “ahorro de costes administrativos”; y en segundo lugar se identifica los puntos faltantes de conciliar. Ingresamos desde el menú de módulos a la opción para que nos lleve automáticamente a la pantalla “consulta”, la imagen Módulo Financiero 62 muestra una barra de menú (toolbar), y el ingreso de datos que se requiere para consultar los registros de la institución financiera seleccionada para este fin. Ilustración 74. Pantalla Bienvenida Conciliaciones Realizadas Área Cuentas Bancarias Seleccione la Cuenta bancaria: Seleccionamos la institución que se desea consultar si hay conciliación. Ilustración 75. Conciliaciones Realizadas - Seleccionar Cuenta Módulo Financiero 63 Área Conciliaciones Realizadas Cuenta: Identifica la cuenta bancaria que interviene. Banco: Identifica al Banco que se concilió. Fecha: tiempo en sí que se realizó la conciliación. Conciliación: Concilia de por si la cuenta Bancaria: Área de diseño para dividir. Valor conciliación: El valor que se concilió Debe: Lo que entró al banco en sí. Haber: Lo que salió del banco en sí. Botón Imprimir: Esta opción permite imprimir el documento en formato PDF. Para su respectiva impresión como informe de respaldo y archivo. Ilustración 76. Conciliaciones Realizadas - Botón Imprimir Módulo Financiero 64 Botón Exportar A: Esta opción permite hacer documentos en Excel o CVS para su respectivo respaldo electrónico o impresión del mismo para respaldo documentado. Ilustración 77. Conciliaciones Realizadas - Botón Exportar A Excel o CVS 1.2.17 Saldos Bancarios Cantidad de dinero con que se encuentra en un momento determinado, lo tiene una persona física o jurídica en una cuenta corriente o de ahorro domiciliada en una entidad bancaria. Ingresamos desde el menú de módulos a la opción para que nos lleve automáticamente a la pantalla “consulta”, la imagen muestra una barra de menú (toolbar), y el ingreso de datos que Módulo Financiero 65 se requiere para generar un registro a la institución financiera seleccionada para este fin. Ilustración 78. Pantalla Bienvenida Saldos Bancarios Contabilidad: Identifica la codificación de la sub cuenta contable según plan de cuentas de contabilidad. Ilustración 79. Saldos Bancarios - Consulta Directa Módulo Financiero 66 Nombre: La misma sub cuenta según codificación del plan de cuentas de contabilidad. Cuenta: Vemos el Número de cuenta de la Institución Bancaria indiferente si tiene más de una cuenta en cada banco, todas salen con su respectivo saldo. Saldo: Identifica cuánto se tiene en la cuenta a la hora de entrar al presente módulo. Botón Imprimir: Esta opción permite imprimir el documento en formato PDF. Para su respectiva impresión como informe de respaldo y archivo. Ilustración 80. Saldos Bancarios - Botón Imprimir Módulo Financiero 67 Botón Exportar A: Esta opción permite hacer documentos en Excel o CVS para su respectivo respaldo electrónico o impresión del mismo para respaldo documentado. Ilustración 81. Saldos Bancarios - Botón Exportar a Excel o CVS Módulo Financiero 68 1.3 Razones Financieras Este es uno de los instrumentos más implementados para realizar análisis financiero de entidades, ya que estas pueden medir en un alto grado la verdadera eficacia y comportamiento de la Organización. Estas presentan una perspectiva amplia de la situación financiera, puede precisar el grado de liquidez, de rentabilidad, el apalancamiento financiero, la cobertura y todo lo que tenga que ver con su actividad. 1.3.1 Reporte de Razones Financieras La vida de una empresa está sujeta a la habilidad con que se administren sus finanzas. Aún cuando una empresa esté bien dirigida en sus aspectos de producción, ventas y utilidades, estas solas características no son indicadores completos de su administración financiera, la cual puede juzgarse mediante el estudio de la solvencia, estabilidad y productividad de la empresa. En este se podrán consultar todos y cada uno de los índices que se haiga considerado para la reportaría. Módulo Financiero 69 Ilustración 82. Pantalla Bienvenida Reporte de Razones Financieras 1.3.2 Índices Financieros Son el producto de establecer resultados numéricos basados en relacionar dos cifras o cuentas, bien sea del Balance general o del Estado de Pérdidas y Ganancias. Por si no tienen mayor significado, sólo cuando se relacionan unos a otros y los comparamos. Adicionalmente nos permite calcular indicadores promedios. Ingresamos desde el menú de módulos a la opción para que nos lleve automáticamente a la pantalla “consulta”, la imagen muestra una barra de menú (toolbar), y el ingreso de datos que Módulo Financiero 70 se requiere para generar un registro periodo seleccionado para este fin. Ilustración 83. Índices Financieros - Seleccionar Periodo Área Periodo Periodo: Se selecciona el tipo de periodo que se desea analizar teniendo entre estos el Anual y el Mensual. Ilustración 84. Índices Financieros - Seleccionar Periodo y Desde Módulo Financiero 71 Desde: Representa el inicio del periodo a consultar. Grupo: Existe una cantidad considerable de índices a escoger en esta opción, de entre ellos tenemos endeudamiento, rentabilidad, etc. Hasta: Representa el final del periodo a consultar. Sucursal: Escogemos de entre las agencias activas y en funcionamiento según el sistema. Botón Generar: Consulta la base según los requerimientos del usuario para extraer los diferentes índices solicitados. Ilustración 85. Índices Financieros - Botón Generar -> Todos Módulo Financiero 72 Como vemos en la ventana anterior existe el ícono de gráfica, en este nos permite hacer un gráfico estadístico de los datos generados por el sistema. Podemos Imprimir la gráfica a en PDF, para una mejor comprensión y archivo documentado de lo generado según los datos del índice solicitado. Ilustración 86. Índices Financieros -> Generar -> Ver Gráfica Módulo Financiero 73 Botón Imprimir: Esta opción permite imprimir el documento en formato PDF. Para su respectiva impresión como informe de respaldo y archivo. Ilustración 87. Índices Financieros - Botón Imprimir Botón Exportar A: Esta opción permite hacer documentos en Excel o CVS para su respectivo respaldo electrónico o impresión del mismo para respaldo documentado. Ilustración 88. Índices Financieros - Botón Exportar a Excel o CVS Módulo Financiero 74 1.3.3 Mantenimientos Razones Financieras Ilustración 89. MANTENIMIENTOS RAZONES FINANCIERAS 1.3.4 Razones Financieras Ingresamos desde el menú de módulos a la opción para que nos lleve automáticamente a la pantalla “vista”, la siguiente imagen muestra una barra de menú (toolbar), y el ingreso de datos que se requiere para generar un registro del índice financiero seleccionado para este fin. Módulo Financiero 75 Ilustración 90. Pantalla Bienvenida Razones Financieras Área Fórmulas Financieras Ilustración 91. Razones Financieras Grupo Grupo: Identifica el grupo en si para poder escoger de entre las razones financieras y generar el reporte deseado Nombre Fórmula: Es como se le denomina en si a la fórmula para su descripción en el módulo. Módulo Financiero 76 Fórmula: Viene lo que consta o está compuesta (describe en formula) en si la fórmula. Área Resultado de la Consulta: Nuevo: Me lleva a la presente ventana para el ingreso del nuevo grupo de razones financieras. Ilustración 92. Razones Financieras - Botón Nuevo Grupo Grupo: Tenemos las diferentes clases a las que puede pertenecer esta nueva razón. Ilustración 93. Razones Financieras - Seleccionar Grupo y Objetivo Módulo Financiero 77 Nombre: Es el nombre con el que se denominará dicha nueva razón. Abreviatura: Es la palabra corta para identificar la nueva razón. Concepto: En sí lo que hace y para qué sirve dicha razón. Formula: En este campo podemos entrar y crear una formula como lo ilustramos a continuación: Pantalla básica para poder validar lo que ingresa el usuario, se trata de encerrar lo que realmente puede hacer el módulo. Área para visualizar el avance de la creación de formula. Área de signos que intervienen en la creación de formula. Números para poder ingresar por teclado. Cuentas que intervienen en las razones. Los respectivos botones para poder editar. Ilustración 94. Razones Financieras - Editor de Formulas Módulo Financiero 78 Botón Guardar: Almacena la formula una vez creada y validad por el sistema. Ilustración 95. Razones Financieras - Editor de Formulas -> Guardar Expresado En: Según lo escogido se puede identificar por porcentajes y más. Valor Sector: Dependerá del usuario, en base a índices estadísticos emitidos por entes encuestadores. Objetivo: este puede ser, bajo, alto medio, esto según el requerimiento del usuario. Alarmas: Verde, Naranja, Roja. Guardar: Almacena la Razón financiera según la creación. Módulo Financiero 79 Ilustración 96. Razones Financieras - Editar -> Botón Guardar Botón Procesar búsqueda: Se puede buscar las razones financieras creadas por el usuario o existentes en el sistema por medio de este botón. Ilustración 97. Razones Financieras - Botón Procesar Búsqueda Módulo Financiero 80 Botón Imprimir: Esta opción permite imprimir el documento en formato PDF. Para su respectiva impresión como informe de respaldo y archivo. Ilustración 98. Razones Financieras - Botón Imprimir Botón Exportar A: Esta opción permite hacer documentos en Excel o CVS para su respectivo respaldo electrónico o impresión del mismo para respaldo documentado. Ilustración 99. Razones Financieras - Botón Exportar A Excel o CVS Módulo Financiero 81 Icono Edición: Se puede editar la razón seleccionada por medio del ícono en la misma parte derecha, presentando el siguiente mensaje. Ilustración 100. Razones Financieras - Editar Registros 1.3.5 Grupos Razones Financieras Ingresamos desde el menú de módulos a la opción para que nos lleve automáticamente a la pantalla “principal” haciendo automáticamente la búsqueda de las razones existentes, la siguiente imagen muestra una barra de menú (toolbar), y el ingreso de datos que se requiere para generar un registro del índice financiero seleccionado para este fin. Módulo Financiero 82 Ilustración 101. Pantalla Bienvenida Grupos Razones Financieras Área de Grupos Nombre Grupo: Identifica a cada uno de las razones financieras habidas o existentes y creadas, por esta opción podemos buscarla. Descripción: Hace referencia al nombre de la razón financiera, por esta opción podemos buscarla. Área Resultados Consulta Nombre: Con este se identifica la clase de Razón financiera. Descripción: Hace referencia al nombre de la razón financiera, por esta opción podemos buscarla. Módulo Financiero 83 Edición: Permite Editar la razón como se ve a continuación. Ilustración 102. Grupos Razones Financieras - Editar Razón Financiera Ilustración 103. Grupos Razones Financieras - Edición Módulo Financiero 84 Botón Guardar: Permite guardar los cambios hechos a la razón financiera entrando desde la pantalla principal. Ilustración 104. Grupos Razones Financieras - Editar -> Botón Guardar Botón Nuevo: Nos lleva a una nueva ventana para ingreso de nuevos grupos de razones financieras y datos para poder identificar el nuevo grupo. Ilustración 105. Grupos Razones Financieras - Botón Nuevo Módulo Financiero 85 Botón Guardar: Permite guardar los cambios hechos al grupo de razón financiera entrando desde la pantalla anterior. Ilustración 106. Grupos Razones Financieras - Nuevo -> Botón Guardar Botón Buscar: Genera automáticamente la búsqueda de toda la información como también si así se lo desea por especificación del nombre del grupo o descripción de la razón financiera. Ilustración 107. Grupos Razones Financieras - Botón Buscar Módulo Financiero 86 Botón Imprimir: Esta opción permite imprimir el documento en formato PDF. Para su respectiva impresión como informe de respaldo y archivo. Ilustración 108. Grupos Razones Financieras - Botón Imprimir Módulo Financiero 87 Botón Exportar A: Esta opción permite exportar y hacer documentos en Excel o CVS para su respectivo respaldo electrónico o impresión del mismo para respaldo documentado. Ilustración 109. Grupos Razones Financieras - Botón Exportar a Excel o CVS Módulo Financiero 88 1.4 REPORTES COMPARATIVOS La solución más completa para establecer cambios uno a uno con sus estados financieros. Cuenta con herramientas simples, fáciles de usar y que permiten obtener información, además, ofrece diferentes opciones de acuerdo al modelo de negocio y al plan contable estándar. 1.4.1 Balance General Comparativo Un balance general comparativo muestra el activo, pasivo y capital contable de un negocio en dos ó más fechas determinadas, y además, contienen aumentos y/o disminuciones que ocurren de un año a otro, en términos monetarios o expresados en porcentajes. Los cambios son importantes porque dan una guía de la dirección en que se están desarrollando las operaciones y la misma organización. Seleccionamos desde el menú de módulos la presente opción para que nos lleve automáticamente a la pantalla “nuevo”, la imagen muestra una barra de menú (toolbar), y una serie de ingresos de datos que se requieren para generar un balance comparativo. Módulo Financiero 89 Ilustración 110. Pantalla Bienvenida Balance General Comparativo Detalle de las opciones contenidas en la página WEB. Ilustración 111. Balance General Comparativo - Ingreso Datos Nombre del Reporte: Identificado por la opción escogida desde el menú principal. Periodo: Se podrá escoger el periodo a generar, que son Anual o Mensual. Periodo Actual: Se escogerá la fecha del presente periodo. Módulo Financiero 90 Periodo a Comparar: Se escogerá entre uno de los periodos ya generados para ser así comparado. Empresa: Selecciona una de las empresas asociadas al grupo como también la principal. Sucursal: Selecciona una de las diferentes sucursales de la empresa. Tipo: Selecciona Resumido o Detallado, dependiendo de la gran cantidad de información que maneje la empresa. Barra de menú Botón Nuevo: Crea un nuevo Balance General Comparativo Ilustración 112. Balance General Comparativo - Botón Nuevo Botón Reporte: Presenta un reporte según lo solicitado en el sub-menú. Horizontal: Presenta el modo como se ve a continuación. Módulo Financiero 91 Ilustración 113. Balance General Comparativo - Botón Reporte Horizontal Vertical: Presenta en columnas los datos mostrados Ilustración 114. Balance General Comparativo - Reporte Vertical Módulo Financiero 92 Botón Exportar: Permite exportar la información presentada en página web a formatos PDF o Excel como se ve a continuación en la barra. Ilustración 115. Balance General Comparativo - Botón Exportar A Excel o PDF El siguiente es un ejemplo del formato exportado a Excel Ilustración 116. Balance General Comparativo - Ejemplo Exportar a Excel Módulo Financiero 93 Botón Gráfico: La opción permite presentar la gráfica estadística según los valores obtenidos por la data, como veremos tendremos 3 tipos de gráficos (Activo, Pasivo y el Patrimonio). Podremos cambiarnos por medio de las pestañas que se ven en la parte superior de la ventana activa. Ilustración 117. Balance General Comparativo - Botón Gráfico > Pestaña Activo Ilustración 118. Balance General Comparativo - Botón Gráfico > Pestaña Pasivo Módulo Financiero 94 Ilustración 119. Balance General Comparativo - Botón Gráfico > Pestaña Patrimonio Botón Imprimir: Esta opción permite imprimir o exportar el documento en formato PDF. Para su respectiva impresión como informe de respaldo y archivo en físico. Ilustración 120. Balance General Comparativo - Botón Imprimir Módulo Financiero 95 1.5 Estado de Resultado Comparativo Es un documento que refleja la situación financiera de un ente económico, ya sea de una organización pública o privada, y que permite efectuar un análisis comparativo de la misma; incluye el activo, el pasivo y el capital contable. Se formula de acuerdo con un formato y un criterio estándar para que la información básica de la empresa pueda obtenerse uniformemente como por ejemplo: posición financiera, capacidad de lucro y fuentes de fondeo. Seleccionamos desde el menú la opción para que nos lleve a la pantalla “nuevo”, la imagen muestra una barra de menú (toolbar), y los ingresos de datos que se requieren para generar un reporte. Ilustración 121. Pantalla Bienvenida Estado de Resultado Comparativo Módulo Financiero 96 Se presenta el detalle de las opciones contenidas en la página WEB. Nombre del Reporte: Identificado por la opción escogida desde el menú principal. Periodo: Se podrá escoger el periodo a generar, que son Anual o Mensual. Periodo Actual: Se escogerá la fecha del presente periodo. Periodo a Comparar: Se escogerá entre uno de los periodos ya generados para ser así comparado. Empresa: Selecciona una de las empresas asociadas al grupo como también la principal. Sucursal: Selecciona una de las diferentes sucursales de la empresa. Barra de menú Botón Nuevo: Crea un nuevo Estado de Resultado Comparativo en la base datos para su posterior apertura y análisis del mismo. Módulo Financiero 97 Ilustración 122. Estado de Resultado Comparativo - Botón Nuevo -> Seleccionar Sucursal Botón Reporte: Presenta un reporte según lo solicitado en el sub-menú. Horizontal: Presenta el modo como se ve a continuación. Vertical: Presenta en columnas los datos mostrados Ilustración 123. Estado de Resultado Comparativo - Botón Reporte -> Presentación Vertical Módulo Financiero 98 Botón Exportar: Permite exportar la información presentada en página web a formatos PDF o Excel según el requerimiento o naturaleza del reporte. Ilustración 124. Estado de Resultado Comparativo - Botón Exportar A PDF o Excel Módulo Financiero 99 Un ejemplo del reporte exportado a formato PDF. Ilustración 125. Estado de Resultado Comparativo - Botón Exportar -> Ejemplo Módulo Financiero 100 Un ejemplo del reporte exportado a formato Excel. Ilustración 126. Estado de Resultado Comparativo - Botón Exportar -> Ejemplo Excel Módulo Financiero 101 Botón Imprimir: Esta opción permite imprimir el documento en formato PDF. Para su respectiva impresión como informe de respaldo y archivo. Ilustración 127. Estado de Resultado Comparativo - Botón Imprimir Módulo Financiero 102 MANUAL TÉCNICO MÓDULO FINANCIERO Módulo Financiero 103 2 MANUAL TÉCNICO El manual técnico contiene la descripción detallada de cada una de las especificaciones técnicas usadas para desarrollar nuestro Módulo Financiero. Los estándares, reglas y normalización de las tablas y campos empleados para su desarrollo. Este documento contiene toda la información sobre los recursos utilizados por el proyecto, llevan una descripción muy bien detallada sobre las características físicas y técnicas de cada elemento. Por ejemplo: características de procesadores, velocidad, dimensiones del equipo, garantías, soporte, proveedores y equipo adicional. 2.1 Diccionario de Datos Como su nombre lo dice, el Diccionario de Datos describe el contenido y significado de cada una de las tablas usadas con sus respectivos campos, que es lo que almacenan cada uno de ellos y para qué sirven. Aquí se detalla la estructura de las tablas del Modelo E/R o DER. A continuación se detalla la estructura de cada una de las tablas que se crearon durante el desarrollo del Módulo Financiero. Módulo Financiero 104 2.1.1 Tablas del Diagrama Entidad Relación (DER). Tablas de Bancos Nombre de la tabla Tipo de tabla Clave primaria: cod_banco Clave foránea: gen_cod_participante fin_banco Maestra Descripción: Tabla que contiene la información detallada de cada una de las Instituciones Bancarias Descripción de los Campos Nombre Tamaño Descripción int 11 Código único, para identificar a cada banco, se autoincrementa secuencialmente gen_cod_participante int 11 Clave foránea para relacionarse con gen_participantes cod_banco Tipo Dato Para definir el estado, por default A=Activo estado varchar usuario_creacion varchar 42 Campo para identificar al usuario que creó el registro fecha_mod date 0 Campo para definir la a fecha de modificación del registro usuario_modifica varchar 42 Campo para identificar al usuario que modifica el registro fecha_creacion datetime 0 Campo para definir la a fecha de creación del registro 1 Tabla 1 Entidad: fin_banco Módulo Financiero 105 Clave primaria: cod_fin_banco_cheques_devueltos Nombre de la tabla Tipo de tabla Clave foránea: fin_banco_cheques_devueltos Maestra cod_fin_banco_movimientos Contabilidad: cod_cxc_cheques Descripción: Tabla que contiene la información detallada de cada uno de las cheques devueltos y mantiene relación directa con la tabla con cxc_cheques. Descripción de los Campos Nombre Tipo Dato Tamaño cod_fin_banco_cheques_devueltos int 11 cod_cxc_cheques varchar 100 cod_fin_banco_movimientos int 11 estado varchar 20 r_empresa float 10 r_cliente float 10 valor_total float 10 valor_cheque float 10 Descripción Código único para identificar cada cheque devuelto, se autoincrementa secuencialmente Clave foránea para relacionarse con cxc_cheques Clave foránea para relacionarse con fin_banco_movimientos Para definir el estado, por default A=Activo Para almacenar el recargo que se le hace a la empresa por cheque devuelto Para almacenar el recargo que se le hace al cliente por cheque devuelto Para guardar en base la sumatoria de el recargo al cliente, a la empresa y valor del cheque Campo para almacenar el valor real del cheque. Tabla 2 Entidad: fin_banco_cheques_devueltos Módulo Financiero 106 Clave primaria: cod_conciliacion Clave foránea: cod_fin_banco_movimientos Descripción: Tabla que almacena cada una de las conciliaciones bancarias realizadas. Nombre de la tabla fin_banco_conciliacion Tipo de tabla Maestra Descripción de los Campos Nombre Tipo Dato Tamaño Descripción cod_conciliacion int 11 cod_fin_banco_cuenta int 11 saldo_conciliacion_anterior double 0 saldo_conciliacion double 0 mes_conciliado int 11 Numero del mes conciliado saldo_banco double 10 Contiene el saldo de bancos fecha_estado_bancario date 0 Para guardar la fecha del estado bancario. anio_conciliado int 11 Numero del año conciliado. Código único para identificar a cada conciliación, se autoincrementa secuencialmente Clave foránea para relacionarse con fin_banco_cuenta Para guardar el saldo de la conciliación anterior Almacena el saldo de la conciliación actual Tabla 3 Entidad: fin_banco_conciliacion Módulo Financiero 107 Clave primaria: cod_ b anco_cuenta Clave foránea: cod_banco cod_tipo_cuenta Contabilidad : con_cod_plan_cuentas Descripción: Tabla que almacena los diferentes tipos de cuentas existentes en la Institución Bancaria. Descripción de los Campos Nombre de la tabla fin_banco_cuenta Tipo de tabla Maestra Nombre Tipo Dato Tamaño Descripción cod_banco_cuenta int 11 Código único para identificar a cada cuenta del banco, se autoincrementa secuencialmente cod_banco int 11 Clave foránea para relacionarse con fin_banco n_cuenta varchar 20 cod_tipo_cuenta int 11 Para almacenar el número de cuenta bancaria Clave foránea para relacionarse con fin_banco_tipo_cuenta con_cod_plan_cuenta int 11 Clave foránea para relacionarse con con_plan_cuentas nombre_cuenta varchar 200 Campo que contiene el nombre de la cuenta bancaria fecha_apertura date 0 Campo que almacena la fecha de apertura de la cuenta bancaria titular varchar 100 Campo para guardar el Nombre del titular o dueño de la cuenta Tabla 4 Entidad: fin_banco_cuenta Módulo Financiero 108 Indices : cod_ banco_conciliacion cod_movimiento Descripción: Tabla que almacena el detalle de cada conciliación bancaria realizada. Nombre de la tabla fin_banco_detalle Tipo de tabla Detalle Descripción de los Campos Nombre Tipo Dato Tamaño Descripción Indice para relacionarse con fin_banco_conciliacion cod_banco_conciliacion int 11 cod_movimiento int 11 tipo varchar 1 usuario_creacion varchar 20 fecha_creacion date 0 Campo para identificar la fecha de creación del registro usuario_modficacion varchar 20 Campo para identificar al usuario que modifico el registro fecha_modificacion date 0 Campo para identificar la fecha de modificación del registro Indice para relacionarse con fin_banco_movimiento Para especificar el tipo de detalle de la conciliación Campo para identificar al usuario que creó el registro Tabla 5 Entidad: fin_banco_detalla Módulo Financiero 109 Nombre de la tabla fin_banco_detalle_movimiento Tipo de tabla Detalle Clave primaria : cod_ banco_cuentas_detalle Clave foránea: cod_banco_movimientos Descripción: Tabla que almacena el detalle de cada transacción bancaria realizada. Descripción de los Campos Tipo Dato Tamaño Nombre Descripción Código único para identificar a cada detalle de las cuentas del banco. Clave foránea para relacionarse con fin_banco_movimientos Presenta la contrapartida contable Para guardar el valor del movimiento cod_banco_cuentas_detalle int 11 cod_banco_movimientos int 11 con_cuenta_afecta int 11 valor double 0 estado varchar 1 Campo que por default muestra el estado de A=Activa usuario_creacion varchar 20 Campo para identificar al usuario que creó el registro fecha_creacion datetime 0 Campo para identificar la fecha de creación del registro 20 Campo para identificar al usuario que modifico el registro usuario_mod varchar Tabla 6 Entidad: fin_banco_detalle_movimiento Módulo Financiero 110 Clave primaria : cod_ banco_movimiento Clave foránea: Nombre de la tabla Tipo de tabla cod_banco_cuenta, fin_banco_movimientos Maestra cod_tipo_movimiento gen_cod_participante cod_sucursal Descripción: Tabla que almacena todos los movimientos bancarios de las diferentes cuentas bancarias. Descripción de los Campos Nombre Tipo Dato Tamaño cod_banco_movimientos int 11 cod_banco_cuenta int 11 cod_tipo_movimiento int 11 gen_cod_participante int 11 num_documento int 11 Campo que documento datetime 0 Campo que guardara movimiento bancario valor_total double 0 Campo que guardara el valor total del movimiento conciliado varchar 1 Campo que identifica que clase de estado tiene el movimiento: T=En tránsito, S=Conciliado, N=No conciliado responsable_conciliacion varchar 45 Campo que almacenara el nombre del responsable de la conciliación fecha_conciliado datetime 0 Campo que almacenara movimiento conciliado estado varchar 1 Campo que me permitirá conocer si el estado del movimiento esta activo o no, por default presentara A=Activo, si es I=Ignorar fecha Módulo Financiero Descripción Código único para identificar a movimiento de las cuentas del banco. cada Clave foránea para relacionarse con fin_banco_cuenta y obtener datos de las cuentas. Clave foránea para relacionarse con fin_banco_tipo_movimiento y obtener datos de los movimientos. Clave foránea para relacionarse con gen_participantes y obtener datos de los participantes. guardara el la la número del fecha del fecha del 111 descripcion varchar 100 Campo para describir al movimiento usuario_creacion varchar 20 Campo para identificar al usuario que creó el registro fecha_creacion datetime 0 Campo para identificar la fecha de creación del registro usuario_mod varchar 20 Campo para identificar al usuario que modifico el registro fecha_mod datetime 0 Campo para identificar modificación del registro con_cod_diario int 11 estado_cheque varchar 1 cod_sucursal int 11 Clave foránea para relacionarse con la tabla gen_sucursal para obtener las sucursales cod_deuda int 11 Campo para almacenar el código de la deuda de cuentas por pagar, aplicable para documentos tipo cheque varchar 100 Campo que contiene el código de cuentas por pagar int 11 Campo que contiene el número documento utilizado en el movimiento cuenta_prove nodoc fecha de Campo que contiene el numero del diario que nos retorna el stored procedure del modulo de contabilidad. Campo que almacena los estados de cuentas por pagar: Estados emitido, pagado o cobrado Tabla 7 Entidad: fin_banco_movimientos Módulo Financiero la del 112 Nombre de la tabla fin_banco_notasdebcheques Tipo de tabla Maestra Clave primaria : cod_ sec Descripción: Tabla que almacena las notas de debito y crédito de los movimientos bancarios Descripción de los Campos Nombre Tipo Dato Tamaño int 11 descripcion varchar 20 Campo para describir la nota de debito o cheque afecta varchar 1 Campo que contiene los siguientes estados: I=Interna, C=Cliente int 11 Campo que se llena únicamente cuando el estado I =Interna esta Activo caso contrario se va a cuentas por cobrar y así sacar la cuenta contable del cliente varchar 20 Campo que por default muestra el estado de A=Activa cod_sec cod_contabilidad estado Descripción Código único que determina la secuencias de las notas debito o cheques, se autoincrementa secuencialmente Tabla 8 Entidad: fin_banco_notasdebcheques Módulo Financiero 113 Nombre de la tabla fin_banco_tipo_cuenta Tipo de tabla Maestra Clave primaria : cod_ tipo_cuenta Descripción: Tabla que almacena el tipo de cuenta que existe en la institución bancaria. Descripción de los Campos Nombre Tipo Dato Tamaño Descripción Código único para identificar el tipo de cuenta, se autoincrementa secuencialmente cod_tipo_cuenta int 11 descripcion varchar 45 Campo para describir al tipo de cuenta, si es corriente. estado varchar 1 Campo que por default muestra el estado de A=Activa, para conocer si el tipo de cuenta esta activa o no usuario_creacion int 11 Campo para identificar al usuario que creo el registro fecha_creacion datetime 0 Campo para identificar la fecha de cracion del registro usuario_mod int 11 Campo para identificar al usuario que modifico el registro fecha_mod datetime 0 Campo para identificar la fecha de modificacion del registro Tabla 9 Entidad: fin_banco_tipo_cuenta Módulo Financiero 114 Nombre de la tabla fin_banco_tipo_movimiento Tipo de tabla Detalle Clave primaria : cod_ tipo_movimiento Descripción: Tabla que almacena el tipo de movimiento bancario. Descripción de los Campos Nombre Tipo Dato Tamaño cod_tipo_movimiento int 11 descripcion varchar 100 Para guardar alguna descripción del movimiento bancario realizado letra varchar 1 Campo para guardar las letras D=Deposito, R=Retiro; T=Transferencia estado varchar 1 Campo para identificar el estado del tipo de movimiento. A=Activo, I=Inactivo int 11 Campo para identificar al usuario que creó el registro datetime 0 Campo para identificar la fecha de creación del registro int 11 Campo para identificar al usuario que modifico el registro fecha_mod datetime 0 Campo para identificar la fecha de modificación del registro operación varchar 1 Campo que me permite guardar los signos + o - . Me indicara que operación se va a realizar en el movimiento usuario_creacion fecha_creacion usuario_mod Descripción Código único para identificar el tipo de movimiento bancario, se autoincrementa secuencialmente Tabla 10 Entidad: fin_banco_tipo_movimiento Módulo Financiero 115 Nombre de la tabla fin_tipo_nota Tipo de tabla Maestra Clave primaria : cod_ tipo_cuenta Descripción: Tabla que almacena el tipo de nota que se emite ante las notas de debito y crédito Descripción de los Campos Nombre Tipo Dato Tamaño Descripción Código único para identificar el tipo de nota del documento, se autoincrementa secuencialmente Campo que contiene la clave foránea de la tabla fin_banco_tipo_movimiento y obtener los tipos de movimientos cod_tipo_nota int 11 cod_fin_tipo_mov int 11 varchar 20 Código para guardar alguna descripción del tipo de nota a usarse. int 11 Código que contiene la clave foránea de la tabla con_plan _cuentas y obtener el plan de cuentas estado varchar 1 Campo para identificar el estado del tipo de nota. A=Activo, I=Inactivo usuario_creacion varchar 20 Campo para identificar al usuario que creó el registro date 0 Campo para identificar la fecha de creación de la nota 20 Campo para identificar al usuario que modifico el registro descripcion cod_plan_cuentas fecha_creacion usuario_modificacion varchar Tabla 11 Entidad: fin_tipo_nota Módulo Financiero 116 2.1.2 Tablas de las Razones Financieras Nombre de la tabla fin_formulas Tipo de tabla Maestra Clave primaria : cod_ formula Clave foránea: cod_grupo Descripción: Tabla que almacena todas las formulas de las razones financieras. Descripción de los Campos Nombre Tipo Dato Tamaño cod_formula int 11 cod_grupo int 11 parametro varchar 20 nom_formula varchar 100 Campo para almacenar el nombre de la fórmula descripcion varchar 200 Campo para guardar una descripción de la fórmula formula_texto varchar 1000 Campo que guardara la cadena elaborada en los mantenimientos formula_presentacion varchar 2000 Campo que guardara la forma de presentar a la fórmula siglas varchar 4 Campo que contiene la abreviatura de cada fórmula expresion varchar 20 Campo que guardara el tipo en que se expresa la formula: Ejm: $, %, veces, días estado varchar 1 Campo para guardar el estado de la fórmula A=Activo, I=Inactivo usuario_creacion varchar 20 Campo para identificar el estado del tipo de nota. A=Activo, I=Inactivo fecha_creacion datetime 0 Campo para identificar al usuario que creo el registro Módulo Financiero Descripción Código único, para identificar a cada formula, se autoincrementa secuencialmente Código único para identificar al grupo al que pertenece cada formula, se autoincrementa secuencialmente Campo que guardara el valor del parámetro de la industria contra el cual se comparan las razones 117 usuario_mod varchar 20 Campo para identificar la fecha de cracion del registro fecha_mod datetime 0 Campo para identificar al usuario que modifico el registro rango_verde float 10 Campo que guarda el valor tope para el rango verde, rango_naranja float 10 Campo que guarda el valor tope para el rango naranja rango_rojo float 10 Campo que guarda el valor tope para el rango rojo descripcion_verde varchar 100 Campo que muestra la descripción para la alarma verde: Ejm: bueno, estable descripcion_naranja varchar 100 Campo que muestra la descripcion para la alarma naranja: Ejm: precaución descripcion_rojo varchar 100 Campo que muestra la descripcion para la alarma roja: Ejm: problemas, revisar relacion_objetivo varchar 1 Campo que guarda la relación entre el objetivo y la meta: Ejemplo: Mayor a 3 :está bien, menor :está mal Tabla 12 Entidad: fin_formulas Módulo Financiero 118 Nombre de la tabla Tipo de tabla fin_grupo_razones Maestra Clave primaria : cod_ tipo_cuenta Descripción: Tabla que almacena el tipo de cuenta que existe en la institución bancaria. Descripción de los Campos Nombre Tipo Dato Tamaño cod_razon int 11 nombre_razon varchar 35 estado varchar 1 usuario_creacion varchar 20 fecha_creacion datetime 0 usuario_mod varchar fecha_mod datetime 0 20 Descripción Código único, para identificar a cada grupo de formulas, se autoincrementa secuencialmente. Campo que guardara el nombre de cada grupo de formulas de las razone Campo para guardar el estado del grupo de fórmulas A=Activo, I=Inactivo Campo para identificar el estado del tipo de nota. A=Activo, I=Inactivo Campo para identificar al usuario que creó el registro Campo para identificar la fecha de creación del registro Campo para identificar al usuario que modifico el registro Tabla 13 Entidad:fin_grupo_razones Módulo Financiero 119 2.1.3 Tablas Temporales Indices: Nombre de la tabla Tipo de tabla cod_ totales_cuentas fin_cuentas_totales Maestra cod_cuenta Descripción: Tabla que almacena los saldos de las cuentas del plan de cuentas de contabilidad y de las plantillas de Contabilidad ordenado. Descripción de los Campos Nombre Tipo Dato Tamaño cod_totales_cuentas int 11 cod_cuenta varchar 20 descripcion varchar 200 tipo varchar 5 estado varchar 1 Descripción Código único, para identificar a cada cuenta, se autoincrementa secuencialmente Código único para cada cuenta del plan de cuentas Campo que guardara el nombre de la cuenta contable Campo que guardara el tipo de cuenta. C=Cuenta, G=grupo, T=Total Campo para guardar el estado del grupo de fórmulas A=Activo, I=Inactivo Campo para almacenar el numero de tabla para tabla int 11 identificar 1=cuentas actuales, mensuales o anuales 2=temporales Tabla 14 Entidad: fin_cuentas_totales Módulo Financiero 120 Nombre de la tabla Tipo de tabla fin_cuentas_totales_temp Maestra Indices: cod_ totales_cuentas cod_cuenta Descripción: Tabla que almacena los saldos de las cuentas del plan de cuentas de contabilidad. y de las plantillas de los Balances sin ordenar. Descripción de los Campos Nombre Tipo Dato Tamaño cod_totales_cuentas int 11 cod_cuenta varchar 20 descripcion varchar 200 tipo varchar 5 estado varchar 1 Descripción Código único, para identificar a cada cuenta, se autoincrementa secuencialmente Código único para cada cuenta del plan de cuentas Campo que guardara el nombre de la cuenta contable Campo que guardara el tipo de cuenta. C=Cuenta, G=grupo, T=Total Campo para guardar el estado del grupo de fórmulas A=Activo, I=Inactivo Campo para almacenar el numero de tabla para tabla int 11 identificar 1=cuentas actuales, mensuales o anuales 2=temporales Tabla 15 Entidad: fin_cuentas_totales_temp Módulo Financiero 121 2.2 Nomenclatura de objetos utilizados. La necesidad de utilizar una nomenclatura estándar en el desarrollo de aplicaciones surge en forma natural al desarrollar cualquier aplicación no trivial. Los principales objetivos que se desean alcanzar al definir un estándar para la nomenclatura son los siguientes: • Facilitar la integración de bases de la base de datos • Facilitar la definición de nombres • Facilitar la lectura del código generado Nombrar objetos distintos de forma distinta – objetos diferentes no debe llevar el mismo nombre. Primeramente se presentan ciertas definiciones que se utilizarán a lo largo de todo el documento, y en segundo lugar se presenta la nomenclatura en sí misma. El siguiente punto describe la nomenclatura empleada en el desarrollo de nuestro módulo. 2.2.1 Tablas Los nombres de las tablas se han escrito con minúscula y muestran una descripción almacenan. Por ejemplo: Módulo Financiero de toda la información que 122 • fin_banco.- Almacena la información de las Instituciones Financieras (Bancos). 2.2.2 Campos Los nombres de los campos se han escrito con minúscula y muestran una descripción específica de lo que se almacenan. Por ejemplo • cod_fin_bancos Almacena el código del Banco. 2.2.3 Constraints Se crearon constraints para claves primarias (pk) y foráneas (fk), para validar el ingreso de no nulos, que sean únicos, auto-numéricos. Los nombres de los constraints constan de las siguientes partes: • NOMBRE_TABLA.- Nombre de la tabla en que se los crea. • LETRA DEL TIPO DE CONSTRAINT.- La cual puede ser cualquiera de las siguientes: Módulo Financiero 123 • PK Si es Primary key • FK Si es Foranea o secundaria (foreign key) • NOMBRE DEL CAMPO.- Nombre del campo. Por ejemplo: • cod_fin_banco.- Es una clave primaria. • fk_gen_cod_participante.- Es una clave foránea de la tabla con_gen_participante. 2.2.4 • Clases – Paginas Los nombres de las páginas están escritos por su funcionalidad, Por ejemplo: man (mantenimiento) seguido de la primera letra en mayúscula del nombre de la página. • • Los nombres de los objetos están escritos con minúscula. PAGINAS: manBancos.php. CLASES: bancos.class.php. Las clases contienen métodos y atributos, los atributos están escritos con minúscula mientras que los métodos están Módulo Financiero 124 escritos en nomenclatura Pascal sin guion bajo. Por ejemplo: • ATRIBUTO: $nombre • MÉTODOS: function obtenerSucursal() 2.3 Script de Creación de Tablas. 2.3.1 Scripts de creación de tablas de Bancos FIN_BANCO. • -- Table structure for `fin_banco` • -- ---------------------------• DROP TABLE IF EXISTS `fin_banco`; • CREATE TABLE `fin_banco` ( • `cod_banco` int(11) NOT NULL auto_increment, • `gen_cod_participante` int(11) NOT NULL, `estado` varchar(1) 124odifica set utf8 collate • utf8_unicode_ci default NULL, 135. • `usuario_creacion` varchar(42) 124odifica set utf8 collate utf8_unicode_ci default NULL COMMENT ‘codigo participante que crea banco’, 136. • `fecha_mod` date default NULL, 137. • `usuaro_modifica` varchar(42) 124odifica set utf8 collate 128. 129. 130. 131. 132. 133. 134. utf8_unicode_ci default NULL, 138. • `fecha_creacion` datetime default NULL, 139. • PRIMARY KEY (`cod_banco`), 140. • KEY `gen_cod_participante` (`gen_cod_participante`), CONSTRAINT FOREIGN 141. • `fin_banco_ibfk_1` (`gen_cod_participante`) (`cod_participante`) Módulo Financiero REFERENCES KEY `gen_participantes` 125 ENGINE=InnoDB 142. ) CHARSET=latin1; AUTO_INCREMENT=13 DEFAULT FIN_BANCO_CHEQUES_DEVUELTOS. 16.• -- ---------------------------17.• -- Table structure for `fin_banco_cheques_devueltos` 18.• -- ---------------------------19.• DROP TABLE IF EXISTS `fin_banco_cheques_devueltos`; 20.• CREATE TABLE `fin_banco_cheques_devueltos` ( 21.• `cod_fin_banco_cheques_devueltos` int(11) NOT NULL auto_increment, 22.• `cod_cxc_cheques` varchar(100) default NULL, 23.• `cod_fin_banco_movimientos` int(11) default NULL, 24.• `estado` varchar(20) default NULL, 25.• `r_empresa` float(10,2) default NULL, 26.• `r_cliente` float(10,2) default NULL, 27.• `valor_total` float(10,2) default NULL, 28.• `valor_cheque` float(10,2) default NULL, 29.• PRIMARY KEY (`cod_fin_banco_cheques_devueltos`) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT 30. ) CHARSET=latin1; FIN_BANCO_CONCILIACION. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. Módulo Financiero • • • • • • • • • • • • • -- ----------------------------- Table structure for `fin_banco_conciliacion` -- ---------------------------DROP TABLE IF EXISTS `fin_banco_conciliacion`; CREATE TABLE `fin_banco_conciliacion` ( `cod_conciliacion` int(11) NOT NULL auto_increment, `cod_fin_banco_cuenta` int(11) default NULL, `saldo_conciliacion_anterior` double default NULL, `saldo_conciliado` double default NULL, `mes_conciliado` int(11) default NULL, `saldo_banco` double(10,2) default NULL, `fecha_estado_bancario` date default NULL, `anio_conciliado` int(11) default NULL, 126 • `tipo` varchar(1) NOT NULL, • `usuario_creacion` varchar(20) 126odifica set utf8 collate utf8_unicode_ci default NULL, 172. • `fecha_creacion` datetime default NULL, 173. • `usuario_modificacion` varchar(20) 126odifica set utf8 collate utf8_unicode_ci default NULL, 174. • `fecha_modificacion` datetime default NULL, 175. • PRIMARY KEY (`cod_conciliacion`), KEY 176. • `fk_fin_banco_conciliacion_cuenta` 170. 171. (`cod_fin_banco_cuenta`) 177. • ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC; 178. • Fin_Banco_Cuenta. • - ---------------------------• -- Table structure for `fin_banco_cuenta` • -- ---------------------------• DROP TABLE IF EXISTS `fin_banco_cuenta`; • CREATE TABLE `fin_banco_cuenta` ( • `cod_banco_cuenta` int(11) NOT NULL, • `cod_banco` int(11) NOT NULL, `n_cuenta` varchar(20) character set utf8 • utf8_unicode_ci NOT NULL, 187. • `cod_tipo_cuenta` int(11) NOT NULL, 188. • `con_cod_plan_cuenta` int(11) default NULL, 189. • `nombre_cuenta` varchar(200) 126odifica set utf8 utf8_unicode_ci default NULL, 190. • `fecha_apertura` date default NULL, 191. • `titular` varchar(100) character set utf8 utf8_unicode_ci default NULL, 192. • `Cheques` varchar(1) character set utf8 utf8_unicode_ci default ‘n’, 193. • `num_cheque_sig` int(11) default ‘1’, 194. • `num_deposito_sig` int(11) default ‘1’, 195. • `num_nd_sig` int(11) default ‘1’, 196. • `num_nc_sig` int(11) default ‘1’, 197. • `saldo` float(10,2) default ‘0.00’, 179. 180. 181. 182. 183. 184. 185. 186. Módulo Financiero collate collate collate collate 127 • `observacion` varchar(300) character set utf8 collate utf8_unicode_ci default NULL, 199. • `contacto` varchar(50) character set utf8 collate utf8_unicode_ci default NULL, 200. • `contacto_telefono` varchar(10) 127odifica set utf8 collate utf8_unicode_ci default NULL, 201. • `contacto_fax` varchar(10) character set utf8 collate utf8_unicode_ci default NULL, 202. • `contacto_comentario` varchar(200) 127odifica set utf8 collate utf8_unicode_ci default NULL, 203. • `contacto_cargo` varchar(30) 127odifica set utf8 collate utf8_unicode_ci default NULL, 204. • `usuario_creacion` varchar(20) 127odifica set utf8 collate 198. utf8_unicode_ci default NULL, 205. • `fecha_creacion` datetime default NULL, 206. • `usuario_mod` varchar(20) character set utf8 collate utf8_unicode_ci default NULL, 207. • `fecha_mod` datetime default NULL, 208. • `estado` varchar(1) 127odifica set utf8 collate utf8_unicode_ci default ‘A’, 209. • PRIMARY KEY (`cod_banco_cuenta`) ENGINE=InnoDB DEFAULT CHARSET=latin1 210. • ) ROW_FORMAT=DYNAMIC; 211. • Fin_Banco_Detalle_Conciliacion. • • -- ----------------------------Table structure • `fin_banco_detalle_conciliacion` 215. • -- ---------------------------IF DROP TABLE 216. • 212. 213. 214. for EXISTS `fin_banco_detalle_conciliacion`; 217. • CREATE TABLE `fin_banco_detalle_conciliacion` ( 218. • `cod_banco_conciliacion` int(11) NOT NULL, 219. • `cod_movimiento` int(11) NOT NULL, Módulo Financiero 128 220. • `tipo` varchar(1) collate utf8_unicode_ci NOT NULL, `usuario_creacion` varchar(20) collate 221. • utf8_unicode_ci NOT NULL, 222. • `fecha_creacion` date NOT NULL, `usuario_modificacion` varchar(20) collate 223. • utf8_unicode_ci NOT NULL, 224. • `fecha_modificacion` date NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 225. • COLLATE=utf8_unicode_ci; 226. • Fin_Banco_Detalle_Movimiento. • -- ---------------------------• -- Table structure for `fin_banco_detalle_movimiento` • -- ---------------------------• DROP TABLE IF EXISTS `fin_banco_detalle_movimiento`; • CREATE TABLE `fin_banco_detalle_movimiento` ( • `cod_banco_cuentas_detalle` int(11) NOT NULL, • `cod_banco_movimientos` int(11) default NULL, • `con_cuenta_afectada` int(11) default NULL, • `valor` double default NULL, `estado` varchar(1) 128odifica set utf8 collate • utf8_unicode_ci default NULL, 237. • `usuario_creacion` varchar(20) 128odifica set utf8 collate 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. utf8_unicode_ci default NULL, 238. • `fecha_creacion` datetime default NULL, 239. • `usuario_mod` varchar(20) character set utf8 collate utf8_unicode_ci default NULL, 240. • `fecha_mod` datetime default NULL, 241. • `cod_deuda` varchar(100) default NULL, 242. • PRIMARY KEY (`cod_banco_cuentas_detalle`), KEY 243. • `fk_fin_banco_detalle_movimiento_fin_banco_movimientos` (`cod_banco_movimientos`) Módulo Financiero 129 ENGINE=MyISAM 244. • ) ROW_FORMAT=DYNAMIC; 245. • DEFAULT CHARSET=latin1 Fin_Banco_Movimientos. 246. 247. 248. • -- ----------------------------Table structure for • `fin_banco_movimientos` 249. • -- ---------------------------250. • DROP TABLE IF EXISTS `fin_banco_movimientos`; 251. • CREATE TABLE `fin_banco_movimientos` ( `cod_banco_movimientos` int(11) NOT NULL 252. • auto_increment, 253. • `cod_banco_cuenta` int(11) default NULL, 254. • `cod_tipo_movimiento` int(11) default NULL, 255. • `gen_cod_participante` int(11) default NULL, 256. • `num_documento` int(11) default NULL, 257. • `fecha` datetime NOT NULL COMMENT ‘persona a quien se gira el cheque’, 258. • `valor_total` double NOT NULL, 259. • `conciliado` varchar(1) character set utf8 collate utf8_unicode_ci NOT NULL default ‘n’ COMMENT ‘adquiere: T estado transito, n no conciliado, S conciliado’, `responsable_conciliacion` varchar(45) 260. • 129odifica set utf8 collate utf8_unicode_ci default NULL, 261. • `fecha_conciliado` datetime default NULL, 262. • `estado` varchar(1) character set utf8 collate utf8_unicode_ci NOT NULL default ‘a’, 263. • `descripcion` varchar(100) character set utf8 collate utf8_unicode_ci NOT NULL, 264. • `usuario_creacion` varchar(20) 129odifica set utf8 collate utf8_unicode_ci default NULL, 265. • `fecha_creacion` datetime default NULL, 266. • `usuario_mod` varchar(20) character set utf8 collate utf8_unicode_ci default NULL, Módulo Financiero 130 267. • `fecha_mod` datetime default NULL, 268. • `con_cod_diario` int(11) default NULL, 269. • `estado_cheque` varchar(1) default NULL, 270. • `cod_sucursal` int(11) NOT NULL, 271. • `cod_deuda` int(11) default NULL, 272. • `cuenta_prove` varchar(100) default NULL, 273. • `nodoc` int(11) default NULL, 274. • PRIMARY KEY (`cod_banco_movimientos`) ) ENGINE=MyISAM AUTO_INCREMENT=58 DEFAULT 275. • CHARSET=latin1 ROW_FORMAT=DYNAMIC; 276. • Fin_Banco_Notasdebcheque 277. • -- ---------------------------278. • -- Table structure for `fin_banco_notasdebcheque` 279. • -- ---------------------------280. • DROP TABLE IF EXISTS `fin_banco_notasdebcheque`; 281. • CREATE TABLE `fin_banco_notasdebcheque` ( 282. • `cod_sec` int(11) NOT NULL auto_increment, 283. • `descripcion` varchar(20) default NULL, 284. • `afecta` varchar(1) default NULL, 285. • `cod_contabilidad` int(11) default NULL, 286. • `estado` varchar(20) NOT NULL, 287. • PRIMARY KEY (`cod_sec`) 288. • ) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=latin1; 289. • Módulo Financiero 131 Fin_Banco_Tipo_Cuenta. • -- ---------------------------• -- Table structure for `fin_banco_tipo_cuenta` • -- ---------------------------• DROP TABLE IF EXISTS `fin_banco_tipo_cuenta`; • CREATE TABLE `fin_banco_tipo_cuenta` ( • `cod_tipo_cuenta` int(11) NOT NULL auto_increment, • `descripcion` varchar(45) character set utf8 collate utf8_unicode_ci NOT NULL, 297. • `estado` varchar(1) character set utf8 collate 290. 291. 292. 293. 294. 295. 296. utf8_unicode_ci NOT NULL, 298. • `usuario_creacion` int(11) default NULL, 299. • `fecha_creacion` datetime default NULL, 300. • `usuario_mod` int(11) default NULL, 301. • `fecha_mod` datetime default NULL, 302. • PRIMARY KEY (`cod_tipo_cuenta`) 303. • ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC; 304. • Fin _Banco_Tipo_Movimiento • ---------------------------• -- Table structure for `fin_banco_tipo_movimiento` • -- ---------------------------• DROP TABLE IF EXISTS `fin_banco_tipo_movimiento`; • CREATE TABLE `fin_banco_tipo_movimiento` ( • `cod_tipo_movimiento` int(11) NOT NULL, • `descripcion` varchar(100) 131odifica set utf8 collate utf8_unicode_ci default NULL, 312. • `letra` varchar(1) character set utf8 collate 305. 306. 307. 308. 309. 310. 311. utf8_unicode_ci default NULL, Módulo Financiero 132 `estado` varchar(1) character set utf8 collate • utf8_unicode_ci NOT NULL, 314. • `usuario_creacion` int(11) default NULL, 315. • `fecha_creacion` datetime default NULL, 316. • `usuario_mod` int(11) default NULL, 317. • `fecha_mod` datetime default NULL, 318. • `operacion` varchar(1) character set utf8 collate utf8_unicode_ci default NULL, 319. • PRIMARY KEY (`cod_tipo_movimiento`) ENGINE=InnoDB DEFAULT CHARSET=latin1 320. • ) ROW_FORMAT=DYNAMIC; 321. • 313. Script de las tablas de las Razones Financieras Fin_Formulas • -- ---------------------------• -- Table structure for `fin_formulas` • -- ---------------------------• DROP TABLE IF EXISTS `fin_formulas`; • CREATE TABLE `fin_formulas` ( • `cod_formula` int(11) NOT NULL auto_increment, • `cod_grupo` int(11) NOT NULL, `parametro` varchar(20) character set utf8 collate • utf8_unicode_ci NOT NULL, 330. • `nom_formula` varchar(100) character set utf8 collate 322. 323. 324. 325. 326. 327. 328. 329. utf8_unicode_ci NOT NULL, 331. • `descripcion` varchar(200) character set utf8 utf8_unicode_ci NOT NULL, 332. • `formula_texto` varchar(1000) character set utf8 utf8_unicode_ci NOT NULL, 333. • `formula_presentacion` varchar(2000) character collate utf8_unicode_ci NOT NULL, 334. • `siglas` varchar(4) character set utf8 utf8_unicode_ci NOT NULL, 335. • `132odificaci` varchar(20) character set utf8 utf8_unicode_ci NOT NULL, Módulo Financiero collate collate set utf8 collate collate 133 `estado` varchar(1) character set utf8 collate • utf8_unicode_ci NOT NULL default ‘A’, 337. • `usuario_creacion` varchar(20) 133odifica set utf8 collate utf8_unicode_ci default NULL, 338. • `fecha_creacion` datetime NOT NULL, 339. • `usuario_mod` varchar(20) character set utf8 collate 336. utf8_unicode_ci default NULL, 340. • `fecha_mod` datetime default NULL, 341. • `rango_verde` float(10,2) default NULL, 342. • `rango_naranja` float(10,2) default NULL, 343. • `rango_rojo` float(10,2) default NULL, 344. • `descripcion_verde` varchar(100) 133odifica set utf8 collate utf8_unicode_ci default NULL, 345. • `descripcion_naranja` varchar(100) 133odifica set utf8 collate utf8_unicode_ci default NULL, 346. • `descripcion_rojo` varchar(100) 133odifica set utf8 collate utf8_unicode_ci default NULL, 347. • `133odifica_objetivo` varchar(1) 133odifica set utf8 collate utf8_unicode_ci default NULL, 348. • PRIMARY KEY (`cod_formula`), 349. • KEY `fin_formula_fin_grupo_razones_fk` (`cod_grupo`) 350. • ) ENGINE=MyISAM AUTO_INCREMENT=21 DEFAULT CHARSET=latin1; 351. • Fin_Grupo_Razones. • - ---------------------------• -- Table structure for `fin_grupo_razones` • -- ---------------------------• DROP TABLE IF EXISTS `fin_grupo_razones`; • CREATE TABLE `fin_grupo_razones` ( • `cod_razon` int(11) NOT NULL auto_increment, • `nombre_razon` varchar(35) 133odifica set utf8 collate utf8_unicode_ci NOT NULL, 359. • `estado` varchar(1) character set utf8 collate utf8_unicode_ci NOT NULL default ‘A’, 360. • `usuario_creacion` varchar(20) default NULL, 361. • `fecha_creacion` datetime default NULL, 352. 353. 354. 355. 356. 357. 358. Módulo Financiero 134 • `usuario_mod` varchar(20) default NULL, • `fecha_mod` datetime default NULL, • `observacion` varchar(50) character set utf8 collate utf8_unicode_ci default NULL, 365. • PRIMARY KEY (`cod_razon`) 366. • ) ENGINE=MyISAM AUTO_INCREMENT=20 DEFAULT 362. 363. 364. CHARSET=latin1; 367. • Script de las Tablas Temporales Fin_Temp_Cuentas_Totales. 368. • -- Table structure for `fin_temp_cuentas_totales` 369. • -- ---------------------------370. • DROP TABLE IF EXISTS `fin_temp_cuentas_totales`; 371. • CREATE TABLE `fin_temp_cuentas_totales` ( 372. • `cod_totales_cuentas` int(11) NOT NULL auto_increment, 373. • `cod_cta` varchar(15) NOT NULL, 374. • `cod_sucursal` int(11) default NULL, 375. • `nivel` tinyint(4) NOT NULL, 376. • `nombre_cuenta` varchar(60) default NULL, 377. • `saldo` decimal(10,4) NOT NULL, 378. • `clase` varchar(1) NOT NULL, 379. • `tipo` varchar(3) NOT NULL, 380. • `anio` int(4) NOT NULL, 381. • `mes` int(2) NOT NULL, 382. • `estado` varchar(1) NOT NULL, 383. • `usuario_crea` varchar(15) default NULL, 384. • `fecha_crea` date default NULL, 385. • `usuario_modi` varchar(15) default NULL, 386. • `fecha_modi` date default NULL, 387. • PRIMARY KEY (`cod_totales_cuentas`) 388. • ) ENGINE=MyISAM AUTO_INCREMENT=330 DEFAULT CHARSET=utf8; Módulo Financiero 135 Fin_Tipo_Nota. 389. • -- ---------------------------390. • -- Table structure for `fin_tipo_nota` 391. • -- ---------------------------392. • DROP TABLE IF EXISTS `fin_tipo_nota`; 393. • CREATE TABLE `fin_tipo_nota` ( 394. • `cod_tipo_nota` int(11) NOT NULL auto_increment, 395. • `cod_fin_tipo_mov` int(11) NOT NULL, 396. • `decripcion` varchar(20) NOT NULL, 397. • `cod_plan_cuentas` int(11) NOT NULL, 398. • `estado` varchar(1) NOT NULL default ‘A’, 399. • `usuario_creacion` varchar(20) NOT NULL, 400. • `fecha_creacion` date NOT NULL, 401. • `usuario_modificacion` varchar(20) NOT NULL, 402. • `fecha_modificacion` date NOT NULL, 403. • PRIMARY KEY (`cod_tipo_nota`) 404. • ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=latin1; 405. • Módulo Financiero 136 2.4 Codificación de los Componentes 2.4.1 Configurando la Conexión. Para establecer la conexión a la base de datos se cuenta con una clase que contiene los atributos correctos para poder realizar la conexión a ella, el siguiente archivo de configuración consta de usuario, clave y host correspondiente a la base de datos que se desea conectar a la Base de Datos: business_bg, para nuestro proyecto. Clase conexión.- Esta clase contiene los parámetros de conexión en la función DBManager() y la función conectar() es la que establece la conexión y acceso a la BD business_bg. 406. class DBManager{ 407. var $conect; 408. var $BaseDatos; 409. var $Servidor; 410. var $Usuario; 411. var $Clave; 412. function DBManager(){ 413. $this-&gt;BaseDatos = "business_bg"; 414. $this-&gt;Servidor = "localhost"; 415. $this-&gt;Usuario = "business_G1B"; 416. $this-&gt;Clave = "XyPyFM9nKO"; 417. } 418. function conectar() { 419. if(!($con=mysql_connect($this-&gt;Servidor,$this&gt;Usuario,$this-&gt;Clave))){ 420. echo" [:(] Error al conectar a la base de datos" 421. exit(); Módulo Financiero 137 422. } 423. if (!mysql_select_db($this-&gt;BaseDatos,$con)){ 424. echo " [:(] Error al seleccionar la base de datos"; 425. exit(); 426. } 427. $this-&gt;conect=$con; 428. return true; 429. } 430. 431. function conectarli() { 432. $link=mysqli_connect($this-&gt;Servidor,$this&gt;Usuario,$this-&gt;Clave,$this-&gt;BaseDatos); 433. if (!$link) { 434. printf("ERROR CONEXION MySQL Server. Errorcode: %s\n", mysqli_connect_error()); 435. return false; 436. } 437. return $link; 438. } 439. 440. function cerrarConexion($link) 441. { 442. mysqli_close($link); 443. } 444. 445. function cerrarNormal() { 446. mysql_close($this-&gt;conect); 447. } 448. 449. } Módulo Financiero 138 2.4.2 Clases y Programacion de Bancos. Clase Banco.- Esta clase nos permite trabajar con la entidad banco. Atributos y Constructores 1. class bancos { 2. 3. var $cadenasql= gen_participantes.cedula_ruc Nombre, "SELECT RUC, fin_banco.cod_banco AS Codigo, UPPER(gen_participantes.nombre) upper(gen_participantes.direccion) AS as Direccion, upper(gen_participantes.telefono) AS Telefono, gen_participantes.telefono2 Telefono2, gen_participantes.cod_ciudad as Ciudad, lower(gen_participantes.email) AS Email, lower(gen_participantes.sitioweb) AS Web, upper(gen_participantes.observacion) AS Observacion FROM fin_banco , gen_participantes WHERE fin_banco.gen_cod_participante = gen_participantes.cod_participante AND UPPER(fin_banco.estado) = 'A'"; 4. var $con; 5. function bancos() 6. { 7. $this->con=new DBManager; 8. //creo mi objeto conexion. 9. } Método Insertar.- Inserta data a la entidad Bancos y gen_participantes. 10. Function $estado, insertar($cedula_ruc,$nombre_1,$nombre_completo,$razon_social, $user_creacion,$user_modificacion,$cod_tipo_participante, $direccion,$email,$pagina_web,$telefono,$telefono2,$ciudad,$observaciones) 11. { 12. if($this->con->conectar()==true) 13. { Módulo Financiero 139 14. $c1=''; 15. //almacena la consulta de los codigos $c2=''; 16. $c3=''; 17. mysql_query('SET AUTOCOMMIT=0'); 18. mysql_query('START TRANSACTION'); 19. mysql_query('BEGIN'); 20. $cadena1='SELECT count(*) reg , max(fin_banco.cod_banco ) num FROM fin_banco'; 21. $cadena2='SELECT count(*) reg , max(gen_participantes.cod_participante ) num FROM gen_participantes'; 22. $cadena3='SELECT curdate() fecha FROM dual'; 23. $c1 = mysql_query($cadena1); 24. $c2 = mysql_query($cadena2); 25. $c3 = mysql_query($cadena3); 26. $row1 = mysql_fetch_array($c1); 27. $row2 = mysql_fetch_array($c2); 28. $row3 = mysql_fetch_array($c3); 29. $reg1 = $row1["reg"]; 30. $reg2 = $row2["reg"]; 31. if($reg1>0) $codbanco = $row1["num"]+1; 32. else $codbanco=1; 33. if($reg2>0) $codpart = $row2["num"]+1; 34. else $codpart=1; 35. $fecha = $row3["fecha"]; 36. $c4= "insert into gen_participantes ( cod_participante, cedula_ruc, nombre, direccion, telefono, telefono2, email, sitioweb, Observacion, estado, fecha_creacion, user_creacion, fecha_modificacion, user_modificacion, genero, fecha_nacimiento, cod_ciudad ) values .$direccion."','" (".$codpart .$telefono."','" .$observaciones."','" .",'" .$cedula_ruc."','" .$telefono2."','" .$estado."','" .$fecha."','" .$nombre_completo."','" .$email."','" .$pagina_web."','" .$user_creacion."','" .$fecha."','" .$user_creacion."', 'm','0000-00-00',".$ciudad.")"; 37. $c4=mysql_query($c4); 38. /*inserto datos en la tabla Bancos */ 39. $c5= "insert fin_banco.estado, into fin_banco ( fin_banco.gen_cod_participante fin_banco.usuario_creacion, fin_banco.usuaro_modifica, fin_banco.fecha_creacion fin_banco.fecha_mod, ) VALUES(" .$codpart.",'" .$estado."','" .$user_creacion."','" .$fecha."','" .$user_creacion."','" .$fecha."')"; 40. $c5 =mysql_query($c5); 41. $condicion=0; 42. if((!$c2)&&(!$c3)&&(!$c1)&&(!$c4)&&(!$c5)) 43. { 44. Módulo Financiero mysql_query('ROLLBACK'); , 140 45. $condicion= 0; 46. } 47. else 48. { 49. mysql_query('COMMIT'); 50. $condicion =1; 51. } 52. mysql_query('SET AUTOCOMMIT=1'); 53. return $condicion; 54. } 55. } 56. Método Actualizar.- Actualiza un registro de la entidad banco. 1. function actualizar($cod_banco,$nombre_completo, $user_modificacion,$direccion, $email,$pagina_web,$telefono,$telefono2,$observaciones,$ciudad ) 2. { 3. if($this->con->conectar()==true) 4. { 5. $cadena3='SELECT curdate() fecha FROM dual'; 6. $c3 = mysql_query($cadena3); 7. $row3 = mysql_fetch_array($c3); 8. $fecha = $row3["fecha"]; 9. $resultado= //inicio sentencia de actualizacion 10. "UPDATE gen_participantes, fin_banco 11. SET gen_participantes.user_modificacion='".$user_modificacion."', 12. gen_participantes.nombre='".$nombre_completo." 13. ',gen_participantes.direccion='".$direccion. 14. "',gen_participantes.email='".$email. "',gen_participantes.sitioweb='".$pagina_web. "',gen_participantes.telefono='".$telefono. "',gen_participantes.telefono2='".$telefono2. "',gen_participantes.observacion='".$observaciones. "',gen_participantes.cod_ciudad=".$ciudad." 15. where fin_banco.cod_banco=".$cod_banco." 16. and gen_participantes.cod_participante = fin_banco.gen_cod_participante"; Módulo Financiero 141 17. // echo $resultado; 18. $a= mysql_query($resultado); 19. if($a) 20. { 21. echo 'Registro Actualizado'; 22. } 23. else 24. { 25. echo 'Existen Problemas Consulte su Proveedor'; 26. } 27. } 28. //fin if que3ry 29. } Método mostrar_banco ($id).- Nos muestra la información de un banco especificando su Id. 1. 2. 3. 4. 5. 6. 7. 8. 9. function mostrar_banco($id) { if($this->con->conectar()==true) { $cadenasql=$this->cadenasql.' and fin_banco.cod_banco = '.$id; $registro=mysql_query($cadenasql); return mysql_fetch_array($registro); } } Function eliminar ($id).- Actualiza el estado del banco en la entidad banco ha Estado = I Nos retorna un valor entre: Módulo Financiero 142 0. Registro eliminado Correctamente 1. Registro asociado con cuenta bancaria. 2. Errores de conexión. 1. function eliminar($id) 2. { 3. if($this->con->conectar()==true) 4. { 5. $retorno="select fin_banco_cuenta.cod_banco from fin_banco_cuenta where upper(fin_banco_cuenta.estado)='A' and fin_banco_cuenta.cod_banco=".$id; 6. $retorno=mysql_query($retorno); 7. $retorno=mysql_num_rows($retorno); 8. if($retorno>0) 9. { 10. return 2; 11. } 12. else 13. { 14. $retorno= " update fin_banco set fin_banco.estado = 'I' where fin_banco.cod_banco=".$id; 15. mysql_query($retorno); 16. if ($retorno==true) 17. { 18. Else return 1; } 19. 20. { 21. } 22. return 0; 23. } Módulo Financiero return 0; } } 143 Clase Cuentas.- Esta clase interactúa con la entidad fin_banco_cuentas. Atributos y constructor 1. class cuentas 2. { 3. var $con; 4. var $cadenasql= "SELECT fin_banco_cuenta.cod_banco_cuenta AS Codigo, 5. fin_banco_cuenta.n_cuenta AS N_cuenta, upper(gen_participantes.nombre) AS N_Banco, fin_banco_cuenta.saldo AS Saldo, 6. upper(fin_banco_cuenta.nombre_cuenta) AS Nombre, upper(fin_banco_cuenta.fecha_apertura) AS F_Apertura, upper(fin_banco_cuenta.titular) AS N_Titular, fin_banco_cuenta.Cheques AS Cheques, fin_banco_cuenta.num_cheque_sig AS Num_Cheque, fin_banco_cuenta.num_deposito_sig AS Num_Deposito, fin_banco_cuenta.num_nd_sig AS Num_Nota_Debito, fin_banco_cuenta.num_nc_sig AS Num_Nota_Credito, upper(fin_banco_cuenta.observacion) AS Observacion, upper(fin_banco_tipo_cuenta.descripcion) AS D_Tipo, fin_banco.cod_banco AS Cod_banco, fin_banco_tipo_cuenta.cod_tipo_cuenta AS cod_cuenta, gen_participantes.cod_participante AS cod_participante, con_plan_cuentas.cod_plan_cuentas AS cod_cont, con_plan_cuentas.descripcion AS D_Contabilidad, con_plan_cuentas.codigo_cuenta AS Cuenta_fisica, fin_banco_cuenta.cod_banco_cuenta AS codigo_cuenta, fin_banco_cuenta.contacto as Contacto, fin_banco_cuenta.contacto_telefono as Contacto_telefono, fin_banco_cuenta.contacto_fax as Contacto_fax, fin_banco_cuenta.contacto_comentario as Contacto_comentario, fin_banco_cuenta.contacto_cargo as Cargo FROM fin_banco_cuenta , fin_banco , gen_participantes , fin_banco_tipo_cuenta , con_plan_cuentas where fin_banco.gen_cod_participante=gen_participantes.cod_participante and fin_banco_tipo_cuenta.cod_tipo_cuenta=fin_banco_cuenta.cod_tipo_cuenta and fin_banco_cuenta.cod_banco=fin_banco.cod_banco and fin_banco_cuenta.con_cod_plan_cuenta= con_plan_cuentas.cod_plan_cuentas "; 7. 8. function cuentas() Módulo Financiero 144 9. { 10. $this->con=new DBManager; 11. //creo mi objeto conexion. } 12. 13. } Método Insertar.- Permite insertar datos en la entidad Fin_banco_cuentas. 1. function insertar( $cod_banco, $cod_tipo_cuenta, $cod_conta, $nombre_cuenta, $fecha_apertura, $titular, $cheque, $cheque_sig, $deposito_sig, $credito_sig, $debito_sig, $observacion, $usuario_crea, $n_cuenta, $document_fin, $contacto_telefono, $contacto_fax, $contacto_comentario, $contacto_cargo, $contacto) 2. { 3. if($this->con->conectar()==true) 4. { 5. $c1=''; 6. 7. $c3=''; 8. mysql_query('SET AUTOCOMMIT=0'); 9. mysql_query('START TRANSACTION'); 10. mysql_query('BEGIN'); 11. $cadena1='select NOW() as fecha, count(*) as reg, max(cod_banco_cuenta) as max from fin_banco_cuenta'; 12. $c1 = mysql_query($cadena1); 13. $row1 = mysql_fetch_array($c1); 14. $reg1 = $row1["reg"]; 15. if($reg1>0) $codcuenta = $row1["max"]+1; 16. else $codcuenta =1; 17. $fecha = date("Y-m-d H:i:s"); 18. $cadena = "insert into"; 19. $cadena = $cadena." fin_banco_cuenta ("; 20. $cadena = $cadena." fin_banco_cuenta.cod_banco_cuenta, "; 21. $cadena = $cadena." fin_banco_cuenta.cod_banco, "; 22. $cadena = $cadena." fin_banco_cuenta.cod_tipo_cuenta,"; 23. $cadena = $cadena." fin_banco_cuenta.con_cod_plan_cuenta,"; Módulo Financiero 145 24. $cadena = $cadena." fin_banco_cuenta.num_cheque_sig,"; 25. $cadena = $cadena." fin_banco_cuenta.fecha_apertura , "; 26. $cadena = $cadena." fin_banco_cuenta.fecha_creacion , "; 27. $cadena = $cadena." fin_banco_cuenta.fecha_mod , "; 28. $cadena = $cadena." fin_banco_cuenta.nombre_cuenta ,"; 29. $cadena = $cadena." fin_banco_cuenta.observacion ,"; 30. $cadena = $cadena." fin_banco_cuenta.titular ,"; 31. $cadena = $cadena." fin_banco_cuenta.usuario_creacion,"; 32. $cadena = $cadena." fin_banco_cuenta.usuario_mod,"; 33. 34. $cadena = $cadena." fin_banco_cuenta.n_cuenta,"; 35. $cadena = $cadena." fin_banco_cuenta.Cheques,"; 36. $cadena = $cadena." fin_banco_cuenta.contacto,"; 37. $cadena = $cadena." fin_banco_cuenta.contacto_telefono,"; 38. $cadena = $cadena." fin_banco_cuenta.contacto_fax,"; 39. $cadena = $cadena." fin_banco_cuenta.contacto_comentario,"; 40. $cadena = $cadena." fin_banco_cuenta.contacto_cargo"; 41. $cadena = $cadena." )"; 42. $cadena = $cadena. " values ("; 43. $cadena = $cadena. $codcuenta. ","; 44. $cadena = $cadena. $cod_banco. ","; 45. $cadena = $cadena. $cod_tipo_cuenta. ","; 46. $cadena = $cadena. $cod_conta. ","; 47. $cadena = $cadena. $cheque_sig.","; 48. $cadena = $cadena."'".$fecha_apertura."',"; 49. $cadena = $cadena."'".$fecha."',"; 50. $cadena = $cadena."'".$fecha."',"; 51. $cadena = $cadena."'".$nombre_cuenta."',"; 52. $cadena = $cadena."'".$observacion."',"; 53. $cadena = $cadena."'".$titular."',"; 54. $cadena = $cadena."'".$usuario_crea."',"; 55. $cadena = $cadena."'".$usuario_crea."',"; 56. $cadena = $cadena. $n_cuenta.","; 57. $cadena = $cadena."'".$cheque."',"; 58. $cadena = $cadena."'".$contacto."',"; 59. $cadena = $cadena."'".$contacto_telefono."',"; 60. $cadena = $cadena."'".$contacto_fax."',"; 61. $cadena = $cadena."'".$contacto_comentario."',"; 62. $cadena = $cadena."'".$contacto_cargo."'"; 63. $cadena = $cadena.") "; 64. // echo $cadena; 65. $c2=mysql_query($cadena); Módulo Financiero 146 66. if(!$c2) 67. { 68. mysql_query('ROLLBACK'); 69. 70. return 0; 71. } 72. else 73. { 74. mysql_query('COMMIT'); 75. 76. return 1; 77. 78. } 79. mysql_query('SET AUTOCOMMIT=1'); 80. } 81. } Método Actualizar.- Actualiza los registros de la entidad cuentas, nos retorno el valor de 0 o 1 en caso de éxito o error. 1. function actualizar( $cod_cuenta, $nombre_cuenta, $fecha_apertura, $titular, $documento_inicio, $documento_sig, $observacion, $usuario_mod, $documento_fin, $contacto_telefono, $contacto_fax, $contacto_comentario, $contacto_cargo, $contacto ) 2. { 3. if($this->con->conectar()==true) 4. { 5. $cadena="update fin_banco_cuenta"; 6. $cadena=$cadena." set "; 7. //$cadena=$cadena." fin_banco_cuenta.documento_inicio =".$documento_inicio.","; 8. $cadena=$cadena." fin_banco_cuenta.num_cheque_sig =".$documento_sig.","; 9. $cadena=$cadena." fin_banco_cuenta.nombre_cuenta ='".$nombre_cuenta. "',"; 10. $cadena=$cadena." fin_banco_cuenta.observacion = '".$observacion."',"; 11. $cadena=$cadena." fin_banco_cuenta.titular='".$titular."',"; 12. $cadena=$cadena." fin_banco_cuenta.usuario_mod='". $usuario_mod."',"; 13. $cadena=$cadena." fin_banco_cuenta.fecha_mod = NOW() ,"; Módulo Financiero 147 14. $cadena=$cadena." fin_banco_cuenta.contacto='".$contacto."',"; 15. $cadena=$cadena." fin_banco_cuenta.contacto_telefono='".$contacto_telefono. "',"; 16. $cadena=$cadena." fin_banco_cuenta.contacto_cargo='".$contacto_cargo. "',"; 17. $cadena=$cadena." fin_banco_cuenta.contacto_comentario='".$contacto_comentario."',"; 18. $cadena=$cadena." fin_banco_cuenta.contacto_fax='".$contacto_fax. "'"; 19. //$cadena=$cadena." fin_banco_cuenta.documento_fin=".$documento_fin; 20. $cadena=$cadena." where fin_banco_cuenta.cod_banco_cuenta=".$cod_cuenta; 21. //echo $cadena; 22. $a= mysql_query($cadena); 23. 24. if($a) 25. { 26. // echo 'Actualizado'; 27. return 1; 28. } 29. else 30. { 31. return 0; 32. } 33. } 34. //fin if que3ry return 0; 35. } Método mostrar_cuentas($id).- Nos muestra una cuenta bancaria cuando se selecciona el id, nos devuelve un registro en formato mysql_query para ser convertido en un arreglo. 1. function mostrar_cuenta($id) 2. { 3. if($this->con->conectar()==true) 4. { 5. return mysql_query($this->cadenasql.' and fin_banco_cuenta.cod_banco_cuenta='.$id); 6. }} Módulo Financiero 148 Método mostrar_cuentas.- Nos muestra un conjunto de cuentas que cumplan con los parámetros enviados, como son banco, nombre de la cuenta, fecha de apertura, nos devuelve un arreglo en formato myql fetch array. 1. { 2. function Mostrar_cuentas($banco='',$nombreCuenta='',$fechaDesde,$fechaHasta,$op=1) 3. 4. if($this->con->conectar()==true) { 5. $sql=" SELECT fin_banco_cuenta.cod_banco_cuenta AS Codigo, fin_banco_cuenta.n_cuenta AS N_cuenta, upper(gen_participantes.nombre) AS N_Banco, fin_banco_cuenta.saldo AS Saldo, upper(fin_banco_cuenta.nombre_cuenta) AS Nombre, upper(fin_banco_cuenta.fecha_apertura) AS F_Apertura, upper(fin_banco_cuenta.titular) AS N_Titular, fin_banco_cuenta.Cheques AS Cheques, fin_banco_cuenta.num_cheque_sig AS Num_Cheque, upper(fin_banco_cuenta.observacion) AS Observacion, upper(fin_banco_tipo_cuenta.descripcion) AS D_Tipo, fin_banco.cod_banco AS Cod_banco, fin_banco_tipo_cuenta.cod_tipo_cuenta AS cod_cuenta, gen_participantes.cod_participante AS cod_participante, con_plan_cuentas.cod_plan_cuentas AS cod_cont, con_plan_cuentas.descripcion AS D_Contabilidad, con_plan_cuentas.codigo_cuenta AS C_Contabilidad, fin_banco_cuenta.cod_banco_cuenta AS codigo_cuenta, fin_banco_cuenta.contacto as Contacto, fin_banco_cuenta.contacto_telefono as Contacto_telefono, fin_banco_cuenta.contacto_fax as Contacto_fax, fin_banco_cuenta.contacto_comentario as Contacto_comentario, fin_banco_cuenta.contacto_cargo as Cargo FROM fin_banco_cuenta , fin_banco , gen_participantes , fin_banco_tipo_cuenta , con_plan_cuentas where fin_banco.gen_cod_participante=gen_participantes.cod_participante and fin_banco_tipo_cuenta.cod_tipo_cuenta=fin_banco_cuenta.cod_tipo_cuenta and fin_banco_cuenta.cod_banco=fin_banco.cod_banco and fin_banco_cuenta.con_cod_plan_cuenta= con_plan_cuentas.cod_plan_cuentas and upper(fin_banco_cuenta.estado)= 'A' and gen_participantes.nombre like '%".$banco."%' and fin_banco_cuenta.nombre_cuenta like '%".$nombreCuenta."%' "; 6. if(op==1) 7. { Módulo Financiero 149 8. $sql=$sql. " and fin_banco_cuenta.fecha_apertura >= '".$fechaDesde."' and fin_banco_cuenta.fecha_apertura <='".$fechaHasta."'"; 9. } 10. 11. $cadena= mysql_query($sql); 12. return $cadena; 13. } 14. } Método eliminar.- Permite cambiar el estado de una cuenta bancaria, nos devuelve los valores 1, 0 si se verifica los casos de éxito y error. 450. function eliminar($id) 451. { 452. if($this->con->conectar()==true) 453. { 454. $retorno=" select fin_banco_movimientos.cod_banco_movimientos from fin_banco_movimientos where fin_banco_movimientos.cod_banco_cuenta=".$id." and upper(fin_banco_movimientos.estado)='A'"; 455. $retorno=mysql_query($retorno); 456. $retorno=mysql_num_rows($retorno); 457. if ($retorno>0) 458. { 459. return 2; 460. } 461. $retorno= " update fin_banco_cuenta set fin_banco_cuenta.estado = 'I' where fin_banco_cuenta.cod_banco_cuenta=".$id; 462. mysql_query($retorno); 463. if ($retorno==true) 464. { 465. return 1; 466. } 467. else 468. { 469. return 0; } }} Módulo Financiero 150 Clase TipoNotas.- Esta clase nos permite definir las notas de debito y crédito, además permiten la asociación con las cuentas contables. Esta clase interactúa con la entidad fin_tipo_nota. Atributos y métodos.1. 2. 3. 4. 5. 6. 7. class TipoNotas { var $con; function TipoNotas() { $this->con = new DBManager; } Método insertar.- Inserta los datos en la entidad, retorna 1 o 0 dependiendo del caso de éxito. 8. function insertarTipoNotas($codplanCuentas, $codMovimiento, $descripcion, $usuario) 9. { 10. if($this->con->conectar()==true) 11. { 12. $sql= " insert into fin_tipo_nota ( fin_tipo_nota.cod_plan_cuentas, fin_tipo_nota.cod_fin_tipo_mov, fin_tipo_nota.decripcion, fin_tipo_nota.usuario_creacion, fin_tipo_nota.fecha_creacion ) 13. values (" .$codplanCuentas."," .$codMovimiento .",'" .$descripcion ."','" .$usuario. "', NOW())"; 14. $retorno= mysql_query($sql); 15. if(!$retorno) 16. { 17. return -1; 18. } Módulo Financiero 151 19. 20. 21. 22. 23. 24. 25. else { return 0; } } return -1; } Método mostrarTipoNotas.- Nos muestra el listado de las notas que cumplen con los parámetros de entrada, y nos devuelve un arreglo en formato mysql_fetch_array. 26. function mostrarTipoNotas($descripcion, $tipoNota) 27. { 28. if($tipoNota ==-1) 29. { 30. $condicion1=" and fin_tipo_nota.cod_fin_tipo_mov > -1 "; 31. } 32. else 33. { 34. $condicion1= " and fin_tipo_nota.cod_fin_tipo_mov =$tipoNota "; 35. } 36. if($this->con->conectar()==true) { 37. $sql= " select fin_tipo_nota.cod_tipo_nota as Codigo, fin_tipo_nota.decripcion as Descripcion, con_plan_cuentas.descripcion as CuentaContable, fin_banco_tipo_movimiento.descripcion as DescripcionTipo, con_plan_cuentas.codigo_cuenta as cuentaC, fin_tipo_nota.cod_plan_cuentas as cuentaPlan from fin_banco_tipo_movimiento, con_plan_cuentas, fin_tipo_nota 38. Where fin_tipo_nota.cod_plan_cuentas= con_plan_cuentas.cod_plan_cuentas and upper(fin_tipo_nota.estado)= 'A' 39. AND fin_banco_tipo_movimiento.cod_tipo_movimiento=fin_tipo_nota.cod_fin_tipo _mov ".$condicion1." and upper(fin_tipo_nota.decripcion) like '%".$descripcion."%'"; 40. $retorno= mysql_query($sql); //echo $sql; 41. return $retorno; }} Módulo Financiero 152 Método mostrarTipoNotasId($idnota).- Nos retorna los datos específicos de una nota cuyo id coincida con el especificado. 42. 43. 44. 45. 46. 47. 48. 49. 50. function mostrarTipoNotasId($Idnota) { if($this->con->conectar()==true) { $sql= "select fin_tipo_nota.cod_tipo_nota as Codigo, fin_tipo_nota.decripcion as Descripcion, con_plan_cuentas.descripcion as CuentaContable, fin_banco_tipo_movimiento.descripcion as DescripcionTipo, fin_tipo_nota.cod_plan_cuentas as cuentaC, fin_tipo_nota.cod_fin_tipo_mov as CodigoMov from fin_banco_tipo_movimiento, con_plan_cuentas, fin_tipo_nota where fin_banco_tipo_movimiento.cod_tipo_movimiento=fin_tipo_nota.cod_fin_tip o_mov and con_plan_cuentas.cod_plan_cuentas=fin_tipo_nota.cod_plan_cuentas and fin_tipo_nota.cod_tipo_nota=".$Idnota; $retorno= mysql_query($sql); return $retorno; } } Método desactivarNota($Idnota).- Actualiza el registro desactivando su estado para que no pueda ser utilizado. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. Módulo Financiero function desactivarNota($Idnota) { if($this->con->conectar()==true) { $sql= " update fin_tipo_nota set fin_tipo_nota.estado = 'I' where fin_tipo_nota.cod_tipo_nota=".$Idnota; 153 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. $retorno= mysql_query($sql); if($retorno) { $retorno=1; } else { $retorno=0; } return $retorno; } return 0; }/ Método actualizar TipoNota.- Recibe los parámetros para poder actualizar el registro correspondiente. 79. actualizarTipoNota( $Idnota,$codplanCuentas, function $codMovimiento, $descripcion, $usuario ) 80. { 81. if($this->con->conectar()==true) 82. { 83. $sql= " update fin_tipo_nota set fin_tipo_nota.cod_plan_cuentas=".$codplanCuentas.", fin_tipo_nota.decripcion='". $descripcion."', fin_tipo_nota.cod_fin_tipo_mov=".$codMovimiento." where fin_tipo_nota.cod_tipo_nota=".$Idnota; 84. // echo $sql; 85. $retorno= mysql_query($sql); 86. if(!$retorno) 87. { 88. $retorno=1; 89. } Módulo Financiero 154 90. 91. 92. 93. 94. 95. 96. 97. 98. else { $retorno=0; } return $retorno; } return 0; } //fin funcuin Clase chequesProtestados.- Nos permite manipular los cheques de clientes protestados. Costructor Método mostrarPorId($movimientoBanco).-Nos muestra los cheques de un movimiento. 99. 100. 101. 102. 103. 104. 105. class chequesProtestados { function chequesProtestados() { $this->con=new DBManager;//creo mi objeto conexion. } 106. 107. 108. 109. function mostrarPorId($movimientoBanco) { if($this->con->conectar()==true) 110. 111. 112. 113. 114. 115. Módulo Financiero { $sql=" SELECT cxc_cheque.nombre_banco as Nbanco, cxc_cheque.numero_cuenta as Ncuenta, cxc_cheque.fecha as Fecha, 155 116. 117. 118. 119. cxc_cheque.Numero_cheque as Ncheque, gen_participantes.nombre as Cliente, fin_banco_cheques_devueltos.r_empresa as Recargo1, fin_banco_cheques_devueltos.r_cliente as Recargo2, 120. 121. 122. 123. 124. fin_banco_cheques_devueltos.valor_cheque as total FROM cxc_cobros , cxc_cheque , 125. 126. 127. 128. 129. fac_cliente , gen_participantes , fin_banco_cheques_devueltos WHERE fac_cab_agenda_cobro , fin_banco_cheques_devueltos.cod_cxc_cheques= cxc_cheque.cod_cheque 130. and 131. cxc_cheque.cod_cheque = cxc_cobros.cod_cheque 132. AND 133. fac_cab_agenda_cobro.cod_agenda_cobro cxc_cobros.fac_cod_agenda_cobro AND 134. fac_cab_agenda_cobro.fac_cliente = = fac_cliente.cod_cliente AND 135. fac_cliente.cod_cliente gen_participantes.cod_participante 136. and 137. cxc_cheque.cod_tipo_cheque=3 138. and 139. = fin_banco_cheques_devueltos.cod_fin_banco_movimientos=".$m ovimientoBanco; 140. 141. 142. 143. 144. 145. } } 146. }//fin clase Módulo Financiero $retorno=mysql_query($sql); return $retorno; 156 Clase CargoChequeDevuelto. Esta clase nos permite interactuar con la entidad fin_banco_notasdebcheque, y nos permite registrar las notas de debito que le banco nos emite cuando un cheque es devuelto por diversos motivos como son: Cheque protestado, firma inconforme, remarcado de cantidad, etc. Atributos y constructor 147. 148. 149. 150. 151. 152. 153. 154. class CargoChequeDevuelto { var $con; function CargoChequeDevuelto() { $this->con = new DBManager; } Método Insertar.- Inserta nuevos registros en la entidad. 155. function insertar($descripcion,$afecta,$codContabilidad) 156. { 157. if($this->con->conectar()==true) 158. { 159. $sql="insert into fin_banco_notasdebcheque ( fin_banco_notasdebcheque.descripcion, fin_banco_notasdebcheque.afecta, fin_banco_notasdebcheque.estado, fin_banco_notasdebcheque.cod_contabilidad) values ('".$descripcion."','".$afecta."','A',".$codContabilidad.")"; 160. mysql_query($sql); 161. } 162. } Módulo Financiero 157 Function mostrarTodos().- Muestra todos los registros activos que cumplan con la condición , de descripción y afectación. • function mostrarTodos($descripcion,$afecta) { • if($this->con->conectar()==true) • { • $sql="select fin_banco_notasdebcheque.cod_sec • as codigo, fin_banco_notasdebcheque.descripcion as Descripcion, fin_banco_notasdebcheque.cod_contabilidad as Contabilidad, fin_banco_notasdebcheque.afecta as Afecta from fin_banco_notasdebcheque where upper(fin_banco_notasdebcheque.estado)='A' and fin_banco_notasdebcheque.descripcion like '%".$descripcion."%' and fin_banco_notasdebcheque.afecta like '%".$afecta."%' "; 168. $consulta=mysql_query($sql); • 169. return $consulta; • 170. } • 171. } • 163. 164. 165. 166. 167. Método mostrarPorId($codigo).- Muestra el registro por medio del parámetro de su código. • function mostrarPorId($codigo) { • if($this->con->conectar()==true) • { • $sql=" select fin_banco_notasdebcheque.cod_sec as • codigo, fin_banco_notasdebcheque.descripcion as Descripcion, fin_banco_notasdebcheque.cod_contabilidad as Contabilidad, fin_banco_notasdebcheque.afecta as Afecta from fin_banco_notasdebcheque where fin_banco_notasdebcheque.cod_sec=".$codigo; 177. • $consulta=mysql_query($sql); 178. • return $consulta; 179. • } 180. • } 172. 173. 174. 175. 176. Módulo Financiero 158 Método actualizarRegistro.- Actualiza el registro seleccionado, utiliza para esto el parámetro $codigo que es el id del registro. •function actualizarRegistro($codigo,$descripcion,$codContabilidad,$afecta) 182. { • 183. if($this->con->conectar()==true) • 184. { • 185. $sql=" update fin_banco_notasdebcheque set • 181. fin_banco_notasdebcheque.descripcion ='".$descripcion."', fin_banco_notasdebcheque.cod_contabilidad =".$codContabilidad.", fin_banco_notasdebcheque.afecta ='".$afecta."' where fin_banco_notasdebcheque.cod_sec =".$codigo; 186. $consulta=mysql_query($sql); • 187. return 1; • 188. } • 189. } • Método eliminar ($codigo).- Actualiza el estatus del registro, a inactivo para que no sea tomado en cuenta (eliminado lógico). • function eliminar($codigo) { • if($this->con->conectar()==true) • { • $sql=" update fin_banco_notasdebcheque set • fin_banco_notasdebcheque.estado ='I' where fin_banco_notasdebcheque.cod_sec =".$codigo; 195. $consulta=mysql_query($sql); • 196. return 1; • 197. } • 198. } • 190. 191. 192. 193. 194. Módulo Financiero 159 Método MostrarDepositosCheques.- Saca los movimientos que coinciden con los depósitos de cheques para ser visualizados por el documento Html. 199. • function mostrarDepositosCheques() 200. • { if($this->con->conectar()==true) 201. • { $sql="SELECT fin_banco_movimientos.cod_banco_movimientos AS CODIGO, fin_banco_movimientos.cod_tipo_movimiento AS codiMovimientos , fin_banco_movimientos.con_cod_diario as Diario, fin_banco_movimientos.num_documento AS Documento , fin_banco_movimientos.descripcion as Descripcion, fin_banco_movimientos.fecha as Fecha, fin_banco_movimientos.valor_total as Valor, fin_banco_movimientos.cod_banco_cuenta as cuenta FROM fin_banco_movimientos where fin_banco_movimientos.cod_tipo_movimiento =9 and fin_banco_movimientos.estado='A' and upper(fin_banco_movimientos.conciliado)='N' order by fin_banco_movimientos.fecha desc "; 202. • $consulta=mysql_query($sql); return $consulta; } } Método Cheque($codigoMovimiento).- Saca los valores del cheque almacenados en la entidad cxc_cobros. 203. function cheque($codigoMovimiento) 204. { if($this->con->conectar()==true) 205. { $sql="select cxc_cobros.cod_cheque as codigo, cxc_cheque.nombre_banco as Banco, cxc_cheque.Numero_cheque as Numcheque, cxc_cheque.numero_cuenta as Cuenta, cxc_cheque.monto as Valor from cxc_cobros, cxc_cheque where cxc_cobros.cod_predeposito in(select tes_deposito_caja.cod_deposito from tes_deposito_caja where tes_deposito_caja.fin_cod_movimiento=".$codigoMovimiento.") and cxc_cheque.cod_cheque= cxc_cobros.cod_cheque and cxc_cheque.cod_tipo_cheque=4 and upper(cxc_cheque.estado)='A'"; 206. $consulta=mysql_query($sql); 207. return $consulta; } } Módulo Financiero 160 Clase Movimientos.- La clase movimientos es la clase más usada en el sistema bancos, esta clase interactúa con las entidades, fin_banco_movimientos, fin_banco_detalleMovimentos, las cuales son actualizadas con los diferentes métodos, además la clase actualiza los saldos de las cuentas gracias a que actualiza datos de fin_banco_cuenta 1. • class Movimiento { var $con; var $conexion; • ///datos cuenta bancaria; • var $contabilidaFisicaBanco; • var $numeroCuenta; • var $bancoParticipante; • var $contabilidadContableBanco; • •var $cadenaSql="SELECT 9. fin_banco_movimientos.cod_banco_movimientos as Codigo,fin_banco_movimientos.cod_banco_cuenta as Cod_cuenta,fin_banco_movimientos.cod_tipo_movimiento as 10. Cod_Tipo_M,fin_banco_movimientos.gen_cod_participante as Cod_participante,fin_banco_movimientos.num_documento as Num_documento,fin_banco_movimientos.fecha as Fecha,fin_banco_movimientos.valor_total as Total,fin_banco_movimientos.conciliado as Conciliado,fin_banco_tipo_movimiento.descripcion as Des_Tipo,fin_banco_tipo_movimiento.operacion as Operacion,fin_banco_movimientos.descripcion as Descripcion,fin_banco_cuenta.n_cuenta as Num_cuenta,fin_banco_movimientos.cod_sucursal as Sucursal FROM fin_banco_movimientos,fin_banco_tipo_movimiento,fin_banco_cuenta WHERE fin_banco_movimientos.cod_tipo_movimiento = fin_banco_tipo_movimiento.cod_tipo_movimiento AND fin_banco_movimientos.cod_banco_cuenta = fin_banco_cuenta.cod_banco_cuenta AND upper(fin_banco_movimientos.estado)='A'"; 11. function Movimiento() { $this->con=new DBManager } • 2. 3. 4. 5. 6. 7. 8. Módulo Financiero 161 Método insertar movimientos.- Este método Inserta los movimientos según su naturaleza tanto en contabilidad como en la entidad Detalle Movimientos. 12. •function insertar_movimiento( 13. $cod_banco_cuenta,$cod_tipo_movimiento,$gen_cod_participante,$num_d ocumento,$valor_total,$descripcion,$conciliado,$fecha_conciliado,$respon sable_conciliacion,$usuario_creacion,$usuario_mod,$detalle_movimiento_ col1,$detalle_movimiento_col2,$detalle_movimiento_col3,$detalle_cheque s,$sucursal,$fecha ) { 14. • $this->sacarDatosCuentas($cod_banco_cuenta); 15. • $sucursal =$sucursal; 16. • $modulo_erp =1; 17. • $tipo_doc =1; 18. • $vtotal =$valor_total; 19. • $concepto =$descripcion; 20. • $user =$usuario_creacion; 21. $participanteBanco=$this->bancoParticipante; • 22. $codigoPlanCuentaBanco=1; • 23. $cuentaBancaria=$this->numeroCuenta; • 24. $cuenta=$this->contabilidadContableBanco; • 25. $cabecera=0; • 26. //asiento contable... //asiento contable.... • $tipo_docu=$cod_tipo_movimiento; 27. //inserta detalle //inserto el banco en el detalle..... • $op=''; 28. switch($cod_tipo_movimiento) { • 29. case 1:$tipo1='D'; • 30. $tipo2='H'; • 31. $op='+'; • 32. $tipo_docu=8; • 33. break; • 34. case 3:$tipo1='H'; • 35. $tipo2='D'; • 36. $op='-'; • 37. $tipo_docu=10; • 38. break; • 39. case 4:$tipo1='D'; • 40. $tipo2='H'; • Módulo Financiero 162 $op='+'; • $tipo_docu=11; • break; • case 10:$tipo1='H'; • $tipo2='D'; • $op='-'; • $tipo_docu=10; • break; • case 9:$tipo1='D'; • $tipo2='H'; • $op='+'; • $tipo_docu=8; • break; • case 8: $tipo1='D'; • $tipo2='H'; • $op='+'; • $tipo_docu=8; • break; • } • $concepto=$descripcion; • $cabecera=$this• >insertarCabeceraContabilidad($sucursal,$modulo_erp,$vtotal,$concepto,$user ,$tipo_docu); 62. $CodErp=1; • 63. $valorTotal=$valor_total; • 64. $valorDetalle=$valorTotal; • 65. $this• 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. >insertarDetalleContabilidad($cabecera,$tipo1,$cuenta,$CodErp,$valorDetalle,$ valorTotal,$sucursal); 66. //insercion de los detalles $col1= array(); • 67. $col2= array(); • 68. $col3= array(); • 69. //$col2= array(); • 70. //echo $detalle_movimiento_col1.'???'. • $detalle_movimiento_col2; 71. $col1= explode(",",$detalle_movimiento_col1); • 72. // trae los cidigos de las cuentas contables • $col2=explode(",",$detalle_movimiento_col2); 73. // trae los valores; • 74. $col3= explode(",",$detalle_movimiento_col1); • 75. // trae los cidigos de las cuentas contables fisicos) • //$col2=explode(",",$detalle_movimiento_col2); Módulo Financiero 163 // trae los valores; • for($i=0; • $i<count($col2); • $i++) { • $this• >insertarDetalleContabilidad($cabecera,$tipo2,$col1[$i],$CodErp,$col2[$i],$valo rTotal,$sucursal); 81. } • 82. if($this->con->conectar()==true) { • 83. $resultado=mysql_query('SET AUTOCOMMIT=0'); • 84. $resultado=mysql_query('START • 76. 77. 78. 79. 80. TRANSACTION'); 85. $resultado=mysql_query('BEGIN'); • 86. //insert de la cadena cabecera // • 87. $retorno=$this->insertarCabecera( • $cod_banco_cuenta,$cod_tipo_movimiento,$participanteBanco,$num_documen to,$valor_total,$descripcion,$usuario_creacion,$usuario_mod,$sucursal,$cabec era,$fecha ); 88. $retorno2=$this• >insertComMoviGen($CodErp,$cabecera,$participanteBanco,$cuenta,$tipo1,$v alor_total); 89. if(!$retorno) { • 90. mysql_query('ROLLBACK'); • 91. mysql_query('SET AUTOCOMMIT=1'); • 92. return -1; • 93. } • 94. else { • 95. $cod_banco_movimientos=$retorno; • 96. } • 97. $participante=1; • 98. /////////////// resolver participante for($i=0; • 99. $i<count($col2); • 100. $i++) { • 101. $retorno=$this• >insertarDetalle($cod_banco_movimientos,$col1[$i],$col2[$i],$usuario_creacion ); 102. $retorno2=$this• >insertComMoviGen($CodErp,$cabecera,$participanteBanco,$col1[$i],$tipo2,$c ol2[$i]); 103. if(!$retorno) { • 104. mysql_query('ROLLBACK'); • 105. mysql_query('SET AUTOCOMMIT=1'); • Módulo Financiero 164 return -1; • } • } • $retono=$this• >cambiarSaldo($cod_banco_cuenta,$op,$valor_total); 110. mysql_query('COMMIT'); • 111. mysql_query('SET AUTOCOMMIT=1'); • 112. return $cod_banco_movimientos; • 113. } • 114. } • 115. // fin funcion insertar... function • 106. 107. 108. 109. mostrar_movimiento_id($cod_banco_movimientos) { 116. if($this->con->conectar()==true) { • 117. $cadena=$this->cadenaSql; • 118. $cadena=$cadena." • and fin_banco_movimientos.cod_banco_movimientos ="; 119. $cadena=$cadena.$cod_banco_movimientos; • 120. $retorno= mysql_query($cadena); • 121. return $retorno; • 122. } • 123. } • 124. 125. 126. 127. 128. 129. 130. 131. 132. • function detalle_movimiento($id_movimiento) { $cadena= • " SELECT fin_banco_detalle_movimiento.valor as Valor,con_plan_cuentas.descripcion as Descripcion,fin_banco_detalle_movimiento.con_cuenta_afectada,fin_ba nco_detalle_movimiento.cod_banco_movimientos,con_plan_cuentas.co digo_cuenta as Codigo_cuenta FROM fin_banco_detalle_movimiento,con_plan_cuentas WHERE fin_banco_detalle_movimiento.con_cuenta_afectada = con_plan_cuentas.cod_plan_cuentas and fin_banco_detalle_movimiento.cod_banco_movimientos ="; $cadena= $cadena.$id_movimiento; • if($this->con->conectar()==true) { • $retorno=mysql_query($cadena); • } • return $retorno; • } • Módulo Financiero 165 Método mostrarMovimientos.- Muestra todos los movimientos activos según los parámetros ingresados. •function mostrarMovimientos($codCuenta,$codSucursal,$inicio, 134. $fin,$tipoMov=1,$numDoc='',$descripcion='',$operacion='',$conciliado='%') 135. { 136. if($this->con->conectar()==true) { • 137. if($codSucursal==-1) { • 133. 138. $condicion1 =" fin_banco_movimientos.cod_sucursal>-1 "; 139. } 140. else { 141. $condicion1 =" fin_banco_movimientos.cod_sucursal= ".$codSucursal; 142. } 143. if($codCuenta==-1) { 144. $condicion2 =" fin_banco_movimientos.cod_banco_cuenta>-1 "; 145. } 146. else { 147. $condicion2 =" fin_banco_movimientos.cod_banco_cuenta= ".$codCuenta; 148. } 149. if($tipoMov==-1) { 150. $condicion4=""; 151. } 152. else { 153. $condicion4=" fin_banco_movimientos.cod_tipo_movimiento = ".$tipoMov; 154. } 155. if($numDoc=='') { 156. $condicion5 =""; 157. } 158. else { 159. $condicion5=" fin_banco_movimientos.num_documento= ".$numDoc; 160. } Módulo Financiero and and and and and and 166 161. $condicion7=" and fin_banco_movimientos.descripcion like '%".$descripcion."%'"; 162. if($operacion=='') { 163. $condicion6 =""; 164. } 165. else { 166. $condicion6=" and fin_banco_tipo_movimiento.operacion like'".$operacion."'"; 167. } 168. if($conciliado=='A') { 169. $condicion8 ="and upper(fin_banco_movimientos.conciliado) in ('T','S') "; 170. } 171. else { • 172. $condicion8=" and • upper(fin_banco_movimientos.conciliado) like '".$conciliado."'"; 173. } • 174. $fecha_inicio="'".$inicio." 00:00:00'"; • 175. $fecha_fin="'".$fin." 23:59:59'"; • 176. $condicion3=" • and fin_banco_movimientos.fecha_creacion>= ".$fecha_inicio." and fin_banco_movimientos.fecha_creacion<= ".$fecha_fin; 177. • $sql="SELECT fin_banco_movimientos.cod_banco_movimientos as Codigo,fin_banco_movimientos.cod_banco_cuenta as Cod_cuenta,fin_banco_movimientos.cod_tipo_movimiento as Cod_Tipo_M,fin_banco_movimientos.gen_cod_participante as Cod_participante,fin_banco_movimientos.num_documento as Num_documento,fin_banco_movimientos.fecha as Fecha,fin_banco_movimientos.valor_total as Total,fin_banco_movimientos.conciliado as Conciliado,fin_banco_tipo_movimiento.descripcion as Des_Tipo,fin_banco_tipo_movimiento.operacion as Operacion,fin_banco_movimientos.descripcion as Descripcion,fin_banco_cuenta.n_cuenta as Num_cuenta,fin_banco_movimientos.cod_sucursal as Cod_Sucursal,gen_sucursal.nombre as Nombre_sucursal,fin_banco_movimientos.con_cod_diario as Cod_diario,gen_participantes.nombre as Nombre_banco,date(fin_banco_movimientos.fecha_conciliado) as Fecha_conciliado FROM fin_banco_movimientos,fin_banco_tipo_movimiento,fin_banco_cuenta,gen_s ucursal,fin_banco,gen_participantes WHERE Módulo Financiero 167 fin_banco_movimientos.cod_tipo_movimiento = fin_banco_tipo_movimiento.cod_tipo_movimiento AND fin_banco_movimientos.cod_banco_cuenta = fin_banco_cuenta.cod_banco_cuenta AND upper(fin_banco_movimientos.estado)='A' AND gen_participantes.cod_participante=fin_banco.gen_cod_participante and fin_banco.cod_banco=fin_banco_cuenta.cod_banco AND fin_banco_movimientos.cod_sucursal=gen_sucursal.cod_sucursal ".$condicion1.$condicion2.$condicion3.$condicion4.$condicion5.$condicion6 .$condicion7.$condicion8. " order by fin_banco_movimientos.fecha desc"; 178. //echo $sql; • 179. return mysql_query($sql); • 180. } • 181. } • Método insertarTransferencia.- Es el encargado de transferir los valores entre las cuentas bancaria de la empresa, a demás hace el asiento contable correspondiente y actualiza los saldos de ambas cuentas, cuando existe un error devuelve como resultado un valor de 1 en caso de éxito devuelve el valor del movimientos. 182. insertarTransferencia( function $codCuentaOrigen,$codCuentaDestino,$numDocumento,$descripcion,$valor ,$codSucursal,$usuario_creacion,$usuario_mod,$contabilidad1,$contabilida d2,$fecha ) { 183. $this->sacarDatosCuentas($codCuentaOrigen); 184. $modulo_erp =1; 185. $tipo_doc =5; 186. $vtotal =$valor_total; 187. $concepto =$descripcion; 188. $user =$usuario_creacion; 189. $participanteBanco=$this->bancoParticipante; 190. // $codigoPlanCuentaBanco=1; 191. $cuentaBancaria=$this->numeroCuenta; 192. $cuenta1=$this->contabilidadContableBanco; Módulo Financiero 168 193. $cabecera=0; 194. //asiento contable... //asiento contable.... $tipo_docu=$cod_tipo_movimiento; 195. $cod_banco_cuenta=$codCuentaOrigen; 196. $cod_tipo_movimiento=7; 197. $num_documento=$numDocumento; 198. $valor_total= $valor; 199. $sucursal=$codSucursal; 200. $cabecera=$this>insertarCabeceraContabilidad($codSucursal,$modulo_erp,$valor,$concepto ,$usuario_creacion,5); 201. $this>insertarDetalleContabilidad($cabecera,'D',$cuenta1,$modulo_erp,$valor,$v alor,$sucursal); 202. $this->sacarDatosCuentas($codCuentaDestino); 203. $cuenta2=$this->contabilidadContableBanco; 204. $this>insertarDetalleContabilidad($cabecera,'H',$cuenta2,$modulo_erp,$valor,$v alor,$sucursal); 205. if($this->con->conectar()==true) { 206. $resultado=mysql_query('SET AUTOCOMMIT=0'); 207. $resultado=mysql_query('START TRANSACTION'); 208. $resultado=mysql_query('BEGIN'); 209. $this->sacarDatosCuentas($codCuentaDestino); 210. $cuenta=$this->contabilidadContableBanco; 211. $retorno2=$this>insertCmMoviGen($modulo_erp,$cabecera,$this>bancoParticipante,$cuenta,'D',$valor); 212. $this->sacarDatosCuentas($codCuentaDestino); 213. $cuenta=$this->contabilidadContableBanco; 214. $retorno2=$this>insertComMoviGen($modulo_erp,$cabecera,$this>bancoParticipante,$cuenta,'H',$valor); 215. $tipo_docu=$cod_tipo_movimiento; 216. $cod_banco_cuenta=$codCuentaOrigen; 217. $cod_tipo_movimiento=7; 218. $num_documento=$numDocumento; 219. $valor_total = $valor; 220. $sucursal =$codSucursal; 221. $concepto =$descripcion; 222. $retorno=$this->insertarCabecera( $codCuntaOrigen,$cod_tipo_movimiento,$this- Módulo Financiero 169 >bancoParticipante,$numDocumento,$valor_total,$descripcion,$usuario_cre acion,$usuario_mod,$sucursal,$cabecera,$fecha ); 223. if(!$retorno) { 224. mysql_query('ROLLBACK'); 225. mysql_query('SET AUTOCOMMIT=1'); 226. return -1; 227. } 228. else { 229. $cod_banco_movimientos=$retorno; 230. } 231. $retorno=$this>insertarDetalle($cod_banco_movimientos,$contabilidad2,$valor_total,$usua rio_creacion); 232. $this->sacarDatosCuentas($codCuentaDestino); 233. $cod_banco_cuenta=$codCuentaDestino; 234. $cod_tipo_movimiento=6; 235. $num_documento=$numDocumento; 236. $verificador_insercion=0; 237. $valor_total= $valor; 238. $retorno=$this->insertarCabecera( $codCuentaDestino,$cod_tipo_movimiento,$this>bancoParticipante,$numDocumento,$valor_total,$descripcion,$usuario_cre acion,$usuario_mod,$sucursal,$cabecera,$fecha ); 239. if(!$retorno) { 240. mysql_query('ROLLBACK'); 241. mysql_query('SET AUTOCOMMIT=1'); 242. return -1; • 243. } • 244. else { • 245. $cod_banco_movimientos=$retorno; • 246. } • 247. $retorno=$this• >insertarDetalle($cod_banco_movimientos,$contabilidad1,$valor_total,$usua rio_creacion); 248. $cadena=''; • 249. $this->cambiarSaldo($codCuentaOrigen,'• ',$valor_total); 250. • >cambiarSaldo($codCuentaDestino,'+',$valor_total); 251. if(!$retorno) { • 252. mysql_query('ROLLBACK'); • 253. mysql_query('SET AUTOCOMMIT=1'); • Módulo Financiero $this- 170 254. 255. 256. 257. 258. 259. 260. • • • • • • • 261. return -1; } mysql_query('COMMIT'); mysql_query('SET AUTOCOMMIT=1'); return $cod_banco_movimientos; } } Método anulacionMovimiento($codigoMovimiento).- Anula los movimientos de fin_banco _movimientos y además hace un asiento contable, valida si el movimientos es un movimiento de tipo transacción además cuando la anulación es satisfactoria devuelve como resultado 0. 262. 263. 264. • function anulacionMovimiento($codigoMovimiento) { if($this->con->conectar()==true) { $sql=" select fin_banco_movimientos.valor_total • AS Valor,fin_banco_movimientos.con_cod_diario as Diario,fin_banco_tipo_movimiento.operacion as Signo,fin_banco_tipo_movimiento.cod_tipo_movimiento as Cod_tipo,fin_banco_movimientos.cod_banco_cuenta as Cod_cuenta from fin_banco_movimientos,fin_banco_tipo_movimiento where fin_banco_movimientos.cod_tipo_movimiento= fin_banco_tipo_movimiento.cod_tipo_movimiento and fin_banco_movimientos.cod_banco_movimientos=".$codigoMovimiento; 265. //echo '<br />'.$sql; • 266. $retorno= mysql_query($sql); • 267. $retorno= mysql_fetch_array($retorno); • 268. $valor=$retorno['Valor']; • 269. $diario=$retorno['Diario']; • 270. $signo=$retorno['Signo']; • 271. $cuenta=$retorno['Cod_cuenta']; • 272. $codigoTipoMovimiento=$retorno['Cod_tipo']; • Módulo Financiero 171 //anulo el movimiento • switch($codigoTipoMovimiento) { 274. case 1:$tpDoc=8; • 275. break; • 276. case 3:$tpDoc=10; • 277. break; • 278. case 4:$tpDoc=11; • 279. break; • 280. default:$tpDoc=5; • 281. break; • 282. } • 283. $sql=" update fin_banco_movimientos set • 273. fin_banco_movimientos.estado ='I' where fin_banco_movimientos.cod_banco_movimientos=".$codigoMovimiento. " and upper(fin_banco_movimientos.conciliado)='N'"; 284. $retorno= mysql_query($sql); • 285. $sql2=" update fin_banco_detalle_conciliacion set • fin_banco_detalle_conciliacion.tipo='D' where fin_banco_detalle_conciliacion.cod_movimiento=".$codigoMovimiento; 286. $retorno2= mysql_query($sql2); • 287. 288. if($signo=='+') { • $retorno=$this->cambiarSaldo($cuenta,'- ',$valor); 289. 290. 291. } • else { • $retorno=$this• >cambiarSaldo($cuenta,'+',$valor); 292. } • 293. if (($codigoTipoMovimiento==6)||($codigoTipoMovimiento==7)) { 294. $sql= "select • fin_banco_movimientos.cod_banco_cuenta as cuenta,fin_banco_movimientos.cod_banco_movimientos as codigo,fin_banco_movimientos.cod_banco_movimientos as codigo,fin_banco_movimientos.cod_tipo_movimiento as Cod_tipo from fin_banco_movimientos where fin_banco_movimientos.cod_banco_movimientos<>".$codigoMovimiento." and upper(fin_banco_movimientos.conciliado)='N' and fin_banco_movimientos.con_cod_diario=".$diario." AND fin_banco_movimientos.valor_total=".$valor; 295. // echo '<br />'.$sql; • 296. $retorno= mysql_query($sql); • 297. $retorno= mysql_fetch_array($retorno); • Módulo Financiero 172 $cuenta=$retorno['cuenta']; • $codigoMovimiento=$retorno['codigo']; • //$tipoMovimiento=$retorno['Cod_tipo']; • //signo anterior para el saldo.. $sql=" update • fin_banco_movimientos set fin_banco_movimientos.estado ='I' where fin_banco_movimientos.cod_banco_movimientos=".$codigoMovimiento. " and upper(fin_banco_movimientos.conciliado)='N'"; 302. $retorno= mysql_query($sql); • 303. $sql2=" update fin_banco_detalle_conciliacion • 298. 299. 300. 301. set fin_banco_detalle_conciliacion.tipo='D' where fin_banco_detalle_conciliacion.cod_movimiento=".$codigoMovimiento; 304. $retorno2= mysql_query($sql2); • 305. if($signo=='+') { • 306. $retorno=$this• >cambiarSaldo($cuenta,'+',$valor); 307. } • 308. else { • 309. $retorno=$this->cambiarSaldo($cuenta,'• ',$valor); 310. } • else } • 313. if codigo 7 $this->anulacionContabilidad ($codigoMovimiento,'bg'); 314. } • 315. • 316. } • 317. • 311. 312. Método insertarCabecera.- Inserta los datos, y devuelve como resultado el movimientos, este es utilizado por los métodos insertar, insertar transferencias. • function insertarCabecera($cod_banco_cuenta,$cod_tipo_movimiento,$gen_cod_partici pante,$num_documento,$valor_total,$descripcion,$usuario_creacion,$usuario_ mod,$sucursal,$cabecera,$fecha_actual='NOW()' ) { 318. Módulo Financiero 173 $sql="select count(cod_banco_movimientos) reg from • fin_banco_movimientos"; 320. // echo $fecha_actual; • 321. $consulta=mysql_query($sql); • 322. $registro=mysql_fetch_array($consulta); • 323. $registro=$registro['reg']; • 324. $cod_banco_movimientos=$registro+1; • 325. $cadena= "insert into fin_banco_movimientos ("; • 326. $cadena=$cadena." • 319. fin_banco_movimientos.cod_banco_movimientos,"; 327. $cadena=$cadena." • fin_banco_movimientos.cod_banco_cuenta,"; 328. $cadena=$cadena." • fin_banco_movimientos.cod_tipo_movimiento,"; 329. $cadena=$cadena." • fin_banco_movimientos.gen_cod_participante,"; 330. $cadena=$cadena." • fin_banco_movimientos.num_documento,"; 331. $cadena=$cadena." fin_banco_movimientos.fecha,"; • 332. $cadena=$cadena." • fin_banco_movimientos.valor_total,"; 333. $cadena=$cadena." • fin_banco_movimientos.descripcion,"; 334. $cadena=$cadena." • fin_banco_movimientos.conciliado,"; 335. $cadena=$cadena." • fin_banco_movimientos.fecha_conciliado,"; 336. $cadena=$cadena." • fin_banco_movimientos.responsable_conciliacion,"; 337. $cadena=$cadena." • fin_banco_movimientos.usuario_creacion,"; 338. $cadena=$cadena." • fin_banco_movimientos.fecha_creacion,"; 339. $cadena=$cadena." • fin_banco_movimientos.usuario_mod,"; 340. $cadena=$cadena." • fin_banco_movimientos.fecha_mod,"; 341. $cadena=$cadena." fin_banco_movimientos.estado,"; • 342. $cadena=$cadena." • fin_banco_movimientos.cod_sucursal,"; 343. $cadena=$cadena." • fin_banco_movimientos.con_cod_diario"; Módulo Financiero 174 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. • • • • • • • • • • • • • • • • • • • • • • • • • • • • $cadena=$cadena." ) values("; $cadena=$cadena.$cod_banco_movimientos.","; $cadena=$cadena.$cod_banco_cuenta.","; $cadena=$cadena.$cod_tipo_movimiento.","; $cadena=$cadena.$gen_cod_participante.","; $cadena=$cadena.$num_documento.","; $cadena=$cadena." '".$fecha_actual."',"; $cadena=$cadena.$valor_total.","; $cadena=$cadena." '".$descripcion."',"; $cadena=$cadena." 'n',"; $cadena=$cadena." '',"; $cadena=$cadena." '',"; $cadena=$cadena." '".$usuario_creacion."',"; $cadena=$cadena." NOW()".","; $cadena=$cadena." '".$usuario_mod."',"; $cadena=$cadena." NOW()".","; $cadena=$cadena."'".'A'."'"; $cadena=$cadena.",".$sucursal; $cadena=$cadena.",".$cabecera; $cadena=$cadena.")"; $retorno=mysql_query($cadena); if(!retorno) { return $retorno; } else { return $cod_banco_movimientos; } } Metodo insertarDetalle.- Inserta el detalle de la transacción. function • insertarDetalle($cod_banco_movimientos,$conCuenta,$valor,$usuario_creacion) { 373. $consulta="select count(cod_banco_cuentas_detalle) reg • 372. "; 374. $consulta=$consulta."from • fin_banco_detalle_movimiento"; 375. $registros=mysql_query($consulta); • Módulo Financiero 175 $registro = mysql_fetch_array($registros); • $registro=$registro['reg']; • $cod_banco_cuentas_detalle=$registro+1; • $cadena= ""; • $cadena=$cadena." insert into"; • $cadena=$cadena." fin_banco_detalle_movimiento"; • $cadena=$cadena." ( "; • $cadena=$cadena." • fin_banco_detalle_movimiento.cod_banco_cuentas_detalle,"; 384. $cadena=$cadena." • 376. 377. 378. 379. 380. 381. 382. 383. fin_banco_detalle_movimiento.cod_banco_movimientos,"; 385. $cadena=$cadena." • fin_banco_detalle_movimiento.con_cuenta_afectada,"; 386. $cadena=$cadena." • fin_banco_detalle_movimiento.valor,"; 387. $cadena=$cadena." • fin_banco_detalle_movimiento.estado,"; 388. $cadena=$cadena." • fin_banco_detalle_movimiento.usuario_creacion,"; 389. $cadena=$cadena." • fin_banco_detalle_movimiento.fecha_creacion,"; 390. $cadena=$cadena." • fin_banco_detalle_movimiento.usuario_mod,"; 391. $cadena=$cadena." • fin_banco_detalle_movimiento.fecha_mod"; 392. $cadena=$cadena." ) values ("; • 393. $cadena=$cadena.$cod_banco_cuentas_detalle.","; • 394. $cadena=$cadena.$cod_banco_movimientos.","; • 395. $cadena=$cadena.$conCuenta.","; • 396. $cadena=$cadena.$valor.","; • 397. $cadena=$cadena." 'A' ".","; • 398. $cadena=$cadena." '".$usuario_creacion."',"; • 399. $cadena=$cadena." NOW() ".","; • 400. $cadena=$cadena." '".$usuario_creacion."',"; • 401. $cadena=$cadena." NOW() "; • 402. $cadena=$cadena.")"; • 403. $retorno=mysql_query($cadena); • 404. return $retorno; • 405. } • Módulo Financiero 176 Método insertarCabeceraContabilidad.- Inserta la cabecera de contablidad gracias al SP sp_ingresa_cab_asiento. 406. 407. function insertarCabeceraContabilidad($sucursal,$modulo_erp,$vtotal,$concepto,$user,$ti po_doc) { 408. $conexion=$this->con->conectarli(); 409. $sql= "CALL sp_ingresa_cab_asiento (".$sucursal.',' .$modulo_erp.','.$tipo_doc.',' .$vtotal.',"' .$concepto.'","' .$user.'")'; 410. ; 411. $retorno =mysqli_query($conexion,$sql); 412. while ($row = mysqli_fetch_array($retorno)) { 413. $cabecera=$row[1]; 414. } 415. $this->con->cerrarConexion($conexion); 416. return $cabecera; 417. } 418. Método insertarDetalleContabilidad.- inserta el detalle en contabilidad por cada registro. 419. •function insertarDetalleContabilidad( $cabecera,$tipo,$cuenta,$CodErp, 420. $valorDetalle,$valorTotal,$sucursal) { 421. • $cuenta=$this->sacarDatosContable($cuenta); 422. • $sql='call sp_ingresa_det_asiento('.$cabecera.',"' .$cuenta.'", 423. "' .$tipo.'",' .$CodErp.',' .$valorDetalle.',' .$valorTotal. ',"","s",' .$sucursal.')'; 424. • $conexion=$this->con->conectarli(); 425. • $result = mysqli_query($conexion,$sql); 426. • $row=mysqli_fetch_array($result); 427. • $this->con->cerrarConexion($conexion); 428. • 429. • } Módulo Financiero 177 Método insertComMoviGen.- Inserta los datos cuadrados en la entidad correspondiente. 430. 431. 432. •function insertComMoviGen($CodErp,$cabecera, $participante,$codigoPlanCuenta,$tipo,$valor) { insert con_movimientos_gen •$sql=" ( con_movimientos_gen.cod_modulo_erp,con_movimientos_gen.cod_cab_asi ento,con_movimientos_gen.cod_participante,con_movimientos_gen.cod_pla n_cuentas,con_movimientos_gen.cuenta_bancaria,con_movimientos_gen.va lor,con_movimientos_gen.signo) values( ".$CodErp."," .$cabecera. "," .$participante."," .$codigoPlanCuenta.",'" .$cuentaBancaria."'," .$valor.",'" .$tipo. "')"; 433. return mysql_query($sql); • 434. } • Método sacarDatosCuentas.- Nos proporciona los datos de las cuentas bancarias para insertar correctamente a contabilidad. • function sacarDatosCuentas($codCuenta) { if($this->con->conectar()==true) { • $sql="select fin_banco_cuenta.n_cuenta as • codigo,fin_banco_cuenta.con_cod_plan_cuenta as CC,fin_banco.gen_cod_participante as parti from fin_banco_cuenta,fin_banco where fin_banco.cod_banco=fin_banco_cuenta.cod_banco and fin_banco_cuenta.cod_banco_cuenta=".$codCuenta; 438. $retorno=mysql_query($sql); • 439. //echo $sql; • 440. $retorno=mysql_fetch_array($retorno); • 441. //$this->con->cerrarNormal(); • 442. $this->bancoParticipante=$retorno['parti']; • 443. $this->contabilidadContableBanco=$retorno['CC']; • 444. $this->numeroCuenta=$retorno['codigo']; • 445. } • 446. } • 447. • function sacarDatosContable($codCuenta) { 435. 436. 437. Módulo Financiero 178 //echo 'Cuenta contable ---- '.$codCuenta; • if($this->con->conectar()==true) { • $sql="SELECT con_plan_cuentas.codigo_cuenta • as Cuenta FROM con_plan_cuentas where con_plan_cuentas.cod_plan_cuentas =".$codCuenta; 451. $retorno=mysql_query($sql); • 452. //echo $sql; • 453. $retorno=mysql_fetch_array($retorno); • 454. $this->con->cerrarNormal(); • 455. return $retorno['Cuenta']; • 456. } • 457. } • 448. 449. 450. Método cambiarSaldo.- Permite cambiar los saldos de las cuentas bancarias que intervienen en los movimientos realizados. • function cambiarSaldo($codCuenta,$op,$valor) { if($this->con->conectar()==true) { • if($op=='+') { • $sql="update fin_banco_cuenta set • fin_banco_cuenta.saldo=fin_banco_cuenta.saldo+".$valor." where fin_banco_cuenta.cod_banco_cuenta=".$codCuenta; 462. } • 463. else { • 464. $sql="update fin_banco_cuenta set • 458. 459. 460. 461. 465. 466. 467. 468. 469. fin_banco_cuenta.saldo=fin_banco_cuenta.saldo-".$valor." fin_banco_cuenta.cod_banco_cuenta=".$codCuenta; } • $retorno=mysql_query($sql); • return $retorno; • } • } • Módulo Financiero where 179 Método anulacionContabilidad.- En el momento que se elimina un movimientos de la tabla fin_banco_movimientos, este automáticamente elimina el movimiento contable haciendo un contra-asiento. 470. 471. 472. • function anulacionContabilidad($movimiento,$usuario='bg') { $sql = "SELECT • fin_banco_movimientos.cod_banco_movimientos Codigo,fin_banco_movimientos.cod_banco_cuenta Cod_cuenta,fin_banco_movimientos.cod_tipo_movimiento Cod_Tipo_M,fin_banco_movimientos.gen_cod_participante as 473. Cod_participante,fin_banco_movimientos.valor_total Total,fin_banco_movimientos.descripcion as 474. Descripcion,fin_banco_movimientos.cod_sucursal Sucursal,fin_banco_movimientos.valor_total as Valor fin_banco_movimientos fin_banco_movimientos.cod_banco_movimientos=".$movimiento; 475. $sql2= " • as as as as as FROM WHERE SELECT fin_banco_detalle_movimiento.cod_banco_movimientos as Cod_movimiento,fin_banco_detalle_movimiento.con_cuenta_afectada as Cuenta,fin_banco_detalle_movimiento.valor as Valor FROM fin_banco_detalle_movimiento where fin_banco_detalle_movimiento.cod_banco_movimientos=".$movimiento; 476. if($this->con->conectar()==true) { • 477. $retorno=mysql_query($sql); • 478. $registro=mysql_fetch_array($retorno); • 479. $detalle=mysql_query($sql2); • 480. $cod_tipo_movimiento=$registro['Cod_Tipo_M']; • 481. $descripcion ="Anulacion de • Registro".$registro['Descripcion']; 482. $sucursal =$registro['Sucursal']; • 483. $valor = $registro['Valor']; • 484. $cuentaBancaria=$registro['Cod_cuenta']; • 485. switch ($cod_tipo_movimiento) { • 486. case 1:$tipo_doc=8; • 487. $tipo1='H'; • Módulo Financiero 180 $tipo2='D'; • break; • case 4:$tipo_doc=10; • $tipo1='H'; • $tipo2='D'; • break; • case 3:$tipo_doc=11; • $tipo1='D'; • $tipo2='H'; • break; • case 6:$tipo_doc=5; • $tipo1='H'; • $tipo2='D'; • break; • case 7:$tipo_doc=5; • $tipo1='D'; • $tipo2='H'; • break; • case 8: $tipo_doc=8; • $tipo1='H'; • 508. $tipo2='D'; 509. break; 510. } 511. } 512. $modulo_erp=1; 513. $cabecera=$this>insertarCabeceraContabilidad($sucursal,$modulo_erp,$valor,$descripcion,$usu ario,$tipo_doc); 514. $this->sacarDatosCuentas($cuentaBancaria); 515. $cuenta=$this->contabilidadContableBanco; 516. $this->numeroCuenta; 517. $this>insertarDetalleContabilidad($cabecera,$tipo1,$cuenta,$modulo_erp,$valor,$valo r,$sucursal); 518. //insertar detalles... while($fila=mysql_fetch_array($detalle)) { 519. $a=$this>insertarDetalleContabilidad($cabecera,$tipo2,$fila['Cuenta'],$modulo_erp,$fila['V alor'],$valor,$sucursal); 520. } 521. $this->con->conectar(); 488. 489. 490. 491. 492. 493. 494. 495. 496. 497. 498. 499. 500. 501. 502. 503. 504. 505. 506. 507. Módulo Financiero 181 522. $this->insertComMoviGen(1,$cabecera,$this>bancoParticipante,$this->contabilidadContableBanco,$tipo1,$valor); 523. $detalle2=mysql_query($sql2); 524. while($fila=mysql_fetch_array($detalle2)) { 525. //$a=$this- >insertarDetalleContabilidad($cabecera,$tipo2,$fila['Cuenta'],$modu lo_erp,$fila['Valor'],$valor,$sucursal); 526. $this>insertComMoviGen(1,$cabecera,$this>bancoParticipante,10,$tipo2,$fila['Valor']); 527. } 528. $this->con->cerrarNormal(); 529. //return true; 530. } Método movimientoHermano.- Identifica el movimiento asociado a una trasferencia. 531. function m ovim ie ntoHe rm a no($codMovim ie nto) { 532. if($this->con->conectar()==true) { 533. $sql=" select fin_banco_movimientos.cod_banco_movimientos as Codigo,fin_banco_cuenta.cod_banco_cuenta as Cod_cuenta,gen_participantes.nombre as Nombre,fin_banco_cuenta.n_cuenta as Numero,fin_banco_movimientos.conciliado as Conciliado,con_plan_cuentas.codigo_cuenta as Codigo,con_plan_cuentas.descripcion as Descripcion from fin_banco_movimientos,gen_participantes,fin_banco,fin_banco_cuenta,con _plan_cuentas where gen_participantes.cod_participante=fin_banco.gen_cod_participante and fin_banco.cod_banco=fin_banco_cuenta.cod_banco and fin_banco_movimientos.cod_banco_movimientos <>".$codMovimiento." and fin_banco_cuenta.cod_banco_cuenta = fin_banco_movimientos.cod_banco_cuenta and con_plan_cuentas.cod_plan_cuentas=fin_banco_cuenta.con_cod_plan_cue nta and fin_banco_movimientos.con_cod_diario in ( select Módulo Financiero 182 fin_banco_movimientos.con_cod_diario from fin_banco_movimientos where fin_banco_movimientos.cod_banco_movimientos=".$codMovimiento.") limit 1"; 534. //echo $sql; 535. $retorno=mysql_query($sql); 536. return $retorno; 537. } 538. } 539. Método insertarMovimientoCajaBanco.- Inserta los movimientos de caja y bancos. 540. function insertarMovimientoCajaBanco( $cod_banco_cuenta,$num_documento,$valor_total,$descripcion,$usuario_creaci on,$ArregloDepositos,$ArregloCuentasContables,$ArregloValores,$sucursal,$fec ha,$tipoMov=8 ) { 541. //echo $ArregloDepositos; • 542. //echo $ArregloCuentasContables; • 543. $ArregloDepositos= explode(',',$ArregloDepositos); • 544. • $ArregloCuentasContables=explode(',',$ArregloCuentasContables); 545. $ArregloValores=explode(',',$ArregloValores); • 546. $this->sacarDatosCuentas($cod_banco_cuenta); • 547. $sucursal =$sucursal; • 548. $modulo_erp =1; • 549. $tipo_doc =3; • 550. $vtotal =$valor_total; • 551. $concepto =$descripcion; • 552. $user =$usuario_creacion; • 553. $participanteBanco=$this->bancoParticipante; • 554. $cuentaBancaria=$this->numeroCuenta; • 555. $cuenta=$this->contabilidadContableBanco; • 556. $cabecera=0; • 557. $cabecera=$this• >insertarCabeceraContabilidad($sucursal,$modulo_erp,$vtotal,$concepto,$user,$ tipo_doc); Módulo Financiero 183 $this• >insertarDetalleContabilidad($cabecera,'D',$cuenta,$modulo_erp,$vtotal,$vtotal,$ sucursal); 559. for($i=0; • 560. $i<count($ArregloDepositos); • 561. $i++) { • 562. $this• 558. >insertarDetalleContabilidad($cabecera,'H',$ArregloCuentasContables[$i],$modul o_erp,$ArregloValores[$i],$vtotal,$sucursal); 563. } • 564. if($this->con->conectar()==true) { • 565. $retorno=$this->insertarCabecera( • $cod_banco_cuenta,$tipoMov,$participanteBanco,$num_documento,$valor_total, $descripcion,$usuario_creacion,$usuario_creacion,$sucursal,$cabecera,$fecha ); 566. $cod_movimiento=$retorno; • 567. $retorno2=$this• >insertComMoviGen($modulo_erp,$cabecera,$participanteBanco,$cuenta,'D',$va lor_total); 568. $participante= $participanteBanco; • 569. /////////////// resolver participante for($i=0; • 570. $i<count($ArregloDepositos); • 571. $i++) { • 572. $retorno=$this• >insertarDetalle($retorno,$ArregloCuentasContables[$i],$ArregloValores[$i],$usu ario_creacion); 573. $retorno2=$this• >insertComMoviGen($modulo_erp,$cabecera,$participante,$ArregloCuentasCont ables[$i],'H',$ArregloValores[$i]); 574. /// ejecutar deposito en tabla de tes_deposito • $sql ="update tes_deposito_caja set tes_deposito_caja.estado_proceso_deposito='E',tes_deposito_caja.fin_cod_movi miento=".$cod_movimiento." where tes_deposito_caja.cod_deposito=".$ArregloDepositos[$i]; 575. mysql_query($sql); • 576. } • 577. $retono=$this• >cambiarSaldo($cod_banco_cuenta,'+',$valor_total); 578. return $cod_movimiento; • 579. } • 580. } • function 581. anulacionMovimientoCajaBanco($cod_movimiento) { Módulo Financiero 184 $this582. • >anulacionContabilidad($movimiento,$usuario='bg'); if($this->con->conectar()==true) { 583. • $sql="update tes_deposito_caja set 584. • tes_deposito_caja.estado_proceso_deposito='P',where tes_deposito_caja.fin_cod_movimiento=".$movimiento; mysql_query($sql); 585. • } 586. • } 587. • Método insertarMovimientosCajaBancosCheques.- Ingresa los datos. insertarMovimientosCajaBancosCheques( function • $cod_banco_cuenta,$num_documento,$valor_total,$descripcion,$usuario_creaci on,$ArregloDepositos,$ArregloCuentasContables,$ArregloValores,$sucursal,$fec ha ) { 589. $codMovimiento=$this• 588. >insertarMovimientoCajaBanco( $cod_banco_cuenta,$num_documento,$valor_total,$descripcion,$usuario_creaci on,$ArregloDepositos,$ArregloCuentasContables,$ArregloValores,$sucursal,9,$fe cha ); 590. if($this->con->conectar()==true) { • 591. $arregloDepos=array(); • 592. $arregloDepos=explode(',',$ArregloDepositos); • 593. for($i=0; • 594. $i<count($arregloDepos); • 595. $i++) { • 596. $sql= "update cxc_cheque set • cxc_cheque.cod_tipo_cheque= 4 where cxc_cheque.cod_cheque in ( SELECT cxc_cobros.cod_cheque as CodigoCheque from cxc_cobros where cxc_cobros.cod_predeposito=".$arregloDepos[$i]." and cxc_cobros.estado='A' )"; 597. mysql_query($sql); • 598. } • 599. // sacar cajas y cuentas contables • 600. } • 601. return $codMovimiento; • 602. } • Módulo Financiero 185 Método ingresarChequeprotestado.- Descuenta los valores por cheques protestados de nuestros clientes. 603. 604. ingresarChequeprotestado function • ($codCheque,$valorTotal,$valorRecargo,$tipoCargo,$ observacion,$cuentaBanco,$sucursal,$numDocumento,$ usuario) { 605. if($this->con• >conectar()==true) { 606. $sql= "select • fin_banco_notasdebcheque.afecta as afecta,fin_banco_notasdebcheque.cod_contabilidad as contabilidad,fin_banco_notasdebcheque.cod_sec from fin_banco_notasdebcheque where fin_banco_notasdebcheque.cod_sec=". $tipoCargo; 607. $return=mysql_query($sql); • 608. • $registro=mysql_fetch_array($return); 609. • if($registro['afecta']=='C') { 610. $sql="SELECT • fac_cliente.cod_cuenta as Cuenta from cxc_cobros,fac_cab_agenda_cobro,fac_cliente where cxc_cobros.cod_cheque= '".$codCheque."' and fac_cab_agenda_cobro.cod_agenda_cobro=cxc_cobros.f ac_cod_agenda_cobro and fac_cab_agenda_cobro.fac_cliente=fac_cliente.cod_c liente"; 611. • $return1=mysql_query($sql); 612. • $cuentas=mysql_fetch_array($return1); 613. $cuentaContables= • $cuentas['Cuenta']; 614. $valores= $valorTotal; • 615. $recargoE=0; • 616. • $recargoC=$valorRecargo; Módulo Financiero 186 } • else { • 619. $cuentaContables=21 • .','.$registro['contabilidad']; 620. $valores =$valorTotal• $valorRecargo.",".$valorRecargo; 621. • $recargoE=$valorRecargo; 622. $recargoC=0; • 623. } • 624. } • 625. $retorno=$this• >insertar_movimiento($cuentaBanco,10,1,$numDocumen to,$valorTotal,$observacion,'n','','',$usuario,$us uario,$cuentaContables,$valores,$cuentaContables,' ',$sucursal ); 626. //actualizar datos en cxc. • $this->con->conectar(); 627. $sql="update cxc_cheque set • cxc_cheque.cod_tipo_cheque=3 where cxc_cheque.cod_cheque='".$codCheque."'"; 628. //echo $sql; • 629. mysql_query($sql); • 630. $valorcheque=$valorTotal• $valorRecargo; 631. $sql=" insert into • fin_banco_cheques_devueltos (cod_cxc_cheques,cod_fin_banco_movimientos,r_clien te,r_empresa,valor_cheque,valor_total,estado) values('".$codCheque."',".$retorno.",".$recargoC." ,".$recargoE.",".$valorcheque.",".$valorTotal.",'A ')"; 632. mysql_query($sql); • 633. return $retorno; • 634. } • 635. • } 617. 618. Módulo Financiero 187 Clase Conciliación. Esta clase se utiliza para realizar las inserciones en la entidad Fin conciliación y Fin_detalle_conciliacion, registra los métodos de insert, update y delete a los datos, además, tiene métodos para conocer los movimientos conciliados y el cierre de un periodo en una fecha determinada. Atributos y Constructor. Los atributos utilizados en esta clase son el objeto conexión. 636. 637. 638. 639. 640. 641. 642. 643. Módulo Financiero class Conciliacion { var $con; function Conciliacion() { $this->con=new DBManager; } 188 MÉTODO PROCESAR_CONCILIACION.- Recibe parámetros como los movimientos, en un formato de arreglo, tanto los que el usuario a elegido para ser conciliados así como los que están en tránsito, la fecha del estado bancario, y el saldo en bancos procesado a la fecha. 644. function procesar_conciliacion( $cod_banco_cuenta, $saldo_conciliacion_anterior, $saldo_conciliacion, $mes_conciliado, $anio_conciliado, $usuario_creacion, $arreglo_movimientos_id_conciliados, $arreglo_movimientos_id_transito, $fecha_estado_bancario, $saldo_banco ) 645. { 646. if($this->con->conectar()==true) 647. { 648. $resultado = mysql_query('SET AUTOCOMMIT=0'); 649. $resultado = mysql_query('START TRANSACTION'); 650. $resultado = mysql_query('BEGIN'); 651. //estraigo los datos de la cadena $Sql para optener el numero siguiente de conciliacion $Sql ="select count(fin_banco_conciliacion.cod_conciliacion )+1 as reg from fin_banco_conciliacion"; 652. $registros = mysql_fetch_array(mysql_query($Sql)); 653. $cod_banco_conciliacion =$registros['reg']; 654. $usuario_modificacion = $usuario_creacion; 655. // seteo cadena con consulta para insetar data en la tabla conciliacion $cadena =''; 656. $cadena =$cadena. "insert into fin_banco_conciliacion "; 657. $cadena =$cadena. "( "; 658. $cadena =$cadena. "fin_banco_conciliacion.cod_conciliacion" .","; 659. $cadena =$cadena. "fin_banco_conciliacion.cod_fin_banco_cuenta" .","; 660. $cadena =$cadena. "fin_banco_conciliacion.saldo_conciliacion_anterior" .","; Módulo Financiero 189 661. $cadena =$cadena. "fin_banco_conciliacion.saldo_conciliado" .","; 662. $cadena =$cadena. "fin_banco_conciliacion.mes_conciliado" .","; 663. $cadena =$cadena. "fin_banco_conciliacion.anio_conciliado" .","; 664. $cadena =$cadena. "fin_banco_conciliacion.usuario_creacion" .","; 665. $cadena =$cadena. "fin_banco_conciliacion.fecha_creacion" .","; 666. $cadena =$cadena. "fin_banco_conciliacion.usuario_modificacion" .","; 667. $cadena =$cadena. "fin_banco_conciliacion.fecha_modificacion" .","; 668. $cadena =$cadena. "fin_banco_conciliacion.fecha_estado_bancario" .","; 669. $cadena =$cadena. "fin_banco_conciliacion.saldo_banco"; 670. $cadena =$cadena. ")"; 671. $cadena =$cadena. "values ( "; 672. $cadena =$cadena. $cod_banco_conciliacion .","; 673. $cadena =$cadena. $cod_banco_cuenta .","; 674. $cadena =$cadena. $saldo_conciliacion_anterior .","; 675. $cadena =$cadena. $saldo_conciliacion .","; 676. $cadena =$cadena. $mes_conciliado .","; 677. $cadena =$cadena. $anio_conciliado .","; 678. $cadena =$cadena. "'". $usuario_creacion ."',"; 679. $cadena =$cadena. "NOW() ,"; 680. $cadena =$cadena."'". $usuario_modificacion ."',"; 681. $cadena =$cadena. "NOW(), "; 682. $cadena =$cadena."'".$fecha_estado_bancario."',"; 683. $cadena =$cadena.$saldo_banco; 684. $cadena =$cadena. ")"; 685. $Sql =$cadena; 686. //echo ".. cabecera ".$Sql; 687. // inicio la transaccion $retorno1= mysql_query($Sql); 688. $id_conciliados= array(); 689. $id_conciliados=explode(',',$arreglo_movimientos_id_conciliados); 690. $id_transito= array(); 691. $id_transito= explode(',',$arreglo_movimientos_id_transito); 692. //echo $arreglo_movimientos_id_transito; 693. $verificador=0; Módulo Financiero 190 694. $sql="insert into fin_banco_detalle_conciliacion ( fin_banco_detalle_conciliacion.cod_banco_conciliacion, fin_banco_detalle_conciliacion.cod_movimiento, fin_banco_detalle_conciliacion.usuario_creacion, fin_banco_detalle_conciliacion.fecha_creacion, fin_banco_detalle_conciliacion.usuario_modificacion, fin_banco_detalle_conciliacion.fecha_modificacion, fin_banco_detalle_conciliacion.tipo ) values "; 695. $cadena=''; 696. for($i=0;$i<count($id_conciliados); 697. $i++) 698. { 699. if($id_conciliados[$i]!='') 700. { 701. $cadena =$cadena."("; 702. $cadena = $cadena. $cod_banco_conciliacion .","; 703. $cadena = $cadena. $id_conciliados[$i] .","; 704. $cadena =$cadena. "'". $usuario_creacion ."',"; 705. $cadena =$cadena. " NOW() ,"; 706. $cadena =$cadena."'". $usuario_modificacion."',"; 707. $cadena =$cadena. "NOW(), "; 708. $cadena =$cadena."'C'),"; 709. } 710. } 711. $long=strlen($cadena); 712. $cadena=substr($cadena,0,$long-1); 713. $cadena=$sql.$cadena; 714. //echo $cadena; 715. $retorno2=mysql_query($cadena); 716. $cadena= " update fin_banco_movimientos set"; 717. $cadena=$cadena. " fin_banco_movimientos.conciliado ='S',"; 718. $cadena=$cadena. " fin_banco_movimientos.fecha_conciliado = NOW() "; 719. $cadena=$cadena. " where"; 720. $cadena=$cadena." fin_banco_movimientos.cod_banco_movimientos in (".$arreglo_movimientos_id_conciliados.")"; 721. //echo $cadena; 722. $retorno3= mysql_query($cadena); 723. $sql= "insert into fin_banco_detalle_conciliacion ( fin_banco_detalle_conciliacion.cod_banco_conciliacion , Módulo Financiero 191 fin_banco_detalle_conciliacion.cod_movimiento, fin_banco_detalle_conciliacion.usuario_creacion, fin_banco_detalle_conciliacion.fecha_creacion, fin_banco_detalle_conciliacion.usuario_modificacion, fin_banco_detalle_conciliacion.fecha_modificacion, fin_banco_detalle_conciliacion.tipo ) values "; 724. $cadena=''; 725. for($i=0;$i<count($id_transito); 726. $i++) 727. { 728. if($id_transito[$i]!='') 729. { 730. $cadena=$cadena.'('; 731. $cadena = $cadena. $cod_banco_conciliacion .","; 732. $cadena = $cadena. $id_transito[$i] .","; 733. $cadena =$cadena. "'". $usuario_creacion ."',"; 734. $cadena =$cadena. " NOW() ,"; 735. $cadena =$cadena."'". $usuario_modificacion."',"; 736. $cadena =$cadena. "NOW() "; 737. $cadena =$cadena.",'T'),"; 738. } 739. } 740. $long=strlen($cadena); 741. $cadena=substr($cadena,0,$long-1); 742. $cadena=$sql.$cadena; 743. //echo $cadena; 744. $retorno4=mysql_query($cadena); 745. $cadena= " update fin_banco_movimientos set"; 746. $cadena=$cadena. " fin_banco_movimientos.conciliado ='T',"; 747. $cadena=$cadena. " fin_banco_movimientos.fecha_conciliado = NOW() "; 748. $cadena=$cadena. " where"; 749. $cadena=$cadena." fin_banco_movimientos.cod_banco_movimientos in (".$arreglo_movimientos_id_transito.")"; 750. //echo " <hr /> ".$cadena; 751. $retorno5= mysql_query($cadena); 752. if(($retorno1)&&($retorno1)&&($retorno1)&&($retorno1)&&($retorno1)&&($retorno 1)) 753. { Módulo Financiero 192 754. $registro=mysql_query('COMMIT'); 755. // entra en todos los $cod_banco_conciliacion; 756. return $cod_banco_conciliacion; 757. } 758. else 759. { 760. return $cod_banco_conciliacion; 761. $registro=mysql_query('ROLLBACK'); 762. //echo 0; 763. return -1; 764. } 765. } 766. } MÉTODO bucles // echo MOSTRAR_MOVIMIENTOS($CUENTA,$FECHA).- Muestra los movimientos a una fecha determinada, para ser conciliados. 767. 768. 769. 770. 771. 772. function mostrar_movimientos($cuenta,$fecha) { if($this->con->conectar()) { $sql= "SELECT fin_banco_movimientos.cod_banco_movimientos as Codigo, fin_banco_movimientos.cod_banco_cuenta as Cod_cuenta, fin_banco_movimientos.cod_tipo_movimiento as Cod_Tipo_M, fin_banco_movimientos.gen_cod_participante as Cod_participante, fin_banco_movimientos.num_documento as Num_documento , fin_banco_movimientos.fecha as Fecha, fin_banco_movimientos.valor_total as Total, fin_banco_movimientos.conciliado as Conciliado, fin_banco_tipo_movimiento.descripcion as Des_Tipo, fin_banco_tipo_movimiento.operacion as Operacion, Módulo Financiero 193 fin_banco_movimientos.descripcion as Descripcion, fin_banco_cuenta.n_cuenta as Num_cuenta, gen_sucursal.nombre as Nombre_suc FROM fin_banco_movimientos , fin_banco_tipo_movimiento , fin_banco_cuenta, gen_sucursal WHERE fin_banco_movimientos.cod_tipo_movimiento = fin_banco_tipo_movimiento.cod_tipo_movimiento AND fin_banco_movimientos.cod_banco_cuenta = fin_banco_cuenta.cod_banco_cuenta AND upper(fin_banco_movimientos.estado)<>'I' AND upper(fin_banco_movimientos.conciliado)<>'S' AND fin_banco_movimientos.cod_sucursal=gen_sucursal.cod_sucursal and fin_banco_movimientos.cod_banco_cuenta =".$cuenta." and fin_banco_movimientos.fecha <'".$fecha." 23:59:59' order by fin_banco_movimientos.fecha desc , fin_banco_movimientos.cod_banco_movimientos desc "; 773. // echo $sql; 774. $consulta= mysql_query($sql); 775. return $consulta; 776. } 777. } Método Obtener conciliación.- Permite obtener una conciliación a una fecha determinada y de una cuenta bancaria especificada en los parámetros. 778. function mostrar_movimientos($cuenta,$fecha) 779. { 780. if($this->con->conectar()) 781. { 782. $sql= fin_banco_movimientos.cod_banco_movimientos as fin_banco_movimientos.cod_banco_cuenta as Cod_cuenta, 783. fin_banco_movimientos.cod_tipo_movimiento Cod_Tipo_M, fin_banco_movimientos.gen_cod_participante Cod_participante, fin_banco_movimientos.num_documento Módulo Financiero "SELECT Codigo, as as as 194 Num_documento , fin_banco_movimientos.fecha as Fecha, fin_banco_movimientos.valor_total as Total, fin_banco_movimientos.conciliado as Conciliado, fin_banco_tipo_movimiento.descripcion as Des_Tipo, fin_banco_tipo_movimiento.operacion as Operacion, fin_banco_movimientos.descripcion as Descripcion, fin_banco_cuenta.n_cuenta as Num_cuenta, gen_sucursal.nombre as Nombre_suc FROM fin_banco_movimientos , fin_banco_tipo_movimiento , fin_banco_cuenta, gen_sucursal WHERE fin_banco_movimientos.cod_tipo_movimiento = fin_banco_tipo_movimiento.cod_tipo_movimiento AND fin_banco_movimientos.cod_banco_cuenta = fin_banco_cuenta.cod_banco_cuenta AND upper(fin_banco_movimientos.estado)<>'I' AND upper(fin_banco_movimientos.conciliado)<>'S' AND fin_banco_movimientos.cod_sucursal=gen_sucursal.cod_sucursal and fin_banco_movimientos.cod_banco_cuenta =".$cuenta." and fin_banco_movimientos.fecha <'".$fecha." 23:59:59' order by fin_banco_movimientos.fecha desc , fin_banco_movimientos.cod_banco_movimientos desc "; 784. // echo $sql; 785. $consulta= mysql_query($sql); 786. return $consulta; 787. } 788. } 789. Método mostrarMovimientosTransito.- Nos muestra los movimientos en que se encuentran almacenados en la base de datos. 790. function $conciliacion,$conciliado) 791. { 792. if($this->con->conectar()) 793. { Módulo Financiero mostrarMovimientosTransito($tipo, 195 794. $sql="SELECT fin_banco_movimientos.valor_total as Valor, fin_banco_movimientos.descripcion as Descripcion, 795. fin_banco_movimientos.num_documento as Numero FROM fin_banco_detalle_conciliacion, fin_banco_movimientos where fin_banco_movimientos.cod_tipo_movimiento=".$tipo." and fin_banco_detalle_conciliacion.cod_banco_conciliacion=".$conciliacion." and upper(fin_banco_detalle_conciliacion.tipo)='".$conciliado."' and fin_banco_movimientos.cod_banco_movimientos=fin_banco_detalle_conc iliacion.cod_movimiento order by 1"; 796. $consulta= mysql_query($sql); 797. return $consulta; 798. } 799. } 800. 801. Módulo Financiero 196 Funciones. Las funciones nos ayudan a trabajar las peticiones de las páginas HTML que viene por el método Post o Get, éstas validan la información y la procesan según la acción encomendada. Archivo Banco.Guardar.Php.Se encarga de guardar los datos en la base de datos con el objeto, $objbanco, las acciones son: 1. 2. 3. 4. 1. Guardar. 2. Actualizar. 3. Eliminar. <?php require('../clases/banco.class.php'); $objbanco=new bancos(); $consulta=''; if((isset($_POST['RUC']))&&(isset($_POST['nombre']) )&&(isset($_POST['razon_social']))&&(isset($_POST['cod_t_p']))&&(i sset($_POST['telefono']))&&(isset($_POST['observaciones']))&&(iss et($_POST['direccion']))&&(isset($_POST['accion']))) 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Módulo Financiero { $cedula_ruc=$_POST['RUC']; $nombre_1=$_POST['nombre']; $nombre_completo=$_POST['nombre']; $razon_social=$_POST['razon_social']; $estado='A'; $user_creacion='USERio'; $cod_t_p=$_POST['cod_t_p']; /////// sesion reemplazar asi. $user_mod = 'US'; /////// sesion reemplazar asi..... $direccion=$_POST['direccion']; 197 17. 18. $telefono=$_POST['telefono']; if(isset($_POST['email'])) $email=$_POST['email']; 19. 20. 21. 22. 23. 24. else $email=''; if($_POST['web']!='') $pagina_web=$_POST['web']; else $pagina_web='http:'; if(($_POST['telefono2'])!='') $telefono2=$_POST['telefono2']; else $telefono2='000000000'; if(isset($_POST['ciudad'])) $ciudad=$_POST['ciudad']; 25. else $ciudad=1; 26. $observaciones=$_POST['observaciones']; 27. if ($_POST['accion']==1) 28. { 29. $consulta=$objbanco->insertar( $cedula_ruc, $nombre_1, $nombre_completo, $razon_social, $estado, $user_creacion, $user_mod, $cod_t_p, $direccion, $email, $pagina_web, $telefono, $telefono2, $ciudad, $observaciones); 30. echo $consulta; 31. } 32. else 33. { 34. if (($_POST['accion']==2)&&(isset($_POST['id']))) 35. { 36. 37. // echo 'actualizar'; 38. $id=$_POST['id']; 39. $consulta=$objbanco->actualizar($id, $nombre_completo, $user_modificacion, $direccion, $email, $pagina_web, $telefono, $telefono2, $observaciones,$ciudad); 40. echo $consulta; 41. } 42. } 43. } 44. if (($_POST['accion']==3)&&(isset($_POST['id']))) 45. 46. 47. 48. 49. 50. Módulo Financiero { $consulta=$objbanco->eliminar($_POST['id']); echo $consulta; } ?> 198 Archivo cuenta.guardar.php.Se encarga de guardar los datos en la base de datos con el objeto, $objcuenta, las acciones son: 1. Guardar. 2. Actualizar. 3. Eliminar. 1. <?php require('../clases/cuentas.class.php'); 2. require('../session.php'); 3. $objcuenta=new cuentas(); 4. $consulta=''; 5. if ((isset($_POST['accion']))&&(isset($_POST['cod_banco']))&& (isset($_POST['cod_banco']))&&(isset($_POST['cod_tipo_cuenta']))&& (isset($_POST['cod_conta']))&&(isset($_POST['nombre_cuenta']))&& (isset($_POST['fecha_apertura']))&&(isset($_POST['titular']))&& (isset($_POST['cheque']))&&(isset($_POST['observacion']))&&(isset($_POST['n_c uenta']))) 6. { 7. $cod_banco=$_POST['cod_banco']; 8. $cod_tipo_cuenta=$_POST['cod_tipo_cuenta']; 9. $cod_conta = $_POST['cod_conta']; 10. $nombre_cuenta=$_POST['nombre_cuenta']; 11. $fecha_apertura=$_POST['fecha_apertura']; 12. $titular=$_POST['titular']; 13. $cheque=$_POST['cheque']; 14. $cheque_sig=$_POST['cheque_sig']; 15. $deposito_sig=$_POST['deposito_sig']; 16. $debito_sig=$_POST['nd_sig']; 17. $credito_sig=$_POST['nc_sig']; 18. $observacion=$_POST['observacion']; 19. $usuario_crea= sesiones(); 20. $usuario_mod=sesiones(); 21. $n_cuenta=$_POST['n_cuenta']; 22. $documento_fin=$_POST['documento_fin']; 23. $contacto=$_POST['contacto']; 24. $contacto_telefono=limpiar($_POST['contacto_telefono']); 25. $contacto_fax=limpiar($_POST['contacto_fax']); Módulo Financiero 199 26. $contacto_comentario=$_POST['contacto_comentario']; 27. $contacto_cargo=$_POST['contacto_cargo']; 28. if ($_POST['accion']==1) 29. { 30. $consulta=$objcuenta->insertar( $cod_banco, $cod_tipo_cuenta, $cod_conta, $nombre_cuenta, $fecha_apertura, $titular, $cheque, $cheque_sig, 31. $deposito_sig, $credito_sig, $debito_sig, $observacion, $usuario_crea, $n_cuenta, $document_fin, $contacto_telefono, $contacto_fax, $contacto_comentario, $contacto_cargo, $contacto ); 32. echo $consulta; 33. //creo la primera cinciliacion para la cuenta. // 34. } 35. else 36. { 37. if (($_POST['accion']==2)&&(isset($_POST['id']))) 38. { 39. //echo('entre'); 40. $cod_cuenta=$_POST['id']; 41. $consulta=$objcuenta->actualizar( $cod_cuenta, $nombre_cuenta, $fecha_apertura, $titular, $documento_inicio, $cheque_sig, $observacion, $usuario_mod, $documento_fin, $contacto_telefono, $contacto_fax, $contacto_comentario, $contacto_cargo, $contacto ); 42. echo $consulta; 43. } }} 44. if (($_POST['accion']==3)&&(isset($_POST['id']))) 45. { 46. //echo 'entra'; 47. $cod_cuenta=$_POST['id']; 48. $consulta=$objcuenta->eliminar($cod_cuenta); 49. echo $consulta; 50. } 51. function limpiar($cadena) 52. { 53. if (empty($cadena)) return false; 54. //limpiamos todos los caracteres invalidos $nueva_cadena = ereg_replace("[^ A-Za-z0-9_]", "", $cadena); 55. return $nueva_cadena; 56. } 57. Módulo Financiero 200 Movimientos Guardar.php.- Permite guardar los movimientos con el objeto Movimientos, Permite ingresar los depósitos, Notas de Debito, Notas de Crédito, Caja Bancos, caja Bancos Cheques. 1. <?php require('../clases/movimientos.class.php'); 2. $user='maxlex'; 3. $usuario_creacion=$user; 4. $usuario_mod=$user; 5. $fecha=$_POST['fecha']; 6. if(($_POST['accion']==1)||($_POST['accion']==3)) 7. { 8. $cod_banco_cuenta=$_POST['cod_banco_cuenta']; 9. $cod_tipo_movimiento=$_POST['cod_tipo_movimiento']; 10. $gen_cod_participante=$_POST['cod_participantes']; 11. $num_documento=$_POST['num_documento']; 12. $valor_total=$_POST['valor_total']; 13. $descripcion=$_POST['descripcion']; 14. $conciliado='n'; 15. $fecha_conciliado=' '; 16. $responsable_conciliacion=' '; 17. $detalle_movimiento_col1=$_POST['arreglo1']; 18. $detalle_movimiento_col2=$_POST['arreglo2']; 19. $codSucursal=$_POST['sucursal']; 20. $fecha=$_POST['fecha']; 21. if($_POST['accion']==3) 22. { 23. $detalle_cheques=$_POST['cheques']; 24. $detalle_movimiento_col1=''; 25. $detalle_movimiento_col2=''; 26. } 27. else 28. { 29. $detalle_cheques=''; 30. } 31. $objMovimiento= new Movimiento(); 32. $retorno=$objMovimiento->insertar_movimiento( $cod_banco_cuenta, Módulo Financiero 201 33. $cod_tipo_movimiento, $gen_cod_participante, $num_documento, $valor_total, $descripcion, $conciliado, $fecha_conciliado, $responsable_conciliacion, $usuario_creacion, $usuario_mod, $detalle_movimiento_col1, $detalle_movimiento_col2, $detalle_movimiento_col3, $detalle_cheques, $codSucursal, $fecha ); 34. echo $retorno; 35. } 36. if($_POST['accion']==2) 37. { 38. $codigo_mov=$_POST['codigo_mov']; 39. $valor_total=$_POST['valor_total']; 40. $descripcion=$_POST['descripcion']; 41. $usuario_mod=$user; 42. $detalle_movimiento_col1=$_POST['arreglo1']; 43. $detalle_movimiento_col2=$_POST['arreglo2']; 44. $objMovimiento= new Movimiento(); 45. $retorno=$objMovimiento->actualizar_movimiento( $codigo_mov, $valor_total, $descripcion, $usuario_mod, $detalle_movimiento_col1, $detalle_movimiento_col2 ); 46. } 47. //accion que me permite guardar //las transsaciones entre bancos if($_POST['accion']==4) 48. { 49. $objMovimiento= new Movimiento(); 50. $codCuentaOrigen=$_POST['cuentaOrigen']; 51. $codCuentaDestino=$_POST['cuentaDestino']; 52. $numDocumento=$_POST['numDocumento']; 53. $descripcion=$_POST['descripcion']; 54. $valor=$_POST['valor']; 55. $codSucursal=$_POST['sucursal']; 56. $contabilidad1=$_POST['contabilidad1']; 57. $contabilidad2=$_POST['contabilidad2']; 58. $retorno=$objMovimiento->insertarTransferencia( $codCuentaOrigen, $codCuentaDestino, $numDocumento, $descripcion, $valor, $codSucursal, $usuario_creacion, $usuario_mod, $contabilidad1, $contabilidad2, $fecha ); 59. echo $retorno; 60. } 61. if(isset($_GET['codigo'])) 62. 63. Módulo Financiero { $objMovimiento= new Movimiento(); 202 64. $retorno=$objMovimiento>anulacionMovimiento($_GET['codigo']); 65. } 66. if($_POST['accion']==5) 67. { 68. $cod_banco_cuenta =$_POST['cod_banco_cuenta']; 69. $num_documento =$_POST['num_documento']; 70. $valor_total =$_POST['valor_total']; 71. $descripcion =$_POST['descripcion']; 72. $ArregloCuentasContables =$_POST['arregloContabilidad']; 73. $ArregloValores =$_POST['arregloValores']; 74. $ArregloCajas =$_POST['arregloCajas']; 75. $codSucursal =$_POST['sucursal']; 76. $usuario =$user; 77. $objMovimiento= new Movimiento(); 78. $retorno=$objMovimiento->insertarMovimientoCajaBanco( $cod_banco_cuenta, $num_documento, $valor_total, $descripcion, $usuario, $ArregloCajas, $ArregloCuentasContables, $ArregloValores, $codSucursal, $fecha); 79. echo $retorno; 80. } 81. if($_POST['accion']==6) 82. { 83. $cod_banco_cuenta =$_POST['cod_banco_cuenta']; 84. $num_documento =$_POST['num_documento']; 85. $valor_total =$_POST['valor_total']; 86. $descripcion =$_POST['descripcion']; 87. $ArregloCuentasContables =$_POST['arregloContabilidad']; 88. $ArregloValores =$_POST['arregloValores']; 89. $ArregloCajas =$_POST['arregloCajas']; 90. $codSucursal =$_POST['sucursal']; 91. $usuario =$user; 92. $objMovimiento= new Movimiento(); 93. $retorno=$objMovimiento>insertarMovimientosCajaBancosCheques( $cod_banco_cuenta, $num_documento, $valor_total, $descripcion, $usuario, $ArregloCajas, $ArregloCuentasContables, $ArregloValores, $codSucursal,$fecha); 94. echo $retorno; 95. } 96. if($_POST['accion']==7) 97. { 98. $objMovimiento= new Movimiento(); Módulo Financiero 203 99. $codCheque=$_POST['codCheque']; 100. $valorRecargo=$_POST['valorR']; 101. $tipoCargo=$_POST['tipo']; 102. $observacion=$_POST['observacion']; 103. $cuentaBanco=$_POST['cuentaBanco']; 104. $sucursal=$_POST['sucursal']; 105. $numDocumento=$_POST['numDocumento']; 106. $valorTotal=$_POST['valorTotal']; 107. $retorno= $objMovimiento>ingresarChequeprotestado($codCheque, $valorTotal, $valorRecargo, $tipoCargo, $observacion, $cuentaBanco, $sucursal, $numDocumento, $user); 108. echo $retorno; 109. } 110. ?> Archivo tipoNotas.php.Utiliza el objeto TipoNotas para insertar notas de débito o crédito, además actualiza los registros si la acción corresponde a 2. 1. <?php require_once('../clases/tipoNotas.class.php'); 2. $accion=$_POST['accion']; 3. if($accion==1) 4. { 5. $codplanCuentas =$_POST['codPlanCuentas']; 6. $codMovimiento =$_POST['codMovimiento']; 7. $descripcion =$_POST['descripcion']; 8. $usuario = 'Maxlex'; 9. $objTipoNotas= new TipoNotas(); 10. $retorno=$objTipoNotas>insertarTipoNotas($codplanCuentas, $codMovimiento, $descripcion, $usuario); 11. echo $retorno; 12. } 13. if($accion==3) 14. { 15. $Idnota=$_POST['codTipoNota']; 16. $objTipoNotas= new TipoNotas(); 17. Módulo Financiero $retorno=$objTipoNotas->desactivarNota($Idnota); 204 18. echo $retorno; 19. } 20. if($accion==2) 21. { 22. $codplanCuentas =$_POST['codPlanCuentas']; 23. $codMovimiento =$_POST['codMovimiento']; 24. $descripcion =$_POST['descripcion']; 25. $Idnota=$_POST['codigo']; 26. $objTipoNotas= new TipoNotas(); 27. $retorno=$objTipoNotas>actualizarTipoNota($Idnota,$codplanCuentas, $codMovimiento, $descripcion, $usuario); 28. echo $retorno; 29. }v 30. ?> 31. Archivo conciliaciones.guardar.php.- Interactúa con los datos de conciliación. 1. <?php require_once('../clases/conciliacion.class.php'); 2. require_once('../session.php'); 3. if(isset($_POST['accion'])) 4. { 5. $accion=$_POST['accion']; 6. } 7. $usuario_creacion =sesiones(); 8. $objConciliacion = new Conciliacion(); 9. switch($accion) 10. { 11. case 1: //echo 'entro'; 12. if ( (isset($_POST['cod_banco_cuenta']) ) && (isset($_POST['saldo_conciliacion'])) && (isset($_POST['conciliacion_anterior'])) && (isset($_POST['mes_conciliado']) ) && (isset($_POST['anio_conciliado']) ) && (isset($_POST['arreglo_movimientos_id_conciliados'] )) && (isset($_POST['arreglo_movimientos_id_transito'] )) ) 13. { 14. // echo 'entre'; Módulo Financiero 205 15. $cod_banco_cuenta = $_POST['cod_banco_cuenta']; 16. $saldo_conciliacion_anterior = $_POST['conciliacion_anterior']; 17. $saldo_conciliacion = $_POST['saldo_conciliacion']; 18. $mes_conciliado = $_POST['mes_conciliado']; 19. $anio_conciliado = $_POST['anio_conciliado']; 20. $arreglo_movimientos_id_conciliados= $_POST['arreglo_movimientos_id_conciliados']; 21. $arreglo_movimientos_id_transito = $_POST['arreglo_movimientos_id_transito']; 22. $fecha_fin = $_POST['fecha_estado_bancario']; 23. $saldo_banco = $_POST['estado_bancario']; 24. //echo 'arreglo t'.$arreglo_movimientos_id_transito; 25. $retorno=$objConciliacion->procesar_conciliacion( $cod_banco_cuenta, $saldo_conciliacion_anterior, $saldo_conciliacion, $mes_conciliado, $anio_conciliado, $usuario_creacion, $arreglo_movimientos_id_conciliados, $arreglo_movimientos_id_transito, $fecha_fin, $saldo_banco ); 26. echo $retorno; 27. } 28. break; 29. case 2: if ( (isset($_POST['cod_banco_cuenta']) ) && (isset($_POST['mes_conciliado']) ) && (isset($_POST['anio_conciliado']) ) ) 30. { 31. $cuenta = $_POST['cod_banco_cuenta']; 32. $mes = $_POST['mes_conciliado']; 33. $anio = $_POST['anio_conciliado']; 34. $retorno=$objConciliacion>primera_conciliacion($cuenta,$mes,$anio); 35. echo $retorno; 36. } 37. break; 38. } 39. Módulo Financiero 206 2.4.3 Clases y Programación Razones Financieras La clase razones financieras tiene como objetivo trabajar con la entidad fin _formulas y fin_grupo _razones. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. Módulo Financiero class RazonesFinacieras { var $con; function RazonesFinacieras(){ $this-&gt;con=new DBManager;//creo mi objeto conexion. $this-&gt;actualizarRegistroCT; } function insertar( $cod_grupo, $nom_formula, $descripcion, $expresion, $siglas, $formula_texto, $formula_presentacion, $parametro, $usuario_creacion, $rango_verde, $rango_naranja, $rango_rojo, $desc_verde, $desc_naranja, $desc_rojo, $relacion_objetivo ) { if($this-&gt;con-&gt;conectar()==true){ $cadena= "insert into fin_formulas ("; $cadena=$cadena." fin_formulas.cod_grupo, "; $cadena=$cadena." fin_formulas.descripcion, "; $cadena=$cadena." fin_formulas.expresion, "; 207 36. "; 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. Módulo Financiero $cadena=$cadena." fin_formulas.formula_presentacion, $cadena=$cadena." fin_formulas.nom_formula ,"; $cadena=$cadena." fin_formulas.siglas,"; $cadena=$cadena." fin_formulas.formula_texto, "; $cadena=$cadena." fin_formulas.parametro, "; $cadena=$cadena." fin_formulas.usuario_creacion,"; $cadena=$cadena." fin_formulas.usuario_mod,"; $cadena=$cadena." fin_formulas.fecha_creacion,"; $cadena=$cadena." fin_formulas.fecha_mod,"; $cadena=$cadena." fin_formulas.rango_verde,"; $cadena=$cadena." fin_formulas.rango_naranja,"; $cadena=$cadena." fin_formulas.rango_rojo,"; $cadena=$cadena." fin_formulas.descripcion_verde,"; $cadena=$cadena." fin_formulas.descripcion_naranja,"; $cadena=$cadena." fin_formulas.descripcion_rojo,"; $cadena=$cadena." fin_formulas.relacion_objetivo"; $cadena=$cadena." ) values ("; $cadena=$cadena . $cod_grupo. " ,"; $cadena=$cadena."' ".$descripcion." ',"; $cadena=$cadena."' ".$expresion . "' ,"; $cadena=$cadena."' ".$formula_presentacion. "',"; $cadena=$cadena."' ".$nom_formula."',"; $cadena=$cadena."' ".$siglas. "', "; $cadena=$cadena."' ".$formula_texto."',"; $cadena=$cadena."' ".$parametro. "', "; $cadena=$cadena."' ".$usuario_creacion."' ,"; $cadena=$cadena."' ".$usuario_creacion."' , "; $cadena=$cadena."NOW(),"; $cadena=$cadena."NOW(),"; $cadena=$cadena.$rango_verde.","; $cadena=$cadena.$rango_naranja.","; $cadena=$cadena.$rango_rojo.","; $cadena=$cadena."'".$desc_verde."',"; $cadena=$cadena."'".$desc_naranja."',"; $cadena=$cadena."'".$desc_rojo."',"; $cadena=$cadena."'".$relacion_objetivo."'"; $cadena=$cadena.")"; $retorno= mysql_query($cadena); 208 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. Módulo Financiero } }//insertar function razones_finacieras($grupo) { if($this-&gt;con-&gt;conectar()==true){ if($grupo==-1) { $Sql= "select fin_formulas.cod_formula as Codigo, fin_formulas.cod_grupo as Grupo, fin_formulas.descripcion as Descripcion, fin_formulas.expresion as Expresado, fin_formulas.formula_presentacion as Formula_texto, fin_formulas.nom_formula as Nombre , fin_formulas.siglas as Siglas, fin_formulas.formula_texto AS Formula, fin_formulas.parametro as Parametro, fin_formulas.usuario_creacion , fin_formulas.fecha_creacion, fin_formulas.usuario_mod, fin_formulas.fecha_mod, fin_formulas.rango_verde as Rango_verde, fin_formulas.rango_naranja as Rango_naranja, fin_formulas.rango_rojo as Rango_rojo, fin_formulas.descripcion_verde as Desc_verde, fin_formulas.descripcion_rojo as Desc_rojo, fin_formulas.descripcion_naranja as Desc_naranja, fin_formulas.relacion_objetivo as Relacion_objetivo from fin_formulas where estado='A' order by cod_grupo"; }else { 209 119. 120. $Sql= "select fin_formulas.cod_formula as Codigo, 121. 122. 123. 124. fin_formulas.cod_grupo as Grupo, fin_formulas.descripcion as Descripcion, fin_formulas.expresion as Expresado, fin_formulas.formula_presentacion as Formula_texto, 125. 126. 127. 128. 129. 130. 131. 132. 133. fin_formulas.nom_formula as Nombre , fin_formulas.siglas as Siglas, fin_formulas.formula_texto AS Formula, fin_formulas.parametro as Parametro, fin_formulas.usuario_creacion , fin_formulas.fecha_creacion, fin_formulas.usuario_mod, fin_formulas.fecha_mod, fin_formulas.rango_verde as fin_formulas.rango_naranja as Rango_verde, 134. 135. Rango_naranja, 136. 137. 138. 139. fin_formulas.rango_rojo as Rango_rojo, fin_formulas.descripcion_verde as Desc_verde, 140. fin_formulas.descripcion_rojo as Desc_rojo, 141. fin_formulas.descripcion_naranja as fin_formulas.relacion_objetivo as Desc_naranja, 142. Relacion_objetivo 143. 144. 145. 146. 147. from fin_formulas where estado='A' and cod_grupo =".$grupo.' order by cod_grupo' ; 148. 149. 150. 151. Módulo Financiero } 210 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. $retorno=mysql_query($Sql); } return $retorno; } function consulta_razones($grupo,$nombre,$formula) { if($this-&gt;con-&gt;conectar()==true) { $Sql= "select fin_formulas.cod_formula as Codigo, 163. 164. 165. 166. fin_formulas.cod_grupo as Grupo, fin_formulas.descripcion as Descripcion, fin_formulas.expresion as Expresado, fin_formulas.formula_presentacion as Formula_texto, 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. fin_formulas.nom_formula as Nombre , fin_formulas.siglas as Siglas, fin_formulas.formula_texto AS Formula, fin_formulas.parametro as Parametro, fin_formulas.usuario_creacion , fin_formulas.fecha_creacion, fin_formulas.usuario_mod, fin_formulas.fecha_mod, fin_formulas.rango_verde as Rango_verde, fin_formulas.rango_naranja as Rango_naranja, 178. 179. 180. 181. 182. 183. fin_formulas.rango_rojo as Rango_rojo, fin_formulas.descripcion_verde as Desc_verde, fin_formulas.descripcion_rojo as Desc_rojo, fin_formulas.descripcion_naranja as Desc_naranja, 184. fin_formulas.relacion_objetivo Relacion_objetivo 185. 186. 187. 188. Módulo Financiero from fin_formulas as 211 189. where estado='A' and cod_grupo =".$grupo.' and nom_formula like "%'.$nombre.'%" and formula_presentacion like "%'.$formula.'%" order by cod_grupo' ; 190. // echo $Sql; 191. $arreglo=mysql_query($Sql); 192. } 193. return $arreglo; 194. } 195. 196. 197. 198. 199. 200. 201. 202. function consulta_razones_id($codigo) { if($this-&gt;con-&gt;conectar()==true) { $Sql= "select fin_formulas.cod_formula as Codigo, 203. 204. 205. 206. fin_formulas.cod_grupo as Grupo, fin_formulas.descripcion as Descripcion, fin_formulas.expresion as Expresado, fin_formulas.formula_presentacion as Formula_texto, 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. fin_formulas.nom_formula as Nombre , fin_formulas.siglas as Siglas, fin_formulas.formula_texto AS Formula, fin_formulas.parametro as Parametro, fin_formulas.usuario_creacion , fin_formulas.fecha_creacion, fin_formulas.usuario_mod, fin_formulas.fecha_mod, fin_formulas.rango_verde as Rango_verde, fin_formulas.rango_naranja as Rango_naranja, 218. 219. 220. 221. 222. 223. Desc_naranja, Módulo Financiero fin_formulas.rango_rojo as Rango_rojo, fin_formulas.descripcion_verde as Desc_verde, fin_formulas.descripcion_rojo as Desc_rojo, fin_formulas.descripcion_naranja as 212 224. fin_formulas.relacion_objetivo as Relacion_objetivo 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. ".$cod_grupo.","; 260. '".$descripcion."',"; 261. '".$expresion."',"; Módulo Financiero from fin_formulas where cod_formula =".$codigo ; $arreglo=mysql_query($Sql); } return $arreglo; } function actualizar( $codigo, $cod_grupo, $nom_formula, $descripcion, $expresion, $siglas, $formula_texto, $formula_presentacion, $parametro, $usuario_modificacion, $rango_verde, $rango_naranja, $rango_rojo, $desc_verde, $desc_naranja, $desc_rojo, $relacion_objetivo ) { if($this-&gt;con-&gt;conectar()==true){ $cadena= "update fin_formulas set "; $cadena=$cadena." fin_formulas.cod_grupo = $cadena=$cadena." fin_formulas.descripcion = $cadena=$cadena." fin_formulas.expresion = 213 262. 263. $cadena=$cadena." fin_formulas.nom_formula = '".$nom_formula."',"; 264. $cadena=$cadena." fin_formulas.siglas = '".$siglas. "', "; 265. 266. $cadena=$cadena." fin_formulas.parametro = '".$parametro. "', "; 267. 268. $cadena=$cadena." fin_formulas.usuario_mod = '".$usuario_modificacion."' , "; 269. 270. $cadena=$cadena." fin_formulas.fecha_mod = NOW(),"; 271. $cadena=$cadena." fin_formulas.rango_verde = ".$rango_verde.","; 272. $cadena=$cadena." fin_formulas.rango_naranja = ".$rango_naranja.","; 273. $cadena=$cadena." fin_formulas.rango_rojo = ".$rango_rojo.","; 274. $cadena=$cadena." fin_formulas.descripcion_verde = '".$desc_verde."',"; 275. $cadena=$cadena." fin_formulas.descripcion_naranja = '".$desc_naranja."',"; 276. $cadena=$cadena." fin_formulas.descripcion_rojo = '".$desc_rojo."',"; 277. $cadena=$cadena." fin_formulas.relacion_objetivo = '".$relacion_objetivo."'"; 278. $cadena=$cadena." where cod_formula = ".$codigo; 279. echo $cadena; 280. $retorno= mysql_query($cadena); 281. return $retorno; 282. } 283. 284. }//actualizar 285. function eliminar($codigo) 286. { 287. if($this-&gt;con-&gt;conectar()==true){ 288. 289. $cadena= "update fin_formulas set fin_formulas.estado='I' where cod_formula = ".$codigo; Módulo Financiero 214 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. $retorno= mysql_query($cadena); return $retorno; } }//eliminar }//clase razones function actualizarRegistroCT() { $sql='call sp_fin_cuentas_totales()'; $conexion=$this-&gt;con-&gt;conectarli(); $result = mysqli_query($conexion,$sql); $this-&gt;con-&gt;cerrarConexion($conexion); } ?&gt; 2.4.4 Clases y Programación Balance General Comparativo. Class Blance.- Permite obtener los datos de la entidad Con_balance_his.- Permite obtener los datos para ser comparados ya sea de manera mensual o anual, además establece las cuentas contables que participarán en el proceso de comparación. 309. 310. 311. 312. 313. 314. Módulo Financiero include('../clases/conexion.php'); class Balance{ var $con; var $sql; public function Balance(){ $this-&gt;con=new Conexion; 215 315. 316. } 317. 318. //SISTEMA HORIZONTAL - BALANCE GENERAL - POR SUCURSALES Y CONSOLIDADO 319. //FUNCION PARA OBTENER EL BALANCE ANUAL 320. public function listarBalanceAnual($anio1, $anio2, $cod_sucursal){ 321. 322. if($this-&gt;con-&gt;conectar()==true) 323. { 324. if ($cod_sucursal==-1){ 325. $sql="select codigo as CUENTA, descripcion as NOMBRE, clasificacion as NIVEL, clase as CLASE 326. from (select if(codigo_cuenta=NULL,clasificacion, if( codigo_cuenta='', clasificacion, codigo_cuenta)) as codigo, 327. cod_bg_plt, descripcion, clase, clasificacion, periodoa, periodom, valor, estado 328. from con_balance_general_his order by cod_bg_plt) as tabla 329. where periodoa in ($anio1, $anio2) and periodom=12 and estado='A' 330. group by codigo 331. order by cod_bg_plt"; 332. }else{ 333. $sql= "SELECT codigo AS CUENTA, 334. descripcion AS NOMBRE, cod_sucursal AS SUCURSAL, 335. clasificacion AS NIVEL, clase as CLASE 336. FROM (SELECT IF(codigo_cuenta=NULL, clasificacion, IF( codigo_cuenta='', clasificacion, codigo_cuenta)) AS codigo, 337. cod_bg_plt, descripcion, clase, clasificacion, periodoa, periodom, valor, estado, con_balance_general_his.cod_sucursal 338. FROM con_balance_general_his ORDER BY cod_bg_plt) AS Tabla 339. WHERE periodoa in($anio1, $anio2) and periodom=12 AND cod_sucursal=$cod_sucursal and estado='A' 340. GROUP BY codigo, descripcion, cod_sucursal 341. ORDER BY cod_bg_plt"; 342. 343. //echo $this-&gt;sql; 344. } Módulo Financiero 216 345. $consulta = mysql_query ($sql);//, $con); 346. return $consulta; 347. } 348. } 349. 350. public function obtenerBalanceAnual($anio, $cod_sucursal){ 351. 352. if($this-&gt;con-&gt;conectar()==true) 353. { 354. if ($cod_sucursal==-1){ 355. $sql="select codigo as CUENTA, descripcion as NOMBRE, sum(valor) as TOTAL,clasificacion as NIVEL 356. from (select if(codigo_cuenta=NULL,clasificacion, if( codigo_cuenta='', clasificacion, codigo_cuenta)) as codigo, 357. cod_bg_plt, descripcion, clase, clasificacion, periodoa, periodom, valor, estado 358. from con_balance_general_his order by cod_bg_plt) as tabla 359. WHERE periodoa=$anio and periodom=12 and estado='A' 360. group by codigo 361. order by cod_bg_plt"; 362. }else{ 363. 364. $sql= "SELECT codigo AS CUENTA, 365. descripcion AS NOMBRE, valor as TOTAL, cod_sucursal AS SUCURSAL, 366. clasificacion AS NIVEL, clase as CLASE 367. FROM (SELECT IF(codigo_cuenta=NULL, clasificacion, IF( codigo_cuenta='', clasificacion, codigo_cuenta)) AS codigo, 368. cod_bg_plt, descripcion, clase, clasificacion, periodoa, periodom, valor, estado, con_balance_general_his.cod_sucursal 369. FROM con_balance_general_his ORDER BY cod_bg_plt) AS Tabla 370. WHERE periodoa=$anio1 AND periodom=12 and cod_sucursal=$cod_sucursal and estado='A' 371. GROUP BY codigo, descripcion, cod_sucursal 372. ORDER BY cod_bg_plt"; 373. 374. } 375. $consulta = mysql_query ($sql); 376. return $consulta ; Módulo Financiero 217 377. } 378. } 379. 380. //FUNCION QUE GENERA EL BALANCE MENSUAL 381. public function listarBalanceMensual($anio1, $mes1, $anio2, $mes2, $cod_sucursal){ 382. 383. 384. if($this-&gt;con-&gt;conectar()==true) 385. { 386. 387. if ($cod_sucursal==-1){ 388. $sql="select codigo as CUENTA, descripcion as NOMBRE, clasificacion as NIVEL, clase as CLASE 389. from (select if(codigo_cuenta=NULL,clasificacion, if( codigo_cuenta='', clasificacion, codigo_cuenta)) as codigo, 390. cod_bg_plt, descripcion, clase, clasificacion, periodoa, periodom, estado 391. from con_balance_general_his 392. order by cod_bg_plt) as tabla 393. where ( (periodoa=$anio1 AND periodom=$mes1) OR (periodoa=$anio2 AND periodom=$mes2) ) and estado='A' 394. group by codigo 395. order by cod_bg_plt"; 396. 397. }else{ 398. $sql="SELECT codigo AS CUENTA, descripcion AS NOMBRE, cod_sucursal AS SUCURSAL, clasificacion AS NIVEL, clase AS CLASE 399. FROM (SELECT IF(codigo_cuenta=NULL,clasificacion, IF( codigo_cuenta='', clasificacion, codigo_cuenta)) AS codigo, 400. cod_bg_plt, descripcion, clase, clasificacion, periodoa, periodom, estado, con_balance_general_his.cod_sucursal 401. FROM con_balance_general_his 402. ORDER BY cod_bg_plt) AS Tabla 403. WHERE ( (periodoa=$anio1 AND periodom=$mes1) OR (periodoa=$anio2 AND periodom=$mes2) ) AND cod_sucursal=$cod_sucursal 404. AND estado='A' 405. GROUP BY codigo 406. ORDER BY cod_bg_plt"; Módulo Financiero 218 407. 408. //echo $sql; 409. } 410. $consulta = mysql_query ($sql); 411. return $consulta; 412. } 413. } 414. public function obtenerBalanceMensual($anio, $mes, $cod_sucursal ){ 415. 416. if($this-&gt;con-&gt;conectar()==true) 417. { 418. if ($cod_sucursal==-1){ 419. $sql="select codigo as CUENTA, descripcion as NOMBRE, sum(valor) as TOTAL, clasificacion as NIVEL 420. from (select if(codigo_cuenta=NULL,clasificacion, if( codigo_cuenta='', clasificacion, codigo_cuenta)) as codigo, 421. cod_bg_plt, descripcion, clasificacion, periodoa, periodom, valor, estado 422. from con_balance_general_his 423. order by cod_bg_plt) as tabla 424. where periodoa=$anio AND periodom=$mes and estado='A' 425. group by codigo 426. order by cod_bg_plt"; 427. 428. //echo $sql; 429. 430. }else{ 431. 432. $sql= "SELECT codigo AS CUENTA, descripcion AS NOMBRE, valor AS TOTAL, clasificacion AS NIVEL, cod_sucursal AS SUCURSAL 433. FROM (SELECT IF(codigo_cuenta=NULL,clasificacion, IF( codigo_cuenta='', clasificacion, codigo_cuenta)) AS codigo, 434. cod_bg_plt, descripcion, clasificacion, periodoa, periodom, valor, estado, con_balance_general_his.cod_sucursal 435. FROM con_balance_general_his 436. ORDER BY cod_bg_plt) AS Tabla 437. WHERE periodoa=$anio AND periodom= $mes AND estado='A' AND cod_sucursal=$cod_sucursal Módulo Financiero 219 438. group by codigo 439. order by cod_bg_plt"; 440. 441. //echo $sql; 442. } 443. $consulta = mysql_query ($sql);//, $con); 444. return $consulta; 445. } 446. } 447. 448. //SISTEMA VERTICAL - BALANCE GENERAL - POR SUCURSALES Y CONSOLIDADO 449. 450. public function obtenerSaldosTotales(){ 451. if($this-&gt;con-&gt;conectar()==true) 452. { 453. if ($cod_sucursal==-1){ 454. 455. 456. } 457. 458. 459. } 460. } 461. 462. Módulo Financiero 220 2.5 LIBRERÍAS USADAS EN LAS PÁGINAS DE PRESENTACIÓN. Las Librerías de código Js utilizadas para la realización del proyecto son las siguientes: 2.5.1 Jquery. Esta librería la utilizamos para el manejo mas practico de código java script, además del manejo de Ajax, para este proyecto se a utilizado la versión 1.3.2. 2.5.2 Dhtmlx. Esta librería nos ayuda con el entorno visual del aplicativo, nos permite simular un ambiente de escritorio en un navegador web. Las principales características usadas de esta librería son: • Creación de Ventanas. • Creación de Menús. 1. Creación de Tabs,. 2. Creación de Tablas y Grillas. Módulo Financiero 221 2.5.3 Meio código. Es una librería derivada de jquery que permite validar cajas de texto (mascaras de entrada). Importación de Librerías en las Paginas HTML 1. <script src="../js/jquery-1.3.2.js"> </script> 2. <script src="../js/codebase/dhtmlxWindows/codebase/dhtmlxcommon.js"></script> 3. <script src="../js/codebase/dhtmlxWindows/codebase/dhtmlxcontainer.js"></script> 4. <script src="../js/codebase/dhtmlxWindows/codebase/dhtmlxwindows.js"> </script> 5. <script src="../js/codebase/dhtmlxCalendar/codebase/dhtmlxcommon.js"></script> 6. <script src="../js/codebase/dhtmlxToolbar/codebase/dhtmlxtoolbar.js"></script> 7. <script src="../js/codebase/dhtmlxCalendar/codebase/dhtmlxcalendar.js"></script> 8. <script src="../js/codebase/dhtmlxTabbar/codebase/dhtmlxtabbar.js"></script> <script src="../js/codebase/dhtmlxCombo/codebase/dhtmlxcombo.js"></script> 9. <script src="../js/codebase/dhtmlxTabbar/codebase/dhtmlxtabbar_start.js"></script> 10. <script src="../js/jquery.validate.pack.js"></script> 11. <script src="../js/json_sans_eval.js"></script> <script src="../js/Dialogo.js"> 12. </script> 13. <script src="../js/mascara.js"></script> 14. <script src="../js/creadorVentanas.js"></script> Módulo Financiero 222 2.6 Librerías Creadas Para el Proyecto. 2.6.1 Creador de ventanas. Libería que nos permite crear ventanas con direcciones Url, las cuales contendrán paginas de nuestro proyecto. 15. 16. 17. 18. 19. ar dhxWins, w1 ; function crearVentanaURL(x,y,titulo,url) { dhxWins = new dhtmlXWindows(); dhxWins.enableAutoViewport(true); 20. 21. 22. 23. 24. // dhxWins.attachViewportTo(contenedor); dhxWins.setImagePath("../js/codebase/imgs"); w1 = dhxWins.createWindow("w1", 0, 0, x, y); w1.setText(titulo); 25. 26. 27. 28. 29. dhxWins.window("w1").center(); // w1.button("minmax1").disable(); 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. w1.attachURL(url) //minmax1,minmax2 } function crearVentanaURL2(x,y,titulo,url,funcion) { dhxWins = new dhtmlXWindows(); dhxWins.enableAutoViewport(true); // dhxWins.attachViewportTo(contenedor); dhxWins.setImagePath("../js/codebase/imgs"); w1 = dhxWins.createWindow("w1", 0, 0, x, y); 40. 41. 42. 43. 44. //w1.button("minmax1").disable(); 45. w1.setModal(true) Módulo Financiero w1.setText(titulo); w1.attachURL(url) dhxWins.window("w1").center(); 223 46. 47. 48. 49. dhxWins.attachEvent("onClose",function(dhxWins){ eval(funcion); w1.setModal(false) padre=dhxWins.parentNode; 50. 51. 52. 53. 54. padre.removeChild(dhxWins); return }); 55. 56. 57. 58. 2.6.2 //minmax1,minmax2 } Creador de mensajes de dialogo. Crea los mensajes de dialogo que se muestran advertencias en pantalla. 59. 60. ar dhxWins ; 61. var rutaImagenes; 62. rutaImagenes="../imagenes/dialogo/" 63. var ventanaModalDialogoArreglo; 64. ventanaModalDialogoArreglo=Array(); 65. function crearDialogoModal(contenedor,arregloBotones,ArregloFunciones,titulo,mensaj e,imagen) 66. { 67. 68. 69. switch (imagen) 70. { 71. case 1: 72. // admiracion 73. rutaImagen='<img src="'+rutaImagenes+'pregunta.png" width="30" height="30" />'; Módulo Financiero 224 74. 75. break; 76. case 2: 77. // error 78. rutaImagen='<img src="'+rutaImagenes+'atencion.png" width="30" height="30" />'; 79. break; 80. case 3: 81. //pregunta 82. rutaImagen='<img src="'+rutaImagenes+'error.png" width="30" height="30" />'; 83. break; 84. case 4: 85. rutaImagen='<img src="'+rutaImagenes+'admiracion.png" width="30" height="30" />'; 86. break; 87. case 5: 88. rutaImagen='<img src="'+rutaImagenes+'ok.png" width="30" height="30" />'; 89. break; 90. 91. } 92. 93. ventanaModalDialogoArreglo =ArregloFunciones; 94. 95. 96. 97. tablaCabecera=document.createElement('table'); 98. tablaCabecera.style.fontSize='12px'; 99. filaCabecera=document.createElement('tr'); 100. casillaImagen=document.createElement('td'); 101. 102. casillaMensaje=document.createElement('td'); 103. casillaMensaje.setAttribute('width','40px'); 104. casillaMensaje.setAttribute('align','right'); 105. casillaMensaje.setAttribute('width','200px'); 106. casillaMensaje.style.textAlign='center'; 107. 108. divImagen=document.createElement('div'); 109. divImagen.innerHTML=rutaImagen; 110. 111. casillaImagen.appendChild(divImagen); Módulo Financiero 225 112. 113. textoNodo=document.createTextNode(mensaje); 114. casillaMensaje.appendChild(textoNodo); 115. 116. filaCabecera.appendChild(casillaImagen); 117. filaCabecera.appendChild(casillaMensaje); 118. 119. tablaCabecera.appendChild(filaCabecera); 120. 121. divElemento=document.createElement('div'); 122. divElemento.appendChild(tablaCabecera); 123. 124. divContenedor=document.getElementById(contenedor); 125. 126. divElementoBotonera=document.createElement('div'); 127. 128. 129. boton=Array(); 130. htmlBoton=Array(); 131. tablaBotones=document.createElement('table'); 132. filaBotones=document.createElement('tr'); 133. divElemento.id='divDialogoModal'; 134. 135. 136. 137. for(i=0; i<arregloBotones.length; i++) 138. { 139. casillaBotones=document.createElement('td'); 140. cerrarVentana="cerrarDialogoModal("+i+")"; 141. 142. boton[i]=document.createElement('button'); 143. boton[i].setAttribute('type',"button"); 144. boton[i].setAttribute('onclick',cerrarVentana); 145. boton[i].setAttribute('name',arregloBotones[i]); 146. 147. 148. htmlBoton[i]='<input name="" type="button" onclick="'+cerrarVentana+'" value="'+ arregloBotones[i]+'" />' 149. 150. 151. casillaBotones.innerHTML=htmlBoton[i]; 152. filaBotones.appendChild(casillaBotones) Módulo Financiero 226 153. } 154. tablaBotones.appendChild(filaBotones); 155. divBotonera= document.createElement('div'); 156. divBotonera.setAttribute('align', 'right'); 157. divBotonera.appendChild(tablaBotones) 158. divElemento.appendChild(divBotonera); 159. 160. divContenedor.appendChild(divElemento); 161. dhxWins = new dhtmlXWindows(); 162. dhxWins.enableAutoViewport(true); 163. dhxWins.attachViewportTo(contenedor); 164. dhxWins.setImagePath("../../codebase/imgs/"); 165. ventanaMOdalDialogo1 dhxWins.createWindow("ventanaMOdalDialogo1",100, 100, 300, 120) 166. ventanaMOdalDialogo1.setText(titulo); 167. ventanaMOdalDialogo1.attachObject('divDialogoModal'); 168. ventanaMOdalDialogo1.button("close").disable(); 169. dhxWins.window("ventanaMOdalDialogo1").denyResize() 170. dhxWins.window("ventanaMOdalDialogo1").center(); 171. 172. dhxWins .window('ventanaMOdalDialogo1').setModal(true); 173. // ventanaMOdalDialogo1.button("max").disable(); 174. 175. } 176. function cerrarDialogoModal(id) 177. { 178. 179. dhxWins .window('ventanaMOdalDialogo1').setModal(false); 180. dhxWins .window("ventanaMOdalDialogo1").hide() 181. eval(ventanaModalDialogoArreglo[id]); 182. } Módulo Financiero = 227 2.7 Diagramas de Flujo de Datos. Los diagramas de flujos de datos (DFD), son una técnica de modelización, que nos muestra un sistema como una red de procesos conectados entre ellos por flujos y almacenamientos de datos. Este modelo que proporciona en forma intercambian los datos del modulo financiero. Ilustración 128. Conciliación Bancaria Módulo Financiero gráfica como se 228 Ilustración 129. DFD Reportes Financieros Ilustración 130. Reportes Módulo Financiero 229 Ilustración 131. . DFD de los Reportes – Razones Financieras Módulo Financiero 230 2.8 Diagrama de Iteración o Secuencia 2.8.1 Bancos Usuario Interfaz Base de Datos Sistema Registro Depositos General Guarda Solicitud() Notas de Credito Notas Debito Envio de Datos () Actualiza Solicituc () Conciliación Bancaria Transferencias Confirmacion de Transaccion Confirmación Depositos Caja banco Depositos Caja banco (cheques) Mensajes De Confirmacion Ilustración 132. Diagrama de Secuencia Bancos Módulo Financiero 231 2.8.2 Diagrama de Secuencia Depósitos Usuario Interfaz Base de Datos Sistema Guarda Solicitud() Cuenta Bancaria Depositos Caja banco Actualiza Saldos En Banco Envio de Transaccion Actualiza Solicituc () Registro Depositos General Confirmacion de Transaccion Confirmación de Transaccion Exitosa Depositos Caja banco (cheques) Mensajes De Confirmacion Ilustración 133. Diagrama de Secuencias Depósitos 2.8.3 Diagrama de Secuencia Notas de Crédito/ Debito. Usuario Interfaz Base de Datos Sistema Cuenta Bancaria Guarda Solicitud() Nota de Creidito Envio de Transaccion Actualiza Saldos En Banco Saldos Banco Confirmacion de Transaccion Confirmación de Transaccion Exitosa Nota debitos bancaria Mensajes De Confirmacion Ilustración 134. Diagrama Secuencia Notas Módulo Financiero 232 2.8.4 Diagrama de Secuencia Transferencias. Usuario Interfaz Sistema Base de Datos Registra Movimientos Envio de Transacción Transferencias entre Bancos Actualiza Saldos Bancos Verificacion de Saldos Saldos Disponible Banco Confirmacion de Transacción Confirmación Transaccion Mensajes De Confirmacion Ilustración 135. Diagrama Secuencias Transferencias Módulo Financiero 233 2.8.5 Anulaciones. Usuario Interfaz Base de Datos Sistema Anular Deposito Transferencias Anulaciones actualiza Movimiento Notas Debito Credito Actualiza Saldos Confirmación de Anulación Valida Datos A Anular Confirmacion de Anulación Confirmación Transacción Mensajes De Confirmacion Ilustración 136. Diagrama Secuencia Anulaciones Módulo Financiero 234 2.8.6 Conciliación bancaria. Usuario Interfaz Sistema Registra Movimientos Conciliados envio de Movimientos Conciliados Conciliacion Actualiza movimientos Transito valida Periodos Saldos Disponible Banco Confirmacion de Transacción Confirmación Transaccion Mensajes De Confirmacion Ilustración 137. Diagrama Secuencia Conciliación Bancaria Módulo Financiero 235 2.8.7 Reportes Bancarios. Usuario Interfaz Base de Datos Sistema Envio de Consulta Envio de Parametros de Consulta Consulta () Validacion de Parametros Reportes Reporte Registros encontrados Ilustración 138. Secuencia reportes Bancarios Módulo Financiero 236 2.8.8 Razones Financieras. Usuario Interfaz Base de Datos Sistema Guardar razon() Cuentas Contables Razon Finaciera Ingreso De formula Validación Fórmula Confirmacion de Transacción Confirmación Transaccion Mensajes De Confirmacion Ilustración 139. Diagrama Secuencia Razones Módulo Financiero 237 2.8.9 Secuencia Reportes Financieros. Usuario Interfaz Base de Datos Sistema Parametros Reporte Parametros Seleccionados Escoje parametros de Reporte Valida Periodos y Parametros Reporte comparativo Consulta() Reporte Grupo de Registros Ilustración 140. Diagrama Secuencia Reportes Módulo Financiero