-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcaducados.cpp
114 lines (105 loc) · 3.85 KB
/
caducados.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
#include "caducados.h"
#include <QMessageBox>
#include "QDate"
#include "ui_caducados.h"
Caducados::Caducados(QWidget *parent)
: QDialog(parent)
, ui(new Ui::Caducados)
{
ui->setupUi(this);
}
Caducados::Caducados(QString ean, QWidget *parent)
: QDialog(parent)
, ui(new Ui::Caducados)
{
ui->setupUi(this);
ui->lineEditCodigo->setText(ean);
emit on_lineEditCodigo_returnPressed();
}
Caducados::~Caducados()
{
delete ui;
}
void Caducados::on_lineEditCodigo_returnPressed()
{
consulta = base.consulta_producto(conf->getConexionLocal(), ui->lineEditCodigo->text());
consulta.first();
if (!consulta.isValid()) {
QString cod = base.codigoDesdeAux(conf->getConexionLocal(), ui->lineEditCodigo->text());
consulta = base.consulta_producto("DB", cod);
consulta.first();
}
if (consulta.numRowsAffected() == 1) {
ui->lineEditDescripcion->setText(consulta.value(1).toString());
llenarComboFechas(consulta.value(0).toString());
}
}
void Caducados::llenarComboFechas(QString id)
{
ui->comboBox->clear();
ui->comboBox->addItem("Selecciona uno");
consulta = base.lotesProducto(id, "DB");
while (consulta.next()) {
ui->comboBox->addItem(consulta.value("fecha").toString());
}
ui->comboBox->addItem("Desconocido");
}
void Caducados::on_pushButton_clicked()
{
if (ui->comboBox->currentText() == "Selecciona uno") {
QMessageBox::information(this,
"Faltan datos",
"Selecciona la fecha adecuada del desplegable");
return;
}
if (ui->lineEditCodigo->text().isEmpty() || ui->lineEditDescripcion->text().isEmpty()) {
QMessageBox::warning(this,
"Faltan datos del producto",
"No hay datos en el codigo o descripción del producto");
return;
}
base.disminuirLote(ui->lineEditCodigo->text(),
ui->comboBox->currentText(),
ui->spinBox->value());
QString sentencia;
QSqlQuery precioConsulta = base.consulta_producto("DB", ui->lineEditCodigo->text());
precioConsulta.first();
QString precio = precioConsulta.value("pvp").toString();
qDebug() << precio;
sentencia = "INSERT INTO caducados VALUES (NULL, '" + ui->lineEditCodigo->text() + "' , '"
+ QString::number(ui->spinBox->value()) + "' , '" + ui->lineEditDescripcion->text()
+ "' , '" + QDate::currentDate().toString("yyyy-MM-dd") + "' , '" + precio + "' , '"
+ ui->comboBox->currentText() + "')";
qDebug() << sentencia;
QSqlQuery ejecutar = base.ejecutarSentencia(sentencia, conf->getConexionLocal());
qDebug() << ejecutar.lastError();
//ui->lineEditCodigo->clear();
//ui->lineEditDescripcion->clear();
ui->comboBox->clear();
ui->spinBox->setValue(1);
//ui->lineEditCodigo->setFocus();
emit on_lineEditCodigo_returnPressed();
}
void Caducados::on_lineEditDescripcion_returnPressed()
{
QSqlQuery consulta = base.buscarProducto(QSqlDatabase::database("DB"),
"articulos",
ui->lineEditDescripcion->text());
consulta.first();
BuscarProducto *buscar = new BuscarProducto(this, consulta);
buscar->exec();
ui->lineEditCodigo->setText(buscar->resultado);
emit on_lineEditCodigo_returnPressed();
}
void Caducados::on_comboBox_currentIndexChanged(const QString &arg1)
{
QString idLote = base.idLote(conf->getConexionLocal(), ui->lineEditCodigo->text(), "", arg1);
int udsLote = base.unidadesLote(conf->getConexionLocal(), idLote);
if (arg1 == "Desconocido") {
ui->spinBox->setMaximum(1000);
ui->spinBox->setMinimum(0);
} else {
ui->spinBox->setMaximum(udsLote);
ui->spinBox->setMinimum(0);
}
}