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)
Список статусов договора с датой окончания пустой либо большей или равной параметру date1java.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
Возвращает статус договора на какую-то дату, если записи нет, статус по-умолчанию - "активен" (отсюда вернётся 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
Установка действующего статуса договора.- 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
Не выродился ли статус. Проверяет, что промежуток открытый или же есть оба конца, и левый меньше либо равен правому. Используется в многих местах, потому вынесено отдельно. Также проверяет, что начало промежутка не null, то есть промежуток ( +бесконечность, +бесконечность ), в такое тоже могло выродиться, если особенно действует алгоритм задания статусов.- Parameters:
status
- тестируемый статус.- Returns:
- true если период временной валидный.
-
getLogList
Возвращает список логов статуса договора- 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 interfaceru.bitel.common.worker.Recyclable
-