-- =============================================================================
-- XPERT SAP B1 - Migracion 049
-- Prioridad entre pallet completo y el metodo de picking (FEFO/FIFO) al
-- liberar a picking.
--
-- PickingService::releaseForPicking hoy siempre toma un pallet completo si
-- alcanza, sin excepcion, aunque eso implique despachar stock que vence/
-- entro mas tarde mientras stock mas urgente (segun FEFO o FIFO, lo que
-- este configurado) queda esperando. Distintas empresas tienen distinta
-- sensibilidad a esto -- se resuelve con un parametro de 2 niveles, mismo
-- patron ya usado para picking_method (empresa por default, item puede
-- forzar un valor distinto).
-- =============================================================================

ALTER TABLE `company_settings`
    ADD COLUMN `pallet_priority_strategy` ENUM('PALLET_FIRST','METHOD_STRICT','PALLET_IF_NOT_WORSE') NOT NULL DEFAULT 'PALLET_FIRST'
    COMMENT 'Prioridad entre pallet completo y el metodo de picking (FEFO/FIFO) configurado -- ver PickingService::resolvePalletStrategy',
    ADD COLUMN `pallet_priority_max_diff_days` INT UNSIGNED NOT NULL DEFAULT 30
    COMMENT 'Solo aplica con PALLET_IF_NOT_WORSE: dias maximos de diferencia (vencimiento si FEFO, antiguedad de recepcion si FIFO) tolerados para preferir el pallet completo';

ALTER TABLE `items`
    ADD COLUMN `pallet_priority_strategy` ENUM('COMPANY_DEFAULT','PALLET_FIRST','METHOD_STRICT','PALLET_IF_NOT_WORSE') NOT NULL DEFAULT 'COMPANY_DEFAULT'
    COMMENT 'COMPANY_DEFAULT = usa company_settings.pallet_priority_strategy; fuerza un criterio distinto para este item puntual (ej. vencimiento critico)';
