(root)/ – Rev 37308
Rev 37307 |
Rev 37309 |
Go to most recent revision |
Last modification |
Compare with Previous |
View Log
| RSS feed
Last modification
- Rev 37308 2026-08-13 18:29:56
- Author: amit
- Log message:
- DN receipt: reject on condition mismatch instead of silently reclassifying
The receive screen defaulted the Condition dropdown to GOOD and receiveDebitNoteItems
overwrote purchase_return_item.type with whatever was submitted. A DOA return received
without touching the dropdown was rewritten BAD->GOOD, so on reject -> acknowledge the
restoreInventory branch put the unit back into good (sellable) stock instead of bad.
UKHD948/57: IMEI 353243710802439 was declared DOA, rejected as 'wrong entry', restored
as good stock and resold at MOP 3h44m later.
- receiveDebitNoteItems now compares each submitted condition against the stored one and
rejects the WHOLE debit note on any mismatch (PRO + rejectReturn are both per-DN and
there is no model for a partial receipt). PRO is still persisted so the receipt attempt
stays on record, then stamped rejected; no scans, no refund, no IRN work.
- Removed the pri.setReturnType(rt) overwrite. Past the gate the submitted condition always
equals the stored one, and applyReceipt already reads it off the entity. Rejected returns
now keep the declared type, so restoreReturnedItems restores to the right bucket.
- New notifyReturnRejectedConditionMismatch: to partner, cc Logistics L2/L3, RBM L1/L2 and
Sales L1 + first populated level in L2..L4. Sales ladder is sparse (L2 262 partners,
L3 64, L4 1582 of 1524 open stores) so a fixed L2/L3 rule resolves to nobody for most.
- getTeamEmails now filters inactive users and dedupes. csService.getAuthUserByCategoryId
(2-arg) does not filter active unlike its 1-arg sibling; fixed here rather than in
CsServiceImpl because that overload has ~25 other call sites where dropping inactive
users would change report scoping.