Не используется фильтр

Использую очень простой метод (см. ниже)  в контексте двух событий:

1) onEntityInitialized

2) при изменении поля Account на карточке.

В первом случае формируется запрос без использования фильтра по идентификатору контрагента, во втором с фильтром. В обоих случаях "var account = this.get("Account");" успешно вычисляется. Как добиться гарантированной фильтрации в обоих случаях?

 

         setIsAffiliated: function() {
                var account = this.get("Account");
                
                var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
                    rootSchemaName: "Account"
                });
                //esq.rowCount = 1;

                esq.addColumn("IsAffiliatedLegalEntity");
                esq.filters.add("Account", esq.createColumnFilterWithParameter(
                    Terrasoft.ComparisonType.EQUAL,
                    "Id",
                    account.Id));

                esq.getEntityCollection(function(result) {
                    if (result.success) {
                        var first = result.collection.firstOrDefault();
                        if (!Ext.isEmpty(first)) {
                            var isAffil = first.get("IsAffiliatedLegalEntity");
                            this.set("IsAffiliatedLegalEntity", isAffil);
                        }
                    }
                }, this);
            }

Нравится

2 комментария
Лучший ответ

                var accVal = account.value;
                var accId = account.Id;

Нашел причину. Она в том, что возвращаются разные объекты в двух случаях, но в обоих идентификатор контрагента доступен так "account.value;"

Добрый день, Сергей!
Следует посмотреть какое значение возвращает строка  
var account = this.get("Account"); 
Если оно одно и тоже, то довольно странно, что в одном случае фильтр не используется.

                var accVal = account.value;
                var accId = account.Id;

Нашел причину. Она в том, что возвращаются разные объекты в двух случаях, но в обоих идентификатор контрагента доступен так "account.value;"

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