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

## Interface ProductOrderService

-     public interface ProductOrderService

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `productActivate(Product product, boolean customer, boolean sync)` Deprecated.
    `int` | `productActivate(Product product, java.util.Date time, boolean customer, boolean sync)` Активация продукта с указанным режимом активации.
    `void` | `productDeactivate(int contractId, int productId, java.util.Date time, boolean customer, boolean sync)` Deprecated.
    `void` | `productDeactivate(int contractId, int productId, java.util.Date time, boolean customer, boolean sync, boolean now)` Деактивация продукта.
    `ProductOffering` | `productOfferingGet(java.lang.Integer moduleId, int contractId, int accountId, int productSpecId, int activationModeId, java.util.Date time, boolean availableOnly, boolean customer)`
    `java.util.List<ProductOffering>` | `productOfferingList(java.lang.Integer moduleId, int contractId, int accountId, int productSpecId, java.util.Date time, boolean availableOnly, boolean customer)` Список продуктов для возможной активации и их цены.
    `void` | `productReactivate(int contractId, int productId, boolean sync)` Реактивация продукта возможна в том случае, если продукт был деактивирован, но при этом product.timeTo еще меньше текущего времени.
    `java.util.List<ProductOffering>` | `productTariffOfferingList(java.lang.Integer moduleId, int tariffId, java.util.Date time, boolean availableOnly)` Список продуктов для возможной активации (и их цены) для указанного тарифа.

- - ### Method Detail

    - #### productOfferingList

          java.util.List<ProductOffering> productOfferingList(java.lang.Integer moduleId,
                                                              int contractId,
                                                              int accountId,
                                                              int productSpecId,
                                                              java.util.Date time,
                                                              boolean availableOnly,
                                                              boolean customer)
                                                       throws ru.bitel.bgbilling.common.BGException,
                                                              ru.bitel.bgbilling.common.BGMessageException,
                                                              ru.bitel.bgbilling.common.BGIllegalAccessException,
                                                              ru.bitel.bgbilling.common.BGIllegalArgumentException

      Список продуктов для возможной активации и их цены.
      Parameters:
        `moduleId` -
        `contractId` -
        `accountId` -
        `productSpecId` -
        `time` -
        `availableOnly` -
        `customer` -
      Returns:
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGIllegalAccessException`
        `ru.bitel.bgbilling.common.BGIllegalArgumentException`

    - #### productTariffOfferingList

          java.util.List<ProductOffering> productTariffOfferingList(java.lang.Integer moduleId,
                                                                    int tariffId,
                                                                    java.util.Date time,
                                                                    boolean availableOnly)
                                                             throws ru.bitel.bgbilling.common.BGException,
                                                                    ru.bitel.bgbilling.common.BGMessageException,
                                                                    ru.bitel.bgbilling.common.BGIllegalAccessException,
                                                                    ru.bitel.bgbilling.common.BGIllegalArgumentException

      Список продуктов для возможной активации (и их цены) для указанного тарифа. Вместо данного метода желательно использовать `productOfferingList(Integer, int, int, int, Date, boolean, boolean)`.
      Parameters:
        `moduleId` -
        `tariffId` -
        `time` -
        `availableOnly` -
      Returns:
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGIllegalAccessException`
        `ru.bitel.bgbilling.common.BGIllegalArgumentException`

    - #### 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 ru.bitel.bgbilling.common.BGException,
                                                                                                                                                                                                                                                            ru.bitel.bgbilling.common.BGMessageException,
                                                                                                                                                                                                                                                            ru.bitel.bgbilling.common.BGIllegalAccessException,
                                                                                                                                                                                                                                                            ru.bitel.bgbilling.common.BGIllegalArgumentException

      Deprecated.
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGIllegalAccessException`
        `ru.bitel.bgbilling.common.BGIllegalArgumentException`

    - #### productActivate

          int productActivate(Product product,
                              java.util.Date time,
                              boolean customer,
                              boolean sync)
                       throws ru.bitel.bgbilling.common.BGException,
                              ru.bitel.bgbilling.common.BGMessageException,
                              ru.bitel.bgbilling.common.BGIllegalAccessException,
                              ru.bitel.bgbilling.common.BGIllegalArgumentException

      Активация продукта с указанным режимом активации.
      Если 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`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGIllegalAccessException`
        `ru.bitel.bgbilling.common.BGIllegalArgumentException`

    - #### 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,
                                                                                                                                                                                                                                                                   java.util.Date time,
                                                                                                                                                                                                                                                                   boolean customer,
                                                                                                                                                                                                                                                                   boolean sync)
                                                                                                                                                                                                                                                            throws ru.bitel.bgbilling.common.BGException,
                                                                                                                                                                                                                                                                   ru.bitel.bgbilling.common.BGMessageException,
                                                                                                                                                                                                                                                                   ru.bitel.bgbilling.common.BGIllegalAccessException,
                                                                                                                                                                                                                                                                   ru.bitel.bgbilling.common.BGIllegalArgumentException

      Deprecated.
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGIllegalAccessException`
        `ru.bitel.bgbilling.common.BGIllegalArgumentException`

    - #### productDeactivate

          void productDeactivate(int contractId,
                                 int productId,
                                 java.util.Date time,
                                 boolean customer,
                                 boolean sync,
                                 boolean now)
                          throws ru.bitel.bgbilling.common.BGException,
                                 ru.bitel.bgbilling.common.BGMessageException,
                                 ru.bitel.bgbilling.common.BGIllegalAccessException,
                                 ru.bitel.bgbilling.common.BGIllegalArgumentException

      Деактивация продукта.
      Parameters:
        `contractId` -
        `productId` -
        `time` -
        `customer` - метод вызывает абонент или нет
        `sync` - нужно ли вызывать синхронизацию - не нужно, если MW синхронизирует само, т.е. вызов инициирован со стороны MW.
        `now` - нужно ли установить временем окончания time, т.е. не учитываем правила деактивации до конца оплаченного периода
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGIllegalAccessException`
        `ru.bitel.bgbilling.common.BGIllegalArgumentException`

    - #### productReactivate

          void productReactivate(int contractId,
                                 int productId,
                                 boolean sync)
                          throws ru.bitel.bgbilling.common.BGException

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

    - #### productOfferingGet

          ProductOffering productOfferingGet(java.lang.Integer moduleId,
                                             int contractId,
                                             int accountId,
                                             int productSpecId,
                                             int activationModeId,
                                             java.util.Date time,
                                             boolean availableOnly,
                                             boolean customer)
                                      throws ru.bitel.bgbilling.common.BGException,
                                             ru.bitel.bgbilling.common.BGMessageException,
                                             ru.bitel.bgbilling.common.BGIllegalAccessException,
                                             ru.bitel.bgbilling.common.BGIllegalArgumentException

      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGIllegalAccessException`
        `ru.bitel.bgbilling.common.BGIllegalArgumentException`