registroivaview.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 <QMessageBox>
00022 #include <QWidget>
00023 #include <QObject>
00024 #include <QComboBox>
00025 #include <QToolButton>
00026 #include <QFile>
00027 #include <QTextStream>
00028 #include <QLayout>
00029 #include <QMessageBox>
00030 #include <QCloseEvent>
00031 #include <fstream>
00032 
00033 #include <plugins.h>
00034 
00035 #include "listivaview.h"
00036 #include "registroivaview.h"
00037 #include "empresa.h"
00038 #include "funcaux.h"
00039 
00040 
00042 
00047 RegistroIvaView::RegistroIvaView(Empresa *comp, QWidget *parent)
00048         :  RegistroIva(comp, parent) {
00049     setAttribute(Qt::WA_DeleteOnClose);
00050     setupUi(this);
00051     _depura("Inicializacion de RegistroIvaView", 0);
00053     int res = g_plugins->lanza("RegistroIvaView_RegistroIvaView", this);
00054     if (res != 0)
00055         return;
00056 
00058     m_contrapartida->setEmpresaBase(comp);
00059     setLineas( mui_listIva);
00060     mui_listIva->setEmpresaBase(comp);
00061     mui_listPrevCobro->setEmpresaBase(comp);
00063     m_cursorFPago = NULL;
00064     cargarComboFPago("NULL");
00065 
00066     mui_listIva->setDBTableName("iva");
00067     mui_listIva->setDBCampoId("idiva");
00068     mui_listIva->addSHeader("idiva", DBCampo::DBint, DBCampo::DBPrimaryKey, SHeader::DBNoWrite, tr("idiva"));
00069     mui_listIva->addSHeader("idtipoiva", DBCampo::DBint, DBCampo::DBNotNull, SHeader::DBNoWrite, tr("idtipoiva"));
00070     mui_listIva->addSHeader("idcuenta", DBCampo::DBint, DBCampo::DBNoSave, SHeader::DBNoWrite, tr("idcuenta"));
00071     mui_listIva->addSHeader("codigo", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNoWrite | SHeader::DBNoView, tr("codigo"));
00072     mui_listIva->addSHeader("tipocuenta", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNoWrite | SHeader::DBNoView, tr("tipocuenta"));
00073     mui_listIva->addSHeader("nombretipoiva", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNoWrite, tr("nombretipoiva"));
00074     mui_listIva->addSHeader("idregistroiva", DBCampo::DBint, DBCampo::DBNothing, SHeader::DBNone, tr("idregistroiva"));
00075     mui_listIva->addSHeader("baseiva", DBCampo::DBnumeric, DBCampo::DBNothing, SHeader::DBNone, tr("baseiva"));
00076     mui_listIva->addSHeader("ivaiva", DBCampo::DBnumeric, DBCampo::DBNothing, SHeader::DBNone, tr("ivaiva"));
00077     mui_listIva->setinsercion(FALSE);
00078 
00079     mui_listPrevCobro->setDBTableName("prevcobro");
00080     mui_listPrevCobro->setDBCampoId("idprevcobro");
00081     mui_listPrevCobro->addSHeader("idprevcobro", DBCampo::DBint, DBCampo::DBPrimaryKey, SHeader::DBNoWrite, tr("idprevcobro"));
00082     mui_listPrevCobro->addSHeader("fprevistaprevcobro", DBCampo::DBdate, DBCampo::DBNotNull, SHeader::DBNone, tr("fprevistaprevcobro"));
00083     mui_listPrevCobro->addSHeader("fcobroprevcobro", DBCampo::DBdate, DBCampo::DBNoSave, SHeader::DBNone, tr("fcobroprevcobro"));
00084     mui_listPrevCobro->addSHeader("idfpago", DBCampo::DBint, DBCampo::DBNoSave, SHeader::DBNoWrite | SHeader::DBNoView, tr("idfpago"));
00085     mui_listPrevCobro->addSHeader("idcuenta", DBCampo::DBint, DBCampo::DBNoSave, SHeader::DBNoWrite, tr("idcuenta"));
00086     mui_listPrevCobro->addSHeader("idasiento", DBCampo::DBint, DBCampo::DBNothing, SHeader::DBNone, tr("idasiento"));
00087     mui_listPrevCobro->addSHeader("cantidadprevistaprevcobro", DBCampo::DBnumeric, DBCampo::DBNothing, SHeader::DBNone, tr("cantidadprevistaprevcobro"));
00088     mui_listPrevCobro->addSHeader("cantidadprevcobro", DBCampo::DBnumeric, DBCampo::DBNothing, SHeader::DBNone, tr("cantidadprevcobro"));
00089     mui_listPrevCobro->addSHeader("idregistroiva", DBCampo::DBint, DBCampo::DBNothing, SHeader::DBNone, tr("idregistroiva"));
00090     mui_listPrevCobro->addSHeader("tipoprevcobro", DBCampo::DBint, DBCampo::DBNothing, SHeader::DBNone, tr("tipoprevcobro"));
00091     mui_listPrevCobro->addSHeader("docprevcobro", DBCampo::DBvarchar, DBCampo::DBNothing, SHeader::DBNone, tr("docprevcobro"));
00092     mui_listPrevCobro->addSHeader("codigo", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone, tr("codigo"));
00093     mui_listIva->addSHeader("tipocuenta", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNoWrite | SHeader::DBNoView, tr("tipocuenta"));
00094     mui_listPrevCobro->addSHeader("descripcion", DBCampo::DBnumeric, DBCampo::DBNoSave, SHeader::DBNone, tr("descripcion"));
00095     mui_listPrevCobro->addSHeader("idctacliente", DBCampo::DBnumeric, DBCampo::DBNothing, SHeader::DBNone, tr("idctacliente"));
00096     mui_listPrevCobro->addSHeader("codigoctacliente", DBCampo::DBnumeric, DBCampo::DBNoSave, SHeader::DBNone, tr("codigoctacliente"));
00097     mui_listPrevCobro->addSHeader("nomctacliente", DBCampo::DBnumeric, DBCampo::DBNoSave, SHeader::DBNone, tr("nomctacliente"));
00098     mui_listPrevCobro->addSHeader("tipoctacliente", DBCampo::DBnumeric, DBCampo::DBNoSave, SHeader::DBNone, tr("tipoctacliente"));
00099     mui_listPrevCobro->addSHeader("tipocuenta", DBCampo::DBnumeric, DBCampo::DBNoSave, SHeader::DBNone, tr("tipocuenta"));
00100 
00101     mui_listPrevCobro->setinsercion(TRUE);
00102     empresaBase()->meteWindow(windowTitle(), this);
00103     g_plugins->lanza("RegistroIvaView_RegistroIvaView_Post", this);
00104     _depura("Fin de la inicializacion de RegistroIvaView", 0);
00105 }
00106 
00107 
00109 
00111 RegistroIvaView::~RegistroIvaView() {
00112     _depura("RegistroIvaView::~RegistroIvaView", 0);
00113     _depura("END RegistroIvaView::~RegistroIvaView", 0);
00114 }
00115 
00116 
00124 
00127 void RegistroIvaView::cargarComboFPago(QString idfpago) {
00128     _depura("RegistroIvaView::cargarComboFPago", 0);
00129     if (m_cursorFPago != NULL)
00130         delete m_cursorFPago;
00131     m_cursorFPago = empresaBase()->cargacursor("SELECT * FROM fpago");
00132     int i = 0;
00133     int i1 = 0;
00134     while (!m_cursorFPago->eof()) {
00135         i ++;
00136         if (m_cursorFPago->valor("idfpago") == idfpago) {
00137             i1 = i;
00138         } // end if
00139         m_fPago->addItem(m_cursorFPago->valor("nomfpago"));
00140         m_cursorFPago->siguienteregistro();
00141     } // end while
00142     if (i1 != 0) {
00143         m_fPago->setCurrentIndex(i1 - 1);
00144     } // end if
00145     _depura("RegistroIvaView::cargarComboFPago", 0);
00146 }
00147 
00148 /*
00149 void RegistroIvaView::on_mui_borrar_clicked() {
00150     _depura("RegistroIvaView::on_mui_borrar_clicked",0);
00151     if (QMessageBox::warning(this,
00152                              tr("BulmaCont - Registro Factura"),
00153                              tr("Desea borrar este registro"),
00154                              tr("&Si"),
00155                              tr("&No")) == 0) {
00156         mui_listIva->borrar();
00157         borrar();
00158     } // end if
00159     _depura("END RegistroIvaView::on_mui_borrar_clicked", 0);
00160 }
00161 */
00162 
00163 
00165 
00169 int RegistroIvaView::cargar(QString id) {
00170     int error = 0;
00171     error = RegistroIva::cargar(id);
00172     if (error) {
00173         return -1;
00174     } // end if
00175     mui_listIva->cargar("SELECT * FROM  tipoiva LEFT JOIN (SELECT * FROM iva WHERE idregistroiva="+id+" ) AS t1 ON t1.idtipoiva = tipoiva.idtipoiva LEFT JOIN cuenta on tipoiva.idcuenta = cuenta.idcuenta  ORDER BY codigo");
00176 
00177     mui_listPrevCobro->cargar("SELECT * FROM prevcobro "
00178                               " LEFT JOIN cuenta ON cuenta.idcuenta = prevcobro.idcuenta "
00179                               " LEFT JOIN (SELECT idcuenta AS idctacliente, codigo AS codigoctacliente, descripcion AS nomctacliente, tipocuenta AS tipoctacliente FROM cuenta) AS T1 ON t1.idctacliente = prevcobro.idctacliente "
00180                               " WHERE idregistroiva = " + id + " ORDER BY fcobroprevcobro ");
00181 
00182     setWindowTitle(tr("Registro factura") + " " + factura());
00183     dialogChanges_cargaInicial();
00184     return 0;
00185 }
00186 
00187 
00189 
00192 int RegistroIvaView::guardar() {
00193     _depura("RegistroIvaView::guardar", 0);
00194     try {
00195         empresaBase()->begin();
00196         setcontrapartida(m_contrapartida->idcuenta());
00197         setbaseimp(m_baseImponible->text());
00198         setiva(m_importeiva->text());
00199         setffactura(m_ffactura->text());
00200         setfactura(m_factura->text());
00201         setincregistro(m_incregistroIVA->isChecked() ? "t" : "f");
00202         setnumorden(m_numorden->text());
00203         setcif(m_cif->text());
00204         setfactemitida(m_factEmitida->isChecked() ? "t" : "f");
00205         setfemisionregistroiva(m_femisionregistroiva->text());
00206         setserieregistroiva(m_serieregistroiva->text());
00207         RegistroIva::guardar();
00208         mui_listIva->setColumnValue("idregistroiva", DBvalue("idregistroiva"));
00209         mui_listIva->guardar();
00210         mui_listPrevCobro->setColumnValue("idregistroiva", DBvalue("idregistroiva"));
00211         mui_listPrevCobro->guardar();
00212         empresaBase()->commit();
00213         dialogChanges_cargaInicial();
00214     } catch (...) {
00215         mensajeInfo("Error al guardar el Registro de IVA");
00216         empresaBase()->rollback();
00217     } // end try
00218     _depura("END RegistroIvaView::guardar");
00219     return 0;
00220 }
00221 
00222 
00223 
00225 
00231 void RegistroIvaView::on_mui_generarPrevisiones_clicked() {
00232     _depura("RegistroIvaView::on_mui_generarPrevisiones_clicked", 0);
00233     QString snumpagos = m_cursorFPago->valor("nplazosfpago", m_fPago->currentIndex());
00234     QString splazoprimerpago = m_cursorFPago->valor("plazoprimerpagofpago", m_fPago->currentIndex());
00235     QString splazoentrerecibo = m_cursorFPago->valor("plazoentrerecibofpago", m_fPago->currentIndex());
00236     Fixed totalfactura = Fixed(baseimp()) + Fixed(iva());
00237     int plazoentrerecibo = splazoentrerecibo.toInt();
00238     int plazoprimerpago = splazoprimerpago.toInt();
00239     int numpagos = snumpagos.toInt();
00240     Fixed totalplazo = totalfactura / numpagos;
00241     QString tipocobro;
00243     QDate ffactura = normalizafecha(m_ffactura->text());
00244     QDate fpcobro = ffactura.addDays(plazoprimerpago);
00245     for (int i = 0; i< numpagos; i++) {
00247         if (contrapartida().left(2) == "43") { 
00248             tipocobro = "t";
00249         } else {
00250             tipocobro = "f";
00251         } // end if
00252         _depura("Cogemos el registro", 3);
00253         SDBRecord *rec = mui_listPrevCobro->lineaat(mui_listPrevCobro->rowCount() - 1);
00254         rec->setDBvalue("fprevistaprevcobro", fpcobro.toString("dd/MM/yyyy"));
00255         rec->setDBvalue("cantidadprevistaprevcobro", totalplazo.toQString());
00256         rec->setDBvalue("tipoprevcobro", tipocobro);
00257         rec->setDBvalue("codigoctacliente", m_contrapartida->codigocuenta());
00258         rec->setDBvalue("idctacliente", m_contrapartida->idcuenta());
00259         rec->setDBvalue("nomctacliente", m_contrapartida->nomcuenta());
00260         _depura("Pintamos", 3);
00261         fpcobro = fpcobro.addDays(plazoentrerecibo);
00262         mui_listPrevCobro->nuevoRegistro();
00263     } // end for
00264     _depura("END RegistroIvaView::on_mui_generarPrevisiones_clicked", 0);
00265 }
00266 

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