Package ru.bitel.bgbilling.kernel.contract.api.server.bean

# Class ContractDao

java.lang.Object
ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
ru.bitel.common.dao.AbstarctDaoConstant
ru.bitel.common.dao.AbstractDao<Contract>
ru.bitel.common.dao.AbstractIdDao<Contract>
ru.bitel.oss.kernel.entity.server.bean.AbstractEntityAttrDao<Contract>
ru.bitel.bgbilling.kernel.contract.api.server.bean.ContractDao

All Implemented Interfaces:
  `AutoCloseable`

public class ContractDao extends AbstractEntityAttrDao<Contract>

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static interface`
  `ContractDao.ParamValueFormater`

  ## Nested classes/interfaces inherited from class ru.bitel.oss.kernel.entity.server.bean.AbstractEntityAttrDao

  `AbstractEntityAttrDao.AddressItemModifiedEventListener`

  ## Nested classes/interfaces inherited from class ru.bitel.common.dao.AbstractDao

  `ru.bitel.common.dao.AbstractDao.ResultSetIterator`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `MESSAGE_ABOUT_DUPLICATE`

  ### Fields inherited from class ru.bitel.oss.kernel.entity.server.bean.AbstractEntityAttrDao

  `CONTRACT_OBJECT_SUPPORT, CONTRACT_SUPPORT, ENTITY_SUPPORT, entitySpecAttrDirectory, entitySpecDirectory, entityTableSuffix, filterWeightComparator, userId`

  ### Fields inherited from class ru.bitel.common.dao.AbstractDao

  `cacheFilter, cacheJoin, cacheOrderBy, cachePaged, cachePS, cacheWhat, con, getByIdPS, moduleId, orderByPattern, tableName`

  ### Fields inherited from class ru.bitel.common.dao.AbstarctDaoConstant

  `ERROR, fields, SQL_ALL, SQL_AND, SQL_CALC_FOUND_ROWS, SQL_DELETE, SQL_DISTINCT, SQL_EQ, SQL_EQCS, SQL_FROM, SQL_GROUP, SQL_IN, SQL_INSERT, SQL_JOIN, SQL_LEFT_JOIN, SQL_LIMIT, SQL_NOT_IN, SQL_ON, SQL_ON_DUPLICATE_KEY_UPDATE, SQL_ORDER, SQL_SELECT, SQL_SET, SQL_UPDATE, SQL_VALUES, SQL_WHERE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ContractDao(Connection con, int userId)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static void`
  `addLabelAndDomainFilter(StringBuilder where, User user)`
  `String`
  `addSub(int superId, int subId, int subMode)`
  Добавляет договора в качестве субдоговора в другой договора
  `void`
  `checkContractParameter(EntityAttr entityAttr)`
  `boolean`
  `checkContractTitleOnDublication(String contractTitle, int contractId)`
  Проверка, если в базе договора у которых idinvalid input: '<'>contractId AND UPPER(title)=contractTirle.toUpperCase()
  `void`
  `closeContract(int contractId)`
  Закрываем период действия договора
  `void`
  `closeContract(int contractId, int moduleId, int userId)`
  Закрываем период действия договора текущей датой
  `void`
  `closeContract(int contractId, int moduleId, int userId, Date date)`
  Закрываем период действия договора указанной датой
  `String`
  `contractListByFilter(ContractFilters contractFilters, List<FilterEntityAttr> entityFilter, Page page)`
  `Contract`
  `createFromPattern(ContractCreateData data, boolean inModules)`
  Создает договор по шаблону
  `Contract`
  `createFromPattern(ContractCreateData data, Map<String,Object> params, boolean inModules)`
  Создает договор по шаблону
  `boolean`
  `deleteContractParameter(int entityId, int entitySpecAttrId)`
  `String`
  `freeContract(int contractId)`
  Перевод субдоговора в независимый договор
  `Contract`
  `getByTitle(String title)`
  Возвращает договор по заголовку.
  `static Contract`
  `getContract(Connection con, int contractId)`
  `List<Contract>`
  `getContractByTextParameter(int parameterId, String value)`
  Список договоров у которых заданный текстовый параметр точно совпадает с заданным значением
  `List<Contract>`
  `getContractForTextlikeParamValue(int parameterId, String value)`
  Получает договор по текстовому значению/представлению некоторого параметра неопределённого типа.
  `int`
  `getContractIdByTextParameter(int parameterId, String value)`
  `List<Integer>`
  `getContractIdsByTitles(List<String> titles)`
  Возвращает договора по списку их номеров.
  `EntityAttr`
  `getContractParameter(int contractId, int parameterId)`
  Получение параметра договора.
  `EntityAttrAddress`
  `getContractParameterAddress(int contractId, int parameterId)`
  `Optional<String>`
  `getContractParameterAddressAsString(int contractId, int parameterId)`
  `Boolean`
  `getContractParameterBoolean(int contractId, int parameterId, Boolean defaultValue)`
  `Date`
  `getContractParameterDate(int contractId, int parameterId, Date defaultValue)`
  `Optional<EntityAttrEmail>`
  `getContractParameterEmail(int contractId, int parameterId)`
  `Optional<EntityAttrList>`
  `getContractParameterList(int contractId, int parameterId)`
  `Optional<String>`
  `getContractParameterListAsString(int contractId, int parameterId)`
  `Optional<EntityAttrMultiList>`
  `getContractParameterMultiList(int contractId, int parameterId)`
  `Optional<String>`
  `getContractParameterMultiListAsString(int contractId, int parameterId)`
  `Optional<EntityAttrPhone>`
  `getContractParameterPhone(int contractId, int parameterId)`
  `String`
  `getContractParameterPhoneFirst(int contractId, int parameterId)`
  `Map<Integer,EntityAttr>`
  `getContractParameters(int contractId, int paramGroupId)`
  Возвращает map параметров договора.
  Если параметр не заведен (не указан, не добавлен), то данный параметр будет отсутствовать в результате.
  `Map<Integer,EntityAttr>`
  `getContractParameters(int entityId, Set<Integer> entitySpecAttrIds)`
  `Map<Integer,String>`
  `getContractParameterValuesForParameterIds(int contractId, Set<Integer> parameterIds)`
  `List<Contract>`
  `getContracts(String idList)`
  Возвращает список Договоров по строке с кодами договоров, перечисленными через запятую
  `List<Contract>`
  `getContracts(List<Integer> ids)`
  Возвращает список Договоров по строке с кодами договоров, перечисленными через запятую
  `List<Contract>`
  `getContractsByTitles(List<String> titles)`
  Возвращает договора по списку их номеров.
  `static Map<Integer,String>`
  `getContractTitles(Connection con, List<Integer> contractIds)`
  `Map<Integer,String>`
  `getContractTitles(List<Integer> contractIds)`
  `String`
  `getEmailFromContractParameter(int contractId, int parameterId)`
  Получение строкового представление e-mail параметра.
  В начале пытаемся получить e-mail из TABLE_CONTRACT_PARAMETER_TYPE_EMAIL, если там нет с таким кодом, то возвращаем из TABLE_CONTRACT_PARAMETER_TYPE_STRING, то есть из строкового параметра.
  `protected Directory<? extends AbstractSpecAttr>`
  `getEntitySpecAttrDirectory()`
  `Directory<? extends EntitySpec>`
  `getEntitySpecDirectory()`
  `protected Contract`
  `getFromRS(ResultSet rs, boolean loadAttributes)`
  `int[]`
  `getSubContractModeStat(int contractId)`
  `List<Contract>`
  `getSubContracts(int contractId)`
  Получает все субдоговоры данного договора.
  `List<Contract>`
  `getSubContracts(int contractId, int subMode)`
  Получает зависимые, независимые или все(subMode==-1) субдоговора данного договора.
  `boolean`
  `isSubContract(int contractId, int subContractId)`
  Проверят зависимый ли контракт один от другого.
  `List<Contract>`
  `list(String title, String comment, int fc, long groupMaskAnd, int firm, List<FilterEntityAttr> entityFilter, boolean subContracts, boolean closed, boolean hidden, String orderBy, Page page)`
  Deprecated.
  `list(ContractFilters, List, String, Page)`
  `List<Contract>`
  `list(String title, String comment, int fc, long groupMaskAnd, int firm, List<FilterEntityAttr> entityFilter, boolean subContracts, boolean closed, boolean hidden, Page page)`
  Deprecated.
  `list(ContractFilters, List, Page)`
  `List<Contract>`
  `list(ContractFilters contractFilters, List<FilterEntityAttr> entityFilter, String orderBy, Page page)`
  `List<Contract>`
  `list(ContractFilters contractFilters, List<FilterEntityAttr> entityFilter, String orderBy, Page page, Set<Integer> labelIds, boolean inAllLabels)`
  `List<Contract>`
  `list(ContractFilters contractFilters, List<FilterEntityAttr> entityFilter, Page page)`
  `List<Contract>`
  `list(ContractFilters contractFilters, List<FilterEntityAttr> entityFilter, Page page, Set<Integer> labelIds, boolean inAllLabels)`
  `Optional<Contract>`
  `optByTitle(String title)`
  `Optional<EntityAttrAddress>`
  `optContractParameterAddress(int contractId, int parameterId)`
  `Optional<EntityAttrBoolean>`
  `optContractParameterBoolean(int contractId, int parameterId)`
  `Optional<EntityAttrDate>`
  `optContractParameterDate(int contractId, int parameterId)`
  `Optional<String>`
  `optContractParameterEmailAsString(int contractId, int parameterId)`
  `Optional<String>`
  `optContractParameterEmailFirst(int contractId, int parameterId)`
  `Optional<EntityAttrText>`
  `optContractParameterText(int contractId, int parameterId)`
  `Optional<String>`
  `optContractParameterTextAsString(int contractId, int parameterId)`
  `void`
  `searchContractByobjectParameterText(SearchResult<ru.bitel.bgbilling.kernel.contract.api.common.dto.ContractSearchDto> searchResult, ContractFilters contractFilters, FilterEntityAttrText filterEntityAttrText)`
  `void`
  `searchContractByParameterAddress(SearchResult<ru.bitel.bgbilling.kernel.contract.api.common.dto.ContractSearchDto> searchResult, ContractFilters contractFilters, FilterEntityAttrAddress filterEntityAttrAddress)`
  `void`
  `searchContractByParameterDate(SearchResult<ru.bitel.bgbilling.kernel.contract.api.common.dto.ContractSearchDto> searchResult, ContractFilters contractFilters, FilterEntityAttrDate filterEntityAttrDate)`
  `void`
  `searchContractByParameterEmail(SearchResult<ru.bitel.bgbilling.kernel.contract.api.common.dto.ContractSearchDto> searchResult, ContractFilters contractFilters, FilterEntityAttrEmail filterEntityAttrEmail)`
  `void`
  `searchContractByParameterList(SearchResult<ru.bitel.bgbilling.kernel.contract.api.common.dto.ContractSearchDto> searchResult, ContractFilters contractFilters, FilterEntityAttrList filterEntityAttrList)`
  `void`
  `searchContractByParameterMultiList(SearchResult<ru.bitel.bgbilling.kernel.contract.api.common.dto.ContractSearchDto> searchResult, ContractFilters contractFilters, FilterEntityAttrMultiList filterEntityAttrMultiList)`
  `void`
  `searchContractByParameterPhone(SearchResult<ru.bitel.bgbilling.kernel.contract.api.common.dto.ContractSearchDto> searchResult, ContractFilters contractFilters, FilterEntityAttrPhone filterEntityAttrPhone)`
  `void`
  `searchContractByParameterText(SearchResult<ru.bitel.bgbilling.kernel.contract.api.common.dto.ContractSearchDto> searchResult, ContractFilters contractFilters, FilterEntityAttrText filterEntityAttrText)`
  Поиск договоров по строковым параметрам.
  `boolean`
  `updateContractParameter(int contractId, EntityAttr entityAttr)`
  `void`
  `updateContractParameters(int contractId, Map<Integer,EntityAttr> entityAttributes)`
  Deprecated.
  `void`
  `updateDomain(int contractId, int domainId)`
  `void`
  `updateFace(int contractId, ContractFace contractFace)`
  `protected void`
  `updateImpl(Contract contract)`
  `void`
  `updateMode(int contractId, ContractMode contractMode)`
  `void`
  `updateParameter(int contractId, EntityAttr a)`
  Deprecated.
  `void`
  `updatePassword(int contractId, String password)`
  `boolean`
  `updatePassword(int contractId, String pswd1, String pswd2, boolean isPswdAuto)`
  `void`
  `updateSuperContractDependSubList(int superId)`
  Обновляет перечень зависимых субдоговоров.

  ### Methods inherited from class ru.bitel.oss.kernel.entity.server.bean.AbstractEntityAttrDao

  `checkEntityAttribute, checkEntitySpecAttrDelete, deleteEntityAttribute, deleteEntityAttributes, filterInit, filterJoin, filterToPS, getAllEntityAttributes, getAttribute, getEntityAttribute, getEntityAttributes, getEntityAttributes, getEntityTableName, getEntityTableSuffix, getEntityValueForIds, getFromRS, list, listImpl, onAddressItemUpdate, optEntityAttribute, updateEntityAttribute, updateEntityAttributes`

  ### Methods inherited from class ru.bitel.common.dao.AbstractIdDao

  `delete, executeUpdate, get, getAndDelete, getAndUpdate, opt`

  ### Methods inherited from class ru.bitel.common.dao.AbstractDao

  `close, delete, deleteImpl, dropTemporaryTable, eq, get, getById, getImpl, getListFromRS, getPeriod, getQueryById, getSQLOrder, getTableName, list, list, listImpl, listImpl, listImplPS, listImplPS, loadData, ormFromResultSet, ormUpdateImpl, ormUpdateImpl, ormUpdateImpl, ormUpdateImpl, processException, setPageRecordCount, setStatementParam, update`

  ### Methods inherited from class ru.bitel.common.dao.AbstarctDaoConstant

  `getSQLOrder, psSetDate, psSetInt, psSetString`

  ### Methods inherited from class ru.bitel.bgbilling.kernel.base.server.logger.BGLogger

  `error, error, error, getLogger, logError, logError, warn`

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

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

- ## Field Details

  - ### MESSAGE_ABOUT_DUPLICATE

    public static final String MESSAGE_ABOUT_DUPLICATE
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### ContractDao

    public ContractDao(Connection con, int userId)

- ## Method Details

  - ### getEntitySpecDirectory

    public Directory<? extends EntitySpec> getEntitySpecDirectory() throws ru.bitel.bgbilling.common.BGException
    Overrides:
      `getEntitySpecDirectory` in class `AbstractEntityAttrDao<Contract>`
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getEntitySpecAttrDirectory

    protected Directory<? extends AbstractSpecAttr> getEntitySpecAttrDirectory() throws ru.bitel.bgbilling.common.BGException
    Overrides:
      `getEntitySpecAttrDirectory` in class `AbstractEntityAttrDao<Contract>`
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getFromRS

    protected Contract getFromRS(ResultSet rs, boolean loadAttributes) throws SQLException
    Specified by:
      `getFromRS` in class `AbstractEntityAttrDao<Contract>`
    Throws:
      `SQLException`

  - ### updateContractParameter

    public boolean updateContractParameter(int contractId, EntityAttr entityAttr) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### deleteContractParameter

    public boolean deleteContractParameter(int entityId, int entitySpecAttrId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updateContractParameters

    @Deprecated public void updateContractParameters(int contractId, Map<Integer,EntityAttr> entityAttributes) throws ru.bitel.bgbilling.common.BGException
    Deprecated.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getContractParameters

    public Map<Integer,EntityAttr> getContractParameters(int contractId, int paramGroupId) throws Exception
    Возвращает map параметров договора.
    Если параметр не заведен (не указан, не добавлен), то данный параметр будет отсутствовать в результате. Примером может служить параметр типа флаг - отсутствие параметра означает false.
    Parameters:
      `contractId` - ID договора.
      `paramGroupId` - ID группы параметров. Если значение >0, то выдаются параметры указанной группы, иначе - все параметры.
    Returns:
    Throws:
      `Exception`

  - ### getContractParameters

    public Map<Integer,EntityAttr> getContractParameters(int entityId, Set<Integer> entitySpecAttrIds) throws Exception
    Throws:
      `Exception`

  - ### getContractParameterValuesForParameterIds

    public Map<Integer,String> getContractParameterValuesForParameterIds(int contractId, Set<Integer> parameterIds) throws Exception
    Throws:
      `Exception`

  - ### getContractParameter

    public EntityAttr getContractParameter(int contractId, int parameterId) throws ru.bitel.bgbilling.common.BGException
    Получение параметра договора.
    Parameters:
      `contractId` - ID договора
      `parameterId` - ID параметра
    Returns:
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### searchContractByParameterText

    public void searchContractByParameterText(SearchResult<ru.bitel.bgbilling.kernel.contract.api.common.dto.ContractSearchDto> searchResult, ContractFilters contractFilters, FilterEntityAttrText filterEntityAttrText) throws SQLException
    Поиск договоров по строковым параметрам.
    Throws:
      `SQLException`

  - ### searchContractByobjectParameterText

    public void searchContractByobjectParameterText(SearchResult<ru.bitel.bgbilling.kernel.contract.api.common.dto.ContractSearchDto> searchResult, ContractFilters contractFilters, FilterEntityAttrText filterEntityAttrText) throws SQLException
    Throws:
      `SQLException`

  - ### optContractParameterText

    public Optional<EntityAttrText> optContractParameterText(int contractId, int parameterId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### optContractParameterTextAsString

    public Optional<String> optContractParameterTextAsString(int contractId, int parameterId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### searchContractByParameterDate

    public void searchContractByParameterDate(SearchResult<ru.bitel.bgbilling.kernel.contract.api.common.dto.ContractSearchDto> searchResult, ContractFilters contractFilters, FilterEntityAttrDate filterEntityAttrDate) throws SQLException
    Throws:
      `SQLException`

  - ### optContractParameterDate

    public Optional<EntityAttrDate> optContractParameterDate(int contractId, int parameterId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getContractParameterDate

    public Date getContractParameterDate(int contractId, int parameterId, Date defaultValue) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### optContractParameterBoolean

    public Optional<EntityAttrBoolean> optContractParameterBoolean(int contractId, int parameterId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getContractParameterBoolean

    public Boolean getContractParameterBoolean(int contractId, int parameterId, Boolean defaultValue) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### searchContractByParameterPhone

    public void searchContractByParameterPhone(SearchResult<ru.bitel.bgbilling.kernel.contract.api.common.dto.ContractSearchDto> searchResult, ContractFilters contractFilters, FilterEntityAttrPhone filterEntityAttrPhone) throws SQLException
    Throws:
      `SQLException`

  - ### getContractParameterPhone

    public Optional<EntityAttrPhone> getContractParameterPhone(int contractId, int parameterId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getContractParameterPhoneFirst

    public String getContractParameterPhoneFirst(int contractId, int parameterId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### searchContractByParameterEmail

    public void searchContractByParameterEmail(SearchResult<ru.bitel.bgbilling.kernel.contract.api.common.dto.ContractSearchDto> searchResult, ContractFilters contractFilters, FilterEntityAttrEmail filterEntityAttrEmail) throws SQLException
    Throws:
      `SQLException`

  - ### getContractParameterEmail

    public Optional<EntityAttrEmail> getContractParameterEmail(int contractId, int parameterId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### optContractParameterEmailFirst

    public Optional<String> optContractParameterEmailFirst(int contractId, int parameterId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### optContractParameterEmailAsString

    public Optional<String> optContractParameterEmailAsString(int contractId, int parameterId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### searchContractByParameterList

    public void searchContractByParameterList(SearchResult<ru.bitel.bgbilling.kernel.contract.api.common.dto.ContractSearchDto> searchResult, ContractFilters contractFilters, FilterEntityAttrList filterEntityAttrList) throws SQLException
    Throws:
      `SQLException`

  - ### getContractParameterList

    public Optional<EntityAttrList> getContractParameterList(int contractId, int parameterId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getContractParameterListAsString

    public Optional<String> getContractParameterListAsString(int contractId, int parameterId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### searchContractByParameterMultiList

    public void searchContractByParameterMultiList(SearchResult<ru.bitel.bgbilling.kernel.contract.api.common.dto.ContractSearchDto> searchResult, ContractFilters contractFilters, FilterEntityAttrMultiList filterEntityAttrMultiList) throws SQLException
    Throws:
      `SQLException`

  - ### getContractParameterMultiList

    public Optional<EntityAttrMultiList> getContractParameterMultiList(int contractId, int parameterId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getContractParameterMultiListAsString

    public Optional<String> getContractParameterMultiListAsString(int contractId, int parameterId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### searchContractByParameterAddress

    public void searchContractByParameterAddress(SearchResult<ru.bitel.bgbilling.kernel.contract.api.common.dto.ContractSearchDto> searchResult, ContractFilters contractFilters, FilterEntityAttrAddress filterEntityAttrAddress) throws SQLException
    Throws:
      `SQLException`

  - ### getContractParameterAddress

    public EntityAttrAddress getContractParameterAddress(int contractId, int parameterId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### optContractParameterAddress

    public Optional<EntityAttrAddress> optContractParameterAddress(int contractId, int parameterId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getContractParameterAddressAsString

    public Optional<String> getContractParameterAddressAsString(int contractId, int parameterId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getEmailFromContractParameter

    public String getEmailFromContractParameter(int contractId, int parameterId) throws ru.bitel.bgbilling.common.BGException
    Получение строкового представление e-mail параметра.
    В начале пытаемся получить e-mail из TABLE_CONTRACT_PARAMETER_TYPE_EMAIL, если там нет с таким кодом, то возвращаем из TABLE_CONTRACT_PARAMETER_TYPE_STRING, то есть из строкового параметра. Если в email будет несколько - вернутся все через \n.
    Parameters:
      `contractId` - код договора
      `parameterId` - параметр
    Returns:
      - строка с e-mail(-ми) или null, если не найден.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updateImpl

    protected void updateImpl(Contract contract) throws ru.bitel.bgbilling.common.BGException, SQLException
    Specified by:
      `updateImpl` in class `ru.bitel.common.dao.AbstractDao<Contract>`
    Throws:
      `ru.bitel.bgbilling.common.BGException`
      `SQLException`

  - ### updateParameter

    @Deprecated public void updateParameter(int contractId, EntityAttr a) throws ru.bitel.bgbilling.common.BGException
    Deprecated.
    Parameters:
      `contractId` -
      `a` -
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updateMode

    public void updateMode(int contractId, ContractMode contractMode) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updateFace

    public void updateFace(int contractId, ContractFace contractFace) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updatePassword

    public boolean updatePassword(int contractId, String pswd1, String pswd2, boolean isPswdAuto) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### list

    @Deprecated public List<Contract> list(String title, String comment, int fc, long groupMaskAnd, int firm, List<FilterEntityAttr> entityFilter, boolean subContracts, boolean closed, boolean hidden, Page page) throws ru.bitel.bgbilling.common.BGException
    Deprecated.
    `list(ContractFilters, List, Page)`
    Parameters:
      `title` -
      `comment` -
      `fc` - -1 - все
      `groupMaskAnd` - маска групп
      `firm` - reserved
      `entityFilter` -
      `subContracts` - включать ли субдоговора в результат
      `closed` - включать ли закрытые на текущий момент
      `hidden` - включать ли скрытые
      `page` -
      `group` - = маске групп
    Returns:
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### list

    public List<Contract> list(ContractFilters contractFilters, List<FilterEntityAttr> entityFilter, Page page) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### list

    @Deprecated public List<Contract> list(String title, String comment, int fc, long groupMaskAnd, int firm, List<FilterEntityAttr> entityFilter, boolean subContracts, boolean closed, boolean hidden, String orderBy, Page page) throws ru.bitel.bgbilling.common.BGException
    Deprecated.
    `list(ContractFilters, List, String, Page)`
    Parameters:
      `title` -
      `comment` -
      `fc` - -1 - все
      `groupMaskAnd` - маска групп
      `firm` - reserved
      `entityFilter` -
      `subContracts` - включать ли субдоговора в результат
      `closed` - включать ли закрытые на текущий момент
      `hidden` - включать ли скрытые
      `page` -
      `group` - = маске групп
    Returns:
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### list

    public List<Contract> list(ContractFilters contractFilters, List<FilterEntityAttr> entityFilter, Page page, Set<Integer> labelIds, boolean inAllLabels) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### list

    public List<Contract> list(ContractFilters contractFilters, List<FilterEntityAttr> entityFilter, String orderBy, Page page) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### list

    public List<Contract> list(ContractFilters contractFilters, List<FilterEntityAttr> entityFilter, String orderBy, Page page, Set<Integer> labelIds, boolean inAllLabels) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getContracts

    public List<Contract> getContracts(String idList) throws ru.bitel.bgbilling.common.BGException
    Возвращает список Договоров по строке с кодами договоров, перечисленными через запятую
    Parameters:
      `idList` -
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getSubContracts

    public List<Contract> getSubContracts(int contractId) throws Exception
    Получает все субдоговоры данного договора.
    Parameters:
      `contractId` - код договора.
    Returns:
      список субдоговоров.
    Throws:
      `Exception`

  - ### getSubContracts

    public List<Contract> getSubContracts(int contractId, int subMode) throws SQLException, ru.bitel.bgbilling.common.BGException
    Получает зависимые, независимые или все(subMode==-1) субдоговора данного договора.
    Parameters:
      `contractId` - - код супер договора.
      `subMode` - зависимый(0), независимый(1)(из KernelConst) или все(-1).
    Throws:
      `SQLException`
      `ru.bitel.bgbilling.common.BGException`

  - ### getByTitle

    public Contract getByTitle(String title) throws ru.bitel.bgbilling.common.BGException
    Возвращает договор по заголовку.
    Parameters:
      `title` - заголовок.
    Returns:
      договор.
    Throws:
      `ru.bitel.bgbilling.common.BGException` - ошибка.

  - ### optByTitle

    public Optional<Contract> optByTitle(String title) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updatePassword

    public void updatePassword(int contractId, String password) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### addLabelAndDomainFilter

    public static void addLabelAndDomainFilter(StringBuilder where, User user)

  - ### updateDomain

    public void updateDomain(int contractId, int domainId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getContractByTextParameter

    public List<Contract> getContractByTextParameter(int parameterId, String value) throws ru.bitel.bgbilling.common.BGException
    Список договоров у которых заданный текстовый параметр точно совпадает с заданным значением
    Parameters:
      `parameterId` -
      `value` -
    Returns:
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getContractIdByTextParameter

    public int getContractIdByTextParameter(int parameterId, String value) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getContractForTextlikeParamValue

    public List<Contract> getContractForTextlikeParamValue(int parameterId, String value)
    Получает договор по текстовому значению/представлению некоторого параметра неопределённого типа. Примерно как ContractParameterManager.getTextlikeParam В отличие от поиска берёт только полноценное совпадение. Работают: текстовые, email, телефон.

  - ### contractListByFilter

    public String contractListByFilter(ContractFilters contractFilters, List<FilterEntityAttr> entityFilter, Page page) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### checkContractParameter

    public void checkContractParameter(EntityAttr entityAttr) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### createFromPattern

    public Contract createFromPattern(ContractCreateData data, boolean inModules) throws Exception
    Создает договор по шаблону
    Parameters:
      `inModules` - проверка в модулях
      `pattern_id` - номер шаблона
      `userId` - код пользователя биллинга
    Returns:
    Throws:
      `Exception`

  - ### createFromPattern

    public Contract createFromPattern(ContractCreateData data, Map<String,Object> params, boolean inModules) throws Exception
    Создает договор по шаблону
    Parameters:
      `params` - дополнительные параметры создания договора для модулей
      `inModules` - проверка в модулях
      `userId` - код пользователя биллинга
    Returns:
    Throws:
      `Exception`

  - ### checkContractTitleOnDublication

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

  - ### addSub

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

  - ### updateSuperContractDependSubList

    public void updateSuperContractDependSubList(int superId) throws SQLException
    Обновляет перечень зависимых субдоговоров.
    Parameters:
      `superId` - код супердоговора
    Throws:
      `SQLException`

  - ### freeContract

    public String freeContract(int contractId) throws Exception
    Перевод субдоговора в независимый договор
    Parameters:
      `contractId` - код договора
    Throws:
      `SQLException`
      `Exception`

  - ### closeContract

    public void closeContract(int contractId) throws SQLException, ru.bitel.bgbilling.common.BGException
    Закрываем период действия договора
    Parameters:
      `contractId` - код договора
    Throws:
      `SQLException`
      `ru.bitel.bgbilling.common.BGException`

  - ### closeContract

    public void closeContract(int contractId, int moduleId, int userId) throws SQLException, ru.bitel.bgbilling.common.BGException
    Закрываем период действия договора текущей датой
    Parameters:
      `contractId` - код договора
      `moduleId` - код модуля
      `userId` - идентификатор пользователя
    Throws:
      `SQLException`
      `ru.bitel.bgbilling.common.BGException`

  - ### closeContract

    public void closeContract(int contractId, int moduleId, int userId, Date date) throws ru.bitel.bgbilling.common.BGException
    Закрываем период действия договора указанной датой
    Parameters:
      `contractId` - - код договора
      `moduleId` - - код модуля
      `userId` - - идентификатор пользователя
      `date` - - дата закрытия договора
    Throws:
      `SQLException`
      `ru.bitel.bgbilling.common.BGException`

  - ### getContracts

    public List<Contract> getContracts(List<Integer> ids) throws ru.bitel.bgbilling.common.BGException
    Возвращает список Договоров по строке с кодами договоров, перечисленными через запятую
    Parameters:
      `idList` -
    Returns:
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getContractsByTitles

    public List<Contract> getContractsByTitles(List<String> titles) throws ru.bitel.bgbilling.common.BGException
    Возвращает договора по списку их номеров.
    Parameters:
      `titles` - номера договоров
    Returns:
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getContractIdsByTitles

    public List<Integer> getContractIdsByTitles(List<String> titles) throws ru.bitel.bgbilling.common.BGException
    Возвращает договора по списку их номеров.
    Parameters:
      `titles` - номера договоров
    Returns:
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### isSubContract

    public boolean isSubContract(int contractId, int subContractId) throws SQLException
    Проверят зависимый ли контракт один от другого.
    Parameters:
      `contractId` - договор
      `subContractId` - потенциальный зависимый субконтракт.
    Returns:
      true - зависимость есть.
    Throws:
      `SQLException`

  - ### getContractTitles

    public Map<Integer,String> getContractTitles(List<Integer> contractIds) throws SQLException
    Throws:
      `SQLException`

  - ### getSubContractModeStat

    public int[] getSubContractModeStat(int contractId) throws SQLException
    Parameters:
      `contractId` -
    Returns:
    Throws:
      `SQLException`

  - ### getContract

    public static Contract getContract(Connection con, int contractId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getContractTitles

    public static Map<Integer,String> getContractTitles(Connection con, List<Integer> contractIds) throws Exception
    Throws:
      `Exception`