Package ru.bitel.bgbilling.plugins.bonus.common.service

# Interface BonusService

    public interface BonusService

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `int` | `activateTO​(int contractId, int tariffOptionId, int modeId)` | Активация ТО с списанием бонусов в качестве оплаты.
  `java.math.BigDecimal` | `balance​(int contractId, java.util.Date date)` |
  `java.math.BigDecimal` | `balanceAdvanced​(int contractId, java.util.Date date, java.lang.Integer chargId, boolean withFutureCharge)` |
  `java.util.List<BonusBalance>` | `balanceList​(int contractId, java.util.Date date)` |
  `java.math.BigDecimal` | `balanceNotActive​(int contractId, java.util.Date date)` |
  `java.math.BigDecimal` | `bonusSummaMax​(int contractId, int contractChargeId, java.math.BigDecimal chargeSum, boolean bonusSum)` | Получение максиально возможной суммы для оплаты части расхода договора бонусами.
  `java.math.BigDecimal` | `bonusSummaMaxAdvanced​(int contractId, int contractChargeId, java.math.BigDecimal chargeSum, boolean bonusSum, java.math.BigDecimal MaxBonusSum)` | Получение максиально возможной суммы для оплаты части расхода договора бонусами которая зависет от выставленного макс. процента для данного типа расхода, бонусного баланса и MaxBonusSum.
  `BonusCharge` | `chargeBonus​(int contractChargeId)` | Вернет бонусный расхода по ид расхода договора.
  `void` | `chargeDeleteByContractChargeId​(int contractChargeId)` | Удаление бонусного расхода в соответсвии ид расхода договора.
  `java.util.List<BonusCharge>` | `chargeDetailsList​(int paymentId)` |
  `java.util.List<BonusCharge>` | `chargeList​(int contractId, java.util.Date dateFrom, java.util.Date dateTo)` |
  `boolean` | `chargeUpdate​(int contractId, BonusCharge charge)` | Создание,редактирование бонусного расхода
  `boolean` | `checkProgramPeriodOnCrossing​(BonusProgram bonusProgram)` | Проверка на пересечения нового периода бонусной программы с периодом программы у договоров(экземпляров данной программы).
  `void` | `extendPaymentsGroupOperation​(java.lang.String cids, Period paymentPeriod, java.util.Set<java.lang.Integer> paymentTypeSet, int typeExtend, java.lang.String valueExtend, boolean onlyActive)` | Групповая операция расширения периода действия бонусных платежей.
  `java.lang.String` | `getDataProgramOfContract​(int programId, int contractId)` |
  `boolean` | `paymentDelete​(int paymentId)` |
  `java.util.List<BonusPayment>` | `paymentDetailsList​(int chargeId)` |
  `java.util.List<BonusPayment>` | `paymentList​(int contractId, java.util.Date dateFrom, java.util.Date dateTo)` | (Не путать dateFrom и dateTo с одноименными полями в BonusPayment)
  `java.util.List<BonusPayment>` | `paymentsNotActiveNow​(int cid)` |
  `boolean` | `paymentTypeDelete​(int paymentId)` | Удаление типа платежа
  `java.util.List<BonusPaymentType>` | `paymentTypeList​(boolean usedOnly)` |
  `void` | `paymentTypeUpdate​(BonusPaymentType paymentType)` | Обновление или создание типа прихода
  `void` | `paymentUpdate​(int contractId, BonusPayment payment)` | Создание бонусного платежа
  `int` | `percentOfBonus​(int contractChargeId)` | Вернет кол-во процентов которыми можно оплатить бонусами для данного расхода.
  `boolean` | `pluginInclude​(int contractId)` |
  `java.util.List<BonusContractProgram>` | `programContractList​(int contractId)` |
  `void` | `programContractUpdate​(BonusContractProgram contractProgram)` | Обновление или создание бонусной программы у договора.
  `void` | `programDelete​(int programId)` | Удаление бонусной программы.
  `java.util.List<java.lang.Integer>` | `programInContractList​(int idProgram, java.util.Date date)` |
  `java.util.List<BonusProgram>` | `programList​(java.util.Date date)` |
  `MapHolder<java.lang.String,​java.lang.String>` | `programTypeMap()` |
  `void` | `programUpdate​(BonusProgram program)` | Обновление или создание бонусной программы.
  `int` | `rate()` | Вернет бонусный курс.
  `java.lang.String` | `treeNodeTitle​(int contractId)` | Получение значение для элемента дерева("Бонус") в договоре.Содержит текущий остаток бонусов, как активных так и ожидающих( разделены чере "/" )
  `void` | `updatePluginInclude​(int contractId, boolean include)` | Включение/выкл. плагина у договора.
  `void` | `updateProgramAndPluginIncludeGroupOperation​(java.util.List<BonusProgram> programs, java.lang.String cids, Period period, boolean include)` | Добавления бонусных программ, установка периода, вкл/выкл плагина у договоров для групповых операций.

- ## Method Details

  - ### paymentTypeList

    java.util.List<BonusPaymentType> paymentTypeList​(boolean usedOnly) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `usedOnly` - - если true то вернет только используемые
    Returns:
      - список типов бонусных платежей
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### paymentTypeUpdate

    void paymentTypeUpdate​(BonusPaymentType paymentType) throws ru.bitel.bgbilling.common.BGException
    Обновление или создание типа прихода
    Parameters:
      `paymentType` -
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### paymentTypeDelete

    boolean paymentTypeDelete​(int paymentId) throws ru.bitel.bgbilling.common.BGException
    Удаление типа платежа
    Parameters:
      `paymentId` -
    Returns:
      - true если тип был удален, иначе false
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### paymentList

    java.util.List<BonusPayment> paymentList​(int contractId, java.util.Date dateFrom, java.util.Date dateTo) throws ru.bitel.bgbilling.common.BGException
    (Не путать dateFrom и dateTo с одноименными полями в BonusPayment)
    Parameters:
      `cid` - - номер договора
      `dateFrom` -
      `dateTo` -
    Returns:
      - список бонусных платежей, где дата платежа находится в границах dateFrom и dateTo (dateFrom< date
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### paymentsNotActiveNow

    java.util.List<BonusPayment> paymentsNotActiveNow​(int cid) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `cid` - - номер договора
    Returns:
      - вернет список платежей которые будут доступны для оплаты в будущем
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### chargeList

    java.util.List<BonusCharge> chargeList​(int contractId, java.util.Date dateFrom, java.util.Date dateTo) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `cid` - - номер договора
      `dateFrom` -
      `dateTo` -
    Returns:
      - список бонусных расходов, где дата расхода находится в границах dateFrom и dateTo (dateFrom< date
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### chargeBonus

    BonusCharge chargeBonus​(int contractChargeId) throws ru.bitel.bgbilling.common.BGException
    Вернет бонусный расхода по ид расхода договора.
    Parameters:
      `contractChargeId` - - ид расхода
    Returns:
      - BonusCharge в случае успеха, иначе null.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### paymentUpdate

    void paymentUpdate​(int contractId, BonusPayment payment) throws ru.bitel.bgbilling.common.BGException
    Создание бонусного платежа
    Parameters:
      `payment` -
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### chargeUpdate

    boolean chargeUpdate​(int contractId, BonusCharge charge) throws ru.bitel.bgbilling.common.BGException
    Создание,редактирование бонусного расхода
    Parameters:
      `cid` - - номер договора
      `charge` -
    Returns:
      true - если средств хватило и расход был создан
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### activateTO

    int activateTO​(int contractId, int tariffOptionId, int modeId) throws ru.bitel.bgbilling.common.BGException
    Активация ТО с списанием бонусов в качестве оплаты. Списывается максимально возможная сумма(зависит от текущего бонусного баланса, а так же настроек плагина).
    Parameters:
      `contractId` - - код договора
      `tariffOptionId` - - код тарифной опции
      `modeId` - - код режима активации
    Returns:
      - код бонусного расхода
    Throws:
      `ru.bitel.bgbilling.common.BGException` - если: - указана ТО которую можно активировать только бонусами, но списать необходимую сумму не удалось.
      - баланс не положительный
      - неверно задан режим активации или опция
      - сумма у режима активации == 0
      - плагин выключен
      - недостаточно средств для снятия остатка на договоре

  - ### paymentDelete

    boolean paymentDelete​(int paymentId) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `paymentId` - - ид удаляемого платежа
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### chargeDeleteByContractChargeId

    void chargeDeleteByContractChargeId​(int contractChargeId) throws ru.bitel.bgbilling.common.BGException
    Удаление бонусного расхода в соответсвии ид расхода договора.
    Parameters:
      `contractChargeId` - - ид удаляемого расхода
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### paymentDetailsList

    java.util.List<BonusPayment> paymentDetailsList​(int chargeId) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `chargeId` -
    Returns:
      - вернет платежи из которых были списаны средства для данного расхода
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### chargeDetailsList

    java.util.List<BonusCharge> chargeDetailsList​(int paymentId) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `paymentId` -
    Returns:
      - вернет расходы которые списали средства из данного прихода
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### balanceList

    java.util.List<BonusBalance> balanceList​(int contractId, java.util.Date date) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `contractId` - - номер договора
      `date` - - дата
    Returns:
      вернет список для таблицы баланса на конкретную дату
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### balance

    java.math.BigDecimal balance​(int contractId, java.util.Date date) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `contractId` - - номер договора
      `date` - - дата
    Returns:
      - вернет бонусный баланс на конкретный момент.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### balanceAdvanced

    java.math.BigDecimal balanceAdvanced​(int contractId, java.util.Date date, java.lang.Integer chargId, boolean withFutureCharge) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `cid` - - номер договора
      `date` - - на какую дату
      `chargeId` - - если не null, ид бонусного расхода который не будет учитываться.
      `withFutureCharge` - - если = true, то вернет баланс с учетом будущих расходов у приходов которые были активны на тот момент. Если баланс берется на текущий момент, то разницы не должно быть.
    Returns:
      вернет баланс на конкретную дату
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### balanceNotActive

    java.math.BigDecimal balanceNotActive​(int contractId, java.util.Date date) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `cid` - - номер договора
      `date` - - дата
    Returns:
      - вернет ожидаемы быллы на конкретную дату
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### pluginInclude

    boolean pluginInclude​(int contractId) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `cid` - - номер договора.
    Returns:
      вернет true- если плагин включен у данного договора
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updatePluginInclude

    void updatePluginInclude​(int contractId, boolean include) throws ru.bitel.bgbilling.common.BGException
    Включение/выкл. плагина у договора.
    Parameters:
      `cid` - - номер договора.
      `include` - - если true то вкл. плагин у договора.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### percentOfBonus

    int percentOfBonus​(int contractChargeId) throws ru.bitel.bgbilling.common.BGException
    Вернет кол-во процентов которыми можно оплатить бонусами для данного расхода. Если возврощаемое значение равно 0 , то это равносильно запрету на оплату бонусами для данного расхода.
    Parameters:
      `contractChargeId` - - ид расхода договора
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### rate

    int rate()
    Вернет бонусный курс.
    Returns:
      кол-во бонусов к одному рублю(1руб.= rateBonus ).

  - ### bonusSummaMax

    java.math.BigDecimal bonusSummaMax​(int contractId, int contractChargeId, java.math.BigDecimal chargeSum, boolean bonusSum) throws ru.bitel.bgbilling.common.BGException
    Получение максиально возможной суммы для оплаты части расхода договора бонусами.
    Parameters:
      `cid` - номер договора.
      `contractChargeId` - - ид типа расхода договора, если он будет < 0, то макс. процент будет принят за 100%.
      `chargeSum` - планируемая(изначальная) сумма списания с договора.
      `bonusSum` - если true то вернет макс. возможную сумму бонусов иначе вернет макс. возможную сумму рублей(точнее в еденицах расхода) Влияет на maxSum.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### bonusSummaMaxAdvanced

    java.math.BigDecimal bonusSummaMaxAdvanced​(int contractId, int contractChargeId, java.math.BigDecimal chargeSum, boolean bonusSum, java.math.BigDecimal MaxBonusSum) throws ru.bitel.bgbilling.common.BGException
    Получение максиально возможной суммы для оплаты части расхода договора бонусами которая зависет от выставленного макс. процента для данного типа расхода, бонусного баланса и MaxBonusSum. Эта сумма не может быть меньше MaxBonusSum - иметь ввиду.
    Parameters:
      `cid` - номер договора.
      `contractChargeId` - - ид типа расхода договора, если он будет < 0, то макс. процент будет принят за 100%.
      `chargeSum` - планируемая(изначальная) сумма списания с договора.
      `bonusSum` - если true то вернет макс. возможную сумму бонусов иначе вернет макс. возможную сумму рублей(точнее в еденицах расхода) Влияет на maxSum.
      `MaxBonusSum` - - если не null, то возвращаемая сумма будет ограничена ею и процентом. То есть этим параметром можно задать минимум. ( maxSum - это либо рубли либо бонусы, соответсвует параметру bonusSum ).
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### treeNodeTitle

    java.lang.String treeNodeTitle​(int contractId) throws ru.bitel.bgbilling.common.BGException
    Получение значение для элемента дерева("Бонус") в договоре.Содержит текущий остаток бонусов, как активных так и ожидающих( разделены чере "/" )
    Parameters:
      `cid` - - номер договора.
    Returns:
      строка со значением.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### programTypeMap

    MapHolder<java.lang.String,​java.lang.String> programTypeMap() throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### programList

    java.util.List<BonusProgram> programList​(java.util.Date date) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `date` - - если date=null, то вернет все программы
    Returns:
      все бонусные программы активные на момент времени date.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### programUpdate

    void programUpdate​(BonusProgram program) throws ru.bitel.bgbilling.common.BGException
    Обновление или создание бонусной программы.
    Parameters:
      `program` -
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### programContractList

    java.util.List<BonusContractProgram> programContractList​(int contractId) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `cid` - - номер договора.
    Returns:
      список бонусных програм установленных для данного договора.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### programContractUpdate

    void programContractUpdate​(BonusContractProgram contractProgram) throws ru.bitel.bgbilling.common.BGException, ru.bitel.bgbilling.common.BGMessageException
    Обновление или создание бонусной программы у договора.
    Parameters:
      `contractProgram` -
    Throws:
      `ru.bitel.bgbilling.common.BGException`
      `ru.bitel.bgbilling.common.BGMessageException`

  - ### checkProgramPeriodOnCrossing

    boolean checkProgramPeriodOnCrossing​(BonusProgram bonusProgram) throws ru.bitel.bgbilling.common.BGException
    Проверка на пересечения нового периода бонусной программы с периодом программы у договоров(экземпляров данной программы). Необходимо проверять при изменении периода бонусной программы.
    Parameters:
      `program` - - бонусная программа у который выставлен проверяемый период.
    Returns:
      - true если пересечение имеет место или program==null или период==null или dateFrom==null.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### programInContractList

    java.util.List<java.lang.Integer> programInContractList​(int idProgram, java.util.Date date) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `idProgram` - - ид программы.
      `date` - - на какое время, если null то вернет за все время.
    Returns:
      список ид договоров у которых активна данная бонусная программа на момент date.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### programDelete

    void programDelete​(int programId) throws ru.bitel.bgbilling.common.BGException
    Удаление бонусной программы.
    Parameters:
      `programId` - - ид бонусной программы.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updateProgramAndPluginIncludeGroupOperation

    void updateProgramAndPluginIncludeGroupOperation​(java.util.List<BonusProgram> programs, java.lang.String cids, Period period, boolean include) throws ru.bitel.bgbilling.common.BGException
    Добавления бонусных программ, установка периода, вкл/выкл плагина у договоров для групповых операций. Если programs == null, то только вкл/выкл плагина.
    Parameters:
      `programs` - - список бонусных программ. Можно null или пустой список.
      `cids` - - договора через запятую.
      `period` - - период для программ. Можно null, если programs == null.
      `include` - - если true то плагин будет вкл. для данных договоров.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### extendPaymentsGroupOperation

    void extendPaymentsGroupOperation​(java.lang.String cids, Period paymentPeriod, java.util.Set<java.lang.Integer> paymentTypeSet, int typeExtend, java.lang.String valueExtend, boolean onlyActive) throws ru.bitel.bgbilling.common.BGException
    Групповая операция расширения периода действия бонусных платежей. Расширяет период только еще не до конца списанных платежей.
    Parameters:
      `cids` - - договора через запятую.
      `paymentPeriod` - - все платежи дата которых входит в данный период, будут расширены. Не может быть null.
      `paymentTypeSet` - - сет кодов типов платежей
      `typeExtend` - - тип расширения. 1 - до даты, 2 - на кол-во дней от даты завершения платежа
      `valueExtend` - - значение расширения. Если typeExtend = 1, то тут должна быть дата(dd.MM.yyyy), если typeExtend = 2, то число дней.
      `onlyActive` - - если true, то операция будет производиться только с платежами период которых еще не завершился
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getDataProgramOfContract

    java.lang.String getDataProgramOfContract​(int programId, int contractId) throws ru.bitel.bgbilling.common.BGException, ru.bitel.bgbilling.common.BGMessageException
    Throws:
      `ru.bitel.bgbilling.common.BGException`
      `ru.bitel.bgbilling.common.BGMessageException`