linprevcobro.cpp

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

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