/// /// 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) { } } } }