Announcements
/// This method unreserves SalesLine record. /// The SalesLine record to unreserve. public void unReserveInventory(SalesLine _salesLine) { InventTrans inventTrans; InventTransOrigin inventTransOrigin; InventMovement inventMovement; InventUpd_Reservation inventUpd_Reservation; SalesLine salesLine; // Remove reservations and markings on a reserved salesorder while select inventTrans where inventTrans.StatusReceipt == StatusReceipt::None && (inventTrans.StatusIssue == StatusIssue::ReservPhysical || inventTrans.StatusIssue == StatusIssue::ReservOrdered) exists join inventTransOrigin where inventTransOrigin.RecId == inventTrans.InventTransOrigin exists join salesLine where salesLine.InventTransId == inventTransOrigin.InventTransId && SalesLine.RecId == _salesLine.RecId { if (inventTrans.MarkingRefInventTransOrigin) { InventTransOrigin::deleteMarking(inventTrans.MarkingRefInventTransOrigin, inventTrans.InventTransOrigin, -inventTrans.Qty, true); InventTransOrigin::deleteMarking(inventTrans.InventTransOrigin, inventTrans.MarkingRefInventTransOrigin, inventTrans.Qty, true); } if (inventTrans.StatusIssue == StatusIssue::ReservPhysical || inventTrans.StatusIssue == StatusIssue::ReservOrdered) { inventMovement = inventTrans.inventmovement(true); inventUpd_Reservation = InventUpd_Reservation::newInventDim(inventmovement, inventTrans.inventDim(), -1 * inventTrans.Qty, false); inventUpd_Reservation.updatenow(); } } }
/// This method reserves SalesLine record with specific InventBatchId. ///The SalesLine record to reserve. ///Quantity to reserve. ///InventBatchId to reserve against public void reservesalesLineByBatchId(SalesLine _salesLine, InventQty _reserveQuantity, InventBatchId _inventBatchId) { InventUpd_Reservation reservation; InventMovement movement; InventDim inventDimSalesLine, inventDim; InventSum inventsum; movement = InventMovement::construct(_salesLine); if (_reserveQuantity > 0) { select inventdim where inventdim.inventSiteId == _salesLine.inventDim().InventLocationId && inventdim.inventBatchId == _inventBatchId exists join inventsum where inventdim.inventdimId == inventsum.inventdimId && inventsum.itemId == _salesLine.itemId && inventsum.availPhysical >= _reservedQuantity; reservation = InventUpd_Reservation::newInventDim(movement, inventDim, -_reserveQuantity, false); reservation.updateNow(); } }
Under review
Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.
Congratulations to our community stars!
Expanding mentorship, skilling, and AI innovation
These are the community rock stars!
Stay up to date on forum activity by subscribing.
André Arnaud de Cal... 428 Super User 2026 Season 1
Subra 370
Martin Dráb 283 Most Valuable Professional