tarifaview.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   Copyright (C) 2004 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 
00023 #include "tarifaview.h"
00024 #include "company.h"
00025 #include "familiasview.h"
00026 #include "tiposarticuloview.h"
00027 #include "busquedafamilia.h"
00028 #include "busquedaalmacen.h"
00029 #include "comparticulolistview.h"
00030 #include "funcaux.h"
00031 #include "plugins.h"
00032 
00033 
00035 
00039 TarifaView::TarifaView(Company *comp, QWidget *parent)
00040         : FichaBf(comp, parent) {
00041     _depura("TarifaView::INIT_constructor()\n", 0);
00042     setAttribute(Qt::WA_DeleteOnClose);
00043     setupUi(this);
00044     setTitleName(tr("Tarifa"));
00045     setDBTableName("tarifa");
00046     setDBCampoId("idtarifa");
00047     addDBCampo("idtarifa", DBCampo::DBint, DBCampo::DBPrimaryKey, tr("ID tarifa"));
00048     addDBCampo("nomtarifa", DBCampo::DBvarchar, DBCampo::DBNotNull, tr("Nombre de la tarifa"));
00049     mui_idfamilia->setEmpresaBase(comp);
00050     mui_almacen->setEmpresaBase(comp);
00051     mui_almacen->setidalmacen("");
00052     mui_list->setEmpresaBase(comp);
00053 
00054     meteWindow(tr("Tarifa edicion"), this);
00055 
00056     dialogChanges_cargaInicial();
00057     _depura("TarifaView::END_constructor()\n", 0);
00058 }
00059 
00060 
00062 
00064 TarifaView::~TarifaView() {
00065     _depura("TarifaView::INIT_destructor()\n", 0);
00066     empresaBase()->sacaWindow(this);
00067     _depura("TarifaView::END_destructor()\n", 0);
00068 }
00069 
00070 
00072 
00074 void TarifaView::pintar() {
00075     _depura("TarifaView::pintar", 0);
00076     mui_nomtarifa->setText(DBvalue("nomtarifa"));
00077     setWindowTitle(tr("Tarifa") + " " + mui_nomtarifa->text());
00078     _depura("END TarifaView::pintar", 1);
00079 }
00080 
00081 
00083 
00087 QString TarifaView::formaQuery(QString idtarifa) {
00088     _depura("TarifaView::formaQuery", 0);
00089     QString wherearticulo = "";
00090     QString warticulo = " WHERE ";
00091 
00092     QString wherealmacen = "";
00093     QString walmacen= " WHERE ";
00094 
00095     QString idfamilia = mui_idfamilia->idfamilia();
00096     if (idfamilia != "") {
00097         wherearticulo += warticulo + " idfamilia = " + idfamilia;
00098         warticulo = " AND ";
00099     } // end if
00100 
00101     QString idalmacen = mui_almacen->idalmacen();
00102     if (idalmacen != "") {
00103         wherealmacen += walmacen + " idalmacen = " + idalmacen;
00104         walmacen = " AND ";
00105     } // end if
00106 
00107     QString SQLQuery = "SELECT * FROM (SELECT * FROM (SELECT * FROM almacen " + wherealmacen + ") AS t6, (SELECT * FROM articulo " + wherearticulo + ") AS t5, (SELECT * FROM tarifa WHERE idtarifa = " + idtarifa + ") AS t2 ) AS t3 ";
00108     SQLQuery += " LEFT JOIN (SELECT * FROM ltarifa WHERE idtarifa = " + idtarifa + ") as t1 ON t1.idtarifa = t3.idtarifa AND t1.idalmacen = t3.idalmacen AND t1.idarticulo = t3.idarticulo";
00109     _depura("END TarifaView::formaQuery", 0);
00110     return SQLQuery;
00111 }
00112 
00113 
00117 
00121 int TarifaView::cargar(QString idtarifa) {
00122     _depura("TarifaView::cargar(" + idtarifa + ")\n", 0);
00123     int error = 0;
00124     setDBvalue("idtarifa", idtarifa);
00125     DBRecord::cargar(idtarifa);
00126     mui_list->cargar(formaQuery(idtarifa));
00127 
00128     setWindowTitle(tr("Tarifa") + " " + DBvalue("nomtarifa"));
00129     meteWindow(windowTitle(), this);
00130 
00131     dialogChanges_cargaInicial();
00133     if (error == 1) {
00134         _depura("TarifaView::END_chargeArticle Error en la carga del articulo()\n", 0);
00135         return -1;
00136     } // end if
00137     pintar();
00138     _depura("END TarifaView::cargar()\n", 0);
00139     return 0;
00140 }
00141 
00142 
00144 
00147 int TarifaView::guardar() {
00148     _depura("TarifaView::INIT_s_grabarClicked()\n", 0);
00149     setDBvalue("nomtarifa", mui_nomtarifa->text());
00150     DBRecord::guardar();
00152     mui_list->setColumnValue("idtarifa", DBvalue("idtarifa"));
00153     mui_list->guardar();
00154     dialogChanges_cargaInicial();
00155     _depura("TarifaView::END_s_grabarClicked()\n", 0);
00156     return 0;
00157 }
00158 
00159 
00161 
00163 void TarifaView::on_mui_crear_clicked() {
00164     _depura("TarifaView::INIT_boton_nuevo()\n", 0);
00165     vaciar();
00166     pintar();
00167     _depura("TarifaView::END_boton_nuevo()\n", 0);
00168 }
00169 
00170 
00172 
00174 void TarifaView::on_mui_actualizar_clicked() {
00175     _depura("TarifaView::INIT_boton_nuevo()\n", 0);
00176     guardar();
00177     QString idtarifa = DBvalue("idtarifa");
00178     cargar(idtarifa);
00179     _depura("TarifaView::END_boton_nuevo()\n",0 );
00180 }
00181 
00182 
00184 
00186 void TarifaView::on_mui_borrar_clicked() {
00187     _depura("TarifaView::INIT_boton_borrar()\n", 0);
00188     if (DBvalue("idtarifa") != "") {
00189         if (QMessageBox::question(this,
00190                                   tr("Borrar tarifa"),
00191                                   tr("Esta a punto de borrar una tarifa. Desea continuar?"),
00192                                   tr("&Si"), tr("&No"), 0, 1, 0) == 0) {
00193             empresaBase()->begin();
00194             int error = mui_list->borrar();
00195             error += borrar();
00196             if (error) {
00197                 empresaBase()->rollback();
00198             } else
00199                 empresaBase()->commit();
00200             dialogChanges_cargaInicial();
00201             close();
00202         } // end if
00203     } // end if
00204     _depura("TarifaView::END_boton_borrar()\n", 0);
00205 }
00206 
00207 
00209 
00212 void TarifaView::closeEvent(QCloseEvent *e) {
00213     _depura("closeEvent", 0);
00214     if (dialogChanges_hayCambios())  {
00215         int val = QMessageBox::warning(this,
00216                                        tr("Guardar tarifa"),
00217                                        tr("Desea guardar los cambios?"),
00218                                        tr("&Si"), tr("&No"), tr("&Cancelar"), 0, 2);
00219         if (val == 0)
00220             on_mui_guardar_clicked();
00221         if (val == 2)
00222             e->ignore();
00223     } // end if
00224 }
00225 
00226 
00228 
00230 void TarifaView::on_mui_aceptar_clicked() {
00231     _depura("TarifaView::on_mui_aceptar_clicked", 0);
00232     on_mui_guardar_clicked();
00233     close();
00234     _depura("END TarifaView::on_mui_aceptar_clicked", 0);
00235 }
00236 

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