En este proyecto se ha desarrollado una aplicación de contabilidad financiera que

Tamaño: px
Comenzar la demostración a partir de la página:

Download "En este proyecto se ha desarrollado una aplicación de contabilidad financiera que"

Transcripción

1 Resumen En este proyecto se ha desarrollado una aplicación de contabilidad financiera que permite realizar un seguimiento de la evolución de los datos contables de una empresa. El principal motivo de la realización de este proyecto es la de utilizar la herramienta desarrollada como material didáctico en las asignaturas de Economía, en las titulaciones de Ingeniería informática. De esta forma el profesor se beneficia de tener la posibilidad de llevar a cabo ejercicios de cierta complicación de una forma ordenada, siendo mucho más fácil evaluar y corregir a los alumnos. También los alumnos son beneficiados, ya que debido a la automatización del proceso, pueden seguirlo con mucha mayor facilidad y adquirir conocimientos de una forma más rápida, sencilla y dinámica. La aplicación puede ser aprovechada también para que cualquier persona pueda llevar las cuentas de su empresa de forma ordenada, en caso de que esta empresa sea de pequeño tamaño y no exija un volumen de operaciones muy grande. El funcionamiento de la herramienta consiste en el almacenamiento en una base de datos de diferentes empresas con sus respectivos libros diarios, en donde quedan registradas todas las operaciones de la empresa. El funcionamiento de la aplicación va ligado estrictamente al funcionamiento del proceso contable: se va definiendo la información de la empresa, su situación inicial y por cada año de funcionamiento de la empresa se busca registrar todas sus operaciones para poder generar un documento final que contiene el libro diario, el libro mayor y el balance de comprobación de cada año. Por todo ello, para poder utilizar la aplicación de una forma acertada es necesario que el usuario disponga de conocimientos básicos en contabilidad financiera. El programa sigue el proceso estipulado en el Plan general de contabilidad definido y establecido a partir del Real Decreto 743, el I

2 20 de diciembre de Este plan establece las normas a seguir para elaborar los libros diarios, los libros mayores y los balances así como las cuentas con sus respectivos nombres y números que permiten dotar de cierta uniformidad a los hechos contables de las distintas empresas. En la actualidad existen diferentes programas diseñados para llevar la contabilidad de las empresas, especialmente orientados a pequeñas y medianas empresas y que resultan complicados de manejar por la multitud de opciones que incluyen. Sin embargo, no existen aplicaciones con carácter lectivo orientadas a la contabilidad financiera. Es por eso que la aplicación realizada en este proyecto, lejos de buscar obtener todo el potencial y posibilidades de la contabilidad financiera, busca la mayor simplicidad posible pensando en los alumnos. Con el fin de facilitar el uso del programa por parte del usuario se muestran mensajes informativos siempre que el usuario intente realizar una operación que no es correcta desde el punto de vista contable (como, por ejemplo, introducir un balance con una suma del haber mayor a la suma del debe). De esta forma el alumno verá a la aplicación como un aliado. Como output del programa se puede obtener un documento de texto como resumen anual de la actividad contable de la empresa durante un año de funcionamiento. Este documento contiene por este orden: libro diario, libro mayor, balance de comprobación antes del cierre de cuentas de pérdidas y ganancias y balance de comprobación después del cierre de cuentas de pérdidas y ganancias. Los asientos que representan operaciones de la empresa son introducidos por el usuario pero es la aplicación la que genera una serie de asientos especiales: el asiento de apertura, el asiento de cierre de cuentas temporal al debe, el asiento de cierre de cuentas temporal al haber y asiento de cierre de cuentas permanente. II

3 La tecnología escogida para llevar a cabo el programa ha sido la plataforma.net por la posibilidad de programar visualmente con relativa facilidad gracias a las Windows Forms, por su buena interacción con el sistema operativo Windows (donde se ejecutará la aplicación) y porque permite programar con uno de los lenguajes de programación más potentes en la actualidad: C# que, a su vez, está diseñado para obtener todo el rendimiento posible de la plataforma.net. Al utilizar Windows Forms, el interfaz gráfico de la aplicación resultará familiar al usuario ya que será similar al de la mayoría de programas que se utilizan en Windows. Para gestionar la base de datos se ha elegido Microsoft Access dado que por su sencillez facilita el acceso a los datos por parte de la aplicación. Access no es un sistema gestor de bases de datos muy potente pero es suficiente para los requerimientos de la aplicación en el acceso a datos. Con el fin de almacenar toda la información necesaria, se han definido cinco tablas en la base de datos. Una para almacenar los datos de una empresa (nombre, tipo de sociedad, año de inicio y nombre del creador), otra para almacenar los distintos estados que definen una situación inicial de una empresa, otra para almacenar los libros diarios de las empresas, otra tabla donde se almacenan los asientos de un libro diario y, por último, una tabla donde se almacenan las distintas operaciones que modifican el saldo de una cuenta y que conforman los asientos. Se puede decir que una empresa cuenta con una situación inicial (definida por los estados) y por una serie de libros diarios. Cada uno de estos está formado por asientos, los cuales, a su vez, están formados por operaciones. Debido a que la aplicación va a constar de un ejecutable, con sólo algunos documentos que se necesitan cargar y con una base de datos sencilla y de pequeño tamaño, III

4 será posible ejecutarla desde cualquier ordenador con sistema operativo Windows sin necesidad de tener que ser instalada o configurada. IV

5 Abstract In this Project a financial accounting application has been developed to allow following up the evolution of the accounting data of an enterprise. The main motive for doing this project is that the developed tool will be used as didactic material in the economy subjects of the Computer Science Engineer courses. In this way, the teacher of the subjects is beneficed because he can propose more complicated exercises to the students and solve them in a tidier way, being easier the evaluation and correction of the students solutions. There is also benefice for the students, since the automation of the process, they can follow it in a simpler and easier way and they can acquire accounting knowledge faster and more dynamically. The developed tool can be also used by any other person to follow up the accounting data of his enterprise in an ordered way, in case that this enterprise doesn t have a big size and doesn t demand big volume of accounting operations. The application functioning is based on storage on a data base of different enterprises with their respective log books (one of these is a document that collects the accounting operations of an enterprise in one year time). The functionality of the tool is strictly tied to the functioning of the accounting process: first the main information of the enterprise is defined, then it s initial situation, then for each working year of the enterprise all the accounting operations are registered so it is possible to make a final summarize document of the year with the log book, the general ledger (it is a document that contains all the operations classified by the number of account) and the final balance (it is a document that contains the state of each account at the end of the year) of the enterprise in the chosen year. Because of this, it is necessary that the user has basic knowledge in V

6 financial accounting so he can use the tool in a proper way. The application follows the process stipulated on the Plan General de Contabilidad (General Accounting Plan) defined and established in Spain by the Royal Decree 743 on the 20 th of December of This is why the tool developed on the project is only completely valid for the Spanish accounting system and not for other countries accounting systems. The mentioned plan establishes some rules that have to be followed in order to elaborate the log books, the general ledgers, the balances and the numbers and names of the different accounts that allow giving some uniformity to the accounting information of the different enterprises. Nowadays there exist different programs designed to follow up the accounting of an enterprise, specially oriented to the small and medium ones. These programs integrate a big variety of options that makes them complicated to be used. Nevertheless, there are no financial accounting applications designed towards a teaching purpose. This is the reason why the designed application doesn t aim to have all the functionality that the financial accounting allows. Instead it looks towards to the most possible simplicity so the students can understand and learn the financial accounting basics. To make the tool easier to use by the user, the tool displays informative messages every time the user tries to make and invalid operation related to accounting. In this way, the user will consider the application as an ally. As an output of the program a text document is obtained. This document contains by this order, log book, general ledger, balance before closing the loss and profit accounts and balance after closing the loss and profit accounts. The accounting entries that represent the operations of the enterprise are introduced by the user but it is the application the one that generates automatically some special accounting entries: the opening entry of every year, the accounts temporary closing entries and the accounts permanent closing. VI

7 The chosen technology to develop the project has been the.net platform because it allows to program visually in an easy way with the Windows Forms, because it interacts in a good way with Windows operative system (where the application will run on) and because it allows to program with one of the most powerful programming languages: C#, that is, in turn, designed to obtain all the possible yield from the.net platform. Because the tool uses Windows Forms for the graphic interface, this will be familiar for the user because it will be similar to the interface of other programs executing on Windows. To manage the data base, the chosen manager is Microsoft Access because of its simplicity that allows the application to access the data in an easy way. Access is not a very powerful database manager system but it is enough for the application requirements. To store all the needed information on the database, five data tables are defined. One to store the information of an enterprise (name, society type, initial year, and name of the creator), another one to store the different states that compose the initial situation of the enterprise, another data table to store the log books of the enterprise, another one to store the accounting entries of each book and, finally, a data table to store the elemental accounting operations that compose each accounting entry. The relations between the different data tables are: each enterprise normally has an initial situation, each enterprise has at least one daily book and one of this is composed by accounting entries that are in turn composed of elemental operations. Because the tool is going to be only composed by one executable file, some text documents and one simple and small database, it will be possible to run it in every computer with a Windows operative system with no need of configuring or installing the application before executing it. VII

8 Índice de Contenidos CAPÍTULO 1: ANÁLISIS DE LA APLICACIÓN Documento de Conceptos del Sistema Lista de Requisitos Estado del arte Aplicaciones a nivel empresarial Aplicaciones a nivel docente CAPÍTULO 2: DISEÑO DE LA APLICACIÓN Modelo lógico Diagrama de Contexto Diagrama de primer nivel (conceptual) Diagramas de Nivel Arquitectura/Tecnología de la aplicación Diseño de entradas y salidas Diseño de ventanas Diseño de informe Modelo lógico de datos CAPÍTULO 3: PROGRAMACIÓN Modelo físico de datos Base de datos en Access DataSets empleados en C#.NET Explicación de la programación Clases La clase Conexión La clase LibroDiario La clase Empresa La clase CloseButton La clase AdvRichTextBox La clase Global Los Formularios Menú principal Acerca De Añadir Asiento Ayuda Balance de sumas y saldos Ficha de la Empresa Empresas Existentes Evolución del libro diario Libros Diarios Resumen Anual...82 VIII

9 Saldo de una Cuenta Situación inicial de la empresa Cuentas Cuentas ANEXO A: Introducción a la tecnología.net Compatibilidad entre lenguajes Ventajas globales de.net Arquitectura básica de la plataforma.net Características de C# ANEXO B: Manual de Usuario Introducción a la aplicación Ejecución de la aplicación Utilización de la aplicación Menú Principal Ficha de la empresa Empresas existentes Libros diarios de una empresa Situación inicial de la empresa Evolución del Libro diario Saldo de la Cuenta Balance de Sumas y saldos Añadir Asiento Cuadro de Cuentas Cuadro de Cuentas (por orden alfabético) Resumen Anual Ayuda Acerca de la aplicación Ejemplo Ejercicio Resuelto Enunciado Crear la empresa Definir Situación inicial Evolución del libro diario para el año Resumen anual del ANEXO C: Valoración económica ANEXO D: Planificación ANEXO E: Conclusiones Bibliografía IX

10 CAPÍTULO 1 ANÁLISIS DE LA APLICACIÓN 1.1 Documento de Conceptos del Sistema Objetivos del sistema La aplicación a desarrollar pretende ofrecer una forma simple de elaborar, guardar y obtener resultados sobre los datos contables de una empresa. Esto se ha de hacer de una manera sencilla y fácil de usar combinando interacción con el usuario y generación automática de cierta información contable. Con el fin de dotarle de facilidad y de buena interacción con el usuario la aplicación contará con gran número de mensajes informativos y control de errores sobre los datos contables introducidos por el usuario. Son objetivos del sistema: Seguimiento y almacenamiento de los datos contables de una empresa. Generación de documentos con resúmenes anuales de los estados financieros de una empresa. Alcance del sistema 1. Automatizar la entrada de asientos para los libros diarios de una empresa. 2. Contabilizar las operaciones de la empresa y controlar que dichas operaciones cuadren. 1

11 3. Identificar las distintas cuentas que pueden intervenir en cada operación. 4. Permitir definir un balance inicial para el comienzo de funcionamiento de la empresa. 5. Contabilizar y mostrar en todo momento los saldos de cada cuenta así como el balance de sumas y saldos. 6. Realizar y contabilizar asientos de apertura y de cierre de cuentas de forma automática. 7. Generar documento con el resumen anual del funcionamiento de cada empresa, incluyendo libro diario, libro mayor y balance de comprobación antes y después del cierre de cuentas de ingresos y gastos. 8. Proporcionar información de ayuda al usuario acerca del plan general contable. 9. Obtener un interfaz de usuario fácil de manejar. 10. Permitir que cada usuario pueda llevar los datos de la empresa consigo y pueda acceder a ellos desde cualquier lugar o sistema. Tipología de los usuarios finales Los usuarios finales del sistema son: Alumnos, para poder realizar los ejercicios propuestos por el profesor de la asignatura. Profesores. En primer lugar para ver los ejercicios realizados por los alumnos y, en segundo, para poder realizar los ejercicios y mostrar la corrección a los alumnos. 2

12 Aquellas personas que deseen utilizar la aplicación para llevar las cuentas de su empresa de una manera fácil y sencilla. Restricciones Se ha de buscar en todo momento la simplicidad con el fin de que el alumno que se está iniciando en la contabilidad pueda seguir el proceso general contable. Se va a utilizar la tecnología.net y dado que no se dispone de la extensión TX Text Control.NET Server la posibilidad de generación de archivos Word, Excel o Pdf es muy limitada o nula. Se debe trabajar con una base de datos móvil para que el usuario la pueda llevar consigo y poder trabajar con ella en cualquier momento y en cualquier lugar. Antecedentes Los ejercicios sobre la contabilidad de empresas ficticias se vienen realizando en las asignaturas de introducción a la contabilidad en el primer año de las carreras de ingeniería de ICAI. Estos ejercicios se hacen de forma manual por lo que es difícil asegurarse de cuadrar las cuentas y de seguir la evolución de la empresa en un ejercicio que sea complicado. 3

13 1.2 Lista de Requisitos Se analizarán los diferentes objetivos del sistema (expuestos en el documento de conceptos del sistema) y se definirán los requisitos que debe cumplir la aplicación para poder cubrir cada uno de los requisitos del sistema: Objetivo 1: Automatizar la entrada de asientos para los libros diarios de una empresa. Requisitos necesarios: La aplicación debe contar con una pantalla que permita al usuario introducir las distintas operaciones que componen un asiento, así como su fecha. La aplicación necesita una pantalla que muestre al usuario una lista con todos los asientos pertenecientes al libro diario de la empresa. Internamente la aplicación debe trabajar con códigos de empresas, de operaciones, de asientos y de libros diarios de una forma relacional con el fin de que se puedan almacenar diferentes empresas, con diferentes libros diarios que a su vez tengan diferentes asientos y operaciones. Objetivo 2: Contabilizar las operaciones de la empresa y controlar que dichas operaciones cuadren. Requisitos necesarios: La aplicación debe asegurarse de que la suma de los valores de las operaciones que intervienen en el debe de un asiento es igual a la suma de los valores de las operaciones que intervienen en el haber. 4

14 Hay ciertas cuentas que no pueden intervenir en un asiento formando parte de las operaciones de debe o de haber. El programa debe controlar esto. Asegurarse que las operaciones se guardan correctamente y que los asientos se pueden recuperar de una ejecución de la aplicación a otra. Objetivo 3: Identificar las distintas cuentas que pueden intervenir en cada operación. Requisitos necesarios: Al introducir un número de cuenta válido el programa debe mostrar el nombre de la cuenta y el tipo: activo, pasivo, pérdida o ganancia. También se debe especificar si esa cuenta debe tener un valor positivo o negativo. La aplicación debe asegurarse de que la cuenta introducida puede participar en la operación seleccionada del asiento correspondiente o en el estado inicial de la cuenta para el balance inicial de la empresa. Objetivo 4: Permitir definir un balance inicial para el comienzo de funcionamiento de la empresa. Requisitos necesarios: Se debe mostrar una pantalla con la situación inicial de la empresa y dar la posibilidad al usuario de ir añadiendo estados de cuentas tanto a la columna del haber como a la columna del debe. El balance de situación inicial debe cuadrar, es decir, la suma de las cantidades del debe tiene que ser igual a la suma de las cantidades del haber. 5

15 Objetivo 5: Contabilizar y mostrar en todo momento los saldos de cada cuenta así como el balance de sumas y saldos. Requisitos necesarios: Se debe dar la posibilidad al usuario de seleccionar cualquier número de cuenta de las que intervienen en un libro diario y poder ver el saldo de esa cuenta. Se debe dar la posibilidad al usuario de ver en cualquier momento el balance de sumas y saldos provisional del libro diario. Objetivo 6: Realizar y contabilizar asientos de apertura y de cierre de cuentas de forma automática. Requisitos necesarios: Cada vez que se muestren los asientos de un libro diario se debe calcular y mostrar el asiento de apertura de dicho libro. Para ello hay que analizar los asientos de libros diarios de años anteriores y la situación inicial de la empresa para obtener los estados financieros de la empresa a 1 de enero de ese año. Cada vez que se muestre el resumen anual de la actividad de un libro diario se debe calcular y mostrar el asiento de apertura de dicho libro así como los asientos de cierre de cuentas temporales (al debe y al haber) y el de cierre de cuentas permanente. Para ello hay que analizar el balance de la empresa al comenzar el año y todas las operaciones registradas en el libro diario. 6

16 Objetivo 7: Generar documento con el resumen anual del funcionamiento de cada empresa, incluyendo libro diario, libro mayor y balance de comprobación antes y después del cierre de cuentas de ingresos y gastos. Requisitos necesarios: Con el fin de poder crear el resumen del libro diario es necesario recorrer y analizar todos los asientos del libro diario. Para poder escribir el libro mayor hace falta contabilizar para cada cuenta las distintas operaciones que intervienen en ella. Se ha de mostrar también el balance de comprobación antes del cierre de cuentas de ingresos y gastos (sin incluir los asientos de cierre de cuentas temporales) y después del cierre de cuentas de ingresos y gastos (que incluye los asientos de cierre de cuentas temporales). Mostrar por pantalla el contenido del resumen anual. Para ello se ha de cargar un archivo RTF con las pertinentes tabulaciones, espacios y saltos de línea para que se pueda conseguir una presentación aceptable. Generar un archivo que contenga el resumen anual y que pueda ser editado por el usuario en Word. Para conseguir una presentación aceptable es necesario que las tabulaciones, espacios y saltos de línea se adapten a los parámetros del programa Word. Objetivo 8: Proporcionar información de ayuda al usuario acerca del plan general contable. Requisitos necesarios: 7

17 Se debe poder mostrar el contenido del plan general contable si el usuario lo cree oportuno. Objetivo 9: Obtener un interfaz de usuario fácil de manejar. Requisitos necesarios: Se debe buscar un diseño que permite un uso sencillo e intuitivo. Para eso se deben mostrar todas las funcionalidades de la aplicación en menú y/o en botones. Las diferentes pantallas de la aplicación deben de estar perfectamente conectadas pudiendo cambiar entre ellas siempre que el usuario lo desee. Objetivo 10: Permitir que cada usuario pueda llevar los datos de la empresa consigo y pueda acceder a ellos desde cualquier lugar o sistema. Requisitos necesarios: Los datos contables de la empresa se han de poder almacenar en una base de datos sencilla y de pequeño tamaño que el usuario pueda llevar junto la aplicación y poder ejecutar ésta en cualquier ordenador y en cualquier momento. Para distinguir entre una empresa con el mismo nombre creada por dos o más personas diferentes, se debe incluir un campo que especifique el nombre del autor o creador de la empresa. Con el fin de que no se guarden datos erróneos en la base de datos, como por ejemplo un balance inicial que no cuadra, la aplicación debe comprobar la integridad de la base de datos al comenzar su ejecución y realizar las tareas de corrección pertinentes. 8

18 1.3 Estado del arte Aplicaciones a nivel empresarial Existen en el mercado multitud de empresas que desarrollan software para llevar la contabilidad de pequeñas y medianas empresas. Las grandes multinacionales utilizan, en muchos casos, soluciones a medida pero las Pymes (pequeñas y medianas empresas) son un gran sector a explotar a la hora de diseñar aplicaciones contables. Existe una enorme cantidad de programas contables que se pueden descargar de Internet gratuitamente (y legalmente). Hay programas que han de ser encargados a la empresa responsable. Existen también otros que se pueden descargar gratuitamente pero que para poder contar con ciertas opciones o servicios hace falta adquirir una licencia de la compañía desarrolladora. Hay que resaltar que el modelo contable difiere de unos países a otros por lo que es normal que cada desarrolladora de software haga aplicaciones específicas para los modelos contables de los distintos países. Se analizarán las aplicaciones orientadas a las empresas españolas y que están adaptadas a las leyes contables españolas. Las aplicaciones que dominan el mercado son de compañías españolas, ya que han sabido captar mejor el modelo de gestión de la contabilidad en las pequeñas y medianas empresas españolas. La aplicación con más fama en el sector es la denominada ContaPlus desarrollada por la compañía SAGE SP que es el líder nacional en aplicaciones para pequeñas y medianas empresas. Este programa se puede encontrar en diferentes modelos según el nivel de funcionalidad o complejidad que se necesite en la empresa. Es la herramienta más completa del mercado pero su manejo puede llegar a ser muy 9

19 complicado. Se pueden encontrar tutoriales o incluso cursos a aprendizaje sobre esta aplicación. El precio de la aplicación fluctúa entre 150 y 1500 según la funcionalidad de la aplicación y los servicios de soporte ofrecidos. SAGE SP también desarrolla la aplicación FacturaPlus que, siguiendo las mismas directrices que ContaPlus, se orienta más a controlar la facturación de una empresa. Otra aplicación orientada a llevar la contabilidad de las pymes es Contar. Ha sido desarrollada por la empresa Grupo EI. La versión actual de este software es la 3.0 que salió al mercado a finales del año 2002, por lo que la falta de actualización es un punto en contra de esta aplicación. Se puede considerar una buena aplicación para PYMES ya que abarca un amplio rango de funcionalidades que la contabilidad de una PYME puede requerir pero sin excesivas complicaciones. Su precio varía entre 50 y 300 según el nivel de funcionalidad requerido. La empresa Infoser sistemas ha desarrollado el software PowerGest que consiste en tres programas de contabilidad que trabajan sobre la misma base y que se diferencian por su nivel de funcionalidad. PowerGest puede ser una solución óptima ya que puede alcanzar una gran funcionalidad a un precio asequible en relación con ContaPlus. Las tres variantes de PowerGest son: o PowerGest Standard es una solución sencilla para pequeñas empresas. Incorpora funciones de control de contabilidad y de control de facturación. Su precio es de 150. o PowerGest Profesional, orientado a PYMES. Abarca las mismas funciones que la versión Standard Incluye además funciones de ayuda a la gestión de 10

20 la empresa y de sistema experto para la ayuda de toma de decisiones. Su precio va de 350 a 460 según se incluya funcionalidad en red o no. o PowerGest Master, orientado a PYMES. Tiene las mismas funciones que la versión Profesional pero permite opciones más avanzadas. Sólo funciona con distribución en red. Su precio es de 650. La empresa Soporte Multivendor ofrece otra aplicación que sigue la línea de las ya descritas. El nombre de la aplicación es Gestión VARS y es un programa muy completo que permite interactuar con diferentes tipos de bases de datos y también permite funcionamiento en red con arquitectura cliente/servidor así como enlace a PDA s. Incorpora procesador de textos y de hojas de cálculo y se acerca en calidad a la aplicación ContaPlus. Se ofrecen múltiples opciones con el fin de que el usuario elija su aplicación a medida. Los precios van desde 100 a 1500 por mes según la funcionalidad de la aplicación y el servicio técnico que se incluya. La empresa Golden Soft desarrolla la aplicación Visual Conta que ha alcanzado ya su versión Su precio es completamente gratuito. El programa está orientado a pequeñas empresas ya que no tiene suficiente envergadura para hacer frente a la contabilidad de una empresa que no sea pequeña. Por ejemplo, el número de asientos que se pueden añadir a un libro diario está limitado y no es muy elevado. La empresa Sistemas Multimedia y de Gestión, S.L. ofrece software especializado para empresas de tamaño mediano con multitud de diferentes opciones a elegir por el usuario. Existen varias aplicaciones con distintos nombres (ContaSol, FactuSol, TPVSol) dependiendo de la finalidad y opciones de su funcionamiento. La descarga de las aplicaciones es completamente gratuita pero para disponer de todos los 11

21 servicios de la empresa (el más útil es el servicio de consultas técnicas) hace falta registrarse para lo que hay que pagar entre 50 y 300 /año según la aplicación que se vaya a utilizar. La empresa EspaSoft desarrolla software relacionado con las finanzas. Para llevar la contabilidad de una empresa cuenta con la aplicación WinConta. No abarca muchas funcionalidades y tiene un fácil manejo. El precio de registrar la aplicación es de 60 euros. La empresa AIG (Asesoría Informática Gallega) también se ocupa de desarrollar aplicaciones de gestión de la contabilidad. Actualmente cuenta con dos herramientas: ClassicGes y ClassicConta. ClassicGes está más orientado a lleva una gestión íntegra de la empresa mientras que ClassicConta se centra en los estados financieros de la empresa. Están orientados a empresas pequeñas y su funcionalidad es limitada. Ambos tienen un precio de 60. La empresa GEYCE Grup cuenta con la aplicación J-Conta que sigue la línea de las aplicaciones ya descritas. La empresa Epsylon Sofá ha desarrollado la herramienta Winfac que integra gestión, facturación, contabilidad y cobros y pagos al mismo tiempo. Otras aplicaciones, como GnuCash, se encargan de la contabilidad de las empresas a nivel internacional sin tener en cuenta el plan general contable español por lo que no son propicias para ser utilizadas por pymes españolas. 12

22 1.3.2 Aplicaciones a nivel docente A diferencia de la gran cantidad de aplicaciones que se pueden encontrar para gestionar los estados contables de las pymes, en la actualidad no existen herramientas o aplicaciones que puedan ser utilizadas para enseñar contabilidad en el ámbito de la docencia. A la hora de aprender contabilidad en las universidades o en cursos especializados, los alumnos siempre trabajan con ejercicios que resuelven manualmente y nunca de forma automatizada con ayuda de software. 13

23 CAPÍTULO 2 DISEÑO DE LA APLICACIÓN 2.1 Modelo lógico Diagrama de Contexto Opción elegida, info. empresa, nº cuenta, fecha, operaciones Usuario Aplicación Situación inicial, empresas, libros diarios, resumen anual, ayuda, libro diario, balance sumas/saldos, saldo cuenta, posibles opciones En el diagrama se puede observar como el usuario es la única entidad externa que interactúa con la aplicación. Se considera flujo de datos la información que muestra la aplicación por pantalla. Todo el flujo de datos entre el usuario y la aplicación es información que muestra la aplicación por pantalla. El usuario va viendo a lo largo de la ejecución de la aplicación toda la información que requiere por pantalla. 14

24 2.1.2 Diagrama de primer nivel (conceptual) Posibles opciones Opción elegida Info. de la empresa 1. Obtener Opción Código nueva empresa, Código nuevo l.d. Códigos, archivos de ayuda, empresas 2. Crear empresa y libro diario Nueva empresa, nuevo l.d. Nueva empresa, nuevo l.d. Empresas Situación inicial L.d., empresas, operac., asientos Base de datos 4. Situación inicial 3. Cargar empresa y l.d. Nuevos asientos Códigos de asientos y operaciones Libro diario Empresa Situación inicial Archivos de ayuda 7. Mostrar Ayuda Empresas, libros d. Libro diario Libro diario, saldo cuenta, sumas/saldos 5. Evolución libro diario Nº Cuenta, Fecha, operaciones Libro diario modificado Resumen anual 6. Resumen Anual Ayuda 15

25 El funcionamiento de la aplicación se puede dividir en siete procesos básicos: Proceso 1: Obtener opción. La aplicación muestra el menú principal con las diferentes opciones, de las cuales el usuario escoge una. Dependiendo de la opción elegida se pasa al proceso 2 (pero antes calculando los códigos para la nueva empresa y el nuevo libro diario que se van a crear), al proceso 3 (cargando la información de todas las empresas desde la base de datos para pasárselas al proceso 3) o al proceso 7 (antes se cargan los documentos de ayuda para pasárselos al proceso 7). Proceso 2: Crear empresa y libro diario. Recibe la información de la nueva empresa y registra en la base de datos la nueva empresa con el libro diario de su primer año de funcionamiento. Proceso 3: Cargar empresa y libro diario. Muestra las empresas existentes para que el usuario seleccione la que quiere cargar. Después carga los libros diarios de la empresa seleccionada para que el usuario seleccione el que quiera ver. Finalmente carga los asientos (con sus operaciones) existentes para ese libro diario en la base de datos y pasa esta información al proceso 5. Proceso 4: Situación inicial. Si se ejecuta después del proceso 2 muestra la situación inicial de la empresa recién creada. Si se ejecuta después del proceso 5 muestra la situación inicial de la empresa a la que pertenece el libro diario que se estaba visualizando. En cualquiera de los dos casos muestra la situación inicial de la empresa y permite al usuario modificarla. 16

26 Proceso 5: Evolución del libro diario. Se muestra por pantalla el libro diario que recibe del proceso 4 o del proceso 3. Antes de mostrarlo debe calcular el asiento de apertura y añadirlo al libro diario. Además permite añadir nuevos asientos con operaciones al libro diario. Para ello toma de la base de datos los códigos de los asientos y de las operaciones con el fin de calcular los códigos para los nuevos asientos y operaciones. Permite borrar o añadir asientos al libro diario para lo que recibe la información del asiento y sus operaciones del usuario. Por último permite mostrar al usuario el balance de sumas y saldos provisional y los saldos de cuentas específicas (recibe el nº de cuenta del usuario). Proceso 6: Resumen anual. Recibe un libro diario, calcula sus asientos de cierre y genera un documento con el libro diario, libro mayor y balances de comprobación. Muestra este documento por pantalla. Proceso 7: Mostrar ayuda. Muestra los diferentes documentos con la información de ayuda al usuario. A continuación se mostrarán los DFD de nivel 2 en los que se pueden ver los subprocesos de cada uno de estos siete procesos, a excepción del proceso 7 que, por su simplicidad, no hace falta descomponerlo en subprocesos 17

27 2.1.3 Diagramas de Nivel 2 Diagrama de Nivel 2 para el proceso 1 (Obtener Opción) Posibles opciones Opción elegida 1. 1 Leer Opción de Menú principal Opción Opción 1.3 Cargar empresas Empresas Opción Archivos de ayuda Empresas Base de datos 1.2 Cargar archivos de ayuda Códigos de libros diarios Códigos de empresas Código nueva empresa, código de nuevo l.d. Archivos de ayuda 1.5 Calcular código l.d. 1.4 Calcular código empresa Código nueva empresa 18

28 Diagrama de nivel 2 para el proceso 2 (Crear empresa y libro diario) 2.1 Leer info. de la empresa Info. de la empresa Info. de la empresa Nueva empresa 2. 2 Crear nueva empresa Código nueva empresa, código nuevo libro diario Nueva empresa Opción Base de datos Nuevo libro diario 2.3 Crear nuevo libro diario Nuevo libro diario 19

29 Diagrama de Nivel 2 para el proceso 3 (Cargar empresa y libro diario) Empresas 3.1 Mostrar empresas Empresas Datos de empresa selec. 3.2 Mostrar empresa selec. Empresa Libros diarios Libros diarios Datos empresa 3.3 Modificar datos de empresa Datos empresa modificados Libros diarios Base de datos 3.4 Mostrar libros diarios Libros diarios Libros diarios selec. Libro diario selec. 3.5 Modificar fechas libros d. Asientos, operaciones 3.6 Cargar libro diario Libro d. con asientos y operaciones 20

30 Diagrama de Nivel 2 para el proceso 4 (Situación inicial) Situación inicial Empresa Nueva empresa, nuevo l.d. 4.1 Mostrar Situación inicial Libro diario Situación inicial Situación inicial modificada 4.2 Modificar situación inicial Situación inicial Base de datos Situación inicial modificada 21

31 Diagrama de Nivel 2 para el proceso 5 (Evolución libro diario) 5.1 Añadir asiento de apertura Libro diario Libro diario Libro diario (se ha incluido el asiento de apertura) Libro diario 5.2 Mostrar libro diario Empresa Código nuevo asiento, código nuevas operaciones Nuevo asiento Fecha y operaciones 5.3 Crear asiento 5.3 Mostrar saldo de cuenta Libro diario Códigos de asientos y operaciones Nuevo asiento Nº cuenta Saldo cuenta. 5.4 Mostrar balance sumas /saldos Base de datos Balance sumas/saldos 22

32 Diagrama de Nivel 2 para el proceso 6 (Resumen Anual) Libro diario 6.1 Añadir asientos de cierre Libro diario (con asientos de cierre) 6.2 Generar resumen anual Resumen anual Resumen anual 6.3 Mostrar Resumen Anual 23

33 2.2 Arquitectura/Tecnología de la aplicación La aplicación está basada enteramente en la arquitectura.net. La principal razón para utilizar.net es debido a la potencia que ofrece a la hora de programar, especialmente en combinación con C# que ha sido el lenguaje elegido para desarrollar esta aplicación. La aplicación tiene todos sus niveles (datos, aplicación y presentación) en el ordenador del usuario. Se planteó llevar a cabo una arquitectura cliente-servidor pero se desechó por los siguientes motivos: Es una aplicación que está basada en un ejecutable y no requiere instalación. Es una aplicación que debe funcionar en varios lugares de trabajo. Por ejemplo en las aulas de ordenadores de la facultad o en los ordenadores personales que los alumnos tengan en sus domicilios. La base de datos encargada de gestionar todos los datos de las ejecuciones de la aplicación adquiriría un gran tamaño innecesariamente y sería difícil de gestionar si fuera una base de datos centralizada. Las necesidades de la aplicación no requieren un modelo cliente-servidor. El alumno podrá realizar su ejercicio en cualquier lugar y finalmente entregar al profesor los documentos con los resúmenes anuales para que realice su corrección. Por ello y pensando en el fácil manejo de la aplicación y de su portabilidad se ha optado porque cada alumno pueda llevar, junto con el ejecutable de la aplicación, una pequeña base de datos en Microsoft Access donde guarde sus ejercicios. A la hora de decidir la tecnología a utilizar en la aplicación se barajó la posibilidad de utilizar otros lenguajes que posibilitan programación visual. Finalmente se decidió por 24

34 utilizar C# con.net frente a JAVA por ser un lenguaje que incorpora las mismas funcionalidades de JAVA incluyendo ventajas a la hora de la programación o el diseño. La plataforma.net también permite realizar aplicaciones con un interfaz similar al que se utiliza en otros programas de Windows por lo que puede resultarle más familiar y de manejo más fácil a los alumnos que vayan a utilizar la presente aplicación (que, en un principio, serán los alumnos de primer curso de las titulaciones IINF e ITIG). Frente a otros lenguajes de programación que utilizan la plataforma.net se ha elegido C# ya que es el más potente de todos y que consigue sacar todo el beneficio que puede aportar.net. Esto se debe a que es un lenguaje que fue creado por una razón: funcionar por y para.net. Con el fin de desarrollar la base de datos e interactuar con ella se ha optado por utilizar Microsoft Access. A pesar de ser uno de los gestores menos potentes, es capaz de satisfacer todas las necesidades de la aplicación de una forma sencilla. 25

35 2.3 Diseño de entradas y salidas Se mostrarán los interfaces diseñados para la entrada o salida de datos a la aplicación. Estos interfaces se han realizado con el diseñador de interfaces de la plataforma.net. Una vez diseñados, se implementarán todas sus funciones más adelante Diseño de ventanas DISEÑO DE VENTANA 1 Nombre: Menú Principal Descripción: Permite al usuario escoger una opción de funcionamiento sobre todas las que presenta la aplicación. Tipo: Entrada (recibe opción) / Salida (muestra posibles opciones) Ventanas a las que llama: 2, 3, 11 y 13 Diseño: 26

36 DISEÑO DE VENTANA 2 Nombre: Ficha de la empresa Descripción: Permite recibir los datos de la nueva empresa del usuario o mostrar los datos de una empresa ya existente para que puedan ser modificados Ventanas a las que llama: 1, 3, 5 y 11 Tipo: Entrada / Salida Diseño: 27

37 DISEÑO DE VENTANA 3 Nombre: Empresas existentes Descripción: Muestra la información de todas las empresas existentes en la base de datos. Ventanas a las que llama: 1, 2, 4, 5 y 11 Tipo: Salida Diseño: 28

38 DISEÑO DE VENTANA 4 Nombre: Libros diarios de una empresa Descripción: Muestra la información de una empresa y todos sus libros diarios. Ventanas a las que llama: 1, 2, 3, 5, 6 y 11 Tipo: Salida Diseño: 29

39 DISEÑO DE VENTANA 5 Nombre: Situación inicial de una empresa Descripción: Muestra situación inicial de la empresa dando la posibilidad de modificarla. Ventanas a las que llama: 1, 2, 3, 4, 6, 10a y 11. Tipo: Entrada / Salida Diseño: 30

40 DISEÑO DE VENTANA 6 Nombre: Evolución de un libro diario Descripción: Muestra todos los asientos (con sus operaciones) de un libro diario. Ventanas a las que llama: 1, 2, 3, 4, 5, 7, 8, 11 y 12 Tipo: Salida Diseño: 31

41 DISEÑO DE VENTANA 7 Nombre: Saldo de una cuenta Descripción: Muestra todas las operaciones de una cuenta en un libro diario con su saldo total. Ventanas a las que llama: Ninguna Tipo: Salida Diseño: 32

42 DISEÑO DE VENTANA 8 Nombre: Balance de sumas y saldos Descripción: Muestra el balance de sumas y saldos provisional de un libro diario. Ventanas a las que llama: Ninguna Tipo: Salida Diseño: 33

43 DISEÑO DE VENTANA 9 Nombre: Añadir asiento Descripción: Permite al usuario introducir las operaciones y la fecha de un asiento. Ventanas a las que llama: 1, 2, 3, 6, 10a y 11 Tipo: Entrada Diseño: 34

44 DISEÑO DE VENTANA 10a Nombre: Cuadro de Cuentas Descripción: Muestra todas las cuentas del Plan General Contable. Ventanas a las que llama: 10b Tipo: Salida Diseño: 35

45 DISEÑO DE VENTANA 10b Nombre: Cuadro de Cuentas por orden alfabético Descripción: Muestra todas las cuentas del plan general contable pero ordenadas por orden alfabético. Ventanas a las que llama: Ninguna Tipo: Salida Diseño: 36

46 DISEÑO DE VENTANA 11 Nombre: Ayuda Descripción: Muestra todos los documentos de ayuda que proporciona la aplicación. Ventanas a las que llama: Ninguna Tipo: Salida Diseño: 37

47 DISEÑO DE VENTANA 12 Nombre: Resumen Anual Descripción: Muestra el documento generado como resumen de la actividad contable de la empresa en un año. El contenido del documento se expondrá cuando se explique el documento como un informe. Ventanas a las que llama: 1, 2, 3, 4, 6 y 11 Tipo: Salida Diseño: 38

48 DISEÑO DE VENTANA 13 Nombre: Acerca de la aplicación Descripción: Muestra información sobre la creación de la aplicación. Ventanas a las que llama: Ninguna Tipo: Salida Diseño: 39

49 2.3.2 Diseño de informe DISEÑO DE INFORME 1 Nombre: Resumen anual Descripción: Es el documento generado como resumen de la actividad contable de la empresa en un año. Será un archivo con extensión.rtf y que estará preparado para abrirse con el programa Word de Microsoft Office. Contiene el libro diario, el libro mayor y los balances de comprobación de la empresa Tipo: Salida Diseño: A continuación se muestra un ejemplo de cómo puede ser el documento LIBRO DIARIO (Año 2001) N As Fecha N Cuenta Debe Haber Cuentas 1 01/01/ Gastos de constitución Gastos de ampliación de capital. a Capital social Capital Acreedores por prestaciones de s Apertura de Balance /01/ Caja, euros. a Deudas a corto plazo con entida. 3 01/01/ Compras de mercaderías. a Proveedores. 4 01/01/ Gastos de constitución. a Caja, euros. 5 01/01/ Terrenos y bienes naturales. a Caja, euros. 6 01/01/ Gastos de constitución. a Capital social. 7 20/01/ Mobiliario. a 40

50 Caja, euros. 8 25/01/ Proveedores (euros) Hacienda Pública, IVA soportado. (Explicación: IVA sobre cuenta 4000) a Deudas representadas en otros va Hacienda Pública, IVA repercutid. (Explicación: IVA sobre cuenta 155) 9 23/03/ Mobiliario. a Caja, euros /04/ Mercaderías A. a Variación de existencias de merc. (Explicación: Recuento físico y valoración de existencias a fin de ejercicio) /12/ Variación de existencias de merc. a Pérdidas y ganancias Cierre de cuentas temporales (p y g) al haber /12/ Pérdidas y ganancias. a Compras de mercaderías Cierre de cuentas temporales (p y g) al debe /12/ Capital social Capital Deudas representadas en otros va Proveedores Acreedores por prestaciones de s Hacienda Pública, IVA repercutid Deudas a corto plazo con entida Caja, euros. a Gastos de constitución Gastos de ampliación de capital Terrenos y bienes naturales Mobiliario. 41

51 Mercaderías A Hacienda Pública, IVA soportado Proveedores (euros) Cierre de cuentas permanente Total debe Total haber LIBRO MAYOR (Año 2001) 100. Capital social 2100 (13) 100 (6) 2000 (1) 102. Capital 1000 (13) 1000 (1) 129. Pérdidas y ganancias 600 (12) 600 (11) 155. Deudas representadas en otros valores negociables (13) (8) 200. Gastos de constitución 50 (4) 2150 (13) 100 (6) 2000 (1) 202. Gastos de ampliación de capital 2000 (1) 2000 (13) 220. Terrenos y bienes naturales 1000 (5) 1000 (13) 226. Mobiliario 42

52 1000 (7) 1500 (13) 500 (9) 300. Mercaderías A 600 (10) 600 (13) 400. Proveedores 600 (13) 600 (3) Proveedores (euros) (8) (13) 410. Acreedores por prestaciones de servicios 1000 (13) 1000 (1) 472. Hacienda Pública, IVA soportado 1600 (8) 1600 (13) 477. Hacienda Pública, IVA repercutido 1600 (13) 1600 (8) 520. Deudas a corto plazo con entidades de crédito 1000 (13) 1000 (2) 570. Caja, euros 1000 (2) 50 (4) 1550 (13) 1000 (5) 1000 (7) 500 (9) 600. Compras de mercaderías 600 (3) 600 (12) 610. Variación de existencias de mercaderías 600 (11) 600 (10) 43

53 BALANCE DE COMPROBACION (Año 2001) Antes del cierre de las cuentas de ingresos y gastos SUMAS SALDOS NºCuenta Debe Haber Deudor Acreedor Nombre de la Cuenta Capital social Capital Deudas representadas en Gastos de constitución Gastos de ampliación de Terrenos y bienes natura Mobiliario Mercaderías A Proveedores Proveedores (euros) Acreedores por prestacio Hacienda Pública, IVA so Hacienda Pública, IVA re Deudas a corto plazo co Caja, euros Compras de mercaderías Variación de existencias. TOTALES: BALANCE DE COMPROBACION (Año 2001) Después del cierre de las cuentas de ingresos y gastos SUMAS SALDOS NºCuenta Debe Haber Deudor Acreedor Nombre de la Cuenta Capital social Capital Pérdidas y ganancias Deudas representadas en Gastos de constitución Gastos de ampliación de Terrenos y bienes natura Mobiliario Mercaderías A Proveedores Proveedores (euros) Acreedores por prestacio Hacienda Pública, IVA so. 44

54 Hacienda Pública, IVA re Deudas a corto plazo co Caja, euros Compras de mercaderías Variación de existencias. TOTALES:

55 2.4 Modelo lógico de datos Nuestro modelo de datos va a constar de cinco entidades y cuatro relaciones entre ellas. Las entidades con sus atributos son: EMPRESA. Representa cualquier empresa que puede crear el usuario y sobre cuyos libros diarios puede operar. Tiene los siguientes atributos: o Código de empresa: es un número entero no negativo que será el identificador de la empresa. Este atributo es la clave principal de la entidad. o Nombre: es el nombre de la empresa. Incluye una terminación del tipo S.L. o S.A. para indicar el tipo jurídico de sociedad que es la empresa. Es un campo alfanumérico. o Creador: es el nombre del usuario que ha creado la empresa. Es un campo alfanumérico. o Inicio: es el primer año de funcionamiento de la empresa. Es un entero cuyo valor estará comprendido entre 1950 y ESTADO. Representa el estado de una cuenta en la situación inicial de la empresa. Habrá un estado por cada cuenta cuyo saldo no sea nulo antes de comenzar el funcionamiento de la empresa en el año 0. Tiene los siguientes atributos: o Código de estado: es un número entero no negativo que es el identificador del estado. Este atributo es la clave principal de la entidad. o Nombre de cuenta: es el nombre de la cuenta sobre la que se representa un saldo inicial distinto de 0. Es un campo alfanumérico. 46

56 o Nº de cuenta: es el número de la cuenta sobre la que se representa un saldo inicial distinto de 0. Es un entero con valor comprendido entre 100 y o Cantidad: representa el saldo de la cuenta. Es un número en coma flotante cuyo valor máximo es de un billón. o Tipo: representa si el estado está anotado en la columna del Debe o del Haber en la situación inicial de la empresa. Es un campo alfanumérico que sólo puede tomar los valores Debe o Haber. o Código de empresa: es un número entero no negativo que representa la empresa a la que pertenece el estado. LIBRO DIARIO. Representa cada uno de los libros diarios de una empresa. Recoge los hechos contables de una empresa a lo largo de un año. Tiene los siguientes atributos: o Código de libro diario: es un número entero no negativo que es el identificador del libro diario. Este atributo es la clave principal de la entidad. o Año: es el año de funcionamiento de la empresa al que corresponde este libro diario. Es un entero cuyo valor estará comprendido entre 1950 y o Código empresa: es un número entero no negativo que representa la empresa a la que pertenece el libro diario. ASIENTO. Representa un asiento contable que es un registro de una operación real o virtual en el libro correspondiente. Tiene los siguientes atributos: o Número de asiento: es un entero no negativo que identifica al asiento. Este atributo es la clave principal de la entidad. 47

57 o Fecha: es un campo de tipo fecha que indica la fecha del año del libro diario a la que pertenece el asiento. o Código de libro diario: es un número entero no negativo que representa el libro diario al que pertenece el asiento. OPERACIÓN. Entendida como la unidad elemental de un hecho contable. Representa una variación en el saldo de una cuenta. Tiene los siguientes atributos: o Código de operación: es un entero no negativo que identifica a la operación. Este atributo es la clave principal de la entidad. o Tipo: representa si la operación afecta al debe o al haber de la cuenta. Es un campo alfanumérico que sólo puede tomar los valores Debe o Haber. o Valor: es la cantidad en la que se modifica el saldo de la cuenta con la operación. Es un número en coma flotante cuyo valor máximo es de un billón. o Nº de cuenta: es la cuenta sobre la que se modifica el saldo en la operación. Es un entero con valor comprendido entre 100 y o Explicación: es un campo alfanumérico que contiene una explicación que el usuario puede dar opcionalmente a la explicación. o Código de asiento: es un número entero no negativo que representa el asiento al que pertenece la operación. 48

58 A continuación se muestra un diagrama donde se pueden ver las relaciones lógicas entre las cinco entidades de nuestro modelo lógico de datos: Empresa 1 M Tiene Libro Diario 1 1 Inicia con Contiene N N Estado Asiento 1 Formado por M Operación 49

59 Las cuatro relaciones que se ven en el diagrama son: Inicia con. Indica la relación entre las entidades de Empresa y de Estados. Cada empresa puede tener cero o varios (cardinalidad N) estados para expresar su situación inicial. Un estado siempre ha de tener una empresa a la que pertenece (y no más). Tiene. Representa la relación entre las entidades Empresa y Libro diario. Una empresa siempre ha de tener uno o más (cardinalidad M) libros diarios. Es obligatorio que posea el libro diario de su primer año de funcionamiento. Un libro diario siempre ha de tener una empresa a la que pertenecer (y no a más). Contiene. Es la relación existente entre las entidades de Libro diario y Asiento. Un libro diario contiene cero o varios asientos. Un asiento siempre ha de pertenecer a un libro diario (y no a más). Formado por. Representa la relación entre las entidades de Asiento y Operación. Un asiento siempre tiene que estar compuesto por una o más operaciones; no puede existir un asiento sin operaciones. Una operación siempre ha de pertenecer a uno, y sólo un, asiento. 50

60 CAPÍTULO 3 PROGRAMACIÓN 3.1 Modelo físico de datos Base de datos en Access Se va a trabajar con una base de datos de Microsoft Access por su simplicidad y su fácil manejo, además de adaptarse a las necesidades de la aplicación. La aplicación va a guardar todos sus datos en una base de datos denominada bbdd, que está constituida por cinco tablas que representan las entidades expuestas en el modelo lógico de datos. Para mostrar los campos de las tablas se utilizará la definición de la tabla realizada con Microsoft Access. Las cinco tablas son: La tabla Empresas con los siguientes campos: La tabla Estados con la siguiente estructura: 51

61 La tabla LibrosDiarios con los campos siguientes: La tabla Asientos con los siguientes campos: La tabla Operaciones con la estructura: 52

62 3.1.2 DataSets empleados en C#.NET A continuación se explicarán los conjuntos de datos utilizados en la programación de la aplicación. Un DataSet es un conjunto de datos utilizado por la plataforma.net que permite albergar datos que vienen de XML. De hecho un DataSet permite la posibilidad de definir visualmente un esquema de datos en XML y hacer que se genere un modelo de objetos en torno a él. Para llevar a cabo la aplicación han hecho falta seis datasets o conjuntos de datos diferentes: DataSet1. Se utiliza para realizar la carga de los datos al iniciar la aplicación (en el formulario del menú principal). Es el conjunto de datos que más se va a utilizar en toda la aplicación. Sirve para manejar todas las tablas de la base de datos. Su esquema es el siguiente: 53

63 DataSet2. Se utiliza en el formulario de Añadir Asiento con el fin de mostrar las operaciones que se van a añadir al debe y al haber de un asiento. Cuenta con un sola tabla y el siguiente esquema: DataSet3. Se utiliza en el formulario de Evolución del libro diario para mostrar todos los asientos de un libro diario. Cuentan con una sola tabla y su esquema es el siguiente: DataSet4. Se utiliza en el formulario de Situación inicial. Sirve para cargar los estados iniciales en las columnas del haber y del debe. Su estructura es la siguiente: 54

64 DataSet5. Se utiliza en el formulario de Balance de sumas y saldos y en el de Resumen anual con el fin de cargar los balances sobre su estructura. Este conjunto de datos está formado por la siguiente tabla: DataSet6. Se utiliza en el formulario de Libros Diarios de la empresa con el fin de mostrar los libros diarios existentes para una empresa. La estructura del conjunto de datos es la siguiente: 55

65 3.2 Explicación de la programación En esta sección no se pretende realizar una explicación extensa de todo el código sino resaltar de cada clase o formulario los aspectos más característicos de su programación. En primer lugar se van a analizar aquellas clases que no implementan controles visuales pero que serán instanciadas y/o cuyos métodos serán utilizados desde los formularios de la aplicación Clases La clase Conexión Es la que permite cargar todos los datos de la base de datos al iniciar la aplicación para que se puedan manejar y actualizar a lo largo del funcionamiento de la aplicación. Se creará una instancia de Conexión al iniciar el formulario del Menú principal ; dicha instancia será pasada como argumento de entrada a todos aquellos formularios que necesiten acceso a la base de datos a lo largo del funcionamiento de la aplicación. La clase Conexión tiene los siguientes atributos: Un DataSet sobre el que se cargará toda la información de la base de datos. Su nombre será data. Un DataAdapter del tipo OleDb para acceder a la tabla de Empresas. Su nombre será a_empresas. Un DataAdapter del tipo OleDb para acceder a la tabla de Estados. Su nombre será a_estados. 56

66 Un DataAdapter del tipo OleDb para acceder a la tabla de Asientos. Su nombre será a_asientos. Un DataAdapter del tipo OleDb para acceder a la tabla de LibrosDiarios. Su nombre será a_librosdiarios. Un DataAdapter del tipo OleDb para acceder a la tabla de Operaciones. Su nombre será a_operaciones La clase LibroDiario Representa a un libro diario con sus atributos básicos, sin incluir sus asientos u operaciones. Esta clase simplemente permite crear instancias en las que estén almacenados el código del libro diario, el año al que pertenece el libro diario y el código de empresa al que pertenece el libro diario. También tiene implementados métodos para obtener el valor de estos tres atributos La clase Empresa Representa a una empresa con sus atributos básicos que son su código, su nombre, su creador, su año de inicio y el tipo jurídico de sociedad que es. También se implementan métodos que devuelven los valores de estos atributos. 57

67 La clase CloseButton Esta clase recibe un formulario como argumento y se encarga de desactivar el botón de cierre (la X blanca sobre fondo rojo) de la esquina superior derecha del formulario. De esta forma sólo se podrá salir de la aplicación mediante la opción Salir de la aplicación habilitada en uno de los menús del formulario La clase AdvRichTextBox Esta clase define una nueva clase que hereda de la clase RichTextBox e implementa la posibilidad de justificar (en referencia a su alineación) el texto que muestra. De esta forma, a la hora de mostrar documentos en la aplicación con en el caso de las ayudas, éstos podrán tener una alineación justificada del texto La clase Global En esta clase se definen una serie de métodos que serán utilizados en varios de los formularios de la aplicación. A continuación se analizan estos métodos uno a uno: El método CurrentRow. Recibe un datagrid como argumento y devuelve la fila del datagrid que está seleccionada. De esta forma cada vez que se quiera cargar o eliminar los datos de una fila seleccionada por el usuario en un datagrid se llamará a este método. Su código es el siguiente: public static DataRow CurrentRow(DataGrid agrid) { 58

68 } CurrencyManager xcm =(CurrencyManager)aGrid.BindingContext[aGrid.DataSource, agrid.datamember]; DataRowView xdrv = (DataRowView)xCM.Current; return xdrv.row; El método quitartildes. Recibe una cadena de caracteres como argumento de entrada y devuelve una cadena con los mismos caracteres que la de entrada, pero sin tildes. Este método se utiliza cuando se quiere mostrar un texto en formato.rtf sobre una RichTextBox. El código es el siguiente: public static string quitartildes(string cadena) { char[] c = cadena.tochararray (); int i=0; while(i<c.length) { if(c[i]== á ) { c[i]= a ; } if(c[i]== é ) { c[i]= e ; } if(c[i]== í ) { c[i]= ; } if(c[i]== ó ) { c[i]= o ; } if(c[i]== ú ) { c[i]= u ; } i++; } string s=new string(c); return s; } El método escuenta67. Recibe un entero con un número de cuenta y devuelve un 0 cuando la cuenta no es del grupo 6 o del grupo 7, y un 1 cuando sí lo es. Este método se utiliza, por ejemplo, cuando se quiere generar un asiento de cierre de 59

69 cuentas temporal y sólo se quiere contabilizar las cuentas de pérdidas y ganancias. La implementación del método es: public static int escuenta67(int cuenta) { int resultado=0; if (cuenta>1000) { if((cuenta>5999)&&(cuenta<8000)) { resultado = 1; } } else { if((cuenta>599)&&(cuenta<800)) { resultado = 1; } } return resultado; } El método comprobarnúmero. Se utiliza para saber si una cadena de caracteres contiene un número o no. Devuelve un 1 en caso afirmativo y un 0 en caso contrario. Este método es empleado para comprobar que el usuario rellena los campos numéricos con valores correctos. Su código es el siguiente: public static int comprobarnúmero(string st) { char[] ch = st.tochararray(); int lon = ch.length; int z; int numero=1; for(z=0; z<lon; z++) { if((convert.touint16(ch[z])>57) (Convert.ToUInt16(ch[z])<48)) { numero=0; } } return numero; } 60

70 El método comprobarnúmeronegativo. Recibe una cadena de caracteres con un número y devuelve un 1 si ese número es negativo o 0 si no es negativo. Su código es: public static int comprobarnúmeronegativo(string st) { char[] ch = st.tochararray(); int lon = ch.length; int z; int numero=1; if(ch[0]!= - ) { numero=0; } for(z=1; z<lon; z++) { if((convert.touint16(ch[z])>57) (Convert.ToUInt16(ch[z])<48)) { numero=0; } } return numero; } El método getinfocuenta. Este método recibe un número entero con un número de cuenta y devuelve un string con el nombre de esa cuenta en el Plan general contable y otro string que contiene el tipo de la cuenta. Esta cadena de tipo de la cuenta puede contener los valores activo, pasivo, ingreso o gasto, y, en caso de que la cuenta sólo soporte valores negativos, el tipo irá entre paréntesis (por ejemplo un activo negativo sería (Activo). Se muestra el código reducido (ya que necesita especificar todas las cuentas del plan general contable y esto requiere un gran número de líneas de código): public static string[] getinfocuenta(int n_cuenta) { string[] info = new string[2]; string nombre; string tipo= ; 61

71 switch(n_cuenta) { case 100: nombre= Capital social ; tipo= Pasivo ; break; case 1000: nombre= Capital ordinario ; tipo= Pasivo ; break; case 1001: nombre= Capital privilegiado ; tipo= Pasivo ; break; case 1002: nombre= Capital sin derecho a voto ; tipo= Pasivo ; break; case 1003: nombre= Capital con derechos restringidos ; tipo= Pasivo ; break; ( ) } case 7991: nombre= Exceso de provisión para insolvencias de créditos a corto plazo de empresas asociadas ; tipo= (Gasto) ; break; case 7993: nombre= Exceso de provisión para insolvencias de créditos a corto plazo de otras empresas ; tipo= (Gasto) ; break; default: nombre= ; tipo= ; break; info[0]=nombre; info[1]=tipo; } return info; El método adaptarlibros. Es el método que recalcula los asientos de apertura y de cierre de los libros diarios. Este método es llamado antes de mostrar el formulario de Evolución de un libro diario ya que se necesita el asiento de apertura del libro diario, y antes de llamar al formulario de Resumen anual, ya 62

72 que para escribir el libro diario, el libro mayor y los balances es preciso que los asientos de apertura y de cierre sean correctos. Debido a la cantidad de operaciones que debe realizar este método es posible que su tiempo de ejecución pueda llegar hasta los 10 segundos (en un caso extremo). Debido a la gran extensión en líneas de código de este método, simplemente se va a exponer lo que hace este método para generar los asientos de apertura y de cierre: Sobre un bucle for se van a recorrer todos los libros diarios de la empresa. En cada iteración se realizará lo siguiente: o Se borra el asiento de apertura existente para ese libro diario. o Se crea un nuevo asiento de apertura. En caso de que el libro diario sea el del primer año de funcionamiento de la empresa, se generará el asiento de apertura basándose en los estados definidos para la situación inicial de la empresa. En caso de que el libro diario pertenezca a un año posterior al de inicio de la empresa, se tomará el asiento de cierre de cuentas permanente del año anterior y se invertirán operaciones de debe por operaciones de haber y con ellas se creará el asiento de apertura. Esto se debe a que el asiento de cierre de cuentas permanente del año N es igual al asiento de apertura del año N+1 pero tomando todos los valores de la columna del debe y pasarlos a la columna del haber y viceversa. o Se eliminan todos los asientos de cierre de cuentas del libro diario. o Se rehacen los asientos de cierre de cuentas. En primer lugar se recorren las operaciones de las cuentas de los grupos 6 y 7 de los asientos del libro diario. Con estas operaciones se crean los asientos de cierre de cuentas temporales 63

73 generando cada uno la correspondiente operación que modifica el saldo de la cuenta 129. A continuación se recorren todas las operaciones de los asientos del libro diario que no son del grupo 6 o 7 y se genera el asiento de cierre de cuentas permanente. Con este asiento el saldo final de cada cuenta queda con valor nulo (este asiento no se contabiliza a la hora de calcular el balance de sumas y saldos del libro diario) Los Formularios Se va a explicar los aspectos más relevantes de la programación de cada formulario. No se muestran los interfaces de los formularios ya que éstos se pueden ver en el diseño de entradas y salidas citado anteriormente. También se explica detenidamente la funcionalidad resultante de cada formulario con relación al funcionamiento de la aplicación; esto se puede ver en el Manual de Usuario. Se procura no caer en explicaciones repetitivas sobre aspectos del código, por lo que en cada formulario sólo se explicará el código que no sea similar y no realice las mismas funciones que el código ya explicado de formularios anteriores. No se va a explicar la forma o el funcionamiento de los elementos denominados Windows Forms ya que viene definida por el paquete de la plataforma.net (Ver anexo A) Menú principal Es el formulario con el que arranca el programa. Tiene definidos cinco OledbDataAdapters para cargar cada una de las tablas de la base de datos sobre un 64

74 DataSet de tipo DataSet1. Estos cinco elementos formarán una instancia del tipo Conexión (citada anteriormente) que recibirá el nombre de conect y que pasarán como argumento a los formularios que llamen y que necesiten tener acceso a información de la base de datos. A su vez, los futuros formularios que se vayan ejecutando pasarán esta instancia del tipo Conexión a los formularios a los que llamen y que necesiten acceso a la base de datos. Las sentencias SQL utilizadas en los OledbDataAdapters para cargar los datos en el DataSet1 se generan con el asistente de.net. Las sentencias Select utilizadas son muy sencillas: SELECT * FROM Tabla_correspondiente Con el fin de eliminar datos incorrectos de la base de datos se realizarán una serie de comprobaciones y correcciones sobre estos datos: En primer lugar, se eliminarán aquellos asientos que no estén formados por alguna operación. El código para realizar esto es: int borrado1=1; while(borrado1==1) { borrado1=0; foreach(datarow d in dataset11.tables[ Asientos ].Rows) { int tiene_op=0; foreach(datarow d2 in dataset11.tables[ Operaciones ].Rows) { if(convert.toint32(d2[ Asiento ] == Convert.ToInt32(d[ NumeroAsiento ])) { tiene_op=1; break; } } if(tiene_op==0) { d.delete(); 65

75 } } } dataset11.tables[ Asientos ].Rows.Remove(d); this.oledbda_asientos.update( dataset11, Asientos ); dataset11.acceptchanges(); borrado1=1; break; Como se puede ver en el código, se utiliza un foreach para ir recorriendo todas las filas de una tabla hasta que se realiza una operación de eliminar o modificar una fila. Sólo en estos casos (y no cuando sólo se lee algún valor de una fila) es necesario incluir un break. Con el fin de continuar eliminando o modificando más elementos de la tabla introducimos una variable (como borrado1) que controle un bucle while que sirve para ir recorriendo todas las filas a pesar de que se realice una operación de borrado o modificado. En este caso, se borran todos los asientos para los cuales no se ha encontrado ninguna operación (tiene_op==0). Después, se eliminan aquellos asientos que tengan en su campo de código de libro diario al que pertenecen un número que no se corresponde con ningún libro diario existente. Luego se recorren todas las operaciones y se eliminan aquéllas que no estén asociadas a un asiento existente. Se recorren todos los libros diarios y se borran aquéllos que no tengan el código de una empresa existente en su campo de código de empresa a la que pertenecen. Se recorren todos los balances iniciales de las empresas y, en caso de que alguno de ellos no cuadre, se eliminará el balance inicial de la empresa mostrando un mensaje informativo al usuario. 66

76 Una vez comprobada la integridad de la información en la base de datos, se pasa a cargar los códigos ya utilizados en la base de datos. Por cada tabla en la base de datos existe un array que guarda qué códigos han sido ya utilizados para que no se vuelvan a reutilizar ya que estos códigos son las claves principales. Los nombres de estos arrays y sus dimensiones se pueden observar en el código: empresas = new int[1000]; asientos = new int[10000]; operaciones = new int[100000]; librosdiarios = new int[10000]; estados = new int[10000]; Para saber qué códigos han sido utilizados ya, se almacenará un 1 en la posición del array si está cogido o un 0 si está libre: foreach(datarow d in dataset11.tables[ Empresas ].Rows) { empresas[convert.toint32(d[ CodigoEmpresa ])] = 1; } foreach(datarow d in dataset11.tables[ Asientos ].Rows) { asientos[convert.toint32(d[ NumeroAsiento ])] = 1; } foreach(datarow d in dataset11.tables[ Operaciones ].Rows) { operaciones[convert.toint32(d[ Codigo_operacion ])] = 1; } foreach(datarow d in dataset11.tables[ LibrosDiarios ].Rows) { librosdiarios[convert.toint32(d[ CodigoLibrodiario ])] = 1; } foreach(datarow d in dataset11.tables[ Estados ].Rows) { estados[convert.toint32(d[ CodigoEstado ])] = 1; } Cada vez que se cree un nuevo elemento en la base de datos habrá que buscar un código que esté libre de la forma: ind=0; repetido=1; while(repetido==1) { if(operaciones[ind]== 0) 67

77 } { } else { } operaciones[ind]= 1; repetido=0; ind++; En este formulario se incluyen unos botones que abren otras ventanas. En caso de que se abra una nueva cerrando la actual, esta acción se implementa así: private void button3_click(object sender, System.EventArgs e) { Form_CrearEmpresa F = new Form_CrearEmpresa(conect, empresas, asientos, operaciones, librosdiarios, estados, this); F.Show(); this.hide(); } Cuando se instancia un nuevo formulario se le pasan los argumentos que vaya a necesitar. En este caso son los arrays con los códigos, la instancia de Conexión denominada conect y un argumento que se llama this y que se refiere al formulario actual, que es el de Menú principal. Este argumento se pasa ya que, si se cierra el formulario de Menú principal, se cerraría la aplicación entera debido a que es el formulario sobre el que se lanza la aplicación. Con el fin de no tener varios procesos inactivos de menús principales no visibles se ha decidido pasar el primero como argumento, ya que en caso de que la aplicación requiera volver a mostrar el menú principal, simplemente éste se hará visible otra vez sin tener que volver a crear otra instancia de formulario de Menú principal. En caso de que la nueva ventana se abra y la actual no se cierre, se implementa así: Ayuda_Form F = new Ayuda_Form(); F.Show(); 68

78 Acerca De Este formulario está programado enteramente con el diseñador de.net y es muy sencillo por lo que no requiere más comentarios Añadir Asiento Este formulario permite definir la fecha y las operaciones de un asiento y crearlo en la base de datos. Además de manipular la variable conect (que es instancia de Conexión ) utiliza una instancia de DataSet2 con el fin de poder mostrar las operaciones del haber en un datagrid y las operaciones del debe en otro datagrid. Para que el usuario pueda introducir la fecha del asiento se usa una instancia de DateTimePicker que muestra un calendario sobre el que el usuario puede seleccionar la fecha. No se permitirá crear un asiento cuya fecha pertenezca a un año diferente al del libro diario. También con el diseñador de.net se han añadido menús y submenús al formulario cuyo funcionamiento es bastante sencillo. A continuación se muestra el código del constructor del formulario: public Form_AñadirAsiento(Operación _conect,int[] _empresas, int[] _asientos, int[] _operaciones, int[] _librosdiarios, int[] _estados, LibroDiario _ld, Form_MenuPrincipal _Fprincipal) { InitializeComponent(); asientos = _asientos; operaciones = _operaciones; conect = _conect; librosdiarios = _librosdiarios; estados= _estados; ld = _ld; 69

79 Fprincipal = _Fprincipal; empresas = _empresas; nuevo_asiento(); ajusteinicial(); ajustardatagrids(); botonesborrado(); } En primer lugar, se ha llamado al método InitializeComponent, que se encarga se generar (con sus respectivos ajustes) todos los elementos del formulario. Después se guardan los argumentos de entrada en variables del formulario. Después se llama al método nuevo_asiento, que busca un código válido para el asiento que se va a crear. El método ajusteinicial se encarga se dar ciertos valores a propiedades de elementos del formulario. El método ajustardatagrids sirve para definir la apariencia de las columnas de datos en los datagrids. El método botonesborrado deshabilita los botones de borrar operaciones cuando no hay operaciones existentes como en caso inicial. Se muestra el código de ajusteinicial : public void ajusteinicial() { rb_exp1.checked=false; rb_exp2.checked=true; rb_exp3.checked=false; rb_exp4.checked=true; combobox1.enabled=false; checkbox1.checked=false; combobox2.enabled=false; checkbox2.checked=false; textbox5.enabled=false; textbox1.enabled=false; this.datetimepicker1.value = Convert.ToDateTime( 01/01/ + ld.getaño()); String nombre = ; foreach(datarow d in conect.data.tables[ Empresas ].Rows) { if(convert.toint32(d[ CodigoEmpresa ]) ==ld.getn_empresa()) { nombre = Convert.ToString(d[ Nombre ]); break; 70

80 } } } String st = Generando nuevo asiento para el año + ld.getaño() + de la empresa + nombre; label9.text = st; Se puede ver cómo se habilitan o deshabilitan diversos elementos del formulario. Se establece la fecha por defecto para el DateTimePicker y se muestra una etiqueta con el año de la empresa y del libro diario al que pertenece el asiento. Se muestra el código de ajustardatagrids : private void ajustardatagrids() { DataGridTableStyle ts1 = new DataGridTableStyle(); ts1.mappingname= Operaciones ; datagrid1.tablestyles.clear(); DataGridColumnStyle Col1=new DataGridTextBoxColumn(); Col1.MappingName= NºCuenta ; Col1.HeaderText= NºCuenta ; Col1.Width=100; ts1.gridcolumnstyles.add(col1); DataGridColumnStyle Col2=new DataGridTextBoxColumn(); Col2.MappingName= Valor ; Col2.HeaderText= Valor ; Col2.Width=100; ts1.gridcolumnstyles.add(col2); DataGridColumnStyle Col3=new DataGridTextBoxColumn(); Col3.MappingName= Explicacion ; Col3.HeaderText= Explicación ; Col3.Width=480; ts1.gridcolumnstyles.add(col3); datagrid1.tablestyles.add(ts1); ts1.datagrid.update(); } (se hace lo mismo para el segundo datagrid) La clase DataGridTableStyle sirve para definir el estilo y apariencia de las columnas que van a salir en un datagrid. Así se define un DataGridColumnStyle para cada columna y se añaden al DataGridTableStyle. Así se puede especificar el nombre que 71

81 aparecerá en la cabecera de cada columna, el campo de la base de datos con el que se corresponde cada columna y el ancho de cada columna. A continuación se muestran las distintas partes del código que implementa el botón de añadir operación al debe. En primer lugar veremos los filtros que se hacen sobre el contenido de los campos a rellenar por el usuario: if ((t_numero.text== ) (t_valor.text== )) { MessageBox.Show(this, Necesita rellenar los campos de nº de cuenta y de valor del debe, Atención!, MessageBoxButtons.OK, MessageBoxIcon.Stop); } else { if((global.comprobarnumero(t_numero.text)==0) (Global.comprobarNumero(t_valor.Text)==0)) { MessageBox.Show(this, Los campos de nº de cuenta y de valor del debe deben ser valores numéricos, Atención!, MessageBoxButtons.OK, MessageBoxIcon.Stop); } else { ( ) Se han mostrado dos comprobaciones pero en realidad se realizan muchas más. Si los datos introducidos por el usuario no son válidos se muestra un mensaje de error al usuario y no se lleva a cabo la acción requerida por él. Un mensaje de error se muestra con MessageBox.Show(this, seguido del mensaje que se va a mostrar al usuario, la cabecera del mensaje, el tipo de botón que se muestra en el mensaje y el tipo de icono o imagen que se muestra en el mensaje. Las comprobaciones que se realizan una a una por este orden son: Que los campos de nº de cuenta y de valor del debe estén rellenos. Que los campos de nº de cuenta y de valor del debe sean valores numéricos. Que el número de cuenta introducido pertenezca al Plan General Contable. 72

82 Que el valor del debe introducido no sea una cantidad superior o igual a un billón. Que el valor del debe introducido no sea una cantidad negativa o nula. Que la explicación introducida no sea demasiado larga. Se permiten hasta 65 caracteres. Que el nº de cuenta introducido no coincida con el de una operación ya definida para ese mismo asiento. No tiene sentido que haya dos operaciones de la misma cuenta en el mismo asiento. Que no se introduzca una operación cuya explicación sea igual a la de los asientos de apertura o de cierre. Una vez que se han superado con éxito todos los filtros se pasa a generar la nueva operación en la base de datos. Lo primero es buscar un nuevo código para la operación: ind=0; repetido=1; while(repetido==1) { if(operaciones[ind]== 0) { operaciones[ind]= 1; repetido=0; } else { ind++; } } base de datos: Una vez que se tiene el nuevo código se pasa a guardar la nueva operación en la DataRow NuevaFila = conect.data.tables[ Operaciones ].NewRow(); NuevaFila[ Codigo_operacion ]=ind; NuevaFila[ Tipo ]= Debe ; NuevaFila[ Valor ]=t_valor.text; NuevaFila[ NºCuenta ]=t_numero.text; 73

83 NuevaFila[ Asiento ]=n_asiento; if(rb_exp1.checked==true) { NuevaFila[ Explicacion ]=textbox5.text; } else { NuevaFila[ Explicacion ]= No ; } conect.data.tables[ Operaciones ].Rows.Add(NuevaFila); Es posible que sea necesario añadir operación de IVA si el checkbox correspondiente está marcado: if(checkbox1.checked) { ind=0; repetido=1; while(repetido==1) { if(operaciones[ind]== 0) { operaciones[ind]= 1; repetido=0; } else { ind++; } } NuevaFila = conect.data.tables[ Operaciones ].NewRow(); NuevaFila[ Codigo_operacion ]=ind; NuevaFila[ Tipo ]= Debe ; double valoriva; if(combobox1.text.equals( IVA: 4% )) { valoriva=convert.todouble(t_valor.text)* 0.04; } else { if(combobox1.text.equals( IVA: 7% )) { valoriva=convert.todouble(t_valor.text)* 0.07; } else { valoriva=convert.todouble(t_valor.text)* 0.16; } } NuevaFila[ NºCuenta ]= 472 ; NuevaFila[ Asiento ]=n_asiento; double valoriva2=buscariva( Debe ); 74

84 Ahora hay que ver si había operaciones de IVA existentes previamente; para ello se usa la función buscariva que recorre las operaciones buscando alguna que pertenezca a la cuenta 472. Si es así borra esa operación y devuelve el valor de IVA en la operación borrada. Si no encuentra ningún IVA anterior devuelve un 0: if(valoriva2>0) { NuevaFila[ Explicacion ]= IVA sobre varias cuentas ; NuevaFila[ Valor ]= valoriva + valoriva2; } else { NuevaFila[ Explicacion ]= IVA sobre cuenta + t_numero.text; NuevaFila[ Valor ]= valoriva; } conect.data.tables[ Operaciones ].Rows.Add(NuevaFila); } conect.a_operaciones.update(conect.data, Operaciones ); conect.data.acceptchanges(); Una vez que se ha registrado la operación en la base de datos sólo queda actualizar el datagrid para que la muestre por pantalla. Esto se hace mediante un sentencia Select (SQL), que selecciona sólo las operaciones del Debe del asiento que se está creando. Para rellenar el datagrid con la nueva información se borra completamente con Clear y se vuelve a llenar de datos con Fill. Por último se utiliza el método Refresh del datagrid para que muestre las operaciones actualizadas: string selectsql = SELECT NºCuenta, Valor, Explicacion FROM Operaciones WHERE (Asiento =?) AND (Tipo =?) ; selectcmd = new OleDbCommand(selectSQL, oledbconnection1); this.oledbdataadapter1.selectcommand = selectcmd; OleDbType.VarChar, 15).Value = n_asiento; OleDbType.VarChar, 15).Value = Debe ; dataset21.clear(); oledbdataadapter1.fill(dataset21); this.datagrid1.refresh(); Otras funcionalidades del código de este formulario se aclararán al explicar funciones análogas de otros formularios. Si no se confirma finalmente la creación del 75

85 asiento, todas las operaciones pertenecientes a este asiento provisional, que se ha ido creando en el formulario, serán eliminadas. Si la suma de las operaciones de debe del asiento no es igual a la suma de las operaciones de haber del asiento, o si no existen operaciones, entonces no se permitirá que el asiento sea creado Ayuda En este formulario se presentan los distintos contenidos de ayuda. Consiste en incorporar una serie de pestañas ( TabControl ) al formulario y en cada una de ellas colocar un RichTextBox. Sobre cada RTF se carga un documento de ayuda de la siguiente forma: OpenFileDialog openfile1 = new OpenFileDialog(); openfile1.defaultext = *.rtf ; openfile1.filter = RTF Files *.rtf ; try { openfile1.filename=.\\archivos_aplicación\\parte1.rtf ; richtextbox1.loadfile(openfile1.filename, RichTextBoxStreamType.PlainText); } catch(system.io.filenotfoundexception fne) { MessageBox.Show(this, Error al cargar los archivos de ayuda. Asegúrese de que se encuentran en la carpeta \ Archivos_aplicación\., Imposible abrir pantalla de ayuda, MessageBoxButtons.OK, MessageBoxIcon.Error); this.close(); } La clase OpenFileDialog permite abrir un archivo de texto. Con sus propiedades de Filter y de DefaultExt se indica que se abrirá un archivo de tipo y extensión.rtf. Con la propiedad FileName se especifica el nombre y directorio del archivo que se va a cargar. Si el archivo no se encuentra en el directorio especificado o no tiene el nombre 76

86 indicado saltará un excepción que es controlada mediante un catch, lanzando un mensaje de error al usuario y cerrando el formulario Balance de sumas y saldos Recibe un array con todas las operaciones del libro diario (array_filas) y otro array con todas las cuentas que tienen alguna operación (array_cuentas). Muestra el balance de sumas y saldos provisional de un libro diario. Para ello cuenta con un datagrid que obtiene sus datos del siguiente método: private void cargardatagrid() { total_debe=0; total_haber=0; total_deudor=0; total_acreedor=0; for(int j=0; j < array_cuentas.length; j++) { saldo_debe=0; saldo_haber=0; for(int i=0; < array_filas.length; i++) { if(convert.todouble(array_filas[i][ NºCuenta ])== array_cuentas[j]) { if(convert.todouble(array_filas[i][ Debe ])>0) { saldo_debe = saldo_debe + Convert.ToDouble(array_filas[i][ Debe ]); } if(convert.todouble(array_filas[i][ Haber ])>0) { saldo_haber = saldo_haber + Convert.ToDouble(array_filas[i][ Haber ]); } } } DataRow NuevaFila = dataset51.tables[ Saldos ].NewRow(); NuevaFila[ NombreCuenta ] =Global.getInfoCuenta(array_cuentas[j])[0]; NuevaFila[ NºCuenta ]=array_cuentas[j]; NuevaFila[ Debe ]=saldo_debe; NuevaFila[ Haber ]=saldo_haber; total_debe = total_debe + saldo_debe; total_haber = total_haber + saldo_haber; 77

87 } if(saldo_debe>saldo_haber) { NuevaFila[ Deudor ]=saldo_debe saldo_haber; NuevaFila[ Acreedor ]= 0; total_deudor = total_deudor + (saldo_debe saldo_haber); } else { NuevaFila[ Deudor ]= 0; NuevaFila[ Acreedor ]= saldo_haber saldo_debe; total_acreedor = total_acreedor + (saldo_haber saldo_debe); } dataset51.tables[ Saldos ].Rows.Add(NuevaFila); } label2.text = Convert.ToString(total_debe); label3.text = Convert.ToString(total_haber); label4.text = Convert.ToString(total_deudor); label5.text = Convert.ToString(total_acreedor); El datagrid donde se muestran los datos tiene su origen de datos en un DataSet5, al que se van añadiendo sus filas una a una (sin utilizar una sentencia SQL). Se van recorriendo todas las filas del array_filas y para cada cuenta del array_cuentas se va llevando la cuenta del saldo del debe, del haber, el acreedor y el deudor. Finalmente se muestra en unas etiquetas el valor de los totales. Para deshabilitar el botón de cierre de la ventana utilizando la clase CloseButton se utiliza el siguiente código: private void BalanceSaldos_Form_Load(object sender,system.eventargs e) { CloseButton.Disable(this); } Ficha de la Empresa Tiene dos constructores. El primero de ello se utiliza en caso de que se vaya a crear una empresa. El segundo se utiliza cuando se van a modificar los datos de una empresa ya 78

88 existente. En este caso recibe como argumento de entrada una instancia de Empresa que hace referencia a la empresa que se ha de modificar. Si se quiere crear una empresa nueva, los campos de la empresa se mostrarán vacíos y será el usuario el encargado de rellenarlos. Si, después, el usuario pulsa el botón de Aceptar y los datos de entrada son correctos, la nueva empresa se creará como una nueva entrada de la tabla Empresas en la base de datos. Si se está modificando una empresa, al cargar el formulario se mostrará en los campos de la empresa los datos existentes de la empresa. Si el usuario pulsa el botón de Aceptar y los datos son correctos (la aplicación hace los filtros de entrada pertinentes) se modificarán los datos de la empresa. El código necesario para modificación de una empresa en la base de datos es: d1.beginedit(); d1[ CodigoEmpresa ]=empresa_a_modificar.getcodigo(); d1[ Nombre ]=t_nombre.text + cb_tipo.text; d1[ Creador ]=t_creador.text; d1[ Inicio ]=cb_año.text; d1.endedit(); conect.a_empresas.update(conect.data, Empresas ); conect.data.acceptchanges(); Donde d1 es la fila que representa a la empresa en la tabla Empresas de la base de datos. Un caso excepcional y que requiere gran cantidad de operaciones es cuando una empresa cambia de año de inicio. Es ese caso, si el nuevo año de inicio es menor hay que crear nuevos libros diarios desde el nuevo año de inicio hasta el anterior. Esto se debe a que desde el primer libro diario de una empresa hasta el último deben existir los libros diarios referentes a todos los años. Si el nuevo año de inicio es posterior, hay que borrar aquellos libros diarios que son anteriores a la nueva fecha de inicio. 79

89 Empresas Existentes Este formulario muestra las empresas existentes en un datagrid que carga la tabla de Empresas del DataSet1 utilizado en conect pero con la novedad de que el campo del código de la empresa no se muestra ya que a esa columna se le ha dado un valor de 0 para definir la anchura de la columna, por lo que no se ve. Por lo demás, este formulario, no incorpora conceptos de programación que no se hayan visto ya en otros formularios ya analizados Evolución del libro diario Muestra todos los asientos de un libro diario. Por cada asiento se ven todas sus operaciones. Un concepto importante de este formulario es que utiliza dos DataSet3. Uno de ellos lo utiliza para cargar las operaciones del haber de todos los asientos y otro lo utiliza para cargar todas las operaciones del debe de todos los asientos. A continuación fusiona estos dos DataSet3 en el primero de ellos. Para realizar esto cargamos el primer DataSet con la siguiente sentencia SQL: SELECT Operaciones.Codigo_operacion AS Codigo_operacion, Asientos.NumeroAsiento AS Asiento, Asientos.Fecha AS Fecha, 0 AS NombreCuenta, Operaciones.NºCuenta AS NºCuenta, Operaciones.Valor AS Debe, 0 AS Haber, Operaciones.Explicacion AS Explicacion FROM (Asientos INNER JOIN Operaciones ON Asientos.NumeroAsiento = Operaciones.Asiento) WHERE (Operaciones.Tipo = Debe ) AND (Asientos.LibroDiario = ) ORDER BY Operaciones.Asiento, Asientos.Fecha El segundo DataSet se carga con esta otra sentencia SQL: SELECT Operaciones.Codigo_operacion AS Codigo_operacion, Asientos.NumeroAsiento AS Asiento, Asientos.Fecha AS Fecha,0 AS NombreCuenta, Operaciones.NºCuenta AS NºCuenta, 0 AS Debe, Operaciones.Valor AS Haber, Operaciones.Explicacion AS Explicacion FROM 80

90 (Asientos INNER JOIN Operaciones ON Asientos.NumeroAsiento = Operaciones.Asiento) WHERE (Operaciones.Tipo = Haber ) AND (Asientos.LibroDiario = ) ORDER BY Operaciones.Asiento, Asientos.Fecha Para juntarlos sobre el primero se utiliza: dataset31.merge(dataset32, true); Otro aspecto Nuevo que introduce este formulario es cómo rellenar la lista de cuentas del ComboBox. Para ello hay que recorrer todas las operaciones, llevar la cuenta de las operaciones que intervienen y añadirlas como elementos del ComboBox. El método que se ha implementado para realizar esto es el siguiente: private void cargarcuentas() { cuentas_saldos = new int[8000]; n_cuentas = 0; darray=dataset31.tables[ Asientos ].Select(null, NºCuenta, DataViewRowState.CurrentRows); for (int i=0; i< darray.length; i++) { if (cuentas_saldos[convert.toint16(darray[i][ NºCuenta ])] ==0) { combobox1.items.add(darray[i][ NºCuenta ]); cuentas_saldos[convert.toint32(darray[i][ NºCuenta ])] =1; n_cuentas++; } } } Libros Diarios En este formulario se muestran todos los libros diarios de una empresa. Para cargar los libros diarios se utiliza un DataSet6 y sobre el libro diario seleccionado por el usuario se le permite al usuario realizar diferentes opciones. Para cargar el DataSet6 se utiliza una sentencia SQL que se puede ver en el código utilizado: 81

91 string selectsql = SELECT Año, CodigoLibrodiario, Empresa FROM LibrosDiarios WHERE (Empresa = ) ORDER BY Año ; selectcmd = new OleDbCommand(selectSQL, oledbconnection1); this.oledbdataadapter1.selectcommand = selectcmd; OleDbType.VarChar, 15).Value = emp.getcodigo(); this.oledbdataadapter1.fill(dataset61); this.datagrid1.refresh(); Cabe destacar que al pulsar el botón de Cambiar Año cambia el tamaño del formulario y se pueden visualizar nuevos elementos en la parte inferior de la pantalla que permiten al usuario meter el nuevo año para el libro diario. Esto se consigue cambiando simplemente la altura del formulario hasta que se puedan ver los nuevos elementos (que antes quedaban fuera del tamaño del formulario): this.height = 464; Resumen Anual Genera un documento con el resumen anual de la empresa y lo carga sobre un RichTextBox que lo muestra por pantalla. Lo complicado es la generación del documento, ya que hay que escribir carácter a carácter todo el resumen anual cuidando el espaciado y la tabulación. De hecho es necesario realizar dos documentos. El primero de ellos ajusta su espaciado y tabulaciones a un documento que será visualizado en Word. El segundo de ellos se preparará para que pueda ser visualizado por pantalla con la aplicación. Las diferencias están, por ejemplo, en que en Word un carácter se corresponde en longitud con un espacio, mientras que en RTF mostrado por pantalla un carácter se corresponde con casi 2 espacios. Hubiera sido mucho más fácil poder cargar en la pantalla de la aplicación un archivo Word, pero la tecnología disponible no lo ha permitido. 82

92 Lo primero, antes de empezar a escribir en el documento, es crear un nuevo documento con el nombre adecuado. El nombre del archivo para Word estará formado por el de la empresa concatenado con el del creador y con el del año del libro diario, con extensión rtf. Si ya existe en la carpeta un archivo con el mismo nombre, se le añadirá un (1) al final, si ya existe así entonces un (2) y así sucesivamente hasta llegar a diez, en cuyo caso se sobrescribe el documento existente indicándoselo al usuario. El nombre del archivo RTF que se carga en pantalla será temporal (dado que no está pensado para ser usado por el usuario en otra aplicación). El código de la elección de nombres es el siguiente: string nombre_sin_comprobar =.\\ + d[ Nombre ]+ - + d[ Creador ] ld.getaño(); bool repe = true; int n_veces=0; do { if((repe==true)&&(n_veces>0)) { if(n_veces>1) { char[] c = nombre_sin_comprobar.tochararray (); c[nombre_sin_comprobar.length-2]=(char)(n_veces +48); string s=new string(c); nombre_sin_comprobar=s; } else { nombre_sin_comprobar = nombre_sin_comprobar + ( + n_veces + ) ; } } try { if(n_veces<10) { OpenFileDialog openfile1 = new OpenFileDialog(); openfile1.defaultext = *.rtf ; openfile1.filter = RTF Files *.rtf ; openfile1.filename=(nombre_sin_comprobar +.rtf ); this.richtextbox1.loadfile(openfile1.filename, RichTextBoxStreamType.PlainText); } } catch(ioexception e) 83

93 { repe = false; } n_veces++; }while((repe == true)&&(n_veces<10)); if(n_veces>9) { MessageBox.Show(this, No puede tener más de 10 documentos para el mismo libro diario. El nuevo libro diario se sobreescribirá sobre el primero de todos, Atención!, MessageBoxButtons.OK, MessageBoxIcon.Stop); nombre_sin_comprobar =.\\ + d[ Nombre ]+ - + d[ Creador ] ld.getaño(); } nombre = nombre_sin_comprobar+.rtf ; nombre2 =.\\temporal ; break; Una vez abiertos los documentos se realizará la escritura sobre ellos. Es un proceso lento y que requiere muchas líneas de código. Un esquema del funcionamiento sería: Se escriben las cabeceras del Libro diario Se escribe el asiento de apertura con su correspondiente etiqueta de Apertura de balance. Se escriben todos los asientos normales. Se escribe el valor parcial de la suma del debe y de la suma del haber. Se escribe el primer asiento de cierre de cuentas temporales con su correspondiente etiqueta de Cierre de cuentas temporales (p y g) al haber. Se escribe el segundo asiento de cierre de cuentas temporales con su correspondiente etiqueta de Cierre de cuentas temporales (p y g) al debe. Se vuelve a escribir el valor parcial de la suma del debe y de la suma del haber. Se escribe el asiento de cierre de cuentas permanente con su correspondiente etiqueta de Cierre de cuentas temporales. 84

94 Se escribe el valor final de la suma del debe y de la suma del haber. Se escribe la cabecera del libro mayor. Para cada cuenta se escribe una cabecera con el número y nombre de la cuenta y, a continuación, todas las cantidades de las operaciones en las que interviene dicha cuenta, con una referencia al asiento al que pertenecen. Las cantidades del debe irán a la izquierda y las del haber a la derecha. Se escribe el balance de comprobación antes de cierre de cuentas de pérdidas y ganancias (con su cabecera). Es el balance de sumas y saldos. No se contabilizan las operaciones de ningún asiento de cierre. Se escribe el balance de comprobación después del cierre de cuentas de pérdidas y ganancias (con su cabecera). Es el balance de sumas y saldos. Se contabilizan los asientos de cierre de cuentas temporales, pero no el de cierre de cuentas permanente. Todo este proceso se realiza primero para el documento que se prepara para Word y luego se repite para el documento que se prepara para ser cargado en el RichTextBox del formulario. A lo largo de la impresión se tienen en cuenta la longitud de las palabras y de los números para igualar todas las filas con espacios y tabulaciones donde es necesario. Para ello se utilizan una serie de métodos que en función de la longitud de una palabra o un número escriben espacios o tabulaciones en diferentes partes del documento. 85

95 Saldo de una Cuenta Muestra todas las operaciones de un libro diario en las que interviene una determinada cuenta. Utiliza una DataSet3 pero no muestra todas las columnas (se ayuda de anchos de columnas nulos). Filtra que sólo se muestren las operaciones de la cuenta seleccionada y va llevando la cuenta de las sumas del haber y el debe para, al final, mostrarlas en la parte inferior del formulario junto con el saldo final de la cuenta (especificando si es acreedor a deudor) Situación inicial de la empresa Muestra la situación inicial de la empresa. Para ello muestra los estados que afectan al Debe a la izquierda del formulario con un DataSet4 y los que afectan al Haber a la derecha del formulario con otro DataSet4. Realiza todos los filtros pertinentes para asegurarse que los datos introducidos por el usuario son correctos y que no se produzcan excepciones. No deja abandonar este formulario mientras la suma de los estados del Debe no sea igual a la suma de los estados del Haber. Con el fin de acceder a la base de datos para cargar la información en el DataSet4 se utiliza el siguiente código: string selectsql1 = SELECT CodigoEstado, NombreCuenta, Cantidad, NºCuenta FROM Estados WHERE (CodigoEmpresa = ) AND (Tipo =?) ; selectcmd1 = new OleDbCommand(selectSQL1, oledbconnection1); this.oledbdataadapter1.selectcommand = selectcmd1; OleDbType.VarChar, 15).Value = ld.getn_empresa(); OleDbType.VarChar, 15).Value = Debe ; dataset41.clear(); oledbdataadapter1.fill(dataset41); 86

96 this.datagrid1.refresh(); En este caso se han cargado los estados iniciales del Debe para la empresa que se está referenciando. Por eso es necesario incluir dos parámetros a la sentencia SQL utilizada Cuentas Este formulario carga un documento (que contiene todas las cuentas del Plan General Contable ordenadas por el código de cuenta) sobre un RichTextBox que muestra su contenido Cuentas2 Este formulario carga un documento (que contiene todas las cuentas del Plan General Contable ordenadas por orden alfabético) sobre un RichTextBox que muestra su contenido. 87

97 ANEXO A Introducción a la tecnología.net A finales del año 2000 Microsoft publicó los primeros documentos acerca de la tecnología.net en un intento de hacer frente al éxito que estaba teniendo el lenguaje Java impulsado por la compañía Sun. La idea de.net se parece bastante a la tecnología empleada con Java. Tanto.NET como Java compilan el código fuente a un código intermedio en vez de compilarlo directamente a código máquina. En Java el código intermedio es llamado bytecode y en.net recibe el nombre de CIL (Common Intermediate Language). Para ejecutar este código intermedio es necesario un entorno que lo interprete y así poder pasar al código máquina correspondiente al sistema/arquitectura donde se este ejecutando. De esta forma se consigue independencia del ejecutable en contraposición al tradicional compilado a código máquina, ya que este último solo podría ser utilizado en máquinas que soporten el mismo conjunto de instrucciones y en sistemas que conozcan el formato de ese ejecutable. Pero.NET va más allá, su objetivo no es sólo la independencia del compilado sino también la independencia del lenguaje de alto nivel, es decir, CIL ha sido especialmente diseñado para proporcionar todo lo necesario a la mayoría de lenguajes actuales. 88

98 1. Compatibilidad entre lenguajes Microsoft ha diseñado un lenguaje de programación que busca aprovechar toda la potencia del CIL. Este lenguaje es el C# (pronunciado C Sharp). Esto no impide que todo aquél que quiera formar parte de la plataforma.net construya un compilador de su lenguaje a código intermedio CIL. Esto proporciona por ejemplo la posibilidad de poder reutilizar clases programadas en lenguaje C# desde Visual Basic.NET de forma muy sencilla, cosa que hasta el momento sólo era posible mediante complejos mecanismos poco flexibles y que ahora es posible tener de forma nativa a la plataforma..net tiene definidos un Common Type System (CTS) con los tipos de datos soportados, los cuales son suficientes para cubrir cualquier lenguaje actual. Pero esto no es suficiente para garantizar la interoperabilidad entre lenguajes, porque por ejemplo imaginar que hay un lenguaje que soporta el tipo entero sin signo y otro que no, esto impediría la interoperabilidad entre ambos lenguajes. Por ese motivo también se ha definido el Common Language Specification (CLS), el cual es necesario que cumplan todos los lenguajes que quieran poder disfrutar de dicha interoperabilidad. Esta es una de las ventajas de.net con respecto a Java de Sun, ya que en ésta no es posible la compilación de cualquier lenguaje actual a bytecode. 2. Ventajas globales de.net Las ventajas globales que tiene.net son muy importantes: Independencia del sistema o arquitectura. Para todo sistema o arquitectura donde esté implementado un intérprete de código CIL se podrá ejecutar nuestro programa. 89

99 Independencia del lenguaje. Sería posible mezclar grupos de programadores expertos en diferentes lenguajes. Reutilización de código. Por ejemplo, seria posible utilizar código antiguo implementado en lenguaje Visual Basic.NET en otro proyecto actual que este trabajando con el lenguaje C#. A continuación se pasará a analizar la arquitectura de la plataforma.net y después se indicaran otras ventajas más específicas. 3. Arquitectura básica de la plataforma.net. Además de las ventajas ya mencionadas, la tecnología.net ofrece soluciones a los problemas de programación actuales, como son la administración de código o la programación para Internet. Para aprovechar al máximo las características de.net es necesario entender la arquitectura básica en la que está implementada esta tecnología. El Framework de.net es una infraestructura sobre la que se reúne todo un conjunto de lenguajes y servicios que simplifican enormemente el desarrollo de aplicaciones. Mediante esta herramienta se ofrece un entorno de ejecución altamente distribuido, que permite crear aplicaciones robustas y escalables. Los pilares fundamentales del entorno.net son tres: Lenguajes de compilación. Biblioteca de clases de.net. 90

100 CLR (Common Language Runtime). Actualmente, el Framework de.net es una plataforma no incluida en los diferentes sistemas operativos distribuidos por Microsoft, por lo que es necesaria su instalación previa a la ejecución de programas creados mediante.net. El Framework se puede descargar gratuitamente desde la web oficial de Microsoft (ver link de descarga en los recursos del final). Lenguajes de programación Como se ha comentado anteriormente,.net Framework soporta múltiples lenguajes de programación y, aunque cada lenguaje tiene sus características propias, es posible desarrollar cualquier tipo de aplicación con cualquiera de estos lenguajes. Existen más de 30 lenguajes adaptados a.net, desde los más conocidos como C#, Visual Basic o C++ hasta otros lenguajes menos conocidos como Perl o Cobol. 91

101 Common Language Runtime (CLR) Es el verdadero núcleo del Framework de.net, ya que es el entorno de ejecución en el que se cargan las aplicaciones desarrolladas en los distintos lenguajes, ampliando el conjunto de servicios que ofrece el sistema operativo estándar Win32. La herramienta de desarrollo compila el código fuente de cualquiera de los lenguajes soportados por.net en un mismo código, denominado código intermedio (MSIL, Microsoft Intermediate Lenguaje). Para generar dicho código el compilador se basa en el Common Language Specification (CLS) que determina las reglas necesarias para crear código MSIL compatible con el CLR. De esta forma, indistintamente de la herramienta de desarrollo utilizada y del lenguaje elegido, el código generado es siempre el mismo, ya que el MSIL es el único lenguaje que entiende directamente el CLR. Este código es transparente al desarrollo de la aplicación ya que lo genera automáticamente el compilador. Sin embargo, el código generado en MSIL no es código máquina y por tanto no puede ejecutarse directamente. Se necesita un segundo paso en el que una herramienta denominada compilador JIT (Just-In-Time) genera el código máquina real, que se ejecuta en la plataforma que tenga la computadora. De esta forma se consigue con.net cierta independencia de la plataforma, ya que cada plataforma puede tener su compilador JIT y crear su propio código máquina a partir del código MSIL. La compilación JIT se realiza por el CLR a medida que se invocan los métodos en el programa; el código ejecutable obtenido, se almacena en la memoria caché de la computadora, siendo recompilado sólo cuando se produce algún cambio en el código fuente. 92

102 Biblioteca de clases de.net Cuando se está programando una aplicación muchas veces se necesita realizar acciones como manipulación de archivos, acceso a datos, conocer el estado del sistema, implementar seguridad, etc. El Framework organiza toda la funcionalidad del sistema operativo en un espacio jerárquico de nombres. De esta forma a la hora de programar resulta bastante sencillo encontrar lo que se necesita. Para ello, el Framework posee un sistema de tipos universal, denominado Common Type System (CTS). Este sistema permite que el programador pueda interactuar los tipos que se incluyen en el propio Framework (biblioteca de clases de.net) con los creados por él mismo (clases). De esta forma se aprovechan las ventajas propias de la programación orientada a objetos, como la herencia de clases predefinidas para crear nuevas clases, o el polimorfismo de clases para modificar o ampliar funcionalidades de clases ya existentes. 93

103 La biblioteca de clases de.net Framework incluye, entre otros, tres componentes clave: ASP.NET para construir aplicaciones y servicios Web. Windows Forms para desarrollar interfaces de usuario. ADO.NET para conectar las aplicaciones a bases de datos. La forma de organizar la biblioteca de clases de.net dentro del código es a través de los espacios de nombres (namespaces), donde cada clase está organizada en espacios de nombres según su funcionalidad. Por ejemplo, para manejar ficheros se utiliza el espacio de nombres System.IO y, si lo que se quiere es obtener información de una fuente de datos, se utilizará el espacio de nombres System.Data. La principal ventaja de los espacios de nombres de.net es que de esta forma se tiene toda la bliblioteca de clases de.net centralizada bajo el mismo espacio de nombres (System). Además, desde cualquier lenguaje se usa la misma sintaxis de invocación, ya que a todos los lenguajes se aplica la misma biblioteca de clases. Ensamblados (o Assemblies) Uno de los mayores problemas de las aplicaciones actuales es que en muchos casos tienen que tratar con diferentes archivos binarios (DLL s), elementos de registro, conectividad abierta a bases de datos (ODBC), etc. Para solucionarlo el Framework de.net maneja un nuevo concepto denominado ensamblado. Los ensamblados son ficheros con forma de EXE o DLL que contienen toda 94

104 la funcionalidad de la aplicación de forma encapsulada. Por tanto la solución al problema puede ser tan fácil como copiar todos los ensamblados en el directorio de la aplicación. Con los ensamblados ya no es necesario registrar los componentes de la aplicación. Esto se debe a que los ensamblados almacenan dentro de sí mismos toda la información necesaria en lo que se denomina el manifiesto del ensamblado. El manifiesto recoge todos los métodos y propiedades en forma de meta-datos junto con otra información descriptiva, como permisos, dependencias, etc. Para gestionar el uso que hacen la aplicaciones de los ensamblados,.net utiliza la llamada caché global de ensamblados (GAC, Global Assembly Cache). Así,.Net Framework puede albergar en el GAC los ensamblados que puedan ser usados por varias aplicaciones e incluso distintas versiones de un mismo ensamblado, algo que no era posible con el anterior modelo COM. Ventajas e inconvenientes de la plataforma.net Se han indicado en un apartado anterior algunas de las ventajas globales que aporta.net. Ventajas más específicas que proporciona.net Framework: Código administrado: El CLR realiza un control automático del código para que este sea seguro, es decir, controla los recursos del sistema para que la aplicación se ejecute correctamente. Interoperabilidad multilenguaje: El código puede ser escrito en cualquier lenguaje compatible con.net, ya que siempre se compila en código intermedio (MSIL). 95

105 Compilación just-in-time: El compilador JIT incluido en el Framework compila el código intermedio (MSIL) generando el código máquina propio de la plataforma. Se aumenta así el rendimiento de la aplicación al ser específico para cada plataforma. Garbage collector: El CLR proporciona un sistema automático de administración de memoria denominado recolector de basura (garbage collector). El CLR detecta cuándo el programa deja de utilizar la memoria y la libera automáticamente. De esta forma el programador no tiene por qué liberar la memoria de forma explícita, aunque también sea posible hacerlo manualmente; (mediante el método disponse() liberamos el objeto para que el recolector de basura lo elimine de memoria). Seguridad de acceso al código: Se puede especificar que una pieza de código tenga permisos de lectura de archivos pero no de escritura. Es posible aplicar distintos niveles de seguridad al código, de forma que se puede ejecutar código procedente del Web sin tener que preocuparse por si esto va a estropear el sistema. Despliegue: Por medio de los ensamblados resulta mucho más fácil el desarrollo de aplicaciones distribuidas y el mantenimiento de las mismas. El Framework realiza esta tarea de forma automática mejorando el rendimiento y asegurando el funcionamiento correcto de todas las aplicaciones. Pero no todo son ventajas; procesos como la recolección de basura de.net o la administración de código introducen factores de sobrecarga que repercuten en la demanda de más requisitos del sistema. El código administrado proporciona una mayor velocidad de desarrollo y mayor seguridad de que el código sea bueno. En contrapartida el consumo de recursos durante la ejecución es mucho mayor, aunque con los procesadores actuales esto cada vez es menos inconveniente. El nivel de administración del código dependerá en gran 96

106 medida del lenguaje que se utilice para programar. Por ejemplo, mientras que Visual Basic.Net es un lenguaje totalmente administrado, C# permite la administración de código de forma manual, siendo por defecto también un lenguaje administrado, C++ es un lenguaje no administrado en el que se tiene un control mucho mayor del uso de la memoria que hace la aplicación. 4. Características de C# Una vez que se ha explicado la tecnología.net, se pasará a exponer las características de C# y su perfecta complicidad con.net. Origen y necesidad de un nuevo lenguaje Aunque es posible escribir código para la plataforma.net en muchos otros lenguajes, C# es el único que ha sido diseñado específicamente para ser utilizado en ella, por lo que programarla usando C# es mucho más sencillo e intuitivo que hacerlo con cualquiera de los otros lenguajes ya que C# carece de elementos heredados innecesarios en.net. Por esta razón, se suele decir que C# es el lenguaje nativo de.net. La sintaxis y estructuración de C# es muy similar a la C++, ya que la intención de Microsoft con C# es facilitar la migración de códigos escritos en estos lenguajes a C# y facilitar su aprendizaje a los desarrolladores habituados a ellos. Sin embargo, su sencillez y el alto nivel de productividad son equiparables a los de Visual Basic. Un lenguaje que hubiese sido ideal utilizar para estos menesteres es Java, pero debido a problemas con la empresa creadora del mismo Sun-, Microsoft ha tenido que 97

107 desarrollar un nuevo lenguaje que añadiese a las ya probadas virtudes de Java las modificaciones que Microsoft tenía pensado añadirle para mejorarlo aún más y convertirlo en un lenguaje orientado al desarrollo de componentes. En resumen, C# es un lenguaje de programación que toma las mejores características de lenguajes preexistentes como Visual Basic, Java o C++ y las combina en uno solo. El hecho de ser relativamente reciente no implica que sea inmaduro, pues Microsoft ha escrito la mayor parte de la BCL usándolo, por lo que su compilador es el más depurado y optimizado de los incluidos en el.net Framework SDK. Características de C# Se van a exponer de manera resumida las principales características de C#. Algunas de las características aquí señaladas no son exactamente propias del lenguaje sino de la plataforma.net en general. Sin embargo, también se comentan aquí en tanto que tienen repercusión directa en el lenguaje, aunque se indicará explícitamente cuáles son este tipo de características cada vez que se toquen: Sencillez: C# elimina muchos elementos que otros lenguajes incluyen y que son innecesarios en.net. Por ejemplo: o El código escrito en C# es autocontenido, lo que significa que no necesita de ficheros adicionales al propio fuente. o El tamaño de los tipos de datos básicos es fijo e independiente del compilador, sistema operativo o máquina para quienes se compile (no como en C++), lo que facilita la portabilidad del código. 98

108 o No se incluyen elementos poco útiles de lenguajes como C++, tales como macros, herencia múltiple o la necesidad de un operador diferente del punto (.) para acceder a miembros de espacios de nombres (::) Modernidad: C# incorpora en el propio lenguaje elementos que a lo largo de los años ha ido demostrándose son muy útiles para el desarrollo de aplicaciones y que en otros lenguajes como Java o C++ hay que simular, como son: un tipo básico decimal que permita realizar operaciones de alta precisión con reales de 128 bits (muy útil en el mundo financiero), la inclusión de una instrucción foreach que permite recorrer colecciones con facilidad y es ampliable a tipos definidos por el usuario, la inclusión de un tipo básico string para representar cadenas o la distinción de un tipo bool específico para representar valores lógicos. Orientación a objetos: Como todo lenguaje de programación de propósito general actual, C# es un lenguaje orientado a objetos, aunque eso es más bien una característica del CTS que de C#. Una diferencia de este enfoque orientado a objetos respecto al de otros lenguajes como C++ es que el de C# es más puro en tanto que no admite ni funciones ni variables globales sino que todo el código y datos han de definirse dentro de definiciones de tipos de datos, lo que reduce problemas por conflictos de nombres y facilita la legibilidad del código. C# soporta todas las características propias del paradigma de programación orientada a objetos: encapsulación, herencia y polimorfismo. En lo referente a la encapsulación es importante señalar que aparte de los típicos modificadores public, private y protected, C# añade un cuarto modificador llamado internal, que puede combinarse con protected e indica que al elemento a cuya definición precede sólo puede accederse desde su mismo ensamblado. 99

109 Respecto a la herencia a diferencia de C++ y al igual que Java- C# sólo admite herencia simple de clases ya que la múltiple provoca más quebraderos de cabeza que facilidades y en la mayoría de los casos su utilidad puede ser simulada con facilidad mediante herencia múltiple de interfaces. De todos modos, esto vuelve a ser más bien una característica propia del CTS que de C#. Por otro lado y a diferencia de Java, en C# se ha optado por hacer que todos los métodos sean por defecto sellados y que los redefinibles hayan de marcarse con el modificador virtual (como en C++), lo que permite evitar errores derivados de redefiniciones accidentales. Además, un efecto secundario de esto es que las llamadas a los métodos serán más eficientes por defecto al no tenerse que buscar en la tabla de funciones virtuales la implementación de los mismos a la que se ha de llamar. Otro efecto secundario es que permite que las llamadas a los métodos virtuales se puedan hacer más eficientemente al contribuir a que el tamaño de dicha tabla se reduzca. Orientación a componentes: La propia sintaxis de C# incluye elementos propios del diseño de componentes que otros lenguajes tienen que simular mediante construcciones más o menos complejas. Es decir, la sintaxis de C# permite definir cómodamente propiedades (similares a campos de acceso controlado), eventos (asociación controlada de funciones de respuesta a notificaciones) o atributos (información sobre un tipo o sus miembros) Gestión automática de memoria: Como ya se comentó, todo lenguaje de.net tiene a su disposición el recolector de basura del CLR. Esto tiene el efecto en el lenguaje de que no es necesario incluir instrucciones de destrucción de objetos. Sin embargo, dado que la destrucción de los objetos a través del recolector de basura es 100

110 indeterminista y sólo se realiza cuando éste se active ya sea por falta de memoria, finalización de la aplicación o solicitud explícita en el fuente-, C# también proporciona un mecanismo de liberación de recursos determinista a través de la instrucción using. Seguridad de tipos: C# incluye mecanismos que permiten asegurar que los accesos a tipos de datos siempre se realicen correctamente, lo que permite evitar que se produzcan errores difíciles de detectar por acceso a memoria no perteneciente a ningún objeto y es especialmente necesario en un entorno gestionado por un recolector de basura. Para ello se toman medidas del tipo: o Sólo se admiten conversiones entre tipos compatibles. Esto es, entre un tipo y antecesores suyos, entre tipos para los que explícitamente se haya definido un operador de conversión, y entre un tipo y un tipo hijo suyo del que un objeto del primero almacenase una referencia del segundo (downcasting) Obviamente, lo último sólo puede comprobarlo en tiempo de ejecución el CLR y no el compilador, por lo que en realidad el CLR y el compilador colaboran para asegurar la corrección de las conversiones. o No se pueden usar variables no inicializadas. El compilador da a los campos un valor por defecto consistente en ponerlos a cero y controla mediante análisis del flujo de control del fuente que no se lea ninguna variable local sin que se le haya asignado previamente algún valor. o Se comprueba que todo acceso a los elementos de una tabla se realice con índices que se encuentren dentro del rango de la misma. o Se puede controlar la producción de desbordamientos en operaciones aritméticas, informándose de ello con una excepción cuando ocurra. Sin 101

111 embargo, para conseguirse un mayor rendimiento en la aritmética estas comprobaciones no se hacen por defecto al operar con variables sino sólo con constantes (se pueden detectar en tiempo de compilación) o A diferencia de Java, C# incluye delegados, que son similares a los punteros a funciones de C++ pero siguen un enfoque orientado a objetos, pueden almacenar referencias a varios métodos simultáneamente, y se comprueba que los métodos a los que apunten tengan parámetros y valor de retorno del tipo indicado al definirlos. o Pueden definirse métodos que admitan un número indefinido de parámetros de un cierto tipo y a diferencia lenguajes como C/C++, en C# siempre se comprueba que los valores que se les pase en cada llamada sean de los tipos apropiados. Instrucciones seguras: Para evitar errores muy comunes, en C# se han impuesto una serie de restricciones en el uso de las instrucciones de control más comunes. Por ejemplo, la guarda de toda condición ha de ser una expresión condicional y no aritmética, con lo que se evitan errores por confusión del operador de igualdad (==) con el de asignación (=); y todo caso de un switch ha de terminar en un break o goto, que indique cuál es la siguiente acción a realizar, lo que evita la ejecución accidental de casos y facilita su reordenación. Sistema de tipos unificado: A diferencia de C++, en C# todos los tipos de datos que se definan siempre derivarán, aunque sea de manera implícita, de una clase base común llamada System.Object, por lo que dispondrán de todos los miembros definidos en esta clase (es decir, serán objetos ) 102

112 A diferencia de Java, en C# esto también es aplicable a los tipos de datos básicos Además, para conseguir que ello no tenga una repercusión negativa en su nivel de rendimiento, se ha incluido un mecanismo transparente de boxing y unboxing con el que se consigue que sólo sean tratados como objetos cuando la situación lo requiera, y mientras tanto puede aplicárseles optimizaciones específicas. El hecho de que todos los tipos del lenguaje deriven de una clase común facilita enormemente el diseño de colecciones genéricas que puedan almacenar objetos de cualquier tipo. Extensibilidad de tipos básicos: C# permite definir, a través de estructuras, tipos de datos para los que se apliquen las mismas optimizaciones que para los tipos de datos básicos. Es decir, que se puedan almacenar directamente en pila (luego su creación, destrucción y acceso serán más rápidos) y se asignen por valor y no por referencia. Para conseguir que lo último no tenga efectos negativos al pasar estructuras como parámetros de métodos, se da la posibilidad de pasar referencias a pila a través del modificador de parámetro ref. Extensibilidad de operadores: Para facilitar la legibilidad del código y conseguir que los nuevos tipos de datos básicos que se definan a través de las estructuras estén al mismo nivel que los básicos predefinidos en el lenguaje, al igual que C++ y a diferencia de Java, C# permite redefinir el significado de la mayoría de los operadores incluidos los de conversión, tanto para conversiones implícitas como explícitas- cuando se apliquen a diferentes tipos de objetos. Las redefiniciones de operadores se hacen de manera inteligente, de modo que, a partir de una única definición de los operadores ++ y --, el compilador puede deducir automáticamente cómo ejecutarlos de manera prefija y postfija; definiendo 103

113 operadores simples (como +), el compilador deduce cómo aplicar su versión de asignación compuesta (+=). Además, para asegurar la consistencia, el compilador vigila que los operadores con opuesto siempre se redefinan por parejas (por ejemplo, si se redefine ==, también hay que redefinir =). También se da la posibilidad, a través del concepto de indizador, de redefinir el significado del operador [] para los tipos de dato definidos por el usuario, con lo que se consigue que se pueda acceder al mismo como si fuese una tabla. Esto es muy útil para trabajar con tipos que actúen como colecciones de objetos. Extensibilidad de modificadores: C# ofrece, a través del concepto de atributos, la posibilidad de añadir, a los metadatos del módulo resultante de la compilación de cualquier fuente información, adicional a la generada por el compilador, que luego podrá ser consultada en tiempo ejecución a través de la librería de reflexión de.net. Esto, que más bien es una característica propia de la plataforma.net y no de C#, puede usarse como un mecanismo para definir nuevos modificadores. Versionable: C# incluye una política de versionado que permite crear nuevas versiones de tipos sin temor a que la introducción de nuevos miembros provoque errores difíciles de detectar en tipos hijos previamente desarrollados y ya extendidos con miembros de igual nombre a los recién introducidos. Si una clase introduce un nuevo método, cuyas redefiniciones deban seguir la regla de llamar a la versión de su padre en algún punto de su código, difícilmente seguirían esta regla miembros de su misma signatura definidos en clases hijas previamente a la definición del mismo en la clase padre; o si introduce un nuevo campo con el mismo nombre que algún método de una clase hija, la clase hija dejará de funcionar. Para evitar que esto ocurra, en C# se toman dos medidas: 104

114 o Se obliga a que toda redefinición deba incluir el modificador override, con lo que la versión de la clase hija nunca sería considerada como una redefinición de la versión de miembro en la clase padre, ya que no incluiría override. Para evitar que por accidente un programador incluya este modificador, sólo se permite incluirlo en miembros que tengan la misma signatura que miembros marcados como redefinibles mediante el modificador virtual. Así, además se evita el error tan frecuente en Java de creerse haber redefinido un miembro, pues si el miembro con override no existe en la clase padre se producirá un error de compilación. o Si no se considera redefinición, entonces se considera que lo que se desea es ocultar el método de la clase padre, de modo que para la clase hija sea como si nunca hubiese existido. El compilador avisará de esta decisión a través de un mensaje de aviso que puede suprimirse incluyendo el modificador new en la definición del miembro en la clase hija para así indicarle explícitamente la intención de ocultación. Eficiente: En principio, en C# todo el código incluye numerosas restricciones para asegurar su seguridad y no permite el uso de punteros. Sin embargo, y a diferencia de Java, en C# es posible saltarse dichas restricciones manipulando objetos a través de punteros. Para ello basta marcar regiones de código como inseguras (modificador unsafe) y podrán usarse en ellas punteros de forma similar a cómo se hace en C++, lo que puede resultar vital para situaciones donde se necesite una eficiencia y velocidad de procesamiento muy grandes. Compatible: Para facilitar la migración de programadores, C# no sólo mantiene una sintaxis muy similar a C, C++ o Java que permite incluir directamente en 105

115 código escrito en C# fragmentos de código escrito en estos lenguajes, sino que el CLR también ofrece, a través de los llamados Platform Invocation Services (Pinvoke), la posibilidad de acceder a código nativo escrito como funciones sueltas no orientadas a objetos tales como las DLLs de la API Win32. Nótese que la capacidad de usar punteros en código inseguro permite que se pueda acceder con facilidad a este tipo de funciones, ya que éstas muchas veces esperan recibir o devuelven punteros. También es posible acceder desde código escrito en C# a objetos COM. Para facilitar esto, el.net Framework SDK incluye unas herramientas llamadas tlbimp y regasm mediante las que es posible generar automáticamente clases proxy que permitan, respectivamente, usar objetos COM desde.net como si de objetos.net se tratase y registrar objetos.net para su uso desde COM. Finalmente, también se da la posibilidad de usar controles ActiveX desde código.net y viceversa. Para lo primero se utiliza la utilidad aximp, mientras que para lo segundo se usa la ya mencionada regasm. 106

116 ANEXO B: Manual de Usuario 1. Introducción a la aplicación La función principal de la aplicación desarrollada es la de automatizar la forma de procesar los datos contables de una empresa, de una manera sencilla y de fácil utilización. De esta forma, puede ser utilizada tanto por personas que quieran registrar las cuentas de una empresa real o, por otro lado, puede ser utilizada con fines lectivos para realizar ejercicios en asignaturas de contabilidad. En el primer caso, el beneficio principal es poder llevar las cuentas de una empresa de una forma ordenada. En el segundo caso, el profesor se beneficia de tener la posibilidad de llevar a cabo ejercicios de cierta complicación de una forma ordenada, siendo mucho más fácil evaluar y corregir a los alumnos. También se benefician los alumnos, ya que debido a la automatización del proceso, pueden seguirlo con mucha mayor facilidad y adquirir conocimientos de una forma más rápida, sencilla y dinámica. La aplicación permite el almacenamiento en una base de datos de diferentes empresas con sus respectivos libros diarios, en donde quedan registradas todas las operaciones de la empresa. El funcionamiento de la aplicación va ligado estrictamente al funcionamiento del proceso contable: se va definiendo la información de la empresa, su situación inicial y por cada año de funcionamiento de la empresa se busca registrar todas sus operaciones para poder generar un documento final que contiene el libro diario, el libro mayor y el balance de comprobación de cada año. 107

117 Una de las principales ventajas que aporta este programa es que se encarga de detectar muchos de los errores que el usuario puede cometer. Así, cada vez que se introduce algún dato u operación, la aplicación comprueba su validez y, en caso de no serlo, se lo comunica al usuario. Con el fin de facilitar el funcionamiento al usuario, la aplicación también contiene una sección de ayuda acerca del proceso general contable con el fin de solucionar, en la medida de lo posible, las dudas que le surjan al usuario. Es importante que el usuario tenga claro que los hechos contables de una empresa están contenidos en los libros diarios de dicha empresa. Cada libro diario está constituido por asientos y cada asiento está formado por operaciones. Éstas son los hechos contables atómicos (o aislados) en el sentido de que no están compuestos por otros hechos contables. Una operación puede ser, por ejemplo, apuntar 300 unidades monetarias en el debe de una cuenta. Por otro lado, a la hora de registrar las operaciones y los asientos, la aplicación combina procesos manuales con procesos automáticos. Los asientos de operaciones tangibles realizadas han de ser introducidos por el usuario pero los asientos de apertura, de cierre de cuentas temporales y de cierre de cuentas permanente son generados automáticamente por la aplicación y no pueden ser creados, modificados o eliminados por el usuario. 108

118 2. Ejecución de la aplicación Para comenzar a utilizar el programa se debe ejecutar el archivo ejecutable Aplicación contable. Este es el archivo que lanza la aplicación. Así mismo en el mismo directorio que el ejecutable de la aplicación debe existir una carpeta denominada Archivos_aplicación que guarda la base de datos y los documentos de texto que se van a cargar en la aplicación. Es muy importante que la base de datos denominada bbdd se encuentre en dicha carpeta El usuario debe ejecutar la aplicación sobre un dispositivo que permita tanto lectura como escritura; no se podrá ejecutar, por ejemplo, estando guardada en un CD. También es muy importante que el usuario no ejecute el programa desde un dispositivo de poca velocidad como puede ser un dispositivo USB de almacenamiento externo; en caso de hacerlo la velocidad de la aplicación en ciertos momentos puede ser muy lenta. Se recomienda que la aplicación y los archivos necesarios mencionados se guarden en disco duro para que la aplicación pueda ser ejecutada a una velocidad adecuada. Por otra parte, la base de datos no debe ser modificada en ningún momento por el usuario, es la aplicación la que se encarga se registrar y guardar en ella toda la información necesaria. El usuario ha de interactuar con el programa ejecutable, no con la base de datos. No es recomendable tener varias ejecuciones de la aplicación abiertas en el mismo momento e interactuar con ellas ya que se pueden producir pérdidas o errores en los datos de la base de datos. 109

119 3. Utilización de la aplicación A continuación se irán explicando las diferentes pantallas de la aplicación con sus respectivas funcionalidades. Al iniciar el programa se mostrará el menú principal; a partir de ese momento el usuario irá recorriendo diferentes pantallas. Es muy importante que el usuario tenga en cuenta que, a la hora de realizar operaciones con la aplicación, no se dará la posibilidad de deshacer las operaciones realizadas. Por otro lado, también es importante que el usuario sepa que las operaciones que va realizando son guardadas en la base de datos en el mismo momento en que las realiza. 3.1 Menú Principal Es la pantalla de inicio de la aplicación. En ella se muestran diferentes opciones. El funcionamiento del programa va referido a una empresa, por tanto es muy importante que el usuario tenga claro que antes de empezar a registrar operaciones hay que seleccionar la empresa sobre la que se va a trabajar. Para ello se puede cargar una ya existente o definir una nueva. 110

120 Figura1. Pantalla Principal Existen cinco botones diferentes sobre los que pulsar con el fin de elegir una de las opciones. Éstas son: Nueva empresa. Permitirá al usuario introducir los datos de una nueva empresa sobre la que llevar las cuentas. Empresas existentes. Esta opción ha de ser seleccionada en caso de que se quiera cargar una empresa definida con anterioridad. Se pasará a una pantalla donde se mostrará una lista con todas las empresas existentes en la base de datos. Ayuda. Mostrará una pantalla con los diferentes documentos de ayuda. 111

121 Acerca de la aplicación. Muestra una breve información sobre la autoría de la aplicación. Salir. Termina la aplicación. 3.2 Ficha de la empresa A esta pantalla se puede acceder para crear una nueva empresa o para modificar los datos de una empresa ya existente. En el primer caso, se presenta una pantalla que permitirá al usuario rellenar los datos de la nueva empresa que quiere crear. En el segundo caso, se muestran los campos con la información actual de la empresa y se da la posibilidad al usuario para que los modifique. Es importante que el usuario rellene todos los campos. En caso contrario, el programa no permitirá que se cree o modifique la empresa. Figura 2. Ficha de la empresa 112

122 Como se aprecia en la figura 2, la empresa requiere de cuatro campos de información para poder ser definida. Es obligatorio rellenar todos los campos: Nombre. Es el nombre que tendrá la empresa. A éste se le añadirá S.A. o S.L. al final en función del tipo de sociedad seleccionada. Tipo. Se refiere al tipo de sociedad de la empresa. Sólo se contemplan dos posibles opciones: S.A. (Sociedad Anónima) y S.L. (Sociedad Limitada). El nombre completo de la empresa estará compuesto por el nombre introducido seguido del tipo elegido. Año Inicio. Es el primer año de funcionamiento de la empresa. El primer libro diario con el que se trabajará se corresponde con este año. Es importante definir bien el año de inicio ya que no podrán registrarse operaciones anteriores a este año. En caso de que se modifique el año de inicio de una empresa ya existente, esto puede acarrear consecuencias importantes. Si la empresa cambia su año de inicio por un año anterior se crearán libros diarios vacíos para los años que van desde el nuevo año de inicio hasta el año de inicio previo a la modificación. Si la empresa cambia su año de inicio por uno posterior, se borrarán todos los libros diarios existentes anteriores a la nueva fecha de inicio, por lo que es posible que el usuario pierda operaciones de su empresa al realizar esta acción. Con el fin de que esto no pase, el usuario deberá cambiar la fecha de los libros diarios que quiere conservar antes de cambiar la fecha inicial de funcionamiento de la empresa. Creador. Indica el nombre del creador de la empresa. Es el nombre del usuario. Así se sabrá quién es el dueño de la empresa o de la persona que ha realizado el ejercicio. 113

123 En la figura 2 se pueden ver también dos botones. Las funciones de estos botones son las siguientes: Borrar. Si el usuario pulsa este botón, el contenido de los cuatro campos quedará borrado. Aceptar. Es el botón que ha de pulsar el usuario para confirmar la creación de la empresa con los datos introducidos. Si los cuatro campos están completos, el programa mostrará dos mensajes informativos. El primero de ellos (Figura 3) informa sobre la creación de la empresa y que, a continuación, se pasará a definir la situación inicial de la empresa. El segundo de los mensajes (Figura 4) indica la creación un libro diario vacío para el año de inicio de la empresa. Figura 3. Mensaje informativo 1. Figura 4. Mensaje informativo

124 A lo largo de la ejecución de la aplicación se mostrarán diversos mensajes informativos como los de las imágenes 3 y 4. También se mostrarán mensajes de error o mensajes pidiendo al usuario la confirmación para realizar alguna acción. Por la simplicidad de estos mensajes y su contenido auto-explicativo se van a obviar las explicaciones al respecto en el este manual. En esta pantalla existen dos menús. Uno de ellos se denomina Archivo y tiene tres operaciones o submenús definidos que son: Empresas Existentes. Pasa a la pantalla donde se muestran todas las empresas existentes en la base de datos. Menú Principal. Vuelve a la pantalla de inicio. Salir de la aplicación. Cierra la aplicación. Si se selecciona alguna de estas opciones se abandonará la pantalla actual sin crear ninguna empresa. El otro menú es el de Ayuda que da la posibilidad de pulsar sobre Ver pantalla de ayuda, en cuyo caso se abrirá una nueva ventana que contendrá los diferentes contenidos de ayuda de la aplicación. 3.3 Empresas existentes En esta pantalla se muestran todas las empresas que existen en la base de datos. Para cada una de ellas se muestra el nombre completo, el año de inicio de la empresa y el 115

125 nombre del creador de la empresa. Pinchando en la cabecera de cada columna se puede hacer que las filas de la tabla queden ordenadas respecto al campo de esa columna. A esta pantalla se puede acceder desde el menú principal o desde los menús del resto de aplicaciones. Figura 5. Empresas Existentes Como se ve en la figura 5 se puede encontrar cinco botones, cada uno nos da la posibilidad de hacer una opción diferente: 116

126 Eliminar. Borra la empresa seleccionada de la base de datos. No se ofrecerá posibilidad de recuperarla en un futuro. Al eliminar la empresa se eliminan todas las operaciones e información asociada a ella. Modificar datos. Permite reescribir la ficha de la empresa pudiendo modificar nombre, tipo, año de inicio de la empresa o nombre del creador. Situación inicial. Abre una pantalla en la que se muestra el balance inicial (o situación inicial) definido para la empresa. Ver libros diarios. Muestra en una nueva pantalla todos los libros diarios que han sido creados para esa empresa. Cabe recordar que cada uno de los años de funcionamiento de la empresa deben llevar asociado un libro diario. Añadir libro diario. Añade un libro diario a continuación del último. Por ejemplo si la empresa Sociedad Comercial S.A. tiene definidos un libro diario para el 2001 y otro para el 2002, si se pulsa sobre este botón se creará un libro diario para el Para que cada uno de estos botones pueda realizar su función es necesario que una de las filas de la matriz de empresas esté seleccionada o se haya pinchado sobre ella. En caso de que no haya ninguna empresa creada y, por tanto, no haya filas en la matriz, los botones estarán deshabilitados ya que sus acciones van ligadas a la existencia de alguna empresa. En esta pantalla existen dos menús. Uno de ellos se denomina Archivo y tiene tres operaciones o submenús definidos que son: Nueva Empresa. Pasa a la pantalla de Ficha de la empresa para que se pueda registrar una nueva empresa en la base de datos. Menú Principal. Vuelve a la pantalla de inicio. 117

127 Salir de la aplicación. Cierra la aplicación. El otro menú es el de Ayuda que da la posibilidad de pulsar sobre Ver pantalla de ayuda, en cuyo caso se abrirá una nueva ventana que contendrá los diferentes contenidos de ayuda de la aplicación. 3.4 Libros diarios de una empresa Para acceder a esta pantalla hay que pulsar el botón Ver libros diarios desde la pantalla de Empresas existentes o desde el menú Libros diarios de la empresa desde las pantallas de Evolución del libro diario, de Resumen anual y de Situación inicial. Aquí se muestran todos los libros diarios que pertenecen a la empresa seleccionada. Cada libro diario se identifica por el año al que pertenece. También se muestra la información definida como ficha de la empresa: Figura 6. Libros diarios de una empresa 118

128 En la figura 6 se puede ver que existen seis botones con diferentes funciones: Situación inicial. Muestra la pantalla donde se define la situación inicial de la empresa. Borrar diario. Borra el libro diario seleccionado. Es necesario que se haya pinchado o seleccionado alguna fila de la matriz de libros diarios. Al borrar un libro diario se borran todas las operaciones asociadas a él. La aplicación considera que una empresa ha de tener libros diarios (aunque no tengan operaciones definidas) a lo largo de todos sus años de funcionamiento, por lo que si se borra un libro diario se borrarán también todos los libros diarios de la empresa para los años posteriores. Añadir diario. Añade un libro diario vacío a la empresa. Se corresponderá con el año siguiente al del último libro diario de la empresa. Borrar asientos. Elimina todas las operaciones del libro diario seleccionado. Es necesario que se haya pinchado o seleccionado alguna fila de la matriz de libros diarios. Deja el libro diario vacío, sólo contará con el asiento de apertura si es necesario. Ver asientos. Abre una nueva pantalla donde se muestran todas las operaciones del libro diario correspondiente. Es necesario que se haya pinchado o seleccionado alguna fila de la matriz de libros diarios. Esta operación puede tardar unos segundos ya que hay que reestructurar el asiento de apertura y cargar todos los demás. Cambiar año. Es necesario que se haya pinchado o seleccionado alguna fila de la matriz de libros diarios. Permite cambiar el año al que pertenece el libro diario. Al pulsar este botón se extiende la pantalla mostrando un campo donde se ha de 119

129 introducir el nuevo año del libro diario y dos nuevos botones. Los botones ya descritos se deshabilitan. Todo esto se puede observar en la figura 7. Figura 7. Libros diarios de una empresa, cambiar año. El nuevo campo está destinado a introducir el nuevo año del libro diario. La aplicación comprobará que sea un año válido. Como se puede ver en la figura también se incorporan dos nuevos botones: Cambiar. Una vez que el usuario haya introducido el nuevo año, ha de pulsar en este botón para realizar el cambio. La aplicación pedirá una confirmación mediante un mensaje de interrogación. Si el año nuevo introducido coincide con un libro 120

130 diario existente éste será sobrescrito perdiendo sus operaciones. Para el año (anterior a la modificación) del libro diario seleccionado, se dejará un libro diario vacío. Cancelar. Se debe pulsar para indicar que finalmente no se quiere cambiar el libro diario de año. Al pulsarlo la pantalla vuelve a su tamaño anterior (con lo que no se ven los elementos relacionados con el nuevo año del asiento ) y se vuelven a habilitar el resto de botones. En esta pantalla existen dos menús. Uno de ellos se denomina Archivo y tiene cuatro operaciones o submenús definidos que son: Nueva Empresa. Pasa a la pantalla de Ficha de la empresa para que se pueda registrar una nueva empresa en la base de datos. Empresas existentes. Esta opción ha de ser seleccionada en caso de que se quiera cargar una empresa definida con anterioridad. Se pasará a una pantalla donde se mostrará una lista con todas las empresas existentes en la base de datos. Menú Principal. Vuelve a la pantalla de inicio. Salir de la aplicación. Cierra la aplicación. El otro menú es el de Ayuda que da la posibilidad de pulsar sobre Ver pantalla de ayuda, en cuyo caso se abrirá una nueva ventana que contendrá los diferentes contenidos de ayuda de la aplicación. 121

131 3.5 Situación inicial de la empresa A esta pantalla se accede justo después de crear una nueva empresa. También se puede acceder a ella desde el botón de Situación inicial en la pantalla de Empresas existentes, desde el botón Situación inicial de la pantalla Libros diarios de una empresa o desde el botón Ver Situación inicial de la pantalla Evolución del Libro diario. En esta pantalla se puede definir la situación inicial de la empresa a 1 de enero del primer año de funcionamiento. En la parte superior izquierda se muestra una tabla o matriz con los estados iniciales del debe donde el usuario ha de registrar todas aquellas cuentas que inicialmente van a tener un valor positivo para el debe. En la parte superior derecha se puede ver una tabla o matriz con los estados iniciales del haber para todas aquellas cuentas que vayan a comenzar con un valor positivo en el haber. Ambas matrices tienen dos columnas: Nombre de la cuenta y Cantidad asociada al debe o al haber. En caso de pinchar en alguna de las cabeceras de las columnas de la tabla, las filas de la tabla quedarán ordenadas según la columna seleccionada. 122

132 Figura 8. Situación inicial de una empresa. En la parte inferior se muestran los campos a rellenar para añadir una nueva cuenta al balance inicial. Los campos que se pueden ver son: Nº Cuenta. A rellenar por el usuario para indicar la cuenta cuyo valor inicial de debe o haber se quiere definir. Nombre. Muestra automáticamente el nombre de la cuenta que se corresponde con el número de cuenta introducido por el usuario en Nº Cuenta. Esto sólo sucede en caso de que la cuenta introducida sea una cuenta existente en el plan general contable. 123

133 Tipo. Muestra automáticamente el tipo de la cuenta que se corresponde con el número de cuenta introducido por el usuario en Nº Cuenta. Esto sólo sucede en caso de que la cuenta introducida sea una cuenta existente en el Plan General Contable. El tipo de la cuenta puede ser activo, pasivo, ingreso o gasto y estará entre paréntesis en caso de que su valor se vaya a introducir de manera negativa. Cantidad. Es un campo que el usuario debe rellenar para indicar la cantidad de unidades monetarias que le corresponden a la situación inicial de la cuenta indicada. A continuación se explican las funciones de los botones existentes en la figura 8: Añadir a debe. Añade la nueva entrada a la matriz del debe. Sólo permite hacer esto si la cuenta introducida puede tener definido un valor para el debe en la situación inicial. En caso de ser necesario según el tipo de cuenta que sea, el valor se registrará de forma negativa en el debe. La aplicación controlará que tanto el valor como el número de cuenta introducidos sean correctos y que esa cuenta no esté registrada ya en la situación inicial. Borrar de debe. Elimina la fila seleccionada de la matriz del debe. Si no hay filas en la matriz este botón estará deshabilitado. Añadir a haber. Añade la nueva entrada a la matriz del haber. Sólo permite hacer esto si la cuenta introducida puede tener definido un valor para el haber en la situación inicial. En caso de ser necesario según el tipo de cuenta que sea, el valor se registrará de forma negativa en el haber. La aplicación controlará que tanto el valor como el número de cuenta introducidos sean correctos y que esa cuenta no esté registrada ya en la situación inicial. 124

134 Borrar de haber. Elimina la fila seleccionada de la matriz del haber. Si no hay filas en la matriz este botón estará deshabilitado. Ver cuentas. Muestra una pantalla con las diferentes cuentas del Plan General Contable y sus números de cuenta correspondientes. Ir a Diario de año siguiente. Al pulsar este botón se pasa a seguir la evolución del libro diario del primer año de funcionamiento de la empresa. En esta pantalla existen tres menús. Uno de ellos se denomina Archivo y tiene cuatro operaciones o submenús definidos que son: Nueva Empresa. Pasa a la pantalla de Ficha de la empresa para que se pueda registrar una nueva empresa en la base de datos. Empresas existentes. Esta opción ha de ser seleccionada en caso de que se quiera cargar una empresa definida con anterioridad. Se pasará a una pantalla donde se mostrará una lista con todas las empresas existentes en la base de datos. Menú Principal. Vuelve a la pantalla de inicio. Salir de la aplicación. Cierra la aplicación. El segundo menú es el de Libros Diarios que cuenta con una operación o submenú denominado Libros diarios de la empresa que abre la ventana con dicho nombre donde se muestran todos los libros diarios pertenecientes a esa empresa. El tercer menú es el de Ayuda que da la posibilidad de pulsar sobre Ver pantalla de ayuda en cuyo caso se abrirá una nueva ventana que contendrá los diferentes contenidos de ayuda de la aplicación. 125

135 Cada vez que se pulsa un botón o una opción de menú que haga abandonar la pantalla de Situación inicial de la empresa el programa comprobará que la suma de las cantidades del haber es equivalente a la suma de las cantidades del debe. En caso de no ser así, el programa no permitirá abandonar la pantalla. Si la aplicación es forzada a terminar desde el sistema operativo, cuando se vuelva a reiniciar la aplicación, ésta borrará todas aquellas situaciones iniciales que no estén correctamente balanceadas. Cabe la posibilidad de dejar la situación inicial sin ninguna fila en las tablas. En este caso la ejecución del programa continuará normalmente y simplemente no habrá asiento de apertura definido para el primer año de funcionamiento de la empresa. 3.6 Evolución del Libro diario En esta pantalla se muestra una tabla con los diferentes asientos del libro diario y sus correspondientes operaciones. En caso de que corresponda hacer un asiento de apertura para el libro diario, esto lo hará la aplicación automáticamente y lo mostrará con la explicación pertinente. La tabla con los asientos está constituida por siete columnas: Nº Asiento. Especifica el número de asiento. Los asientos se van enumerando en orden creciente según su fecha. El asiento de apertura, si es que existe, siempre será el asiento número 1. Fecha. Indica la fecha de asiento. El asiento de apertura siempre tendrá la fecha del 1 de enero del año al que pertenece. Nombre cuenta. Indica el nombre de la cuenta que interviene en cada operación. Nº Cuenta. Indica el número de la cuenta que interviene en cada operación. 126

136 Debe. Contiene el valor del debe en unidades monetarias para cada operación. Haber. Contiene el valor del haber en unidades monetarias para cada operación. Explicación. Contiene una explicación para cada una de las operaciones de los asientos. En caso de que la operación no cuente con una explicación, el campo contendrá la palabra No. Figura 9. Evolución de un libro diario Como se ve en la figura 9 existen seis botones, cada uno con una función diferente: Ver Saldo. Abre una pantalla con el saldo provisional para la cuenta seleccionada en la etiqueta desplegable de la izquierda del botón. Para ello es preciso haber seleccionado un número de cuenta con anterioridad en dicha etiqueta. Ver situación inicial. Cambia a la pantalla de Situación inicial de la empresa a la que pertenece el libro diario actual. 127

137 Balance sumas/saldos. Muestra el balance de sumas y saldos provisional del libro diario. Borrar asiento. Elimina el asiento correspondiente a la operación de la matriz que esté seleccionada. Es preciso que se haya seleccionado alguna fila. En caso de que la operación pertenezca al asiento de apertura la aplicación no permitirá que el asiento sea borrado. El asiento de apertura se genera automáticamente y no se le permite al usuario eliminarlo o modificarlo. Añadir asiento. Abre la pantalla que va a permitir al usuario crear un nuevo asiento y añadirlo al libro diario. Cerrar ejercicio. Cierra (en términos de contabilidad ) el libro diario o ejercicio actual y pasa a la pantalla en la que se muestra el resumen anual (libro diario, libro mayor y balance de comprobación para el año de actividad de la empresa). En esta pantalla existen tres menús. Uno de ellos se denomina Archivo y tiene cuatro operaciones o submenús definidos que son: Nueva Empresa. Pasa a la pantalla de Ficha de la empresa para que se pueda registrar una nueva empresa en la base de datos. Empresas existentes. Esta opción ha de ser seleccionada en caso de que se quiera cargar una empresa definida con anterioridad. Se pasará a una pantalla donde se mostrará una lista con todas las empresas existentes en la base de datos. Menú Principal. Vuelve a la pantalla de inicio. Salir de la aplicación. Cierra la aplicación. 128

138 El segundo menú es el de Libros Diarios que cuenta con una operación o submenú denominado Libros diarios de la empresa que abre la ventana con dicho nombre donde se muestran todos los libros diarios pertenecientes a esa empresa. El tercer menú es el de Ayuda que da la posibilidad de pulsar sobre Ver pantalla de ayuda en cuyo caso se abrirá una nueva ventana que contendrá los diferentes contenidos de ayuda de la aplicación. 3.7 Saldo de la Cuenta Esta ventana se abre sobre la pantalla de Evolución del libro diario y muestra las operaciones de la cuenta seleccionada y el saldo total indicando si es deudor o acreedor. Las operaciones las muestra en una tabla similar a la de Evolución del libro diario que cuenta con cinco columnas: Debe, Haber, Nº Asiento, Fecha, Explicación. La ventana sólo cuenta con un botón que al pulsarlo cierra la ventana. Figura 10. Saldo de una cuenta. 129

139 3.8 Balance de Sumas y saldos Esta ventana se abre sobre la pantalla de Evolución del libro diario y contiene una tabla con el balance provisional de sumas y saldos. Esta tabla contiene seis columnas: Nombre de la cuenta. Indica el nombre de cada cuenta que interviene en el libro diario. Nº cuenta. Indica el número de cada cuenta que interviene en el libro diario. Debe. Representa la suma de todos los valores del debe en las operaciones del libro diario. Haber. Representa la suma de todos los valores del haber en las operaciones del libro diario. Deudor. Si el saldo de la cuenta es deudor, esta columna muestra el saldo, si no mostrará 0. Acreedor. Si el saldo de la cuenta es acreedor, esta columna muestra el saldo, si no mostrará 0. Debajo de la tabla se muestran los totales que representan la suma de las operaciones del debe, la suma de las operaciones del haber, la suma de todos los saldos deudores y la suma de todos los saldos acreedores. 130

140 Figura 11. Balance de sumas y saldos. 3.9 Añadir Asiento Esta pantalla permite al usuario crear un asiento nuevo que se añadirá al libro diario correspondiente. Para definir un asiento es necesario indicar la fecha del asiento y las operaciones que lo componen. En la figura 12 se puede ver la pantalla al completo pero se analizarán las distintas partes con nuevas imágenes. 131

141 Figura 12. Añadir Asiento. En primer lugar, en la parte superior izquierda, existe un calendario desplegable en el cual el usuario debe seleccionar la fecha del asiento. Sólo se admitirán fechas pertenecientes al año del libro diario al que va a pertenecer el asiento. Se puede ver el calendario desplegable en la figura

142 Figura 13. Añadir asiento, elegir fecha. En la figura 12 se puede ver, en la parte superior, un grupo de elementos necesarios para definir las operaciones que tienen valores distintos de cero en su debe. En la parte inferior (encima de los cuatro botones) existe otro grupo de elementos que se utilizan para definir las operaciones que tienen valores distintos de cero en su haber. Dado que ambos grupos funcionan de la misma manera, se analizará sólo uno de ellos, en concreto el del Haber. Figura 14. Añadir asiento, operaciones del Haber. 133

143 En la parte derecha de la figura 14 se ve una tabla o matriz que representa las operaciones ya añadidas al asiento para el haber. Si se pincha en la cabecera de cada columna las filas se ordenaran según los valores de esa columna. La tabla cuenta con tres columnas: NºCuenta. Especifica el número de la cuenta que interviene en la operación. Valor. Especifica el valor del haber de la operación. Explicación. Contiene una breve explicación de carácter opcional sobre la operación. Si contiene el valor No es que ninguna explicación ha sido introducida por el usuario. Una vez que el usuario haya introducido el número de cuenta y el valor en los campos Nº de cuenta y Valor haber (que se explicarán a continuación) podrá añadir la nueva operación a la tabla pulsando en el botón Añadir. Al hacer esto, el programa comprobará la validez de la operación y, si es una operación posible, la añadirá a la tabla. En caso contrario, dará un mensaje de error. El usuario también podrá borrar operaciones de la tabla pulsando el botón Borrar después de haber seleccionado alguna operación. Si la tabla está vacía, este botón estará deshabilitado Para añadir una operación con valor no nulo en el haber, el usuario primero tendrá que rellenar los campos: Nº de cuenta: se escribe el número de la cuenta que interviene en la operación. 134

144 Valor haber: se escribe la cantidad de unidades monetarias que irán al haber de la cuenta. Al modificar el campo Nº de cuenta y escribir un número de cuenta válido del Plan General Contable, los siguientes campos tomarán nuevos valores: Nombre. Mostrará el nombre de cuenta correspondiente a la cuenta introducida por el usuario en el campo Nº de cuenta. Tipo. Mostrará el tipo de cuenta correspondiente a la cuenta introducida por el usuario en el campo Nº de cuenta. El tipo puede ser: activo, pasivo, gasto o ingreso. Si el tipo indicado va entre paréntesis entonces el valor especificado por el usuario en el campo Valor haber pasará a ser negativo al añadirse la nueva operación al asiento. Es decir, si el usuario se encuentra, por ejemplo, con un tipo que sea (Activo), e introduce la cantidad 200 en Valor haber entonces al pulsar el botón Añadir la cantidad que pasará a formar parte de la columna Valor de la tabla para la nueva operación será En la figura 14 se puede encontrar también una casilla que se puede marcar. A su derecha se puede leer Incluir IVA. Si se marca esa casilla se habilitará una pestaña desplegable a la derecha de la casilla que incluye los valores 16%, 7% y 4%. Si la opción de Incluir IVA está marcada, al añadir la operación a la tabla se añadirá otra operación que contendrá el valor correspondiente al IVA (de la operación introducida por el usuario) con un valor del 16%, 7% o 4% (según haya indicado el usuario en la pestaña desplegable) sobre lo introducido en el campo Valor haber. Si se generan varias operaciones de IVA 135

145 en la tabla, todas las operaciones se agruparán sobre una sola operación que llevará la suma de todas ellas. Es importante que el usuario sepa que estas operaciones de IVA se generan automáticamente pero, en caso de que se las quiera eliminar, deben ser borradas manualmente por el usuario. En la figura 14 se puede ver, por último, dos círculos en la parte inferior derecha. Uno de ellos se corresponde con Incluir explicación y el otro se corresponde con No incluir explicación. Por defecto, el segundo de ellos estará marcado. En todo momento uno de los dos estará marcado y el usuario será el que elija entre uno de los dos. Si el que está marcado es el de Incluir explicación, se incluirá la explicación de la caja de texto de la derecha (que el usuario puede pinchar y escribir para modificarla) en el campo Explicación de la tabla de operaciones (en la columna de explicación). Para continuar con la explicación de la pantalla de Añadir asiento se analizará la función de los cuatro botones que aparecen en la parte inferior de la pantalla: Volver. Hace que el programa vuelva a la pantalla anterior de Evolución del libro diario. En este caso el asiento no se genera a pesar de que tuviera operaciones definidas en las tablas. Ver Cuentas. Abre la ventana con la tabla de cuentas. Borrar todo. Borra el contenido de la tabla del haber y del debe. Generar asiento. Si la suma de las cantidades del haber cuadra con la suma de las cantidades del debe y la fecha es correcta se generará una nuevo asiento en la base 136

146 de datos. Después se vuelve a la pantalla de Evolución del libro diario donde se podrá visualizar el nuevo asiento añadido. Para finalizar con esta pantalla se explicarán sus menús. En esta pantalla existen dos menús. El primero se denomina Archivo y tiene cuatro operaciones o submenús definidos que son: Nueva Empresa. Pasa a la pantalla de Ficha de la empresa para que se pueda registrar una nueva empresa en la base de datos. Empresas existentes. Esta opción ha de ser seleccionada en caso de que se quiera cargar una empresa definida con anterioridad. Se pasará a una pantalla donde se mostrará una lista con todas las empresas existentes en la base de datos. Menú Principal. Vuelve a la pantalla de inicio. Salir de la aplicación. Cierra la aplicación. Si se selecciona cualquiera de estas cuatro opciones, el asiento no se completará y se perderán las operaciones definidas en las tablas. El segundo menú es el de Ayuda que da la posibilidad de pulsar sobre Ver pantalla de ayuda en cuyo caso se abrirá una nueva ventana que contendrá los diferentes contenidos de ayuda de la aplicación. 137

147 3.10 Cuadro de Cuentas Esta ventana se abre cuando se pulsa el botón Ver Cuentas existente en las pantallas de Situación inicial de la empresa y de Añadir asiento. Muestra un documento de texto con todas las cuentas del Plan General Contable, ordenadas y clasificadas según sus números de cuenta. Si se pulsa sobre el botón por orden alfabético se muestra el cuadro de cuentas ordenadas por orden alfabético. Figura 15. Cuadro de Cuentas. 138

148 3.11 Cuadro de Cuentas (por orden alfabético) Esta ventana se abre cuando se pulsa el botón Por orden alfabético existente en las pantallas de Situación inicial de la empresa y de Añadir asiento. Muestra un documento de texto con todas las cuentas del plan general contable, ordenadas y clasificadas por orden alfabético. Figura 16. Cuadro de Cuentas (por orden alfabético). 139

149 3.12 Resumen Anual Esta pantalla presenta el documento generado como resumen anual de la actividad de la empresa en el año especificado. Abrir esta pantalla puede tardar unos segundos ya que hay que recalcular los asientos de cierre con el fin de mostrarlos actualizados. El resumen anual está estructurado en tres partes: Libro Diario. Se muestran los asientos del libro diario ordenados por orden cronológico (el asiento de apertura siempre será el primero). Para cada asiento se muestra su número, su fecha y todas sus operaciones. De cada operación se muestra la siguiente información: el número y el nombre de la cuenta que interviene en la operación, la cantidad asociada al haber o al debe de la operación y la explicación de la operación en caso de que haya sido definida por el usuario previamente. Cabe destacar que es éste el único momento en que se pueden ver los asientos de cierre temporales y el de cierre permanente, que son generados automáticamente por la aplicación y que no se han mostrado en la pantalla de Evolución del libro diario dado que son asientos que se han de generar a cierre de ejercicio. El asiento de apertura, en caso de existir, será siempre el primero e irá seguido del comentario Apertura de balance. Los asientos de cierre de cuentas temporales, en caso de existir, irán antes que el de cierre de cuentas permanente y estarán identificados por los comentarios Cierre de cuentas temporales (p y g) al haber y Cierre de cuentas temporales (p y g) al debe. El asiento de cierre permanente, en caso de existir siempre será el último. El asiento de apertura se puede ver en la figura 17 y los asientos de cierre en la

150 Hay tres puntos en la escritura de los asientos en los que se hace un recuento de los asientos escritos hasta el momento y se muestra la suma de las columnas del debe y la suma de las columnas del haber. El primero es antes de los asientos de cierre de cuentas temporales. El segundo es después de estos asientos (pero sólo en caso de que alguno de ellos exista) y el tercer punto es después del asiento de cierre de cuentas permanente (sólo si este asiento existe). Se pueden apreciar estas sumas en el segundo y el tercer punto mencionados en la figura 18. Figura 17. Libro diario, parte inicial. 141

151 Figura 18. Libro diario, parte final. Libro mayor. Se muestran todas las cuentas que han intervenido en el libro diario una a una, ordenadas de menor a mayor por su número de cuenta. Para cada cuenta se muestra también su nombre y dos columnas con las referencias a los asientos en los que intervienen y con qué cantidades. La columna de la izquierda se refiere a operaciones del debe y la columna de la derecha se refiere a operaciones del haber. 142

152 Figura 19. Libro mayor, parte inicial Balance de comprobación. Cuenta con seis columnas que expresan el número, el nombre, la suma del debe, la suma del haber y el saldo deudor o acreedor de cada cuenta. Al final se contabiliza la suma total de las sumas del debe, las sumas del haber, los saldos deudores y los saldos acreedores. En primer lugar se muestra el balance de sumas y saldos antes del cierre de las cuentas de gastos e ingresos. Es decir, que no contempla los asientos de cierre de cuentas temporales ni el asiento de cierre de cuentas permanente. En segundo lugar se muestra el balance de sumas y saldos después del cierre de las cuentas de gastos e ingresos, contabilizando ya los asientos de cierre de cuentas temporales pero no el de cierre de cuentas permanente. 143

153 Figura 20. Balance de comprobación antes del cierre de las cuentas de gastos e ingresos. Figura 21. Balance de comprobación después del cierre de las cuentas de gastos e ingresos. 144

154 El mismo documento que se muestra por pantalla se puede encontrar en un archivo Word que se encontrará en el mismo directorio donde se haya ejecutado la aplicación. El nombre del archivo está formado por el nombre de la empresa a la que pertenece el resumen anual seguido del nombre del creador de dicha empresa y tendrá extensión rtf. Cuando se abra este documento con Microsoft Word se deberá abrir con codificación Unicode (UTF-8). Esta pantalla, además de mostrar el documento con el resumen anual, posee tres botones: Menú principal. Cierra la ventana actual y abre la pantalla del menú principal. Diarios de la empresa. Muestra una pantalla con todos los años de funcionamiento definidos para la empresa, con la posibilidad de seleccionar alguno de ellos y seguir la evolución del libro diario de ese año. Diario año siguiente. Pasa a la pantalla que sigue la evolución del libro diario del año siguiente. En caso de que para el año siguiente no exista ya un libro diario, se creará uno nuevo vacío (sólo con el asiento de apertura si éste ha de crearse). En esta pantalla existen tres menús. Uno de ellos se denomina Archivo y tiene cuatro operaciones o submenús definidos que son: Nueva Empresa. Pasa a la pantalla de Ficha de la empresa para que se pueda registrar una nueva empresa en la base de datos. 145

155 Empresas existentes. Esta opción ha de ser seleccionada en caso de que se quiera cargar una empresa definida con anterioridad. Se pasará a una pantalla donde se mostrará una lista con todas las empresas existentes en la base de datos. Menú Principal. Vuelve a la pantalla de inicio, igual que el botón de Menú principal Salir de la aplicación. Cierra la aplicación. El segundo menú es el de Libros Diarios que cuenta con una operación o submenú denominado Libros diarios de la empresa que abre la ventana con dicho nombre donde se muestran todos los libros diarios pertenecientes a esa empresa. Tiene la misma función que el botón Diarios de la empresa El tercer menú es el de Ayuda que da la posibilidad de pulsar sobre Ver pantalla de ayuda en cuyo caso se abrirá una nueva ventana que contendrá los diferentes contenidos de ayuda de la aplicación. 146

156 3.13 Ayuda Muestra una serie de pestañas, cada una con un contenido diferente de ayuda. Por ejemplo, la primera pestaña está constituida por otras seis subpestañas. En éstas se pueden ver una serie de documentos del Plan General Contable que cuenta con una introducción y cinco partes diferenciadas: Primera parte. Son los Principios contables. Se enuncian una serie de principios que han de cumplirse con el fin de conducir a que las Cuentas Anuales, formuladas con claridad, expresen la figura fiel del patrimonio, de la situación financiera y de los resultados de la empresa. Segunda parte. Es el Cuadro de cuentas. Muestra todas las cuentas definidas en el plan contable ordenadas y clasificadas por sus números de cuenta. Tercera parte. Son las Definiciones y relaciones contables. Analiza la forma de operar con las cuentas. Cuarta parte, cuyo título es Cuentas anuales. Establece cómo se debe realizar los documentos que recojan las cuentas anuales de una empresa y qué información deben contener. Quinta parte. Son las Normas de valoración que representan ciertas reglas a aplicar al valorar determinadas cuentas. 147

157 Figura 22. Ayuda, pestaña de introducción al Plan General Contable. En otras pestañas se pueden ver las Normas Internacionales de Contabilidad (NICs) y las resoluciones del ICAC desde el año 1992 hasta el Acerca de la aplicación Muestra cierta información básica sobre la autoría de la aplicación. Su contenido se puede ver en la figura: 148

158 Figura 23. Acerca de la aplicación. 4. Ejemplo Ejercicio Resuelto En esta sección se mostrará, paso a paso, cómo se realiza un ejercicio sencillo de contabilidad. Se mostrará el enunciado y después se expondrá cómo resolverlo paso a paso con la aplicación. 4.1 Enunciado El ejercicio que se va a resolver es muy sencillo ya que sólo se pretende mostrar el funcionamiento de la aplicación. El ejercicio es una simplificación de otro ejercicio más complejo que contaba con libros diarios para tres años. El presente ejercicio sólo tiene en cuenta el primer año. El enunciado es el siguiente: 149

159 El 1 de enero de 2002 comienza a funcionar la empresa Comercial S.A.. En su situación inicial se presenta una aportación de 4000 unidades monetarias por parte de los socios de la empresa como capital. Durante el año 2002 se realizaron las siguientes operaciones 1. 1 de Febrero. La sociedad tomó un préstamo bancario por un principal de u.m de Febrero. Un fabricante suministró a crédito a la sociedad 100 unidades de un artículo al precio unitario de 6 u.m de Febrero. Los gastos de constitución de la sociedad supusieron un desembolso de 50 u.m de Junio. La sociedad adquirió y pagó por caja un terreno por u.m de Agosto. Asimismo adquirió y pagó por caja un edificio sobre dicho terreno por u.m de Noviembre. La sociedad también adquirió y pagó por caja muebles de oficina por importe de 200 u.m. Se pide, para el año 2002: 1. Libro diario 2. Libro mayor 3. Balances de situación Supuesto: Estas operaciones no tienen IVA. 4.2 Crear la empresa Para comenzar el ejercicio es necesario crear la empresa con la que se va a trabajar en el ejercicio. Para ello al abrir la aplicación se escoge la opción de Crear empresa del 150

160 Menú principal. Se introducen los datos de la nueva empresa (como se ve en la figura 24) y se pulsa el botón Aceptar. Figura 24. Creando la empresa Comercial S.A. Una vez que se ha pulsado el botón Aceptar y dado que los datos son correctos, la aplicación muestra los mensajes informativos de las figuras 25 y 26 y pasa a la pantalla que permitirá definir la situación inicial de la empresa. 151

161 Figura 25. Empresa Comercial S.A. creada. Figura 26. Libro diario para el 2002 generado automáticamente 4.3 Definir Situación inicial Una vez en la pantalla de Situación inicial de la empresa, se debe registrar la aportación de 4000 unidades monetarias por parte de los socios de la empresa como capital social. Esto se puede ver en la figura 27. Después se pulsa el botón Ir a Diario 2002 para empezar a introducir los asientos del primer libro diario de la empresa. 152

162 Figura 27. Situación inicial de la empresa 4.4 Evolución del libro diario para el año 2002 Cuando se abre la pantalla con el libro diario del 2002, sólo contendrá el asiento de apertura definido automáticamente por la aplicación. Esto se puede ver en la figura

163 Figura 28. Libro diario con asiento de apertura A continuación se han de introducir los asientos con las operaciones que realiza la empresa, tal como se dice en el enunciado del ejercicio. El primer asiento reflejará las operaciones necesarias de: 1 de Febrero. La sociedad tomó un préstamo bancario por un principal de u.m. En la figura 29 se puede ver las dos operaciones introducidas al asiento y la fecha seleccionada. 154

164 Figura 29. Creando el primer asiento. De la misma forma se van creando todos los asientos de la empresa hasta que, como se puede ver en las figuras 30a y 30b, se han completado todas las operaciones de la empresa en el año El último asiento es el de recuento de existencias físicas del almacén de las mercaderías compradas. Se entiende que no se ha consumido ni vendido ninguna de ellas, por lo que el inventario físico de fin de año equivale exactamente a las unidades monetarias de la operación de compra del 3 de Febrero. 155

165 Figura 30a. Asientos del libro diario de Figura 30b. Asientos del libro diario de En la figura 31 se muestra, como ejemplo, el resultado de ver el saldo de la cuenta

166 Figura 31. Saldo de la cuenta 570. En la figuras 32a y 32b se muestra el balance de sumas y saldos del libro diario. Figura 32a. Balance de sumas y saldos. 157

167 Figura 32b. Balance de sumas y saldos. Una vez que ya no se quiere visualizar o añadir asientos se realiza la generación del resumen anual de la actividad para el año Para ello se pulsa el botón Cerrar ejercicio que se puede ver en la figura 30. La aplicación mostrará un mensaje informativo como el de la figura 33. Figura 33. Se va a generar un documento de texto 158

DESARROLLO DE UN PROGRAMA DE CONTABILIDAD FINANCIERA Autor: Rodríguez Díez, Guillermo. Director: Fernández García, Mercedes.

DESARROLLO DE UN PROGRAMA DE CONTABILIDAD FINANCIERA Autor: Rodríguez Díez, Guillermo. Director: Fernández García, Mercedes. DESARROLLO DE UN PROGRAMA DE CONTABILIDAD FINANCIERA Autor: Rodríguez Díez, Guillermo. Director: Fernández García, Mercedes. RESUMEN DEL PROYECTO En este proyecto se ha desarrollado una aplicación de contabilidad

Más detalles

Almacenes de Materiales para la Construcción y Distribución de Cerámica

Almacenes de Materiales para la Construcción y Distribución de Cerámica Almacenes de Materiales para la Construcción y Distribución de Cerámica Jobers y Asociados, S.L Consultoría y Desarrollo de Software Tfno: 96 352 41 82 659 73 75 72 Correo Electrónico: jobers@jobers.net

Más detalles

APOLO GESTION INTEGRAL.

APOLO GESTION INTEGRAL. APOLO GESTION INTEGRAL. APOLO Gestión es una aplicación realizada en Visual Studio, y apoyada en una potente base de datos SQL, que le proporciona grandes ventajas a la hora de trabajar tanto sobre redes

Más detalles

Práctica1. Introducción a Microsoft Access. Qué es Access?

Práctica1. Introducción a Microsoft Access. Qué es Access? Práctica1. Introducción a Microsoft Access Los sistemas de información empresariales tienen como misión el proporcionar información precisa en el momento adecuado, tanto para la gestión y realización de

Más detalles

MESP_09: Antigüedad de deuda de clientes

MESP_09: Antigüedad de deuda de clientes MESP V3.0 MESP_09: Antigüedad de deuda de clientes AM Consultores Ps Castellana, 226 28046 Madrid mesp@allegmusic.com MESP_09: Antigüedad de deuda de clientes 2 3 MESP_09: Antigüedad de deuda de clientes

Más detalles

1.4.1.2. Resumen... 1.4.2. ÁREA DE FACTURACIÓN::INFORMES::Pedidos...27 1.4.2.1. Detalle... 1.4.2.2. Resumen... 1.4.3. ÁREA DE

1.4.1.2. Resumen... 1.4.2. ÁREA DE FACTURACIÓN::INFORMES::Pedidos...27 1.4.2.1. Detalle... 1.4.2.2. Resumen... 1.4.3. ÁREA DE MANUAL DE USUARIO DE ABANQ 1 Índice de contenido 1 ÁREA DE FACTURACIÓN......4 1.1 ÁREA DE FACTURACIÓN::PRINCIPAL...4 1.1.1. ÁREA DE FACTURACIÓN::PRINCIPAL::EMPRESA...4 1.1.1.1. ÁREA DE FACTURACIÓN::PRINCIPAL::EMPRESA::General...4

Más detalles

CONTABILIDAD AVANZADA AB3000 Versión 10

CONTABILIDAD AVANZADA AB3000 Versión 10 ABANTIS SOFTWARE DE GESTIÓN EMPRESARIAL CONTABILIDAD AVANZADA AB3000 Versión 10 www.abantis.com Digisoft Systems, SL 1997-2015 1 PRESENTACIÓN Abantis AB3000, versión 10, es una gestión contable de gama

Más detalles

GedicoPDA: software de preventa

GedicoPDA: software de preventa GedicoPDA: software de preventa GedicoPDA es un sistema integrado para la toma de pedidos de preventa y gestión de cobros diseñado para trabajar con ruteros de clientes. La aplicación PDA está perfectamente

Más detalles

1.- INTRODUCCIÓN 2.- PARÁMETROS

1.- INTRODUCCIÓN 2.- PARÁMETROS 1.- INTRODUCCIÓN Hemos diseñado una aplicación que facilite el envío a las entidades bancarias de las de cobro por domiciliación. La entrada de esta aplicación pueden ser, tanto ficheros cuyos formatos

Más detalles

Aplicateca. Guía Rápida. ContaOnline Sage

Aplicateca. Guía Rápida. ContaOnline Sage Aplicateca Guía Rápida ContaOnline Sage Índice 1 Qué es ContaOnline Sage?...2 1.1 Más detalles... 2 1.2 Qué ventajas ofrece ContaOnline Sage?... 2 1.3 Cuáles son las principales funcionalidades de ContaOnline

Más detalles

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie.

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie. Adaptación al NPGC Introducción Nexus 620, ya recoge el Nuevo Plan General Contable, que entrará en vigor el 1 de Enero de 2008. Este documento mostrará que debemos hacer a partir de esa fecha, según nuestra

Más detalles

Una vez que tengamos el padrón de un determinado tributo con todos sus datos actualizados, podemos generar los recibos de ese padrón.

Una vez que tengamos el padrón de un determinado tributo con todos sus datos actualizados, podemos generar los recibos de ese padrón. 11. RECIBOS. Desde esta opción de Menú vamos a completar el proceso de gestión de los diferentes tributos, generando recibos, informes de situación, impresiones, etc. 11.1. GENERACIÓN DE RECIBOS. Una vez

Más detalles

Software Útil para Todos. Desarrollado por:

Software Útil para Todos. Desarrollado por: Software Útil para Todos Desarrollado por: Características Generales de INDOT El nombre de INDOT proviene de la fusión de dos términos ingleses, la palabra "IN", que significa en o dentro, y la palabra

Más detalles

UNIVERSIDAD DE SALAMANCA

UNIVERSIDAD DE SALAMANCA UNIVERSIDAD DE SALAMANCA FACULTAD DE CIENCIAS INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Resumen del trabajo práctico realizado para la superación de la asignatura Proyecto Fin de Carrera. TÍTULO SISTEMA

Más detalles

Toda base de datos relacional se basa en dos objetos

Toda base de datos relacional se basa en dos objetos 1. INTRODUCCIÓN Toda base de datos relacional se basa en dos objetos fundamentales: las tablas y las relaciones. Sin embargo, en SQL Server, una base de datos puede contener otros objetos también importantes.

Más detalles

1 EL SISTEMA R/3 DE SAP AG

1 EL SISTEMA R/3 DE SAP AG 1 EL SISTEMA R/3 DE SAP AG SAP AG es una corporación en el ámbito mundial. Fundada en 1972 y con sede en Walldorf, Alemania, SAP es la cuarta compañía mundial en ventas de software en el mundo. La compañía

Más detalles

El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos.

El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos. Gestión de proyectos Duración: 45 horas Objetivos: El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos. Contenidos:

Más detalles

Gestión de proyectos

Gestión de proyectos Gestión de proyectos Horas: 45 El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos. Gestión de proyectos El

Más detalles

Acronis License Server. Guía del usuario

Acronis License Server. Guía del usuario Acronis License Server Guía del usuario TABLA DE CONTENIDO 1. INTRODUCCIÓN... 3 1.1 Generalidades... 3 1.2 Política de licencias... 3 2. SISTEMAS OPERATIVOS COMPATIBLES... 4 3. INSTALACIÓN DE ACRONIS LICENSE

Más detalles

MANUAL DE USUARIO DEL MÓDULO TPV

MANUAL DE USUARIO DEL MÓDULO TPV MANUAL DE USUARIO DEL MÓDULO TPV DE ABANQ Índice de contenido MANUAL DE USUARIO: MÓDULO TPV......3 1. ÁREA DE FACTURACIÓN::TPV Datos Generales...3 2. ÁREA DE FACTURACIÓN::TPV Agentes de TPV...4 3. ÁREA

Más detalles

La gestión de pymes de Caixa Galicia mejora su rendimiento gracias a Microsoft CRM.

La gestión de pymes de Caixa Galicia mejora su rendimiento gracias a Microsoft CRM. Microsoft CRM Casos de éxito: Caixa Galicia La gestión de pymes de Caixa Galicia mejora su rendimiento gracias a Microsoft CRM. Resumen País: España Sector: Banca Perfil del Cliente Caixa Galicia, fundada

Más detalles

Codex.pro. Módulo de gestión económica.

Codex.pro. Módulo de gestión económica. Codex.pro. Módulo de gestión económica. Índice Codex.pro. Módulo de gestión económica...1 Introducción...2 Uso de la aplicación...3 1. Configuración inicial de la aplicación...4 1.1. Centros de coste...4

Más detalles

GENERACIÓN DE ANTICIPOS DE CRÉDITO

GENERACIÓN DE ANTICIPOS DE CRÉDITO GENERACIÓN DE ANTICIPOS DE CRÉDITO 1 INFORMACIÓN BÁSICA La aplicación de generación de ficheros de anticipos de crédito permite generar fácilmente órdenes para que la Caja anticipe el cobro de créditos

Más detalles

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios "Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios Miguel Alfonso Flores Sánchez 1, Fernando Sandoya Sanchez 2 Resumen En el presente artículo se

Más detalles

Cómo seleccionar el mejor ERP para su empresa Sumario ejecutivo

Cómo seleccionar el mejor ERP para su empresa Sumario ejecutivo Índice completo de la Guía Índice completo de la Guía 1. Quién debe leer esta guía? 3 2. Qué es un ERP? 7 2.2. Qué es un ERP?... 9 2.3. Cuál es el origen del ERP?... 10 2.4. ERP a medida o paquetizado?...

Más detalles

DOCUMENTOS COMPARTIDOS CON GOOGLE DOCS

DOCUMENTOS COMPARTIDOS CON GOOGLE DOCS DOCUMENTOS COMPARTIDOS CON GOOGLE DOCS 1. Introducción Los ambientes de aprendizaje acompañados de trabajos colaborativos como estrategia se revierten en actividades de diferente índole (análisis de videos,

Más detalles

Servicio de Informática

Servicio de Informática Módulo para la cumplimentación de contratos de movilidad en Universidad Virtual Guía de Usuario Última actualización 21 de abril de 2015 Tabla de contenido 1.- Introducción... 4 2.- Acceso al módulo y

Más detalles

Introducción de asientos contables ADRINFOR S.L.

Introducción de asientos contables ADRINFOR S.L. ADRINFOR S.L. Indice 5- Introducción de asientos contables...1 Introducción de asientos...1 Introducción de asientos con IVA...3 Asientos de facturas rectificativas...6 Modificar y/o eliminar asientos

Más detalles

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD Manual de usuario 1 - ÍNDICE 1 - ÍNDICE... 2 2 - INTRODUCCIÓN... 3 3 - SELECCIÓN CARPETA TRABAJO... 4 3.1 CÓMO CAMBIAR DE EMPRESA O DE CARPETA DE TRABAJO?...

Más detalles

Manual del Alumno de la plataforma de e-learning.

Manual del Alumno de la plataforma de e-learning. 2 Manual del Alumno de la Plataforma de E-learning 3 4 ÍNDICE 1. Página de Inicio...7 2. Opciones generales...8 2.1. Qué es el Campus...8 2.2. Nuestros Cursos...9 2.3. Cómo matricularme...9 2.4. Contactar...9

Más detalles

LiLa Portal Guía para profesores

LiLa Portal Guía para profesores Library of Labs Lecturer s Guide LiLa Portal Guía para profesores Se espera que los profesores se encarguen de gestionar el aprendizaje de los alumnos, por lo que su objetivo es seleccionar de la lista

Más detalles

SERVICIOS PARA EL DISEÑO E IMPLEMENTACIÓN DEL PROGRAMA INTEGRAL DE TRANSFORMACIÓN DIGITAL DE LA PROVINCIA DE LUGO: TRANSFORM@TIC

SERVICIOS PARA EL DISEÑO E IMPLEMENTACIÓN DEL PROGRAMA INTEGRAL DE TRANSFORMACIÓN DIGITAL DE LA PROVINCIA DE LUGO: TRANSFORM@TIC Diputación de Lugo SERVICIOS PARA EL DISEÑO E IMPLEMENTACIÓN DEL PROGRAMA INTEGRAL DE TRANSFORMACIÓN DIGITAL DE LA PROVINCIA DE LUGO: TRANSFORM@TIC Manual usuario ERP Marzo 2015 ÍNDICE 1 INTRODUCCIÓN...

Más detalles

GENERACIÓN DE TRANSFERENCIAS

GENERACIÓN DE TRANSFERENCIAS GENERACIÓN DE TRANSFERENCIAS 1 INFORMACIÓN BÁSICA La aplicación de generación de ficheros de transferencias permite generar fácilmente órdenes para que la Caja efectúe transferencias, creando una base

Más detalles

Guía de instalación de la carpeta Datos de IslaWin

Guía de instalación de la carpeta Datos de IslaWin Guía de instalación de la carpeta Datos de IslaWin Para IslaWin Gestión CS, Classic o Pyme a partir de la revisión 7.00 (Revisión: 10/11/2011) Contenido Introducción... 3 Acerca de este documento... 3

Más detalles

DESCRIPCION GENERAL DEL PROGRAMA GESTECNET

DESCRIPCION GENERAL DEL PROGRAMA GESTECNET DESCRIPCION GENERAL DEL PROGRAMA GESTECNET \\Fileserver-1\Manuales\GestecNET\20090205 Descripcion del Programa GestecNet.doc - 1 - EXTRUCTURA DEL PROGRAMA GESTECNET GestecNET es una solución para la gestión

Más detalles

El control de la tesorería consiste en gestionar desde la aplicación los cobros y pagos generados a partir de las facturas de venta y de compra.

El control de la tesorería consiste en gestionar desde la aplicación los cobros y pagos generados a partir de las facturas de venta y de compra. Gestión de la tesorería y del riesgo El control de la tesorería consiste en gestionar desde la aplicación los cobros y pagos generados a partir de las facturas de venta y de compra. En este manual nos

Más detalles

Guía Rápida de Inicio

Guía Rápida de Inicio Guía Rápida de Inicio 1. Acerca de esta Guía Esta guía le ayudará a instalar y dar los primeros pasos con BitDefender Security for SharePoint. Para disponer de instrucciones detalladas, por favor, diríjase

Más detalles

Aplicación informática de Optimización de Facturas Eléctricas (O.F.E)

Aplicación informática de Optimización de Facturas Eléctricas (O.F.E) Aplicación informática de Optimización de Facturas Eléctricas (O.F.E) Contenido 1. Aspecto de la aplicación informática OFE... 3 1.1 Menú Principal.... 3 1.2 Botones de la aplicación.... 3 2. Como introducir

Más detalles

INTRANET DE UNA EMPRESA RESUMEN DEL PROYECTO. PALABRAS CLAVE: Aplicación cliente-servidor, Intranet, Área reservada, Red INTRODUCCIÓN

INTRANET DE UNA EMPRESA RESUMEN DEL PROYECTO. PALABRAS CLAVE: Aplicación cliente-servidor, Intranet, Área reservada, Red INTRODUCCIÓN INTRANET DE UNA EMPRESA Autor: Burgos González, Sergio. Director: Zaforas de Cabo, Juan. Entidad colaboradora: Colegio de Ingenieros del ICAI. RESUMEN DEL PROYECTO El proyecto consiste en el desarrollo

Más detalles

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto INFORMÁTICA INFORMÁTICA 1 Sesión No. 4 Nombre: Procesador de Texto Contextualización La semana anterior revisamos los comandos que ofrece Word para el formato del texto, la configuración de la página,

Más detalles

+ÍrM. ffrm#ié*s. *d *rr* ry] I * r-: t#s e# rn * irlr* *iv*ru y ü#r:t*bt#s. F*cilitadar: Lic. Roel Picado S., MBA ACICAFOC

+ÍrM. ffrm#ié*s. *d *rr* ry] I * r-: t#s e# rn * irlr* *iv*ru y ü#r:t*bt#s. F*cilitadar: Lic. Roel Picado S., MBA ACICAFOC !Élitulo Na ffilúo l ffi6n y Íffilersm m Tffilogb AgtootruárÉ '@ ACICAFOC *d *rr* ry] I * r-: t#s e# rn * irlr* *iv*ru y ü#r:t*bt#s ffrm#ié*s +ÍrM F*cilitadar: Lic. Roel Picado S., MBA Por qué es importante

Más detalles

Traslado de Copias y Presentación de Escritos. Manual de Usuario V.3.1

Traslado de Copias y Presentación de Escritos. Manual de Usuario V.3.1 Traslado de Copias y Presentación de Escritos Manual de Usuario V.3.1 Página: 2 45 INDICE INTRODUCCIÓN... 3 1 ACCESO A LA APLICACIÓN... 3 2 PROCESO DE FIRMA... 4 3 TRASLADOS PENDIENTES DE ACEPTAR POR EL

Más detalles

e-mailing Solution La forma más efectiva de llegar a sus clientes.

e-mailing Solution La forma más efectiva de llegar a sus clientes. e-mailing Solution La forma más efectiva de llegar a sus clientes. e-mailing Solution Es muy grato para nosotros presentarles e-mailing Solution, nuestra solución de e-mail Marketing para su empresa. E-Mailing

Más detalles

Día 5-6-2012 17:00h Lugar: Obra Social Ibercaja, Sala De actos, Rambla Ferran 38, 3º, Lleida

Día 5-6-2012 17:00h Lugar: Obra Social Ibercaja, Sala De actos, Rambla Ferran 38, 3º, Lleida Resumen de la conferencia Día 5-6-2012 17:00h Lugar: Obra Social Ibercaja, Sala De actos, Rambla Ferran 38, 3º, Lleida Ponente: Luis Muñiz Socio Director de Sisconges & Estrategia y experto en Sistemas

Más detalles

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)

Más detalles

PROYECTOS, FORMULACIÓN Y CRITERIOS DE EVALUACIÓN

PROYECTOS, FORMULACIÓN Y CRITERIOS DE EVALUACIÓN PROYECTOS, FORMULACIÓN Y CRITERIOS DE EVALUACIÓN GESTIÓN DE PROYECTOS CON PLANNER AVC APOYO VIRTUAL PARA EL CONOCIMIENTO GESTIÓN DE PROYECTOS CON PLANNER Planner es una poderosa herramienta de software

Más detalles

Apertura administrativa del ejercicio 2015

Apertura administrativa del ejercicio 2015 Apertura administrativa del ejercicio 2015 1 La apertura administrativa del nuevo ejercicio.... 4 2 Cierre contable.... 7 2.1 Asiento de regularización.... 7 2.2 Asiento de cierre.... 8 2.3 Asiento de

Más detalles

Enterprise Resource Planning (ERP) SISTEMA DE PLANEACIÓN DE RECURSOS MASTER: ALFREDO CASTRO JIMENEZ

Enterprise Resource Planning (ERP) SISTEMA DE PLANEACIÓN DE RECURSOS MASTER: ALFREDO CASTRO JIMENEZ Enterprise Resource Planning (ERP) SISTEMA DE PLANEACIÓN DE RECURSOS MASTER: ALFREDO CASTRO JIMENEZ ERICK ANASTASIO FLORES 29/09/2010 UNIVERSIDAD AUTONOMA DE GUADALAJARA TECNOLOGIAS DE INFORMACION Qué

Más detalles

Manual del Usuario de Microsoft Access Introducción - Página 1. I. Introducción. I.1. Base de Datos Relacional

Manual del Usuario de Microsoft Access Introducción - Página 1. I. Introducción. I.1. Base de Datos Relacional Manual del Usuario de Microsoft Access Introducción - Página 1 I. Introducción I.1. Base de Datos Relacional Una base de datos relacional es una colección de información secundaria a un tema o propósito

Más detalles

MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA. Perfil Entidad Proveedora

MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA. Perfil Entidad Proveedora MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA Perfil Entidad Proveedora El objetivo del módulo de Gestión de Solicitudes vía Internet es facilitar el trabajo

Más detalles

Bases de datos en Excel

Bases de datos en Excel Universidad Complutense de Madrid CURSOS DE FORMACIÓN EN INFORMÁTICA Bases de datos en Excel Hojas de cálculo Tema 5 Bases de datos en Excel Hasta ahora hemos usado Excel básicamente para realizar cálculos

Más detalles

Cierre contable i. Cierre contable

Cierre contable i. Cierre contable Cierre contable i Cierre contable Sumario Cierre contable... 2 Introducción... 2 Cambio de ejercicio en a3erp... 2 Introducción... 2 Cierre ejercicio... 2 Iniciar nueva numeración de documentos... 2 Comprobar

Más detalles

Administración de la producción. Sesión 10: Gestor de Base de Datos (Access)

Administración de la producción. Sesión 10: Gestor de Base de Datos (Access) Administración de la producción Sesión 10: Gestor de Base de Datos (Access) Contextualización Microsoft Access es un sistema de gestión de bases de datos, creado para uso personal y de pequeñas organizaciones,

Más detalles

CONSEJOS DE CÓMO CREAR UN DOCUMENTO ADOBE PDF ACCESIBLE A PARTIR DE UN DOCUMENTO MICROSOFT WORD ACCESIBLE

CONSEJOS DE CÓMO CREAR UN DOCUMENTO ADOBE PDF ACCESIBLE A PARTIR DE UN DOCUMENTO MICROSOFT WORD ACCESIBLE CONSEJOS DE CÓMO CREAR UN DOCUMENTO ADOBE PDF ACCESIBLE A PARTIR DE UN DOCUMENTO MICROSOFT WORD ACCESIBLE (Sistema Operativo Windows) Marzo 2011 Lourdes Moreno López 1,2 lmoreno@inf.uc3m.es 1: Grupo LaBDA,

Más detalles

SERVICIOS PARA EL DISEÑO E IMPLEMENTACIÓN DEL PROGRAMA INTEGRAL DE TRANSFORMACIÓN DIGITAL DE LA PROVINCIA DE LUGO: TRANSFORM@TIC

SERVICIOS PARA EL DISEÑO E IMPLEMENTACIÓN DEL PROGRAMA INTEGRAL DE TRANSFORMACIÓN DIGITAL DE LA PROVINCIA DE LUGO: TRANSFORM@TIC Diputación de Lugo SERVICIOS PARA EL DISEÑO E IMPLEMENTACIÓN DEL PROGRAMA INTEGRAL DE TRANSFORMACIÓN DIGITAL DE LA PROVINCIA DE LUGO: TRANSFORM@TIC Manual usuario CRM Agroalimentario Marzo 2015 ÍNDICE

Más detalles

App para realizar consultas al Sistema de Información Estadística de Castilla y León

App para realizar consultas al Sistema de Información Estadística de Castilla y León App para realizar consultas al Sistema de Información Estadística de Castilla y León Jesús M. Rodríguez Rodríguez rodrodje@jcyl.es Dirección General de Presupuestos y Estadística Consejería de Hacienda

Más detalles

Aprende a rentabilizar tu negocio

Aprende a rentabilizar tu negocio Aprende a rentabilizar tu negocio Índice 1. Qué es el Balance de Situación?... 3 2. Cómo se define el Balance de Situación?... 3 3. Cómo se expresa en el Balance la situación financiera y patrimonial de

Más detalles

El fichero de vencimientos ADRINFOR S.L.

El fichero de vencimientos ADRINFOR S.L. ADRINFOR S.L. Indice 12- El fichero de vencimientos...1 Previsiones de cobros y de pagos...3 Cómo introducir vencimientos...5 Preproceso y procesamiento de vencimientos...8 Informes de tesorería...13 Vencimiento

Más detalles

Programa diseñado y creado por 2014 - Art-Tronic Promotora Audiovisual, S.L.

Programa diseñado y creado por 2014 - Art-Tronic Promotora Audiovisual, S.L. Manual de Usuario Programa diseñado y creado por Contenido 1. Acceso al programa... 3 2. Opciones del programa... 3 3. Inicio... 4 4. Empresa... 4 4.2. Impuestos... 5 4.3. Series de facturación... 5 4.4.

Más detalles

WINDOWS 2008 5: TERMINAL SERVER

WINDOWS 2008 5: TERMINAL SERVER WINDOWS 2008 5: TERMINAL SERVER 1.- INTRODUCCION: Terminal Server proporciona una interfaz de usuario gráfica de Windows a equipos remotos a través de conexiones en una red local o a través de Internet.

Más detalles

Hacer clic sobre la figura, para extraer todos los registros o presionar la tecla F2.

Hacer clic sobre la figura, para extraer todos los registros o presionar la tecla F2. b) Adicionar grados Para llevar a cabo esta operación el usuario deberá realizar los siguientes pasos: Recuperar la información, para realizar esta operación el usuario puede hacerla de las siguientes

Más detalles

Informática I Notas del curso

Informática I Notas del curso EXCEL Objetivo: Identificar la funcionalidad general de Excel, sus herramientas y recursos Excel Objetivo Particular: Conocer los métodos básicos de trabajo de Excel, para el manejo de registros, datos

Más detalles

Ministerio de Educación Base de datos en la Enseñanza. Glosario

Ministerio de Educación Base de datos en la Enseñanza. Glosario Ministerio de Educación Base de datos en la Enseñanza. Glosario Instituto de Tecnologías Educativas 2011 Glosario Glosario GLOSARIO Archivo Un archivo es un elemento que contiene información y que a su

Más detalles

MACROS. Automatizar tareas a través del uso de las macros.

MACROS. Automatizar tareas a través del uso de las macros. OBJETIVOS MACROS Definiciones Automatizar tareas a través del uso de las macros. Grabar Ejecutar Manipular macros. Tipos de Macros en Excel Introducción Las operaciones tradicionales que se pueden realizar

Más detalles

Contabilidad. 1. Precondiciones. 2. Proceso Estándar. Tener la estructura contable. Estructura de la Cuenta Contable

Contabilidad. 1. Precondiciones. 2. Proceso Estándar. Tener la estructura contable. Estructura de la Cuenta Contable Contabilidad BIZone cuenta con un módulo completamente funcional para llevar la contabilidad de un negocio, tiene todos los reportes financieros y contables que se requieren, además la contabilidad está

Más detalles

TeCS. Sistema de ayuda a la gestión del desarrollo de producto cerámico

TeCS. Sistema de ayuda a la gestión del desarrollo de producto cerámico TeCS Sistema de ayuda a la gestión del desarrollo de producto cerámico En el origen de todo proyecto de éxito se halla la capacidad de encauzar y estructurar la creatividad TeCS ofrece un entorno de fácil

Más detalles

CONVERSOR LIBROS DE REGISTRO (IVA IGIC) Agencia Tributaria DEPARTAMENTO DE INFORMÁTICA TRIBUTARIA

CONVERSOR LIBROS DE REGISTRO (IVA IGIC) Agencia Tributaria DEPARTAMENTO DE INFORMÁTICA TRIBUTARIA CONVERSOR LIBROS DE REGISTRO (IVA IGIC) Agencia Tributaria DEPARTAMENTO DE INFORMÁTICA TRIBUTARIA ÍNDICE DEL DOCUMENTO 1. INTRODUCCIÓN...2 1.1. REQUISITOS TÉCNICOS...2 2. DECLARACIONES...3 2.1. CREAR UNA

Más detalles

Base de datos en la Enseñanza. Open Office

Base de datos en la Enseñanza. Open Office 1 Ministerio de Educación Base de datos en la Enseñanza. Open Office Módulo 1: Introducción Instituto de Tecnologías Educativas 2011 Introducción Pero qué es una base de datos? Simplificando mucho, podemos

Más detalles

Oficina Online. Manual del administrador

Oficina Online. Manual del administrador Oficina Online Manual del administrador 2/31 ÍNDICE El administrador 3 Consola de Administración 3 Administración 6 Usuarios 6 Ordenar listado de usuarios 6 Cambio de clave del Administrador Principal

Más detalles

APLICATECA. Guía para la contratación y gestión de. Hacemos Tu Web

APLICATECA. Guía para la contratación y gestión de. Hacemos Tu Web APLICATECA Guía para la contratación y gestión de Hacemos Tu Web INDICE 1 QUÉ ES HACEMOS TU WEB?... 1 1.1 PARA QUÉ SIRVE?... 1 1.2 CARACTERÍSTICAS DE HACEMOS TU WEB... 1 1.3 REQUERIMIENTOS DEL SERVICIO...

Más detalles

Comisión Nacional de Bancos y Seguros

Comisión Nacional de Bancos y Seguros Comisión Nacional de Bancos y Seguros Manual de Usuario Capturador de Pólizas División de Servicios a Instituciones Financieras Mayo de 2011 2 Contenido 1. Presentación... 3 1.1 Objetivo... 3 2. Descarga

Más detalles

PRESENTACIÓN DEL PRODUCTO

PRESENTACIÓN DEL PRODUCTO PRESENTACIÓN DEL PRODUCTO esernet, s.l. Sebastián Elcano, 32 Planta 1 Oficina 22 28012 Madrid Teléfono: 91 433 84 38 -- Fax. 91 141 21 89 www.esernet.com -- esernet@esernet.com 1. Introducción 2. Descripción

Más detalles

Introducción a la extensión de scripting en gvsig 2.0

Introducción a la extensión de scripting en gvsig 2.0 Introducción a la extensión de scripting en gvsig 2.0 2012 gvsig Association Este documento se distribuye con la licencia Creative Commons 1 2 Índice de contenido 1 Introducción... 3 Instalación de la

Más detalles

Capitulo 5. Implementación del sistema MDM

Capitulo 5. Implementación del sistema MDM Capitulo 5. Implementación del sistema MDM Una vez que se concluyeron las actividades de análisis y diseño se comenzó la implementación del sistema MDM (Manejador de Documentos de MoProSoft). En este capitulo

Más detalles

Curso Excel Básico - Intermedio

Curso Excel Básico - Intermedio Curso Excel Básico - Intermedio Clase 4 Relator: Miguel Rivera Adonis Introducción Base de Datos: Definición de Base de Datos Ordenar datos Formulario Filtros Trabajar con Sub-Totales Validación de Datos

Más detalles

Hot Potatoes, aplicaciones educativas

Hot Potatoes, aplicaciones educativas Hot Potatoes, aplicaciones educativas Módulo 1: Primeros pasos ÍNDICE MÓDULO 1. PRIMEROS PASOS...1 Qué es Hot Potatoes?... 2 Ventajas de Hot Potatoes... 7 Requisitos...8 Saber más... 9 1 de 10 Aplicaciones

Más detalles

Codex.pro. Gestión de pagos del centro

Codex.pro. Gestión de pagos del centro Codex.pro. Gestión de pagos del centro Índice Codex.pro. Gestión de pagos del centro...1 1. Introducción...2 2. Cobro por domiciliación bancaria...3 2.1. Instrucciones paso a paso...3 3. Gestión de pagos

Más detalles

Introducción En los años 60 s y 70 s cuando se comenzaron a utilizar recursos de tecnología de información, no existía la computación personal, sino que en grandes centros de cómputo se realizaban todas

Más detalles

INFORMATIZACION DE EMPRESAS, S. A. ACTUALIZACION DE MARZO 2008

INFORMATIZACION DE EMPRESAS, S. A. ACTUALIZACION DE MARZO 2008 ACTUALIZACION DE MARZO 2008 1.- REUBICACION DE FICHEROS. El sistema actual de instalación de los programas de IESA, estaba utilizando un directorio por producto, haciendo lo mismo para los enlaces y accesos

Más detalles

ACTUALIZACION DE ISACONTA AL NUEVO PLAN GENERAL DE CONTABILIDAD 2008

ACTUALIZACION DE ISACONTA AL NUEVO PLAN GENERAL DE CONTABILIDAD 2008 ACTUALIZACION DE ISACONTA AL NUEVO PLAN GENERAL DE CONTABILIDAD 2008 Indice: IMPORTANTE - Antes de instalar la actualización... 2 Herramientas que contiene el kit de actualización:... 2 GUIA DE INSTALACION

Más detalles

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. UNIVERSIDAD DE CARABOBO FACULTAD DE CIENCIA Y TECNOLOGÍA DIRECCION DE EXTENSION COORDINACION DE PASANTIAS Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. Pasante:

Más detalles

2 - Gesinedi. Para la gestión diaria en el Despacho de las llamadas, incidencias y siniestros. Gestión de edificios y Comunidades

2 - Gesinedi. Para la gestión diaria en el Despacho de las llamadas, incidencias y siniestros. Gestión de edificios y Comunidades Para la gestión diaria en el Despacho de las llamadas, incidencias y siniestros. Gestión de edificios y Comunidades Gesinedi es la mejor herramienta que pueda existir para el trabajo diario de gestión

Más detalles

E-learning: E-learning:

E-learning: E-learning: E-learning: E-learning: capacitar capacitar a a su su equipo equipo con con menos menos tiempo tiempo y y 1 E-learning: capacitar a su equipo con menos tiempo y Si bien, no todas las empresas cuentan con

Más detalles

Protección de Contenido en Microsoft Internet Explorer 6 y superior.

Protección de Contenido en Microsoft Internet Explorer 6 y superior. Protección de Contenido en Microsoft Internet Explorer 6 y superior. Para activar el Asesor de contenido, debe configurarse como Supervisor de contenido con una contraseña: 1) En el menú Herramientas de

Más detalles

IDEA DE NEGOCIO EDUGER LOGISTIC GERMAN EDUARDO BALSERO MORALES PROFESOR: GERARDO ANDRES ARCOS CELIS

IDEA DE NEGOCIO EDUGER LOGISTIC GERMAN EDUARDO BALSERO MORALES PROFESOR: GERARDO ANDRES ARCOS CELIS IDEA DE NEGOCIO EDUGER LOGISTIC GERMAN EDUARDO BALSERO MORALES PROFESOR: GERARDO ANDRES ARCOS CELIS CORPORACIÓN UNIVERSITARIA IBEROAMERICANA TECNOLOGIA EN LOGISTICA INFORMATICA BOGOTA D.C. 2013 INTRODUCCIÓN

Más detalles

Manual de rol gestor de GAV para moodle 2.5

Manual de rol gestor de GAV para moodle 2.5 Manual de rol gestor de GAV para moodle 2.5 Consultas LDAP-GAUR... 2 Buscar en LDAP datos de un usuario... 2 Docentes... 3 Buscar en GAUR datos de un docente... 3 Buscar en GAUR la docencia de un docente

Más detalles

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL OBJETIVO Mejorar el nivel de comprensión y el manejo de las destrezas del estudiante para utilizar formulas en Microsoft Excel 2010. 1) DEFINICIÓN Una fórmula de Excel es un código especial que introducimos

Más detalles

Haga clic en los recuadros donde indica la mano y regrese al inicio del capítulo al hacer clic en el título de la sección donde se encuentra

Haga clic en los recuadros donde indica la mano y regrese al inicio del capítulo al hacer clic en el título de la sección donde se encuentra Cómo gestiono el Plan Anual de Adquisiciones de mi Entidad en el SECOP II? Crear equipo Crear Plan Anual de Adquisiciones Publicar Plan Anual de Adquisiciones Modificar Plan Anual de Adquisiciones Buscar

Más detalles

La solución informática que le guiará en la administración total de su empresa. Deudores, Acreedores, Stock, Facturación, Bancos, Caja, Producción

La solución informática que le guiará en la administración total de su empresa. Deudores, Acreedores, Stock, Facturación, Bancos, Caja, Producción La solución informática que le guiará en la administración total de su empresa Deudores, Acreedores, Stock, Facturación, Bancos, Caja, Producción Kavala es un sistema totalmente integrado, sumamente sencillo

Más detalles

TEMA 3: MÉTODO CONTABLE. LAS CUENTAS

TEMA 3: MÉTODO CONTABLE. LAS CUENTAS TEMA 3: MÉTODO CONTABLE. LAS CUENTAS 1. HECHOS CONTABLES En el tema 1 se señalaba que, dentro de la función de elaboración de la información contable, la contabilidad se ocupaba, en una primera etapa,

Más detalles

UF0035: Operaciones de caja en la venta

UF0035: Operaciones de caja en la venta UF0035: Operaciones de caja en la venta TEMA 1. Caja y Terminal Punto de Venta TEMA 2. Procedimientos de cobro y pago de las operaciones de venta OBJETIVOS - Aplicar los procedimientos de registro y cobro

Más detalles

Extrapresupuestarios 8.6. LIQUIDACIÓN DE IVA.

Extrapresupuestarios 8.6. LIQUIDACIÓN DE IVA. Extrapresupuestarios 8.6. LIQUIDACIÓN DE IVA. El tratamiento contable de las operaciones con IVA en las Entidades Locales, debe tener en cuenta la influencia del régimen presupuestario por lo que deben

Más detalles

Microsoft Office: EXCEL. Objetivos curso

Microsoft Office: EXCEL. Objetivos curso Objetivos curso Conocer las aplicaciones ofimáticas de Microsoft Office y las utilidades a las que se orientan cada una de ellas, con el objetivo que cada formado descubra las posibilidades concretas de

Más detalles

CAPÍTULO 3 VISUAL BASIC

CAPÍTULO 3 VISUAL BASIC CAPÍTULO 3 VISUAL BASIC 3.1 Visual Basic Microsoft Visual Basic es la actual y mejor representación del viejo lenguaje BASIC, le proporciona un sistema completo para el desarrollo de aplicaciones para

Más detalles

FUNCIONALIDADES TERMINAL MAX CONTRATACIÓN. Introducción

FUNCIONALIDADES TERMINAL MAX CONTRATACIÓN. Introducción FUNCIONALIDADES TERMINAL MAX CONTRATACIÓN Introducción El Terminal max Contratación Visual Trader es un potente Front-Office para la operativa multimercado en tiempo real con el máximo nivel de información

Más detalles

Software Útil para PYMES

Software Útil para PYMES 08/11/2011 Versión 1,0 Software Útil para PYMES www.indot.es Características Generales de INDOT El nombre de INDOT proviene de la fusión de dos términos ingleses, la palabra "IN", que significa en o dentro,

Más detalles

NOTAS TÉCNICAS SOBRE EL SIT: Definición y Configuración de Usuarios

NOTAS TÉCNICAS SOBRE EL SIT: Definición y Configuración de Usuarios NOTAS TÉCNICAS SOBRE EL SIT: Definición y Configuración de Usuarios Qué es un Usuario?...2 Definición...2 Características...2 Tipos de Usuario...3 Supervisor...3 Privilegios de Acceso...4 Confidenciales...4

Más detalles

Desarrollo de un Sistema de Gestión de Proyectos mediante el framework GWT

Desarrollo de un Sistema de Gestión de Proyectos mediante el framework GWT Proyecto de Fin de Carrera Universidad Politécnica de Valencia Escuela Técnica Superior de Informática Desarrollo de un Sistema de Gestión de Proyectos mediante el framework GWT Realizado por: Dirigido

Más detalles