Class ContractStatusManager

java.lang.Object
bitel.billing.server.contract.bean.ContractStatusManager
All Implemented Interfaces:
ru.bitel.common.worker.Recyclable
Direct Known Subclasses:
ContractStatusManager.ContractStatusManager4Script

public class ContractStatusManager extends Object implements ru.bitel.common.worker.Recyclable
  • Field Details

  • Constructor Details

    • ContractStatusManager

      public ContractStatusManager(Connection con)
  • Method Details

    • getStatus

      public ContractStatus getStatus(int cid, Date date) throws SQLException
      Возвращает статус договора на какую-то дату, если записи нет, статус по-умолчанию - "активен" (отсюда вернётся null).
      Parameters:
      cid - код договора
      date - дата
      Returns:
      статус или null, если записи нет
      Throws:
      SQLException
    • getStatusList

      public List<ContractStatus> getStatusList(int cid, Date date) throws SQLException
      Список статусов договора с датой окончания пустой либо большей или равной параметру date1
      Parameters:
      cid - код договора
      date - дата
      Returns:
      Throws:
      SQLException
    • getStatusListAfterDate

      public List<ContractStatus> getStatusListAfterDate(int cid, Calendar date) throws SQLException
      Список статусов договора с датой начала позже указанной даты
      Parameters:
      cid - код договора
      date - дата
      Returns:
      Throws:
      SQLException
    • getStatusList

      public List<ContractStatus> getStatusList(int contractId) throws ru.bitel.bgbilling.common.BGException
      Полный список статусов договора
      Parameters:
      contractId - код договора
      Returns:
      Throws:
      ru.bitel.bgbilling.common.BGException
    • setContractStatus

      public void setContractStatus(ContractStatus status) throws SQLException
      Установка действующего статуса договора.
      Parameters:
      status - статус
      Throws:
      SQLException
    • changeStatus

      public void changeStatus(ContractStatus newStatus, Integer userId) throws ru.bitel.bgbilling.common.BGException
      Вызов changeStatus( newStatus, userId, true, false )
      Parameters:
      newStatus -
      userId -
      Throws:
      ru.bitel.bgbilling.common.BGException
    • changeStatus

      public void changeStatus(ContractStatus newStatus, Integer userId, boolean processEvent) throws ru.bitel.bgbilling.common.BGException
      Смена статуса договора. При этом происходит корректное перекрытие существующих на моменты времени статусов, с тем, чтобы на каждый день была активна только одна запись о статусе.
      Parameters:
      newStatus - новый статус с периодом.
      userId - ид юзера. если будет null, то это эквивалентно 0. Если веб, то надо передать User.USER_CONTRACT.
      processEvent - проводить ли события. НЕ относится к событию задания логики перетирания, оно всегда вызовется.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • isStatusPeriodValid

      public static boolean isStatusPeriodValid(ContractStatus status)
      Не выродился ли статус. Проверяет, что промежуток открытый или же есть оба конца, и левый меньше либо равен правому. Используется в многих местах, потому вынесено отдельно. Также проверяет, что начало промежутка не null, то есть промежуток ( +бесконечность, +бесконечность ), в такое тоже могло выродиться, если особенно действует алгоритм задания статусов.
      Parameters:
      status - тестируемый статус.
      Returns:
      true если период временной валидный.
    • getLogList

      public List<ContractStatusLog> getLogList(int cid) throws SQLException
      Возвращает список логов статуса договора
      Parameters:
      cid - код договора
      Returns:
      Throws:
      SQLException
    • getStatusList

      public List<ContractStatus> getStatusList(int cid, Set<Integer> statuses, Date startMonth, Date endMonth) throws SQLException
      Throws:
      SQLException
    • getPeriodList

      public List<Period> getPeriodList(int contractId, Set<Integer> statuses, Date startMonth, Date endMonth) throws SQLException
      Throws:
      SQLException
    • recycle

      public void recycle()
      Specified by:
      recycle in interface ru.bitel.common.worker.Recyclable