tiposarticuloview.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 <QMap>
00022 #include <QLineEdit>
00023 #include <QMessageBox>
00024 
00025 #include "tiposarticuloview.h"
00026 #include "company.h"
00027 #include "funcaux.h"
00028 
00029 #define COL_IDTIPOARTICULO    0
00030 #define COL_CODTIPOARTICULO   1
00031 #define COL_DESCTIPOARTICULO  2
00032 
00033 
00035 
00040 TipoArticuloList::TipoArticuloList(Company *comp, QWidget *parent, bool modoConsulta)
00041         : Ficha(parent) {
00042     _depura("TipoArticuloList::TipoArticuloList", 0);
00043     setupUi(this);
00044     companyact = comp;
00045     m_listTipos->setColumnCount(3);
00046     QStringList headers;
00047     headers << tr("Id") << tr("Codigo") << tr("Descripcion");
00048     m_listTipos->setHeaderLabels(headers);
00049     m_idtipo = "";
00050     if (modoConsulta) {
00051         setModoConsulta();
00052         groupBox1->hide();
00053         mui_detalles->hide();
00054         mui_crear->hide();
00055         mui_guardar->hide();
00056         mui_borrar->hide();
00057         mui_cancelar->hide();
00058         mui_aceptar->hide();
00059     } else {
00060         setModoEdicion();
00061         setAttribute(Qt::WA_DeleteOnClose);
00062         companyact->meteWindow(windowTitle(), this);
00063     } // end if
00064     pintar();
00065     _depura("END TipoArticuloList::TipoArticuloList", 0);
00066 }
00067 
00068 
00070 
00072 TipoArticuloList::~TipoArticuloList() {
00073     _depura("TipoArticuloList::~TipoArticuloList", 0);
00074     _depura("END TipoArticuloList::~TipoArticuloList", 0);
00075 }
00076 
00077 
00079 
00081 void TipoArticuloList::setModoConsulta() {
00082     _depura("TipoArticuloList::setModoConsulta", 0);
00083     m_modoConsulta = TRUE;
00084     _depura("TipoArticuloList::setModoConsulta", 0);
00085 }
00086 
00087 
00089 
00091 void TipoArticuloList::setModoEdicion() {
00092     _depura("TipoArticuloList::setModoEdicion", 0);
00093     m_modoConsulta = FALSE;
00094     _depura("END TipoArticuloList::setModoEdicion", 0);
00095 }
00096 
00097 
00098 
00100 
00102 void TipoArticuloList::pintar() {
00103     _depura("TipoArticuloList::pintar", 0);
00104     cursor2 *cursoraux1 = NULL;
00105     try {
00106         QTreeWidgetItem * it;
00107 
00110         while (m_listTipos->topLevelItemCount() > 1) {
00111             it = m_listTipos->topLevelItem(0);
00112             delete it;
00113         } // end while
00114         it = m_listTipos->topLevelItem(0);
00115         if (it) it->setHidden(TRUE);
00116 
00117         cursoraux1 = companyact->cargacursor("SELECT * FROM tipo_articulo ORDER BY codtipo_articulo");
00118         while (!cursoraux1->eof()) {
00119             it = new QTreeWidgetItem(m_listTipos);
00120             it->setText(COL_IDTIPOARTICULO, cursoraux1->valor("idtipo_articulo"));
00121             it->setText(COL_CODTIPOARTICULO,cursoraux1->valor("codtipo_articulo"));
00122             it->setText(COL_DESCTIPOARTICULO, cursoraux1->valor("desctipo_articulo"));
00123             //it->setOpen(true);
00124             cursoraux1->siguienteregistro();
00125         } // end while
00126         delete cursoraux1;
00127         m_idtipo = "";
00129         dialogChanges_cargaInicial();
00130         _depura("END TipoArticuloList::pintar", 0);
00131     } catch (...) {
00132         mensajeInfo("Error en la carga");
00133         if (cursoraux1) delete cursoraux1;
00134     } // end try
00135 }
00136 
00137 
00139 
00142 QString TipoArticuloList::codtipo_articulo() {
00143     _depura("TipoArticuloList::codtipo_articulo", 0);
00144     QTreeWidgetItem *it = m_listTipos->currentItem();
00145     if (it) {
00146         return it->text(COL_CODTIPOARTICULO);
00147     } else {
00148         return "";
00149     } // end if
00150     _depura("END TipoArticuloList::codtipo_articulo", 0);
00151 }
00152 
00153 
00155 
00158 QString TipoArticuloList::idtipo_articulo() {
00159     _depura("TipoArticuloList::idtipo_articulo", 0);
00160     QTreeWidgetItem *it = m_listTipos->currentItem();
00161     if (it) {
00162         return it->text(COL_IDTIPOARTICULO);
00163     } else {
00164         return "";
00165     } // end if
00166     _depura("TipoArticuloList::idtipo_articulo", 0);
00167 }
00168 
00169 
00171 
00174 QString TipoArticuloList::desctipo_articulo() {
00175     _depura("TipoArticuloList::desctipo_articulo", 0);
00176     QTreeWidgetItem *it = m_listTipos->currentItem();
00177     if (it) {
00178         return it->text(COL_DESCTIPOARTICULO);
00179     } else {
00180         return "";
00181     } // end if
00182     _depura("END TipoArticuloList::desctipo_articulo", 0);
00183 }
00184 
00185 
00189 
00192 void TipoArticuloList::on_m_listTipos_itemDoubleClicked(QTreeWidgetItem *item, int) {
00193     if (m_modoConsulta) {
00194         _depura("TipoArticuloList::on_m_listTipos_itemDoubleClicked", 0);
00195         m_idtipo = item->text(COL_IDTIPOARTICULO);
00196         emit selected(m_idtipo);
00197     } // end if
00198     _depura("END TipoArticuloList::on_m_listTipos_itemDoubleClicked", 0);
00199 }
00200 
00201 
00205 
00208 void TipoArticuloList::on_m_listTipos_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *) {
00209     _depura("TipoArticuloList::on_m_listTipos_currentItemChanged", 0);
00210     QString idtipoold = current->text(COL_IDTIPOARTICULO);
00211     if (idtipoold != "") {
00213         trataModificado();
00214         m_idtipo = idtipoold;
00215         mostrarplantilla();
00216     } // end if
00217     _depura("END TipoArticuloList::on_m_listTipos_currentItemChanged", 0);
00218 }
00219 
00220 
00222 
00224 void TipoArticuloList::mostrarplantilla() {
00225     _depura("TipoArticuloList::mostrarplantilla", 0);
00226     QString query;
00227     query = "SELECT * from tipo_articulo WHERE idtipo_articulo = " + m_idtipo;
00228     cursor2 *cursortipo = companyact->cargacursor(query);
00229     if (!cursortipo->eof()) {
00230         m_codTipo->setText(cursortipo->valor("codtipo_articulo"));
00231         m_descTipo->setPlainText(cursortipo->valor("desctipo_articulo"));
00232     } // end if
00233     delete cursortipo;
00235     dialogChanges_cargaInicial();
00236     _depura("END TipoArticuloList::mostrarplantilla", 0);
00237 }
00238 
00239 
00240 
00242 
00245 bool TipoArticuloList::trataModificado() {
00246     _depura("TipoArticuloList::trataModificado", 0);
00248     if (dialogChanges_hayCambios()) {
00249         if (QMessageBox::warning(this,
00250                                  tr("Guardar familia"),
00251                                  tr("Desea guardar los cambios?"),
00252                                  QMessageBox::Ok,
00253                                  QMessageBox::Cancel) == QMessageBox::Ok)
00254             on_mui_guardar_clicked();
00255         _depura("END TipoArticuloList::trataModificado", 0);
00256         return TRUE;
00257     } // end if
00258     return FALSE;
00259 }
00260 
00261 
00264 
00267 int TipoArticuloList::guardar() {
00268     QString query = "UPDATE tipo_articulo SET codtipo_articulo = '" +
00269                     companyact->sanearCadena(m_codTipo->text()) + "', desctipo_articulo = '" +
00270                     companyact->sanearCadena(m_descTipo->toPlainText()) + "' WHERE idtipo_articulo = " + m_idtipo;
00271     companyact->begin();
00272     int error = companyact->ejecuta(query);
00273     if (error) {
00274         companyact->rollback();
00275         return -1;
00276     } // end if
00277     companyact->commit();
00278     //pintar();
00279 
00281     QList<QTreeWidgetItem *> listit =  m_listTipos->findItems(m_idtipo, Qt::MatchExactly, COL_IDTIPOARTICULO);
00282     QTreeWidgetItem *it = listit.first();
00283     cursor2 *cursoraux1 = companyact->cargacursor("SELECT * FROM tipo_articulo WHERE idtipo_articulo = " + m_idtipo);
00284     if (!cursoraux1->eof()) {
00285         it->setText(COL_IDTIPOARTICULO, cursoraux1->valor("idtipo_articulo"));
00286         it->setText(COL_CODTIPOARTICULO,cursoraux1->valor("codtipo_articulo"));
00287         it->setText(COL_DESCTIPOARTICULO, cursoraux1->valor("desctipo_articulo"));
00288     } // end if
00289     delete cursoraux1;
00290     return 0;
00291 }
00292 
00293 
00296 
00299 void TipoArticuloList::on_mui_crear_clicked() {
00300     _depura("TipoArticuloList::on_mui_crear_clicked", 0);
00301     cursor2 *cur = NULL;
00303     trataModificado();
00304     try {
00305         QString query = "INSERT INTO tipo_articulo (codtipo_articulo, desctipo_articulo) VALUES ('XXXXXX', 'Descripcion del tipo')";
00306         companyact->begin();
00307         int error = companyact->ejecuta(query);
00308         if (error) throw -1;
00309         cur = companyact->cargacursor("SELECT max(idtipo_articulo) AS idtipo FROM tipo_articulo");
00310         companyact->commit();
00311         m_idtipo = cur->valor("idtipo");
00312         delete cur;
00313         pintar();
00314         _depura("END TipoArticuloList::on_mui_crear_clicked", 0);
00315     } catch (...) {
00316         mensajeInfo("Error en la creacion");
00317         companyact->rollback();
00318         return;
00319     } // end try
00320 }
00321 
00322 
00325 
00328 void TipoArticuloList::on_mui_borrar_clicked() {
00329     _depura("TipoArticuloList::on_mui_borrar_clicked", 0);
00330     QTreeWidgetItem *it = m_listTipos->currentItem();
00331     if (!it)
00332         return;
00333     trataModificado();
00334     QString query = "DELETE FROM tipo_articulo WHERE idtipo_articulo = " + m_idtipo;
00335     int error = companyact->ejecuta(query);
00336     if (error) {
00337         return;
00338     } // end if
00339     it = m_listTipos->takeTopLevelItem(m_listTipos->indexOfTopLevelItem(m_listTipos->currentItem()));
00340     delete it;
00341     _depura("END TipoArticuloList::on_mui_borrar_clicked", 0);
00342 }
00343 

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