vBASE: Personalizando Entidades

publicado a la‎(s)‎ 1 mar. 2011 8:07 por v TODO

Al diseñar vBase nuestro objetivo era abstraer su contenido del uso que se pueda hacer desde otro proyecto. Por eso nuestra prioridad ha sido que en la tabla Entidades (ENT) no fuese necesario tener ningún dato dependiente de como interactuamos con ella a través de contabilidad, gestión, etc.

Para ello hemos creado una tabla de uso del programador “Tipo de entidad” (ENT_TIP) , donde cada proyecto podrá crear los tipos que necesite y la hemos relacionado con las entidades a través de la tabla “Entidad – Tipos de entidad” ( ENT_ENT_TIP).

Para manejar estas tablas, tenemos 4 funciones:

ENT_TIP_RSV_ALT.- Esta función nos crea un tipo de entidad, de uso reservado (El usuario no la podrá eliminar, ni modificar su código). La usaremos al inicializar nuestras aplicaciones.

fun:ENT_TIP_RSV_ALT@Entidades.dat(~CLT_TIP@vConta.dat, “Cliente “, 1)

ENT_ENT_TIP. Nos permite crear o verificar si existe una relación entre una entidad y un tipo de entidad. Nos retorna el ID de la tabla ENT_ENT_TIP.

fun:ENT_ENT_TIP@Entidades.dat(#ENT_CLT, ~CLT_TIP@vConta.dat, “N”, $EMP_ID_ENT@Entidades.dat)

ENT_ALT.- Un asistente para crear una entidad pasándole el tipo que queramos, nos retorna el ID de la entidad (tabla ENT), y se asegura que es del tipo pedido.

fun:ENT_ALT@vBase.app(~CLT_TIP@vConta.dat, $EMP_ID_ENT@Entidades.dat)

ENT_LOC.-  Un localizador de entidades, al cual le pasamos el tipo de entidad  (cliente, proveedor,..) y nos permite localizar por trozos, palabras… solo dentro de las entidades de tipo especificado.

fun:ENT_LOC@vBase.app( $EMP_ID_ENT@Entidades.dat , TIP_ENT, “”, “” )

Tipos de entidad

En esta tabla tenemos dos campos muy importantes:

Reservado: Cuando desde un proyecto creamos un tipo de entidad que necesitemos, como por ejemplo “alumno”, debemos marcarlo como “reservado”, de esta forma el usuario podrá ver y utilizar este tipo, pero no lo podrá modificar ni borrar (Al crear el tipo desde la función ENT_TIP_RSV_ALT ya se marca como tal). De esta forma, también permitimos al usuario de la aplicación crear sus propios tipos de entidad (estos no tendrán nunca la marca de reservado).

Multi empresa: Cuando indicamos que este tipo es multiempresa, le estamos indicando que el usuario cuando tenga más de una empresa, podrá definir una entidad como cliente para una empresa, sin que eso suponga que también estará como cliente para el resto.

Un ejemplo lo tenemos  en vConta, desde donde creamos los tipos:

Id Nombre Multi Empresa Reservado
CLT Cliente Si Si
PRV Proveedor Si Si

 

Tipificando entidades

Una vez creados los tipos de entidad, el usuario podrá, desde la ficha de la entidad, definir que entidades son sus clientes y cuales sus proveedores (pudiendo, lógicamente, ser ambas cosas a la vez). Esto se realiza mediante la tabla ENT_ENT_TIP (Entidad – Tipos de entidad)

 

Localizando una entidad del tipo deseado

Cuando desde la contabilidad queremos buscar, por ejemplo un cliente, utilizamos la función ENT_LOC, que nos mostrará el siguiente localizador:

A esta función se le pasa la empresa con la que estamos trabajando (necesaria para los tipos de entidad por empresa), y hasta 3 tipos de entidad (para permitirnos buscar, por ejemplo, clientes o preclientes).

Creando entidades desde otros proyectos

Para crear entidades desde otros proyectos disponemos de dos funciones que explicamos a continuación

ENT_ALT. Alta de entidad

Esta función nos realiza todo el proceso de creación de una entidad, mediante un asistente. Pero tiene 2parámetros importantes:

  • TIP_ENT (Tipo de entidad): En el primer parámetro podemos pasarle el tipo de entidad que estamos creando (por ejemplo “CLT”, cliente), si queremos crear una entidad genérica pasaremos “”.
  • EMP_ID (ID de la empresa): En el segundo parámetro indicamos con que empresa estamos trabajando.

La función nos retorna el ID de la entidad.

Dentro de la función se realiza el alta de la entidad, dirección y teléfonos de contactos, y al final se asegura que quede definida como cliente.

ENT_ENT_TIP. Verificar o crear relación entre entidad y tipo de entidad

A esta función le tenemos que pasar:

  • ID de la entidad
  • El tipo de entidad
  • La acción a realizar:
    • N. Nuevo: Nos crea el enlace, solo si no existe
    • V. Verificar: Retorna 0 si no existe
    • B. Borrar: Borra el enlace ente la entidad y el tipo
  • La empresa con la que trabajamos

La función nos retorna el ID de la tabla ENT_ENT_TIP.

Con esta función somos nosotros los que desde nuestra aplicación nos aseguramos que se establece el enlace, pudiendo además crear tablas con los datos específicos (formas de pago, tarifas, etc.) asociadas a la relación. Esto es importante si queremos utilizar campos de edición de clientes, donde podamos escribir el nombre, buscándonos únicamente en las entidades cliente.

 

Puedes descargar vBase, al igual que el resto de plantillas empresariales en el catálogo de Velneo Open Apps.
 

vBASE: Entidades

publicado a la‎(s)‎ 1 mar. 2011 7:55 por v TODO   [ actualizado el 1 mar. 2011 8:04 ]

En la nueva versión 2.0 de vBase, hemos rediseñado totalmente esta tabla. Ya en su día fue un debate hasta última hora, y se optó por la solución de consenso de una sola tabla, descartando la más flexible y lógica (3 tablas) por primar la usabilidad. Error: lo mas importante siempre debe ser un buen diseño, basado en un análisis de las relaciones. Luego a la hora de crear los objetos que la manejen, ya se buscarán métodos que faciliten su uso, si fuera necesario.

El caso es que todos, por separado, a la hora de explotar la tabla nos dimos cuenta que se debería rediseñar. Ahora con este diseño la flexibilidad es total, también la compatibilidad con los contactos de otros dispositivos como los móviles.

El diseño queda ahora así:
 
  • Entidades: Tabla donde sólo tenemos los datos propios de la entidad, nombre, C.I.F., idioma, foto, etc.
  • Direcciones: Al crear una tabla de direcciones, ya podremos crear tantas como necesitemos para una sola entidad. En esta tabla se encuentra solo la información de la dirección, no sus teléfonos que estarán en la siguiente tabla
  • Contactos: En esta tabla tendremos los teléfonos, correos electrónicos, fax y cualquier otro medio de contacto con la entidad. No tendremos límites, y podremos relacionarlos también con una dirección.
 

Creando entidades

Para facilitar la creación de una entidad, hemos diseñado un asistente, de forma que en una primera pantalla se cree la entidad y la dirección principal (si los datos de la dirección se dejan vacíos, solo creará la entidad), pasando después a un bucle en el que se piden todos los teléfonos/e-mail que se quieran añadir.

Esta es la pantalla principal:

 
 

Contactos

Los contactos se pueden crear tanto desde la entidad como de la dirección. También se puede desde una entidad “arrastrar” un contacto sobre una dirección para que automáticamente quede asociado a esta.

A la hora del diseño de la tabla de contactos, hemos tenido en cuenta su explotación desde otros módulos como un gestor de correo. Para ello tenemos una tabla estática que nos indica la clase (teléfono, fax, e-mail, etc.) y un índice para poder buscar por entidad y clase de contacto. De esta forma nos será sencillo localizar un correo electrónico de una entidad.

 

Exprimiendo vBase

Como esta Velneo Open App va a ser usada para múltiples fines, no hemos querido quedarnos cortos, y hemos añadido un campo Referencia, con un índice, a las tres tablas (Entidades, Direcciones y Contactos). La finalidad de este campo indexado es poder hacer estas tablas históricas de una de nuestra aplicación. Por ejemplo:

Una tabla de obras, en la que queremos tener asociados contactos. Al crear el contacto guardamos en ese campo, por ejemplo “OBRA” + #ID. Ahora cargando por ese índice tendremos todos los contactos de la obra en curso.

Lo mismo podemos hacer con las direcciones.

 

Otros cambios

La tabla Categorías (CAT), la hemos renombrado a Tipo de entidad (ENT_TIP), esto es  fruto de la experiencia con los usuarios, pues no asociaban el concepto “Cliente” con “categoría”, y les era mas fácil hacerlo con la definición “tipo de entidad”. Como estamos en el inicio hemos decidido no acarrear con esta definición el resto de nuestros días

Cambio de versión

Como veis, esta versión tiene muchos cambios con respecto a la anterior, por lo que hemos creado un proceso para no perder los datos que tengamos en la versión anterior. Este proceso se llama CAMBIO_VERSION y se encuentra en el proyecto de datos Entidades. No se ejecuta automáticamente, por  lo que los que tengáis datos antiguos debéis hacerlo desde Velneo vDataClient V7, o incluyéndolo en una opción de menú. Tampoco hemos eliminado los campos de la tabla entidades que han pasado a las otras dos tablas (si no hubiese sido un poco difícil recuperaros esos datos, por lo que sacaremos en breve un versión 2.1 quitando todos los datos sobrantes.

Puedes descargar vBase, al igual que el resto de plantillas empresariales en el catálogo de Velneo Open Apps.

 

vConta - Principios y definiciones - E S T R U C T U R A (ASIENTOS Y APUNTES. FUENTE UNICA DE DATOS)

publicado a la‎(s)‎ 31 ene. 2011 3:40 por v TODO   [ actualizado el 31 ene. 2011 3:54 ]

Uno de los objetivos más importantes planteado por los diseñadores de vConta es maximizar la sencillez, no sólo en el sentido de la sencillez operativa brindada a los usuarios, si no también en la que se refiere al diseño optimizado de las tablas de datos y sus procesos relacionados.

           Es muy común en algunas aplicaciones contables encontrar tablas específicas asociadas a cada una de las gestiones incorporadas en el paquete. Así, por ejemplo,. las operaciones de IVA objeto de declaración suelen almacenarse en una tabla paralela, independiente y redundante del archivo general de apuntes. Otros ejemplos son las Cuentas a Cobrar y las Cuentas a Pagar para las que se suelen preparar tablas específicas y paralelas y su correspondientes funciones ( cobro, devolución, pago, etc.) que actualizan dichas tablas; además, deben emitir los correspondientes reflejos contables. Estos enfoques son el resultado de un diseño no totalmente integrado que diferencia la contabilidad general (teneduría de libros oficiales) de alcance limitado, de las operaciones de gestión (cobrar, pagar, etc.) que son objeto de módulos relacionados pero separados. Este criterio lo que hace es complicar el diseño y la programación y comprometer mucho tiempo de test para validar los sincronismos, sin aportar ventajas evidentes.


            Por contra, la clave para la máxima sencillez es la integración de toda la información contable en una única tabla de Apuntes, que añade a los campos puramente contables aquellos que son necesarios para las gestiones avanzadas incorporadas.


            Es una solución que:


1.-    Aporta visiones necesariamente consistentes, sea cual sea el proceso de explotación o mantenimiento que se use.


2.-   Evita la redundancia de datos, que duplica el mantenimiento, requiere procesos de sincronización y no siempre asegura la congruencia de datos.


3.-    Libera al usuario de la responsabilidad de asegurar la actualización de las diversas tablas relacionadas a fin de mantenerlas consistentes.



           En resumen, vConta mantiene y explota una única tabla para almacenar los Asientos y sus correspondientes Apuntes, es decir utiliza una fuente única de datos. Sobre ella operan todos los mantenimientos y de ella se extraen todas las visiones de gestión contable, no importa el propósito que tengan.

 

El asiento contable (1)

publicado a la‎(s)‎ 5 ene. 2011 1:46 por v TODO

En este primer artículo dedicado a los asientos vamos a hablar del concepto del apunte.

Consiste simplemente en una descripción que se muestra en las consultas de apuntes y nos describe el apunte.

Se pueden tener conceptos preconfigurados con una codificación para evitar distintas formas de expresar lo mismo (S/Fact. Nº, Su Fra. Nº, etc) y que haya una uniformidad en los apuntes.

Si se quiere utilizar conceptos preconfigurados y nosotros recomendamos usarlos, hay que considerar que vConta utiliza algunos códigos de concepto de forma interna. Es por tanto que dichos códigos están “reservados” para utilidades concretas del programa, y no es aconsejable en ningún caso darles otro uso distinto del esperado.


Por ejemplo: 1 – “N/Factura”:

Si bien podemos adecuar el nombre al que más nos guste o convenga (“Nuestra factura”, “N/Fra. Nº”, etc...), no deberíamos destinarlo a otro concepto que no fuese para el que está reservado; en este caso para facturas emitidas.


Los códigos reservados hasta ahora son los siguientes.

Cod. Nombre Significado

1 N/Factura Factura emitida

2 S/Factura Factura recibida

3 Cobro Cobro por banco o caja

4 Pago Pago por banco o caja

5 Agrupamiento

6 Desglose

10 Devolución Devuelto de un recibo por banco.


Por prevención, y teniendo en cuenta que se irán añadiendo más códigos reservados, los conceptos añadidos manualmente han de empezar en el código 51.

Cuando se añadan nuevos códigos reservados, y estos coincidan con algún código definido anteriormente de forma manual, dichos códigos manuales han de “migrarse” a los reservados.


Glosario de vConta (1)

publicado a la‎(s)‎ 4 ene. 2011 4:43 por v TODO

El objetivo de este documento es aclarar conceptos que se usan en vConta y que se repetirán a lo largo de los distintos documentos y videos que se publicarán a modo de documentación.


  • Borrador de asiento.

    Es un asiento total o parcialmente completado que aún no forma parte del diario de movimientos.


  • Compensación.

    Conjunto de apuntes con una correlación lógica cuyo saldo es cero. Como ejemplo podemos considerar el apunte de factura de un proveedor y su pago.


  • Posición con una entidad.

    Situación del saldo vivo con una entidad, cuando se realiza una consulta por posición se omite la cuenta de mayor consultando unicamente por la entidad.

    Especialmente util cuando una entidad es cliente y proveedor.


  • Carrera de cobro.

    Distintas cuentas por las que pasa un efecto a lo largo del proceso de cobro.


  • Postdatar.

    Es la acción de asignar una fecha de vencimiento y un tipo de documento a un cobro.


Bienvenidos

publicado a la‎(s)‎ 2 dic. 2010 12:22 por v TODO   [ actualizado el 3 dic. 2010 2:08 ]

Hoy inauguramos un blog específico para compartir con todos vosotros la evolución de nuestro proyecto.

1-6 of 6