trabajadorview.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 <QLineEdit>
00022 #include <QMessageBox>
00023 #include <QFileDialog>
00024 #include <QPixmap>
00025 #include <QLabel>
00026 #include <QDialog>
00027 #include <QCheckBox>
00028 
00029 #include "trabajadorview.h"
00030 #include "company.h"
00031 #include "funcaux.h"
00032 
00033 
00035 
00040 TrabajadorView::TrabajadorView(Company *emp, QWidget *parent)
00041         : FichaBf(emp, parent) {
00042     _depura("TrabajadorView::TrabajadorView", 0);
00043 
00044     setTitleName(tr("Trabajador"));
00045     setDBTableName("trabajador");
00046     setAttribute(Qt::WA_DeleteOnClose);
00047     setupUi(this);
00048     mui_tab->setDisabled(TRUE);
00050     int res = g_plugins->lanza("TrabajadorView_TrabajadorView", this);
00051     if (res != 0) {
00052         return;
00053     } // end if
00054     m_archivoimagen = "";
00055     setModoEdicion();
00056     m_cursortrabajadores = NULL;
00057     m_item = NULL;
00058     res = g_plugins->lanza("TrabajadorView_TrabajadorView_Post", this);
00059     if (res != 0) {
00060         return;
00061     } // end if
00062     pintar();
00063     meteWindow(windowTitle(), this);
00064     _depura("END TrabajadorView::TrabajadorView", 0);
00065 }
00066 
00067 
00069 
00071 void TrabajadorView::imprimir() {
00072     _depura("TrabajadorView::imprimir", 0);
00073     _depura("END TrabajadorView::imprimir", 0);
00074 }
00075 
00077 
00079 void TrabajadorView::pintar() {
00080     _depura("TrabajadorView::pintar", 0);
00081 
00082     mui_lista->clear();
00083 
00084     if (m_cursortrabajadores != NULL) {
00085         delete m_cursortrabajadores;
00086     } // end if
00087     m_cursortrabajadores = empresaBase()->cargacursor("SELECT * FROM trabajador ORDER BY apellidostrabajador");
00088     while (!m_cursortrabajadores->eof()) {
00089         new QListWidgetItem(m_cursortrabajadores->valor("apellidostrabajador") + " " + m_cursortrabajadores->valor("nomtrabajador"), mui_lista);
00090         m_cursortrabajadores->siguienteregistro();
00091     } // end while
00092 
00094     dialogChanges_cargaInicial();
00095     _depura("END TrabajadorView::pintar", 0);
00096 }
00097 
00098 
00100 
00102 TrabajadorView::~TrabajadorView() {
00103     _depura("TrabajadorView::~TrabajadorView", 0);
00104     if (m_cursortrabajadores != NULL) {
00105         delete m_cursortrabajadores;
00106     } // end if
00107     _depura("END TrabajadorView::~TrabajadorView", 0);
00108 }
00109 
00110 
00112 
00116 void TrabajadorView::on_mui_lista_currentItemChanged(QListWidgetItem *cur, QListWidgetItem *) {
00117     _depura( "on_mui_lista_currentItemChanged", 0);
00118     if (!cur) return;
00119     mui_tab->setEnabled(TRUE);
00120 
00121     int row = mui_lista->row(cur);
00122     trataModificado();
00123     m_nomtrabajador->setText(m_cursortrabajadores->valor("nomtrabajador", row));
00124     mdb_idtrabajador = m_cursortrabajadores->valor("idtrabajador", row);
00125     m_apellidostrabajador->setText(m_cursortrabajadores->valor("apellidostrabajador", row));
00126     m_nsstrabajador->setText(m_cursortrabajadores->valor("nsstrabajador", row));
00127     m_dirtrabajador->setText(m_cursortrabajadores->valor("dirtrabajador", row));
00128     m_teltrabajador->setText(m_cursortrabajadores->valor("teltrabajador", row));
00129     m_moviltrabajador->setText(m_cursortrabajadores->valor("moviltrabajador", row));
00130     m_emailtrabajador->setText(m_cursortrabajadores->valor("emailtrabajador", row));
00131     if (m_cursortrabajadores->valor("activotrabajador", row) == "t") {
00132         m_activotrabajador->setChecked(TRUE);
00133     } else {
00134         m_activotrabajador->setChecked(FALSE);
00135     } // end if
00136     m_item = cur;
00139     int res = g_plugins->lanza("TrabajadorView_on_mui_lista_currentItemChanged_Post", this);
00140     if (res != 0) {
00141         return;
00142     } // end if
00143     dialogChanges_cargaInicial();
00144     m_imagen->setPixmap(QPixmap(confpr->valor(CONF_DIR_IMG_PERSONAL) + mdb_idtrabajador + ".jpg"));
00145     _depura( "END on_mui_lista_currentItemChanged", 0);
00146 }
00147 
00148 
00150 
00153 void TrabajadorView::on_mui_guardar_clicked() {
00154     _depura("TrabajadorView::on_mui_guardar_clicked", 0);
00155     try {
00157         int res = g_plugins->lanza("TrabajadorView_on_mui_guardar_clicked", this);
00158         if (res != 0) {
00159             return;
00160         } // end if
00161         QString m_textactivotrabajador = "FALSE";
00162         if (m_activotrabajador->isChecked()) {
00163             m_textactivotrabajador = "TRUE";
00164         } // end if
00165         QString query = "UPDATE trabajador SET ";
00166         query += "  nomtrabajador='" + empresaBase()->sanearCadena(m_nomtrabajador->text()) + "'";
00167         query += ", apellidostrabajador= '" + empresaBase()->sanearCadena(m_apellidostrabajador->text()) + "'";
00168         query += ", nsstrabajador = '" + empresaBase()->sanearCadena(m_nsstrabajador->text()) + "'";
00169         query += ", dirtrabajador = '" + empresaBase()->sanearCadena(m_dirtrabajador->text()) + "'";
00170         query += ", teltrabajador = '" + empresaBase()->sanearCadena(m_teltrabajador->text()) + "'";
00171         query += ", moviltrabajador = '" + empresaBase()->sanearCadena(m_moviltrabajador->text()) + "'";
00172         query += ", emailtrabajador = '" + empresaBase()->sanearCadena(m_emailtrabajador->text()) + "'";
00173         query += ", activotrabajador = " + empresaBase()->sanearCadena(m_textactivotrabajador);
00174         query += " WHERE idtrabajador=" + empresaBase()->sanearCadena(mdb_idtrabajador);
00175 
00176         empresaBase()->begin();
00177         empresaBase()->ejecuta(query);
00178         empresaBase()->commit();
00179         if (m_cursortrabajadores != NULL) {
00180             delete m_cursortrabajadores;
00181         } // end if
00182 
00183         m_cursortrabajadores = empresaBase()->cargacursor("SELECT * FROM trabajador ORDER BY apellidostrabajador");
00184 
00185         if (m_item) {
00186             m_item->setText(m_apellidostrabajador->text() + m_nomtrabajador->text());
00187         } // end if
00188         if (m_archivoimagen != "") {
00189             QString cadena = "cp " + m_archivoimagen + " " + confpr->valor(CONF_DIR_IMG_PERSONAL) + mdb_idtrabajador + ".jpg";
00190             system( cadena.toAscii().constData());
00191         } // end if
00193         dialogChanges_cargaInicial();
00194     } catch (...) {
00195         mensajeInfo("Error al guardar el trabajador");
00196         empresaBase()->rollback();
00197     } // end try
00198     _depura("END TrabajadorView::on_mui_guardar_clicked", 0);
00199 }
00200 
00201 
00203 
00206 bool TrabajadorView::trataModificado() {
00207     _depura( "TrabajadorView::trataModificado", 0);
00209     if (dialogChanges_hayCambios()) {
00210         if (QMessageBox::warning(this,
00211                                  tr("Guardar datos del trabajador"),
00212                                  tr("Desea guardar los cambios?"),
00213                                  tr("&Si"), tr("&No"), 0, 0, 1 ) == 0)
00214             on_mui_guardar_clicked();
00215         return (TRUE);
00216     } // end if
00217     _depura("END TrabajadorView::trataModificado", 0);
00218     return (FALSE);
00219 }
00220 
00221 
00224 
00227 void TrabajadorView::on_mui_nuevo_clicked() {
00228     _depura("TrabajadorView::on_mui_nuevo_clicked", 0);
00229     try {
00231         trataModificado();
00232         QString query = "INSERT INTO trabajador (nomtrabajador, apellidostrabajador, nsstrabajador) VALUES ('NUEVO TRABAJADOR','NUEVO TRABAJADOR','000000000000')";
00233         empresaBase()->begin();
00234         empresaBase()->ejecuta(query);
00235         cursor2 *cur = empresaBase()->cargacursor("SELECT max(idtrabajador) AS idtrabajador FROM trabajador");
00236         empresaBase()->commit();
00237         mdb_idtrabajador = cur->valor("idtrabajador");
00238         delete cur;
00239         pintar();
00240         _depura("END TrabajadorView::on_mui_nuevo_clicked", 0);
00241     } catch (...) {
00242         mensajeInfo(tr("Error al crear un nuevo Trabajador"));
00243         empresaBase()->rollback();
00244     } // end try
00245 }
00246 
00247 
00250 
00253 void TrabajadorView::on_mui_borrar_clicked() {
00254     _depura("TrabajadorView::on_mui_borrar_clicked", 0);
00255     try {
00256         mui_tab->setDisabled(TRUE);
00257         trataModificado();
00258         empresaBase()->begin();
00259         QString query = "DELETE FROM trabajador WHERE idtrabajador = " + mdb_idtrabajador;
00260         empresaBase()->ejecuta(query);
00261         empresaBase()->commit();
00262         mdb_idtrabajador="";
00263         pintar();
00264         _depura("END TrabajadorView::on_mui_borrar_clicked", 0);
00265     } catch (...) {
00266         mensajeInfo(tr("Error al borrar el Trabajador"));
00267         empresaBase()->rollback();
00268     }// end try
00269 }
00270 
00271 
00273 
00276 void TrabajadorView::on_mui_imagen_clicked() {
00277     _depura("TrabajadorView::on_mui_imagen_clicked", 0);
00278     m_archivoimagen = QFileDialog::getOpenFileName(this,
00279                       tr("Seleccione archivo"),
00280                       "",
00281                       tr("Imagenes (*.jpg)"));
00282     m_imagen->setPixmap(QPixmap(m_archivoimagen));
00283     _depura("END TrabajadorView::on_mui_imagen_clicked", 0);
00284 }
00285 
00286 
00288 
00291 QString TrabajadorView::idtrabajador() {
00292     _depura("TrabajadorView::idtrabajador", 0);
00293     return mdb_idtrabajador;
00294     _depura("END TrabajadorView::idtrabajador", 0);
00295 }
00296 
00297 
00298 

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