Ejemplo n.º 1
0
int BfBuscarReferencia_on_mui_abrirtodo_clicked_Post ( BfBuscarReferencia *ref )
{
    QString SQLQuery = "SELECT * FROM factura WHERE reffactura = '" + ref->mui_referencia->text() + "'";
    BlDbRecordSet *cur = ref->mainCompany() ->loadQuery ( SQLQuery );
    while ( !cur->eof() ) {
        FacturaView * bud = new FacturaView ( ( BfCompany * ) ref->mainCompany(), NULL );
        ref->mainCompany() ->m_pWorkspace->addSubWindow ( bud );
        bud->load ( cur->value( "idfactura" ) );
        bud->show();
        cur->nextRecord();
    } // end while
    delete cur;
    return 0;
}// end if
Ejemplo n.º 2
0
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;
}
Ejemplo n.º 3
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

}
Ejemplo n.º 4
0
void ImpQToolButton::click()
{
    BL_FUNC_DEBUG

    QString res = "";

    if ( m_albaranClienteList != NULL ) {
        m_companyact = ( BfCompany * ) m_albaranClienteList->mainCompany();
        BlSubForm *sub = m_albaranClienteList->mui_list;

        /// Creamos la factura
        /// Como estamos en un plugin buscamos nuevas formas de creacion de objetos.
        int resur = g_plugins->run ( "SNewFacturaView", m_companyact );
        if ( !resur ) {
            blMsgInfo ( "no se pudo crear instancia de factura" );
            return;
        } // end if
        FacturaView *fac = ( FacturaView * ) g_plugParams;
        m_companyact->m_pWorkspace->addSubWindow ( fac );

        /// Cargamos un elemento que no existe para inicializar bien la clase.
        fac->load ( "0" );

        /// Reseteamos los valores
        for ( int i = 0; i < sub->rowCount(); i++ ) {
            BlDbSubFormRecord *rec = sub->lineaat ( i );
            rec->refresh();
            QString val = rec->dbValue ( "selector" );
            if ( val == "TRUE" ) {
                QString id = rec->dbValue ( "idalbaran" );

                /// Como estamos en un plugin buscamos nuevas formas de creacion de objetos.
                int resur = g_plugins->run ( "SNewAlbaranClienteView", m_companyact );
                if ( !resur ) {
                    blMsgInfo ( "no se pudo crear instancia de albaran" );
                    return;
                } // end if
                AlbaranClienteView *pres = ( AlbaranClienteView * ) g_plugParams;
                pres->load ( id );
                if ( pres->mui_procesadoalbaran->isChecked() ) {
                    pres->close();
                    return;
                } // end if
                m_companyact->pWorkspace() ->addSubWindow ( pres );
                m_companyact->insertWindow ( pres->windowTitle(), pres, FALSE );
                pres->show();

                // El calculo de descuentos es complejo
                BlFixed descgen1 = pres->getlistadescuentos() ->sumarCampo ( "proporciondalbaran" );
                BlFixed descgen = BlFixed ( "1.000" ) - descgen1 / BlFixed ( "100" );

                /// Agregamos a comentarios que albaran se corresponde.
                QString comm = fac->dbValue ( "comentfactura" ) + "(" + _ ( "ALBARAN: Num " ) + pres->dbValue ( "numalbaran" ) + _ ( "Ref:" ) + " " + pres->dbValue ( "refalbaran" ) + _ ( "Fecha:" ) + " " + pres->dbValue ( "fechaalbaran" ) + ")\n";
                fac->setDbValue ( "comentfactura", comm );
                fac->setDbValue ( "idforma_pago", pres->dbValue ( "idforma_pago" ) );
                fac->setDbValue ( "reffactura", pres->dbValue ( "refalbaran" ) );
                fac->setDbValue ( "idcliente", pres->dbValue ( "idcliente" ) );
                fac->setDbValue ( "idalmacen", pres->dbValue ( "idalmacen" ) );

                QString l;
                BlDbSubFormRecord *linea, *linea1;
                for ( int i = 0; i < pres->getlistalineas() ->rowCount(); ++i ) {
                    linea = pres->getlistalineas() ->lineaat ( i );
                    if ( linea->dbValue ( "idarticulo" ) != "" ) {
                        linea1 = fac->getlistalineas() ->lineaat ( fac->getlistalineas() ->rowCount() - 1 );
                        /// Haciendo el nuevo registro antes nos evitamos problemas de foco.
                        fac->getlistalineas() ->newRecord();
                        fac->getlistalineas() ->setProcesarCambios ( FALSE );
                        linea1->setDbValue ( "codigocompletoarticulo", linea->dbValue ( "codigocompletoarticulo" ) );
                        linea1->setDbValue ( "desclfactura", linea->dbValue ( "desclalbaran" ) );
                        linea1->setDbValue ( "cantlfactura", linea->dbValue ( "cantlalbaran" ) );
                        linea1->setDbValue ( "pvplfactura", linea->dbValue ( "pvplalbaran" ) );
                        linea1->setDbValue ( "ivalfactura", linea->dbValue ( "ivalalbaran" ) );
                        BlFixed descpar1 = BlFixed ( linea->dbValue ( "descuentolalbaran" ) );
                        BlFixed descpar = BlFixed ( "1.000" ) - descpar1 / BlFixed ( "100" );
                        BlFixed desc = ( BlFixed ( "1.00" ) - descpar * descgen ) * BlFixed ( "100.00" );
                        linea1->setDbValue ( "descuentolfactura", desc.toQString ( '.' ) );
                        linea1->setDbValue ( "idarticulo", linea->dbValue ( "idarticulo" ) );
                        linea1->setDbValue ( "nomarticulo", linea->dbValue ( "nomarticulo" ) );
                        fac->getlistalineas() ->setProcesarCambios ( TRUE );
                        linea1->refresh();
                    } // end if
                } // end for

                pres->mui_procesadoalbaran->setChecked ( TRUE );
            } // end if
        } // end for

        fac->calculaypintatotales();
        fac->pintar();
        fac->show();

    } // end if

    
}