Conociendo la base de datos que ofrece Odoo

conoce la base de datos de Odoo

Odoo tiene un mapeo objeto-relacional (ORM) que internamente (normalmente) mapea cada objeto del modelo Odoo a una tabla PostgreSQL. El ORM ahorra al desarrollador la complejidad de gestionar el modelo de datos directamente en la base de datos.

Con el ORM, Odoo también puede garantizar que los datos del modelo de datos no se corrompan o provoquen errores en el sistema) y controlar la seguridad del sistema impidiendo que los usuarios no deseados accedan a objetos no autorizados, como el acceso del proveedor a una orden de producción.

A menudo se oye la pregunta: "¿Dónde puedo encontrar un diagrama o DER con todas las tablas en Odoo?" y la respuesta es siempre la misma: "Puedes crear uno, pero es más fácil utilizar las herramientas que ofrece Odoo".

Para entender el modelo de datos, Odoo ofrece un modo de desarrollador y un menú muy útil en Configuración > Tecnología > Estructura de la base de datos > Modelos. Este menú lista los modelos (o clases para los puristas orientados a objetos) con los que trabaja Odoo.

Aquí podemos conocer más sobre cada uno de los objetos con los que trabaja Odoo y, haciendo clic sobre ellos, podemos conocer más sobre sus campos, su tipo y el módulo que sobrescribe el campo - muy útil para los desarrolladores.

De este modo, es posible averiguar qué "tablas y campos" componen el modelo de datos de Odoo. Esto incluye modelos temporales (creados para los asistentes) y campos computables (que pueden o no estar almacenados en la base de datos).

Veamos cómo están conectados los principales modelos con los que trabaja Odoo.

Contactos

La función Contactos trabaja con un modelo básico (o tabla), concretamente res.partner. Un interlocutor en Odoo es cualquier contacto que puede ser un cliente, proveedor, empleado, usuario o empresa (pueden ser varios). Esta entidad (física o jurídica). ¿Cómo se llama esta entidad? res.partner. Este objeto se utiliza en todos los módulos (cada objeto en Odoo tiene dos campos create_uid y write_uid, que se refieren implícitamente a res.partner).

Producto

Otro módulo que contiene los datos básicos que necesita conocer es el módulo de productos. Funciona con dos plantillas: product.template (también conocida como productos) y product.product (también conocida como variante de producto). Para cada producto, se crea automáticamente una variante y todos los campos de product.template se transfieren a product.product. Tenga en cuenta que casi todos los módulos hacen referencia a estas plantillas. Se refieren a product.product y muy raramente a product.template.

Conceptualmente, los productos pueden ser productos para la venta, materias primas y productos desechables.

 

Contabilidad

El módulo de contabilidad consta de varias plantillas. La más importante es la plantilla account.move, que almacena las entradas (consiste en líneas que representan débitos contables; éstas se almacenan en la plantilla account.move.line). Los libros de contabilidad también contienen las facturas de proveedores y clientes y las correspondientes notas de crédito (su funcionamiento no se explica aquí en detalle).

Este módulo también gestiona los pagos (plantilla account.payment). Tenga en cuenta que cada pago está vinculado a un asiento contable (independientemente del estado del pago). También gestiona los extractos de cuenta, que se almacenan en el objeto extracto de cuenta (cuyas filas pertenecen al modelo de fila del extracto de cuenta). Tenga en cuenta que cada línea de declaración genera una entrada (account.move).

En el nivel de datos maestros, hay tres plantillas principales: cuenta.diario, cuenta.libro y cuenta.impuesto.

Ventas

El módulo de ventas gestiona los pedidos de los comerciales. El modelo principal es sales.order, que almacena los pedidos de venta. Está vinculado a los clientes a través del campo "partner_id". Consiste en reglas almacenadas en el modelo sales.order.line. Estas líneas se asocian a los productos a través del campo product_id. El departamento de ventas puede crear cuentas de clientes (modelo account.move) y cuentas de entrega (stock.picking).

CRM

Las oportunidades y los clientes potenciales se almacenan en un objeto llamado crm.lead. Esta plantilla contiene un campo "tipo" para distinguir entre un cliente potencial y una oportunidad. Puede estar asociado o no a un contacto (mediante partner_id) y puede crear un pedido de venta (sale.order).

Adquisiciones

El módulo de compras gestiona principalmente los pedidos de compra y las licitaciones. El modelo principal es purchase.order, donde se almacenan los pedidos de compra. Está vinculado a los proveedores a través del campo partner_id. Son filas almacenadas en el modelo purchase.order.line. Estas líneas se asocian a los productos a través del campo product_id. Los compradores pueden crear facturas a los proveedores (modelo account.move) y albaranes (stock.picking).

Acciones

El módulo de existencias consta de traslados de existencias (stock.picking), que son la cabecera de los movimientos de existencias. Cada movimiento de stock está formado por movimientos de stock (stock.move) que trasladan las mercancías (producto.product) de una ubicación a otra (stock.location). Las ubicaciones de las existencias se almacenan jerárquicamente y se agrupan por almacén (stock.warehouse).

 

Producción

El dato básico más importante en la producción (aparte de las materias primas y los productos acabados) es la lista de materiales. Aquí se almacenan las recetas que especifican las materias primas que se utilizarán para elaborar el producto final. El modelo que gestiona las listas de materiales se denomina mrp.bom y está formado por líneas (mrp.bom.line).

Cada orden de producción se almacena en un objeto mrp.production (vinculado a los productos por el campo product_id y a la lista de materiales por el campo bom_id). Una orden de fabricación se compone de ingredientes (materias primas consumidas o por consumir), que son movimientos de stock (stock.move). Y el producto final, que también es un movimiento de material (stock.move).

Tenga en cuenta que el módulo de producción no menciona el módulo de operación.

Conoce que Beneficios te brinda PLM
Conociendo los beneficios que brinda el PLM