Package ru.bitel.bgbilling.kernel.contract.balance.server.util

# Class BalanceUtils

java.lang.Object
ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
ru.bitel.bgbilling.kernel.contract.balance.server.util.BalanceUtils

All Implemented Interfaces:
  `AutoCloseable`

public class BalanceUtils extends ru.bitel.bgbilling.kernel.base.server.logger.BGLogger implements AutoCloseable

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `BalanceUtils(Connection con)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addBalanceAccount(Contract contract, Calendar time, BigDecimal summa)`
  Приращение наработки в таблице баланса.
  `void`
  `addContractAccount(int contractId, LocalDate time, int serviceId, BigDecimal addSum)`
  Приращение наработки за услугу
  `void`
  `close()`
  `BigDecimal`
  `getAccountSumma(int contractId, Calendar month, String sids)`
  Получить наработку договора за указанный месяц по указанному перечню услуг.
  `BigDecimal`
  `getBalance(LocalDate localDate, int contractId)`
  Получение исходящего остатка договора на требуемый месяц, либо последний предыдущий.
  `BigDecimal`
  `getBalance(Date time, int contractId)`
  `BigDecimal`
  `getBalance(Date time, Contract contract)`
  `BigDecimal`
  `getBalanceOut(Date time, int contractId)`
  Получение исходящего остатка договора на требуемый месяц, либо последний предыдущий.
  ВАЖНО!
  `BigDecimal`
  `getBalanceSumma1(Date time, int contractId)`
  Входящий остаток на начало месяца ВАЖНО!
  `Date`
  `getLastBalanceMonth(Contract contract)`
  Возращает самый старший месяц, за который есть данные по Балансу
  `BigDecimal`
  `getSaldo(Date time, int contractId)`
  Сальдо - входящий остаток на начало месяца.
  ВАЖНО!
  `void`
  `recalculateBalance(int contractId, Date dateFrom)`
  Пересчет баланса договора c даты
  `void`
  `setAccount(Connection con, org.slf4j.Logger logger, Calendar month, ServiceCostCache costCache, String sids, String cids, List<Integer> contractLabelIds)`
  Массовая установка наработки после какого-либо переобсчета.
  `void`
  `setBalanceFromAccount(int contractId, Calendar time)`
  Установка баланса договора за какой-либо месяц.
  `void`
  `setBalanceFromAccount(int contractId, Calendar time, boolean lowPrior)`
  Deprecated.
  `void`
  `setBalanceFromAccount(Contract contract, Calendar time)`
  Установка наработки в балансе как суммы наработок из contract_account
  `void`
  `setContractAccount(int contractId, LocalDate time, int serviceId, BigDecimal summa)`
  Установка суммы наработки за услугу
  `void`
  `transitBalanceToCurdate1(int contractId, Calendar time)`
  Deprecated.
  `void`
  `updateBalance(Date date, int contractId)`
  Устанавливает в таблицу TABLE_CONTRACT_BALANCE сумму баланса из приходов, расходов автоматически меняет баланс до текущей даты, но НЕ ПЕРЕСЧИТЫВАЯ платежи, расходы итд при этом за последующие месяцы.
  `void`
  `updateBalance(Date date, Contract contract)`
  Устанавливает в таблицу TABLE_CONTRACT_BALANCE сумму баланса из приходов, расходов автоматически меняет баланс до текущей даты
  `void`
  `updateBalanceFromCharges(int contractId, LocalDate month)`
  `void`
  `updateBalanceFromPayments(int contractId, LocalDate month)`
  `boolean`
  `wasMoveByAccount(Calendar time, int contractId)`

  ### Methods inherited from class ru.bitel.bgbilling.kernel.base.server.logger.BGLogger

  `error, error, error, getLogger, logError, logError, warn`

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

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

- ## Constructor Details

  - ### BalanceUtils

    public BalanceUtils(Connection con)

- ## Method Details

  - ### getSaldo

    public BigDecimal getSaldo(Date time, int contractId) throws Exception
    Сальдо - входящий остаток на начало месяца.
    ВАЖНО! После использования BalanceUtils, вызвать метод close(), дабы закрыть PrepearStatement-ы у даошек.
    Parameters:
      `time` - месяц
      `contractId` - код договора
    Returns:
    Throws:
      `Exception`

  - ### getBalance

    public BigDecimal getBalance(Date time, int contractId)

  - ### getBalance

    public BigDecimal getBalance(LocalDate localDate, int contractId)
    Получение исходящего остатка договора на требуемый месяц, либо последний предыдущий.
    Parameters:
      `localDate` - месяц
      `contractId` - код договора
    Returns:

  - ### getBalanceOut

    public BigDecimal getBalanceOut(Date time, int contractId)
    Получение исходящего остатка договора на требуемый месяц, либо последний предыдущий.
    ВАЖНО! После использования BalanceUtils, вызвать метод close(), дабы закрыть PrepearStatement-ы у даошек.
    Parameters:
      `time` - месяц
      `contract` - объект договора
    Returns:

  - ### getBalance

    public BigDecimal getBalance(Date time, Contract contract)

  - ### getBalanceSumma1

    public BigDecimal getBalanceSumma1(Date time, int contractId)
    Входящий остаток на начало месяца ВАЖНО! После использования BalanceUtils, вызвать метод close(), дабы закрыть PrepearStatement-ы у даошек.
    Parameters:
      `time` - - месяц на который требуется входящий остаток
      `contractId` - - код договора
    Returns:
      входящий остаток на начала месяца

  - ### setContractAccount

    public void setContractAccount(int contractId, LocalDate time, int serviceId, BigDecimal summa) throws ru.bitel.bgbilling.common.BGException
    Установка суммы наработки за услугу
    Parameters:
      `contractId` - - код договора
      `time` - - месяц
      `serviceId` - - код услуги
      `summa` - - сумма
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### addContractAccount

    public void addContractAccount(int contractId, LocalDate time, int serviceId, BigDecimal addSum) throws ru.bitel.bgbilling.common.BGException
    Приращение наработки за услугу
    Parameters:
      `contractId` - - код договора
      `time` - - месяц
      `serviceId` - - код услуги
      `addSum` - - сумма приращения
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### addBalanceAccount

    public void addBalanceAccount(Contract contract, Calendar time, BigDecimal summa) throws ru.bitel.bgbilling.common.BGException
    Приращение наработки в таблице баланса.
    Parameters:
      `contract` - - объект договора
      `time` - - месяц
      `summa` - - сумма приращения
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### transitBalanceToCurdate1

    @Deprecated public void transitBalanceToCurdate1(int contractId, Calendar time)
    Deprecated.
    Перенос остатков для договора с указанного месяца до текущего
    Parameters:
      `contractId` - - код договора
      `time` - - месяц

  - ### wasMoveByAccount

    public boolean wasMoveByAccount(Calendar time, int contractId)
    Parameters:
      `time` - Calendar
      `contractId` - int
    Returns:
      boolean - было ли движение по счету в указанный месяц

  - ### updateBalance

    public void updateBalance(Date date, int contractId) throws ru.bitel.bgbilling.common.BGException
    Устанавливает в таблицу TABLE_CONTRACT_BALANCE сумму баланса из приходов, расходов автоматически меняет баланс до текущей даты, но НЕ ПЕРЕСЧИТЫВАЯ платежи, расходы итд при этом за последующие месяцы. Если такого договора нет, то просто выйдет из метода.
    Parameters:
      `date` - - месяц
      `contractId` - - код договора
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updateBalance

    public void updateBalance(Date date, Contract contract) throws ru.bitel.bgbilling.common.BGException
    Устанавливает в таблицу TABLE_CONTRACT_BALANCE сумму баланса из приходов, расходов автоматически меняет баланс до текущей даты
    Parameters:
      `date` - - месяц
      `contract` - - объект договора
    Throws:
      `NullPointerException` - - Если договор = null
      `ru.bitel.bgbilling.common.BGException`

  - ### recalculateBalance

    public void recalculateBalance(int contractId, Date dateFrom)
    Пересчет баланса договора c даты
    Parameters:
      `contractId` -
      `dateFrom` -

  - ### setBalanceFromAccount

    public void setBalanceFromAccount(int contractId, Calendar time) throws ru.bitel.bgbilling.common.BGException
    Установка баланса договора за какой-либо месяц.
    Parameters:
      `contractId` - - код договора
      `time` - - месяц
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### setBalanceFromAccount

    @Deprecated public void setBalanceFromAccount(int contractId, Calendar time, boolean lowPrior) throws ru.bitel.bgbilling.common.BGException
    Deprecated.
    Установка баланса договора за какой-либо месяц, заменен на `setBalanceFromAccount(int, Calendar)`
    Parameters:
      `contractId` - - код договора
      `time` - - месяц
      `lowPrior` - - параметр не используется
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### setBalanceFromAccount

    public void setBalanceFromAccount(Contract contract, Calendar time) throws ru.bitel.bgbilling.common.BGException
    Установка наработки в балансе как суммы наработок из contract_account
    Parameters:
      `contract` - - объект договора
      `time` - - месяц
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### setAccount

    public void setAccount(Connection con, org.slf4j.Logger logger, Calendar month, ServiceCostCache costCache, String sids, String cids, List<Integer> contractLabelIds) throws SQLException
    Массовая установка наработки после какого-либо переобсчета.
    Parameters:
      `con` -
      `month` - - месяц, для которого устанавливается наработка
      `sids` - - коды услуг через запятую
      `cids` - - коды договоров через запятую, либо null, если для всех договоров
      `groups` - - битовая маска групп договоров
    Throws:
      `SQLException`

  - ### getLastBalanceMonth

    public Date getLastBalanceMonth(Contract contract)
    Возращает самый старший месяц, за который есть данные по Балансу

  - ### getAccountSumma

    public BigDecimal getAccountSumma(int contractId, Calendar month, String sids) throws ru.bitel.bgbilling.common.BGException
    Получить наработку договора за указанный месяц по указанному перечню услуг. Для супердоговора выдаётся наработка его и всех зависимых субов.
    Parameters:
      `contractId` - - код договора.
      `month` - - месяц.
      `sids` - - услуги через запятые.
    Returns:
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updateBalanceFromCharges

    public void updateBalanceFromCharges(int contractId, LocalDate month) throws NullPointerException, SQLException
    Throws:
      `NullPointerException`
      `SQLException`

  - ### updateBalanceFromPayments

    public void updateBalanceFromPayments(int contractId, LocalDate month) throws NullPointerException, SQLException
    Throws:
      `NullPointerException`
      `SQLException`

  - ### close

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