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
+102 -1
View File
@@ -148,9 +148,16 @@ QByteArray ReceiptGenerator::generate()
QString price = QString::number(item->price().toDouble(), 'f', 2);
int numSpaces = 0;
name = count + "x " + name;
if (gs->vatPayer())
{
out.append(prepareString("DPH " + QString::number(item->vatRate().toDouble(), 'f', 0)) + "%");
out.append("\x0a");
}
if ((name.length() + price.length()) < shopSettings->lettersPerLine())
{
name = count + "x " + name;
numSpaces = shopSettings->lettersPerLine() - (name.length() + price.length());
out.append(prepareString(name));
}
@@ -179,6 +186,100 @@ QByteArray ReceiptGenerator::generate()
out.append((char)0);
out.append("\x0a");
if (gs->vatPayer())
{
QString zaklad = "Zaklad DPH ";
QString dph = "DPH ";
QString output;
QDecDouble zero(0);
if (m_voucher->vatAmountHigh() > zero)
{
output = zaklad + QString::number(m_voucher->vatRateHigh().toDouble()) + "%";
out.append(prepareString(output));
QString amount = QString::number(m_voucher->priceVatHigh().toDouble(), 'f', 2);
int numSpaces = shopSettings->lettersPerLine() - (output.length() + amount.length());
for (int i = 0; i < numSpaces; i++)
{
out.append(" ");
}
out.append(prepareString(amount));
out.append("\x0a");
output = dph + QString::number(m_voucher->vatRateHigh().toDouble()) + "%";
out.append(prepareString(output));
amount = QString::number(m_voucher->vatAmountHigh().toDouble(), 'f', 2);
numSpaces = shopSettings->lettersPerLine() - (output.length() + amount.length());
for (int i = 0; i < numSpaces; i++)
{
out.append(" ");
}
out.append(prepareString(amount));
out.append("\x0a");
}
if (m_voucher->vatAmountFirstLower() > zero)
{
output = zaklad + QString::number(m_voucher->vatRateFirstLower().toDouble()) + "%";
out.append(prepareString(output));
QString amount = QString::number(m_voucher->priceVatFirstLower().toDouble(), 'f', 2);
int numSpaces = shopSettings->lettersPerLine() - (output.length() + amount.length());
for (int i = 0; i < numSpaces; i++)
{
out.append(" ");
}
out.append(prepareString(amount));
out.append("\x0a");
output = dph + QString::number(m_voucher->vatRateFirstLower().toDouble()) + "%";
out.append(prepareString(output));
amount = QString::number(m_voucher->vatAmountFirstLower().toDouble(), 'f', 2);
numSpaces = shopSettings->lettersPerLine() - (output.length() + amount.length());
for (int i = 0; i < numSpaces; i++)
{
out.append(" ");
}
out.append(prepareString(amount));
out.append("\x0a");
}
if (m_voucher->VatAmountSecondLower() > zero)
{
output = zaklad + QString::number(m_voucher->vatRateSecondLower().toDouble()) + "%";
out.append(prepareString(output));
QString amount = QString::number(m_voucher->priceVatSecondLower().toDouble(), 'f', 2);
int numSpaces = shopSettings->lettersPerLine() - (output.length() + amount.length());
for (int i = 0; i < numSpaces; i++)
{
out.append(" ");
}
out.append(prepareString(amount));
out.append("\x0a");
output = dph + QString::number(m_voucher->vatRateSecondLower().toDouble()) + "%";
out.append(prepareString(output));
amount = QString::number(m_voucher->VatAmountSecondLower().toDouble(), 'f', 2);
numSpaces = shopSettings->lettersPerLine() - (output.length() + amount.length());
for (int i = 0; i < numSpaces; i++)
{
out.append(" ");
}
out.append(prepareString(amount));
out.append("\x0a");
}
out.append("\x1b\x21");
out.append(printMode);
for (int i = 0; i < shopSettings->lettersPerLine(); i++ )
{
out.append("-");
}
out.append("\x1b\x21");
out.append((char)0);
out.append("\x0a");
}
out.append("\x1b\x21");
out.append(printMode);
out.append("Celkem:");