diff --git a/ve/ve0100b.cpp b/ve/ve0100b.cpp index 48ba313dc..c0daf7823 100755 --- a/ve/ve0100b.cpp +++ b/ve/ve0100b.cpp @@ -1,34 +1,51 @@ -int numerazione_definitiva( TRectype& rec ) + +// DOVE COMPARE !! SONO STATE FATTE MODIFICHE DA GIANLUCA O GUIDO + +// !! +#include +#include +#include + +int numerazione_definitiva( TLocalisamfile& doc ) { TTable tabnum( "NUM" ); - TRectype* oldrec( rec.dup ); + TRectype &rec= doc.curr(); + doc.read( rec, _lock ); + TRectype oldrec( doc.curr() ); tabnum.zero( ); - tabnum.set( "CODTAB", rec.get( "CODNUM" ) ); - int err = tabnum.read( _islock ); + tabnum.put( "CODTAB", rec.get( "CODNUM" ) ); + int err = tabnum.read( _lock ); // Modifico la chiave del record passato! - rec.set( "NDOC", tabnum.get_long( "I1" ) ); - rec.set( "PROVV", "D" ); - - + rec.put( "NDOC", tabnum.get_long( "I1" ) ); + rec.put( "PROVV", "D" ); + // !! Matteo, qui non manca qualcosina!? (tipo, che so', la scrittura del record...) if ( err == NOERR ) { // Aggiorno la tabella! tabnum.put( "I1", tabnum.get_long( "I1" ) + 1 ); err = tabnum.rewrite(); } - int err = tabnum.read( _isunlock ); + doc.read( rec, _unlock ); + + + // !! che casino! non si può prendere un record, bloccarlo, cambiargli la chiave, + // !! riscriverlo e poi sbloccarlo: deve essere letto e duplicato, modificato nella copia + // !! con la nuova chiave, scritto e cancellato il vecchio (!)... almeno così dice Guido. + // !! occhio! :-) + + err = tabnum.read( _unlock ); if ( err = NOERR ) { // carico le righe usando la vecchia chiave TRecord_array righe_rec( LF_RIGHEDOC, "NRIGA" ); - righe_rec.read( r ); - int last = righe_rec->last_row(); + righe_rec.read( rec ); + int last = righe_rec.last_row(); for ( int i = 1; i <= last; i ++ ) { // Le aggiorno con la nuova chiave - TRectype &rigarec = righe_rec->row( i, TRUE ); - rigarec.set( "PROVV", "D" ); - rigarec.set( "NDOC", rec.get( "NDOC" ) ); + TRectype &rigarec = righe_rec.row( i, TRUE ); + rigarec.put( "PROVV", "D" ); + rigarec.put( "NDOC", rec.get( "NDOC" ) ); } - righe_rec.rewrite( ); + righe_rec.write( ); }; return err; };