00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
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 }
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 }
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 }
00106 delete cur;
00107 }
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 }
00118 delete cur;
00119 }
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 }
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 }
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 }
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 }
00184 }
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 }
00229 delete cur;
00230 }
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 }
00241 delete cur;
00242 }
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 }
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 }
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 }
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 }
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 }
00324 _depura("END ImportBalance::characters", 0);
00325 return TRUE;
00326 }
00327