Добрый день!
Подскажите, пожалуйста, может кто-нибудь сталкивался с такой проблемой..
В системе есть объект Product (Продукт) и Tax (Налог). У продукта есть поле "Тип" (Type), и у налога тоже "Тип продукта" (UsrTypeProduct). То есть налог зависит от типа продукта.
Нам нужно, чтобы при выборе продукта с определенным типом, в поле-справочник (Налог) подставлялся налог, соответствующий этому типу продукции.
Я попробовала сделать следующим образом (с помощью кода подстановки):
"Tax": {
dependencies: [
{
columns: ["Product"],
methodName: "changeTax"
}
]
},
"Product": {
lookupListConfig: {
columns: ["Type"]
}
}
},
methods: {
changeTax: function() {
var Product = this.get("Product");
if (Product.Type.displayValue === "Спермопродукция") {
var ProductType=Product.Type;
var esq = Ext.create('Terrasoft.EntitySchemaQuery', {
rootSchemaName: "Tax"
});
var self = this;
esq.addColumn("Id");
esq.addColumn("UsrTypeProduct");
esq.filters.add("Id", Terrasoft.createColumnFilterWithParameter(
Terrasoft.ComparisonType.EQUAL, "UsrTypeProduct", ProductType.value));
esq.getEntityCollection(function(result) {
if (result.success) {
Terrasoft.each(result.collection.getItems(), function(item) {
self.set("Tax", item.get("Id"));
});
}
});
}
}
}
Но в поле "Налог" подставляется undefined, он не может однозначно определить налог как я понимаю.
Сюда больше подходит фильтрация скорее всего, но хотелось бы, чтобы сразу подставлялось значение в список.
Нравится
Настя, попробуйте добавить в esq вместо колонки "UsrTypeProduct" колонку "Name". Колонку типа продукта добавлять нет необходимости, так как она нужна Вам только для фильтрации.
Результат запроса попробуйте сохранять в атрибут схемы в виде:
self.set("Tax", { value: item.get("Id"), displayValue: item.get("Name") });