|
|
|
@@ -315,6 +315,19 @@ open class M18PurchaseOrderService( |
|
|
|
val latestPurchaseOrderLog = |
|
|
|
m18DataLogService.findLatestM18DataLogWithSuccess(m18PurchaseOrderId, poRefType) |
|
|
|
|
|
|
|
val existingPurchaseOrderForSync = |
|
|
|
latestPurchaseOrderLog?.id?.let { purchaseOrderService.findByM18DataLogId(it) } |
|
|
|
if (existingPurchaseOrderForSync != null && |
|
|
|
existingPurchaseOrderForSync.status != PurchaseOrderStatus.PENDING |
|
|
|
) { |
|
|
|
logger.info( |
|
|
|
"${poRefType}: Skipping M18 sync — local PO id=${existingPurchaseOrderForSync.id} " + |
|
|
|
"code=${existingPurchaseOrderForSync.code} status=${existingPurchaseOrderForSync.status?.value} " + |
|
|
|
"(only pending may be overwritten). M18 ID: $m18PurchaseOrderId" |
|
|
|
) |
|
|
|
return@forEach |
|
|
|
} |
|
|
|
|
|
|
|
// logger.info(latestPurchaseOrderLog.toString()) |
|
|
|
// Save to m18_data_log table |
|
|
|
// logger.info("${poRefType}: Saving for M18 Data Log...") |
|
|
|
@@ -336,10 +349,9 @@ open class M18PurchaseOrderService( |
|
|
|
// logger.info("${poRefType}: Saved M18 Data Log. ID: ${saveM18PurchaseOrderLog.id}") |
|
|
|
|
|
|
|
try { |
|
|
|
// Find the purchase_order if exist |
|
|
|
// Find the purchase_order if exist (re-use lookup from pending guard above) |
|
|
|
// logger.info("${poRefType}: Finding exising purchase order...") |
|
|
|
val existingPurchaseOrder = |
|
|
|
latestPurchaseOrderLog?.id?.let { purchaseOrderService.findByM18DataLogId(it) } |
|
|
|
val existingPurchaseOrder = existingPurchaseOrderForSync |
|
|
|
// logger.info("${poRefType}: Exising purchase order ID: ${existingPurchaseOrder?.id}") |
|
|
|
|
|
|
|
// Save to purchase_order table |
|
|
|
|