Добрый день!
Возник вопрос как правильно написать бизнес правило, чтобы оно корректно работало при добавлении и изменении записей в редактируемом реестре.
attributes: {
"Order": {
lookupListConfig: {
columns: [
"Account.SxNAVCode", "SxShippingType.Code",
"Owner.SxNAVCode","SxContract.SxNAVCode",
"Date","Account.SxCFO.Code","Account.Id","Account.SxTradeChain.SxNAVCode", "Account.SxTradeChain.SxCFO.Code"
,"Account.SxSalesOutletType","SxPaymentFormula","SxPaymentFormula.SxPaymentDelay","SxWarehouse.SxCode"
]
}
},
.........................................
//в секции rules
"SxDesiredDiscount": {
"BindParameterEnabledToPaymentDelay": {
"ruleType": BusinessRuleModule.enums.RuleType.BINDPARAMETER,
"property": BusinessRuleModule.enums.Property.ENABLED,
"conditions": [
{
"leftExpression": {
"type": BusinessRuleModule.enums.ValueType.ATTRIBUTE,
"attribute": "Order.SxPaymentFormula.SxPaymentDelay"
attributePath:""
},
"comparisonType": Terrasoft.ComparisonType.LESS,
"rightExpression": {
"type": BusinessRuleModule.enums.ValueType.CONSTANT,
"value": 45
}
}
]
}
},
в детали также добавлены колонки
getGridDataColumns: function() {
var config = this.callParent(arguments);
config["Order.Account"]= { path: "Order.Account" };
config["Order.Date"]= { path: "Order.Date" };
config["Order.SxPaymentFormula"]= { path: "Order.SxPaymentFormula" };
config["Order.SxPaymentFormula.SxPaymentDelay"]= { path: "Order.SxPaymentFormula.SxPaymentDelay" };
config["Order.Account.SxSalesOutletType"]= { path: "Order.Account.SxSalesOutletType" };
return config;
}
Проблема в том, что при добавлении требуемое значение при добавлении можно получить как:
this.get("Order")["SxPaymentFormula.SxPaymentDelay"]
а при изменении:
this.get("Order.SxPaymentFormula.SxPaymentDelay"));
Следовательно есть разница в работе правил.
Подскажите пожалуйста, как решить данную проблему? Как верно сформировать конфиг, чтоб он всегда был одинаковым?