/** \return **/ void FacturaView::on_mui_duplicar_released() { BL_FUNC_DEBUG FacturaView *fpv = this ; FacturaView *bud = NULL; BlDbRecordSet *cur = NULL; try { /// Comprueba si disponemos de los datos mínimos. Si no se hace esta /// comprobación la consulta a la base de datos será erronea y al hacer /// el siguiente cur->eof() el programa fallará. /// Comprobamos que existe una factura con esos datos, y en caso afirmativo lo mostramos. /// Creamos la factura. FacturaView *bud = new FacturaView ( ( BfCompany * ) fpv->mainCompany(), 0 ); fpv->mainCompany() ->m_pWorkspace->addSubWindow ( bud ); bud->inicializar(); bud->setDbValue ( "comentfactura", fpv->dbValue ( "comentfactura" ) ); bud->setDbValue ( "idforma_pago", fpv->dbValue ( "idforma_pago" ) ); bud->setDbValue ( "reffactura", fpv->dbValue ( "reffactura" ) ); bud->setDbValue ( "idcliente", fpv->dbValue ( "idcliente" ) ); bud->pintar(); bud->show(); /// Traspasamos las lineas de factura QString l; BlDbSubFormRecord *linea, *linea1; for ( int i = 0; i < fpv->m_listalineas->rowCount(); ++i ) { linea = fpv->m_listalineas->lineaat ( i ); if ( linea->dbValue ( "idarticulo" ) != "" ) { linea1 = bud->getlistalineas() ->lineaat ( bud->getlistalineas() ->rowCount() - 1 ); bud->getlistalineas() ->newRecord(); bud->getlistalineas() ->setProcesarCambios ( false ); linea1->setDbValue ( "desclfactura", linea->dbValue ( "desclfactura" ) ); linea1->setDbValue ( "cantlfactura", linea->dbValue ( "cantlfactura" ) ); linea1->setDbValue ( "pvplfactura", linea->dbValue ( "pvplfactura" ) ); linea1->setDbValue ( "descuentolfactura", linea->dbValue ( "descuentolfactura" ) ); linea1->setDbValue ( "idarticulo", linea->dbValue ( "idarticulo" ) ); linea1->setDbValue ( "codigocompletoarticulo", linea->dbValue ( "codigocompletoarticulo" ) ); linea1->setDbValue ( "nomarticulo", linea->dbValue ( "nomarticulo" ) ); linea1->setDbValue ( "ivalfactura", linea->dbValue ( "ivalfactura" ) ); linea1->setDbValue ( "reqeqlfactura", linea->dbValue ( "reqeqlfactura" ) ); } // end if } // end for bud->calculaypintatotales(); } catch ( ... ) { blMsgInfo ( _ ( "Error inesperado duplicando la factura" ), this ); if ( cur ) delete cur; if ( bud ) delete bud; } // end try }
int BlAction_actionTriggered(BlAction *accion) { if (accion->objectName() == "mui_actionFacturasClientes") { if ( g_facturasList ) { g_facturasList->hide(); g_facturasList->show(); } // end if } // end if if (accion->objectName() == "mui_actionFacturaClienteNueva") { FacturaView * bud = new FacturaView ( g_pluginbf_clientefactura->company(), NULL ); g_pluginbf_clientefactura->company()->m_pWorkspace->addSubWindow ( bud ); bud->inicializar(); bud->show(); } // end if return 0; }