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

# Interface SoftLineSubscriptionService

public interface SoftLineSubscriptionService

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `activateSubscription(SoftLineSubscription subscription)`
  Запрос на активацию подписки для договора(новой или ранее приостановленной)
  `void`
  `checkStatusSoftLine()`
  Метод проверки доступности систем SoftLine
  `void`
  `checkSubscriptionStatus(SoftLineSubscription subscription)`
  `void`
  `deleteSubscription(SoftLineSubscription subscription, boolean cancelActiveSubscription)`
  Удаление подписки
  `List<IdTitle>`
  `getEmailsByContract(int cid)`
  `void`
  `insertDownloadData(SoftLineSubscription subscription)`
  Запрос всех необходимых данных для продукта от SoftLine.
  `void`
  `recalculate(int contractId, Calendar month)`
  Переобсчет наработки за определённый месяц
  `SearchResult<SoftLineSubscriptionHistory>`
  `searchHistory(Page page, Period period, int contractId, int subscriptionId, int productId)`
  Поиск истории по подписка или договорам с фильтрацией
  `SearchResult<SoftLineSubscription>`
  `searchSubscriptions(Page page, Period period, int contractId, int subscriptionId, SoftLineSubscriptionStatus status, int productId)`
  Получения списка подписок с фильтрацией
  `void`
  `sendDownloadDataOnUserEmail(SoftLineSubscription subscription, String userEmail)`
  Отправка всех данных и справочной информации на почту пользователя при оформлении подписки
  `void`
  `subscriptionPause(SoftLineSubscription subscription, SoftLineSubscriptionSuspendReason reason)`
  Приостановка подписки
  `void`
  `updateSubscription(SoftLineSubscription subscription)`
  Обновляет данные по подписки в базе.

- ## Method Details

  - ### searchSubscriptions

    SearchResult<SoftLineSubscription> searchSubscriptions(Page page, Period period, int contractId, int subscriptionId, SoftLineSubscriptionStatus status, int productId) throws Exception
    Получения списка подписок с фильтрацией
    Parameters:
      `page` -
      `period` -
      `contractId` -
      `subscriptionId` -
    Returns:

  - ### activateSubscription

    void activateSubscription(SoftLineSubscription subscription) throws Exception
    Запрос на активацию подписки для договора(новой или ранее приостановленной)
    Parameters:
      `subscription` - - подписка

  - ### subscriptionPause

    void subscriptionPause(SoftLineSubscription subscription, SoftLineSubscriptionSuspendReason reason) throws Exception
    Приостановка подписки
    Parameters:
      `subscription` - - подписка, которую приостанавливаем
      `reason` - - причина приостановски подписки. Если null, то будет указана как fin_block

  - ### deleteSubscription

    void deleteSubscription(SoftLineSubscription subscription, boolean cancelActiveSubscription) throws Exception
    Удаление подписки
    Parameters:
      `subscription` - - удаляемая подписка
      `cancelActiveSubscription` - - флаг, нужно ли приостановить подписку в системе SoftLine, если у нее статус "активен"

  - ### updateSubscription

    void updateSubscription(SoftLineSubscription subscription) throws Exception
    Обновляет данные по подписки в базе. Если статус подписки изменился, то отправляет запрос к SoftLine
    Throws:
      `Exception`

  - ### checkStatusSoftLine

    void checkStatusSoftLine() throws Exception
    Метод проверки доступности систем SoftLine

  - ### checkSubscriptionStatus

    void checkSubscriptionStatus(SoftLineSubscription subscription) throws Exception
    Throws:
      `Exception`

  - ### insertDownloadData

    void insertDownloadData(SoftLineSubscription subscription) throws Exception
    Запрос всех необходимых данных для продукта от SoftLine. При успешном запросе, возвращается строка json со всеми данными, так же обновляется поле downloadData в подписке

  - ### sendDownloadDataOnUserEmail

    void sendDownloadDataOnUserEmail(SoftLineSubscription subscription, String userEmail) throws Exception
    Отправка всех данных и справочной информации на почту пользователя при оформлении подписки
    Parameters:
      `subscription` - - подписка уже с downloadData
      `userEmail` - - email пользователя

  - ### recalculate

    void recalculate(int contractId, Calendar month) throws Exception
    Переобсчет наработки за определённый месяц
    Parameters:
      `contractId` - - id договора
      `month` - - месяц переобсчёта

  - ### getEmailsByContract

    List<IdTitle> getEmailsByContract(int cid) throws Exception
    Parameters:
      `cid` - ID договора
    Returns:

  - ### searchHistory

    SearchResult<SoftLineSubscriptionHistory> searchHistory(Page page, Period period, int contractId, int subscriptionId, int productId) throws Exception
    Поиск истории по подписка или договорам с фильтрацией