Go to primary content
Oracle® Retail Xstore Suite 19.0/Oracle® Retail Merchandising Suite 19.1.000 Implementation Guide
Release 19.0
F32771-04
  Go To Table Of Contents
Contents

Previous
Previous
 
 

A Appendix: Xstore to Sales Audit Mapping Details

The mapping from the Xstore POSLog format to the Sales Audit RTLog format is defined in the Xstore configuration file RTLogMappingConfig.xml. This appendix provides details on the following ode types used by each of the applications that are used in this mapping:

Transaction Types

Both Xstore and Sales Audit support a number of similar transactions types, but each solution uses different codes for these transaction types. The table below shows how the transaction types in Xstore map to the transaction types and sub-transaction types used in Sales Audit. See also the Oracle Retail Sales Audit Implementation Guide for more details on these codes.

Table A-1 Transaction Type Mapping

Xstore Transaction Type Sales Audit Transaction Type TRAT Sales Audit Sub-Transaction Type TRAS Description

ACCOUNT_LOOKUP

OTHER

OTHER

ACCOUNT_LOOKUP transactions are passed from Xstore to Sales Audit for full visibility audit, but not otherwise implemented in Sales Audit.

BALANCE_INQUIRY

OTHER

OTHER

BALANCE_INQUIRY transactions are passed from Xstore to Sales Audit for full visibility audit, but not otherwise implemented in Sales Audit.

CREDIT_APPLICATION

OTHER

OTHER

CREDIT_APPLICATION transactions are passed from Xstore to Sales Audit for full visibility audit, but not otherwise implemented in Sales Audit.

ESCROW

OTHER

OTHER

ESCROW transactions are passed from Xstore to Sales Audit for full visibility audit, but not otherwise implemented in Sales Audit.

EXCHANGE_RATE

OTHER

OTHER

EXCHANGE_RATE transactions are passed from Xstore to Sales Audit for full visibility audit, but not otherwise implemented in Sales Audit.

GNRIC

OTHER

OTHER

GNRIC transactions are passed from Xstore to Sales Audit for full visibility audit, but not otherwise implemented in Sales Audit.

INVENTORY_CONTROL

OTHER

OTHER

INVENTORY_CONTROL transactions are mapped from Xstore to Sales Audit for full visibility audit, but not otherwise implemented in Sales Audit.

Xstore should be configured so that inventory control transactions are not generated, and therefore not sent to Sales Audit.

INVENTORY_SUMMARY_COUNT

OTHER

OTHER

INVENTORY_SUMMARY_COUNT transactions are mapped from Xstore to Sales Audit for full visibility audit, but not otherwise implemented in Sales Audit.

Xstore should be configured so that inventory summary count transactions are not generated, and therefore not sent to Sales Audit.

MOVEMENT_PENDING

OTHER

OTHER

MOVEMENT_PENDING transactions are mapped from Xstore to Sales Audit for full visibility audit, but not otherwise implemented in Sales Audit.

Xstore should be configured so that inventory summary count transactions are not generated, and therefore not sent to Sales Audit.

NO_SALE

NOSALE

NOSALE

NA

POST_VOID

PVOID

VOID

NA

RETAIL_SALE

(can be mapped to multiple Sales Audit transaction types depending on other conditions)

SALE

SALE

Regular transaction.

NOSALE

SUSPND

Suspend transaction.

VOID

CANCEL

Cancel transaction.

VOID

CANCEL

Cancel orphaned transaction.

SESSION_CONTROL

OTHER

OTHER

Issue till.

OTHER

OTHER

Assign till/assign till tender transfer.

OTHER

OTHER

Attach till.

OTHER

OTHER

Remove till.

OTHER

OTHER

Return till.

SYSTEM_CLOSE

CLOSE

CSTORE

Close store.

SYSTEM_OPEN

OPEN

OSTORE

Open store.

TENDER_CONTROL

(can be mapped to multiple Sales Audit transaction types depending on other conditions)

OPEN

OTILL

Begin till count.

CLOSE with TOTAL /OTHER

CTILL with CTILLT /OTHER

Till closing count (register accountability/till accountability).

CLOSE and TOTAL

CTILL and CTILLT

Till reconcile. Each counted tender type has a corresponding TOTAL and CTILLT as a THEAD.

PAIDIN

PITILL

Pay in.

PAIDOU

POTILL

Pay out.

OTHER

AUDIT

Till audit.

PULL

PUTILL

Mid-day deposit. Place funds in store bank.

OTHER

BANK

Bank deposit.

LOAN

LOTILL

Till loan (cash transfer).

PULL

PUTILL

Pick up till (cash pickup).

OTHER

OTHER

Open store bank.

OTHER

OTHER

Store bank reconcile.

TENDER_EXCHANGE

PAIDIN

PITILL

NA

TILL_CONTROL

OTHER

OTHER

NA

TIMECLOCK

OTHER

OTHER

Employee clock in.

OTHER

OTHER

Employee clock out.

TRAINING_MODE_ENTRY

OTHER

NTRAIN

NA

TRAINING_MODE_EXIT

OTHER

XTRAIN

NA

WORKSTATION_CLOSE

CLOSE

CREG

NA

WORKSTATION_COMPLETE_REMOTE_CLOSE

CLOSE

CRGRC

NA

WORKSTATION_OPEN

OPEN

OREG

NA

WORKSTATION_START_REMOTE_CLOSE

OTHER

CRGRC

NA

GIFT_REGISTRY

OTHER

OTHER

Assign gift registry (register operation)

OTHER

OTHER

Reissue gift registry (register operation)

RAIN_CHECK

OTHER

OTHER

Redeem rain check.

BATCH_CLOSE

OTHER

OTHER

Credit and debit settlement.

REOPEN

REOPEN

NA

Used to reopen a previously closed store day in Sales Audit.


Tender Types

In order to communicate the tender type used on transactions, a specific mapping is used between Xstore and Sales Audit. The details below outline how the tenders in Xstore map to the Sales Audit tender groups and types. See also the Oracle Retail Sales Audit Implementation Guide for information on configuration of tender types and tender type groups.

Table A-2 Tender Type Mapping

Xstore Xstore POS Log Tender Group Type Sales Audit RTLog
Tender Type Code Tender TypeI D Tender Type Tender ID Tender Type Group Tender Type ID

CURRENCY

USD_CURRENCY

Cash

USD_CURRENCY

CASH

If primary 1000, if alternate 1010.

AUD_CURRENCY

Cash

AUD_CURRENCY

CASH

If primary 1000, if alternate 1010.

CAD_CURRENCY

Cash

CAD_CURRENCY

CASH

If primary 1000, if alternate 1010.

EUR_CURRENCY

Cash

EUR_CURRENCY

CASH

If primary 1000, if alternate 1010.

GBP_CURRENCY

Cash

GBP_CURRENCY

CASH

If primary 1000, if alternate 1010.

CREDIT_CARD

VISA

CreditDebit

VISA

CCARD

3000

MASTERCARD

CreditDebit

MASTERCARD

CCARD

3010

AMERICAN_EXPRESS

CreditDebit

AMERICAN_EXPRESS

CCARD

3020

DINERS_CLUB

CreditDebit

DINERS_CLUB

CCARD

3040

DISCOVER

CreditDebit

DISCOVER

CCARD

3030

JCB

CreditDebit

JCB

CCARD

3090

DEBITCARD

CreditDebit

DEBITCARD

DCARD

8000

ACCOUNT

HOUSE_ACCOUNT

dtv:Account

HOUSE_ACCOUNT

CCARD

3120

A new type of credit card

CreditDebit

A new type of credit card

CCARD

Map to UNKNW.

CHECK

CHECK

Check

CHECK

CHECK

If primary 2000, if foreign 2050.

TRAVELERS_CHECK

USD_TRAVELERS_CHECK

dtv:TravelersCheck

USD_TRAVELERS_CHECK

CHECK

If primary 2020, if foreign 2060.

CAD_TRAVELERS_CHECK

dtv:TravelersCheck

CAD_TRAVELERS_CHECK

CHECK

If primary 2020, if foreign 2060.

VOUCHER

GIFT_CERTIFICATE

Voucher

GIFT_CERTIFICATE

VOUCH

If primary 4030, if foreign 4100.

ISSUE_GIFT_CERTIFICATE

Voucher

ISSUE_GIFT_CERTIFICATE

VOUCH

If primary 4030, if foreign 4100.

ISSUE_MERCHANDISE_CREDIT_CARD

Voucher

ISSUE_MERCHANDISE_CREDIT_CARD

VOUCH

4050

ISSUE_STORE_CREDIT

Voucher

ISSUE_STORE_CREDIT

VOUCH

4050

ISSUE_XPAY_GIFT_CARD

Voucher

ISSUE_XPAY_GIFT_CARD

VOUCH

4040

MALL_CERTIFICATE

Voucher

MALL_CERTIFICATE

VOUCH

4060

MERCHANDISE_CREDIT_CARD

Voucher

MERCHANDISE_CREDIT_CARD

VOUCH

4050

RELOAD_MERCHANDISE_CREDIT_CARD

Voucher

RELOAD_MERCHANDISE_CREDIT_CARD

VOUCH

4050

RELOAD_XPAY_GIFT_CARD

Voucher

RELOAD_XPAY_GIFT_CARD

VOUCH

4040

STORE_CREDIT

Voucher

STORE_CREDIT

VOUCH

If primary 4050, if foreign 4090.

XPAY_GIFT_CARD

Voucher

XPAY_GIFT_CARD

VOUCH

4040

COUPON

COUPON

ManufacturerCoupon

COUPON

QPON

5000

ROOM_CHARGE

CreditDebit

ROOM_CHARGE

VOUCH

4050

CREDIT_CARD

PAYPAL

TBD

PAYPAL

PAYPAL

3075

HOME_OFFICE_CHECK

HOME_OFFICE_CHECK

NA

NA

Not supported in this solution. Home office check tenders should not be used in Xstore if it is integrated with Sales Audit.


Tender Totals

Sales Audit uses tender totals to compare the total amount of a tender reported from the store (Accounted For) with the amount that it should have reported (Accountable For) based on store activity in a day. Totals are fully customer configured in Sales Audit. However, when integrating with Xstore, a few specific totals are expected to be created to total tenders. The totals that should be created and their ID are outlined in the table below, along with the Xstore tender type used for the total.

Table A-3 Total Tender ID Mapping

Xstore Sales Audit RTLog
TenderType TenderID Total ID

CURRENCY

USD_CURRENCY

CASH

AUD_CURRENCY

CASHAC

CAD_CURRENCY

CASHAC

EUR_CURRENCY

CASHAC

GBP_CURRENCY

CASHAC

TRAVELERS_CHECK

USD_TRAVELERS_CHECK

TCHECK

AUD_TRAVELERS_CHECK

TCHECKAC

CAD_TRAVELERS_CHECK

TCHECKAC

EUR_TRAVELERS_CHECK

TCHECKAC

GBP_TRAVELERS_CHECK

TCHECKAC

MXN_TRAVELERS_CHECK

TCHECKAC

CREDIT_CARD

CREDIT_CARD

CCARD

VOUCHER

GIFT_CERTIFICATE

GIFTCERT

MALL_CERTIFICATE

MALLCERT

MERCHANDISE_CREDIT_CARD

MCCARD

RELOAD_MERCHANDISE_CREDIT_CARD

RMCCARD

RELOAD_XPAY_GIFT_CARD

RXPAYGC

STORE_CREDIT

STCRDT

XPAY_GIFT_CARD

XPAYGC

ISSUE_XPAY_GIFT_CARD

IXPAYGC

ISSUE_STORE_CREDIT

ISTCRDT

ISSUE_MERCHANDISE_CREDIT_CARD

IMCCARD

ACCOUNT

HOUSE_ACCOUNT

HACCNT

COUPON

COUPON

COUPON


Item Types

There are a number of different item types that are used in Xstore, and these all need to be mapped to item types used by Sales Audit. The table below outlines how the types in Xstore map to the Sales Audit item types.

Table A-4 Item Type Mapping

Xstore Item Type Sales Audit Item Type Description

Alteration

NMITEM

Non-Merchandise Item

Deposit

NMITEM

Non-Merchandise Item

dtv:GiftCertificate

GCN

Voucher

dtv:NonMerchandise

NMITEM

Non-Merchandise Item

dtv:Payment

NMITEM

Non-Merchandise Item

Fee

NMITEM

Non-Merchandise Item

ItemCollection

ITEM

Item

Service

NMITEM

Non-Merchandise Item

Stock

ITEM

Item

Warranty

NMITEM

Non-Merchandise Item


Sales Audit Reason Codes

Xstore has a single set of reason codes, used both for reason codes, price override codes, and other modifications. Sales Audit separates these concepts into individual sets. Because reason codes can be mixed coming out of Xstore, Sales Audit has mapped some code values to multiple code types to avoid the possibility of errors.

For more information on each of these categories of reason codes, see the Oracle Retail Sales Audit Implementation Guide.

Reason Codes

First is a general reason code that may be entered for specific transaction types to provide more information about the context of the transaction. This type of reason code is mapped to Xstore miscellaneous reason codes.

Table A-5 Sales Audit Reason Codes

Xstore Reason Code Sales Audit Reason Code Description

PV1

PV1

Cashier Error

PV2

PV2

Supervisors Discretion

PV3

PV3

Customer Satisfaction

NS1

NS1

Making Change

NS2

NS2

Employee Check Cashed

NS3

NS3

Petty Cash In

NS4

NS4

Petty Cash Out

NS5

NS5

Spiff/Bonus Out 1

CF1

CF1

Holiday Adjustment

CF2

CF2

Register Down

PAID_IN

PI1

Change from Paid Out

PAID_IN

PI2

Found Money

PAID_IN

PI3

Drawer Loan 1

PAID_IN

TENDEX

Tender exchange

PAID_OUT

PO1

Stocks

PAID_OUT

PO2

Delivery

PAID_OUT

PO3

Postage

PAID_OUT

PO4

Contractor Services

PAID_OUT

PO5

Store Incentives


Return Reason Codes

Sales Audit return reason codes are used to provide the context of the return in Sales Audit. These map to the Xstore reason codes as follows:

Table A-6 Return Reason Codes

Xstore Reason Code Sales Audit Reason Code Description

RET1

RET1

Did not like

RET2

RET2

Better price somewhere else

RET3

RET3

Did not fit

RET4

RET4

Damaged

RET5

RET5

Exchange

RET6

RET6

Poor quality

RET41

RET41

Open box

RET42

RET42

Unusable

RET43

RET43

Repairable


Discount Reason Codes

Used in Sales Audit to indicate the valid discount types for sales and return transaction, this table shows how these are mapped to the Xstore reason codes used for returns:

Table A-7 Discount Reason Codes

Xstore Reason Code Sales Audit Reason Code Description

DC1

S

Incorrect Label

DC2

MS

Manager Discretion

DC3

CP

Price Guarantee

DC4

D

Damage Adjustment

NEW_PRICE_RULE

NEWPRC

New Price Rule

DOCUMENT

DOC

Document

MANUFACTURER_COUPON

MCOUP

Manufacturer Coupon

REFUND_PRORATION

REFUND

Refund Proration

CALCULATED_WARRANTY_PRICE

CALWAR

Warranty Price


Item Price Override Reason Codes

This grouping of reason codes is used to hold the valid price override reason codes that are expected by Sales Audit. These map to the reason codes used in Xstore as follows:

Table A-8 Item Price Override Reason Codes

Xstore Reason Code Sales Audit Reason Code Description

AR_PR_1

AR_PR_1

Insufficient Funds

AR_PR_2

AR_PR_2

Wrong Amount

AR_PR_3

AR_PR_3

Wrong Amount

AR_PR_4

AR_PR_4

Wrong Invoice

COMMENT

NEWPRC

Other - Enter Comments

PC1

S

Incorrect Label

PC2

MS

Supervisors Discretion

PC3

CP

Competitive Price Match

PC4

D

Damage Adjustment

BASE_PRICE_RULE

BSPRC

Base Price Rule

PROMPT_PRICE_CHANGE

PROMPT

Price Prompt

AUTHORIZED_AMOUNT

AUTHMT

Authorized Amount


Item Status/and Sales Types

Valid values for item status in Sales Audit are:

V Voided
S Sale
R Return
O Other
ORI Order Initiate
ORC Order Cancel
ORD Order Complete
LIN Layaway Initiate
LCA Layaway Cancel
LCO Layaway Complete

Valid values for sales type in Sales Audit are:

R Regular
I In-Store Customer Order
E External Customer Order

These two sets of codes are then mapped to the actions in Xstore as follows:

Table A-9 Item Status/ and Sales Type Mapping

Xstore Item Xstore Action Sales Audit Item Status Sales Audit Sales Type

Regular Sale

Sale

S

R

Return

R

R

Void

S and V (two lines)

R

Layaway Item

Init

LIN

I

Cancel

LCA

I

Pickup

LCO

I

Void

S and V (two lines)

I

Locate Order

Init

ORI

E

Cancel

ORC

E

Pickup

ORD

E

Void when update or pickup

ORC

E

Void when Init

S and V (two lines)

E

Special Order

Init

ORI

E

Cancel

ORC

E

Pickup

ORD

E

Void when update or pickup

ORC

E

Void when Init

S and V (two lines)

E

Work Order

Init

ORI

I

Cancel

ORC

I

Pickup

ORD

I

Void when update or pickup

ORC

I

Void when Init

S and V (two lines)

I

Pre-Sale

Init

ORI

I

Cancel

ORC

E

Pickup

ORD

E

Void when update or pickup

ORC

E

Void when Init

S and V (two lines)

E

On Hold

Init

ORI

I

Cancel

ORC

I

Pickup

ORD

I

Void when update or pickup

ORC

I

Void when Init

S and V (two lines)

I

Send Sale

Init

S

R

Void when Init

S and V (two lines)

R


Customer ID Types

Sales Audit has a set of codes that it uses for validating the various forms of identification that can be presented at the store for a transaction. However, Xstore always sends just one type - Customer ID or CUSTID. This customer ID type is part of the default Sales Audit implementation and should be configured to "Used" when implementing with Xstore.

Sales Audit Tax Codes

When implementing using US Sales Tax for some or all stores, the tax code sent by Xstore will always be sent as TOTTAX. This will be validated against the list of valid non-VAT tax codes in Sales Audit. This code is included in the initial Sales Audit configuration, but care should be taken not to remove or configure that code type off when integrating with Xstore.

Reference Codes/Labels

Sales Audit has a flexible method of taking in reference fields from a POS at various levels of the transaction. These can be configured differently by transaction and sub-transaction type within Sales Audit. In general, these are not used in the base Xstore implementation without customization with a couple of exceptions. The reference fields that Xstore uses are as follows:

  • Reference Number 1 (Transaction Header) - for the Day Close (DCLOSE) transaction type, this field will contain the file counter for the end of day

  • Reference Number 1 (Transaction Header) - for the Tender Total (TOTAL) transaction type, contains the tender ID/type

  • Reference Number 3 (Transaction Header) - incudes the employee ID if the sale was to an employee

For more on configuring reference fields in Sales Audit, see the Oracle Retail Sales Audit Implementation Guide.

Sale Return Transaction

This section describes sale return transaction mappings.

Transaction Header Mapping

This section describes mappings for the transaction header of sale return transactions. The transaction header format is defined at TransactionHeader RECODE_FORMAT in the RTLogFormatConfig.xml file.

A sale return transaction can be mixed with a sale line item, return line item, special order pickup line item, special order payment, work order line item, and so on. In this case, the sale and return transaction type and sub transaction type are defined as SALE. The actual types of line lines are specified at line item level.

The field Salesperson in Transaction Header is matched to -1. It means there is no Salesperson available at transaction level. Instead the field Salesperson in line item is populated, since it is possible to have different sales people for different line items in the same transaction.

OriginalTransactionNumber and Orig_reg_no are only populated for post void transactions. Mapper PostVoidOriginalTransactionInfoMapper indicates the mapping logic.

Line Item (TITEM) Mapping

This section describes mappings for line items of sale return transactions. The line item format is defined at TransactionItem RECODE_FORMAT in the RTLogFormatConfig.xml file.

The line item will not be exported for suspended, cancelled and post void transactions. It is disabled in retailTrnDetailrExportabilityMapper.

It would be one or more line item records in a sale return transaction.

There are two kinds of item types, physical/merchandise item (ITEM) or non physical/non merchandise item (NMITEM). Non physical items are service fee, payment, work order item, and so on.

The Item id of a physical item is set to Item field; the Item id for a non physical item is set to NonMerchandiceItem field of the RTLog record.

The default value of the ItemStatus field is S, which is set in the RTLogFormatConfig.xml file. If the line item is return, the value is set to R. Return reason code mapping can be found in /retailTransaction/lineItems/return source field VALUE_MAPPINGS.

The default value of SalesType for sale return line item is I (internal sale).

ItemVoidStatusMapper sets the void flag of the record to true if the line is voided. If a sale return line item record is voided, a clone of the sale return line item record will be created, the item status for the new record is set to "V". In this case the status of the two lines are "S" and "V" or "R" and "V". Sales Audit balances off a sale/return line with its voided line to zero.

Item Discount (IDISC) Mapping and Round off Discount Mapping

This section describes mappings for item level discounts of sale return transactions. The item level discount format is defined at ItemDiscount RECODE_FORMAT in the RTLogFormatConfig.xml file.

The item level discount will not be exported for suspended, cancelled and post void transactions. It is disabled in retailTrnDetailExportabilityMapper.

It would be zero or more item discount records for a line item.

If it is a Deal discount, the RMSPromotionType is mapped to 9999, otherwise it is mapped to 1004.

The discount type of ItemDiscount is mapped from reasonCode and discountReasonCode.of RetailPriceModifierType Poslog object.

The values of DiscountReferenceNumber, PromoComponent and RMSPromotionType are mapped from PromotionIDMapper. If the retail price modifier is voided, DiscountReferenceNumber and PromoComponent are set to zero. If the retail price modifier is not voided and it is a deal promotion, it is mapped based on the following conditions:

  • If it is an RPM promotion, DiscountReferenceNumber is set to RPM promotion id and PromoComponent is set to promotion component id.

  • If it is not an RPM promotion, RMSPromotionType is set to 2000, DiscountReferenceNumber and PromoComponent are set to zero.

PromotionIDMapper implements this logic.

DiscountAmountMapper calculates unit discount amount for the ItemDicount RTLog IDISC record and also sets roundedOffAmount to the RTLog record. The value of unit discount amount is the total discount amount divided by item quantity rounding by half up with unit discount scale. The value of roundedOffAmount is the difference between total discount amount and unit discount amount multiplies item quantity. Note that the roundedOffAmount is not a field of IDISC, therefore it is not going to be exported.

A round off discount record (ItemRoundedOffDiscount) is always created after a discount record (ItemDiscount) if the roundedOffAmount is not equal to zero. In a discount record, if the roundedOffAmount exists, a round off discount record will be cloned from the discount record, otherwise a new round off discount record will be created. The value of discount amount of a round off discount record is the round off amount of the corresponding discount record. The value of the quantity in a round off discount record is always set to zero. RoundedOffDiscountAmountMapper is specially used for this mapping.

The format of ItemRoundedOffDiscount record and ItemDiscount record are exactly the same, that is IDISC. The reason for adding a round off discount record is that Poslog uses discountAmount and RTLog uses UnitDiscountAmount. If a quantity of a line item is not one, such as 3, the UnitDiscountAmount times 3 is not equal to discountAmount in Poslog. To balance it off, an extra discount line is introduced to set the round off amount to unit discount amount. It guaranties the total discount value is equal to sum of the two IDISC records.

Item Level Tax Mapping

This section describes mappings for item level tax of sale return transactions. The item level tax format is defined at ItemGlobalTax RECODE_FORMAT in the RTLogFormatConfig.xml file.

Tax lines will not be exported for suspended, cancelled and post void transactions. It is disabled in retailTrnDetailExportabilityMapper.

It would be one or more tax lines for one sale return line item. It depends on how many tax authorities are applied on this item.

RTLog requires four digits decimal for TaxRate in ItemGlobalTax record format. AmountMapper object sets the scale of tax rate to four to fit the need.

RTLog requires four digits decimal for TaxAmount in ItemGlobalTax record format. AmountMapper object sets the scale of tax amount to four to fit the need.

The value of TaxAmountSign field is P when tax amount is positive, N when tax amount is negative. It is done is SignMapper.

The RTLog Generator application supports either VAT or non VAT. It does not support both of them in the application instance. VAT and non VAT configurable settings can be found at the roundedOffTaxAmountMapper spring bean in the RTLogMappingBean.xml file.

TaxCode mappings are different for VAT and non VAT systems. If the RTLog Generator application is set to VAT, the tax group id maps to the tax code. If the RTLog Generator application is set to non VAT, the tax code is always "TOTTAX". ItemTaxCodeMapper implements this logic.

The value of TotalTaxAmount is blank if the tax is voided. Otherwise, the value of TotalTaxAmount is the sum of the item taxes from all item tax authorities. It is implemented at ItemTotalTaxAmountMapper.

The value of TaxableIndicator of ItemGlobalTax is a flag to indicate the item has tax or not. If the TaxAmountSign amount sign is zero, the value of TaxableIndicator is set to N, otherwise it is set to Y.

Tender Line Mapping

This section describes mappings for transaction tender of sale return transactions. The transaction tender format is defined at TransactionTender RECODE_FORMAT in the RTLogFormatConfig.xml file.

The tender line will not be exported for suspended, cancelled and post void transactions. It is disabled in retailTrnTenderExportabilityMapper.

The actual mappings of transaction tender type group and tender type id (sub type) are listed on sourcePath "/transaction/lineItems/tender" in the RTLogMappingConfig.xml file.

There may be zero or more tender line items within one sale return transaction.

The tender type id is different for base currency and foreign currency and is also different for base traveler's check and foreign traveler's check. Object tenderTypeIDMapper is responsible for doing the actual currency and traveler's check mapping. If the tender type is currency or traveler's check, mapping value will be found from the mapper, the corresponding VALUE_MAPPINGS will be skipped. Otherwise, it will do the value mapping in the VALUE_MAPPINGS.

RTLog requires four digits decimal for TenderAmount in TransactionTender record format. Mapper amountMapper sets the scale of tender amount to four to fit the need.

The value of TenderSign field will be P when tender amount is positive, N when tender amount is negative. It is done in SignMapper.

There is a special tender line which is used for transaction rounded off amount. For detail information, refer to the next section.

Rounded Off Amount

Transaction rounded amount is used to balance off a transaction. The amount comes from the following areas.

  • Rounded amount from roundedTotal@RetailTransactionType Poslog object.

  • Total tax amount from the sum of amount@TaxType of each tax LineItem of RetailTransactionType Poslog object.

  • Total sale return line item tax amount from the sum of amount@TaxType of SaleType of LineItem of RetailTransactionType Poslog object.

Transaction rounded off amount = value of 1 + (value of 2 - value of 3).

RTLog exports line item taxes rather than exports transaction level taxes. The reason is that the payment amount in an order transaction includes a certain percentage of item price and tax amount. When doing a pickup, the transaction level tax is not zero, and the payment already includes the part of the tax. The total tax will be more than the value is supposed to be. The transaction will not balance off.

A special RECORD_FORMAT TransactionTenderRoundedOff is created for this purchase. The syntax of the format is exactly the same as the one for TransactionTender. The TenderTypeGroup is always set to CASH and TenderTypeID is always 1020. TenderAmount of TransactionTenderRoundedOff is the transaction rounded of amount, TenderSign is the transaction rounded of amount sign. RoundedOffAmountMapper accumulates the rounded amounts based on the algorithm above and sets the value and sign to TenderAmount and TenderSign fields.

This special tender line will not be exported for suspended, cancelled and post void transactions. It is disabled in retailTrnDetailExportabilityMapper. It will not be exported when the total rounded amount is zero.