from typing import Any, Dict ITR_BASE_TYPE = 1250000001 # DocObjectCode de InventoryTransferRequests def construir_stock_transfer(itr: Dict[str, Any], store_config: Dict[str, Any]) -> Dict[str, Any]: """ Arma el JSON para POST StockTransfers a partir de una InventoryTransferRequest ya creada en SAP (itr = el documento completo leído de SAP, con LineNum reales). Copia CardCode/CardName/Comments/ almacenes/UDFs de la ITR, y cada línea referencia su línea base vía BaseType/BaseEntry/BaseLine. """ document_lines = [ { "ItemCode": line["ItemCode"], "Quantity": line["Quantity"], "FromWarehouseCode": line["FromWarehouseCode"], "WarehouseCode": line["WarehouseCode"], "BaseType": ITR_BASE_TYPE, "BaseEntry": itr["DocEntry"], "BaseLine": line["LineNum"], } for line in itr["StockTransferLines"] ] return { "CardCode": itr.get("CardCode"), "CardName": itr.get("CardName"), "Comments": itr.get("Comments"), "DocDate": itr["DocDate"][:10], "FromWarehouse": itr["FromWarehouse"], "ToWarehouse": itr["ToWarehouse"], "Series": store_config["sap"]["numbering_series"]["STOCK_TRANSFER"], "U_ShopifyOrderId": itr.get("U_ShopifyOrderId"), "U_ShopifyStore": itr.get("U_ShopifyStore"), "StockTransferLines": document_lines, }