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

# Class BonusProgramDynamicBase

java.lang.Object
ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase<ru.bitel.bgbilling.kernel.event.common.Event>
ru.bitel.bgbilling.plugins.bonus.common.bean.BonusProgramDynamicBase

All Implemented Interfaces:
  `EventScript<ru.bitel.bgbilling.kernel.event.common.Event>`, `BonusProgramSpecification`

    public abstract class BonusProgramDynamicBase
    extends EventScriptBase<ru.bitel.bgbilling.kernel.event.common.Event>
    implements BonusProgramSpecification

Базовый класс для дин. классов реализующих бонусную программу.
Содержит наиболее нужные методы для работы с бонусами и дин.программами.
Для возможности использования методов в потомках(то есть вашей дин.программе/классе), необходимо вызвать в методе onEvent(если будете использовать) соответствующий метод потомка(то есть этого класса) - super.onEvent........

- ## Field Summary

  Fields
  Modifier and Type | Field | Description
  --- | --- | ---
  `BonusDao` | `bonusDao` |
  `java.sql.Connection` | `con` |
  `int` | `contractId` |
  `java.util.Map<java.lang.String,​java.lang.String>` | `map` |

  ### Fields inherited from class ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase

  `err, out`

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `BonusProgramDynamicBase()` |

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `void` | `accrualOfBonus​(java.sql.Connection con, BonusProgram program)` | Начисление бонусов.
  `abstract void` | `accrualOfBonusImpl​(java.sql.Connection con, BonusProgram program)` | Тут реализуется начисление бонусов, ну или еще чего, что нужно будет сделать программе по планировщику для динамических программ.
  `java.util.List<BonusContractProgram>` | `getContractPrograms​(java.lang.Class<? extends BonusProgramDynamicBase> clazz, java.util.Date date)` | Получить все программы данной дин. программы для выбранного договора.
  `java.lang.String` | `getParam​(java.lang.String param, int programId)` | Получить параметр программы.
  `Period` | `getPeriodForBonusPayment​(BonusProgram program)` |
  `BonusContractProgram` | `getProgramContract​(int programId, java.util.Date date)` | Получить программу договора по ид программы.
  `abstract java.util.List<java.lang.String>` | `getWebBonusStrings​(java.sql.Connection con, BonusContractProgram program)` | Каждая дин. программа может вернут список строк которые будут отображаться в ЛК.
  `void` | `onEvent​(ru.bitel.bgbilling.kernel.event.common.Event event, Setup setup, ConnectionSet set)` |
  `int` | `updatePayment​(java.math.BigDecimal sum, BonusProgram program)` | Совершение платежа, данный метод сам учтет период активности бонусного платежа.
  `int` | `updatePaymnent​(java.math.BigDecimal sum, BonusProgram program)` |
  `void` | `updateProgramData​(int programId)` |
  `void` | `updateProgramData​(int programId, int contractId, java.util.Map<java.lang.String,​java.lang.String> mapL)` | Сохранение/обновлене данных для договора по выбранной программе.

  ### Methods inherited from class ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase

  `doExternalScript, error, print, setErrorStream, setOutputStream`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface ru.bitel.bgbilling.plugins.bonus.common.bean.BonusProgramSpecification

  `getTitle`

- ## Field Details

  - ### map

    public java.util.Map<java.lang.String,​java.lang.String> map

  - ### bonusDao

    public BonusDao bonusDao

  - ### con

    public java.sql.Connection con

  - ### contractId

    public int contractId

- ## Constructor Details

  - ### BonusProgramDynamicBase

    public BonusProgramDynamicBase()

- ## Method Details

  - ### onEvent

    public void onEvent​(ru.bitel.bgbilling.kernel.event.common.Event event, Setup setup, ConnectionSet set) throws java.lang.Exception
    Specified by:
      `onEvent` in interface `EventScript<ru.bitel.bgbilling.kernel.event.common.Event>`
    Throws:
      `java.lang.Exception`

  - ### accrualOfBonus

    public void accrualOfBonus​(java.sql.Connection con, BonusProgram program) throws java.sql.SQLException, ru.bitel.bgbilling.common.BGException
    Description copied from interface: `BonusProgramSpecification`
    Начисление бонусов. Каждая программа берет на себя начисление бонусов для всех договоров и защищается от возможного двойного начисления( для этого есть таблица bonus_program_log ). Запуск производится планировщиком задач.
    Specified by:
      `accrualOfBonus` in interface `BonusProgramSpecification`
      `program` - бонус. программа в которой содержатся параметры программы и т.д.
    Throws:
      `java.sql.SQLException`
      `ru.bitel.bgbilling.common.BGException`

  - ### accrualOfBonusImpl

    public abstract void accrualOfBonusImpl​(java.sql.Connection con, BonusProgram program) throws java.sql.SQLException, ru.bitel.bgbilling.common.BGException
    Тут реализуется начисление бонусов, ну или еще чего, что нужно будет сделать программе по планировщику для динамических программ.
    Parameters:
      `con` -
      `program` - - бонус. программа в которой содержатся параметры программы и т.д.
    Throws:
      `java.sql.SQLException`
      `ru.bitel.bgbilling.common.BGException`

  - ### getWebBonusStrings

    public abstract java.util.List<java.lang.String> getWebBonusStrings​(java.sql.Connection con, BonusContractProgram program)
    Каждая дин. программа может вернут список строк которые будут отображаться в ЛК.
    Parameters:
      `con` -
      `program` - - бонус. программаж договора в которой содержатся сама программа, период для программы и contractId.
    Returns:
      список или null, если ни чего не собираетесь отображать.

  - ### getContractPrograms

    public java.util.List<BonusContractProgram> getContractPrograms​(java.lang.Class<? extends BonusProgramDynamicBase> clazz, java.util.Date date) throws ru.bitel.bgbilling.common.BGException
    Получить все программы данной дин. программы для выбранного договора.
    Parameters:
      `clazz` - - класс дин. программы.
      `bonusDao` -
      `date` - - активную на дату, если передать null, то вернет за все время.
    Returns:
      список программ для данного договора.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getProgramContract

    public BonusContractProgram getProgramContract​(int programId, java.util.Date date) throws ru.bitel.bgbilling.common.BGException
    Получить программу договора по ид программы. Отличие от обычной программы только в том что в программе договора содержаться период для договора. Внимание! Если метод используется при вызове планировщика( то есть методом accrualOfBonus), то не забудьте установить contracrId, перед вызовом.
    Parameters:
      `programId` - - код программы.
      `date` - - активную на дату, если передать null, то вернет за все время.
    Returns:
      - если contractId не установлен, то вернет null.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getPeriodForBonusPayment

    public Period getPeriodForBonusPayment​(BonusProgram program)
    Parameters:
      `program` - - бонусная программа.
    Returns:
      активый период для бонусного платежа.

  - ### updatePaymnent

    public int updatePaymnent​(java.math.BigDecimal sum, BonusProgram program) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updatePayment

    public int updatePayment​(java.math.BigDecimal sum, BonusProgram program) throws ru.bitel.bgbilling.common.BGException
    Совершение платежа, данный метод сам учтет период активности бонусного платежа. Дата платежа будет выставлена текущей.
    Parameters:
      `bonusDao` -
      `sum` - - сумма платежа в бонусах.
      `program` - - бонусная программа.
    Returns:
      - код(id) платежа.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getParam

    public java.lang.String getParam​(java.lang.String param, int programId) throws ru.bitel.bgbilling.common.BGException
    Получить параметр программы. Внимаение, мап вытаскивается только один раз, при первом обращение, соответственно если вы обновили некоторый параметр , то это изменение не будет отражено в данном методе( только если вы не воспользовались тем же мапом, что и советую ).
    Parameters:
      `param` - - код запрашиваемого параметра.
      `programId` - - код программы.
    Returns:
      параметр или null если его нет.
    Throws:
      `java.sql.SQLException`
      `ru.bitel.bgbilling.common.BGException`

  - ### updateProgramData

    public void updateProgramData​(int programId, int contractId, java.util.Map<java.lang.String,​java.lang.String> mapL) throws java.sql.SQLException
    Сохранение/обновлене данных для договора по выбранной программе.
    Parameters:
      `programId` - - код программы.
      `contractId` - - код договора.
      `mapL` - - непосредственно сами данные которые нужно сохранить.
    Throws:
      `java.sql.SQLException`

  - ### updateProgramData

    public void updateProgramData​(int programId) throws java.sql.SQLException
    Throws:
      `java.sql.SQLException`