Skip to content

M06 Costeo -- Modelo de Datos

CampoValor
EstadoBorrador
PrioridadFase 1 -- Transversal
Última actualización2026-03-25
MóduloM06 Costeo

1. Diagrama entidad-relación


2. Detalle de entidades

2.1 MATERIA_PRIMA

Catálogo de materias primas utilizadas en las preparaciones magistrales.

CampoTipoNuloDescripción
idUUIDNoIdentificador único
id_recetarioUUIDNoRecetario propietario del registro
codigoVARCHAR(50)NoCódigo interno de la materia prima
nombreVARCHAR(255)NoNombre de la materia prima
unidad_compraVARCHAR(50)NoUnidad en que se compra: kg, g, litro, ml, unidad
proveedor_principalVARCHAR(255)Proveedor principal habitual
activoBOOLEANNoIndica si la materia prima está vigente en el catálogo
created_atTIMESTAMPNoFecha de creación
updated_atTIMESTAMPNoFecha de última modificación
created_byVARCHAR(255)NoUsuario que creó el registro

Índices sugeridos: id_recetario, codigo, nombre.

Restricción: codigo debe ser único dentro de un mismo id_recetario.


2.2 COSTO_MATERIA_PRIMA

Registro de costos por materia prima, con soporte para múltiples proveedores y vigencias.

CampoTipoNuloDescripción
idUUIDNoIdentificador único
id_materia_primaUUIDNoMateria prima a la que pertenece este costo
proveedorVARCHAR(255)NoNombre del proveedor que ofrece este precio
costo_unitarioDECIMAL(12,4)NoCosto por unidad de compra
monedaVARCHAR(10)NoMoneda del costo: CLP, USD
fecha_vigencia_desdeDATENoFecha desde la cual aplica este costo
fecha_vigencia_hastaDATEFecha hasta la cual aplica (NULL = vigente indefinidamente)
vigenteBOOLEANNoIndica si este es el costo vigente actualmente
created_atTIMESTAMPNoFecha de creación del registro
created_byVARCHAR(255)NoUsuario que registró el costo

Índices sugeridos: id_materia_prima, vigente, fecha_vigencia_desde.

Regla: Solo puede haber un registro vigente por materia prima y proveedor en un momento dado.


2.3 PRODUCTO

Catálogo de productos (preparaciones magistrales) del recetario con su clasificación y unidad de costeo.

CampoTipoNuloDescripción
idUUIDNoIdentificador único
id_recetarioUUIDNoRecetario propietario
codigoVARCHAR(50)NoCódigo interno del producto (ej: asignado desde ERP o Mastersoft)
nombreVARCHAR(255)NoNombre completo del producto
activo_principalVARCHAR(255)Principio activo principal (ej: ciclosporina, clobetasol)
concentracionVARCHAR(100)Concentración (ej: 1%, 0.5%, 250 mg)
forma_farmaceuticaVARCHAR(100)NoForma farmacéutica: cápsula, crema, colirio, jarabe, ungüento, solución
presentacionVARCHAR(100)NoPresentación: 10 ml, 30 g, 1 unidad, etc.
lineaVARCHAR(100)Línea del producto: oftalmología, dermatología, veterinaria, etc.
unidad_costeoVARCHAR(50)NoUnidad base de costeo: unidad, gramo, ml, frasco
tipo_productoVARCHAR(50)NoTipo: estándar, variable
estandarizadoBOOLEANNoIndica si el producto tiene fórmula fija (true) o es variable por receta (false)
activoBOOLEANNoIndica si el producto está vigente en el catálogo
created_atTIMESTAMPNoFecha de creación
updated_atTIMESTAMPNoFecha de última modificación
created_byVARCHAR(255)NoUsuario que creó el registro

Índices sugeridos: id_recetario, codigo, activo_principal, forma_farmaceutica, linea, activo.

Restricción: codigo debe ser único dentro de un mismo id_recetario.

Nota: La estructura de campos (activo_principal, concentracion, forma_farmaceutica, presentacion, linea) refleja la organización que Reccius maneja en sus hojas de cálculo actuales, según lo discutido en la reunión 2026-03-24 (Inger: "el activo, la concentración, la unidad, la línea, las presentaciones y la forma farmacéutica").


2.4 FORMULA_PRODUCTO

Composición de un producto: lista de materias primas con cantidades por unidad de costeo.

CampoTipoNuloDescripción
idUUIDNoIdentificador único
id_productoUUIDNoProducto al que pertenece esta línea de fórmula
id_materia_primaUUIDNoMateria prima utilizada
cantidad_por_unidadDECIMAL(10,4)NoCantidad de esta materia prima por unidad de costeo del producto
unidad_medidaVARCHAR(20)NoUnidad: g, mg, ml, unidad
observacionesTEXTObservaciones técnicas
created_atTIMESTAMPNoFecha de creación

Índices sugeridos: id_producto, id_materia_prima.

Nota: Solo aplica para productos estandarizados (estandarizado = true). Para productos variables, el costo se carga directamente en COSTO_PRODUCTO con metodo_calculo = 'manual'.


2.5 COSTO_PRODUCTO

Costo calculado y precio base de un producto, con soporte para vigencias.

CampoTipoNuloDescripción
idUUIDNoIdentificador único
id_productoUUIDNoProducto al que pertenece este costo
costo_materias_primasDECIMAL(12,2)NoSuma del costo de materias primas por unidad de costeo
factor_mano_obraDECIMAL(12,2)Costo de mano de obra por unidad (configurable)
factor_overheadDECIMAL(12,2)Costos indirectos por unidad (configurable)
costo_totalDECIMAL(12,2)NoCosto total = MP + mano de obra + overhead
margen_porcentajeDECIMAL(5,2)NoPorcentaje de margen aplicado (ej: 20.00, 50.00, 60.00)
precio_baseDECIMAL(12,2)NoPrecio base = costo_total x (1 + margen/100)
fecha_vigencia_desdeDATENoFecha desde la cual aplica este precio
fecha_vigencia_hastaDATEFecha hasta la cual aplica (NULL = vigente indefinidamente)
vigenteBOOLEANNoIndica si este es el costo/precio vigente actualmente
metodo_calculoVARCHAR(20)NoMétodo: automático (desde fórmula), manual (ingresado a mano)
created_atTIMESTAMPNoFecha de creación
created_byVARCHAR(255)NoUsuario que generó el registro

Índices sugeridos: id_producto, vigente, fecha_vigencia_desde.

Regla: Solo puede haber un registro vigente por producto en un momento dado.


2.6 HISTORIAL_COSTO

Registro de todos los cambios de costo y precio, tanto de materias primas como de productos.

CampoTipoNuloDescripción
idUUIDNoIdentificador único del registro
entidad_tipoVARCHAR(30)NoTipo de entidad modificada: materia_prima, producto
entidad_idUUIDNoID de la materia prima o producto modificado
campo_modificadoVARCHAR(50)NoCampo que cambió: costo_unitario, precio_base, margen_porcentaje, etc.
valor_anteriorDECIMAL(12,4)Valor antes del cambio (NULL para primer registro)
valor_nuevoDECIMAL(12,4)NoValor después del cambio
motivoTEXTMotivo del cambio (revisión anual, cambio de proveedor, ajuste comercial, etc.)
usuarioVARCHAR(255)NoUsuario que realizó el cambio
fecha_cambioTIMESTAMPNoFecha y hora del cambio

Índices sugeridos: entidad_tipo + entidad_id, fecha_cambio.


3. Relaciones entre entidades

Entidad origenEntidad destinoCardinalidadDescripción
MateriaPrimaCostoMateriaPrima1:NUna materia prima puede tener múltiples registros de costo (por proveedor y por período)
MateriaPrimaFormulaProducto1:NUna materia prima puede estar en la fórmula de múltiples productos
ProductoFormulaProducto1:NUn producto puede tener múltiples materias primas en su fórmula
ProductoCostoProducto1:NUn producto puede tener múltiples registros de costo (por período)
MateriaPrima, ProductoHistorialCosto1:NCada cambio de costo queda registrado (relación polimórfica vía entidad_tipo + entidad_id)

4. Relaciones con otros módulos

Entidad M06Módulo externoRelaciónDetalle
CostoProducto (precio_base)M02 CotizaciónConsultaM02 consulta el precio base vigente para generar cotizaciones
CostoProducto (precio_base)M03 B2B (Convenio)ConsultaM03 consulta el precio base y aplica descuento de convenio para calcular el precio de convenio
Producto (codigo)M03 B2B (LineaSolicitud)ReferenciaLas líneas de solicitud B2B referencian el código de producto definido en M06

5. Notas de implementación

  • El campo codigo en Producto corresponde al código interno del recetario (el mismo que usa en Mastersoft o en su ERP). Esto permite cruzar información contable, como se discutió en la reunión 2026-03-24.
  • La tabla FORMULA_PRODUCTO solo se usa para productos estandarizados. Los productos variables (recetas nuevas) tienen su costo registrado directamente en COSTO_PRODUCTO con metodo_calculo = 'manual'.
  • El campo moneda en COSTO_MATERIA_PRIMA permite soportar materias primas cotizadas en USD (importaciones), aunque el precio_base en COSTO_PRODUCTO siempre se expresa en CLP.
  • El HISTORIAL_COSTO usa un patrón polimórfico (entidad_tipo + entidad_id) para registrar cambios tanto de materias primas como de productos en una sola tabla, facilitando consultas transversales de trazabilidad.
  • La exportación e importación masiva (HU-M06-006, HU-M06-007) opera sobre las tablas PRODUCTO y COSTO_PRODUCTO, generando registros en HISTORIAL_COSTO por cada cambio aplicado.

Volver al Requerimientos M06 | Ver Historias de usuario M06 | Ver Índice general