Showing posts with label Finance and Supply Chain Management. Show all posts
Showing posts with label Finance and Supply Chain Management. Show all posts

Wednesday, May 28, 2025

Manually remove Sales Order reservations via WHSReservation class

Salesline                   salesline;
InventTransOrigin    inventTransOrigin;
InventTrans              inventTrans;

while select salesline
    where salesline.SalesId     == 'YOURSALESID'
    &&  salesline.SalesStatus == SalesStatus::BackOrder
    //&&  salesline.LineNum == 'YOURLINENUM'
join inventTransOrigin
    where InventTransOrigin.inventTransid == salesline.InventTransId
join inventTrans
    where inventTrans.inventTransOrigin == inventTransOrigin.RecId
      && (inventTrans.StatusIssue       == StatusIssue::ReservOrdered ||
               inventTrans.StatusIssue       == StatusIssue::ReservPhysical)
{
    WHSRemoveReservationParameters tempParams = WHSRemoveReservationParameters::construct();

    tempParams.parmInventTransId(salesline.InventTransId);
    tempParams.parmItemId(salesLine.ItemId);
    tempParams.parmInventDimId(inventTrans.InventDimId);
    tempParams.parmQty(-inventTrans.Qty);
    tempParams.parmSourceType(InventTransType::Sales);
    tempParams.parmSourceRefId(salesline.SalesId);
    tempParams.parmSourceTransId('');
    tempParams.parmRemoveReservedPhysical(true);
    tempParams.parmSkipStatusValidation(true);    

    WHSReservation::staticRemoveReservationForParams(tempParams);

    info(strFmt("Reservations removed for sales order %1, line %2, item %3",salesline.SalesId,salesline.LineNum,salesline.itemid));

}