///
/// Manage Loyalty Benefits
///
codeunit 50100 "Loyalty Benefits Management"
{
var
Vendor: record Vendor;
trigger OnRun()
begin
end;
///
/// Adjust a Sales Order with loyalty level
///
/// Sales Header to adjust based on Customer Loyalty
procedure AdjustForLoyalty(var SalesHeader: record "Sales Header"): Integer;
var
Customer: record Customer;
LoyaltyBenefits: interface ILoyaltyBenefits;
Discount: Decimal;
begin
Customer.Get(SalesHeader."Sell-to Customer No.");
LoyaltyBenefits := Customer.Loyalty;
Discount := 1;
Discount := LoyaltyBenefits.GetDiscount();
ApplyDiscount(SalesHeader, Discount);
end;
///
/// Applies the Discount to the Sales Order
///
/// Sales Order
/// Discount to apply
local procedure "Apply Discount"(SalesHeader: record "Sales Header"; Discount: Decimal)
begin
// TODO: Implement
end;
}
enum 50140 SomeEnum
{
value(0; None) { }
}
#region interface stuff
interface ISuperGreat
{
procedure YesSir("c in c": codeunit FooBar);
}
#endregion
table 50100 Customer
{
Access = Internal;
TableType = Normal;
fields
{
field(1; "P K"; Integer)
{
}
}
}
///
/// Add the Loyalty fields to the Customer table.
///
tableextension 50100 LoyaltyCustomerExt extends Customer
{
fields
{
///
/// Customer loyalty.
///
field(50100; Loyalty; enum LoyaltyLevel)
{
}
}
}
///
/// Adds the Loyalty field to the General group on the "Customer Card"
///
pageextension 50100 LoyaltyCustCardExt extends "Customer Card"
{
layout
{
addlast(General)
{
field(Loyalty; Rec.Loyalty) { }
}
}
}