Class BuyemoneyManager
java.lang.Object
ru.bitel.bgbilling.modules.buyemoney.server.bean.BuyemoneyManager
- 
Constructor Summary
Constructors - 
Method Summary
Modifier and TypeMethodDescriptionvoidaddPayment(BuyemoneyPayment payment) Добавление платежа в лог.voidcarryOutCharge(BuyemoneyPayment payment, int chargeType, String chargeComment) Проведение платежа.voiddeleteCurrencyRate(int id) Удаляем валюту.voiddeletePayment(int id) Удаление платежа из лога.formatComment(String pattern, BuyemoneyPayment payment, String userComment, ru.bitel.bgbilling.modules.buyemoney.server.protocols.ProtocolManager protocolManager) Форматируем камент из шаблона. 1) Комментарий расхода для нашего биллинга. 2) Камент для отправки на сервер авторизации строки камента (кое-где называется "основание зачисления")intgetCountUsedCurrencyRate(int id) Количество использований конкретной записи о курсе валют в платежах.getCurrencyRate(int id) Получаем одну валюту.getCurrencyRateList(Date date, Boolean enabled) Список всех валют.intgetFirstYear(int cid) Возвращает год, с которого были платежи для этого договораgetPaymentFromRS(ResultSet rs, boolean fillExtend) getPaymentList(int fCid, Period fPeriod, int fCurrency, String fGroups, String fContract) Запрос списка(лога) платежей, по фильтру. f_period (если !getProtocolPaymentMap(Date datetime1, Date datetime2, ru.bitel.bgbilling.modules.buyemoney.common.BuyemoneyStatus status) Получаем все платежи указанного статуса (если null - всех) для каждого протокола.Получаем все непроверенные платежи для каждого протокола.voidОбновление/добавление валюты.voidupdatePayment(BuyemoneyPayment payment) Обновление всех параметров из лога платежа. 
- 
Constructor Details
- 
BuyemoneyManager
 
 - 
 - 
Method Details
- 
getCurrencyRate
Получаем одну валюту.- Parameters:
 id- ид валюты.- Returns:
 - объект валюты полностью заполненный.
 - Throws:
 SQLException- ошибка.
 - 
getCurrencyRateList
Список всех валют. Если задана дата, то только актуальные на эту дату.- Parameters:
 date- дата, на которую надо выдать актуальные тарифы (для использования в вебе конечным юзером, например). Либо null, если надо выдать вообще всё.enabled- учитывать активность. Если null - игнорируется (то есть берутся и активные и неактивные), если стоит значение то возвращаются либо активные либо неактивные.- Returns:
 - список объектов Currency.
 - Throws:
 SQLException- ошибка.
 - 
updateCurrencyRate
Обновление/добавление валюты. Если id не установлен (<1), то вставится.- Parameters:
 curr- объект заполненный- Throws:
 SQLException- ошибка
 - 
deleteCurrencyRate
Удаляем валюту.- Parameters:
 id- ид курса валюты.- Throws:
 SQLException- ошибка.
 - 
getCountUsedCurrencyRate
Количество использований конкретной записи о курсе валют в платежах. Используется для определения используется ли эта запись уже. В таком случае мы должны бы запретить её правку, кроме деактивации.- Parameters:
 id- ид курса валюты.- Returns:
 - количество использований (логично, что если 0 - курс валюты ещё не использовался)
 - Throws:
 SQLException
 - 
getPaymentList
public List<BuyemoneyPayment> getPaymentList(int fCid, Period fPeriod, int fCurrency, String fGroups, String fContract) throws 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:
 SQLException- ошибка.
 - 
getUnstatusedPaymentMap
Получаем все непроверенные платежи для каждого протокола.- Returns:
 - мэп: протокол-id => список платежей этого протокола со статусом NEW
 - Throws:
 SQLException
 - 
getProtocolPaymentMap
public Map<Integer,List<BuyemoneyPayment>> getProtocolPaymentMap(Date datetime1, Date datetime2, ru.bitel.bgbilling.modules.buyemoney.common.BuyemoneyStatus status) throws SQLException Получаем все платежи указанного статуса (если null - всех) для каждого протокола. В периоде с даты по дату (граница не указана - игнорируется).- Parameters:
 time1- от (точность полная)time2- до (точность полная)status- статусы- Returns:
 - мэп: протокол-id => список платежей этого протокола со статусом NEW
 - Throws:
 SQLException
 - 
getFirstYear
Возвращает год, с которого были платежи для этого договора- Parameters:
 cid- контракт_ид- Returns:
 - четырёхзначное число - год
 - Throws:
 SQLException
 - 
addPayment
Добавление платежа в лог. Выполняется перед началом транзакции. Все поля берутся при этом из объекта, то есть и дату текущую и статус "новый" надо явно задать. Используются только поля таблицы, заголовок договора и объект rate заполнять, конечно, не нужно. charge_id тоже пока не нужен.- Parameters:
 payment- объект-платёж.- Throws:
 SQLException- ошибка.
 - 
deletePayment
Удаление платежа из лога. Делается, например, когда платёж начался и не прошёл по фатальной ошибке.- Parameters:
 id- ид платежа в таблице buyemoney_payment- Throws:
 SQLException
 - 
updatePayment
Обновление всех параметров из лога платежа. В объекте должен быть установлен id. Исползуется для модификации параметров (некоторых) после уточнения статуса платежа.- Parameters:
 payment- объект для обновления.- Throws:
 SQLException
 - 
getPaymentFromRS
- Throws:
 SQLException
 - 
carryOutCharge
public void carryOutCharge(BuyemoneyPayment payment, int chargeType, String chargeComment) throws Exception Проведение платежа. Проверяется, чтобы статус у переданного был OK.- Throws:
 SQLExceptionException
 - 
formatComment
public String formatComment(String pattern, BuyemoneyPayment payment, String userComment, ru.bitel.bgbilling.modules.buyemoney.server.protocols.ProtocolManager protocolManager) throws SQLException Форматируем камент из шаблона. 1) Комментарий расхода для нашего биллинга. 2) Камент для отправки на сервер авторизации строки камента (кое-где называется "основание зачисления")- Parameters:
 pattern- шаблонpayment- платёж-покупки (лучше с заполненным объектом rate)userComment- то что ввёл юзер в поле комментарияprotocolManager- менеджер валюты надо передать, чтобы можно было название валюты вытянуть- Returns:
 - строка-коммент
 - Throws:
 SQLException
 
 -