importbalance.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   Copyright (C) 2004 by Tomeu Borras Riera                              *
00003  *   tborras@conetxia.com                                                  *
00004  *                                                                         *
00005  *   This program is free software; you can redistribute it and/or modify  *
00006  *   it under the terms of the GNU General Public License as published by  *
00007  *   the Free Software Foundation; either version 2 of the License, or     *
00008  *   (at your option) any later version.                                   *
00009  *                                                                         *
00010  *   This program is distributed in the hope that it will be useful,       *
00011  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00012  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
00013  *   GNU General Public License for more details.                          *
00014  *                                                                         *
00015  *   You should have received a copy of the GNU General Public License     *
00016  *   along with this program; if not, write to the                         *
00017  *   Free Software Foundation, Inc.,                                       *
00018  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
00019  ***************************************************************************/
00020 
00021 #include <QString>
00022 
00023 #include "importbalance.h"
00024 #include "empresa.h"
00025 #include "funcaux.h"
00026 
00028 
00034 ImportBalance::ImportBalance(Empresa *emp) : QXmlDefaultHandler(), PEmpresaBase(emp) {
00035     _depura("ImportBalance::ImportBalance", 0);
00036     m_tag = "";
00037     m_data = "";
00038     m_paso = 0;
00039     _depura("END ImportBalance::ImportBalance", 0);
00040 }
00041 
00042 
00043 void ImportBalance::cambiapaso() {
00044     m_paso = 1;
00045 }
00046 
00047 
00056 bool ImportBalance::startElement(const QString &a, const QString &b, const QString &c, const QXmlAttributes &d) {
00057     _depura("ImportBalance::startElement", 0);
00058     if (m_paso == 0) {
00059         return startElement1(a, b, c, d);
00060     } else {
00061         return startElement2(a, b, c, d);
00062     } // end if
00063     _depura("END ImportBalance::startElement", 0);
00064 }
00065 
00067 
00073 bool ImportBalance::endElement(const QString &a, const QString &b, const QString &c) {
00074     _depura("ImportBalance::endlement", 0);
00075     if (m_paso == 0) {
00076         return endElement1 (a, b, c);
00077     } else {
00078         return endElement2 (a, b, c);
00079     } // end if
00080     _depura("END ImportBalance::startElement", 0);
00081 }
00082 
00083 
00086 
00092 bool ImportBalance::startElement1(const QString&, const QString&, const QString& qName, const QXmlAttributes&) {
00093     _depura("ImportBalance::startElement1", 0);
00094     m_tag = qName;
00095     QString SQLQuery;
00096     if (m_tag == "balance") {
00097         SQLQuery.sprintf("INSERT INTO balance (nombrebalance) VALUES ('Elemento importado')\n");
00098         empresaBase()->begin();
00099         empresaBase()->ejecuta(SQLQuery);
00100         SQLQuery = "SELECT max(idbalance) AS idbalance FROM balance";
00101         cursor2 *cur = empresaBase()->cargacursor(SQLQuery, "unquerymas");
00102         empresaBase()->commit();
00103         if (!cur->eof()) {
00104             m_tvalores["idbalance"] = cur->valor("idbalance");
00105         } // end if
00106         delete cur;
00107     } // end if
00108     if (m_tag == "mpatrimonial") {
00109         SQLQuery.sprintf("INSERT INTO mpatrimonial (idbalance) VALUES (%s)\n", empresaBase()->sanearCadena(m_tvalores["idbalance"]).toAscii().constData());
00110         empresaBase()->begin();
00111         empresaBase()->ejecuta(SQLQuery);
00112         SQLQuery = "SELECT max(idmpatrimonial) AS idmpatrimonial FROM mpatrimonial";
00113         cursor2 *cur = empresaBase()->cargacursor(SQLQuery, "unquerymas");
00114         empresaBase()->commit();
00115         if (!cur->eof()) {
00116             m_tvalores["idmpatrimonial_nueva"] = cur->valor("idmpatrimonial");
00117         } // end if
00118         delete cur;
00119     } // end if
00120     _depura("END ImportBalance::startElement1", 0);
00121     return TRUE;
00122 }
00123 
00124 
00127 
00136 bool ImportBalance::endElement1(const QString&, const QString&, const QString& qName) {
00137     _depura("ImportBalance::endElement1", 0);
00138     m_tag = qName;
00139     QString SQLQuery;
00140     if (qName == "balance") {
00141         SQLQuery.sprintf("UPDATE balance SET nombrebalance = '%s' WHERE idbalance = %s\n", m_tvalores["nombrebalance"].toAscii().constData(), m_tvalores["idbalance"].toAscii().constData());
00142         empresaBase()->begin();
00143         empresaBase()->ejecuta(SQLQuery);
00144         empresaBase()->commit();
00145     }
00146     if (qName == "mpatrimonial") {
00151         m_identmasasp[m_tvalores["idmasa"]] = m_tvalores["idmpatrimonial_nueva"];
00152         SQLQuery.sprintf("UPDATE mpatrimonial SET descmpatrimonial = '%s' WHERE idmpatrimonial = %s\n", m_tvalores["descmpatrimonial"].toAscii().constData(), m_tvalores["idmpatrimonial_nueva"].toAscii().constData());
00153         empresaBase()->begin();
00154         empresaBase()->ejecuta(SQLQuery);
00155         empresaBase()->commit();
00156         if (m_tvalores["orden"] != "") {
00157             SQLQuery.sprintf("UPDATE mpatrimonial SET orden = %s WHERE idmpatrimonial = %s\n", m_tvalores["orden"].toAscii().constData(), m_tvalores["idmpatrimonial_nueva"].toAscii().constData());
00158             empresaBase()->begin();
00159             empresaBase()->ejecuta(SQLQuery);
00160             empresaBase()->commit();
00161             m_tvalores["orden"] = "";
00162         } // end if
00163         if (m_tvalores["tabulacion"] != "") {
00164             SQLQuery.sprintf("UPDATE mpatrimonial SET tabulacion = %s WHERE idmpatrimonial = %s\n", m_tvalores["tabulacion"].toAscii().constData(), m_tvalores["idmpatrimonial_nueva"].toAscii().constData());
00165             empresaBase()->begin();
00166             empresaBase()->ejecuta(SQLQuery);
00167             empresaBase()->commit();
00168             m_tvalores["tabulacion"] = "";
00169         } // end if
00170         if (m_tvalores["opdesc"] != "") {
00171             SQLQuery.sprintf("UPDATE mpatrimonial SET opdesc = %s WHERE idmpatrimonial = %s\n", m_tvalores["opdesc"].toAscii().constData(), m_tvalores["idmpatrimonial_nueva"].toAscii().constData());
00172             empresaBase()->begin();
00173             empresaBase()->ejecuta(SQLQuery);
00174             empresaBase()->commit();
00175             m_tvalores["opdesc"] = "";
00176         } // end if
00177         if (m_tvalores["tipompatrimonial"] != "") {
00178             SQLQuery.sprintf("UPDATE mpatrimonial SET tipompatrimonial = %s WHERE idmpatrimonial=%s\n", m_tvalores["tipompatrimonial"].toAscii().constData(), m_tvalores["idmpatrimonial_nueva"].toAscii().constData());
00179             empresaBase()->begin();
00180             empresaBase()->ejecuta(SQLQuery);
00181             empresaBase()->commit();
00182             m_tvalores["tipompatrimonial"] = "";
00183         } // end if
00184     } // end if
00185     m_tag = "";
00186     m_data = "";
00187     _depura("END ImportBalance::endElement1", 0);
00188     return TRUE;
00189 }
00190 
00191 
00193 
00197 bool ImportBalance::startElement2(const QString&, const QString&, const QString &qName, const QXmlAttributes&) {
00198     _depura("ImportBalance::startElement2", 0);
00199     m_tag = qName;
00200     _depura("END ImportBalance::startElement2", 0);
00201     return TRUE;
00202 }
00203 
00204 
00206 
00211 bool ImportBalance::endElement2(const QString&, const QString&, const QString &qName) {
00212     _depura("ImportBalance::endElement2", 0);
00213     m_tag = qName;
00214     QString SQLQuery;
00219     if (m_tag == "compmasap") {
00220         SQLQuery.sprintf("INSERT INTO compmasap (masaperteneciente) VALUES (%s)\n", empresaBase()->sanearCadena(m_identmasasp[m_tvalores["masaperteneciente"]]).toAscii().constData());
00221         empresaBase()->begin();
00222         empresaBase()->ejecuta(SQLQuery);
00223         SQLQuery = "SELECT max(idcompmasap) AS idcompmasap FROM compmasap";
00224         cursor2 *cur = empresaBase()->cargacursor(SQLQuery, "unquerymas");
00225         empresaBase()->commit();
00226         if (!cur->eof()) {
00227             m_tvalores["idcompmasap"] = cur->valor("idcompmasap");
00228         } // end if
00229         delete cur;
00230     } // end if
00231     if (m_tag == "compbalance") {
00232         SQLQuery.sprintf("INSERT INTO compbalance (idbalance) VALUES (%s)\n", empresaBase()->sanearCadena(m_tvalores["idbalance"]).toAscii().constData());
00233         empresaBase()->begin();
00234         empresaBase()->ejecuta(SQLQuery);
00235         SQLQuery = "SELECT max(idcompbalance) AS idcompbalance FROM compbalance";
00236         cursor2 *cur = empresaBase()->cargacursor(SQLQuery, "unquerymas");
00237         empresaBase()->commit();
00238         if (!cur->eof()) {
00239             m_tvalores["idcompbalance"] = cur->valor("idcompbalance");
00240         } // end if
00241         delete cur;
00242     } // end if
00245     if (m_tag == "compmasap") {
00248         if (m_tvalores["idmpatrimonial"] != "" && m_tvalores["codigo"] == "") {
00249             SQLQuery.sprintf("UPDATE compmasap SET idmpatrimonial = %s WHERE idcompmasap = %s\n", empresaBase()->sanearCadena(m_identmasasp[m_tvalores["idmpatrimonial"]]).toAscii().constData(), empresaBase()->sanearCadena(m_tvalores["idcompmasap"]).toAscii().constData());
00250             empresaBase()->begin();
00251             empresaBase()->ejecuta(SQLQuery);
00252             empresaBase()->commit();
00253         } // end if
00254         if (m_tvalores["codigo"] != "") {
00255             SQLQuery.sprintf("UPDATE compmasap SET idcuenta = id_cuenta('%s') WHERE idcompmasap = %s\n",
00256                              empresaBase()->sanearCadena(m_tvalores["codigo"]).toAscii().constData(),
00257                              empresaBase()->sanearCadena(m_tvalores["idcompmasap"]).toAscii().constData());
00258             empresaBase()->begin();
00259             empresaBase()->ejecuta(SQLQuery);
00260             empresaBase()->commit();
00261         } // end if
00262         SQLQuery.sprintf("UPDATE compmasap SET signo = '%s' WHERE idcompmasap = %s\n",
00263                          empresaBase()->sanearCadena(m_tvalores["signo"]).toAscii().constData(),
00264                          empresaBase()->sanearCadena(m_tvalores["idcompmasap"]).toAscii().constData());
00265         empresaBase()->begin();
00266         empresaBase()->ejecuta(SQLQuery);
00267         empresaBase()->commit();
00268         SQLQuery.sprintf("UPDATE compmasap SET nombre = '%s' WHERE idcompmasap = %s\n",
00269                          empresaBase()->sanearCadena(m_tvalores["nombre"]).toAscii().constData(),
00270                          empresaBase()->sanearCadena(m_tvalores["idcompmasap"]).toAscii().constData());
00271         empresaBase()->begin();
00272         empresaBase()->ejecuta(SQLQuery);
00273         empresaBase()->commit();
00274         m_tvalores["codigo"] = "";
00275         m_tvalores["idmpatrimonial"] = "";
00276     } // end if
00277     if (m_tag == "compbalance") {
00279         SQLQuery.sprintf("UPDATE compbalance SET idmpatrimonial = %s WHERE idcompbalance = %s\n",
00280                          empresaBase()->sanearCadena(m_identmasasp[m_tvalores["idmpatrimonial"]]).toAscii().constData(),
00281                          empresaBase()->sanearCadena(m_tvalores["idcompbalance"]).toAscii().constData());
00282         empresaBase()->begin();
00283         empresaBase()->ejecuta(SQLQuery);
00284         empresaBase()->commit();
00285         SQLQuery.sprintf("UPDATE compbalance SET orden = %s WHERE idcompbalance = %s\n",
00286                          empresaBase()->sanearCadena(m_tvalores["orden"]).toAscii().constData(),
00287                          empresaBase()->sanearCadena(m_tvalores["idcompbalance"]).toAscii().constData());
00288         empresaBase()->begin();
00289         empresaBase()->ejecuta(SQLQuery);
00290         empresaBase()->commit();
00291         SQLQuery.sprintf("UPDATE compbalance SET concepto = '%s' WHERE idcompbalance = %s\n",
00292                          empresaBase()->sanearCadena(m_tvalores["concepto"]).toAscii().constData(),
00293                          empresaBase()->sanearCadena(m_tvalores["idcompbalance"]).toAscii().constData());
00294         empresaBase()->begin();
00295         empresaBase()->ejecuta(SQLQuery);
00296         empresaBase()->commit();
00297         SQLQuery.sprintf("UPDATE compbalance SET tabulacion = %s WHERE idcompbalance = %s\n",
00298                          empresaBase()->sanearCadena(m_tvalores["tabulacion"]).toAscii().constData(),
00299                          empresaBase()->sanearCadena(m_tvalores["idcompbalance"]).toAscii().constData());
00300         empresaBase()->begin();
00301         empresaBase()->ejecuta(SQLQuery);
00302         empresaBase()->commit();
00303         m_tvalores["codigo"] = "";
00304         m_tvalores["idmpatrimonial"] = "";
00305     } // end if
00306     m_tag="";
00307     m_data="";
00308     _depura("END ImportBalance::endElement2", 0);
00309     return TRUE;
00310 }
00311 
00312 
00315 
00318 bool ImportBalance::characters(const QString& ch) {
00319     _depura("ImportBalance::characters", 0);
00320     if (m_tag != "") {
00321         m_data =ch;
00322         m_tvalores[m_tag] = m_data;
00323     } // end if
00324     _depura("END ImportBalance::characters", 0);
00325     return TRUE;
00326 }
00327 

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