Codeunit 8891 Email Scenario Mapping, source in 29

Source29

src/Layers/W1/BaseApp/OtherCapabilities/Email/EmailScenarioMapping.Codeunit.al74 lines, Copyright (c) Microsoft Corporation. MIT

namespace System.Email;

using Microsoft.Foundation.Reporting;

codeunit 8891 "Email Scenario Mapping"
{
    Access = Public;

    /// <summary>
    /// Gets the document sending email scenario from report selection usage.
    /// </summary>
    /// <param name="ReportSelectionUsage"></param>
    /// <returns>The email scenario corresponding to the report selection usage</returns>
    procedure FromReportSelectionUsage(ReportSelectionUsage: Enum "Report Selection Usage"): Enum "Email Scenario"
    var
        EmailScenario: Enum "Email Scenario";
        EmailScenarioChanged: Boolean;
    begin
        OnOverrideEmailScenario(ReportSelectionUsage, EmailScenario, EmailScenarioChanged);
        if EmailScenarioChanged then
            exit(EmailScenario);

        case ReportSelectionUsage of
            ReportSelectionUsage::"S.Quote":
                exit(EmailScenario::"Sales Quote");
            ReportSelectionUsage::"S.Order":
                exit(EmailScenario::"Sales Order");
            ReportSelectionUsage::"S.Invoice":
                exit(EmailScenario::"Sales Invoice");
            ReportSelectionUsage::"S.Cr.Memo":
                exit(EmailScenario::"Sales Credit Memo");
            ReportSelectionUsage::"P.Quote":
                exit(EmailScenario::"Purchase Quote");
            ReportSelectionUsage::"P.Order":
                exit(EmailScenario::"Purchase Order");
            ReportSelectionUsage::"Reminder":
                exit(EmailScenario::"Reminder");
            ReportSelectionUsage::"Fin.Charge":
                exit(EmailScenario::"Finance Charge");
            ReportSelectionUsage::"P.V.Remit.":
                exit(EmailScenario::"Posted Vendor Remittance");
            ReportSelectionUsage::"C.Statement":
                exit(EmailScenario::"Customer Statement");
            ReportSelectionUsage::"V.Remittance":
                exit(EmailScenario::"Vendor Remittance");
            else begin
                EmailScenario := EmailScenario::Default;
                OnAfterFromReportSelectionUsage(ReportSelectionUsage, EmailScenario);
                exit(EmailScenario);
            end;
        end;
    end;

    /// <summary>
    /// Subscribe to this event to add custom mappings from report selection usage (in case the enum was extended) to email scenarios.
    /// </summary>
    /// <param name="ReportSelectionUsage">The input report selection usage of the FromReportSelectionUsage function.</param>
    /// <param name="EmailScenario">The output email scenario of the FromReportSelectionUsage function.</param>
    [IntegrationEvent(false, false)]
    local procedure OnAfterFromReportSelectionUsage(ReportSelectionUsage: Enum "Report Selection Usage"; var EmailScenario: Enum "Email Scenario")
    begin
    end;

    /// <summary>
    /// Subscribe to this event to override the email scenario for a specific report selection usage.
    /// </summary>
    /// <param name="ReportSelectionUsage">The input report selection usage of the FromReportSelectionUsage function.</param>
    /// <param name="EmailScenario">The output email scenario of the FromReportSelectionUsage function.</param>
    /// <param name="EmailScenarioChanged">Set to true if you want to change the default email set.</param>
    [IntegrationEvent(false, false)]
    local procedure OnOverrideEmailScenario(ReportSelectionUsage: Enum "Report Selection Usage"; var EmailScenario: Enum "Email Scenario"; var EmailScenarioChanged: Boolean)
    begin
    end;
}