Class PaymentQueueManager

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

public class PaymentQueueManager extends Object
Менеджер очереди, лога, обработки чеков.
  • 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, 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, Integer logId) throws ru.bitel.bgbilling.common.BGException
      Добавляем расход/возврат (чек возврата) к логу.
      Parameters:
      paymentId - ид расхода/возврата.
      posId - номер ККМ.
      logId - если не null, то будет обновлена запись в логе с таким log_id, иначе вставлена
      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
    • _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:
      isError - если true то выбираются только те в которых есть last_error (т.е. уже печатали и не получилось), если false только те где нет last_error (т.е. первый раз попытка печатать)
      _table - для общего вызова, "payment"/"charge"
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getExistingPosMapping

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