|
|
|
@@ -34,6 +34,26 @@ open class PurchaseOrderLineService( |
|
|
|
return purchaseOrderLineRepository.findByM18DataLogIdAndDeletedIsFalse(m18DataLogId) |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Mark as deleted any local PO lines for this PO that were synced from M18 but whose M18 line id |
|
|
|
* is not in the given set (i.e. the line was deleted in M18). |
|
|
|
* @return number of lines marked as deleted |
|
|
|
*/ |
|
|
|
open fun markDeletedLinesNotInM18(purchaseOrderId: Long, m18LineIds: Set<Long>): Int { |
|
|
|
val linesFromM18 = |
|
|
|
purchaseOrderLineRepository.findAllByPurchaseOrderIdAndDeletedIsFalseAndM18DataLogIsNotNull(purchaseOrderId) |
|
|
|
var count = 0 |
|
|
|
linesFromM18.forEach { line -> |
|
|
|
val m18Id = line.m18DataLog?.m18Id ?: return@forEach |
|
|
|
if (m18Id !in m18LineIds) { |
|
|
|
line.deleted = true |
|
|
|
purchaseOrderLineRepository.saveAndFlush(line) |
|
|
|
count++ |
|
|
|
} |
|
|
|
} |
|
|
|
return count |
|
|
|
} |
|
|
|
|
|
|
|
open fun findAllPoLineInfoByPoId(poId: Long): List<PurchaseOrderLineInfo> { |
|
|
|
return purchaseOrderLineRepository.findAllPurchaseOrderLineInfoByPurchaseOrderIdAndDeletedIsFalse(poId) |
|
|
|
} |
|
|
|
|