Table 6755 Send Reminders Setup
- App
- Base Application
- Namespace
- Microsoft.Sales.Reminder
- Versions
- 24-28
Fields, 13Keys, 1Procedures, 3
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/Sales/Reminder/Automation/Actions/SendReminders/SendRemindersSetup.Table.al184 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.Reminder;
using System.Automation;
using System.Utilities;
/// <summary>
/// Stores the configuration settings for an automated send reminders action including email and filter options.
/// </summary>
table 6755 "Send Reminders Setup"
{
DataClassification = CustomerContent;
fields
{
/// <summary>
/// Specifies the unique code identifying this send reminders setup.
/// </summary>
field(1; Code; Code[50])
{
ToolTip = 'Specifies a code for the reminder setup';
}
/// <summary>
/// Specifies the reminder action group to which this setup belongs.
/// </summary>
field(2; "Action Group Code"; Code[50])
{
}
/// <summary>
/// Specifies a description of this send reminders setup.
/// </summary>
field(3; Description; Text[50])
{
ToolTip = 'Specifies a description for the reminder setup';
}
/// <summary>
/// Indicates whether reminders should be sent by email.
/// </summary>
field(10; "Send by Email"; Boolean)
{
ToolTip = 'Specifies whether to send reminders by email';
InitValue = true;
}
/// <summary>
/// Indicates whether reminders should be printed.
/// </summary>
field(11; Print; Boolean)
{
ToolTip = 'Specifies whether to print reminders';
}
/// <summary>
/// Indicates whether the customer's document sending profile should be used.
/// </summary>
field(12; "Use Document Sending Profile"; Boolean)
{
ToolTip = 'Specifies whether to use a document sending profile when sending reminders by email';
}
/// <summary>
/// Indicates whether sending the reminder should be logged as an interaction.
/// </summary>
field(13; "Log Interaction"; Boolean)
{
ToolTip = 'Specifies whether to log an interaction when a reminder is sent';
}
/// <summary>
/// Indicates whether amounts not yet due should be shown on the reminder.
/// </summary>
field(14; "Show Amounts Not Due"; Boolean)
{
ToolTip = 'Specifies whether to show amounts that are not due on the reminder';
}
/// <summary>
/// Indicates whether detailed information about multiple interest rates should be shown.
/// </summary>
field(15; "Show Multiple Interest Rates"; Boolean)
{
ToolTip = 'Specifies whether to show multiple interest rates on the reminder';
}
/// <summary>
/// Specifies whether and which invoice documents should be attached to the reminder email.
/// </summary>
field(16; "Attach Invoice Documents"; Option)
{
OptionCaption = 'No, Overdue only, All';
ToolTip = 'Specifies whether to attach all invoice documents to the reminder email';
OptionMembers = No,"Overdue only",All;
}
/// <summary>
/// Indicates whether reminders can be sent multiple times for the same reminder level.
/// </summary>
field(17; "Send Multiple Times Per Level"; Boolean)
{
ToolTip = 'Specifies whether to send multiple reminders to the same customer';
}
/// <summary>
/// Specifies the minimum time interval that must pass between sending reminders to the same customer.
/// </summary>
field(18; "Minimum Time Between Sending"; Duration)
{
ToolTip = 'Specifies the minimum number of days between sending reminder to the same customer';
}
/// <summary>
/// Stores the filter criteria for selecting issued reminders to send.
/// </summary>
field(20; "Reminder Filter"; Blob)
{
}
}
keys
{
key(Key1; Code, "Action Group Code")
{
Clustered = true;
}
}
/// <summary>
/// Opens a filter page to allow the user to set the issued reminder selection filter for sending.
/// </summary>
procedure SetReminderSelectionFilter()
var
RequestPageParametersHelper: Codeunit "Request Page Parameters Helper";
TempBlob: Codeunit "Temp Blob";
IssuedReminderHeaderRecordRef: RecordRef;
SelectionFilterOutStream: OutStream;
SelectionFilterInStream: InStream;
ExistingFilters: Text;
begin
IssuedReminderHeaderRecordRef.Open(Database::"Issued Reminder Header");
ExistingFilters := GetReminderSelectionFilter();
TempBlob.CreateOutStream(SelectionFilterOutStream, TextEncoding::UTF16);
if not RequestPageParametersHelper.OpenPageToGetFilter(IssuedReminderHeaderRecordRef, SelectionFilterOutStream, ExistingFilters) then
exit;
Clear(Rec."Reminder Filter");
TempBlob.CreateInStream(SelectionFilterInStream, TextEncoding::UTF16);
Rec."Reminder Filter".CreateOutStream(SelectionFilterOutStream, TextEncoding::UTF16);
CopyStream(SelectionFilterOutStream, SelectionFilterInStream);
Rec.Modify();
Rec.CalcFields("Reminder Filter");
end;
/// <summary>
/// Gets the display text for the issued reminder selection filter.
/// </summary>
/// <returns>A formatted display text showing the filter criteria.</returns>
procedure GetReminderSelectionDisplayText(): Text
var
RequestPageParametersHelper: Codeunit "Request Page Parameters Helper";
begin
exit(RequestPageParametersHelper.GetFilterDisplayText(Rec, Database::"Issued Reminder Header", Rec.FieldNo("Reminder Filter")));
end;
/// <summary>
/// Gets the view filter for the issued reminder selection that can be applied to a record.
/// </summary>
/// <returns>The view filter string for issued reminder header records.</returns>
procedure GetReminderSelectionFilterView(): Text
var
RequestPageParametersHelper: Codeunit "Request Page Parameters Helper";
begin
exit(RequestPageParametersHelper.GetFilterViewFilters(Rec, Database::"Issued Reminder Header", Rec.FieldNo("Reminder Filter")));
end;
local procedure GetReminderSelectionFilter(): Text
var
SelectionFilterInStream: InStream;
SelectionFilterText: Text;
begin
Clear(SelectionFilterText);
Rec.CalcFields("Reminder Filter");
Rec."Reminder Filter".CreateInStream(SelectionFilterInStream, TextEncoding::UTF16);
if not Rec."Reminder Filter".HasValue() then
exit;
SelectionFilterInStream.ReadText(SelectionFilterText);
exit(SelectionFilterText);
end;
}