Расчетная сумма в интерфейсе не сохраняется в БД SQLlite, сохраняется только другая сумма

У меня проблемы с расчетами. При сборке и тестировании системы правильное количество, отображаемое в интерфейсе, не отображается / не сохраняется в базе данных. Сумма отличается от той, что в интерфейсе.

Замечания:

  1. ВЫБЕРИТЕ СУММУ (TotalPrice) ОТ ПРОДАНА (Скриншот таблицы Sold будет прикреплен вместе.
  2. Я прикреплю скриншоты ниже. Посмотрите на это, чтобы получить ясную картину ситуации.
  3. Я пометил код проблемы с комментарием //<—THIS -> //.

Вот мой код:

void CashRegister::on_pushButton_next_clicked()
{
ui->tableView->show();
ui->pushButton_finish->show();
ui->label_totalAmount->show();

QString receiptNo = ui->label_receiptNum->text();
QString itemSelect = ui->comboBox_itemID->currentText();
QString qtySold = ui->lineEdit_qtySold->text();
QDate currentDate = QDate::currentDate();   //<--Solved-->//
//QString totalPrice1 = ui->label_totalAmount->text();

double price=0, totalPrice=0;

QSqlQuery myqry;
myqry.exec("SELECT ItemPrice, ItemName FROM Item WHERE ItemId='"+itemSelect+"' ");
if (myqry.next())
price = myqry.value(0).toDouble();

totalPrice = price * qtySold.toInt();

QString totalPriceString = QString::number(totalPrice);

myqry.prepare("INSERT INTO Sold (ReceiptId, ItemId, SoldQuantity, TotalPrice) VALUES ('"+receiptNo+"', '"+itemSelect+"', '"+qtySold+"', '"+totalPriceString+"') ");
myqry.exec();

ui->comboBox_itemID->setCurrentIndex(0);
ui->lineEdit_qtySold->clear();

myqry.prepare("SELECT Item.ItemId, Item.ItemName, Item.ItemPrice, Sold.SoldQuantity FROM Item, Sold WHERE Item.ItemId = Sold.ItemId AND Sold.ReceiptId='"+receiptNo+"' ");
myqry.exec();QSqlQueryModel *myModel = new QSqlQueryModel();
myModel->setQuery(myqry);
ui->tableView->setModel(myModel);

double sum = 0;

myqry.exec("SELECT SUM(TotalPrice) FROM Sold WHERE ReceiptId = '"+receiptNo+"' ");
if (myqry.next())
sum += myqry.value(0).toDouble();

ui->label_totalAmount->setText("TOTAL AMOUNT: RM" + QString::number(sum));

QString totalPriceReceipt = QString::number(sum);

//<--THIS-->//
myqry.prepare("INSERT INTO Receipt (ReceiptId, ReceiptDate, ReceiptAmount) VALUES ('"+receiptNo+"', '"+currentDate.toString()+"', '"+totalPriceReceipt+"') ");
myqry.exec();
}

Разное количество в интерфейсе и БД

Проданный Стол

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]