00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include <QDateTime>
00018 #include <QTextStream>
00019 #include <QObject>
00020 #include <QString>
00021 #include <QMessageBox>
00022 #include <QXmlDefaultHandler>
00023
00024 #include <stdio.h>
00025
00026 #include "qapplication2.h"
00027 #include "pgimportfiles.h"
00028 #include "funcaux.h"
00029
00030 #define EURO 166.386
00031 #define S_EURO "166.386"
00032
00033 #define LEN_CODIGO_CUENTA 12
00034 #define LEN_TITULO 40
00035 #define LEN_NIF 15
00036 #define LEN_DOMICILIO 35
00037 #define LEN_POBLACION 25
00038 #define LEN_PROVINCIA 20
00039 #define LEN_CODPOSTAL 5
00040 #define LEN_DIVISA 1
00041 #define LEN_CTA_CODDIVISA 5
00042 #define LEN_CTA_DOCUMENTO 1
00043 #define LEN_AJUSTAME 1
00044 #define LEN_TIPOIVA 1
00045
00046 #define LEN_ASIEN 6
00047 #define LEN_FECHA 8
00048 #define LEN_SUBCTA 12
00049 #define LEN_CONTRA 12
00050 #define LEN_PTADEBE 16
00051 #define LEN_CONCEPTO 25
00052 #define LEN_PTAHABER 16
00053 #define LEN_FACTURA 8
00054 #define LEN_BASEIMPO 16
00055 #define LEN_IVA 5
00056 #define LEN_RECEQUIV 5
00057 #define LEN_DOCUMENTO 10
00058 #define LEN_DEPARTA 3
00059 #define LEN_CLAVE 6
00060 #define LEN_ESTADO 1
00061 #define LEN_NCASADO 6
00062 #define LEN_TCASADO 1
00063 #define LEN_TRANS 6
00064 #define LEN_CAMBIO 16
00065 #define LEN_DEBEME 16
00066 #define LEN_HABERME 16
00067 #define LEN_AUXILIAR 1
00068 #define LEN_SERIE 1
00069 #define LEN_SUCURSAL 4
00070 #define LEN_CODDIVISA 5
00071 #define LEN_IMPAUXME 16
00072 #define LEN_MONEDAUSO 1
00073 #define LEN_EURODEBE 16
00074 #define LEN_EUROHABER 16
00075 #define LEN_BASEEURO 16
00076 #define LEN_NOCONV 1
00077 #define LEN_NUMEROINV 10
00078
00079
00080 extern QApplication2 *theApp;
00081
00082
00084
00086 class StructureParser : public QXmlDefaultHandler {
00087 private:
00088 postgresiface2 *conexionbase;
00089 QString cadintermedia;
00090
00091 QString idasiento;
00092 QString ordenasiento;
00093 QString fechaasiento;
00095 QString idapunte;
00096 QString idborrador;
00097 QString fechaapunte;
00098 QString codigocuentaapunte;
00099 QString debeapunte;
00100 QString haberapunte;
00101 QString conceptocontableapunte;
00102 int m_ordenapunte;
00104 QString idcuenta;
00105 QString descripcioncuenta;
00106 QString codigocuenta;
00107 QString codigopadre;
00108 QString m_bloqueadaCuenta;
00109 QString m_nodebeCuenta;
00110 QString m_nohaberCuenta;
00111 QString m_tipoCuenta;
00113 QString m_idRegistroIva;
00114 QString m_rIvaContrapartida;
00115 QString m_rIvaBaseImp;
00116 QString m_rIvaIva;
00117 QString m_rIvaFFactura;
00118 QString m_rIvaFactura;
00119 QString m_rIvaCIF;
00120 QString m_rIvaIdFPago;
00121 QString m_rIvRecRegIva;
00123 QString m_idTipoIva;
00124 QString m_baseIva;
00125 QString m_nombreTipoIva;
00127 QString tagpadre;
00128
00129 public:
00130 StructureParser(postgresiface2 *, unsigned int tip = IMPORT_TODO);
00131 ~StructureParser();
00132 bool startDocument();
00133 bool startElement(const QString&, const QString&, const QString&, const QXmlAttributes&);
00134 bool endElement(const QString&, const QString&, const QString&);
00135 bool characters(const QString&);
00136
00137 private:
00138 QString indent;
00139 unsigned int m_tipo;
00140 };
00141
00142
00145 typedef QMap<QString, QString> tvalores;
00146
00147
00148 class ImportBulmaFact : public QXmlDefaultHandler {
00149 private:
00150 postgresiface2 *conexionbase;
00151 QString cadintermedia;
00152
00153 tvalores valores;
00155 QString tagpadre;
00156 pgimportfiles *pgimport;
00158 QList<tvalores> listalpresupuesto;
00159 QList<tvalores> listadpresupuesto;
00160 QList<tvalores> listalfactura;
00161 QList<tvalores> listadfactura;
00162 QList<tvalores> listalalbaran;
00163 QList<tvalores> listadalbaran;
00164 QList<tvalores> listalpedidocliente;
00165 QList<tvalores> listadpedidocliente;
00166
00167 public:
00168 ImportBulmaFact(pgimportfiles *, postgresiface2 *, unsigned long long int tip = IMPORT_TODO);
00169 ~ImportBulmaFact();
00170 bool startDocument();
00171 bool startElement(const QString&, const QString&, const QString&, const QXmlAttributes&);
00172 bool endElement(const QString&, const QString&, const QString&);
00173 bool characters(const QString&);
00174
00175 private:
00176 QString indent;
00177 unsigned int m_tipo;
00178 void printcontents();
00179 int trataCliente();
00180 int trataProveedor();
00181 int trataFormaPago();
00182 int trataAlmacen();
00183 int trataArticulo();
00184 int trataFactura();
00185 int trataLFactura();
00186 int trataDFactura();
00187 int trataPresupuesto();
00188 int trataLPresupuesto();
00189 int trataDPresupuesto();
00190 int trataFamilia();
00191 int trataAlbaran();
00192 int trataLAlbaran();
00193 int trataDAlbaran();
00194 int trataPedidoCliente();
00195 int trataLPedidoCliente();
00196 int trataDPedidoCliente();
00197 };
00198
00199
00201
00202
00204
00206 void pgimportfiles::alerta(int, int) {
00207 _depura("pgimportfiles::alerta", 0);
00208 _depura("END pgimportfiles::alerta", 0);
00209 }
00210
00211
00213
00215 void pgimportfiles::mensajeria(QString) {
00216 _depura("Funcion no implementada en esta clase\n", 2);
00217 }
00218
00219
00221
00224 void pgimportfiles::setFInicial(QString f) {
00225 _depura("pgimportfiles::setFInicial", 0);
00226 m_fInicial = f;
00227 _depura("END pgimportfiles::setFInicial", 0);
00228 }
00229
00230
00232
00235 void pgimportfiles::setFFinal(QString f) {
00236 _depura("pgimportfiles::setFFinal", 0);
00237 m_fFinal = f;
00238 _depura("END pgimportfiles::setFFinal", 0);
00239 }
00240
00241
00243
00245 void pgimportfiles::setModoTest() {
00246 _depura("pgimportfiles::setModoTest", 0);
00247 m_modoTest = TRUE;
00248 _depura("END pgimportfiles::setModoTest", 0);
00249 }
00250
00251
00253
00255 void pgimportfiles::setModoNormal() {
00256 _depura("pgimportfiles::setModoNormal", 0);
00257 m_modoTest = FALSE;
00258 _depura("END pgimportfiles::setModoNormal", 0);
00259 }
00260
00261
00263
00266 bool pgimportfiles::modoTest() {
00267 _depura("pgimportfiles::modoTest", 0);
00268 _depura("END spgimportfiles::modoTest", 0);
00269 return (m_modoTest == TRUE);
00270 }
00271
00273
00275 pgimportfiles::~pgimportfiles() {
00276 _depura("pgimportfiles::~pgimportfiles", 0);
00277 _depura("END pgimportfiles::~pgimportfiles", 0);
00278 }
00279
00281
00284 pgimportfiles::pgimportfiles(postgresiface2 *con) {
00285 _depura("pgimportfiles::pgimportfiles", 0);
00286 conexionbase = con;
00287 m_fInicial = "";
00288 m_fFinal = "";
00289 setModoNormal();
00290 _depura("END pgimportfiles::pgimportfiles", 0);
00291 }
00292
00294
00299 int pgimportfiles::bulmages2Contaplus(QFile &subcuentas, QFile &asientos) {
00300 _depura("pgimportfiles::bulmages2Contaplus", 0);
00301 QString codigo, descripcion;
00302 QString strblancomax;
00303 QTextStream stream(&subcuentas);
00304 QTextStream streamas(&asientos);
00306 strblancomax.fill(' ', 100);
00309 QString query = "SELECT * FROM cuenta WHERE idcuenta IN (SELECT DISTINCT idcuenta FROM apunte)";
00310 conexionbase->begin();
00311 cursor2 *curcta = conexionbase->cargacursor(query, "elquery");
00312 conexionbase->commit();
00313 while (!curcta->eof()) {
00314 QString linea="";
00315 linea += (curcta->valor("codigo") + strblancomax).left(LEN_CODIGO_CUENTA);
00316 linea += (curcta->valor("descripcion") + strblancomax).left(LEN_TITULO);
00317 linea += (curcta->valor("cifent_cuenta") + strblancomax).left(LEN_NIF);
00318 linea += (curcta->valor("dirent_cuenta") + strblancomax).left(LEN_DOMICILIO);
00319 linea += (strblancomax).left(LEN_POBLACION);
00320 linea += (strblancomax).left(LEN_CODPOSTAL);
00321 linea += (strblancomax).left(LEN_DIVISA);
00322 linea += (strblancomax).left(LEN_CTA_CODDIVISA);
00323 linea += (strblancomax).left(LEN_CTA_DOCUMENTO);
00324 linea += (strblancomax).left(LEN_AJUSTAME);
00325 linea += (strblancomax).left(LEN_TIPOIVA);
00326 linea += "\n";
00327 stream << linea;
00328 curcta->siguienteregistro();
00329 }
00330 delete curcta;
00331 query = "SELECT * FROM asiento, apunte, cuenta WHERE asiento.idasiento = apunte.idasiento AND cuenta.idcuenta = apunte.idcuenta ";
00332 if (m_fInicial != "")
00333 query += " AND asiento.fecha >= '" + m_fInicial + "'";
00334 if (m_fFinal != "")
00335 query += " AND asiento.fecha <= '" + m_fFinal + "'";
00336 query += " ORDER BY asiento.idasiento ";
00337 conexionbase->begin();
00338 cursor2 *curas = conexionbase->cargacursor(query, "masquery");
00339 conexionbase->commit();
00340 int i = 0;
00341 int numreg = curas->numregistros() + 1;
00342 while (!curas->eof()) {
00343 alerta(i++, numreg);
00344 QString linea = "";
00345 linea += (strblancomax + curas->valor("ordenasiento")).right(LEN_ASIEN);
00346 QString fecha = curas->valor("fecha");
00347 fecha = fecha.mid(6, 4) + fecha.mid(3, 2) + fecha.mid(0, 2);
00348 linea += (fecha + strblancomax).left(LEN_FECHA);
00349 linea += (curas->valor("codigo") + strblancomax).left(LEN_SUBCTA);
00350 linea += (strblancomax).left(LEN_CONTRA);
00351 QString cadaux;
00352 cadaux.sprintf("%2.2f", curas->valor("debe").toFloat());
00353 linea += (strblancomax + cadaux).right(LEN_PTADEBE);
00354 linea += (curas->valor("conceptocontable") + strblancomax).left(LEN_CONCEPTO);
00355 cadaux.sprintf("%2.2f", curas->valor("haber").toFloat());
00356 linea += (strblancomax + cadaux).right(LEN_PTAHABER);
00357 linea += (strblancomax).left(LEN_FACTURA);
00358 linea += (strblancomax).left(LEN_BASEIMPO);
00359 linea += (strblancomax).left(LEN_IVA);
00360 linea += (strblancomax).left(LEN_RECEQUIV);
00361 linea += (strblancomax).left(LEN_DOCUMENTO);
00362 linea += (strblancomax).left(LEN_DEPARTA);
00363 linea += (strblancomax).left(LEN_CLAVE);
00364 linea += (strblancomax).left(LEN_ESTADO);
00365 linea += (strblancomax).left(LEN_NCASADO);
00366 linea += (strblancomax).left(LEN_TCASADO);
00367 linea += (strblancomax).left(LEN_TRANS);
00368 linea += (strblancomax).left(LEN_CAMBIO);
00369 linea += (strblancomax + "0.00").right(LEN_DEBEME);
00370 linea += (strblancomax + "0.00").right(LEN_HABERME);
00371 linea += (strblancomax).left(LEN_AUXILIAR);
00372 linea += (strblancomax).left(LEN_SERIE);
00373 linea += (strblancomax).left(LEN_SUCURSAL);
00374 linea += (strblancomax).left(LEN_CODDIVISA);
00375 linea += (strblancomax).left(LEN_IMPAUXME);
00376 linea += ("2" + strblancomax).left(LEN_MONEDAUSO);
00379 cadaux.sprintf("%2.2f", curas->valor("debe").toFloat());
00380 cadaux = curas->valor("debe");
00381 linea += (strblancomax + cadaux).right(LEN_EURODEBE);
00382 cadaux.sprintf("%2.2f", curas->valor("haber").toFloat());
00383 cadaux = curas->valor("haber");
00384 linea += (strblancomax + cadaux).right(LEN_EUROHABER);
00385 linea += (strblancomax + "0.00").right(LEN_BASEEURO);
00386 linea += ("F" + strblancomax).left(LEN_NOCONV);
00387 linea += (strblancomax).left(LEN_NUMEROINV);
00388 linea += "\n";
00389 mensajeria(theApp->translate("pgimportfiles", "Exportando :") + curas->valor("codigo") + "--" + fecha + "\n");
00390 streamas << linea;
00391 curas->siguienteregistro();
00392 }
00393 delete curas;
00394 alerta (100, 100);
00395 _depura("END pgimportfiles::bulmages2Contaplus", 0);
00396 return 0;
00397 }
00398
00399
00401
00406 int pgimportfiles::contaplus2Bulmages(QFile &subcuentas, QFile &asientos) {
00407 _depura("pgimportfiles::contaplus2Bulmages", 0);
00408 QString idasiento;
00409 QString lopd_str, cuenta_str;
00410 QString debe, haber;
00411 QString query;
00412 QDate fecha1;
00413 QDate fechain(1, 1, 1);
00414 QDate fechafi(2999, 12, 31);
00415 int orden = 0;
00416 if (m_fInicial != "")
00417 fechain.setDate(m_fInicial.mid(6, 4).toInt(), m_fInicial.mid(3, 2).toInt(), m_fInicial.mid(0, 2).toInt());
00418 if (m_fFinal != "")
00419 fechafi.setDate(m_fFinal.mid(6, 4).toInt(), m_fFinal.mid(3, 2).toInt(), m_fFinal.mid(0, 2).toInt());
00421 QTextStream stream(&subcuentas);
00422 while (!subcuentas.atEnd()) {
00423 alerta(subcuentas.pos() + asientos.pos(), subcuentas.size() + asientos.size());
00424 QString line = stream.readLine();
00425 if (line.length() < 2)
00426 break;
00427 int pos = 0;
00428 QString cod = line.mid(pos, LEN_CODIGO_CUENTA).trimmed();
00429 pos += LEN_CODIGO_CUENTA;
00430 QString titulo = line.mid(pos, LEN_TITULO).trimmed();
00431 pos += LEN_TITULO;
00432 QString nif = line.mid(pos, LEN_NIF).trimmed();
00433 pos += LEN_NIF;
00434 QString domicilio = line.mid(pos, LEN_DOMICILIO).trimmed();
00435 pos += LEN_DOMICILIO;
00436 QString poblacion = line.mid(pos,LEN_POBLACION).trimmed();
00437 pos += LEN_POBLACION;
00438 QString provincia = line.mid(pos, LEN_PROVINCIA).trimmed();
00439 pos += LEN_PROVINCIA;
00440 QString codpostal = line.mid(pos, LEN_CODPOSTAL).trimmed();
00441 pos += LEN_CODPOSTAL;
00442 QString divisa = line.mid(pos, LEN_DIVISA).trimmed();
00443 pos += LEN_DIVISA;
00444 QString cta_coddivisa = line.mid(pos, LEN_CTA_CODDIVISA).trimmed();
00445 pos += LEN_CTA_CODDIVISA;
00446 QString cta_documento = line.mid(pos, LEN_CTA_DOCUMENTO).trimmed();
00447 pos += LEN_CTA_DOCUMENTO;
00448 QString ajustame = line.mid(pos, LEN_AJUSTAME).trimmed();
00449 pos += LEN_AJUSTAME;
00450 QString tipoiva = line.mid(pos, LEN_TIPOIVA).trimmed();
00451 pos += LEN_TIPOIVA;
00453 QString query = "SELECT * FROM cuenta WHERE codigo = '" + cod + "'";
00454 conexionbase->begin();
00455 cursor2 *cursaux=conexionbase->cargacursor(query, "hol");
00456 conexionbase->commit();
00457 if (cursaux->eof()) {
00458 if(!cod.isEmpty()) {
00459 QString padre = searchParent(cod);
00460 QString idgrupo = cod.left(1);
00461 query = "INSERT INTO cuenta (imputacion, activo, tipocuenta, codigo, descripcion, cifent_cuenta, padre, nombreent_cuenta, dirent_cuenta, telent_cuenta, coment_cuenta, bancoent_cuenta, emailent_cuenta, webent_cuenta) VALUES (TRUE, TRUE, 1,'" + cod + "', '" + titulo + "', '" + nif + "', " + padre + ", 'importada de ContaPlus','" + domicilio + poblacion + provincia + codpostal + "','','','','','')";
00462 conexionbase->begin();
00463 int error = conexionbase->ejecuta(query);
00464 if (error) {
00465 conexionbase->rollback();
00466 return 1;
00467 }
00468 conexionbase->commit();
00469 mensajeria(theApp->translate("pgimportfiles", "<LI>Se ha insertado la cuenta ") + cod + "</LI>\n");
00470 }
00471 } else {
00472 mensajeria(theApp->translate("pgimportfiles", "<LI>Ya hay una cuenta con el codigo ") + cod + "</LI>\n");
00473 }
00474 delete cursaux;
00475 }
00476
00477 QTextStream stream2(&asientos);
00478 QString lastasiento = "0";
00479 int napunte = 0;
00480 while (!asientos.atEnd()) {
00481 alerta(subcuentas.pos() + asientos.pos(), subcuentas.size() + asientos.size());
00482 QString line = stream2.readLine();
00483 if (line.length() < 2)
00484 break;
00485 int pos = 0;
00486 QString asiento = line.mid(pos, LEN_ASIEN).trimmed();
00487 pos += LEN_ASIEN;
00488 QString fecha = line.mid(pos, LEN_FECHA).trimmed();
00489 fecha1.setDate(fecha.mid(0, 4).toInt(), fecha.mid(4, 2).toInt(), fecha.mid(6, 2).toInt());
00490 fecha = fecha.mid(0, 4) + "-" + fecha.mid(4, 2) + "-" + fecha.mid(6, 2);
00491 pos += LEN_FECHA;
00492 QString subcta = line.mid(pos, LEN_SUBCTA).trimmed();
00493 pos += LEN_SUBCTA;
00494 QString contra = line.mid(pos, LEN_CONTRA).trimmed();
00495 pos += LEN_CONTRA;
00496 QString ptadebe = line.mid(pos, LEN_PTADEBE).trimmed();
00497 pos += LEN_PTADEBE;
00498 QString concepto = line.mid(pos, LEN_CONCEPTO).trimmed();
00499 pos += LEN_CONCEPTO;
00500 QString ptahaber = line.mid(pos, LEN_PTAHABER).trimmed();
00501 pos += LEN_PTAHABER;
00502 QString factura = line.mid(pos, LEN_FACTURA).trimmed();
00503 pos += LEN_FACTURA;
00504 QString baseimpo = line.mid(pos, LEN_BASEIMPO).trimmed();
00505 pos += LEN_BASEIMPO;
00506 QString iva = line.mid(pos, LEN_IVA).trimmed();
00507 pos += LEN_IVA;
00508 QString recequiv = line.mid(pos, LEN_RECEQUIV).trimmed();
00509 pos += LEN_RECEQUIV;
00510 QString documento = line.mid(pos, LEN_DOCUMENTO).trimmed();
00511 pos += LEN_DOCUMENTO;
00512 QString departa = line.mid(pos, LEN_DEPARTA).trimmed();
00513 pos += LEN_DEPARTA;
00514 QString clave = line.mid(pos, LEN_CLAVE).trimmed();
00515 pos += LEN_CLAVE;
00516 QString estado = line.mid(pos, LEN_ESTADO).trimmed();
00517 pos += LEN_ESTADO;
00518 QString ncasado = line.mid(pos, LEN_NCASADO).trimmed();
00519 pos += LEN_NCASADO;
00520 QString tcasado = line.mid(pos, LEN_TCASADO).trimmed();
00521 pos += LEN_TCASADO;
00522 QString trans = line.mid(pos, LEN_TRANS).trimmed();
00523 pos += LEN_TRANS;
00524 QString cambio = line.mid(pos, LEN_CAMBIO).trimmed();
00525 pos += LEN_CAMBIO;
00526 QString debeme = line.mid(pos, LEN_DEBEME).trimmed();
00527 pos += LEN_DEBEME;
00528 QString haberme = line.mid(pos, LEN_HABERME).trimmed();
00529 pos += LEN_HABERME;
00530 QString auxiliar = line.mid(pos, LEN_AUXILIAR).trimmed();
00531 pos += LEN_AUXILIAR;
00532 QString serie = line.mid(pos, LEN_SERIE).trimmed();
00533 pos += LEN_SERIE;
00534 QString sucursal = line.mid(pos, LEN_SUCURSAL).trimmed();
00535 pos += LEN_SUCURSAL;
00536 QString coddivisa = line.mid(pos, LEN_CODDIVISA).trimmed();
00537 pos += LEN_CODDIVISA;
00538 QString impauxme = line.mid(pos, LEN_IMPAUXME).trimmed();
00539 pos += LEN_IMPAUXME;
00540 QString monedauso = line.mid(pos, LEN_MONEDAUSO).trimmed();
00541 pos += LEN_MONEDAUSO;
00542 QString eurodebe = line.mid(pos, LEN_EURODEBE).trimmed();
00543 pos += LEN_EURODEBE;
00544 QString eurohaber = line.mid(pos, LEN_EUROHABER).trimmed();
00545 pos += LEN_EUROHABER;
00546 QString baseeuro = line.mid(pos, LEN_BASEEURO).trimmed();
00547 pos += LEN_BASEEURO;
00548 QString noconv = line.mid(pos, LEN_NOCONV).trimmed();
00549 pos += LEN_NOCONV;
00550 QString numeroinv = line.mid(pos, LEN_NUMEROINV).trimmed();
00551 pos += LEN_NUMEROINV;
00552
00553 if (asiento != lastasiento) {
00554 if (lastasiento != "0") {
00555 query = "SELECT cierraasiento(" + idasiento + ")";
00556 if (!modoTest()) {
00557 conexionbase->begin();
00558 cursor2 * cur = conexionbase->cargacursor(query, "hola");
00559 conexionbase->commit();
00560 delete cur;
00561 }
00562 }
00563 if (fecha1 >= fechain && fecha1 <= fechafi) {
00564 query="INSERT INTO asiento (fecha, comentariosasiento, clase) VALUES ('" + fecha + "','Importado de Contaplus', 1 )";
00565 conexionbase->begin();
00566 if (!modoTest()) {
00567 int error = conexionbase->ejecuta(query);
00568 if (error) {
00569 conexionbase->rollback();
00570 return 1;
00571 }
00572 }
00573 query = "SELECT max(idasiento) as idasiento FROM asiento";
00574 cursor2 *cur=conexionbase->cargacursor(query);
00575 idasiento = cur->valor("idasiento");
00576 conexionbase->commit();
00577 delete cur;
00578 napunte = 0;
00579 lastasiento = asiento;
00580 orden = 0;
00581 mensajeria(theApp->translate("pgimportfiles","<LI>Insercion de asiento") + idasiento + "</LI>\n");
00582 }
00583 }
00584 napunte++;
00585 if (monedauso == "1") {
00586
00587 debe = ptahaber + "/" + S_EURO;
00588 haber = ptadebe + "/" + S_EURO;
00589 } else {
00590 debe = eurodebe;
00591 haber = eurohaber;
00592 }
00593 query = "SELECT * FROM cuenta WHERE codigo = '" + subcta + "'";
00594 conexionbase->begin();
00595 cursor2 *cur=conexionbase->cargacursor(query, "elquery");
00596 conexionbase->commit();
00597 if (!cur->eof()) {
00598 if (fecha1 >= fechain && fecha1 <= fechafi) {
00599 if (!modoTest() ) {
00600 query = "INSERT INTO borrador (idasiento, idcuenta, fecha, conceptocontable, debe, haber, orden) VALUES (" + idasiento + ", id_cuenta('" + subcta + "'), '" + fecha + "','" + concepto + "'," + debe + "," + haber + "," + QString::number(orden++) + " )";
00601 conexionbase->begin();
00602 int error = conexionbase->ejecuta(query);
00603 if (error) {
00604 conexionbase->rollback();
00605 return 1;
00606 }
00607 conexionbase->commit();
00608 }
00609 mensajeria(theApp->translate("pgimportfiles", "<LI>Insercion de apunte") + subcta + "," + concepto + "</LI>\n");
00610 } else {
00611 mensajeria(theApp->translate("pgimportfiles", "<LI>Apunte fuera de fecha</LI>\n"));
00612 }
00613 }
00614 }
00615 if (lastasiento != "0") {
00616 if(!modoTest()) {
00617 query = "SELECT cierraasiento(" + idasiento + ")";
00618 cursor2 * cur = conexionbase->cargacursor(query);
00619 delete cur;
00620 }
00621 }
00622 mensajeria(theApp->translate("pgimportfiles", "<LI>Terminado</LI>\n"));
00623 alerta(subcuentas.size() + asientos.size(), subcuentas.size() + asientos.size());
00624 _depura("END pgimportfiles::contaplus2Bulmages", 0);
00625 return 0;
00626 }
00627
00628
00631
00636 QString pgimportfiles::searchParent(QString cod) {
00637 _depura("pgimportfiles::searchParent", 0);
00638 QString padre = "NULL";
00639 QString query;
00640 int i = 2;
00641 int fin = 0;
00642 while (!fin) {
00643 query = "SELECT * FROM cuenta WHERE codigo = '" + cod.left(i) + "'";
00644 conexionbase->begin();
00645 cursor2 *cur = conexionbase->cargacursor(query, "unquery");
00646 conexionbase->commit();
00647 if (!cur->eof()) {
00648 padre = cur->valor("idcuenta");
00649 } else {
00650 fin = 1;
00651 }
00652 delete cur;
00653 i++;
00654 }
00655 _depura("END pgimportfiles::searchParent", 0);
00656 return padre;
00657 }
00658
00659
00661
00666 int pgimportfiles::bulmafact2XML(QFile &xmlfile, unsigned long long int tipo) {
00667 _depura("pgimportfiles::bulmafact2XML", 0);
00668 QTextStream stream(&xmlfile);
00669 stream << "<?xml version=\"1.0\" encoding = \"iso-8859-1\"?>\n"
00670 "<!DOCTYPE FUGIT>\n"
00671 "<FUGIT version='0.3.1' origen='BulmaGes'"
00672 " date='" << QDate().toString(Qt::ISODate) << "'>\n";
00673
00674 if (tipo & IMPORT_FORMAS_PAGO) {
00675 QString query = "SELECT * FROM forma_pago";
00676 cursor2 *curc = conexionbase->cargacursor(query);
00677 while (!curc->eof()) {
00678 stream << "<FORMA_PAGO>\n";
00679 stream << "\t<IDFORMA_PAGO>" << XMLProtect(curc->valor("idforma_pago")) << "</IDFORMA_PAGO>\n";
00680 stream << "\t<DESCFORMA_PAGO>" << XMLProtect(curc->valor("descforma_pago")) << "</DESCFORMA_PAGO>\n";
00681 stream << "\t<DIAS1TFORMA_PAGO>" << XMLProtect(curc->valor("dias1tforma_pago")) << "</DIAS1TFORMA_PAGO>\n";
00682 stream << "\t<DESCUENTOFORMA_PAGO>" << XMLProtect(curc->valor("descuentoforma_pago")) << "</DESCUENTOFORMA_PAGO>\n";
00683 stream << "</FORMA_PAGO>\n";
00684 mensajeria(theApp->translate("pgimportfiles", "<LI>Exportando Nueva Forma de Pago</LI>\n"));
00685 curc->siguienteregistro();
00686 }
00687 delete curc;
00688 }
00689
00690 if (tipo & IMPORT_ALMACENES) {
00691 QString query = "SELECT * FROM almacen";
00692 cursor2 *curc = conexionbase->cargacursor(query);
00693 while (!curc->eof()) {
00694 stream << "<ALMACEN>\n";
00695 stream << "\t<IDALMACEN>" << XMLProtect(curc->valor("idalmacen")) << "</IDALMACEN>\n";
00696 stream << "\t<CODIGOALMACEN>" << XMLProtect(curc->valor("codigoalmacen")) << "</CODIGOALMACEN>\n";
00697 stream << "\t<NOMALMACEN>" << XMLProtect(curc->valor("nomalmacen")) << "</NOMALMACEN>\n";
00698 stream << "\t<DIRALMACEN>" << XMLProtect(curc->valor("diralmacen")) << "</DIRALMACEN>\n";
00699 stream << "\t<POBLALMACEN>" << XMLProtect(curc->valor("poblalmacen")) << "</POBLALMACEN>\n";
00700 stream << "\t<CPALMACEN>" << XMLProtect(curc->valor("cpalmacen")) << "</CPALMACEN>\n";
00701 stream << "\t<TELALMACEN>" << XMLProtect(curc->valor("telalmacen")) << "</TELALMACEN>\n";
00702 stream << "\t<FAXALMACEN>" << XMLProtect(curc->valor("faxalmacen")) << "</FAXALMACEN>\n";
00703 stream << "\t<EMAILALMACEN>" << XMLProtect(curc->valor("emailalmacen")) << "</EMAILALMACEN>\n";
00704 stream << "\t<INACTIVOALMACEN>" << XMLProtect(curc->valor("inactivoalmacen")) << "</INACTIVOALMACEN>\n";
00705 stream << "</ALMACEN>\n";
00706 curc->siguienteregistro();
00707 }
00708 delete curc;
00709 }
00710
00711 if (tipo & IMPORT_TRABAJADORES) {
00712 QString query = "SELECT * FROM trabajador";
00713 cursor2 *curc = conexionbase->cargacursor(query);
00714 while (!curc->eof()) {
00715 stream << "<TRABAJADOR>\n";
00716 stream << "\t<IDTRABAJADOR>" << XMLProtect(curc->valor("idtrabajador")) << "</IDTRABAJADOR>\n";
00717 stream << "\t<NOMTRABAJADOR>" << XMLProtect(curc->valor("nomtrabajador")) << "</NOMTRABAJADOR>\n";
00718 stream << "\t<APELLIDOSTRABAJADOR>" << XMLProtect(curc->valor("apellidostrabajador")) << "</APELLIDOSTRABAJADOR>\n";
00719 stream << "\t<DIRTRABAJADOR>" << XMLProtect(curc->valor("dirtrabajador")) << "</DIRTRABAJADOR>\n";
00720 stream << "\t<NSSTRABAJADOR>" << XMLProtect(curc->valor("nsstrabajador")) << "</NSSTRABAJADOR>\n";
00721 stream << "\t<TELTRABAJADOR>" << XMLProtect(curc->valor("teltrabajador")) << "</TELTRABAJADOR>\n";
00722 stream << "\t<MOVILTRABAJADOR>" << XMLProtect(curc->valor("moviltrabajador")) << "</MOVILTRABAJADOR>\n";
00723 stream << "\t<EMAILTRABAJADOR>" << XMLProtect(curc->valor("emailtrabajador")) << "</EMAILTRABAJADOR>\n";
00724 stream << "\t<FOTOTRABAJADOR>" << XMLProtect(curc->valor("fototrabajador")) << "</FOTOTRABAJADOR>\n";
00725 stream << "\t<ACTIVOTRABAJADOR>" << XMLProtect(curc->valor("activotrabajador")) << "</ACTIVOTRABAJADOR>\n";
00726 stream << "</TRABAJADOR>\n";
00727 curc->siguienteregistro();
00728 }
00729 delete curc;
00730 }
00731
00732 if (tipo & IMPORT_CLIENTES) {
00733 QString query = "SELECT * FROM cliente ORDER BY cifcliente";
00734 cursor2 *curc = conexionbase->cargacursor(query);
00735 while (!curc->eof()) {
00736 stream << "<CLIENTE>\n";
00737 stream << "\t<IDCLIENTE>" << XMLProtect(curc->valor("idcliente")) << "</IDCLIENTE>\n";
00738 stream << "\t<NOMCLIENTE>" << XMLProtect(curc->valor("nomcliente")) << "</NOMCLIENTE>\n";
00739 stream << "\t<NOMALTCLIENTE>" << XMLProtect(curc->valor("nomaltcliente")) << "</NOMALTCLIENTE>\n";
00740 stream << "\t<CIFCLIENTE>" << XMLProtect(curc->valor("cifcliente")) << "</CIFCLIENTE>\n";
00741 stream << "\t<BANCOCLIENTE>" << XMLProtect(curc->valor("bancocliente")) << "</BANCOCLIENTE>\n";
00742 stream << "\t<DIRCLIENTE>" << XMLProtect(curc->valor("dircliente")) << "</DIRCLIENTE>\n";
00743 stream << "\t<POBLCLIENTE>" << XMLProtect(curc->valor("poblcliente")) << "</POBLCLIENTE>\n";
00744 stream << "\t<CPCLIENTE>" << XMLProtect(curc->valor("cpcliente")) << "</CPCLIENTE>\n";
00745 stream << "\t<TELCLIENTE>" << XMLProtect(curc->valor("telcliente")) << "</TELCLIENTE>\n";
00746 stream << "\t<FAXCLIENTE>" << XMLProtect(curc->valor("faxcliente")) << "</FAXCLIENTE>\n";
00747 stream << "\t<MAILCLIENTE>" << XMLProtect(curc->valor("mailcliente")) << "</MAILCLIENTE>\n";
00748 stream << "\t<URLCLIENTE>" << XMLProtect(curc->valor("urlcliente")) << "</URLCLIENTE>\n";
00749 stream << "\t<FALTACLIENTE>" << XMLProtect(curc->valor("faltacliente")) << "</FALTACLIENTE>\n";
00750 stream << "\t<FBAJACLIENTE>" << XMLProtect(curc->valor("fbajacliente")) << "</FBAJACLIENTE>\n";
00751 stream << "\t<COMENTCLIENTE>" << XMLProtect(curc->valor("comentcliente")) << "</COMENTCLIENTE>\n";
00752 stream << "\t<INACTIVOCLIENTE>" << XMLProtect(curc->valor("inactivocliente")) << "</INACTIVOCLIENTE>\n";
00753 stream << "\t<PROVCLIENTE>" << XMLProtect(curc->valor("provcliente")) << "</PROVCLIENTE>\n";
00754 stream << "</CLIENTE>\n";
00755 curc->siguienteregistro();
00756 }
00757 delete curc;
00758 }
00759
00760 if (tipo & IMPORT_PROVEEDORES) {
00761 QString query = "SELECT * FROM proveedor ORDER BY cifproveedor";
00762 cursor2 *curc = conexionbase->cargacursor(query);
00763 while (!curc->eof()) {
00764 stream << "<PROVEEDOR>\n";
00765 stream << "\t<IDPROVEEDOR>" << XMLProtect(curc->valor("idproveedor")) << "</IDPROVEEDOR>\n";
00766 stream << "\t<NOMPROVEEDOR>" << XMLProtect(curc->valor("nomproveedor")) << "</NOMPROVEEDOR>\n";
00767 stream << "\t<NOMALTPROVEEDOR>" << XMLProtect(curc->valor("nomaltproveedor")) << "</NOMALTPROVEEDOR>\n";
00768 stream << "\t<CIFPROVEEDOR>" << XMLProtect(curc->valor("cifproveedor")) << "</CIFPROVEEDOR>\n";
00769 stream << "\t<CODICLIPROVEEDOR>" << XMLProtect(curc->valor("codicliproveedor")) << "</CODICLIPROVEEDOR>\n";
00770 stream << "\t<CBANCPROVEEDOR>" << XMLProtect(curc->valor("cbancproveedor")) << "</CBANCPROVEEDOR>\n";
00771 stream << "\t<COMENTPROVEEDOR>" << XMLProtect(curc->valor("comentproveedor")) << "</COMENTPROVEEDOR>\n";
00772 stream << "\t<DIRPROVEEDOR>" << XMLProtect(curc->valor("dirproveedor")) << "</DIRPROVEEDOR>\n";
00773 stream << "\t<POBLPROVEEDOR>" << XMLProtect(curc->valor("poblproveedor")) << "</POBLPROVEEDOR>\n";
00774 stream << "\t<CPPROVEEDOR>" << XMLProtect(curc->valor("cpproveedor")) << "</CPPROVEEDOR>\n";
00775 stream << "\t<TELPROVEEDOR>" << XMLProtect(curc->valor("telproveedor")) << "</TELPROVEEDOR>\n";
00776 stream << "\t<FAXPROVEEDOR>" << XMLProtect(curc->valor("faxproveedor")) << "</FAXPROVEEDOR>\n";
00777 stream << "\t<EMAILPROVEEDOR>" << XMLProtect(curc->valor("emailproveedor")) << "</EMAILPROVEEDOR>\n";
00778 stream << "\t<URLPROVEEDOR>" << XMLProtect(curc->valor("urlproveedor")) << "</URLPROVEEDOR>\n";
00779 stream << "\t<CLAVEPROVEEDOR>" << XMLProtect(curc->valor("clavewebproveedor")) << "</CLAVEPROVEEDOR>\n";
00780 stream << "\t<INACTIVOPROVEEDOR>" << XMLProtect(curc->valor("inactivoproveedor")) << "</INACTIVOPROVEEDOR>\n";
00781 stream << "</PROVEEDOR>\n";
00782 curc->siguienteregistro();
00783 }
00784 delete curc;
00785 }
00786
00787 if (tipo & IMPORT_FAMILIAS) {
00788 QString query = "SELECT * FROM familia ORDER BY codigocompletofamilia ";
00789 cursor2 *curc = conexionbase->cargacursor(query);
00790 while (!curc->eof()) {
00791 stream << "<FAMILIA>\n";
00792 stream << "\t<IDFAMILIA>" << XMLProtect(curc->valor("idfamilia")) << "</IDFAMILIA>\n";
00793 stream << "\t<CODIGOFAMILIA>" << XMLProtect(curc->valor("codigofamilia")) << "</CODIGOFAMILIA>\n";
00794 stream << "\t<NOMBREFAMILIA>" << XMLProtect(curc->valor("nombrefamilia")) << "</NOMBREFAMILIA>\n";
00795 stream << "\t<DESCFAMILIA>" << XMLProtect(curc->valor("descfamilia")) << "</DESCFAMILIA>\n";
00796 stream << "\t<PADREFAMILIA>" << XMLProtect(curc->valor("padrefamilia")) << "</PADREFAMILIA>\n";
00797 stream << "\t<CODIGOCOMPLETOFAMILIA>" << XMLProtect(curc->valor("codigocompletofamilia")) << "</CODIGOCOMPLETOFAMILIA>\n";
00798 stream << "</FAMILIA>\n";
00799 curc->siguienteregistro();
00800 }
00801 delete curc;
00802 }
00803
00804 if (tipo & IMPORT_ARTICULOS) {
00805 QString query = "SELECT * FROM articulo LEFT JOIN familia ON familia.idfamilia = articulo.idfamilia ";
00806 query += " LEFT JOIN tipo_articulo ON articulo.idtipo_articulo = tipo_articulo.idtipo_articulo ";
00807 query += " LEFT JOIN tipo_iva ON articulo.idtipo_iva = tipo_iva.idtipo_iva ";
00808 query += " ORDER BY codigocompletoarticulo ";
00809 cursor2 *curc = conexionbase->cargacursor(query);
00810 while (!curc->eof()) {
00811 stream << "<ARTICULO>\n";
00812 stream << "\t<IDARTICULO>" << XMLProtect(curc->valor("idarticulo")) << "</IDARTICULO>\n";
00813 stream << "\t<CODARTICULO>" << XMLProtect(curc->valor("codarticulo")) << "</CODARTICULO>\n";
00814 stream << "\t<NOMARTICULO>" << XMLProtect(curc->valor("nomarticulo")) << "</NOMARTICULO>\n";
00815 stream << "\t<ABREVARTICULO>" << XMLProtect(curc->valor("abrevarticulo")) << "</ABREVARTICULO>\n";
00816 stream << "\t<OBSERARTICULO>" << XMLProtect(curc->valor("obserarticulo")) << "</OBSERARTICULO>\n";
00817 stream << "\t<PRESENTABLEARTICULO>" << XMLProtect(curc->valor("presentablearticulo")) << "</PRESENTABLEARTICULO>\n";
00818 stream << "\t<CONTROLSTOCKARTICULO>" << XMLProtect(curc->valor("controlstockarticulo")) << "</CONTROLSTOCKARTICULO>\n";
00819 stream << "\t<IDTIPO_ARTICULO>" << XMLProtect(curc->valor("idtipo_articulo")) << "</IDTIPO_ARTICULO>\n";
00820 stream << "\t<IDTIPO_IVA>" << XMLProtect(curc->valor("idtipo_iva")) << "</IDTIPO_IVA>\n";
00821 stream << "\t<CODIGOCOMPLETOARTICULO>" << XMLProtect(curc->valor("codigocompletoarticulo")) << "</CODIGOCOMPLETOARTICULO>\n";
00822 stream << "\t<IDFAMILIA>" << XMLProtect(curc->valor("idfamilia")) << "</IDFAMILIA>\n";
00823 stream << "\t<STOCKARTICULO>" << XMLProtect(curc->valor("stockarticulo")) << "</STOCKARTICULO>\n";
00824 stream << "\t<INACTIVOARTICULO>" << XMLProtect(curc->valor("inactivoarticulo")) << "</INACTIVOARTICULO>\n";
00825 stream << "\t<PVPARTICULO>" << XMLProtect(curc->valor("pvparticulo")) << "</PVPARTICULO>\n";
00827 stream << "\t<CODIGOCOMPLETOFAMILIA>" << XMLProtect(curc->valor("codigocompletofamilia")) << "</CODIGOCOMPLETOFAMILIA>\n";
00828 stream << "\t<NOMBREFAMILIA>" << XMLProtect(curc->valor("nombrefamilia")) << "</NOMBREFAMILIA>\n";
00829 stream << "\t<CODTIPO_ARTICULO>" << XMLProtect(curc->valor("codtipo_articulo")) << "</CODTIPO_ARTICULO>\n";
00830 stream << "\t<DESCTIPO_ARTICULO>" << XMLProtect(curc->valor("desctipo_articulo")) << "</DESCTIPO_ARTICULO>\n";
00831 stream << "\t<DESCTIPO_IVA>" << XMLProtect(curc->valor("desctipo_iva")) << "</DESCTIPO_IVA>\n";
00832 stream << "</ARTICULO>\n";
00833 curc->siguienteregistro();
00834 }
00835 delete curc;
00836 }
00837
00839 if (tipo & IMPORT_FACTURASCLIENTE) {
00840 QString query = "SELECT * FROM factura ";
00841 query += " LEFT JOIN almacen ON factura.idalmacen = almacen.idalmacen ";
00842 query += " LEFT JOIN cliente ON cliente.idcliente = factura.idcliente ";
00843 query += " LEFT JOIN trabajador ON trabajador.idtrabajador = factura.idtrabajador ";
00844 query += " LEFT JOIN forma_pago ON forma_pago.idforma_pago = factura.idforma_pago ";
00845 cursor2 *curc = conexionbase->cargacursor(query);
00846 while (!curc->eof()) {
00847 stream << "<FACTURA>\n";
00848 stream << "\t<IDFACTURA>" << XMLProtect(curc->valor("idfactura")) << "</IDFACTURA>\n";
00849 stream << "\t<CODIGOSERIE_FACTURA>" << XMLProtect(curc->valor("codigoserie_factura")) << "</CODIGOSERIE_FACTURA>\n";
00850 stream << "\t<NUMFACTURA>" << XMLProtect(curc->valor("numfactura")) << "</NUMFACTURA>\n";
00851 stream << "\t<REFFACTURA>" << XMLProtect(curc->valor("reffactura")) << "</REFFACTURA>\n";
00852 stream << "\t<FFACTURA>" << XMLProtect(curc->valor("ffactura")) << "</FFACTURA>\n";
00853 stream << "\t<DESCFACTURA>" << XMLProtect(curc->valor("descfactura")) << "</DESCFACTURA>\n";
00854 stream << "\t<IDALMACEN>" << XMLProtect(curc->valor("idalmacen")) << "</IDALMACEN>\n";
00855 stream << "\t<CONTACTFACTURA>" << XMLProtect(curc->valor("contactfactura")) << "</CONTACTFACTURA>\n";
00856 stream << "\t<TELFACTURA>" << XMLProtect(curc->valor("telfactura")) << "</TELFACTURA>\n";
00857 stream << "\t<COMENTFACTURA>" << XMLProtect(curc->valor("comentfactura")) << "</COMENTFACTURA>\n";
00858 stream << "\t<PROCESADAFACTURA>" << XMLProtect(curc->valor("procesadafactura")) << "</PROCESADAFACTURA>\n";
00859 stream << "\t<IDUSUARI>" << XMLProtect(curc->valor("idusuari")) << "</IDUSUARI>\n";
00860 stream << "\t<IDCLIENTE>" << XMLProtect(curc->valor("idcliente")) << "</IDCLIENTE>\n";
00861 stream << "\t<IDFORMA_PAGO>" << XMLProtect(curc->valor("idforma_pago")) << "</IDFORMA_PAGO>\n";
00862 stream << "\t<IDTRABAJADOR>" << XMLProtect(curc->valor("idtrabajador")) << "</IDTRABAJADOR>\n";
00864 stream << "\t<CODIGOALMACEN>" << XMLProtect(curc->valor("codigoalmacen")) << "</CODIGOALMACEN>\n";
00865 stream << "\t<NOMALMACEN>" << XMLProtect(curc->valor("nomalmacen")) << "</NOMALMACEN>\n";
00866 stream << "\t<DIRALMACEN>" << XMLProtect(curc->valor("diralmacen")) << "</DIRALMACEN>\n";
00867 stream << "\t<POBLALMACEN>" << XMLProtect(curc->valor("poblalmacen")) << "</POBLALMACEN>\n";
00868 stream << "\t<CPALMACEN>" << XMLProtect(curc->valor("cpalmacen")) << "</CPALMACEN>\n";
00869 stream << "\t<TELALMACEN>" << XMLProtect(curc->valor("telalmacen")) << "</TELALMACEN>\n";
00871 stream << "\t<NOMCLIENTE>" << XMLProtect(curc->valor("nomcliente")) << "</NOMCLIENTE>\n";
00872 stream << "\t<NOMALTCLIENTE>" << XMLProtect(curc->valor("nomaltcliente")) << "</NOMALTCLIENTE>\n";
00873 stream << "\t<CIFCLIENTE>" << XMLProtect(curc->valor("cifcliente")) << "</CIFCLIENTE>\n";
00874 stream << "\t<BANCOCLIENTE>" << XMLProtect(curc->valor("bancocliente")) << "</BANCOCLIENTE>\n";
00875 stream << "\t<DIRCLIENTE>" << XMLProtect(curc->valor("dircliente")) << "</DIRCLIENTE>\n";
00876 stream << "\t<POBLCLIENTE>" << XMLProtect(curc->valor("poblcliente")) << "</POBLCLIENTE>\n";
00877 stream << "\t<CPCLIENTE>" << XMLProtect(curc->valor("cpcliente")) << "</CPCLIENTE>\n";
00878 stream << "\t<TELCLIENTE>" << XMLProtect(curc->valor("telcliente")) << "</TELCLIENTE>\n";
00879 stream << "\t<FAXCLIENTE>" << XMLProtect(curc->valor("faxcliente")) << "</FAXCLIENTE>\n";
00880 stream << "\t<MAILCLIENTE>" << XMLProtect(curc->valor("mailcliente")) << "</MAILCLIENTE>\n";
00881 stream << "\t<URLCLIENTE>" << XMLProtect(curc->valor("urlcliente")) << "</URLCLIENTE>\n";
00882 stream << "\t<PROVCLIENTE>" << XMLProtect(curc->valor("provcliente")) << "</PROVCLIENTE>\n";
00884 stream << "\t<NOMTRABAJADOR>" << XMLProtect(curc->valor("nomtrabajador")) << "</NOMTRABAJADOR>\n";
00885 stream << "\t<APELLIDOSTRABAJADOR>" << XMLProtect(curc->valor("apellidostrabajador")) << "</APELLIDOSTRABAJADOR>\n";
00886 stream << "\t<DIRTRABAJADOR>" << XMLProtect(curc->valor("dirtrabajador")) << "</DIRTRABAJADOR>\n";
00887 stream << "\t<NSSTRABAJADOR>" << XMLProtect(curc->valor("nsstrabajador")) << "</NSSTRABAJADOR>\n";
00888 stream << "\t<TELTRABAJADOR>" << XMLProtect(curc->valor("teltrabajador")) << "</TELTRABAJADOR>\n";
00889 stream << "\t<MOVILTRABAJADOR>" << XMLProtect(curc->valor("moviltrabajador")) << "</MOVILTRABAJADOR>\n";
00890 stream << "\t<EMAILTRABAJADOR>" << XMLProtect(curc->valor("emailtrabajador")) << "</EMAILTRABAJADOR>\n";
00892 stream << "\t<DESCFORMA_PAGO>" << XMLProtect(curc->valor("descforma_pago")) << "</DESCFORMA_PAGO>\n";
00893 stream << "\t<DIAS1TFORMA_PAGO>" << XMLProtect(curc->valor("dias1tforma_pago")) << "</DIAS1TFORMA_PAGO>\n";
00894 stream << "\t<DESCUENTOFORMA_PAGO>" << XMLProtect(curc->valor("descuentoforma_pago")) << "</DESCUENTOFORMA_PAGO>\n";
00895
00897 cursor2 *curlc = conexionbase->cargacursor("SELECT * FROM lfactura LEFT JOIN articulo ON lfactura.idarticulo = articulo.idarticulo WHERE idfactura = " + curc->valor("idfactura"));
00898 while (!curlc->eof()) {
00899 stream << "\t\t<LFACTURA>\n";
00900 stream << "\t\t\t<IDLFACTURA>" << XMLProtect(curlc->valor("idlfactura")) << "</IDLFACTURA>\n";
00901 stream << "\t\t\t<DESCLFACTURA>" << XMLProtect(curlc->valor("desclfactura")) << "</DESCLFACTURA>\n";
00902 stream << "\t\t\t<CANTLFACTURA>" << XMLProtect(curlc->valor("cantlfactura")) << "</CANTLFACTURA>\n";
00903 stream << "\t\t\t<PVPLFACTURA>" << XMLProtect(curlc->valor("pvplfactura")) << "</PVPLFACTURA>\n";
00904 stream << "\t\t\t<IVALFACTURA>" << XMLProtect(curlc->valor("ivalfactura")) << "</IVALFACTURA>\n";
00905 stream << "\t\t\t<DESCUENTOLFACTURA>" << XMLProtect(curlc->valor("descuentolfactura")) << "</DESCUENTOLFACTURA>\n";
00906 stream << "\t\t\t<IDFACTURA>" << XMLProtect(curlc->valor("idfactura")) << "</IDFACTURA>\n";
00907 stream << "\t\t\t<IDARTICULO>" << XMLProtect(curlc->valor("idarticulo")) << "</IDARTICULO>\n";
00909 stream << "\t\t\t<CODARTICULO>" << XMLProtect(curlc->valor("codarticulo")) << "</CODARTICULO>\n";
00910 stream << "\t\t\t<NOMARTICULO>" << XMLProtect(curlc->valor("nomarticulo")) << "</NOMARTICULO>\n";
00911 stream << "\t\t\t<ABREVARTICULO>" << XMLProtect(curlc->valor("abrevarticulo")) << "</ABREVARTICULO>\n";
00912 stream << "\t<CODIGOCOMPLETOARTICULO>" << XMLProtect(curlc->valor("codigocompletoarticulo")) << "</CODIGOCOMPLETOARTICULO>\n";
00913 stream << "\t\t</LFACTURA>\n";
00914 curlc->siguienteregistro();
00915 }
00916 delete curlc;
00918 curlc = conexionbase->cargacursor("SELECT * FROM dfactura WHERE idfactura = " + curc->valor("idfactura"));
00919 while (!curlc->eof()) {
00920 stream << "\t\t<DFACTURA>\n";
00921 stream << "\t\t\t<IDDFACTURA>" << XMLProtect(curlc->valor("iddfactura")) << "</IDDFACTURA>\n";
00922 stream << "\t\t\t<CONCEPTDFACTURA>" << XMLProtect(curlc->valor("conceptdfactura")) << "</CONCEPTDFACTURA>\n";
00923 stream << "\t\t\t<PROPORCIONDFACTURA>" << XMLProtect(curlc->valor("proporciondfactura")) << "</PROPORCIONDFACTURA>\n";
00924 stream << "\t\t\t<IDFACTURA>" << XMLProtect(curlc->valor("idfactura")) << "</IDFACTURA>\n";
00925 stream << "\t\t</DFACTURA>\n";
00926 curlc->siguienteregistro();
00927 }
00928 delete curlc;
00929 stream << "</FACTURA>\n";
00930 curc->siguienteregistro();
00931 }
00932 delete curc;
00933 }
00934
00936 if (tipo & IMPORT_PRESUPUESTOSCLIENTE) {
00937 QString query = "SELECT * FROM presupuesto ";
00938 query += " LEFT JOIN almacen ON presupuesto.idalmacen = almacen.idalmacen ";
00939 query += " LEFT JOIN cliente ON cliente.idcliente = presupuesto.idcliente ";
00940 query += " LEFT JOIN trabajador ON trabajador.idtrabajador = presupuesto.idtrabajador ";
00941 query += " LEFT JOIN forma_pago ON forma_pago.idforma_pago = presupuesto.idforma_pago ";
00942 cursor2 *curc = conexionbase->cargacursor(query);
00943 while (!curc->eof()) {
00944 stream << "<PRESUPUESTO>\n";
00945 stream << "\t<IDPRESUPUESTO>" << XMLProtect(curc->valor("idpresupuesto")) << "</IDPRESUPUESTO>\n";
00946 stream << "\t<NUMPRESUPUESTO>" << XMLProtect(curc->valor("numpresupuesto")) << "</NUMPRESUPUESTO>\n";
00947 stream << "\t<REFPRESUPUESTO>" << XMLProtect(curc->valor("refpresupuesto")) << "</REFPRESUPUESTO>\n";
00948 stream << "\t<FPRESUPUESTO>" << XMLProtect(curc->valor("fpresupuesto")) << "</FPRESUPUESTO>\n";
00949 stream << "\t<DESCPRESUPUESTO>" << XMLProtect(curc->valor("descpresupuesto")) << "</DESCPRESUPUESTO>\n";
00950 stream << "\t<CONTACTPRESUPUESTO>" << XMLProtect(curc->valor("contactpresupuesto")) << "</CONTACTPRESUPUESTO>\n";
00951 stream << "\t<TELPRESUPUESTO>" << XMLProtect(curc->valor("telpresupuesto")) << "</TELPRESUPUESTO>\n";
00952 stream << "\t<VENCPRESUPUESTO>" << XMLProtect(curc->valor("vencpresupuesto")) << "</VENCPRESUPUESTO>\n";
00953 stream << "\t<COMENTPRESUPUESTO>" << XMLProtect(curc->valor("comentpresupuesto")) << "</COMENTPRESUPUESTO>\n";
00954 stream << "\t<IDUSUARI>" << XMLProtect(curc->valor("idusuari")) << "</IDUSUARI>\n";
00955 stream << "\t<PROCESADOPRESUPUESTO>" << XMLProtect(curc->valor("procesadopresupuesto")) << "</PROCESADOPRESUPUESTO>\n";
00956 stream << "\t<IDCLIENTE>" << XMLProtect(curc->valor("idcliente")) << "</IDCLIENTE>\n";
00957 stream << "\t<IDALMACEN>" << XMLProtect(curc->valor("idalmacen")) << "</IDALMACEN>\n";
00958 stream << "\t<IDFORMA_PAGO>" << XMLProtect(curc->valor("idforma_pago")) << "</IDFORMA_PAGO>\n";
00959 stream << "\t<IDTRABAJADOR>" << XMLProtect(curc->valor("idtrabajador")) << "</IDTRABAJADOR>\n";
00961 stream << "\t<CODIGOALMACEN>" << XMLProtect(curc->valor("codigoalmacen")) << "</CODIGOALMACEN>\n";
00962 stream << "\t<NOMALMACEN>" << XMLProtect(curc->valor("nomalmacen")) << "</NOMALMACEN>\n";
00963 stream << "\t<DIRALMACEN>" << XMLProtect(curc->valor("diralmacen")) << "</DIRALMACEN>\n";
00964 stream << "\t<POBLALMACEN>" << XMLProtect(curc->valor("poblalmacen")) << "</POBLALMACEN>\n";
00965 stream << "\t<CPALMACEN>" << XMLProtect(curc->valor("cpalmacen")) << "</CPALMACEN>\n";
00966 stream << "\t<TELALMACEN>" << XMLProtect(curc->valor("telalmacen")) << "</TELALMACEN>\n";
00968 stream << "\t<NOMCLIENTE>" << XMLProtect(curc->valor("nomcliente")) << "</NOMCLIENTE>\n";
00969 stream << "\t<NOMALTCLIENTE>" << XMLProtect(curc->valor("nomaltcliente")) << "</NOMALTCLIENTE>\n";
00970 stream << "\t<CIFCLIENTE>" << XMLProtect(curc->valor("cifcliente")) << "</CIFCLIENTE>\n";
00971 stream << "\t<BANCOCLIENTE>" << XMLProtect(curc->valor("bancocliente")) << "</BANCOCLIENTE>\n";
00972 stream << "\t<DIRCLIENTE>" << XMLProtect(curc->valor("dircliente")) << "</DIRCLIENTE>\n";
00973 stream << "\t<POBLCLIENTE>" << XMLProtect(curc->valor("poblcliente")) << "</POBLCLIENTE>\n";
00974 stream << "\t<CPCLIENTE>" << XMLProtect(curc->valor("cpcliente")) << "</CPCLIENTE>\n";
00975 stream << "\t<TELCLIENTE>" << XMLProtect(curc->valor("telcliente")) << "</TELCLIENTE>\n";
00976 stream << "\t<FAXCLIENTE>" << XMLProtect(curc->valor("faxcliente")) << "</FAXCLIENTE>\n";
00977 stream << "\t<MAILCLIENTE>" << XMLProtect(curc->valor("mailcliente")) << "</MAILCLIENTE>\n";
00978 stream << "\t<URLCLIENTE>" << XMLProtect(curc->valor("urlcliente")) << "</URLCLIENTE>\n";
00979 stream << "\t<PROVCLIENTE>" << XMLProtect(curc->valor("provcliente")) << "</PROVCLIENTE>\n";
00981 stream << "\t<NOMTRABAJADOR>" << XMLProtect(curc->valor("nomtrabajador")) << "</NOMTRABAJADOR>\n";
00982 stream << "\t<APELLIDOSTRABAJADOR>" << XMLProtect(curc->valor("apellidostrabajador")) << "</APELLIDOSTRABAJADOR>\n";
00983 stream << "\t<DIRTRABAJADOR>" << XMLProtect(curc->valor("dirtrabajador")) << "</DIRTRABAJADOR>\n";
00984 stream << "\t<NSSTRABAJADOR>" << XMLProtect(curc->valor("nsstrabajador")) << "</NSSTRABAJADOR>\n";
00985 stream << "\t<TELTRABAJADOR>" << XMLProtect(curc->valor("teltrabajador")) << "</TELTRABAJADOR>\n";
00986 stream << "\t<MOVILTRABAJADOR>" << XMLProtect(curc->valor("moviltrabajador")) << "</MOVILTRABAJADOR>\n";
00987 stream << "\t<EMAILTRABAJADOR>" << XMLProtect(curc->valor("emailtrabajador")) << "</EMAILTRABAJADOR>\n";
00989 stream << "\t<DESCFORMA_PAGO>" << XMLProtect(curc->valor("descforma_pago")) << "</DESCFORMA_PAGO>\n";
00990 stream << "\t<DIAS1TFORMA_PAGO>" << XMLProtect(curc->valor("dias1tforma_pago")) << "</DIAS1TFORMA_PAGO>\n";
00991 stream << "\t<DESCUENTOFORMA_PAGO>" << XMLProtect(curc->valor("descuentoforma_pago")) << "</DESCUENTOFORMA_PAGO>\n";
00993 cursor2 *curlc = conexionbase->cargacursor("SELECT * FROM lpresupuesto LEFT JOIN articulo ON lpresupuesto.idarticulo = articulo.idarticulo WHERE idpresupuesto = " + curc->valor("idpresupuesto"));
00994 while (!curlc->eof()) {
00995 stream << "\t<LPRESUPUESTO>\n";
00996 stream << "\t\t<IDLPRESUPUESTO>" << XMLProtect(curlc->valor("idlpresupuesto")) << "</IDLPRESUPUESTO>\n";
00997 stream << "\t\t\t<DESCLPRESUPUESTO>" << XMLProtect(curlc->valor("desclpresupuesto")) << "</DESCLPRESUPUESTO>\n";
00998 stream << "\t\t<CANTLPRESUPUESTO>" << XMLProtect(curlc->valor("cantlpresupuesto")) << "</CANTLPRESUPUESTO>\n";
00999 stream << "\t\t<PVPLPRESUPUESTO>" << XMLProtect(curlc->valor("pvplpresupuesto")) << "</PVPLPRESUPUESTO>\n";
01000 stream << "\t\t<IVALPRESUPUESTO>" << XMLProtect(curlc->valor("ivalpresupuesto")) << "</IVALPRESUPUESTO>\n";
01001 stream << "\t\t<DESCUENTOLPRESUPUESTO>" << XMLProtect(curlc->valor("descuentolpresupuesto")) << "</DESCUENTOLPRESUPUESTO>\n";
01002 stream << "\t\t<IDPRESUPUESTO>" << XMLProtect(curlc->valor("idpresupuesto")) << "</IDPRESUPUESTO>\n";
01003 stream << "\t\t<IDARTICULO>" << XMLProtect(curlc->valor("idarticulo")) << "</IDARTICULO>\n";
01005 stream << "\t\t<CODARTICULO>" << XMLProtect(curlc->valor("codarticulo")) << "</CODARTICULO>\n";
01006 stream << "\t\t<NOMARTICULO>" << XMLProtect(curlc->valor("nomarticulo")) << "</NOMARTICULO>\n";
01007 stream << "\t\t<ABREVARTICULO>" << XMLProtect(curlc->valor("abrevarticulo")) << "</ABREVARTICULO>\n";
01008 stream << "\t\t<CODIGOCOMPLETOARTICULO>" << XMLProtect(curlc->valor("codigocompletoarticulo")) << "</CODIGOCOMPLETOARTICULO>\n";
01009 stream << "\t</LPRESUPUESTO>\n";
01010 curlc->siguienteregistro();
01011 }
01012 delete curlc;
01014 curlc = conexionbase->cargacursor("SELECT * FROM dpresupuesto WHERE idpresupuesto = " + curc->valor("idpresupuesto"));
01015 while (!curlc->eof()) {
01016 stream << "\t<DPRESUPUESTO>\n";
01017 stream << "\t\t<IDDPRESUPUESTO>" << XMLProtect(curlc->valor("iddpresupuesto")) << "</IDDPRESUPUESTO>\n";
01018 stream << "\t\t<CONCEPTDPRESUPUESTO>" << XMLProtect(curlc->valor("conceptdpresupuesto")) << "</CONCEPTDPRESUPUESTO>\n";
01019 stream << "\t\t<PROPORCIONDPRESUPUESTO>" << XMLProtect(curlc->valor("proporciondpresupuesto")) << "</PROPORCIONDPRESUPUESTO>\n";
01020 stream << "\t\t<IDPRESUPUESTO>" << XMLProtect(curlc->valor("idpresupuesto")) << "</IDPRESUPUESTO>\n";
01021 stream << "\t</DPRESUPUESTO>\n";
01022 curlc->siguienteregistro();
01023 }
01024 delete curlc;
01025 stream << "</PRESUPUESTO>\n";
01026 curc->siguienteregistro();
01027 }
01028 delete curc;
01029 }
01030
01032 if (tipo & IMPORT_PEDIDOSCLIENTE) {
01033 QString query = "SELECT * FROM pedidocliente ";
01034 query += " LEFT JOIN almacen ON pedidocliente.idalmacen = almacen.idalmacen ";
01035 query += " LEFT JOIN cliente ON cliente.idcliente = pedidocliente.idcliente ";
01036 query += " LEFT JOIN trabajador ON trabajador.idtrabajador = pedidocliente.idtrabajador ";
01037 query += " LEFT JOIN forma_pago ON forma_pago.idforma_pago = pedidocliente.idforma_pago ";
01038 cursor2 *curc = conexionbase->cargacursor(query);
01039 while (!curc->eof()) {
01040 stream << "<PEDIDOCLIENTE>\n";
01041 stream << "\t<IDPEDIDOCLIENTE>" << XMLProtect(curc->valor("idpedidocliente")) << "</IDPEDIDOCLIENTE>\n";
01042 stream << "\t<NUMPEDIDOCLIENTE>" << XMLProtect(curc->valor("numpedidocliente")) << "</NUMPEDIDOCLIENTE>\n";
01043 stream << "\t<FECHAPEDIDOCLIENTE>" << XMLProtect(curc->valor("fechapedidocliente")) << "</FECHAPEDIDOCLIENTE>\n";
01044 stream << "\t<REFPEDIDOCLIENTE>" << XMLProtect(curc->valor("refpedidocliente")) << "</REFPEDIDOCLIENTE>\n";
01045 stream << "\t<DESCPEDIDOCLIENTE>" << XMLProtect(curc->valor("descpedidocliente")) << "</DESCPEDIDOCLIENTE>\n";
01046 stream << "\t<CONTACTPEDIDOCLIENTE>" << XMLProtect(curc->valor("contactpedidocliente")) << "</CONTACTPEDIDOCLIENTE>\n";
01047 stream << "\t<TELPEDIDOCLIENTE>" << XMLProtect(curc->valor("telpedidocliente")) << "</TELPEDIDOCLIENTE>\n";
01048 stream << "\t<IDPRESUPUESTO>" << XMLProtect(curc->valor("idpresupuesto")) << "</IDPRESUPUESTO>\n";
01049 stream << "\t<COMENTPEDIDOCLIENTE>" << XMLProtect(curc->valor("comentpedidocliente")) << "</COMENTPEDIDOCLIENTE>\n";
01050 stream << "\t<IDUSUARI>" << XMLProtect(curc->valor("idusuari")) << "</IDUSUARI>\n";
01051 stream << "\t<PROCESADOPEDIDOCLIENTE>" << XMLProtect(curc->valor("procesadopedidocliente")) << "</PROCESADOPEDIDOCLIENTE>\n";
01052 stream << "\t<IDCLIENTE>" << XMLProtect(curc->valor("idcliente")) << "</IDCLIENTE>\n";
01053 stream << "\t<IDALMACEN>" << XMLProtect(curc->valor("idalmacen")) << "</IDALMACEN>\n";
01054 stream << "\t<IDFORMA_PAGO>" << XMLProtect(curc->valor("idforma_pago")) << "</IDFORMA_PAGO>\n";
01055 stream << "\t<IDTRABAJADOR>" << XMLProtect(curc->valor("idtrabajador")) << "</IDTRABAJADOR>\n";
01057 stream << "\t<CODIGOALMACEN>" << XMLProtect(curc->valor("codigoalmacen")) << "</CODIGOALMACEN>\n";
01058 stream << "\t<NOMALMACEN>" << XMLProtect(curc->valor("nomalmacen")) << "</NOMALMACEN>\n";
01059 stream << "\t<DIRALMACEN>" << XMLProtect(curc->valor("diralmacen")) << "</DIRALMACEN>\n";
01060 stream << "\t<POBLALMACEN>" << XMLProtect(curc->valor("poblalmacen")) << "</POBLALMACEN>\n";
01061 stream << "\t<CPALMACEN>" << XMLProtect(curc->valor("cpalmacen")) << "</CPALMACEN>\n";
01062 stream << "\t<TELALMACEN>" << XMLProtect(curc->valor("telalmacen")) << "</TELALMACEN>\n";
01064 stream << "\t<NOMCLIENTE>" << XMLProtect(curc->valor("nomcliente")) << "</NOMCLIENTE>\n";
01065 stream << "\t<NOMALTCLIENTE>" << XMLProtect(curc->valor("nomaltcliente")) << "</NOMALTCLIENTE>\n";
01066 stream << "\t<CIFCLIENTE>" << XMLProtect(curc->valor("cifcliente")) << "</CIFCLIENTE>\n";
01067 stream << "\t<BANCOCLIENTE>" << XMLProtect(curc->valor("bancocliente")) << "</BANCOCLIENTE>\n";
01068 stream << "\t<DIRCLIENTE>" << XMLProtect(curc->valor("dircliente")) << "</DIRCLIENTE>\n";
01069 stream << "\t<POBLCLIENTE>" << XMLProtect(curc->valor("poblcliente")) << "</POBLCLIENTE>\n";
01070 stream << "\t<CPCLIENTE>" << XMLProtect(curc->valor("cpcliente")) << "</CPCLIENTE>\n";
01071 stream << "\t<TELCLIENTE>" << XMLProtect(curc->valor("telcliente")) << "</TELCLIENTE>\n";
01072 stream << "\t<FAXCLIENTE>" << XMLProtect(curc->valor("faxcliente")) << "</FAXCLIENTE>\n";
01073 stream << "\t<MAILCLIENTE>" << XMLProtect(curc->valor("mailcliente")) << "</MAILCLIENTE>\n";
01074 stream << "\t<URLCLIENTE>" << XMLProtect(curc->valor("urlcliente")) << "</URLCLIENTE>\n";
01075 stream << "\t<PROVCLIENTE>" << XMLProtect(curc->valor("provcliente")) << "</PROVCLIENTE>\n";
01077 stream << "\t<NOMTRABAJADOR>" << XMLProtect(curc->valor("nomtrabajador")) << "</NOMTRABAJADOR>\n";
01078 stream << "\t<APELLIDOSTRABAJADOR>" << XMLProtect(curc->valor("apellidostrabajador")) << "</APELLIDOSTRABAJADOR>\n";
01079 stream << "\t<DIRTRABAJADOR>" << XMLProtect(curc->valor("dirtrabajador")) << "</DIRTRABAJADOR>\n";
01080 stream << "\t<NSSTRABAJADOR>" << XMLProtect(curc->valor("nsstrabajador")) << "</NSSTRABAJADOR>\n";
01081 stream << "\t<TELTRABAJADOR>" << XMLProtect(curc->valor("teltrabajador")) << "</TELTRABAJADOR>\n";
01082 stream << "\t<MOVILTRABAJADOR>" << XMLProtect(curc->valor("moviltrabajador")) << "</MOVILTRABAJADOR>\n";
01083 stream << "\t<EMAILTRABAJADOR>" << XMLProtect(curc->valor("emailtrabajador")) << "</EMAILTRABAJADOR>\n";
01085 stream << "\t<DESCFORMA_PAGO>" << XMLProtect(curc->valor("descforma_pago")) << "</DESCFORMA_PAGO>\n";
01086 stream << "\t<DIAS1TFORMA_PAGO>" << XMLProtect(curc->valor("dias1tforma_pago")) << "</DIAS1TFORMA_PAGO>\n";
01087 stream << "\t<DESCUENTOFORMA_PAGO>" << XMLProtect(curc->valor("descuentoforma_pago")) << "</DESCUENTOFORMA_PAGO>\n";
01089 cursor2 *curlc = conexionbase->cargacursor("SELECT * FROM lpedidocliente LEFT JOIN articulo ON lpedidocliente.idarticulo = articulo.idarticulo WHERE idpedidocliente = " + curc->valor("idpedidocliente"));
01090 while (!curlc->eof()) {
01091 stream << "\t\t<LPEDIDOCLIENTE>\n";
01092 stream << "\t\t\t<IDLPEDIDOCLIENTE>" << XMLProtect(curlc->valor("idlpedidocliente")) << "</IDLPEDIDOCLIENTE>\n";
01093 stream << "\t\t\t<DESCLPEDIDOCLIENTE>" << XMLProtect(curlc->valor("desclpedidocliente")) << "</DESCLPEDIDOCLIENTE>\n";
01094 stream << "\t\t\t<CANTLPEDIDOCLIENTE>" << XMLProtect(curlc->valor("cantlpedidocliente")) << "</CANTLPEDIDOCLIENTE>\n";
01095 stream << "\t\t\t<PVPLPEDIDOCLIENTE>" << XMLProtect(curlc->valor("pvplpedidocliente")) << "</PVPLPEDIDOCLIENTE>\n";
01096 stream << "\t\t\t<IVALPEDIDOCLIENTE>" << XMLProtect(curlc->valor("ivalpedidocliente")) << "</IVALPEDIDOCLIENTE>\n";
01097 stream << "\t\t\t<DESCUENTOLPEDIDOCLIENTEO>" << XMLProtect(curlc->valor("descuentolpedidocliente")) << "</DESCUENTOLPEDIDOCLIENTEO>\n";
01098 stream << "\t\t\t<IDPEDIDOCLIENTE>" << XMLProtect(curlc->valor("idpresupuesto")) << "</IDPEDIDOCLIENTE>\n";
01099 stream << "\t\t\t<IDARTICULO>" << XMLProtect(curlc->valor("idarticulo")) << "</IDARTICULO>\n";
01101 stream << "\t\t\t<CODARTICULO>" << XMLProtect(curlc->valor("codarticulo")) << "</CODARTICULO>\n";
01102 stream << "\t\t\t<NOMARTICULO>" << XMLProtect(curlc->valor("nomarticulo")) << "</NOMARTICULO>\n";
01103 stream << "\t\t\t<ABREVARTICULO>" << XMLProtect(curlc->valor("abrevarticulo")) << "</ABREVARTICULO>\n";
01104 stream << "\t<CODIGOCOMPLETOARTICULO>" << XMLProtect(curlc->valor("codigocompletoarticulo")) << "</CODIGOCOMPLETOARTICULO>\n";
01105 stream << "\t\t</LPRESUPUESTO>\n";
01106 curlc->siguienteregistro();
01107 }
01108 delete curlc;
01110 curlc = conexionbase->cargacursor("SELECT * FROM dpedidocliente WHERE idpedidocliente = " + curc->valor("idpedidocliente"));
01111 while (!curlc->eof()) {
01112 stream << "\t\t<DPEDIDOCLIENTE>\n";
01113 stream << "\t\t\t<IDDPEDIDOCLIENTE>" << XMLProtect(curlc->valor("iddpedidocliente")) << "</IDDPEDIDOCLIENTE>\n";
01114 stream << "\t\t\t<CONCEPTDPEDIDOCLIENTE>" << XMLProtect(curlc->valor("conceptdpedidocliente")) << "</CONCEPTDPEDIDOCLIENTE>\n";
01115 stream << "\t\t\t<PROPORCIONDPEDIDOCLIENTE>" << XMLProtect(curlc->valor("proporciondpedidocliente")) << "</PROPORCIONDPEDIDOCLIENTE>\n";
01116 stream << "\t\t\t<IDPEDIDOCLIENTE>" << XMLProtect(curlc->valor("idpedidocliente")) << "</IDPEDIDOCLIENTE>\n";
01117 stream << "\t\t</DPEDIDOCLIENTE>\n";
01118 curlc->siguienteregistro();
01119 }
01120 delete curlc;
01121 stream << "</PEDIDOCLIENTE>\n";
01122 curc->siguienteregistro();
01123 }
01124 delete curc;
01125 }
01126
01128 if (tipo & IMPORT_ALBARANESCLIENTE) {
01129 QString query = "SELECT * FROM albaran ";
01130 query += " LEFT JOIN almacen ON albaran.idalmacen = almacen.idalmacen ";
01131 query += " LEFT JOIN cliente ON cliente.idcliente = albaran.idcliente ";
01132 query += " LEFT JOIN trabajador ON trabajador.idtrabajador = albaran.idtrabajador ";
01133 query += " LEFT JOIN forma_pago ON forma_pago.idforma_pago = albaran.idforma_pago ";
01134 cursor2 *curc = conexionbase->cargacursor(query);
01135 while (!curc->eof()) {
01136 stream << "<ALBARAN>\n";
01137 stream << "\t<IDALBARAN>" << XMLProtect(curc->valor("idalbaran")) << "</IDALBARAN>\n";
01138 stream << "\t<NUMALBARAN>" << XMLProtect(curc->valor("numalbaran")) << "</NUMALBARAN>\n";
01139 stream << "\t<DESCALBARAN>" << XMLProtect(curc->valor("descalbaran")) << "</DESCALBARAN>\n";
01140 stream << "\t<REFALBARAN>" << XMLProtect(curc->valor("refalbaran")) << "</REFALBARAN>\n";
01141 stream << "\t<FECHAALBARAN>" << XMLProtect(curc->valor("fechaalbaran")) << "</FECHAALBARAN>\n";
01142 stream << "\t<COMENTALBARAN>" << XMLProtect(curc->valor("comentalbaran")) << "</COMENTALBARAN>\n";
01143 stream << "\t<PROCESADOALBARAN>" << XMLProtect(curc->valor("procesadoalbaran")) << "</PROCESADOALBARAN>\n";
01144 stream << "\t<CONTACTALBARAN>" << XMLProtect(curc->valor("contactalbaran")) << "</CONTACTALBARAN>\n";
01145 stream << "\t<TELALBARAN>" << XMLProtect(curc->valor("telalbaran")) << "</TELALBARAN>\n";
01146 stream << "\t<IDUSUARI>" << XMLProtect(curc->valor("idusuari")) << "</IDUSUARI>\n";
01147 stream << "\t<IDCLIENTE>" << XMLProtect(curc->valor("idcliente")) << "</IDCLIENTE>\n";
01148 stream << "\t<IDALMACEN>" << XMLProtect(curc->valor("idalmacen")) << "</IDALMACEN>\n";
01149 stream << "\t<IDFORMA_PAGO>" << XMLProtect(curc->valor("idforma_pago")) << "</IDFORMA_PAGO>\n";
01150 stream << "\t<IDTRABAJADOR>" << XMLProtect(curc->valor("idtrabajador")) << "</IDTRABAJADOR>\n";
01152 stream << "\t<CODIGOALMACEN>" << XMLProtect(curc->valor("codigoalmacen")) << "</CODIGOALMACEN>\n";
01153 stream << "\t<NOMALMACEN>" << XMLProtect(curc->valor("nomalmacen")) << "</NOMALMACEN>\n";
01154 stream << "\t<DIRALMACEN>" << XMLProtect(curc->valor("diralmacen")) << "</DIRALMACEN>\n";
01155 stream << "\t<POBLALMACEN>" << XMLProtect(curc->valor("poblalmacen")) << "</POBLALMACEN>\n";
01156 stream << "\t<CPALMACEN>" << XMLProtect(curc->valor("cpalmacen")) << "</CPALMACEN>\n";
01157 stream << "\t<TELALMACEN>" << XMLProtect(curc->valor("telalmacen")) << "</TELALMACEN>\n";
01159 stream << "\t<NOMCLIENTE>" << XMLProtect(curc->valor("nomcliente")) << "</NOMCLIENTE>\n";
01160 stream << "\t<NOMALTCLIENTE>" << XMLProtect(curc->valor("nomaltcliente")) << "</NOMALTCLIENTE>\n";
01161 stream << "\t<CIFCLIENTE>" << XMLProtect(curc->valor("cifcliente")) << "</CIFCLIENTE>\n";
01162 stream << "\t<BANCOCLIENTE>" << XMLProtect(curc->valor("bancocliente")) << "</BANCOCLIENTE>\n";
01163 stream << "\t<DIRCLIENTE>" << XMLProtect(curc->valor("dircliente")) << "</DIRCLIENTE>\n";
01164 stream << "\t<POBLCLIENTE>" << XMLProtect(curc->valor("poblcliente")) << "</POBLCLIENTE>\n";
01165 stream << "\t<CPCLIENTE>" << XMLProtect(curc->valor("cpcliente")) << "</CPCLIENTE>\n";
01166 stream << "\t<TELCLIENTE>" << XMLProtect(curc->valor("telcliente")) << "</TELCLIENTE>\n";
01167 stream << "\t<FAXCLIENTE>" << XMLProtect(curc->valor("faxcliente")) << "</FAXCLIENTE>\n";
01168 stream << "\t<MAILCLIENTE>" << XMLProtect(curc->valor("mailcliente")) << "</MAILCLIENTE>\n";
01169 stream << "\t<URLCLIENTE>" << XMLProtect(curc->valor("urlcliente")) << "</URLCLIENTE>\n";
01170 stream << "\t<PROVCLIENTE>" << XMLProtect(curc->valor("provcliente")) << "</PROVCLIENTE>\n";
01172 stream << "\t<NOMTRABAJADOR>" << XMLProtect(curc->valor("nomtrabajador")) << "</NOMTRABAJADOR>\n";
01173 stream << "\t<APELLIDOSTRABAJADOR>" << XMLProtect(curc->valor("apellidostrabajador")) << "</APELLIDOSTRABAJADOR>\n";
01174 stream << "\t<DIRTRABAJADOR>" << XMLProtect(curc->valor("dirtrabajador")) << "</DIRTRABAJADOR>\n";
01175 stream << "\t<NSSTRABAJADOR>" << XMLProtect(curc->valor("nsstrabajador")) << "</NSSTRABAJADOR>\n";
01176 stream << "\t<TELTRABAJADOR>" << XMLProtect(curc->valor("teltrabajador")) << "</TELTRABAJADOR>\n";
01177 stream << "\t<MOVILTRABAJADOR>" << XMLProtect(curc->valor("moviltrabajador")) << "</MOVILTRABAJADOR>\n";
01178 stream << "\t<EMAILTRABAJADOR>" << XMLProtect(curc->valor("emailtrabajador")) << "</EMAILTRABAJADOR>\n";
01180 stream << "\t<DESCFORMA_PAGO>" << XMLProtect(curc->valor("descforma_pago")) << "</DESCFORMA_PAGO>\n";
01181 stream << "\t<DIAS1TFORMA_PAGO>" << XMLProtect(curc->valor("dias1tforma_pago")) << "</DIAS1TFORMA_PAGO>\n";
01182 stream << "\t<DESCUENTOFORMA_PAGO>" << XMLProtect(curc->valor("descuentoforma_pago")) << "</DESCUENTOFORMA_PAGO>\n";
01184 cursor2 *curlc = conexionbase->cargacursor("SELECT * FROM lalbaran LEFT JOIN articulo ON lalbaran.idarticulo = articulo.idarticulo WHERE idalbaran = " + curc->valor("idalbaran"));
01185 while (!curlc->eof()) {
01186 stream << "\t\t<LALBARAN>\n";
01187 stream << "\t\t\t<IDLALBARAN>" << XMLProtect(curlc->valor("idlalbaran")) << "</IDLALBARAN>\n";
01188 stream << "\t\t\t<DESCLALBARAN>" << XMLProtect(curlc->valor("desclalbaran")) << "</DESCLPRESUPUESTO>\n";
01189 stream << "\t\t\t<CANTLALBARANE>" << XMLProtect(curlc->valor("cantlalbaran")) << "</CANTLALBARANE>\n";
01190 stream << "\t\t\t<PVPLALBARAN>" << XMLProtect(curlc->valor("pvplalbaran")) << "</PVPLALBARAN>\n";
01191 stream << "\t\t\t<IVALALBARAN>" << XMLProtect(curlc->valor("ivalalbaran")) << "</IVALALBARAN>\n";
01192 stream << "\t\t\t<DESCUENTOLALBARAN>" << XMLProtect(curlc->valor("descuentolalbaran")) << "</DESCUENTOLALBARAN>\n";
01193 stream << "\t\t\t<IDALBARAN>" << XMLProtect(curlc->valor("idalbaran")) << "</IDALBARAN>\n";
01194 stream << "\t\t\t<IDARTICULO>" << XMLProtect(curlc->valor("idarticulo")) << "</IDARTICULO>\n";
01196 stream << "\t\t\t<CODARTICULO>" << XMLProtect(curlc->valor("codarticulo")) << "</CODARTICULO>\n";
01197 stream << "\t\t\t<NOMARTICULO>" << XMLProtect(curlc->valor("nomarticulo")) << "</NOMARTICULO>\n";
01198 stream << "\t\t\t<ABREVARTICULO>" << XMLProtect(curlc->valor("abrevarticulo")) << "</ABREVARTICULO>\n";
01199 stream << "\t<CODIGOCOMPLETOARTICULO>" << XMLProtect(curlc->valor("codigocompletoarticulo")) << "</CODIGOCOMPLETOARTICULO>\n";
01200 stream << "\t\t</LALBARAN>\n";
01201 curlc->siguienteregistro();
01202 }
01203 delete curlc;
01205 curlc = conexionbase->cargacursor("SELECT * FROM dalbaran WHERE idalbaran = " + curc->valor("idalbaran"));
01206 while (!curlc->eof()) {
01207 stream << "\t\t<DALBARAN>\n";
01208 stream << "\t\t\t<IDDALBARAN>" << XMLProtect(curlc->valor("iddalbaran")) << "</IDDALBARAN>\n";
01209 stream << "\t\t\t<CONCEPTDALBARAN>" << XMLProtect(curlc->valor("conceptdalbaran")) << "</CONCEPTDALBARAN>\n";
01210 stream << "\t\t\t<PROPORCIONDALBARAN>" << XMLProtect(curlc->valor("proporciondalbaran")) << "</PROPORCIONDALBARAN>\n";
01211 stream << "\t\t\t<IDALBARAN>" << XMLProtect(curlc->valor("idalbaran")) << "</IDALBARAN>\n";
01212 stream << "\t\t</DALBARAN>\n";
01213 curlc->siguienteregistro();
01214 }
01215 delete curlc;
01216 stream << "</ALBARAN>\n";
01217 curc->siguienteregistro();
01218 }
01219 delete curc;
01220 }
01221 stream << "</FUGIT>\n";
01222 alerta (100, 100);
01223 _depura("END pgimportfiles::bulmafact2XML", 0);
01224 return 0;
01225 }
01226
01227
01230
01235 int pgimportfiles::bulmages2XML(QFile &xmlfile, unsigned long long int tipo) {
01236 _depura("pgimportfiles::bulmages2XML", 0);
01237 QString codigo, descripcion;
01238 QString strblancomax;
01239 QString query;
01240 int numreg = 0;
01241 QTextStream stream(&xmlfile);
01242 stream << "<?xml version=\"1.0\" encoding = \"iso-8859-1\"?>\n"
01243 "<!DOCTYPE FUGIT>\n"
01244 "<FUGIT version='0.3.1' origen='BulmaGes'"
01245 " date='" << QDate().toString(Qt::ISODate) << "'>\n";
01246
01248 if(tipo & IMPORT_CUENTAS) {
01250 query = "SELECT * FROM cuenta WHERE padre ISNULL ORDER BY codigo";
01251 cursor2 *curcta = conexionbase->cargacursor(query);
01252 while (!curcta->eof()) {
01253 stream << "<CUENTA>\n";
01254 stream << "\t<IDCUENTA>" << XMLProtect(curcta->valor("idcuenta")) << "</IDCUENTA>\n";
01255 stream << "\t<CODIGO>" << XMLProtect(curcta->valor("codigo")) << "</CODIGO>\n";
01256 stream << "\t<DESCRIPCION>" << XMLProtect(curcta->valor("descripcion")) << "</DESCRIPCION>\n";
01257 stream << "\t<CIFENT_CUENTA>" << XMLProtect(curcta->valor("cifent_cuenta")) << "</CIFENT_CUENTA>\n";
01258 stream << "\t<DIRENT_CUENTA>" << XMLProtect(curcta->valor("dirent_cuenta")) << "</DIRENT_CUENTA>\n";
01259 stream << "\t<BLOQUEADA>" << XMLProtect(curcta->valor("bloqueada")) << "</BLOQUEADA>\n";
01260 stream << "\t<NODEBE>" << XMLProtect(curcta->valor("nodebe")) << "</NODEBE>\n";
01261 stream << "\t<NOHABER>" << XMLProtect(curcta->valor("nohaber")) << "</NOHABER>\n";
01262 stream << "\t<NOMBREENT_CUENTA>" << XMLProtect(curcta->valor("nombreent_cuenta")) << "</NOMBREENT_CUENTA>\n";
01263 stream << "\t<TIPOCUENTA>" << XMLProtect(curcta->valor("tipocuenta")) << "</TIPOCUENTA>\n";
01264 stream << "\t<WEBENT_CUENTA>" << XMLProtect(curcta->valor("webent_cuenta")) << "</WEBENT_CUENTA>\n";
01265 stream << "\t<EMAILENT_CUENTA>" << XMLProtect(curcta->valor("emailent_cuenta")) << "</EMAILENT_CUENTA>\n";
01266 stream << "\t<BANCOENT_CUENTA>" << XMLProtect(curcta->valor("bancoent_cuenta")) << "</BANCOENT_CUENTA>\n";
01267 stream << "\t<COMENT_CUENTA>" << XMLProtect(curcta->valor("coment_cuenta")) << "</COMENT_CUENTA>\n";
01268 stream << "\t<TELENT_CUENTA>" << XMLProtect(curcta->valor("telent_cuenta")) << "</TELENT_CUENTA>\n";
01269 stream << "\t<CPENT_CUENTA>" << XMLProtect(curcta->valor("cpent_cuenta")) << "</CPENT_CUENTA>\n";
01270 stream << "\t<REGULARIZACION>" << XMLProtect(curcta->valor("regularizacion")) << "</REGULARIZACION>\n";
01271 stream << "\t<IMPUTACION>" << XMLProtect(curcta->valor("imputacion")) << "</IMPUTACION>\n";
01272 stream << "</CUENTA>\n";
01273 curcta->siguienteregistro();
01274 }
01275 delete curcta;
01276 query = "SELECT * FROM cuenta LEFT JOIN (SELECT codigo AS codpadre, idcuenta as idpadre FROM cuenta) AS t1 ON cuenta.padre = t1.idpadre WHERE padre IS NOT NULL ORDER BY idpadre";
01277 conexionbase->begin();
01278 curcta = conexionbase->cargacursor(query, "elquery");
01279 conexionbase->commit();
01280 while (!curcta->eof()) {
01281 stream << "<CUENTA>\n";
01282 stream << "\t<IDCUENTA>" << XMLProtect(curcta->valor("idcuenta")) << "</IDCUENTA>\n";
01283 stream << "\t<CODIGO>" << XMLProtect(curcta->valor("codigo")) << "</CODIGO>\n";
01284 stream << "\t<DESCRIPCION>" << XMLProtect(curcta->valor("descripcion")) << "</DESCRIPCION>\n";
01285 stream << "\t<CIFENT_CUENTA>" << XMLProtect(curcta->valor("cifent_cuenta")) << "</CIFENT_CUENTA>\n";
01286 stream << "\t<DIRENT_CUENTA>" << XMLProtect(curcta->valor("dirent_cuenta")) << "</DIRENT_CUENTA>\n";
01287 stream << "\t<CODPADRE>" << XMLProtect(curcta->valor("codpadre")) << "</CODPADRE>\n";
01288 stream << "\t<BLOQUEADA>" << XMLProtect(curcta->valor("bloqueada")) << "</BLOQUEADA>\n";
01289 stream << "\t<NODEBE>" << XMLProtect(curcta->valor("nodebe")) << "</NODEBE>\n";
01290 stream << "\t<NOHABER>" << XMLProtect(curcta->valor("nohaber")) << "</NOHABER>\n";
01291 stream << "\t<NOMBREENT_CUENTA>" << XMLProtect(curcta->valor("nombreent_cuenta")) << "</NOMBREENT_CUENTA>\n";
01292 stream << "\t<TIPOCUENTA>" << XMLProtect(curcta->valor("tipocuenta")) << "</TIPOCUENTA>\n";
01293 stream << "\t<WEBENT_CUENTA>" << XMLProtect(curcta->valor("webent_cuenta")) << "</WEBENT_CUENTA>\n";
01294 stream << "\t<EMAILENT_CUENTA>" << XMLProtect(curcta->valor("emailent_cuenta")) << "</EMAILENT_CUENTA>\n";
01295 stream << "\t<BANCOENT_CUENTA>" << XMLProtect(curcta->valor("bancoent_cuenta")) << "</BANCOENT_CUENTA>\n";
01296 stream << "\t<COMENT_CUENTA>" << XMLProtect(curcta->valor("coment_cuenta")) << "</COMENT_CUENTA>\n";
01297 stream << "\t<TELENT_CUENTA>" << XMLProtect(curcta->valor("telent_cuenta")) << "</TELENT_CUENTA>\n";
01298 stream << "\t<CPENT_CUENTA>" << XMLProtect(curcta->valor("cpent_cuenta")) << "</CPENT_CUENTA>\n";
01299 stream << "\t<REGULARIZACION>" << XMLProtect(curcta->valor("regularizacion")) << "</REGULARIZACION>\n";
01300 stream << "\t<IMPUTACION>" << XMLProtect(curcta->valor("imputacion")) << "</IMPUTACION>\n";
01301 stream << "</CUENTA>\n";
01302 curcta->siguienteregistro();
01303 }
01304 delete curcta;
01305 }
01306
01308 if (tipo & IMPORT_TIPOSIVA) {
01310 query = "SELECT * from tipoiva LEFT JOIN cuenta ON cuenta.idcuenta = tipoiva.idcuenta";
01311 cursor2 *curtiva = conexionbase->cargacursor(query);
01312 while (!curtiva->eof()) {
01313 stream << "<TIPOIVA>\n";
01314 stream << "\t<IDTIPOIVA>" << XMLProtect(curtiva->valor("idtipoiva")) << "</IDTIPOIVA>\n";
01315 stream << "\t<NOMBRETIPOIVA>" << XMLProtect(curtiva->valor("nombretipoiva")) << "</NOMBRETIPOIVA>\n";
01316 stream << "\t<PORCENTAJETIPOIVA>" << XMLProtect(curtiva->valor("porcentajetipoiva")) << "</PORCENTAJETIPOIVA>\n";
01317 stream << "\t<CUENTATIPOIVA>" << XMLProtect(curtiva->valor("codigo")) << "</CUENTATIPOIVA>\n";
01318 stream << "</TIPOIVA>\n";
01319 curtiva->siguienteregistro();
01320 }
01321 delete curtiva;
01322 }
01323
01324 if (tipo & IMPORT_ASIENTOS) {
01327 query = "SELECT * FROM asiento WHERE 1 = 1 ";
01328 if (m_fInicial != "")
01329 query += " AND asiento.fecha >= '" + m_fInicial + "'";
01330 if (m_fFinal != "")
01331 query += " AND asiento.fecha <= '" + m_fFinal + "'";
01332 query +=" ORDER BY asiento.fecha, asiento.idasiento ";
01333 cursor2 *curas = conexionbase->cargacursor(query);
01334 int i =0;
01336 numreg = curas->numregistros() + 1;
01337 while (!curas->eof()) {
01338 alerta(i++, numreg);
01339 stream << "<ASIENTO>\n";
01340 stream << "\t<ORDENASIENTO>" << curas->valor("ordenasiento") << "</ORDENASIENTO>\n";
01341 QString fechas = curas->valor("fecha");
01342 fechas = fechas.mid(6, 4) + fechas.mid(3, 2) + fechas.mid(0, 2);
01343 stream << "\t<FECHA>" << fechas << "</FECHA>\n";
01344 query = "SELECT * FROM apunte LEFT JOIN cuenta ON apunte.idcuenta = cuenta.idcuenta ";
01345 query += "LEFT JOIN (SELECT nombre AS nomcanal, idcanal FROM canal) AS canal1 ON apunte.idcanal = canal1.idcanal ";
01346 query += "LEFT JOIN (SELECT nombre AS nc_coste, idc_coste FROM c_coste) AS c_coste1 ON c_coste1.idc_coste = apunte.idc_coste ";
01347 query += "LEFT JOIN (SELECT codigo AS codcontrapartida, idcuenta FROM cuenta) AS contra ON contra.idcuenta = apunte.contrapartida ";
01348 query +=" WHERE " + curas->valor("idasiento") + " = apunte.idasiento ";
01349 conexionbase->begin();
01350 cursor2 *curap = conexionbase->cargacursor(query, "masquery1");
01351 conexionbase->commit();
01352 while (!curap->eof()) {
01353 stream << "\t<APUNTE>\n";
01354 QString fecha = curap->valor("fecha");
01355 fecha = fecha.mid(6, 4) + fecha.mid(3, 2) + fecha.mid(0, 2);
01356 stream << "\t\t<FECHA>" << XMLProtect(fecha) << "</FECHA>\n";
01357 stream << "\t\t<CODIGO>" << XMLProtect(curap->valor("codigo")) << "</CODIGO>\n";
01358 stream << "\t\t<DEBE>" << XMLProtect(curap->valor("debe")) << "</DEBE>\n";
01359 stream << "\t\t<HABER>" << XMLProtect(curap->valor("haber")) << "</HABER>\n";
01360 stream << "\t\t<CONCEPTOCONTABLE>" << XMLProtect(curap->valor("conceptocontable")) << "</CONCEPTOCONTABLE>\n";
01361 stream << "\t\t<IDCANAL>" << XMLProtect(curap->valor("idcanal")) << "</IDCANAL>\n";
01362 stream << "\t\t<CANAL>" << XMLProtect(curap->valor("nomcanal")) << "</CANAL>\n";
01363 stream << "\t\t<IDC_COSTE>" << XMLProtect(curap->valor("idc_coste")) << "</IDC_COSTE>\n";
01364 stream << "\t\t<C_COSTE>" << XMLProtect(curap->valor("nc_coste")) << "</C_COSTE>\n";
01365 stream << "\t\t<PUNTEO>" << XMLProtect(curap->valor("punteo")) << "</PUNTEO>\n";
01366 stream << "\t\t<ORDEN>" << XMLProtect(curap->valor("orden")) << "</ORDEN>\n";
01367 stream << "\t\t<CONTRAPARTIDA>" << XMLProtect(curap->valor("codcontrapartida")) << "</CONTRAPARTIDA>\n";
01369 query = "SELECT * FROM registroiva";
01370 query += " LEFT JOIN (SELECT codigo, idcuenta FROM cuenta) AS t1 ON registroiva.contrapartida = t1.idcuenta ";
01371 query += " WHERE idborrador IN (SELECT idborrador FROM borrador WHERE idasiento=" + curas->valor("idasiento") + " AND orden = " + curap->valor("orden") + ")";
01372 conexionbase->begin();
01373 cursor2 *curreg = conexionbase->cargacursor(query, "queryregiva");
01374 conexionbase->commit();
01375 while (!curreg->eof()) {
01376 stream << "\t\t<REGISTROIVA>\n";
01377 stream << "\t\t\t<CONTRAPARTIDA>" << XMLProtect(curreg->valor("codigo")) << "</CONTRAPARTIDA>\n";
01378 stream << "\t\t\t<BASEIMP>" << XMLProtect(curreg->valor("baseimp")) << "</BASEIMP>\n";
01379 stream << "\t\t\t<IVA>" << XMLProtect(curreg->valor("iva")) << "</IVA>\n";
01380 stream << "\t\t\t<FFACTURA>" << XMLProtect(curreg->valor("ffactura")) << "</FFACTURA>\n";
01381 stream << "\t\t\t<FACTURA>" << XMLProtect(curreg->valor("factura")) << "</FACTURA>\n";
01382 stream << "\t\t\t<NUMORDEN>" << XMLProtect(curreg->valor("numorden")) << "</NUMORDEN>\n";
01383 stream << "\t\t\t<CIF>" << XMLProtect(curreg->valor("cif")) << "</CIF>\n";
01384 stream << "\t\t\t<IDFPAGO>" << XMLProtect(curreg->valor("idfpago")) << "</IDFPAGO>\n";
01385 stream << "\t\t\t<RECTIFICAAREGISTROIVA>" << XMLProtect(curreg->valor("rectificaaregistroiva")) << "</RECTIFICAAREGISTROIVA>\n";
01387 query = "SELECT * FROM iva ";
01388 query += " LEFT JOIN tipoiva ON iva.idtipoiva = tipoiva.idtipoiva ";
01389 query += " WHERE idregistroiva = " + curreg->valor("idregistroiva");
01390 conexionbase->begin();
01391 cursor2 *curiva = conexionbase->cargacursor(query, "queryiva");
01392 conexionbase->commit();
01393 while (!curiva->eof()) {
01394 stream << "\t\t\t<RIVA>\n";
01395 stream << "\t\t\t\t<IDTIPOIVA>" << XMLProtect(curiva->valor("idtipoiva")) << "</IDTIPOIVA>\n";
01396 stream << "\t\t\t\t<NOMBRETIPOIVA>" << XMLProtect(curiva->valor("nombretipoiva")) << "</NOMBRETIPOIVA>\n";
01397 stream << "\t\t\t\t<BASEIVA>" << XMLProtect(curiva->valor("baseiva")) << "</BASEIVA>\n";
01398 stream << "\t\t\t</RIVA>\n";
01399 curiva->siguienteregistro();
01400 }
01401 delete curiva;
01402 stream << "\t\t</REGISTROIVA>\n";
01403 curreg->siguienteregistro();
01404 }
01405 delete curreg;
01406 mensajeria(theApp->translate("pgimportfiles", "Exportando :") + curap->valor("codigo") + "--" + fecha + "\n");
01407 curap->siguienteregistro();
01408 stream << "\t</APUNTE>\n";
01409 }
01410 delete curap;
01411 stream << "</ASIENTO>\n";
01412 curas->siguienteregistro();
01413 }
01414 delete curas;
01415 }
01416 stream << "</FUGIT>\n";
01417 alerta (numreg,numreg);
01418 _depura("END pgimportfiles::bulmages2XML", 0);
01419 return 0;
01420 }
01421
01422
01424
01431 int pgimportfiles::XML2Bulmages(QFile &fichero, unsigned long long int tip) {
01432 _depura("pgimportfiles::XML2Bulmages", 0);
01433 StructureParser handler(conexionbase, tip);
01434 QXmlInputSource source(&fichero);
01435 QXmlSimpleReader reader;
01436 reader.setContentHandler(&handler);
01437 reader.parse(source);
01438 alerta(100, 100);
01439 _depura("END pgimportfiles::XML2Bulmages", 0);
01440 return 0;
01441 }
01442
01443
01445
01452 int pgimportfiles::XML2BulmaFact(QFile &fichero, unsigned long long int tip) {
01453 _depura("pgimportfiles::XML2BulmaFact", 0);
01454 bool noerror = TRUE;
01455 fprintf(stderr, "pgimportfiles::XML2BulmaFact()\n");
01456 ImportBulmaFact handler(this, conexionbase, tip);
01457 QXmlInputSource source(&fichero);
01458 QXmlSimpleReader reader;
01459 reader.setContentHandler(&handler);
01460 noerror = reader.parse(source);
01461 if (!noerror) {
01462 QMessageBox::warning(0, theApp->translate("pgimportfiles", "Application name"), theApp->translate("pgimportfiles", "Error en el XML.\nDocumento mal formado."), "OK", 0, 0);
01463 }
01464 alerta(100, 100);
01465 _depura("END pgimportfiles::XML2BulmaFact", 0);
01466 return 0;
01467 }
01468
01469
01471
01475 StructureParser::StructureParser(postgresiface2 *con, unsigned int tip) {
01476 _depura("StructureParser::StructureParser", 0);
01477 conexionbase = con;
01478 m_tipo = tip;
01479 conexionbase->begin();
01480 QString query = "INSERT INTO cuenta (codigo, descripcion) VALUES ('AUX', 'Una descripcion auxiliar de cuenta')";
01481 conexionbase->ejecuta(query);
01482 for (int i = 0; i <= 12; i++) {
01483 QString query2 = "INSERT INTO ejercicios (ejercicio, periodo, bloqueado) VALUES (2005, " + QString::number(i) + ", FALSE)";
01484 conexionbase->ejecuta(query2);
01485 }
01486 conexionbase->commit();
01487 _depura("END StructureParser::StructureParser", 0);
01488 }
01489
01490
01492
01494 StructureParser::~StructureParser() {
01495 _depura("StructureParser::~StructureParser", 0);
01496 QString query = "DELETE FROM cuenta WHERE codigo = 'AUX'";
01497 conexionbase->ejecuta(query);
01498 _depura("END StructureParser::~StructureParser", 0);
01499 }
01500
01502
01505 bool StructureParser::startDocument() {
01506 _depura("StructureParser::startDocument", 0);
01507 indent = "";
01508 _depura("END StructureParser::startDocument", 0);
01509 return TRUE;
01510 }
01511
01512
01514
01519 bool StructureParser::startElement(const QString&, const QString&, const QString& qName, const QXmlAttributes&) {
01520 _depura("StructureParser::startElement", 0);
01521 fprintf(stderr, "%s<%s>\n", indent.toAscii().data(), qName.toAscii().data());
01522 indent += "..";
01523 if (qName == "ASIENTO" && m_tipo & IMPORT_ASIENTOS) {
01524 tagpadre = "ASIENTO";
01525 QString query = "INSERT INTO ASIENTO (descripcion, fecha) VALUES ('un nuevo asiento', '01/01/2005')";
01526 conexionbase->begin();
01527 conexionbase->ejecuta(query);
01528 cursor2 *cur= conexionbase->cargacursor("SELECT MAX(idasiento) AS max FROM asiento", "otroquery");
01529 conexionbase->commit();
01530 if (!cur->eof() ) {
01531 idasiento = cur->valor("max");
01532 fprintf(stderr, "INSERCION DE ASIENTO:%s\n", idasiento.toAscii().data());
01533 }
01535 m_ordenapunte = 0;
01536 delete cur;
01537 }
01538 if (qName == "APUNTE" && m_tipo & IMPORT_ASIENTOS) {
01539 QString query = "INSERT INTO borrador (idasiento, debe, haber, idcuenta, fecha, orden) VALUES (" + idasiento + ", 0, 0, id_cuenta('AUX'), '01/01/2003', " + QString::number(m_ordenapunte++) + ")";
01540 conexionbase->begin();
01541 conexionbase->ejecuta(query);
01542 cursor2 *cur= conexionbase->cargacursor("SELECT MAX(idborrador) AS max FROM borrador", "otroquery1");
01543 conexionbase->commit();
01544 if (!cur->eof()) {
01545 idborrador = cur->valor("max");
01546 fprintf(stderr, "INSERCION DE APUNTE:%s\n", idborrador.toAscii().data());
01547 }
01548 delete cur;
01549 tagpadre = "APUNTE";
01550 }
01551 if (qName == "REGISTROIVA" && m_tipo & IMPORT_FACTURAS) {
01552 QString query = "INSERT INTO registroiva (contrapartida, idborrador) VALUES (id_cuenta('AUX'), " + idborrador + ")";
01553 conexionbase->begin();
01554 conexionbase->ejecuta(query);
01555 cursor2 *cur= conexionbase->cargacursor("SELECT MAX(idregistroiva) AS max FROM registroiva", "otroquery13");
01556 conexionbase->commit();
01557 if (!cur->eof()) {
01558 m_idRegistroIva = cur->valor("max");
01559 fprintf(stderr, "INSERCION DE REGISTRO DE IVA:%s\n", idborrador.toAscii().data());
01560 }
01561 delete cur;
01562 tagpadre = "REGISTROIVA";
01563 }
01564 if (qName == "RIVA" && m_tipo & IMPORT_FACTURAS) {
01565 tagpadre = "RIVA";
01566 }
01567 if (qName == "CUENTA" && m_tipo & IMPORT_CUENTAS) {
01568 tagpadre = "CUENTA";
01570 codigocuenta = "";
01571 descripcioncuenta = "";
01572 codigopadre = "";
01573 m_bloqueadaCuenta = "";
01574 m_nodebeCuenta = "";
01575 m_nohaberCuenta = "";
01576 m_tipoCuenta = "";
01577 }
01578 cadintermedia = "";
01579 _depura("END StructureParser::startElement", 0);
01580 return TRUE;
01581 }
01582
01583
01585
01589 bool StructureParser::endElement(const QString&, const QString&, const QString& qName) {
01590 _depura("StructureParser::endElement", 0);
01591 indent.remove((uint)0, 2);
01595 if (qName == "ASIENTO" && m_tipo & IMPORT_ASIENTOS) {
01596 fprintf(stderr, "Fin de Asiento");
01597 QString query = "UPDATE asiento set fecha = '" +
01598 conexionbase->sanearCadena(fechaasiento) + "' WHERE idasiento = " +
01599 conexionbase->sanearCadena(idasiento);
01600 conexionbase->begin();
01601 conexionbase->ejecuta(query);
01602 cursor2 *cur = conexionbase->cargacursor("SELECT cierraasiento(" + idasiento + ")");
01603 conexionbase->commit();
01604 delete cur;
01605 }
01607 if (qName == "APUNTE" && m_tipo & IMPORT_ASIENTOS) {
01608 QString query = "UPDATE borrador SET debe = "+
01609 conexionbase->sanearCadena(debeapunte) + ", haber = "+
01610 conexionbase->sanearCadena(haberapunte) + ", idcuenta = id_cuenta('" +
01611 conexionbase->sanearCadena(codigocuentaapunte) + "'), fecha = '" +
01612 conexionbase->sanearCadena(fechaapunte) + "', conceptocontable = '" +
01613 conexionbase->sanearCadena(conceptocontableapunte) + "' WHERE idborrador = " + idborrador;
01614 conexionbase->ejecuta(query);
01615 }
01616 if (qName == "FECHA" && tagpadre == "ASIENTO")
01617 fechaasiento = cadintermedia;
01618 if (qName == "FECHA" && tagpadre == "APUNTE")
01619 fechaapunte = cadintermedia;
01620 if (qName == "DEBE" && tagpadre == "APUNTE")
01621 debeapunte = cadintermedia;
01622 if (qName == "HABER" && tagpadre == "APUNTE")
01623 haberapunte = cadintermedia;
01624 if (qName == "CODIGO" && tagpadre == "APUNTE")
01625 codigocuentaapunte = cadintermedia;
01626 if (qName == "CONCEPTOCONTABLE" && tagpadre == "APUNTE")
01627 conceptocontableapunte = cadintermedia;
01628 if (qName == "CUENTA" && m_tipo & IMPORT_CUENTAS) {
01632 QString idgrupo = codigocuenta.left(1);
01634 QString vidcuenta;
01635 if (codigopadre != "") {
01636 vidcuenta = "id_cuenta('" + conexionbase->sanearCadena(codigopadre) + "')";
01637 } else {
01638 vidcuenta = "NULL";
01639 }
01641 if (m_tipoCuenta == "")
01642 m_tipoCuenta = "NULL";
01643
01644 QString query = "SELECT * FROM cuenta WHERE codigo = '" + codigocuenta + "'";
01645 cursor2 *cur = conexionbase->cargacursor(query);
01646 if (cur->eof()) {
01647 QString query = "INSERT INTO cuenta (tipocuenta, codigo, descripcion, padre, bloqueada, nodebe, nohaber) VALUES ("+
01648 conexionbase->sanearCadena(m_tipoCuenta) + ",'" +
01649 conexionbase->sanearCadena(codigocuenta) + "','" +
01650 conexionbase->sanearCadena(descripcioncuenta) + "', " +
01651 vidcuenta + ", '" +
01652 conexionbase->sanearCadena(m_bloqueadaCuenta) + "','" +
01653 conexionbase->sanearCadena(m_nodebeCuenta) + "','" +
01654 conexionbase->sanearCadena(m_nohaberCuenta) + "')";
01655 conexionbase->ejecuta(query);
01656 } else {
01657 QString query = "UPDATE cuenta SET ";
01658 query += "descripcion = '" + conexionbase->sanearCadena(descripcioncuenta) + "'";
01659 query += ", tipocuenta = " + conexionbase->sanearCadena(m_tipoCuenta);
01660 query += ", bloqueada = '" + conexionbase->sanearCadena(m_bloqueadaCuenta)+"'";
01661 query += ", nodebe = '" + conexionbase->sanearCadena(m_nodebeCuenta) + "'";
01662 query += ", nohaber = '" + conexionbase->sanearCadena(m_nohaberCuenta) + "'";
01663 query += " WHERE codigo = '" + conexionbase->sanearCadena(codigocuenta) + "'";
01664 conexionbase->ejecuta(query);
01665 }
01666 delete cur;
01667 }
01668 if (qName == "CODIGO" && tagpadre == "CUENTA")
01669 codigocuenta = cadintermedia;
01670 if (qName == "DESCRIPCION" && tagpadre == "CUENTA")
01671 descripcioncuenta = cadintermedia;
01672 if (qName == "CODPADRE" && tagpadre == "CUENTA")
01673 codigopadre = cadintermedia;
01674 if (qName == "BLOQUEADA" && tagpadre == "CUENTA")
01675 m_bloqueadaCuenta = cadintermedia;
01676 if (qName == "NODEBE" && tagpadre == "CUENTA")
01677 m_nodebeCuenta = cadintermedia;
01678 if (qName == "NOHABER" && tagpadre == "CUENTA")
01679 m_nohaberCuenta = cadintermedia;
01680 if (qName == "TIPOCUENTA" && tagpadre == "CUENTA")
01681 m_tipoCuenta = cadintermedia;
01683 if (qName == "REGISTROIVA" && m_tipo & IMPORT_FACTURAS) {
01684 QString query = "UPDATE registroiva SET contrapartida = id_cuenta('" + m_rIvaContrapartida + "'), ffactura = '" + m_rIvaFFactura + "'";
01685 if (m_rIvaBaseImp != "")
01686 query += ", baseimp = " + m_rIvaBaseImp;
01687 if (m_rIvaIva != "")
01688 query += ", iva = " + m_rIvaIva;
01689 query +=" WHERE idregistroiva = " + m_idRegistroIva;
01690 conexionbase->ejecuta(query);
01691 }
01692 if (qName == "CONTRAPARTIDA" && tagpadre == "REGISTROIVA")
01693 m_rIvaContrapartida = cadintermedia;
01694 if (qName == "BASEIMP" && tagpadre == "REGISTROIVA")
01695 m_rIvaBaseImp = cadintermedia;
01696 if (qName == "IVA" && tagpadre == "REGISTROIVA")
01697 m_rIvaIva = cadintermedia;
01698 if (qName == "FFACTURA" && tagpadre == "REGISTROIVA")
01699 m_rIvaFFactura = cadintermedia;
01700 if (qName == "FACTURA" && tagpadre == "REGISTROIVA")
01701 m_rIvaFactura = cadintermedia;
01702 if (qName == "CIF" && tagpadre == "REGISTROIVA")
01703 m_rIvaCIF = cadintermedia;
01704 if (qName == "IDFPAGO" && tagpadre == "REGISTROIVA")
01705 m_rIvaIdFPago = cadintermedia;
01706 if (qName == "RECTIFICAAREGISTROIVA" && tagpadre == "REGISTROIVA")
01707 m_rIvRecRegIva = cadintermedia;
01709 if (qName == "RIVA" && m_tipo & IMPORT_FACTURAS) {
01710 QString query1 = "SELECT idtipoiva FROM tipoiva WHERE nombretipoiva = '" + m_nombreTipoIva + "'";
01711 conexionbase->begin();
01712 cursor2 * cur = conexionbase->cargacursor(query1, "elqueryd");
01713 if (!cur->eof()) {
01714 QString query = "INSERT INTO IVA (idregistroiva, idtipoiva, baseiva) VALUES (" + m_idRegistroIva + ", " + cur->valor("idtipoiva") + ", " + m_baseIva + ")";
01715 conexionbase->ejecuta(query);
01716 }
01717 delete cur;
01718 conexionbase->commit();
01719 }
01720 if (qName == "IDTIPOIVA" && tagpadre == "RIVA")
01721 m_idTipoIva = cadintermedia;
01722 if (qName == "NOMBRETIPOIVA" && tagpadre == "RIVA")
01723 m_nombreTipoIva = cadintermedia;
01724 if (qName == "BASEIVA" && tagpadre == "RIVA")
01725 m_baseIva = cadintermedia;
01726 cadintermedia = "";
01727 _depura("END StructureParser::endElement", 0);
01728 return TRUE;
01729 }
01730
01732
01736 bool StructureParser::characters(const QString& n1) {
01737 _depura("StructureParser::characters", 0);
01738 cadintermedia += n1;
01739 _depura("END StructureParser::characters", 0);
01740 return TRUE;
01741 }
01742
01743
01746
01751 ImportBulmaFact::ImportBulmaFact(pgimportfiles *imp, postgresiface2 *con, unsigned long long int tip) {
01752 _depura("ImportBulmaFact::ImportBulmaFact", 0);
01753 conexionbase = con;
01754 pgimport = imp;
01755 m_tipo = tip;
01756 _depura("END ImportBulmaFact::ImportBulmaFact", 0);
01757 }
01758
01759
01761
01763 ImportBulmaFact::~ImportBulmaFact() {
01764 _depura("ImportBulmaFact::~ImportBulmaFact", 0);
01765 _depura("END ImportBulmaFact::~ImportBulmaFact", 0);
01766 }
01767
01768
01770
01773 bool ImportBulmaFact::startDocument() {
01774 _depura("ImportBulmaFact::startDocument", 0);
01775 indent = "";
01776 _depura("END ImportBulmaFact::startDocument", 0);
01777 return TRUE;
01778 }
01779
01780
01782
01785 bool ImportBulmaFact::startElement(const QString&, const QString&, const QString&, const QXmlAttributes&) {
01786 _depura("ImportBulmaFact::startElement", 0);
01787 cadintermedia = "";
01788 _depura("END ImportBulmaFact::startElement", 0);
01789 return TRUE;
01790 }
01791
01792
01794
01798 bool ImportBulmaFact::endElement(const QString&, const QString&, const QString& qName) {
01799 _depura("ImportBulmaFact::endElement", 0);
01800 valores[qName] = cadintermedia;
01801 cadintermedia = "";
01802 fprintf(stderr, "Tag de Cierre: %s\n", qName.toAscii().data());
01803 if (qName == "CLIENTE")
01804 trataCliente();
01805 if (qName == "PROVEEDOR")
01806 trataProveedor();
01807 if (qName == "FORMA_PAGO")
01808 trataFormaPago();
01809 if (qName == "ALMACEN")
01810 trataAlmacen();
01811 if (qName == "ARTICULO")
01812 trataArticulo();
01813 if (qName == "PRESUPUESTO")
01814 trataPresupuesto();
01815 if(qName == "LPRESUPUESTO")
01816 trataLPresupuesto();
01817 if(qName == "DPRESUPUESTO")
01818 trataDPresupuesto();
01819 if (qName == "FAMILIA")
01820 trataFamilia();
01821 if (qName == "FACTURA")
01822 trataFactura();
01823 if(qName == "LFACTURA")
01824 trataLFactura();
01825 if(qName == "DFACTURA")
01826 trataDFactura();
01827 if (qName == "ALBARAN")
01828 trataAlbaran();
01829 if(qName == "LALBARAN")
01830 trataLAlbaran();
01831 if(qName == "DALBARAN")
01832 trataDAlbaran();
01833 if (qName == "PEDIDOCLIENTE")
01834 trataPedidoCliente();
01835 if(qName == "LPEDIDOCLIENTE")
01836 trataLPedidoCliente();
01837 if(qName == "DPEDIDOCLIENTE")
01838 trataDPedidoCliente();
01839 _depura("END ImportBulmaFact::endElement", 0);
01840 return TRUE;
01841 }
01842
01843
01845
01849 bool ImportBulmaFact::characters(const QString& n1) {
01850 _depura("ImportBulmaFact::characters", 0);
01851 QString val = n1;
01852 if (val == "\n")
01853 val = "";
01854 cadintermedia += val;
01855 _depura("END ImportBulmaFact::characters", 0);
01856 return TRUE;
01857 }
01858
01859
01861
01863 void ImportBulmaFact::printcontents() {
01864 _depura("ImportBulmaFact::characters", 0);
01865 fprintf(stderr, "Impresion de contenidos\n");
01866 tvalores::Iterator it;
01867 for (it = valores.begin(); it != valores.end(); ++it) {
01868 fprintf(stderr, "Valores encontrados clave: %s Valor:%s\n",
01869 it.key().toAscii().data(),
01870 it.value().toAscii().data());
01871 }
01872 fprintf(stderr, "Fin de impresion de contenidos\n");
01873 _depura("END ImportBulmaFact::characters", 0);
01874 }
01875
01876
01878
01881 int ImportBulmaFact::trataCliente() {
01882 _depura("ImportBulmaFact::trataCliente", 0);
01884 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<HR><B>Tratando el cliente ") + valores["CIFCLIENTE"] + " " + valores["NOMCLIENTE"] + "</B><BR>");
01886 QString dcif = valores["CIFCLIENTE"];
01887 if (dcif != "") {
01888 QString query = "SELECT * FROM cliente WHERE cifcliente SIMILAR TO '" + dcif + "'";
01889 cursor2 *cur = conexionbase->cargacursor(query);
01890 if (!cur->eof()) {
01892 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<LI> El cliente ya existe se pueden hacer modificaciones</LI>\n"));
01893 QString query1 = "UPDATE cliente SET nomcliente = '" + valores["NOMCLIENTE"] + "' WHERE cifcliente = '" + valores["CIFCLIENTE"] + "'";
01894 conexionbase->ejecuta(query1);
01895 } else {
01897 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<LI> El cliente no existe, se debe hacer una insercion de este</LI>\n"));
01898 QString query1 = "INSERT INTO cliente (cifcliente, nomcliente) VALUES ('" + valores["CIFCLIENTE"] + "','" + valores["NOMCLIENTE"] + "')";
01899 conexionbase->ejecuta(query1);
01900 }
01901 delete cur;
01902 }
01903 pgimport->mensajeria("<HR>");
01904 valores.clear();
01905 _depura("END ImportBulmaFact::trataCliente", 0);
01906 return 0;
01907 }
01908
01909
01911
01914 int ImportBulmaFact::trataProveedor() {
01915 _depura("ImportBulmaFact::trataProveedor", 0);
01916
01918 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<HR><B>Tratando el proveedor ") + valores["CIFPROVEEDOR"] + "</b><BR>");
01920 QString cifprov = valores["CIFPROVEEDOR"];
01921 if (cifprov != "") {
01922 QString query = "SELECT * FROM proveedor WHERE cifproveedor SIMILAR TO '" + cifprov + "'";
01923 cursor2 *cur = conexionbase->cargacursor(query);
01924 if (!cur->eof()) {
01926 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<LI> El proveedor ya existe se pueden hacer modificaciones</LI>\n"));
01927 QString query1 = "UPDATE proveedor SET nomproveedor = '" + valores["NOMPROVEEDOR"] + "' WHERE cifproveedor = '" + valores["CIFPROVEEDOR"] + "'";
01928 conexionbase->ejecuta(query1);
01929 } else {
01931 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<LI> El proveedor no existe, se debe hacer una insercion de este</LI>\n"));
01932 QString query1 = "INSERT INTO proveedor (cifproveedor, nomproveedor) VALUES ('" + valores["CIFPROVEEDOR"] + "','" + valores["NOMPROVEEDOR"] + "')";
01933 conexionbase->ejecuta(query1);
01934 }
01935 delete cur;
01936 }
01937 pgimport->mensajeria("<HR>");
01938 valores.clear();
01939 _depura("END ImportBulmaFact::trataProveedor", 0);
01940 return 0;
01941 }
01942
01943
01945
01948 int ImportBulmaFact::trataFormaPago() {
01949 _depura("ImportBulmaFact::trataFormaPago", 0);
01951 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<HR><B>Tratando la froma de pago ") + valores["DESCFORMA_PAGO"] + "</B><BR>");
01952 QString idforma_pago = valores["IDFORMA_PAGO"];
01953 QString descforma_pago = valores["DESCFORMA_PAGO"];
01954 QString dias1tforma_pago = valores["DIAS1TFORMA_PAGO"];
01955 QString descuentoforma_pago = valores["DESCUENTOFORMA_PAGO"];
01956
01958 if (descforma_pago == "" || dias1tforma_pago == "" || descuentoforma_pago == "" ) {
01959 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<LI>Datos insuficientes para tratar la forma de pago."));
01960 valores.clear();
01961 return 1;
01962 }
01963
01965 QString query = "SELECT * FROM forma_pago WHERE dias1tforma_pago = " + dias1tforma_pago + " AND descuentoforma_pago = " + descuentoforma_pago;
01966 cursor2 *cur = conexionbase->cargacursor(query);
01967 if (!cur->eof()) {
01968 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<LI> Ya existe esta forma de pago."));
01969 delete cur;
01970 valores.clear();
01971 return 1;
01972 }
01973 delete cur;
01974
01976 query = "INSERT INTO forma_pago (descforma_pago, dias1tforma_pago, descuentoforma_pago) VALUES ('" + descforma_pago + "'," + dias1tforma_pago + "," + descuentoforma_pago + ")";
01977 conexionbase->ejecuta(query);
01978 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<LI> Forma de pago <B>") + descforma_pago + theApp->translate("ImportBulmaFact", "</B> Insertada"));
01979 pgimport->mensajeria("<HR>");
01980 valores.clear();
01981 _depura("END ImportBulmaFact::trataFormaPago", 0);
01982 return 0;
01983 }
01984
01985
01987
01990 int ImportBulmaFact::trataAlmacen() {
01991 _depura("ImportBulmaFact::trataAlmacen", 0);
01993 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<HR><B>Tratando almacen ") + valores["CODIGOALMACEN"] + " " + valores["NOMALMACEN"] + "</B><BR>");
01995 QString idalmacen = valores["IDALMACEN"];
01996 QString codigoalmacen = valores["CODIGOALMACEN"];
01997 QString nomalmacen = valores["NOMALMACEN"];
01998 QString diralmacen = valores["DIRALMACEN"];
01999 QString poblalmacen = valores["POBLALMACEN"];
02000 QString cpalmacen = valores["CPALMACEN"];
02001 QString telalmacen = valores["TELALMACEN"];
02002 QString faxalmacen = valores["FAXALMACEN"];
02003 QString emailalmacen = valores["EMAILALMACEN"];
02004 QString inactivoalmacen = valores["INACTIVOALMACEN"];
02006 if(codigoalmacen == "" || nomalmacen == "" ) {
02007 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<LI>Datos insuficientes para tratar el almacen."));
02008 valores.clear();
02009 return 1;
02010 }
02012 QString query = "SELECT * FROM almacen WHERE codigoalmacen = '" + codigoalmacen + "'";
02013 cursor2 *cur = conexionbase->cargacursor(query);
02014 if (!cur->eof()) {
02015 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<LI> Ya existe este almacen."));
02016 delete cur;
02017 valores.clear();
02018 return 1;
02019 }
02020 delete cur;
02022 query = "INSERT INTO almacen (codigoalmacen, nomalmacen, diralmacen) VALUES ('" + codigoalmacen + "','" + nomalmacen + "','" + diralmacen + "')";
02023 conexionbase->ejecuta(query);
02024 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<LI> Almacen <B>") + codigoalmacen + theApp->translate("ImportBulmaFact", "</B> Insertado"));
02026 pgimport->mensajeria("<HR>");
02027 valores.clear();
02028 _depura("END ImportBulmaFact::trataAlmacen", 0);
02029 return 0;
02030 }
02031
02032
02034
02037 int ImportBulmaFact::trataFamilia() {
02038 _depura("ImportBulmaFact::trataFamilia", 0);
02039 QString query;
02040 cursor2 *cur;
02042 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<HR><B>Tratando familia ") + valores["CODIGOCOMPLETOFAMILIA"] + " " + valores["NOMBREFAMILIA"] + "</B><BR>");
02044 QString idfamilia = valores["IDFAMILIA"];
02045 QString codigofamilia = valores["CODIGOFAMILIA"];
02046 QString nombrefamilia = valores["NOMBREFAMILIA"];
02047 QString descfamilia = valores["DESCFAMILIA"];
02048 QString padrefamilia = valores["PADREFAMILIA"];
02049 QString codigocompletofamilia = valores["CODIGOCOMPLETOFAMILIA"];
02052 QString codigopadre = codigocompletofamilia.left(codigocompletofamilia.length() - codigofamilia.length());
02053 QString idpadre = "";
02054 if (codigopadre == "") {
02055 idpadre = "NULL";
02056 } else {
02057 query = "SELECT * FROM familia WHERE codigocompletofamilia = '" + codigopadre + "'";
02058 cur = conexionbase->cargacursor(query);
02059 if (!cur->eof()) {
02060 idpadre = cur->valor("idfamilia");
02061 } else {
02062 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<P> No se ha encontrado el padre de esta familia.</P>"));
02063 }
02064 delete cur;
02065 }
02066 if (codigocompletofamilia == "" || nombrefamilia == "" || idpadre == "") {
02067 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<P>Datos insuficientes para tratar la familia.</P>"));
02068 valores.clear();
02069 return 1;
02070 }
02072 query = "SELECT * FROM familia WHERE codigocompletofamilia = '" + codigocompletofamilia + "'";
02073 cur = conexionbase->cargacursor(query);
02074 if (!cur->eof()) {
02075 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<P> Ya existe esta familia.</P>"));
02076 delete cur;
02077 valores.clear();
02078 return 1;
02079 }
02080 delete cur;
02082 query = "INSERT INTO familia (codigofamilia, nombrefamilia, padrefamilia) VALUES ('" + codigofamilia + "','" + nombrefamilia + "'," + idpadre + ")";
02083 conexionbase->ejecuta(query);
02084 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<P> Familia <B>") + codigocompletofamilia + theApp->translate("ImportBulmaFact", "</B> Insertado</P>"));
02086 pgimport->mensajeria("<HR>");
02087 valores.clear();
02088 _depura("END ImportBulmaFact::trataFamilia", 0);
02089 return 0;
02090 }
02091
02092
02094
02097 int ImportBulmaFact::trataArticulo() {
02098 _depura("ImportBulmaFact::trataArticulo", 0);
02099 QString query;
02100 cursor2 *cur;
02102 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<HR><B>Tratando Articulo ") + valores["CODIGOCOMPLETOARTICULO"] + " </B><BR>");
02104 QString idarticulo = valores["IDARTICULO"];
02105 QString codarticulo = valores["CODARTICULO"];
02106 QString nomarticulo = valores["NOMARTICULO"];
02107 QString abrevarticulo = valores["ABREVARTICULO"];
02108 QString obserarticulo = valores["OBSERARTICULO"];
02109 QString presentablearticulo = valores["PRESENTABLEARTICULO"];
02110 QString controlstockarticulo = valores["CONTROLSTOCKARTICULO"];
02111 QString idtipo_articulo = valores["IDTIPO_ARTICULO"];
02112 QString idtipo_iva = valores["IDTIPO_IVA"];
02113 QString codigocompletoarticulo = valores["CODIGOCOMPLETOARTICULO"];
02114 QString idfamilia = valores["IDFAMILIA"];
02115 QString stockarticulo = valores["STOCKARTICULO"];
02116 QString inactivoarticulo = valores["INACTIVOARTICULO"];
02117 QString pvparticulo = valores["PVPARTICULO"];
02118 QString codigocompletofamilia = valores["CODIGOCOMPLETOFAMILIA"];
02119 QString nombrefamilia = valores["NOMBREFAMILIA"];
02120 QString codtipo_articulo = valores["CODTIPO_ARTICULO"];
02121 QString desctipo_articulo = valores["DESCTIPO_ARTICULO"];
02122 QString desctipo_iva = valores["DESCTIPO_IVA"];
02123
02124 query = "SELECT * FROM familia WHERE codigocompletofamilia = '" + codigocompletofamilia + "'";
02125 cur = conexionbase->cargacursor(query);
02126 if (!cur->eof()) {
02127 idfamilia = cur->valor("idfamilia");
02128 } else {
02129 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "La familia del articulo no existe<BR>\n"));
02130 idfamilia = "";
02131 }
02132 delete cur;
02133
02134 query = "SELECT * from tipo_articulo WHERE codtipo_articulo = '" + codtipo_articulo + "'";
02135 cur = conexionbase->cargacursor(query);
02136 if (!cur->eof()) {
02137 idtipo_articulo= cur->valor("idtipo_articulo");
02138 } else {
02139 idtipo_articulo = "NULL";
02140 }
02141 delete cur;
02142
02143 query = "SELECT * from tipo_iva WHERE desctipo_iva = '" + desctipo_iva + "'";
02144 cur = conexionbase->cargacursor(query);
02145 if (!cur->eof()) {
02146 idtipo_iva= cur->valor("idtipo_iva");
02147 } else {
02148 idtipo_iva = "NULL";
02149 }
02150 delete cur;
02151
02153 if (codigocompletoarticulo == "" || nomarticulo == "" || idfamilia == "") {
02154 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<P>Datos insuficientes para tratar el articulo.</P>"));
02155 valores.clear();
02156 return 1;
02157 }
02158
02160 query = "SELECT * FROM articulo WHERE codigocompletoarticulo = '" + codigocompletoarticulo + "'";
02161 cur = conexionbase->cargacursor(query);
02162 if (!cur->eof()) {
02163 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<P> Ya existe este articulo.</P>"));
02164 delete cur;
02165 valores.clear();
02166 return 1;
02167 }
02168 delete cur;
02169
02171 query = "INSERT INTO articulo (codarticulo, nomarticulo, abrevarticulo, idfamilia, pvparticulo, idtipo_articulo, obserarticulo, presentablearticulo, inactivoarticulo, controlstockarticulo, idtipo_iva) VALUES (";
02172 query += "'" + codarticulo + "'";
02173 query += ",'" + nomarticulo + "'";
02174 query += ",'" + abrevarticulo;
02175 query += "'," + idfamilia;
02176 query += "," + pvparticulo;
02177 query += "," + idtipo_articulo;
02178 query += ",'" + obserarticulo + "'";
02179 query += ",'" + presentablearticulo + "'";
02180 query += ",'" + inactivoarticulo + "'";
02181 query += ",'" + controlstockarticulo + "'";
02182 query += "," + idtipo_iva;
02183 query += ")";
02184 conexionbase->ejecuta(query);
02185 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<P> Articulo <B>") + codigocompletoarticulo + theApp->translate("ImportBulmaFact", "</B> Insertado</P>"));
02186 valores.clear();
02187 _depura("END ImportBulmaFact::trataArticulo", 0);
02188 return 0;
02189 }
02190
02191
02193
02196 int ImportBulmaFact::trataLPedidoCliente() {
02197 _depura("ImportBulmaFact::trataLPedidoCliente", 0);
02199 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<HR><B>Tratando LPedidoCliente ") + valores["IDLPEDIDOCLIENTE"] + "</B><BR>");
02200 tvalores lpedidoclientemap;
02201 lpedidoclientemap.insert("IDLPEDIDOCLIENTE", valores["IDLPEDIDOCLIENTE"]);
02202 lpedidoclientemap.insert("DESCLPEDIDOCLIENTE", valores["DESCLPEDIDOCLIENTE"]);
02203 lpedidoclientemap.insert("CANTLPEDIDOCLIENTE", valores["CANTLPEDIDOCLIENTE"]);
02204 lpedidoclientemap.insert("PVPLPEDIDOCLIENTE", valores["PVPLPEDIDOCLIENTE"]);
02205 lpedidoclientemap.insert("IVALPEDIDOCLIENTE", valores["IVALPEDIDOCLIENTE"]);
02206 lpedidoclientemap.insert("DESCUENTOLPEDIDOCLIENTE", valores["DESCUENTOLPEDIDOCLIENTE"]);
02207 lpedidoclientemap.insert("IDPEDIDOCLIENTE", valores["IDPEDIDOCLIENTE"]);
02208 lpedidoclientemap.insert("IDARTICULO", valores["IDARTICULO"]);
02209 lpedidoclientemap.insert("CODARTICULO", valores["CODARTICULO"]);
02210 lpedidoclientemap.insert("NOMARTICULO", valores["NOMARTICULO"]);
02211 lpedidoclientemap.insert("ABREVARTICULO", valores["ABREVARTICULO"]);
02212 lpedidoclientemap.insert("CODIGOCOMPLETOARTICULO", valores["CODIGOCOMPLETOARTICULO"]);
02213 listalpedidocliente.append(lpedidoclientemap);
02214 _depura("END ImportBulmaFact::trataLPedidoCliente", 0);
02215 return 0;
02216 }
02217
02218
02220
02223 int ImportBulmaFact::trataDPedidoCliente() {
02224 _depura("ImportBulmaFact::trataDPedidoCliente", 0);
02226 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<HR><B>Tratando DPedidoCliente ") + valores["IDDPEDIDOCLIENTE"] + "</B><BR>");
02227 tvalores dpedidoclientemap;
02228 dpedidoclientemap.insert("IDDPEDIDOCLIENTE", valores["IDDPEDIDOCLIENTE"]);
02229 dpedidoclientemap.insert("CONCEPTDPEDIDOCLIENTE", valores["CONCEPTDPEDIDOCLIENTE"]);
02230 dpedidoclientemap.insert("PROPORCIONDPEDIDOCLIENTE", valores["PROPORCIONDPEDIDOCLIENTE"]);
02231 listadpedidocliente.append(dpedidoclientemap);
02232 _depura("END ImportBulmaFact::trataDPedidoCliente", 0);
02233 return 0;
02234 }
02235
02236
02238
02241 int ImportBulmaFact::trataPedidoCliente() {
02242 _depura("ImportBulmaFact::trataPedidoCliente", 0);
02243 QString query;
02244 cursor2 *cur;
02246 pgimport->mensajeria(theApp->translate("ImportBulmaFact","<HR><B>Tratando Pedido Cliente ") + valores["IDPEDIDOCLIENTE"] + " " + valores["NOMBREFAMILIA"] + "</B><BR>");
02247 QString idpedidocliente = valores["IDPEDIDOCLIENTE"];
02248 QString numpedidocliente = valores["NUMPEDIDOCLIENTE"];
02249 QString refpedidocliente = valores["REFPEDIDOCLIENTE"];
02250 QString fechapedidocliente = valores["FECHAPEDIDOCLIENTE"];
02251 QString descpedidocliente = valores["DESCPEDIDOCLIENTE"];
02252 QString idalmacen = valores["IDALMACEN"];
02253 QString comentpedidocliente = valores["COMENTPEDIDOCLIENTE"];
02254 QString procesadopedidocliente = valores["PROCESADOPEDIDOCLIENTE"];
02255 QString contactpedidocliente = valores["CONTACTPEDIDOCLIENTE"];
02256 QString telpedidocliente = valores["TELPEDIDOCLIENTE"];
02257 QString idusuari = valores["IDUSUARI"];
02258 QString idcliente = valores["IDCLIENTE"];
02259 QString idforma_pago = valores["IDFORMA_PAGO"];
02260 QString idtrabajador = valores["IDTRABAJADOR"];
02261 QString codigoalmacen = valores["CODIGOALMACEN"];
02262 QString nomalmacen = valores["NOMALMACEN"];
02263 QString diralmacen = valores["DIRALMACEN"];
02264 QString poblalmacen = valores["POBLALMACEN"];
02265 QString cpalmacen = valores["CPALMACEN"];
02266 QString telalmacen = valores["TELALMACEN"];
02267 QString nomcliente = valores["NOMCLIENTE"];
02268 QString nomaltcliente = valores["NOMALTCLIENTE"];
02269 QString cifcliente = valores["CIFCLIENTE"];
02270 QString bancocliente = valores["BANCOCLIENTE"];
02271 QString dircliente = valores["DIRCLIENTE"];
02272 QString poblcliente = valores["POBLCLIENTE"];
02273 QString cpcliente = valores["CPCLIENTE"];
02274 QString telcliente = valores["TELCLIENTE"];
02275 QString faxcliente = valores["FAXCLIENTE"];
02276 QString mailcliente = valores["MAILCLIENTE"];
02277 QString urlcliente = valores["URLCLIENTE"];
02278 QString provcliente = valores["PROVCLIENTE"];
02279 QString nomtrabajador = valores["NOMTRABAJADOR"];
02280 QString apellidostrabajador = valores["APELLIDOSTRABAJADOR"];
02281 QString dirtrabajador = valores["DIRTRABAJADOR"];
02282 QString nsstrabajador = valores["NSSTRABAJADOR"];
02283 QString teltrabajador = valores["TELTRABAJADOR"];
02284 QString moviltrabajador = valores["MOVILTRABAJADOR"];
02285 QString emailtrabajador = valores["EMAILTRABAJADOR"];
02286 QString descforma_pago = valores["DESCFORMA_PAGO"];
02287 QString dias1tforma_pago = valores["DIAS1TFORMA_PAGO"];
02288 QString descuentoforma_pago = valores["DESCUENTOFORMA_PAGO"];
02289
02291 query = "SELECT * FROM almacen WHERE codigoalmacen = '" + codigoalmacen + "'";
02292 cur = conexionbase->cargacursor(query);
02293 if (!cur->eof()) {
02294 idalmacen = cur->valor("idalmacen");
02295 } else {
02296 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "El almacen del presupuesto no existe<BR>\n"));
02297 idalmacen = "NULL";
02298 }
02299 delete cur;
02300
02301 query = "SELECT * FROM cliente WHERE cifcliente = '" + cifcliente + "'";
02302 cur = conexionbase->cargacursor(query);
02303 if (!cur->eof()) {
02304 idcliente = cur->valor("idcliente");
02305 } else {
02306 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "El cliente del presupuesto no existe<BR>\n"));
02307 idcliente = "NULL";
02308 }
02309 delete cur;
02310
02311 query = "SELECT * FROM forma_pago WHERE descforma_pago = '" + descforma_pago + "'";
02312 cur = conexionbase->cargacursor(query);
02313 if (!cur->eof()) {
02314 idforma_pago = cur->valor("idforma_pago");
02315 } else {
02316 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "La forma de pago del presupuesto no existe<BR>\n"));
02317 idforma_pago = "NULL";
02318 }
02319 delete cur;
02320
02321 query = "SELECT * FROM trabajador WHERE nomtrabajador = '" + nomtrabajador + "' AND nsstrabajador = '" + nsstrabajador + "'";
02322 cur = conexionbase->cargacursor(query);
02323 if (!cur->eof()) {
02324 idtrabajador = cur->valor("idtrabajador");
02325 } else {
02326 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "El empleado del presupuesto no existe<BR>\n"));
02327 idtrabajador = "NULL";
02328 }
02329 delete cur;
02330
02332 query = " INSERT INTO pedidocliente (numpedidocliente, refpedidocliente, fechapedidocliente, descpedidocliente, contactpedidocliente, telpedidocliente, comentpedidocliente, idusuari, procesadopedidocliente, idcliente, idalmacen, idforma_pago, idtrabajador) VALUES (";
02333 query += "NULL";
02334 query += ", '" + refpedidocliente + "'";
02335 query += ", '" + fechapedidocliente + "'";
02336 query += ", '" + descpedidocliente + "'";
02337 query += ", '" + contactpedidocliente + "'";
02338 query += ", '" + telpedidocliente + "'";
02339 query += ", '" + comentpedidocliente + "'";
02340 query += ", NULL";
02341 query += ",'" + procesadopedidocliente + "'";
02342 query += "," + idcliente;
02343 query += "," + idalmacen;
02344 query += "," + idforma_pago;
02345 query += "," + idtrabajador;
02346 query += ")";
02347
02348 conexionbase->begin();
02349 conexionbase->ejecuta(query);
02350 cur = conexionbase->cargacursor("SELECT MAX(idpedidocliente) AS id FROM pedidocliente");
02351 idpedidocliente = cur->valor("id");
02352 delete cur;
02353 conexionbase->commit();
02355 tvalores *lpedidoclientemap;
02356
02357 QMutableListIterator<tvalores> ilistalpedidocliente(listalpedidocliente);
02358
02359 for (lpedidoclientemap = &listalpedidocliente.first(); lpedidoclientemap; lpedidoclientemap = &ilistalpedidocliente.next()) {
02360 QString idlpedidocliente = (*lpedidoclientemap)["IDLPEDIDOCLIENTE"];
02361 QString desclpedidocliente = (*lpedidoclientemap)["DESCLPEDIDOCLIENTE"];
02362 QString cantlpedidocliente = (*lpedidoclientemap)["CANTLPEDIDOCLIENTE"];
02363 QString pvplpedidocliente = (*lpedidoclientemap)["PVPLPEDIDOCLIENTE"];
02364 QString ivalpedidocliente = (*lpedidoclientemap)["IVALPEDIDOCLIENTE"];
02365 QString descuentolpedidocliente = (*lpedidoclientemap)["DESCUENTOLPEDIDOCLIENTE"];
02366 QString idarticulo = (*lpedidoclientemap)["IDARTICULO"];
02367 QString codarticulo = (*lpedidoclientemap)["CODARTICULO"];
02368 QString nomarticulo = (*lpedidoclientemap)["NOMARTICULO"];
02369 QString abrevarticulo = (*lpedidoclientemap)["ABREVARTICULO"];
02370 QString codigocompletoarticulo = (*lpedidoclientemap)["CODIGOCOMPLETOARTICULO"];
02372 query = "SELECT * FROM articulo WHERE codigocompletoarticulo = '" + codigocompletoarticulo + "'";
02373 cur = conexionbase->cargacursor(query);
02374 if (!cur->eof()) {
02375 idarticulo = cur->valor("idarticulo");
02376 } else {
02377 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "El articulo de la linea de presupuesto no existe<BR>\n"));
02378 idarticulo = "NULL";
02379 }
02380 delete cur;
02382 query = " INSERT INTO lpedidocliente (desclpedidocliente, cantlpedidocliente, pvplpedidocliente, ivalpedidocliente, descuentolpedidocliente, idpedidocliente, idarticulo) VALUES (";
02383 query += "'" + desclpedidocliente + "'";
02384 query += ", " + cantlpedidocliente;
02385 query += ", " + pvplpedidocliente;
02386 query += ", " + ivalpedidocliente;
02387 query += ", " + descuentolpedidocliente;
02388 query += ", " + idpedidocliente;
02389 query += ", " + idarticulo;
02390 query += ")";
02391 conexionbase->ejecuta(query);
02392 }
02394 tvalores *dpedidoclientemap;
02395
02396 QMutableListIterator<tvalores> ilistadpedidocliente(listadpedidocliente);
02397
02398 for (dpedidoclientemap = &listadpedidocliente.first(); dpedidoclientemap; dpedidoclientemap = &ilistadpedidocliente.next()) {
02399 QString iddpedidocliente = (*dpedidoclientemap)["IDDPEDIDOCLIENTE"];
02400 QString conceptdpedidocliente = (*dpedidoclientemap)["CONCEPTDPEDIDOCLIENTE"];
02401 QString proporciondpedidocliente = (*dpedidoclientemap)["PROPORCIONDPEDIDOCLIENTE"];
02403 query = " INSERT INTO dpedidocliente (conceptdpedidocliente, proporciondpedidocliente, idpedidocliente) VALUES (";
02404 query += "'" + conceptdpedidocliente + "'";
02405 query += ", " + proporciondpedidocliente;
02406 query += ", " + idpedidocliente;
02407 query += ")";
02408 conexionbase->ejecuta(query);
02409 }
02410 valores.clear();
02411 _depura("END ImportBulmaFact::trataPedidoCliente", 0);
02412 return 0;
02413 }
02414
02415
02417
02420 int ImportBulmaFact::trataLAlbaran() {
02421 _depura("ImportBulmaFact::trataLAlbaran", 0);
02423 pgimport->mensajeria(theApp->translate("ImportBulmaFact","<HR><B>Tratando LAlbaran ")+valores["IDLALBARAN"]+"</B><BR>");
02424 tvalores lalbaranmap;
02425 lalbaranmap.insert("IDLALBARAN", valores["IDLALBARAN"]);
02426 lalbaranmap.insert("DESCLALBARAN", valores["DESCLALBARAN"]);
02427 lalbaranmap.insert("CANTLALBARAN", valores["CANTLALBARAN"]);
02428 lalbaranmap.insert("PVPLALBARAN", valores["PVPLALBARAN"]);
02429 lalbaranmap.insert("IVALALBARAN", valores["IVALALBARAN"]);
02430 lalbaranmap.insert("DESCUENTOLALBARAN", valores["DESCUENTOLALBARAN"]);
02431 lalbaranmap.insert("IDALBARAN", valores["IDALBARAN"]);
02432 lalbaranmap.insert("IDARTICULO", valores["IDARTICULO"]);
02433 lalbaranmap.insert("CODARTICULO", valores["CODARTICULO"]);
02434 lalbaranmap.insert("NOMARTICULO", valores["NOMARTICULO"]);
02435 lalbaranmap.insert("ABREVARTICULO", valores["ABREVARTICULO"]);
02436 lalbaranmap.insert("CODIGOCOMPLETOARTICULO", valores["CODIGOCOMPLETOARTICULO"]);
02437 listalalbaran.append(lalbaranmap);
02438 _depura("END ImportBulmaFact::trataLAlbaran", 0);
02439 return 0;
02440 }
02441
02442
02444
02447 int ImportBulmaFact::trataDAlbaran() {
02448 _depura("ImportBulmaFact::trataDAlbaran", 0);
02450 pgimport->mensajeria(theApp->translate("ImportBulmaFact","<HR><B>Tratando DAlbaran ")+valores["IDDALBARAN"]+"</B><BR>");
02451 tvalores dalbaranmap;
02452 dalbaranmap.insert("IDDALBARAN", valores["IDDALBARAN"]);
02453 dalbaranmap.insert("CONCEPTDALBARAN", valores["CONCEPTDALBARAN"]);
02454 dalbaranmap.insert("PROPORCIONDALBARAN", valores["PROPORCIONDALBARAN"]);
02455 listadalbaran.append(dalbaranmap);
02456 _depura("END ImportBulmaFact::trataDAlbaran", 0);
02457 return 0;
02458 }
02459
02460
02462
02465 int ImportBulmaFact::trataAlbaran() {
02466 _depura("ImportBulmaFact::trataAlbaran", 0);
02467 QString query;
02468 cursor2 *cur;
02470 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<HR><B>Tratando Albaran ") + valores["IDALBARAN"] + " " + valores["NOMBREFAMILIA"] + "</B><BR>");
02471 QString idalbaran = valores["IDALBARAN"];
02472 QString numalbaran = valores["NUMALBARAN"];
02473 QString refalbaran = valores["REFALBARAN"];
02474 QString fechaalbaran = valores["FECHAALBARAN"];
02475 QString descalbaran = valores["DESCALBARAN"];
02476 QString idalmacen = valores["IDALMACEN"];
02477 QString contactfactura = valores["CONTACTFACTURA"];
02478 QString telfactura = valores["TELFACTURA"];
02479 QString comentalbaran = valores["COMENTALBARAN"];
02480 QString procesadoalbaran = valores["PROCESADOALBARAN"];
02481 QString contactalbaran = valores["CONTACTALBARAN"];
02482 QString telalbaran = valores["TELALBARAN"];
02483 QString idusuari = valores["IDUSUARI"];
02484 QString idcliente = valores["IDCLIENTE"];
02485 QString idforma_pago = valores["IDFORMA_PAGO"];
02486 QString idtrabajador = valores["IDTRABAJADOR"];
02487 QString codigoalmacen = valores["CODIGOALMACEN"];
02488 QString nomalmacen = valores["NOMALMACEN"];
02489 QString diralmacen = valores["DIRALMACEN"];
02490 QString poblalmacen = valores["POBLALMACEN"];
02491 QString cpalmacen = valores["CPALMACEN"];
02492 QString telalmacen = valores["TELALMACEN"];
02493 QString nomcliente = valores["NOMCLIENTE"];
02494 QString nomaltcliente = valores["NOMALTCLIENTE"];
02495 QString cifcliente = valores["CIFCLIENTE"];
02496 QString bancocliente = valores["BANCOCLIENTE"];
02497 QString dircliente = valores["DIRCLIENTE"];
02498 QString poblcliente = valores["POBLCLIENTE"];
02499 QString cpcliente = valores["CPCLIENTE"];
02500 QString telcliente = valores["TELCLIENTE"];
02501 QString faxcliente = valores["FAXCLIENTE"];
02502 QString mailcliente = valores["MAILCLIENTE"];
02503 QString urlcliente = valores["URLCLIENTE"];
02504 QString provcliente = valores["PROVCLIENTE"];
02505 QString nomtrabajador = valores["NOMTRABAJADOR"];
02506 QString apellidostrabajador = valores["APELLIDOSTRABAJADOR"];
02507 QString dirtrabajador = valores["DIRTRABAJADOR"];
02508 QString nsstrabajador = valores["NSSTRABAJADOR"];
02509 QString teltrabajador = valores["TELTRABAJADOR"];
02510 QString moviltrabajador = valores["MOVILTRABAJADOR"];
02511 QString emailtrabajador = valores["EMAILTRABAJADOR"];
02512 QString descforma_pago = valores["DESCFORMA_PAGO"];
02513 QString dias1tforma_pago = valores["DIAS1TFORMA_PAGO"];
02514 QString descuentoforma_pago = valores["DESCUENTOFORMA_PAGO"];
02515
02517 query = "SELECT * FROM almacen WHERE codigoalmacen = '" + codigoalmacen + "'";
02518 cur = conexionbase->cargacursor(query);
02519 if(!cur->eof()) {
02520 idalmacen = cur->valor("idalmacen");
02521 } else {
02522 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "El almacen del presupuesto no existe<BR>\n"));
02523 idalmacen = "NULL";
02524 }
02525 delete cur;
02526
02527 query = "SELECT * FROM cliente WHERE cifcliente = '" + cifcliente + "'";
02528 cur = conexionbase->cargacursor(query);
02529 if (!cur->eof()) {
02530 idcliente = cur->valor("idcliente");
02531 } else {
02532 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "El cliente del presupuesto no existe<BR>\n"));
02533 idcliente = "NULL";
02534 }
02535 delete cur;
02536 query = "SELECT * FROM forma_pago WHERE descforma_pago = '" + descforma_pago + "'";
02537 cur = conexionbase->cargacursor(query);
02538 if (!cur->eof()) {
02539 idforma_pago = cur->valor("idforma_pago");
02540 } else {
02541 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "La forma de pago del presupuesto no existe<BR>\n"));
02542 idforma_pago = "NULL";
02543 }
02544 delete cur;
02545 query = "SELECT * FROM trabajador WHERE nomtrabajador = '" + nomtrabajador + "' AND nsstrabajador = '" + nsstrabajador + "'";
02546 cur = conexionbase->cargacursor(query);
02547 if (!cur->eof()) {
02548 idtrabajador= cur->valor("idtrabajador");
02549 } else {
02550 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "El empleado del presupuesto no existe<BR>\n"));
02551 idtrabajador = "NULL";
02552 }
02553 delete cur;
02555 query = " INSERT INTO albaran (numalbaran, refalbaran, fechaalbaran, descalbaran, contactalbaran , telalbaran , comentalbaran , idusuari, procesadoalbaran, idcliente, idalmacen, idforma_pago, idtrabajador) VALUES (";
02556 query += "NULL";
02557 query += ", '" + refalbaran + "'";
02558 query += ", '" + fechaalbaran + "'";
02559 query += ", '" + descalbaran + "'";
02560 query += ", '" + contactalbaran + "'";
02561 query += ", '" + telalbaran + "'";
02562 query += ", '" + comentalbaran + "'";
02563 query += ", NULL";
02564 query += ",'" + procesadoalbaran + "'";
02565 query += "," + idcliente;
02566 query += "," + idalmacen;
02567 query += "," + idforma_pago;
02568 query += "," + idtrabajador;
02569 query += ")";
02570
02571 conexionbase->begin();
02572 conexionbase->ejecuta(query);
02573 cur = conexionbase->cargacursor("SELECT MAX(idalbaran) AS id FROM albaran");
02574 idalbaran = cur->valor("id");
02575 delete cur;
02576 conexionbase->commit();
02578 tvalores *lalbaranmap;
02579
02580 QMutableListIterator<tvalores> ilistalalbaran(listalalbaran);
02581
02582 for (lalbaranmap = &listalalbaran.first(); lalbaranmap; lalbaranmap = &ilistalalbaran.next()) {
02583 QString idlalbaran = (*lalbaranmap)["IDLALBARAN"];
02584 QString desclalbaran = (*lalbaranmap)["DESCLALBARAN"];
02585 QString cantlalbaran = (*lalbaranmap)["CANTLALBARAN"];
02586 QString pvplalbaran = (*lalbaranmap)["PVPLALBARAN"];
02587 QString ivalalbaran = (*lalbaranmap)["IVALALBARAN"];
02588 QString descuentolalbaran = (*lalbaranmap)["DESCUENTOLALBARAN"];
02589 QString idarticulo = (*lalbaranmap)["IDARTICULO"];
02590 QString codarticulo = (*lalbaranmap)["CODARTICULO"];
02591 QString nomarticulo = (*lalbaranmap)["NOMARTICULO"];
02592 QString abrevarticulo = (*lalbaranmap)["ABREVARTICULO"];
02593 QString codigocompletoarticulo = (*lalbaranmap)["CODIGOCOMPLETOARTICULO"];
02595 query = "SELECT * FROM articulo WHERE codigocompletoarticulo = '" + codigocompletoarticulo + "'";
02596 cur = conexionbase->cargacursor(query);
02597 if (!cur->eof()) {
02598 idarticulo = cur->valor("idarticulo");
02599 } else {
02600 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "El articulo de la linea de presupuesto no existe<BR>\n"));
02601 idarticulo = "NULL";
02602 }
02603 delete cur;
02605 query = " INSERT INTO lalbaran(desclalbaran, cantlalbaran, pvplalbaran, ivalalbaran, descuentolalbaran, idalbaran, idarticulo) VALUES (";
02606 query += "'" + desclalbaran + "'";
02607 query += ", " + cantlalbaran;
02608 query += ", " + pvplalbaran;
02609 query += ", " + ivalalbaran;
02610 query += ", " + descuentolalbaran;
02611 query += ", " + idalbaran;
02612 query += ", " + idarticulo;
02613 query += ")";
02614 conexionbase->ejecuta(query);
02615 }
02617 tvalores *dalbaranmap;
02618
02619 QMutableListIterator<tvalores> ilistadalbaran(listadalbaran);
02620
02621 for (dalbaranmap = &listadalbaran.first(); dalbaranmap; dalbaranmap = &ilistadalbaran.next()) {
02622 QString iddalbaran = (*dalbaranmap)["IDDALBARAN"];
02623 QString conceptdalbaran = (*dalbaranmap)["CONCEPTDALBARAN"];
02624 QString proporciondalbaran = (*dalbaranmap)["PROPORCIONDALBARAN"];
02626 query = " INSERT INTO dalbaran(conceptdalbaran, proporciondalbaran, idalbaran) VALUES (";
02627 query += "'" + conceptdalbaran + "'";
02628 query += ", " + proporciondalbaran;
02629 query += ", " + idalbaran;
02630 query += ")";
02631 conexionbase->ejecuta(query);
02632 }
02633 valores.clear();
02634 _depura("END ImportBulmaFact::trataAlbaran", 0);
02635 return 0;
02636 }
02637
02638
02640
02643 int ImportBulmaFact::trataLFactura() {
02644 _depura("ImportBulmaFact::trataLFactura", 0);
02646 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<HR><B>Tratando LFactura ") + valores["IDLFACTURA"] + "</B><BR>");
02647 tvalores lfacturamap;
02648 lfacturamap.insert("IDLFACTURA", valores["IDLFACTURA"]);
02649 lfacturamap.insert("DESCLFACTURA", valores["DESCLFACTURA"]);
02650 lfacturamap.insert("CANTLFACTURA", valores["CANTLFACTURA"]);
02651 lfacturamap.insert("PVPLFACTURA", valores["PVPLFACTURA"]);
02652 lfacturamap.insert("IVALFACTURA", valores["IVALFACTURA"]);
02653 lfacturamap.insert("DESCUENTOLFACTURA", valores["DESCUENTOLFACTURA"]);
02654 lfacturamap.insert("IDFACTURA", valores["IDFACTURA"]);
02655 lfacturamap.insert("IDARTICULO", valores["IDARTICULO"]);
02656 lfacturamap.insert("CODARTICULO", valores["CODARTICULO"]);
02657 lfacturamap.insert("NOMARTICULO", valores["NOMARTICULO"]);
02658 lfacturamap.insert("ABREVARTICULO", valores["ABREVARTICULO"]);
02659 lfacturamap.insert("CODIGOCOMPLETOARTICULO", valores["CODIGOCOMPLETOARTICULO"]);
02660 listalfactura.append(lfacturamap);
02661 _depura("END ImportBulmaFact::trataLFactura", 0);
02662 return 0;
02663 }
02664
02665
02667
02670 int ImportBulmaFact::trataDFactura() {
02671 _depura("ImportBulmaFact::trataDFactura", 0);
02673 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<HR><B>Tratando DFactura ") + valores["IDDFACTURA"] + "</B><BR>");
02674 tvalores dfacturamap;
02675 dfacturamap.insert("IDDFACTURA", valores["IDDFACTURA"]);
02676 dfacturamap.insert("CONCEPTDFACTURA", valores["CONCEPTDFACTURA"]);
02677 dfacturamap.insert("PROPORCIONDFACTURA", valores["PROPORCIONDFACTURA"]);
02678 listadfactura.append(dfacturamap);
02679 _depura("END ImportBulmaFact::trataDFactura", 0);
02680 return 0;
02681 }
02682
02683
02685
02688 int ImportBulmaFact::trataFactura() {
02689 _depura("ImportBulmaFact::trataFactura", 0);
02690 QString query;
02691 cursor2 *cur;
02693 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<HR><B>Tratando Factura ") + valores["IDFACTURA"] + " " + valores["NOMBREFAMILIA"] + "</B><BR>");
02694 QString idfactura = valores["IDFACTURA"];
02695 QString codigoserie_factura = valores["CODIGOSERIE_FACTURA"];
02696 QString numfactura = valores["NUMFACTURA"];
02697 QString reffactura = valores["REFFACTURA"];
02698 QString ffactura = valores["FFACTURA"];
02699 QString descfactura = valores["DESCFACTURA"];
02700 QString idalmacen = valores["IDALMACEN"];
02701 QString contactfactura = valores["CONTACTFACTURA"];
02702 QString telfactura = valores["TELFACTURA"];
02703 QString comentfactura = valores["COMENTFACTURA"];
02704 QString procesadafactura = valores["PROCESADAFACTURA"];
02705 QString idusuari = valores["IDUSUARI"];
02706 QString idcliente = valores["IDCLIENTE"];
02707 QString idforma_pago = valores["IDFORMA_PAGO"];
02708 QString idtrabajador = valores["IDTRABAJADOR"];
02709 QString codigoalmacen = valores["CODIGOALMACEN"];
02710 QString nomalmacen = valores["NOMALMACEN"];
02711 QString diralmacen = valores["DIRALMACEN"];
02712 QString poblalmacen = valores["POBLALMACEN"];
02713 QString cpalmacen = valores["CPALMACEN"];
02714 QString telalmacen = valores["TELALMACEN"];
02715 QString nomcliente = valores["NOMCLIENTE"];
02716 QString nomaltcliente = valores["NOMALTCLIENTE"];
02717 QString cifcliente = valores["CIFCLIENTE"];
02718 QString bancocliente = valores["BANCOCLIENTE"];
02719 QString dircliente = valores["DIRCLIENTE"];
02720 QString poblcliente = valores["POBLCLIENTE"];
02721 QString cpcliente = valores["CPCLIENTE"];
02722 QString telcliente = valores["TELCLIENTE"];
02723 QString faxcliente = valores["FAXCLIENTE"];
02724 QString mailcliente = valores["MAILCLIENTE"];
02725 QString urlcliente = valores["URLCLIENTE"];
02726 QString provcliente = valores["PROVCLIENTE"];
02727 QString nomtrabajador = valores["NOMTRABAJADOR"];
02728 QString apellidostrabajador = valores["APELLIDOSTRABAJADOR"];
02729 QString dirtrabajador = valores["DIRTRABAJADOR"];
02730 QString nsstrabajador = valores["NSSTRABAJADOR"];
02731 QString teltrabajador = valores["TELTRABAJADOR"];
02732 QString moviltrabajador = valores["MOVILTRABAJADOR"];
02733 QString emailtrabajador = valores["EMAILTRABAJADOR"];
02734 QString descforma_pago = valores["DESCFORMA_PAGO"];
02735 QString dias1tforma_pago = valores["DIAS1TFORMA_PAGO"];
02736 QString descuentoforma_pago = valores["DESCUENTOFORMA_PAGO"];
02737
02739 query = "SELECT * FROM almacen WHERE codigoalmacen = '" + codigoalmacen + "'";
02740 cur = conexionbase->cargacursor(query);
02741 if (!cur->eof()) {
02742 idalmacen = cur->valor("idalmacen");
02743 } else {
02744 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "El almaceń del presupuesto no existe<BR>\n"));
02745 idalmacen = "NULL";
02746 }
02747 delete cur;
02748 query = "SELECT * FROM cliente WHERE cifcliente = '" + cifcliente + "'";
02749 cur = conexionbase->cargacursor(query);
02750 if (!cur->eof()) {
02751 idcliente= cur->valor("idcliente");
02752 } else {
02753 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "El clienteń del presupuesto no existe<BR>\n"));
02754 idcliente = "NULL";
02755 }
02756 delete cur;
02757 query = "SELECT * FROM forma_pago WHERE descforma_pago = '" + descforma_pago + "'";
02758 cur = conexionbase->cargacursor(query);
02759 if (!cur->eof()) {
02760 idforma_pago = cur->valor("idforma_pago");
02761 } else {
02762 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "La forma de pagoń del presupuesto no existe<BR>\n"));
02763 idforma_pago = "NULL";
02764 }
02765 delete cur;
02766
02767 query = "SELECT * FROM trabajador WHERE nomtrabajador = '" + nomtrabajador + "' AND nsstrabajador = '" + nsstrabajador + "'";
02768 cur = conexionbase->cargacursor(query);
02769 if (!cur->eof()) {
02770 idtrabajador= cur->valor("idtrabajador");
02771 } else {
02772 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "El empleado del presupuesto no existe<BR>\n"));
02773 idtrabajador = "NULL";
02774 }
02775 delete cur;
02776
02778 query = "SELECT * FROM factura WHERE numfactura = '" + numfactura + "' AND codigoserie_factura = '" + codigoserie_factura + "'";
02779 cur = conexionbase->cargacursor(query);
02780 if (!cur->eof()) {
02781 delete cur;
02782 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "La factura ya existe y no se va a insertar."));
02783 valores.clear();
02784 return 1;
02785 }
02786 delete cur;
02787
02789 query = " INSERT INTO factura(numfactura, reffactura, ffactura, descfactura, contactfactura, telfactura, comentfactura, idusuari, procesadafactura, idcliente, idalmacen, idforma_pago, idtrabajador, codigoserie_factura) VALUES (";
02790 query += numfactura;
02791 query += ", '" + reffactura + "'";
02792 query += ", '" + ffactura + "'";
02793 query += ", '" + descfactura + "'";
02794 query += ", '" + contactfactura + "'";
02795 query += ", '" + telfactura + "'";
02796 query += ", '" + comentfactura + "'";
02797 query += ", NULL";
02798 query += ",'" + procesadafactura + "'";
02799 query += "," + idcliente;
02800 query += "," + idalmacen;
02801 query += "," + idforma_pago;
02802 query += "," + idtrabajador;
02803 query += ",'" + codigoserie_factura + "'";
02804 query += ")";
02805
02806 conexionbase->begin();
02807 conexionbase->ejecuta(query);
02808 cur= conexionbase->cargacursor("SELECT MAX(idfactura) AS id FROM factura");
02809 idfactura = cur->valor("id");
02810 delete cur;
02811 conexionbase->commit();
02813 tvalores *lfacturamap;
02814
02815 QMutableListIterator<tvalores> ilistalfactura(listalfactura);
02816
02817 for (lfacturamap = &listalfactura.first(); lfacturamap; lfacturamap = &ilistalfactura.next()) {
02818 QString idlfactura = (*lfacturamap)["IDLFACTURA"];
02819 QString desclfactura = (*lfacturamap)["DESCLFACTURA"];
02820 QString cantlfactura = (*lfacturamap)["CANTLFACTURA"];
02821 QString pvplfactura = (*lfacturamap)["PVPLFACTURA"];
02822 QString ivalfactura = (*lfacturamap)["IVALFACTURA"];
02823 QString descuentolfactura = (*lfacturamap)["DESCUENTOLFACTURA"];
02824 QString idarticulo = (*lfacturamap)["IDARTICULO"];
02825 QString codarticulo = (*lfacturamap)["CODARTICULO"];
02826 QString nomarticulo = (*lfacturamap)["NOMARTICULO"];
02827 QString abrevarticulo = (*lfacturamap)["ABREVARTICULO"];
02828 QString codigocompletoarticulo = (*lfacturamap)["CODIGOCOMPLETOARTICULO"];
02830 query = "SELECT * FROM articulo WHERE codigocompletoarticulo = '" + codigocompletoarticulo + "'";
02831 cur = conexionbase->cargacursor(query);
02832 if (!cur->eof()) {
02833 idarticulo = cur->valor("idarticulo");
02834 } else {
02835 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "El articulo de la linea de presupuesto no existe<BR>\n"));
02836 idarticulo = "NULL";
02837 }
02838 delete cur;
02840 query = " INSERT INTO lfactura(desclfactura, cantlfactura, pvplfactura, ivalfactura, descuentolfactura, idfactura, idarticulo) VALUES (";
02841 query += "'" + desclfactura + "'";
02842 query += ", " + cantlfactura;
02843 query += ", " + pvplfactura;
02844 query += ", " + ivalfactura;
02845 query += ", " + descuentolfactura;
02846 query += ", " + idfactura;
02847 query += ", " + idarticulo;
02848 query += ")";
02849 conexionbase->ejecuta(query);
02850 }
02852 tvalores *dfacturamap;
02853
02854 QMutableListIterator<tvalores> ilistadfactura(listadfactura);
02855
02856 for (dfacturamap = &listadfactura.first(); dfacturamap; dfacturamap = &ilistadfactura.next()) {
02857 QString iddfactura = (*dfacturamap)["IDDFACTURA"];
02858 QString conceptdfactura = (*dfacturamap)["CONCEPTDFACTURA"];
02859 QString proporciondfactura = (*dfacturamap)["PROPORCIONDFACTURA"];
02861 query = " INSERT INTO dfactura(conceptdfactura, proporciondfactura, idfactura) VALUES (";
02862 query += "'" + conceptdfactura + "'";
02863 query += ", " + proporciondfactura;
02864 query += ", " + idfactura;
02865 query += ")";
02866 conexionbase->ejecuta(query);
02867 }
02868 valores.clear();
02869 _depura("END ImportBulmaFact::trataFactura", 0);
02870 return 0;
02871 }
02872
02873
02875
02878 int ImportBulmaFact::trataLPresupuesto() {
02879 _depura("ImportBulmaFact::trataLPresupuesto", 0);
02881 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<HR><B>Tratando LPresupuesto ") + valores["IDLPRESUPUESTO"] + "</B><BR>");
02882 tvalores lpresupuestomap;
02883 lpresupuestomap.insert("IDLPRESUPUESTO", valores["IDLPRESUPUESTO"]);
02884 lpresupuestomap.insert("DESCLPRESUPUESTO", valores["DESCLPRESUPUESTO"]);
02885 lpresupuestomap.insert("CANTLPRESUPUESTO", valores["CANTLPRESUPUESTO"]);
02886 lpresupuestomap.insert("PVPLPRESUPUESTO", valores["PVPLPRESUPUESTO"]);
02887 lpresupuestomap.insert("IVALPRESUPUESTO", valores["IVALPRESUPUESTO"]);
02888 lpresupuestomap.insert("DESCUENTOLPRESUPUESTO", valores["DESCUENTOLPRESUPUESTO"]);
02889 lpresupuestomap.insert("IDPRESUPUESTO", valores["IDPRESUPUESTO"]);
02890 lpresupuestomap.insert("IDARTICULO", valores["IDARTICULO"]);
02891 lpresupuestomap.insert("CODARTICULO", valores["CODARTICULO"]);
02892 lpresupuestomap.insert("NOMARTICULO", valores["NOMARTICULO"]);
02893 lpresupuestomap.insert("ABREVARTICULO", valores["ABREVARTICULO"]);
02894 lpresupuestomap.insert("CODIGOCOMPLETOARTICULO", valores["CODIGOCOMPLETOARTICULO"]);
02895 listalpresupuesto.append(lpresupuestomap);
02896 _depura("END ImportBulmaFact::trataLPresupuesto", 0);
02897 return 0;
02898 }
02899
02900
02902
02905 int ImportBulmaFact::trataDPresupuesto() {
02906 _depura("ImportBulmaFact::trataDPresupuesto", 0);
02908 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<HR><B>Tratando DPresupuesto ") + valores["IDDPRESUPUESTO"] + "</B><BR>");
02909 tvalores dpresupuestomap;
02910 dpresupuestomap.insert("IDDPRESUPUESTO", valores["IDDPRESUPUESTO"]);
02911 dpresupuestomap.insert("CONCEPTDPRESUPUESTO", valores["CONCEPTDPRESUPUESTO"]);
02912 dpresupuestomap.insert("PROPORCIONDPRESUPUESTO", valores["PROPORCIONDPRESUPUESTO"]);
02913 listadpresupuesto.append(dpresupuestomap);
02914 _depura("END ImportBulmaFact::trataDPresupuesto", 0);
02915 return 0;
02916 }
02917
02918
02920
02923 int ImportBulmaFact::trataPresupuesto() {
02924 _depura("ImportBulmaFact::trataPresupuesto", 0);
02925 QString query;
02926 cursor2 *cur;
02928 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "<HR><B>Tratando Presupuesto ") + valores["IDPRESUPUESTO"] + "</B><BR>");
02930 QString idpresupuesto = valores["IDPRESUPUESTO"];
02931 QString numpresupuesto = valores["NUMPRESUPUESTO"];
02932 QString refpresupuesto = valores["REFPRESUPUESTO"];
02933 QString fpresupuesto = valores["FPRESUPUESTO"];
02934 QString descpresupuesto = valores["DESCPRESUPUESTO"];
02935 QString contactpresupuesto = valores["CONTACTPRESUPUESTO"];
02936 QString telpresupuesto = valores["TELPRESUPUESTO"];
02937 QString vencpresupuesto = valores["VENCPRESUPUESTO"];
02938 QString comentpresupuesto = valores["COMENTPRESUPUESTO"];
02939 QString idusuari = valores["IDUSUARI"];
02940 QString procesadopresupuesto = valores["PROCESADOPRESUPUESTO"];
02941 QString idcliente = valores["IDCLIENTE"];
02942 QString idalmacen = valores["IDALMACEN"];
02943 QString idforma_pago = valores["IDFORMA_PAGO"];
02944 QString idtrabajador = valores["IDTRABAJADOR"];
02945 QString codigoalmacen = valores["CODIGOALMACEN"];
02946 QString nomalmacen = valores["NOMALMACEN"];
02947 QString diralmacen = valores["DIRALMACEN"];
02948 QString poblalamacen = valores["POBLALMACEN"];
02949 QString cpalmacen = valores["CPALMACEN"];
02950 QString telalmacen = valores["TELALMACEN"];
02951 QString nomcliente = valores["NOMCLIENTE"];
02952 QString nomaltcliente = valores["NOMALTCLIENTE"];
02953 QString cifcliente = valores["CIFCLIENTE"];
02954 QString bancocliente = valores["BANCOCLIENTE"];
02955 QString dircliente = valores["DIRCLIENTE"];
02956 QString poblcliente = valores["POBLCLIENTE"];
02957 QString cpcliente = valores["CPCLIENTE"];
02958 QString telcliente = valores["TELCLIENTE"];
02959 QString faxcliente = valores["FAXCLIENTE"];
02960 QString mailcliente = valores["MAILCLIENTE"];
02961 QString urlcliente = valores["URLCLIENTE"];
02962 QString provcliente = valores["PROVCLIENTE"];
02963 QString nomtrabajador = valores["NOMTRABAJADOR"];
02964 QString apellidostrabajador = valores["APELLIDOSTRABAJADOR"];
02965 QString dirtrabajador = valores["DIRTRABAJADOR"];
02966 QString nsstrabajador = valores["NSSTRABAJADOR"];
02967 QString teltrabajador = valores["TELTRABAJADOR"];
02968 QString moviltrabajador = valores["MOVILTRABAJADOR"];
02969 QString emailtrabajador = valores["EMAILTRABAJADOR"];
02970 QString descforma_pago = valores["DESCFORMA_PAGO"];
02971 QString dias1tforma_pago = valores["DIAS1TFORMA_PAGO"];
02972 QString descuentoforma_pago = valores["DESCUENTOFORMA_PAGO"];
02974 query = "SELECT * FROM almacen WHERE codigoalmacen = '" + codigoalmacen + "'";
02975 cur = conexionbase->cargacursor(query);
02976 if (!cur->eof()) {
02977 idalmacen = cur->valor("idalmacen");
02978 } else {
02979 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "El almacen del presupuesto no existe<BR>\n"));
02980 idalmacen = "NULL";
02981 }
02982 delete cur;
02983
02984 query = "SELECT * FROM cliente WHERE cifcliente='" + cifcliente + "'";
02985 cur = conexionbase->cargacursor(query);
02986 if (!cur->eof()) {
02987 idcliente = cur->valor("idcliente");
02988 } else {
02989 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "El cliente del presupuesto no existe<BR>\n"));
02990 idcliente = "NULL";
02991 }
02992 delete cur;
02993
02994 query = "SELECT * FROM forma_pago WHERE descforma_pago = '" + descforma_pago + "'";
02995 cur = conexionbase->cargacursor(query);
02996 if (!cur->eof()) {
02997 idforma_pago = cur->valor("idforma_pago");
02998 } else {
02999 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "La forma de pagoń del presupuesto no existe<BR>\n"));
03000 idforma_pago = "NULL";
03001 }
03002 delete cur;
03003
03004 query = "SELECT * FROM trabajador WHERE nomtrabajador = '" + nomtrabajador + "' AND nsstrabajador = '" + nsstrabajador + "'";
03005 cur = conexionbase->cargacursor(query);
03006 if(!cur->eof()) {
03007 idtrabajador = cur->valor("idtrabajador");
03008 } else {
03009 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "El empleado del presupuesto no existe<BR>\n"));
03010 idtrabajador = "NULL";
03011 }
03012 delete cur;
03014 query = " INSERT INTO presupuesto(numpresupuesto, refpresupuesto, fpresupuesto, descpresupuesto, contactpresupuesto, telpresupuesto, vencpresupuesto, comentpresupuesto, idusuari, procesadopresupuesto, idcliente, idalmacen, idforma_pago, idtrabajador) VALUES (";
03015 query += "NULL";
03016 query += ", '" + refpresupuesto + "'";
03017 query += ", '" + fpresupuesto + "'";
03018 query += ", '" + descpresupuesto + "'";
03019 query += ", '" + contactpresupuesto + "'";
03020 query += ", '" + telpresupuesto + "'";
03021 query += ", '" + vencpresupuesto + "'";
03022 query += ", '" + comentpresupuesto + "'";
03023 query += ", NULL";
03024 query += ",'" + procesadopresupuesto + "'";
03025 query += "," + idcliente;
03026 query += "," + idalmacen;
03027 query += "," + idforma_pago;
03028 query += "," + idtrabajador;
03029 query += ")";
03030
03031 conexionbase->begin();
03032 conexionbase->ejecuta(query);
03033 cur = conexionbase->cargacursor("SELECT MAX(idpresupuesto) AS id FROM presupuesto");
03034 idpresupuesto = cur->valor("id");
03035 delete cur;
03036 conexionbase->commit();
03037
03039 tvalores *lpresupuestomap;
03040
03041 QMutableListIterator<tvalores> ilistalpresupuesto(listalpresupuesto);
03042
03043 for (lpresupuestomap = &listalpresupuesto.first(); lpresupuestomap; lpresupuestomap = &ilistalpresupuesto.next()) {
03044 QString idlpresupuesto = (*lpresupuestomap)["IDLPRESUPUESTO"];
03045 QString desclpresupuesto = (*lpresupuestomap)["DESCLPRESUPUESTO"];
03046 QString cantlpresupuesto = (*lpresupuestomap)["CANTLPRESUPUESTO"];
03047 QString pvplpresupuesto = (*lpresupuestomap)["PVPLPRESUPUESTO"];
03048 QString ivalpresupuesto = (*lpresupuestomap)["IVALPRESUPUESTO"];
03049 QString descuentolpresupuesto = (*lpresupuestomap)["DESCUENTOLPRESUPUESTO"];
03050 QString idarticulo = (*lpresupuestomap)["IDARTICULO"];
03051 QString codarticulo = (*lpresupuestomap)["CODARTICULO"];
03052 QString nomarticulo = (*lpresupuestomap)["NOMARTICULO"];
03053 QString abrevarticulo = (*lpresupuestomap)["ABREVARTICULO"];
03054 QString codigocompletoarticulo = (*lpresupuestomap)["CODIGOCOMPLETOARTICULO"];
03056 query = "SELECT * FROM articulo WHERE codigocompletoarticulo = '" + codigocompletoarticulo + "'";
03057 cur = conexionbase->cargacursor(query);
03058 if (!cur->eof()) {
03059 idarticulo = cur->valor("idarticulo");
03060 } else {
03061 pgimport->mensajeria(theApp->translate("ImportBulmaFact", "El articulo de la linea de presupuesto no existe<BR>\n"));
03062 idarticulo = "NULL";
03063 }
03064 delete cur;
03066 query = " INSERT INTO lpresupuesto(desclpresupuesto, cantlpresupuesto, pvplpresupuesto, ivalpresupuesto, descuentolpresupuesto, idpresupuesto, idarticulo) VALUES (";
03067 query += "'" + desclpresupuesto+"'";
03068 query += ", " + cantlpresupuesto;
03069 query += ", " + pvplpresupuesto;
03070 query += ", " + ivalpresupuesto;
03071 query += ", " + descuentolpresupuesto;
03072 query += ", " + idpresupuesto;
03073 query += ", " + idarticulo;
03074 query += ")";
03075 conexionbase->ejecuta(query);
03076 }
03078 tvalores *dpresupuestomap;
03079
03080 QMutableListIterator<tvalores> ilistadpresupuesto(listadpresupuesto);
03081
03082 for (dpresupuestomap = &listadpresupuesto.first(); dpresupuestomap; dpresupuestomap = &ilistadpresupuesto.next()) {
03083 QString iddpresupuesto = (*dpresupuestomap)["IDDPRESUPUESTO"];
03084 QString conceptdpresupuesto = (*dpresupuestomap)["CONCEPTDPRESUPUESTO"];
03085 QString proporciondpresupuesto = (*dpresupuestomap)["PROPORCIONDPRESUPUESTO"];
03087 query = " INSERT INTO dpresupuesto(conceptdpresupuesto, proporciondpresupuesto, idpresupuesto) VALUES (";
03088 query += "'" +conceptdpresupuesto + "'";
03089 query += ", " + proporciondpresupuesto;
03090 query += ", " + idpresupuesto;
03091 query += ")";
03092 conexionbase->ejecuta(query);
03093 }
03094 valores.clear();
03095 _depura("END ImportBulmaFact::trataPresupuesto", 0);
03096 return 0;
03097 }
03098