pgimportfiles.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   Copyright (C) 2003 by Santiago Capel                                  *
00003  *   Santiago Capel Torres (GestiONG)                                      *
00004  *   Tomeu Borras Riera                                                    *
00005  *                                                                         *
00006  *   This program is free software; you can redistribute it and/or modify  *
00007  *   it under the terms of the GNU General Public License as published by  *
00008  *   the Free Software Foundation; either version 2 of the License, or     *
00009  *   (at your option) any later version.                                   *
00010  *                                                                         *
00011  *   This program is distributed in the hope that it will be useful,       *
00012  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00013  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
00014  *   GNU General Public License for more details.                          *
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     } // end while
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     } // end while
00393     delete curas;
00394     alerta (100, 100);
00395     _depura("END pgimportfiles::bulmages2Contaplus", 0);
00396     return 0;
00397 } // end if
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                 } // end if
00468                 conexionbase->commit();
00469                 mensajeria(theApp->translate("pgimportfiles", "<LI>Se ha insertado la cuenta ") + cod + "</LI>\n");
00470             } // end if
00471         } else {
00472             mensajeria(theApp->translate("pgimportfiles", "<LI>Ya hay una cuenta con el codigo ") + cod + "</LI>\n");
00473         } // end if
00474         delete cursaux;
00475     } // end while
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                 } // end if
00562             } // end if
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                     } // end if
00572                 } // end if
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             } // end if
00583         } // end if
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         } // end if
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                     } // end if
00607                     conexionbase->commit();
00608                 } // end if
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             } // end if
00613         } // end if
00614     } // end while
00615     if (lastasiento != "0") {
00616         if(!modoTest()) {
00617             query = "SELECT cierraasiento(" + idasiento + ")";
00618             cursor2 * cur = conexionbase->cargacursor(query);
00619             delete cur;
00620         } // end if
00621     } // end if
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         } // end if
00652         delete cur;
00653         i++;
00654     } // end while
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         } // end while
00687         delete curc;
00688     } // end if
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         } // end while
00708         delete curc;
00709     } // end if
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         } // end while
00729         delete curc;
00730     } // end if
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         } // end while
00757         delete curc;
00758     } // end if
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         } // end while
00784         delete curc;
00785     } // end if
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         }// end while
00801         delete curc;
00802     } // end if
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         } // end while
00835         delete curc;
00836     } // end if
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             } // end while
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             } // end while
00928             delete curlc;
00929             stream << "</FACTURA>\n";
00930             curc->siguienteregistro();
00931         } // end while
00932         delete curc;
00933     } // end if
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             } // end while
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             } // end while
01024             delete curlc;
01025             stream << "</PRESUPUESTO>\n";
01026             curc->siguienteregistro();
01027         } // end while
01028         delete curc;
01029     } // end if
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             } // end while
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             } // end while
01120             delete curlc;
01121             stream << "</PEDIDOCLIENTE>\n";
01122             curc->siguienteregistro();
01123         } // end while
01124         delete curc;
01125     } // end if
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             } // end while
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             } // end while
01215             delete curlc;
01216             stream << "</ALBARAN>\n";
01217             curc->siguienteregistro();
01218         } // end while
01219         delete curc;
01220     } // end if
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         } // end while
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         } // end while
01304         delete curcta;
01305     } // end if
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         } // end while
01321         delete curtiva;
01322     } // end if
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                     } // end while
01401                     delete curiva;
01402                     stream << "\t\t</REGISTROIVA>\n";
01403                     curreg->siguienteregistro();
01404                 } // end while
01405                 delete curreg;
01406                 mensajeria(theApp->translate("pgimportfiles", "Exportando :") + curap->valor("codigo") + "--" + fecha + "\n");
01407                 curap->siguienteregistro();
01408                 stream << "\t</APUNTE>\n";
01409             } // end while
01410             delete curap;
01411             stream << "</ASIENTO>\n";
01412             curas->siguienteregistro();
01413         } // end while
01414         delete curas;
01415     } // end if
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     } // end for
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         } // end if
01535         m_ordenapunte = 0;
01536         delete cur;
01537     } // end if
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         } // end if
01548         delete cur;
01549         tagpadre = "APUNTE";
01550     } // end if
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         } // end if
01561         delete cur;
01562         tagpadre = "REGISTROIVA";
01563     } // end if
01564     if (qName == "RIVA" && m_tipo & IMPORT_FACTURAS) {
01565         tagpadre = "RIVA";
01566     } // end if
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     } // end if
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     } // end if
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     } // end if
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         } // end if
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         } //end if
01666         delete cur;
01667     } // end if
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     } // end if
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         } // end if
01717         delete cur;
01718         conexionbase->commit();
01719     } // end if
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     } // end for
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         } // end if
01901         delete cur;
01902     } // end if
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         } // end if
01935         delete cur;
01936     } // end if
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     } // end if
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     } // end if
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     } // end if
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     } // end if
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         } // end if
02064         delete cur;
02065     } // end if
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     } // end if
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     } // end if
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     } // end if
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     } // end if
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     } // end if
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     } // end if
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     } // end if
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     } // end if
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     } // end if
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     } // end if
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     } // end if
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         } // end if
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     } // end for
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     } // end for
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     } // end if
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     } // end if
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     } // end if
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     } // end if
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         } // end if
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     } // end for
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     } // end for
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     } // end if
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     } // end if
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     } // end if
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     } // end if
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     } // end if
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         } // end if
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     } // end for
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     } // end for
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     } // end if
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     } // end if
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     } // end if
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     } // end if
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         } // end if
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     } // end for
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     } // end for
03094     valores.clear();
03095     _depura("END ImportBulmaFact::trataPresupuesto", 0);
03096     return 0;
03097 }
03098 

Generated on Sat Dec 15 00:01:22 2007 for BulmaGes by  doxygen 1.5.1