Переопределение addRecord детали "Адреса контрагента"
29 мая 2019 10:52
Попытался переопределить метод addRecord() вот таким образом, чтобы на деталь "адреса контрагента" нельзя было добавить адреса с одинаковыми типами. Все нормально работает, но вопрос в том - допустимо ли вот так переопределять или это плохая практика?
Добавил свой аргумент isAllowed.
addRecord: function(editPageUId, isAllowed) {
if (!isAllowed) {
var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
rootSchemaName: "AccountAddress"
});
//...фильтр
esq.getEntityCollection(function(result) {
if (result.collection.collection.length === 0) {
//Вызываю addRecord еще раз, передав в него мой аргумент
this.addRecord(editPageUId, true);
}
else {
this.showInformationDialog("Адрес с таким типом уже существует.");
}
}, this);
}
else {
this.callParent(arguments);
}
}
Нравится
2 комментария
Лучший ответ
29 мая 2019 11:14
Добрый день!
Допустимо.
Можно сделать еще так:
addRecord: function(editPageUId) {
this.someCheckMethod(function(res){
if (res) {
this.superclass.addRecord.apply(this, editPageUId);
}
}, this);
}Обратите внимание, что вам по вашей задаче еще нужно сделать проверку на редактирование адреса: чтобы нельзя было изменить тип на уже существующий.
29 мая 2019 11:14
Добрый день!
Допустимо.
Можно сделать еще так:
addRecord: function(editPageUId) {
this.someCheckMethod(function(res){
if (res) {
this.superclass.addRecord.apply(this, editPageUId);
}
}, this);
}Обратите внимание, что вам по вашей задаче еще нужно сделать проверку на редактирование адреса: чтобы нельзя было изменить тип на уже существующий.
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать