00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <QCloseEvent>
00022 #include <QComboBox>
00023 #include <QLabel>
00024 #include <QLineEdit>
00025 #include <QMessageBox>
00026 #include <QObject>
00027 #include <QToolButton>
00028 #include <QWidget>
00029
00030 #include "albaranproveedorview.h"
00031 #include "articulolist.h"
00032 #include "company.h"
00033 #include "configuracion.h"
00034 #include "facturapview.h"
00035 #include "facturaview.h"
00036 #include "funcaux.h"
00037 #include "listlinalbaranproveedorview.h"
00038 #include "pagoview.h"
00039 #include "pedidoproveedorview.h"
00040 #include "postgresiface2.h"
00041 #include "presupuestolist.h"
00042 #include "presupuestoview.h"
00043 #include "plugins.h"
00044
00045
00054 AlbaranProveedorView::AlbaranProveedorView(Company *comp, QWidget *parent)
00055 : FichaBf(comp, parent) {
00056 _depura("AlbaranProveedorView::AlbaranProveedorView", 0);
00057 setAttribute(Qt::WA_DeleteOnClose);
00058 try {
00059 setupUi(this);
00060 setTitleName(tr("Albaran de proveedor"));
00061 setDBTableName("albaranp");
00062 setDBCampoId("idalbaranp");
00063 addDBCampo("idalbaranp", DBCampo::DBint, DBCampo::DBPrimaryKey, QApplication::translate("AlbaranProveedor", "Id albaran proveedor"));
00064 addDBCampo("numalbaranp", DBCampo::DBint, DBCampo::DBNothing, QApplication::translate("AlbaranProveedor", "Numero albaran proveedor"));
00065 addDBCampo("fechaalbaranp", DBCampo::DBdate, DBCampo::DBNothing, QApplication::translate("AlbaranProveedor", "Fecha albaran proveedor"));
00066 addDBCampo("comentalbaranp", DBCampo::DBvarchar, DBCampo::DBNothing, QApplication::translate("AlbaranProveedor", "Comentario albaran proveedor"));
00067 addDBCampo("idproveedor", DBCampo::DBint, DBCampo::DBNotNull, QApplication::translate("AlbaranProveedor", "Id proveedor"));
00068 addDBCampo("idforma_pago", DBCampo::DBint, DBCampo::DBNothing, QApplication::translate("AlbaranProveedor", "Id forma de pago"));
00069 addDBCampo("idalmacen", DBCampo::DBint, DBCampo::DBNotNull, QApplication::translate("AlbaranProveedor", "Id almacen"));
00070 addDBCampo("refalbaranp", DBCampo::DBvarchar, DBCampo::DBNothing, QApplication::translate("AlbaranProveedor", "Referencia albaran proveedor"));
00071 addDBCampo("descalbaranp", DBCampo::DBvarchar, DBCampo::DBNothing, QApplication::translate("AlbaranProveedor", "Descripcion albaran proveedor"));
00072
00074 int res = g_plugins->lanza("AlbaranProveedorView_AlbaranProveedorView", this);
00075 if (res != 0) {
00076 return;
00077 }
00078 subform2->setEmpresaBase(comp);
00079 mui_idalmacen->setEmpresaBase(comp);
00080 mui_idforma_pago->setEmpresaBase(comp);
00081 mui_idproveedor->setEmpresaBase(comp);
00082 m_descuentos->setEmpresaBase(comp);
00083 mui_refalbaranp->setEmpresaBase(comp);
00084
00086 setListaLineas(subform2);
00087 setListaDescuentos(m_descuentos);
00088
00089 m_totalBases->setReadOnly(TRUE);
00090 m_totalBases->setAlignment(Qt::AlignRight);
00091 m_totalTaxes->setReadOnly(TRUE);
00092 m_totalTaxes->setAlignment(Qt::AlignRight);
00093 m_totalDiscounts->setReadOnly(TRUE);
00094 m_totalDiscounts->setAlignment(Qt::AlignRight);
00095 m_totalalbaranp->setReadOnly(TRUE);
00096 m_totalalbaranp->setAlignment(Qt::AlignRight);
00097 mui_idforma_pago->setidforma_pago("0");
00098 mui_idalmacen->setidalmacen("0");
00099 meteWindow(windowTitle(), this, FALSE);
00100 } catch (...) {
00101 mensajeInfo(tr("Error al crear el albaran proveedor"));
00102 }
00103 _depura("END AlbaranProveedorView::AlbaranProveedorView", 0);
00104 }
00105
00106
00111 AlbaranProveedorView::~AlbaranProveedorView() {
00112 _depura("AlbaranProveedorView::~AlbaranProveedorView", 0);
00113 empresaBase()->refreshAlbaranesProveedor();
00114 _depura("END AlbaranProveedorView::~AlbaranProveedorView", 0);
00115 }
00116
00117
00119
00121 void AlbaranProveedorView::on_mui_facturar_clicked() {
00122 _depura("AlbaranProveedorView::on_mui_facturar_clicked", 0);
00123 generarFacturaProveedor();
00124 _depura("END AlbaranProveedorView::on_mui_facturar_clicked", 0);
00125 }
00126
00127
00129
00131 void AlbaranProveedorView::on_m_descuentos_editFinish(int, int) {
00132 _depura("AlbaranProveedorView::on_m_descuentos_editFinish", 0);
00133 calculaypintatotales();
00134 _depura("END AlbaranProveedorView::on_m_descuentos_editFinish", 0);
00135 }
00136
00137
00139
00141 void AlbaranProveedorView::on_subform2_editFinish(int, int) {
00142 _depura("AlbaranProveedorView::on_subform2_editFinish", 0);
00143 calculaypintatotales();
00144 _depura("END AlbaranProveedorView::on_subform2_editFinish", 0);
00145 }
00146
00147
00154 void AlbaranProveedorView::inicializar() {
00155 _depura("AlbaranProveedorView::inicializar", 0);
00156 subform2->inicializar();
00157 m_descuentos->inicializar();
00158 pintar();
00159 dialogChanges_cargaInicial();
00160 _depura("END AlbaranProveedorView::inicializar", 0);
00161 }
00162
00163
00165
00172 void AlbaranProveedorView::pintatotales(Fixed iva, Fixed base, Fixed total, Fixed desc, Fixed irpf, Fixed reqeq) {
00173 _depura("AlbaranProveedorView::pintatotales", 0);
00174 m_totalBases->setText(QString(base.toQString()));
00175 m_totalTaxes->setText(QString(iva.toQString()));
00176 m_totalDiscounts->setText(QString(desc.toQString()));
00177 m_totalIRPF->setText(QString(irpf.toQString()));
00178 m_totalReqEq->setText(QString(reqeq.toQString()));
00179 m_totalalbaranp->setText(QString(total.toQString()));
00180 _depura("END AlbaranProveedorView::pintatotales", 0);
00181 }
00182
00183
00188
00189
00191 void AlbaranProveedorView::on_mui_pagar_clicked() {
00192 _depura("AlbaranProveedorView::on_mui_pagar_clicked", 0);
00193 PagoView *bud = empresaBase()->newPagoView();
00194 empresaBase()->m_pWorkspace->addWindow(bud);
00195 bud->setDBvalue("idproveedor", DBvalue("idproveedor"));
00196 bud->setDBvalue("cantpago", m_totalalbaranp->text());
00197 bud->setDBvalue("refpago", DBvalue("refalbaranp"));
00198 bud->setDBvalue("comentpago", DBvalue("descalbaranp"));
00199 bud->pintar();
00200 bud->show();
00201 _depura("END AlbaranProveedorView::on_mui_pagar_clicked", 0);
00202 }
00203
00211 void AlbaranProveedorView::on_mui_verpedidosproveedor_clicked() {
00212 _depura("AlbaranProveedorView::on_mui_verpedidos_clicked", 0);
00213 QString query = "SELECT * FROM pedidoproveedor WHERE refpedidoproveedor = '" + DBvalue("refalbaranp") + "'";
00214 cursor2 *cur = empresaBase()->cargacursor(query);
00215 while (!cur->eof()) {
00216 PedidoProveedorView *pedpro = empresaBase()->nuevoPedidoProveedorView();
00217 pedpro->cargar(cur->valor("idpedidoproveedor"));
00218 empresaBase()->m_pWorkspace->addWindow( pedpro);
00219 pedpro->show();
00220 cur->siguienteregistro();
00221 }
00222 delete cur;
00223 _depura("END AlbaranProveedorView::on_mui_verpedidos_clicked", 0);
00224 }
00225
00226
00228
00236 void AlbaranProveedorView::generarFacturaProveedor() {
00237 _depura("AlbaranProveedorView::generarFacturaProveedor", 0);
00240 QString SQLQuery = "SELECT * FROM facturap WHERE reffacturap = '" + DBvalue("refalbaranp") + "' AND idproveedor = " + DBvalue("idproveedor");
00241 cursor2 *cur = empresaBase()->cargacursor(SQLQuery);
00242
00243 if (!cur->eof()) {
00246 if (QMessageBox::question(this,
00247 tr("Factura de proveedor existente"),
00248 tr("Existe una factura de este proveedor con la misma referencia que este albaran. Desea abrirla para verificar?"),
00249 tr("&Si"), tr("&No"), QString::null, 0, 1)) {
00250 return;
00251 }
00252 FacturaProveedorView *bud = empresaBase()->newFacturaProveedorView();
00253 empresaBase()->m_pWorkspace->addWindow(bud);
00254 bud->cargar(cur->valor("idfacturap"));
00255 bud->show();
00256 return;
00257 }
00258 delete cur;
00259
00261 FacturaProveedorView *bud = empresaBase()->newFacturaProveedorView();
00262 empresaBase()->m_pWorkspace->addWindow(bud);
00263
00265 bud->inicializar();
00266
00267 bud->setDBvalue("comentfacturap", DBvalue("comentalbaranp"));
00268 bud->setDBvalue("idforma_pago", DBvalue("idforma_pago"));
00269 bud->setDBvalue("reffacturap", DBvalue("refalbaranp"));
00270 bud->setDBvalue("idproveedor", DBvalue("idproveedor"));
00271 bud->pintar();
00272 bud->show();
00273
00274 QString l;
00275 SDBRecord *linea, *linea1;
00276 for (int i = 0; i < m_listalineas->rowCount(); ++i) {
00277 linea = m_listalineas->lineaat(i);
00278 if (linea->DBvalue( "idarticulo") != "") {
00279 linea1 = bud->getlistalineas()->lineaat(bud->getlistalineas()->rowCount() - 1);
00280 bud->getlistalineas()->nuevoRegistro();
00281 bud->getlistalineas()->setProcesarCambios(FALSE);
00282 linea1->setDBvalue("desclfacturap", linea->DBvalue("desclalbaranp"));
00283 linea1->setDBvalue("cantlfacturap", linea->DBvalue("cantlalbaranp"));
00284 linea1->setDBvalue("pvplfacturap", linea->DBvalue("pvplalbaranp"));
00285 linea1->setDBvalue("descuentolfacturap", linea->DBvalue("descuentolalbaranp"));
00286 linea1->setDBvalue("idarticulo", linea->DBvalue("idarticulo"));
00287 linea1->setDBvalue("codigocompletoarticulo", linea->DBvalue("codigocompletoarticulo"));
00288 linea1->setDBvalue("nomarticulo", linea->DBvalue("nomarticulo"));
00289 linea1->setDBvalue("ivalfacturap", linea->DBvalue("ivalalbaranp"));
00290 bud->getlistalineas()->setProcesarCambios(TRUE);
00291 }
00292 }
00293 bud->calculaypintatotales();
00294 _depura("END AlbaranClienteView::generarFactura", 0);
00295 }
00296
00297
00299
00302 void AlbaranProveedorView::on_mui_idproveedor_valueChanged(QString id) {
00303 _depura("AlbaranProveedorView::on_m_proveedor_valueChanged", 0);
00304 subform2->setIdProveedor(id);
00305 mui_idforma_pago->setIdProveedor(id);
00306 _depura("END AlbaranProveedorView::on_m_proveedor_valueChanged", 0);
00307 }
00308
00309
00318 int AlbaranProveedorView::borrarPre() {
00319 _depura("AlbaranProveedorView::borrar", 0);
00320 m_listalineas->borrar();
00321 m_listadescuentos->borrar();
00322 _depura("END AlbaranProveedorView::borrar", 0);
00323 return 0;
00324 }
00325
00326
00331
00335 int AlbaranProveedorView::cargarPost(QString idbudget) {
00336 _depura("AlbaranProveedorView::cargar", 0);
00337
00338 m_listalineas->cargar(idbudget);
00339 m_listadescuentos->cargar(idbudget);
00340
00342 g_plugins->lanza("AlbaranProveedorView_cargarPost_Post", this);
00343
00344 calculaypintatotales();
00345 _depura("END AlbaranProveedorView::cargar", 0);
00346 return 0;
00347 }
00348
00349
00360 int AlbaranProveedorView::guardarPost() {
00361 _depura("AlbaranProveedorView::guardar", 0);
00362
00363 m_listalineas->setColumnValue("idalbaranp", DBvalue("idalbaranp"));
00364 m_listadescuentos->setColumnValue("idalbaranp", DBvalue("idalbaranp"));
00365
00366 m_listalineas->guardar();
00367 m_listadescuentos->guardar();
00368
00369 _depura("END AlbaranProveedorView::guardar", 0);
00370 return 0;
00371 }
00372