Как создать три связанных между собой поля

Есть 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'
}

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);
};

работает только первое условие (комиссия = сумма * процент / 100);

Что нужно еще сделать чтобы работало все?

Нравится

2 комментария

Здравствуйте, Василий.

Необходимо без опечатки назвать метод. У вас в свойстве поля:
OpportunityPercentGenerate
А определен:
OpportunityPercentCenerate

Показать все комментарии