Package ru.bitel.oss.systems.order.product.common.service

# Interface ProductOrderService

public interface ProductOrderService

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<Product>`
  `activeProductList(int contractId, int accountId, Date time)`
  `void`
  `adjustProductPeriod(Product product, ProductSpecActivationMode activationMode, boolean timeFromSet)`
  `void`
  `isAllowProductActivate(int moduleId, int contractId)`
  `int`
  `productActivate(Product product, boolean customer, boolean sync)`
  Deprecated.
  `int`
  `productActivate(Product product, Date time, boolean customer, boolean sync)`
  Активация продукта с указанным режимом активации.
  Если time == null и product.timeFrom == null, то используется текущее время в качестве времени активации.
  `void`
  `productDeactivate(int contractId, int productId, Date time, boolean customer, boolean sync)`
  Deprecated.
  `void`
  `productDeactivate(int contractId, int productId, Date time, boolean customer, boolean sync, boolean now)`
  Деактивация продукта.
  `ProductOffering`
  `productOfferingGet(Integer moduleId, int contractId, int accountId, int productSpecId, int activationModeId, Date time, boolean availableOnly, boolean customer)`
  `List<ProductOffering>`
  `productOfferingList(Integer moduleId, int contractId, int accountId, int productSpecId, Date time, boolean availableOnly, boolean customer)`
  Список продуктов для возможной активации и их цены.
  `void`
  `productReactivate(int contractId, int productId, boolean sync)`
  Реактивация продукта возможна в том случае, если продукт был деактивирован, но при этом product.timeTo еще меньше текущего времени.
  `List<ProductOffering>`
  `productTariffOfferingList(Integer moduleId, int tariffId, Date time, boolean availableOnly)`
  Список продуктов для возможной активации (и их цены) для указанного тарифа.
  `boolean`
  `validateActivationTime(Date productActivateDate)`

- ## Method Details

  - ### productOfferingList

    List<ProductOffering> productOfferingList(Integer moduleId, int contractId, int accountId, int productSpecId, Date time, boolean availableOnly, boolean customer) throws Exception
    Список продуктов для возможной активации и их цены.
    Parameters:
      `moduleId` -
      `contractId` -
      `accountId` -
      `productSpecId` -
      `time` -
      `availableOnly` -
      `customer` -
    Returns:

  - ### productTariffOfferingList

    List<ProductOffering> productTariffOfferingList(Integer moduleId, int tariffId, Date time, boolean availableOnly) throws Exception
    Список продуктов для возможной активации (и их цены) для указанного тарифа. Вместо данного метода желательно использовать `productOfferingList(Integer, int, int, int, Date, boolean, boolean)`.
    Parameters:
      `moduleId` -
      `tariffId` -
      `time` -
      `availableOnly` -
    Returns:

  - ### productActivate

    @RequestWrapper(className="ru.bitel.oss.systems.order.product.common.jaxws.ProductActivateOldRequest") @ResponseWrapper(className="ru.bitel.oss.systems.order.product.common.jaxws.ProductActivateOldResponse") @Deprecated int productActivate(Product product, boolean customer, boolean sync) throws Exception
    Deprecated.
    Throws:
      `Exception`

  - ### productActivate

    int productActivate(Product product, Date time, boolean customer, boolean sync) throws Exception
    Активация продукта с указанным режимом активации.
    Если time == null и product.timeFrom == null, то используется текущее время в качестве времени активации. Если time !=null, то используется time. В обоих случаях применяются правила режима активации, т.е. timeFrom может отличаться от time или текущего времени.
    Если time == null и product.timeFrom != null, то в качестве времени активации используется product.timeFrom, правила режима активации не применяются (время не сдвигается).
    Parameters:
      `product` -
      `time` -
      `customer` -
      `sync` - нужна ли синхронизация (не нужна, если MW активировало уже и вызвало этот метод)
    Returns:
    Throws:
      `ru.bitel.bgbilling.common.BGException`
      `Exception`

  - ### productDeactivate

    @RequestWrapper(className="ru.bitel.oss.systems.order.product.common.jaxws.ProductDeactivateOldRequest") @ResponseWrapper(className="ru.bitel.oss.systems.order.product.common.jaxws.ProductDeactivateOldResponse") @Deprecated void productDeactivate(int contractId, int productId, Date time, boolean customer, boolean sync) throws Exception
    Deprecated.
    Throws:
      `Exception`

  - ### productDeactivate

    void productDeactivate(int contractId, int productId, Date time, boolean customer, boolean sync, boolean now) throws Exception
    Деактивация продукта.
    Parameters:
      `contractId` -
      `productId` -
      `time` -
      `customer` - метод вызывает абонент или нет
      `sync` - нужно ли вызывать синхронизацию - не нужно, если MW синхронизирует само, т.е. вызов инициирован со стороны MW.
      `now` - нужно ли установить временем окончания time, т.е. не учитываем правила деактивации до конца оплаченного периода
    Throws:
      `ru.bitel.bgbilling.common.BGException`
      `Exception`

  - ### productReactivate

    void productReactivate(int contractId, int productId, boolean sync) throws Exception
    Реактивация продукта возможна в том случае, если продукт был деактивирован, но при этом product.timeTo еще меньше текущего времени.
    Parameters:
      `contractId` -
      `productId` -
      `sync` -
    Throws:
      `ru.bitel.bgbilling.common.BGException`
      `Exception`

  - ### productOfferingGet

    ProductOffering productOfferingGet(Integer moduleId, int contractId, int accountId, int productSpecId, int activationModeId, Date time, boolean availableOnly, boolean customer) throws Exception
    Throws:
      `Exception`

  - ### activeProductList

    List<Product> activeProductList(int contractId, int accountId, Date time) throws Exception
    Throws:
      `Exception`

  - ### adjustProductPeriod

    void adjustProductPeriod(Product product, ProductSpecActivationMode activationMode, boolean timeFromSet)

  - ### isAllowProductActivate

    void isAllowProductActivate(int moduleId, int contractId) throws Exception
    Throws:
      `Exception`

  - ### validateActivationTime

    boolean validateActivationTime(Date productActivateDate)