ru.bitel.bgbilling.modules.yamoney.server.bean

## Class TransactionManager

- java.lang.Object
- - ru.bitel.common.dao.AbstractDao<B>
  - - ru.bitel.common.dao.AbstractIdDao<Transaction>
    - - ru.bitel.bgbilling.modules.yamoney.server.bean.TransactionManager

- All Implemented Interfaces:
    java.lang.AutoCloseable

      public class TransactionManager
      extends ru.bitel.common.dao.AbstractIdDao<Transaction>

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class ru.bitel.common.dao.AbstractDao

      `ru.bitel.common.dao.AbstractDao.ResultSetIterator`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `java.util.Map<java.lang.String,java.lang.String>` | `fields`

    - ### Fields inherited from class ru.bitel.common.dao.AbstractDao

      `cacheFilter, cacheJoin, cacheOrderBy, cachePaged, cachePS, cacheWhat, con, getByIdPS, logger, mid, moduleId, orderByPattern, SQL_CALC_FOUND_ROWS, SQL_DELETE, SQL_EQ, SQL_EQCS, SQL_FROM, SQL_GROUP, SQL_IN, SQL_INSERT, SQL_LIMIT, SQL_ORDER, SQL_SELECT, SQL_SET, SQL_UPDATE, SQL_WHERE, tableName`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TransactionManager(java.sql.Connection con, int moduleId)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `carryOutPayment(Transaction transaction, Preferences moduleSetup)` Проведение платежа и занесение его в платежи договора.
    `void` | `deleteTransaction(int id)` Удаление платежа-транзакции из лога.
    `java.lang.String` | `formatComment(java.lang.String pattern, Transaction transaction)` Форматируем камент из шаблона.
    `int` | `getFirstYear(int cid)` Возвращает год, с которого были платежи для этого договора.
    `protected Transaction` | `getFromRS(java.sql.ResultSet rs)`
    `Transaction` | `getTransactionForInvoice(long invoiceId)` Возвращает транзакцию по ид_транзакции платёжной системы.
    `java.util.List<Transaction>` | `getTransactionsList(int fCid, Period fPeriod, java.lang.String fGroups, java.lang.String fContract)` Запрос списка(лога) платежей, по фильтру. f_period (если !
    `void` | `searchTransactionList(SearchResult<Transaction> searchResult, int contractId, java.lang.String contractTitle)`
    `protected void` | `updateImpl(Transaction b)` Этот метод каждый реализует сам со своей логикой.
    `void` | `updateTransaction(Transaction transaction)` Обновление всех параметров из лога платежа.

    - ### Methods inherited from class ru.bitel.common.dao.AbstractIdDao

      `delete, get, getAndDelete, getAndUpdate`

    - ### Methods inherited from class ru.bitel.common.dao.AbstractDao

      `close, delete, deleteImpl, eq, get, getById, getImpl, getListFromRS, getSQLOrder, getSQLOrder, getTableName, list, list, listImpl, listImpl, listImplPS, listImplPS, processException, recycle, setStatementParam, update`

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

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

- - ### Field Detail

    - #### fields

          public java.util.Map<java.lang.String,java.lang.String> fields

  - ### Constructor Detail

    - #### TransactionManager

          public TransactionManager(java.sql.Connection con,
                                    int moduleId)

  - ### Method Detail

    - #### searchTransactionList

          public void searchTransactionList(SearchResult<Transaction> searchResult,
                                            int contractId,
                                            java.lang.String contractTitle)
                                     throws ru.bitel.bgbilling.common.BGException

      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getTransactionsList

          public java.util.List<Transaction> getTransactionsList(int fCid,
                                                                 Period fPeriod,
                                                                 java.lang.String fGroups,
                                                                 java.lang.String fContract)
                                                          throws ru.bitel.bgbilling.common.BGException

      Запрос списка(лога) платежей, по фильтру. f_period (если != null), действуют всегда. f_groups, f_contract, fCid тоже действуют иногда, если установлены. Ещё запрашивается для юзера из веба, там только cid и период. Заполняются также заголовок договора.
      Parameters:
        `fCid` - ид договора (действует если >0)
        `fPeriod` - период (действует если != null)
        `fGroups` - список ид групп (действует если !=null и не пустой)
        `fContract` - кусок текстового наименования договора, ищется по LIKE (действует если !=null и не пустой)
      Returns:
        соответствующий список объектов "Ya платёж"
      Throws:
        `ru.bitel.bgbilling.common.BGException` - ошибка.

    - #### getTransactionForInvoice

          public Transaction getTransactionForInvoice(long invoiceId)
                                               throws ru.bitel.bgbilling.common.BGException

      Возвращает транзакцию по ид_транзакции платёжной системы. Используется в экзекутере при проверке есть ли уже платёж с такой транзакцией у нас в БД, ибо может быть повторный запрос.
      Parameters:
        `invoiceId` - одноимённый параметр.
      Returns:
        объект транзакция.
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### getFirstYear

          public int getFirstYear(int cid)
                           throws ru.bitel.bgbilling.common.BGException

      Возвращает год, с которого были платежи для этого договора. Если не было ничего, то возвращает текущий.
      Parameters:
        `cid` - контракт_ид
      Returns:
        четырёхзначное число - год
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### deleteTransaction

          public void deleteTransaction(int id)
                                 throws ru.bitel.bgbilling.common.BGException

      Удаление платежа-транзакции из лога. Не используется, кажется, пока.
      Parameters:
        `id` - ид платежа в таблице yamoney_transactions_$mid.
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### updateTransaction

          public void updateTransaction(Transaction transaction)
                                 throws ru.bitel.bgbilling.common.BGException

      Обновление всех параметров из лога платежа. В объекте должен быть установлен id. Исползуется для модификации параметров (некоторых) после уточнения статуса платежа.
      Parameters:
        `payment` - объект для обновления.
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### carryOutPayment

          public void carryOutPayment(Transaction transaction,
                                      Preferences moduleSetup)
                               throws ru.bitel.bgbilling.common.BGException

      Проведение платежа и занесение его в платежи договора.
      Parameters:
        `transaction` - транзакция проверенная на нужность добавления
        `paymentType` - тип платежа для занесения
        `paymentComment` - комментарий платежа
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### formatComment

          public java.lang.String formatComment(java.lang.String pattern,
                                                Transaction transaction)

      Форматируем камент из шаблона. Комментарий расхода для нашего биллинга.
      Parameters:
        `pattern` - шаблон
        `transaction` - платёж-транзакция
      Returns:
        строка-камент

    - #### getFromRS

          protected Transaction getFromRS(java.sql.ResultSet rs)
                                   throws java.sql.SQLException,
                                          ru.bitel.bgbilling.common.BGException

      Specified by:
        `getFromRS` in class `ru.bitel.common.dao.AbstractDao<Transaction>`
      Throws:
        `java.sql.SQLException`
        `ru.bitel.bgbilling.common.BGException`

    - #### updateImpl

          protected void updateImpl(Transaction b)
                             throws ru.bitel.bgbilling.common.BGException,
                                    java.sql.SQLException

      Description copied from class: `ru.bitel.common.dao.AbstractDao`
      Этот метод каждый реализует сам со своей логикой.
      Для обновления вызывать update.
      Specified by:
        `updateImpl` in class `ru.bitel.common.dao.AbstractDao<Transaction>`
      Parameters:
        `b` - экземпляр модели
      Throws:
        `ru.bitel.bgbilling.common.BGException` - ошибки
        `java.sql.SQLException` - ошибки