00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "duplicarasientoview.h"
00022 #include "empresa.h"
00023 #include "funcaux.h"
00024
00025 #define NUMDIGITOS empresaBase()->numdigitosempresa()
00026
00027
00029
00034 DuplicarAsientoView::DuplicarAsientoView(Empresa *emp, QWidget *parent, Qt::WFlags flag)
00035 : QDialog(parent, flag), PEmpresaBase(emp) {
00036 _depura("DuplicarAsientoView::DuplicarAsientoView", 0);
00037 setupUi(this);
00038 fdinicial->setText(QDate::currentDate().toString("dd/MM/yyyy"));
00039 _depura("END DuplicarAsientoView::DuplicarAsientoView", 0);
00040 }
00041
00042
00044
00046 DuplicarAsientoView::~DuplicarAsientoView() {
00047 _depura("DuplicarAsientoView::~DuplicarAsientoView", 0);
00048 _depura("END DuplicarAsientoView::~DuplicarAsientoView", 0);
00049 }
00050
00051
00053
00057 void DuplicarAsientoView::inicializa(QString ainicial, QString afinal) {
00058 _depura("DuplicarAsientoView::inicializa", 0);
00059 aoinicial->setText(ainicial);
00060 aofinal->setText(afinal);
00061 QString query = "SELECT * FROM asiento WHERE ordenasiento = " + ainicial;
00062 empresaBase()->begin();
00063 cursor2 *cur = empresaBase()->cargacursor(query, "hola");
00064 empresaBase()->commit();
00065 if (!cur->eof()) {
00066 foinicial->setText(cur->valor("fecha").left(10));
00067 }
00068 delete cur;
00069 aoinicial->selectAll();
00070 aoinicial->setFocus();
00071 _depura("END DuplicarAsientoView::inicializa", 0);
00072 }
00073
00075
00077 void DuplicarAsientoView::lostFocus() {
00078 _depura("DuplicarAsientoView::lostFocus", 0);
00079 QString ainicial = aoinicial->text();
00080 QString query = "SELECT * FROM asiento WHERE ordenasiento = " + ainicial;
00081 empresaBase()->begin();
00082 cursor2 *cur = empresaBase()->cargacursor(query, "hola");
00083 empresaBase()->commit();
00084 if (!cur->eof()) {
00085 foinicial->setText(cur->valor("fecha").left(10));
00086 }
00087 delete cur;
00088 _depura("END DuplicarAsientoView::lostFocus", 0);
00089 }
00090
00091
00093
00095 void DuplicarAsientoView::on_mui_aceptar_clicked() {
00096 _depura("DuplicarAsientoView::on_mui_aceptar_clicked", 0);
00097 QString asientoi = aoinicial->text();
00098 QString asientof = aofinal->text();
00099 QString query1, query2;
00100 QString textidasiento;
00101
00102
00103
00104 QString idasiento;
00105 QString ordenasiento;
00106
00107 QString textordeninicial;
00108 QDate fedinicial = normalizafecha(fdinicial->text());
00109
00110
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129 query1 = "SELECT * FROM asiento WHERE ordenasiento >= " + asientoi + " AND ordenasiento <= " + asientof +" AND EXTRACT (YEAR FROM fecha) = EXTRACT (YEAR FROM '" + fedinicial.toString("dd/MM/yyyy") + "'::date)";
00130 cursor2 *curasiento = empresaBase()->cargacursor(query1);
00131 while (!curasiento->eof()) {
00132
00133 query1 = "INSERT INTO asiento (descripcion, fecha, comentariosasiento) VALUES('" + curasiento->valor("descripcion") + "','" + fedinicial.toString("dd/MM/yyyy") + "','" + curasiento->valor("comentariosasiento") + "')";
00134 empresaBase()->ejecuta(query1);
00135
00136
00137 query1 = "SELECT * FROM asiento ORDER BY idasiento DESC LIMIT 1";
00138 cursor2 *cursaux = empresaBase()->cargacursor(query1);
00139 if (!cursaux->eof()) {
00140 idasiento = cursaux->valor("idasiento");
00141 ordenasiento = cursaux->valor("ordenasiento");
00142 }
00143 delete cursaux;
00144
00145
00146
00147 query2 = "SELECT * FROM borrador WHERE idasiento = " + curasiento->valor("idasiento");
00148 cursor2 *curborrador = empresaBase()->cargacursor(query2);
00149
00150 while (!curborrador->eof()) {
00151 QString textiddiario = curborrador->valor("iddiario");
00152 if (textiddiario == "") {
00153 textiddiario = "NULL";
00154 }
00155 QString textfecha = curborrador->valor("fecha");
00156 textfecha = fedinicial.toString("dd/MM/yyyy");
00157 QString textconceptocontable = curborrador->valor("conceptocontable");
00158 QString textidcuenta = curborrador->valor("idcuenta");
00159 if (textidcuenta == "") {
00160 textidcuenta = "NULL";
00161 }
00162 QString textdescripcion = curborrador->valor("descripcion");
00163 QString textdebe = curborrador->valor("debe");
00164 QString texthaber = curborrador->valor("haber");
00165 QString textcontrapartida = curborrador->valor("contrapartida");
00166 if (textcontrapartida == "") {
00167 textcontrapartida = "NULL";
00168 }
00169 QString textorden = curborrador->valor("orden");
00170 if (textorden == "") {
00171 textorden = "0";
00172 }
00173 query2 = "INSERT INTO borrador (orden, idasiento, iddiario, fecha, conceptocontable, idcuenta, descripcion, debe, haber, contrapartida) VALUES (" + textorden + ","+idasiento + "," + textiddiario + ",'" + textfecha + "','" + textconceptocontable + "'," + textidcuenta + ",'" + textdescripcion + "'," + textdebe + "," + texthaber + "," + textcontrapartida + ")";
00174 empresaBase()->ejecuta(query2);
00175 curborrador->siguienteregistro();
00176 }
00177 delete curborrador;
00178 query2 = "SELECT cierraasiento("+idasiento+")";
00179 cursor2 *cur = empresaBase()->cargacursor(query2);
00180 delete cur;
00181 curasiento->siguienteregistro();
00182 }
00183 delete curasiento;
00184 empresaBase()->commit();
00185 done(1);
00186 _depura("END DuplicarAsientoView::on_mui_aceptar_clicked", 0);
00187 }
00188