Есть 3 поля:
[сумма], [процент], [комиссия]
нужно, чтобы при изменении суммы или процента прересчитывалась комиссия, и при изменении комиссии пересчитывался процент.
комиссия = сумма * процент / 100
процент = комиссия * 100 / сумма
{
type: Terrasoft.ViewModelSchemaItem.ATTRIBUTE,
name: 'Amount',
columnPath: 'Amount',
dataValueType: Terrasoft.DataValueType.FLOAT,
visible: true
},
{
type: Terrasoft.ViewModelSchemaItem.ATTRIBUTE,
name: 'Percent',
columnPath: 'Percent',
dataValueType: Terrasoft.DataValueType.FLOAT,
visible: true,
dependencies: ['Commission'],
methodName: 'OpportunityPercentGenerate'
},
{
type: Terrasoft.ViewModelSchemaItem.ATTRIBUTE,
name: 'Commission',
columnPath: 'Commission',
dataValueType: Terrasoft.DataValueType.FLOAT,
visible: true,
dependencies: ['Amount', 'Percent'],
methodName: 'OpportunityCommissionGenerate'
}
type: Terrasoft.ViewModelSchemaItem.ATTRIBUTE,
name: 'Amount',
columnPath: 'Amount',
dataValueType: Terrasoft.DataValueType.FLOAT,
visible: true
},
{
type: Terrasoft.ViewModelSchemaItem.ATTRIBUTE,
name: 'Percent',
columnPath: 'Percent',
dataValueType: Terrasoft.DataValueType.FLOAT,
visible: true,
dependencies: ['Commission'],
methodName: 'OpportunityPercentGenerate'
},
{
type: Terrasoft.ViewModelSchemaItem.ATTRIBUTE,
name: 'Commission',
columnPath: 'Commission',
dataValueType: Terrasoft.DataValueType.FLOAT,
visible: true,
dependencies: ['Amount', 'Percent'],
methodName: 'OpportunityCommissionGenerate'
}
this.methods.OpportunityCommissionGenerate = function() {
var amount = this.get('Amount');
var percent = this.get('Percent');
if (Ext.isEmpty(amount) || Ext.isEmpty(percent)) {
this.set('Commission', 0);
return;
}
var commission = ((amount * percent) / 100);
this.set('Commission', commission);
};
this.methods.OpportunityPercentCenerate = function() {
var amount = this.get('Amount');
var commission = this.get('Commission');
if (Ext.isEmpty(amount) || Ext.isEmpty(commission)) {
this.set('Percent', 0);
return;
}
var percent = ((commission * 100) / amount);
this.set('Percent', percent);
};
var amount = this.get('Amount');
var percent = this.get('Percent');
if (Ext.isEmpty(amount) || Ext.isEmpty(percent)) {
this.set('Commission', 0);
return;
}
var commission = ((amount * percent) / 100);
this.set('Commission', commission);
};
this.methods.OpportunityPercentCenerate = function() {
var amount = this.get('Amount');
var commission = this.get('Commission');
if (Ext.isEmpty(amount) || Ext.isEmpty(commission)) {
this.set('Percent', 0);
return;
}
var percent = ((commission * 100) / amount);
this.set('Percent', percent);
};
работает только первое условие (комиссия = сумма * процент / 100);
Что нужно еще сделать чтобы работало все?
Нравится
2 комментария
24 июля 2014 16:07
Здравствуйте, Василий.
Необходимо без опечатки назвать метод. У вас в свойстве поля:
OpportunityPercentGenerate
А определен:
OpportunityPercentCenerate
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать