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

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

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;"

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