Class PaymentQueueManager

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

public class PaymentQueueManager
extends java.lang.Object
Менеджер лога печати. Также вычисление очереди актуальной для распечатки.
  • Constructor Summary

    Constructors
    Constructor Description
    PaymentQueueManager​(java.sql.Connection con)  
  • Method Summary

    Modifier and Type Method Description
    Result<Payment> getChargeLog​(java.util.Set<java.lang.Integer> cids, int printerId, java.lang.Boolean erroredType, java.lang.String posMapping, Period period, Page page)
    Возвращаем список из лога уже напечатанных чеков возврата.
    Result<Payment> getChargeQueue​(Period period, java.util.List<java.lang.Integer> chatypes, Page page)
    Список расходов, которые могут быть напечатаны, но ещё не были.
    java.util.List<Payment> getChargesList​(java.util.List<java.lang.Integer> chargeIds)
    Получаем список расходов/возвратов по списку id.
    java.util.Set<java.lang.String> getExistingPosMapping()
    Все маппинги когда-либо используемые в логах, для фильтра, например.
    java.util.List<Payment> getNeedPendingIdLog​(int printerId, java.util.Date fromDate, java.util.Date toDate, boolean isError)
    возвращает список pending_id платежей из лога готовых к опросу статуса - с наличием pending_id и без наличия ответа уже Берутся записи из cashcheck_payment_log только.
    Result<Payment> getPaymentLog​(int printerId, Period period, Page page)  
    Result<Payment> getPaymentLog​(java.util.Set<java.lang.Integer> cids, int printerId, java.lang.Boolean erroredType, java.lang.String posMapping, Period period, Page page, java.util.Collection<java.lang.Integer> logIds)
    Возвращаем список прямо из лога уже напечатанных.
    java.util.List<Payment> getPaymentNotLogList​(java.util.List<java.lang.Integer> paymentIds)
    Получаем список платежей по списку id.
    Result<Payment> getPaymentQueue​(Period period, java.util.List<java.lang.Integer> paytypes, Page page)
    Список платежей, которые могут быть напечатаны, но ещё не были.
    void updateChargeLog​(int chargeId, int posId)
    Deprecated.
    use updateChargeLog( int chargeId, int posId, String checkData, int checkType )
    void updateChargeLog​(int chargeId, int posId, java.lang.String checkData, Check.Type checkType, java.lang.String posMapping, java.lang.String errorText, java.lang.String pendingId, int contractId)
    Добавляем расход/возврат (чек возврата) к логу.
    void updatePaymentFiscalDataForPendingId​(java.lang.String pendingId, java.lang.String fiscalData)  
    void updatePaymentLastErrorForPendingId​(java.lang.String pendingId, java.lang.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, java.lang.String checkData, Check.Type checkType, java.lang.String posMapping, java.lang.String errorText, java.lang.String pendingId, int contractId, java.lang.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​(java.sql.Connection con)
  • Method Details

    • getPaymentQueue

      public Result<Payment> getPaymentQueue​(Period period, java.util.List<java.lang.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
    • getPaymentNotLogList

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

      public void updatePaymentLog​(int paymentId, int posId, java.lang.String checkData, Check.Type checkType, java.lang.String posMapping, java.lang.String errorText, java.lang.String pendingId, int contractId, java.lang.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​(java.util.Set<java.lang.Integer> cids, int printerId, java.lang.Boolean erroredType, java.lang.String posMapping, Period period, Page page, java.util.Collection<java.lang.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
    • getChargeQueue

      public Result<Payment> getChargeQueue​(Period period, java.util.List<java.lang.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
    • getChargesList

      public java.util.List<Payment> getChargesList​(java.util.List<java.lang.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
    • updateChargeLog

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

      @Deprecated public void updateChargeLog​(int chargeId, int posId) throws ru.bitel.bgbilling.common.BGException
      Deprecated.
      use updateChargeLog( int chargeId, int posId, String checkData, int checkType )
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getChargeLog

      public Result<Payment> getChargeLog​(java.util.Set<java.lang.Integer> cids, int printerId, java.lang.Boolean erroredType, java.lang.String posMapping, Period period, Page page) 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
    • updatePaymentLastErrorForPendingId

      public void updatePaymentLastErrorForPendingId​(java.lang.String pendingId, java.lang.String lastError) throws ru.bitel.bgbilling.common.BGException
      Throws:
      ru.bitel.bgbilling.common.BGException
    • updatePaymentFiscalDataForPendingId

      public void updatePaymentFiscalDataForPendingId​(java.lang.String pendingId, java.lang.String fiscalData) throws ru.bitel.bgbilling.common.BGException
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getNeedPendingIdLog

      public java.util.List<Payment> getNeedPendingIdLog​(int printerId, java.util.Date fromDate, java.util.Date toDate, boolean isError) throws ru.bitel.bgbilling.common.BGException
      возвращает список pending_id платежей из лога готовых к опросу статуса - с наличием pending_id и без наличия ответа уже Берутся записи из cashcheck_payment_log только.
      Parameters:
      isError - если true то выбираются только те в которых есть last_error (т.е. уже печатали и не получилось), если false только те где нет last_error (т.е. первый раз попытка печатать)
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getExistingPosMapping

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