@@ -45,7 +45,7 @@ ReceiptSaveForm::ReceiptSaveForm(QSharedPointer<Voucher> voucher, QWidget *paren
|
||||
ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(!text.isEmpty());
|
||||
});
|
||||
|
||||
m_binder.setData(new Voucher);
|
||||
m_binder.setData(voucher.data());
|
||||
AddressBookService srvAdb;
|
||||
m_binder.registerBinding(ui->contact, ComboData::createComboData(srvAdb.all()));
|
||||
m_binder.registerBinding(ui->name);
|
||||
@@ -66,6 +66,21 @@ ReceiptSaveForm::~ReceiptSaveForm()
|
||||
delete ui;
|
||||
}
|
||||
|
||||
VoucherPtr ReceiptSaveForm::selectedVoucher()
|
||||
{
|
||||
if (ui->tabVouchers->currentIndex().isValid())
|
||||
{
|
||||
return m_voucherModel->itemFromIndex(ui->tabVouchers->currentIndex());
|
||||
}
|
||||
|
||||
return VoucherPtr();
|
||||
}
|
||||
|
||||
bool ReceiptSaveForm::saveAsNew()
|
||||
{
|
||||
return m_saveAsNew;
|
||||
}
|
||||
|
||||
void ReceiptSaveForm::on_lineEdit_textChanged(const QString &text)
|
||||
{
|
||||
QSortFilterProxyModel proxy;
|
||||
|
||||
@@ -18,6 +18,9 @@ public:
|
||||
explicit ReceiptSaveForm(QSharedPointer<Voucher> voucher, QWidget *parent = 0);
|
||||
~ReceiptSaveForm();
|
||||
|
||||
VoucherPtr selectedVoucher();
|
||||
bool saveAsNew();
|
||||
|
||||
private slots:
|
||||
void on_lineEdit_textChanged(const QString &text);
|
||||
|
||||
@@ -28,7 +31,7 @@ private:
|
||||
ObjectBinder m_binder;
|
||||
AutoTableModel<Voucher> *m_voucherModel;
|
||||
bool m_saveAsNew;
|
||||
QSharedPointer<Voucher> m_voucher;
|
||||
VoucherPtr m_voucher;
|
||||
|
||||
// QDialog interface
|
||||
public slots:
|
||||
|
||||
+31
-9
@@ -54,9 +54,13 @@ void ShopForm::loadLast()
|
||||
connectItemSignals();
|
||||
|
||||
ui->total->setText(QString::number(m_voucher->totalPrice().toDouble(), 'f', 2));
|
||||
ui->temporarySaveButton->setEnabled(true);
|
||||
ui->saveButton->setEnabled(true);
|
||||
ui->payButton->setEnabled(true);
|
||||
|
||||
if (!m_voucher->items().isEmpty())
|
||||
{
|
||||
ui->temporarySaveButton->setEnabled(true);
|
||||
ui->saveButton->setEnabled(true);
|
||||
ui->payButton->setEnabled(true);
|
||||
}
|
||||
}
|
||||
|
||||
if (m_commodityModel == NULL)
|
||||
@@ -119,13 +123,25 @@ void ShopForm::on_saveButton_clicked()
|
||||
ReceiptSaveForm *form = new ReceiptSaveForm(m_voucher, this);
|
||||
form->setAttribute(Qt::WA_DeleteOnClose);
|
||||
|
||||
connect(form, &QDialog::accepted, [this]() {
|
||||
connect(form, &QDialog::accepted, [this, form]() {
|
||||
ShopService srv;
|
||||
m_voucher->setStatus(Voucher::NOT_PAID);
|
||||
srv.saveVoucher(m_voucher);
|
||||
m_voucher = srv.createVoucher();
|
||||
|
||||
if (form->saveAsNew())
|
||||
{
|
||||
m_voucher->setStatus(Voucher::NOT_PAID);
|
||||
srv.saveVoucher(m_voucher);
|
||||
createEmptyVoucher();
|
||||
}
|
||||
else
|
||||
{
|
||||
VoucherPtr selVoucher = form->selectedVoucher();
|
||||
srv.moveItems(m_voucher->items(), m_voucher, selVoucher);
|
||||
srv.calculate(selVoucher);
|
||||
srv.updateVoucher(selVoucher);
|
||||
createEmptyVoucher();
|
||||
}
|
||||
|
||||
m_itemsModel->setData(m_voucher->items());
|
||||
ui->total->setText("0");
|
||||
});
|
||||
|
||||
form->show();
|
||||
@@ -306,7 +322,13 @@ void ShopForm::on_payButton_clicked()
|
||||
connect(dialog, &QDialog::accepted, [this](){
|
||||
ShopService srv;
|
||||
srv.pay(m_voucher);
|
||||
srv.processEet(m_voucher);
|
||||
QString eetMsg;
|
||||
bool eetRet = srv.processEet(m_voucher, eetMsg);
|
||||
|
||||
if (!eetRet)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
ReceiptGenerator generator;
|
||||
generator.setVoucher(m_voucher);
|
||||
|
||||
+30
-5
@@ -126,11 +126,11 @@ void ShopService::updateRelatedItem(VoucherItem* item, int countAdded)
|
||||
}
|
||||
}
|
||||
|
||||
void ShopService::processEet(VoucherPtr voucher)
|
||||
bool ShopService::processEet(VoucherPtr voucher, QString message)
|
||||
{
|
||||
if (voucher->eetStatus() == Voucher::EET_NOT_ENTERING)
|
||||
{
|
||||
return;
|
||||
return true;
|
||||
}
|
||||
|
||||
SettingsService srvSettings("SHOP");
|
||||
@@ -157,11 +157,12 @@ void ShopService::processEet(VoucherPtr voucher)
|
||||
connect(sender, &EetSender::sendFinished, [this, voucher, sender, &loop](){
|
||||
Transaction tx;
|
||||
|
||||
voucher->setEetBkp(sender->resut()->bkp());
|
||||
voucher->setEetPkp(sender->resut()->pkp());
|
||||
voucher->setEetFik(sender->resut()->fik());
|
||||
|
||||
if (sender->resut()->status() == EetResult::RESPONSE_OK)
|
||||
{
|
||||
voucher->setEetBkp(sender->resut()->bkp());
|
||||
voucher->setEetPkp(sender->resut()->pkp());
|
||||
voucher->setEetFik(sender->resut()->fik());
|
||||
voucher->setEetSendDateTime(QDateTime::currentDateTime());
|
||||
voucher->setEetStatus(Voucher::EET_SENT);
|
||||
}
|
||||
@@ -179,6 +180,30 @@ void ShopService::processEet(VoucherPtr voucher)
|
||||
|
||||
sender->sendRequest(&request);
|
||||
loop.exec();
|
||||
|
||||
auto addMessage = [&message](EetMessage *msg, const QString &label){
|
||||
if (message.isEmpty())
|
||||
{
|
||||
message = label + "\n";
|
||||
}
|
||||
|
||||
message += QString::number(msg->code()) + ": " + msg->message();
|
||||
};
|
||||
|
||||
foreach (EetMessage *msg, sender->resut()->errors()) {
|
||||
addMessage(msg, "Errors:");
|
||||
}
|
||||
|
||||
foreach (EetMessage *msg, sender->resut()->warnings()) {
|
||||
addMessage(msg, "Warnings:");
|
||||
}
|
||||
|
||||
return voucher->eetStatus() == Voucher::EET_SENT;
|
||||
}
|
||||
|
||||
void ShopService::setEetOnline(bool online)
|
||||
{
|
||||
EetSender::m_online = online;
|
||||
}
|
||||
|
||||
void ShopService::moveItems(QList<VoucherItemPtr> items, VoucherPtr source, VoucherPtr target)
|
||||
|
||||
+2
-1
@@ -21,7 +21,8 @@ public:
|
||||
void pay(VoucherPtr voucher);
|
||||
void moveItems(QList<VoucherItemPtr> items, VoucherPtr source, VoucherPtr target);
|
||||
void updateRelatedItem(VoucherItem* item, int countAdded);
|
||||
void processEet(VoucherPtr voucher);
|
||||
bool processEet(VoucherPtr voucher, QString message);
|
||||
void setEetOnline(bool online);
|
||||
QList<VoucherPtr> savedVouchers();
|
||||
QList<VoucherPtr> tempVouchers();
|
||||
QList<VoucherPtr> paiedVouchers();
|
||||
|
||||
Reference in New Issue
Block a user