Package ru.bitel.bgbilling.plugins.cashcheck.server.bean

# Class PaymentQueueManager

java.lang.Object
ru.bitel.bgbilling.plugins.cashcheck.server.bean.PaymentQueueManager

public class PaymentQueueManager extends Object
Менеджер очереди, лога, обработки чеков.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `PaymentQueueManager(Connection con)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Payment`
  `_getLogItem(String _table, boolean _isPayment, Integer paymentchargeId, Integer logId)`
  Одна позиция из лога чеков.
  `String`
  `_getLogItemFiscalData(String _table, Integer paymentchargeId, Integer logId)`
  Оптимизированная версия _getLogItem.
  `void`
  `_updateFiscalDataForPendingId(String _table, String pendingId, String fiscalData)`
  общий метод для cashcheck_payment_log/cashcheck_charge_log передаётся _table="payment"/"charge"
  `void`
  `_updateLastErrorForPendingId(String _table, String pendingId, String lastError)`
  общий метод для cashcheck_payment_log/cashcheck_charge_log передаётся _table="payment"/"charge"
  `Result<Payment>`
  `getChargeLog(Set<Integer> cids, int printerId, Boolean erroredType, String posMapping, Period period, Page page, Collection<Integer> logIds)`
  Возвращаем список из лога уже напечатанных чеков возврата.
  `Payment`
  `getChargeLogItem(Integer chargeId, Integer logId)`
  `Result<Payment>`
  `getChargeQueue(Period period, List<Integer> chatypes, Page page)`
  Список расходов, которые могут быть напечатаны, но ещё не были.
  `List<Payment>`
  `getChargesList(List<Integer> chargeIds)`
  Получаем список расходов/возвратов по списку id.
  `Set<String>`
  `getExistingPosMapping()`
  Все маппинги когда-либо используемые в логах, для фильтра, например.
  `List<Payment>`
  `getNeedPendingIdLog(String _table, int printerId, Date fromDate, Date toDate, boolean isError)`
  возвращает список pending_id платежей из лога готовых к опросу статуса - с наличием pending_id и без наличия ответа уже Берутся записи из cashcheck_payment_log только.
  `Result<Payment>`
  `getPaymentLog(int printerId, Period period, Page page)`
  `Result<Payment>`
  `getPaymentLog(Set<Integer> cids, int printerId, Boolean erroredType, String posMapping, Period period, Page page, Collection<Integer> logIds)`
  Возвращаем список прямо из лога уже напечатанных.
  `Payment`
  `getPaymentLogItem(Integer paymentId, Integer logId)`
  `List<Payment>`
  `getPaymentNotLogList(List<Integer> paymentIds)`
  Получаем список платежей по списку id.
  `Result<Payment>`
  `getPaymentQueue(Period period, List<Integer> paytypes, Page page)`
  Список платежей, которые могут быть напечатаны, но ещё не были.
  `void`
  `updateChargeFiscalDataForPendingId(String pendingId, String fiscalData)`
  `void`
  `updateChargeLastErrorForPendingId(String pendingId, String lastError)`
  `void`
  `updateChargeLog(int chargeId, int posId, String checkData, Check.Type checkType, String posMapping, String errorText, String pendingId, int contractId, String fiscalData, Integer logId)`
  Добавляем расход/возврат (чек возврата) к логу.
  `void`
  `updatePaymentFiscalDataForPendingId(String pendingId, String fiscalData)`
  `void`
  `updatePaymentLastErrorForPendingId(String pendingId, String lastError)`
  `void`
  `updatePaymentLog(int paymentId, int posId)`
  Deprecated.
  use updatePaymentLog( int paymentId, int posId, String checkData, int checkType )
  `void`
  `updatePaymentLog(int paymentId, int posId, String checkData, Check.Type checkType, String posMapping, String errorText, String pendingId, int contractId, String fiscalData, Integer logId)`
  Добавляем платёж к логу (или обновляем текущий).

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

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

- ## Constructor Details

  - ### PaymentQueueManager

    public PaymentQueueManager(Connection con)

- ## Method Details

  - ### getPaymentQueue

    public Result<Payment> getPaymentQueue(Period period, List<Integer> paytypes, Page page) throws ru.bitel.bgbilling.common.BGException
    Список платежей, которые могут быть напечатаны, но ещё не были. Технически — все платежи указанных типов, которые отсутствуют в логе распечатанных. Проверяет внутри параметр конфига "fiscal.start" и если есть - ограничивает снизу по нему очередь. Используется конечно таблица contract_payment.
    Parameters:
      `period` - период фильтр (берутся включительно, обрезаются по "fiscal.start").
      `paytypes` - список типов платежей (берётся, например, от конкретного регистратора). должен быть непустой, иначе и вернётся пустое.
      `page` - пагинация
    Returns:
      резулт со списком платежей и пагинацией.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getChargeQueue

    public Result<Payment> getChargeQueue(Period period, List<Integer> chatypes, Page page) throws ru.bitel.bgbilling.common.BGException
    Список расходов, которые могут быть напечатаны, но ещё не были. Технически - все расходы указанных типов, которые отсутствуют в логе распечатанных. Проверяет внутри параметр конфига "fiscal.start" и если есть - ограничивает снизу по нему очередь. Используется конечно таблица contract_charge.
    Parameters:
      `period` - период фильтр (берутся включительно, обрезаются по "fiscal.start").
      `chatypes` - список типов расходов (берётся, например, от конкретного регистратора). должен быть непустой, иначе и вернётся пустое.
      `page` - пагинация
    Returns:
      резулт со списком cashcheck.Payment и пагинацией.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getPaymentNotLogList

    public List<Payment> getPaymentNotLogList(List<Integer> paymentIds) throws ru.bitel.bgbilling.common.BGException
    Получаем список платежей по списку id. Берутся платежи из contract_payment. Заберёт платежи и если в логах их нет (параметры относящиеся к логу будут пустые)
    Parameters:
      `paymentIds` - ид платежей.
    Returns:
      список платежей, без заполненных частей от лога.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getChargesList

    public List<Payment> getChargesList(List<Integer> chargeIds) throws ru.bitel.bgbilling.common.BGException
    Получаем список расходов/возвратов по списку id. Берутся из contract_charge. Дополняются другими данными. Аналог #getPaymentNotLogList Если данные из cashcheck_charge_log - getQueueDate итд не заполнены, значит в логе нет, заполнилось только ядерная инфа
    Parameters:
      `chargeIds` - ид платежей.
    Returns:
      список расходов/возвратов, возможно без заполненных частей от лога (модельки Payment).
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updatePaymentLog

    public void updatePaymentLog(int paymentId, int posId, String checkData, Check.Type checkType, String posMapping, String errorText, String pendingId, int contractId, String fiscalData, Integer logId) throws ru.bitel.bgbilling.common.BGException
    Добавляем платёж к логу (или обновляем текущий).
    Parameters:
      `paymentId` - ид платежа.
      `posId` - номер ККМ.
      `logId` - если не null, то будет обновлена запись в логе с таким log_id, иначе вставлена
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updateChargeLog

    public void updateChargeLog(int chargeId, int posId, String checkData, Check.Type checkType, String posMapping, String errorText, String pendingId, int contractId, String fiscalData, Integer logId) throws ru.bitel.bgbilling.common.BGException
    Добавляем расход/возврат (чек возврата) к логу.
    Parameters:
      `posId` - номер ККМ.
      `logId` - если не null, то будет обновлена запись в логе с таким log_id, иначе вставлена
      `paymentId` - ид расхода/возврата.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updatePaymentLog

    @Deprecated public void updatePaymentLog(int paymentId, int posId) throws ru.bitel.bgbilling.common.BGException
    Deprecated.
    use updatePaymentLog( int paymentId, int posId, String checkData, int checkType )
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getPaymentLog

    public Result<Payment> getPaymentLog(int printerId, Period period, Page page) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getPaymentLog

    public Result<Payment> getPaymentLog(Set<Integer> cids, int printerId, Boolean erroredType, String posMapping, Period period, Page page, Collection<Integer> logIds) throws ru.bitel.bgbilling.common.BGException
    Возвращаем список прямо из лога уже напечатанных. Берутся записи из cashcheck_payment_log.
    Parameters:
      `cids` - фильтр по договорам, если null или пустой - то по всем
      `printerId` - фильтр по ККМ, или 0 если все.
      `erroredType` - null - все чеки, true - только с ошибками, false - только без ошибок
      `posMapping` - фильтр по маппингу, null - все, строка - только с указанным маппингом (пустая строка соответсвует и пустому и null значению в БД)
      `period` - период (записи лога, а не платежа)
      `page` - пагинация (null - не используется)
      `logIds` - список ид лога, для возврата всех моделей целиком (используется для получения лога по айдишникам), null - не используется (пустой - ничего не вернёт)
    Returns:
      список платежей в виде Result (т.е. поддержка пагинации), сортировка обратная.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getChargeLog

    public Result<Payment> getChargeLog(Set<Integer> cids, int printerId, Boolean erroredType, String posMapping, Period period, Page page, Collection<Integer> logIds) throws ru.bitel.bgbilling.common.BGException
    Возвращаем список из лога уже напечатанных чеков возврата. Берутся записи из cashcheck_charge_log.
    Parameters:
      `cids` - фильтр по договорам, если null или пустой - то по всем
      `printerId` - фильтр по ККМ, или 0 если все.
      `erroredType` - null - все чеки, true - только с ошибками, false - только без ошибок
      `posMapping` - фильтр по маппингу, null - все, строка - только с указанным маппингом (пустая строка соответсвует и пустому и null значению в БД)
      `period` - период
      `page` - пагинация (null - не используется)
    Returns:
      список расходов/возвратов в виде Result (т.е. поддержка пагинации), сортировка обратная.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### _getLogItem

    public Payment _getLogItem(String _table, boolean _isPayment, Integer paymentchargeId, Integer logId) throws ru.bitel.bgbilling.common.BGException
    Одна позиция из лога чеков. Берутся записи из cashcheck_charge_log/cashcheck_payment_log. paymentchargeId , logId если не null, то определяют выборку по ид платежа или по ид записи лога. Как минимум один должен быть заплнен.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getPaymentLogItem

    public Payment getPaymentLogItem(Integer paymentId, Integer logId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getChargeLogItem

    public Payment getChargeLogItem(Integer chargeId, Integer logId) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### _getLogItemFiscalData

    public String _getLogItemFiscalData(String _table, Integer paymentchargeId, Integer logId) throws ru.bitel.bgbilling.common.BGException
    Оптимизированная версия _getLogItem. Одна позиция из лога чеков, возврат только fiscaldata. Берутся записи из cashcheck_charge_log/cashcheck_payment_log. paymentchargeId , logId если не null, то определяют выборку по ид платежа/расхода или по ид записи лога. Как минимум один должен быть заплнен.
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### _updateLastErrorForPendingId

    public void _updateLastErrorForPendingId(String _table, String pendingId, String lastError) throws ru.bitel.bgbilling.common.BGException
    общий метод для cashcheck_payment_log/cashcheck_charge_log передаётся _table="payment"/"charge"
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updatePaymentLastErrorForPendingId

    public void updatePaymentLastErrorForPendingId(String pendingId, String lastError) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updateChargeLastErrorForPendingId

    public void updateChargeLastErrorForPendingId(String pendingId, String lastError) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### _updateFiscalDataForPendingId

    public void _updateFiscalDataForPendingId(String _table, String pendingId, String fiscalData) throws ru.bitel.bgbilling.common.BGException
    общий метод для cashcheck_payment_log/cashcheck_charge_log передаётся _table="payment"/"charge"
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updatePaymentFiscalDataForPendingId

    public void updatePaymentFiscalDataForPendingId(String pendingId, String fiscalData) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### updateChargeFiscalDataForPendingId

    public void updateChargeFiscalDataForPendingId(String pendingId, String fiscalData) throws ru.bitel.bgbilling.common.BGException
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getNeedPendingIdLog

    public List<Payment> getNeedPendingIdLog(String _table, int printerId, Date fromDate, Date toDate, boolean isError) throws ru.bitel.bgbilling.common.BGException
    возвращает список pending_id платежей из лога готовых к опросу статуса - с наличием pending_id и без наличия ответа уже Берутся записи из cashcheck_payment_log только. общий метод для cashcheck_payment_log/cashcheck_charge_log, contract_payment/contract_charge, contract_payment_types/contract_charge_types передаётся _table="payment"/"charge" чтобы сгенерить некоторые имена таблиц и колонку (payment_id/charge_id)
    Parameters:
      `_table` - для общего вызова, "payment"/"charge"
      `isError` - если true то выбираются только те в которых есть last_error (т.е. уже печатали и не получилось), если false только те где нет last_error (т.е. первый раз попытка печатать)
    Throws:
      `ru.bitel.bgbilling.common.BGException`

  - ### getExistingPosMapping

    public Set<String> getExistingPosMapping() throws ru.bitel.bgbilling.common.BGException
    Все маппинги когда-либо используемые в логах, для фильтра, например. И из таблицы чеков приходов и расходов.
    Throws:
      `ru.bitel.bgbilling.common.BGException`