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 <QCheckBox>
00023 #include <QFile>
00024 #include <QCheckBox>
00025 #include <QMenu>
00026 #include <QTextStream>
00027
00028 #include "pagoslist.h"
00029 #include "company.h"
00030 #include "pagoview.h"
00031 #include "qtable2.h"
00032 #include "funcaux.h"
00033 #include "configuracion.h"
00034
00035
00037
00041 PagosList::PagosList(QWidget *parent, Qt::WFlags flag)
00042 : Listado(NULL, parent, flag) {
00043 _depura("PagosList::PagosList", 0);
00044 setupUi(this);
00045 mdb_idpago = "";
00046 setSubForm(mui_list);
00047 hideBusqueda();
00048 _depura("END PagosList::PagosList", 0);
00049 }
00050
00051
00053
00058 PagosList::PagosList(Company *comp, QWidget *parent, Qt::WFlags flag)
00059 : Listado(comp, parent, flag) {
00060 _depura("PagosList::PagosList", 0);
00061 setupUi(this);
00062 m_proveedor->setEmpresaBase(comp);
00063 mui_list->setEmpresaBase(comp);
00064 mui_idbanco->setEmpresaBase(comp);
00065 mui_idbanco->setidbanco("");
00066 presentar();
00067 mdb_idpago = "";
00068 setSubForm(mui_list);
00069 empresaBase()->meteWindow(windowTitle(), this);
00070 hideBusqueda();
00072 trataPermisos("pago");
00073 _depura("END PagosList::PagosList", 0);
00074 }
00075
00076
00077 PagosList::~PagosList() {
00078 _depura("PagosList::~PagosList", 0);
00079 _depura("END PagosList::~PagosList", 0);
00080 }
00081
00082
00083
00084
00085 void PagosList::presentar() {
00086 _depura("PagosList::presentar()", 0);
00087 if (empresaBase() != NULL ) {
00088 mui_list->cargar("SELECT * FROM pago NATURAL LEFT JOIN proveedor NATURAL LEFT JOIN trabajador NATURAL LEFT JOIN banco WHERE 1 = 1 " + generaFiltro());
00090 Fixed total = mui_list->sumarCampo("cantpago");
00091 m_total->setText(total.toQString());
00092 }
00093 _depura("END PagosList::presentar()", 0);
00094 }
00095
00096
00097 QString PagosList::generaFiltro() {
00098 _depura("PagosList::generaFiltro", 0);
00099 QString filtro = "";
00100 if (m_filtro->text() != "") {
00101 filtro = " AND ( lower(descpago) LIKE lower('%" + m_filtro->text() + "%') ";
00102 filtro +=" OR refpago LIKE '" + m_filtro->text() + "%' ";
00103 filtro +=" OR lower(nomproveedor) LIKE lower('%" + m_filtro->text() + "%')) ";
00104 } else {
00105 filtro = "";
00106 }
00107 if (m_proveedor->idproveedor() != "") {
00108 filtro += " AND pago.idproveedor = " + m_proveedor->idproveedor();
00109 }
00110 QString subfiltro = " AND ";
00111 if (mui_efectivos->isChecked() ) {
00112 filtro += " AND NOT previsionpago";
00113 subfiltro = " OR ";
00114 }
00115 if (mui_previsiones->isChecked() ) {
00116 filtro += subfiltro + " previsionpago";
00117 }
00118 if (m_fechain->text() != "") {
00119 filtro += " AND fechapago >= '" + m_fechain->text() + "' ";
00120 }
00121 if (m_fechafin->text() != "") {
00122 filtro += " AND fechapago <= '" + m_fechafin->text() + "' ";
00123 }
00124 if (mui_idbanco->idbanco() != "")
00125 filtro += " AND idbanco = "+mui_idbanco->idbanco();
00126 _depura("END PagosList::generaFiltro", 0);
00127 return (filtro);
00128 }
00129
00130
00131
00132
00133
00134 void PagosList::editar(int) {
00135 mdb_idpago = mui_list->DBvalue("idpago");
00136 if (modoEdicion() && mdb_idpago != "") {
00137 PagoView *bud = ((Company *)empresaBase())->newPagoView();
00138 if (bud->cargar(mdb_idpago)) {
00139 delete bud;
00140 return;
00141 }
00142 empresaBase()->m_pWorkspace->addWindow(bud);
00143 bud->show();
00144 } else {
00145 close();
00146 }
00147 }
00148
00149
00150 void PagosList::crear() {
00151 _depura("PagosList::crear", 0);
00152 PagoView *bud = ((Company *)empresaBase())->newPagoView();
00153 empresaBase()->m_pWorkspace->addWindow(bud);
00154 bud->show();
00155 bud->setDBvalue("idproveedor", m_proveedor->idproveedor());
00156 bud->pintar();
00157 }
00158
00159
00160 void PagosList::imprimir() {
00161 _depura("PagosList::imprimir", 0);
00162 mui_list->imprimirPDF(tr("Pagos a proveedores"));
00163 _depura("END PagosList::imprimir", 0);
00164 }
00165
00166
00167 void PagosList::borrar() {
00168 _depura("PagosList::borrar", 0);
00169 int a = mui_list->currentRow();
00170 if (a < 0) {
00171 mensajeInfo(tr("Debe seleccionar una linea"));
00172 return;
00173 }
00174 try {
00175 mdb_idpago = mui_list->DBvalue("idpago");
00176 if (modoEdicion() && mdb_idpago != "") {
00177 PagoView *bud = new PagoView((Company *)empresaBase(), NULL);
00178 bud->cargar(mdb_idpago);
00179 bud->borrar();
00180 }
00181 presentar();
00182 } catch (...) {
00183 mensajeInfo(tr("Error al borrar el pago"));
00184 }
00185 _depura("END PagosList::borrar", 0);
00186 }
00187
00188 void PagosList::setEmpresaBase (Company *comp) {
00189 _depura("PagosList::setEmpresaBase", 0);
00190 PEmpresaBase::setEmpresaBase(comp);
00191 m_proveedor->setEmpresaBase(comp);
00192 mui_list->setEmpresaBase(comp);
00193 mui_idbanco->setEmpresaBase(comp);
00194 mui_idbanco->setidbanco("");
00195 _depura("END PagosList::setEmpresaBase", 0);
00196 }
00197
00198
00199 QString PagosList::idpago() {
00200 return mdb_idpago;
00201 }
00202
00203 void PagosList::setidproveedor(QString val) {
00204 m_proveedor->setidproveedor(val);
00205 }
00206
00207
00208
00209
00213 PagosListSubForm::PagosListSubForm(QWidget *parent) : SubForm2Bf(parent) {
00214 setDBTableName("pago");
00215 setDBCampoId("idpago");
00216 addSHeader("idpago", DBCampo::DBint, DBCampo::DBNotNull | DBCampo::DBPrimaryKey, SHeader::DBNoView | SHeader::DBNoWrite, tr("Id pago"));
00217 addSHeader("idproveedor", DBCampo::DBint, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Id proveedor"));
00218 addSHeader("nomproveedor", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Nombre proveedor"));
00219 addSHeader("cifproveedor", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("C.I.F. proveedor"));
00220 addSHeader("telproveedor", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Telefono proveedor"));
00221 addSHeader("emailproveedor", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Email proveedor"));
00222 addSHeader("fechapago", DBCampo::DBdate, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Fecha de pago"));
00223 addSHeader("cantpago", DBCampo::DBnumeric, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Cantidad"));
00224 addSHeader("nombanco", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Banco"));
00225 addSHeader("refpago", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Referencia de pago"));
00226 addSHeader("previsionpago", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Prevision pago"));
00227 addSHeader("comentpago", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Comentario pago"));
00228 addSHeader("idtrabajador", DBCampo::DBint, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Id trabajador"));
00229 addSHeader("nomtrabajador", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Nombre de trabajador"));
00230 addSHeader("apellidostrabajador", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Apellidos trabajador"));
00231 setinsercion(FALSE);
00232 setDelete(FALSE);
00233 setSortingEnabled(TRUE);
00234 }
00235
00236 PagosListSubForm::~PagosListSubForm() {}
00237
00238