00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <QMessageBox>
00022 #include <QFile>
00023 #include <QTextStream>
00024 #include <QString>
00025
00026 #include "facturasplist.h"
00027 #include "company.h"
00028 #include "busquedaproveedor.h"
00029 #include "busquedaarticulo.h"
00030 #include "configuracion.h"
00031 #include "facturapview.h"
00032 #include "plugins.h"
00033
00034
00044 FacturasProveedorList::FacturasProveedorList(QWidget *parent, Qt::WFlags flag)
00045 : Listado(NULL, parent, flag) {
00046 _depura("FacturasProveedorList::FacturasProveedorList", 0);
00047 setupUi(this);
00049 int res = g_plugins->lanza("FacturasProveedorList_FacturasProveedorList", this);
00050 if (res != 0) {
00051 return;
00052 }
00053 mdb_idfacturap = "";
00054 setSubForm(mui_list);
00055 hideBusqueda();
00056 iniciaForm();
00057 g_plugins->lanza("FacturasProveedorList_FacturasProveedorList_Post", this);
00058 _depura("FacturasProveedorList::FacturasProveedorList", 0);
00059 }
00060
00061
00069 FacturasProveedorList::FacturasProveedorList(Company *comp, QWidget *parent)
00070 : Listado(comp, parent) {
00071 _depura("FacturasProveedorList::FacturasProveedorList", 0);
00072 setupUi(this);
00074 int res = g_plugins->lanza("FacturasProveedorList_FacturasProveedorList", this);
00075 if (res != 0) {
00076 return;
00077 }
00078 m_proveedor->setEmpresaBase(empresaBase());
00079 m_articulo->setEmpresaBase(empresaBase());
00080 mui_list->setEmpresaBase(comp);
00081 presentar();
00082 setSubForm(mui_list);
00083 mdb_idfacturap = "";
00084 empresaBase()->meteWindow(windowTitle(), this);
00085 hideBusqueda();
00086 iniciaForm();
00088 trataPermisos("facturap");
00089
00091 g_plugins->lanza("FacturasProveedorList_FacturasProveedorList_Post", this);
00092
00093 _depura("END FacturasProveedorList::FacturasProveedorList", 0);
00094 }
00095
00096
00098
00101 void FacturasProveedorList::iniciaForm() {
00102 _depura("FacturasProveedorList::iniciaForm");
00104 int res = g_plugins->lanza("FacturasProveedorList_iniciaForm", this);
00105 if (res != 0)
00106 return;
00107 mui_procesada->insertItem(0, tr("Todas las facturas"));
00108 mui_procesada->insertItem(1, tr("Facturas procesadas"));
00109 mui_procesada->insertItem(2, tr("Facturas no procesadas"));
00110 _depura("END FacturasProveedorList::iniciaForm");
00111 }
00112
00113
00117 FacturasProveedorList::~FacturasProveedorList() {
00118 _depura("FacturasProveedorList::~FacturasProveedorList", 0);
00119 _depura("END FacturasProveedorList::~FacturasProveedorList", 0);
00120 }
00121
00122
00128 void FacturasProveedorList::presentar() {
00129 _depura("FacturasProveedorList::presentar", 0);
00130 mui_list->cargar("SELECT *, totalfacturap AS total, bimpfacturap AS base, impfacturap AS impuestos FROM facturap LEFT JOIN proveedor ON facturap.idproveedor=proveedor.idproveedor WHERE 1=1 " + generaFiltro());
00131
00133 cursor2 *cur = empresaBase()->cargacursor("SELECT SUM(totalfacturap) AS total FROM facturap LEFT JOIN proveedor ON facturap.idproveedor=proveedor.idproveedor WHERE 1=1 " + generaFiltro());
00135 if (!cur) return;
00136 m_total->setText(cur->valor("total"));
00137 delete cur;
00138 _depura("END FacturasProveedorList::presentar", 0);
00139 }
00140
00141
00147 QString FacturasProveedorList::generaFiltro() {
00148 _depura("FacturasProveedorList::generaFiltro", 0);
00150 QString filtro = "";
00151 if (m_filtro->text() != "") {
00152 filtro = " AND ( lower(descfacturap) LIKE lower('%" + m_filtro->text() + "%') ";
00153 filtro +=" OR reffacturap LIKE '" + m_filtro->text() + "%' ";
00154 filtro +=" OR lower(nomproveedor) LIKE lower('%" + m_filtro->text() + "%')) ";
00155 }
00156 if (m_proveedor->idproveedor() != "") {
00157 filtro += " AND facturap.idproveedor = " + m_proveedor->idproveedor();
00158 }
00159
00161 if (mui_procesada->currentIndex() == 1) {
00163 filtro += " AND procesadafacturap";
00164 } else if (mui_procesada->currentIndex() == 2) {
00166 filtro += " AND NOT procesadafacturap ";
00167 }
00168
00169 if (m_articulo->idarticulo() != "") {
00170 filtro += " AND idfacturap IN (SELECT DISTINCT idfacturap FROM lfacturap WHERE idarticulo = '" + m_articulo->idarticulo() + "')";
00171 }
00172
00173 if (m_fechain->text() != "")
00174 filtro += " AND ffacturap >= '" + m_fechain->text() + "' ";
00175
00176 if (m_fechafin->text() != "")
00177 filtro += " AND ffacturap <= '" + m_fechafin->text() + "' ";
00178
00179 _depura("END FacturasProveedorList::generaFiltro", 0);
00180 return (filtro);
00181 }
00182
00183
00187
00190 void FacturasProveedorList::editar(int row) {
00191 _depura("FacturasProveedorList::editar", 0);
00192 try {
00193 mdb_idfacturap = mui_list->DBvalue(QString("idfacturap"), row);
00194 if (modoEdicion()) {
00195 FacturaProveedorView *prov = ((Company *)empresaBase())->newFacturaProveedorView();
00196 if (prov->cargar(mdb_idfacturap)) {
00197 delete prov;
00198 return;
00199 }
00200 empresaBase()->m_pWorkspace->addWindow(prov);
00201 prov->show();
00202 } else {
00203 emit(selected(mdb_idfacturap));
00204 }
00205 } catch(...) {
00206 mensajeInfo(tr("Error al cargar la factura proveedor"));
00207 }
00208 _depura("END FacturasProveedorList::editar", 0);
00209 }
00210
00211
00216
00217
00220 void FacturasProveedorList::borrar() {
00221 _depura("FacturasProveedorList::borrar", 0);
00222 int a = mui_list->currentRow();
00223 if (a < 0) {
00224 mensajeInfo(tr("Debe seleccionar una linea"));
00225 return;
00226 }
00227 try {
00228 mdb_idfacturap = mui_list->DBvalue("idfacturap");
00229 FacturaProveedorView *bud = ((Company *)empresaBase())->newFacturaProveedorView();
00230 bud->cargar(mdb_idfacturap);
00231 bud->on_mui_borrar_clicked();
00232 delete bud;
00233 presentar();
00234 } catch (...) {
00235 mensajeInfo(tr("Error al borrar la factura de proveedor"));
00236 }
00237 _depura("END FacturasProveedorList::borrar", 0);
00238 }
00239
00240
00245 void FacturasProveedorList::imprimir() {
00246 _depura("FacturasProveedorList::on_mui_imprimir_clicked", 0);
00247 mui_list->imprimirPDF(tr("Facturas de proveedores"));
00248 _depura("END FacturasProveedorList::on_mui_imprimir_clicked", 0);
00249 }
00250
00251
00253
00256 void FacturasProveedorList::setEmpresaBase (Company *comp) {
00257 _depura("FacturasProveedorList::setEmpresaBase", 0);
00258 PEmpresaBase::setEmpresaBase(comp);
00259 m_proveedor->setEmpresaBase(comp);
00260 m_articulo->setEmpresaBase(comp);
00261 mui_list->setEmpresaBase(comp);
00262 _depura("END FacturasProveedorList::setEmpresaBase", 0);
00263 }
00264
00265
00267
00270 QString FacturasProveedorList::idfacturap() {
00271 _depura("FacturasProveedorList::idfacturap", 0);
00272 return mdb_idfacturap;
00273 _depura("END FacturasProveedorList::idfacturap", 0);
00274 }
00275
00276
00278
00281 void FacturasProveedorList::setidproveedor(QString val) {
00282 _depura("FacturasProveedorList::setidproveedor", 0);
00283 m_proveedor->setidproveedor(val);
00284 _depura("END FacturasProveedorList::setidproveedor", 0);
00285 }
00286
00287
00289
00292 void FacturasProveedorList::setidarticulo(QString val) {
00293 _depura("FacturasProveedorList::setidarticulo", 0);
00294 m_articulo->setidarticulo(val);
00295 _depura("END FacturasProveedorList::setidarticulo", 0);
00296 }
00297
00298
00300
00302 void FacturasProveedorList::crear() {
00303 _depura("FacturasProveedorList::crear", 0);
00304 ((Company *)empresaBase())->s_newFacturaPro();
00305 _depura("END FacturasProveedorList::crear", 0);
00306 }
00307
00308
00312
00316 FacturasProveedorListSubform::FacturasProveedorListSubform(QWidget *parent) : SubForm2Bf(parent) {
00317 _depura("FacturasProveedorListSubform::FacturasProveedorListSubform", 0);
00318 setDBTableName("facturap");
00319 setDBCampoId("idfacturap");
00320 addSHeader("reffacturap", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Referencia factura"));
00321 addSHeader("idfacturap", DBCampo::DBint, DBCampo::DBNotNull | DBCampo::DBPrimaryKey, SHeader::DBNoView | SHeader::DBNoWrite, tr("Id factura"));
00322 addSHeader("numfacturap", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Numero factura"));
00323 addSHeader("nomproveedor", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Nombre proveedor"));
00324 addSHeader("ffacturap", DBCampo::DBdate, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Fecha factura"));
00325 addSHeader("contactfacturap", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Persona de contacto"));
00326 addSHeader("telfacturap", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Telefono factura"));
00327 addSHeader("comentfacturap", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Comentario factura"));
00328 addSHeader("idtrabajador", DBCampo::DBint, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Id trabajador"));
00329 addSHeader("idproveedor", DBCampo::DBint, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Id proveedor"));
00330 addSHeader("total", DBCampo::DBnumeric, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Total"));
00331 addSHeader("base", DBCampo::DBnumeric, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Base imponible"));
00332 addSHeader("impuestos", DBCampo::DBnumeric, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Impuestos"));
00333 setinsercion(FALSE);
00334 setDelete(FALSE);
00335 setSortingEnabled(TRUE);
00336 _depura("END FacturasProveedorListSubform::FacturasProveedorListSubform", 0);
00337 }
00338
00339
00341
00343 FacturasProveedorListSubform::~FacturasProveedorListSubform() {
00344 _depura("FacturasProveedorListSubform::~FacturasProveedorListSubform", 0);
00345 _depura("END FacturasProveedorListSubform::~FacturasProveedorListSubform", 0);
00346 }
00347
00348
00350
00352 void FacturasProveedorListSubform::cargar() {
00353 _depura("AlbaranesProveedorListSubform::cargar()\n", 0);
00354 QString SQLQuery = "SELECT * FROM facturap";
00355 SubForm3::cargar(SQLQuery);
00356 _depura("END AlbaranesProveedorListSubform::cargar()\n", 0);
00357 }
00358
00359
00361
00364 void FacturasProveedorListSubform::cargar(QString query) {
00365 _depura("AlbaranesProveedorListSubform::cargar(QString query)\n", 0);
00366 SubForm3::cargar(query);
00367 _depura("END AlbaranesProveedorListSubform::cargar(QString query)\n", 0);
00368 }
00369