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

# Class BonusProgramDynamicBase

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

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

  `doExternalScript, error, print, setErrorStream, setOutputStream`

  ### Methods inherited from class ru.bitel.bgbilling.kernel.base.server.logger.BGLogger

  `error, error, error, getLogger, logError, logError, warn`

  ### 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 Map<String,String> map

  - ### bonusDao

    public BonusDao bonusDao

  - ### con

    public Connection con

  - ### contractId

    protected 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 Exception
    Specified by:
      `onEvent` in interface `EventScript<ru.bitel.bgbilling.kernel.event.common.Event>`
    Throws:
      `Exception`

  - ### accrualOfBonus

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

  - ### accrualOfBonusImpl

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

  - ### getWebBonusStrings

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

  - ### getContractPrograms

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

  - ### getProgramContract

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

  - ### getPeriodForBonusPayment

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

  - ### updatePayment

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

  - ### getParam

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

  - ### updateProgramData

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

  - ### updateProgramData

    public void updateProgramData(int programId) throws SQLException
    Throws:
      `SQLException`