예제 #1
0
/**
\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;
}