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