Добрый день.
Подскажите, есть ли возможность создавать заказ из лида и переносить все продукты из лида в заказ?
Нравится
Ваша задача решается примерно так:
Код написал, но не проверял. Чуть-что, напишите.
Все, что вам остается, это добавить кнопку куда хотите на страницу Лида и вызвать по кнопке этот код.
createOrderFromLead: function() { var leadId = this.get("Id"); var leadName = this.get("LeadName"); var orderGenerateId = Terrasoft.generateGUID(); var batchQuery = Ext.create("Terrasoft.BatchQuery"); var createOrder = Ext.create("Terrasoft.InsertQuery", { rootSchemaName: "Order" }); createOrder.setParameterValue("Id", orderGenerateId, Terrasoft.DataValueType.GUID); createOrder.setParameterValue("Number", leadName, Terrasoft.DataValueType.TEXT); batchQuery.add(createOrder); var esq = Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "LeadProduct" }); esq.addColumn("Product"); esq.filters.add(esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Id", leadId)); esq.getEntityCollection(function(response) { if (response.success) { response.collection.each(function(item) { var productId = item.get("Id"); var insertProduct = Ext.create("Terrasoft.InsertQuery", { rootSchemaName: "OrderProduct" }); insertProduct.setParameterValue("Product", productId, Terrasoft.DataValueType.TEXT); insertProduct.setParameterValue("Order", orderGenerateId, Terrasoft.DataValueType.GUID); batchQuery.add(insertProduct); batchQuery.execute(); }); } else { batchQuery.execute(); } }, this); }
Можно создать кнопочку а-ля "Создать заказ" и под нее подвязать процесс, который будет читать "Продукты в лиде", далее элементом "Добавить данные" создать Заказ и наполнить "Продукты в заказе" из лида. Или Вы спрашиваете есть ли какое-нибудь готовое решение в системе? Насколько мне известно, то такого нет.
Можно создать продажу по лиду, а потом заказ по продаже.
В таком случае нужно самостоятельно сделать или заказать нужную логику, как описал Alex Zaslavsky.
Ваша задача решается примерно так:
Код написал, но не проверял. Чуть-что, напишите.
Все, что вам остается, это добавить кнопку куда хотите на страницу Лида и вызвать по кнопке этот код.
createOrderFromLead: function() { var leadId = this.get("Id"); var leadName = this.get("LeadName"); var orderGenerateId = Terrasoft.generateGUID(); var batchQuery = Ext.create("Terrasoft.BatchQuery"); var createOrder = Ext.create("Terrasoft.InsertQuery", { rootSchemaName: "Order" }); createOrder.setParameterValue("Id", orderGenerateId, Terrasoft.DataValueType.GUID); createOrder.setParameterValue("Number", leadName, Terrasoft.DataValueType.TEXT); batchQuery.add(createOrder); var esq = Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "LeadProduct" }); esq.addColumn("Product"); esq.filters.add(esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Id", leadId)); esq.getEntityCollection(function(response) { if (response.success) { response.collection.each(function(item) { var productId = item.get("Id"); var insertProduct = Ext.create("Terrasoft.InsertQuery", { rootSchemaName: "OrderProduct" }); insertProduct.setParameterValue("Product", productId, Terrasoft.DataValueType.TEXT); insertProduct.setParameterValue("Order", orderGenerateId, Terrasoft.DataValueType.GUID); batchQuery.add(insertProduct); batchQuery.execute(); }); } else { batchQuery.execute(); } }, this); }