00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <QCheckBox>
00022 #include <QCheckBox>
00023 #include <QFile>
00024 #include <QMessageBox>
00025 #include <QTextStream>
00026
00027 #include "albaranesproveedor.h"
00028 #include "albaranproveedorview.h"
00029 #include "company.h"
00030 #include "configuracion.h"
00031 #include "funcaux.h"
00032 #include "presupuestoview.h"
00033
00034
00046 AlbaranesProveedor::AlbaranesProveedor(QWidget *parent, Qt::WFlags flag)
00047 : Listado(NULL, parent, flag) {
00048 _depura("AlbaranesProveedor::AlbaranesProveedor", 0);
00049 setupUi(this);
00050 mdb_idalbaranp = "";
00051 setSubForm(mui_list);
00052 hideBusqueda();
00053 iniciaForm();
00054 _depura("END AlbaranesProveedor::AlbaranesProveedor", 0);
00055 }
00056
00057
00059
00062 void AlbaranesProveedor::setEmpresaBase(Company *comp) {
00063 _depura("AlbaranesProveedor::setEmpresaBase", 0);
00064 PEmpresaBase::setEmpresaBase(comp);
00065 m_proveedor->setEmpresaBase(comp);
00066 m_articulo->setEmpresaBase(comp);
00067 mui_list->setEmpresaBase(comp);
00068 _depura("END AlbaranesProveedor::setEmpresaBase", 0);
00069 }
00070
00071
00073
00075 void AlbaranesProveedor::crear() {
00076 _depura("AlbaranesProveedor::crear", 0);
00077 if (empresaBase() != NULL)
00078 ((Company *)empresaBase())->s_newAlbaranPro();
00079 _depura("END AlbaranesProveedor::crear", 0);
00080 }
00081
00082
00084
00087 void AlbaranesProveedor::setidproveedor(QString val) {
00088 _depura("AlbaranesProveedor::setidproveedor", 0);
00089 m_proveedor->setidproveedor(val);
00090 _depura("END AlbaranesProveedor::setidproveedor", 0);
00091 }
00092
00093
00095
00098 void AlbaranesProveedor::setidarticulo(QString val) {
00099 _depura("AlbaranesProveedor::setidarticulo", 0);
00100 m_articulo->setidarticulo(val);
00101 _depura("AlbaranesProveedor::setidarticulo", 0);
00102 }
00103
00104
00106
00109 QString AlbaranesProveedor::idalbaranp() {
00110 _depura("AlbaranesProveedor::idalbaranp", 0);
00111 _depura("END AlbaranesProveedor::idalbaranp", 0);
00112 return mdb_idalbaranp;
00113 }
00114
00115
00127 AlbaranesProveedor::AlbaranesProveedor(Company *comp, QWidget *parent, Qt::WFlags flag)
00128 : Listado(comp, parent, flag) {
00129 _depura("AlbaranesProveedor::AlbaranesProveedor", 0);
00130 setupUi(this);
00131 m_proveedor->setEmpresaBase(comp);
00132 m_articulo->setEmpresaBase(comp);
00133 mui_list->setEmpresaBase(comp);
00134 setSubForm(mui_list);
00135 presentar();
00136 mdb_idalbaranp = "";
00137 empresaBase()->meteWindow(windowTitle(), this);
00138 hideBusqueda();
00139 iniciaForm();
00141 trataPermisos("albaranp");
00142 _depura("END AlbaranesProveedor::AlbaranesProveedor", 0);
00143 }
00144
00145
00147
00150 void AlbaranesProveedor::iniciaForm() {
00151 _depura("FacturasProveedorList::iniciaForm");
00153 int res = g_plugins->lanza("AlbaranesProveedor_iniciaForm", this);
00154 if (res != 0)
00155 return;
00156 mui_procesada->insertItem(0, tr("Todos los albaranes"));
00157 mui_procesada->insertItem(1, tr("Albaranes procesados"));
00158 mui_procesada->insertItem(2, tr("Albaranes no procesados"));
00159 _depura("END AlbaranesProveedor::iniciaForm");
00160 }
00161
00162
00163
00168 AlbaranesProveedor::~AlbaranesProveedor() {
00169 _depura("AlbaranesProveedor::~AlbaranesProveedor", 0);
00170 _depura("END AlbaranesProveedor::~AlbaranesProveedor", 0);
00171 }
00172
00173
00181 void AlbaranesProveedor::presentar() {
00182 _depura("AlbaranesProveedor::presentar", 0);
00183 if (empresaBase() != NULL ) {
00184 mui_list->cargar("SELECT *, totalalbaranp AS total, " \
00185 "bimpalbaranp AS base, impalbaranp AS impuestos " \
00186 "FROM albaranp LEFT " \
00187 "JOIN proveedor ON albaranp.idproveedor = " \
00188 "proveedor.idproveedor LEFT JOIN almacen ON " \
00189 "albaranp.idalmacen = almacen.idalmacen LEFT JOIN " \
00190 "forma_pago ON albaranp.idforma_pago = " \
00191 "forma_pago.idforma_pago WHERE 1 = 1 " + generaFiltro());
00192
00194 cursor2 *cur = empresaBase()->cargacursor("SELECT SUM(totalalbaranp) " \
00195 "AS total FROM albaranp LEFT JOIN proveedor ON " \
00196 "albaranp.idproveedor = proveedor.idproveedor LEFT " \
00197 "JOIN almacen ON albaranp.idalmacen = almacen.idalmacen " \
00198 "WHERE 1 = 1 " + generaFiltro());
00200 if (!cur) return;
00201 m_total->setText(cur->valor("total"));
00202 delete cur;
00203 }
00204 _depura("END AlbaranesProveedor::presentar", 0);
00205 }
00206
00207
00214 QString AlbaranesProveedor::generaFiltro() {
00215 _depura("AlbaranesProveedor::generaFiltro", 0);
00216 QString filtro = "";
00217
00218 if (m_filtro->text() != "") {
00219 filtro = " AND ( lower(descalbaranp) LIKE lower('%" + m_filtro->text() + "%') ";
00220 filtro +=" OR refalbaranp LIKE '" + m_filtro->text() + "%' ";
00221 filtro +=" OR lower(nomproveedor) LIKE lower('%" + m_filtro->text() + "%')) ";
00222 }
00223
00224 if (m_proveedor->idproveedor() != "")
00225 filtro += " AND albaranp.idproveedor = " + m_proveedor->idproveedor();
00226
00228 if (mui_procesada->currentIndex() == 1) {
00230 filtro += " AND procesadoalbaranp";
00231 } else if (mui_procesada->currentIndex() == 2) {
00233 filtro += " AND NOT procesadoalbaranp ";
00234 }
00235
00236 if (m_articulo->idarticulo() != "")
00237 filtro += " AND idalbaranp IN (SELECT DISTINCT idalbaranp FROM lalbaranp " \
00238 "WHERE idarticulo = '" + m_articulo->idarticulo() + "')";
00239 if (m_fechain->text() != "")
00240 filtro += " AND fechaalbaranp >= '" + m_fechain->text() + "' ";
00241 if (m_fechafin->text() != "")
00242 filtro += " AND fechaalbaranp <= '" + m_fechafin->text() + "' ";
00243 _depura("END AlbaranesProveedor::generaFiltro", 0);
00244 return (filtro);
00245 }
00246
00247
00256 void AlbaranesProveedor::editar(int row) {
00257 _depura("AlbaranesProveedor::editar", 0);
00258 mdb_idalbaranp = mui_list->DBvalue(QString("idalbaranp"), row);
00259 if (modoEdicion()) {
00260 AlbaranProveedorView *prov = new AlbaranProveedorView((Company *)empresaBase(), 0);
00261 if (prov->cargar(mdb_idalbaranp)) {
00262 delete prov;
00263 return;
00264 }
00265 empresaBase()->m_pWorkspace->addWindow(prov);
00266 prov->show();
00267 } else {
00268 emit(selected(mdb_idalbaranp));
00269 }
00270 _depura("END AlbaranesProveedor::editar", 0);
00271 }
00272
00273
00274
00279 void AlbaranesProveedor::imprimir() {
00280 _depura("AlbaranesProveedor::imprimir", 0);
00281 mui_list->imprimirPDF(tr("Albaranes de proveedor"));
00282 _depura("END AlbaranesProveedor::imprimir", 0);
00283 }
00284
00285
00295 void AlbaranesProveedor::borrar() {
00296 _depura("AlbaranesProveedor::borrar", 0);
00297 int a = mui_list->currentRow();
00298 if (a < 0) {
00299 mensajeInfo(tr("Debe seleccionar una linea"));
00300 return;
00301 }
00302 try {
00303 mdb_idalbaranp = mui_list->DBvalue(QString("idalbaranp"));
00304 if (modoEdicion()) {
00305 AlbaranProveedorView *apv = ((Company *)empresaBase())->newAlbaranProveedorView();
00306 if (apv->cargar(mdb_idalbaranp)) {
00307 throw -1;
00308 }
00309 apv->on_mui_borrar_clicked();
00310 apv->close();
00311 }
00312 presentar();
00313 } catch (...) {
00314 mensajeInfo(tr("Error al borrar albaran de proveedor"));
00315 }
00316 _depura("END AlbaranesProveedor::borrar", 0);
00317 }
00318
00319
00323
00328
00329
00331 AlbaranesProveedorListSubform::~AlbaranesProveedorListSubform() {
00332 _depura("AlbaranesProveedorListSubform::~AlbaranesProveedorListSubform", 0);
00333 _depura("END AlbaranesProveedorListSubform::~AlbaranesProveedorListSubform", 0);
00334 }
00335
00336
00338
00341 AlbaranesProveedorListSubform::AlbaranesProveedorListSubform(QWidget *parent) : SubForm2Bf(parent) {
00342 _depura("AlbaranesProveedorListSubform::AlbaranesProveedorListSubform", 0);
00343 setDBTableName("albaranp");
00344 setDBCampoId("idalbaranp");
00345 addSHeader("idalbaranp", DBCampo::DBint, DBCampo::DBNotNull | DBCampo::DBPrimaryKey, SHeader::DBNoView | SHeader::DBNoWrite, tr("ID albaran"));
00346 addSHeader("numalbaranp", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Numero de albaran"));
00347 addSHeader("descalbaranp", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Descripcion"));
00348 addSHeader("refalbaranp", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Referencia"));
00349 addSHeader("fechaalbaranp", DBCampo::DBdate, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Fecha"));
00350 addSHeader("comentalbaranp", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Comentario"));
00351 addSHeader("procesadoalbaranp", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Procesado"));
00352 addSHeader("idproveedor", DBCampo::DBint, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("ID proveedor"));
00353 addSHeader("idforma_pago", DBCampo::DBint, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("ID forma de pago"));
00354 addSHeader("idalmacen", DBCampo::DBint, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("ID almacen"));
00355 addSHeader("nomproveedor", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Nombre del proveedor"));
00356 addSHeader("nomalmacen", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Nombre del almacen"));
00357 addSHeader("descforma_pago", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Descripcion de la forma de pago"));
00358 addSHeader("base", DBCampo::DBnumeric, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Base imponible"));
00359 addSHeader("impuestos", DBCampo::DBnumeric, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Impuestos"));
00360 addSHeader("total", DBCampo::DBnumeric, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Total albaran"));
00361 setinsercion(FALSE);
00362 setDelete(FALSE);
00363 setSortingEnabled(TRUE);
00364 _depura("END AlbaranesProveedorListSubform::AlbaranesProveedorListSubform", 0);
00365 }
00366
00367
00369
00371 void AlbaranesProveedorListSubform::cargar() {
00372 _depura("AlbaranesProveedorListSubform::cargar", 0);
00373 QString SQLQuery = "SELECT * FROM albaranp";
00374 SubForm3::cargar(SQLQuery);
00375 _depura("END AlbaranesProveedorListSubform::cargar", 0);
00376 }
00377
00378
00380
00383 void AlbaranesProveedorListSubform::cargar(QString query) {
00384 _depura("AlbaranesProveedorListSubform::cargar", 0);
00385 SubForm3::cargar(query);
00386 _depura("END AlbaranesProveedorListSubform::cargar", 0);
00387 }
00388