Table 1062 Payment Reporting Argument, source in 29
Source29
src/Layers/W1/BaseApp/Bank/Setup/PaymentReportingArgument.Table.al236 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.Bank.Setup;
using Microsoft.Finance.GeneralLedger.Setup;
using System.Integration;
/// <summary>
/// Temporary table for passing payment service arguments and configuration data.
/// Used for communication between payment processing and external payment service providers.
/// </summary>
/// <remarks>
/// Supports integration with PayPal, Microsoft Wallet, WorldPay, and other payment services.
/// Contains logos, URLs, and service-specific configuration for payment provider integration.
/// </remarks>
table 1062 "Payment Reporting Argument"
{
Caption = 'Payment Reporting Argument';
Permissions = TableData "Payment Reporting Argument" = rimd;
ReplicateData = false;
TableType = Temporary;
DataClassification = CustomerContent;
fields
{
/// <summary>
/// Auto-incrementing unique identifier for each payment reporting argument record.
/// </summary>
field(1; "Key"; Integer)
{
AutoIncrement = true;
Caption = 'Key';
}
/// <summary>
/// Record ID of the source document being processed for payment.
/// Links the payment argument to the originating transaction record.
/// </summary>
field(3; "Document Record ID"; RecordID)
{
Caption = 'Document Record ID';
DataClassification = CustomerContent;
}
/// <summary>
/// Record ID of the payment setup configuration being used.
/// References the payment service setup that defines processing parameters.
/// </summary>
field(4; "Setup Record ID"; RecordID)
{
Caption = 'Setup Record ID';
DataClassification = CustomerContent;
}
/// <summary>
/// Payment service provider logo stored as binary data.
/// Used for branding in payment forms and customer communications.
/// </summary>
field(10; Logo; BLOB)
{
Caption = 'Logo';
}
/// <summary>
/// Display caption for the payment service URL link.
/// Shown to users as the clickable text for payment service access.
/// </summary>
field(12; "URL Caption"; Text[250])
{
Caption = 'URL Caption';
}
/// <summary>
/// Target URL for the payment service stored as binary data.
/// Contains the actual web address for payment processing.
/// </summary>
field(13; "Target URL"; BLOB)
{
Caption = 'Service URL';
}
/// <summary>
/// Language code for localization of payment service interface.
/// Determines the language used in payment provider communications.
/// </summary>
field(30; "Language Code"; Code[10])
{
Caption = 'Language Code';
}
/// <summary>
/// Identifier for the specific payment service provider.
/// Maps to predefined payment service types (PayPal, Microsoft Wallet, WorldPay).
/// </summary>
field(35; "Payment Service ID"; Integer)
{
Caption = 'Payment Service ID';
}
}
keys
{
key(Key1; "Key")
{
Clustered = true;
}
}
fieldgroups
{
}
var
PaymentServiceID: Option ,PayPal,"MS Wallet",WorldPay;
/// <summary>
/// Retrieves the target URL from the BLOB field as a text string.
/// Extracts the payment service URL for use in web requests and redirects.
/// </summary>
/// <returns>The target URL as a text string, or empty string if no URL is stored</returns>
procedure GetTargetURL() TargetURL: Text
var
InStream: InStream;
begin
CalcFields("Target URL");
if "Target URL".HasValue() then begin
"Target URL".CreateInStream(InStream);
InStream.Read(TargetURL);
end;
end;
/// <summary>
/// Sets the target URL by storing it in the BLOB field after validation.
/// Validates that the URL is properly formatted and uses HTTP/HTTPS protocol.
/// </summary>
/// <param name="ServiceURL">The payment service URL to store</param>
procedure SetTargetURL(ServiceURL: Text)
var
WebRequestHelper: Codeunit "Web Request Helper";
OutStream: OutStream;
begin
WebRequestHelper.IsValidUri(ServiceURL);
WebRequestHelper.IsHttpUrl(ServiceURL);
"Target URL".CreateOutStream(OutStream);
OutStream.Write(ServiceURL);
Modify();
end;
/// <summary>
/// Attempts to set the target URL with error handling.
/// Returns success/failure status without throwing exceptions.
/// </summary>
/// <param name="ServiceURL">The payment service URL to store</param>
/// <returns>True if URL was successfully set, false if validation failed</returns>
[TryFunction]
procedure TrySetTargetURL(ServiceURL: Text)
begin
SetTargetURL(ServiceURL);
end;
/// <summary>
/// Returns the currency code, defaulting to local currency if not specified.
/// Ensures a valid currency code is always available for payment processing.
/// </summary>
/// <param name="CurrencyCode">Input currency code that may be empty</param>
/// <returns>The input currency code if specified, otherwise the local currency code</returns>
procedure GetCurrencyCode(CurrencyCode: Code[10]): Code[10]
var
GeneralLedgerSetup: Record "General Ledger Setup";
begin
if CurrencyCode <> '' then
exit(CurrencyCode);
GeneralLedgerSetup.Get();
GeneralLedgerSetup.GetCurrencyCode(CurrencyCode);
exit(GeneralLedgerSetup."LCY Code");
end;
/// <summary>
/// Returns the service identifier for PayPal payment processing.
/// Used to identify PayPal as the selected payment service provider.
/// </summary>
/// <returns>Integer identifier for PayPal service</returns>
procedure GetPayPalServiceID(): Integer
begin
exit(PaymentServiceID::PayPal);
end;
/// <summary>
/// Returns the service identifier for Microsoft Wallet payment processing.
/// Used to identify Microsoft Wallet as the selected payment service provider.
/// </summary>
/// <returns>Integer identifier for Microsoft Wallet service</returns>
procedure GetMSWalletServiceID(): Integer
begin
exit(PaymentServiceID::"MS Wallet");
end;
/// <summary>
/// Returns the service identifier for WorldPay payment processing.
/// Used to identify WorldPay as the selected payment service provider.
/// </summary>
/// <returns>Integer identifier for WorldPay service</returns>
procedure GetWorldPayServiceID(): Integer
begin
exit(PaymentServiceID::WorldPay);
end;
/// <summary>
/// Returns the filename for the PayPal logo image resource.
/// Used for displaying PayPal branding in payment interfaces.
/// </summary>
/// <returns>Filename of the PayPal logo image</returns>
procedure GetPayPalLogoFile(): Text
begin
exit('Payment service - PayPal-logo.png');
end;
/// <summary>
/// Returns the filename for the Microsoft Wallet logo image resource.
/// Used for displaying Microsoft branding in payment interfaces.
/// </summary>
/// <returns>Filename of the Microsoft Wallet logo image</returns>
procedure GetMSWalletLogoFile(): Text
begin
exit('Payment service - Microsoft-logo.png');
end;
/// <summary>
/// Returns the filename for the WorldPay logo image resource.
/// Used for displaying WorldPay branding in payment interfaces.
/// </summary>
/// <returns>Filename of the WorldPay logo image</returns>
procedure GetWorldPayLogoFile(): Text
begin
exit('Payment service - WorldPay-logo.png');
end;
}