Терминальный проект КиберПлат [open source]
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

106 lines
4.1KB

  1. /* @file Онлайн ФР семейства Штрих. */
  2. #pragma once
  3. // Modules
  4. #include "Hardware/Common/TCPDeviceBase.h"
  5. #include "Hardware/Printers/PortPrintersBase.h"
  6. // Project
  7. #include "../Base/ShtrihFRBase.h"
  8. #include "ShtrihFROnlineConstants.h"
  9. //--------------------------------------------------------------------------------
  10. template<class T>
  11. class ShtrihOnlineFRBase : public ShtrihFRBase<T>
  12. {
  13. SET_SERIES("ShtrihOnline")
  14. public:
  15. ShtrihOnlineFRBase();
  16. /// Возвращает список поддерживаемых устройств.
  17. static QStringList getModelList();
  18. protected:
  19. /// Получить статус.
  20. virtual bool getStatus(TStatusCodes & aStatusCodes);
  21. /// Инициализация устройства.
  22. virtual bool updateParameters();
  23. /// Получить номер смены.
  24. virtual int getSessionNumber();
  25. /// Запросить и вывести в лог критичные параметры ФР.
  26. virtual void processDeviceData();
  27. /// Установить значение налога.
  28. virtual bool setTaxValue(SDK::Driver::TVAT aVAT, int aGroup);
  29. /// Снять Z-отчет.
  30. virtual bool execZReport(bool aAuto);
  31. /// Установить TLV-параметр.
  32. virtual bool setTLV(int aField, bool aForSale = false);
  33. /// Проверить название продажи.
  34. virtual void checkSalesName(QString & aName);
  35. /// Печать фискального чека.
  36. virtual bool performFiscal(const QStringList & aReceipt, const SDK::Driver::SPaymentData & aPaymentData, quint32 * aFDNumber = nullptr);
  37. /// Получить фискальные теги по номеру документа.
  38. virtual bool getFiscalFields(quint32 aFDNumber, SDK::Driver::TFiscalPaymentData & aFPData, SDK::Driver::TComplexFiscalPaymentData & aPSData);
  39. /// Продажа.
  40. virtual bool sale(const SDK::Driver::SUnitData & aUnitData, SDK::Driver::EPayOffTypes::Enum aPayOffType);
  41. /// Закрыть чек.
  42. virtual bool closeDocument(double aSum, SDK::Driver::EPayTypes::Enum aPayType);
  43. /// Возможно ли принудительное включение буфера статусов после выполнения печатной операции.
  44. virtual bool canForceStatusBufferEnable();
  45. /// Обработка ответа на предыдущей команды. Автоисправление некоторых ошибок.
  46. virtual bool processAnswer(const QByteArray & aCommand, char aError);
  47. /// Установить флаги по ошибке в ответе.
  48. virtual void setErrorFlags();
  49. /// Открыть смену.
  50. virtual bool openSession();
  51. /// Включить автообновление прошивок.
  52. bool enableFirmwareUpdating();
  53. /// Проверить параметр автообновления прошивок.
  54. bool checkFirmwareUpdatingData(const CShtrihFR::FRParameters::SData & aData, int aValue, const QString & aLogData, bool & aNeedReboot);
  55. /// Включить/выключить режим непечати документов.
  56. virtual bool setNotPrintDocument(bool aEnabled, bool aZReport = false);
  57. /// Софтварная перезагрузка.
  58. bool reboot();
  59. /// Установка кассира.
  60. bool setCashier();
  61. /// Поддерживается команда запроса статуса принтера.
  62. bool mPrinterStatusEnabled;
  63. /// Невозможно включить автообновление прошивки.
  64. bool mNotEnableFirmwareUpdating;
  65. /// Параметр установки определенных фискальных тегов.
  66. char mSetCustomFields;
  67. /// Корректность значения параметра установки определенных фискальных тегов.
  68. bool mSetCustomFieldsCorrect;
  69. };
  70. typedef ShtrihOnlineFRBase<ShtrihTCPFRBase> ShtrihOnlineTCPFR;
  71. typedef ShtrihOnlineFRBase<ShtrihSerialFRBase> ShtrihOnlineSerialFR;
  72. //--------------------------------------------------------------------------------