35 lines
963 B
C++
35 lines
963 B
C++
|
int numerazione_definitiva( TRectype& rec )
|
||
|
{ TTable tabnum( "NUM" );
|
||
|
TRectype* oldrec( rec.dup );
|
||
|
|
||
|
tabnum.zero( );
|
||
|
tabnum.set( "CODTAB", rec.get( "CODNUM" ) );
|
||
|
int err = tabnum.read( _islock );
|
||
|
// Modifico la chiave del record passato!
|
||
|
rec.set( "NDOC", tabnum.get_long( "I1" ) );
|
||
|
rec.set( "PROVV", "D" );
|
||
|
|
||
|
|
||
|
if ( err == NOERR )
|
||
|
{ // Aggiorno la tabella!
|
||
|
tabnum.put( "I1", tabnum.get_long( "I1" ) + 1 );
|
||
|
err = tabnum.rewrite();
|
||
|
}
|
||
|
int err = tabnum.read( _isunlock );
|
||
|
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();
|
||
|
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" ) );
|
||
|
}
|
||
|
righe_rec.rewrite( );
|
||
|
};
|
||
|
return err;
|
||
|
};
|