SalesTransactionItemCorrection Model

This class is used to define information about corrections (error corrects, refunds, voids etc) that have been applied to sale items.

Required
SalesTransactionItemCorrectionID : string (GUID)

The Unique identifier for this record

Required
SalesTransactionItemID_Original : string (GUID)

The unique ID of the POS_SalesTransactionItem record of the original line item that this record is associated with. Ie the item that was affected by the correction.

Required
SalesTransactionItemID_Corrected : string (GUID)

The unique ID of the POS_SalesTransactionItem record of the corrected version of the line item that this record is associated with. Ie the item that has results from the correction.
Note: For inline corrections (where source item is modified directly), this will be the same item as SalesTransactionItemID_Original.
For non-inline corrections (where the source item is duplicated and the reversed), this will be a different item that the SalesTransactionItemID_Original

Required
Active_RevisionID : number (int)

This represents the revision of the configuration data that was being used when this record was generated. This is primarily for use by the PowerEPOS software, however 3rd party integrators can set this too if they
are using our configuration data as a basis for sale information, otherwise just set this to 0.

Required
DateTimeCorrected : string (ISO 8601 DateTime)

The date and time the correction was applied in outlet local time.

Required
CorrectionTypeBaseType : number (int)

The base type of the correction. This must be a value from the POSCorePublic.Enums.Configuration.CorrectionBaseTypes enum

Required MaxLength(32) Truncates
CorrectionTypeCommonName : string

The name of the Correction Type that was applied to the item.
3rd Party integrations can make up their own names, or they can base them on the existing Correction Types configuration if available.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: "Error Correct" or "Refund" or "Cancel Item" or "Void"

Required MaxLength(32) Truncates
CorrectionTypeLocalizedName : string

The localised name of the Correction Type that was applied to the item.
3rd Party integrations can make up their own names, or they can base them on the existing Correction Types configuration if available.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
Example: "Error Correct" or "Refund" or "Cancel Item" or "Void"

Required MaxLength(32) Truncates
CorrectedBy_UserName : string

The name of the POS User / person who created the record.
3rd Party integrations should specify a user name (where applicable), or use the integration name as a fallback.
Example: John

Required MaxLength(256)
CorrectedBy_DeviceIdentifier : string

This is an identifier for the device which created the record. PowerEPOS uses a combination of MAC Address, Hostname and OS.
3rd Party integrators can leave this blank, or set this to something meaningful if a need arises to track records created by a certain device.

Required MaxLength(64) Truncates
CorrectedBy_TerminalCommonName : string

The name of the terminal (typically the POS terminal) that created the record.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
3rd Party integrations should specify a meaningful name (possibly the integration name) to group the source of the records, as Terminal is main filter that can be used by the Reporting system.
Example: "POS 1" or "Bar POS" or "Online Orders"

Required MaxLength(64) Truncates
CorrectedBy_TerminalLocalizedName : string

The localised name of the terminal (typically the POS terminal) that created the record.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
3rd Party integrations should specify a meaningful name (possibly the integration name) to group the source of the records, as Terminal is main filter that can be used by the Reporting system.
Example: "POS 1" or "Bar POS" or "Online Orders"

Required MaxLength(4)
CorrectedBy_TerminalDisplayID : string

A short ID for the terminal that created the record, typically matching the ID from the POS_Terminals (configuration) record.
3rd Party integrations can leave this blank or come up with their own short name for the terminal.
Example: P1 or TRM1 or INTG

Nullable decimal(13, 2)
SaleQtyBefore : number (decimal)

The SaleQty value of the original item record BEFORE the correction was applied

Nullable decimal(18, 7)
StockQtyBefore : number (decimal)

The StockQty value of the original item record BEFORE the correction was applied

Nullable decimal(18, 2)
PriceBefore : number (decimal)

The Price value of the original item record BEFORE the correction was applied

Nullable decimal(18, 2)
AmountBefore : number (decimal)

The Amount value of the original item record BEFORE the correction was applied

Nullable decimal(13, 2)
SaleQtyAfter : number (decimal)

The SaleQty value of the item record AFTER the correction was applied

Nullable decimal(18, 7)
StockQtyAfter : number (decimal)

The StockQty value of the item record AFTER the correction was applied

Nullable decimal(18, 2)
PriceAfter : number (decimal)

The Price value of the item record AFTER the correction was applied

Nullable decimal(18, 2)
AmountAfter : number (decimal)

The Amount value of the item record AFTER the correction was applied

Nullable
CorrectionTypeID : string (GUID)

This is the unique ID of a record from the POS_CorrectionTypes (configuration) table representing the Correction Type that was used to create this record
3rd Party integrations would normally set this to be NULL

Nullable
CorrectedBy_EmployeeID : string (GUID)

The unique employee record ID of the employee / staff member who created the record.
This may be NULL for 3rd party integrations or where no Employee (Time Clocking / HR) integration exists.

Nullable
CorrectedBy_UserID : string (GUID)

This unique UserID from the POS_Users (configuration) table representing the POS user that created the record.
This may be NULL for 3rd party integrations

Nullable
Manager_EmployeeID : string (GUID)

The unique employee record ID of the employee / manager who approved the action that created this record (if applicable).
Typically this value will be NULL as manager authorisation is usually only required occasionally.
This will typically be NULL for 3rd party integrations or where no Employee (Time Clocking / HR) integration exists.

Nullable
Manager_UserID : string (GUID)

This unique UserID from the POS_Users (configuration) table representing the POS User who approved the action that created this record (if applicable).
Typically this value will be NULL as manager authorisation is usually only required occasionally.
This will typically be NULL for 3rd party integrations

Nullable MaxLength(32) Truncates
Manager_UserName : string

The name of the POS User / person who approved the action that created this record (if applicable).
Typically this value will be NULL as manager authorisation is usually only required occasionally.
This will typically be NULL for 3rd party integrations
Example: Mary

Nullable
CorrectedBy_TerminalID : string (GUID)

This is the unique TerminalID of a record from the POS_Terminals (configuration) table representing the Terminal which created the record.
3rd Party integrations would normally set this to be NULL

Nullable
RemarkGroupID : string (GUID)

The unique ID of the POS_RemarkGroups (configuration) record matching the Remark Group the remark was added from (if applicable)
This may be NULL for 3rd party integrations or where no remark was applied.

Nullable MaxLength(64) Truncates
RemarkGroupCommonName : string

The name of the Remark Group the remark (if applicable) belongs to. Leave blank (empty string) if no remark is associated with this correction.
3rd Party integrations can make up their own names, or they can base them on the existing Remark Group configuration if available.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: "Error Correct Reasons"

Nullable MaxLength(64) Truncates
RemarkGroupLocalizedName : string

The localised name of the Remark Group the remark (if applicable) belongs to. Leave blank (empty string) if no remark is associated with this correction.
3rd Party integrations can make up their own names, or they can base them on the existing Remark Group configuration if available.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
Example: "Error Correct Reasons"

Nullable
RemarkID : string (GUID)

The unique ID of the POS_Remarks (configuration) record matching the Remark configuration record that the remark was added from (if applicable)
This may be NULL for 3rd party integrations or where no remark was applied.

Nullable MaxLength(256) Truncates
RemarkCommonName : string

The name of the Remark (if applicable) that was applied. Leave blank (empty string) if no remark is associated with this correction.
3rd Party integrations can make up their own names, or they can base them on the existing Remark configuration if available.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: "Food was cold"

Nullable MaxLength(256) Truncates
RemarkLocalizedName : string

The localised name of the Remark (if applicable) that was applied. Leave blank (empty string) if no remark is associated with this correction.
3rd Party integrations can make up their own names, or they can base them on the existing Remark configuration if available.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
Example: "Food was cold"

Nullable
StatusFlags : number (int)

The status flags applicable to this correction as per the POSCorePublic.Enums.Sales.ItemCorrectionStatusFlags enum.

Example
{
  "SalesTransactionItemCorrectionID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "SalesTransactionItemID_Original": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "SalesTransactionItemID_Corrected": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Active_RevisionID": 321,
  "DateTimeCorrected": "2012-04-03T09:40:59.736Z",
  "CorrectionTypeBaseType": 321,
  "CorrectionTypeCommonName": "string value",
  "CorrectionTypeLocalizedName": "string value",
  "CorrectedBy_UserName": "string value",
  "CorrectedBy_DeviceIdentifier": "string value",
  "CorrectedBy_TerminalCommonName": "string value",
  "CorrectedBy_TerminalLocalizedName": "string value",
  "CorrectedBy_TerminalDisplayID": "string value",
  "SaleQtyBefore": 1.23,
  "StockQtyBefore": 1.23,
  "PriceBefore": 1.23,
  "AmountBefore": 1.23,
  "SaleQtyAfter": 1.23,
  "StockQtyAfter": 1.23,
  "PriceAfter": 1.23,
  "AmountAfter": 1.23,
  "CorrectionTypeID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "CorrectedBy_EmployeeID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "CorrectedBy_UserID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Manager_EmployeeID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Manager_UserID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Manager_UserName": "string value",
  "CorrectedBy_TerminalID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "RemarkGroupID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "RemarkGroupCommonName": "string value",
  "RemarkGroupLocalizedName": "string value",
  "RemarkID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "RemarkCommonName": "string value",
  "RemarkLocalizedName": "string value",
  "StatusFlags": 321
}