ru.bitel.bgbilling.modules.tv.api.server

## Class ProductManager

- java.lang.Object
- - ru.bitel.bgbilling.modules.tv.api.server.ProductManager

- All Implemented Interfaces:
    ru.bitel.common.worker.Recyclable

      public class ProductManager
      extends java.lang.Object
      implements ru.bitel.common.worker.Recyclable

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `ProductManager.Entry`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ProductManager(ru.bitel.bgbilling.kernel.container.managed.ServerContext context, int moduleId)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.math.BigDecimal` | `productActivate(ProductSpec productSpec, ProductSpecActivationMode productSpecActivationMode, Product product, boolean sync, java.util.List<ProductEntry> productEntryList)` Активация продукта
    `void` | `productDelete(Product product, boolean sync, java.util.List<ProductEntry> productEntryList)`
    `java.math.BigDecimal` | `productsProlongate(ConnectionSet connectionSet, ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime contractRuntime, int contractId, java.math.BigDecimal balance, java.math.BigDecimal limit, ru.bitel.bgbilling.kernel.contract.balance.server.ConvergenceBalance convergenceBalance, boolean balanceInsufficient, int tvAccountId, java.util.Date time, int type)`
    `java.math.BigDecimal` | `productsProlongate(ru.bitel.bgbilling.modules.tv.tariff.server.TvTariffContext tvTariffContext, ru.bitel.bgbilling.modules.tv.tariff.server.TvTariffWorkerContext tvTariffWorkerContext, TvTarifficationManager tvTarifficationManager, ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime contractRuntime, int contractId, java.math.BigDecimal balance, java.math.BigDecimal limit, ru.bitel.bgbilling.kernel.contract.balance.server.ConvergenceBalance convergenceBalance, boolean balanceInsufficient, ru.bitel.bgbilling.kernel.tariff.tree.server.TariffModuleTreeSet tariffTreeSet, TvAccountRuntimeRoot tvAccountRuntime, int tvAccountId, java.util.Date time, int type)` Основной метод продления периода продукта.
    `void` | `recycle()` В реализацию данного метода стоит включить инструкции, которые освобождают использованные в классе ресурсы (закешированые PreparedStatement, дао, отнаследованные от AbstractDao, потоки ввода/вывода ).

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ProductManager

          public ProductManager(ru.bitel.bgbilling.kernel.container.managed.ServerContext context,
                                int moduleId)
                         throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`

  - ### Method Detail

    - #### recycle

          public void recycle()

      Description copied from interface: `ru.bitel.common.worker.Recyclable`
      В реализацию данного метода стоит включить инструкции, которые освобождают использованные в классе ресурсы (закешированые PreparedStatement, дао, отнаследованные от AbstractDao, потоки ввода/вывода ).
      Specified by:
        `recycle` in interface `ru.bitel.common.worker.Recyclable`

    - #### productsProlongate

          public java.math.BigDecimal productsProlongate(ru.bitel.bgbilling.modules.tv.tariff.server.TvTariffContext tvTariffContext,
                                                         ru.bitel.bgbilling.modules.tv.tariff.server.TvTariffWorkerContext tvTariffWorkerContext,
                                                         TvTarifficationManager tvTarifficationManager,
                                                         ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime contractRuntime,
                                                         int contractId,
                                                         java.math.BigDecimal balance,
                                                         java.math.BigDecimal limit,
                                                         ru.bitel.bgbilling.kernel.contract.balance.server.ConvergenceBalance convergenceBalance,
                                                         boolean balanceInsufficient,
                                                         ru.bitel.bgbilling.kernel.tariff.tree.server.TariffModuleTreeSet tariffTreeSet,
                                                         TvAccountRuntimeRoot tvAccountRuntime,
                                                         int tvAccountId,
                                                         java.util.Date time,
                                                         int type)
                                                  throws ru.bitel.bgbilling.common.BGException

      Основной метод продления периода продукта.
      Parameters:
        `tvTariffContext` -
        `tvTariffWorkerContext` -
        `tvTarifficationManager` -
        `contractRuntime` -
        `contractId` -
        `balance` -
        `limit` -
        `convergenceBalance` -
        `balanceInsuffient` -
        `tariffTreeSet` -
        `tvAccountRuntime` -
        `tvAccountId` -
        `time` -
        `type` - 0 - продление при активации или окончании периода,
        1 - попытка продления заблокированного при платеже, 2 - планировщик
      Returns:
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### productsProlongate

          public java.math.BigDecimal productsProlongate(ConnectionSet connectionSet,
                                                         ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime contractRuntime,
                                                         int contractId,
                                                         java.math.BigDecimal balance,
                                                         java.math.BigDecimal limit,
                                                         ru.bitel.bgbilling.kernel.contract.balance.server.ConvergenceBalance convergenceBalance,
                                                         boolean balanceInsufficient,
                                                         int tvAccountId,
                                                         java.util.Date time,
                                                         int type)
                                                  throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### productActivate

          public java.math.BigDecimal productActivate(ProductSpec productSpec,
                                                      ProductSpecActivationMode productSpecActivationMode,
                                                      Product product,
                                                      boolean sync,
                                                      java.util.List<ProductEntry> productEntryList)
                                               throws ru.bitel.bgbilling.common.BGException

      Активация продукта
      Parameters:
        `productSpec` -
        `productSpecActivationMode` -
        `product` -
        `sync` - - нужно ли синхронизировать на MW (возможно не нужно, если активация идет через приставку и MW обратилась к нам, а мы подтвердили что можно активировать)
        `productEntryList` -
      Returns:
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### productDelete

          public void productDelete(Product product,
                                    boolean sync,
                                    java.util.List<ProductEntry> productEntryList)
                             throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`