Установка приложения
----------------------

Предварительные шаги
~~~~~~~~~~~~~~~~~~~~~~

#. Установить самую актуальную версию платформы Arta Synergy, 
   не менее версии `4.1 minsky`_.

#. Установить самую актуальную версию `Конструктора приложений`_

#. Установить и запустить Elasticsearch `(инструкция по установке)`_

#. В подсистеме администрирования обновить базу данных и процессы.

#. Завести Системного пользователя:

   * с произвольными логином/паролем;
   * с доступом в систему;
   * с ролью "Разработчик Synergy", "Разработчик web-клиента" и 
     "Администратор";
   * назначенный на произвольную должность.

.. _`4.1 minsky`: http://tdd.lan.arta.kz/docs/synergy/tags/minsky/admin-manual/html/install-and-setup.html#install-and-setup.install

.. _`Конструктора приложений`: http://rtd.lan.arta.kz/docs/synergy-constructor/ru/latest/

.. _`(инструкция по установке)`: http://tdd.lan.arta.kz/docs/synergy/tags/minsky/admin-manual/html/appendix.dashboards.html

Процесс установки
~~~~~~~~~~~~~~~~~~~

Synergy Customers устанавливается отдельным пакетом. Возможны следующие 
варианты установки:

#. ``Install/Upgrade Configuration`` - установка приложений Customers и 
   импорта, загрузка конфигураций (Synergy и конструктора), без БД и 
   хранилища. Соответственно, имеющиеся в Системе данные не удаляются.

#. ``Manual`` - установка только приложения для импорта. 

Установочный пакет находится в репозитории *product-stable*. В файле 
``/etc/apt/sources.list`` необходимо добавить либо раскомментировать 
следующие строки:

    .. code-block:: html 

	deb http://deb.arta.kz/tengri product-stable main contrib non-free
    
    .. code-block:: html 

	deb http://deb.arta.kz/tengri extensions main contrib non-free


Для установки приложения необходимо выполнить команду:

    .. code-block:: html 

	# apt-get update
	# apt-get install arta-synergy-apps-customers

В ходе установки необходимо выполнить следующее:

* Выбрать тип установки ``Install/Upgrade Configuration`` из предложенного 
  списка:

    .. figure:: resources/img/customers_install.png

        Рис. Тип установки

* Указать URL до Synergy, на котором производится работа (например: 
  http://192.168.4.80:8080/Synergy):

    .. figure:: resources/img/customers_1.png

        Рис. Ввод synergy URL

* Ввести последовательно логин и пароль Системного пользователя:

    .. figure:: resources/img/customers_2.png

        Рис. Ввод логина

    .. figure:: resources/img/customers_3.png

        Рис. Ввод пароля

После установки
~~~~~~~~~~~~~~~~~

Во-первых, в подсистеме конфигурирования необходимо добавить Системного 
пользователя в группу "Все права" (с кодом ``customers_groups_access_all``).

Во-вторых, в подсистеме конфигурирования необходимо проверить 
логин и пароль Системного пользователя в следующих блокирующих процессах:

* ``event.blocking.interpreter.changeDealStage``
* ``event.blocking.interpreter.createActivity``
* ``event.blocking.interpreter.createUserPlansForSales``
* ``event.blocking.interpreter.getEndDealStatus``
* ``event.blocking.interpreter.add_deal_status``
* ``event.blocking.interpreter.add_deal_status_on_change``
* ``event.blocking.interpreter.calculate_deal_status_duration_summary``
* ``event.blocking.interpreter.change_deal_status``
* ``event.blocking.interpreter.sum_deal_expired_days``
* ``event.blocking.interpreter.sum_expired_days``
* ``event.blocking.interpreter.transaction_check``
* ``event.blocking.interpreter.transaction_check2``
* ``event.blocking.interpreter.contracts_activity``
* ``event.blocking.interpreter.leads_activity``
* ``event.blocking.interpreter.lidschange``
* ``event.blocking.interpreter.activity_status``

В-третьих, для корректной работы модуля Справочники, в подсистеме конфигурирования необходимо выполнить следующие действия:

* Добавить пользователей с правом редактирования в группу ``customers_group_dicts_editors``
* Добавить права для реестров, которые необходимо отобразить в модуле "Справочник" для группы ``customers_group_dicts_editors``
* Добавить реестры которые, необходимо отобразить в модуле "Справочники" в группу реестров ``customers_regGroup_dicts``

В-четвёртых, для работы с пользовательскими фильтрами необходимо дать соответствующим пользователям права на реестр ``customers_registry_lists``

В-пятых, в конструкторе для приложения customers в свойствах приложения указать актульный логин и пароль пользователя по умолчанию (администратора с доступом к справочникам и настройкам системы).


В-шестых, необходимо проверить доступность приложения Customers по 
адресу ``http://адрес_сервера:порт/customers`` (например: 
http://192.168.4.80:8080/customers).

Ожидаемое поведение:

1. Откроется страница авторизации.
2. Авторизация Системным пользователем произойдет успешно.
3. Откроется главная страница модуля (с поиском и кнопками создания).
4. При выполнении произвольного запроса в поиске приложение отвечает не 
   ошибкой сервера, а отсутствием данных.

Если фактическое поведение отличается от ожидаемого, то необходимо:

* в подсистеме администрирования проверить актуальность базы данных и 
  процессов и, при необходимости, их обновить;

* проверить конфигурационный файл ``/etc/nginx/sites-enabled/synergy-base`` 
  на наличие следующих настроек:

    .. code-block:: xml 

        location /constructor {
               allow                   all;
               proxy_pass              http://127.0.0.1:8080;
               proxy_set_header        Host       $host;
               proxy_set_header        X-Real-IP  $remote_addr;
               }

        location /customers {
               proxy_pass http://127.0.0.1:8080/customers;
               }

        location /import {
               allow                   all;
               proxy_pass              http://127.0.0.1:8080/import;
               proxy_set_header        Host       $host;
               proxy_set_header        X-Real-IP  $remote_addr;
               }
        
        location /salesplan{
               proxy_pass              http://127.0.0.1:8080/salesplan;
               }

* открыть Конструктор приложений по адресу ``http://адрес_сервера:порт/constructor`` 
  (например: http://192.168.4.80:8080/constructor), авторизоваться под Системным 
  пользователем, открыть приложение с кодом ``customers`` и задеплоить его через 
  меню "Клиент" -> "Деплой".


Настройки уведомлений
~~~~~~~~~~~~~~~~~~~~~~

В ресурсах приложения ``customers`` в скрипте ``CustomersNotification.js`` при необходимости можно изменить параметры уведомлений:

* ``notificationsLimit``: 3, // максимальное количество отображаемых уведомлений на экране
* ``refreshInterval``: 1, // интервал обновления для уведомлений в минутах
