Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
HORUS
Sistema Integral Administrativo y Financiero de Pequeñas
Empresas
CAMILO ANDRÉS ESPITIA AGUILERA
Universidad de los Andes
Facultad de Ingeniería
Departamento de Sistemas y Computación
Bogotá D. C.
2004
HORUS
Sistema Integral Administrativo y Financiero de Pequeñas
Empresas
CAMILO ANDRÉS ESPITIA AGUILERA
Tésis para optar por el título de Ingeniero de Sistemas y
Computación
Asesor: José Abásolo Prieto
Universidad de los Andes
Facultad de Ingeniería
Departamento de Sistemas y Computación
Bogotá D. C.
2004
A mis padres, por darme las herramientas
para encontrar el camino y a mi abuelita
que no alcanzo a verme al final de él.
AGRADECIMIENTOS
Agradezco a mi asesor de tesis José Abásolo por haberme ayudado cuando lo necesité
durante el largo proceso de definición y desarrollo de este proyecto.
Quiero agradecer también al Contador Pedro Umbarila Umbarila, quien desinteresadamente
me brindó su ayuda para entender como funcionan las diferentes aplicaciones que aquí se
presentan y a mi padre que siempre estuvo dispuesto a aclararme las dudas de última hora.
Finalmente reconozco a mis padres el esfuerzo realizado por ayudarme en la revisión final
del documento, como a mis hermanos por tener paciencia durante las incontables horas de
computador acaparadas por mi trabajo.
Tabla de Contenidos
1. INTRODUCCIÓN.............................................................................................................. 6 2. OBJETIVO GENERAL...................................................................................................... 7 3. OBJETIVOS ESPECÍFICOS ............................................................................................. 8 4. JUSTIFICACIÓN............................................................................................................... 8 5. ALCANCE ......................................................................................................................... 8 6. MARCO TEÓRICO........................................................................................................... 9
6.1 ERP............................................................................................................................... 9 6.2 ESTADO DEL ARTE.................................................................................................. 9
6.2.1 SAP...................................................................................................................... 10 6.2.2 SIIGO................................................................................................................... 10 6.2.3 Helisa ................................................................................................................... 11
6.3 CONCEPTOS............................................................................................................. 12 6.3.1 Cartera.................................................................................................................. 12 6.3.2 Clientes ................................................................................................................ 12 6.3.3 Facturas................................................................................................................ 13 6.3.4 Inventario............................................................................................................. 14 6.3.5 Nómina ................................................................................................................ 15 6.3.6 Contabilidad......................................................................................................... 16
7. HORUS: Sistema Integral Administrativo y Financiero de Pequeñas Empresas............. 18 7.1 USUARIOS DEL SISTEMA..................................................................................... 18 7.2 REQUERIMIENTOS FUNCIONALES .................................................................... 18
7.2.1 Cartera.................................................................................................................. 18 7.2.2 Clientes ................................................................................................................ 23 7.2.3 Facturas................................................................................................................ 31 7.2.4 Inventario............................................................................................................. 36 7.2.5 Nómina ................................................................................................................ 49 7.2.6 Contabilidad......................................................................................................... 59
7.3 REQUERIMIENTOS NO FUNCIONALES.............................................................. 71 7.4 DISEÑO...................................................................................................................... 72
7.4.1 Diagrama de clases .............................................................................................. 72 7.4.1.1 Inventario...................................................................................................... 72 7.4.1.2 Contabilidad.................................................................................................. 73
7.4.2 Diagramas de secuencia....................................................................................... 74 7.4.2.1 Inventario...................................................................................................... 74 7.4.2.2 Contabilidad.................................................................................................. 79
7.4.4 Arquitectura de la aplicación ............................................................................... 85 7.4.5 Base de datos ....................................................................................................... 86
7.4.5.1 Inventario...................................................................................................... 86 7.4.5.2 Contabilidad.................................................................................................. 92
8. CONCLUSIONES............................................................................................................ 99 9. REFERENCIAS ............................................................................................................. 100
6
1. INTRODUCCIÓN
Los programas contables han ido evolucionando con el tiempo para abarcar no solo la
información financiera de la empresa sino también la administrativa, llevando a mejorar la
productividad y la gestión. Estos programas ahora llamados ERP (Enterprise Resource
Planning) buscan ser una herramienta que va más allá de almacenar diferentes movimientos
contables, ya que permiten a la gerencia tomar decisiones más fácilmente al presentar la
información de una manera más intuitiva.
Un reto para las empresas que desarrollan estos programas es que no todas las compañías
son iguales, ya sea por la forma como manejan la información o por su actividad
económica, debido a esto todos los esfuerzos están enfocados a desarrollar aplicaciones lo
suficientemente genéricas y parametrizables como para que se puedan adaptar a los
diferentes tipos de organizaciones, creando módulos especiales para cada caso especial.
Otra característica fundamental que deben tener estos productos es que deben poder crecer
con la empresa, ya que estas con el tiempo aumentarán sus necesidades de almacenamiento
de información y número de usuarios.
La popularidad de estos programas ha llevado a que sea más difícil para los empresarios
escoger entre las múltiples opciones, no solo porque pueden ofrecerles funciones que no
necesiten sino por los precios que pueden llegar a alcanzar estos productos.
Teniendo en cuenta lo anterior, se busca desarrollar un sistema enfocado a MiPymes, que
las ayude en el manejo administrativo y financiero más no en el “core” del negocio. Se
enfoca además en empresas comerciales debido al manejo que se hace del inventario, ya
que para el caso de las empresas industriales habría que distinguir entre productos
terminados y materias primas, y para las empresas de servicios el manejo del inventario es
demasiado exhaustivo.
El sistema permite manejar algunas aplicaciones básicas, la contabilidad y otro módulo que
permite la generación de reportes dinámicos por medio de tablas y cuadros.
7
La contabilidad básica permitirá manejar todas las cuentas que se relacionen con los
módulos de la empresa que se utilicen; por ejemplo, para nómina se manejarán las cuentas
cesantías, intereses de cesantías, primas de servicio, etc., que son las que se necesitan para
el manejo de los empleados. Este módulo permitirá también la generación de balances,
estado de resultados y cierres de período. Además permite que se carguen los valores
iniciales cuando se comienza a usar del sistema.
Las aplicaciones adicionales que se incluyen son la de cartera que permite llevar un control
de las deudas de los clientes y del calendario tributario. El módulo de clientes facilita la
inserción de información en el módulo de facturas y además permite la generación de
reportes que se pueden usar por ejemplo en mercadeo. El módulo de facturación, ayudado
con la información disponible en los módulos de inventario y clientes. El módulo de
inventario permite llevar un registro de la mercancía disponible así como de su precio de
venta. El módulo de nómina permite llevar el control de toda la información contable para
el manejo de usuarios.
La generación de reportes se podrá realizar tanto sobre la información almacenada por cada
módulo como por la almacenada por la contabilidad y como indiqué anteriormente los
reportes que se generen pueden ser tablas o cuadros.
2. OBJETIVO GENERAL
Desarrollar un sistema para el manejo integrado de aplicaciones administrativas y
financieras de pequeñas empresas, enfocándolo principalmente a empresas comerciales,
pero con posibilidad de extenderse para el uso de empresas industriales o de servicios.
8
3. OBJETIVOS ESPECIFICOS
• Documentar los requerimientos funcionales y no funcionales para cada uno de los
procesos que se van a apoyar.
• Definir una arquitectura modular organizada alrededor de una base de datos común,
por medio del uso de interfaces.
• Tener un sistema que pueda ser instalado y usado tanto en Linux como en Windows.
• Desarrollar dos módulos básicos que soporten o faciliten el uso de otros.
• Hacer un sistema con código abierto que permita a cada empresa agregarle mayor
funcionalidad o ajustarlo aun más a su medida.
4. JUSTIFICACION
Cada día las empresas pequeñas han visto la necesidad de acceder a programas que les
ayuden con el manejo financiero y administrativo. Además un informe del DANE del año
2002 muestra que hay un amplio mercado para este tipo de aplicaciones no solo porque hay
496.963 MiPymes comerciales, lo que representa más del 90% de las empresas existentes
en el país, sino porque al menos la mitad no lleva una contabilidad [1].
Se busca también poder ayudarles a estas empresas a integrar en un solo sistema toda la
información financiera y administrativa, para permitirle a esta organizarse mejor y así
ayudarle a conocer exactamente con que recursos dispone.
5. ALCANCE El sistema se constituirá de los siguientes módulos que serán llevados hasta la etapa de
análisis a excepción de los módulos de inventario y contabilidad que serán llevados hasta la
etapa de pruebas: nómina, flujo de caja, facturas, cartera, presupuesto, generador de
reportes y contabilidad.
9
Los módulos de contabilidad y de inventario serán documentados e implementados en su
totalidad y se realizaran pruebas sobre ellos. La documentación incluye diagramas de
secuencia, diagrama de clases y casos de uso. También se documentaran las bases de datos
usadas en la implementación de los mismos y una explicación de la arquitectura escogida
para la implementación de la aplicación.
6. MARCO TEORICO
6.1 ERP Los ERP (Enterprise Resource Planning) o Aplicaciones de Planificación de Recursos
Empresariales son sistemas que están interrelacionados entre si, formando un único sistema
integral que busca abarcar todas las áreas de información de la organización entre las que
están: compras, ventas, producción, recursos humanos y finanzas, que a su vez tiene las
siguientes áreas: cuentas por cobrar, cuentas por pagar, inventarios y activos fijos [2].
Los ERP han ido evolucionando desde el manejo de inventarios en los años 60`s, pasando
luego en los 70’s a planificar la necesidades de manejo de materia prima en la empresa,
siguiendo en los 80’s, el concepto de integración fue evolucionando no solo para abarcar
los procesos de producción sino también los de logística y finalmente los ERP se llamaron
como tal cuando abarcaron todas las áreas de información de la empresa [2].
El líder mundial en este tipo de aplicaciones es el gigante alemán SAP que fue en parte el
creador del concepto, seguido por Oracle Corp, PeopleSoft Inc., Baan Co. NV, J.D.
Edwards & Co y Navision comprado por Microsoft [3].
6.2 ESTADO DEL ARTE
A continuación se muestran algunos ERP, entre los que están el mejor a nivel mundial y
dos sistemas colombianos reconocidos.
10
6.2.1 SAP El sistema mySAP buscar redefinir los ERP con características y funciones que buscan dar
soporte a las siguientes actividades del negocio como:
• Ofrecer herramientas que permitan a cada empleado desarrollarse en su entorno de
trabajo [4].
• Herramientas de análisis que brinden soporte a la administración estratégica la empresa,
análisis operacional, análisis de la fuerza de trabajo y análisis financiero [4].
• Tiene utilidades que buscan automatizar el manejo contable y financiero que permiten
tener un conocimiento más profundo de la empresa [4].
• Trae funciones que dan soporte al manejo del ciclo de vida del empleado, al despliegue
de la fuerza de trabajo y manejo de la nomina con el fin de maximizar la fuerza de
trabajo [4].
• Permite manejar el flujo logístico de los ciclos del negocio, como son el de realizar una
compra o un pedido [4].
• Manejo de servicios corporativos como: servicios centralizados y descentralizados para
manejar las propiedades inmobiliarias; ambientes, salud, y seguridad; incentivos y
comisiones; y viajes corporativos [4].
Como se puede ver mySAP ofrece una amplia funcionalidad soportada por su vasta
experiencia y aunque esta puede ser la salvación para una empresa, su costo es bastante
elevado llegando a ser de 500 mil dólares aproximadamente contando servicios,
entrenamiento y consultoría, lo que lo deja absolutamente fuera del alcance de las pequeñas
y medianas empresas [5].
6.2.2 SIIGO
SIIGO es una aplicación administrativa que permite llevar un registro detallado de las
operaciones de la empresa y en general de todos los aspectos relacionados con la
administración de negocios [6]. Algunas de sus características son:
11
• Se compone de 14 módulos que le permiten controlar con sumo detalle todas las áreas
de la empresa [6].
• Es un sistema integral que maneja toda la información de la empresa, lo que permite
tener toda la información actualizada cada vez que se inserta un documento. Además de
ser integral permite obtener rápidamente consolidadas todas las cifras lo que evita tener
hacer las digitaciones solo una vez y no varias en diferentes módulos independientes
[6].
• Almacena información histórica del comportamiento de las cifras a través del año,
además permite que se puedan actualizar los movimientos de cualquier mes sin tener
que realizar procesos engorrosos [6].
• Permite hacer proyecciones sobre la información almacenada para poder determinar el
impacto de las decisiones, además se pueden importar los datos a Excel para poder
hacer un manejo más cómodo de la información [6].
• Puede manejar múltiples empresas y diferentes monedas, permitiendo mostrar
información de manera individual o consolidada [6].
• Ofrece seguridad a los datos al permitir que solo personal autorizado tenga acceso o
pueda manipular la información [6].
Finalmente es un producto bastante robusto dado por la experiencia de estar 15 años en el
mercado, lo que le permite tener un conocimiento muy vasto del mercado colombiano.
6.2.3 Helisa
Finalmente Helisa es otro ERP que ha ido evolucionando desde 1988, también con una
amplia experiencia en el mercado, pero menos reconocido que el anterior [7]. Entre sus
principales características se encuentran:
• Es un sistema que soporta las siguientes plataformas en ambientes monousuario o
multiusuario: DOS, Windows, NT y Novell [7].
• Permite manejar hasta 99 empresas, permitiendo consolidar la información de todas las
empresas o todos los módulos, presentando una contabilidad independiente [7].
12
• Incluye un editor de texto que permite definir todo tipo de documentos [7].
• Es parametrizable y permite modificar la información de períodos anteriores [7].
• Permite exportar e importar información a través de archivos planos [7].
• Los módulos existentes son: contabilidad, facturación, inventario, administración
kardex, cuenta cero y nomina [7].
6.3 CONCEPTOS
6.3.1 Cartera El módulo de cartera se encarga de manejar tanto las deudas que tiene la empresa como las
que adquieren los clientes con esta y se manejan dos tipos de documentos: las letras de
cambio y los pagarés [8].
La contabilización de las deudas se hace dependiendo si se tiene un documento legal que
las soporte o no; las que tienen un documento legal de soporte se almacenan en cuentas por
cobrar o cuentas por pagar corrientes, y las que no se almacenan en cuentas por pagar o
cobrar ordinarias [8].
El módulo de cartera permitirá hacer un análisis de las cuentas por cobrar o pagar,
totalizado por cliente, por zona, por vendedor, por proveedor, o por clasificación de cliente.
Manejará también para efectos tributarios un calendario con información sobre IVA,
descuentos, retenciones y acumulado bimensual del IVA.
6.3.2 Clientes El módulo de clientes fue pensado inicialmente para poder facilitar el manejo de los
clientes que se tienen a la hora de agregar una factura, pero dado que su manejo es muy
similar al de los proveedores se extendería su uso y pasaría a llamarse terceros.
La flexibilidad de este módulo permite que se le puedan agregar los campos de información
que se deseen por lo que es altamente configurable.
13
Adicionalmente permitirá generar reportes sobre los mismos con el fin de organizarlos por
ejemplo: por zona, por vendedor, por incumplimiento, por vencimiento o cualquier otra que
se encuentre dentro de los campos del mismo o relacionada con los demás módulos.
6.3.3 Facturas
En el módulo de facturas permitirá manejar todas las ventas de la empresa y en conjunto
con el módulo de cartera podrá manejar las ventas a plazos y a crédito. Este módulo estará
estrechamente ligado también con el de inventario y con el de clientes. Junto con el módulo
de inventario, permitirá a la empresa vender productos que se encuentren efectivamente en
bodega y facilitará al usuario al igual que el módulo de clientes el llenado de las facturas.
En el siguiente cuadro se muestra una definición de lo que son las ventas y cómo están
conformadas. Se muestra a dónde pueden estar destinadas las ventas, también cómo puede
ser la forma de pago de un cliente y además el plazo en cual puede realizar el pago. En
general el cuadro muestra lo que debería incluir todo ERP que desee incluir un módulo de
ventas, por lo pronto el sistema diseñado en este trabajo no soporta como medio de pago la
permutación por otro bien o servicio [9].
14
A continuación se muestra como están conformadas las ventas de una empresa:
Figura 1. Definición ventas [9]
El módulo de facturas permitirá guardar los registros de la mercancía comprada por los
clientes. El módulo permitirá crear o modificar sus campos1, hacer un seguimiento histórico
de movimientos, podrá generar estadísticas de ventas por cliente o por campos
personalizados y por último generar un informe de los clientes inactivos.
El módulo tendrá por sentado los siguientes parámetros inmodificables por ser estos
obligatorios: número consecutivo, régimen, autorización DIAN para numeración, nombre,
apellido, discriminando el valor unitario, total e IVA.
6.3.4 Inventario
La función primordial de módulo inventario es la de brindar apoyo al módulo de facturas ya
que el usuario escoge un producto del catálogo y éste le genera la factura correspondiente.
1 A excepción de los campos obligatorios que se relacionan más adelante.
Ventas
Lugar de destino
Plazo para el pago
Medio de pago
Nacionales
Exportaciones
De contado A crédito
A plazos
Con dinero o cheque
Permuta por otro bien o servicio
15
El módulo tiene las siguientes características: maneja tres formas de valoración de
mercancías que son: PROMEDIO, FIFO y LIFO; permite tener un registro de toda la
mercancía entrante y saliente, clasificándola como venta, compra, robo, etc. y el usuario
tiene la libertad además de poder definir las unidades en las cuales venderá su mercancía.
La taxonomía usada para la clasificación de la mercancía que permite tener tres niveles de
clasificación que pueden ser definidas de acuerdo a las necesidades de cada empresa [10]:
Figura 2. Taxonomía productos
6.3.5 Nómina
El módulo de nómina permitirá el manejo de toda la información relacionada con el pago
de salarios a empleados.
Para poder tener un manejo completo de la nómina de una empresa y poder manejar la
mayoría de las alternativas que se puedan presentar en el mercado, se deben tener en cuenta
los siguientes campos: nombre, cargo, fecha de ingreso, sueldo mensual, días trabajados,
comisiones, básico, horas extras, dominicales y festivos, auxilio de transporte, total
devengado, EPS, ARS, retención en la fuente, aportes a pensiones, anticipos, descuentos
por libranza, total deducciones y neto a pagar.
También hay que tener en cuenta quien debe pagar los aportes y el porcentaje, además de
cuándo se le deben pagar algunas prestaciones. Por ejemplo, para el pago de intereses por
cesantías el empleador debe pagar el 12% del salario al final del año, las primas de
16
servicios se deben pagar a mitad y al final del año, los aportes a la EPS corresponden al
12% del salario y lo pagan 1/3 el trabajador y 2/3 el empleador, los aportes a pensiones
corresponden al 14.5% del salario y lo pagan 25% el trabajador y 75% el empleador, los
seguros de riesgos profesionales (ARS) los paga el empleador dependiendo del tipo de
riesgo y finalmente las prestaciones extralegales son las que decida el empleador. Hay que
tener en cuenta que estos no son los únicos descuentos y que los montos de descuento y de
pago pueden cambiar por lo que el módulo debe poder soportarlos.
Adicionalmente el módulo permitirá discriminar los descuentos generados por los aportes,
hará un cálculo de los aportes y un cálculo de las cesantías y sus correspondientes intereses.
6.3.6 Contabilidad
El módulo de contabilidad permitirá registrar todos los movimientos contables que se
generen debido a las transacciones que se realicen en la aplicación. Estas transacciones
serán todas las que se generen en los módulos descritos anteriormente como el de cartera,
nómina, inventario y facturas.
El registro de estas transacciones será transparente para el usuario ya que él no tendrá que
actualizar los registros contables luego de cada transacción, estos se harán
automáticamente. Para esto, el usuario deberá definir previamente al uso de la aplicación
las cuentas temporales que se usarán para organizar y contabilizar las transacciones
generadas. La razón de esto es que por ejemplo si en el caso del inventario se desea tener
por separado un registro de las compras, las ventas y en otra cuenta las pérdidas de
mercancía por concepto de robo o pérdidas, este registro se debe hacer en cuentas
separadas. Debido a que no hay un estándar que defina exactamente a que cuenta deben ir
los registros generados por estos conceptos, el usuario podrá asignar libremente la cuenta
en la que serán cargados.
El usuario podrá también consultar los registros por día, mes o año y adicionalmente podrá
organizar esta información para poder verla por cuenta, en forma de un balance o de Estado
de Resultados.
17
Para la organización del catálogo de cuentas se usarán los siguientes niveles [11]:
Clase: El primer dígito.
Grupo: Los dos primeros dígitos.
Cuenta: Los cuatro primeros dígitos.
Subcuenta: Los seis primeros dígitos.
De acuerdo a lo anterior las clases que identifican al primer dígito son [11]:
Clase 1: Activo
Clase 2: Pasivo
Clase 3: Patrimonio
Clase 4: Ingresos
Clase 5: Gastos
Clase 6: Costos de ventas
Clase 7: Costos de producción o de operación
Clase 8: Cuentas de orden deudoras
Clase 9: Cuentas de orden acreedoras
Finalmente se podrá hacer el cierre de las cuentas de acuerdo al período definido por el
usuario, este cierre consiste en sacar los totales de las cuentas temporales generadas por el
manejo de inventarios, impuestos, ajustes por inflación, etc. y que pertenezcan a las clases
4, 5, 6 y 7 para poder armar el Estado de Resultados. Con los totales obtenidos se arma el
Balance General con las clases 1, 2 y 3.
18
7. HORUS: Sistema Integral Administrativo y Financiero
de Pequeñas Empresas 7.1 USUARIOS DEL SISTEMA Básicamente hay dos tipos de usuarios que interactuarán con la aplicación:
• Administrador: Es la persona encargada de brindar soporte a la aplicación, además de
ajustar todos los parámetros necesarios para el funcionamiento de la aplicación acorde a
las necesidades de la empresa.
• Auxiliar contable: Se encarga de registrar y obtener listados de toda la información en
el sistema.
• Usuario generador de reportes: Es el que solamente puede consultar la información
disponible en la aplicación.
7.2 REQUERIMIENTOS FUNCIONALES 7.2.1 Cartera
Administrador
CU 1 Agregar Fecha
CU 2 Modificar Fecha
CU 3 Agregar Cuenta
CU 4 Modificar Cuenta
Auxiliar Contable
Figura 3. Casos de uso módulo cartera
Nombre del Caso
de Uso
Agregar Fecha
Actores Administrador y Auxil iar contable
Resumen Agrega una fecha al calendario tributario que puede ser IVA, descuentos,
retenciones y acumulado bimensual del IVA
19
retenciones, y acumulado bimensual del IVA.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de cartera y luego la función de
agregar fecha.
• Se selecciona la fecha del calendario en la que se desea agregar el
evento.
• Se coloca el nombre del evento que aparecerá en el calendario y luego
una descripción del mismo.
• Se hace click en el botón enviar para procesar la información.
• Se ha agregado el evento al calendario y se le informa al usuario que fue
exitosa la operación.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
• El usuario selecciona un día o un mes que no corresponden al día o mes
seleccionados, por lo que el sistema le indicará que debe seleccionarlos
de nuevo. • El usuario selecciona un año inferior al año en curso, por lo que el
sistema le indicará el error para que lo corrija. • El usuario no coloca ningún nombre al evento, por lo que el sistema le
informará del error y le permitirá insertar un nombre.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones true
PostCondiciones Se habrá agregado un evento al calendario.
Criterios de
aceptación
Habrá una pantalla de confirmación que le indicará que el evento fue
agregado al calendario satisfactoriamente.
Nombre del Caso
de Uso
Modificar Fecha
Actores Administrador y Auxil iar contable
Resumen Modifica una fecha del calendario tributario que puede ser de IVA,
descuentos, retenciones, y acumulado bimensual del IVA.
20
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de cartera y luego la función de
modificar fecha.
• Se selecciona la fecha en el calendario que se desea modificar.
• Si se desea se modifica el nombre y la descripción del evento.
• Se hace click en el botón enviar para procesar la información.
• Se ha modificado el evento del calendario y se le informa al usuario que
fue exitosa la operación.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
• El usuario no coloca ningún nombre al evento por lo que el sistema le
informará del error y le permitirá insertar un nombre.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña valida para poder ingresar al
sistema.
Precondiciones true
PostCondiciones Se habrá modificado un evento del calendario.
Criterios de
aceptación
Habrá una pantalla de confirmación que le indicara que el evento fue
modificado en el calendario satisfactoriamente.
Nombre del Caso
de Uso
Agregar Cuenta
Actores Administrador y Auxil iar contable
Resumen Agrega una cuenta por cobrar de un cliente.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de cartera y luego la función de
agregar cuenta.
• Si el cliente no existe se le pide que inserte los datos básicos del mismo,
de lo contrario selecciona un cliente existente.
• Selecciona la fecha de pago de la cuenta.
• Inserta el monto de la deuda.
• Se hace click en el botón enviar para procesar la información.
21
• Se ha agregado la cuenta y se le informa al usuario del éxito de la
operación.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
• El usuario selecciona un día o un mes que no corresponden al día o mes
seleccionados, por lo que el sistema le indicará que debe seleccionarlos
de nuevo. • El usuario selecciona un año inferior al año en curso por lo que el
sistema le indicará el error para que lo corrija. • El usuario no coloca ningún monto del valor de la deuda o coloca un
valor negativo o inválido (números y letras), por lo que el sistema le
informa del error y le permite corregir el problema.
• El cliente no existe en el sistema por lo que se le indica al usuario que
debe crearlo primero.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones El cliente del que se va a registrar la cuenta debe haber sido previamente
creado.
PostCondiciones Se habrá agregado una nueva cuenta a un cliente.
Criterios de
aceptación
Habrá una pantalla de confirmación que le indicará que la cuenta fue
agregada al cliente satisfactoriamente.
Nombre del Caso
de Uso
Modificar Cuenta
Actores Administrador y Auxil iar contable
Resumen Modifica la fecha de pago de una cuenta por cobrar de un cliente.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de cartera y luego la función de
agregar cuenta.
• Se selecciona el cliente del que se quiere modificar la cuenta.
• Selecciona la fecha de pago de la cuenta.
• Se hace click en el botón enviar para procesar la información.
22
• Se ha agregado la cuenta y se le informa al usuario del éxito de la
operación.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
• El usuario selecciona un día o un mes que no corresponden al día o mes
seleccionados, por lo que el sistema le indicara que debe seleccionarlos
de nuevo. • El usuario selecciona un año inferior al año en curso por lo que el
sistema le indicará el error para que lo corrija.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña valida para poder ingresar al
sistema.
Precondiciones El cliente del que se va a registrar la cuenta debe haber sido previamente
creado, al igual que la cuenta.
PostCondiciones Se habrá modificado la cuenta de un cliente.
Criterios de
aceptación
Habrá una pantalla de confirmación que le indicará que la cuenta fue
modificada satisfactoriamente.
23
7.2.2 Clientes
CU 4 Agregar Cliente
CU 5 Modificar Cliente
CU 6 Cambiar Estado ClienteAuxiliar Contable
Administrador
CU 7 Agregar Campo Cliente
CU 8 Modificar Campo Cliente
CU 9 Cambiar Estado CampoCliente
CU 2 Consultar Clientes
CU 1 Listar Clientes
CU 3 Mostrar Informacion Cliente
Usuario Generador de Reportes
<<include>>
<<include>>
Figura 4. Casos de uso módulo clientes
Nombre del Caso
de Uso
Listar Clientes
Actores Administrador, Auxil iar contable y Usuario Generador de Reportes
Resumen Permite organizar los clientes por zona, por vendedor, por cumplimiento, y
por otra clasificación personalizada.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de clientes y luego la función de
listar clientes.
• Se selecciona el fi l tro a usar para mostrar los clientes.
• Se hace click en el botón enviar para procesar la información.
• Se muestra una lista de los clientes de acuerdo al fi l tro aplicado.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
24
Caminos de
excepción
• El usuario coloca una combinación de fi ltros inválida, por lo que se le
informa del error y se le da la oportunidad para que pueda modificar los
fi ltros.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña valida para poder ingresar al
sistema.
Precondiciones Hay clientes registrados en el sistema.
PostCondiciones Se habrá mostrado una lista con los clientes indicados por el fi l tro.
Criterios de
aceptación
Si la selección de fi ltros es correcta y hay clientes que cumplan con los
criterios indicados, se mostrará un listado con los nombres de los clientes
sobre los cuales se podrá consultar información adicional haciendo clic en el
nombre.
Nombre del Caso
de Uso
Consultar Clientes
Actores Administrador, Auxil iar contable y Usuario Generador de Reportes
Resumen Permite hacer búsquedas en las que el usuario debe introducir algún texto
para que este sirva como criterio para realizar las búsquedas.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de clientes y luego la función de
consultar clientes.
• Se introduce el texto que servirá para realizar la búsqueda.
• Se selecciona sobre que campo se quiere realizar la búsqueda.
• Se hace click en el botón enviar para procesar la información.
• Se muestra una lista de los clientes de acuerdo al criterio aplicado.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
No aplica
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
25
Precondiciones Hay clientes registrados en el sistema.
PostCondiciones Se habrá mostrado una lista con los clientes indicados por el criterio de
búsqueda.
Criterios de
aceptación
Si el criterio de búsqueda arroja resultados se mostrará un listado con los
nombres de los clientes sobre los cuales se podrá consultar información
adicional haciendo clic en el nombre.
Nombre del Caso
de Uso
Mostrar Información Cliente
Actores Administrador, Auxil iar contable y Usuario Generador de Reportes
Resumen Muestra la información disponible del cliente, como dirección, teléfono, etc.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de clientes y luego la función de
mostrar información cliente.
• Se entra a los casos de uso listar clientes y consultar clientes, para
luego aplicar algún criterio de búsqueda para finalmente mostrar una
tabla de clientes.
• Se hace click sobre el nombre del cliente.
• Se despliega la información básica del cliente.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Se puede acceder desde los casos de uso listar y consultar clientes.
Caminos de
excepción
No aplica
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña valida para poder ingresar al
sistema.
Precondiciones Hay clientes registrados en el sistema.
PostCondiciones Se habrá mostrado toda la información básica disponible del cliente.
Criterios de
aceptación
Se abre una página con la información disponible del cliente.
26
Nombre del Caso
de Uso
Agregar Cliente
Actores Administrador y Auxil iar contable
Resumen Agrega un cliente
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de clientes y luego la función de
agregar cliente.
• Se pide al usuario que llene los campos de texto requeridos de acuerdo
a la información solicitada
• Se hace click sobre le botón enviar para procesar la información.
• Se despliega una pantalla de confirmación para indicar que el cliente fue
ingresado satisfactoriamente.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
El formato de la información insertada en los campos de texto no
corresponde al formato existente en la base de datos, por lo que se le pide al
usuario que rectifique la información suministrada.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña valida para poder ingresar al
sistema.
Precondiciones True
PostCondiciones Se habrá desplegado una página que indicará que la inserción ha sido
satisfactoria.
Criterios de
aceptación
Se muestra una página que indica que la inserción fue satisfactoria.
Nombre del Caso
de Uso
Modificar Cliente
Actores Administrador y Auxil iar Contable
Resumen Modifica un cliente
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de clientes y luego la función de
modificar cliente.
27
• El usuario selecciona un cliente del que desee modificar la información.
• Se pide al usuario que llene los campos de texto requeridos de acuerdo
a la información solicitada
• Se hace click sobre le botón enviar para procesar la información.
• Se despliega una pantalla de confirmación para indicar que el cliente fue
modificado satisfactoriamente.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
El formato de la información insertada en los campos de texto no
corresponde al formato existente en la base de datos, por lo que se le pide al
usuario que rectifique la información suministrada.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña valida para poder ingresar al
sistema.
Precondiciones True
PostCondiciones Se habrá modificado la información del cliente.
Criterios de
aceptación
Se muestra una página que indica que la modificación fue satisfactoria.
Nombre del Caso
de Uso
Cambiar Estado Cliente
Actores Administrador
Resumen Modifica el estado de un cliente.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de clientes y luego la función de
cambiar estado cliente.
• El usuario selecciona un cliente del que desee modificar el estado.
• El usuario modifica el estado del cliente.
• Se hace click sobre le botón enviar para procesar la información.
• Se despliega una pantalla de confirmación para indicar que el estado del
usuario fue modificado satisfactoriamente.
Caminos El usuario puede decidir si cambiar de función o de módulo.
28
alternativos
Caminos de
excepción
No aplica
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones True
PostCondiciones Se habrá modificado el estado del cliente.
Criterios de
aceptación
Se muestra una página que indica que la modificación fue satisfactoria.
Nombre del Caso
de Uso
Agregar Campo Cliente
Actores Administrador
Resumen Agrega un campo a un cliente.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de clientes y luego la función de
agregar campo cliente.
• El usuario inserta el nombre del campo a almacenar.
• El usuario selecciona el tipo de campo de datos.
• El usuario selecciona el orden en que va a ser mostrado el campo.
• Se hace click sobre le botón enviar para procesar la información.
• Se despliega una pantalla de confirmación para indicar que el campo del
cliente fue creado satisfactoriamente.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
Si el usuario no inserta o selecciona algún campo se le pide que lo haga.
Si el usuario no coloca caracteres alfanuméricos o coloca espacios en el se
le pide que rectifique la información.
Puntos de
Extensión
No aplica
29
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Es deseable que la creación de campos de clientes se haga con la tabla de
clientes vacía, para evitar huecos en la información almacenada.
Precondiciones True
PostCondiciones Se habrá agregado un campo al cliente.
Criterios de
aceptación
Se muestra una página que indica que creación del campo fue satisfactoria.
Nombre del Caso de Uso
Modificar Campo Cliente
Actores Administrador
Resumen Modificar un campo de un cliente.
Curso básico de eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de clientes y luego la función de
modificar campo cliente.
• El usuario puede modificar el nombre del campo a almacenar.
• El usuario puede seleccionar el orden en que va a ser mostrado el
campo.
• Se hace click sobre le botón enviar para procesar la información.
• Se despliega una pantalla de confirmación para indicar que el campo del
cliente fue modificado satisfactoriamente.
Caminos alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de excepción
Si el usuario no inserta o selecciona algún campo se le pide que lo haga.
Si el usuario no coloca caracteres alfanuméricos o coloca espacios en el se
le pide que rectifique la información.
Puntos de Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones True
PostCondiciones Se habrá modificado el campo del cliente.
Criterios de aceptación
Se muestra una página que indica que la modificación fue satisfactoria.
30
Nombre del Caso
de Uso
Cambiar Estado Campo Cliente
Actores Administrador
Resumen Modifica el estado de un campo de un cliente para dejarlo inactivo o activo
para mostrarlo o no, cuando se consulte la información del mismo.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de clientes y luego la función de
Cambiar Estado Campo Cliente.
• El usuario puede modificar el estado del campo.
• Se hace click sobre le botón enviar para procesar la información.
• Se despliega una pantalla de confirmación para indicar que el campo del
cliente fue modificado satisfactoriamente.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
No aplica
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones True
PostCondiciones Se habrá modificado el campo del cliente.
Criterios de aceptación
Se muestra una página que indica que la modificación fue satisfactoria.
31
7.2.3 Facturas
Administrador
CU 1 Agregar Camp
CU 2 Modificar Camp
CU 3 Agregar Factur
CU 4 Anular Factur
CU 5 Listar Factura Auxiliar Contable
CU 6 Mostrar Informacion Factu
Usuario Generador de Reporte
Figura 5. Casos de uso módulo facturas
Nombre del Caso
de Uso
Agregar Campo
Actores Administrador
Resumen Agrega un campo a una factura.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de facturas y luego la función de
agregar campo.
• El usuario inserta el nombre del campo a almacenar.
• El usuario selecciona el tipo de campo de datos.
• El usuario selecciona el orden en que va a ser mostrado el campo.
• Se hace click sobre le botón enviar para procesar la información.
• Se despliega una pantalla de confirmación para indicar que el campo del
cliente fue creado satisfactoriamente.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
Si el usuario no inserta o selecciona algún campo se le pide que lo haga.
Si el usuario no coloca caracteres alfanuméricos o coloca espacios en el se
le pide que rectifique la información.
32
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Es deseable que la creación de campos de las facturas se haga con la tabla
de facturas vacía, para evitar huecos en la información almacenada.
Precondiciones True
PostCondiciones Se habrá agregado un campo a la factura.
Criterios de
aceptación
Se muestra una página que indica que la creación del campo fue
satisfactoria.
Nombre del Caso
de Uso
Modificar Campo
Actores Administrador
Resumen Modificar un campo de una factura.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de facturas y luego la función de
Modificar Campo.
• El usuario puede modificar el nombre del campo a almacenar.
• El usuario puede seleccionar el orden en que va a ser mostrado el
campo.
• El usuario puede cambiar el estado del campo para decidir si este va a
ser mostrado en la factura o no.
• Se hace click sobre le botón enviar para procesar la información.
• Se despliega una pantalla de confirmación para indicar que el campo de
la factura fue modificado satisfactoriamente.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
Si el usuario no inserta o selecciona algún campo se le pide que lo haga.
Si el usuario no coloca caracteres alfanuméricos o coloca espacios en el se
le pide que rectifique la información.
Puntos de
Extensión
No aplica
33
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones Trae
PostCondiciones Se habrá modificado el campo de la factura.
Criterios de
aceptación
Se muestra una página que indica que la modificación fue satisfactoria.
Nombre del Caso
de Uso
Agregar Factura
Actores Administrador y Auxil iar contable
Resumen Agrega una factura.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de facturas y luego la función de
agregar factura.
• Se pide al usuario que llene los campos de texto requeridos de acuerdo
a la información solicitada
• Se hace click sobre le botón enviar para procesar la información.
• Se despliega una pantalla de confirmación para indicar que la factura fue
ingresada satisfactoriamente.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
El formato de la información insertada en los campos de texto no
corresponde al formato existente en la base de datos, por lo que se le pide al
usuario que rectifique la información suministrada.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones True
PostCondiciones Se habrá desplegado una página que indicara que la inserción ha sido
satisfactoria.
Criterios de
aceptación
Se muestra una página que indica que la inserción fue satisfactoria.
34
Nombre del Caso
de Uso
Anular Factura
Actores Administrador y Auxil iar Contable
Resumen Anula una factura, con lo que esta no queda registrada en la contabilidad.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de facturas y luego la función de
anular factura.
• El usuario selecciona la factura que desee anular. No se muestran las
facturas que ya han sido anuladas.
• Anula la factura con el fin de que no quede registrada en la contabilidad.
• Se hace click sobre le botón enviar para procesar la información.
• Se despliega una pantalla de confirmación para indicar que la factura fue
anulada satisfactoriamente.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
No aplica
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones True
PostCondiciones Se habrá anulado la factura.
Criterios de
aceptación
Se muestra una página que indica que la factura fue anulada.
Nombre del Caso
de Uso
Listar Facturas
Actores Administrador, Auxil iar contable y Usuario Generador de Reportes
Resumen Muestra una lista de las facturas que puede ser fi ltrada de acuerdo criterio o
criterios seleccionados.
35
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de facturas y luego la función de
listar facturas.
• Si se desea se puede seleccionar uno o varios fi ltros, o insertar una
cadena para hacer alguna búsqueda sobre los campos de la factura.
• Se hace click en el botón enviar para procesar la información.
• Se muestra una lista de las facturas de acuerdo al fi l tro aplicado.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
• El usuario coloca una combinación de fi ltros invalida, por lo que se le
informa del error y se le da la oportunidad para que pueda modificar los
fi ltros.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones Hay facturas presentes en el sistema.
PostCondiciones Se habrá mostrado una lista con las facturas indicadas por el fi l tro.
Criterios de
aceptación
Si la selección de fi ltros es correcta y hay facturas que cumplen con los
criterios indicados, se mostrará un listado con la información básica sobre la
cual se podrá profundizar haciendo click sobre la misma.
Nombre del Caso
de Uso
Mostrar Información Factura
Actores Administrador, Auxil iar contable y Usuario Generador de Reportes
Resumen Muestra la información disponible de una factura como número consecutivo,
régimen, etc.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de facturas y luego la función de
mostrar información factura.
• Se entra a los casos de uso listar facturas, para luego aplicar algún
criterio de búsqueda para finalmente mostrar una tabla de facturas.
• Se hace click sobre la factura.
• Se despliega la información disponible de la factura.
36
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Se puede acceder desde los casos de uso listar facturas.
Caminos de
excepción
No aplica
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones Hay facturas registradas en el sistema.
PostCondiciones Se habrá mostrado toda la información básica disponible de la factura.
Criterios de
aceptación
Se abre una página con la información disponible de la factura.
7.2.4 Inventario
Auxiliar Contable Administrador
CU 1 Registro de Mercancia
CU 2 Ajuste Registro deMercancias
CU 3 Creacion de Karde
CU 4 Modificacion del Karde
CU 5 Consultar Producto
CU 6 Mostrar informacion Produc
CU 7 Agregar Clasificacion
CU 8 Modificar Clasificacio
CU 9 Agregar Unidad
CU 10 Eliminar Unidad
CU 10 Cargar Archiv
CU 11 Ver Arvhivos Pendient
Usuario Generador de Reporte
<<include>>
Figura 6. Casos de uso módulo inventario
37
Nombre del
Caso de Uso
Registro de mercancía
Actores Administrador y Auxil iar Contable
Resumen Registra toda la mercancía que entra o sale del inventario para la venta,
clasificándola por compra, venta, robo, donación, devolución de un cliente,
devolución a un proveedor, daños o siniestro.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de inventario y luego la función de
registro de mercancía.
• Se selecciona el tipo de registro a ingresar.
• Dependiendo del tipo de registro se le muestra al usuario el campo
tercero, los demás campos se le muestran para que llenar la información.
• El usuario coloca la fecha de entrada de la mercancía.
• El usuario coloca el número del documento con que se registro el
movimiento de la mercancía.
• El usuario coloca el costo unitario de la mercancía que va a ser
registrada.
• El usuario coloca la cantidad de mercancía que va a ser registrada.
• Dependiendo del caso si se coloca el tercero que puede ser un cliente o
un proveedor.
• Se coloca el código del articulo del cual se está registrando el movimiento
en el inventario.
• Se hace click en el botón enviar para proceder al procesar los datos-
• Se muestra una pantalla de confirmación en la que se le dice al usuario
que la operación fue exitosa.
Caminos alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de excepción
Si coloca un día que no corresponde a un mes entonces el sistema le indica el
error y le insta a corregirlo.
Si el usuario inserta valores que no corresponden al formato disponible en la
base de datos el sistema le indicará el error al usuario y le permite cambiarlo.
Puntos de Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Debe haber definidos previamente tanto productos como tipos de registros
para que se pueda llevar a cabo la operación.
38
Precondiciones Hay productos registrados en el sistema y se ha definido un sistema de
valoración de mercancía.
PostCondiciones Se habrá insertado un registro de mercancía
Criterios de aceptación
Se muestra una página con una confirmación del éxito de la operación.
Nombre del Caso
de Uso
Ajuste registro de mercancía
Actores Administrador y Auxil iar Contable
Resumen Si se cometen errores al registrar la cantidad de mercancía que fue
registrada se puede modificar la misma mediante un ajuste.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de inventario y luego la función de
ajuste registro de mercancía.
• Se selecciona el artículo del que se quiere ajustar el registro.
• Se selecciona el tipo de registro a ajustar.
• Se selecciona el registro a ajustar.
• El usuario modifica la cantidad de mercancía registrada.
• Se hace click en el botón enviar para proceder al procesar los datos-
• Se muestra una pantalla de confirmación en la que se le dice al usuario
que la operación fue exitosa.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
Si el usuario inserta valores que no corresponden al formato disponible en la
base de datos el sistema le indica el error al usuario y le permite cambiarlo.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Debe haber definidos previamente productos, tipos de registros y registros
para que se pueda llevar a cabo la operación.
Precondiciones Hay productos registrados en el sistema y registros, además se ha definido
un sistema de valoración de mercancía.
39
PostCondiciones Se habrá insertado un ajuste de un registro de mercancía.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
Nombre del Caso
de Uso
Creación de Kárdex
Actores Administrador y Auxil iar Contable
Resumen Crea un producto que será sobre el que se realizarán las operaciones de
registro de entrada y salida de mercancía.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de inventario y luego la función de
creación de kárdex.
• Se ingresa el nombre del producto.
• Se ingresa una descripción del producto.
• Se ingresa un código de referencia para el producto.
• El usuario seleccionará la unidad de medida que se usará para la venta
del producto.
• El usuario coloca la cantidad de mercancía máxima o que necesita en
bodega de acuerdo a los promedios de entrada y salida.
• El usuario coloca la cantidad mínima que debe haber en bodega antes
que se deba realizar un nuevo pedido.
• Se coloca la clasificación del producto.
• Se selecciona el tipo de mercancía que indica si esta estará disponible al
público o no.
• Se selecciona el estado del producto que indica si este aun está a la
venta o no.
• Se hace click en el botón enviar para proceder al procesar los datos.
• Se muestra una pantalla de confirmación en la que se le dice al usuario
que la operación fue exitosa.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
Si el usuario inserta valores que no corresponden al formato disponible en la
base de datos el sistema le indica el error al usuario y le permite cambiarlo.
40
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña valida para poder ingresar al
sistema.
Debe haber definidos previamente unidades de medida y una clasificación
para el producto a ingresar.
Precondiciones Hay una clasificación predefinida para el producto a crear.
PostCondiciones Se habrá insertado un producto.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
Nombre del Caso
de Uso
Modificación de Kárdex
Actores Administrador y Auxil iar Contable
Resumen Crea un producto que será sobre el que se realizarán las operaciones de
registro de entrada y salida de mercancía.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de inventario y luego la función de
modificación de kárdex.
• Se selecciona el producto a modificar.
• Se modifican los datos que se deseen del producto.
• Se hace click en el botón enviar para proceder al procesar los datos.
• Se muestra una pantalla de confirmación en la que se le dice al usuario
que la operación fue exitosa.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
Si el usuario inserta valores que no corresponden al formato disponible en la
base de datos el sistema le indica el error al usuario y le permite cambiarlo.
Si el usuario coloca una clasificación inválida se le informa al usuario y se le
permite corregir el error.
Puntos de
Extensión
No aplica
41
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Debe haber definidos previamente productos a modificar
Precondiciones True
PostCondiciones Se habrá modificado un producto.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
Nombre del Caso
de Uso
Consultar productos
Actores Administrador, Auxil iar Contable y Usuario Generador de Reportes
Resumen Permite buscar productos por el nombre o por clasificación para luego
mostrar una tabla con la información básica del mismo.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de inventario y luego la función de
consultar productos.
• Se inserta el criterio y/o la cadena para realizar la búsqueda.
• Se hace click en el botón enviar para proceder al procesar los datos-
• Se muestra un listado con el resultado de la búsqueda.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
No aplica
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones True
PostCondiciones Se habrá mostrado un listado con los resultados de la búsqueda.
Criterios de
aceptación
Se habrá mostrado un listado con los resultados de la búsqueda.
42
Nombre del Caso
de Uso
Mostrar información producto
Actores Administrador, Auxil iar Contable y Usuario Generador de Reportes
Resumen Muestra toda la información disponible del producto.
Curso básico de
eventos
• Se selecciona un producto de la l ista mostrada en el caso de uso
consultar productos.
• Se muestra la información del producto.
Caminos
alternativos
El usuario solo puede acceder a esta función por medio de la consulta de los
productos.
Caminos de
excepción
No aplica
Puntos de
Extensión
No aplica
Suposiciones No aplica
Precondiciones True
PostCondiciones Se habrá mostrado toda la información del producto.
Criterios de
aceptación
Se habrá mostrado toda la información del producto.
Nombre del Caso
de Uso
Establecer método de valoración de inventario
Actores Administrador
Resumen Establece el método de valoración que se usara para costear la mercancía.
Este método puede ser UEPS, PEPS; promedio.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de inventario y luego la función de
establecer método de valoración de inventario.
• Se selecciona el método de valoración a usar.
• Se hace click en el botón enviar para proceder al procesar los datos-
• Se muestra una pantalla de confirmación en la que se le dice al usuario
que la operación fue exitosa.
Caminos El usuario puede decidir si cambiar de función o de módulo.
43
alternativos
Caminos de
excepción
No aplica
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña valida para poder ingresar al
sistema.
Precondiciones True
PostCondiciones Se habrá establecido el método de valoración de los productos.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
Nombre del Caso
de Uso
Agregar Clasificación
Actores Administrador
Resumen Agrega una clasificación que servirá para la organización de los productos.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de inventario y luego la función de
agregar clasificación
• Se selección si es el caso el padre del ítem de clasificación.
• Se coloca el nombre del ítem de clasificación.
• Se hace click en el botón enviar para proceder al procesar los datos-
• Se muestra una pantalla de confirmación en la que se le dice al usuario
que la operación fue exitosa.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
Si no coloca un nombre se le pide al usuario que lo haga.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña valida para poder ingresar al
sistema.
44
Precondiciones True
PostCondiciones Se agregado una nueva clasificacion.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
Nombre del Caso
de Uso
Modificar Clasificación
Actores Administrador
Resumen Agrega una clasificación que servirá para la organización de los productos.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de inventario y luego la función de
modificar clasificación.
• Se selecciona el ítem de clasificación a modificar.
• Se modifican los valores que se necesiten.
• Se hace click en el botón enviar para proceder al procesar los datos-
• Se muestra una pantalla de confirmación en la que se le dice al usuario
que la operación fue exitosa.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
Si no coloca un nombre se le pide al usuario que lo haga.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones True
PostCondiciones Se modificado una clasificación.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
45
Nombre del Caso
de Uso
Agregar Unidad
Actores Administrador
Resumen Agrega una unidad, que se util izara para determinar cuanto será lo mínimo
que se venderá de un producto.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de inventario y luego la función de
agregar unidad.
• Se coloca el nombre de la unidad.
• Se hace click en el botón enviar para proceder al procesar los datos-
• Se muestra una pantalla de confirmación en la que se le dice al usuario
que la operación fue exitosa.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
Si no coloca un nombre se le pide al usuario que lo haga.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña valida para poder ingresar al
sistema.
Precondiciones True
PostCondiciones Se agregado una nueva unidad
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
Nombre del Caso
de Uso
Modificar Unidad
Actores Administrador
Resumen Modifica una unidad que servirá para identificar la unidad mínima de venta.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de inventario y luego la función de
modificar unidad
• Se selecciona una unidad a modificar.
46
• Se modifica el nombre si es necesario.
• Se hace click en el botón enviar para proceder al procesar los datos-
• Se muestra una pantalla de confirmación en la que se le dice al usuario
que la operación fue exitosa.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
Si no coloca un nombre se le pide al usuario que lo haga.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña valida para poder ingresar al
sistema.
Precondiciones True
PostCondiciones Se modificado una unidad.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
Nombre del Caso
de Uso
Cargar Archivo
Actores Administrador y auxil iar contable
Resumen Función que permite el cargue masivo de registros de entrada y salida de
mercancía o de artículos, en formato texto o Excel.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de contabil idad y luego se
selecciona la función cargar archivo.
• Se selecciona el tipo de información a subir. Se debe indicar si se va a
subir un archivo que contenga información sobre el movimiento de
mercancía o sobre nuevos artículos.
• Se selecciona el archivo que se va a cargar.
• El usuario hace click en el botón enviar.
• Se le muestra al usuario una pantalla confirmando que el archivo fue
subido satisfactoriamente, mientras otro proceso se encarga de leer el
archivo y cargar en al base de datos todos los registros. El archivo es
borrado luego de ser cargado en la base de datos.
47
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
No se permitirá subir archivos con extensión diferente de txt o xls, así mismo
no se permitirán archivos con una organización diferente a la especificada
en el apéndice 1.
Si alguno de los registros de los archivos tiene un error de llave primaria o
foránea, esta en el formato incorrecto o genera cualquier error durante la
inserción, es almacenado en un archivo por separado indicando la línea y el
mensaje de error.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña valida para poder ingresar al
sistema.
Precondiciones True
PostCondiciones Se han insertado los registros del archivo en la base de datos.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
El usuario deberá posteriormente revisar el estado de la carga de archivos
en el caso de uso ver archivos pendientes, para saber si hicieron falta
registros por cargar o por lo contrario no hubo ningún problema.
Nombre del Caso
de Uso
Ver archivos Pendientes
Actores Administrador y auxil iar contable
Resumen Función que permite manipular los archivos pendientes. Hay dos tipos de
archivos pendientes los que se generan si ocurre un error mientras se
cargan los archivos y los que se suben por ftp o son copiados en la carpeta
donde se almacenan los archivos ftp. El primer tipo permite descargar los
archivos para poder ver los errores y corregirlos para luego si es el caso
volver a subirlos de nuevo. El segundo tipo permite cargar los archivos. En
ambos casos se permite borrar los archivos para ahorrar espacio.
48
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de contabil idad y luego se
selecciona la función ver archivos pendientes.
• Se selecciona el tipo de archivos pendientes a revisar.
• Dependiendo del caso el usuario hace click sobre la operación
disponible.
• Se le muestra al usuario una pantalla confirmando el éxito de la
operación, en caso de tener que descargar el archivo, se le mostrara un
menú de confirmación para iniciar la descarga.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
En caso de los archivos existentes en el directorio ftp no se permitirá subir
archivos con extensión diferente de txt o xls, así mismo no se permitirán
archivos con una organización diferente a la especificada en el apéndice 1.
Si alguno de los registros de los archivos tiene un error de llave primaria o
foránea, esta en el formato incorrecto o genera cualquier error durante la
inserción, es almacenado en un archivo por separado indicando la línea y el
mensaje de error.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones True
PostCondiciones Se han mostrado los archivos pendientes y se habrán realizado las
operaciones disponibles dictadas por el usuario.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
El usuario deberá posteriormente revisar el estado de la carga de archivos,
en caso de haber cargado los archivos existentes en el directorio ftp, en el
caso de uso ver archivos pendientes, para saber si hicieron falta registros
por cargar o por lo contrario no hubo ningún problema.
49
7.2.5 Nomina
Auxiliar Contable CU 1 Establecer Parametro
CU 2 Crear Empleado
CU 3 Editar Empleado
CU 7 Calculo Cesantias
AdministradorCU 4 Calculo AportesTrabajadores
CU 5 Asignacion de PrimasExtralegales
CU 6 Asignacion Vacacione
CU 8 Editar Prestamos
CU 9 Agregar Prestamos
CU 10 Editar Horas Extra
CU 11 Agregar Horas Extra
Figura 7. Casos de uso módulo nomina
Nombre del Caso
de Uso
Establecer Parámetros
Actores Administrador
Resumen Establece los parámetros que se usarán como base para el cálculo del
salario y de los descuentos de un trabajador. Entre los parámetros que se
pueden modificar están: salario mínimo, intereses a pagar por conceptos de
mercancía, fechas de pago, primas y fechas de pago de las mismas, tablas
para el cálculo de la retención en la fuente y porcentajes por concepto de los
pagos parafiscales.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de nómina y luego se selecciona la
función de establecer parámetros.
• Se establecen los parámetros necesarios para la realización de los
cálculos de la nómina.
• Se hace click en el botón enviar para proceder al procesar los datos.
• Se muestra una pantalla de confirmación en la que se le dice al usuario
que la operación fue exitosa.
Caminos El usuario puede decidir si cambiar de función o de módulo.
50
alternativos
Caminos de
excepción
Si el usuario no coloca algún dato en el formato especificado en la base de
datos se le informa del error y se le permite corregirlo.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones True
PostCondiciones Se han establecido los parámetros para el funcionamiento del módulo de
nómina.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
Nombre del Caso
de Uso
Crear empleado
Actores Administrador y auxil iar contable
Resumen Se crea un nuevo empleado con los datos básicos: nombre, cargo, fecha de
ingreso y salario básico.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de nomina y luego se selecciona la
función de crear empleado.
• Se insertan los datos básicos de un empleado.
• Se hace click en el botón enviar para proceder al procesar los datos.
• Se muestra una pantalla de confirmación en la que se le dice al usuario
que la operación fue exitosa.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
Si el usuario no coloca algún dato en el formato especificado en la base de
datos se le informa del error y se le permite corregirlo.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña valida para poder ingresar al
sistema.
51
Precondiciones Trae
PostCondiciones Se ha agregado un nuevo empleado.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
Nombre del Caso
de Uso
Crear empleado
Actores Administrador y auxil iar contable
Resumen Se crea un nuevo empleado con los datos básicos: nombre, cargo, fecha de
ingreso, salario básico, EPS y primas legales.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de nómina y luego se selecciona la
función de crear empleado.
• Se insertan los datos básicos de un empleado.
• Se hace click en el botón enviar para proceder al procesar los datos.
• Se muestra una pantalla de confirmación en la que se le dice al usuario
que la operación fue exitosa.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
Si el usuario no coloca algún dato en el formato especificado en la base de
datos se le informa del error y se le permite corregirlo.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones True
PostCondiciones Se ha agregado un nuevo empleado.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
52
Nombre del Caso
de Uso
Editar empleado
Actores Administrador y auxil iar contable
Resumen Se modifican los siguientes datos de un empleado: nombre, cargo, fecha de
ingreso, salario básico, EPS y primas legales.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de nómina y luego se selecciona la
función de editar empleado.
• Se modifican los datos básicos que se deseen de un empleado.
• Se hace click en el botón enviar para proceder a procesar los datos.
• Se muestra una pantalla de confirmación en la que se le dice al usuario
que la operación fue exitosa.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
Si el usuario no coloca algún dato en el formato especificado en la base de
datos se le informa del error y se le permite corregirlo.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones True
PostCondiciones Se ha modificado un empleado.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
Nombre del Caso
de Uso
Cálculo aportes trabajadores
Actores Administrador y auxil iar contable
Resumen Se calculan todos los aportes que realiza cada trabajador, así como el
empleador. Estos aportes incluyen: cesantías, pensiones, EPS y ARS.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de nómina y luego se selecciona la
función de cálculo aportes trabajadores.
53
• Se hace click en el botón enviar para proceder al procesar los datos.
• El sistema realiza el cálculo de los aportes que realiza cada trabajador
así como lo que debe pagar el empleador por cada uno.
• Se muestra una pantalla de confirmación en la que se le dice al usuario
que la operación fue exitosa.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de excepción
No aplica
Puntos de Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones Trae
PostCondiciones Se han calculado los aportes de los empleados.
Criterios de aceptación
Se muestra una página con una confirmación del éxito de la operación.
Nombre del Caso
de Uso
Asignación primas extralegales
Actores Administrador y auxil iar contable
Resumen Se asignan a cada trabajador las primas.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de nómina y luego se selecciona la
función de cálculo asignación primas extralegales.
• Se asigna al trabajador una prima que le será pagada con el sueldo.
• Se hace click en el botón enviar para proceder al procesar los datos.
• Se muestra una pantalla de confirmación en la que se le dice al usuario
que la operación fue exitosa.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
No aplica
Puntos de
Extensión
No aplica
54
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Debe hacer empleados registrados en el sistema.
Precondiciones Trúe
PostCondiciones Se ha asignado una prima a un empleado.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
Nombre del Caso
de Uso
Asignación vacaciones
Actores Administrador y auxil iar contable
Resumen Se indica cuando un empleado toma sus vacaciones y si es el caso también
cuantos días toma con el fin de hacer el cálculo de cuando deberá tomar los
siguientes.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de nómina y luego se selecciona la
función de asignación vacaciones
• Se coloca la fecha en que el empleado empezó o empezará a tomar sus
vacaciones.
• Se hace click en el botón enviar para proceder al procesar los datos.
• Se muestra una pantalla de confirmación en la que se le dice al usuario
que la operación fue exitosa.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
Si el usuario coloca un día que no corresponde a un mes se le indica el error
y se le permite corregirlo.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Debe hacer empleados registrados en el sistema.
Precondiciones Trae
55
PostCondiciones Se han asignado las vacaciones a un empleado.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
Nombre del Caso
de Uso
Cálculo cesantías
Actores Administrador y auxil iar contable
Resumen Se calcula para un empleado en específico cuanto ha aportado por concepto
de cesantías y cuanto ha ganado de intereses sobre las mismas.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de nómina y luego se selecciona la
función de asignación vacaciones
• Se coloca la fecha hasta la que se quiere hacer el corte de las cesantías.
• Se hace click en el botón enviar para proceder al procesar los datos.
• Se muestra una pantalla de confirmación en la que se le dice al usuario
que la operación fue exitosa.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
Si el usuario coloca un día que no corresponde a un mes se le indica el error
y se le permite corregirlo.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Debe hacer empleados registrados en el sistema.
Precondiciones True
PostCondiciones Se han mostrado el monto de las cesantías ahorradas por el empleado.
Criterios de
aceptación
Se han mostrado el monto de las cesantías ahorradas por el empleado y un
listado con los últimos movimientos.
Nombre del Caso
de Uso
Agregar préstamos
Actores Administrador y auxil iar contable
56
Resumen Cuando el empleado pide un préstamo y estos son pagados por libranza o el
préstamo es asignado directamente por la empresa, se coloca cuantas
cuotas se van a pagar y el monto de las mismas.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de nómina y luego se selecciona la
función de agregar préstamos.
• Se insertan los datos básicos para registrar un préstamo.
• Se hace click en el botón enviar para proceder al procesar los datos.
• Se muestra una pantalla de confirmación en la que se le dice al usuario
que la operación fue exitosa.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
Si el usuario no coloca algún dato en el formato especificado en la base de
datos se le informa del error y se le permite corregirlo.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones True
PostCondiciones Se ha agregado un nuevo préstamo a un empleado.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
Nombre del Caso
de Uso
Editar préstamos
Actores Administrador y auxil iar contable
Resumen Si el empleado realiza aportes mayores, menores o no puede pagar se
reajusten el monto y/o el plazo en el que se debe pagar la deuda.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de nómina y luego se selecciona la
función de editar préstamos.
• Se modifican los datos básicos de un préstamo.
• Se hace click en el botón enviar para proceder al procesar los datos.
• Se muestra una pantalla de confirmación en la que se le dice al usuario
57
que la operación fue exitosa.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
Si el usuario no coloca algún dato en el formato especificado en la base de
datos se le informa del error y se le permite corregirlo.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones Trae
PostCondiciones Se ha modificado un préstamo de un empleado.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
Nombre del Caso
de Uso
Agregar horas extras
Actores Administrador y auxil iar contable
Resumen Se asignan horas extras trabajadas por un empleado, que luego serán
tenidas en cuenta a la hora de calcular el salario.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de nómina y luego se selecciona la
función de agregar horas extras.
• Se insertan el número de horas extras trabajadas y las horas de las
mismas.
• Se hace click en el botón enviar para proceder a procesar los datos.
• Se muestra una pantalla de confirmación en la que se le dice al usuario
que la operación fue exitosa.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
Si el usuario no coloca algún dato en el formato especificado en la base de
datos se le informa del error y se le permite corregirlo.
Puntos de
Extensión
No aplica
58
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones True
PostCondiciones Se han agregado horas extras a un empleado.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
Nombre del Caso
de Uso
Editar horas extras
Actores Administrador y auxil iar contable
Resumen Se ajustan las horas extras y las horas de las mismas si se cometió un error
con las mismas a la hora de su ingreso.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de nómina y luego se selecciona la
función de editar préstamos.
• Se modifican los datos que se deseen de las horas extras..
• Se hace click en el botón enviar para proceder al procesar los datos.
• Se muestra una pantalla de confirmación en la que se le dice al usuario
que la operación fue exitosa.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
Si el usuario no coloca algún dato en el formato especificado en la base de
datos se le informa del error y se le permite corregirlo.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones True
PostCondiciones Se han modificado las horas extras de un empleado.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
59
7.2.6 Contabilidad
Administrador
CU 2 Agregar Registr
CU 3 Consultar Registros
CU 4 Balance Genera
CU 6 Estado de Resultado
CU 5 Cierre de Balanc
CU 8 Establecer Parametro
CU 1 Anular Registr CU 7 Establecer correspondenciaentre cuentas y transacciones
CU 9 Establecer saldos iniciale
CU 12 Establecer consecutivodocumento
CU 10 Agregar cuent
CU 11 Modificar cuenAuxiliar Contable
Usuario Generador de Reporte
<<include>>
<<include>>
<<include>>
Figura 8. Casos de uso módulo contabilidad
Nombre del Caso
de Uso
Anular Registro
Actores Administrador y Auxil iar Contable
Resumen Cuando se registra en la contabil idad una transacción inválida esta puede
ser anulada. Esta anulación consiste en no tener en cuenta esta transacción
a la hora de realizar el cierre del período. Las transacciones no se borran
debido a que en el caso de la facturación se debe seguir una numeración
estricta sin saltos en ella, por lo que si se da el caso en que se deba anular
una, ésta debe registrarse para poder conservar la numeración
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de contabil idad y luego se
selecciona la función de anular registro.
• Se aplican los fi ltros disponibles con el fin de encontrar la transacción
deseada.
• Se hace click sobre la transacción para ver el detalle.
• Se hace click en la opción de anular registro y se le pide al usuario que
confirme la operación. El usuario puede también deshacer una anulación
anterior que haya realizado.
60
• Se muestra una pantalla de confirmación en la que se le dice al usuario
que la operación fue exitosa.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
No aplica
Puntos de
Extensión
Usa el caso anular consultar registro.
Suposiciones El usuario debe tener un login y una contraseña valida para poder ingresar al
sistema.
Precondiciones Deben haber transacciones registradas en el sistema.
PostCondiciones Se ha anulado una transacción.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
Nombre del Caso
de Uso
Agregar Registro
Actores Administrador y Auxil iar Contable
Resumen Cada transacción generada por la aplicación se registra en la contabilidad.
Este registro debe contener un tipo de documento, un consecutivo por tipo
de documento, fecha, cuenta, concepto, beneficiario, valor y se debe indicar
si es debito o crédito. Cada transacción debe tener un valor igual en debito y
crédito, por lo que mínimo se verán afectadas dos cuentas en cada
transacción.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se realiza cualquiera de las operaciones disponibles en los módulos.
• Se registra la transacción automáticamente en el módulo de
contabil idad.
• Al final de la operación se le indica al usuario que la transacción fue
exitosa.
Caminos
alternativos
No aplica
61
Caminos de
excepción
No aplica
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones True
PostCondiciones Se ha registrado una transacción.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
Nombre del Caso
de Uso
Consultar Registro
Actores Administrador, Auxil iar Contable y Usuario Generador de Reportes
Resumen Permite consultar los registros disponibles por rango de fechas, permitiendo
además ver los detalles del registro.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de contabil idad y luego se
selecciona la función de consultar registro.
• Se aplican los fi ltros disponibles con el fin de mostrar los registros de la
manera deseada.
• Se hace click sobre la transacción para ver el detalle.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
No aplica
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones Deben haber transacciones registradas en el sistema.
62
PostCondiciones Se ha mostrado el contenido de una transacción.
Criterios de
aceptación
Se ha mostrado el contenido de una transacción.
Nombre del Caso
de Uso
Crear balance general
Actores Administrador, Auxil iar Contable y Usuario Generador de Reportes
Resumen En el balance general se coloca el total de las cuentas que pertenecen a la
clase 1, 2 y 3.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de contabil idad y luego se
selecciona la función crear balance general.
• Se especifica el período del cual se desea ver el balance.
• Se especifica hasta que nivel se desea ver el balance general.
• Se muestra un listado con los totales de acuerdo al nivel especificado.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
Si no hay transacciones en el sistema no se le muestra ninguna información
al usuario.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones Deben haber transacciones registradas en el sistema.
PostCondiciones Se ha mostrado el balance general del período seleccionado.
Criterios de
aceptación
Se ha mostrado el balance general del período seleccionado.
Nombre del Caso
de Uso
Establecer correspondencia entre cuentas y transacciones
Actores Administrador y Auxil iar Contable
Resumen Debido a que cada operación de los módulos de la aplicación debe ser
registrada en la contabil idad, el usuario debe decidir que cuentas se verán
63
afectadas en cada transacción. Aunque se le sugerirán al usuario las
cuentas donde podría registrar las transacciones, éste tendrá la l ibertad de
colocar sus propias cuentas.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de contabil idad y luego se
selecciona la función de establecer correspondencia entre cuentas y
transacciones.
• Se selecciona la transacción a modificar.
• Se coloca el código de la cuenta y el nombre de la misma. También se
pueden escoger entre las opciones disponibles
• Se envían los cambios realizados.
• Se muestra una pantalla de confirmación en la que se le dice al usuario
que la operación fue exitosa.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
Los códigos colocados por el usuario no podrán comenzar por 0, ni podrán
tener más de 6 dígitos. Si el usuario coloca una subcuenta y la cuenta
correspondiente no ha sido creada se le indicara que debe crear esta
primero para poder crear la subcuenta luego.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones Trae
PostCondiciones Se ha asignado una cuenta a una transacción.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
Nombre del Caso
de Uso
Establecer Parámetros
Actores Administrador y Auxil iar Contable
Resumen Algunas transacciones requieren de algunas constantes que pueden variar
por el tiempo, por lo que se le da la opción al usuario de que las coloque.
Esto con el fin de que la aplicación realice automáticamente los cálculos
64
necesarios sin que tenga que estarle preguntando al usuario estas
constantes. Los valores que se requieren son el IVA, ICA, Impuesto de
Renta y el PAAG.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de contabil idad y luego se
selecciona la función de establecer registros.
• Se colocan o modifican los valores disponibles.
• Se hace click el botón enviar datos.
• Se muestra una pantalla de confirmación en la que se le dice al usuario
que la operación fue exitosa.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
Como todos los valores corresponden a promedios, estos no pueden ser
negativos.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña valida para poder ingresar al
sistema.
Precondiciones True
PostCondiciones Se han modificado o agregado los parámetros estipulados por el usuario.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
Nombre del Caso
de Uso
Cierre balance
Actores Administrador y Auxil iar Contable
Resumen El cierre del balance consiste en armar el Estado de Resultados con las
cuentas de las clases 4, 5, 6 y 7. Luego el resultado anterior se suma a las
cuentas del balance que son las de clase 1, 2 y 3. El cierre de operaciones
las puede realizar el usuario de manera diaria, mensual o anual.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de contabil idad y luego se
selecciona la función de cierre de balance.
• Se especifica si se quiere hacer el cierre diario, mensual o anual.
65
• Se hace click sobre el botón enviar para realizar la operación en el
período especificado.
• Se muestra el balance general de acuerdo al período especificado y se
muestra una pantalla de confirmación en la que se le dice al usuario que
la operación fue exitosa.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
Solo se le mostrarán al usuario los datos del balance en los que haya
transacciones. En caso de que el usuario seleccione un período sin
transacciones se le informará de esto y no se le mostrará ningún balance.
Puntos de
Extensión
Extiende del los casos de uso balance general y Estado de Resultados
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones Deben haber transacciones registradas en el sistema.
PostCondiciones Se ha efectuado el cierre del período especificado por el usuario.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación y el
balance correspondiente el período.
Nombre del Caso de Uso
Estado de Resultados
Actores Administrador, Auxil iar Contable y Usuario Generador de Reportes
Resumen El Estado de Resultados consiste en sumar las cuentas de las clases 4, 5, 6
y 7. Dependiendo de la periodicidad escogida por el usuario, se puede
generar un reporte o se pueden afectar las cuentas del balance
automáticamente.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de contabil idad y luego se
selecciona la función de Estado de Resultados.
• Se especifica si se quiere hacer el Estado de Resultados diario, mensual
o anual.
• Se hace click sobre el botón enviar para realizar la operación en el
período especificado.
• Se muestra el Estado de Resultados de acuerdo al período especificado
y se muestra una pantalla de confirmación en la que se le dice al usuario
66
que la operación fue exitosa.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de excepción
Solo se le mostraran al usuario los datos del Estado de Resultados en los
que haya transacciones. En caso de que el usuario seleccione un período
sin transacciones se le informará de esto y no se le mostrara ningún reporte.
Puntos de Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones Deben haber transacciones registradas en el sistema.
PostCondiciones Se ha mostrado el reporte correspondiente el Estado de Resultados.
Criterios de aceptación
Se muestra una página con una confirmación del éxito de la operación, y el
Estado de Resultados correspondiente al período.
Nombre del Caso de Uso
Establecer saldos iniciales
Actores Administrador y Auxil iar Contable
Resumen Cuando se usa por primera vez la aplicación, se deben establecer unos
valores iniciales para las cuentas principales. Esto debe hacer si se necesita
cambiar de un programa de contabil idad a otro o cuando se desea
sistematizar la contabil idad, para poder tener continuidad con los datos que
se manejaban antes. Otra razón es que si se comienza una nueva empresa
se deben establecer los saldos con que se cuentan en capital, caja y otras
cuentas.
Curso básico de eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de contabil idad y luego se
selecciona la función establecer saldos iniciales.
• Se muestran todas las cuentas que aparecen en el balance.
• El usuario coloca los valores iniciales de las cuentas en los espacios
asignados para cada una.
• El usuario hace click en el botón aceptar.
• Se le muestra al usuario una pantalla de confirmación de la operación.
Caminos alternativos
El usuario puede decidir si cambiar de función o de módulo.
67
Caminos de excepción
• Solo se permitirá el ingreso de valores numéricos para las cuentas. Solo
se permitirán separadores decimales (,) y de signo negativo (-).
• Se debe cumplir que PatrimonioPasivoActivo += por lo que no se
le permitirá al usuario colocar valores que al final no cumplan con la
ecuación.
Puntos de Extensión
No aplica
Suposiciones • El usuario debe tener un login y una contraseña válida para poder
ingresar al sistema.
• El usuario debe tener un balance general previo al uso de la función
para evitar inconsistencias en los valores de las cuentas.
Precondiciones True
PostCondiciones Se ha creado un documento del tipo saldos iniciales, con sus registros para
colocar los saldos iniciales a las cuentas del balance.
Criterios de aceptación
Se muestra una página con una confirmación del éxito de la operación y se
muestra el balance inicial.
Nombre del Caso
de Uso
Establecer consecutivo documento
Actores Administrador y Auxil iar Contable
Resumen Debido a que cada documento tiene su propia numeración esta debe ser
establecida previo al primer uso de la aplicación. Esta función reviste de
importancia sobretodo cuando se debe llevar una numeración establecida
por una entidad como la DIAN. La razón de esto es que el sistema
automáticamente asigna la numeración a los documentos, por lo que se
necesita que el usuario defina los rangos a usar.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de contabil idad y luego se
selecciona la función establecer consecutivo documento.
• Se muestra un listado con los tipos de documentos disponibles.
• El usuario coloca los valores máximo y mínimo que debe tener la
numeración de cada tipo de documento.
• El usuario hace click en el botón enviar.
• Se le muestra al usuario una pantalla con la confirmación de la
operación.
68
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
Solo se permitirá el ingreso de valores numéricos.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones Trae
PostCondiciones Se han asignado los valores máximo y mínimo para los tipos de documento
a usar.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
Nombre del Caso
de Uso
Agregar cuenta
Actores Administrador y Auxil iar Contable
Resumen El usuario puede a voluntad agregar cuentas o subcuentas diferentes a las
que ya se incluyen con la aplicación.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de contabil idad y luego se
selecciona la función agregar cuenta.
• Es usuario coloca el código de la cuenta y luego el nombre de la misma.
• Se valida que la cuenta no exista y que pertenezca a una clase, grupo o
cuenta válidos.
• El usuario hace click en el botón enviar.
• Se le muestra al usuario una pantalla con la confirmación de la
operación.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
69
Caminos de
excepción
• Solo se permitirá el ingreso de valores numéricos para el código de la
cuenta o subcuenta.
• El usuario podrá ingresar la cuenta o subcuenta solo si existe la
correspondiente clase, grupo o cuenta según sea el caso.
Puntos de
Extensión
No aplica
Suposiciones El usuario debe tener un login y una contraseña valida para poder ingresar al
sistema.
Precondiciones La clase, grupo o cuenta a la que pertenezca la cuenta o subcuenta deben
existir.
PostCondiciones Se ha creado la cuenta o subcuenta definida por el usuario.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
Nombre del Caso
de Uso
Modificar cuenta
Actores Administrador y Auxil iar Contable
Resumen El usuario puede a voluntad modificar los nombres de las cuentas o
subcuentas existentes en el sistema.
Curso básico de
eventos
• Se ingresa al sistema con el usuario y la contraseña.
• Se selecciona en el menú el módulo de contabil idad y luego se
selecciona la función modificar cuenta.
• El usuario selecciona la cuenta o subcuenta a modificar.
• El usuario modifica el nombre de la cuenta o subcuenta.
• El usuario hace click en el botón enviar.
• Se le muestra al usuario una pantalla con la confirmación de la
operación.
Caminos
alternativos
El usuario puede decidir si cambiar de función o de módulo.
Caminos de
excepción
No se permitirá el ingreso de caracteres diferentes a los alfanuméricos.
Puntos de
Extensión
No aplica
70
Suposiciones El usuario debe tener un login y una contraseña válida para poder ingresar al
sistema.
Precondiciones True
PostCondiciones Se ha modificado el nombre de la cuenta o subcuenta.
Criterios de
aceptación
Se muestra una página con una confirmación del éxito de la operación.
71
7.3 REQUERIMIENTOS NO FUNCIONALES
Nombre Descripción Criterios de Aceptación Sistema Operativo La aplicación puede ser
instalada en los sistemas operativos Windows y Linux.
Para poder instalar la aplicación se necesita Windows 98 o superior, o Linux.
Java Se debe tener instalado JAVA 1.4.2 o superior para poder correr el servidor de aplicaciones.
Para poder ejecutar la aplicación se debe tener instalado JAVA 1.4.2 o superior.
Postgres Se debe tener instalado Postgres 7.3.4 o superior para poder almacenar la base de datos.
Para poder ejecutar la aplicación se debe tener instalado Postgres 7.3.4 o superior.
Servidor de Aplicaciones Se debe tener instalado Tomcat 4.1 para poder ejecutar la aplicación.
Para poder ejecutar la aplicación se necesita tener instalado Tomcat 4.1 o también Jboss 3.0 junto con Tomcat.
Excel Los cargues masivos se pueden hacer en Excel 97 o superior.
Para poder realizar los cargues masivos de información se puede hacer en Excel.
72
7.4 DISEÑO 7.4.1 Diagrama de clases
7.4.1.1 Inventario
atiende inventario
pi:puente_inventario
+atiende_inventario+entradaMercancia:boolean+crearProducto:boolean+crearUnidad:boolean+modificarUnidad:boolean+modificarProducto:boolean+consultarProducto:boolean+agregarClasificacion:boolean+modificarClasificacion:boolean+subirarchivo:boolean+verarchivo:boolean+borrararchivo:boolean
beans+tiporegistro+segmento+articulo+familia+registro+clase+valoracion+tipoarticulo+unidad
HttpServletServletInventario
+doGet:void+doPost:void+processRequest:void+showError:void+forward:void+cargarentradaMercancia:void+entradaMercancia:void+cargarCrearProducto:void+crearProducto:void+cargarCrearUnidad:void+crearUnidad:void+cargarModificarUnidad:void+modificarUnidad:void+cargarModificarProducto:void+modificarProducto:void+cargarconsultarProducto:void+consultarProducto:void+cargaragregarclasificacion:void+agregarclasificacion:void+cargarmodificarclasificacion:vo+modificarclasificacion:void+cargarsubirarchivo:void+subirarchivo:void+cargarverarchivo:void+verarchivo:void+bajararchivo:void+borrararchivo:void
BD Interfaz
-conexion:Connection-stmt:Statement-pstmt:PreparedStatement-res:ResultSet-cs:CallableStatement-driver:String-url:String-user:String-pass:String-dbname:String
+BD_Interfaz+asignarValorPreparedStatem+ejecutarConsulta:boolean+ejecutarUpdatePstm:int+ejecutarUpdate:int+cargarBatch:void+ejecutarBatch:int[]+crearConexion:void+crearConexionPool:void+cerrarConexion:void+hacerCommit:void+autoCommit:void+rollback:void+ejecutarProcedure:Object+darResultado:ResultSet-verificarConexion:boolean
autoCommit:boolean
puente inventario
conexion:BD_Interfazfilas:Object[][]columnas:String[]numcolumnas:intnumfilas:intrsmd:ResultSetMetaData
+puente_inventario+entradaMercancia:void+crearProducto:void+crearUnidad:void+modificarUnidad:void+modificarProducto:void+agregarClasificacion:void+modificarClasificacion:void+hacerCommit:void+rollback:void+consultarProducto:void+verarchivo:void+imprimir2:void+darRs:ResultSet+cerrarConexion:void+ejecutar:void+darConexion:BD_Interfaz+almacenarResultSet:boolea
Figura 9. Diagrama de clases módulo inventario
En el diagrama anterior se puede ver cuales son las clases que intervienen en la para darle
respuesta a las peticiones de los usuarios. La clase ServletInventario se encarga de recibir
todas las peticiones del usuario y llamar el método que corresponda de la clase
atiende_inventario. La clase atiende_inventario se encarga de recoger la información
suministrada por el usuario y validarla para llamar la función correspondiente de
puente_inventario. La clase puente_inventario se encarga de armar la sentencia SQL que se
usara para realizar la operación requerida por el usuario. Finalmente la clase BD_Interfaz se
encarga de manejar todo lo referente a la base de datos.
73
El paquete bean tiene unas clases que facilitan la visualización de algunas tablas mediante
el uso de Java Beans, permitiendo una implementación Web más rápida y reutilizable.
7.4.1.2 Contabilidad
atiende contabilidad
pc:puente_contabilidad
+atiende_contabilidad+consecutivodocumento:boolea+agregarcuenta:boolean+modificarcuenta:boolean+transaccioncuenta1:boolean+transaccioncuenta2:boolean+establecerparametros:boolean
BD Interfaz
-conexion:Connection-stmt:Statement-pstmt:PreparedStatement-res:ResultSet-cs:CallableStatement-driver:String-url:String-user:String-pass:String-dbname:String
+BD_Interfaz+asignarValorPreparedStatem+ejecutarConsulta:boolean+ejecutarUpdatePstm:int+ejecutarUpdate:int+cargarBatch:void+ejecutarBatch:int[]+crearConexion:void+crearConexionPool:void+cerrarConexion:void+hacerCommit:void+autoCommit:void+rollback:void+ejecutarProcedure:Object+darResultado:ResultSet-verificarConexion:boolean
autoCommit:boolean
beans+tipotransaccion+cuentatransaccion+tipodocumento+parametros+cuenta
inter+transaccion
puente contabilidad
conexion:BD_Interfaz
+puente_contabilidad+consecutivodocumento:vo+agregarcuenta:void+modificarcuenta:void+transaccioncuenta2:void+establecerparametros:void
HttpServleServletContabilidad
+doGet:void+doPost:void+processRequest:void+showError:void+forward:void+cargarconsecutivodocumento:v+consecutivodocumento:void+cargaragregarcuenta:void+agregarcuenta:void+cargarmodificarcuenta:void+modificarcuenta:void+cargartransaccioncuenta:void+transaccioncuenta1:void+transaccioncuenta2:void+cargarestablecerparametros:vo+establecerparametros:void
Figura 10. Diagrama de clases módulo contabilidad
En el diagrama anterior se puede ver cuales son las clases que intervienen en la para darle
respuesta a las peticiones de los usuarios. La clase ServletContabilidad se encarga de recibir
todas las peticiones del usuario y llamar el método que corresponda de la clase
atiende_contabilidad. La clase atiende_ contabilidad se encarga de recoger la información
suministrada por el usuario y validarla para llamar la función correspondiente de puente_
contabilidad. La clase puente_ contabilidad se encarga de armar la sentencia SQL que se
usara para realizar la operación requerida por el usuario. Finalmente la clase BD_Interfaz se
encarga de manejar todo lo referente a la base de datos.
El paquete bean tiene unas clases que facilitan la visualización de algunas tablas mediante
el uso de Java Beans, permitiendo una implementación Web más rápida y reutilizable.
La clase transacción es la interfaz del módulo de contabilidad que permite la inserción de
registros contables cuando se realice una operación que lo amerite.
74
7.4.2 Diagramas de secuencia
7.4.2.1 Inventario
Agregar Clasificación
conexionBD_Interfaz
interprete_inventarInterprete_Inventario
Bodega
servletServlet_Inventario
atiende_inventariAtiende_Inventario
1.2.2: agregarClasificacion(int,int,String):void
1.2.1: <constructor>()1.2: agregarClasificacion(HttpSession,HttpServletRequest,HttpServlet...
1.1: <constructor>()
1: doPost(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpS...
1.2.2.2: ejecutarUpdate(String):void
1.2.2.1: <constructor>()
Entrada de Mercancía (Registro de Mercancía)
servletServlet_Inventario
atiende_inventarioAtiende_Inventario
interprete_inventarioInterprete_Inventario
conexionBD_Interfaz
Bodega
1: doPost(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpS...
1.2.2.2: ejecutarUpdate(String):void
1.2.2.1: <constructor>()
1.2.1: <constructor>()
1.2.2: entrada(Calendar,int,long,int,int,int):void
1.2: entrada(HttpSession,HttpServletRequest,HttpServletResponse):v...
1.1: <constructor>()
75
Método de Valoración
conexionBD_Interfaz
servletServlet_Inventari
interprete_inventariInterprete_Inventario
Bodega
atiende_inventariAtiende_Inventario
1.2.2: metodoValoracion(int):void
1.2.1: <constructor>()
1: doPost(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpS...
1.2.2.2: ejecutarUpdate(String):void
1.2.2.1: <constructor>()
1.2: metodoValoracion(HttpSession,HttpServletRequest,HttpServletRe...
1.1: <constructor>()
Creación Kardex
Bodega
servletServlet_Inventari
atiende_inventarioAtiende_Inventario
conexionBD_Interfaz
interprete_inventarInterprete_Inventario
1.2.2.2: ejecutarUpdate(String):void
1.2.2.1: <constructor>()
1.2.2: creacionKardex(String,String,String,int,int,int,int,long,int,boolean)...
1.2.1: <constructor>()
1.2: creacionKardex(HttpSession,HttpServletRequest,HttpServletResp...
1.1: <constructor>()
1: doPost(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpS...
76
Modificar Clasificación
atiende_inventariAtiende_Inventario
Bodega
interprete_inventariInterprete_Inventario
servletServlet_Inventari
conexionBD_Interfaz
1.2: modificarClasificacion(HttpSession,HttpServletRequest,HttpServl...
1.1: <constructor>()
1.2.2.2: ejecutarUpdate(String):void
1.2.2.1: <constructor>()
1: doPost(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpS...
1.2.2: modificarClasificacion(int,String,int):void
1.2.1: <constructor>()
Modificación Kardex
Bodega
servletServlet_Inventario
interprete_inventarioInterprete_Inventario
atiende_inventarioAtiende_Inventario
conexionBD_Interfaz
1.2.2: modificacionKardex(String,String,String,int,int,int,int,long,int,bool...
1.2.1: <constructor>()
1.2.2.2: ejecutarUpdate(String):void
1.2.2.1: <constructor>()
1.2: modificacionKardex(HttpSession,HttpServletRequest,HttpServletR...
1.1: <constructor>()
1: doPost(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpS...
77
Consultar Productos
Bodega
servletServlet_Inventario
interprete_inventarioInterprete_Inventario
atiende_inventarioAtiende_Inventario
conexionBD_Interfaz
1.2.3:
1.2.2: consultarProductos(String,int):void
1.2.1: <constructor>()
1.2.2.3: almacenarResultado(ResultSet):void
1.2.2.2: ejecutarConsulta(String):void
1.2.2.1: <constructor>()
1.2: consultarProductos(HttpSession,HttpServletRequest,HttpServletR...
1.1: <constructor>()
1: doPost(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpS...
{session.setAttribute(nombre:String,objeto:Object)}
Información Producto
servletServlet_Inventario
Bodega
conexionBD_Interfaz
atiende_inventariAtiende_Inventario
interprete_inventarInterprete_Inventario
1: doPost(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpS...
1.2.2.3: almacenarResultado(ResultSet):void
1.2.2.2: ejecutarConsulta(String):void
1.2.2.1: <constructor>()
1.2: informacionProducto(HttpSession,HttpServletRequest,HttpServlet...
1.1: <constructor>()
1.2.2: informacionProducto(int):void
1.2.1: <constructor>()
{session.setAttribute(nombre:String,objeto:Object)}1.2.3:
78
Cargar Archivo
ConexionBD_Interfaz
ServletServletInventario
Puente_Inventariopuente_inventario
ThreadThreadInventario
Atiende_Inventarioatiende_inventario
Usuario
1: doPost(HttpServletRequest,HttpServletResponse):void
1.2.2: run():void
1.2.1: <constructor>(File,int,String,String)
1.2.2.1: entradaMercancia(Vector):void
1.2.1.1: <constructor>()
1.2.2.1.2: ejecutarConsulta(String):boolean
1.2.2.1.1: <constructor>()
1.2: subirarchivo(HttpSession,HttpServletRequest,HttpServletRespon...
1.1: <constructor>()
Ver Archivos Pendientes
Usuario
Puente_Inventaripuente_inventario
ServletServletInventari
Atiende Inventariatiende_inventario
1: doPost(HttpServletRequest,HttpServletResponse):void
1.2.2: verarchivo():void
1.2.1: <constructor>()1.2: verarchivo(HttpSession,HttpServletRequest,HttpServletResponse)...
1.1: <constructor>()
79
7.4.2.2 Contabilidad
Anular Registro
servletcontabilidadServletContabilidad
atiendecontabilidadatiende_contabilidad
puenteinventariopuente_contabilidad
Usuario
bdinterfazBD_Interfaz
1.2.2: anularregistro(Vector):void
1.2.1: <constructor>()
1.2.2.2: ejecutarUpdate(String):int
1.2.2.1: <constructor>()
1: doPost(HttpServletRequest,HttpServletResponse):void
1.2: anularregistro(HttpSession,HttpServletRequest,HttpServletRespo...
1.1: <constructor>()
Agregar Registro
Usuario
bdinterfazBD_Interfaz
puenteinventariopuente_contabilidad
atiendecontabilidadatiende_contabilidad
servletcontabilidadServletContabilidad
1.2: agregarregistro(HttpSession,HttpServletRequest,HttpServletResp...
1.1: <constructor>()
1: doPost(HttpServletRequest,HttpServletResponse):void
1.2.2.2: ejecutarUpdate(String):int
1.2.2.1: <constructor>()1.2.2: agregarregistro(Vector,Vector):void
1.2.1: <constructor>()
80
Consultar Registros
puenteinventariopuente_contabilidad
Usuario
servletcontabilidaServletContabilidad
atiendecontabilidadatiende_contabilidad
bdinterfazBD_Interfaz
1.2.1: <constructor>()
1.1: <constructor>()1: doPost(HttpServletRequest,HttpServletResponse):void
1.2.2.2: ejecutarConsulta(String):boolean
1.2.2.1: <constructor>()
1.2: consultarregistro(HttpSession,HttpServletRequest,HttpServletRes...
1.2.2: consultarregistro(Vector):void
Balance General
servletcontabilidadServletContabilidad
Usuario
atiendecontabilidadatiende_contabilidad
bdinterfazBD_Interfaz
puenteinventariopuente_contabilidad1.2.1: <constructor>()
1: doPost(HttpServletRequest,HttpServletResponse):void
1.2.2.2: ejecutarConsulta(String):boolean
1.2.2.1: <constructor>()
1.1: <constructor>()
1.2: balancegeneral(HttpSession,HttpServletRequest,HttpServletResp...
1.2.2: balancegeneral(Vector):void
81
Cierre de Balance
Usuario
puenteinventariopuente_contabilidad
bdinterfazBD_Interfaz
servletcontabilidaServletContabilidad
atiendecontabilidadatiende_contabilidad
1: doPost(HttpServletRequest,HttpServletResponse):void
1.2: cierrebalance(HttpSession,HttpServletRequest,HttpServletRespo...
1.1: <constructor>()
1.2.2.2: ejecutarUpdate(String):int
1.2.2.1: <constructor>()1.2.2: cierrebalance(Vector):void
1.2.1: <constructor>()
Estado de Resultados
bdinterfazBD_Interfaz
atiendecontabilidadatiende_contabilidad
Usuario
servletcontabilidaServletContabilidad
puenteinventariopuente_contabilidad
1.2.2.2: ejecutarConsulta(String):boolean
1.2.2.1: <constructor>()
1.2: estadoresultados(HttpSession,HttpServletRequest,HttpServletRe...
1.1: <constructor>()
1: doPost(HttpServletRequest,HttpServletResponse):void
1.2.2: estadoresultados(Vector):Vector
1.2.1: <constructor>()
82
Establecer Correspondencia entre Cuentas y Transacciones
bdinterfazBD_Interfaz
puenteinventariopuente_contabilidad
Usuario
atiendecontabilidadatiende_contabilidad
servletcontabilidaServletContabilidad
1.2: transaccioncuenta2(HttpSession,HttpServletRequest,HttpServletR...
1.1: <constructor>()
1.2.2: transaccioncuenta2(Vector):void
1.2.1: <constructor>()
1: doPost(HttpServletRequest,HttpServletResponse):void
1.2.2.2: ejecutarUpdate(String):int
1.2.2.1: <constructor>()
Establecer Parámetros
atiendecontabilidadatiende_contabilidad
bdinterfazBD_Interfaz
servletcontabilidaServletContabilidad
Usuario
puenteinventariopuente_contabilidad
1: doPost(HttpServletRequest,HttpServletResponse):void
1.2: establecerparametros(HttpSession,HttpServletRequest,HttpServl...
1.1: <constructor>()
1.2.2.2: ejecutarUpdate(String):int
1.2.2.1: <constructor>()1.2.2: establecerparametros(Vector):void
1.2.1: <constructor>()
83
Establecer Saldos Iniciales
atiendecontabilidadatiende_contabilidad
Usuario
servletcontabilidadServletContabilidad
bdinterfazBD_Interfaz
puenteinventariopuente_contabilidad
1.2: saldosiniciales(HttpSession,HttpServletRequest,HttpServletResp...
1.1: <constructor>()1: doPost(HttpServletRequest,HttpServletResponse):void
1.2.2.2: ejecutarUpdate(String):int
1.2.2.1: <constructor>()1.2.2: saldosiniciales(Vector,Vector,Vector,String):void
1.2.1: <constructor>()
Agregar Cuenta
bdinterfazBD_Interfaz
servletcontabilidadServletContabilidad
Usuario
atiendecontabilidadatiende_contabilidad
puenteinventariopuente_contabilidad
1.2.2.2: ejecutarUpdate(String):int
1.2.2.1: <constructor>()1.2.2: agregarcuenta(Vector):void
1.2.1: <constructor>()
1: doPost(HttpServletRequest,HttpServletResponse):void
1.2: agregarcuenta(HttpSession,HttpServletRequest,HttpServletRespo...
1.1: <constructor>()
84
Modificar Cuenta
Usuario
servletcontabilidaServletContabilidad
atiendecontabilidadatiende_contabilidad
puenteinventariopuente_contabilidad
bdinterfazBD_Interfaz
1.2: modificarcuenta(HttpSession,HttpServletRequest,HttpServletRes...
1.1: <constructor>()
1: doPost(HttpServletRequest,HttpServletResponse):void
1.2.2.2: ejecutarUpdate(String):int
1.2.2.1: <constructor>()1.2.2: modificarcuenta(Vector):void
1.2.1: <constructor>()
Establecer Consecutivo Documento
bdinterfazBD_Interfaz
puenteinventariopuente_contabilidad
atiendecontabilidadatiende_contabilidad
Usuario
servletcontabilidadServletContabilidad
1.2: consecutivodocumento(HttpSession,HttpServletRequest,HttpServl...
1.1: <constructor>()1: doPost(HttpServletRequest,HttpServletResponse):void
1.2.2: consecutivodocumento(Vector):void
1.2.1: <constructor>()
1.2.2.2: ejecutarUpdate(String):int
1.2.2.1: <constructor>()
85
7.4.4 Arquitectura de la aplicación
Base de Datos
SMBD
Interprete
EIP
Contabilidad
Nomina
Flujo de Caja
Facturas
Agregar Movimiento
Consultar Cuenta
CarteraGenerador de Reportes
Generar
Diseñar
Manejo Empleados
Registro
Registrar
Configurar
Configurar
Estado de Resultados
Manejo financiero
Manejo clientes
Informacion Tributaria
Crear cuenta
Presupuesto
Configurar
ConfigurarInventario
Registro Mercancia
Figura 11. Diagrama de nodos sistema
La funcionalidad básica de la aplicación es la siguiente: los módulos de la empresa nomina,
flujo de caja, facturas, cartera, inventario y presupuesto se comunican directamente con la
base de datos para almacenar sus registros, pero adicionalmente se comunican con el
módulo de contabilidad para modificar las cuentas que se necesiten mediante la creación de
registros en las mismas que permitan hacer un seguimiento contable a las actividades que se
realicen en los módulos. Por otro lado el módulo de contabilidad permitirá manejar y
generar reportes básicos sobre las cuentas que manejen los módulos y se comunicará
además con la base de datos para el manejo de las cuentas. Por último el módulo de
reportes se comunicará con el módulo de contabilidad para la generación de los reportes y
para la siguiente entrega se diseñara su interacción con los demás módulos que permita
generar reportes por la información manejada por estos.
86
7.4.5 Base de datos
7.4.5.1 Inventario
metodovaloracionidmetodovaloracionnombreestado
taxonomiaidtaxonomianombrepadre
tipoarticuloidcodigoarticulonombre
tiporegistroidtiporegistronombretercero
unidadidunidadnombre
articuloidarticulonombredescripcionreferenciaunidad.idunidad(FK)cantidadnecesariacantidadminimareservadadisponiblevalorclasificacion.idtaxonomia(FK)tipo.idcodigoarticulo(FK)estadovaloracion.idmetodovaloracion(FK)
registroidregistrofechadocumentocostounitariocantidadtercerotipo.idtiporegistro(FK)idarticulo(FK)disponible
unidadfktipoarticulofk
taxonomiafk
valoracionfk
articulofk
registrofk
Figura 12. Diagrama de base de datos módulo inventario
87
1. Método valoración
Esta tabla indica cuales son los diferentes tipos de valoración de mercancía disponibles.
Columna Llave Descripción
idmetodovaloracion PK Identifica el método de valoración
Nombre Asigna un nombre al método de valoración.
estado Indica si el tipo de valoración esta activo o inactivo, en
otras palabras dice si el este tipo de valoración se puede
usar o no.
2. Articulo
Los artículos son los productos de los que se disponen para colocar a la venta.
Columna Llave Descripción
idarticulo PK Identifica el método de valoración
Nombre Asigna un producto.
Descripción Describe el tipo de artículo que saldrá a la venta.
Referencia Indica un código único del artículo ya sea asignado por
el proveedor o el usuario. Este código puede ser
alfanumérico.
Unidad FK Identifica la unidad mínima de venta.
Cantidadnecesaria Es el tope la cantidad de mercancía que se debe tener de
acuerdo al promedio de entradas y salidas.
Cantidadminima Cuando la cantidad disponible de mercancía llegue a
este valor significa que se necesita hacer un nuevo
pedido
reservada Cuando se reserva una mercancía o esta no ha sido
pagada aun se considera como reservada.
Disponible La cantidad disponible corresponde a la mercancía lista
88
para la venta. La mercancía total es la cantidad
disponible más la reservada.
Valor Es el valor unitario de la mercancía de acuerdo a al
unidad de medida utilizada.
Clasificación FK Indica la clase a la que pertenece este producto dentro
de la clasificación de productos.
tipo FK Indica si la mercancía estará disponible para la venta.
estado Indica si el producto se encuentra activo (aun está
disponible) o inactivo (definitivamente no se vende ese
producto más)
valoración FK Identifica el método de valoración
3. Tipo articulo
Indica los diferentes estados para mostrar que el artículo esta disponible para la venta o no.
Columna Llave Descripción
Idcodigoartículo PK Identifica el tipo de artículo.
Nombre El nombre del tipo de artículo.
4. Unidad
Indica la unidad mínima de venta de un producto.
Columna Llave Descripción
Idunidad PK Identifica la unidad de venta.
Nombre Nombre de la unidad de venta.
89
5. Taxonomia
Representa la clasificación de los productos. Los productos se clasifican por segmento,
luego por familia y por ultimo por clase.
Columna Llave Descripción
Idtaxonomia PK Identifica la clasificación
Nombre Nombre de la clasificación
Padre FK Identifica el nivel inmediatamente superior de la
clasificación que puede se o un segmento o una familia.
6. Registro
En esta tabla se registran los diferentes tipos de entradas o salidas de mercancía.
Columna Llave Descripción
Idregistro PK Identifica el número del registro.
Fecha Indica la fecha en que se registra la entrada o salida de
mercancía.
Documento Indica el documento con el que se registro el
movimiento de la mercancía.
Costounitario Representa el costo de cada mercancía por unidad de
venta.
Cantidad Representa la cantidad de mercancía que ingreso por
unidad de venta.
Tercero Puede ser un cliente o un proveedor al que se le entrega
o se le recibe la mercancía.
Tipo Indica el tipo de registro si es de venta, compra,
devolución, robo, etc.
Idartículo Indica el articulo del cual se está registrando el
movimiento de la mercancía.
Disponible Indica cuanto queda del producto en inventario de cada
lote.
90
7. Tipo Registro
Almacena el tipo de registro de movimiento de mercancía.
Columna Llave Descripción
Idtiporegistro PK Identifica le tipo de registro.
Nombre Nombre del tipo de registro.
Para las tablas usadas en este módulo se descartó el uso de índices ya que las consultas en
su mayoría son del tipo like es decir que hacen una búsqueda secuencial dentro de la base
de datos para encontrar una cadena, por lo que un índice sobre el campo nombre de la tabla
artículo no mejora los tiempos de búsqueda. Por otro lado el tamaño de las tablas sobre las
que se realiza la búsqueda es pequeño por lo que estas quedan en el mismo bloque y las
búsquedas son más rápidas.
A continuación de muestra los tiempos de respuesta por medio del comando explain:
Sin índice sobre el nombre
reportes=# explain select * from articulo where nombre like '%the%';
QUERY PLAN
------------------------------------------------------------
Seq Scan on articulo (cost=0.00..22.50 rows=41 width=174)
Filter: ((nombre)::text ~~ '%the%'::text)
(2 rows)
reportes=# explain select * from articulo where nombre = 'Estranged';
QUERY PLAN
-----------------------------------------------------------
Seq Scan on articulo (cost=0.00..22.50 rows=5 width=174)
Filter: ((nombre)::text = 'Estranged'::text)
(2 rows)
91
Con índice sobre el nombre
reportes=# explain select * from articulo where nombre like '%the%';
QUERY PLAN
------------------------------------------------------------
Seq Scan on articulo (cost=0.00..83.85 rows=77 width=174)
Filter: ((nombre)::text ~~ '%the%'::text)
(2 rows)
reportes=# explain select * from articulo where nombre = 'Estranged';
QUERY PLAN
----------------------------------------------------------------------------------------
Index Scan using articulo_nombre_idx on articulo (cost=0.00..37.48 rows=10 width=174)
Index Cond: ((nombre)::text = 'Estranged'::text)
(2 rows)
92
7.4.5.2 Contabilidad
parametros
icaivaimporentapaagtimbre
documentoiddocumentoidtipodocumento(FK)consecutivofechatotalestado
registrocidregistroidcuenta(FK)conceptotercerovalortipovaloriddocumento(FK)
cuentaidcuentaclasegrupocuentasubcuentanombre
tipodocumentoidtipodocumentonombremaxconminconactual
cuentatransaccionidcuenta(FK)idtipotransaccion(FK)tipovalorconceptoidtipodocumento(FK)porcentaje
tipotransaccionidtipotransaccionnombre
fkdocumento
fkcuenta
fktipotransaccion
fkcuentatransaccion
fktipodocumento
fk_ct_tipodocumento
Figura 13. Diagrama de bases de datos módulo contabilidad
1. Parámetros
Esta tabla indica almacena algunos parámetros básicos que se necesitan a la hora de realizar
el cierre contable de cada período.
• ICA:”El Impuesto de Industria y Comercio es un gravamen directo que recae sobre las
actividades industriales, comerciales y de servicios que realicen las personas
naturales, jurídicas, y sociedades de hecho en forma permanente u ocasional, a
través de establecimientos de comercio o sin ellos.” [12]
• IVA:”Es el gravamen establecido sobre toda venta de bienes y servicios en el territorio
Nacional.” [13]
93
• Imporenta:”Es un tributo de orden nacional aplicado a los contribuyentes que cumplan
con los requisitos establecidos en las leyes tributarias, y liquidado sobre la
base de la renta liquida gravable.” [13]
• PAAG:”Este indicador se utiliza para ajustar, por efectos de la inflación, la
información financiera en Colombia.” [14]
• Timbre:” Impuesto generado en la protocolización de todo contrato o instrumento
público incluído los títulos valores que se otorguen o acepten en el país
suscritos entre particulares con el estado o entre particulares.” [13]
Columna Llave Descripción
ica Impuesto de Industria y Comercio
iva Impuesto al Valor Agregado
imporenta Impuesto de Renta y Complementarios
paag Porcentaje de Ajuste del Año Gravable
timbre Impuesto de Timbre Nacional
2. Cuenta
Esta tabla almacena el plan único de cuentas. Este plan único de cuentas corresponde a las
cuentas que se usarán para contabilizar los movimientos financieros de la empresa.
Columna Llave Descripción
Idcuenta PK Identifica la cuenta
Clase Primer dígito de la cuenta
Grupo Segundo dígito de la cuenta
Cuenta Tercer y cuarto dígito de la cuenta
subcuenta Quinto y sexto dígito de la cuenta
nombre Nombre de la cuenta
94
3. Registroc
En esta tabla se almacenan todos los registros contables generados por los movimientos
financieros de la empresa.
Columna Llave Descripción
idregistro PK Identifica el registro
idcuenta FK Identifica la cuenta a la cual se va a cargar el
movimiento
concepto Corresponde a la descripción del movimiento contable
tercero Corresponde a la persona o entidad que generó l
movimiento contable.
valor Es el valor que va a ser cargado a la cuenta
tipovalor Indica si el valor es de tipo débito(0) o crédito(1)
fecha Es la fecha en la que se realizó el movimiento
iddocumento FK Identifica el tipo de documento a usar para almacenar el
registro contable. Este número es único para cada
movimiento.
4. Cuentatransaccion
Debido a que los módulos almacenan automáticamente los registros contables que se
generan durante su uso, el usuario deberá asignar previamente las cuentas que se serán
afectadas por estos. Para esto el usuario debe indicar el porcentaje en que se vera afectada
cada cuenta, cual será la descripción que aparecerá en el documento y el documento que se
usará para almacenar el movimiento.
Columna Llave Descripción
idcuenta PK, FK Identifica la cuenta a la cual se va a cargar el
movimiento
idtipotransaccion PK, FK Identifica el tipo de transacción que genero el
95
movimiento en el módulo
tipovalor Cada registro la tabla indica en que cuenta se debe
colocar el registro por lo que este campo muestra si éste
registro es crédito o débito.
concepto Describe el movimiento contable generado por al
transacción.
idtipodocumento FK Es el tipo de documento donde se registrará el
movimiento contable.
porcentaje Cuando en debito o crédito hay más de una cuenta se
debe establecer qué porcentaje se debe cargar a cada
una, para que al final débito o crédito den sumas
iguales.
5. Tipodocumento
Cada movimiento contable debe registrarse en un documento como una nota crédito o una
factura. Estos documentos deben tener sumas iguales en débito y crédito, además cada uno
debe tener mínimo un movimiento.
Columna Llave Descripción
idtipodocumento PK Identifica el documento al cual se va a cargar el
movimiento
nombre Nombre del documento
maxcon Número máximo hasta el cual va la numeración del
documento.
mincom Número mínimo hasta el cual va la numeración del
documento.
actual Ultimo número consecutivo asignado.
96
6. Tipotransaccion
Indica cuales son los tipos transacciones que se manejan en los diferentes módulos.
Columna Llave Descripción
idtipotransaccion PK Identifica las transacción
nombre Nombre del documento
7. Documento
Agrupa los movimientos contables realizados en una transacción.
Columna Llave Descripción
iddocumento PK Identifica el documento al cual se va a cargar el
movimiento o transacción.
idtipodocumento FK Identifica el tipo de documento usado para almacenar
los movimientos.
consecutivo Cada documento debe tener un consecutivo cuyo rango
es asignado por el usuario.
fecha Indica la fecha en la que se realizó la transacción.
total Indica el monto total del documento.
estado Indica si el documento es válido o ha sido anulado. Si el
documento es anulado no se tendrá en cuenta en los
cierres de Balance, Estados de resultado y balances.
Para las tablas usadas en este módulo se descartó el uso de índices, ya que la mayoría de las
consultas se realizan sobre la tabla de cuentas y en esta sobre las columnas clase, grupo,
cuenta, subcuenta. Se descartó el uso de índices porque los tiempos de repuesta se
mantienen constantes usando índices sobre cada columna o usando un solo índice para las
97
cuatro. Por otro lado el tamaño de las tablas sobre las que se realiza la búsqueda es
pequeño, por lo que estas quedan en el mismo bloque y las búsquedas son más rápidas.
La mayoría de las búsquedas de hacen para relacionar los códigos de las cuentas con sus
respectivos nombres, por lo que a continuación se muestran algunas de las consultas más
usadas mostrando los tiempos de respuesta por medio del comando explain:
Sin índice sobre ninguna columna de la tabla cuenta
reportes=# explain select * from cuenta where clase = 1;
QUERY PLAN
----------------------------------------------------------
Seq Scan on cuenta (cost=0.00..60.26 rows=685 width=49)
Filter: (clase = 1)
(2 rows)
reportes=# explain select * from cuenta where clase = 1 and grupo = 1;
QUERY PLAN
----------------------------------------------------------
Seq Scan on cuenta (cost=0.00..66.52 rows=243 width=49)
Filter: ((clase = 1) AND (grupo = 1))
(2 rows)
reportes=# explain select * from cuenta where clase = 1 and grupo = 1 and cuenta = '05';
QUERY PLAN
---------------------------------------------------------------------------
Seq Scan on cuenta (cost=0.00..72.77 rows=30 width=49)
Filter: ((clase = 1) AND (grupo = 1) AND ((cuenta)::text = '05'::text))
(2 rows)
reportes=# explain select * from cuenta where clase = 1 and grupo = 1 and cuenta = '05' and
subcuenta = '05';
98
QUERY PLAN
--------------------------------------------------------------------------------------------------------------
Seq Scan on cuenta (cost=0.00..79.02 rows=3 width=49)
Filter: ((clase = 1) AND (grupo = 1) AND ((cuenta)::text = '05'::text) AND
((subcuenta)::text = '05'::text))
(2 rows)
Con índice sobre las columnas de la tabla cuenta clase, grupo, cuenta, subcuenta
reportes=# explain select * from cuenta where clase = 1;
QUERY PLAN
----------------------------------------------------------
Seq Scan on cuenta (cost=0.00..60.26 rows=685 width=49)
Filter: (clase = 1)
(2 rows)
reportes=# explain select * from cuenta where clase = 1 and grupo = 1;
QUERY PLAN
----------------------------------------------------------
Seq Scan on cuenta (cost=0.00..66.52 rows=243 width=49)
Filter: ((clase = 1) AND (grupo = 1))
(2 rows)
reportes=# explain select * from cuenta where clase = 1 and grupo = 1 and cuenta = '05';
QUERY PLAN
---------------------------------------------------------------------------
Seq Scan on cuenta (cost=0.00..72.77 rows=30 width=49)
Filter: ((clase = 1) AND (grupo = 1) AND ((cuenta)::text = '05'::text))
(2 rows)
reportes=# explain select * from cuenta where clase = 1 and grupo = 1 and cuenta = '05' and
subcuenta = '05';
99
QUERY PLAN
--------------------------------------------------------------------------------------------------------------
Seq Scan on cuenta (cost=0.00..79.02 rows=3 width=49)
Filter: ((clase = 1) AND (grupo = 1) AND ((cuenta)::text = '05'::text) AND
((subcuenta)::text = '05'::text))
(2 rows)
Con un índice sobre las columna clase, grupo, cuenta, subcuenta de la tabla cuenta
reportes=# explain select * from cuenta where clase = 1 and grupo = 1 and cuenta = '05' and
subcuenta = '05';
QUERY PLAN
--------------------------------------------------------------------------------------------------------------
Seq Scan on cuenta (cost=0.00..79.02 rows=3 width=49)
Filter: ((clase = 1) AND (grupo = 1) AND ((cuenta)::text = '05'::text) AND ((
subcuenta)::text = '05'::text))
(2 rows)
8. CONCLUSIONES Los ERP han cogido fuerza últimamente debido a su versatilidad y facilidad de uso, lo que
abre un amplio mercado para este tipo de aplicaciones.
Aunque la mayoría de ERP existentes, son comerciales y enfocadas a todo tipo de
empresas, existe sólo una en Colombia de código libre pero se encuentra en su mayoría en
la etapa de diseño debido a la falta de programadores que dediquen su tiempo a sacar
adelante este tipo de iniciativas.
En el proceso de desarrollo de este proyecto aprendí cuales son los pasos que se deben
seguir para poder hacer un seguimiento a los movimientos contables de una empresa.
También vi que no es fácil automatizar un proceso que normalmente se realiza de manera
manual como son la contabilización de los impuestos y los cierres de balance, esto se debe
100
a que un programa de este tipo debe tener en cuenta todas, o si no la mayoría de las posibles
opciones que hay para registrar una transacción y las personas consultadas para el
levantamiento de requerimientos en su mayoría sólo nombran las más comunes, lo que
obliga a ser muy exhaustivo en la investigación del funcionamiento del proceso.
Finalmente el futuro de los programas administrativos y financieros está en la integración
de todos sus sistemas de información, con el objetivo final de ayudarle al usuario de una
manera cada vez más intuitiva, a manejar su empresa.
9. REFERENCIAS
[1] DANE; Microestablecimientos; Disponible en
http://www.dane.gov.co/inf_est/cont_microestab.htm (Diciembre de 2004)
[2] MARTÍNEZ, Julio; ERPs: Una aproximación conceptual a la integración de los
sistemas corporativos; Disponible en
http://www.tecnomarkets.com/servicios/tecnonews/research10.htm (Diciembre de 2004)
[3] BAQUIA; ¿ERP? ¿Entiendes Realmente el Problema?; Disponible en
http://www.baquia.com/com/20030121/art00001.html (Diciembre de 2004)
[4] SAP ; mySAP ERP: Features & Functions; Disponible en
http://www.sap.com/solutions/business-suite/erp/featuresfunctions/index.aspx (Diciembre
de 2004)
[5] PC-NEWS; El CNTI elige MySap.com como software de gestión de negocios;
Disponible en http://www.pc-news.com/detalle.asp?sid=6&id=43&Ida=287 (Diciembre de
2004)
[6] SIIGO; Disponible en http://www.siigo.com (Diciembre de 2004)
[7] HELISA; Disponible en http://www.helisa.com (Diciembre de 2004)
[8] HARGADON, Bernard; MUNERA, Armando. Principios de contabilidad, 1997,
Editorial Norma S.A., 649p
[9]MANEJO CONTABLE DE SALIDA DE MERCANCÍAS, SENA, 56p
[10]http://www.pindarsystems.com/docs/whitepapers/Classification%20Standards%20Whit
epaperESP.pdf
101
[11]REGLAMENTO GENERAL DE LA CONTABILIDAD Y PLAN ÚNICO DE
CUENTAS PARA COMERCIANTES, 1998, Legis, 374p
[12] IMPUESTO DE INDUSTRIA Y COMERCIO, AVISOS Y TABLEROS; Disponible
http://www.shd.gov.co/servicios/ciudadanos/impuestos/impuestos/ica/ica02_imp_imp_ciu_
ser.htm (Diciembre de 2004)
[13] Tributación (Impuestos Nacionales); Disponible en
http://www.virtual.unal.edu.co/cursos/economicas/2006862/lecciones/capitulo%208/cap8_
b_b.htm (Diciembre de 2004)
[14] CETA; ¿Qué es el PAAG?; Disponible en http://www.ceta.org.co/html/tabla_paag.asp
(Diciembre de 2004)
[15] PLAN UNICO DE CUENTAS PARA COMERCIANTES; Disponible en
http://66.34.26.72/Site/legisla/PUC.htm (Diciembre de 2004)