NonSaleActivity Model

Defines the model for submitting non-sale based activities to the EPOS system

Required
NonSaleActivitiesID : string (GUID)

The globally unique identifier for the overall Non Sale Activity

Required
Active_RevisionID : number (int)

This represents the revision of the configuration data that was being used when this non sale activity 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
ActionType : number (int)

The type of non sale activity this record represents. This must be a valid value from from the from POSCorePublic.Enums.Sales.NonSaleActivityActionTypes enum.

Required
OutletID : string (GUID)

The unique OutletID for the outlet the non sale activity belongs to based on the POS_Outlets (configuration) table.
3rd party integrations can use an existing configuration based outlet ID, or can allocate their own outlet ID for these records if the non sale activity does not belong to a standard POS outlet.

Required MaxLength(64) Truncates
OutletGroupCommonName : string

The name of the Outlet group (at the time it was created) that this non sale activity belongs to.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: Australian Outlets

Required MaxLength(64) Truncates
OutletGroupLocalizedName : string

The localised name of the Outlet Group (at the time it was created) that this non sale activity belongs to.
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: Australian Outlets

Required MaxLength(64) Truncates
OutletCommonName : string

The name of the Outlet that this non sale activity belongs to.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: Little Johns Pizza

Required MaxLength(64) Truncates
OutletLocalizedName : string

The localised name of the Outlet that this non sale activity belongs to.
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: Little Johns Pizza

Required MaxLength(256)
Created_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
Created_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
Created_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)
Created_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

Required MaxLength(32) Truncates
Cashier_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

Nullable
DBGen : number (int)

This represents an identifier for a unique database operation that last updated/created this entity. The value is not unique as it can be shared across multiple entities if they were all inserted/updated
from within a single operation. These values are always incrementing so all entities with DBGen > X can be assumed that they were edited/inserted since the operation X occured.

Expect a 64 bit integer.

This is a readonly property. Setting it will have no effect. It will be assigned internally and made visible when querying for this model

IsTraining : bool

Is this a training record (ie not part of official figures)

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

This is the total value of the non sale activity (if applicable). This field will only have a value for activities such as Paid In/Paid Outs that affect balances.

Nullable
DateTime : string (ISO 8601 DateTime)

The date and time that the non sale activity occured in outlet local time

Nullable
TradingDate : string (ISO 8601 DateTime)

This is the Trading Date of the Z Report that this non sales activity's figures have been included in. This should be set for any non-sale activity where Z integration is occuring.
When populated, this should be just the trading date itself, with no time component. eg 2020-01-01 00:00:00
Related Fields: ZReportID, ZReportCounter

Nullable
ZReportID : string (GUID)

This is the unique ID of the Z Report that this non sales activity's sales figures have been included in. This should be set for any non-sale activity where Z integration is occuring.
Related Fields: ZReportCounter, TradingDate

Nullable
ZReportCounter : number (int)

This is the Z Counter from the Z Report that this transaction's sales figures have been included in. This should be set for any non-sale activity where Z integration is occuring.
Related Fields: ZReportID, TradingDate

AffectsCID : bool

Does this Non Sale Activity affect the CID (cash in draw). This is only ever potentially true for non sale activity types that deal with payments (eg Paid In/Paid Out)

Nullable MaxLength(64)
ReceiptID : string

An optional receipt identifier for this action if there was an audit receipt printed. If not used, set this to blank.

Nullable
ActionContextID : string (GUID)

The unique ID of the configuration record matching the Action Type this record was populated from (if applicable).
Example: For Paid In/Paid Out based ActionType's, this would be the PaidInOutID from the POS_PaidInOuts table
This may be NULL for 3rd party integrations or where no configuration based item type was used

Nullable MaxLength(32) Truncates
NonSaleActivityCommonName : string

The name of the non sale activity record, this must always be set and should not be blank.
3rd Party integrations can make up their own names, or they can base them on the existing configuration records if available.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: "No Sale" for a No Sale operation (ie opening the draw without a payment)
Example: "Window Cleaner" for a Paid Out operation to remove cash from the draw to pay the window cleaner

Nullable MaxLength(32) Truncates
NonSaleActivityLocalizedName : string

The localised name of the non sale activity record, this must always be set and should not be blank.
3rd Party integrations can make up their own names, or they can base them on the existing MainGroup 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: "No Sale" for a No Sale operation (ie opening the draw without a payment)
Example: "Window Cleaner" for a Paid Out operation to remove cash from the draw to pay the window cleaner

Nullable
Created_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 MaxLength(128)
ClientName : string

The name of the software application that has created the non sale activity.
3rd Party integrations should enter their application or integration name here.
Example: "My POS App" or "My Website App"

Nullable MaxLength(128)
ClientVersion : string

The version of the software application that has created the non sale activity.
3rd Party integrations should enter their application version name here.
Example: "1.0.0.0" or "1" or "2.5a" etc

Nullable
Cashier_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
Cashier_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
PaymentTypeID : string (GUID)

This unique PaymentTypeID from the POS_PaymentTypes (configuration) table representing the Payment Type this record was created from (if applicable).
This will typically be NULL for 3rd party integrations or for Non Sale Activity that do not involve payments.

Nullable MaxLength(32) Truncates
PaymentTypeCommonName : string

The name of the Payment Type that was used to create this non sale activity (if applicable).
3rd Party integrations can make up their own names, or they can base them on the existing PaymentType configuration if available.
This will be blank for Non Sale Activity types that do not involve payments.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: CASH or Visa or Mastercard

Nullable MaxLength(32) Truncates
PaymentTypeLocalizedName : string

The localised name of the Payment Type that was used to create this non sale activity (if applicable).
3rd Party integrations can make up their own names, or they can base them on the existing PaymentType configuration if available.
This will be blank for Non Sale Activity types that do not involve payments.
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: CASH or Visa or Mastercard

Nullable MaxLength(40) Truncates
CreditCardMerchantID : string

The MerchantID being used by the Credit Card integration that processed this payment (if applicable)

Null values will be converted to an empty string internally

Nullable MaxLength(40) Truncates
CreditCardTerminalID : string

The TerminalID being used by the Credit Card integration that processed this payment (if applicable).
This is the Terminal ID of the physical credit card machine.

Null values will be converted to an empty string internally

Nullable MaxLength(4)
CurrencyCode : string

An ISO 4217 currency code indicating the currency that all values in this non sale activity represent (if applicable). This MUST be a valid currency code.
This will be blank for Non Sale Activity types that do not involve payments.
Example: "GBP" or "AUD" or "USD" or "EUR"

Nullable MaxLength(8)
CurrencySymbol : string

The currency symbol displayed for values in this currency
This will be blank for Non Sale Activity types that do not involve payments.
Example: "$" or "£" or "€"

Nullable MaxLength(64) Truncates
CurrencyCommonName : string

The name of the currency that all values in this non sale activity represent (if applicable)
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
This will be blank for Non Sale Activity types that do not involve payments.
Example: "Euro" or "Pound Stirling" or "Australian Dollar" or "US Dollar"

Nullable MaxLength(64) Truncates
CurrencyLocalizedName : string

The localised name of the currency that all values in this non sale activity represent (if applicable)
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.
This will be blank for Non Sale Activity types that do not involve payments.
Example: "Euro" or "Pound Stirling" or "Australian Dollar" or "US Dollar"

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 non sale activity.
3rd Party integrations can make up their own names, or they can base them on the existing Remark Group configuration if available. Typically this value is blank (empty string).
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: "Payment Remarks"

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 non sale activity.
3rd Party integrations can make up their own names, or they can base them on the existing Remark Group configuration if available. Typically this value is blank (empty string).
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: "Payment Remarks"

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 non sale activity.
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: "Personal Cheque"

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 non sale activity.
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: "Personal Cheque"

Nullable
StatusFlags : number (int)

The status flags applicable to this non sale activity as per the POSCorePublic.Enums.Sales.NonSaleActivityStatusFlags enum.

Example
{
  "NonSaleActivitiesID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Active_RevisionID": 321,
  "ActionType": 321,
  "OutletID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "OutletGroupCommonName": "string value",
  "OutletGroupLocalizedName": "string value",
  "OutletCommonName": "string value",
  "OutletLocalizedName": "string value",
  "Created_DeviceIdentifier": "string value",
  "Created_TerminalCommonName": "string value",
  "Created_TerminalLocalizedName": "string value",
  "Created_TerminalDisplayID": "string value",
  "Cashier_UserName": "string value",
  "DBGen": 321,
  "IsTraining": true,
  "Amount": 1.23,
  "DateTime": "2012-04-03T09:40:59.736Z",
  "TradingDate": "2012-04-03T09:40:59.736Z",
  "ZReportID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "ZReportCounter": 321,
  "AffectsCID": true,
  "ReceiptID": "string value",
  "ActionContextID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "NonSaleActivityCommonName": "string value",
  "NonSaleActivityLocalizedName": "string value",
  "Created_TerminalID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "ClientName": "string value",
  "ClientVersion": "string value",
  "Cashier_EmployeeID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Cashier_UserID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Manager_EmployeeID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Manager_UserID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Manager_UserName": "string value",
  "PaymentTypeID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "PaymentTypeCommonName": "string value",
  "PaymentTypeLocalizedName": "string value",
  "CreditCardMerchantID": "string value",
  "CreditCardTerminalID": "string value",
  "CurrencyCode": "string value",
  "CurrencySymbol": "string value",
  "CurrencyCommonName": "string value",
  "CurrencyLocalizedName": "string value",
  "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
}