Report 172 Create Recurring Sales Inv., source in 29
Source29
src/Layers/W1/BaseApp/Sales/Document/CreateRecurringSalesInv.Report.al100 lines, Copyright (c) Microsoft Corporation. MIT
// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace Microsoft.Sales.Document;
/// <summary>
/// Generates sales invoices automatically from standard customer sales codes for recurring billing.
/// </summary>
report 172 "Create Recurring Sales Inv."
{
AdditionalSearchTerms = 'repeat sales';
ApplicationArea = Basic, Suite;
Caption = 'Create Recurring Sales Invoices';
ToolTip = 'Create sales invoices according to standard sales lines that are assigned to the customers and with posting dates within the valid-from and valid-to dates that you specify on the standard sales code. Can also be used for SEPA direct debit.';
ProcessingOnly = true;
UsageCategory = Tasks;
dataset
{
dataitem("Standard Customer Sales Code"; "Standard Customer Sales Code")
{
RequestFilterFields = "Customer No.", "Code";
trigger OnAfterGetRecord()
begin
Counter += 1;
Window.Update(1, 10000 * Counter div TotalCount);
CreateSalesInvoice(OrderDate, PostingDate);
end;
trigger OnPreDataItem()
begin
SetFilter("Valid From Date", '%1|<=%2', 0D, OrderDate);
SetFilter("Valid To date", '%1|>=%2', 0D, OrderDate);
SetRange(Blocked, false);
TotalCount := Count;
Window.Open(ProgressMsg);
end;
}
}
requestpage
{
layout
{
area(content)
{
field(OrderDate; OrderDate)
{
ApplicationArea = Basic, Suite;
Caption = 'Order Date';
ToolTip = 'Specifies the date that will be entered in the Document Date field on the sales invoices that are created by using the batch job.';
}
field(PostingDate; PostingDate)
{
ApplicationArea = Basic, Suite;
Caption = 'Posting Date';
ToolTip = 'Specifies the date that will be entered in the Posting Date field on the sales invoices that are created by using the batch job.';
}
}
}
actions
{
}
}
labels
{
}
trigger OnPostReport()
begin
Window.Close();
Message(NoOfInvoicesMsg, TotalCount);
end;
trigger OnPreReport()
begin
if (OrderDate = 0D) or (PostingDate = 0D) then
Error(MissingDatesErr);
end;
var
Window: Dialog;
PostingDate: Date;
OrderDate: Date;
MissingDatesErr: Label 'You must enter both a posting date and an order date.';
TotalCount: Integer;
Counter: Integer;
#pragma warning disable AA0470
ProgressMsg: Label 'Creating Invoices #1##################';
NoOfInvoicesMsg: Label '%1 invoices were created.';
#pragma warning restore AA0470
}