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

## Class PaymentQueueManager

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

-     public class PaymentQueueManager
      extends java.lang.Object

  Менеджер лога печати. Также вычисление очереди актуальной для распечатки.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `PaymentQueueManager(java.sql.Connection con)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and 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)` Возвращаем список из лога уже напечатанных чеков возврата.
    `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 Detail

    - #### PaymentQueueManager

          public PaymentQueueManager(java.sql.Connection con)

  - ### Method Detail

    - #### 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`

    - #### 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`