ru.bitel.bgbilling.modules.softline.common.service

## Interface SoftLineSubscriptionService

-     public interface SoftLineSubscriptionService

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `activateSubscription(SoftLineSubscription subscription)` Запрос на активацию подписки для договора(новой или ранее приостановленной)
    `void` | `checkStatusSoftLine()` Метод проверки доступности систем SoftLine
    `void` | `deleteSubscription(SoftLineSubscription subscription, boolean cancelActiveSubscription)` Удаление подписки
    `void` | `insertDownloadData(SoftLineSubscription subscription)` Запрос всех необходимых данных для продукта от SoftLine.
    `void` | `recalculate(int contractId, java.util.Calendar month)` Переобсчет наработки за определённый месяц
    `SearchResult<SoftLineSubscription>` | `searchSubscriptions(Page page, Period period, int contractId, int subscriptionId, SubscriptionStatus status, int productId)` Получения списка подписок с фильтрацией
    `void` | `sendDownloadDataOnUserEmail(SoftLineSubscription subscription, java.lang.String userEmail)` Отправка всех данных и справочной информации на почту пользователя при оформлении подписки
    `void` | `subscriptionPause(SoftLineSubscription subscription, SubscriptionSuspendReason reason)` Приостановка подписки
    `void` | `updateSubscription(SoftLineSubscription subscription)` Обновляет данные по подписки в базе.

- - ### Method Detail

    - #### searchSubscriptions

          SearchResult<SoftLineSubscription> searchSubscriptions(Page page,
                                                                 Period period,
                                                                 int contractId,
                                                                 int subscriptionId,
                                                                 SubscriptionStatus status,
                                                                 int productId)
                                                          throws ru.bitel.bgbilling.common.BGException

      Получения списка подписок с фильтрацией
      Parameters:
        `page` -
        `period` -
        `contractId` -
        `subscriptionId` -
      Returns:
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### activateSubscription

          void activateSubscription(SoftLineSubscription subscription)
                             throws ru.bitel.bgbilling.common.BGException

      Запрос на активацию подписки для договора(новой или ранее приостановленной)
      Parameters:
        `subscription` - - подписка
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### subscriptionPause

          void subscriptionPause(SoftLineSubscription subscription,
                                 SubscriptionSuspendReason reason)
                          throws ru.bitel.bgbilling.common.BGException

      Приостановка подписки
      Parameters:
        `subscription` - - подписка, которую приостанавливаем
        `reason` - - причина приостановски подписки. Если null, то будет указана как fin_block
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### deleteSubscription

          void deleteSubscription(SoftLineSubscription subscription,
                                  boolean cancelActiveSubscription)
                           throws ru.bitel.bgbilling.common.BGException

      Удаление подписки
      Parameters:
        `subscription` - - удаляемая подписка
        `cancelActiveSubscription` - - флаг, нужно ли приостановить подписку в системе SoftLine, если у нее статус "активен"
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### updateSubscription

          void updateSubscription(SoftLineSubscription subscription)
                           throws ru.bitel.bgbilling.common.BGException

      Обновляет данные по подписки в базе. Если статус подписки изменился, то отправляет запрос к SoftLine
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### checkStatusSoftLine

          void checkStatusSoftLine()
                            throws ru.bitel.bgbilling.common.BGException

      Метод проверки доступности систем SoftLine
      Throws:
        `ru.bitel.bgbilling.common.BGException` - - кидается ошибка в случае недоступности систем SoftLine

    - #### insertDownloadData

          void insertDownloadData(SoftLineSubscription subscription)
                           throws ru.bitel.bgbilling.common.BGException

      Запрос всех необходимых данных для продукта от SoftLine. При успешном запросе, возвращается строка json со всеми данными, так же обновляется поле downloadData в подписке
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### sendDownloadDataOnUserEmail

          void sendDownloadDataOnUserEmail(SoftLineSubscription subscription,
                                           java.lang.String userEmail)
                                    throws ru.bitel.bgbilling.common.BGException

      Отправка всех данных и справочной информации на почту пользователя при оформлении подписки
      Parameters:
        `subscription` - - подписка уже с downloadData
        `userEmail` - - email пользователя
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### recalculate

          void recalculate(int contractId,
                           java.util.Calendar month)
                    throws ru.bitel.bgbilling.common.BGException

      Переобсчет наработки за определённый месяц
      Parameters:
        `contractId` - - id договора
        `month` - - месяц переобсчёта
      Throws:
        `ru.bitel.bgbilling.common.BGException`