//атрибуты "NrbContractNumber": { "contentType": this.Terrasoft.ContentType.SEARCHABLE_TEXT, "searchableTextConfig": { "listAttribute": "ContractNumberSearchList", "prepareListMethod": "prepareContractNumberSearchList", "listViewItemRenderMethod": "onContractNumberSearchListViewItemRender", "itemSelectedMethod": "onContractSearchItemSelected" }, }, "ContractNumberSearchList": { "dataValueType": Terrasoft.DataValueType.COLLECTION }, //методы init: function () { this.callParent(arguments); this.set("ContractNumberSearchList", new Terrasoft.Collection()); }, prepareContractNumberSearchList: function (filterValue) { if (filterValue.length >= 3) { this.searchContractByNumber(filterValue, this.loadSearchList, this); } else { this.clearSearchList("ContractNumberSearchList"); } }, searchContractByNumber: function (contractNumber, callback, scope) { const esq = Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "NrbContract", rowCount: 10 }); esq.addColumn("Id", "Id"); esq.addColumn("NrbNumber", "NrbNumber"); esq.addColumn("NrbAccount.Id", "AccountId"); esq.addColumn("NrbAccount.Name", "AccountName"); esq.addColumn("NrbAccount.NrbKpp", "AccountKpp"); esq.addColumn("NrbAccount.NrbTIN", "AccountTin"); esq.addColumn("NrbAccount.NrbState.Name", "AccountState"); esq.filters.addItem(Terrasoft.createColumnIsNotNullFilter("NrbAccount")); esq.filters.addItem(Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.START_WITH, "NrbNumber", contractNumber)); esq.getEntityCollection(function (response) { Ext.callback(callback, scope, [response, "ContractNumberSearchList"]); }, scope || this); }, loadSearchList: function (response, listName) { var list = this.get(listName); list.clear(); list.loadAll(response.collection); }, onContractNumberSearchListViewItemRender: function (item) { if (Ext.isEmpty(item)) { return; } item.displayValue = item.values.NrbNumber; var itemValue = item.value = item.values.Id; var values = [ item.values.NrbNumber, item.values.AccountName, item.values.AccountTin, item.values.AccountKpp, item.values.AccountState ].filter(function (item) { return !Ext.isEmpty(item); }); var tpl = "<div class=\"listview-item-info\" data-value=\"{0}\"> {1} </div>"; item.customHtml = item.values.customHtml = this.Ext.String.format(tpl, itemValue, values.join(' | ')); }, onContractSearchItemSelected: function (contract) { if (Ext.isEmpty(contract)) { return; } this.loadLookupDisplayValue("Account", contract.values.AccountId); this.loadLookupDisplayValue("NrbContract", contract.values.Id); this.set("NrbName", contract.values.AccountName); this.set("NrbInn", contract.values.AccountTin); this.set("NrbKpp", contract.values.AccountKpp); },
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать