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 <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 }
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 }
00111 empresaBase()->m_pWorkspace->addWindow(prov);
00112 prov->show();
00113 } else {
00114 emit(selected(mdb_idcliente));
00115 }
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 }
00144 cli->on_mui_borrar_clicked();
00145 delete cli;
00146 presentar();
00147 } catch (...) {
00148 mensajeInfo(tr("Error al borrar un cliente"));
00149 }
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 }
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 }
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 }