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 <QTextStream>
00026 #include <QMenu>
00027
00028 #include "configuracion.h"
00029 #include "cobroslist.h"
00030 #include "company.h"
00031 #include "cobroview.h"
00032 #include "funcaux.h"
00033
00034
00039 CobrosList::CobrosList(QWidget *parent, Qt::WFlags flag, edmode editmodo)
00040 : Listado(NULL, parent, flag, editmodo) {
00041 _depura("CobrosList::CobrosList", 0);
00042 setupUi(this);
00044 int res = g_plugins->lanza("CobrosList_CobrosList", this);
00045 if (res != 0)
00046 return;
00047 mdb_idcobro = "";
00048 setSubForm(mui_list);
00049 hideBusqueda();
00050
00051 _depura("END CobrosList::CobrosList", 0);
00052 }
00053
00054
00059 CobrosList::CobrosList(Company *comp, QWidget *parent, Qt::WFlags flag, edmode editmodo)
00060 : Listado(comp, parent, flag, editmodo) {
00061 _depura("CobrosList::CobrosList",0);
00062 setupUi(this);
00064 int res = g_plugins->lanza("CobrosList_CobrosList", this);
00065 if (res != 0)
00066 return;
00067 m_cliente->setEmpresaBase(comp);
00068 mui_list->setEmpresaBase(comp);
00069 mui_idbanco->setEmpresaBase(comp);
00070 mui_idbanco->setidbanco("");
00071 setSubForm(mui_list);
00072 presentar();
00073 mdb_idcobro = "";
00074 if(modoEdicion())
00075 empresaBase()->meteWindow(windowTitle(), this);
00076 hideBusqueda();
00078 trataPermisos("cobro");
00079 _depura("END CobrosList::CobrosList", 0);
00080 }
00081
00082
00085 CobrosList::~CobrosList() {
00086 _depura("CobrosList::~CobrosList", 0);
00087 _depura("END CobrosList::~CobrosList", 0);
00088 }
00089
00090
00095 void CobrosList::presentar() {
00096 _depura("CobrosList::presentar", 0);
00097 if (empresaBase() != NULL) {
00098 mui_list->cargar("SELECT * FROM cobro NATURAL LEFT JOIN cliente NATURAL LEFT JOIN trabajador NATURAL LEFT JOIN banco WHERE 1 = 1 " + generaFiltro());
00100 Fixed total = mui_list->sumarCampo("cantcobro");
00101 m_total->setText(total.toQString());
00102 }
00103 _depura("END CobrosList::presentar", 0);
00104 }
00105
00106
00109 QString CobrosList::generaFiltro() {
00110 _depura("CobrosList::generaFiltro", 0);
00111 QString filtro = "";
00112 if (m_filtro->text() != "") {
00113 filtro = " AND ( lower(comentcobro) LIKE lower('%" + m_filtro->text() + "%') ";
00114 filtro +=" OR refcobro LIKE '" + m_filtro->text() + "%' ";
00115 filtro +=" OR lower(nomcliente) LIKE lower('%" + m_filtro->text() + "%')) ";
00116 }
00117
00118 if (m_cliente->idcliente() != "") {
00119 filtro += " AND cobro.idcliente = " + m_cliente->idcliente();
00120 }
00121
00122 QString subfiltro = " AND ";
00123 if (mui_efectivos->isChecked()) {
00124 filtro += " AND NOT previsioncobro";
00125 subfiltro = " OR ";
00126 }
00127
00128 if (mui_previsiones->isChecked()) {
00129 filtro += subfiltro + " previsioncobro";
00130 }
00131
00132 if (m_fechain->text() != "")
00133 filtro += " AND fechacobro >= '" + m_fechain->text() + "' ";
00134
00135 if (m_fechafin->text() != "")
00136 filtro += " AND fechacobro <= '" + m_fechafin->text() + "' ";
00137
00138 if (mui_idbanco->idbanco() != "")
00139 filtro += " AND idbanco = "+mui_idbanco->idbanco();
00140
00141 _depura("END CobrosList::generaFiltro", 0);
00142 return (filtro);
00143 }
00144
00145
00146
00150 void CobrosList::crear() {
00151 _depura("CobrosList::crear", 0);
00152 CobroView *bud = ((Company *)empresaBase())->newCobroView();
00153 empresaBase()->m_pWorkspace->addWindow(bud);
00154 bud->show();
00155 bud->setDBvalue("idcliente", m_cliente->idcliente());
00156 bud->pintar();
00157 _depura("CobrosList::crear", 0);
00158 }
00159
00160
00163 void CobrosList::imprimir() {
00164 _depura("CobrosList::imprimir", 0);
00165 mui_list->imprimirPDF(tr("Cobros a clientes"));
00166 _depura("END CobrosList::imprimir", 0);
00167 }
00168
00169
00176 void CobrosList::borrar() {
00177 _depura("CobrosList::borrar",0);
00178 int a = mui_list->currentRow();
00179 if (a < 0) {
00180 mensajeInfo(tr("Debe seleccionar una linea"));
00181 return;
00182 }
00183 try {
00184 mdb_idcobro = mui_list->DBvalue("idcobro");
00185 if (modoEdicion()) {
00186 CobroView *cv = ((Company *)empresaBase())->newCobroView();
00187 if (cv->cargar(mdb_idcobro))
00188 throw -1;
00189 cv->on_mui_borrar_clicked();
00190 cv->close();
00191 }
00192 presentar();
00193 } catch (...) {
00194 mensajeInfo(tr("Error al borrar el cobro a cliente"));
00195 }
00196 _depura("END:CobrosList::borrar",0);
00197 }
00198
00199
00203
00204 void CobrosList::editar(int) {
00205 _depura("CobrosList::on_mui_list_cellDoubleClicked", 0);
00206 try {
00207 mdb_idcobro = mui_list->DBvalue("idcobro");
00208 if (modoEdicion()) {
00209 CobroView *bud = ((Company *)empresaBase())->newCobroView();
00210 if (bud->cargar(mdb_idcobro)) {
00211 delete bud;
00212 return;
00213 }
00214 empresaBase()->m_pWorkspace->addWindow(bud);
00215 bud->show();
00216 } else {
00217 emit(selected(mdb_idcobro));
00218 }
00219 } catch(...) {
00220 mensajeInfo(tr("Debe seleccionar una fila primero"));
00221 }
00222 _depura("END CobrosList::on_mui_list_cellDoubleClicked", 0);
00223
00224 }
00225
00228
00229 void CobrosList::submenu(const QPoint &) {
00230 _depura("PagosList::on_mui_list_customContextMenuRequested", 0);
00231 int a = mui_list->currentRow();
00232 if (a < 0)
00233 return;
00234 QMenu *popup = new QMenu(this);
00235 QAction *edit = popup->addAction(tr("Editar cobro"));
00236 QAction *del = popup->addAction(tr("Borrar cobro"));
00237 QAction *opcion = popup->exec(QCursor::pos());
00238 if (opcion == del)
00239 on_mui_borrar_clicked();
00240 if (opcion == edit)
00241 on_mui_editar_clicked();
00242 delete popup;
00243 _depura("PagosList::on_mui_list_customContextMenuRequested", 0);
00244 }
00245
00248 void CobrosList::setEmpresaBase(Company *comp) {
00249 PEmpresaBase::setEmpresaBase(comp);
00250 m_cliente->setEmpresaBase(comp);
00251 mui_list->setEmpresaBase(comp);
00252 mui_idbanco->setEmpresaBase(comp);
00253 mui_idbanco->setidbanco("");
00254 }
00255
00258 QString CobrosList::idcobro() {
00259 _depura("CobrosList::idcobro", 0);
00260 _depura("END CobrosList::idcobro", 0);
00261 return mdb_idcobro;
00262 }
00263
00267 void CobrosList::setidcliente(QString val) {
00268 m_cliente->setidcliente(val);
00269 }
00270
00271
00275
00278 CobrosListSubForm::CobrosListSubForm(QWidget *parent) : SubForm2Bf(parent) {
00279 _depura("CobrosListSubForm::CobrosListSubForm", 0);
00281 int res = g_plugins->lanza("CobrosListSubForm_CobrosListSubForm", this);
00282 if (res != 0)
00283 return;
00284 setDBTableName("cobro");
00285 setDBCampoId("idcobro");
00286 addSHeader("idcobro", DBCampo::DBint, DBCampo::DBNotNull | DBCampo::DBPrimaryKey, SHeader::DBNoView | SHeader::DBNoWrite, tr("ID cobro"));
00287 addSHeader("idcliente", DBCampo::DBint, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("ID cliente"));
00288 addSHeader("nomcliente", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Nombre"));
00289 addSHeader("cifcliente", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("C.I.F."));
00290 addSHeader("telcliente", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Numero de telefono"));
00291 addSHeader("mailcliente", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Direccion de correo electronico"));
00292 addSHeader("fechacobro", DBCampo::DBdate, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Fecha de cobro"));
00293 addSHeader("fechavenccobro", DBCampo::DBdate, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Fecha de vencimiento"));
00294 addSHeader("cantcobro", DBCampo::DBnumeric, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Cantidad"));
00295 addSHeader("nombanco", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Banco"));
00296 addSHeader("refcobro", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Referencia del cobro"));
00297 addSHeader("previsioncobro", DBCampo::DBboolean, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Prevision de cobro"));
00298 addSHeader("comentcobro", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Comentarios"));
00299 addSHeader("idtrabajador", DBCampo::DBint, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("ID trabajador"));
00300 addSHeader("nomtrabajador", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Nombre del trabajador"));
00301 addSHeader("apellidostrabajador", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Apellidos del trabajador"));
00302 setinsercion(FALSE);
00303 setDelete(FALSE);
00304 setSortingEnabled(TRUE);
00305 _depura("END CobrosListSubForm::CobrosListSubForm", 0);
00306 }
00307
00308
00309 CobrosListSubForm::~CobrosListSubForm() {
00310 _depura("CobrosListSubForm::~CobrosListSubForm", 0);
00311 _depura("END CobrosListSubForm::~CobrosListSubForm", 0);
00312 }
00313