save csv with correct umlauts even on windows

This commit is contained in:
Martin Brodbeck 2018-08-16 12:40:19 +02:00
parent cfa59a38ac
commit 00f870b0c3
4 changed files with 23 additions and 14 deletions

View file

@ -360,7 +360,8 @@ void MainWindow::onPrintSaleReceiptButtonClicked([[maybe_unused]] bool checked)
auto indexes = selModel->selectedRows();
auto& sale = marketplace_->getSales().at(indexes[0].row());
auto printerDevice = convertToPosPrinterDevice(posPrinterDevice.toStdString(), posPrinterEndpoint.toStdString());
auto printerDevice =
convertToPosPrinterDevice(posPrinterDevice.toStdString(), posPrinterEndpoint.toStdString());
std::unique_ptr<PosPrinter> printer;

View file

@ -5,6 +5,8 @@
#include <posprinter.h>
#include <utils.h>
#include <filesystem>
#include <QFileDialog>
#include <QFontDatabase>
#include <QPainter>
@ -12,6 +14,8 @@
#include <QtPrintSupport/QPrintDialog>
#include <QtPrintSupport/QPrinter>
namespace fs = std::filesystem;
ReportDialog::ReportDialog(QWidget* parent, Qt::WindowFlags f) : QDialog(parent, f)
{
ui_.setupUi(this);
@ -37,14 +41,15 @@ void ReportDialog::onExportCsvButtonClicked()
int feeInPercent = settings.value("global/feeInPercent").toInt();
int maxFeeInEuro = settings.value("global/maxFeeInEuro").toInt();
QFileDialog fileDialog(this);
fileDialog.setFileMode(QFileDialog::AnyFile);
fileDialog.setNameFilter("CSV Files (*.csv)");
fileDialog.setAcceptMode(QFileDialog::AcceptSave);
if (fileDialog.exec()) {
market_->exportReportToCSV(fileDialog.selectedFiles().at(0).toStdString(), feeInPercent,
maxFeeInEuro);
}
auto filename = QFileDialog::getSaveFileName(this, "Verkäufer exportieren", QString(),
"CSV Dateien (*.csv)");
if (filename.isEmpty())
return;
fs::path filePath(filename.toStdWString());
market_->exportReportToCSV(filePath, feeInPercent, maxFeeInEuro);
}
void ReportDialog::onPrintReportButtonClicked()
@ -159,8 +164,7 @@ void ReportDialog::onPrintReportButtonClicked()
content += QString("Verkaufte Artikel: %1 (%L2 %)\n\n")
.arg(numArticlesSold, 6)
.arg(percentArticlesSold, 0, 'f', 2);
content +=
QString("Gesamtumsatz: %1\n").arg(market_->getOverallSumAsString().c_str(), 10);
content += QString("Gesamtumsatz: %1\n").arg(market_->getOverallSumAsString().c_str(), 10);
content +=
QString("Ausgezahlt: %1\n")
.arg(market_->getOverallPaymentAsString(feeInPercent, maxFeeInEuro * 100).c_str(), 10);