267 lines
7.8 KiB
JSON
267 lines
7.8 KiB
JSON
{
|
|
"configuracion_compras": {
|
|
"planes_por_tenant": 8,
|
|
"requisitos_por_plan": {
|
|
"min": 5,
|
|
"max": 12
|
|
},
|
|
"distribucion_temporal": {
|
|
"completados": {
|
|
"porcentaje": 0.25,
|
|
"offset_dias_min": -45,
|
|
"offset_dias_max": -8,
|
|
"estados": ["completed"]
|
|
},
|
|
"en_ejecucion": {
|
|
"porcentaje": 0.375,
|
|
"offset_dias_min": -7,
|
|
"offset_dias_max": -1,
|
|
"estados": ["in_execution", "approved"]
|
|
},
|
|
"pendiente_aprobacion": {
|
|
"porcentaje": 0.25,
|
|
"offset_dias_min": 0,
|
|
"offset_dias_max": 0,
|
|
"estados": ["pending_approval"]
|
|
},
|
|
"borrador": {
|
|
"porcentaje": 0.125,
|
|
"offset_dias_min": 1,
|
|
"offset_dias_max": 3,
|
|
"estados": ["draft"]
|
|
}
|
|
},
|
|
"distribucion_estados": {
|
|
"draft": 0.125,
|
|
"pending_approval": 0.25,
|
|
"approved": 0.25,
|
|
"in_execution": 0.25,
|
|
"completed": 0.125
|
|
},
|
|
"tipos_plan": [
|
|
{"tipo": "regular", "peso": 0.75},
|
|
{"tipo": "emergency", "peso": 0.15},
|
|
{"tipo": "seasonal", "peso": 0.10}
|
|
],
|
|
"prioridades": {
|
|
"low": 0.20,
|
|
"normal": 0.55,
|
|
"high": 0.20,
|
|
"critical": 0.05
|
|
},
|
|
"estrategias_compra": [
|
|
{"estrategia": "just_in_time", "peso": 0.50},
|
|
{"estrategia": "bulk", "peso": 0.30},
|
|
{"estrategia": "mixed", "peso": 0.20}
|
|
],
|
|
"niveles_riesgo": {
|
|
"low": 0.50,
|
|
"medium": 0.30,
|
|
"high": 0.15,
|
|
"critical": 0.05
|
|
},
|
|
"ingredientes_demo": [
|
|
{
|
|
"id": "10000000-0000-0000-0000-000000000001",
|
|
"nombre": "Harina de Trigo Panadera T-55",
|
|
"sku": "ING-HAR-001",
|
|
"categoria": "harinas",
|
|
"tipo": "ingredient",
|
|
"unidad": "kg",
|
|
"costo_unitario": 0.65,
|
|
"lead_time_dias": 3,
|
|
"cantidad_minima": 500.0,
|
|
"vida_util_dias": 180
|
|
},
|
|
{
|
|
"id": "10000000-0000-0000-0000-000000000002",
|
|
"nombre": "Harina de Trigo Integral",
|
|
"sku": "ING-HAR-002",
|
|
"categoria": "harinas",
|
|
"tipo": "ingredient",
|
|
"unidad": "kg",
|
|
"costo_unitario": 0.85,
|
|
"lead_time_dias": 3,
|
|
"cantidad_minima": 300.0,
|
|
"vida_util_dias": 120
|
|
},
|
|
{
|
|
"id": "10000000-0000-0000-0000-000000000003",
|
|
"nombre": "Levadura Fresca Prensada",
|
|
"sku": "ING-LEV-001",
|
|
"categoria": "levaduras",
|
|
"tipo": "ingredient",
|
|
"unidad": "kg",
|
|
"costo_unitario": 3.50,
|
|
"lead_time_dias": 2,
|
|
"cantidad_minima": 25.0,
|
|
"vida_util_dias": 21
|
|
},
|
|
{
|
|
"id": "10000000-0000-0000-0000-000000000004",
|
|
"nombre": "Sal Marina Refinada",
|
|
"sku": "ING-SAL-001",
|
|
"categoria": "ingredientes_basicos",
|
|
"tipo": "ingredient",
|
|
"unidad": "kg",
|
|
"costo_unitario": 0.40,
|
|
"lead_time_dias": 7,
|
|
"cantidad_minima": 200.0,
|
|
"vida_util_dias": 730
|
|
},
|
|
{
|
|
"id": "10000000-0000-0000-0000-000000000005",
|
|
"nombre": "Mantequilla 82% MG",
|
|
"sku": "ING-MAN-001",
|
|
"categoria": "lacteos",
|
|
"tipo": "ingredient",
|
|
"unidad": "kg",
|
|
"costo_unitario": 5.80,
|
|
"lead_time_dias": 2,
|
|
"cantidad_minima": 50.0,
|
|
"vida_util_dias": 90
|
|
},
|
|
{
|
|
"id": "10000000-0000-0000-0000-000000000006",
|
|
"nombre": "Azúcar Blanco Refinado",
|
|
"sku": "ING-AZU-001",
|
|
"categoria": "azucares",
|
|
"tipo": "ingredient",
|
|
"unidad": "kg",
|
|
"costo_unitario": 0.75,
|
|
"lead_time_dias": 5,
|
|
"cantidad_minima": 300.0,
|
|
"vida_util_dias": 365
|
|
},
|
|
{
|
|
"id": "10000000-0000-0000-0000-000000000007",
|
|
"nombre": "Huevos Categoría A",
|
|
"sku": "ING-HUE-001",
|
|
"categoria": "lacteos",
|
|
"tipo": "ingredient",
|
|
"unidad": "unidad",
|
|
"costo_unitario": 0.18,
|
|
"lead_time_dias": 2,
|
|
"cantidad_minima": 360.0,
|
|
"vida_util_dias": 28
|
|
},
|
|
{
|
|
"id": "10000000-0000-0000-0000-000000000008",
|
|
"nombre": "Leche Entera UHT",
|
|
"sku": "ING-LEC-001",
|
|
"categoria": "lacteos",
|
|
"tipo": "ingredient",
|
|
"unidad": "litro",
|
|
"costo_unitario": 0.85,
|
|
"lead_time_dias": 3,
|
|
"cantidad_minima": 100.0,
|
|
"vida_util_dias": 90
|
|
},
|
|
{
|
|
"id": "10000000-0000-0000-0000-000000000009",
|
|
"nombre": "Chocolate Cobertura 70%",
|
|
"sku": "ING-CHO-001",
|
|
"categoria": "chocolates",
|
|
"tipo": "ingredient",
|
|
"unidad": "kg",
|
|
"costo_unitario": 12.50,
|
|
"lead_time_dias": 5,
|
|
"cantidad_minima": 25.0,
|
|
"vida_util_dias": 365
|
|
},
|
|
{
|
|
"id": "10000000-0000-0000-0000-000000000010",
|
|
"nombre": "Aceite de Oliva Virgen Extra",
|
|
"sku": "ING-ACE-001",
|
|
"categoria": "aceites",
|
|
"tipo": "ingredient",
|
|
"unidad": "litro",
|
|
"costo_unitario": 4.20,
|
|
"lead_time_dias": 4,
|
|
"cantidad_minima": 50.0,
|
|
"vida_util_dias": 540
|
|
},
|
|
{
|
|
"id": "10000000-0000-0000-0000-000000000011",
|
|
"nombre": "Bolsas de Papel Kraft",
|
|
"sku": "PAC-BOL-001",
|
|
"categoria": "embalaje",
|
|
"tipo": "packaging",
|
|
"unidad": "unidad",
|
|
"costo_unitario": 0.08,
|
|
"lead_time_dias": 10,
|
|
"cantidad_minima": 5000.0,
|
|
"vida_util_dias": 730
|
|
},
|
|
{
|
|
"id": "10000000-0000-0000-0000-000000000012",
|
|
"nombre": "Cajas de Cartón Grande",
|
|
"sku": "PAC-CAJ-001",
|
|
"categoria": "embalaje",
|
|
"tipo": "packaging",
|
|
"unidad": "unidad",
|
|
"costo_unitario": 0.45,
|
|
"lead_time_dias": 7,
|
|
"cantidad_minima": 500.0,
|
|
"vida_util_dias": 730
|
|
}
|
|
],
|
|
"rangos_cantidad": {
|
|
"harinas": {"min": 500.0, "max": 2000.0},
|
|
"levaduras": {"min": 20.0, "max": 100.0},
|
|
"ingredientes_basicos": {"min": 100.0, "max": 500.0},
|
|
"lacteos": {"min": 50.0, "max": 300.0},
|
|
"azucares": {"min": 200.0, "max": 800.0},
|
|
"chocolates": {"min": 10.0, "max": 50.0},
|
|
"aceites": {"min": 30.0, "max": 150.0},
|
|
"embalaje": {"min": 1000.0, "max": 10000.0}
|
|
},
|
|
"buffer_seguridad_porcentaje": {
|
|
"min": 10.0,
|
|
"max": 30.0,
|
|
"tipico": 20.0
|
|
},
|
|
"horizonte_planificacion_dias": {
|
|
"individual_bakery": 14,
|
|
"central_bakery": 21
|
|
},
|
|
"metricas_rendimiento": {
|
|
"tasa_cumplimiento": {"min": 85.0, "max": 98.0},
|
|
"entrega_puntual": {"min": 80.0, "max": 95.0},
|
|
"precision_costo": {"min": 90.0, "max": 99.0},
|
|
"puntuacion_calidad": {"min": 7.0, "max": 10.0}
|
|
}
|
|
},
|
|
"alertas_compras": {
|
|
"plan_urgente": {
|
|
"condicion": "plan_type = emergency AND status IN (draft, pending_approval)",
|
|
"mensaje": "Plan de compras de emergencia requiere aprobación urgente: {plan_number}",
|
|
"severidad": "high"
|
|
},
|
|
"requisito_critico": {
|
|
"condicion": "priority = critical AND required_by_date < NOW() + INTERVAL '3 days'",
|
|
"mensaje": "Requisito crítico con fecha límite próxima: {product_name} para {required_by_date}",
|
|
"severidad": "high"
|
|
},
|
|
"riesgo_suministro": {
|
|
"condicion": "supply_risk_level IN (high, critical)",
|
|
"mensaje": "Alto riesgo de suministro detectado en plan {plan_number}",
|
|
"severidad": "medium"
|
|
},
|
|
"fecha_pedido_proxima": {
|
|
"condicion": "suggested_order_date BETWEEN NOW() AND NOW() + INTERVAL '2 days'",
|
|
"mensaje": "Fecha sugerida de pedido próxima: {product_name}",
|
|
"severidad": "medium"
|
|
}
|
|
},
|
|
"notas": {
|
|
"descripcion": "Configuración para generación de planes de compras demo",
|
|
"planes_totales": 8,
|
|
"ingredientes_disponibles": 12,
|
|
"proveedores": "Usar proveedores de proveedores_es.json",
|
|
"fechas": "Usar offsets relativos a BASE_REFERENCE_DATE",
|
|
"moneda": "EUR",
|
|
"idioma": "español"
|
|
}
|
|
}
|