Package ru.bitel.bgbilling.kernel.contract.balance.common.service

# Interface ReserveService

    public interface ReserveService

Все операции с типом резерва производить через справочник.

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `void` | `closeReserve​(int reserveId)` | Закрытие резерва текущей датой.
  `java.util.List<Reserve>` | `reserveList​(int contractId, Period period, int reserveMembers)` |
  `java.math.BigDecimal` | `reserveSum​(int contractId)` |
  `int` | `reserveTypeDelete​(int reserveTypeId)` | Удалене резервного типа.
  `ReserveType` | `reserveTypeGet​(int id)` | Вернет тип резерва, предназначен для справочника, соответственно и доставать его через справочники, а не отсюда напрямую.
  `java.util.List<ReserveType>` | `reserveTypeList​(boolean used)` | Вернет список типов резервов.
  `int` | `reserveTypeUpdate​(ReserveType reserveType)` | Создание или обновление резервного типа.( через справочник)
  `int` | `updateReserve​(Reserve reserve)` | Добавление резерва или редактирование(только тип и коммент).Дата создания - текущая, а не та что передается в параметре period.

- ## Method Details

  - ### reserveList

    java.util.List<Reserve> reserveList​(int contractId, Period period, int reserveMembers) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `cid` - - номер договора.
      `period` - - 1 - если период != null, то вернет все резервы которые были активны в данном промежутке.

      2 - если период == null, все резервы договора.

      3 - если период != null, но одна из дат периода == null, все резервы которые были активны в данном промежутке. где null это либо от начало времен или до конца времен.

      4 - если период != null, но обе даты из периода == null, вернет то же что и под номером 2.

      Второй датой пероиода у резерва будет считаться дата закрытия(dateClose), если же ее нет, то дата планируемого закрытия(dateTo).

      `reserveMembers` - - если == 1, то вернет резервы только данного договора, если = 2 то вернет еще и резервы зависемых субдоговоров, если = 3 то только резервы зависемых субдоговоров.
    Returns:
      список резервов данного договора.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updateReserve

    int updateReserve​(Reserve reserve) throws ru.bitel.bgbilling.common.BGException
    Добавление резерва или редактирование(только тип и коммент).Дата создания - текущая, а не та что передается в параметре period.
    Parameters:
      `reserve` - - добавляемый резерв.
    Returns:
      ид созданного/отредактированного резерва.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### closeReserve

    void closeReserve​(int reserveId) throws ru.bitel.bgbilling.common.BGException
    Закрытие резерва текущей датой. Если резерв был уже закрыт, то ничего ни произойдет(дата закрытия не перетрется,не бросятся события). Так же ничего страшного если резерв был удален.
    Parameters:
      `reserveId` -
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### reserveSum

    java.math.BigDecimal reserveSum​(int contractId) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `contractId` - - номер договора.
    Returns:
      сумма резервов для данного договора. При этом данная сумма берется из таблицы, то есть переобсчет не происходит.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### reserveTypeGet

    ReserveType reserveTypeGet​(int id) throws ru.bitel.bgbilling.common.BGException
    Вернет тип резерва, предназначен для справочника, соответственно и доставать его через справочники, а не отсюда напрямую.
    Parameters:
      `id` - - ид типа резерва.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### reserveTypeList

    java.util.List<ReserveType> reserveTypeList​(boolean used) throws ru.bitel.bgbilling.common.BGException
    Вернет список типов резервов.(лучше через справочник)
    Parameters:
      `used` - - если = true, то вернет все используемые, иначе все типы резервов.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### reserveTypeUpdate

    int reserveTypeUpdate​(ReserveType reserveType) throws ru.bitel.bgbilling.common.BGException
    Создание или обновление резервного типа.( через справочник)
    Returns:
      id созданного типа.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### reserveTypeDelete

    int reserveTypeDelete​(int reserveTypeId) throws ru.bitel.bgbilling.common.BGException, ru.bitel.bgbilling.common.BGMessageException
    Удалене резервного типа.(только через справочник)
    Parameters:
      `reserveTypeId` - - ид резервного типа.
    Returns:
      кол-во удаленных записей.
    Throws:
      `ru.bitel.bgbilling.common.BGException`
      `ru.bitel.bgbilling.common.BGMessageException`