clientslist.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   Copyright (C) 2004 by J. M. Estopa Rey                                *
00003  *   pepma@telefonica.net                                                  *
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 <QTextStream>
00023 #include <QFileDialog>
00024 #include <QCheckBox>
00025 #include <QMessageBox>
00026 #include <QMenu>
00027 
00028 #include "clientslist.h"
00029 #include "clienteview.h"
00030 #include "company.h"
00031 #include "funcaux.h"
00032 #include "pgimportfiles.h"
00033 #include "informereferencia.h"
00034 #include "plugins.h"
00035 
00036 
00041 ClientsList::ClientsList(Company *comp, QWidget *parent, Qt::WFlags flag, edmode editmode)
00042         : Listado(comp, parent, flag, editmode), pgimportfiles(comp) {
00043     _depura("ClientsList::ClientsList", 0);
00044     setupUi(this);
00045 
00047     int res = g_plugins->lanza("ClientsList_ClientsList", this);
00048     if (res != 0)
00049         return;
00050 
00051     mui_list->setEmpresaBase(comp);
00052     setSubForm( mui_list);
00053     mdb_idcliente = "";
00054     mdb_cifcliente = "";
00055     mdb_nomcliente = "";
00056     hideBusqueda();
00058     if (modoEdicion()) {
00059         empresaBase()->meteWindow(windowTitle(), this);
00060     } else {
00061         setWindowTitle(tr("Selector de clientes"));
00062         mui_editar->setHidden(TRUE);
00063         mui_crear->setHidden(TRUE);
00064         mui_borrar->setHidden(TRUE);
00065         mui_exportar->setHidden(TRUE);
00066         mui_importar->setHidden(TRUE);
00067         mui_imprimir->setHidden(TRUE);
00068     } // end if
00069     presentar();
00071     trataPermisos("cliente");
00072     _depura("END ClientsList::ClientsList", 0);
00073 }
00074 
00075 
00078 ClientsList::~ClientsList() {
00079     _depura("ClientsList::~ClientsList", 0);
00080     _depura("END ClientsList::~ClientsList", 0);
00081 }
00082 
00083 
00086 
00087 void ClientsList::presentar() {
00088     _depura("ClientsList::presenta", 0);
00089     mui_list->cargar("SELECT * FROM cliente  WHERE lower(nomcliente) LIKE lower('%" + m_filtro->text() + "%') ORDER BY nomcliente");
00090     _depura("END ClientsList::presenta", 0);
00091 }
00092 
00093 
00100 void ClientsList::editar(int row) {
00101     _depura("ClientsList::editar", 0);
00102     mdb_idcliente = mui_list->DBvalue("idcliente", row);
00103     mdb_cifcliente = mui_list->DBvalue("cifcliente", row);
00104     mdb_nomcliente = mui_list->DBvalue("nomcliente", row);
00105     if (modoEdicion()) {
00106         ClienteView *prov = ((Company *)empresaBase())->newClienteView();
00107         if (prov->cargar(mdb_idcliente)) {
00108             delete prov;
00109             return;
00110         } // end if
00111         empresaBase()->m_pWorkspace->addWindow(prov);
00112         prov->show();
00113     } else {
00114         emit(selected(mdb_idcliente));
00115     } // end if
00116     _depura("END ClientsList::editar", 0);
00117 }
00118 
00119 
00123 void ClientsList::imprimir() {
00124     _depura("ClientsList::on_mui_imprimir_clicked", 0);
00125     mui_list->imprimirPDF(tr("Listado de Clientes"));
00126     _depura("ClientsList::on_mui_imprimir_clicked", 0);
00127 }
00128 
00129 
00130 
00135 void ClientsList::borrar() {
00136     _depura("ClientsList::on_mui_borrar_clicked", 0);
00137     try {
00138         QString idcliente = mui_list->DBvalue("idcliente");
00139         ClienteView *cli = ((Company *)empresaBase())->newClienteView();
00140         if (cli->cargar(idcliente)) {
00141             delete cli;
00142             throw -1;
00143         } // end if
00144         cli->on_mui_borrar_clicked();
00145         delete cli;
00146         presentar();
00147     } catch (...) {
00148         mensajeInfo(tr("Error al borrar un cliente"));
00149     } // end try
00150     _depura("END:ClientsList::on_mui_borrar_clicked", 0);
00151 }
00152 
00153 
00158 void ClientsList::on_mui_exportar_clicked() {
00159     _depura("ClientsList::on_mui_exportar_clicked", 0);
00160     QFile filexml(QFileDialog::getSaveFileName(
00161                       this,
00162                       tr("Elija el archivo"),
00163                       confpr->valor(CONF_DIR_USER),
00164                       tr("Clientes (*.xml)")));
00165     if (filexml.open(QIODevice::WriteOnly)) {
00166         bulmafact2XML(filexml, IMPORT_CLIENTES);
00167         filexml.close();
00168     } else {
00169         _depura("ERROR AL ABRIR EL ARCHIVO", 2);
00170     } // end if
00171     _depura("END ClientsList::on_mui_exportar_clicked", 0);
00172 }
00173 
00174 
00180 void ClientsList::on_mui_importar_clicked() {
00181     _depura("ClientsList::on_mui_importar_clicked", 0);
00182     QFile filexml(QFileDialog::getOpenFileName(
00183                       this,
00184                       tr("Elija el archivo"),
00185                       confpr->valor(CONF_DIR_USER),
00186                       tr("Clientes (*.xml)")));
00187 
00188     if (filexml.open(QIODevice::ReadOnly)) {
00189         XML2BulmaFact(filexml, IMPORT_CLIENTES);
00190         filexml.close();
00191         presentar();
00192     } else {
00193         _depura("ERROR AL ABRIR EL ARCHIVO\n", 2);
00194     } // end if
00195     _depura("ClientsList::on_mui_importar_clicked", 0);
00196 }
00197 
00200 QString ClientsList::idclient() {
00201     return mdb_idcliente;
00202 }
00203 
00206 QString ClientsList::nomclient() {
00207     return mdb_nomcliente;
00208 }
00209 
00212 QString ClientsList::cifclient() {
00213     return mdb_cifcliente;
00214 }
00215 
00216 
00219 void ClientsList::crear() {
00220     ((Company *)empresaBase())->s_newClienteView();
00221 }
00222 
00223 
00227 void ClientsList::submenu(const QPoint &) {
00228     _depura("ArticuloList::on_mui_list_customContextMenuRequested", 0);
00229     int a = mui_list->currentRow();
00230     if (a < 0)
00231         return;
00232     QMenu *popup = new QMenu(this);
00233     QAction *edit = popup->addAction(tr("Editar cliente"));
00234     QAction *del = popup->addAction(tr("Borrar cliente"));
00235     QAction *opcion = popup->exec(QCursor::pos());
00236     if (opcion == del)
00237         on_mui_borrar_clicked();
00238     if (opcion == edit)
00239         on_mui_editar_clicked();
00240     delete popup;
00241 }
00242 
00246 
00249 ClienteListSubform::ClienteListSubform(QWidget *parent, const char *) : SubForm2Bf(parent) {
00250     _depura("ClienteListSubform::ClienteListSubform", 0);
00251     setDBTableName("cliente");
00252     setDBCampoId("idcliente");
00253     addSHeader("idcliente", DBCampo::DBint, DBCampo::DBNotNull | DBCampo::DBPrimaryKey, SHeader::DBNoView | SHeader::DBNoWrite, tr("ID cliente"));
00254     addSHeader("codcliente", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Codigo"));
00255     addSHeader("cifcliente", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("C.I.F."));
00256     addSHeader("nomcliente", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Nombre de cliente"));
00257     addSHeader("nomaltcliente", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Nombre alternativo del cliente"));
00258     addSHeader("bancocliente", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Numero cuenta corriente"));
00259     addSHeader("dircliente", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Direccion"));
00260     addSHeader("poblcliente", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Poblacion"));
00261     addSHeader("cpcliente", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Codigo postal"));
00262     addSHeader("telcliente", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Numero de telefono"));
00263     addSHeader("faxcliente", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Numero de fax"));
00264     addSHeader("mailcliente", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Direccion de correo electronica"));
00265     addSHeader("urlcliente", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Direccion URL"));
00266     addSHeader("corpcliente", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Empresa"));
00267     addSHeader("faltacliente", DBCampo::DBdate, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Fecha de alta del cliente"));
00268     addSHeader("fbajacliente", DBCampo::DBdate, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Fecha de baja del cliente"));
00269     addSHeader("comentcliente", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Comentarios"));
00270     setinsercion(FALSE);
00271     setDelete(FALSE);
00272     setSortingEnabled(TRUE);
00273     _depura("END ClienteListSubform::ClienteListSubform", 0);
00274 }
00275 
00276 ClienteListSubform::~ClienteListSubform() {
00277     _depura("ClienteListSubform::~ClienteListSubform", 0);
00278     _depura("END ClienteListSubform::~ClienteListSubform", 0);
00279 }

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