Implemented "EET switch to offline" feature.
This commit is contained in:
@@ -12,6 +12,7 @@
|
|||||||
#include <QList>
|
#include <QList>
|
||||||
#include <QSharedPointer>
|
#include <QSharedPointer>
|
||||||
#include <QSortFilterProxyModel>
|
#include <QSortFilterProxyModel>
|
||||||
|
#include <QMessageBox>
|
||||||
|
|
||||||
#include "shop-odb.hxx"
|
#include "shop-odb.hxx"
|
||||||
|
|
||||||
@@ -327,7 +328,19 @@ void ShopForm::on_payButton_clicked()
|
|||||||
|
|
||||||
if (!eetRet)
|
if (!eetRet)
|
||||||
{
|
{
|
||||||
|
QString errMsg = tr("EET communication error.\n");
|
||||||
|
|
||||||
|
if (!eetMsg.isEmpty())
|
||||||
|
{
|
||||||
|
errMsg += tr("Message from portal: ") + eetMsg + "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
errMsg += tr("Switch to offline?");
|
||||||
|
|
||||||
|
if (srv.isEetOnline() && QMessageBox::question(this, tr("EET error"), errMsg) == QMessageBox::Yes)
|
||||||
|
{
|
||||||
|
srv.setEetOnline(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ReceiptGenerator generator;
|
ReceiptGenerator generator;
|
||||||
|
|||||||
+14
-3
@@ -126,7 +126,7 @@ void ShopService::updateRelatedItem(VoucherItem* item, int countAdded)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ShopService::processEet(VoucherPtr voucher, QString message)
|
bool ShopService::processEet(VoucherPtr voucher, QString &message)
|
||||||
{
|
{
|
||||||
if (voucher->eetStatus() == Voucher::EET_NOT_ENTERING)
|
if (voucher->eetStatus() == Voucher::EET_NOT_ENTERING)
|
||||||
{
|
{
|
||||||
@@ -153,8 +153,9 @@ bool ShopService::processEet(VoucherPtr voucher, QString message)
|
|||||||
sender->setPlayground(settings->eetPlayground());
|
sender->setPlayground(settings->eetPlayground());
|
||||||
|
|
||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
|
bool replyFinished = false;
|
||||||
|
|
||||||
connect(sender, &EetSender::sendFinished, [this, voucher, sender, &loop](){
|
connect(sender, &EetSender::sendFinished, [this, voucher, sender, &loop, &replyFinished](){
|
||||||
Transaction tx;
|
Transaction tx;
|
||||||
|
|
||||||
voucher->setEetBkp(sender->resut()->bkp());
|
voucher->setEetBkp(sender->resut()->bkp());
|
||||||
@@ -176,10 +177,15 @@ bool ShopService::processEet(VoucherPtr voucher, QString message)
|
|||||||
sender->deleteLater();
|
sender->deleteLater();
|
||||||
|
|
||||||
loop.quit();
|
loop.quit();
|
||||||
|
replyFinished = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
sender->sendRequest(&request);
|
sender->sendRequest(&request);
|
||||||
loop.exec();
|
|
||||||
|
if (!replyFinished)
|
||||||
|
{
|
||||||
|
loop.exec();
|
||||||
|
}
|
||||||
|
|
||||||
auto addMessage = [&message](EetMessage *msg, const QString &label){
|
auto addMessage = [&message](EetMessage *msg, const QString &label){
|
||||||
if (message.isEmpty())
|
if (message.isEmpty())
|
||||||
@@ -206,6 +212,11 @@ void ShopService::setEetOnline(bool online)
|
|||||||
EetSender::m_online = online;
|
EetSender::m_online = online;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ShopService::isEetOnline()
|
||||||
|
{
|
||||||
|
return EetSender::m_online;
|
||||||
|
}
|
||||||
|
|
||||||
void ShopService::moveItems(QList<VoucherItemPtr> items, VoucherPtr source, VoucherPtr target)
|
void ShopService::moveItems(QList<VoucherItemPtr> items, VoucherPtr source, VoucherPtr target)
|
||||||
{
|
{
|
||||||
Transaction tx;
|
Transaction tx;
|
||||||
|
|||||||
+2
-1
@@ -21,8 +21,9 @@ public:
|
|||||||
void pay(VoucherPtr voucher);
|
void pay(VoucherPtr voucher);
|
||||||
void moveItems(QList<VoucherItemPtr> items, VoucherPtr source, VoucherPtr target);
|
void moveItems(QList<VoucherItemPtr> items, VoucherPtr source, VoucherPtr target);
|
||||||
void updateRelatedItem(VoucherItem* item, int countAdded);
|
void updateRelatedItem(VoucherItem* item, int countAdded);
|
||||||
bool processEet(VoucherPtr voucher, QString message);
|
bool processEet(VoucherPtr voucher, QString &message);
|
||||||
void setEetOnline(bool online);
|
void setEetOnline(bool online);
|
||||||
|
bool isEetOnline();
|
||||||
QList<VoucherPtr> savedVouchers();
|
QList<VoucherPtr> savedVouchers();
|
||||||
QList<VoucherPtr> tempVouchers();
|
QList<VoucherPtr> tempVouchers();
|
||||||
QList<VoucherPtr> paiedVouchers();
|
QList<VoucherPtr> paiedVouchers();
|
||||||
|
|||||||
Reference in New Issue
Block a user