R30127 SalesOrder - Set Pos Attributes

Code R30127
Entity Crm.Sales.SalesOrders Entity
Name SetPosAttributes
Attribute PosLocation, PosOperator, PosTerminal, PosFiscalPrinter
Layer Front-End
Events AttributeChanged(EnterpriseCompanyLocation)
Priority Normal
Modify YES
Applicable Legislations ALL // no condition needed
Action The rule sets values in PosLocation, PosOperator, PosTerminal and PosFiscalPrinter, according to the following conditions:

// The order of execution of the actions must be retained!

1) If ((PosLocations[(EnterpriseCompanyLocation = SalesOrder.EnterpriseCompanyLocation) && (Active = True)].Count() == 1))

, set value: PosLocation = PosLocations[(EnterpriseCompanyLocation = SalesOrder.EnterpriseCompanyLocation) && (Active = True)]





(2) If ((PosLocation != NULL) && (PosOperators[(User = CurrentUser*) && (PosLocation = SalesOrder. PosLocation) && (Active = True) && (StartingDate >= CurrentDate) && ((CurrentDate <= TerminationDate) || (TerminationDate == NULL))].Count() == 1))

, set value: PosOperator = PosOperator [(User = CurrentUser*) && (PosLocation = SalesOrder. PosLocation) && (Active = True) && (StartingDate >= CurrentDate) && ((CurrentDate <= TerminationDate) || (TerminationDate == NULL))]

* CurrentUser - the user that is currently logged into the system.





(3) If ((PosLocation != NULL) && (PosOperator != NULL))

, set value: PosTerminal = PosOperator.DefaultPosTerminal





(4) If ((PosTerminal != NULL) && (PosTerminal.DefaultPOSFiscalDevice !=NULL))

, set value: PosFiscalPrinter = PosTerminal.DefaultPOSFiscalDevice





else if ((PosTerminal != NULL) && (PosDevices[(PosTerminal = SalesOrder.PosTerminal) && (Active = True) && (DeviceType = FiscalPrinter)].Count() = =1 ))

, set value:  PosFiscalPrinter = PosDevice[(PosTerminal = SalesOrder.PosTerminal) && (Active = True) && (DeviceType = FiscalPrinter)
Description The rule successively sets values in the POS Location, POS Operator, POS Terminal and POS FiscalPrinter fields of the Sales Order when the Enterprise Company Location is set/changed and if the following conditions are met:

(1) POS Location - if there is exactly one active POS Location with the same Enterprise Company Location as the Sales Order's Enterprise Company Location.

(2) POS Operator - if the field POS Location has a value and for the user that is currently logged into the system there is only one Active (and according to the Starting and Termination dates and the Active check-mark) POS Operator with the Sales Order's POS Location.

(3) POS Terminal - with the value of the POS Operator's Default Pos Terminal - if the fields POS Location and POS Operator have values.

(4) POS Fiscal Printer - if the Sales Order's POS Terminal has a value and it has a Default POS Fiscal Device OR there is only one Active POS Device with Fiscal Printer type for this POS Terminal.
Message -
Version Introduced: 2019.1

Updated: 2020.1 - in Action (4) is added a condition by POS Terminal's Default POS Fiscal Device
Revocable YES

* For more information about the Business Rules Documentation Template and a short explanation of each column, see topic System Business Rules.