/// <summary> /// Manage Loyalty Benefits /// </summary> codeunit 50100 "Loyalty Benefits Management" { var Vendor: record Vendor; trigger OnRun() begin end; /// <summary> /// Adjust a Sales Order with loyalty level /// </summary> /// <param name="SalesHeader">Sales Header to adjust based on Customer Loyalty</param> 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; /// <summary> /// Applies the Discount to the Sales Order /// </summary> /// <param name="SalesHeader">Sales Order</param> /// <param name="Discount">Discount to apply</param> 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) { } } } /// <summary> /// Add the Loyalty fields to the Customer table. /// </summary> tableextension 50100 LoyaltyCustomerExt extends Customer { fields { /// <summary> /// Customer loyalty. /// </summary> field(50100; Loyalty; enum LoyaltyLevel) { } } } /// <summary> /// Adds the Loyalty field to the General group on the "Customer Card" /// </summary> pageextension 50100 LoyaltyCustCardExt extends "Customer Card" { layout { addlast(General) { field(Loyalty; Rec.Loyalty) { } } } }