AR DACs: Reference Data

In this topic, you can find information about the data access classes (DACs) that contain reference data that is used in most other DACs in accounts receivable. This data includes customers, locations, and addresses.

Accounts Receivable Preferences

The preferences for accounts receivable are available in the ARSetup DAC. An administrative user can edit these preferences on the Accounts Receivable Preferences (AR101000) form.

Customers

The Customers (AR303000) form is used to define any business account that satisfies the following condition: BAccount.Type = CU OR BAccount.Type = VC. (That is, the business account is a customer or both a vendor and a customer.) Business accounts of these types are extended with the information from the Customer DAC, as shown in the following query.

SELECT 
    * 
FROM 
    BAccount 
    INNER JOIN Customer 
        ON BAccount.CompanyID = Customer.CompanyID 
        AND BAccount.BAccountID = Customer.BAccountID 

A Customer record contains AR-specific business account data related to customer payment methods, statement cycles, and credit verification rules.

Locations

As is true of any other business account, a Customer record can have multiple Location records associated with it. The default customer location is stored in the BAccount.DefLocationID field.

The Location DAC contains multiple AR-specific fields whose names start with the C prefix. Examples of these fields are shown in the following table.

Field Description
CTaxZoneID The default TaxZone associated with the customer location.
CSalesAcctID The default sales revenue GL account associated with the location.
CARAccountID The default accounts receivable account associated with the location.

The tax zones and accounts specified in the Location record can be overridden at the document level. For example, if you specify a particular location in a customer invoice, the tax zone (ARInvoice.TaxZoneID) has the default value copied from Location.CTaxZoneID, but a user can override this value with any other tax zone.

Customer locations can be defined on the Customer Locations (AR303020) form.

Addresses and Contacts

Three types of addresses and contacts are defined for every customer in the system:

  • The main contact and address, which are specified on the General tab of the Customers (AR303000) form.

    The main contact and address are referenced by BAccount.DefContactID and BAccount.DefAddressID fields.

  • The billing contact and address, which are specified on the Billing tab of the Customers form.

    The billing contact and address are referenced by the Customer.DefBillContactID and Customer.DefBillAddressID fields, respectively.

    Tip:
    The billing Address and Contact records serve as templates for the invoice-level bill-to address and contact (which are stored in the ARAddress and ARContact DACs).
  • The default shipping contact and address, which are specified on the Shipping tab of the Customers form.

    This contact and address are referenced by Location.DefContactID and Location.DefAddressID of the customer's default location (which is identified by the BAccount.DefLocationID field).

    Tip:
    The shipping Address and Contact records serve as templates for the ship-to invoice-level address and contact (ARAddress and ARContact).

The selection of the following types of addresses and contacts is illustrated in the queries shown below:

  • Selection of the main customer address and contact

    SELECT 
        *  
    FROM 
        Customer 
        INNER JOIN BAccount 
            ON BAccount.CompanyID = Customer.CompanyID 
            AND BAccount.BAccountID = Customer.BAccountID 
        INNER JOIN Contact 
            ON Contact.CompanyID = BAccount.CompanyID 
            AND Contact.ContactID = BAccount.DefContactID 
        INNER JOIN Address 
            ON Address.CompanyID = BAccount.CompanyID 
            AND Address.AddressID = BAccount.DefAddressID 
  • Selection of the default shipping customer address and contact
    SELECT 
        * 
    FROM 
        Customer 
        INNER JOIN BAccount 
            ON BAccount.CompanyID = Customer.CompanyID 
            AND BAccount.BAccountID = Customer.BAccountID 
        -- Default location
        INNER JOIN Location  
            ON Location.CompanyID = Customer.CompanyID 
            AND Location.LocationID = BAccount.DefLocationID 
        LEFT JOIN Contact 
            ON Contact.CompanyID = Location.CompanyID 
            AND Contact.ContactID = Location.DefContactID 
        LEFT JOIN Address 
            ON Address.CompanyID = Location.CompanyID 
            AND Address.AddressID = Location.DefAddressID 

Customer Payment Methods

The CustomerPaymentMethod and CustomerPaymentMethodDetail DACs store the customer-specific settings of a payment method. The general settings of a payment method are stored in the PaymentMethod DAC, which is defined in cash management. For details on payment methods, see CA DACs: Reference Data.

For credit card payment methods, a customer payment method record is required. This record defines all details (that is, CustomerPaymentMethodDetail records) necessary to use the method to record payments (that is, ARPayment records).

For generic payment methods (such as cash payment or wire transfer), the presence of a customer-specific payment method record is optional, but it can nevertheless be defined to override the default payment method settings.

Customer-specific payment methods are defined on the Customer Payment Methods (AR303010) form.

Discount Codes and Sequences

ARDiscount represents an accounts receivable discount code used to define discount sequences (which are stored in DiscountSequence). The primary function of a discount code is to specify the type of discounts that are based on that code. For example, a document discount can be applicable to only specific customers, or a line discount can be applicable to only specific inventory items. The ARDiscount records are defined on the Discount Codes (AR209000) form.

DiscountSequence represents a specific discount based on a discount code. The discount sequence specifies how the discount is calculated based on the amount or quantity of the line item, or on the amount of the document. Discount sequences can be defined on the Discounts (AR209500) form.

Price Lists

The system uses the ARSalesPrice reference DAC to suggest the unit price in document details (that is, in the ARTran.UnitPrice field) that the user inserts into a bill or adjustment. The records store inventory item prices broken down by the following:

  • Price type (which is stored in the PriceType field)
  • Price code (PriceCode), such as specific customer or customer class, depending on the price type
  • Inventory item (InventoryID)
  • Warehouse (SiteID)
  • Currency (CuryID)
  • Unit of measure (UOM)
  • Break quantity (BreakQty)
  • An indicator of whether the price is promotional (IsPromotionalPrice)

All these fields form the compound key of customer price records, meaning that they should be unique across the combination of these dimensions.

All existing customer prices are defined on the Sales Prices (AR202000) form. However, a user can update an ARSalesPrice record indirectly by creating and releasing AR price worksheets, which are stored in ARPriceWorksheet and are editable on the Sales Price Worksheets (AR202010) form. The system uses the details of a price worksheet (ARPriceWorksheetDetail) to automatically update the ARSalesPrice record once the user releases the worksheet.