-- =============================================================================
-- XPERT SAP B1 - Migracion 036
-- Casos 5 y 6 del analisis de "Documento de Ingreso por caso SAP B1":
--
-- Caso 5 (Ajuste de Auditoria): el ajuste se detecta ACA en el WMS via
-- Conteos de Inventario (StockCountService::approve(), ya existente) --
-- no es un import, es un push-back nuevo que hoy no existe (approve()
-- ajusta stock local pero nunca avisa a SAP). sap_adjustment_doc_entry/
-- num guardan la confirmacion (InventoryGenEntries/InventoryGenExits).
--
-- Caso 6 (Rechazo de Cliente / devolucion): a diferencia de los demas
-- casos SAP de esta tabla, no es un import -- es un documento de ingreso
-- MANUAL (arranca en el deposito, no en SAP) que al cerrarse empuja una
-- CreditNotes (ORIN) a SAP referenciando la venta original. Patron
-- tomado de WMS/Comfar (ReturnService), adaptado para usar FK reales
-- (customer_id, related_outbound_document_id) en vez de texto suelto.
-- =============================================================================

ALTER TABLE `stock_counts`
    ADD COLUMN `sap_adjustment_doc_entry` INT NULL COMMENT 'DocEntry del InventoryGenEntry/GenExit confirmado en SAP' AFTER `approval_notes`,
    ADD COLUMN `sap_adjustment_doc_num`   INT NULL AFTER `sap_adjustment_doc_entry`;

ALTER TABLE `inbound_documents`
    ADD COLUMN `customer_id`                   INT UNSIGNED NULL COMMENT 'Solo para devoluciones de cliente (Caso 6) -- no aplica junto con supplier_id' AFTER `supplier_id`,
    ADD COLUMN `related_outbound_document_id`  INT UNSIGNED NULL COMMENT 'Venta original que se esta revirtiendo, solo para devoluciones' AFTER `customer_id`,
    ADD COLUMN `sap_credit_note_entry`         INT NULL COMMENT 'DocEntry de la CreditNotes confirmada en SAP al cerrar la devolucion' AFTER `sap_receipt_doc_num`,
    ADD COLUMN `sap_credit_note_num`           INT NULL AFTER `sap_credit_note_entry`,
    ADD CONSTRAINT `fk_inbound_customer`           FOREIGN KEY (`customer_id`) REFERENCES `customers`(`id`),
    ADD CONSTRAINT `fk_inbound_related_outbound`   FOREIGN KEY (`related_outbound_document_id`) REFERENCES `outbound_documents`(`id`);

ALTER TABLE `sap_sync_log`
    MODIFY COLUMN `sync_type` ENUM('MASTER_ITEMS','MASTER_WAREHOUSES','MASTER_BP','MASTER_CATEGORIES','DOC_INBOUND','DOC_OUTBOUND','DOC_ADJUSTMENT','DOC_RETURN') NOT NULL;
