Фильтры
editRecord: function(record) {
				const activeRow = record || this.getActiveRow();
				if (!activeRow) {
					return;
				}
				if (!this.getIsCardValid()) {
					return;
				}
				const primaryColumnValue = activeRow.get("NrbPoint.NrbObject").value;
				this.openCardInChain({
					id: primaryColumnValue,
					sandbox: this.sandbox,
					schemaName: "NrbObjectPage",
					operation: ConfigurationEnums.CardStateV2.EDIT,
					moduleId: this.sandbox.id + "_" + "NrbObjectPage",
					renderTo: "centerPanel",
					historyState: this.sandbox.publish("GetHistoryState")
				});
			},

 

Нравится

Поделиться

0 комментариев
Показать все комментарии
define("InvoicePageV2", ["InvoiceConfigurationConstants"], function(InvoiceConfigurationConstants) {
    return {
        entitySchemaName: "Invoice",
        attributes: {
            "IsModelItemsEnabled": {
                dataValueType: Terrasoft.DataValueType.BOOLEAN,
                value: true,
                dependencies: [{
                    columns: ["PaymentStatus"],
                    methodName: "setCardLockoutStatus"
                }]
            }
        },
        methods: {
            getDisableExclusionsColumnTags: function() {
                return ["PaymentStatus"];
            },
 
            getDisableExclusionsDetailSchemaNames: function() {
                return ["ActivityDetailV2"];
            },
            setCardLockoutStatus: function() {
                var state = this.get("PaymentStatus");
                if (state.value === InvoiceConfigurationConstants.Invoice.PaymentStatus.Paid) {
                    this.set("IsModelItemsEnabled", false);
                } else {
                    this.set("IsModelItemsEnabled", true);
                }
            },
            onEntityInitialized: function() {
                this.callParent(arguments);
                this.setCardLockoutStatus();
            }
        },
        details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
        diff: /**SCHEMA_DIFF*/[
            {
                "operation": "merge",
                "name": "CardContentWrapper",
                "values": {
                    "generator": "DisableControlsGenerator.generatePartial"
                }
            }
        ]/**SCHEMA_DIFF*/
    };
});

 

Нравится

Поделиться

0 комментариев
Показать все комментарии
			/**
			* Блокирует открытие карточки редактирования.
			*/
			editRecord: Terrasoft.emptyFn,

 

Нравится

Поделиться

0 комментариев
Показать все комментарии
//атрибуты
"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);
},

 

Нравится

Поделиться

2 комментария

а как это выглядит? :)

Присоединяюсь к вопросу выше)

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

Важным критерием при выборе программы лояльности служит удобный инструмент настроек акций.

Собственно настройка акций – это сердце программы лояльности. В этом разделе мы формируем то самое предложение, благодаря которому клиенты остаются с нами.

В таком деле главное - гибкость, которая дает широкие возможности для формирования интересного предложения, ну и конечно выставление ограничений, чтобы для компании это предложение тоже оставалось выгодным.

В новом релизе 2.18 Loyalty Creatio была поставлена цель – сделать возможности для настройки поощрений клиентов еще более гибкими и удобными, чтобы продукт был наиболее применимым к бизнесу наших клиентов.

Подробнее узнать о то, что мы подготовили можно в статье.

Нравится

Поделиться

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