paisview.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   Copyright (C) 2007 by Fco. Javier M. C.                               *
00003  *   fcojavmc@todo-redes.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 "paisview.h"
00022 #include "empresabase.h"
00023 #include "subform3.h"
00024 
00027 
00031 PaisView::PaisView(EmpresaBase *emp, QWidget *parent)
00032         : Ficha(emp, parent) {
00033     _depura("PaisView::PaisView", 0);
00034 
00035     setAttribute(Qt::WA_DeleteOnClose);
00036     setupUi(this);
00037 
00038     mui_datospais->setDisabled(TRUE);
00039 
00040     mui_list->setEmpresaBase(emp);
00041     mui_listprovincias->setEmpresaBase(emp);
00042 
00044     mui_list->setDBTableName("pais");
00045     mui_list->setDBCampoId("idpais");
00046     mui_list->addSHeader("idpais", DBCampo::DBint, DBCampo::DBNotNull | DBCampo::DBPrimaryKey, SHeader::DBNoView | SHeader::DBNoWrite, tr("Id. Pais"));
00047     mui_list->addSHeader("descpais", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Nombre Pais"));
00048     mui_list->addSHeader("cod2pais", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Codigo 2 Digitos"));
00049     mui_list->addSHeader("cod3pais", DBCampo::DBint, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Codigo 3 Digitos"));
00050     mui_list->setinsercion(FALSE);
00051     mui_list->setDelete(FALSE);
00052     mui_list->setSortingEnabled(TRUE);
00053 
00055     mui_listprovincias->setDBTableName("provincia");
00056     mui_listprovincias->setDBCampoId("idprovincia");
00057     mui_listprovincias->addSHeader("idprovincia", DBCampo::DBint, DBCampo::DBPrimaryKey, SHeader::DBNoView | SHeader::DBNoWrite, tr("Id. Provincia"));
00058     mui_listprovincias->addSHeader("idpais", DBCampo::DBint, DBCampo::DBNotNull , SHeader::DBNoView | SHeader::DBNoWrite, tr("Id. Pais"));
00059     mui_listprovincias->addSHeader("provincia", DBCampo::DBvarchar, DBCampo::DBNotNull, SHeader::DBNone, tr("Provincia"));
00060     mui_listprovincias->setinsercion(TRUE);
00061     mui_listprovincias->setDelete(TRUE);
00062     mui_listprovincias->setSortingEnabled(FALSE);
00063 
00065     setTitleName(tr("Pais"));
00066     setDBTableName("pais");
00067     setDBCampoId("idpais");
00068     addDBCampo("idpais", DBCampo::DBint, DBCampo::DBPrimaryKey, tr("idpais"));
00069     addDBCampo("descpais", DBCampo::DBvarchar, DBCampo::DBNothing, tr("Pais"));
00070     addDBCampo("cod2pais", DBCampo::DBvarchar, DBCampo::DBNothing, tr("Codigo 2 digitos"));
00071     addDBCampo("cod3pais", DBCampo::DBvarchar, DBCampo::DBNothing,tr("Codigo 3 digitos"));
00072 
00073 
00074     m_idpais = "0";
00075 
00076     meteWindow(windowTitle(), this);
00077     pintar();
00078     dialogChanges_cargaInicial();
00079     _depura("END PaisView::PaisView", 0);
00080 }
00081 
00082 
00084 
00086 PaisView::~PaisView() {
00087     _depura("PaisView::~PaisView", 0);
00088     _depura("END PaisView::~PaisView", 0);
00089 }
00090 
00091 
00093 
00095 void PaisView::pintar() {
00096     _depura("PaisView::pintar", 10);
00097     mui_list->cargar("SELECT * FROM pais ORDER BY descpais");
00098     _depura("END PaisView::pintar", 0);
00099 }
00100 
00101 
00103 
00105 void PaisView::on_mui_list_itemClicked(QTableWidgetItem *) {
00106     _depura("PaisView::on_mui_list_itemSelectionChanged", 0);
00108     QString previdpais = mui_list->DBvalue("idpais");
00109 
00110     if (m_idpais != "0" && dialogChanges_hayCambios()) {
00111         if (QMessageBox::warning(this,
00112                                  tr("Guardar pais"),
00113                                  tr("Desea guardar los cambios?"),
00114                                  tr("&Guardar"), tr("&Cancelar"), 0, 0, 1) == 0) {
00115             on_mui_guardar_clicked();
00116         } // end if
00117     } // end if
00118     m_idpais = previdpais;
00119     mostrarplantilla();
00120     _depura("END PaisView::on_mui_list_itemSelectionChanged", 0);
00121 }
00122 
00123 
00125 
00127 void PaisView::mostrarplantilla() {
00128     _depura("PaisView::mostrarplantilla", 0);
00129 
00130     if (m_idpais != "0") {
00131         mui_datospais->setEnabled(TRUE);
00132         cargar(m_idpais);
00133         mui_descpais->setText(DBvalue("descpais"));
00134         mui_cod2pais->setText(DBvalue("cod2pais"));
00135         mui_cod3pais->setText(DBvalue("cod3pais"));
00136 
00137         mui_listprovincias->cargar("SELECT * FROM provincia WHERE idpais=" + m_idpais);
00138 
00139         dialogChanges_cargaInicial();
00140     } // end if
00141     _depura("END PaisView::mostrarplantilla", 0);
00142 }
00143 
00144 
00146 
00148 int PaisView::guardar() {
00149     _depura("PaisView::on_mui_guardar_clicked", 0);
00150     QString id;
00151     setDBvalue("descpais", mui_descpais->text());
00152     setDBvalue("cod2pais", mui_cod2pais->text());
00153     setDBvalue("cod3pais", mui_cod3pais->text());
00154     empresaBase()->begin();
00155     DBsave(id);
00156     mui_listprovincias->setColumnValue("idpais", id);
00157     mui_listprovincias->guardar();
00158     empresaBase()->commit();
00159     dialogChanges_cargaInicial();
00160     pintar();
00161     _depura("END PaisView::on_mui_guardar_clicked", 0);
00162     return 0;
00163 }
00164 
00165 
00167 
00169 void PaisView::on_mui_crear_clicked() {
00170     _depura("PaisView::on_mui_crear_clicked", 0);
00171     try {
00173         if (dialogChanges_hayCambios()) {
00174             if (QMessageBox::warning(this,
00175                                      tr("Guardar pais"),
00176                                      tr("Desea guardar los cambios?"),
00177                                      QMessageBox::Ok,
00178                                      QMessageBox::Cancel) == QMessageBox::Ok) {
00179                 on_mui_guardar_clicked();
00180             } // end if
00181         } // end if
00182 
00183         QString query;
00184         query.sprintf("INSERT INTO pais (cod2pais, cod3pais, descpais) VALUES ('--', '---', 'Nuevo pais')");
00185         empresaBase()->begin();
00186         empresaBase()->ejecuta(query);
00187         empresaBase()->commit();
00188         pintar();
00189         mui_list->setCurrentItem(mui_list->rowCount(),1);
00190         mostrarplantilla();
00191         _depura("END PaisView::on_mui_crear_clicked", 0);
00192     } catch (...) {
00193         mensajeInfo(tr("Error al crear el banco"));
00194         empresaBase()->rollback();
00195     } // end try
00196 }
00197 
00198 
00200 
00202 void PaisView::on_mui_borrar_clicked() {
00203     _depura("PaisView::on_mui_borrar_clicked", 0);
00204     if (m_idpais == "" | m_idpais == "0" ) {
00205         mensajeInfo(tr("Debe seleccionar un elemento de la lista"));
00206         return;
00207     } // end if
00208     switch (QMessageBox::warning(this,
00209                                  tr("Borrar pais"),
00210                                  tr("Se va a borrar el pais seleccionado.\nEsta operacion puede ocasionar perdida de datos."),
00211                                  tr("&Borrar"), tr("&Cancelar"), 0, 0, 1)) {
00212     case 0: 
00213         QString query;
00214         try {
00215             query = "DELETE FROM pais WHERE idpais = " + m_idpais;
00216             empresaBase()->begin();
00217             empresaBase()->ejecuta(query);
00218             empresaBase()->commit();
00219             m_idpais = "0";
00220             pintar();
00221             mui_datospais->setDisabled(TRUE);
00222         } catch (...) {
00223             mensajeInfo(tr("Error al intentar borrar el pais"));
00224             empresaBase()->rollback();
00225         } // end try
00226     } // end switch
00227     _depura("END PaisView::on_mui_borrar_clicked", 0);
00228 }
00229 
00230 

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