Здравствуйте!
При выборе контрагента в поле [Клиент] хотелось бы, чтобы поле [Реквизиты клиента] заполнялось автоматически, если у контрагента один реквизит. Возможно ли это сделать?
Заранее благодарю за помощь.
Нравится
5 комментариев
25 июля 2016 13:39
Настолько частая задача, что хотелось бы, чтобы её в коробку добавили.
25 июля 2016 14:00
Спасибо за Ваш комментарий. Пожелание на доработку в базовой конфигурации системы отправлено соответствующей команде разработки продукта.
25 июля 2016 15:05
ставим attributes
"CustomerBillingInfo": { dependencies: [ { columns: ["Account"], methodName: "setCustomerBillingInfo" } ] }
пишем функцию, которая делает всю работу (кроме того, есть колонка в реквизитах, которая определяет, что этот реквизит должен ставиться по умолчанию).
/** * Установка BillingInfo по условию: 1) Если у контрагента всего один BillingInfo то * 2) Вставляем его объект в BillingInfo * 3) Если больше - ищем по умолчанию */ setCustomerBillingInfo: function() { var account = this.get("Account"); if (account) { var esq = Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "AccountBillingInfo" }); esq.addColumn("Id"); esq.addColumn("Name"); esq.addColumn("UsrDefault"); esq.filters.add("AccountFilter", this.Terrasoft.createColumnFilterWithParameter( this.Terrasoft.ComparisonType.EQUAL, "Account", account.value)); esq.getEntityCollection(function(response) { if (response && response.success) { var collection = response.collection; if (collection && collection.getCount() > 0) { var items = collection.getItems(); if (items.length === 1) { var item = items[0]; this.set("CustomerBillingInfo", {value: item.get("Id"), displayValue: item.get("Name")}); } else { items.forEach(function(item) { if (item.get("UsrDefault")) { this.set("CustomerBillingInfo", {value: item.get("Id"), displayValue: item.get("Name")}); return; } }, this); } } } }, this); } }
25 июля 2016 17:06
Владимир, благодарю! Я был на правильном пути, но мне не хватало вот этой строчки кода:
this.set("CustomerBillingInfo", {value: item.get("Id"), displayValue: item.get("Name")});
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать