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

- ## Method Details

  - ### paymentTypeList

    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

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

  - ### paymentsNotActiveNow

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

  - ### chargeList

    List<BonusCharge> chargeList(int contractId, Date dateFrom, Date dateTo) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `contractId` - - номер договора
      `dateFrom` -
      `dateTo` -
    Returns:
      - список бонусных расходов, где дата расхода находится в границах dateFrom и dateTo (dateFrominvalid input: '<' date invalid input: '<'dateTo)
    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:
      `contractId` -
      `payment` -
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### chargeUpdate

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

  - ### activateTO

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

  - ### 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

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

  - ### chargeDetailsList

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

  - ### balanceList

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

  - ### balance

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

  - ### balanceAdvanced

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

  - ### balanceNotActive

    BigDecimal balanceNotActive(int contractId, Date date) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `date` - - дата
      `cid` - - номер договора
    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:
      `include` - - если true то вкл. плагин у договора.
      `cid` - - номер договора.
    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

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

  - ### bonusSummaMaxAdvanced

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

  - ### treeNodeTitle

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

  - ### programTypeMap

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

  - ### programList

    List<BonusProgram> programList(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

    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

    List<Integer> programInContractList(int idProgram, 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(List<BonusProgram> programs, 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(String cids, Period paymentPeriod, Set<Integer> paymentTypeSet, int typeExtend, 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

    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`