PresupuestoView Class Reference

Muestra y administra la ventana con la información de un presupuesto. More...

#include <presupuestoview.h>

Inheritance diagram for PresupuestoView:

FichaBf Ui_PresupuestoClienteBase Ficha BLWidget DBRecord dialogChanges QWidget PEmpresaBase

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

cursor2m_cursorcombo

Detailed Description

Muestra y administra la ventana con la información de un presupuesto.

Definition at line 47 of file presupuestoview.h.


Constructor & Destructor Documentation

PresupuestoView::PresupuestoView ( Company comp,
QWidget parent 
)

Parameters:
comp 
parent 
Returns:

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 }


Member Function Documentation

int PresupuestoView::cargarPost ( QString  idbudget  )  [virtual]

Esta funcion carga un Presupuesto.

Parameters:
idbudget 
Returns:

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]

Returns:

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]

Returns:

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]

Parameters:
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.

Returns:

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 (  ) 

Returns:

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]

Parameters:
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 }


Field Documentation

cursor2* PresupuestoView::m_cursorcombo [private]

Definition at line 51 of file presupuestoview.h.


The documentation for this class was generated from the following files:
Generated on Sat Dec 15 00:02:07 2007 for BulmaGes by  doxygen 1.5.1