Package ru.bitel.bgbilling.modules.tv.server

# Class ProductManager

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

All Implemented Interfaces:
  `AutoCloseable`

public class ProductManager extends Object implements AutoCloseable

- ## Nested Class Summary

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

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected static final Comparator<ProductManager.Entry>`
  `ENTRY_COMPARATOR`
  Cортировка по приоритету, чтобы с более высоким приоритетом обсчитывалось раньше, чтобы при нехватке денег продлялось то что важнее.

- ## Constructor Summary

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `close()`
  `int`
  `getPrimaryPriority()`
  `int`
  `getSecondaryPriority()`
  `BigDecimal`
  `precalculateAccount(int contractId, Date dateTo)`
  Будущая наработка для определения рекомендуемой к оплате суммы.
  `TvTarifficationManager.CalculateResult`
  `precalculateAccountDetail(int contractId, Date dateTo)`
  Будущая наработка для определения рекомендуемой к оплате суммы.
  `ServiceCostCache`
  `precalculateServiceCost(int contractId, Date dateTo)`
  `BigDecimal`
  `productActivate(ProductSpec productSpec, ProductSpecActivationMode productSpecActivationMode, Product product, boolean sync, List<ProductEntry> productEntryList)`
  Deprecated.
  `BigDecimal`
  `productActivate(ProductSpec productSpec, ProductSpecActivationMode productSpecActivationMode, Product product, boolean sync, List<ProductEntry> productEntryList, boolean customer)`
  Активация продукта
  `void`
  `productDelete(Product product, boolean sync, List<ProductEntry> productEntryList)`
  `BigDecimal`
  `productsProlongate(ru.bitel.bgbilling.modules.tv.server.tariff.TvTariffContext tvTariffContext, ru.bitel.bgbilling.modules.tv.server.tariff.TvTariffWorkerContext tvTariffWorkerContext, TvTarifficationManager tvTarifficationManager, ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime contractRuntime, int contractId, BigDecimal balance, BigDecimal limit, ru.bitel.bgbilling.kernel.tariff.server.tree.TariffModuleTreeSet tariffTreeSet, TvAccountRuntimeMap tvAccountRuntimeMap, Date currentTime, ProlongationType type)`
  Основной метод продления периода продукта.
  `BigDecimal`
  `productsProlongate(ConnectionSet connectionSet, int contractId, BigDecimal balance, BigDecimal limit, ProlongationType type)`
  `BigDecimal`
  `productsProlongate(ConnectionSet connectionSet, ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime contractRuntime, int contractId, BigDecimal balance, BigDecimal limit, Date time, ProlongationType type)`
  `protected void`
  `recalculate(int contractId, Date timeFrom, Date timeTo)`
  `void`
  `setPrimaryPriority(int primaryPriority)`
  `void`
  `setSecondaryPriority(int secondaryPriority)`

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

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

- ## Field Details

  - ### ENTRY_COMPARATOR

    protected static final Comparator<ProductManager.Entry> ENTRY_COMPARATOR
    Cортировка по приоритету, чтобы с более высоким приоритетом обсчитывалось раньше, чтобы при нехватке денег продлялось то что важнее. Более большой priority - в начале. Также, если продукт зависит от другого продукта - он ближе к концу, чем тот, от которого он зависит.

- ## Constructor Details

  - ### 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 Details

  - ### getPrimaryPriority

    public int getPrimaryPriority()

  - ### setPrimaryPriority

    public void setPrimaryPriority(int primaryPriority)

  - ### getSecondaryPriority

    public int getSecondaryPriority()

  - ### setSecondaryPriority

    public void setSecondaryPriority(int secondaryPriority)

  - ### close

    public void close()
    Specified by:
      `close` in interface `AutoCloseable`

  - ### productsProlongate

    public BigDecimal productsProlongate(ru.bitel.bgbilling.modules.tv.server.tariff.TvTariffContext tvTariffContext, ru.bitel.bgbilling.modules.tv.server.tariff.TvTariffWorkerContext tvTariffWorkerContext, TvTarifficationManager tvTarifficationManager, ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime contractRuntime, int contractId, BigDecimal balance, BigDecimal limit, ru.bitel.bgbilling.kernel.tariff.server.tree.TariffModuleTreeSet tariffTreeSet, TvAccountRuntimeMap tvAccountRuntimeMap, Date currentTime, ProlongationType type) throws Exception
    Основной метод продления периода продукта.
    Parameters:
      `tvTariffContext` -
      `tvTariffWorkerContext` -
      `tvTarifficationManager` -
      `contractRuntime` -
      `contractId` -
      `balance` -
      `limit` -
      `tariffTreeSet` -
      `currentTime` -
      `type` - 0 - продление при активации или окончании периода,
      1 - попытка продления заблокированного при платеже, 2 - планировщик
      `convergenceBalance` -
      `balanceInsuffient` -
      `tvAccountRuntime` -
      `tvAccountId` -
    Returns:
    Throws:
      `ru.bitel.bgbilling.common.BGException`
      `Exception`

  - ### productsProlongate

    public BigDecimal productsProlongate(ConnectionSet connectionSet, ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime contractRuntime, int contractId, BigDecimal balance, BigDecimal limit, Date time, ProlongationType type) throws Exception
    Throws:
      `Exception`

  - ### productsProlongate

    public BigDecimal productsProlongate(ConnectionSet connectionSet, int contractId, BigDecimal balance, BigDecimal limit, ProlongationType type) throws Exception
    Throws:
      `Exception`

  - ### productActivate

    @Deprecated public BigDecimal productActivate(ProductSpec productSpec, ProductSpecActivationMode productSpecActivationMode, Product product, boolean sync, List<ProductEntry> productEntryList) throws Exception
    Deprecated.
    Активация продукта
    Parameters:
      `productSpec` -
      `productSpecActivationMode` -
      `product` -
      `sync` - - нужно ли синхронизировать на MW (возможно не нужно, если активация идет через приставку и MW обратилась к нам, а мы подтвердили что можно активировать)
      `productEntryList` -
    Returns:
    Throws:
      `ru.bitel.bgbilling.common.BGException`
      `Exception`

  - ### productActivate

    public BigDecimal productActivate(ProductSpec productSpec, ProductSpecActivationMode productSpecActivationMode, Product product, boolean sync, List<ProductEntry> productEntryList, boolean customer) throws Exception
    Активация продукта
    Parameters:
      `productSpec` -
      `productSpecActivationMode` -
      `product` -
      `sync` - - нужно ли синхронизировать на MW (возможно не нужно, если активация идет через приставку и MW обратилась к нам, а мы подтвердили что можно активировать)
      `productEntryList` -
      `customer` -
    Returns:
    Throws:
      `ru.bitel.bgbilling.common.BGException`
      `Exception`

  - ### productDelete

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

  - ### recalculate

    protected void recalculate(int contractId, Date timeFrom, Date timeTo)

  - ### precalculateAccount

    public BigDecimal precalculateAccount(int contractId, Date dateTo) throws Exception
    Будущая наработка для определения рекомендуемой к оплате суммы.
    Parameters:
      `contractId` -
      `dateTo` -
    Returns:
    Throws:
      `ru.bitel.bgbilling.common.BGException`
      `SQLException`
      `Exception`

  - ### precalculateAccountDetail

    public TvTarifficationManager.CalculateResult precalculateAccountDetail(int contractId, Date dateTo) throws Exception
    Будущая наработка для определения рекомендуемой к оплате суммы.
    Parameters:
      `contractId` -
      `dateTo` -
    Returns:
    Throws:
      `Exception`

  - ### precalculateServiceCost

    public ServiceCostCache precalculateServiceCost(int contractId, Date dateTo) throws Exception
    Throws:
      `Exception`