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

# Class BalanceDao

java.lang.Object
ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
ru.bitel.common.dao.AbstarctDaoConstant
ru.bitel.bgbilling.kernel.contract.balance.server.bean.BalanceDao

public class BalanceDao extends ru.bitel.common.dao.AbstarctDaoConstant

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static final record`
  `BalanceDao.ServiceAccountData`

- ## Field Summary

  ### Fields inherited from class ru.bitel.common.dao.AbstarctDaoConstant

  `ERROR, fields, SQL_ALL, SQL_AND, SQL_CALC_FOUND_ROWS, SQL_DELETE, SQL_DISTINCT, SQL_EQ, SQL_EQCS, SQL_FROM, SQL_GROUP, SQL_IN, SQL_INSERT, SQL_JOIN, SQL_LEFT_JOIN, SQL_LIMIT, SQL_NOT_IN, SQL_ON, SQL_ON_DUPLICATE_KEY_UPDATE, SQL_ORDER, SQL_SELECT, SQL_SET, SQL_UPDATE, SQL_VALUES, SQL_WHERE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `BalanceDao(Connection con)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `accountClear(int yy, int mm, List<Integer> contractIds, List<Integer> contractLabelIds, String sidList)`
  `void`
  `accountDetailClear(int yy, int mm, List<Integer> contractIds, List<Integer> contractLabelIds, String sidList)`
  `void`
  `addBalanceAccount(int contractId, int superContractId, int year, int month, BigDecimal account)`
  Нужно вызывать только после того как добавили наработку в contract_account!
  `void`
  `addBalanceAccount(int contractId, int superContractId, int year, int month, BigDecimal account, PreparedStatement addBalanceAccountPS)`
  `void`
  `addContractAccount(int contractId, int yy, int mm, int serviceId, BigDecimal account)`
  `void`
  `addContractAccountDetail(List<ContractAccountDetail> accountDetails)`
  `void`
  `cleanContractAccountDetail()`
  Удаление старых записей детализации (чистка таблицы) удаляются записи старше 365 дней (по умолчанию), может быть изменено параметром в конфиге contract.account.detail.remove.day=365
  `PreparedStatement`
  `getAddBalanceAccountPS()`
  `BigDecimal`
  `getBalance(int contractId, int year, int month)`
  Отличается от BalanceUtils тем что нет проверки, является ли договор дочерним!
  `BigDecimal`
  `getBalance(int contractId, int year, int month, PreparedStatement balancePS1, PreparedStatement balancePS2)`
  `PreparedStatement`
  `getBalanceAccountPS()`
  `PreparedStatement`
  `getBalancePS1()`
  `PreparedStatement`
  `getBalancePS2()`
  `void`
  `getContractAccountDetailList(SearchResult<ContractAccountDetail> searchResult, int contractId, int serviceId)`
  `SearchResult<ContractAccount>`
  `getContractAccountList(int contractId, Period period, int members)`
  Наработки договора, поддерживается за несколько месяцев, и апционально с субдоговоров.
  `ContractBalance`
  `getContractBalance(int contractId, int yy, int mm)`
  Возвращает баланс договора.
  `ContractBalance`
  `getContractBalance(int contractId, int yy, int mm, PreparedStatement ps1, PreparedStatement ps2)`
  `PreparedStatement`
  `getContractBalanceCurrentMonthPS()`
  `PreparedStatement`
  `getContractBalanceLastPS()`
  `List<ContractBalance>`
  `getContractBalanceList(int contractId, Period period)`
  Возвратит список помесячных данных баланса (такие как приходы, расходы, наработки и входящий остаток).
  `BigDecimal`
  `getIncomingSaldo(int contractId, int year, int month)`
  Получение входящего сальдо как сумма исходящего баланса прошлого месяца (в котором было изменение баланса).
  `BigDecimal`
  `getIncomingSaldo(int contractId, int year, int month, PreparedStatement incomingSaldoPS)`
  `PreparedStatement`
  `getIncomingSaldoPS()`
  `PreparedStatement`
  `getInsertBalanceAccountPS()`
  `PreparedStatement`
  `getUpdateBalanceAccountPS()`
  `void`
  `removeContractAccount(int contrctId, int year, int month, String sids)`
  Удаление наработки за услугу
  `void`
  `removeContractAccount(int yy, int mm, Set<Integer> cids, String sids, long groupMask)`
  Удаление наработки за услугу *
  `void`
  `removeContractAccountDetail(int contractId, int year, int month, List<Integer> serviceIds)`
  Удаление детализации наработки за услуги
  `BigDecimal`
  `setBalanceAccount(int contractId, int superContractId, int year, int month)`
  Установка наработки (summa3) в contract_balance из суммы contract_account.
  `BigDecimal`
  `setBalanceAccount(int contractId, int superContractId, int year, int month, PreparedStatement balanceAccountPS, PreparedStatement updateBalanceAccountPS, PreparedStatement insertBalanceAccountPS, PreparedStatement incomingSaldoPS)`
  `void`
  `setContractAccount(int contractId, int year, int month, int serviceId, BigDecimal summa)`
  Установка суммы наработки за услугу
  `void`
  `setContractAccount(int contractId, int year, int month, List<BalanceDao.ServiceAccountData> serviceAccountDatas)`

  ### Methods inherited from class ru.bitel.common.dao.AbstarctDaoConstant

  `getSQLOrder, psSetDate, psSetInt, psSetString, queryAndIn`

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

  - ### BalanceDao

    public BalanceDao(Connection con)

- ## Method Details

  - ### addContractAccount

    public void addContractAccount(int contractId, int yy, int mm, int serviceId, BigDecimal account) throws SQLException
    Throws:
      `SQLException`

  - ### getAddBalanceAccountPS

    public PreparedStatement getAddBalanceAccountPS() throws SQLException
    Throws:
      `SQLException`

  - ### addBalanceAccount

    public void addBalanceAccount(int contractId, int superContractId, int year, int month, BigDecimal account) throws SQLException
    Нужно вызывать только после того как добавили наработку в contract_account!
    Parameters:
      `contractId` - - id договора
      `superContractId` - - id супердоговора, если это субдоговор с зависимым балансом
      `year` -
      `month` -
      `account` -
    Throws:
      `SQLException`

  - ### addBalanceAccount

    public void addBalanceAccount(int contractId, int superContractId, int year, int month, BigDecimal account, PreparedStatement addBalanceAccountPS) throws SQLException
    Throws:
      `SQLException`

  - ### getUpdateBalanceAccountPS

    public PreparedStatement getUpdateBalanceAccountPS() throws SQLException
    Throws:
      `SQLException`

  - ### getInsertBalanceAccountPS

    public PreparedStatement getInsertBalanceAccountPS() throws SQLException
    Throws:
      `SQLException`

  - ### setBalanceAccount

    public BigDecimal setBalanceAccount(int contractId, int superContractId, int year, int month) throws SQLException
    Установка наработки (summa3) в contract_balance из суммы contract_account.
    Parameters:
      `contractId` - - id договора
      `superContractId` - - id супердоговора, если это субдоговор с зависимым балансом
      `year` -
      `month` -
    Returns:
    Throws:
      `SQLException`

  - ### setBalanceAccount

    public BigDecimal setBalanceAccount(int contractId, int superContractId, int year, int month, PreparedStatement balanceAccountPS, PreparedStatement updateBalanceAccountPS, PreparedStatement insertBalanceAccountPS, PreparedStatement incomingSaldoPS) throws SQLException
    Throws:
      `SQLException`

  - ### getBalanceAccountPS

    public PreparedStatement getBalanceAccountPS() throws SQLException
    Throws:
      `SQLException`

  - ### getIncomingSaldoPS

    public PreparedStatement getIncomingSaldoPS() throws SQLException
    Throws:
      `SQLException`

  - ### getIncomingSaldo

    public BigDecimal getIncomingSaldo(int contractId, int year, int month) throws SQLException
    Получение входящего сальдо как сумма исходящего баланса прошлого месяца (в котором было изменение баланса).
    Parameters:
      `contractId` -
      `year` -
      `month` -
    Returns:
    Throws:
      `SQLException`

  - ### getIncomingSaldo

    public BigDecimal getIncomingSaldo(int contractId, int year, int month, PreparedStatement incomingSaldoPS) throws SQLException
    Throws:
      `SQLException`

  - ### getContractBalanceCurrentMonthPS

    public PreparedStatement getContractBalanceCurrentMonthPS() throws SQLException
    Throws:
      `SQLException`

  - ### getContractBalanceLastPS

    public PreparedStatement getContractBalanceLastPS() throws SQLException
    Throws:
      `SQLException`

  - ### getContractBalance

    public ContractBalance getContractBalance(int contractId, int yy, int mm) throws SQLException
    Возвращает баланс договора. Внимание! Метод возвращает баланс указанного договора, даже если он зависимый субдоговор!
    Вернет с учетом резервов, если запрашивается на текущий месяц( ну и если в конфиге включено влияние резервов на баланс).
    Parameters:
      `contractId` -
      `yy` -
      `mm` -
    Returns:
    Throws:
      `SQLException`

  - ### getContractBalance

    public ContractBalance getContractBalance(int contractId, int yy, int mm, PreparedStatement ps1, PreparedStatement ps2) throws SQLException
    Throws:
      `SQLException`

  - ### getContractBalanceList

    public List<ContractBalance> getContractBalanceList(int contractId, Period period)
    Возвратит список помесячных данных баланса (такие как приходы, расходы, наработки и входящий остаток).
    Parameters:
      `contractId` - - код договора.
      `period` - - за какой период.

  - ### getBalancePS1

    public PreparedStatement getBalancePS1() throws SQLException
    Throws:
      `SQLException`

  - ### getBalancePS2

    public PreparedStatement getBalancePS2() throws SQLException
    Throws:
      `SQLException`

  - ### getBalance

    public BigDecimal getBalance(int contractId, int year, int month) throws SQLException
    Отличается от BalanceUtils тем что нет проверки, является ли договор дочерним! Это должно происходить выше. Вернет с учетом резервов, если запрашивается на текущий месяц (ну и если в конфиге включено влияние резервов на баланс).
    Parameters:
      `contractId` -
      `year` -
      `month` -
    Returns:
    Throws:
      `SQLException`

  - ### getBalance

    public BigDecimal getBalance(int contractId, int year, int month, PreparedStatement balancePS1, PreparedStatement balancePS2) throws SQLException
    Throws:
      `SQLException`

  - ### setContractAccount

    public void setContractAccount(int contractId, int year, int month, int serviceId, BigDecimal summa) throws SQLException
    Установка суммы наработки за услугу
    Parameters:
      `contractId` - - код договора
      `serviceId` - - код услуги
      `summa` - - сумма
      `time` - - месяц
    Throws:
      `SQLException`

  - ### setContractAccount

    public void setContractAccount(int contractId, int year, int month, List<BalanceDao.ServiceAccountData> serviceAccountDatas) throws SQLException
    Throws:
      `SQLException`

  - ### getContractAccountList

    public SearchResult<ContractAccount> getContractAccountList(int contractId, Period period, int members) throws SQLException
    Наработки договора, поддерживается за несколько месяцев, и апционально с субдоговоров.
    Parameters:
      `contractId` - - код договора.
      `period` - - период, если == null, то все наработки. Если какая нибудь из дат == null, то она принимается за текущую дату.
      `members` - - если == 1, то вернет только данного договора, если = 2 то вернет еще и зависимых субдоговоров, если = 3 то только зависимых субдоговоров.
    Returns:
      список наработок
    Throws:
      `SQLException`

  - ### getContractAccountDetailList

    public void getContractAccountDetailList(SearchResult<ContractAccountDetail> searchResult, int contractId, int serviceId) throws SQLException
    Throws:
      `SQLException`

  - ### addContractAccountDetail

    public void addContractAccountDetail(List<ContractAccountDetail> accountDetails) throws SQLException
    Throws:
      `SQLException`

  - ### removeContractAccountDetail

    public void removeContractAccountDetail(int contractId, int year, int month, List<Integer> serviceIds) throws SQLException
    Удаление детализации наработки за услуги
    Parameters:
      `contractId` - - код договора
      `period` - - период начала и конца месяца
      `serviceId` - - код услуги
    Throws:
      `SQLException`

  - ### cleanContractAccountDetail

    public void cleanContractAccountDetail() throws SQLException
    Удаление старых записей детализации (чистка таблицы) удаляются записи старше 365 дней (по умолчанию), может быть изменено параметром в конфиге contract.account.detail.remove.day=365
    Throws:
      `SQLException`

  - ### removeContractAccount

    public void removeContractAccount(int contrctId, int year, int month, String sids) throws SQLException
    Удаление наработки за услугу
    Parameters:
      `contrctId` - - код договора
      `sids` - - коды услуг
      `time` - - месяц
    Throws:
      `SQLException`

  - ### removeContractAccount

    public void removeContractAccount(int yy, int mm, Set<Integer> cids, String sids, long groupMask) throws SQLException
    Удаление наработки за услугу *
    Parameters:
      `yy` - - год
      `yy` - - месяц
      `serviceId` - - код услуги
      `summa` - - сумма
    Throws:
      `SQLException`

  - ### accountClear

    public void accountClear(int yy, int mm, List<Integer> contractIds, List<Integer> contractLabelIds, String sidList) throws SQLException
    Throws:
      `SQLException`

  - ### accountDetailClear

    public void accountDetailClear(int yy, int mm, List<Integer> contractIds, List<Integer> contractLabelIds, String sidList) throws SQLException
    Throws:
      `SQLException`