-- =============================================================================
-- XPERT SAP B1 - Migracion 038
-- Transferencia de Salida: unica ST que nace en el WMS (a diferencia de
-- todo lo demas, que llega desde SAP y el WMS lo importa). Requiere poder
-- distinguir un almacen "gestionado por WMS" de uno "gestionado directo
-- por SAP" (hoy es pura convencion, sin columna) y darle a
-- outbound_documents las mismas columnas de vinculo SAP que ya tiene
-- inbound_documents para su ST de entrada (sap_doc_type, codigo del
-- almacen del otro lado, DocEntry/DocNum de la confirmacion al despachar).
-- =============================================================================

ALTER TABLE `warehouses`
    ADD COLUMN `managed_by_wms` TINYINT(1) NOT NULL DEFAULT 1
        COMMENT '0 = deposito externo, gestionado directo por SAP (ej. PROD01) -- WMS nunca hace putaway/picking ahi' AFTER `is_active`;

UPDATE `warehouses` SET `managed_by_wms` = 0 WHERE `code` = 'PROD01';

ALTER TABLE `outbound_documents`
    ADD COLUMN `sap_doc_type`          ENUM('SalesOrder','InventoryTransferRequest') NULL AFTER `source_reference`,
    ADD COLUMN `sap_to_warehouse_code` VARCHAR(20) NULL COMMENT 'Solo ST de salida: codigo SAP del almacen destino (externo, sin fila local)' AFTER `sap_doc_num`,
    ADD COLUMN `sap_transfer_entry`    INT NULL COMMENT 'DocEntry del StockTransfer confirmado a SAP al despachar (solo ST de salida)' AFTER `sap_delivery_num`,
    ADD COLUMN `sap_transfer_num`      INT NULL AFTER `sap_transfer_entry`;

-- Todo lo importado hasta hoy es Pedido de Venta.
UPDATE `outbound_documents` SET `sap_doc_type` = 'SalesOrder' WHERE `sap_doc_entry` IS NOT NULL;

ALTER TABLE `outbound_documents`
    DROP INDEX `uq_outbound_sap_doc`,
    ADD UNIQUE KEY `uq_outbound_sap_doc` (`company_id`, `sap_doc_type`, `sap_doc_entry`);
