ТМС:Кассир:Классы:TErrFinder — различия между версиями

Материал из wiki.standart-n.ru
Перейти к: навигация, поиск
(Новая страница: «=TErrFinder= Класс TErrFinder предназначен для поиска ошибок в кассовых документах. ==Находит след…»)
(нет различий)

Версия 12:20, 1 октября 2014

TErrFinder

Класс TErrFinder предназначен для поиска ошибок в кассовых документах.

Находит следующие типы ошибок

  0 - Пропуск номера чека
  1 - Сумма чека не равна вычисляемой сумме
  2 - Сумма чека не равна сумме платежей
  3 - Сумма чека не равна сумме позиций
  4 - Сумма скидки чека не равна сумме скидки позиций
  5 - Сумма чеков не сходится с выручкой
  6 - Сумма платежей не сходится с выручкой
  (отключено) 7 - Сумма наличных продаж/возвратов + сумма внесений/изъятий не сходятся с наличностью
  8 - Сумма продаж не сходится со сменным итогом
 

Методы

  FindErrs		- метод поиска ошибок по серийному номеру ККМ и номеру смены
    sSerialNumber	- серийный номер ККМ
    iSessionNumber	- номер смены
 

TErrItem

Класс TErrItem предназначен для доступа к элементам класса TErrFinder - найденным ошибкам.

Свойства

  Number         - порядковый номер ошибки в коллекции
  Rank           - ранг ошибки: 0 - ошибка по итогам смены, 1 - ошибка в суммах чека, 2 - пропуск номера
  ItemType       - тип ошибки (см.выше 0..8)
  DocID          - doc_id документа с ошибкой
  ChequeNumber   - номер чека с ошибкой
  DocDate        - дата проведения документа с ошибкой
  IntValue1      - первое сравниваемое значение (integer)
  IntValue2      - второе сравниваемое значение (integer)
  CurrValue1     - первое сравниваемое значение (currency)
  CurrValue2     - второе сравниваемое значение (currency)
  Desc           - описание ошибки
  AsString       - подробное описание ошибки (для вывода на экран такими методами, как MsgBox, ShowMessage)
 

Пример:

    uses Classes, Zkassa;
    var 
      ef: TErrFinder;
      i: integer;
    begin       
      ef := TErrFinder.Create;
      try 
        if ef.FindErrs('3761', 274) = 0 then
          ShowMessage('Странно, ошибок нет...')
        else
          for i := 0 to ef.Count - 1 do ShowMessage(ef[i].AsString);
      finally
        ef.Free;
      end;
    end;