Blog‎ > ‎

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.