bcquality/microsoft/knowledge/scm/transfer-item-tracking-through-source-reservation-codeunits.bad.al
Jesper Schulz-Wedde 525e84e183 Normalize SCM knowledge and review ownership
Align article and AL sample conventions, keep BC facts separate from review mechanics, and clarify reciprocal Finance ownership without bespoke shared test assertions.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-09-17 18:59:22 +02:00

30 lines
1.8 KiB
AL

codeunit 50108 "SCM Tracking Transfer Bad"
{
procedure TransferBlanketOrderTracking(var SourceBlanketOrderLine: Record "Sales Line"; var DestinationSalesOrderLine: Record "Sales Line"; QuantityBaseToTransfer: Decimal)
var
ReservationEntry: Record "Reservation Entry";
begin
SourceBlanketOrderLine.TestField("Document Type", SourceBlanketOrderLine."Document Type"::"Blanket Order");
SourceBlanketOrderLine.TestField(Type, SourceBlanketOrderLine.Type::Item);
DestinationSalesOrderLine.TestField("Document Type", DestinationSalesOrderLine."Document Type"::Order);
DestinationSalesOrderLine.TestField(Type, DestinationSalesOrderLine.Type::Item);
DestinationSalesOrderLine.TestField("No.", SourceBlanketOrderLine."No.");
if QuantityBaseToTransfer <= 0 then
Error(PositiveQuantityErr);
ReservationEntry.SetRange("Source Type", Database::"Sales Line");
ReservationEntry.SetRange("Source Subtype", SourceBlanketOrderLine."Document Type".AsInteger());
ReservationEntry.SetRange("Source ID", SourceBlanketOrderLine."Document No.");
ReservationEntry.SetRange("Source Ref. No.", SourceBlanketOrderLine."Line No.");
ReservationEntry.SetRange(Positive, false);
ReservationEntry.FindFirst();
ReservationEntry."Source Subtype" := DestinationSalesOrderLine."Document Type".AsInteger();
ReservationEntry."Source ID" := DestinationSalesOrderLine."Document No.";
ReservationEntry."Source Ref. No." := DestinationSalesOrderLine."Line No.";
ReservationEntry.Validate("Quantity (Base)", -QuantityBaseToTransfer);
ReservationEntry.Modify(true);
end;
var
PositiveQuantityErr: Label 'The base quantity to transfer must be positive.';
}