Added support for Value Added Tax.

This commit is contained in:
2017-10-13 12:58:26 +02:00
parent 8e7137f3bb
commit b8ed333c3a
14 changed files with 665 additions and 34 deletions
+43 -6
View File
@@ -89,8 +89,18 @@ void ShopForm::loadLast()
ui->actualReceipt->setColumnHidden(0, true);
ui->actualReceipt->setColumnHidden(3, true);
ui->actualReceipt->setColumnHidden(4, true);
ui->actualReceipt->setColumnHidden(5, true);
SettingsService srv("CORE");
GlobalSettingsPtr settings = srv.loadSettings<GlobalSettings>();
if (!settings->vatPayer())
{
ui->actualReceipt->setColumnHidden(5, true);
ui->widgetVAT->setVisible(false);
}
ui->actualReceipt->setColumnHidden(6, true);
ui->actualReceipt->setColumnWidth(2, 50);
ui->actualReceipt->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Stretch);
}
@@ -103,7 +113,8 @@ void ShopForm::loadLast()
m_itemsModel->setData(m_voucher->items());
connectItemSignals();
ui->total->setText(QString::number(m_voucher->totalPrice().toDouble(), 'f', 2));
//ui->total->setText(QString::number(m_voucher->totalPrice().toDouble(), 'f', 2));
setTotalText();
if (!m_voucher->items().isEmpty())
{
@@ -319,7 +330,9 @@ void ShopForm::onCountChanged(int oldCount/* = 0*/)
ShopService srv;
srv.calculate(m_voucher);
ui->total->setText(QString::number(m_voucher->totalPrice().toDouble(), 'f', 2));
this->m_itemsModel->setData(m_voucher->items());
setTotalText();
ui->temporarySaveButton->setEnabled(!m_voucher->items().isEmpty());
ui->saveButton->setEnabled(!m_voucher->items().isEmpty());
ui->payButton->setEnabled(!m_voucher->items().isEmpty());
@@ -388,7 +401,8 @@ void ShopForm::changeReceipt()
srv.updateVoucher(m_voucher);
m_itemsModel->setData(m_voucher->items());
ui->total->setText(m_voucher->totalPrice().toString());
//ui->total->setText(m_voucher->totalPrice().toString());
setTotalText();
ui->temporarySaveButton->setEnabled(true);
ui->saveButton->setEnabled(true);
@@ -408,7 +422,8 @@ void ShopForm::createEmptyVoucher()
{
ShopService srv;
m_voucher = srv.createVoucher();
ui->total->setText("0");
//ui->total->setText("0");
setTotalText();
ui->temporarySaveButton->setEnabled(false);
ui->saveButton->setEnabled(false);
ui->payButton->setEnabled(false);
@@ -428,7 +443,7 @@ void ShopForm::addItem(QSharedPointer<IShopItem> item, int count)
auto addFunc = [this](QSharedPointer<IShopItem> shopItem, int itemCount){
ShopService srv;
srv.addShopItem(m_voucher, shopItem, itemCount);
this->m_itemsModel->addRow(m_voucher->items()[m_voucher->items().count() - 1]);
//this->m_itemsModel->addRow(m_voucher->items()[m_voucher->items().count() - 1]);
connect(m_voucher->items()[m_voucher->items().count() - 1].data(), SIGNAL(countChanged(int)), this, SLOT(onCountChanged(int)));
onCountChanged();
};
@@ -452,6 +467,28 @@ void ShopForm::addItem(QSharedPointer<IShopItem> item, int count)
ui->commoditySearch->setText("");
}
void ShopForm::setTotalText()
{
ui->total->setText(QString::number(m_voucher->totalPrice().toDouble(), 'f', 2));
ui->vatRateHigh->setText(QString::number(m_voucher->vatRateHigh().toDouble(), 'f', 0) + "%");
ui->vatRateFirstLow->setText(QString::number(m_voucher->vatRateFirstLower().toDouble(), 'f', 0) + "%");
ui->vatRateSecondLow->setText(QString::number(m_voucher->vatRateSecondLower().toDouble(), 'f', 0) + "%");
ui->priceVatHigh->setText(QString::number(m_voucher->priceVatHigh().toDouble(), 'f', 2));
ui->priceVatFirstLower->setText(QString::number(m_voucher->priceVatFirstLower().toDouble(), 'f', 2));
ui->priceVatSecondLower->setText(QString::number(m_voucher->priceVatSecondLower().toDouble(), 'f', 2));
ui->vatHigh->setText(QString::number((m_voucher->totalPriceVatHigh() - m_voucher->priceVatHigh()).toDouble(), 'f', 2));
ui->vatFirstLower->setText(QString::number((m_voucher->totalPriceVatFirstLower() - m_voucher->priceVatFirstLower()).toDouble(), 'f', 2));
ui->vatSecondLower->setText(QString::number((m_voucher->totalPriceVatSecondLower() - m_voucher->priceVatSecondLower()).toDouble(), 'f', 2));
ui->totalPriceVatHigh->setText(QString::number(m_voucher->totalPriceVatHigh().toDouble(), 'f', 2));
ui->totalPriceFirstLower->setText(QString::number(m_voucher->totalPriceVatFirstLower().toDouble(), 'f', 2));
ui->totalPriceSecondLower->setText(QString::number(m_voucher->totalPriceVatSecondLower().toDouble(), 'f', 2));
ui->priceNoVat->setText(QString::number(m_voucher->priceNoVat().toDouble(), 'f', 2));
}
void ShopForm::on_receiptCombo_currentIndexChanged(int)
{
if (!m_voucher.isNull() && m_voucher->items().isEmpty())