settings and bugfixes
This commit is contained in:
parent
e58d6068e0
commit
d17695a7fa
|
@ -82,6 +82,7 @@ set(TRANSLATION_SOURCES
|
|||
main.cpp
|
||||
mainwindow.cpp mainwindow.h scenes/mainwindow.ui
|
||||
outputdialog.h outputdialog.cpp scenes/outputdialog.ui
|
||||
settingsdialog.h settingsdialog.cpp scenes/settingsdialog.ui
|
||||
)
|
||||
|
||||
if (BUILD_EMAIL_TO_TEXT_MODE)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
from checks_parser_base_ubuntu
|
||||
FROM checks_parser_base_ubuntu
|
||||
|
||||
#for envsubst
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt install -y gettext
|
||||
|
|
|
@ -3,7 +3,7 @@ services:
|
|||
image: checks_parser_base_ubuntu:latest
|
||||
build:
|
||||
context: .
|
||||
dockerfile: deploy/base-docker/ubuntu.Dockerfile
|
||||
dockerfile: deploy/base-docker/ubuntu/Dockerfile
|
||||
appimage:
|
||||
image: checks_parser_appimage:latest
|
||||
build:
|
||||
|
|
14
main.cpp
14
main.cpp
|
@ -20,6 +20,7 @@
|
|||
#include <QStackedLayout>
|
||||
#include <QTextStream>
|
||||
#include <QTranslator>
|
||||
#include <settingsdialog.h>
|
||||
#ifdef BUILD_EMAIL_TO_TEXT_MODE
|
||||
# include <emailtextscene.h>
|
||||
#endif
|
||||
|
@ -69,8 +70,6 @@ int main(int argc, char *argv[]) {
|
|||
|
||||
translator.load(":/translation/" + lang + ".qm");
|
||||
app.installTranslator(&translator);
|
||||
|
||||
QUiLoader loader;
|
||||
#endif
|
||||
|
||||
QWidget *window = new QWidget();
|
||||
|
@ -81,7 +80,16 @@ int main(int argc, char *argv[]) {
|
|||
|
||||
sceneLayout->addWidget(mainwindowscene);
|
||||
|
||||
for (auto btn : ((MainWindow *)mainwindowscene)->findChildren<QPushButton *>()) {
|
||||
//Settings button setup
|
||||
QPushButton *settingsButton = ((MainWindow *)mainwindowscene)->findChild<QPushButton *>("settings_button");
|
||||
QObject::connect(settingsButton, &QPushButton::clicked, [&]() {
|
||||
SettingsDialog d;
|
||||
d.show();
|
||||
d.exec();
|
||||
});
|
||||
|
||||
for (auto &btn : ((MainWindow *)mainwindowscene)->findChildren<QPushButton *>()) {
|
||||
if (btn->objectName() == "settings_button") continue;
|
||||
btn->hide();
|
||||
}
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
<file>scenes/ocrscene.ui</file>
|
||||
<file>scenes/mainwindow.ui</file>
|
||||
<file>scenes/ofdscene.ui</file>
|
||||
<file>scenes/settingsdialog.ui</file>
|
||||
<file>scenes/solvecaptchadialog.ui</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
|
|
@ -31,32 +31,6 @@
|
|||
<property name="verticalSpacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="ocr_button">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Optical Character Recognition</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../build/Desktop-Debug/media.qrc">
|
||||
<normaloff>:/icons/assets/icons/OCR.svg</normaloff>:/icons/assets/icons/OCR.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>128</width>
|
||||
<height>128</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QPushButton" name="text_from_email_button">
|
||||
<property name="sizePolicy">
|
||||
|
@ -101,7 +75,33 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="ocr_button">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Optical Character Recognition</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../build/Desktop-Debug/media.qrc">
|
||||
<normaloff>:/icons/assets/icons/OCR.svg</normaloff>:/icons/assets/icons/OCR.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>128</width>
|
||||
<height>128</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QPushButton" name="ofd_button">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
||||
|
@ -124,6 +124,19 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QPushButton" name="settings_button">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Settings</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
|
|
|
@ -0,0 +1,290 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>settingsdialog</class>
|
||||
<widget class="QDialog" name="settingsdialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>693</width>
|
||||
<height>786</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="0">
|
||||
<widget class="QScrollArea" name="scrollArea">
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="scrollAreaWidgetContents">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>673</width>
|
||||
<height>724</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="15" column="1">
|
||||
<widget class="QCheckBox" name="printTotalCheckBox">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="0">
|
||||
<widget class="QLabel" name="label_15">
|
||||
<property name="text">
|
||||
<string>Goods net weight position</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QSpinBox" name="goodsNamePositionSpin"/>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="text">
|
||||
<string>Stores modules url</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="0">
|
||||
<widget class="QLabel" name="label_13">
|
||||
<property name="text">
|
||||
<string>Goods quantity position</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="OFDModulesDirEdit"/>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>OFD modules url</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="14" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Print header</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QSpinBox" name="goodsPricePerUnitPositionSpin"/>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLineEdit" name="storesModulesURLEdit"/>
|
||||
</item>
|
||||
<item row="9" column="0">
|
||||
<widget class="QLabel" name="label_14">
|
||||
<property name="text">
|
||||
<string>Goods quantity alias</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
<string>OFD modules directory</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QLineEdit" name="goodsNameAliasEdit"/>
|
||||
</item>
|
||||
<item row="15" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Print total</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="13" column="1">
|
||||
<widget class="QLineEdit" name="goodsTotalAliasEdit"/>
|
||||
</item>
|
||||
<item row="8" column="1">
|
||||
<widget class="QSpinBox" name="goodsQuantityPositionSpin"/>
|
||||
</item>
|
||||
<item row="11" column="0">
|
||||
<widget class="QLabel" name="label_16">
|
||||
<property name="text">
|
||||
<string>Goods net weight alias</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="1">
|
||||
<widget class="QSpinBox" name="goodsNetWeightPositionSpin"/>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="OFDModulesURLEdit"/>
|
||||
</item>
|
||||
<item row="13" column="0">
|
||||
<widget class="QLabel" name="label_18">
|
||||
<property name="text">
|
||||
<string>Goods total alias</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="storesModulesDirEdit"/>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<widget class="QLineEdit" name="goodsPricePerUnitAliasEdit"/>
|
||||
</item>
|
||||
<item row="9" column="1">
|
||||
<widget class="QLineEdit" name="goodsQuantityAliasEdit"/>
|
||||
</item>
|
||||
<item row="11" column="1">
|
||||
<widget class="QLineEdit" name="goodsNetWeightAliasEdit"/>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_9">
|
||||
<property name="text">
|
||||
<string>Goods name position</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="14" column="1">
|
||||
<widget class="QCheckBox" name="printHeaderCheckBox">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="label_10">
|
||||
<property name="text">
|
||||
<string>Goods name alias</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="label_11">
|
||||
<property name="text">
|
||||
<string>Goods price per unit position</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_7">
|
||||
<property name="text">
|
||||
<string>Stores modules directory</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="0">
|
||||
<widget class="QLabel" name="label_17">
|
||||
<property name="text">
|
||||
<string>Goods total position</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QPushButton" name="OFDModulesDirChooseButton">
|
||||
<property name="text">
|
||||
<string>Choose</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="1">
|
||||
<widget class="QSpinBox" name="goodsTotalPositionSpin"/>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<widget class="QLabel" name="label_12">
|
||||
<property name="text">
|
||||
<string>Goods price per unit alias</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QPushButton" name="storedModulesDirChooseButton">
|
||||
<property name="text">
|
||||
<string>Choose</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="16" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>Language</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="16" column="1">
|
||||
<widget class="QComboBox" name="languageComboBox">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>en_US</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>ru_RU</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Orientation::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Save</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>settingsdialog</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>248</x>
|
||||
<y>254</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>settingsdialog</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>316</x>
|
||||
<y>260</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>286</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
|
@ -1,7 +1,10 @@
|
|||
#include "settingsdialog.h"
|
||||
#include "settings/settings.h"
|
||||
#include "ui_settingsdialog.h"
|
||||
#include "utils/utils.h"
|
||||
|
||||
#include <settings/settings.h>
|
||||
#include <utils/utils.h>
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include <QMessageBox>
|
||||
|
||||
|
@ -34,10 +37,14 @@ SettingsDialog::SettingsDialog(QWidget *parent)
|
|||
|
||||
ui->printHeaderCheckBox->setChecked(this->settings.get_all_settings()["print_header"]);
|
||||
ui->printTotalCheckBox->setChecked(this->settings.get_all_settings()["print_total"]);
|
||||
|
||||
std::cout << settings.get_all_settings() << std::endl;
|
||||
|
||||
int currentLanguageIndex = 0;
|
||||
if (!this->settings.get_all_settings().contains("language")) {
|
||||
bool languageSettingPresent = false;
|
||||
|
||||
//TODO: check that "language" exists before getting its value
|
||||
languageSettingPresent = settings.get_all_settings().find("language") != settings.get_all_settings().end();
|
||||
if (languageSettingPresent) {
|
||||
currentLanguageIndex = ui->languageComboBox->findText(QLocale::system().name());
|
||||
if (currentLanguageIndex < 0) {
|
||||
currentLanguageIndex = ui->languageComboBox->findText("en_US");
|
||||
|
@ -137,7 +144,11 @@ void SettingsDialog::on_buttonBox_accepted() { this->settings.flush(); }
|
|||
void SettingsDialog::on_buttonBox_rejected() { this->close(); }
|
||||
|
||||
void SettingsDialog::on_languageComboBox_currentTextChanged(const QString &changed) {
|
||||
if (this->settings.get_all_settings().contains("language")) {
|
||||
bool languageSettingPresent = false;
|
||||
|
||||
languageSettingPresent = settings.get_all_settings().find("language") != settings.get_all_settings().end();
|
||||
|
||||
if (languageSettingPresent) {
|
||||
if (changed == QString::fromStdString(this->settings.get_all_settings()["language"])) return;
|
||||
} else {
|
||||
if (changed == QLocale::system().name()) return;
|
||||
|
@ -151,4 +162,3 @@ void SettingsDialog::on_languageComboBox_currentTextChanged(const QString &chang
|
|||
infoDialog.setWindowTitle(tr("Restart required"));
|
||||
infoDialog.exec();
|
||||
}
|
||||
|
||||
|
|
|
@ -56,6 +56,8 @@ private slots:
|
|||
|
||||
private:
|
||||
Ui::settingsdialog *ui;
|
||||
public:
|
||||
bool settingsExist();
|
||||
};
|
||||
|
||||
#endif // SETTINGSDIALOG_H
|
||||
|
|
|
@ -1,306 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>settingsdialog</class>
|
||||
<widget class="QDialog" name="settingsdialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>599</width>
|
||||
<height>799</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>310</x>
|
||||
<y>740</y>
|
||||
<width>251</width>
|
||||
<height>32</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Save</set>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QScrollArea" name="scrollArea">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>0</y>
|
||||
<width>541</width>
|
||||
<height>741</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="scrollAreaWidgetContents">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>539</width>
|
||||
<height>739</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QWidget" name="gridLayoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>531</width>
|
||||
<height>731</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="15" column="1">
|
||||
<widget class="QCheckBox" name="printTotalCheckBox">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="0">
|
||||
<widget class="QLabel" name="label_15">
|
||||
<property name="text">
|
||||
<string>Goods net weight position</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QSpinBox" name="goodsNamePositionSpin"/>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="text">
|
||||
<string>Stores modules url</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="0">
|
||||
<widget class="QLabel" name="label_13">
|
||||
<property name="text">
|
||||
<string>Goods quantity position</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="OFDModulesDirEdit"/>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>OFD modules url</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="14" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Print header</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QSpinBox" name="goodsPricePerUnitPositionSpin"/>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLineEdit" name="storesModulesURLEdit"/>
|
||||
</item>
|
||||
<item row="9" column="0">
|
||||
<widget class="QLabel" name="label_14">
|
||||
<property name="text">
|
||||
<string>Goods quantity alias</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
<string>OFD modules directory</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QLineEdit" name="goodsNameAliasEdit"/>
|
||||
</item>
|
||||
<item row="15" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Print total</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="13" column="1">
|
||||
<widget class="QLineEdit" name="goodsTotalAliasEdit"/>
|
||||
</item>
|
||||
<item row="8" column="1">
|
||||
<widget class="QSpinBox" name="goodsQuantityPositionSpin"/>
|
||||
</item>
|
||||
<item row="11" column="0">
|
||||
<widget class="QLabel" name="label_16">
|
||||
<property name="text">
|
||||
<string>Goods net weight alias</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="1">
|
||||
<widget class="QSpinBox" name="goodsNetWeightPositionSpin"/>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="OFDModulesURLEdit"/>
|
||||
</item>
|
||||
<item row="13" column="0">
|
||||
<widget class="QLabel" name="label_18">
|
||||
<property name="text">
|
||||
<string>Goods total alias</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="storesModulesDirEdit"/>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<widget class="QLineEdit" name="goodsPricePerUnitAliasEdit"/>
|
||||
</item>
|
||||
<item row="9" column="1">
|
||||
<widget class="QLineEdit" name="goodsQuantityAliasEdit"/>
|
||||
</item>
|
||||
<item row="11" column="1">
|
||||
<widget class="QLineEdit" name="goodsNetWeightAliasEdit"/>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_9">
|
||||
<property name="text">
|
||||
<string>Goods name position</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="14" column="1">
|
||||
<widget class="QCheckBox" name="printHeaderCheckBox">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="label_10">
|
||||
<property name="text">
|
||||
<string>Goods name alias</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="label_11">
|
||||
<property name="text">
|
||||
<string>Goods price per unit position</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_7">
|
||||
<property name="text">
|
||||
<string>Stores modules directory</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="0">
|
||||
<widget class="QLabel" name="label_17">
|
||||
<property name="text">
|
||||
<string>Goods total position</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QPushButton" name="OFDModulesDirChooseButton">
|
||||
<property name="text">
|
||||
<string>Choose</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="1">
|
||||
<widget class="QSpinBox" name="goodsTotalPositionSpin"/>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<widget class="QLabel" name="label_12">
|
||||
<property name="text">
|
||||
<string>Goods price per unit alias</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QPushButton" name="storedModulesDirChooseButton">
|
||||
<property name="text">
|
||||
<string>Choose</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="16" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="16" column="1">
|
||||
<widget class="QComboBox" name="languageComboBox">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>en_US</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>ru_RU</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>settingsdialog</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>248</x>
|
||||
<y>254</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>settingsdialog</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>316</x>
|
||||
<y>260</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>286</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
|
@ -211,12 +211,17 @@
|
|||
<translation>Form</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="43"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="87"/>
|
||||
<source>Optical Character Recognition</source>
|
||||
<translation>Optical Character Recognition</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="69"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="136"/>
|
||||
<source>Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="43"/>
|
||||
<source>Text from E-Mail</source>
|
||||
<translation>Text from E-Mail</translation>
|
||||
</message>
|
||||
|
@ -557,12 +562,14 @@
|
|||
<context>
|
||||
<name>SettingsDialog</name>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="160"/>
|
||||
<source>You need to restart program to apply language changes</source>
|
||||
<translation type="vanished">You need to restart program to apply language changes</translation>
|
||||
<translation>You need to restart program to apply language changes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="162"/>
|
||||
<source>Restart required</source>
|
||||
<translation type="vanished">Restart required</translation>
|
||||
<translation>Restart required</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -586,88 +593,114 @@
|
|||
<context>
|
||||
<name>settingsdialog</name>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation type="vanished">Dialog</translation>
|
||||
<translation>Dialog</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="153"/>
|
||||
<source>Goods name position</source>
|
||||
<translation type="vanished">Goods name position</translation>
|
||||
<translation>Goods name position</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="205"/>
|
||||
<source>Goods price per unit alias</source>
|
||||
<translation type="vanished">Goods price per unit alias</translation>
|
||||
<translation>Goods price per unit alias</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="219"/>
|
||||
<source>Language</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>TextLabel</source>
|
||||
<translation type="vanished">Language</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="227"/>
|
||||
<source>en_US</source>
|
||||
<translation type="vanished">en_US</translation>
|
||||
<translation>en_US</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="232"/>
|
||||
<source>ru_RU</source>
|
||||
<translation type="vanished">ru_RU</translation>
|
||||
<translation>ru_RU</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="195"/>
|
||||
<location filename="../scenes/settingsdialog.ui" line="212"/>
|
||||
<source>Choose</source>
|
||||
<translation type="vanished">Choose</translation>
|
||||
<translation>Choose</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="78"/>
|
||||
<source>Print header</source>
|
||||
<translation type="vanished">Print header</translation>
|
||||
<translation>Print header</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="121"/>
|
||||
<source>Goods net weight alias</source>
|
||||
<translation type="vanished">Goods net weight alias</translation>
|
||||
<translation>Goods net weight alias</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="54"/>
|
||||
<source>Stores modules url</source>
|
||||
<translation type="vanished">Stores modules url</translation>
|
||||
<translation>Stores modules url</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="134"/>
|
||||
<source>Goods total alias</source>
|
||||
<translation type="vanished">Goods total alias</translation>
|
||||
<translation>Goods total alias</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="167"/>
|
||||
<source>Goods name alias</source>
|
||||
<translation type="vanished">Goods name alias</translation>
|
||||
<translation>Goods name alias</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="91"/>
|
||||
<source>Goods quantity alias</source>
|
||||
<translation type="vanished">Goods quantity alias</translation>
|
||||
<translation>Goods quantity alias</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="181"/>
|
||||
<source>Stores modules directory</source>
|
||||
<translation type="vanished">Stores modules directory</translation>
|
||||
<translation>Stores modules directory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="98"/>
|
||||
<source>OFD modules directory</source>
|
||||
<translation type="vanished">OFD modules directory</translation>
|
||||
<translation>OFD modules directory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="174"/>
|
||||
<source>Goods price per unit position</source>
|
||||
<translation type="vanished">Goods price per unit position</translation>
|
||||
<translation>Goods price per unit position</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="44"/>
|
||||
<source>Goods net weight position</source>
|
||||
<translation type="vanished">Goods net weight position</translation>
|
||||
<translation>Goods net weight position</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="71"/>
|
||||
<source>OFD modules url</source>
|
||||
<translation type="vanished">OFD modules url</translation>
|
||||
<translation>OFD modules url</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="188"/>
|
||||
<source>Goods total position</source>
|
||||
<translation type="vanished">Goods total position</translation>
|
||||
<translation>Goods total position</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="61"/>
|
||||
<source>Goods quantity position</source>
|
||||
<translation type="vanished">Goods quantity position</translation>
|
||||
<translation>Goods quantity position</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="108"/>
|
||||
<source>Print total</source>
|
||||
<translation type="vanished">Print total</translation>
|
||||
<translation>Print total</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
|
|
@ -211,12 +211,17 @@
|
|||
<translation>Форма</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="43"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="87"/>
|
||||
<source>Optical Character Recognition</source>
|
||||
<translation>Оптическое распознавание символов</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="69"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="136"/>
|
||||
<source>Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="43"/>
|
||||
<source>Text from E-Mail</source>
|
||||
<translation>Текст из электронного письма</translation>
|
||||
</message>
|
||||
|
@ -557,12 +562,14 @@
|
|||
<context>
|
||||
<name>SettingsDialog</name>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="160"/>
|
||||
<source>You need to restart program to apply language changes</source>
|
||||
<translation type="vanished">Требуется перезагрузить программу, чтобы применить изменения языка</translation>
|
||||
<translation>Требуется перезагрузить программу, чтобы применить изменения языка</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../settingsdialog.cpp" line="162"/>
|
||||
<source>Restart required</source>
|
||||
<translation type="vanished">Требуется перезагрузка</translation>
|
||||
<translation>Требуется перезагрузка</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -586,88 +593,114 @@
|
|||
<context>
|
||||
<name>settingsdialog</name>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="14"/>
|
||||
<source>Dialog</source>
|
||||
<translation type="vanished">Диалог</translation>
|
||||
<translation>Диалог</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="153"/>
|
||||
<source>Goods name position</source>
|
||||
<translation type="vanished">Позиция имени товара</translation>
|
||||
<translation>Позиция имени товара</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="205"/>
|
||||
<source>Goods price per unit alias</source>
|
||||
<translation type="vanished">Алиас цены товара</translation>
|
||||
<translation>Алиас цены товара</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="219"/>
|
||||
<source>Language</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>TextLabel</source>
|
||||
<translation type="vanished">Язык</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="227"/>
|
||||
<source>en_US</source>
|
||||
<translation type="vanished">en_US</translation>
|
||||
<translation>en_US</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="232"/>
|
||||
<source>ru_RU</source>
|
||||
<translation type="vanished">ru_RU</translation>
|
||||
<translation>ru_RU</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="195"/>
|
||||
<location filename="../scenes/settingsdialog.ui" line="212"/>
|
||||
<source>Choose</source>
|
||||
<translation type="vanished">Выбрать</translation>
|
||||
<translation>Выбрать</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="78"/>
|
||||
<source>Print header</source>
|
||||
<translation type="vanished">Печатать заголовок</translation>
|
||||
<translation>Печатать заголовок</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="121"/>
|
||||
<source>Goods net weight alias</source>
|
||||
<translation type="vanished">Алиас массы нетто товара</translation>
|
||||
<translation>Алиас массы нетто товара</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="54"/>
|
||||
<source>Stores modules url</source>
|
||||
<translation type="vanished">URL модулей магазина</translation>
|
||||
<translation>URL модулей магазина</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="134"/>
|
||||
<source>Goods total alias</source>
|
||||
<translation type="vanished">Алиас всего за продукт</translation>
|
||||
<translation>Алиас всего за продукт</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="167"/>
|
||||
<source>Goods name alias</source>
|
||||
<translation type="vanished">Алиас имени товара</translation>
|
||||
<translation>Алиас имени товара</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="91"/>
|
||||
<source>Goods quantity alias</source>
|
||||
<translation type="vanished">Алиас количества товара</translation>
|
||||
<translation>Алиас количества товара</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="181"/>
|
||||
<source>Stores modules directory</source>
|
||||
<translation type="vanished">Директория модулей магазина</translation>
|
||||
<translation>Директория модулей магазина</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="98"/>
|
||||
<source>OFD modules directory</source>
|
||||
<translation type="vanished">Директория модулей ОФД</translation>
|
||||
<translation>Директория модулей ОФД</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="174"/>
|
||||
<source>Goods price per unit position</source>
|
||||
<translation type="vanished">Позиция центы товара</translation>
|
||||
<translation>Позиция центы товара</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="44"/>
|
||||
<source>Goods net weight position</source>
|
||||
<translation type="vanished">Позиция массы нетто товара</translation>
|
||||
<translation>Позиция массы нетто товара</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="71"/>
|
||||
<source>OFD modules url</source>
|
||||
<translation type="vanished">URL модулей ОФД</translation>
|
||||
<translation>URL модулей ОФД</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="188"/>
|
||||
<source>Goods total position</source>
|
||||
<translation type="vanished">Позиция всего за товар</translation>
|
||||
<translation>Позиция всего за товар</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="61"/>
|
||||
<source>Goods quantity position</source>
|
||||
<translation type="vanished">Позиция количества товара</translation>
|
||||
<translation>Позиция количества товара</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/settingsdialog.ui" line="108"/>
|
||||
<source>Print total</source>
|
||||
<translation type="vanished">Печатать Итого</translation>
|
||||
<translation>Печатать Итого</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
|
|
@ -145,16 +145,16 @@ std::vector<std::wstring> find_in_html(std::string& html, std::string regex, std
|
|||
it != end; it++) {
|
||||
|
||||
std::wstring found_entry = from_utf8(it->str());
|
||||
std::wcout << "Found: " << found_entry << std::endl;
|
||||
std::cout << "Found: " << to_utf8(found_entry) << std::endl;
|
||||
std::wstring extracted = substring_from_to(found_entry, from_utf8(html_start), from_utf8(html_end));
|
||||
std::wcout << "Extracted: " << extracted << std::endl;
|
||||
std::cout << "Extracted: " << to_utf8(extracted) << std::endl;
|
||||
parsed.push_back(extracted);
|
||||
}
|
||||
return parsed;
|
||||
}
|
||||
|
||||
std::vector<std::wstring> find_products_in_html(std::string html) {
|
||||
return find_in_html(html, "<div class=\"ifw-col ifw-col-1 text-left\"><b>.{10,100}<\\/b><\\/div>", "<div class=\"ifw-col ifw-col-1 text-left\"><b>", "<\\/b><\\/div>");
|
||||
return find_in_html(html, "<div class=\"ifw-col ifw-col-1 text-left\"><b>.{2,100}<\\/b><\\/div>", "<div class=\"ifw-col ifw-col-1 text-left\"><b>", "<\\/b><\\/div>");
|
||||
}
|
||||
|
||||
std::vector<std::wstring> find_amounts_in_html(std::string html) {
|
||||
|
@ -170,11 +170,16 @@ std::vector<std::wstring> find_net_weights_in_names(std::vector<std::wstring> &n
|
|||
std::vector<std::wstring> result;
|
||||
for (std::wstring &name : names ) {
|
||||
boost::wregex regexp(from_utf8("((\\d+(.|,)?\\d?((м|)л|(к|м|)г|т|ц|шт|(pc|)s|(m|k|)g|(m|)l|t)).?)+"), boost::regex_constants::collate);
|
||||
bool found = false;
|
||||
for (boost::wsregex_iterator it{name.begin(), name.end(), regexp}, end{}; it != end;
|
||||
it++) {
|
||||
result.push_back(it->str());
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
if (!found) {
|
||||
result.push_back(from_utf8("?"));
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
@ -247,6 +252,8 @@ Check parseOfdRuAnswer(std::string html) {
|
|||
Check c;
|
||||
|
||||
for (int i = 0; i < products.size(); i ++) {
|
||||
std::cout << "Adding to check: ";
|
||||
std::cout << to_utf8(products[i]) << " " << to_utf8(prices[i]) << " " << to_utf8(net_weights[i]) << " " << to_utf8(amounts[i]) << std::endl;
|
||||
Goods goods(to_utf8(products[i]), std::stod(prices[i]), to_utf8(net_weights[i]), std::stod(amounts[i]));
|
||||
c.add_goods(goods);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue