Package bitel.billing.server.contract.bean

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