bitel.billing.server.contract.bean

## Class ContractManager

- java.lang.Object
- - bitel.billing.server.contract.bean.ContractManager

- All Implemented Interfaces:
    java.lang.AutoCloseable, ru.bitel.common.worker.Recyclable

      public class ContractManager
      extends java.lang.Object
      implements ru.bitel.common.worker.Recyclable, java.lang.AutoCloseable

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `MESSAGE_ABOUT_DUPLICATE`
    `static java.lang.String` | `TABLE_CONTRACT`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ContractManager(java.sql.Connection con)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addContractGroup(int cid, int groupId)` Привязываем договор к группе.
    `java.lang.String` | `addSub(int superId, int subId, int subMode)` Добавляет договора в качестве субдоговора в другой договора
    `boolean` | `checkContractService(int contractId, int serviceId, java.util.Date date)` Проверка наличия на договоре услуги на указанную дату
    `boolean` | `checkContractTitleOnDublication(java.lang.String contractTitle, int contractId)` Проверка, если в базе договора у которых id<>contractId AND UPPER(title)=contractTirle.toUpperCase()
    `void` | `close()`
    `void` | `closeContract(int cid)` Закрываем период действия договора
    `void` | `closeContract(int cid, int mid, int userId)` Закрываем период действия договора текущей датой
    `void` | `closeContract(int cid, int mid, int userId, java.util.Date date)` Закрываем период действия договора указанной датой
    `Contract` | `createFromPattern(int pattern_id, java.lang.String title, java.util.Calendar date, java.lang.String pswd)` Создает договор по шаблону
    `Contract` | `createFromPattern(int pattern_id, java.lang.String title, java.util.Calendar date, java.lang.String pswd, java.util.Map<java.lang.String,java.lang.Object> titleParams, boolean inModules, int superId, int subMode)` Создает договор по шаблону
    `Contract` | `createFromPattern(int pattern_id, java.lang.String title, java.util.Calendar date, java.lang.String pswd, java.util.Map<java.lang.String,java.lang.Object> titleParams, boolean inModules, int superId, int subMode, java.lang.String customTitle)` Создает договор по шаблону
    `Contract` | `createFromPattern(int pattern_id, java.lang.String title, java.util.Calendar date, java.lang.String pswd, java.util.Map<java.lang.String,java.lang.Object> titleParams, boolean inModules, int superId, int subMode, java.lang.String customTitle, int userId)` Создает договор по шаблону
    `Contract` | `createFromPattern(int pattern_id, java.lang.String title, java.util.Calendar date, java.lang.String pswd, java.util.Map<java.lang.String,java.lang.Object> titleParams, boolean inModules, int superId, int subMode, java.lang.String customTitle, int userId, java.util.Map<java.lang.String,java.lang.Object> params)` Создает договор по шаблону
    `void` | `deleteContractGroup(int cid, long groupId)` Удаляем договор из группы.
    `java.lang.String` | `freeContract(int cid)` Перевод субдоговора в независимый договор
    `Contract` | `getContractById(int cid)` Возвращает договор по его коду
    `Contract` | `getContractByTitle(java.lang.String title)` Deprecated.
    `java.util.Map<java.lang.Integer,java.lang.Integer>` | `getContractParameterGroupCountMap()` Возвращает Map содержащий коды групп параметров договоров и кол-ва договоров в каждой из них ("SELECT pgid, COUNT(*) FROM contract GROUP BY pgid")
    `java.util.List<Contract>` | `getContracts(java.lang.String idList)` Возвращает список Договоров по строке с кодами договоров, перечисленными через запятую
    `java.util.List<Contract>` | `getContractsByTitles(java.lang.String titles)` Возвращает договора по списку их номеров.
    `bitel.billing.server.tariff.TariffTreeSet` | `getRealtimeTariffTreeSet(int cid, java.util.Calendar time, java.lang.String module, int mid, boolean useChache)` Deprecated.
    `bitel.billing.server.tariff.TariffTreeSet` | `getRealtimeTariffTreeSet(int cid, java.util.Calendar time, java.lang.String module, int mid, int emid, int eid, boolean useChache)` Deprecated.
    `bitel.billing.server.tariff.TariffTreeSet` | `getRealtimeTariffTreeSet(int cid, java.util.Date date, java.lang.String module, int mid, boolean useChache)` Создает TariffTreeSet для обсчета сессий
    `bitel.billing.server.tariff.TariffTreeSet` | `getRealtimeTariffTreeSet(int cid, java.util.Date time, java.lang.String module, int mid, int emid, int eid, boolean useChache)` Создает TariffTreeSet для обсчета сессий
    `java.util.List<Contract>` | `getSubContracts(int cid)` Получает все субдоговоры данного договора.
    `java.util.List<Contract>` | `getSubContracts(int cid, int subMode)` Получает зависимые или независимые субдоговора данного договора
    `bitel.billing.server.tariff.TariffTreeSet` | `getTariffTreeSetForDay(int contractId, java.util.Calendar time, java.lang.String module, int moduleId, boolean useChache)` Deprecated.
    `bitel.billing.server.tariff.TariffTreeSet` | `getTariffTreeSetForDay(int contractId, java.time.LocalDate time, java.lang.String module, int moduleId, boolean useChache)` Создает TariffTreeSet для обработки одного дня
    `boolean` | `isSubContract(int cid, int subcid)` Проверят зависимый ли контракт один от другого.
    `void` | `recycle()`
    `void` | `updateContract(Contract contract)` Обновление записи о договоре
    `void` | `updateLastTariffChange(int cid)` Deprecated. Вместо этого метода теперь будет добавление события на изменение тарифных планов
    `void` | `updateSuperContractDependSubList(int superId)` Обновляет перечень зависимых субдоговоров.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### TABLE_CONTRACT

          public static final java.lang.String TABLE_CONTRACT

      See Also:
        Constant Field Values

    - #### MESSAGE_ABOUT_DUPLICATE

          public static final java.lang.String MESSAGE_ABOUT_DUPLICATE

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### ContractManager

          public ContractManager(java.sql.Connection con)

  - ### Method Detail

    - #### createFromPattern

          public Contract createFromPattern(int pattern_id,
                                            java.lang.String title,
                                            java.util.Calendar date,
                                            java.lang.String pswd)
                                     throws java.lang.Exception

      Создает договор по шаблону
      Parameters:
        `pattern_id` - номер шаблона
        `title` - имя
        `date` - дата
        `pswd` - пароль
      Returns:
      Throws:
        `java.lang.Exception`

    - #### createFromPattern

          public Contract createFromPattern(int pattern_id,
                                            java.lang.String title,
                                            java.util.Calendar date,
                                            java.lang.String pswd,
                                            java.util.Map<java.lang.String,java.lang.Object> titleParams,
                                            boolean inModules,
                                            int superId,
                                            int subMode)
                                     throws java.lang.Exception

      Создает договор по шаблону
      Parameters:
        `pattern_id` - номер шаблона
        `title` - имя
        `date` - дата
        `pswd` - пароль
        `titleParams` - параметры имени
        `inModules` - проверка в модулях
        `superId` - ID супердоговора
        `subMode` - режим субдоговора
      Returns:
      Throws:
        `java.lang.Exception`

    - #### createFromPattern

          public Contract createFromPattern(int pattern_id,
                                            java.lang.String title,
                                            java.util.Calendar date,
                                            java.lang.String pswd,
                                            java.util.Map<java.lang.String,java.lang.Object> titleParams,
                                            boolean inModules,
                                            int superId,
                                            int subMode,
                                            java.lang.String customTitle)
                                     throws java.lang.Exception

      Создает договор по шаблону
      Parameters:
        `pattern_id` - номер шаблона
        `title` - имя
        `date` - дата
        `pswd` - пароль
        `titleParams` - параметры имени
        `inModules` - проверка в модулях
        `superId` - ID супердоговора
        `subMode` - режим субдоговора
        `customTitle` - ручной режим задания имени
      Returns:
      Throws:
        `java.lang.Exception`

    - #### createFromPattern

          public Contract createFromPattern(int pattern_id,
                                            java.lang.String title,
                                            java.util.Calendar date,
                                            java.lang.String pswd,
                                            java.util.Map<java.lang.String,java.lang.Object> titleParams,
                                            boolean inModules,
                                            int superId,
                                            int subMode,
                                            java.lang.String customTitle,
                                            int userId)
                                     throws java.lang.Exception

      Создает договор по шаблону
      Parameters:
        `pattern_id` - номер шаблона
        `title` - имя
        `date` - дата
        `pswd` - пароль
        `titleParams` - параметры имени
        `inModules` - проверка в модулях
        `superId` - ID супердоговора
        `subMode` - режим субдоговора
        `customTitle` - ручной режим задания имени
        `userId` - код пользователя биллинга
      Returns:
      Throws:
        `java.lang.Exception`

    - #### createFromPattern

          public Contract createFromPattern(int pattern_id,
                                            java.lang.String title,
                                            java.util.Calendar date,
                                            java.lang.String pswd,
                                            java.util.Map<java.lang.String,java.lang.Object> titleParams,
                                            boolean inModules,
                                            int superId,
                                            int subMode,
                                            java.lang.String customTitle,
                                            int userId,
                                            java.util.Map<java.lang.String,java.lang.Object> params)
                                     throws java.lang.Exception

      Создает договор по шаблону
      Parameters:
        `pattern_id` - номер шаблона
        `title` - имя
        `date` - дата
        `pswd` - пароль
        `titleParams` - параметры имени
        `inModules` - проверка в модулях
        `superId` - ID супердоговора
        `subMode` - режим субдоговора
        `customTitle` - ручной режим задания имени
        `userId` - код пользователя биллинга
        `params` - дополнительные параметры создания договора для модулей
      Returns:
      Throws:
        `java.lang.Exception`

    - #### getContracts

          public java.util.List<Contract> getContracts(java.lang.String idList)

      Возвращает список Договоров по строке с кодами договоров, перечисленными через запятую
      Parameters:
        `idList` -
      Returns:

    - #### getContractById

          public Contract getContractById(int cid)

      Возвращает договор по его коду
      Parameters:
        `cid` - код договора
      Returns:

    - #### getContractByTitle

          @Deprecated
          public Contract getContractByTitle(java.lang.String title)

      Deprecated.
      Использовать ContractDao - getByTitle Возвращает договор по его номеру
      Parameters:
        `title` - номер договора
      Returns:

    - #### getContractsByTitles

          public java.util.List<Contract> getContractsByTitles(java.lang.String titles)

      Возвращает договора по списку их номеров.
      Parameters:
        `titles` - номера договоров
      Returns:

    - #### getRealtimeTariffTreeSet

          public bitel.billing.server.tariff.TariffTreeSet getRealtimeTariffTreeSet(int cid,
                                                                                    java.util.Date date,
                                                                                    java.lang.String module,
                                                                                    int mid,
                                                                                    boolean useChache)

      Создает TariffTreeSet для обсчета сессий
      Parameters:
        `contract` - BGContract
        `module` - String
        `mid` - int
        `useChache` - boolean

    - #### getRealtimeTariffTreeSet

          @Deprecated
          public bitel.billing.server.tariff.TariffTreeSet getRealtimeTariffTreeSet(int cid,
                                                                                                java.util.Calendar time,
                                                                                                java.lang.String module,
                                                                                                int mid,
                                                                                                boolean useChache)

      Deprecated.

    - #### getRealtimeTariffTreeSet

          @Deprecated
          public bitel.billing.server.tariff.TariffTreeSet getRealtimeTariffTreeSet(int cid,
                                                                                                java.util.Calendar time,
                                                                                                java.lang.String module,
                                                                                                int mid,
                                                                                                int emid,
                                                                                                int eid,
                                                                                                boolean useChache)

      Deprecated.

    - #### getRealtimeTariffTreeSet

          public bitel.billing.server.tariff.TariffTreeSet getRealtimeTariffTreeSet(int cid,
                                                                                    java.util.Date time,
                                                                                    java.lang.String module,
                                                                                    int mid,
                                                                                    int emid,
                                                                                    int eid,
                                                                                    boolean useChache)

      Создает TariffTreeSet для обсчета сессий
      Parameters:
        `contract` - BGContract
        `module` - String
        `mid` - int
        `useChache` - boolean

    - #### getTariffTreeSetForDay

          @Deprecated
          public bitel.billing.server.tariff.TariffTreeSet getTariffTreeSetForDay(int contractId,
                                                                                              java.util.Calendar time,
                                                                                              java.lang.String module,
                                                                                              int moduleId,
                                                                                              boolean useChache)

      Deprecated.

    - #### getTariffTreeSetForDay

          public bitel.billing.server.tariff.TariffTreeSet getTariffTreeSetForDay(int contractId,
                                                                                  java.time.LocalDate time,
                                                                                  java.lang.String module,
                                                                                  int moduleId,
                                                                                  boolean useChache)

      Создает TariffTreeSet для обработки одного дня

    - #### freeContract

          public java.lang.String freeContract(int cid)
                                        throws java.sql.SQLException

      Перевод субдоговора в независимый договор
      Parameters:
        `cid` - код договора
      Throws:
        `java.sql.SQLException`

    - #### updateSuperContractDependSubList

          public void updateSuperContractDependSubList(int superId)
                                                throws java.sql.SQLException

      Обновляет перечень зависимых субдоговоров.
      Parameters:
        `superId` - код супердоговора
      Throws:
        `java.sql.SQLException`

    - #### addSub

          public java.lang.String addSub(int superId,
                                         int subId,
                                         int subMode)
                                  throws java.sql.SQLException,
                                         ru.bitel.bgbilling.common.BGException

      Добавляет договора в качестве субдоговора в другой договора
      Parameters:
        `superId` - супердоговор
        `subId` - субдоговор
        `subMode` - режим "субирования"
      Returns:
        null - если все успешно, строку с ошибкой - если произошла ошибка
      Throws:
        `java.sql.SQLException`
        `ru.bitel.bgbilling.common.BGException`

    - #### getSubContracts

          public java.util.List<Contract> getSubContracts(int cid)

      Получает все субдоговоры данного договора.
      Parameters:
        `cid` - код договора.
      Returns:
        список субдоговоров.

    - #### isSubContract

          public boolean isSubContract(int cid,
                                       int subcid)
                                throws ru.bitel.bgbilling.common.BGException

      Проверят зависимый ли контракт один от другого.
      Parameters:
        `cid` - договор
        `subcid` - потенциальный зависимый субконтракт.
      Returns:
        true - зависимость есть.
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getSubContracts

          public java.util.List<Contract> getSubContracts(int cid,
                                                          int subMode)

      Получает зависимые или независимые субдоговора данного договора
      Parameters:
        `cid` -
        `subMode` - зависимый или независимый режим из KernelConst
      Returns:

    - #### updateLastTariffChange

          @Deprecated
          public void updateLastTariffChange(int cid)

      Deprecated. Вместо этого метода теперь будет добавление события на изменение тарифных планов
      Parameters:
        `cid` -

    - #### updateContract

          public void updateContract(Contract contract)

      Обновление записи о договоре
      Parameters:
        `contract` -

    - #### checkContractTitleOnDublication

          public boolean checkContractTitleOnDublication(java.lang.String contractTitle,
                                                         int contractId)

      Проверка, если в базе договора у которых id<>contractId AND UPPER(title)=contractTirle.toUpperCase()
      Parameters:
        `contractTitle` - название договора.
        `contractId` - код договора для которого название проверяться не будет.
      Returns:
        true - если дубликата нет.

    - #### addContractGroup

          public void addContractGroup(int cid,
                                       int groupId)
                                throws java.sql.SQLException

      Привязываем договор к группе.
      Parameters:
        `cid` - код договора
        `groupId` - код группы
      Throws:
        `java.sql.SQLException`

    - #### deleteContractGroup

          public void deleteContractGroup(int cid,
                                          long groupId)
                                   throws java.sql.SQLException

      Удаляем договор из группы.
      Parameters:
        `cid` - код договора
        `groupId` - код группы
      Throws:
        `java.sql.SQLException`

    - #### closeContract

          public void closeContract(int cid)
                             throws java.sql.SQLException,
                                    ru.bitel.bgbilling.common.BGException

      Закрываем период действия договора
      Parameters:
        `cid` - код договора
      Throws:
        `java.sql.SQLException`
        `ru.bitel.bgbilling.common.BGException`

    - #### closeContract

          public void closeContract(int cid,
                                    int mid,
                                    int userId)
                             throws java.sql.SQLException,
                                    ru.bitel.bgbilling.common.BGException

      Закрываем период действия договора текущей датой
      Parameters:
        `cid` - код договора
        `mid` - код модуля
        `userId` - идентификатор пользователя
      Throws:
        `java.sql.SQLException`
        `ru.bitel.bgbilling.common.BGException`

    - #### closeContract

          public void closeContract(int cid,
                                    int mid,
                                    int userId,
                                    java.util.Date date)
                             throws java.sql.SQLException,
                                    ru.bitel.bgbilling.common.BGException

      Закрываем период действия договора указанной датой
      Parameters:
        `cid` - - код договора
        `mid` - - код модуля
        `userId` - - идентификатор пользователя
        `date` - - дата закрытия договора
      Throws:
        `java.sql.SQLException`
        `ru.bitel.bgbilling.common.BGException`

    - #### recycle

          public void recycle()

      Specified by:
        `recycle` in interface `ru.bitel.common.worker.Recyclable`

    - #### getContractParameterGroupCountMap

          public java.util.Map<java.lang.Integer,java.lang.Integer> getContractParameterGroupCountMap()
                                                                                               throws ru.bitel.bgbilling.common.BGException

      Возвращает Map содержащий коды групп параметров договоров и кол-ва договоров в каждой из них ("SELECT pgid, COUNT(*) FROM contract GROUP BY pgid")
      Returns:
        Map в какой группе сколько договоров
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### checkContractService

          public boolean checkContractService(int contractId,
                                              int serviceId,
                                              java.util.Date date)
                                       throws ru.bitel.bgbilling.common.BGException

      Проверка наличия на договоре услуги на указанную дату
      Parameters:
        `contractId` - код договора
        `serviceId` - код услуги
        `date` - дата
      Returns:
        true - если услуга есть, false - услуги нет или дата вне периода
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### close

          public void close()

      Specified by:
        `close` in interface `java.lang.AutoCloseable`