38 lines
1.4 KiB
Python
38 lines
1.4 KiB
Python
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,
|
||
|
|
}
|