int BfBuscarReferencia_on_mui_abrirtodo_clicked_Post ( BfBuscarReferencia *ref )
{
    QString SQLQuery = "SELECT * FROM albaranp WHERE refalbaranp = '" + ref->mui_referencia->text() + "'";
    BlDbRecordSet *cur = ref->mainCompany() ->loadQuery ( SQLQuery );
    while ( !cur->eof() ) {
        AlbaranProveedorView * bud = new AlbaranProveedorView ( ( BfCompany * ) ref->mainCompany(), NULL );
        ref->mainCompany() ->m_pWorkspace->addSubWindow ( bud );
        bud->load ( cur->value( "idalbaranp" ) );
        bud->show();
        cur->nextRecord();
    } // end while
    delete cur;
    return 0;
}// end if
int BlAction_actionTriggered(BlAction *accion) {
    BL_FUNC_DEBUG
    BlDebug::blDebug ( Q_FUNC_INFO, 0, "PluginBf_ProveedorAlbaran" );
    if (accion->objectName() == "mui_actionProveedoresAlbaran") {
        if ( g_albaranesProveedor ) {
            g_albaranesProveedor->hide();
            g_albaranesProveedor->show();
        } // end if
    } // end if

    if (accion->objectName() == "mui_actionProveedAlbaranNuevo") {
        AlbaranProveedorView * bud = new AlbaranProveedorView ( g_pluginbf_proveedoralbaran->company(), NULL );
        g_pluginbf_proveedoralbaran->company()->m_pWorkspace->addSubWindow ( bud );
        bud->inicializar();
        bud->show();
    } // end if
    return 0;
}
/**
\return
**/
void AlbaranProveedorView::on_mui_duplicar_released()
{
    BL_FUNC_DEBUG
    AlbaranProveedorView *fpv = this ;


    AlbaranProveedorView *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 albaran con esos datos, y en caso afirmativo lo mostramos.

        /// Creamos la albaran.
        AlbaranProveedorView *bud = new AlbaranProveedorView ( ( BfCompany * ) fpv->mainCompany(), 0 );
        fpv->mainCompany() ->m_pWorkspace->addSubWindow ( bud );
	bud->inicializar();

        bud->setDbValue ( "comentalbaranp", fpv->dbValue ( "comentalbaranp" ) );
        bud->setDbValue ( "idforma_pago", fpv->dbValue ( "idforma_pago" ) );
        bud->setDbValue ( "refalbaranp", fpv->dbValue ( "refalbaranp" ) );
        bud->setDbValue ( "idproveedor", fpv->dbValue ( "idproveedor" ) );
        bud->pintar();
        bud->show();

        /// Traspasamos las lineas de albaran
        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 ( "desclalbaranp", linea->dbValue ( "desclalbaranp" ) );
                linea1->setDbValue ( "cantlalbaranp", linea->dbValue ( "cantlalbaranp" ) );
                linea1->setDbValue ( "pvplalbaranp", linea->dbValue ( "pvplalbaranp" ) );
                linea1->setDbValue ( "descuentolalbaranp", linea->dbValue ( "descuentolalbaranp" ) );
                linea1->setDbValue ( "idarticulo", linea->dbValue ( "idarticulo" ) );
                linea1->setDbValue ( "codigocompletoarticulo", linea->dbValue ( "codigocompletoarticulo" ) );
                linea1->setDbValue ( "nomarticulo", linea->dbValue ( "nomarticulo" ) );
                linea1->setDbValue ( "ivalalbaranp", linea->dbValue ( "ivalalbaranp" ) );
                linea1->setDbValue ( "reqeqlalbaranp", linea->dbValue ( "reqeqlalbaranp" ) );
            } // end if
        } // end for
        bud->calculaypintatotales();

    } catch ( ... ) {
        blMsgInfo ( _ ( "Error inesperado" ), this );
        if ( cur ) delete cur;
        if ( bud ) delete bud;
    } // end try

}