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

# Class ReserveDao

java.lang.Object
ru.bitel.common.dao.AbstarctDaoConstant
ru.bitel.common.dao.AbstractDao<B>
ru.bitel.common.dao.AbstractIdDao<Reserve>
ru.bitel.bgbilling.kernel.contract.balance.server.bean.ReserveDao

All Implemented Interfaces:
  `java.lang.AutoCloseable`

    public class ReserveDao
    extends ru.bitel.common.dao.AbstractIdDao<Reserve>

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class ru.bitel.common.dao.AbstractDao

  `ru.bitel.common.dao.AbstractDao.ResultSetIterator`

- ## Field Summary

  Fields
  Modifier and Type | Field | Description
  --- | --- | ---
  `static boolean` | `flagReserve` | Флаг определяющий, будет ли влиять резерв на баланс.

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

  `cacheFilter, cacheJoin, cacheOrderBy, cachePaged, cachePS, cacheWhat, con, getByIdPS, moduleId, orderByPattern, tableName`

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

  `ERROR, fields, SQL_CALC_FOUND_ROWS, SQL_DELETE, SQL_DISTINCT, SQL_EQ, SQL_EQCS, SQL_FROM, SQL_GROUP, SQL_IN, SQL_INSERT, SQL_LIMIT, SQL_ON_DUPLICATE_KEY_UPDATE, SQL_ORDER, SQL_SELECT, SQL_SET, SQL_UPDATE, SQL_VALUES, SQL_WHERE`

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `ReserveDao​(java.sql.Connection con)` |

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `boolean` | `closeReserve​(int reserveId)` | Закрытие резерва.
  `java.math.BigDecimal` | `getBalanceWithReserve​(Contract contract, java.math.BigDecimal balance, java.time.LocalDate localDate)` |
  `java.math.BigDecimal` | `getBalanceWithReserve​(Contract contract, java.math.BigDecimal balance, java.util.Calendar calendar)` | Deprecated. `getBalanceWithReserve(Contract, BigDecimal, LocalDate)`
  `protected Reserve` | `getFromRS​(java.sql.ResultSet rs)` |
  `java.util.List<Reserve>` | `getReserveList​(int cid, Period period, int reserveMembers)` |
  `java.math.BigDecimal` | `getReserveSum​(int contractId)` | Проверка на зависемый subContract не происоходит.
  `java.math.BigDecimal` | `getReserveSumByDate​(int cid, java.util.Date date)` |
  `boolean` | `isUseReserveType​(int reserveTypeId)` |
  `void` | `recalculationSumReserve​(int contractId)` | Переобсчет итогового поля резерва для договора.
  `protected void` | `updateImpl​(Reserve reserve)` | Создание резерва и редактирование( тип, комментарий, сумма).

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

  `delete, get, getAndDelete, getAndUpdate`

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

  `close, delete, deleteImpl, eq, get, getById, getImpl, getListFromRS, getPeriod, getQueryById, getSQLOrder, getTableName, list, list, listImpl, listImpl, listImplPS, listImplPS, ormFromResultSet, ormUpdateImpl, ormUpdateImpl, ormUpdateImpl, ormUpdateImpl, processException, recycle, setStatementParam, update`

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

  `getSQLOrder`

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

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

- ## Field Details

  - ### flagReserve

    public static final boolean flagReserve
    Флаг определяющий, будет ли влиять резерв на баланс. Если равен true, то значит влияет.

- ## Constructor Details

  - ### ReserveDao

    public ReserveDao​(java.sql.Connection con)

- ## Method Details

  - ### isUseReserveType

    public boolean isUseReserveType​(int reserveTypeId) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `reserveTypeId` -
    Returns:
      - true если есть резервы с таким типом
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updateImpl

    protected void updateImpl​(Reserve reserve) throws ru.bitel.bgbilling.common.BGException, java.sql.SQLException
    Создание резерва и редактирование( тип, комментарий, сумма). Дата создания будет выставленна текущая, а не та что передается в резерве. При создании резерва, если выставлен период так же повесится job на момент dateTo, который когда сработает снимет резерв.
    Specified by:
      `updateImpl` in class `ru.bitel.common.dao.AbstractDao<Reserve>`
    Parameters:
      `reserve` -
    Throws:
      `ru.bitel.bgbilling.common.BGException`
      `java.sql.SQLException`

  - ### getReserveList

    public java.util.List<Reserve> getReserveList​(int cid, Period period, int reserveMembers) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `cid` - - номер договора.
      `period` - - 1 - если период != null, то вернет все резервы которые были активны в данном промежутке. 2 - если период == null, все резервы договора. 3 - если период != null, но одна из дат периода == null, все резервы которые были активны в данном промежутке. где null это либо от начало времен или до конца времен. 4 - если период != null, но обе даты из периода == null, вернет то же что и под номером 2. Второй датой пероиода у резерва будет считаться дата закрытия(dateClose), если же ее нет, то дата планируемого закрытия(dateTo),если и ее нет, то проверка только по дате создания.
      `reserveMembers` - - если == 1, то вернет резервы только данного договора, если = 2 то вернет еще и резервы зависемых субдоговоров, если = 3 то только резервы зависемых субдоговоров.
    Returns:
      список резервов договора(-ов).
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### closeReserve

    public boolean closeReserve​(int reserveId) throws ru.bitel.bgbilling.common.BGException
    Закрытие резерва. Можно закрывать резерв без проверки, был ли он закрыт до этого или был ли уже удален. То есть дата закрытия у него не перетрется.(после закрытия,если результатом будет true, необходимо бросить событие,изменение баланса)
    Parameters:
      `reserveId` - ид закрываемого резерва.
    Returns:
      true, если резерв закрыли сейчас. Если вернул false то либо резерв был до этого закрыт или его удалили.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getReserveSum

    public java.math.BigDecimal getReserveSum​(int contractId) throws ru.bitel.bgbilling.common.BGException
    Проверка на зависемый subContract не происоходит.
    Parameters:
      `contractId` - - номер договора.
    Returns:
      сумма резервов для договора. При этом происходит взятие только из таблицы, переобсчет не происходит.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getReserveSumByDate

    public java.math.BigDecimal getReserveSumByDate​(int cid, java.util.Date date) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `cid` - - ид договора
      `date` - -
    Returns:
      сумму резервов на момент date.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### recalculationSumReserve

    public void recalculationSumReserve​(int contractId) throws ru.bitel.bgbilling.common.BGException
    Переобсчет итогового поля резерва для договора. Вызывать при добавлении,закрытии резерва.
    Parameters:
      `contractId` - - номер договора.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getBalanceWithReserve

    @Deprecated public java.math.BigDecimal getBalanceWithReserve​(Contract contract, java.math.BigDecimal balance, java.util.Calendar calendar) throws ru.bitel.bgbilling.common.BGException
    Deprecated.
    `getBalanceWithReserve(Contract, BigDecimal, LocalDate)`
    Parameters:
      `contract` -
      `balance` -
      `calendar` -
    Returns:
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getBalanceWithReserve

    public java.math.BigDecimal getBalanceWithReserve​(Contract contract, java.math.BigDecimal balance, java.time.LocalDate localDate) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `contract` - - договор
      `balance` - - текущий баланс, который считается без резерва.
      `localDate` - - задает месяц и год
    Returns:
      - входной баланс ,если в конфиге отключенно влияние резерва на баланс или вернет входной баланс с вычетом резервов, если включен. Так же вернет просто баланс, если баланс запрашивается не на текущую дату, так как резерв должен влиять только на текущий баланс.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getFromRS

    protected Reserve getFromRS​(java.sql.ResultSet rs) throws java.sql.SQLException, ru.bitel.bgbilling.common.BGException
    Specified by:
      `getFromRS` in class `ru.bitel.common.dao.AbstractDao<Reserve>`
    Throws:
      `java.sql.SQLException`
      `ru.bitel.bgbilling.common.BGException`