00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "linprevcobro.h"
00022 #include "aplinteligentesview.h"
00023 #include "asiento1view.h"
00024
00025
00027
00030 linprevcobro::linprevcobro(Empresa *comp) {
00031 _depura("linprevcobro::linprevcobro", 0);
00032 empresaactual = comp;
00033 conexionbase = comp->bdempresa();
00034 vacialinprevcobro();
00035 _depura("END linprevcobro::linprevcobro", 0);
00036 }
00037
00038
00040
00044 linprevcobro::linprevcobro(Empresa *comp, QString idprevcobro) {
00045 _depura("linprevcobro::linprevcobro", 0);
00046 empresaactual = comp;
00047 conexionbase = comp->bdempresa();
00048 QString SQLQuery = "SELECT * FROM prevcobro "
00049 "LEFT JOIN cuenta ON prevcobro.idcuenta = cuenta.idcuenta "
00050 "LEFT JOIN (SELECT codigo AS codigoctacliente, descripcion AS nomctacliente, idcuenta AS idctacliente FROM cuenta) AS T1 ON T1.idctacliente = prevcobro.idctacliente "
00051 "WHERE idprevcobro = " + idprevcobro;
00052 cursor2 *cur = conexionbase->cargacursor(SQLQuery);
00053 if (!cur->eof()) {
00054 mdb_idprevcobro = cur->valor("idprevcobro");
00055 mdb_fprevistaprevcobro = cur->valor("fprevistaprevcobro");
00056 mdb_fcobroprevcobro = cur->valor("fcobroprevcobro");
00057 mdb_idfpago = cur->valor("idfpago");
00058 mdb_idcuenta = cur->valor("idcuenta");
00059 mdb_idasiento = cur->valor("idasiento");
00060 mdb_cantidadprevistaprevcobro = cur->valor("cantidadprevistaprevcobro");
00061 mdb_cantidadprevcobro = cur->valor("cantidadprevcobro");
00062 mdb_idregistroiva = cur->valor("idregistroiva");
00063 mdb_tipoprevcobro = cur->valor("tipoprevcobro");
00064 mdb_docprevcobro = cur->valor("docprevcobro");
00065 mdb_codigocuenta = cur->valor("codigo");
00066 mdb_nomcuenta = cur->valor("descripcion");
00067 mdb_idctacliente = cur->valor("idctacliente");
00068 mdb_codigoctacliente = cur->valor("codigoctacliente");
00069 mdb_nomctacliente = cur->valor("nomctacliente");
00070 } else {
00071 vacialinprevcobro();
00072 }
00073 _depura("END linprevcobro::linprevcobro", 0);
00074 }
00075
00076
00078
00097 linprevcobro::linprevcobro(Empresa *comp, QString a, QString b, QString c, QString d, QString e, QString f, QString g, QString h, QString i, QString j, QString k, QString l, QString m, QString idctacliente, QString codigoctacliente, QString nomctacliente) {
00098 _depura("linprevcobro::linprevcobro", 0);
00099 empresaactual = comp;
00100 conexionbase = comp->bdempresa();
00101 mdb_idprevcobro = a;
00102 mdb_fprevistaprevcobro = b;
00103 mdb_fcobroprevcobro = c;
00104 mdb_idfpago = d;
00105 mdb_idcuenta = e;
00106 mdb_idasiento = f;
00107 mdb_cantidadprevistaprevcobro = g;
00108 mdb_cantidadprevcobro = h;
00109 mdb_idregistroiva = i;
00110 mdb_tipoprevcobro = j;
00111 mdb_docprevcobro = k;
00112 mdb_codigocuenta = l;
00113 mdb_nomcuenta = m;
00114 mdb_idctacliente = idctacliente;
00115 mdb_codigoctacliente = codigoctacliente;
00116 mdb_nomctacliente = nomctacliente;
00117 _depura("END linprevcobro::linprevcobro", 0);
00118 }
00119
00120
00122
00124 linprevcobro::~linprevcobro() {
00125 _depura("linprevcobro::~linprevcobro", 0);
00126 _depura("END linprevcobro::~linprevcobro", 0);
00127 }
00128
00129
00131
00133 void linprevcobro::vacialinprevcobro() {
00134 _depura("linprevcobro::vacialinprevcobro", 0);
00135 mdb_idprevcobro = "";
00136 mdb_fprevistaprevcobro = "";
00137 mdb_fcobroprevcobro = "";
00138 mdb_idfpago = "";
00139 mdb_idcuenta = "";
00140 mdb_idasiento = "";
00141 mdb_cantidadprevistaprevcobro = "";
00142 mdb_cantidadprevcobro = "";
00143 mdb_idregistroiva = "";
00144 mdb_tipoprevcobro = "";
00145 mdb_docprevcobro = "";
00146 mdb_codigocuenta = "";
00147 mdb_nomcuenta = "";
00148 mdb_idctacliente = "";
00149 mdb_codigoctacliente = "";
00150 mdb_nomctacliente = "";
00151 _depura("END linprevcobro::vacialinprevcobro", 0);
00152 }
00153
00154
00156
00158 void linprevcobro::borrar() {
00159 _depura("linprevcobro::borrar", 0);
00160 if (mdb_idprevcobro != "") {
00161 conexionbase->begin();
00162 conexionbase->ejecuta("DELETE FROM prevcobro WHERE idprevcobro = " + mdb_idprevcobro);
00163 conexionbase->commit();
00164 vacialinprevcobro();
00165 }
00166 _depura("END linprevcobro::borrar", 0);
00167 }
00168
00169
00171
00173 void linprevcobro::guardalinprevcobro() {
00174 _depura("linprevcobro::guardalinprevcobro", 0);
00175 if (mdb_idfpago == "") {
00176 mdb_idfpago = "NULL";
00177 }
00178 if (mdb_idasiento == "") {
00179 mdb_idasiento = "NULL";
00180 }
00181 if (mdb_idregistroiva == "") {
00182 mdb_idregistroiva = "NULL";
00183 }
00185 if (mdb_idprevcobro == "") {
00186 QString SQLQuery = "INSERT INTO prevcobro (fprevistaprevcobro, fcobroprevcobro, idfpago, idcuenta, idasiento, cantidadprevistaprevcobro, cantidadprevcobro, idregistroiva, tipoprevcobro, docprevcobro, idctacliente) VALUES ('" +
00187 conexionbase->sanearCadena(mdb_fprevistaprevcobro) + "'," +
00188 "'" + conexionbase->sanearCadena(mdb_fcobroprevcobro) + "'," +
00189 conexionbase->sanearCadena(mdb_idfpago) + "," +
00190 conexionbase->sanearCadena(mdb_idcuenta) + "," +
00191 conexionbase->sanearCadena(mdb_idasiento) + "," +
00192 conexionbase->sanearCadena(mdb_cantidadprevistaprevcobro) + ", " +
00193 conexionbase->sanearCadena(mdb_cantidadprevcobro) + ", " +
00194 conexionbase->sanearCadena(mdb_idregistroiva) + ", " +
00195 "'"+conexionbase->sanearCadena(mdb_tipoprevcobro) + "', " +
00196 "'"+conexionbase->sanearCadena(mdb_docprevcobro) + "', " +
00197 conexionbase->sanearCadena(mdb_idctacliente) + ")";
00198 conexionbase->begin();
00199 conexionbase->ejecuta(SQLQuery);
00200 cursor2 *cur = conexionbase->cargacursor("SELECT MAX(idprevcobro) AS m FROM prevcobro ");
00201 if (!cur->eof()) {
00202 mdb_idprevcobro = cur->valor("m");
00203 }
00204 delete cur;
00205 conexionbase->commit();
00206 } else {
00207 QString SQLQuery = "UPDATE prevcobro SET ";
00208 SQLQuery += " fprevistaprevcobro = '" + conexionbase->sanearCadena(mdb_fprevistaprevcobro) + "' ";
00209 SQLQuery += " ,fcobroprevcobro = '" + conexionbase->sanearCadena(mdb_fcobroprevcobro) + "' ";
00210 SQLQuery += " ,idfpago = " + conexionbase->sanearCadena(mdb_idfpago) + " ";
00211 SQLQuery += " ,idcuenta = " + conexionbase->sanearCadena(mdb_idcuenta) + " ";
00212 SQLQuery += " ,idasiento = " + conexionbase->sanearCadena(mdb_idasiento) + " ";
00213 SQLQuery += " ,cantidadprevistaprevcobro = " + conexionbase->sanearCadena(mdb_cantidadprevistaprevcobro) + " ";
00214 SQLQuery += " ,cantidadprevcobro = " + conexionbase->sanearCadena(mdb_cantidadprevcobro) + " ";
00215 SQLQuery += " ,idregistroiva = " + conexionbase->sanearCadena(mdb_idregistroiva) + " ";
00216 SQLQuery += " ,tipoprevcobro = '" + conexionbase->sanearCadena(mdb_tipoprevcobro) + "' ";
00217 SQLQuery += " ,docprevcobro = '" + conexionbase->sanearCadena(mdb_docprevcobro) + "' ";
00218 SQLQuery += " ,idctacliente = " + conexionbase->sanearCadena(mdb_idctacliente) + " ";
00219 SQLQuery += " WHERE idprevcobro = " + conexionbase->sanearCadena(mdb_idprevcobro);
00220 conexionbase->begin();
00221 conexionbase->ejecuta(SQLQuery);
00222 conexionbase->commit();
00223 }
00224 _depura("END linprevcobro::guardalinprevcobro", 0);
00225 }
00226
00227
00229
00232 void linprevcobro::setcodigocuenta(QString val) {
00233 _depura("linprevcobro::setcodigocuenta", 0);
00234 fprintf(stderr, "setcodigocuenta(%s)\n", val.toAscii().constData());
00235 mdb_codigocuenta = extiendecodigo(val, empresaactual->numdigitosempresa());
00236 QString SQLQuery = "SELECT idcuenta, descripcion FROM cuenta WHERE codigo = '" + mdb_codigocuenta + "'";
00237 cursor2 *cur = conexionbase->cargacursor(SQLQuery);
00238 if (!cur->eof()) {
00239 mdb_nomcuenta = cur->valor("descripcion");
00240 mdb_idcuenta = cur->valor("idcuenta");
00241 }
00242 delete cur;
00243 _depura("END linprevcobro::setcodigocuenta", 0);
00244 }
00245
00246
00248
00251 void linprevcobro::setidcuenta(QString val) {
00252 _depura("linprevcobro::setidcuenta", 0);
00253 fprintf(stderr,"setidcuenta(%s)\n", val.toAscii().constData());
00254 mdb_idcuenta = val;
00255 QString SQLQuery = "SELECT codigo, descripcion FROM cuenta WHERE idcuenta = " + mdb_idcuenta + "";
00256 cursor2 *cur = conexionbase->cargacursor(SQLQuery);
00257 if (!cur->eof()) {
00258 mdb_nomcuenta = cur->valor("descripcion");
00259 mdb_codigocuenta = cur->valor("codigo");
00260 }
00261 delete cur;
00262 fprintf(stderr,"end setidcuenta\n");
00263 _depura("END linprevcobro::setidcuenta", 0);
00264 }
00265
00266
00267
00279 int linprevcobro::creaPago() {
00280 _depura("linprevcobro::creaPago", 0);
00283 if (idprevcobro() == "")
00284 return 0;
00285 QString idainteligente;
00286 QString total=cantidadprevcobro();
00287 QString codcuenta = codigoctacliente();
00289 QString codbanco = codigocuenta();
00290 QString tipo = tipoprevcobro();
00291 QString fecha = fcobroprevcobro();
00292
00293 if (tipo == "t") {
00295 QString query = "SELECT * FROM ainteligente, configuracion WHERE descripcion = valor AND configuracion.nombre = 'Cobro'";
00296 cursor2 *cur = conexionbase->cargacursor(query);
00297 if (!cur->eof()) {
00298 idainteligente = cur->valor("idainteligente");
00299 } else {
00300 return 0;
00301 }
00302 delete cur;
00303 } else {
00305 QString query = "SELECT * FROM ainteligente, configuracion WHERE descripcion = valor AND configuracion.nombre = 'Pago'";
00306 cursor2 *cur = conexionbase->cargacursor(query);
00307 if (!cur->eof()) {
00308 idainteligente = cur->valor("idainteligente");
00309 } else {
00310 return 0;
00311 }
00312 delete cur;
00313 }
00317 QString idasiento = empresaactual->intapuntsempresa()->idasiento();
00318
00319 QDialog *diag = new QDialog(0);
00320 diag->setModal(true);
00322 int numasiento = 0;
00323 aplinteligentesview *nueva = new aplinteligentesview(empresaactual, diag);
00324 nueva->inicializa(numasiento);
00325 nueva->muestraplantilla(idainteligente);
00326 nueva->setfechaasiento(fecha);
00327 nueva->setvalores("$fecha$", fecha);
00328 nueva->setvalores("$codbanco$", codbanco);
00329 nueva->setvalores("$codcuenta$", codcuenta);
00330 nueva->setvalores("$total$", total);
00331 nueva->setmodo(1);
00332
00333 diag->exec();
00334
00335 QString idasiento1 = empresaactual->intapuntsempresa()->idasiento();
00336 if (idasiento1 == idasiento) {
00337 delete diag;
00338 return 0;
00339 }
00340 mdb_idasiento = idasiento1;
00341 guardalinprevcobro();
00342 delete diag;
00343 _depura("END linprevcobro::creaPago", 0);
00344 return 1;
00345 }
00346
00347
00349
00352 void linprevcobro::setcodigoctacliente(QString val) {
00353 _depura("linprevcobro::setcodigoctacliente", 0);
00354 fprintf(stderr,"setcodigocuenta(%s)\n", val.toAscii().constData());
00355 mdb_codigoctacliente=extiendecodigo(val, empresaactual->numdigitosempresa());
00356 QString SQLQuery = "SELECT idcuenta, descripcion FROM cuenta WHERE codigo = '" + mdb_codigoctacliente + "'";
00357 cursor2 *cur = conexionbase->cargacursor(SQLQuery);
00358 if (!cur->eof()) {
00359 mdb_nomctacliente = cur->valor("descripcion");
00360 mdb_idctacliente = cur->valor("idcuenta");
00361 }
00362 delete cur;
00363 _depura("END linprevcobro::setcodigoctacliente", 0);
00364 }
00365
00366
00368
00371 void linprevcobro::setidctacliente(QString val) {
00372 _depura("linprevcobro::setidctacliente", 0);
00373 fprintf(stderr,"setidcuenta(%s)\n", val.toAscii().constData());
00374 mdb_idctacliente = val;
00375 QString SQLQuery = "SELECT codigo, descripcion FROM cuenta WHERE idcuenta = " + mdb_idctacliente + "";
00376 cursor2 *cur = conexionbase->cargacursor(SQLQuery);
00377 if (!cur->eof()) {
00378 mdb_nomctacliente=cur->valor("descripcion");
00379 mdb_codigoctacliente = cur->valor("codigo");
00380 }
00381 delete cur;
00382 fprintf(stderr, "end setidcuenta\n");
00383 _depura("END slinprevcobro::setidctacliente", 0);
00384 }
00385