Commit 8d82a7ca authored by Olessya Khussainova's avatar Olessya Khussainova

CRM9, CRM10, CRM14

parent 0a0d0a5d
......@@ -15,11 +15,17 @@ crm/methodologist-manual/Makefile -text
crm/methodologist-manual/conf/html/settings.xsl -text
crm/methodologist-manual/conf/pandoc/book.docbook -text
crm/methodologist-manual/conf/vcs/insert-revision-and-build-date.xsl -text
crm/methodologist-manual/resources/img/activity_edit_1.png -text
crm/methodologist-manual/resources/img/activity_edit_2.png -text
crm/methodologist-manual/resources/img/activity_read_1.png -text
crm/methodologist-manual/resources/img/activity_read_2.png -text
crm/methodologist-manual/resources/img/add_notification.png -text
crm/methodologist-manual/resources/img/canban.png -text
crm/methodologist-manual/resources/img/canban_2.png -text
crm/methodologist-manual/resources/img/configuration-2016-12-08_05-17-41.xml -text
crm/methodologist-manual/resources/img/configuration-2016-12-12_10-45-49.xml -text
crm/methodologist-manual/resources/img/connections.png -text
crm/methodologist-manual/resources/img/crm.png -text
crm/methodologist-manual/resources/img/dfd.png -text
crm/methodologist-manual/resources/img/eventChooser.png -text
crm/methodologist-manual/resources/img/funnel_1.png -text
......@@ -43,10 +49,14 @@ crm/methodologist-manual/src/crm_consist/marketing_funnel.md -text
crm/methodologist-manual/src/crm_consist/marketing_pipeline.md -text
crm/methodologist-manual/src/crm_consist/marketing_sidePannel.md -text
crm/methodologist-manual/src/crm_consist/registries.md -text
crm/methodologist-manual/src/crm_consist/registries_group.md -text
crm/methodologist-manual/src/crm_consist/reminder.md -text
crm/methodologist-manual/src/crm_consist/user_components.md -text
crm/methodologist-manual/src/crm_consist/user_components_button.md -text
crm/methodologist-manual/src/crm_consist/user_components_connection.md -text
crm/methodologist-manual/src/crm_consist/user_components_dyn_table.md -text
crm/methodologist-manual/src/crm_consist/user_components_registryChooser.md -text svneol=unset#text/plain
crm/methodologist-manual/src/crm_consist/user_modules.md -text
crm/methodologist-manual/src/crm_install.md -text
crm/methodologist-manual/src/index.md -text
crm/spec/Makefile -text
......
......@@ -2,26 +2,32 @@
Конфигурация Synergy CRM включает в себя преднастроенные элементы:
- группы пользователей:
- Все маркетологи
- Маркетологи-менеджеры
- Маркетологи-специалисты
* группы пользователей:
* Все маркетологи
* Маркетологи-менеджеры
* Маркетологи-специалисты
- [счетчики](#counters):
- [Счетчик каталога товаров и услуг](#countersCatalog)
* [Счетчики](#counters)
- [шаблоны номеров](#pattern_number):
- [Номер товара в каталоге](#pattern_number_Catalog)
* [Шаблоны номеров](#pattern_number)
- [формы](#forms)
* [Формы](#forms)
- [реестры](#registries)
* [Пользовательские компоненты](#user_modules)
- [справочники](#dictionaries)
* [Пользовательские компоненты на форме](#user_components)
- [пользовательские компоненты](#user_components)
* [Внешние модули-компоненты](#vmc)
- [ВМК](#vmc)
* [Реестры](#registries)
* [Группы реестров](#registriesGroup)
* [Справочники](#dictionaries)
* [Создание документов](#createDoc)
* [Внешние модули](#externalModules)
### Счетчики {#counters}
......@@ -58,9 +64,25 @@
+--------------------------+----------------------------------------+
<#include "crm_consist/forms.md">
<#include "crm_consist/user_modules.md">
<#include "crm_consist/registries.md">
<#include "crm_consist/registries_group.md">
<#include "crm_consist/dictionaries.md">
<#include "crm_consist/user_components.md">
<#include "crm_consist/reminder.md">
<#include "crm_consist/create_document.md">
### Внешние модули {#externalModules}
#### Маркетинг {#marketing}
+--------------------------------------------------------+----------------------------------------------------------------------------------------+
| Свойство | Значение |
+========================================================+========================================================================================+
| Код | crm_extModule |
+--------------------------------------------------------+----------------------------------------------------------------------------------------+
| Адрес приложения | [URL](http://tdd.lan.arta.kz/docs/cases/crm/additional/html/crm_without_data.html)/crm |
+--------------------------------------------------------+----------------------------------------------------------------------------------------+
![Иконка](resources/img/crm.png)
<#include "crm_consist/user_components.md">
<#include "crm_consist/reminder.md">
......@@ -5,6 +5,7 @@
* [Статусы аккаунта](#dictionaryAccountStatus)
* [Статусы контакта](#dictionaryContactStatus)
* [Типы мероприятий](#dictionaryEventType)
* [Типы активностей](#dictionaryActivityType)
* [Телефон](#dictionaryPhone)
* [Адрес](#dictionaryAddress)
* [Почта](#dictionaryEmail)
......@@ -70,27 +71,27 @@
Если некоторые параметры не были указаны, то им присваиваются значения
по умолчанию:
* не указан `crm_dict_leadStatus_quality`:
* `crm_dict_leadStatus_quality=1`
* `crm_dict_leadStatus_end=0`
* не указан crm_dict_leadStatus_quality:
* crm_dict_leadStatus_quality=1
* crm_dict_leadStatus_end=0
* не указан `crm_dict_leadStatus_end`:
* не указан crm_dict_leadStatus_end:
* crm_dict_leadStatus_end=0
* не указаны `crm_dict_leadStatus_quality` и `crm_dict_leadStatus_end`:
* `crm_dict_leadStatus_quality=1`
* `crm_dict_leadStatus_end=0`
* не указаны crm_dict_leadStatus_quality и crm_dict_leadStatus_end:
* crm_dict_leadStatus_quality=1
* crm_dict_leadStatus_end=0
* не указан `crm_dict_leadStatus_color`:
* `crm_dict_leadStatus_color=#f3c02d`
* не указан crm_dict_leadStatus_color:
* crm_dict_leadStatus_color=#f3c02d
Запись с данными `crm_dict_leadStatus_quality=1`, `crm_dict_leadStatus_end=1`
Запись с данными crm_dict_leadStatus_quality=1 и crm_dict_leadStatus_end=1
должна быть одна. Если таких записей несколько, то данные значения
применяются только для первой созданной записи. Остальным записям из списка
присваивается значение `crm_dict_leadStatus_end=0`.
присваивается значение crm_dict_leadStatus_end=0.
Список статусов лида, для которых `crm_dict_leadStatus_value=0` либо не
указан вовсе, сортируются по параметру `crm_dict_leadStatus_name` в локали С
Список статусов лида, для которых crm_dict_leadStatus_value=0 либо не
указан вовсе, сортируются по параметру crm_dict_leadStatus_name в локали С
в алфавитном порядке.
#### Статусы сделки {#dictionaryDealStatus}
......@@ -211,6 +212,44 @@
| Исходящий маркетинг | 2 |
+--------------------------------+--------------------------------+
#### Типы мероприятий {#dictionaryActivityType}
Код справочника: crm_dict_activityType
Поля справочника:
+--------------------------------+-------------------+--------------------------+------------------+
| **Код** | **Имя** | **Комментарий** | **Переводить** |
+================================+===================+==========================+==================+
| crm_dict_activityType_type | Тип | | Да |
+--------------------------------+-------------------+--------------------------+------------------+
| crm_dict_activityType_value | Порядковый номер | | Нет |
| | пункта в | | |
| | выпадающем списке | | |
+--------------------------------+-------------------+--------------------------+------------------+
| crm_dict_activityType_icon | Пиктограмма | Путь до пиктограммы | Нет |
| | |в папке images/activities | |
+--------------------------------+-------------------+--------------------------+------------------+
Данные справочника по умолчанию:
+--------------------------------+--------------------------------+--------------------------------------+
| **Тип** | **Порядковый номер пункта в** | **Пиктограмма** |
| | **выпадающем списке** | |
+================================+================================+======================================+
| Отправил документ | 1 | images/activities/sendDocument.png |
+--------------------------------+--------------------------------+--------------------------------------+
| Позвонил | 2 | images/activities/call.png |
+--------------------------------+--------------------------------+--------------------------------------+
| Выставил счет | 3 | images/activities/makeOutInvoice.png |
+--------------------------------+--------------------------------+--------------------------------------+
| Встретился | 4 | images/activities/meeting.png |
+--------------------------------+--------------------------------+--------------------------------------+
| Создал еще один лид | 5 | images/activities/newLead.png |
+--------------------------------+--------------------------------+--------------------------------------+
| Поздравил с праздником | 6 | images/activities/event.png |
+--------------------------------+--------------------------------+--------------------------------------+
#### Телефон {#dictionaryPhone}
Код справочника: crm_dict_phone.
......@@ -241,7 +280,11 @@
+--------------------------------+--------------------------------+
| Домашний | 4 |
+--------------------------------+--------------------------------+
| Другой | 5 |
| Telegram | 5 |
+--------------------------------+--------------------------------+
| Viber | 6 |
+--------------------------------+--------------------------------+
| Другой | 7 |
+--------------------------------+--------------------------------+
#### Адрес {#dictionaryAddress}
......@@ -330,19 +373,22 @@
+================================+================================+
| Facebook | 1 |
+--------------------------------+--------------------------------+
| LinkedIn | 2 |
| Facebook Messenger | 2 |
+--------------------------------+--------------------------------+
| Twitter | 3 |
| Skype | 3 |
+--------------------------------+--------------------------------+
| Instagram | 4 |
| Twitter | 4 |
+--------------------------------+--------------------------------+
| VK | 5 |
| Instagram | 5 |
+--------------------------------+--------------------------------+
| Behance | 6 |
| LinkedIn | 6 |
+--------------------------------+--------------------------------+
| Другой | 7 |
| VK | 7 |
+--------------------------------+--------------------------------+
| Behance | 8 |
+--------------------------------+--------------------------------+
| Другой | 9 |
+--------------------------------+--------------------------------+
#### Действия напоминаний {#dictionaryremindActions}
......@@ -435,6 +481,3 @@
+--------------------------------+--------------------------------+
| г. Шымкент | 16 |
+--------------------------------+--------------------------------+
### Формы {#forms}
- [Маркетинговое мероприятие](#formEvent)
- [Лид](#formLead)
- [Сделка](#formDeal)
- [Аккаунт](#formAccount)
- [Контакт](#formContact)
- [Активность лида](#formLeadActivity)
- [Активность сделки](#formDealActivity)
- [% комиссии](#formComission)
- [Товар (услуга)](#formItem)
- [Цена](#formPrice)
- [Тема сотрудничества](#formTheme)
[Шаблоны документов](#formsTemplates):
- [Договор поставки (единовременная оплата)](#formContractDeliveryAll)
- [Договор поставки (оплата частями)](#formContractDeliveryPart)
- [Акт приема-передачи товара](#formCertificate)
- [Коммерческое предложение](#formOffer)
* [Маркетинговое мероприятие](#formEvent)
* [Лид](#formLead)
* [Сделка](#formDeal)
* [Аккаунт](#formAccount)
* [Контакт](#formContact)
* [% комиссии](#formComission)
* [Тема сотрудничества](#formTheme)
* [Товар (услуга)](#formItem)
* [Цена](#formPrice)
* [Договор поставки (единовременная оплата)](#formContractDeliveryAll)
* [Договор поставки (оплата частями)](#formContractDeliveryPart)
* [Коммерческое предложение](#formOffer)
* [Акт приема-передачи товара](#formCertificate)
#### Маркетинговое мероприятие {#formEvent}
......@@ -47,7 +29,7 @@
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Стоимость** | числовое поле | crm_form_event_main_cost |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Мероприятие** | ссылка | crm_form_event_main_event |
| **Мероприятие** | ссылка на портфель / проект | crm_form_event_main_event |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Комментарий** | многострочное поле | crm_form_event_main_comment |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
......@@ -67,10 +49,16 @@
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Источник лида** | ссылка на реестр "Контакт" | crm_form_lead_main_leadSource |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Сделка** | ссылка на реестр "Сделка" | crm_form_lead_main_deal |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Контакт** | пользовательский компонент на реестр "Контакт" | crm_form_lead_main_contact |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Связь с контактом из интерфейса** | пользовательский компонент функции связи с контактом | crm_form_lead_main_contactConnection |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Аккаунт** | пользовательский компонент на реестр "Аккаунт" | crm_form_lead_main_account |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Связь с контактом из интерфейса** | пользовательский компонент функции связи с аккаунтом | crm_form_lead_main_accountConnection |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Сотрудничество** | динамическая таблица | crm_form_lead_deals |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Тема сотрудничества | ссылка на реестр "Темы сотрудничества" | crm_form_lead_deals_theme |
......@@ -83,8 +71,22 @@
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Ответственный менеджер** | выбор пользователя | crm_form_lead_responsibleManager_responsible |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Активность** | пользовательский компонент на реестр "Активность лидов" | crm_form_lead_activity_activity |
| **Активность** | пользовательская динамическая таблица | crm_form_lead_activity_table |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Пиктограмма типа активности | изображение (из справочника "crm_dict_activityType") | crm_form_lead_activity_icon |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Тип активности | выпадающий список (справочника "crm_dict_activityType") | crm_form_lead_activity_type |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Комментарий | однострочное поле | crm_form_lead_activity_comment |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Дата | дата | crm_form_lead_activity_date |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
*Поле "Сделка"*:
* Флаг "Заблокировать от изменений пользователем" включен.
* По умолчанию поле пустое.
*%кнопка_создания_сделки%*:
......@@ -92,6 +94,16 @@
справочника [crm_dict_leadStatus](#dictionaryLeadStatus), у которой
crm_dict_leadStatus_end=1.
*Поле "Пиктограмма типа активности"*:
* текущее изображение зависит от выбранного значения в выпадающем списке
"Тип активности" согласно полю crm_dict_activityType_icon справочника
[crm_dict_activityType](#dictionaryActivityType).
*Поле "Дата"*:
* Флаг "Заполнять текущей датой/временем" включен.
#### Сделка {#formDeal}
Код формы: crm_form_deal.
......@@ -103,17 +115,23 @@
+========================================================+===============================================================+========================================================+
| **Лид** | ссылка на реестр "Лид" | crm_form_deal_main1_lead |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Тема** | выпадающий список | crm_form_deal_main2_theme |
| **Тема** | ссылка на реестр "Темы сотрудничества" | crm_form_deal_main2_theme |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Описание** | многострочное поле | crm_form_deal_main2_info |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Заказ** | динамическая таблица | crm_form_deal_order |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Товар | выпадающий список | crm_form_deal_order_orderList |
| № | однострочное поле | crm_form_deal_order_number |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Количество | числовое поле | crm_form_deal_order_orderAmount |
| Наименование товара | ссылка на реестр "Прайс-лист" | crm_form_deal_order_orderList |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Сумма | числовое поле | crm_form_deal_order_total |
| Ед.изм. | однострочное поле | crm_form_deal_order_unit |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Количество | числовое поле | crm_form_deal_order_amount |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Цена за ед. | числовое поле | crm_form_deal_order_price |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Сумма, тенге | числовое поле | crm_form_deal_order_total |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Бюджет** | числовое поле | crm_form_deal_main3_budget |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
......@@ -131,8 +149,20 @@
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Ответственный менеджер** | выбор пользователя | crm_form_deal_responsibleManager_responsible |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Активность** | пользовательский компонент на реестр "Активность сделки" | crm_form_deal_activity |
| **Активность** | пользовательская динамическая таблица | crm_form_deal_activity_table |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Пиктограмма типа активности | изображение (из справочника "crm_dict_activityType") | crm_form_deal_activity_icon |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Тип активности | выпадающий список (справочника "crm_dict_activityType") | crm_form_deal_activity_type |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Комментарий | однострочное поле | crm_form_deal_activity_comment |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Дата | дата | crm_form_deal_activity_date |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
*Поле "Лид"*:
* Флаг "Заблокировать от изменений пользователем" включен.
*Поле "Сумма"*:
......@@ -153,6 +183,16 @@
* Поле отображается только в случае, если поле "Статус" имеет значение
"Отказ".
*Поле "Пиктограмма типа активности"*:
* текущее изображение зависит от выбранного значения в выпадающем списке
"Тип активности" согласно полю crm_dict_activityType_icon справочника
[crm_dict_activityType](#dictionaryActivityType).
*Поле "Дата"*:
* Флаг "Заполнять текущей датой/временем" включен.
#### Аккаунт {#formAccount}
Код формы: crm_form_account.
......@@ -200,7 +240,7 @@
+--------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------+
| Тип социальной сети | выпадающий список (справочник *crm_dict_socialNetworks*) | crm_form_account_socialNetworks_socialNetworksCombo |
+--------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------+
| Социальная сеть | ссылка | crm_form_account_socialNetworks_socialNetworks |
| Социальная сеть | однострочное поле | crm_form_account_socialNetworks_socialNetworks |
+--------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------+
| **Материнский аккаунт** | ссылка на реестр *Аккаунт* | crm_form_account_parentAccount_parentAccount |
+--------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------+
......@@ -256,59 +296,11 @@
+--------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------+
| Тип социальной сети | выпадающий список (справочник *crm_dict_socialNetworks*) | crm_form_contact_socialNetworks_socialNetworksCombo |
+--------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------+
| Социальная сеть | ссылка | crm_form_contact_socialNetworks_socialNetworks |
| Социальная сеть | однострочное поле | crm_form_contact_socialNetworks_socialNetworks |
+--------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------+
| **Ответственный менеджер** | выбор пользователя | crm_form_contact_responsibleManager_responsible |
+--------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------+
#### Активность лида {#formLeadActivity}
Код формы: crm_form_leadActivity.
Форма содержит следующие компоненты:
+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+
| Поле | Тип компонента | Имя компонента |
+========================================================+========================================================+========================================================+
| **Лид** | ссылка на реестр "Лид" | crm_form_leadActivity_main_lead |
+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+
| **Активности** | динамическая таблица | crm_form_leadActivity_activities |
+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+
| Тип активности | выпадающий список (справочник "crm_dict_activityType") | crm_form_leadActivity_activities_type |
+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+
| Активность | многострочное поле | crm_form_leadActivity_activities_info |
+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+
| Дата | дата | crm_form_leadActivity_activities_date |
+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+
| Стоимость | числовое поле | crm_form_leadActivity_activities_cost |
+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+
| **Ответственный менеджер** | выбор пользователя | crm_form_leadActivity_responsibleManager_responsible |
+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+
#### Активность сделки {#formDealActivity}
Код формы: crm_form_dealActivity.
Форма содержит следующие компоненты:
+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+
| Поле | Тип компонента | Имя компонента |
+========================================================+========================================================+========================================================+
| **Сделка** | ссылка на реестр "Сделка" | crm_form_dealActivity_main_deal |
+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+
| **Активности** | динамическая таблица | crm_form_dealActivity_activities |
+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+
| Тип активности | выпадающий список (справочник "crm_dict_activityType") | crm_form_dealActivity_activities_type |
+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+
| Активность | многострочное поле | crm_form_dealActivity_activities_info |
+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+
| Дата | дата | crm_form_dealActivity_activities_date |
+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+
| Стоимость | числовое поле | crm_form_dealActivity_activities_cost |
+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+
| **Ответственный менеджер** | выбор пользователя | crm_form_dealActivity_responsibleManager_responsible |
+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+
#### % комиссии {#formComission}
Код формы: crm_form_comission.
......@@ -343,56 +335,61 @@
* Значение поля по умолчанию при создании записи реестра - *5*.
#### Тема сотрудничества {#formTheme}
Код формы: crm_form_theme.
Форма содержит следующие компоненты:
+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+
| Поле | Тип компонента | Имя компонента |
+========================================================+========================================================+========================================================+
| Тема сотрудничества | однострочное поле | crm_form_theme_theme |
+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+
#### Товар (услуга) {#formItem}
Код формы: crm_form_item.
Форма содержит следующие компоненты:
+--------------------------------------------------------+---------------------------------------------------------------+-------------------------------------------------+
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Поле | Тип компонента | Имя компонента |
+========================================================+===============================================================+=================================================+
+========================================================+===============================================================+========================================================+
| ID товара | номер (шаблон номера "Номер товара в каталоге") | crm_form_item_id |
+--------------------------------------------------------+---------------------------------------------------------------+-------------------------------------------------+
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Наименование | однострочное поле | crm_form_item_name |
+--------------------------------------------------------+---------------------------------------------------------------+-------------------------------------------------+
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Описание | многострочное поле | crm_form_item_description |
+--------------------------------------------------------+---------------------------------------------------------------+-------------------------------------------------+
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
#### Цена {#formPrice}
Код формы: crm_form_price
Код формы: crm_form_price.
Форма содержит следующие компоненты:
+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Поле | Тип компонента | Имя компонента |
+========================================================+========================================================+========================================================+
+========================================================+===============================================================+========================================================+
| Товар | ссылка на реестр "Каталог товаров и услуг" | crm_form_price_item_name |
+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Описание | многострочное поле | crm_form_price_description |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Единица измерения | однострочное поле | crm_form_price_unit |
+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Цена | числовое поле | crm_form_price_price |
+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+
#### Тема сотрудничества {#formTheme}
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
Код формы: crm_form_theme.
Для компонента "Товар" настроено сопоставление:
Форма содержит следующие компоненты:
+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+
| Поле | Тип компонента | Имя компонента |
+========================================================+========================================================+========================================================+
| Тема сотрудничества | однострочное поле | crm_form_theme_theme |
+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+
* `crm_form_item_description` - `crm_form_price_description` - `EQUAL`.
#### Шаблоны документов {#formsTemplates}
#### Формы шаблонов документов {#formsTemplates}
Формы для формирования шаблонов документов. Для всех форм ниже одинаково настроена таблица
"Отправить заказчику":
Для всех форм ниже одинаково настроен **компонент выбора адресата**:
*Для выпадающего списка "Источник адреса" настроены следующие значения:*
***Для выпадающего списка "Источник адреса" настроены следующие значения:***
* Аккаунт - 0
......@@ -400,20 +397,57 @@
* Ручной ввод - 2
При выборе в поле значения "Аккаунт" компонент "Выбрать контакт" не отображается,
при выборе "Контакт" компонент "Выбрать аккаунт" не отображается. При выборе значения
"Ручной ввод" компоненты "Выбрать контакт", "Выбрать аккаунт" не отображаются.
При этом:
*Для компонента "Выбрать аккаунт" настроено сопоставление:*
* Если в поле *`choice`* выбрано значение "Аккаунт", то доступно поле
`account_link`, поле `contact_link` скрыто.
* Если в поле *`choice`* выбрано значение "Контакт", то доступно поле
`contact_link`, поле `account_link` скрыто.
* Если в поле *`choice`* выбрано значение "Ручной ввод", то поля
`account_link` и `contact_link` оба скрыты.
***Для компонента "Выбрать аккаунт" настроено сопоставление:***
* `crm_form_account_email` - `crm_form_account_email` - `EQUAL`
*Для компонента "Выбрать контакт" настроено сопоставление:*
***Для компонента "Выбрать контакт" настроено сопоставление:***
* `crm_form_contact_email` - `crm_form_contact_email` - `EQUAL`
Таблицы "Адреса аккаунта" и "Адреса контакта" являются служебными и не отображаются
пользователю.
Таблицы "Адреса аккаунта" и "Адреса контакта" являются служебными
и не отображаются пользователю.
***Поведение поля `choice`***
Если в поле *`choice`* выбрано значение "Аккаунт", то должно быть доступно
поле `account_link`, поле `contact_link` скрыто.
Если в поле *`choice`* выбрано значение "Контакт", то должно быть доступно
поле `contact_link`, поле `account_link` скрыто.
Если в поле *`choice`* выбрано значение "Ручной ввод", то поля `account_link`
и `contact_link` должны быть скрыты.
***Поведение поля `email`***
1. Для случая, когда заполняется поле `account_link`, в поле *`email`* требуется
отображать значение поля *`crm_form_contact_email.crm_form_contact_email_email`*.
В случае, если таблица *`crm_form_contact_email`* для выбранного контакта содержит
больше одного элемента, выбирать значение в зависимости от значения поля
*`crm_form_contact_email.crm_form_contact_email_emailCombo`* по значение с минимальным
порядковым номером записи справочника crm_dict_email.
2. Для случая, когда заполняется поле `contact_link`, в поле *`email`* требуется
отображать значение поля *`crm_form_account_email.crm_form_account_email_email`*.
В случае, если таблица *`crm_form_account_email`* для выбранного контакта содержит
больше одного элемента, выбирать значение в зависимости от значения поля
*`crm_form_account_email.crm_form_account_email_emailCombo`* тем же приоритетам,
что и для пункта 1.
3. Для случая, когда в поле *`choice`* выбрано значение "Ручной ввод", поле *`email`*
должно заполняться вручную.
##### Договор поставки (единовременная оплата) {#formContractDeliveryAll}
......@@ -515,6 +549,9 @@
| **Актуальный адрес контакта** | однострочное поле | crm_form_contact_email_email |
+----------------------------------+---------------------------------------------------+--------------------------------------------------------+
*Компоненты выбора даты*:
* Формат даты всех компонентов выбора дат - `"${dd}" ${monthed} ${yyyy}г.`
##### Договор поставки (оплата частями) {#formContractDeliveryPart}
......@@ -622,6 +659,10 @@
| **Актуальный адрес контакта** | однострочное поле | crm_form_contact_email_email |
+----------------------------------+---------------------------------------------------+----------------------------------------------------------+
*Компоненты выбора даты*:
* Формат даты всех компонентов выбора дат - `"${dd}" ${monthed} ${yyyy}г.`
##### Акт приема-передачи товара {#formCertificate}
Код формы: crm_form_certificate.
......@@ -631,7 +672,7 @@
+----------------------------------+---------------------------------------------------+--------------------------------------------------------+
| Поле | Тип компонента | Имя компонента |
+==================================+===================================================+========================================================+
| **Заказчик** | ссылка на реестр "Контакт" | crm_form_certificate_table1_customer |
| **Заказчик** | ссылка на реестр "Аккаунты" | crm_form_certificate_table1_customer |
+----------------------------------+---------------------------------------------------+--------------------------------------------------------+
| **Поставщик** | компонент выбора подразделений | crm_form_certificate_table1_supplier |
+----------------------------------+---------------------------------------------------+--------------------------------------------------------+
......@@ -783,35 +824,35 @@
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Поле | Тип компонента | Имя компонента |
+========================================================+===============================================================+========================================================+
| **Аккаунт** | ссылка на реестр "Аккаунты" | crm_form_offer_account |
| Аккаунт | ссылка на реестр "Аккаунты" | crm_form_offer_account |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Контакты для шапки справа** | ссылка на реестр "Контакты" | crm_form_offer_contact1 |
| Контакты для шапки справа | ссылка на реестр "Контакты" | crm_form_offer_contact1 |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Контакты для ИО в центре после Уважаемый** | ссылка на реестр "Контакты" | crm_form_offer_contact2 |
| Контакты для ИО в центре после Уважаемый | ссылка на реестр "Контакты" | crm_form_offer_contact2 |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Должность** | однострочное поле | crm_form_offer_whom_position |
| Должность | однострочное поле | crm_form_offer_whom_position |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Аккаунт3** | однострочное поле | crm_form_offer_whom_account |
| Аккаунт3 | однострочное поле | crm_form_offer_whom_account |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **ФИО** | однострочное поле | crm_form_offer_whom_fullname |
| ФИО | однострочное поле | crm_form_offer_whom_fullname |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Уважаемый** | однострочное поле | crm_form_offer_address_dear |
| Уважаемый | однострочное поле | crm_form_offer_address_dear |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **ИО в обращении** | однострочное поле | crm_form_offer_address_fullname |
| ИО в обращении | однострочное поле | crm_form_offer_address_fullname |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Количество листов** | однострочное поле | crm_form_offer_attachment_number |
| Количество листов | однострочное поле | crm_form_offer_attachment_number |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Должность отправителя** | выбор должности | crm_form_offer_from_position |
| Должность отправителя | выбор должности | crm_form_offer_from_position |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **ФИО отправителя** | выбор пользователя | crm_form_offer_from_user |
| ФИО отправителя | выбор пользователя | crm_form_offer_from_user |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Организация отправителя** | однострочное поле | crm_form_offer_from_organization |
| Организация отправителя | однострочное поле | crm_form_offer_from_organization |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Прайс-листы** | динамическая таблица | crm_form_offer_price |
| Прайс-листы | динамическая таблица | crm_form_offer_price |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Прайс-лист | ссылка на реестр "Прайс-лист" | crm_form_offer_price_price |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Стоимость реализации проекта** | динамическая таблица | crm_form_offer_project_price |
| Стоимость реализации проекта | динамическая таблица | crm_form_offer_project_price |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Номер | однострочное поле | crm_form_offer_project_price_number |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
......@@ -823,20 +864,20 @@
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Сумма | числовое поле | crm_form_offer_project_summa_summa |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Источник адреса** | выпадающий список | choice |
| Источник адреса | выпадающий список | choice |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Выбрать аккаунт** | ссылка на реестр "Аккаунты" | account_link |
| Выбрать аккаунт | ссылка на реестр "Аккаунты" | account_link |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Выбрать контакт** | ссылка на реестр "Контакты" | contact_link |
| Выбрать контакт | ссылка на реестр "Контакты" | contact_link |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **E-mail** | однострочное поле | email |
| E-mail | однострочное поле | email |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Адреса аккаунта** | динамическая таблица (из группы полей "E-mail" | crm_form_account_email |
| Адреса аккаунта | динамическая таблица (из группы полей "E-mail" | crm_form_account_email |
| | аккаунта, указанного в поле "Выбрать аккаунт") | |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Актуальный адрес аккаунта | однострочное поле | crm_form_account_email_email |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Адреса контакта** | динамическая таблица (из группы полей "E-mail" | crm_form_contact_email |
| Адреса контакта | динамическая таблица (из группы полей "E-mail" | crm_form_contact_email |
| | контакта, указанного в поле "Выбрать контакт") | |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| Актуальный адрес контакта | однострочное поле | crm_form_contact_email_email |
......@@ -876,5 +917,3 @@
*Для поля "Описание":*
* включена опция "Не удалять пробелы в начале строки"
### Реестры {#registries}
- [Каталог товаров и услуг](#registryCatalog):
* [Каталог товаров и услуг](#registryItems)
* [Прайс-лист](#registryPriceList)
* [Темы сотрудничества](#registryThemes)
- [Шаблоны документов](#registryTemplates):
* [Договоры поставки (единовременная оплата)](#registryContractDeliveryAll)
* [Договоры поставки (оплата частями)](#registryContractDeliveryPart)
* [Акты приема-передачи товара](#registryCertificates)
* [Коммерческие предложения](#registryOffer)
* [Маркетинговое мероприятие](#registryEvent)
* [Лид](#registryLead)
* [Сделка](#registryDeal)
* [Аккаунт](#registryAccount)
* [Контакт](#registryContact)
* [Активность лида](#registryLeadActivity)
* [Активность сделки](#registryDealActivity)
* [% комиссии](#registryComission)
* [Темы сотрудничества](#registryThemes)
* [Каталог товаров и услуг](#registryItems)
* [Прайс-лист](#registryPriceList)
* [Договоры поставки (единовременная оплата)](#registryContractDeliveryAll)
* [Договоры поставки (оплата частями)](#registryContractDeliveryPart)
* [Коммерческие предложения](#registryOffer)
* [Акты приема-передачи товара](#registryCertificates)
#### Каталог товаров и услуг {#registryCatalog}
Группа реестров для организации каталога товаров и услуг, предоставляемых организацией.
##### Каталог товаров и услуг {#registryItems}
#### Маркетинговые мероприятия {#registryEvent}
Свойства реестра:
+--------------------------------------------------------+--------------------------------------------------------+
| Свойство | Значение |
+========================================================+========================================================+
| Код | crm_registry_items |
| Код | crm_registry_events |
+--------------------------------------------------------+--------------------------------------------------------+
| Форма документа | crm_form_item |
| Форма документа | crm_form_event |
+--------------------------------------------------------+--------------------------------------------------------+
| Группа | Все маркетологи, маркетологи-специалисты |
| Группа | все маркетологи |
+--------------------------------------------------------+--------------------------------------------------------+
| Права | "Все маркетологи" - просмотр списка, просмотр данных |
| | "Маркетологи-специалисты" - все права |
| Права | все |
+--------------------------------------------------------+--------------------------------------------------------+
| Сортировка | по полю crm_form_item_name |
| Сортировка | по дате создания |
+--------------------------------------------------------+--------------------------------------------------------+
| Направление сортировки | по возрастанию |
| Направление сортировки | по убыванию |
+--------------------------------------------------------+--------------------------------------------------------+
Отображаемые поля формы:
......@@ -57,30 +39,33 @@
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| Идентификатор колонки | Название поля | Номер | Значащее содержимое |
+========================================================+========================================================+============================+===========================+
| crm_form_item_name | Наименование товара | 2 | да |
| crm_form_event_main_name | Наименование | 1 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_item_id | Код товара | 1 | нет |
| crm_form_event_main_cost | Стоимость | 2 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_event_main_event | Мероприятие | 3 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_event_responsibleManager_responsible | Ответственный менеджер | 4 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
##### Прайс-лист {#registryPriceList}
#### Лиды {#registryLead}
Свойства реестра:
+--------------------------------------------------------+--------------------------------------------------------+
| Свойство | Значение |
+========================================================+========================================================+
| Код | crm_registry_price_list |
| Код | crm_registry_lead |
+--------------------------------------------------------+--------------------------------------------------------+
| Форма документа | crm_form_price |
| Форма документа | crm_form_lead |
+--------------------------------------------------------+--------------------------------------------------------+
| Группа | Все маркетологи, маркетологи-специалисты |
| Группа | все маркетологи |
+--------------------------------------------------------+--------------------------------------------------------+
| Права | "Все маркетологи" - просмотр списка, просмотр данных |
| | "Маркетологи-специалисты" - все права |
| Права | все |
+--------------------------------------------------------+--------------------------------------------------------+
| Сортировка | по полю crm_form_item_name |
| Сортировка | по полю crm_form_lead_deals_budget |
+--------------------------------------------------------+--------------------------------------------------------+
| Направление сортировки | по возрастанию |
| Направление сортировки | по убыванию |
+--------------------------------------------------------+--------------------------------------------------------+
Отображаемые поля формы:
......@@ -88,67 +73,59 @@
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| Идентификатор колонки | Название поля | Номер | Значащее содержимое |
+========================================================+========================================================+============================+===========================+
| crm_form_price_item_name | Наименование товара | 1 | нет |
| crm_form_lead_deals_theme | Тема сотрудничества | 1 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_price_unit | Единица измерения | 2 | нет |
| crm_form_lead_deals_budget | Потенциальный бюджет | 2 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_lead_deals_status | Статус | 3 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_price_price | Цена | 2 | нет |
| crm_form_lead_responsibleManager_responsible | Ответственный менеджер | 4 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
##### Темы сотрудничества {#registryThemes}
#### Сделки {#registryDeal}
Свойства реестра:
+--------------------------------------------------------+-------------------------------------------------------------+
+--------------------------------------------------------+------------------------------------------------------------------------+
| Свойство | Значение |
+========================================================+=============================================================+
| Код | crm_registry_themes |
+--------------------------------------------------------+-------------------------------------------------------------+
| Форма документа | crm_form_theme |
+--------------------------------------------------------+-------------------------------------------------------------+
| Группа | Все маркетологи |
+--------------------------------------------------------+-------------------------------------------------------------+
| Права | Все |
+--------------------------------------------------------+-------------------------------------------------------------+
| Сортировка | по полю crm_form_theme_theme |
+--------------------------------------------------------+-------------------------------------------------------------+
| Направление сортировки | по возрастанию |
+--------------------------------------------------------+-------------------------------------------------------------+
+========================================================+========================================================================+
| Код | crm_registry_deals |
+--------------------------------------------------------+------------------------------------------------------------------------+
| Форма документа | crm_form_deals |
+--------------------------------------------------------+------------------------------------------------------------------------+
| Группа | все маркетологи |
+--------------------------------------------------------+------------------------------------------------------------------------+
| Права | Просмотр списка, Просмотр данных, Создание, Редактирование, Изменение |
+--------------------------------------------------------+------------------------------------------------------------------------+
| Сортировка | по полю ccrm_form_deal_main3_budget |
+--------------------------------------------------------+------------------------------------------------------------------------+
| Направление сортировки | по убыванию |
+--------------------------------------------------------+------------------------------------------------------------------------+
Отображаемые поля формы:
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| Идентификатор колонки | Название поля | Номер | Значащее содержимое |
+========================================================+========================================================+============================+===========================+
| crm_form_theme_theme | Тема сотрудничества | 1 | да |
| crm_form_deal_main1_lead | Лид | 1 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_deal_main2_theme | Бюджет | 2 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_deal_main3_budget | Бюджет | 3 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_deal_responsibleManager_responsible | Ответственный менеджер | 4 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
#### Шаблоны документов {#registryTemplates}
Группа реестров для обеспечения формирования шаблонов документов. В каждом из этих реестров настроено событие активации элемента:
*Действия:*
- Тип действия - Отправка документа по форме
- Название - Отправка документа по форме
- Адресат - `email`
> **Примечание:** для корректной работы процесса "Отправка документа по форме" **обязательно** должен быть включен флаг
"Интеграция с почтой" (Конфигуратор - Настройки системы - Настройки почты). На стороне клиента также должен быть настроен
аккаунт электронной почты.
##### Договоры поставки (единовременная оплата) {#registryContractDeliveryAll}
#### Аккаунты {#registryAccount}
Свойства реестра:
+--------------------------------------------------------+--------------------------------------------------------+
| Свойство | Значение |
+========================================================+========================================================+
| Код | crm_registry_contracts_delivery_100 |
| Код | crm_registry_accounts |
+--------------------------------------------------------+--------------------------------------------------------+
| Форма документа | crm_form_contract_delivery_100 |
| Форма документа | crm_form_accounts |
+--------------------------------------------------------+--------------------------------------------------------+
| Группа | все маркетологи |
+--------------------------------------------------------+--------------------------------------------------------+
......@@ -164,35 +141,23 @@
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| Идентификатор колонки | Название поля | Номер | Значащее содержимое |
+========================================================+========================================================+============================+===========================+
| crm_form_contract_delivery_100_contract_number | Номер договора | 1 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_contract_delivery_100_contract_date | Дата договора | 2 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_contract_delivery_100_theme | Тема договора | 3 | да |
| crm_form_account_main_name | Наименование | 1 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_contract_delivery_100_client_account | Заказчик | 4 | да |
| crm_form_account_main_info | Описание | 2 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_contract_delivery_100_sum_total | Сумма договора | 5 | нет |
| crm_form_account_responsibleManager_responsible | Ответственный менеджер | 3 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
Для реестра настроено событие активации:
- действие: "Отправка документа по форме";
- адресат: `email`;
- код: `crm_process_sending_doc`
##### Договоры поставки (оплата частями) {#registryContractDeliveryPart}
#### Контакты {#registryContact}
Свойства реестра:
+--------------------------------------------------------+--------------------------------------------------------+
| Свойство | Значение |
+========================================================+========================================================+
| Код | crm_registry_contracts_delivery_part |
| Код | crm_registry_contacts |
+--------------------------------------------------------+--------------------------------------------------------+
| Форма документа | crm_form_contract_delivery_part |
| Форма документа | crm_form_contacts |
+--------------------------------------------------------+--------------------------------------------------------+
| Группа | все маркетологи |
+--------------------------------------------------------+--------------------------------------------------------+
......@@ -208,107 +173,87 @@
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| Идентификатор колонки | Название поля | Номер | Значащее содержимое |
+========================================================+========================================================+============================+===========================+
| crm_form_contract_delivery_part_contract_number | Номер договора | 1 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_contract_delivery_part_contract_date | Дата договора | 2 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_contract_delivery_part_theme | Тема договора | 3 | да |
| crm_form_contact_main_fullName | Полное имя | 1 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_contract_delivery_part_client_account | Заказчик | 4 | да |
| crm_form_contact_main_position | Должность | 2 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_contract_delivery_part_sum_total | Сумма договора | 5 | нет |
| crm_form_contact_responsibleManager | Ответственный менеджер | 3 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
Для реестра настроено событие активации:
- действие: "Отправка документа по форме";
- адресат: `email`;
- код: `crm_process_sending_doc`
##### Акты приема-передачи товара {#registryCertificates}
#### % комиссии {#registryComission}
Свойства реестра:
+--------------------------------------------------------+--------------------------------------------------------+
+--------------------------------------------------------+-------------------------------------------------------------+
| Свойство | Значение |
+========================================================+========================================================+
| Код | crm_registry_certificates |
+--------------------------------------------------------+--------------------------------------------------------+
| Форма документа | crm_form_certificate |
+--------------------------------------------------------+--------------------------------------------------------+
| Группа | все маркетологи |
+--------------------------------------------------------+--------------------------------------------------------+
| Права | все |
+--------------------------------------------------------+--------------------------------------------------------+
+========================================================+=============================================================+
| Код | crm_registry_comission |
+--------------------------------------------------------+-------------------------------------------------------------+
| Форма документа | crm_form_comission |
+--------------------------------------------------------+-------------------------------------------------------------+
| Группа | маркетологи-менеджеры |
+--------------------------------------------------------+-------------------------------------------------------------+
| Права | Просмотр списка, Просмотр данных, Изменение, Редактирование |
+--------------------------------------------------------+-------------------------------------------------------------+
| Сортировка | по дате создания |
+--------------------------------------------------------+--------------------------------------------------------+
+--------------------------------------------------------+-------------------------------------------------------------+
| Направление сортировки | по убыванию |
+--------------------------------------------------------+--------------------------------------------------------+
+--------------------------------------------------------+-------------------------------------------------------------+
Отображаемые поля формы:
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| Идентификатор колонки | Название поля | Номер | Значащее содержимое |
+========================================================+========================================================+============================+===========================+
| crm_form_certificate_table3_contract | Основание договора | 1 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_certificate_table2_date | Дата акта | 2 | нет |
| crm_form_comission_main | % комиссии | | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
##### Коммерческое предложение {#registryOffer}
#### Темы сотрудничества {#registryThemes}
Свойства реестра:
+--------------------------------------------------------+--------------------------------------------------------+
+--------------------------------------------------------+-------------------------------------------------------------+
| Свойство | Значение |
+========================================================+========================================================+
| Код | crm_registry_offer |
+--------------------------------------------------------+--------------------------------------------------------+
| Форма документа | crm_form_offer |
+--------------------------------------------------------+--------------------------------------------------------+
| Группа | все маркетологи |
+--------------------------------------------------------+--------------------------------------------------------+
| Права | все |
+--------------------------------------------------------+--------------------------------------------------------+
| Сортировка | по дате создания |
+--------------------------------------------------------+--------------------------------------------------------+
| Направление сортировки | по убыванию |
+--------------------------------------------------------+--------------------------------------------------------+
+========================================================+=============================================================+
| Код | crm_registry_themes |
+--------------------------------------------------------+-------------------------------------------------------------+
| Форма документа | crm_form_theme |
+--------------------------------------------------------+-------------------------------------------------------------+
| Группа | Все маркетологи |
+--------------------------------------------------------+-------------------------------------------------------------+
| Права | Все |
+--------------------------------------------------------+-------------------------------------------------------------+
| Сортировка | по полю crm_form_theme_theme |
+--------------------------------------------------------+-------------------------------------------------------------+
| Направление сортировки | по возрастанию |
+--------------------------------------------------------+-------------------------------------------------------------+
Отображаемые поля формы:
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| Идентификатор колонки | Название поля | Номер | Значащее содержимое |
+========================================================+========================================================+============================+===========================+
| crm_form_offer_whom_position | Должность | 1 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_offer_whom_account | Аккаунт | 2 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_offer_whom_fullname | ФИО | 3 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_offer_from_user | От кого | 4 | нет |
| crm_form_theme_theme | Тема сотрудничества | 1 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
#### Маркетинговые мероприятия {#registryEvent}
#### Каталог товаров и услуг {#registryItems}
Свойства реестра:
+--------------------------------------------------------+--------------------------------------------------------+
| Свойство | Значение |
+========================================================+========================================================+
| Код | crm_registry_events |
| Код | crm_registry_items |
+--------------------------------------------------------+--------------------------------------------------------+
| Форма документа | crm_form_event |
| Форма документа | crm_form_item |
+--------------------------------------------------------+--------------------------------------------------------+
| Группа | все маркетологи |
+--------------------------------------------------------+--------------------------------------------------------+
| Права | все |
+--------------------------------------------------------+--------------------------------------------------------+
| Сортировка | по дате создания |
| Сортировка | по полю реестра crm_form_item_name |
+--------------------------------------------------------+--------------------------------------------------------+
| Направление сортировки | по убыванию |
| Направление сортировки | по возрастанию |
+--------------------------------------------------------+--------------------------------------------------------+
Отображаемые поля формы:
......@@ -316,33 +261,29 @@
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| Идентификатор колонки | Название поля | Номер | Значащее содержимое |
+========================================================+========================================================+============================+===========================+
| crm_form_event_main_name | Наименование | 1 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_event_main_cost | Стоимость | 2 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_event_main_event | Мероприятие | 3 | нет |
| crm_form_item_name | Наименование товара | 2 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_event_responsibleManager_responsible | Ответственный менеджер | 4 | нет |
| crm_form_item_id | Код товара | 1 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
#### Лиды {#registryLead}
#### Прайс-лист {#registryPriceList}
Свойства реестра:
+--------------------------------------------------------+--------------------------------------------------------+
| Свойство | Значение |
+========================================================+========================================================+
| Код | crm_registry_lead |
| Код | crm_registry_price_list |
+--------------------------------------------------------+--------------------------------------------------------+
| Форма документа | crm_form_lead |
| Форма документа | crm_form_price |
+--------------------------------------------------------+--------------------------------------------------------+
| Группа | все маркетологи |
+--------------------------------------------------------+--------------------------------------------------------+
| Права | все |
+--------------------------------------------------------+--------------------------------------------------------+
| Сортировка | по полю crm_form_lead_deals_budget |
| Сортировка | по полю реестра crm_form_price_item_name |
+--------------------------------------------------------+--------------------------------------------------------+
| Направление сортировки | по убыванию |
| Направление сортировки | по возрастанию |
+--------------------------------------------------------+--------------------------------------------------------+
Отображаемые поля формы:
......@@ -350,59 +291,35 @@
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| Идентификатор колонки | Название поля | Номер | Значащее содержимое |
+========================================================+========================================================+============================+===========================+
| crm_form_lead_deals_theme | Тема сотрудничества | 1 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_lead_deals_budget | Потенциальный бюджет | 2 | да |
| crm_form_price_unit | Единица измерения | 2 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_lead_deals_status | Статус | 3 | нет |
| crm_form_price_price | Цена | 3 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_lead_responsibleManager_responsible | Ответственный менеджер | 4 | нет |
| crm_form_price_item_name | Наименование товара | 1 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
#### Сделки {#registryDeal}
#### Реестры шаблонов документов {#registryTemplates}
Свойства реестра:
Для всех реестров ниже настроено событие активации:
+--------------------------------------------------------+-----------------------------------------------------------------------+
| Свойство | Значение |
+========================================================+=======================================================================+
| Код | crm_registry_deals |
+--------------------------------------------------------+-----------------------------------------------------------------------+
| Форма документа | crm_form_deals |
+--------------------------------------------------------+-----------------------------------------------------------------------+
| Группа | все маркетологи |
+--------------------------------------------------------+-----------------------------------------------------------------------+
| Права | Просмотр списка, Просмотр данных, Создание, Изменение, Редактирование |
+--------------------------------------------------------+-----------------------------------------------------------------------+
| Сортировка | по полю crm_form_deal_main3_budget |
+--------------------------------------------------------+-----------------------------------------------------------------------+
| Направление сортировки | по убыванию |
+--------------------------------------------------------+-----------------------------------------------------------------------+
Маршрут активации - Действия:
Отображаемые поля формы:
- Тип действия - Отправка документа по форме
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| Идентификатор колонки | Название поля | Номер | Значащее содержимое |
+========================================================+========================================================+============================+===========================+
| crm_form_deal_main1_lead | Лид | 1 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_deal_main2_theme | Тема сотрудничества | 2 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_deal_main3_budget | Бюджет | 3 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_deal_responsibleManager_responsible | Ответственный менеджер | 4 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
- Название - Отправка документа по форме
#### Аккаунты {#registryAccount}
- Адресат - `email`
##### Договоры поставки (единовременная оплата) {#registryContractDeliveryAll}
Свойства реестра:
+--------------------------------------------------------+--------------------------------------------------------+
| Свойство | Значение |
+========================================================+========================================================+
| Код | crm_registry_accounts |
| Код | crm_registry_contracts_delivery_100 |
+--------------------------------------------------------+--------------------------------------------------------+
| Форма документа | crm_form_accounts |
| Форма документа | crm_form_contract_delivery_100 |
+--------------------------------------------------------+--------------------------------------------------------+
| Группа | все маркетологи |
+--------------------------------------------------------+--------------------------------------------------------+
......@@ -418,34 +335,27 @@
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| Идентификатор колонки | Название поля | Номер | Значащее содержимое |
+========================================================+========================================================+============================+===========================+
| crm_form_account_main_name | Наименование | 1 | да |
| crm_form_contract_delivery_100_contract_number | Номер договора | 1 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_account_main_info | Описание | 2 | нет |
| crm_form_contract_delivery_100_contract_date | Дата договора | 2 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_account_responsibleManager_responsible | Ответственный менеджер | 3 | нет |
| crm_form_contract_delivery_100_theme | Тема договора | 3 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_contract_delivery_100_client_account | Заказчик | 4 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_contract_delivery_100_sum_total | Сумма договора | 5 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
Сопоставление полей реестров:
* При сохранении изменений заполнятся ссылкой на текущую запись реестра
связанные поля в следующих реестрах:
* [Лид](#registryLead) - crm_form_lead_main_account
* [Аккаунт](#registryAccount), который указан в поле "Материнский
аккаунт" текущей записи - crm_form_account_childAccount_account
* [Аккаунт](#registryAccount), который указан в поле "Дочерний
аккаунт" текущей записи - crm_form_account_parentAccount_parentAccount
#### Контакты {#registryContact}
##### Договоры поставки (оплата частями) {#registryContractDeliveryPart}
Свойства реестра:
+--------------------------------------------------------+--------------------------------------------------------+
| Свойство | Значение |
+========================================================+========================================================+
| Код | crm_registry_contacts |
| Код | crm_registry_contracts_delivery_part |
+--------------------------------------------------------+--------------------------------------------------------+
| Форма документа | crm_form_contacts |
| Форма документа | crm_form_contract_delivery_part |
+--------------------------------------------------------+--------------------------------------------------------+
| Группа | все маркетологи |
+--------------------------------------------------------+--------------------------------------------------------+
......@@ -461,30 +371,27 @@
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| Идентификатор колонки | Название поля | Номер | Значащее содержимое |
+========================================================+========================================================+============================+===========================+
| crm_form_contact_main_fullName | Полное имя | 1 | да |
| crm_form_contract_delivery_part_contract_number | Номер договора | 1 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_contact_main_position | Должность | 2 | нет |
| crm_form_contract_delivery_part_contract_date | Дата договора | 2 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_contact_responsibleManager | Ответственный менеджер | 3 | нет |
| crm_form_contract_delivery_part_theme | Тема договора | 3 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_contract_delivery_part_client_account | Заказчик | 4 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_contract_delivery_part_sum_total | Сумма договора | 5 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
Сопоставление полей реестров:
* При сохранении изменений заполнятся ссылкой на текущую запись реестра
связанные поля в следующих реестрах:
* [Лид](#registryLead) - `crm_form_lead_main_contact`
#### Активности лидов {#registryLeadActivity}
##### Акты приема-передачи товара {#registryCertificates}
Свойства реестра:
+--------------------------------------------------------+--------------------------------------------------------+
| Свойство | Значение |
+========================================================+========================================================+
| Код | crm_registry_leadActivities |
| Код | crm_registry_certificates |
+--------------------------------------------------------+--------------------------------------------------------+
| Форма документа | crm_form_leadActivity |
| Форма документа | crm_form_certificate |
+--------------------------------------------------------+--------------------------------------------------------+
| Группа | все маркетологи |
+--------------------------------------------------------+--------------------------------------------------------+
......@@ -500,23 +407,21 @@
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| Идентификатор колонки | Название поля | Номер | Значащее содержимое |
+========================================================+========================================================+============================+===========================+
| crm_form_leadActivity_activities | Активности | 1 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_leadActivity_main_lead | Лид | 2 | да |
| crm_form_certificate_table3_contract | Основание договора | 1 | да |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_leadActivity_responsibleManager_responsible | Ответственный менеджер | 3 | нет |
| crm_form_certificate_table2_date | Дата акта | 2 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
#### Активности сделок {#registryDealActivity}
##### Коммерческое предложение {#registryOffer}
Свойства реестра:
+--------------------------------------------------------+--------------------------------------------------------+
| Свойство | Значение |
+========================================================+========================================================+
| Код | crm_registry_dealActivities |
| Код | crm_registry_offer |
+--------------------------------------------------------+--------------------------------------------------------+
| Форма документа | crm_form_dealActivity |
| Форма документа | crm_form_offer |
+--------------------------------------------------------+--------------------------------------------------------+
| Группа | все маркетологи |
+--------------------------------------------------------+--------------------------------------------------------+
......@@ -532,44 +437,11 @@
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| Идентификатор колонки | Название поля | Номер | Значащее содержимое |
+========================================================+========================================================+============================+===========================+
| crm_form_dealActivity_activities | Активности | 1 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_dealActivity_main_deal | Сделка | 2 | да |
| crm_form_offer_whom_position | Должность | 1 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| crm_form_dealActivity_responsibleManager_responsible | Ответственный менеджер | 3 | нет |
| crm_form_offer_whom_account | Аккаунт | 2 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
#### % комиссии {#registryComission}
Свойства реестра:
+--------------------------------------------------------+-------------------------------------------------------------+
| Свойство | Значение |
+========================================================+=============================================================+
| Код | crm_registry_comission |
+--------------------------------------------------------+-------------------------------------------------------------+
| Форма документа | crm_form_comission |
+--------------------------------------------------------+-------------------------------------------------------------+
| Группа | маркетологи-менеджеры |
+--------------------------------------------------------+-------------------------------------------------------------+
| Права | Просмотр списка, Просмотр данных, Изменение, Редактирование |
+--------------------------------------------------------+-------------------------------------------------------------+
| Сортировка | по дате создания |
+--------------------------------------------------------+-------------------------------------------------------------+
| Направление сортировки | по убыванию |
+--------------------------------------------------------+-------------------------------------------------------------+
Отображаемые поля формы:
| crm_form_offer_whom_fullname | ФИО | 3 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
| Идентификатор колонки | Название поля | Номер | Значащее содержимое |
+========================================================+========================================================+============================+===========================+
| crm_form_comission_main | % комиссии | | нет |
| crm_form_offer_from_user | От кого | 4 | нет |
+--------------------------------------------------------+--------------------------------------------------------+----------------------------+---------------------------+
### Группы реестров {#registriesGroup}
Конфигурация групп реестров зависит от выбранного
[типа установки CRM](http://tdd.lan.arta.kz/docs/cases/crm/additional/html/basic_setting.html):
При установке типа Clean CRM и Demo CRM:
* [Базовый учет продаж](#group_marketing)
* [Каталог товаров и услуг](#group_catalog)
* [Шаблоны документов](#group_documentTemplates)
При установке типа Install/Upgrade Configuration:
* [Каталог товаров и услуг](#group_catalog)
* [Шаблоны документов](#group_documentTemplates)
#### Базовый учёт продаж {#group_marketing}
Код группы реестров: crm_registryGroup_marketing
Группы:
* [Каталог товаров и услуг](#group_catalog)
* [Шаблоны документов](#group_documentTemplates)
Реестры:
* [% комиссии](#registryComission)
* [Аккаунты](#registryAccount)
* [Контакты](#registryContact)
* [Лиды](#registryLead)
* [Маркетинговые мероприятия](#registryEvent)
* [Сделки](#registryDeal)
#### Каталог товаров и услуг {#group_catalog}
Код группы реестров: crm_registryGroup_catalog
Реестры:
* [Каталог товаров и услуг](#registryItems)
* [Прайс-лист](#registryPriceList)
* [Темы сотрудничества](#registryThemes)
#### Шаблоны документов {#group_documentTemplates}
Код группы реестров: crm_registryGroup_documentTemplates
Реестры:
* [Акты приема-передачи товара](#crm8.registryCertificates)
* [Договоры поставки (единовременная оплата)](#crm8.registryContractDeliveryAll)
* [Договоры поставки (оплата частями)](#crm8.registryContractDeliveryPart)
* [Коммерческие предложения](#crm8.registryOffer)
......@@ -85,7 +85,4 @@
* Время завершения заметки = 23:59:59 дня, указанного в напомина
![Отображение напоминаний в Ежедневнике](resources/img/reminder.png)
### Пользовательские компоненты {#user_components}
### Пользовательские компоненты на форме {#user_components}
Конфигурация Synergy CRM содержит предустановленные пользовательские
компоненты:
......@@ -7,9 +7,11 @@
- [Кнопка создания новой записи реестра "Сделка"](#user_components.button)
<#include "crm_consist/user_components_registryChooser.md">
<#include "crm_consist/user_components_button.md">
- [Динамическая таблица активностей](#user_components.dyn_table)
- [Пользовательский компонент связи из интерфейса](#user_components.connection)
<#include "crm_consist/user_components_registryChooser.md">
<#include "crm_consist/user_components_button.md">
<#include "crm_consist/user_components_dyn_table.md">
<#include "crm_consist/user_components_connection.md">
#### Пользовательский компонент связи из интерфейса {#user_components.connection}
Компонент представлен пиктограммой соответствующего приложения и ссылкой.
Анкор таких ссылок:
* для формы [Контакт](#formContact) - crm_form_lead_main_contactConnection
* телефон - значение поля crm_form_contact_phone_phone
* социальные сети - значение поля crm_form_contact_socialNetworks_socialNetworks
* для формы [Аккаунт](#formAccount) - crm_form_lead_main_accountConnection
* телефон - значение поля crm_form_account_phone_phone
* социальные сети - значение поля crm_form_account_socialNetworks_socialNetworks
Для приложения Skype имеются две ссылки - для звонка и сообщения. Их анкор
представлен в формате:
* для звонков - `Позвонить %значение_поля%`
* для сообщений - `Написать %значение_поля%`
При каждом открытии формы значения компонентов актуализируются согласно
данным соответствующих записей [Контакт](#formContact) и
[Аккаунт](#formAccount).
По нажатию на ссылку откроется:
* Telegram - `https://telegram.me/%указанный_логин%`
> **Примечание**
>
> Компонент обрабатывает только логины приложения Telegram, но не номера
> телефонов.
* Facebook Messenger - `http://m.me/%указанный_логин%`
* Viber - `viber://add?number=%указанный_номер_телефона%`
* Skype (позвонить) - `skype:%указанный_логин%?call`
* Skype (написать) - `skype:%указанный_логин%?chat`
* Почта - `mailto:%указанный_электронный_адрес%`
* Телефон - `tel:%указанный_номер_телефона%`
> **Примечание**
>
> Если на компьютере пользователя не установлен Skype, Viber, почтовый
> или SIP клиенты, то по нажатию а ссылку ничего не произойдет, и это не
> будет являться ошибкой Synergy.
![Контактные данные клиента для связи](resources/img/crm/connections.png)
#### Динамическая таблица активностей {#user_components.dyn_table}
Модифицированный компонент представляет собой динамическую таблицу. Блок
таблицы содержит в себе компоненты:
* пиктограмма типа активности
* выпадающий список "Тип активности"
* однострочное поле "Комментарий"
* компонент выбора даты "Дата"
Выпадающий список "Тип активностей" - справочник "crm_dict_activityType".
Пиктограмма типа активности определяется значением выбранного значения в
списке "Типы активностей".
В настройках компонента "Дата" включен флаг "Заполнять текущей датой /
временем".
"Количество отображаемых строк при создании" для таблицы - 1. По умолчанию
таблица отображает последний добавленный блок.
При наличии 2 и более блоков под таблицей добавляется кнопка "Загрузить
еще" вне зависимости от текущего режима проигрывателя форм. По нажатию на
кнопку "Загрузить еще" в таблицу добавляются следующие пять блоков. При
смене режима проигрывателя форм документ отображает те же блоки таблицы,
как и в предыдущем режиме.
**Режим редактирования**
В режиме редактирования над таблицей содержится кнопка "Добавить активность".
По нажатию на эту кнопку вверх таблицы добавляется новый пустой блок.
**Режим чтения**
В режиме чтения фон блоков таблицы окрашен в следующие цвета:
* нечетные блоки - #f1f1f1
* четные блоки - #ffffff
![Таблица в режиме редактирования](resources/img/activity_edit_1.png)
![Таблица в режиме редактирования](resources/img/activity_edit_2.png)
![Таблица в режиме чтения](resources/img/activity_read_1.png)
![Таблица в режиме чтения](resources/img/activity_read_2.png)
### Пользовательские компоненты {#userModules}
* [crm_component_canban](#uMCanban)
* [crm_component_deal_button](#uMDealButton)
* [crm_component_funnel](#uMFunnel)
* [crm_component_group_button](#uMGroupButton)
* [crm_component_notifications](#uMNotifications)
* [crm_component_registry_chooser](#uMRegistryChooser)
* [crm_component_social_links_accounts](#uMSocialLinksAccounts)
* [crm_component_social_links_contacts](#uMSocialLinksContacts)
#### crm_component_canban {#uMCanban}
+--------------------------------------------------------+----------------------------------------------------------+
| Свойство | Значение |
+========================================================+==========================================================+
| Код | crm_component_canban |
+--------------------------------------------------------+----------------------------------------------------------+
| Использовать в формах | включен |
+--------------------------------------------------------+----------------------------------------------------------+
HTML код:
``` xml
<div id="redips-drag">
</div>
```
JAVASCRIPT код:
``` xml
/*jslint white: true, browser: true, undef: true, nomen: true, eqeqeq: true, plusplus: false, bitwise: true, regexp: true, strict: true, newcap: true, immed: true, maxerr: 14 */
/*global window: false, REDIPS: true */
/* enable strict mode */
"use strict";
// define redips_init variable
var redipsInit;
// redips initialization
redipsInit = function () {
// reference to the REDIPS.drag library and message line
var rd = REDIPS.drag;
// how to display disabled elements
rd.style.borderDisabled = 'solid'; // border style for disabled element will not be changed (default is dotted)
rd.style.opacityDisabled = 60; // disabled elements will have opacity effect
REDIPS.drag.dropMode = 'multiple';
// initialization
rd.init();
// only "smile" can be placed to the marked cell
rd.mark.exception.d8 = 'smile';
// prepare handlers
rd.event.clicked = function () {
};
rd.event.dblClicked = function () {
};
rd.event.moved = function () {
};
rd.event.notMoved = function () {
};
rd.event.dropped = function () {
var pos = rd.getPosition();
console.log($(rd.obj).attr('status'));
var status = model.currentData[pos[2]];
if ($(rd.obj).attr('status') === status.status) {
return;
}
AS.SERVICES.showWaitWindow();
var pFact = jQuery.ajax({
url: window.location.origin + "/crm/rest/api/funnel/changeLeadStatus?statusID="+(status.status) + "&statusName="+(status.name)+"&leadID=" + rd.obj.id,
type: "POST",
beforeSend: AS.FORMS.ApiUtils.addAuthHeader,
dataType: "text",
error: function(jqXHR, textStatus, errorThrown){
model.playerModel.redraw();
AS.SERVICES.hideWaitWindow();
try {
AS.SERVICES.showErrorMessage(jqXHR.responseText);
} catch (e) {
console.log(e);
}
}
});
jQuery.when(pFact).then(function (data) {
model.playerModel.firstShow = false;
console.log(data);
model.playerModel.redraw();
var object = JSON.parse(data);
if (object.dealObject) {
var documentID = object.id;
var hash = '#' + jQuery.param({
submodule: 'common',
action: 'open_document',
document_identifier: documentID});
window.top.location.hash = hash;
}
AS.SERVICES.hideWaitWindow();
});
};
rd.event.switched = function () {
};
rd.event.clonedEnd1 = function () {
};
rd.event.clonedEnd2 = function () {
};
rd.event.notCloned = function () {
};
rd.event.deleted = function (cloned) {
// if cloned element is directly moved to the trash
if (cloned) {
// set id of original element (read from redips property)
// var id_original = rd.obj.redips.id_original;
}
else {
}
};
rd.event.undeleted = function () {
};
rd.event.cloned = function () {
};
rd.event.changed = function () {
// get target and source position (method returns positions as array)
var pos = rd.getPosition();
};
};
// toggles trash_ask parameter defined at the top
function toggleConfirm(chk) {
if (chk.checked === true) {
REDIPS.drag.trash.question = 'Are you sure you want to delete DIV element?';
}
else {
REDIPS.drag.trash.question = null;
}
}
// toggles delete_cloned parameter defined at the top
function toggleDeleteCloned(chk) {
REDIPS.drag.clone.drop = !chk.checked;
}
// enables / disables dragging
function toggleDragging(chk) {
REDIPS.drag.enableDrag(chk.checked);
}
// function sets drop_option parameter defined at the top
function setMode(radioButton) {
REDIPS.drag.dropMode = radioButton.value;
}
view.initDnd = redipsInit;
```
#### crm_component_deal_button {#uMDealButton}
+--------------------------------------------------------+----------------------------------------------------------+
| Свойство | Значение |
+========================================================+==========================================================+
| Код | crm_component_deal_button |
+--------------------------------------------------------+----------------------------------------------------------+
| Использовать в формах | включен |
+--------------------------------------------------------+----------------------------------------------------------+
HTML код:
``` xml
<button class="ns-approveButton ns-basicChooserApplyButton ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button" style="margin: 10px 0; display: block;" innerId='make_deal'>Создать</button>
```
JAVASCRIPT код:
``` xml
var button = jQuery(view.container).children("[innerId='make_deal']");
var locale = AS.OPTIONS.locale;
var statusValue;
model.playerModel.dictionaryCache.getDictionary('crm_dict_leadStatus', AS.OPTIONS.locale, function(dictionary) {
if(dictionary !== null) {
dictionary.forEach(function(data, index){
if (data['crm_dict_leadStatus_end'] === '1') {
statusValue = data['crm_dict_leadStatus_value'];
button.text(data['crm_dict_leadStatus_buttonName']);
}
});
}
});
button.click(function(){
model.playerModel.getModelWithId('crm_form_lead_deals_status').setValue(statusValue + '');
});
```
#### crm_component_funnel {#uMFunnel}
+--------------------------------------------------------+----------------------------------------------------------+
| Свойство | Значение |
+========================================================+==========================================================+
| Код | crm_component_funnel |
+--------------------------------------------------------+----------------------------------------------------------+
| Использовать в формах | включен |
+--------------------------------------------------------+----------------------------------------------------------+
HTML код:
``` xml
<style>
.chart {
margin: 0 auto;
margin-top: 20px;
margin-bottom: 20px;
height: 500px;
width: 450px;
}
</style
<!-- Funnel container -->
<div class="chart" id="funnel"></div>
```
JAVASCRIPT код:
``` xml
/* global D3Funnel */
const data = {
normal: [
['Первичная регистрация', [0, ''], '#e73a00'],
['Квалификация', [0, ''], '#fa6c00'],
['Взращивание', [0, ''], '#ffa900'],
['Подтверждение интереса', [0, ''], '#ffc500'],
['В сделку', [0, ''], '#a6cf00'],
]
};
const options = {
chart: {
width: 450,
height: 500,
bottomWidth: 1 / 2,
curve: {
enabled: false,
},
},
block: {
dynamicHeight: true,
highlight: true,
minHeight: 40,
},
label: {
format: '{l}: {v}\n{f}',
},
events: {
click: {
block: (d) => {
alert('<' + d.label.raw + '> selected.');
},
},
}
}
const chart = new D3Funnel('#funnel');
const picker = document.getElementById('picker');
chart.draw(data.normal, options);
```
#### crm_component_group_button {#uMGroupButton}
+--------------------------------------------------------+----------------------------------------------------------+
| Свойство | Значение |
+========================================================+==========================================================+
| Код | crm_component_group_button |
+--------------------------------------------------------+----------------------------------------------------------+
| Использовать в формах | включен |
+--------------------------------------------------------+----------------------------------------------------------+
HTML код:
``` xml
<style>
.btn_boot-group-lg > .btn_boot, .btn_boot-lg {
padding: 10px 16px;
font-size: 18px;
border-radius: 6px
}
.btn_boot-group-sm > .btn_boot, .btn_boot-sm {
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 3px
}
.btn_boot-group-xs > .btn_boot, .btn_boot-xs {
padding: 1px 5px;
font-size: 12px;
line-height: 1.5;
border-radius: 3px
}
.btn_boot-group, .btn_boot-group-vertical {
position: relative;
vertical-align: middle;
padding-top: 3px;
}
.btn_boot-group-vertical > .btn_boot, .btn_boot-group > .btn_boot {
position: relative;
float: left
}
.btn_boot-group-vertical > .btn_boot.active, .btn_boot-group-vertical > .btn_boot:active, .btn_boot-group-vertical > .btn_boot:focus, .btn_boot-group-vertical > .btn_boot:hover, .btn_boot-group > .btn_boot.active, .btn_boot-group > .btn_boot:active, .btn_boot-group > .btn_boot:focus, .btn_boot-group > .btn_boot:hover {
z-index: 2
}
.btn_boot-group .btn_boot + .btn_boot, .btn_boot-group .btn_boot + .btn_boot-group, .btn_boot-group .btn_boot-group + .btn_boot, .btn_boot-group .btn_boot-group + .btn_boot-group {
margin-left: -1px
}
.btn_boot-toolbar {
margin-left: -5px
}
.btn_boot-toolbar .btn_boot, .btn_boot-toolbar .btn_boot-group, .btn_boot-toolbar .input-group {
float: left
}
.btn_boot-toolbar > .btn_boot, .btn_boot-toolbar > .btn_boot-group, .btn_boot-toolbar > .input-group {
margin-left: 5px
}
.btn_boot-group > .btn_boot:not(:first-child):not(:last-child):not(.dropdown-toggle) {
border-radius: 0
}
.btn_boot-group > .btn_boot:first-child {
margin-left: 0
}
.btn_boot-group > .btn_boot:first-child:not(:last-child):not(.dropdown-toggle) {
border-top-right-radius: 0;
border-bottom-right-radius: 0
}
.btn_boot-group > .btn_boot:last-child:not(:first-child), .btn_boot-group > .dropdown-toggle:not(:first-child) {
border-top-left-radius: 0;
border-bottom-left-radius: 0
}
.btn_boot-group > .btn_boot-group {
float: left
}
.btn_boot-group > .btn_boot-group:not(:first-child):not(:last-child) > .btn_boot {
border-radius: 0
}
.btn_boot-group > .btn_boot-group:first-child:not(:last-child) > .btn_boot:last-child, .btn_boot-group > .btn_boot-group:first-child:not(:last-child) > .dropdown-toggle {
border-top-right-radius: 0;
border-bottom-right-radius: 0
}
.btn_boot-group > .btn_boot-group:last-child:not(:first-child) > .btn_boot:first-child {
border-top-left-radius: 0;
border-bottom-left-radius: 0
}
.btn_boot-group .dropdown-toggle:active, .btn_boot-group.open .dropdown-toggle {
outline: 0
}
.btn_boot-group > .btn_boot + .dropdown-toggle {
padding-right: 8px;
padding-left: 8px
}
.btn_boot-group > .btn_boot-lg + .dropdown-toggle {
padding-right: 12px;
padding-left: 12px
}
.btn_boot-group.open .dropdown-toggle {
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125)
}
.btn_boot-group.open .dropdown-toggle.btn_boot-link {
-webkit-box-shadow: none;
box-shadow: none
}
.btn_boot .caret {
margin-left: 0
}
.btn_boot-lg .caret {
border-width: 5px 5px 0;
border-bottom-width: 0
}
.dropup .btn_boot-lg .caret {
border-width: 0 5px 5px
}
.btn_boot-group-vertical > .btn_boot, .btn_boot-group-vertical > .btn_boot-group, .btn_boot-group-vertical > .btn_boot-group > .btn_boot {
display: block;
float: none;
width: 100%;
max-width: 100%
}
.btn_boot-group-vertical > .btn_boot-group > .btn_boot {
float: none
}
.btn_boot-group-vertical > .btn_boot + .btn_boot, .btn_boot-group-vertical > .btn_boot + .btn_boot-group, .btn_boot-group-vertical > .btn_boot-group + .btn_boot, .btn_boot-group-vertical > .btn_boot-group + .btn_boot-group {
margin-top: -1px;
margin-left: 0
}
.btn_boot-group-vertical > .btn_boot:not(:first-child):not(:last-child) {
border-radius: 0
}
.btn_boot-group-vertical > .btn_boot:first-child:not(:last-child) {
border-top-left-radius: 4px;
border-top-right-radius: 4px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0
}
.btn_boot-group-vertical > .btn_boot:last-child:not(:first-child) {
border-top-left-radius: 0;
border-top-right-radius: 0;
border-bottom-right-radius: 4px;
border-bottom-left-radius: 4px
}
.btn_boot-group-vertical > .btn_boot-group:not(:first-child):not(:last-child) > .btn_boot {
border-radius: 0
}
.btn_boot-group-vertical > .btn_boot-group:first-child:not(:last-child) > .btn_boot:last-child, .btn_boot-group-vertical > .btn_boot-group:first-child:not(:last-child) > .dropdown-toggle {
border-bottom-right-radius: 0;
border-bottom-left-radius: 0
}
.btn_boot-group-vertical > .btn_boot-group:last-child:not(:first-child) > .btn_boot:first-child {
border-top-left-radius: 0;
border-top-right-radius: 0
}
.btn_boot-group-justified {
display: table;
width: 100%;
table-layout: fixed;
border-collapse: separate
}
.btn_boot-group-justified > .btn_boot, .btn_boot-group-justified > .btn_boot-group {
display: table-cell;
float: none;
width: 1%
}
.btn_boot-group-justified > .btn_boot-group .btn_boot {
width: 100%
}
.btn_boot-group-justified > .btn_boot-group .dropdown-menu {
left: auto
}
.btn_boot {
display: inline-block;
padding: 6px 12px;
margin-bottom: 0;
font-size: 14px;
font-weight: bolder;
line-height: 0.9;
text-align: center;
white-space: nowrap;
vertical-align: middle;
-ms-touch-action: manipulation;
touch-action: manipulation;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
background-image: none;
border: 1px solid transparent;
border-radius: 4px;
}
.btn_boot.active.focus, .btn_boot.active:focus, .btn_boot.focus, .btn_boot:active.focus, .btn_boot:active:focus, .btn_boot:focus {
}
.btn_boot.focus, .btn_boot:focus, .btn_boot:hover {
color: #333;
text-decoration: none
}
.btn_boot.active, .btn_boot:active {
background-image: none;
outline: 0;
}
.btn_boot.disabled, .btn_boot[disabled], fieldset[disabled] .btn_boot {
cursor: not-allowed;
filter: alpha(opacity=65);
-webkit-box-shadow: none;
box-shadow: none;
opacity: .65
}
a.btn_boot.disabled, fieldset[disabled] a.btn_boot {
pointer-events: none
}
.btn_boot-default {
color: #333;
background-color: #eeeeee;
border-color: #D5D5D5
}
.btn_boot-default.focus, .btn_boot-default:focus {
color: #333;
background-color: #eeeeee;
border-color: #D5D5D5
}
.btn_boot-default:hover {
color: #333;
background-color: #eeeeee;
border-color: #D5D5D5
}
.btn_boot-default.active, .btn_boot-default:active, .open > .dropdown-toggle.btn_boot-default {
color: #333;
background-color: #DDDDDD;
border-color: #D5D5D5
}
.btn_boot-default.active.focus, .btn_boot-default.active:focus, .btn_boot-default.active:hover, .btn_boot-default:active.focus, .btn_boot-default:active:focus, .btn_boot-default:active:hover, .open > .dropdown-toggle.btn_boot-default.focus, .open > .dropdown-toggle.btn_boot-default:focus, .open > .dropdown-toggle.btn_boot-default:hover {
color: #333;
background-color: #DDDDDD;
border-color: #D5D5D5
}
.btn_boot-default.active, .btn_boot-default:active, .open > .dropdown-toggle.btn_boot-default {
background-image: none
}
.btn_boot-default.disabled.focus, .btn_boot-default.disabled:focus, .btn_boot-default.disabled:hover, .btn_boot-default[disabled].focus, .btn_boot-default[disabled]:focus, .btn_boot-default[disabled]:hover, fieldset[disabled] .btn_boot-default.focus, fieldset[disabled] .btn_boot-default:focus, fieldset[disabled] .btn_boot-default:hover {
background-color: #fff;
border-color: #D5D5D5
}
.btn_boot-default .badge {
color: #fff;
background-color: #8c8c8c
}
</style>
<div class="btn_boot-group" style="
width: 190px;
margin: 0 auto;
height: 26px;
align-self: center;
text-align: center;
" innerId="group">
<button type="button" class="btn_boot btn_boot-default" innerId="funnel">Воронка</button>
<button type="button" class="btn_boot btn_boot-default active" innerId="canban">Канбан</button>
</div>
```
JAVASCRIPT код:
``` xml
$(".btn_boot-group > .btn_boot").click(function(){
$(this).addClass("active").siblings().removeClass("active");
});
var funnel = jQuery(view.container[0]).children("[innerId='group']").children("[innerId='funnel']");
funnel.text(i18n.tr('Воронка'));
var canban = jQuery(view.container[0]).children("[innerId='group']").children("[innerId='canban']");
canban.text(i18n.tr('Канбан'));
var funnel_cmp = view.playerView.getViewWithId('crm_form_funnel_funnel');
var canban_cmp = view.playerView.getViewWithId('crm_form_funnel_canban');
var bottom_cmp = view.playerView.getViewWithId('crm_form_funnel_bottom_sum');
model.playerModel.funnelDrawn = false;
model.playerModel.canbanDrawn = false;
funnel.click(function(){
$('body').css('overflow', 'auto');
funnel_cmp.setVisible(true);
canban_cmp.setVisible(false);
bottom_cmp.setVisible(true);
model.playerModel.isFunnel = true;
if (!model.playerModel.funnelDrawn) {
model.playerModel.redraw();
}
});
canban.click(function(){
$('body').css('overflow', 'auto');
funnel_cmp.setVisible(false);
canban_cmp.setVisible(true);
bottom_cmp.setVisible(false);
model.playerModel.isFunnel = false;
if (!model.playerModel.canbanDrawn) {
model.playerModel.redraw();
}
});
```
#### crm_component_notifications {#uMNotifications}
+--------------------------------------------------------+----------------------------------------------------------+
| Свойство | Значение |
+========================================================+==========================================================+
| Код | crm_component_notifications |
+--------------------------------------------------------+----------------------------------------------------------+
| Использовать в формах | выключен |
+--------------------------------------------------------+----------------------------------------------------------+
HTML код:
``` xml
<style>
.save_button_container {
text-align: center;
padding-top: 21px;
padding-bottom: 21px;
}
.notification-container {
width: 300px;
position: absolute;
bottom: 40px;
right: 15px;
}
.notification {
padding: 12px;
text-overflow: ellipsis;
white-space: nowrap;
width: 275px;
background-color: #ffffff;
border-radius: 5px;
box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.75);
margin-top: 10px;
color: #606060;
font-size: 14px;
}
.info_block {
display: flex;
}
.link_block {
padding: 15px 0 15px 0;
width: 270px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.button_success {
display: inline-block;
background-color: #49b785;
color: #ffffff;
height: 32px;
min-width: 32px;
padding-left: 30px;
padding-right: 30px;
-moz-padding-end: 25px;
-moz-padding-start: 25px;
border: none;
border-radius: 4px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
font-size: 14px;
font-weight: bold;
margin-left: 25px;
}
.button_remain {
display: inline-block;
background-color: #ffffff;
color: #606060;
height: 32px;
min-width: 32px;
padding-left: 30px;
padding-right: 30px;
-moz-padding-end: 25px;
-moz-padding-start: 25px;
border-radius: 4px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
font-size: 14px;
font-weight: bold;
border: 1px solid #e2e2e2;
}
.notification.more-notifications {
padding: 6px 9px 6px 15px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.comment_block {
width: 250px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
opacity: 0.5;
}
.link_block a {
font-weight: bold;
color: #606060;
font-size: 14px;
}
.ring_block {
padding-right: 9px;
}
</style>
```
JAVASCRIPT код:
``` xml
var synergyURL = window.location.protocol + "//" + window.location.host + "/Synergy/";
AS.OPTIONS.coreUrl = synergyURL;
var putItem = setInterval(function () {
var element = jQuery('.popupMenuBlack.popupMenuItemLeftBlack.createButton table.popupMenuItemBlack > tbody > tr:last');
var elementLength = jQuery('.popupMenuBlack.popupMenuItemLeftBlack.createButton table.popupMenuItemBlack > tbody').length;
var el2 = jQuery('.popupMenuBlack.popupMenuItemLeftBlack.createButton table.popupMenuItemBlack > tbody > tr:last [title="Напоминание"]');
var menuHeight = jQuery('.popupMenuBlack.popupMenuItemLeftBlack.createButton table.popupMenuItemBlack').parent();
if (elementLength == 1 && el2.length == 0) {
element.after('<tr><td><table onmouseover="mouseOver(this)" onmouseout="mouseOut(this)" cellpadding="0" cellspacing="0" border="0" style="width: 100%; height: 24px;"><colgroup><col></colgroup><tbody><tr><td width="24px" class=""><img src="images/empty.gif" class="gwt-Image" style="width: 24px; height: 24px;"></td><td title="Напоминание" class="popup-menu-text" onclick="onItemClick()">Напоминание</td></tr></tbody></table></td></tr>')
menuHeight.height(menuHeight.height() + 30);
}
}, 100);
var onItemClick = function () {
var container = jQuery('<div></div>', {id: 'form_player_container'});
container.append(jQuery('<div></div>', {id: 'form_player_div'}));
var buttonContainer = jQuery('<div></div>', {class: 'save_button_container'});
var button = jQuery('<button id="save_button_task" class="button button-success" disabled>' + i18n.tr("Сохранить") + '</button>');
buttonContainer.append(button);
container.append(buttonContainer);
var dialog = container.dialog({
modal: true,
width: 600,
resizable: false,
close: function (event, ui) {
dialog.dialog('destroy').remove();
},
title: i18n.tr("Создание напоминания")
});
button.click(function () {
var data = getData();
saveTask(data, function (result) {
notShowed.push({
taskID: JSON.parse(result).taskID,
taskObject: getTaskObjectArray(data.task),
start: data.start,
finish: data.finish,
task: data.task
});
dialog.dialog('destroy').remove();
});
});
jQuery('.popupMenuItemLeftBlack').hide();
portal.createPlayer();
};
function getData() {
var dict = portal.player.model.getModelWithId('dict').getTextValue();
var task = portal.player.model.getModelWithId('comment').getValue();
if (!task || task == 'null') {
task = '';
}
var start = portal.player.model.getModelWithId('start').getValue();
var lead = portal.player.model.getModelWithId('lead');
var leadId = lead.getValue();
var leadName = lead.getTextValue();
var breakChar = String.fromCharCode(13);
var result = 'Напоминание!' + breakChar +
dict + breakChar +
leadName + breakChar +
'#submodule=common&action=open_document&document_identifier=' + leadId + breakChar +
breakChar +
task;
return {
task: result,
start: start,
finish: start.substr(0, start.indexOf(' ')) + " 23:59:00"
};
}
var mouseOver = function (element) {
element.style.backgroundColor = '#E4EEF5';
};
var mouseOut = function (element) {
element.style.backgroundColor = '';
};
var portal = {
player: null,
clearPlayer: function () {
if (portal.player) {
portal.player.destroy();
}
jQuery("#save_button_task").attr('disabled');
portal.player = null;
},
/**
* добавить новый проигрыватель форм
*/
createPlayer: function (dataId) {
portal.clearPlayer();
portal.player = AS.FORMS.createPlayer();
portal.player.model.on(AS.FORMS.EVENT_TYPE.valueChange, function (event, model, view) {
var task = portal.player.model.getModelWithId('comment');
var start = portal.player.model.getModelWithId('start');
var lead = portal.player.model.getModelWithId('lead');
if (!task || !start || !lead) {
return;
}
var startValue = start.getValue();
var leadValue = lead.getValue();
if (startValue && leadValue) {
jQuery("#save_button_task").removeAttr('disabled', 'disabled');
} else {
jQuery("#save_button_task").attr('disabled', 'disabled');
}
});
portal.player.view.setEditable(true);
AS.SERVICES.showWaitWindow();
var handler = function (definition, data) {
portal.player.model.buildModelsDefinition(definition, null);
AS.SERVICES.hideWaitWindow();
if (data) {
portal.player.model.setAsfData(data);
}
};
jQuery.when(loadDefaultAsfData("crm_form_task"))
.then(function (data) {
jQuery.when(loadFormDefinition("crm_form_task", 0), data).then(handler);
});
portal.player.view.appendTo($('#form_player_div'));
//jQuery('.asf-datePopup').datepicker("option", "minDate", new Date(2016, 12, 21));
}
};
function loadDefaultAsfData(formCode) {
return AS.FORMS.ApiUtils.simpleAsyncGet('rest/api/asforms/getDefaultContent?formCode=' + formCode);
}
function loadFormDefinition(code, version) {
if (version) {
return AS.FORMS.ApiUtils.simpleAsyncGet('rest/api/asforms/form_ext?formCode=' + code + "&version=" + version);
} else {
return AS.FORMS.ApiUtils.simpleAsyncGet('rest/api/asforms/form_ext?formCode=' + code);
}
}
function loadTasks(handler) {
var currentDate = $.datepicker.formatDate('yy-mm-dd', new Date());
var finish = new Date();
finish.setDate(finish.getDate() + 7);
var finishDate = $.datepicker.formatDate('yy-mm-dd', finish);
return AS.FORMS.ApiUtils.simpleAsyncGet('rest/api/diary/tasks/' + AS.OPTIONS.currentUser.userId + '/all?start=' + currentDate + '&finish=' + finishDate, handler);
}
function completeTask(taskID) {
return AS.FORMS.ApiUtils.simpleAsyncGet('rest/api/diary/tasks/complete?taskID=' + taskID);
}
function remainLater(data, handler) {
return saveTask(data);
}
function saveTask(data, handler) {
return AS.FORMS.ApiUtils.simpleAsyncPost('rest/api/diary/tasks/' + AS.OPTIONS.currentUser.userId + '/save',
AS.FORMS.ApiUtils.getHandler(handler, true), "text", data, undefined, function () {
});
}
function createNotification(taskObject, taskID) {
var remain = jQuery('<button class="button_remain" taskID="' + taskID + '">' + i18n.tr("Отложить") + '</button>');
var close = jQuery('<button class="button_success" taskID="' + taskID + '">' + i18n.tr("Закрыть") + '</button>');
close.click(function (event) {
var button = jQuery(event.target);
var taskID = button.attr('taskID');
completeTask(taskID);
for (var i = 0; i < showed.length; i++) {
if (showed[i].taskID === taskID) {
showed.splice(i, 1);
break;
}
}
showNotify();
});
remain.click(function (event) {
var button = jQuery(event.target);
var taskID = button.attr('taskID');
for (var i = 0; i < showed.length; i++) {
if (showed[i].taskID === taskID) {
var element = showed[i];
var now = new Date();
now.setMinutes(now.getMinutes() + 15);
element.start = AS.FORMS.DateUtils.formatDate(now, '${yyyy}-${mm}-${dd} ${HH}:${MM}:${SS}');
if (new Date(element.finish).getTime() < new Date(element.start).getTime()) {
now = new Date(element.finish);
now.setMinutes(now.getMinutes() + 15);
element.finish = AS.FORMS.DateUtils.formatDate(now, '${yyyy}-${mm}-${dd} ${HH}:${MM}:${SS}');
}
remainLater(element);
notShowed.push(element);
showed.splice(i, 1);
break;
}
}
showNotify();
});
var buttonBlock = jQuery('<div></div>', {class: 'button_block'});
buttonBlock.append(remain);
buttonBlock.append(close);
var infoBlock = jQuery('<div></div>', {class: 'info_block'});
var ring = jQuery('<div class="ring_block"><img src="data:image/jpeg;base64, ' + ringBase64 + '"/></div>');
infoBlock.append(ring);
var textInfo = jQuery('<div></div>', {class: 'text_info'});
var dictValue = jQuery('<div title="' + _.escape(taskObject[1]) + '" class="dict_block">' + taskObject[1] + '</div>');
textInfo.append(dictValue);
var comment = jQuery('<div title="' + _.escape(taskObject[5]) + '" class="comment_block">' + taskObject[5] + '</div>');
textInfo.append(comment);
infoBlock.append(textInfo);
var linkBlock = jQuery('<div class="link_block"><a title="' + _.escape(taskObject[2]) + '" href="' + taskObject[3] + '">' + taskObject[2] + '</a></div>');
var element = jQuery("<div class='notification'></div>");
element.append(infoBlock);
element.append(linkBlock);
element.append(buttonBlock);
return element;
}
/**
* Проверка не наступило ли время уведомления
*/
function checkTimeInArray() {
setInterval(function () {
var tmp = [];
var addedNotify = false;
notShowed.forEach(function (task) {
var object = {
taskID: task.taskID,
taskObject: task.taskObject,
start: task.start,
task: task.task,
finish: task.finish
};
if (isTimeToShow(task.start)) {
showed.push(object);
addedNotify = true;
} else {
tmp.push(object);
}
});
notShowed = tmp;
if (addedNotify) {
showNotify();
}
}, 1000);
}
/**
* Отображение уведомлений, берет массив уведомлений которые необходимо показать и отображает их
*/
function showNotify() {
clearAllNotifications();
var tmp = 0;
var more = 0;
for (var i = showed.length - 1; i >= 0; i--) {
var task = showed[i];
if (tmp < 3) {
notificationPanel.append(createNotification(task.taskObject, task.taskID));
} else {
more++;
}
tmp++;
}
if (more > 0) {
notificationPanel.append(jQuery('<div class="notification more-notifications">' + i18n.tr("Еще напоминаний:") + ' ' + more + '</div>'));
}
}
/**
* Наступило ли время для показа уведомления
*/
function isTimeToShow(start) {
return new Date().getTime() > new Date(start).getTime();
}
/**
* Отчистка всех уведомлений
*/
function clearAllNotifications() {
jQuery('.notification').remove();
}
/**
* Создана ли заметка через нужную форму
*/
function isValidTask(taskObject) {
return taskObject[0] == 'Напоминание!' && taskObject.length == 6;
}
/**
* Получение массива объектов (разделены переносами)
*/
function getTaskObjectArray(task) {
return task.split(String.fromCharCode(13));
}
/**
* Вставка панели уведомлений
*/
jQuery(document).ready(function () {
var checkExist = setInterval(function () {
if (AS.OPTIONS.login && AS.OPTIONS.login != '') {
addPanel();
clearInterval(checkExist);
}
}, 100);
});
var notificationPanel = jQuery("<div class='notification-container'></div>");
var showed = [];
var notShowed = [];
function addPanel() {
jQuery("body").append(notificationPanel)
notificationPanel.show(function () {
loadTasks(function (data) {
clearAllNotifications();
data.forEach(function (task) {
var taskObject = getTaskObjectArray(task.task);
if (isValidTask(taskObject)) {
var object = {
taskID: task.taskID,
taskObject: taskObject,
start: task.start,
task: task.task,
finish: task.finish
};
if (isTimeToShow(task.start)) {
showed.push(object);
} else {
notShowed.push(object);
}
}
});
checkTimeInArray();
showNotify();
});
});
}
//Иконка колокольчика
var ringBase64 = 'iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAAACXBIWXMAAAsTAAALEwEAmpwYAAADGGlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjaY2BgnuDo4uTKJMDAUFBUUuQe5BgZERmlwH6egY2BmYGBgYGBITG5uMAxIMCHgYGBIS8/L5UBFTAyMHy7xsDIwMDAcFnX0cXJlYE0wJpcUFTCwMBwgIGBwSgltTiZgYHhCwMDQ3p5SUEJAwNjDAMDg0hSdkEJAwNjAQMDg0h2SJAzAwNjCwMDE09JakUJAwMDg3N+QWVRZnpGiYKhpaWlgmNKflKqQnBlcUlqbrGCZ15yflFBflFiSWoKAwMD1A4GBgYGXpf8EgX3xMw8BSMDVQYqg4jIKAUICxE+CDEESC4tKoMHJQODAIMCgwGDA0MAQyJDPcMChqMMbxjFGV0YSxlXMN5jEmMKYprAdIFZmDmSeSHzGxZLlg6WW6x6rK2s99gs2aaxfWMPZ9/NocTRxfGFM5HzApcj1xZuTe4FPFI8U3mFeCfxCfNN45fhXyygI7BD0FXwilCq0A/hXhEVkb2i4aJfxCaJG4lfkaiQlJM8JpUvLS19QqZMVl32llyfvIv8H4WtioVKekpvldeqFKiaqP5UO6jepRGqqaT5QeuA9iSdVF0rPUG9V/pHDBYY1hrFGNuayJsym740u2C+02KJ5QSrOutcmzjbQDtXe2sHY0cdJzVnJRcFV3k3BXdlD3VPXS8Tbxsfd99gvwT//ID6wIlBS4N3hVwMfRnOFCEXaRUVEV0RMzN2T9yDBLZE3aSw5IaUNak30zkyLDIzs+ZmX8xlz7PPryjYVPiuWLskq3RV2ZsK/cqSql01jLVedVPrHzbqNdU0n22VaytsP9op3VXUfbpXta+x/+5Em0mzJ/+dGj/t8AyNmf2zvs9JmHt6vvmCpYtEFrcu+bYsc/m9lSGrTq9xWbtvveWGbZtMNm/ZarJt+w6rnft3u+45uy9s/4ODOYd+Hmk/Jn58xUnrU+fOJJ/9dX7SRe1LR68kXv13fc5Nm1t379TfU75/4mHeY7En+59lvhB5efB1/lv5dxc+NH0y/fzq64Lv4T8Ffp360/rP8f9/AA0ADzT6lvFdAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAADBSURBVHjazJSxDoIwEIa/Etkc9AEclAchrizMbMaEnTegr2GcfQPiyovgZgLv4FAXlQo9hRATb2rv7rvr31yrDOPMG5nP7LnY2l5FBJyx2pcfO0QUFERDj+QRAxC7on1XQkUKQEpFImp4WMoB9dqtOTHn+CbP2KJXXPA7JW5suEqis146+GSyhtB5Z6EMBE4gkIGFE1hOGo0/B7SYpV2AJheBvEXa0fjy9ErVHT41RXSNwVAPB/Y0NOxcIfXzX+M+ACEjIJk9xFSpAAAAAElFTkSuQmCC';
```
#### crm_component_registry_chooser {#uMRegistryChooser}
+--------------------------------------------------------+----------------------------------------------------------+
| Свойство | Значение |
+========================================================+==========================================================+
| Код | crm_component_registry_chooser |
+--------------------------------------------------------+----------------------------------------------------------+
| Использовать в формах | включен |
+--------------------------------------------------------+----------------------------------------------------------+
HTML код:
``` xml
<style>
.edit {
border: 1px solid black;
float: right;
background: url('light/images/buttons/dark.gray/edit.png') 50%;
width: 30px;
height: 22px;
background-repeat: no-repeat;
border-radius: 5px;
border-color: gray;
}
.edited{
background-color: #efefef;
}
</style>
<div innerId="textView" style="text-decoration:underline; cursor:pointer;width:calc(100% ); color:#06f; margin-bottom:2px"></div>
<input type="text" class="asf-textBox" innerId="name" style="width:calc(100% )"/>
<div style="color:#606060; text-decoration:underline" class="asf-InlineBlock asf-cursorPointer" innerId="add">+Создать</div>
<div style="color:#606060; margin-left:10px; text-decoration:underline" class="asf-InlineBlock asf-cursorPointer" innerId="browse">Выбрать из реестра</div>
<div style="color:#606060; margin-left:10px; text-decoration:underline" class="asf-InlineBlock asf-cursorPointer" innerId="delete">&#10005; Удалить</div>
```
JAVASCRIPT код:
``` xml
/**
* обновить текстовое представление записи реестра
*/
model.updateTextView = function () {
if (!model.getValue()) {
model.textValue = "";
model.asfDataId = null;
model.trigger(AS.FORMS.EVENT_TYPE.dataLoad, [model]);
return;
}
AS.FORMS.ApiUtils.getAsfDataUUID(model.getValue(), function (newAsfDataId) {
model.asfDataId = newAsfDataId;
AS.FORMS.ApiUtils.getDocMeaningContent(registry.registryID, newAsfDataId, function (text) {
if (text === null || text === '') {
model.textValue = i18n.tr('Документ');
} else {
model.textValue = text;
}
model.trigger(AS.FORMS.EVENT_TYPE.dataLoad, [model]);
});
});
};
/**
* получить тесктовое представление записи реестра
* @returns {string|string|*}
*/
model.getTextValue = function () {
return model.textValue;
};
// подписываемся на событие модели об изменении содержания, чтобы подгрузить дополнительные данные
model.on(AS.FORMS.EVENT_TYPE.valueChange, function () {
model.updateTextView();
});
/**
* метод реализовывает вставку asfData
* @param asfData
*/
model.setAsfData = function (asfData) {
model.setValue(asfData.key);
};
/**
* метод реализовывает получение данных компонента для сохранения
* @param blockNumber
* @returns {*}
*/
model.getAsfData = function (blockNumber) {
return AS.FORMS.ASFDataUtils.getBaseAsfData(model.asfProperty, blockNumber, model.textValue, model.value);
};
/* инициализация отображения */
/**
* реестр
* @type {object}
*/
var registry = null;
/**
* видимые колонки реестра
* @type {Array}
*/
var registryColumns = [];
/**
* поле ввода для поиска записей реестра
* @type {XMLList|*}
*/
var input = jQuery(view.container).children("[innerId='name']");
/**
* поле для отображения выбранной записи реестра
* @type {XMLList|*}
*/
var textView = jQuery(view.container).children("[innerId='textView']");
/**
* кнопка добавления записи
* @type {XMLList|*}
*/
var addIcon = jQuery(view.container).children("[innerId='add']");
/**
* кнопка выбора записи из реестра
* @type {XMLList|*}
*/
var browseIcon = jQuery(view.container).children("[innerId='browse']");
/**
* кнопка удаления текущей выбранной записи
* @type {XMLList|*}
*/
var deleteIcon = jQuery(view.container).children("[innerId='delete']");
// кнопку удаления текущей выбраннйо записи скрываем
deleteIcon.hide();
// по нажатию на кнопку "выбрать из реестра" открываем стандартный диалог выбра записи реестра
browseIcon.click(function () {
AS.SERVICES.showRegisterLinkDialog(registry, function (documentId) {
model.setValue(documentId);
});
});
// по нажатию на кнопку "создать" открываем форму создания записи реестра
addIcon.click(function () {
if (!registry.rr_create) {
alert("У вас нет прав на создание записей данного реестра");
return;
}
var createPlayerDiv = jQuery("<div>");
createPlayerDiv.css("width", "1000px");
createPlayerDiv.css("height", "700px");
createPlayerDiv.css("border", "1px solid #afafaf");
var saveButton = jQuery("<button>", {class: "ns-approveButton ns-basicChooserApplyButton"});
saveButton.button();
saveButton.html(i18n.tr("Создать"));
saveButton.css("margin", "auto");
saveButton.css("display", "block");
saveButton.css("margin-top", "10px");
saveButton.css("margin-bottom", "10px");
var player = AS.FORMS.createPlayer();
player.view.setEditable(true);
player.showFormData(registry.formId);
player.view.appendTo(createPlayerDiv);
player.model.on(AS.FORMS.EVENT_TYPE.dataLoad, function () {
console.log(player.model);
var registryModel = null;
if (player.model.formCode === 'crm_form_contact') {
registryModel = player.model.getModelWithId('crm_form_contact_lead_lead', 'crm_form_contact_lead');
}
if (player.model.formCode === 'crm_form_account') {
registryModel = player.model.getModelWithId('crm_form_account_lead_lead', 'crm_form_account_lead');
}
if (player.model.formCode === 'crm_form_dealActivity') {
registryModel = player.model.getModelWithId('crm_form_dealActivity_main_deal');
}
if (player.model.formCode === 'crm_form_leadActivity') {
registryModel = player.model.getModelWithId('crm_form_leadActivity_main_lead');
}
if (registryModel != null) {
registryModel.setValue(AS.SERVICES.getParameterByName("document_identifier", window.location.href));
}
});
createPlayerDiv.append(saveButton);
createPlayerDiv.dialog({
width: 1000,
height: 700,
modal: true
});
saveButton.click(function () {
var valid = player.model.isValid();
if (!valid) {
alert(i18n.tr("Введите все обязательные поля"));
return;
}
AS.SERVICES.showWaitWindow();
AS.FORMS.ApiUtils.simpleAsyncGet("rest/api/registry/create_doc?registryID=" + registry.registryID, function (result) {
if (result.errorCode != 0) {
AS.SERVICES.hideWaitWindow();
alert(i18n.tr("Во время сохранения данных по форме произошли ошибки. Обратитесь к администратору"));
return;
}
player.model.asfDataId = result.dataUUID;
player.saveFormData(function (result) {
AS.SERVICES.hideWaitWindow();
if (_.isUndefined(result)) {
alert(i18n.tr("Во время сохранения данных по форме произошли ошибки. Обратитесь к администратору"));
return;
};
createPlayerDiv.dialog("destroy");
AS.FORMS.ApiUtils.getDocumentIdentifier(result, function (documentID) {
model.setValue(documentID);
});
});
});
});
});
// по нажатию на кнопку удалить - удаляем выбранное значение
deleteIcon.click(function(){
model.setValue(null);
});
// по нажатию на текстовое отображение - открываем запись реестра на просмотр
textView.click(function () {
var createPlayerDiv = jQuery("<div>");
createPlayerDiv.css("width", "1000px");
createPlayerDiv.css("height", "700px");
var editButton = jQuery('<div class="edit"></div>');
var saveButton = jQuery("<button>", {class: "ns-approveButton ns-basicChooserApplyButton"});
saveButton.button();
saveButton.html(i18n.tr("Сохранить"));
saveButton.css("margin", "auto");
saveButton.css("display", "block");
saveButton.css("margin-top", "10px");
saveButton.css("margin-bottom", "10px");
if (registry.code == 'crm_registry_leadActivities' || registry.code == 'crm_registry_dealActivities') {
createPlayerDiv.append(editButton);
editButton.click(function () {
if (player.view.editable) {
player.view.setEditable(false);
editButton.removeClass('edited');
saveButton.hide();
} else {
player.view.setEditable(true);
editButton.addClass('edited');
saveButton.show();
}
});
}
createPlayerDiv.css("border", "1px solid #afafaf");
var player = AS.FORMS.createPlayer();
player.view.setEditable(false);
player.showFormData(null, null, model.asfDataId, 0);
player.view.appendTo(createPlayerDiv);
createPlayerDiv.append(saveButton);
saveButton.hide();
createPlayerDiv.dialog({
width: 1000,
height: 700,
modal: true
});
saveButton.click(function () {
var valid = player.model.isValid();
if (!valid) {
alert(i18n.tr("Введите все обязательные поля"));
return;
}
AS.SERVICES.showWaitWindow();
player.saveFormData(function (result) {
AS.SERVICES.hideWaitWindow();
if (_.isUndefined(result)) {
alert(i18n.tr("Во время сохранения данных по форме произошли ошибки. Обратитесь к администратору"));
return;
}
;
createPlayerDiv.dialog("destroy");
AS.FORMS.ApiUtils.getDocumentIdentifier(result, function (documentID) {
model.setValue(documentID);
});
});
});
});
// скрываем или отображаем поля ввода в зависимости от того режим чтения это или редактирования
if (editable) {
//textView.hide();
} else {
input.hide();
addIcon.hide();
browseIcon.hide();
deleteIcon.hide();
}
addIcon.text('+' + i18n.tr('Создать'));
browseIcon.text(i18n.tr('Выбрать из реестра'));
deleteIcon.html('<div style="color:#606060; margin-left:10px; text-decoration:underline" class="asf-InlineBlock asf-cursorPointer" innerId="delete">&#10005;' + i18n.tr('Удалить') + '</div>');
// реализовываем метод обновления отображения согласно изменившимся данным модели
view.updateValueFromModel = function () {
input.val("");
if (model.getValue()) {
textView.css("display", "");
input.hide();
textView.html(model.getTextValue());
input.hide();
if (editable) {
deleteIcon.css("display", "");
} else {
input.hide();
addIcon.hide();
browseIcon.hide();
deleteIcon.hide();
}
} else {
if (editable) {
input.css("display", "");
} else {
input.hide();
addIcon.hide();
browseIcon.hide();
deleteIcon.hide();
}
textView.html("");
input.text("");
deleteIcon.hide();
}
};
// подписываем на событие подгрузки дополнительных данных значения
model.on(AS.FORMS.EVENT_TYPE.dataLoad, function () {
view.updateValueFromModel();
});
/**
* если нет прав создания записи реестра, то кнопки создать не должно быть видно
*/
function validateIconsState() {
addIcon.hide();
if (registry.rr_create && editable) {
addIcon.css("display", "");
}
}
/**
* инициализируем компонент (получаем реестр, колонки)
*/
function initComponent() {
AS.FORMS.ApiUtils.simpleAsyncGet('rest/api/registry/info?code=' + model.code, function (reg) {
registry = reg;
registry.registryID = reg.registryID;
registryColumns = [];
registry.columns.forEach(function (col) {
if (col.visible != 1) {
return;
}
registryColumns.push(col);
});
registryColumns = registryColumns.sort(function (item1, item2) {
var number1 = item1.order;
var number2 = item2.order;
if (number1 === number2) {
if (item1.name < item2.name) {
return -1;
} else if (item1.name > item2.name) {
return 1;
}
} else {
if (number1 === 0) {
return 1;
} else if (number2 === 0) {
return -1;
} else if (number1 < number2) {
return -1;
} else {
return 1;
}
}
return 0;
});
model.updateTextView();
view.updateValueFromModel();
validateIconsState();
});
}
// при вводе пользователя отображаем первые 10 результатов поиска
input.on("input", function () {
var search = input.val();
if (search.length === 0 || !registry) {
AS.SERVICES.showDropDown([]);
return;
}
AS.FORMS.ApiUtils.getRegistryData(registry.registryID, 0, 10, search, null, null, function (foundData) {
var values = [];
foundData.result.forEach(function (record) {
var value = {value: record.documentID};
var label = "";
registryColumns.forEach(function (column) {
if (record.fieldValue[column.columnID] !== undefined) {
label += record.fieldValue[column.columnID] + " - ";
}
});
value.title = label;
values.push(value);
});
AS.SERVICES.showDropDown(values, input, null, function (selectedValue) {
model.setValue(selectedValue);
view.updateValueFromModel();
});
});
});
setTimeout(function () {
initComponent();
}, 0);
AS.SERVICES.getParameterByName = function(name, url) {
if (!url) {
url = window.location.href;
}
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
};
```
#### crm_component_social_links_accounts {#uMSocialLinksAccounts}
+--------------------------------------------------------+----------------------------------------------------------+
| Свойство | Значение |
+========================================================+==========================================================+
| Код | crm_component_social_links_accounts |
+--------------------------------------------------------+----------------------------------------------------------+
| Использовать в формах | включен |
+--------------------------------------------------------+----------------------------------------------------------+
HTML код:
``` xml
<div class='social_link_account'>
<div class='social_element'></div>
</div>
```
JAVASCRIPT код:
``` xml
var longIlond = model.playerModel.getModelWithId('crm_form_lead_main_account');
var checkExist = setInterval(function () {
if (longIlond.asfDataId) {
doAny(longIlond.asfDataId);
clearInterval(checkExist);
}
}, 100);
longIlond.on(AS.FORMS.EVENT_TYPE.valueChange, function (event, model) {
var currentDataId = model.asfDataId;
var checkExist = setInterval(function () {
if (longIlond.asfDataId != currentDataId) {
doAny(longIlond.asfDataId);
clearInterval(checkExist);
}
}, 100);
doAny(model.asfDataId);
});
function doAny(dataId) {
var parent = jQuery('.social_link_account');
jQuery.when(AS.FORMS.ApiUtils.loadAsfData(dataId, 0)).then(function (data) {
parent.empty();
var list = getSocial('crm_form_account_socialNetworks', 'crm_form_account_socialNetworks_socialNetworks-b', 'crm_form_account_socialNetworks_socialNetworksCombo-b', data);
list.forEach(function (item) {
if (item.key == 'Facebook Messenger') {
createFacebookLink(item.value, parent);
}
if (item.key == 'Skype') {
createSkypeLink(item.value, parent);
}
})
list = getSocial('crm_form_account_phone', 'crm_form_account_phone_phone-b', 'crm_form_account_phone_phoneCombo-b', data);
list.forEach(function (item) {
if (item.key == 'Viber') {
createViberLink(item.value, parent);
}else if (item.key == 'Telegram') {
createTelegramLink(item.value, parent);
}else {
createTelephoneLink(item.value, parent);
}
})
list = getSocial('crm_form_account_email', 'crm_form_account_email_email-b', 'crm_form_account_email_emailCombo-b', data);
list.forEach(function (item) {
createMailLink(item.value, parent);
});
});
}
function createMailLink(value, parent){
if(value){
parent.append(jQuery('<div class="social_element mail"><a target="_blank" href="mailto:'+value+'">' + value + '</a></div>'));
}
}
function createViberLink(value, parent){
if(value){
parent.append(jQuery('<div class="social_element viber"><a target="_blank" href="viber://add?number='+value+'">' + value + '</a></div>'));
}
}
function createTelegramLink(value, parent){
if(value){
parent.append(jQuery('<div class="social_element telegram"><a target="_blank" href="https://telegram.me/'+value+'">' + value + '</a></div>'));
}
}
function createTelephoneLink(value, parent){
if(value){
parent.append(jQuery('<div class="social_element tel"><a target="_blank" href="tel:'+value+'">' + value + '</a></div>'));
}
}
function getSocial(idTable, valId, keyId, data) {
var found = data.data.filter(function (item) {
return item.id === idTable;
});
var list = [];
found[0].data.forEach(function (item) {
var id = item.id;
if (id.indexOf(valId) !== -1) {
var i = id.substring(id.indexOf(valId) + valId.length);
if (!list[i]) {
list[i] = {'value': item.value}
} else {
list[i].value = item.value;
}
}
if (id.indexOf(keyId) !== -1) {
var i = id.substring(id.indexOf(keyId) + keyId.length);
if (!list[i]) {
list[i] = {'key': item.value}
} else {
list[i].key = item.value;
}
}
});
return list;
}
function createFacebookLink(value, parent) {
var id;
if (value.indexOf("profile.php?id=") !== -1) {
id = value.substring(value.indexOf('profile.php?id=') + 'profile.php?id='.length);
} else {
id = value.substring(value.indexOf('facebook.com/') + 'facebook.com/'.length);
}
if (id) {
parent.append(jQuery('<div class="social_element facebook"><a target="_blank" href="http://m.me/' + id + '">' + value + '</a></div>'))
}
}
function createSkypeLink(value, parent) {
if(value){
parent.append(jQuery('<div class="social_element skype"><a target="_blank" href="skype:' + value + '?call">' + i18n.tr("Позвонить") + ' ' + value + '</a></div>'))
parent.append(jQuery('<div class="social_element skype"><a target="_blank" href="skype:' + value + '?chat">' + i18n.tr("Написать") + ' ' + value + '</a></div>'))
}
}
```
#### crm_component_social_links_contacts {#uMSocialLinksContacts}
+--------------------------------------------------------+----------------------------------------------------------+
| Свойство | Значение |
+========================================================+==========================================================+
| Код | crm_component_social_links_contacts |
+--------------------------------------------------------+----------------------------------------------------------+
| Использовать в формах | включен |
+--------------------------------------------------------+----------------------------------------------------------+
HTML код:
``` xml
<style>
.social_element{
padding-left: 20px;
padding-bottom: 5px;
}
.skype{
background: url('data:image/png;base64,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');
background-repeat: no-repeat;
}
.viber{
background: url('data:image/png;base64,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');
background-repeat: no-repeat;
}
.facebook{
background: url('data:image/png;base64,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');
background-repeat: no-repeat;
}
.telegram{
background: url('data:image/png;base64,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');
background-repeat: no-repeat;
}
.tel{
background: url('data:image/png;base64,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');
background-repeat: no-repeat;
}
.mail{
background: url('data:image/png;base64,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');
background-repeat: no-repeat;
}
</style>
<div class='social_link_contact'>
<div class='social_element'></div>
</div>
```
JAVASCRIPT код:
``` xml
var longIlond = model.playerModel.getModelWithId('crm_form_lead_main_contact');
var checkExist = setInterval(function () {
if (longIlond.asfDataId) {
doAny(longIlond.asfDataId);
clearInterval(checkExist);
}
}, 100);
longIlond.on(AS.FORMS.EVENT_TYPE.valueChange, function (event, model) {
var currentDataId = model.asfDataId;
var checkExist = setInterval(function () {
if (longIlond.asfDataId != currentDataId) {
doAny(longIlond.asfDataId);
clearInterval(checkExist);
}
}, 100);
doAny(model.asfDataId);
});
function doAny(dataId) {
var parent = jQuery('.social_link_contact');
jQuery.when(AS.FORMS.ApiUtils.loadAsfData(dataId, 0)).then(function (data) {
parent.empty();
var list = getSocial('crm_form_contact_socialNetworks', 'crm_form_contact_socialNetworks_socialNetworks-b', 'crm_form_contact_socialNetworks_socialNetworksCombo-b', data);
list.forEach(function (item) {
if (item.key == 'Facebook Messenger') {
createFacebookLink(item.value, parent);
}
if (item.key == 'Skype') {
createSkypeLink(item.value, parent);
}
})
list = getSocial('crm_form_contact_phone', 'crm_form_contact_phone_phone-b', 'crm_form_contact_phone_phoneCombo-b', data);
list.forEach(function (item) {
if (item.key == 'Viber') {
createViberLink(item.value, parent);
}else if (item.key == 'Telegram') {
createTelegramLink(item.value, parent);
}else {
createTelephoneLink(item.value, parent);
}
})
list = getSocial('crm_form_contact_email', 'crm_form_contact_email_email-b', 'crm_form_contact_email_emailCombo-b', data);
list.forEach(function (item) {
createMailLink(item.value, parent);
});
});
}
function createMailLink(value, parent){
if(value){
parent.append(jQuery('<div class="social_element mail"><a target="_blank" href="mailto:'+value+'">' + value + '</a></div>'));
}
}
function createViberLink(value, parent){
if(value){
parent.append(jQuery('<div class="social_element viber"><a target="_blank" href="viber://add?number='+value+'">' + value + '</a></div>'));
}
}
function createTelegramLink(value, parent){
if(value){
parent.append(jQuery('<div class="social_element telegram"><a target="_blank" href="https://telegram.me/'+value+'">' + value + '</a></div>'));
}
}
function createTelephoneLink(value, parent){
if(value){
parent.append(jQuery('<div class="social_element tel"><a target="_blank" href="tel:'+value+'">' + value + '</a></div>'));
}
}
function getSocial(idTable, valId, keyId, data) {
var found = data.data.filter(function (item) {
return item.id === idTable;
});
var list = [];
found[0].data.forEach(function (item) {
var id = item.id;
if (id.indexOf(valId) !== -1) {
var i = id.substring(id.indexOf(valId) + valId.length);
if (!list[i]) {
list[i] = {'value': item.value}
} else {
list[i].value = item.value;
}
}
if (id.indexOf(keyId) !== -1) {
var i = id.substring(id.indexOf(keyId) + keyId.length);
if (!list[i]) {
list[i] = {'key': item.value}
} else {
list[i].key = item.value;
}
}
});
return list;
}
function createFacebookLink(value, parent) {
var id;
if (value.indexOf("profile.php?id=") !== -1) {
id = value.substring(value.indexOf('profile.php?id=') + 'profile.php?id='.length);
} else {
id = value.substring(value.indexOf('facebook.com/') + 'facebook.com/'.length);
}
if (id) {
parent.append(jQuery('<div class="social_element facebook"><a target="_blank" href="http://m.me/' + id + '">' + value + '</a></div>'))
}
}
function createSkypeLink(value, parent) {
if(value){
parent.append(jQuery('<div class="social_element skype"><a target="_blank" href="skype:' + value + '?call">' + i18n.tr("Позвонить") + ' ' + value + '</a></div>'))
parent.append(jQuery('<div class="social_element skype"><a target="_blank" href="skype:' + value + '?chat">' + i18n.tr("Написать") + ' ' + value + '</a></div>'))
}
}
```
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment