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, 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)
    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, 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
      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