Обновление приложения
-----------------------

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

#. Установить самую актуальную версию платформы 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``:

#. ``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 

	# 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

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

.. attention:: В случае, если платформа Arta Synergy была обновлена с версии 
               **4.0 hamming** до **4.1 minsky**, требуется переустановка 
               приложения для импорта. 

Для этого необходимо переустановить пакет Customers командой:

    .. code-block:: html 

	# aptitude reinstall arta-synergy-apps-customers

И в ходе обновления необходимо выбрать тип установки ``Manual`` из 
предложенного списка:

    .. figure:: resources/img/customers_manual.png

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

После обновления
~~~~~~~~~~~~~~~~~~

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

* ``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``
* ``event.blocking.interpreter.task.activity``
* ``event.blocking.interpreter.manager_plan.save``


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

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

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

В-четвертых, настроить доступы для отчетов по план-факту продаж. По умолчанию права на отчеты распределены так:
    - "Сводный отчет Исполнение плана доходов" и "Отчет по продажам подразделения (с выбором)" - доступен группе ``customers_group_top_managers``;
    - "Персональный отчет по продажам (с выбором)" и "Отчет по продажам подразделения" - доступен группе ``customers_group_chiefs``
    - "Персональный отчет по продажам" - доступен всем.


Из-за особенностей загрузки конфигурации **в Конструкторе** приложений 
после обновления будет 2 приложения: старое и новое. При этом по 
умолчанию активным будет именно старое приложение. Поэтому все 
следующие действия сводятся к трем шагам:

1. В старом приложении освободить дефолтные код и URL.

2. В новом приложении настроить дефолтные код и URL.

3. Передеплоить приложение со стороны сервера.

Во-вторых, настроить обновленное приложение в Конструкторе:

* Открыть Конструктор приложений по адресу ``http://адрес_сервера:порт/constructor`` 
  (например: http://192.168.4.80:8080/constructor) и авторизоваться под Системным 
  пользователем.

* Открыть старое приложение с кодом и URL ``customers`` и выполнить следующие 
  действия в нем:

    * выбрать меню "Клиент" -> "Свойства";
    * изменить название на любое значение, отличное от исходного (для примера 
      подойдет ``Customers Old 1``);
    * изменить код и URL на любое значение, отличное от исходного ``customers`` 
      (для примера подойдет ``customers1``);
    * сохранить изменения.

* Открыть новое приложение с названием ``Customers 3.0_IMPORTED`` и выполнить 
  следующие действия в нем:

    * выбрать меню "Клиент" -> "Свойства";
    * изменить название на любое значение, отличное от исходного 
      ``Customers 3.0_IMPORTED`` (для примера подойдет название по умолчанию 
      ``Customers 3.0``);
    * изменить код и URL строго на значение ``customers``;
    * сохранить изменения;
    * выбрать меню "Клиент" -> "Деплой".


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

В-четвёртых, передеплоить приложение со стороны сервера:

* Перейти в папку ``deployments``:

    .. code-block:: html 

	# cd /opt/synergy/jboss/standalone/deployments

* Выполнить команду:

    .. code-block:: html 

	# touch customers.war.dodeploy

Готово, можно проверять.


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

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

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