mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-05 06:36:55 +01:00
93 lines
2.5 KiB
AL
93 lines
2.5 KiB
AL
// Input stays stable for this run; output contains one row per group with entries.
|
|
table 50367 "Perf Posted Entry"
|
|
{
|
|
DataClassification = CustomerContent;
|
|
|
|
fields
|
|
{
|
|
field(1; "Entry No."; Integer) { }
|
|
field(2; "Item No."; Code[20]) { }
|
|
field(3; "Location Code"; Code[10]) { }
|
|
field(4; "Posting Date"; Date) { }
|
|
field(5; Quantity; Decimal) { }
|
|
}
|
|
|
|
keys
|
|
{
|
|
key(PK; "Entry No.") { Clustered = true; }
|
|
key(ByItemLocationDate; "Item No.", "Location Code", "Posting Date")
|
|
{
|
|
SumIndexFields = Quantity;
|
|
}
|
|
}
|
|
}
|
|
|
|
table 50368 "Perf Quantity Summary"
|
|
{
|
|
DataClassification = CustomerContent;
|
|
|
|
fields
|
|
{
|
|
field(1; "Run ID"; Guid) { }
|
|
field(2; "Item No."; Code[20]) { }
|
|
field(3; "Location Code"; Code[10]) { }
|
|
field(4; Quantity; Decimal) { }
|
|
}
|
|
|
|
keys
|
|
{
|
|
key(PK; "Run ID", "Item No.", "Location Code") { Clustered = true; }
|
|
}
|
|
}
|
|
|
|
query 50370 "Perf Grouped Quantity"
|
|
{
|
|
QueryType = Normal;
|
|
|
|
elements
|
|
{
|
|
dataitem(Entry; "Perf Posted Entry")
|
|
{
|
|
column(ItemNo; "Item No.") { }
|
|
column(LocationCode; "Location Code") { }
|
|
column(TotalQuantity; Quantity)
|
|
{
|
|
Method = Sum;
|
|
}
|
|
filter(PostingDate; "Posting Date") { }
|
|
}
|
|
}
|
|
}
|
|
|
|
codeunit 50369 "Perf Summary Good"
|
|
{
|
|
procedure BuildSummary(CutoffDate: Date) RunId: Guid
|
|
var
|
|
Totals: Query "Perf Grouped Quantity";
|
|
TempSummary: Record "Perf Quantity Summary" temporary;
|
|
Summary: Record "Perf Quantity Summary";
|
|
begin
|
|
RunId := CreateGuid();
|
|
Totals.SetFilter(PostingDate, '..%1', CutoffDate);
|
|
Totals.Open();
|
|
while Totals.Read() do begin
|
|
TempSummary.Init();
|
|
TempSummary."Run ID" := RunId;
|
|
TempSummary."Item No." := Totals.ItemNo;
|
|
TempSummary."Location Code" := Totals.LocationCode;
|
|
TempSummary.Quantity := Totals.TotalQuantity;
|
|
TempSummary.Insert();
|
|
end;
|
|
Totals.Close();
|
|
|
|
if TempSummary.FindSet() then
|
|
repeat
|
|
Summary.Init();
|
|
Summary."Run ID" := RunId;
|
|
Summary."Item No." := TempSummary."Item No.";
|
|
Summary."Location Code" := TempSummary."Location Code";
|
|
Summary.Quantity := TempSummary.Quantity;
|
|
Summary.Insert(false);
|
|
until TempSummary.Next() = 0;
|
|
end;
|
|
}
|