Skip to content

[ADD] product_category_reservation_lead_time: reservarion lead time p… - #5

Closed
rebeca-martin wants to merge 1 commit into
16.0from
16.0-add-product_category_reservation_lead_time
Closed

rebeca-martin wants to merge 1 commit into
16.0from
16.0-add-product_category_reservation_lead_time

Conversation

@rebeca-martin

Copy link
Copy Markdown

[ADD] product_category_reservation_lead_time

Módulo nuevo que aporta la superficie de configuración del plazo de reserva
de stock por categoría de producto. Es la Fase 1 de la reserva con ventana móvil
por categoría de Refruiting (odoo-16/refruiting#1633, definición en #1582).

Qué hace

  • Modelo de reglas product.category.reservation.rule: una regla por
    categoría de producto y compañía, con nº de días de plazo.
  • Resolución subiendo por la jerarquía de categorías: una categoría sin
    regla propia hereda la del ancestro más cercano.
  • Plazo global por defecto editable (15 días) por compañía
    (res.company.reservation_lead_days + Ajustes de Inventario), usado cuando ni
    la categoría ni sus ancestros tienen regla.
  • Plazo 0 válido: la existencia de la fila es el discriminador, así 0 ("solo
    el día de la entrega") nunca se confunde con "sin configurar".
  • Método _resolve_reservation_days(category, company) que consume el módulo
    motor (Fase 2, aparte).

Alcance

  • Solo la configuración. La lógica de reservar/liberar por ventana y el cron
    bidireccional viven en stock_reserve_sale_category_window (módulo aparte).
  • depends = ["stock"] (arrastra product): permite menú natural en
    Inventario → Configuración → Reservation Lead Times y ACL por grupos de
    inventario.

Cómo se ha probado

  • pre-commit run --all-files en verde (black, isort, flake8, pylint_odoo,
    prettier-xml, oca-gen-addon-readme, setuptools-odoo).
  • Tests unitarios de _resolve_reservation_days (11 casos): global por defecto,
    regla en categoría, herencia, override, plazo 0, multi-compañía, edición del
    global, regla inactiva y los dos _sql_constraints.

Objetivos de validación cubiertos (de la definición)

  • V1 (reserva por regla de categoría), V4 (herencia + override), V5 (global 15),
    V8 (editable), V12 (multi-compañía), V13 (plazo 0).
  • V2/V3/V6/V7/V9 (ventana, cron, convivencia con manual) → módulo motor Fase 2.

@rebeca-martin rebeca-martin self-assigned this Sep 4, 2026
@rebeca-martin
rebeca-martin deleted the 16.0-add-product_category_reservation_lead_time branch September 15, 2026 09:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant