#include <presupuestoview.h>
Inheritance diagram for PresupuestoView:

Public Slots | |
| virtual void | s_pintaTotales () |
| Este slot se activa cuando hay cambios en los subformularios. | |
| virtual void | on_mui_pasarapedido_clicked () |
| virtual void | on_m_descuentos_editFinish (int, int) |
| virtual void | on_subform2_editFinish (int, int) |
| virtual void | on_mui_idcliente_valueChanged (QString id) |
Public Member Functions | |
| PresupuestoView (Company *, QWidget *) | |
| ~PresupuestoView () | |
| virtual int | cargarPost (QString) |
| Esta funcion carga un Presupuesto. | |
| virtual int | guardarPost () |
| virtual int | borrarPre () |
| void | pintatotales (Fixed iva, Fixed base, Fixed total, Fixed desc, Fixed irpf, Fixed reqeq) |
| void | inicializar () |
| Este metodo es llamado cuando hacemos un nuevo registro, pero no hay carga desde la base de datos. | |
| void | manageArticle (int) |
| QString | detalleArticulos () |
Private Member Functions | |
| void | generarPedidoCliente () |
| Se encarga de generar un pedido a partir del presupuesto. | |
Private Attributes | |
| cursor2 * | m_cursorcombo |
Definition at line 47 of file presupuestoview.h.
| comp | ||
| parent |
Disparamos los plugins.
Usurpamos la identidad de mlist y ponemos nuestro propio widget con sus cosillas.
Inicializamos para que no se queden sin ser pintada.
Disparamos los plugins por flanco descendente.
Definition at line 53 of file presupuestoview.cpp.
References _depura(), DBRecord::addDBCampo(), DBCampo::DBboolean, DBCampo::DBdate, DBCampo::DBint, DBCampo::DBNothing, DBCampo::DBNotNull, DBCampo::DBPrimaryKey, DBCampo::DBvarchar, FALSE, g_plugins, Plugins::lanza(), Ui_PresupuestoClienteBase::m_descuentos, Ui_PresupuestoClienteBase::m_totalBases, Ui_PresupuestoClienteBase::m_totalDiscounts, Ui_PresupuestoClienteBase::m_totalPresupuestoCliente, Ui_PresupuestoClienteBase::m_totalTaxes, mensajeInfo(), Ficha::meteWindow(), Ui_PresupuestoClienteBase::mui_idalmacen, Ui_PresupuestoClienteBase::mui_idcliente, Ui_PresupuestoClienteBase::mui_idforma_pago, Ui_PresupuestoClienteBase::mui_idtrabajador, Ui_PresupuestoClienteBase::mui_refpresupuesto, DBRecord::setDBCampoId(), Ficha::setDBTableName(), BusquedaAlmacen::setEmpresaBase(), PEmpresaBase::setEmpresaBase(), SubForm2Bf::setEmpresaBase(), FichaBf::setListaDescuentos(), FichaBf::setListaLineas(), Ficha::setTitleName(), Ui_PresupuestoClienteBase::setupUi(), BusquedaTrabajador::setValorCampo(), BusquedaAlmacen::setValorCampo(), BusquedaFormaPago::setValorCampo(), Ui_PresupuestoClienteBase::subform2, and TRUE.
00054 : FichaBf(comp, parent) { 00055 _depura("Inicializacion de PresupuestoView", 0); 00056 setAttribute(Qt::WA_DeleteOnClose); 00057 try { 00058 setupUi(this); 00059 00060 setTitleName(tr("Presupuesto")); 00061 setDBTableName("presupuesto"); 00062 setDBCampoId("idpresupuesto"); 00063 addDBCampo("idpresupuesto", DBCampo::DBint, DBCampo::DBPrimaryKey, QApplication::translate("Presupuesto", "ID presupuesto")); 00064 addDBCampo("idcliente", DBCampo::DBint, DBCampo::DBNotNull, QApplication::translate("Presupuesto", "ID cliente")); 00065 addDBCampo("idalmacen", DBCampo::DBint, DBCampo::DBNotNull, QApplication::translate("Presupuesto", "ID almacen")); 00066 addDBCampo("numpresupuesto", DBCampo::DBint, DBCampo::DBNothing, QApplication::translate("Presupuesto", "Numero de presupuesto")); 00067 addDBCampo("fpresupuesto", DBCampo::DBdate, DBCampo::DBNothing, QApplication::translate("Presupuesto", "Fecha de creacion")); 00068 addDBCampo("vencpresupuesto", DBCampo::DBdate, DBCampo::DBNothing, QApplication::translate("Presupuesto", "Fecha de vencimiento")); 00069 addDBCampo("contactpresupuesto", DBCampo::DBvarchar, DBCampo::DBNothing, QApplication::translate("Presupuesto", "Persona de contacto")); 00070 addDBCampo("telpresupuesto", DBCampo::DBvarchar, DBCampo::DBNothing, QApplication::translate("Presupuesto", "Numero de telefono")); 00071 addDBCampo("comentpresupuesto", DBCampo::DBvarchar, DBCampo::DBNothing, QApplication::translate("Presupuesto", "Comentarios")); 00072 addDBCampo("procesadopresupuesto", DBCampo::DBboolean, DBCampo::DBNothing, QApplication::translate("Presupuesto", "Presupuesto procesado")); 00073 addDBCampo("descpresupuesto", DBCampo::DBvarchar, DBCampo::DBNothing, QApplication::translate("Presupuesto", "% Descuento")); 00074 addDBCampo("refpresupuesto", DBCampo::DBvarchar, DBCampo::DBNothing, QApplication::translate("Presupuesto", "Referencia")); 00075 addDBCampo("idforma_pago", DBCampo::DBint, DBCampo::DBNothing, QApplication::translate("Presupuesto", "ID forma de pago")); 00076 addDBCampo("idtrabajador", DBCampo::DBint, DBCampo::DBNothing, QApplication::translate("Presupuesto", "ID trabajador")); 00077 00079 int res = g_plugins->lanza("PresupuestoView_PresupuestoView", this); 00080 if (res != 0) { 00081 return; 00082 } // end if 00083 00085 subform2->setEmpresaBase(comp); 00086 m_descuentos->setEmpresaBase(comp); 00087 mui_idcliente->setEmpresaBase(comp); 00088 mui_idforma_pago->setEmpresaBase(comp); 00089 mui_idalmacen->setEmpresaBase(comp); 00090 mui_idtrabajador->setEmpresaBase(comp); 00091 mui_refpresupuesto->setEmpresaBase(comp); 00092 00093 setListaLineas(subform2); 00094 setListaDescuentos(m_descuentos); 00095 00096 m_totalBases->setReadOnly(TRUE); 00097 m_totalBases->setAlignment(Qt::AlignRight); 00098 m_totalTaxes->setReadOnly(TRUE); 00099 m_totalTaxes->setAlignment(Qt::AlignRight); 00100 m_totalDiscounts->setReadOnly(TRUE); 00101 m_totalDiscounts->setAlignment(Qt::AlignRight); 00102 m_totalPresupuestoCliente->setReadOnly(TRUE); 00103 m_totalPresupuestoCliente->setAlignment(Qt::AlignRight); 00104 00106 mui_idforma_pago->setValorCampo("0"); 00107 mui_idalmacen->setValorCampo("0"); 00108 mui_idtrabajador->setValorCampo("0"); 00109 00110 meteWindow(windowTitle(), this, FALSE); 00112 g_plugins->lanza("PresupuestoView_PresupuestoView_Post", this); 00113 } catch (...) { 00114 mensajeInfo(tr("Error al crear el presupuesto")); 00115 } // end try 00116 _depura("Fin de la inicializacion de PresupuestoView", 0); 00117 }
| PresupuestoView::~PresupuestoView | ( | ) |
Definition at line 135 of file presupuestoview.cpp.
References _depura(), FichaBf::empresaBase(), g_plugins, and Plugins::lanza().
00135 { 00136 _depura("PresupuestoView::~PresupuestoView", 0); 00137 ((Company *)empresaBase())->refreshPresupuestos(); 00138 00140 g_plugins->lanza("PresupuestoView_DesPresupuestoView", this); 00141 _depura("END PresupuestoView::~PresupuestoView", 0); 00142 }
| int PresupuestoView::cargarPost | ( | QString | idbudget | ) | [virtual] |
Esta funcion carga un Presupuesto.
| idbudget |
Reimplemented from Ficha.
Definition at line 343 of file presupuestoview.cpp.
References _depura(), FichaBf::calculaypintatotales(), SubForm2Bf::cargar(), FichaBf::m_listadescuentos, and FichaBf::m_listalineas.
00343 { 00344 _depura("PresupuestoView::cargarPost", 0); 00345 00346 m_listalineas->cargar(idbudget); 00347 m_listadescuentos->cargar(idbudget); 00348 00349 calculaypintatotales(); 00350 00351 _depura("END PresupuestoView::cargar", 0); 00352 return 0; 00353 }
| int PresupuestoView::guardarPost | ( | ) | [virtual] |
Disparamos los plugins con presupuesto_imprimirPresupuesto.
Reimplemented from Ficha.
Definition at line 360 of file presupuestoview.cpp.
References _depura(), DBRecord::DBvalue(), g_plugins, SubForm3::guardar(), Plugins::lanza(), FichaBf::m_listadescuentos, FichaBf::m_listalineas, and SubForm3::setColumnValue().
00360 { 00361 _depura("PresupuestoView::guardarPost", 0); 00362 00363 m_listalineas->setColumnValue("idpresupuesto", DBvalue("idpresupuesto")); 00364 m_listadescuentos->setColumnValue("idpresupuesto", DBvalue("idpresupuesto")); 00365 00366 m_listalineas->guardar(); 00367 m_listadescuentos->guardar(); 00369 g_plugins->lanza("Presupuesto_guardarPost_Post", this); 00370 00371 _depura("END PresupuestoView::guardar", 0); 00372 return 0; 00373 }
| int PresupuestoView::borrarPre | ( | ) | [virtual] |
Disparamos los plugins con presupuesto_imprimirPresupuesto.
Reimplemented from Ficha.
Definition at line 326 of file presupuestoview.cpp.
References _depura(), SubForm3::borrar(), g_plugins, Plugins::lanza(), FichaBf::m_listadescuentos, and FichaBf::m_listalineas.
00326 { 00327 _depura("PresupuestoView::borrar", 0); 00329 g_plugins->lanza("Presupuesto_borrarPre", this); 00330 m_listalineas->borrar(); 00331 m_listadescuentos->borrar(); 00332 00333 _depura("END PresupuestoView::borrar", 0); 00334 return 0; 00335 }
| void PresupuestoView::pintatotales | ( | Fixed | iva, | |
| Fixed | base, | |||
| Fixed | total, | |||
| Fixed | desc, | |||
| Fixed | irpf, | |||
| Fixed | reqeq | |||
| ) | [virtual] |
| iva | ||
| base | ||
| total | ||
| desc | ||
| irpf | ||
| reqeq |
Reimplemented from FichaBf.
Definition at line 194 of file presupuestoview.cpp.
References _depura(), iva, Ui_PresupuestoClienteBase::m_totalBases, Ui_PresupuestoClienteBase::m_totalDiscounts, Ui_PresupuestoClienteBase::m_totalIRPF, Ui_PresupuestoClienteBase::m_totalPresupuestoCliente, Ui_PresupuestoClienteBase::m_totalReqEq, Ui_PresupuestoClienteBase::m_totalTaxes, and Fixed::toQString().
00194 { 00195 _depura("PresupuestoView::pintatotales", 0); 00196 m_totalBases->setText(QString(base.toQString())); 00197 m_totalTaxes->setText(QString(iva.toQString())); 00198 m_totalPresupuestoCliente->setText(QString(total.toQString())); 00199 m_totalDiscounts->setText(QString(desc.toQString())); 00200 m_totalIRPF->setText(QString(irpf.toQString())); 00201 m_totalReqEq->setText(QString(reqeq.toQString())); 00202 _depura("END PresupuestoView::pintatotales", 0); 00203 }
| void PresupuestoView::inicializar | ( | ) |
Este metodo es llamado cuando hacemos un nuevo registro, pero no hay carga desde la base de datos.
Definition at line 123 of file presupuestoview.cpp.
References _depura(), dialogChanges::dialogChanges_cargaInicial(), SubForm3::inicializar(), Ui_PresupuestoClienteBase::m_descuentos, and Ui_PresupuestoClienteBase::subform2.
Referenced by Company::s_newPresupuestoCli().
00123 { 00124 _depura("PresupuestoView::inicializar", 0); 00125 subform2->inicializar(); 00126 m_descuentos->inicializar(); 00127 dialogChanges_cargaInicial(); 00128 _depura("END PresupuestoView::inicializar", 0); 00129 }
| void PresupuestoView::manageArticle | ( | int | ) |
| void PresupuestoView::generarPedidoCliente | ( | ) | [private] |
Se encarga de generar un pedido a partir del presupuesto.
Comprobamos que existe el elemento, y en caso afirmativo lo mostramos y salimos.
Informamos que ya hay una factura y que la abriremos. Si no salimos de la función.
Informamos de que no existe el pedido y a ver si lo queremos realizar. Sino salimos de la funcion.
Creamos el pedido.
Traspasamos toda la informacion del presupuesto al pedido.
Traspasamos las lineas del presupuesto a lineas del pedido.
Traspasamos los descuentos del presupuesto a descuentos del pedido.
Pintamos el pedido y lo presentamos.
Definition at line 210 of file presupuestoview.cpp.
References _depura(), QWorkspace2::addWindow(), postgresiface2::cargacursor(), Ficha::cargar(), DBRecord::DBvalue(), FichaBf::empresaBase(), cursor2::eof(), FALSE, FichaBf::getlistadescuentos(), FichaBf::getlistalineas(), SubForm3::lineaat(), FichaBf::m_listadescuentos, FichaBf::m_listalineas, EmpresaBase::m_pWorkspace, Company::newPedidoClienteView(), SubForm3::nuevoRegistro(), Ficha::pintar(), Ficha::recogeValores(), SubForm3::rowCount(), DBRecord::setDBvalue(), SubForm3::setProcesarCambios(), TRUE, and cursor2::valor().
Referenced by on_mui_pasarapedido_clicked().
00210 { 00211 _depura("PresupuestoView::generarPedidoCliente", 0); 00213 QString SQLQuery = "SELECT * FROM pedidocliente WHERE refpedidocliente = '" + DBvalue("refpresupuesto") + "' AND idcliente = "+DBvalue("idcliente"); 00214 cursor2 *cur = empresaBase()->cargacursor(SQLQuery); 00215 if (!cur->eof()) { 00216 00217 00220 if (QMessageBox::question(this, 00221 tr("Pedido existente"), 00222 tr("Existe un pedido a este cliente con la misma referencia que este presupuesto. Desea abrirla para verificar?"), 00223 tr("&Si"), tr("&No"), QString::null, 0, 1)) { 00224 return; 00225 } 00226 PedidoClienteView *bud = empresaBase()->newPedidoClienteView(); 00227 empresaBase()->m_pWorkspace->addWindow(bud); 00228 bud->cargar(cur->valor("idpedidocliente")); 00229 bud->show(); 00230 delete cur; 00231 return; 00232 } // end if 00233 delete cur; 00234 00237 // if (QMessageBox::question(this, 00238 // tr("Pedido de cliente inexistente"), 00239 // tr("No existe un pedido asociado a este presupuesto. Desea crearlo?"), 00240 // tr("&Si"), tr("&No"), 00241 // QString::null, 0, 1)) 00242 // return; 00243 00245 PedidoClienteView *bud = empresaBase()->newPedidoClienteView(); 00246 bud->cargar("0"); 00247 empresaBase()->m_pWorkspace->addWindow(bud); 00248 00250 recogeValores(); 00251 bud->setDBvalue("idcliente", DBvalue("idcliente")); 00252 bud->setDBvalue("comentpedidocliente", DBvalue("comentpresupuesto")); 00253 bud->setDBvalue("descpedidocliente", DBvalue("descpresupuesto")); 00254 bud->setDBvalue("fechapedidocliente", DBvalue("fpresupuesto")); 00255 bud->setDBvalue("idforma_pago", DBvalue("idforma_pago")); 00256 bud->setDBvalue("refpedidocliente", DBvalue("refpresupuesto")); 00257 bud->setDBvalue("procesadopedidocliente", DBvalue("procesadopresupuesto")); 00258 bud->setDBvalue("idalmacen", DBvalue("idalmacen")); 00259 bud->setDBvalue("contactpedidocliente", DBvalue("contactpresupuesto")); 00260 bud->setDBvalue("telpedidocliente", DBvalue("telpresupuesto")); 00261 00263 SDBRecord *linea; 00264 SDBRecord *linea2; 00265 00266 00267 for (int i = 0; i < m_listalineas->rowCount(); i++) { 00268 linea = m_listalineas->lineaat(i); 00269 if (linea->DBvalue("idarticulo") != "") { 00270 linea2 = bud->getlistalineas()->lineaat(bud->getlistalineas()->rowCount() - 1); 00271 bud->getlistalineas()->nuevoRegistro(); 00272 bud->getlistalineas()->setProcesarCambios(FALSE); 00273 linea2->setDBvalue("desclpedidocliente", linea->DBvalue("desclpresupuesto")); 00274 linea2->setDBvalue("cantlpedidocliente", linea->DBvalue("cantlpresupuesto")); 00275 linea2->setDBvalue("pvplpedidocliente", linea->DBvalue("pvplpresupuesto")); 00276 linea2->setDBvalue("ivalpedidocliente", linea->DBvalue("ivalpresupuesto")); 00277 linea2->setDBvalue("descuentolpedidocliente", linea->DBvalue("descuentolpresupuesto")); 00278 linea2->setDBvalue("idarticulo", linea->DBvalue("idarticulo")); 00279 linea2->setDBvalue("codigocompletoarticulo", linea->DBvalue("codigocompletoarticulo")); 00280 linea2->setDBvalue("nomarticulo", linea->DBvalue("nomarticulo")); 00281 bud->getlistalineas()->setProcesarCambios(TRUE); 00282 } // end if 00283 } // end for 00284 00285 00286 00288 SDBRecord *linea1; 00289 SDBRecord *linea3; 00290 for (int i = 0; i < m_listadescuentos->rowCount(); i++) { 00291 linea1 = m_listadescuentos->lineaat(i); 00292 if (linea1->DBvalue("proporciondpresupuesto") != "") { 00293 linea3 = bud->getlistadescuentos()->lineaat(bud->getlistadescuentos()->rowCount() - 1); 00294 bud->getlistadescuentos()->setProcesarCambios(FALSE); 00295 linea3->setDBvalue("conceptdpedidocliente", linea1->DBvalue("conceptdpresupuesto")); 00296 linea3->setDBvalue("proporciondpedidocliente", linea1->DBvalue("proporciondpresupuesto")); 00297 bud->getlistadescuentos()->setProcesarCambios(TRUE); 00298 bud->getlistadescuentos()->nuevoRegistro(); 00299 } // end if 00300 } // end for 00301 00302 00304 bud->pintar(); 00305 bud->show(); 00306 _depura("END PresupuestoView::generarPedidoCliente", 0); 00307 }
| QString PresupuestoView::detalleArticulos | ( | ) |
Definition at line 380 of file presupuestoview.cpp.
References _depura(), postgresiface2::cargacursor(), CONF_DIR_IMG_ARTICLES, confpr, DBRecord::DBvalue(), FichaBf::empresaBase(), cursor2::eof(), cursor2::siguienteregistro(), configuracion::valor(), and cursor2::valor().
00380 { 00381 _depura("PresupuestoView::detalleArticulos", 0); 00382 QString texto = ""; 00383 cursor2 *cur = empresaBase()->cargacursor("SELECT * FROM lpresupuesto LEFT JOIN articulo ON lpresupuesto.idarticulo = articulo.idarticulo WHERE presentablearticulo AND idpresupuesto=" + DBvalue("idpresupuesto")); 00384 int i = 0; 00385 while (!cur->eof()) { 00386 i = !i; 00387 if (i) { 00388 texto += "<blockTable style=\"tabladetalle1\" colWidths=\"5cm, 8cm\" rowHeights=\"5.5cm\">\n"; 00389 } else { 00390 texto += "<blockTable style=\"tabladetalle2\" colWidths=\"8cm, 5cm\" rowHeights=\"5.5cm\">\n"; 00391 } // end if 00392 texto += "<tr>\n"; 00393 if (i) { 00394 texto += "<td><h1>" + cur->valor("nomarticulo") + "</h1>"; 00395 texto += "<para><pre>" + cur->valor("obserarticulo") + "</pre></para></td>\n"; 00396 } // end if 00397 QString file = confpr->valor(CONF_DIR_IMG_ARTICLES) + cur->valor("codigocompletoarticulo") + ".jpg"; 00398 QFile f(file); 00399 if (f.exists()) { 00400 texto += " <td><illustration x=\"0\" y=\"0\" height=\"5cm\">\n" 00401 " <image file=\"" + confpr->valor(CONF_DIR_IMG_ARTICLES) + cur->valor("codigocompletoarticulo") + ".jpg\" x=\"0\" y=\"0\" height=\"5cm\"/>\n" 00402 " </illustration></td>\n"; 00403 } else { 00404 texto += "<td></td>\n"; 00405 } // end if 00406 if (!i) { 00407 texto += "<td><h1>" + cur->valor("nomarticulo") + "</h1>"; 00408 texto += "<para><pre>" + cur->valor("obserarticulo") + "</pre></para></td>\n"; 00409 } // end if 00410 texto += "</tr>\n"; 00411 texto += "</blockTable>"; 00412 cur->siguienteregistro(); 00413 } // end while 00414 delete cur; 00415 _depura("END PresupuestoView::detalleArticulos", 0); 00416 return texto; 00417 }
| void PresupuestoView::s_pintaTotales | ( | ) | [virtual, slot] |
Este slot se activa cuando hay cambios en los subformularios.
Definition at line 148 of file presupuestoview.cpp.
References _depura(), and FichaBf::calculaypintatotales().
00148 { 00149 _depura("PresupuestoView::s_pintaTotales", 0); 00150 calculaypintatotales(); 00151 _depura("END PresupuestoView::s_pintaTotales", 0); 00152 }
| void PresupuestoView::on_mui_pasarapedido_clicked | ( | ) | [virtual, slot] |
Definition at line 158 of file presupuestoview.cpp.
References _depura(), and generarPedidoCliente().
00158 { 00159 _depura("PresupuestoView::on_mui_pasarapedido_clicked", 0); 00160 generarPedidoCliente(); 00161 _depura("END PresupuestoView::on_mui_pasarapedido_clicked", 0); 00162 }
| void PresupuestoView::on_m_descuentos_editFinish | ( | int | , | |
| int | ||||
| ) | [virtual, slot] |
Definition at line 168 of file presupuestoview.cpp.
References _depura(), and FichaBf::calculaypintatotales().
00168 { 00169 _depura("PresupuestoView::on_m_descuentos_editFinish", 0); 00170 calculaypintatotales(); 00171 _depura("END PresupuestoView::on_m_descuentos_editFinish", 0); 00172 }
| void PresupuestoView::on_subform2_editFinish | ( | int | , | |
| int | ||||
| ) | [virtual, slot] |
Definition at line 177 of file presupuestoview.cpp.
References _depura(), and FichaBf::calculaypintatotales().
00177 { 00178 _depura("PresupuestoView::on_subform2_editFinish", 0); 00179 calculaypintatotales(); 00180 _depura("END PresupuestoView::on_subform2_editFinish", 0); 00181 }
| void PresupuestoView::on_mui_idcliente_valueChanged | ( | QString | id | ) | [virtual, slot] |
| id |
Definition at line 314 of file presupuestoview.cpp.
References _depura(), Ui_PresupuestoClienteBase::mui_idforma_pago, BusquedaFormaPago::setIdCliente(), SubForm2Bf::setIdCliente(), and Ui_PresupuestoClienteBase::subform2.
00314 { 00315 _depura("PresupuestoView::on_m_cliente_valueChanged", 0); 00316 subform2->setIdCliente(id); 00317 mui_idforma_pago->setIdCliente(id); 00318 _depura("END PresupuestoView::on_m_cliente_valueChanged", 0); 00319 }
cursor2* PresupuestoView::m_cursorcombo [private] |
Definition at line 51 of file presupuestoview.h.
1.5.1