00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
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 }
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 }
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 }
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 }
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 }
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 }
00136 m_item = cur;
00139 int res = g_plugins->lanza("TrabajadorView_on_mui_lista_currentItemChanged_Post", this);
00140 if (res != 0) {
00141 return;
00142 }
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 }
00161 QString m_textactivotrabajador = "FALSE";
00162 if (m_activotrabajador->isChecked()) {
00163 m_textactivotrabajador = "TRUE";
00164 }
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 }
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 }
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 }
00193 dialogChanges_cargaInicial();
00194 } catch (...) {
00195 mensajeInfo("Error al guardar el trabajador");
00196 empresaBase()->rollback();
00197 }
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 }
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 }
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 }
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