Package ru.bitel.bgbilling.modules.buyemoney.server.bean

# Class BuyemoneyManager

java.lang.Object
ru.bitel.bgbilling.modules.buyemoney.server.bean.BuyemoneyManager

    public class BuyemoneyManager
    extends java.lang.Object

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `BuyemoneyManager​(java.sql.Connection con, int mid)` |

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `void` | `addPayment​(BuyemoneyPayment payment)` | Добавление платежа в лог.
  `void` | `carryOutCharge​(BuyemoneyPayment payment, int chargeType, java.lang.String chargeComment)` | Проведение платежа.
  `void` | `deleteCurrencyRate​(int id)` | Удаляем валюту.
  `void` | `deletePayment​(int id)` | Удаление платежа из лога.
  `java.lang.String` | `formatComment​(java.lang.String pattern, BuyemoneyPayment payment, java.lang.String userComment, ru.bitel.bgbilling.modules.buyemoney.server.protocols.ProtocolManager protocolManager)` | Форматируем камент из шаблона. 1) Комментарий расхода для нашего биллинга. 2) Камент для отправки на сервер авторизации строки камента (кое-где называется "основание зачисления")
  `int` | `getCountUsedCurrencyRate​(int id)` | Количество использований конкретной записи о курсе валют в платежах.
  `CurrencyRate` | `getCurrencyRate​(int id)` | Получаем одну валюту.
  `java.util.List<CurrencyRate>` | `getCurrencyRateList​(java.util.Date date, java.lang.Boolean enabled)` | Список всех валют.
  `int` | `getFirstYear​(int cid)` | Возвращает год, с которого были платежи для этого договора
  `BuyemoneyPayment` | `getPaymentFromRS​(java.sql.ResultSet rs, boolean fillExtend)` |
  `java.util.List<BuyemoneyPayment>` | `getPaymentList​(int fCid, Period fPeriod, int fCurrency, java.lang.String fGroups, java.lang.String fContract)` | Запрос списка(лога) платежей, по фильтру. f_period (если !
  `java.util.Map<java.lang.Integer,​java.util.List<BuyemoneyPayment>>` | `getProtocolPaymentMap​(java.util.Date datetime1, java.util.Date datetime2, ru.bitel.bgbilling.modules.buyemoney.common.BuyemoneyStatus status)` | Получаем все платежи указанного статуса (если null - всех) для каждого протокола.
  `java.util.Map<java.lang.Integer,​java.util.List<BuyemoneyPayment>>` | `getUnstatusedPaymentMap()` | Получаем все непроверенные платежи для каждого протокола.
  `void` | `updateCurrencyRate​(CurrencyRate curr)` | Обновление/добавление валюты.
  `void` | `updatePayment​(BuyemoneyPayment payment)` | Обновление всех параметров из лога платежа.

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

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

- ## Constructor Details

  - ### BuyemoneyManager

    public BuyemoneyManager​(java.sql.Connection con, int mid)

- ## Method Details

  - ### getCurrencyRate

    public CurrencyRate getCurrencyRate​(int id) throws java.sql.SQLException
    Получаем одну валюту.
    Parameters:
      `id` - ид валюты.
    Returns:
      объект валюты полностью заполненный.
    Throws:
      `java.sql.SQLException` - ошибка.

  - ### getCurrencyRateList

    public java.util.List<CurrencyRate> getCurrencyRateList​(java.util.Date date, java.lang.Boolean enabled) throws java.sql.SQLException
    Список всех валют. Если задана дата, то только актуальные на эту дату.
    Parameters:
      `date` - дата, на которую надо выдать актуальные тарифы (для использования в вебе конечным юзером, например). Либо null, если надо выдать вообще всё.
      `enabled` - учитывать активность. Если null - игнорируется (то есть берутся и активные и неактивные), если стоит значение то возвращаются либо активные либо неактивные.
    Returns:
      список объектов Currency.
    Throws:
      `java.sql.SQLException` - ошибка.

  - ### updateCurrencyRate

    public void updateCurrencyRate​(CurrencyRate curr) throws java.sql.SQLException
    Обновление/добавление валюты. Если id не установлен (<1), то вставится.
    Parameters:
      `curr` - объект заполненный
    Throws:
      `java.sql.SQLException` - ошибка

  - ### deleteCurrencyRate

    public void deleteCurrencyRate​(int id) throws java.sql.SQLException
    Удаляем валюту.
    Parameters:
      `id` - ид курса валюты.
    Throws:
      `java.sql.SQLException` - ошибка.

  - ### getCountUsedCurrencyRate

    public int getCountUsedCurrencyRate​(int id) throws java.sql.SQLException
    Количество использований конкретной записи о курсе валют в платежах. Используется для определения используется ли эта запись уже. В таком случае мы должны бы запретить её правку, кроме деактивации.
    Parameters:
      `id` - ид курса валюты.
    Returns:
      количество использований (логично, что если 0 - курс валюты ещё не использовался)
    Throws:
      `java.sql.SQLException`

  - ### getPaymentList

    public java.util.List<BuyemoneyPayment> getPaymentList​(int fCid, Period fPeriod, int fCurrency, java.lang.String fGroups, java.lang.String fContract) throws java.sql.SQLException
    Запрос списка(лога) платежей, по фильтру. f_period (если != null), f_currency (если > 0) действуют всегда. f_groups, f_contract, fCid тоже действуют иногда, если установлены. Ещё запрашивается для юзера из веба, там только cid и период. Заполняются также заголовок договора и объект rate соотвествующий (если теряется связь, то будет не null, но пустой объект)
    Parameters:
      `fCid` - ид договора (действует если >0)
      `fPeriod` - период (действует если != null)
      `fCurrency` - валюта протокольная (!), не из таблицы rate, а из конфига (действует если>0)
      `fGroups` - список ид групп (действует если !=null и не пустой)
      `fContract` - кусок текстового наименования договора, ищется по LIKE (действует если !=null и не пустой)
    Returns:
      соответствующий список объектов "e-money платёж"
    Throws:
      `java.sql.SQLException` - ошибка.

  - ### getUnstatusedPaymentMap

    public java.util.Map<java.lang.Integer,​java.util.List<BuyemoneyPayment>> getUnstatusedPaymentMap() throws java.sql.SQLException
    Получаем все непроверенные платежи для каждого протокола.
    Returns:
      мэп: протокол-id => список платежей этого протокола со статусом NEW
    Throws:
      `java.sql.SQLException`

  - ### getProtocolPaymentMap

    public java.util.Map<java.lang.Integer,​java.util.List<BuyemoneyPayment>> getProtocolPaymentMap​(java.util.Date datetime1, java.util.Date datetime2, ru.bitel.bgbilling.modules.buyemoney.common.BuyemoneyStatus status) throws java.sql.SQLException
    Получаем все платежи указанного статуса (если null - всех) для каждого протокола. В периоде с даты по дату (граница не указана - игнорируется).
    Parameters:
      `time1` - от (точность полная)
      `time2` - до (точность полная)
      `status` - статусы
    Returns:
      мэп: протокол-id => список платежей этого протокола со статусом NEW
    Throws:
      `java.sql.SQLException`

  - ### getFirstYear

    public int getFirstYear​(int cid) throws java.sql.SQLException
    Возвращает год, с которого были платежи для этого договора
    Parameters:
      `cid` - контракт_ид
    Returns:
      четырёхзначное число - год
    Throws:
      `java.sql.SQLException`

  - ### addPayment

    public void addPayment​(BuyemoneyPayment payment) throws java.sql.SQLException
    Добавление платежа в лог. Выполняется перед началом транзакции. Все поля берутся при этом из объекта, то есть и дату текущую и статус "новый" надо явно задать. Используются только поля таблицы, заголовок договора и объект rate заполнять, конечно, не нужно. charge_id тоже пока не нужен.
    Parameters:
      `payment` - объект-платёж.
    Throws:
      `java.sql.SQLException` - ошибка.

  - ### deletePayment

    public void deletePayment​(int id) throws java.sql.SQLException
    Удаление платежа из лога. Делается, например, когда платёж начался и не прошёл по фатальной ошибке.
    Parameters:
      `id` - ид платежа в таблице buyemoney_payment
    Throws:
      `java.sql.SQLException`

  - ### updatePayment

    public void updatePayment​(BuyemoneyPayment payment) throws java.sql.SQLException
    Обновление всех параметров из лога платежа. В объекте должен быть установлен id. Исползуется для модификации параметров (некоторых) после уточнения статуса платежа.
    Parameters:
      `payment` - объект для обновления.
    Throws:
      `java.sql.SQLException`

  - ### getPaymentFromRS

    public BuyemoneyPayment getPaymentFromRS​(java.sql.ResultSet rs, boolean fillExtend) throws java.sql.SQLException
    Throws:
      `java.sql.SQLException`

  - ### carryOutCharge

    public void carryOutCharge​(BuyemoneyPayment payment, int chargeType, java.lang.String chargeComment) throws ru.bitel.bgbilling.common.BGException
    Проведение платежа. Проверяется, чтобы статус у переданного был OK.
    Throws:
      `java.sql.SQLException`
      `ru.bitel.bgbilling.common.BGException`

  - ### formatComment

    public java.lang.String formatComment​(java.lang.String pattern, BuyemoneyPayment payment, java.lang.String userComment, ru.bitel.bgbilling.modules.buyemoney.server.protocols.ProtocolManager protocolManager) throws java.sql.SQLException
    Форматируем камент из шаблона. 1) Комментарий расхода для нашего биллинга. 2) Камент для отправки на сервер авторизации строки камента (кое-где называется "основание зачисления")
    Parameters:
      `pattern` - шаблон
      `payment` - платёж-покупки (лучше с заполненным объектом rate)
      `userComment` - то что ввёл юзер в поле комментария
      `protocolManager` - менеджер валюты надо передать, чтобы можно было название валюты вытянуть
    Returns:
      строка-коммент
    Throws:
      `java.sql.SQLException`