Table of Contents

Crm.Pos.SaleLines Entity

Namespace: Crm.Pos

Stores line-level details for items or services sold in a POS transaction. Each line is linked to a POS Sales record and typically represents a single product, quantity, and unit price. It supports complex tracking in environments like retail chains, restaurants, and service centers, including execution status for kitchen/service integration, discounts, and tax breakdowns. Entity: Pos_Sale_Lines (Introduced in version 25.1.3.46)

Default Visualization

Default Display Text Format:
{PosSale.DocumentNumber}
Default Search Members:
PosSale.DocumentNumber
Name Data Member:
PosSale.DocumentNumber
Category: Documents
Show in UI: ShownByDefault

Track Changes

Min level: 0 - Do not track changes
Max level: 4 - Track object attribute and blob changes

Aggregate

An aggregate is a cluster of domain objects that can be treated as a single unit.

Aggregate Parent:
Crm.Pos.Sales
Aggregate Root:
Crm.Pos.Sales

Attributes

Name Type Description
CreatedAt datetime nullable The time when this line was created. Used only for businesses with real-time execution tracking (restaurants, bars, services, etc.). Default(Now) Filter(eq;ge;le)
DiscountAmount Amount (12, 2) The amount of discount applied to the line. Positive for normal sales, negative for refunds. Currency: PosSale.SaleCurrency Required Default(0) Filter(eq)
DisplayText string Uses the repository DisplayTextFormat to build the display text from the attributes and references of current object.
ExecutionChangedAt datetime nullable Indicates the time of the last execution status change. Used only for businesses with real-time execution tracking (restaurants, bars, services, etc.). Filter(eq;ge;le)
ExecutionNote string (64) nullable Notes for the kitchen or service team, e.g., “no garlic”, “extra ice”, “medium rare”. Used only for businesses with real-time execution tracking (restaurants, bars, services, etc.). Filter(like)
ExecutionStage ExecutionStage nullable Execution status of the line. Used only for businesses with real-time execution tracking (restaurants, bars, services, etc.). Filter(eq)
Id guid
IsVoided boolean Specifies whether the current line was voided. Used only for businesses with real-time execution tracking (restaurants, bars, services, etc.). Required Default(false) Filter(eq)
LineAmount Amount (12, 2) Final total amount for the line after discount and tax. Positive for normal sales, negative for refunds. Currency: PosSale.SaleCurrency Required Filter(eq)
LineNo int32 Line number within the POS sale. Required Filter(eq)
Notes string (64) nullable Notes for the line. Filter(like)
ObjectVersion int32 The latest version of the extensible data object for the aggregate root for the time the object is loaded from the database. Can be used for optimistic locking.
Quantity Quantity (12, 3) The quantity sold (in Quantity Unit). Positive for normal sales, negative for returns. Unit: QuantityUnit Required Filter(eq;ge;le)
QuantityBase Quantity (12, 3) Quantity sold in base measurement unit of the product. Positive for normal sales, negative for returns. Unit: Product.BaseMeasurementCategory.BaseUnit Required Filter(eq)
TaxAmount Amount (12, 2) Amount of tax (VAT) for this line. The tax amount is already included in Unit Price and Line Amount and is provided for reference. Positive for normal sales, negative for refunds. Currency: PosSale.SaleCurrency Required Default(0) Filter(eq)
UnitPrice Amount (12, 2) Gross price (incl. VAT if applicable) at the time of the sale. Should always by a positive number. Currency: PosSale.SaleCurrency Required Filter(eq)
VoidedAt datetime nullable Time of voiding the line. Used only for businesses with real-time execution tracking (restaurants, bars, services, etc.). Filter(eq;ge;le)

References

Name Type Description
CreatedBy Operators (nullable) The operator who created the line. Used only for businesses with real-time execution tracking (restaurants, bars, services, etc.). Filter(multi eq)
ExecutionArea LocationAreas (nullable) Route items to the correct kitchen/bar section. Used only for businesses with real-time execution tracking (restaurants, bars, services, etc.). Filter(multi eq)
ExecutionChangedBy Operators (nullable) Which staff member last updated the execution status. Used only for businesses with real-time execution tracking (restaurants, bars, services, etc.). Filter(multi eq)
ExecutionResource ExecutionResources (nullable) The resource (table, room, etc.) used to execute the current line. Used only for businesses with real-time execution tracking (restaurants, bars, services, etc.). Filter(multi eq)
ExecutionStatus ExecutionStatuses (nullable) User-configurable status of the process. Used only for businesses with real-time execution tracking (restaurants, bars, services, etc.). Filter(multi eq)
PosSale Sales The main POS sale. Required Filter(multi eq) Owner
Product Products The sold product. Required Filter(multi eq)
QuantityUnit MeasurementUnits Measurement unit of Quantity. Required Filter(multi eq)
VoidedBy Operators (nullable) Operator who voided the line. Used only for businesses with real-time execution tracking (restaurants, bars, services, etc.). Filter(multi eq)

Attribute Details

CreatedAt

The time when this line was created. Used only for businesses with real-time execution tracking (restaurants, bars, services, etc.). Default(Now) Filter(eq;ge;le)

Type: datetime nullable
Category: System
Supported Filters: Equals, GreaterThanOrLessThan
Supports Order By: False
Default Value: CurrentDateTime
Show in UI: ShownByDefault

DiscountAmount

The amount of discount applied to the line. Positive for normal sales, negative for refunds. Currency: PosSale.SaleCurrency Required Default(0) Filter(eq)

Type: Amount (12, 2)
Category: System
Supported Filters: Equals
Supports Order By: False
Default Value: Constant
Show in UI: ShownByDefault

DisplayText

Uses the repository DisplayTextFormat to build the display text from the attributes and references of current object.

Type: string
Category: Calculated Attributes
Supported Filters: NotFilterable
Supports Order By: ****
Show in UI: HiddenByDefault

ExecutionChangedAt

Indicates the time of the last execution status change. Used only for businesses with real-time execution tracking (restaurants, bars, services, etc.). Filter(eq;ge;le)

Type: datetime nullable
Category: System
Supported Filters: Equals, GreaterThanOrLessThan
Supports Order By: False
Show in UI: ShownByDefault

ExecutionNote

Notes for the kitchen or service team, e.g., “no garlic”, “extra ice”, “medium rare”. Used only for businesses with real-time execution tracking (restaurants, bars, services, etc.). Filter(like)

Type: string (64) nullable
Category: System
Supported Filters: Like
Supports Order By: False
Maximum Length: 64
Show in UI: ShownByDefault

ExecutionStage

Execution status of the line. Used only for businesses with real-time execution tracking (restaurants, bars, services, etc.). Filter(eq)

Type: ExecutionStage nullable
Category: System
Allowed values for the ExecutionStage(Crm.Pos.ExecutionStatuses.md#executionstage) data attribute
Allowed Values (Crm.Pos.ExecutionStatusesRepository.ExecutionStage Enum Members)

Value Description
Pending Pending. Stored as 'PND'.
Database Value: 'PND'
Model Value: 0
Domain API Value: 'Pending'
Prepare Prepare. Stored as 'PRP'.
Database Value: 'PRP'
Model Value: 1
Domain API Value: 'Prepare'
Deliver Deliver. Stored as 'DEL'.
Database Value: 'DEL'
Model Value: 2
Domain API Value: 'Deliver'
Finalize Finalize. Stored as 'FIN'.
Database Value: 'FIN'
Model Value: 3
Domain API Value: 'Finalize'

Supported Filters: Equals
Supports Order By: False
Show in UI: ShownByDefault

Id

Type: guid
Indexed: True
Category: System
Supported Filters: Equals, EqualsIn
Default Value: NewGuid
Show in UI: CannotBeShown

IsVoided

Specifies whether the current line was voided. Used only for businesses with real-time execution tracking (restaurants, bars, services, etc.). Required Default(false) Filter(eq)

Type: boolean
Category: System
Supported Filters: Equals
Supports Order By: False
Default Value: False
Show in UI: ShownByDefault

LineAmount

Final total amount for the line after discount and tax. Positive for normal sales, negative for refunds. Currency: PosSale.SaleCurrency Required Filter(eq)

Type: Amount (12, 2)
Category: System
Supported Filters: Equals
Supports Order By: False
Show in UI: ShownByDefault

LineNo

Line number within the POS sale. Required Filter(eq)

Type: int32
Category: System
Supported Filters: Equals
Supports Order By: False
Show in UI: ShownByDefault

Back-End Default Expression:
( obj.PosSale.Lines.Select( c => c.LineNo).DefaultIfEmpty( 0).Max( ) + 1)

Front-End Recalc Expressions:
( obj.PosSale.Lines.Select( c => c.LineNo).DefaultIfEmpty( 0).Max( ) + 1)

Notes

Notes for the line. Filter(like)

Type: string (64) nullable
Category: System
Supported Filters: Like
Supports Order By: False
Maximum Length: 64
Show in UI: ShownByDefault

ObjectVersion

The latest version of the extensible data object for the aggregate root for the time the object is loaded from the database. Can be used for optimistic locking.

Type: int32
Category: Extensible Data Object
Supported Filters: NotFilterable
Supports Order By: ****
Show in UI: HiddenByDefault

Quantity

The quantity sold (in Quantity Unit). Positive for normal sales, negative for returns. Unit: QuantityUnit Required Filter(eq;ge;le)

Type: Quantity (12, 3)
Category: System
Supported Filters: Equals, GreaterThanOrLessThan
Supports Order By: False
Show in UI: ShownByDefault

QuantityBase

Quantity sold in base measurement unit of the product. Positive for normal sales, negative for returns. Unit: Product.BaseMeasurementCategory.BaseUnit Required Filter(eq)

Type: Quantity (12, 3)
Category: System
Supported Filters: Equals
Supports Order By: False
Show in UI: ShownByDefault

TaxAmount

Amount of tax (VAT) for this line. The tax amount is already included in Unit Price and Line Amount and is provided for reference. Positive for normal sales, negative for refunds. Currency: PosSale.SaleCurrency Required Default(0) Filter(eq)

Type: Amount (12, 2)
Category: System
Supported Filters: Equals
Supports Order By: False
Default Value: Constant
Show in UI: ShownByDefault

UnitPrice

Gross price (incl. VAT if applicable) at the time of the sale. Should always by a positive number. Currency: PosSale.SaleCurrency Required Filter(eq)

Type: Amount (12, 2)
Category: System
Supported Filters: Equals
Supports Order By: False
Show in UI: ShownByDefault

VoidedAt

Time of voiding the line. Used only for businesses with real-time execution tracking (restaurants, bars, services, etc.). Filter(eq;ge;le)

Type: datetime nullable
Category: System
Supported Filters: Equals, GreaterThanOrLessThan
Supports Order By: False
Show in UI: ShownByDefault

Reference Details

CreatedBy

The operator who created the line. Used only for businesses with real-time execution tracking (restaurants, bars, services, etc.). Filter(multi eq)

Type: Operators (nullable)
Category: System
Supported Filters: Equals, EqualsIn
Show in UI: ShownByDefault

ExecutionArea

Route items to the correct kitchen/bar section. Used only for businesses with real-time execution tracking (restaurants, bars, services, etc.). Filter(multi eq)

Type: LocationAreas (nullable)
Category: System
Supported Filters: Equals, EqualsIn
Show in UI: ShownByDefault

ExecutionChangedBy

Which staff member last updated the execution status. Used only for businesses with real-time execution tracking (restaurants, bars, services, etc.). Filter(multi eq)

Type: Operators (nullable)
Category: System
Supported Filters: Equals, EqualsIn
Show in UI: ShownByDefault

ExecutionResource

The resource (table, room, etc.) used to execute the current line. Used only for businesses with real-time execution tracking (restaurants, bars, services, etc.). Filter(multi eq)

Type: ExecutionResources (nullable)
Category: System
Supported Filters: Equals, EqualsIn
Show in UI: ShownByDefault

ExecutionStatus

User-configurable status of the process. Used only for businesses with real-time execution tracking (restaurants, bars, services, etc.). Filter(multi eq)

Type: ExecutionStatuses (nullable)
Category: System
Supported Filters: Equals, EqualsIn
Show in UI: ShownByDefault

PosSale

The main POS sale. Required Filter(multi eq) Owner

Type: Sales
Indexed: True
Category: System
Supported Filters: Equals, EqualsIn
Filterable Reference: True
Show in UI: ShownByDefault

Product

The sold product. Required Filter(multi eq)

Type: Products
Category: System
Supported Filters: Equals, EqualsIn
Show in UI: ShownByDefault

QuantityUnit

Measurement unit of Quantity. Required Filter(multi eq)

Type: MeasurementUnits
Category: System
Supported Filters: Equals, EqualsIn
Show in UI: ShownByDefault

VoidedBy

Operator who voided the line. Used only for businesses with real-time execution tracking (restaurants, bars, services, etc.). Filter(multi eq)

Type: Operators (nullable)
Category: System
Supported Filters: Equals, EqualsIn
Show in UI: ShownByDefault

API Methods

Methods that can be invoked in public APIs.

GetAllowedCustomPropertyValues

Gets the allowed values for the specified custom property for this entity object. If supported the result is ordered by property value. Some property value sources do not support ordering - in that case the result is not ordered.
Return Type: Collection Of CustomPropertyValue
Declaring Type: EntityObject
Domain API Request: GET

Parameters

  • customPropertyCode
    The code of the custom property
    Type: string

  • search
    The search text - searches by value or description. Can contain wildcard character %.
    Type: string
    Optional: True
    Default Value: null

  • exactMatch
    If true the search text should be equal to the property value
    Type: boolean
    Optional: True
    Default Value: False

  • orderByDescription
    If true the result is ordered by Description instead of Value. Note that ordering is not always possible.
    Type: boolean
    Optional: True
    Default Value: False

  • top
    The top clause - default is 10
    Type: int32
    Optional: True
    Default Value: 10

  • skip
    The skip clause - default is 0
    Type: int32
    Optional: True
    Default Value: 0

CreateNotification

Create a notification immediately in a separate transaction, and send a real-time event to the user.
Return Type: void
Declaring Type: EntityObject
Domain API Request: POST

Parameters

  • user
    The user.
    Type: Users

  • notificationClass
    The notification class.
    Type: string

  • subject
    The notification subject.
    Type: string

  • priority
    The notification priority.
    Type: Systems.Core.NotificationsRepository.Priority
    Allowed values for the Priority(Systems.Core.Notifications.md#priority) data attribute
    Allowed Values (Systems.Core.NotificationsRepository.Priority Enum Members)

    Value Description
    Background Background value. Stored as 1.
    Model Value: 1
    Domain API Value: 'Background'
    Low Low value. Stored as 2.
    Model Value: 2
    Domain API Value: 'Low'
    Normal Normal value. Stored as 3.
    Model Value: 3
    Domain API Value: 'Normal'
    High High value. Stored as 4.
    Model Value: 4
    Domain API Value: 'High'
    Urgent Urgent value. Stored as 5.
    Model Value: 5
    Domain API Value: 'Urgent'

    Optional: True
    Default Value: Normal

CreateCopy

Duplicates the object and its child objects belonging to the same aggregate. The duplicated objects are not saved to the data source but remain in the same transaction as the original object.
Return Type: EntityObject
Declaring Type: EntityObject
Domain API Request: POST

Business Rules

None

Front-End Business Rules

None

API

Domain API Query: https://demodb.my.erp.net/api/domain/odata/Crm_Pos_SaleLines?$top=10

Domain API Query Builder: https://demodb.my.erp.net/api/domain/querybuilder#Crm_Pos_SaleLines?$top=10