Browse Source

refs #1 Syncronizing with release commit: 748adad8ab

qt5
parent
commit
29a310aacd
3 changed files with 31 additions and 0 deletions
  1. +3
    -0
      3.0/src/includes/Hardware/FR/FRBaseConstants.h
  2. +25
    -0
      3.0/src/modules/Hardware/FR/src/Base/FRBase.cpp
  3. +3
    -0
      3.0/src/modules/Hardware/FR/src/Base/FRBase.h

+ 3
- 0
3.0/src/includes/Hardware/FR/FRBaseConstants.h View File

@@ -106,6 +106,9 @@ namespace CFR
/// Признак способа расчета по умолчанию для платежей (тег 1214) (не интернет-магазинов) - Полный расчет.
const SDK::Driver::EPayOffSubjectMethodTypes::Enum PayOffSubjectMethodType = SDK::Driver::EPayOffSubjectMethodTypes::Full;
/// Дата и время одноразового закрытия смены перед применением НДС 20% в 2019 году.
const QDateTime ClosingSessionDTVAT20 = QDateTime(QDate(2018, 12, 31), QTime(23, 57));
/// Результаты запроса статуса.
namespace Result
{


+ 25
- 0
3.0/src/modules/Hardware/FR/src/Base/FRBase.cpp View File

@@ -1275,6 +1275,31 @@ bool FRBase<T>::processStatus(TStatusCodes & aStatusCodes)
//--------------------------------------------------------------------------------
template <class T>
void FRBase<T>::postPollingAction(const TStatusCollection & aNewStatusCollection, const TStatusCollection & aOldStatusCollection)
{
QDateTime currentDT = QDateTime::currentDateTime();
int year = currentDT.date().year();
ESessionState::Enum sessionState = getSessionState();
bool needCloseSession2018 = (currentDT >= CFR::ClosingSessionDTVAT20) && (year == 2018);
bool oldTax2019 = mTaxData.data().contains(18) && (year == 2019);
if (!mOperatorPresence && (mRegion == ERegion::RF) && (needCloseSession2018 || oldTax2019) && (sessionState != ESessionState::Closed))
{
execZReport(true);
if (oldTax2019)
{
toLog(LogLevel::Normal, mDeviceName + ": Closing session with VAT 18%, trying to re-initialize");
reInitialize();
}
}
T::postPollingAction(aNewStatusCollection, aOldStatusCollection);
}
//--------------------------------------------------------------------------------
template <class T>
TSum FRBase<T>::getTotalAmount(const SPaymentData & aPaymentData) const
{
return std::accumulate(aPaymentData.unitDataList.begin(), aPaymentData.unitDataList.end(), TSum(0), [] (TSum aSum, const SUnitData & aData) -> TSum { return aSum + aData.sum; });


+ 3
- 0
3.0/src/modules/Hardware/FR/src/Base/FRBase.h View File

@@ -78,6 +78,9 @@ protected:
/// Получить и обработать статус.
virtual bool processStatus(TStatusCodes & aStatusCodes);
/// Фоновая логика при появлении определенных состояний устройства.
virtual void postPollingAction(const TStatusCollection & aNewStatusCollection, const TStatusCollection & aOldStatusCollection);
/// Проверить установки сервера ОФД.
bool checkOFDData(const QByteArray & aAddressData, const QByteArray & aPortData);


Loading…
Cancel
Save