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

## Interface AdditionalAgreementService

-     public interface AdditionalAgreementService

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `createAdditionalAgreement(AdditionalAgreement title, int contractId, int typeDocument)` Создает( точнее заносит ) новое доп. соглашение.
    `void` | `deleteAdditionalAgreement(AdditionalAgreement title, int contractId)` Удаление неподписанного допика.
    `java.math.BigDecimal` | `getCostComponents(java.util.List<SpecificationTitle> specificationList, int contractId)` Вернет стоимость данных компонентов
    `java.math.BigDecimal` | `getDiscount(int contractId, int copyId)` Вернет скидку(ну или ту сумму которую они уже оплатили и которую необходимо учитовать).
    `int` | `getLastNumber(int contractId)` Вернет максимальный номер для соответсвующего контракта.Или -1 , если нет не одной записи.
    `java.util.List<AdditionalAgreement>` | `getList(int contractId, int copyId)` Вернет список всех доп.сог. для соответсвующего договора и продукта.
    `java.util.List<Order>` | `getPermanentOrder(int copyId, boolean onlyPerformed)` Вернет список Постоянных заказов.
    `java.math.BigDecimal` | `getProspectiveDiscount(int copyId)` Вернет предполагаемую скидку.
    `java.util.List<SpecificationTitle>` | `getSpecificationOfAdditionalAgreement(int id)` Вернет список SpecificationTitle для соответсвующего дополнительного соглошениия.
    `void` | `setDiscount(java.math.BigDecimal discount, int contractId, int copyId)` Установим скидку.
    `void` | `setStatusSigned(AdditionalAgreement title, int contractId, int copyId)` Выставит статус подписанным, и попытается выставить статус "Выполнен" у заказов которые были добавлены.
    `AdditionalAgreement` | `toReplaceSpecification(AdditionalAgreement agreement, int oldCopyId)` При пролонгиции необходимо заменить старые модули(ipn,dialup) на новые(inet).

- - ### Method Detail

    - #### getList

          java.util.List<AdditionalAgreement> getList(int contractId,
                                                      int copyId)
                                               throws ru.bitel.bgbilling.common.BGException

      Вернет список всех доп.сог. для соответсвующего договора и продукта.
      Parameters:
        `contractId` - - номер договора
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### createAdditionalAgreement

          void createAdditionalAgreement(AdditionalAgreement title,
                                         int contractId,
                                         int typeDocument)
                                  throws ru.bitel.bgbilling.common.BGException

      Создает( точнее заносит ) новое доп. соглашение.
      Parameters:
        `title` - - соглошение которое будет фактически просто добавлено в базу
        `contractId` - - номер договора
        `typeDocument` - - -1 - создание договора, 0 - создание допика.
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### deleteAdditionalAgreement

          void deleteAdditionalAgreement(AdditionalAgreement title,
                                         int contractId)
                                  throws ru.bitel.bgbilling.common.BGException,
                                         ru.bitel.bgbilling.common.BGMessageException

      Удаление неподписанного допика.
      Parameters:
        `title` - - соглошение которое будет удалено из базы.
        `contractId` - - номер договора.
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `ru.bitel.bgbilling.common.BGMessageException`

    - #### getSpecificationOfAdditionalAgreement

          java.util.List<SpecificationTitle> getSpecificationOfAdditionalAgreement(int id)
                                                                            throws ru.bitel.bgbilling.common.BGException

      Вернет список SpecificationTitle для соответсвующего дополнительного соглошениия.
      Parameters:
        `id` - - айдишник доп. согл.
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getPermanentOrder

          java.util.List<Order> getPermanentOrder(int copyId,
                                                  boolean onlyPerformed)
                                           throws ru.bitel.bgbilling.common.BGException

      Вернет список Постоянных заказов.
      Parameters:
        `copyId` - - код копии продукта
        `onlyPerformed` - - если равен false, вернет список Постоянных заказов со статусом Новый и Выполнен, иначе только со статусом Выполнен
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getCostComponents

          java.math.BigDecimal getCostComponents(java.util.List<SpecificationTitle> specificationList,
                                                 int contractId)
                                          throws ru.bitel.bgbilling.common.BGException

      Вернет стоимость данных компонентов
      Parameters:
        `specificationList` - - список компонентов и их кол-во.
        `contractId` - - номер договора
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getLastNumber

          int getLastNumber(int contractId)
                     throws ru.bitel.bgbilling.common.BGException

      Вернет максимальный номер для соответсвующего контракта.Или -1 , если нет не одной записи.
      Parameters:
        `contractId` - -номер договора
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getProspectiveDiscount

          java.math.BigDecimal getProspectiveDiscount(int copyId)
                                               throws ru.bitel.bgbilling.common.BGException

      Вернет предполагаемую скидку. Она равна сумме стоимостей всех заказов со статусом Выполнен. Она будет предлагаться при первом создание доп. согл.
      Parameters:
        `copyId` - - код копии продукта
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getDiscount

          java.math.BigDecimal getDiscount(int contractId,
                                           int copyId)
                                    throws ru.bitel.bgbilling.common.BGException

      Вернет скидку(ну или ту сумму которую они уже оплатили и которую необходимо учитовать). Она необхадима для вывода суммы при создание первого доп.согл. и для информирования в дальнейшем.
      Parameters:
        `contractId` - - номер договора
        `copyId` - - код копии продукта
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### setDiscount

          void setDiscount(java.math.BigDecimal discount,
                           int contractId,
                           int copyId)
                    throws ru.bitel.bgbilling.common.BGException

      Установим скидку.
      Parameters:
        `discount` - - скидка(ну или иначе, ту сумму которую они уже оплатили и мы не хотим ее учитовать)
        `contractId` - - номер договора
        `copyId` - - код копии продукта
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### setStatusSigned

          void setStatusSigned(AdditionalAgreement title,
                               int contractId,
                               int copyId)
                        throws ru.bitel.bgbilling.common.BGException,
                               ru.bitel.bgbilling.common.BGMessageException

      Выставит статус подписанным, и попытается выставить статус "Выполнен" у заказов которые были добавлены.
      Parameters:
        `title` - - то доп. согл. котрое подписывается.
        `contractId` - - номер договора.
        `copyId` - - код копии продукта.
      Throws:
        `ru.bitel.bgbilling.common.BGMessageException` - - если выставить статус "Выполнен" не удалось у заказов данного допика.
        `ru.bitel.bgbilling.common.BGException`

    - #### toReplaceSpecification

          AdditionalAgreement toReplaceSpecification(AdditionalAgreement agreement,
                                                     int oldCopyId)
                                              throws ru.bitel.bgbilling.common.BGException

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