Table of Contents

Crm.Sales.SalesOrderPaymentPlans Entity

Namespace: Crm.Sales

Payment plan of a sales order. Entity: Crm_Sales_Order_Payment_Plans

Default Visualization

Default Display Text Format:
{SalesOrder.EntityName}
Default Search Members:
SalesOrder.EntityName
Name Data Member:
SalesOrder.EntityName
Category: Definitions
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.Sales.SalesOrders
Aggregate Root:
Crm.Sales.SalesOrders

Attributes

Name Type Description
Amount Amount (14, 2) Amount to be payed. Currency: SalesOrder.DocumentCurrency Required
AmountPercent decimal (7, 6) nullable Percent of the sales order amount to be payed.
DisplayText string Uses the repository DisplayTextFormat to build the display text from the attributes and references of current object.
DueDateFormMethod PaymentPlanDueDateSource Method to determine the payment due date. SLS = Use sales order date, INV = Use invoice date, EXP = Specify the date explicitly, SDD = Sales order due date, IDD = Invoice due date. Required
ExplicitPaymentDueDate datetime nullable Explicitly specified payment due date. Must be filled if and only if Due_Date_Form_Method = 'EXP'. Filter(ge;le)
ExplicitPayment
DueStartDate
date nullable Explicitly specified date on which the payment becomes executable. Can be specified only when date formation method is 'Set explicit date'. Filter(ge;le)
Id guid
InstallmentNumber int32 Consequtive installment number. Used for identifying different payments generated according this payment plan. Required
Notes string (254) nullable Notes for this SalesOrderPaymentPlan.
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.
PaymentStartDays int32 Number of days until the payment becomes executable. The days are counted, starting with the date, specified by due date formation method. Required Default(0)
PaymentTermDays int32 Payment term in days, which are to be added to form the payment due date. 0 means that the date determined by Due_Date_Form_Method and Explicit_Payment_Due_Date is taken as due date. Required Default(0)
Remainder boolean Indicates wheather this amount is the remainder of the document. Amount = Total amount of the sales order - explicitly specified amounts in the plan (by Amount_Percent or Amount). Required Default(false)

References

Name Type Description
PaymentAccount PaymentAccounts (nullable) Specifies the payment account towards which the payment is expected. null means that there is no expectation for payment account. For POS implementations, this can be used to denote the payment account in which the payment actually occurred. Filter(multi eq)
PaymentType PaymentTypes (nullable) Specifies the expected payment type. null means that there is no expected payment type. For POS implementations, this can be used to denote the payment type which actually occurred. Filter(multi eq)
SalesOrder SalesOrders The to which this SalesOrderPaymentPlan belongs. Required Filter(multi eq) Owner

Attribute Details

Amount

Amount to be payed. Currency: SalesOrder.DocumentCurrency Required

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

AmountPercent

Percent of the sales order amount to be payed.

Type: decimal (7, 6) nullable
Category: System
Supported Filters: NotFilterable
Supports Order By: False
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

DueDateFormMethod

Method to determine the payment due date. SLS = Use sales order date, INV = Use invoice date, EXP = Specify the date explicitly, SDD = Sales order due date, IDD = Invoice due date. Required

Type: PaymentPlanDueDateSource
Category: System
Generic enum type for PaymentPlanDueDateSource properties
Allowed Values (Crm.PaymentPlanDueDateSource Enum Members)

Value Description
SpecifyTheDateExplicitly SpecifyTheDateExplicitly value. Stored as 'EXP'.
Database Value: 'EXP'
Model Value: 0
Domain API Value: 'SpecifyTheDateExplicitly'
UseInvoiceDate UseInvoiceDate value. Stored as 'INV'.
Database Value: 'INV'
Model Value: 1
Domain API Value: 'UseInvoiceDate'
UseSalesOrderDate UseSalesOrderDate value. Stored as 'SLS'.
Database Value: 'SLS'
Model Value: 2
Domain API Value: 'UseSalesOrderDate'
UseSalesOrderDueDate UseSalesOrderDueDate value. Stored as 'SDD'.
Database Value: 'SDD'
Model Value: 3
Domain API Value: 'UseSalesOrderDueDate'
UseInvoiceDueDate UseInvoiceDueDate value. Stored as 'IDD'.
Database Value: 'IDD'
Model Value: 4
Domain API Value: 'UseInvoiceDueDate'

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

ExplicitPaymentDueDate

Explicitly specified payment due date. Must be filled if and only if Due_Date_Form_Method = 'EXP'. Filter(ge;le)

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

Front-End Recalc Expressions:
IIF( ( Convert( obj.DueDateFormMethod, Int32) != 0), null, obj.ExplicitPaymentDueDate)

ExplicitPaymentDueStartDate

Explicitly specified date on which the payment becomes executable. Can be specified only when date formation method is 'Set explicit date'. Filter(ge;le)

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

Front-End Recalc Expressions:
IIF( ( Convert( obj.DueDateFormMethod, Int32) != 0), null, obj.ExplicitPaymentDueStartDate)

Id

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

InstallmentNumber

Consequtive installment number. Used for identifying different payments generated according this payment plan. Required

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

Back-End Default Expression:
( obj.SalesOrder.PaymentPlans.Select( c => c.InstallmentNumber).DefaultIfEmpty( 0).Max( ) + 1)

Front-End Recalc Expressions:
( obj.SalesOrder.PaymentPlans.Select( c => c.InstallmentNumber).DefaultIfEmpty( 0).Max( ) + 1)

Notes

Notes for this SalesOrderPaymentPlan.

Type: string (254) nullable
Category: System
Supported Filters: NotFilterable
Supports Order By: False
Maximum Length: 254
Show in UI: HiddenByDefault

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

PaymentStartDays

Number of days until the payment becomes executable. The days are counted, starting with the date, specified by due date formation method. Required Default(0)

Type: int32
Category: System
Supported Filters: NotFilterable
Supports Order By: False
Default Value: 0
Show in UI: ShownByDefault

PaymentTermDays

Payment term in days, which are to be added to form the payment due date. 0 means that the date determined by Due_Date_Form_Method and Explicit_Payment_Due_Date is taken as due date. Required Default(0)

Type: int32
Category: System
Supported Filters: NotFilterable
Supports Order By: False
Default Value: 0
Show in UI: ShownByDefault

Back-End Default Expression:
IIF( ( ( Convert( obj.DueDateFormMethod, Int32) == 3) OrElse ( Convert( obj.DueDateFormMethod, Int32) == 4)), 0, obj.PaymentTermDays)

Front-End Recalc Expressions:
IIF( ( ( Convert( obj.DueDateFormMethod, Int32) == 3) OrElse ( Convert( obj.DueDateFormMethod, Int32) == 4)), 0, obj.PaymentTermDays)

Remainder

Indicates wheather this amount is the remainder of the document. Amount = Total amount of the sales order - explicitly specified amounts in the plan (by Amount_Percent or Amount). Required Default(false)

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

Back-End Default Expression:
IIF( ( obj.AmountPercent != null), False, obj.Remainder)

Front-End Recalc Expressions:
IIF( ( obj.AmountPercent != null), False, obj.Remainder)

Reference Details

PaymentAccount

Specifies the payment account towards which the payment is expected. null means that there is no expectation for payment account. For POS implementations, this can be used to denote the payment account in which the payment actually occurred. Filter(multi eq)

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

Back-End Default Expression:
obj.SalesOrder.PaymentAccount

Front-End Recalc Expressions:
obj.SalesOrder.PaymentAccount.IfNullThen( obj.PaymentType.DefaultPaymentAccount.IfNullThen( obj.PaymentAccount)) obj.SalesOrder.PaymentAccount

PaymentType

Specifies the expected payment type. null means that there is no expected payment type. For POS implementations, this can be used to denote the payment type which actually occurred. Filter(multi eq)

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

Back-End Default Expression:
obj.SalesOrder.PaymentType

Front-End Recalc Expressions:
obj.SalesOrder.PaymentType

SalesOrder

The to which this SalesOrderPaymentPlan belongs. Required Filter(multi eq) Owner

Type: SalesOrders
Indexed: True
Category: System
Supported Filters: Equals, EqualsIn
Filterable Reference: True
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

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_Sales_SalesOrderPaymentPlans?$top=10

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