albaranproveedorview.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   Copyright (C) 2005 by Alvaro de Miguel                                *
00003  *   alvaro.demiguel@gmail.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 <QCloseEvent>
00022 #include <QComboBox>
00023 #include <QLabel>
00024 #include <QLineEdit>
00025 #include <QMessageBox>
00026 #include <QObject>
00027 #include <QToolButton>
00028 #include <QWidget>
00029 
00030 #include "albaranproveedorview.h"
00031 #include "articulolist.h"
00032 #include "company.h"
00033 #include "configuracion.h"
00034 #include "facturapview.h"
00035 #include "facturaview.h"
00036 #include "funcaux.h"
00037 #include "listlinalbaranproveedorview.h"
00038 #include "pagoview.h"
00039 #include "pedidoproveedorview.h"
00040 #include "postgresiface2.h"
00041 #include "presupuestolist.h"
00042 #include "presupuestoview.h"
00043 #include "plugins.h"
00044 
00045 
00054 AlbaranProveedorView::AlbaranProveedorView(Company *comp, QWidget *parent)
00055         : FichaBf(comp, parent) {
00056     _depura("AlbaranProveedorView::AlbaranProveedorView", 0);
00057     setAttribute(Qt::WA_DeleteOnClose);
00058     try {
00059         setupUi(this);
00060         setTitleName(tr("Albaran de proveedor"));
00061         setDBTableName("albaranp");
00062         setDBCampoId("idalbaranp");
00063         addDBCampo("idalbaranp", DBCampo::DBint, DBCampo::DBPrimaryKey, QApplication::translate("AlbaranProveedor", "Id albaran proveedor"));
00064         addDBCampo("numalbaranp", DBCampo::DBint, DBCampo::DBNothing, QApplication::translate("AlbaranProveedor", "Numero albaran proveedor"));
00065         addDBCampo("fechaalbaranp", DBCampo::DBdate, DBCampo::DBNothing, QApplication::translate("AlbaranProveedor", "Fecha albaran proveedor"));
00066         addDBCampo("comentalbaranp", DBCampo::DBvarchar, DBCampo::DBNothing, QApplication::translate("AlbaranProveedor", "Comentario albaran proveedor"));
00067         addDBCampo("idproveedor", DBCampo::DBint, DBCampo::DBNotNull, QApplication::translate("AlbaranProveedor", "Id proveedor"));
00068         addDBCampo("idforma_pago", DBCampo::DBint, DBCampo::DBNothing, QApplication::translate("AlbaranProveedor", "Id forma de pago"));
00069         addDBCampo("idalmacen", DBCampo::DBint, DBCampo::DBNotNull, QApplication::translate("AlbaranProveedor", "Id almacen"));
00070         addDBCampo("refalbaranp", DBCampo::DBvarchar, DBCampo::DBNothing, QApplication::translate("AlbaranProveedor", "Referencia albaran proveedor"));
00071         addDBCampo("descalbaranp", DBCampo::DBvarchar, DBCampo::DBNothing, QApplication::translate("AlbaranProveedor", "Descripcion albaran proveedor"));
00072 
00074         int res = g_plugins->lanza("AlbaranProveedorView_AlbaranProveedorView", this);
00075         if (res != 0) {
00076             return;
00077         } // end if
00078         subform2->setEmpresaBase(comp);
00079         mui_idalmacen->setEmpresaBase(comp);
00080         mui_idforma_pago->setEmpresaBase(comp);
00081         mui_idproveedor->setEmpresaBase(comp);
00082         m_descuentos->setEmpresaBase(comp);
00083         mui_refalbaranp->setEmpresaBase(comp);
00084 
00086         setListaLineas(subform2);
00087         setListaDescuentos(m_descuentos);
00088 
00089         m_totalBases->setReadOnly(TRUE);
00090         m_totalBases->setAlignment(Qt::AlignRight);
00091         m_totalTaxes->setReadOnly(TRUE);
00092         m_totalTaxes->setAlignment(Qt::AlignRight);
00093         m_totalDiscounts->setReadOnly(TRUE);
00094         m_totalDiscounts->setAlignment(Qt::AlignRight);
00095         m_totalalbaranp->setReadOnly(TRUE);
00096         m_totalalbaranp->setAlignment(Qt::AlignRight);
00097         mui_idforma_pago->setidforma_pago("0");
00098         mui_idalmacen->setidalmacen("0");
00099         meteWindow(windowTitle(), this, FALSE);
00100     } catch (...) {
00101         mensajeInfo(tr("Error al crear el albaran proveedor"));
00102     } // end try
00103     _depura("END AlbaranProveedorView::AlbaranProveedorView", 0);
00104 }
00105 
00106 
00111 AlbaranProveedorView::~AlbaranProveedorView() {
00112     _depura("AlbaranProveedorView::~AlbaranProveedorView", 0);
00113     empresaBase()->refreshAlbaranesProveedor();
00114     _depura("END AlbaranProveedorView::~AlbaranProveedorView", 0);
00115 }
00116 
00117 
00119 
00121 void AlbaranProveedorView::on_mui_facturar_clicked() {
00122     _depura("AlbaranProveedorView::on_mui_facturar_clicked", 0);
00123     generarFacturaProveedor();
00124     _depura("END AlbaranProveedorView::on_mui_facturar_clicked", 0);
00125 }
00126 
00127 
00129 
00131 void AlbaranProveedorView::on_m_descuentos_editFinish(int, int) {
00132     _depura("AlbaranProveedorView::on_m_descuentos_editFinish", 0);
00133     calculaypintatotales();
00134     _depura("END AlbaranProveedorView::on_m_descuentos_editFinish", 0);
00135 }
00136 
00137 
00139 
00141 void AlbaranProveedorView::on_subform2_editFinish(int, int) {
00142     _depura("AlbaranProveedorView::on_subform2_editFinish", 0);
00143     calculaypintatotales();
00144     _depura("END AlbaranProveedorView::on_subform2_editFinish", 0);
00145 }
00146 
00147 
00154 void AlbaranProveedorView::inicializar() {
00155     _depura("AlbaranProveedorView::inicializar", 0);
00156     subform2->inicializar();
00157     m_descuentos->inicializar();
00158     pintar();
00159     dialogChanges_cargaInicial();
00160     _depura("END AlbaranProveedorView::inicializar", 0);
00161 }
00162 
00163 
00165 
00172 void AlbaranProveedorView::pintatotales(Fixed iva, Fixed base, Fixed total, Fixed desc, Fixed irpf, Fixed reqeq) {
00173     _depura("AlbaranProveedorView::pintatotales", 0);
00174     m_totalBases->setText(QString(base.toQString()));
00175     m_totalTaxes->setText(QString(iva.toQString()));
00176     m_totalDiscounts->setText(QString(desc.toQString()));
00177     m_totalIRPF->setText(QString(irpf.toQString()));
00178     m_totalReqEq->setText(QString(reqeq.toQString()));
00179     m_totalalbaranp->setText(QString(total.toQString()));
00180     _depura("END AlbaranProveedorView::pintatotales", 0);
00181 }
00182 
00183 
00188 
00189 
00191 void AlbaranProveedorView::on_mui_pagar_clicked() {
00192     _depura("AlbaranProveedorView::on_mui_pagar_clicked", 0);
00193     PagoView *bud = empresaBase()->newPagoView();
00194     empresaBase()->m_pWorkspace->addWindow(bud);
00195     bud->setDBvalue("idproveedor", DBvalue("idproveedor"));
00196     bud->setDBvalue("cantpago", m_totalalbaranp->text());
00197     bud->setDBvalue("refpago", DBvalue("refalbaranp"));
00198     bud->setDBvalue("comentpago", DBvalue("descalbaranp"));
00199     bud->pintar();
00200     bud->show();
00201     _depura("END AlbaranProveedorView::on_mui_pagar_clicked", 0);
00202 }
00203 
00211 void AlbaranProveedorView::on_mui_verpedidosproveedor_clicked() {
00212     _depura("AlbaranProveedorView::on_mui_verpedidos_clicked", 0);
00213     QString query = "SELECT * FROM pedidoproveedor WHERE refpedidoproveedor = '" + DBvalue("refalbaranp") + "'";
00214     cursor2 *cur = empresaBase()->cargacursor(query);
00215     while (!cur->eof()) {
00216         PedidoProveedorView *pedpro = empresaBase()->nuevoPedidoProveedorView();
00217         pedpro->cargar(cur->valor("idpedidoproveedor"));
00218         empresaBase()->m_pWorkspace->addWindow( pedpro);
00219         pedpro->show();
00220         cur->siguienteregistro();
00221     } // end while
00222     delete cur;
00223     _depura("END AlbaranProveedorView::on_mui_verpedidos_clicked", 0);
00224 }
00225 
00226 
00228 
00236 void AlbaranProveedorView::generarFacturaProveedor() {
00237     _depura("AlbaranProveedorView::generarFacturaProveedor", 0);
00240     QString SQLQuery = "SELECT * FROM facturap WHERE reffacturap = '" + DBvalue("refalbaranp") + "' AND idproveedor = " + DBvalue("idproveedor");
00241     cursor2 *cur = empresaBase()->cargacursor(SQLQuery);
00242 
00243     if (!cur->eof()) {
00246         if (QMessageBox::question(this,
00247                     tr("Factura de proveedor existente"),
00248                     tr("Existe una factura de este proveedor con la misma referencia que este albaran. Desea abrirla para verificar?"),
00249                     tr("&Si"), tr("&No"), QString::null, 0, 1)) {
00250             return;
00251         } // end if
00252         FacturaProveedorView *bud = empresaBase()->newFacturaProveedorView();
00253         empresaBase()->m_pWorkspace->addWindow(bud);
00254         bud->cargar(cur->valor("idfacturap"));
00255         bud->show();
00256         return;
00257     } // end if
00258     delete cur;
00259 
00261     FacturaProveedorView *bud = empresaBase()->newFacturaProveedorView();
00262     empresaBase()->m_pWorkspace->addWindow(bud);
00263 
00265     bud->inicializar();
00266 
00267     bud->setDBvalue("comentfacturap", DBvalue("comentalbaranp"));
00268     bud->setDBvalue("idforma_pago", DBvalue("idforma_pago"));
00269     bud->setDBvalue("reffacturap", DBvalue("refalbaranp"));
00270     bud->setDBvalue("idproveedor", DBvalue("idproveedor"));
00271     bud->pintar();
00272     bud->show();
00273 
00274     QString l;
00275     SDBRecord *linea, *linea1;
00276     for (int i = 0; i < m_listalineas->rowCount(); ++i) {
00277         linea = m_listalineas->lineaat(i);
00278         if (linea->DBvalue( "idarticulo") != "") {
00279             linea1 = bud->getlistalineas()->lineaat(bud->getlistalineas()->rowCount() - 1);
00280             bud->getlistalineas()->nuevoRegistro();
00281             bud->getlistalineas()->setProcesarCambios(FALSE);
00282             linea1->setDBvalue("desclfacturap", linea->DBvalue("desclalbaranp"));
00283             linea1->setDBvalue("cantlfacturap", linea->DBvalue("cantlalbaranp"));
00284             linea1->setDBvalue("pvplfacturap", linea->DBvalue("pvplalbaranp"));
00285             linea1->setDBvalue("descuentolfacturap", linea->DBvalue("descuentolalbaranp"));
00286             linea1->setDBvalue("idarticulo", linea->DBvalue("idarticulo"));
00287             linea1->setDBvalue("codigocompletoarticulo", linea->DBvalue("codigocompletoarticulo"));
00288             linea1->setDBvalue("nomarticulo", linea->DBvalue("nomarticulo"));
00289             linea1->setDBvalue("ivalfacturap", linea->DBvalue("ivalalbaranp"));
00290             bud->getlistalineas()->setProcesarCambios(TRUE);
00291         } // end if
00292     } // end for
00293     bud->calculaypintatotales();
00294     _depura("END AlbaranClienteView::generarFactura", 0);
00295 }
00296 
00297 
00299 
00302 void AlbaranProveedorView::on_mui_idproveedor_valueChanged(QString id) {
00303     _depura("AlbaranProveedorView::on_m_proveedor_valueChanged", 0);
00304     subform2->setIdProveedor(id);
00305     mui_idforma_pago->setIdProveedor(id);
00306     _depura("END AlbaranProveedorView::on_m_proveedor_valueChanged", 0);
00307 }
00308 
00309 
00318 int AlbaranProveedorView::borrarPre() {
00319     _depura("AlbaranProveedorView::borrar", 0);
00320             m_listalineas->borrar();
00321             m_listadescuentos->borrar();
00322         _depura("END AlbaranProveedorView::borrar", 0);
00323         return 0;
00324 }
00325 
00326 
00331 
00335 int AlbaranProveedorView::cargarPost(QString idbudget) {
00336     _depura("AlbaranProveedorView::cargar", 0);
00337 
00338     m_listalineas->cargar(idbudget);
00339     m_listadescuentos->cargar(idbudget);
00340 
00342     g_plugins->lanza("AlbaranProveedorView_cargarPost_Post", this);
00343 
00344     calculaypintatotales();
00345     _depura("END AlbaranProveedorView::cargar", 0);
00346     return 0;
00347 }
00348 
00349 
00360 int AlbaranProveedorView::guardarPost() {
00361     _depura("AlbaranProveedorView::guardar", 0);
00362 
00363     m_listalineas->setColumnValue("idalbaranp", DBvalue("idalbaranp"));
00364     m_listadescuentos->setColumnValue("idalbaranp", DBvalue("idalbaranp"));
00365 
00366     m_listalineas->guardar();
00367     m_listadescuentos->guardar();
00368 
00369     _depura("END AlbaranProveedorView::guardar", 0);
00370     return 0;
00371 }
00372 

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