Package ru.bitel.bgbilling.modules.license.common.service

# Interface AdditionalAgreementService

public interface AdditionalAgreementService

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `additionalAgreementCreate(int contractId, AdditionalAgreement additionalAgreement, int typeDocument)`
  Создает( точнее заносит ) новое доп. соглашение.
  `void`
  `additionalAgreementDelete(int contractId, AdditionalAgreement additionalAgreement)`
  Удаление неподписанного допика.
  `List<AdditionalAgreement>`
  `additionalAgreements(int contractId, int copyId)`
  Вернет список всех доп.сог. для соответсвующего договора и продукта.
  `void`
  `additionalAgreementUpdate(int contractId, AdditionalAgreement additionalAgreement)`
  `BigDecimal`
  `costComponents(int copyId, List<SpecificationTitle> specificationList)`
  Вернет стоимость данных компонентов
  `BigDecimal`
  `discountGet(int contractId, int copyId)`
  Вернет скидку(ну или ту сумму которую они уже оплатили и которую необходимо учитовать).
  `void`
  `discountSet(int contractId, int copyId, BigDecimal discount)`
  Установим скидку.
  `int`
  `lastNumber(int contractId)`
  Вернет максимальный номер для соответсвующего контракта.Или -1 , если нет не одной записи.
  `List<Order>`
  `permanentOrders(int copyId, boolean onlyPerformed)`
  Вернет список Постоянных заказов.
  `BigDecimal`
  `prospectiveDiscount(int copyId)`
  Вернет предполагаемую скидку.
  `List<SpecificationTitle>`
  `specificationTitles(int id)`
  Вернет список SpecificationTitle для соответсвующего дополнительного соглошениия.
  `void`
  `statusSignedSet(int contractId, int copyId, AdditionalAgreement additionalAgreement)`
  Выставит статус подписанным, и попытается выставить статус "Выполнен" у заказов которые были добавлены.
  `AdditionalAgreement`
  `toReplaceSpecification(AdditionalAgreement agreement, int oldCopyId)`
  При пролонгиции необходимо заменить старые модули(ipn,dialup) на новые(inet).

- ## Method Details

  - ### additionalAgreements

    List<AdditionalAgreement> additionalAgreements(int contractId, int copyId) throws Exception
    Вернет список всех доп.сог. для соответсвующего договора и продукта.
    Parameters:
      `contractId` - - номер договора
    Throws:
      `Exception`

  - ### additionalAgreementCreate

    void additionalAgreementCreate(int contractId, AdditionalAgreement additionalAgreement, int typeDocument) throws Exception
    Создает( точнее заносит ) новое доп. соглашение.
    Parameters:
      `additionalAgreement` - - соглошение которое будет фактически просто добавлено в базу
      `contractId` - - номер договора
      `typeDocument` - - -1 - создание договора, 0 - создание допика.
    Throws:
      `Exception`

  - ### additionalAgreementUpdate

    void additionalAgreementUpdate(int contractId, AdditionalAgreement additionalAgreement) throws Exception
    Throws:
      `Exception`

  - ### additionalAgreementDelete

    void additionalAgreementDelete(int contractId, AdditionalAgreement additionalAgreement) throws Exception
    Удаление неподписанного допика.
    Parameters:
      `title` - - соглошение которое будет удалено из базы.
      `contractId` - - номер договора.
    Throws:
      `Exception`

  - ### specificationTitles

    List<SpecificationTitle> specificationTitles(int id) throws Exception
    Вернет список SpecificationTitle для соответсвующего дополнительного соглошениия.
    Parameters:
      `id` - - айдишник доп. согл.
    Throws:
      `Exception`

  - ### permanentOrders

    List<Order> permanentOrders(int copyId, boolean onlyPerformed) throws Exception
    Вернет список Постоянных заказов.
    Parameters:
      `copyId` - - код копии продукта
      `onlyPerformed` - - если равен false, вернет список Постоянных заказов со статусом Новый и Выполнен, иначе только со статусом Выполнен
    Throws:
      `Exception`

  - ### costComponents

    BigDecimal costComponents(int copyId, List<SpecificationTitle> specificationList) throws Exception
    Вернет стоимость данных компонентов
    Parameters:
      `specificationList` - - список компонентов и их кол-во.
      `contractId` - - номер договора
    Throws:
      `Exception`

  - ### lastNumber

    int lastNumber(int contractId) throws Exception
    Вернет максимальный номер для соответсвующего контракта.Или -1 , если нет не одной записи.
    Parameters:
      `contractId` - -номер договора
    Throws:
      `Exception`

  - ### prospectiveDiscount

    BigDecimal prospectiveDiscount(int copyId) throws Exception
    Вернет предполагаемую скидку. Она равна сумме стоимостей всех заказов со статусом Выполнен. Она будет предлагаться при первом создание доп. согл.
    Parameters:
      `copyId` - - код копии продукта
    Throws:
      `Exception`

  - ### discountGet

    BigDecimal discountGet(int contractId, int copyId) throws Exception
    Вернет скидку(ну или ту сумму которую они уже оплатили и которую необходимо учитовать). Она необхадима для вывода суммы при создание первого доп.согл. и для информирования в дальнейшем.
    Parameters:
      `contractId` - - номер договора
      `copyId` - - код копии продукта
    Throws:
      `Exception`

  - ### discountSet

    void discountSet(int contractId, int copyId, BigDecimal discount) throws Exception
    Установим скидку.
    Parameters:
      `discount` - - скидка(ну или иначе, ту сумму которую они уже оплатили и мы не хотим ее учитовать)
      `contractId` - - номер договора
      `copyId` - - код копии продукта
    Throws:
      `Exception`

  - ### statusSignedSet

    void statusSignedSet(int contractId, int copyId, AdditionalAgreement additionalAgreement) throws Exception
    Выставит статус подписанным, и попытается выставить статус "Выполнен" у заказов которые были добавлены.
    Parameters:
      `additionalAgreement` - - то доп. согл. котрое подписывается.
      `contractId` - - номер договора.
      `copyId` - - код копии продукта.
    Throws:
      `ru.bitel.bgbilling.common.BGMessageException` - - если выставить статус "Выполнен" не удалось у заказов данного допика.
      `Exception`

  - ### toReplaceSpecification

    AdditionalAgreement toReplaceSpecification(AdditionalAgreement agreement, int oldCopyId) throws Exception
    При пролонгиции необходимо заменить старые модули(ipn,dialup) на новые(inet). Если в старом договоре присутствую старые компоненты и отсутствуют новые, то на сумму старых компонентов будут добавлены новые( старые компоненты остаются ). В документ/допик при этом старые компоненты не попадут.
    Parameters:
      `agreement` - - документ/допик.
      `oldCopyId` - - ид копии от старого договора, необходима для оценки стоимости и места вставки inet.
    Returns:
      тот же agreement, только с измененной specification и установленной ценной.
    Throws:
      `ru.bitel.bgbilling.common.BGException`
      `Exception`