Ejemplo n.º 1
0
/**
\return
**/
void PedidoProveedorView::on_mui_duplicar_released()
{
    BL_FUNC_DEBUG
    PedidoProveedorView *fpv = this ;


    PedidoProveedorView *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.
        PedidoProveedorView *bud = new PedidoProveedorView ( ( BfCompany * ) fpv->mainCompany(), 0 );
        fpv->mainCompany() ->m_pWorkspace->addSubWindow ( bud );

        bud->setDbValue ( "comentpedidoproveedor", fpv->dbValue ( "comentpedidoproveedor" ) );
        bud->setDbValue ( "idforma_pago", fpv->dbValue ( "idforma_pago" ) );
        bud->setDbValue ( "refpedidoproveedor", fpv->dbValue ( "refpedidoproveedor" ) );
        bud->setDbValue ( "idproveedor", fpv->dbValue ( "idproveedor" ) );
        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 ( "desclpedidoproveedor", linea->dbValue ( "desclpedidoproveedor" ) );
                linea1->setDbValue ( "cantlpedidoproveedor", linea->dbValue ( "cantlpedidoproveedor" ) );
                linea1->setDbValue ( "pvplpedidoproveedor", linea->dbValue ( "pvplpedidoproveedor" ) );
                linea1->setDbValue ( "descuentolpedidoproveedor", linea->dbValue ( "descuentolpedidoproveedor" ) );
                linea1->setDbValue ( "idarticulo", linea->dbValue ( "idarticulo" ) );
                linea1->setDbValue ( "codigocompletoarticulo", linea->dbValue ( "codigocompletoarticulo" ) );
                linea1->setDbValue ( "nomarticulo", linea->dbValue ( "nomarticulo" ) );
                linea1->setDbValue ( "ivalpedidoproveedor", linea->dbValue ( "ivalpedidoproveedor" ) );
                linea1->setDbValue ( "reqeqlpedidoproveedor", linea->dbValue ( "reqeqlpedidoproveedor" ) );
            } // end if
        } // end for
        bud->calculaypintatotales();

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

}