Package ru.bitel.bgbilling.plugins.bonus.server.dao

# Class BonusDao

java.lang.Object
ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
ru.bitel.bgbilling.plugins.bonus.server.dao.BonusDao

public class BonusDao extends ru.bitel.bgbilling.kernel.base.server.logger.BGLogger

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected Connection`
  `con`
  `static final boolean`
  `flagBalanceCanBeNegative`
  Флаг определяющий, можно ли уводить в минус.
  `static int`
  `pluginTurnOn`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `BonusDao(Connection con)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addCharge(int userId, int cid, BonusCharge charge)`
  Добавление расхода
  `void`
  `addDetailsItem(int chargeId, int paymentId, BigDecimal sum)`
  Добавит детали расхода, какую сумму какой расход списал с конкретного платежа.
  `boolean`
  `checkContractOnProgramType(int cid, int programType, Date date)`
  `boolean`
  `checkProgramPeriodOnCrossing(BonusProgram program)`
  Проверка на пересечения нового периода бонусной программы с периодом программы у договоров.
  `void`
  `deleteCharge(int chargeId)`
  Удаление расхода.
  `void`
  `deleteChargeAccordingToContractChargeId(int contractChargeId)`
  Удаление расхода по ид расхода договора.
  `void`
  `deleteDeatails(int id)`
  Удаление деталей расхода по его ид.
  `void`
  `deletePayment(int paymentId)`
  Удаление прихода
  `void`
  `deletePaymentType(int paymentId)`
  `void`
  `deleteProgram(int programId)`
  Удаление бонусной программы.
  `BigDecimal`
  `getBalance(int cid, Date date)`
  `BigDecimal`
  `getBalance(int cid, Date date, Integer chargeId, boolean withFutureCharge)`
  `BonusCharge`
  `getCharge(int contractChargeId)`
  Вернет бонусный расход который был повешан на конкретный расход договора.
  `List<BonusCharge>`
  `getChargeDetailsList(int paymentId)`
  Deprecated.
  `List<BonusCharge>`
  `getChargeList(int contractId, Date dateFrom, Date dateTo)`
  `List<BonusCharge>`
  `getChargesAll(int contractId)`
  Вернет все расходы
  `List<BonusCharge>`
  `getChargesLinkedPayments(int cid, List<BonusPayment> paymentList, Date date)`
  `List<Integer>`
  `getContractsOfThisProgram(int idProgram, Date date)`
  `Map<String,String>`
  `getDataProgramOfContract(int programId, int contractId)`
  Получение мапа с данными для договора по выбранной программе.
  `List<BonusDetailCharge>`
  `getDetailsChargeList(int paymentId)`
  `BigDecimal`
  `getNotActiveBalanceStill(int cid, Date date)`
  `List<BonusPayment>`
  `getPaymentDetailsList(int chargeId)`
  `List<BonusPayment>`
  `getPaymentList(int contractId, Date dateFrom, Date dateTo)`
  `List<BonusPayment>`
  `getPaymentsActiveAndPositive(int cid, Date date, HashMap<Integer,BigDecimal> residueSumMap)`
  `List<BonusPayment>`
  `getPaymentsActiveToDate(int cid, Date date, HashMap<Integer,BigDecimal> residueSumMap)`
  `List<BonusPayment>`
  `getPaymentsAll(int cid)`
  Вернет все платежи для данного договора
  `List<BonusPayment>`
  `getPaymentsToActiveInFuture(int contractId, Date date)`
  `List<BonusPaymentType>`
  `getPaymentTypeList(boolean usedOnly)`
  `BonusProgram`
  `getProgram(int id)`
  `BonusProgramSpecification`
  `getProgramAction(BonusProgram bonusProgram)`
  Получение программы действий для бонусной программы.
  `List<BonusContractProgram>`
  `getProgramCotractList(int cid)`
  `List<BonusContractProgram>`
  `getProgramCotractList(int cid, int programTypeId, Date date)`
  `List<BonusProgram>`
  `getProgramList(Date date, int programTypeId)`
  Возврощает заведенные бонусные программы.
  `BonusProgramSpecification`
  `getProgramSpecificationForDynamicProgram(String className)`
  Вернет спецификацию для динамической программы по ее полному имени.
  `boolean`
  `isUseChargeType(int chargeId)`
  `boolean`
  `isUsePaymentsInDetailsTable(int paymentId)`
  `boolean`
  `isUsePaymentType(int paymentId)`
  `boolean`
  `pluginInclude(int cid)`
  `List<Integer>`
  `programInContractList(int idProgram, Date date)`
  Deprecated.
  `void`
  `updateDataProgramOfContract(int programId, int contractId, Map<String,String> map)`
  Сохранение/обновлене данных для договора по выбранной программе.
  `void`
  `updateDetailsCharge(int id, int paymentId, BigDecimal sum)`
  Обновление записи bonus_details_charge.
  `void`
  `updatePayment(int userId, int cid, BonusPayment payment)`
  Создание платежа.
  `void`
  `updatePaymentType(BonusPaymentType paymentType)`
  `void`
  `updatePluginInclude(int contractId, boolean include)`
  Включение/выкл. плагина у договора.
  `void`
  `updateProgram(BonusProgram program)`
  Обновление или создание бонусной программы.
  `void`
  `updateProgramContract(BonusContractProgram contractProgram)`
  Обновление или добовление бонусной программы для договора.

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

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

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

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

- ## Field Details

  - ### con

    protected Connection con

  - ### pluginTurnOn

    public static int pluginTurnOn

  - ### flagBalanceCanBeNegative

    public static final boolean flagBalanceCanBeNegative
    Флаг определяющий, можно ли уводить в минус.

- ## Constructor Details

  - ### BonusDao

    public BonusDao(Connection con)

- ## Method Details

  - ### getPaymentTypeList

    public List<BonusPaymentType> getPaymentTypeList(boolean usedOnly) throws Exception
    Parameters:
      `usedOnly` -
    Returns:
      - если usedOnly==true,то вернет только используемые
    Throws:
      `Exception`

  - ### getChargesLinkedPayments

    public List<BonusCharge> getChargesLinkedPayments(int cid, List<BonusPayment> paymentList, Date date) throws Exception
    Parameters:
      `paymentList` -
    Returns:
      - вернет список расходов которые были повешаны на дынные приходы на конкретную дату.
    Throws:
      `ru.bitel.bgbilling.common.BGException`
      `Exception`

  - ### updatePaymentType

    public void updatePaymentType(BonusPaymentType paymentType) throws Exception
    Throws:
      `Exception`

  - ### deletePaymentType

    public void deletePaymentType(int paymentId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### isUsePaymentType

    public boolean isUsePaymentType(int paymentId) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `paymentId` -
    Returns:
      - true если есть платежи с таким типом
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### isUseChargeType

    public boolean isUseChargeType(int chargeId) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `chargeId` -
    Returns:
      - true если есть расходы с таким типом
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getPaymentList

    public List<BonusPayment> getPaymentList(int contractId, Date dateFrom, Date dateTo) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `contractId` - - номер договора
      `dateFrom` - - от даты
      `dateTo` - - до даты
    Returns:
      вернет платежи в промежутке данных дат, есл и
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getPaymentsAll

    public List<BonusPayment> getPaymentsAll(int cid) throws ru.bitel.bgbilling.common.BGException
    Вернет все платежи для данного договора
    Parameters:
      `cid` -
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getPaymentsActiveAndPositive

    public List<BonusPayment> getPaymentsActiveAndPositive(int cid, Date date, HashMap<Integer,BigDecimal> residueSumMap) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `date` - - на какой момент
      `cid` - - номер договора
      `residueSumMap` - - мап c остатками средств у платежей, можно передать null,если эти данные не нужны(ключ - id платежа, значение - остаток средсв у платежа).
    Returns:
      вернет активные(то есть dateFrom<date<dateTo) платежи на данное время и у которых еще положительный баланс.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getPaymentsActiveToDate

    public List<BonusPayment> getPaymentsActiveToDate(int cid, Date date, HashMap<Integer,BigDecimal> residueSumMap) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `cid` - - номер договора
      `date` -
      `residueSumMap` - - мап c остатками средств у платежей, можно передать null,если эти данные не нужны(ключ - id платежа, значение - остаток средсв у платежа).
    Returns:
      - список платежей активные на дату - date
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getPaymentsToActiveInFuture

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

  - ### getCharge

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

  - ### getChargeList

    public List<BonusCharge> getChargeList(int contractId, Date dateFrom, Date dateTo) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `contractId` - - номер договора
      `dateFrom` - - от даты
      `dateTo` - - до даты
    Returns:
      вернет список расходов в промежутке dateFrom и dateTo(с точностью до дня), если одна из дат == null, то вернет все
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getChargesAll

    public List<BonusCharge> getChargesAll(int contractId) throws ru.bitel.bgbilling.common.BGException
    Вернет все расходы
    Parameters:
      `contractId` -
    Returns:
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updatePayment

    public void updatePayment(int userId, int cid, BonusPayment payment) throws ru.bitel.bgbilling.common.BGException
    Создание платежа. После совершения платежа, в платеже будет реальный его id.
    Либо, если id > 0, обновление даты завершения платежа.
    Parameters:
      `userId` - - пользователь совершив
      `cid` - - код договора
      `payment` - - бонусный платеж
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### addCharge

    public void addCharge(int userId, int cid, BonusCharge charge) throws ru.bitel.bgbilling.common.BGException
    Добавление расхода
    Parameters:
      `userId` -
      `cid` - - номер договора
      `charge` - - расход. После добаления, id будет присвоено значение.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### deletePayment

    public void deletePayment(int paymentId) throws ru.bitel.bgbilling.common.BGException
    Удаление прихода
    Parameters:
      `paymentId` - - ид прихода
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### deleteCharge

    public void deleteCharge(int chargeId) throws ru.bitel.bgbilling.common.BGException
    Удаление расхода.
    Parameters:
      `chargeId` - - ид расхода
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### deleteChargeAccordingToContractChargeId

    public void deleteChargeAccordingToContractChargeId(int contractChargeId) throws ru.bitel.bgbilling.common.BGException
    Удаление расхода по ид расхода договора.
    Parameters:
      `chargeId` - - ид расхода
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getPaymentDetailsList

    public List<BonusPayment> getPaymentDetailsList(int chargeId) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `chargeId` - - ид расхода
    Returns:
      вернет список платежей у которых данный расход списывал средства, в поле сумма у приходов будет сумма которую данный расход списал, а не сумма всего прихода.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getChargeDetailsList

    @Deprecated public List<BonusCharge> getChargeDetailsList(int paymentId) throws ru.bitel.bgbilling.common.BGException
    Deprecated.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getDetailsChargeList

    public List<BonusDetailCharge> getDetailsChargeList(int paymentId) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `paymentId` - - ид бонусного платежа
    Returns:
      вернет список расходов которые списывали средства с данного прихода, поле суммы у расхода будет занесенно сумма расхода конкретно для этого прихода, а не та сумма которую списал данный расход.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### deleteDeatails

    public void deleteDeatails(int id) throws ru.bitel.bgbilling.common.BGException
    Удаление деталей расхода по его ид.
    Parameters:
      `id` - - ид детали расхода.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### isUsePaymentsInDetailsTable

    public boolean isUsePaymentsInDetailsTable(int paymentId) throws Exception
    Parameters:
      `paymentId` - - ид платежа
    Throws:
      `Exception`

  - ### addDetailsItem

    public void addDetailsItem(int chargeId, int paymentId, BigDecimal sum) throws ru.bitel.bgbilling.common.BGException
    Добавит детали расхода, какую сумму какой расход списал с конкретного платежа.
    Parameters:
      `chargeId` - - ид расхода.
      `paymentId` - - ид прихода.
      `sum` - - сумма списание с данного расхода.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updateDetailsCharge

    public void updateDetailsCharge(int id, int paymentId, BigDecimal sum) throws ru.bitel.bgbilling.common.BGException
    Обновление записи bonus_details_charge.
    Parameters:
      `id` - - код bonus_details_charge. Не путать с bonus_contract_charge.
      `paymentId` - - код платежа с которого списывает данная часть расхода.
      `sum` - - сумма.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getBalance

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

  - ### getBalance

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

  - ### getNotActiveBalanceStill

    public BigDecimal getNotActiveBalanceStill(int cid, Date date) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `cid` - - номер договора
      `date` - - на какую дату
    Returns:
      - сумму еще не активных платежей, которые будут доступны в будущем
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### pluginInclude

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

  - ### updatePluginInclude

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

  - ### updateProgram

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

  - ### checkProgramPeriodOnCrossing

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

  - ### getProgram

    public BonusProgram getProgram(int id) throws Exception
    Parameters:
      `id` - - ид бонусной программы
    Returns:
      бонусную программу, если существует, иначе null.
    Throws:
      `Exception`

  - ### getProgramList

    public List<BonusProgram> getProgramList(Date date, int programTypeId) throws Exception
    Возврощает заведенные бонусные программы.
    Parameters:
      `date` - - вернет активные программы на эту дату, если = null, то вернет все програамы вне зависемости от активности.
      `programTypeId` - - вернет программы только данного типа, если = 0, то вернет все программы вне зависемости от типа.
    Returns:
      - список бонусных программ.
    Throws:
      `ru.bitel.bgbilling.common.BGException`
      `Exception`

  - ### getProgramCotractList

    public List<BonusContractProgram> getProgramCotractList(int cid) throws Exception
    Parameters:
      `cid` - - номер договора.
    Returns:
      список бонусных програма у данного договора.
    Throws:
      `Exception`

  - ### getProgramCotractList

    public List<BonusContractProgram> getProgramCotractList(int cid, int programTypeId, Date date) throws Exception
    Parameters:
      `cid` - - номер договора.
      `programTypeId` - - тип программы. Если < 1, то вернет все программы. На момент создание метода существует только 2 типа программ: операционный=1 и динамический=2.
      `date` - - активную на дату, если передать null, то вернет за все время.
    Returns:
      список бонусных программ у данного договора.
    Throws:
      `Exception`

  - ### updateProgramContract

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

  - ### programInContractList

    @Deprecated public List<Integer> programInContractList(int idProgram, Date date) throws ru.bitel.bgbilling.common.BGException
    Deprecated.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getContractsOfThisProgram

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

  - ### checkContractOnProgramType

    public boolean checkContractOnProgramType(int cid, int programType, Date date) throws ru.bitel.bgbilling.common.BGException
    Parameters:
      `cid` - - номер договора
      `programType` - - тип программы(пока статик поля в BonusProgram)
      `date` - на какую дату проверку
    Returns:
      если у договора есть активные программы с данным типом бонусной программы то true
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### deleteProgram

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

  - ### getProgramAction

    public BonusProgramSpecification getProgramAction(BonusProgram bonusProgram) throws Exception
    Получение программы действий для бонусной программы.
    Returns:
      соответствующий класс конкретной программы.
    Throws:
      `Exception`

  - ### getProgramSpecificationForDynamicProgram

    public BonusProgramSpecification getProgramSpecificationForDynamicProgram(String className) throws Exception
    Вернет спецификацию для динамической программы по ее полному имени.
    Returns:
      в случае успеха BonusProgramSpecification, иначе null.
    Throws:
      `Exception`

  - ### updateDataProgramOfContract

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

  - ### getDataProgramOfContract

    public Map<String,String> getDataProgramOfContract(int programId, int contractId) throws ru.bitel.bgbilling.common.BGException
    Получение мапа с данными для договора по выбранной программе.
    Parameters:
      `programid` - - код программы.
      `contractId` - - код договора.
    Returns:
      map с данными, всегда не null.
    Throws:
      `SQLException`
      `ru.bitel.bgbilling.common.BGException`