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 java.lang.Object
implements ru.bitel.common.worker.Recyclable
  • Nested Class Summary

    Nested Classes
    Modifier and Type Class Description
    static class  ContractStatusManager.ContractStatusManager4Script
    Заменяем кусочек класа ContractStatusManager с приватными методами такими же, но открытыми.
  • Field Summary

    Fields
    Modifier and Type Field Description
    protected java.sql.Connection con  
  • Constructor Summary

    Constructors
    Constructor Description
    ContractStatusManager​(java.sql.Connection con)  
  • Method Summary

    Modifier and Type Method Description
    void changeStatus​(ContractStatus newStatus, java.lang.Integer userId)
    Вызов changeStatus( newStatus, userId, true, false )
    void changeStatus​(ContractStatus newStatus, java.lang.Integer userId, boolean processEvent)
    Смена статуса договора.
    java.util.List<ContractStatusLog> getLogList​(int cid)
    Возвращает список логов статуса договора
    java.util.List<Period> getPeriodList​(int contractId, java.util.Set<java.lang.Integer> statuses, java.util.Date startMonth, java.util.Date endMonth)  
    ContractStatus getStatus​(int cid, java.util.Date date)
    Возвращает статус договора на какую-то дату, если записи нет, статус по-умолчанию - "активен" (отсюда вернётся null).
    java.util.List<ContractStatus> getStatusList​(int contractId)
    Полный список статусов договора
    java.util.List<ContractStatus> getStatusList​(int cid, java.util.Date date)
    Список статусов договора с датой окончания пустой либо большей или равной параметру date1
    java.util.List<ContractStatus> getStatusList​(int cid, java.util.Set<java.lang.Integer> statuses, java.util.Date startMonth, java.util.Date endMonth)  
    java.util.List<ContractStatus> getStatusListAfterDate​(int cid, java.util.Calendar date)
    Список статусов договора с датой начала позже указанной даты
    static boolean isStatusPeriodValid​(ContractStatus status)
    Не выродился ли статус.
    void recycle()  
    void setContractStatus​(ContractStatus status)
    Установка действующего статуса договора.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • con

      protected final java.sql.Connection con
  • Constructor Details

    • ContractStatusManager

      public ContractStatusManager​(java.sql.Connection con)
  • Method Details

    • getStatus

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

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

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

      public java.util.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 java.sql.SQLException
      Установка действующего статуса договора.
      Parameters:
      status - статус
      Throws:
      java.sql.SQLException
    • changeStatus

      public void changeStatus​(ContractStatus newStatus, java.lang.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, java.lang.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 java.util.List<ContractStatusLog> getLogList​(int cid) throws java.sql.SQLException
      Возвращает список логов статуса договора
      Parameters:
      cid - код договора
      Returns:
      Throws:
      java.sql.SQLException
    • getStatusList

      public java.util.List<ContractStatus> getStatusList​(int cid, java.util.Set<java.lang.Integer> statuses, java.util.Date startMonth, java.util.Date endMonth) throws java.sql.SQLException
      Throws:
      java.sql.SQLException
    • getPeriodList

      public java.util.List<Period> getPeriodList​(int contractId, java.util.Set<java.lang.Integer> statuses, java.util.Date startMonth, java.util.Date endMonth) throws java.sql.SQLException
      Throws:
      java.sql.SQLException
    • recycle

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