-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpagamentoaprazo.cpp
122 lines (106 loc) · 4.47 KB
/
pagamentoaprazo.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#include "pagamentoaprazo.h"
#include "vendas.h"
pagamentoAPrazo::pagamentoAPrazo(QString id_venda, QString total, QString cliente, QString data, QWidget *parent)
: pagamento(total, cliente, data, parent)
{
idVenda = id_venda;
//deixar a forma de pagamento a prazo inacessivel
ui->CBox_FormaPagamento->removeItem(5);
ui->Ledit_Desconto->setVisible(false);
ui->label_9->setVisible(false);
}
pagamentoAPrazo::~pagamentoAPrazo()
{
}
void pagamentoAPrazo::terminarPagamento()
{
QDateTime dataIngles = portugues.toDateTime(dataGlobal, "yyyy-MM-dd hh:mm:ss");
// inserir a venda
// adicionar ao banco de dados
if(!db.open()){
qDebug() << "erro ao abrir banco de dados. botao aceitar venda.";
}
QSqlQuery query;
QString troco = ui->Lbl_Troco->text();
QString recebido = ui->Ledit_Recebido->text();
QString forma_pagamento = ui->CBox_FormaPagamento->currentText();
QString taxa = ui->Ledit_Taxa->text();
QString valor_final = ui->Lbl_TotalTaxa->text();
QString desconto = ui->Ledit_Desconto->text();
// validar line edits
// desconto
bool conversionOkDesconto;
// tentar converter para float e ser menor ou igual ao valor final
qDebug() << "validar valor desconto";
qDebug() << desconto;
bool menorQueTotal = portugues.toFloat(desconto, &conversionOkDesconto) <= portugues.toFloat(totalGlobal);
qDebug() << conversionOkDesconto;
if (!menorQueTotal){
conversionOkDesconto = false;
}
qDebug() << conversionOkDesconto;
if (!conversionOkDesconto){
// algo deu errado na conversao, desconto nao validado
// inserir mensagem de erro e impedir insersao de venda
QMessageBox::warning(this, "Erro", "Por favor, insira um desconto válido.");
return;
}
// recebido
qDebug() << "validar valor recebido";
qDebug() << recebido;
bool conversionOkRecebido;
// testar se o recebido consegue ser convertido em float e se é maior ou igual ao valor final
bool maiorQueTotal = portugues.toFloat(recebido, &conversionOkRecebido) >= portugues.toFloat(valor_final);
qDebug() << conversionOkRecebido;
if (!maiorQueTotal){
// caso não seja maior ou igual que o total avalie como erro.
conversionOkRecebido = false;
}
qDebug() << conversionOkRecebido;
if (!conversionOkRecebido){
// algo deu errado na conversao, recebido nao validado
// inserir mensagem de erro e impedir insersao de venda
QMessageBox::warning(this, "Erro", "Por favor, insira um valor recebido válido.");
return;
}
// taxa
qDebug() << "validar taxa";
qDebug() << recebido;
bool conversionOkTaxa;
// testar se a taxa consegue ser converido em float
portugues.toFloat(taxa, &conversionOkTaxa);
qDebug() << conversionOkTaxa;
if (!conversionOkTaxa){
// algo deu errado na conversao, troco nao validado
// inserir mensagem de erro e impedir insersao de venda
QMessageBox::warning(this, "Erro", "Por favor, insira uma taxa válida.");
return;
}
query.prepare("INSERT INTO entradas_vendas (id_venda, total, data_hora, forma_pagamento, valor_recebido, troco, taxa, valor_final, desconto) VALUES (:valor1, :valor2, :valor3, :valor4, :valor5, :valor6, :valor7, :valor8, :valor9)");
query.bindValue(":valor1", idVenda);
// precisa converter para notacao usa para inserir no banco de dados
query.bindValue(":valor2", QString::number(portugues.toFloat(totalGlobal)));
// inserir a data do dateedit
query.bindValue(":valor3", dataIngles.toString("yyyy-MM-dd hh:mm:ss"));
//
query.bindValue(":valor4", forma_pagamento);
// precisa converter para notacao usa para inserir no banco de dados
query.bindValue(":valor5", QString::number(portugues.toFloat(recebido), 'f', 2));
query.bindValue(":valor6", QString::number(portugues.toFloat(troco), 'f', 2));
query.bindValue(":valor7", QString::number(portugues.toFloat(taxa), 'f', 2));
query.bindValue(":valor8", QString::number(portugues.toFloat(valor_final), 'f', 2));
query.bindValue(":valor9", QString::number(portugues.toFloat(desconto), 'f', 2));
if (query.exec()) {
qDebug() << "Inserção bem-sucedida!";
} else {
qDebug() << "Erro na inserção: ";
}
// inserir os produtos da venda
if(ui->CheckImprimirCNF->isChecked()){
Vendas::imprimirReciboVenda(idVenda);
}
db.close();
// fechar as janelas
this->close();
this->deleteLater();
}