ru.bitel.bgbilling.plugins.cashcheck.common

## Interface CashcheckService

-     public interface CashcheckService

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `bindPrinter(int registratorId, java.lang.String password)` Привязка принтера к пользователю.
    `void` | `buzzer()` Гудок.
    `void` | `cancelCheck()` Аннулирование чека.
    `java.lang.String` | `closeCheckFix(java.math.BigDecimal summa)` Полуотладочная фишка - закрывает чек на зависшем принтере, да, увы бывает такое, надо признать.
    `void` | `continuePrint()` Продолжение печати (например после отсутствия бумаги итд итп)
    `void` | `divReport()` Отчёт по сменам.
    `java.lang.String` | `getCurrentPrinter()` название текущего принтера в человеческом виде, либо надпись типа "не залогинен" итд
    `java.lang.String` | `getRegistratorStatus()` Статус устройства.
    `void` | `helloPrinter(int registratorId, java.lang.String password)` Привет.
    `Result<Payment>` | `logTable(java.util.Set<java.lang.Integer> cids, int printerId, int checkType, java.lang.Boolean erroredType, java.lang.String posMapping, Period period, Page page)` Получение лога уже напечатанных платажей.
    `java.util.List<java.lang.Integer>` | `logTableOnlyId(java.util.Set<java.lang.Integer> cids, int printerId, int checkType, java.lang.Boolean erroredType, java.lang.String posMapping, Period period)` Аналог метода "получение лога уже напечатанных платажей" но возвращает все id (log-id, не payment-id!)
    `void` | `openDay()` Открытие смены.
    `java.util.List<java.lang.String>` | `posMappingList()` Все маппинги когда-либо используемые в логах, для фильтра, например.
    `PrintCheckData` | `printCheck(java.util.List<java.lang.Integer> paymentIds, java.math.BigDecimal clientsumma)` Печать чека.
    `java.lang.String` | `printCheckBatchAuto(java.util.List<java.lang.Integer> paymentIds)` Метод аналогичный printCheck но запускается только из очереди.
    `java.lang.String` | `printCheckErrorAsIs(java.util.List<java.lang.Integer> logIds)` Будет ВЗЯТО СТАРОЕ СОДЕРЖИМОЕ и отправлено на перепечать несколько чеков, напечатанных с ошибками.
    `java.lang.String` | `printCheckErrorDyncode(java.util.List<java.lang.Integer> logIds)` Будут ЗАНОВО ПРОГНАНЫ ЧЕРЕЗ ДИН.КОД и отправлены на перепечать несколько чеков, напечатанных с ошибками Возьмётся только id платежа и выполнится вся процедура печати сначала для каждого платежа/чека.
    `void` | `printText(java.lang.String text)`
    `Result<Payment>` | `queueTable(Period period, Page page, int printerId)` Список очереди нераспечатанных.
    `Result<IdTitle>` | `registratorList()` Возвращает список регистраторов. доп.атрибут registratorId.
    `void` | `repeatCheck()` Повтор последнего документа
    `PrintCheckData` | `returnCheckCharge(int chargeId)` Возврат продажи, привязанный к создаваему расходу, по аналогии с обычным чеком на приход.
    `PrintCheckData` | `returnCheckPayment(int paymentId)` Возврат продажи, привязанный к платежу ранее напечатанному, внутри делается дин.код и остальное.
    `java.lang.String` | `sendPureCommand(java.lang.String hexdump)` Выполнение любой бинарной команды.
    `void` | `XReport()`
    `void` | `ZReport()`

- - ### Method Detail

    - #### bindPrinter

          void bindPrinter(int registratorId,
                           java.lang.String password)
                    throws BGPrinterNotloggedMessageException,
                           ru.bitel.bgbilling.common.BGMessageException,
                           ru.bitel.bgbilling.common.BGException

      Привязка принтера к пользователю. Сохраняет для юзера номер регистратора и пароль. Пробует просто снять статус регистратора с этим паролем. Если всё прошло как нельзя лучше - данные сохраняются, иначе в любом случае все данные о залогинивании, увы, стираются. Принимает регистратор, который мы хотим привязать к себе и его пароль:
      Parameters:
        `registratorId` - ид регистратора, или 0 если надо сделать разлогин.
        `password` - пароль принтера.
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `BGPrinterNotloggedMessageException`
        `ru.bitel.bgbilling.common.BGMessageException`

    - #### buzzer

          void buzzer()
               throws BGPrinterNotloggedMessageException,
                      ru.bitel.bgbilling.common.BGMessageException,
                      ru.bitel.bgbilling.common.BGException

      Гудок.
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `BGPrinterNotloggedMessageException`
        `ru.bitel.bgbilling.common.BGMessageException`

    - #### cancelCheck

          void cancelCheck()
                    throws BGPrinterNotloggedMessageException,
                           ru.bitel.bgbilling.common.BGMessageException,
                           ru.bitel.bgbilling.common.BGException

      Аннулирование чека.
      Throws:
        `BGPrinterNotloggedMessageException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGException`

    - #### openDay

          void openDay()
                throws BGPrinterNotloggedMessageException,
                       ru.bitel.bgbilling.common.BGMessageException,
                       ru.bitel.bgbilling.common.BGException

      Открытие смены.
      Throws:
        `BGPrinterNotloggedMessageException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGException`

    - #### closeCheckFix

          java.lang.String closeCheckFix(java.math.BigDecimal summa)
                                  throws BGPrinterNotloggedMessageException,
                                         ru.bitel.bgbilling.common.BGMessageException,
                                         ru.bitel.bgbilling.common.BGException

      Полуотладочная фишка - закрывает чек на зависшем принтере, да, увы бывает такое, надо признать.
      Parameters:
        `summa` - сумма.
      Returns:
        сдача.
      Throws:
        `BGPrinterNotloggedMessageException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGException`

    - #### continuePrint

          void continuePrint()
                      throws BGPrinterNotloggedMessageException,
                             ru.bitel.bgbilling.common.BGMessageException,
                             ru.bitel.bgbilling.common.BGException

      Продолжение печати (например после отсутствия бумаги итд итп)
      Throws:
        `BGPrinterNotloggedMessageException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGException`

    - #### divReport

          void divReport()
                  throws BGPrinterNotloggedMessageException,
                         ru.bitel.bgbilling.common.BGMessageException,
                         ru.bitel.bgbilling.common.BGException

      Отчёт по сменам. Нефискальный.
      Throws:
        `BGPrinterNotloggedMessageException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGException`

    - #### getCurrentPrinter

          java.lang.String getCurrentPrinter()
                                      throws BGPrinterNotloggedMessageException,
                                             ru.bitel.bgbilling.common.BGMessageException,
                                             ru.bitel.bgbilling.common.BGException

      название текущего принтера в человеческом виде, либо надпись типа "не залогинен" итд
      Throws:
        `BGPrinterNotloggedMessageException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGException`

    - #### getRegistratorStatus

          java.lang.String getRegistratorStatus()
                                         throws BGPrinterNotloggedMessageException,
                                                ru.bitel.bgbilling.common.BGMessageException,
                                                ru.bitel.bgbilling.common.BGException

      Статус устройства.
      Returns:
        строка статуса разбитая по линиям итд.
      Throws:
        `BGPrinterNotloggedMessageException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGException`

    - #### helloPrinter

          void helloPrinter(int registratorId,
                            java.lang.String password)
                     throws BGPrinterNotloggedMessageException,
                            ru.bitel.bgbilling.common.BGMessageException,
                            ru.bitel.bgbilling.common.BGException

      Привет. Проверяется наличие принтера и пробуется туда приветствие напечатать. Никаких действий по запоминанию логина после логина не производится. Регистратор, который мы хотим проверить и его пароль:
      Parameters:
        `registratorId` -
        `password` - пароль (если не задан, то пытаемся взять куда залогинены. это если в клиенте уже вошли на этот момент)
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `BGPrinterNotloggedMessageException`
        `ru.bitel.bgbilling.common.BGMessageException`

    - #### printCheck

          PrintCheckData printCheck(java.util.List<java.lang.Integer> paymentIds,
                                    java.math.BigDecimal clientsumma)
                             throws BGPrinterNotloggedMessageException,
                                    ru.bitel.bgbilling.common.BGMessageException,
                                    ru.bitel.bgbilling.common.BGException

      Печать чека. Вызывается аж из трёх сейчас мест - из очереди, из списка платежей в контракте, и из диалога добавления прихода, при условии, что стоит галочка. Сейчас для всех этих трёх способов разницы тут нет - везде передаётся только ИД платежа, возможно, несколько (несколько можно напечатать из всех трёх мест: при печати из лога, из таблицы платежей и по галке, если стоит распределение платежей). Также сумма от клиента используется. Внутри уже проверяется возможность печати итд.
      Parameters:
        `paymentIds` - несколько ИД платежей.
        `clientsumma` - сумма от клиента.
      Throws:
        `BGPrinterNotloggedMessageException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGException`

    - #### printText

          void printText(java.lang.String text)
                  throws BGPrinterNotloggedMessageException,
                         ru.bitel.bgbilling.common.BGMessageException,
                         ru.bitel.bgbilling.common.BGException

      Throws:
        `BGPrinterNotloggedMessageException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGException`

    - #### queueTable

          Result<Payment> queueTable(Period period,
                                     Page page,
                                     int printerId)
                              throws BGPrinterNotloggedMessageException,
                                     ru.bitel.bgbilling.common.BGMessageException,
                                     ru.bitel.bgbilling.common.BGException

      Список очереди нераспечатанных. Подразумевается выбранный принтер.
      Parameters:
        `period` - период
        `page` - пагинация
      Returns:
        доп.атрибуты registratorBindedName, registratorId.
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `BGPrinterNotloggedMessageException`
        `ru.bitel.bgbilling.common.BGMessageException`

    - #### registratorList

          Result<IdTitle> registratorList()
                                   throws BGPrinterNotloggedMessageException,
                                          ru.bitel.bgbilling.common.BGMessageException,
                                          ru.bitel.bgbilling.common.BGException

      Возвращает список регистраторов. доп.атрибут registratorId. Возвращаются только не-hidden устройства.
      Throws:
        `BGPrinterNotloggedMessageException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGException`

    - #### repeatCheck

          void repeatCheck()
                    throws BGPrinterNotloggedMessageException,
                           ru.bitel.bgbilling.common.BGMessageException,
                           ru.bitel.bgbilling.common.BGException

      Повтор последнего документа
      Throws:
        `BGPrinterNotloggedMessageException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGException`

    - #### returnCheckPayment

          PrintCheckData returnCheckPayment(int paymentId)
                                     throws BGPrinterNotloggedMessageException,
                                            ru.bitel.bgbilling.common.BGMessageException,
                                            ru.bitel.bgbilling.common.BGException

      Возврат продажи, привязанный к платежу ранее напечатанному, внутри делается дин.код и остальное. Паарметры, сумма итд берутся из оригинального платежа.
      Parameters:
        `paymentId` - ид оригинального платежа
      Returns:
        сдача(?)
      Throws:
        `BGPrinterNotloggedMessageException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGException`

    - #### returnCheckCharge

          PrintCheckData returnCheckCharge(int chargeId)
                                    throws BGPrinterNotloggedMessageException,
                                           ru.bitel.bgbilling.common.BGMessageException,
                                           ru.bitel.bgbilling.common.BGException

      Возврат продажи, привязанный к создаваему расходу, по аналогии с обычным чеком на приход.
      Parameters:
        `chargeId` - ид расхода
      Returns:
        сдача(?)
      Throws:
        `BGPrinterNotloggedMessageException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGException`

    - #### sendPureCommand

          java.lang.String sendPureCommand(java.lang.String hexdump)
                                    throws BGPrinterNotloggedMessageException,
                                           ru.bitel.bgbilling.common.BGMessageException,
                                           ru.bitel.bgbilling.common.BGException

      Выполнение любой бинарной команды.
      Parameters:
        `hexdump` - дамп в виде hex.
      Returns:
        ответ от железки
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `BGPrinterNotloggedMessageException`
        `ru.bitel.bgbilling.common.BGMessageException`

    - #### XReport

          void XReport()
                throws BGPrinterNotloggedMessageException,
                       ru.bitel.bgbilling.common.BGMessageException,
                       ru.bitel.bgbilling.common.BGException

      Throws:
        `BGPrinterNotloggedMessageException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGException`

    - #### ZReport

          void ZReport()
                throws BGPrinterNotloggedMessageException,
                       ru.bitel.bgbilling.common.BGMessageException,
                       ru.bitel.bgbilling.common.BGException

      Throws:
        `BGPrinterNotloggedMessageException`
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGException`

    - #### logTable

          Result<Payment> logTable(java.util.Set<java.lang.Integer> cids,
                                   int printerId,
                                   int checkType,
                                   java.lang.Boolean erroredType,
                                   java.lang.String posMapping,
                                   Period period,
                                   Page page)
                            throws BGPrinterNotloggedMessageException,
                                   ru.bitel.bgbilling.common.BGMessageException,
                                   ru.bitel.bgbilling.common.BGException

      Получение лога уже напечатанных платажей. "Залогиненный" принтер не учитывается.
      Parameters:
        `cids` - фильтр по договорам, если null или пустой - то по всем
        `printerId` - фильтр по ККМ, или 0, если по всем
        `checkType` - 0 - чеки платежей, 1 - чеки возврата
        `erroredType` - null - все чеки, true - только с ошибками, false - только без ошибок
        `posMapping` - фильтр по маппингу, null - все, строка - только с указанным маппингом
        `period` - период
        `page` - пагинация
      Returns:
        список платежей в виде Result. Список не null всегда.
      Throws:
        `ru.bitel.bgbilling.common.BGException`
        `BGPrinterNotloggedMessageException`
        `ru.bitel.bgbilling.common.BGMessageException`

    - #### logTableOnlyId

          java.util.List<java.lang.Integer> logTableOnlyId(java.util.Set<java.lang.Integer> cids,
                                                           int printerId,
                                                           int checkType,
                                                           java.lang.Boolean erroredType,
                                                           java.lang.String posMapping,
                                                           Period period)
                                                    throws ru.bitel.bgbilling.common.BGException

      Аналог метода "получение лога уже напечатанных платажей" но возвращает все id (log-id, не payment-id!) соответствующие (не учитывая пагинацию, конечно)
      Throws:
        `ru.bitel.bgbilling.common.BGException`

    - #### printCheckBatchAuto

          java.lang.String printCheckBatchAuto(java.util.List<java.lang.Integer> paymentIds)
                                        throws ru.bitel.bgbilling.common.BGMessageException,
                                               ru.bitel.bgbilling.common.BGException

      Метод аналогичный printCheck но запускается только из очереди. Проверяется что режим auto. По-нормальному auto там не должны оставаться (а попадать в лог с ошибкой), метод на всякий случай для допечати тех которые внесли для фискализации позже, например. В итоге запускается таск в планировщике. manual печатаются методом ручным. delay печатаются своей задачей, она эти платежи в очереди подцепит в штатном режиме.
      Parameters:
        `paymentIds` - список платежей.
      Returns:
        какое-то сообщение.
      Throws:
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGException`

    - #### printCheckErrorDyncode

          java.lang.String printCheckErrorDyncode(java.util.List<java.lang.Integer> logIds)
                                           throws ru.bitel.bgbilling.common.BGMessageException,
                                                  ru.bitel.bgbilling.common.BGException

      Будут ЗАНОВО ПРОГНАНЫ ЧЕРЕЗ ДИН.КОД и отправлены на перепечать несколько чеков, напечатанных с ошибками Возьмётся только id платежа и выполнится вся процедура печати сначала для каждого платежа/чека. Каждый будет напечатан на соответствующем по настройкам фискализаторе. После обработки записи останутся в логе с успехом или ошибкой (новой или той же). Чеки должны быть привязаны к платежу. Печатаются асинхронно в планировщике.
      Parameters:
        `logIds` - список log_id записей лога (не ид платежей!). и лог на платежи обязательно, не на возвраты (это разные таблицы).
      Returns:
        какое-то сообщение.
      Throws:
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGException`

    - #### printCheckErrorAsIs

          java.lang.String printCheckErrorAsIs(java.util.List<java.lang.Integer> logIds)
                                        throws ru.bitel.bgbilling.common.BGMessageException,
                                               ru.bitel.bgbilling.common.BGException

      Будет ВЗЯТО СТАРОЕ СОДЕРЖИМОЕ и отправлено на перепечать несколько чеков, напечатанных с ошибками. ДИН.КОД ВЫПОЛНЯТЬСЯ НЕ БУДЕТ, возьмётся \"как есть\" содержимое чека сформированное ранее, и заново отправится в фискализатор. Каждый будет напечатан на том же самом фискализаторе, который сохранён в логе. После обработки записи останутся в логе с успехом или ошибкой (новой или той же). Чеки могут быть не привязаны к платежу (удалён или не было привязано). Печатаются асинхронно в планировщике.
      Parameters:
        `logIds` - список log_id записей лога (не ид платежей!). и лог на платежи обязательно, не на возвраты (это разные таблицы).
      Returns:
        какое-то сообщение.
      Throws:
        `ru.bitel.bgbilling.common.BGMessageException`
        `ru.bitel.bgbilling.common.BGException`

    - #### posMappingList

          java.util.List<java.lang.String> posMappingList()
                                                   throws ru.bitel.bgbilling.common.BGException

      Все маппинги когда-либо используемые в логах, для фильтра, например.
      Throws:
        `ru.bitel.bgbilling.common.BGException`