Lavoro all'11/08/96
git-svn-id: svn://10.65.10.50/trunk@3371 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
8b38f61b7a
commit
6ef2350eb9
140
ve/righedoc.cpp
140
ve/righedoc.cpp
@ -38,69 +38,73 @@ HIDDEN bool codart_handler( TMask_field& f, KEY key )
|
||||
// Se qualcuno cerca di modificare la maschera
|
||||
if ( key == K_TAB && f.focusdirty())
|
||||
{
|
||||
TMask& row_mask = f.mask( );
|
||||
TMask& row_mask = f.mask();
|
||||
TMask & mask = app().edit_mask();
|
||||
TCond_vendita condv(app().clifo(), &mask, &row_mask);
|
||||
TCond_vendita & condv = app().condv();
|
||||
|
||||
condv.set_testa(&mask);
|
||||
condv.set_riga(&row_mask);
|
||||
|
||||
condv.calcola();
|
||||
row_mask.set(FR_SCONTO, condv.get_sconto());
|
||||
row_mask.set(FR_PREZZO, condv.get_prezzo());
|
||||
|
||||
const TString16 lingua = mask.get(F_CODLIN);
|
||||
TLocalisamfile & anamag = ((TEdit_field &) f).browse()->cursor()->file();
|
||||
TLocalisamfile & umart = ((TEdit_field &) row_mask.field(FR_UMQTA)).browse()->cursor()->file();
|
||||
|
||||
if (anamag.bad() || (anamag.get("CODART") != f.get()))
|
||||
{
|
||||
anamag.zero();
|
||||
anamag.put("CODART", f.get());
|
||||
if (anamag.read() != NOERR)
|
||||
anamag.zero();
|
||||
}
|
||||
if (anamag.curr().empty())
|
||||
condv.set_anamag(anamag);
|
||||
condv.set_umart(umart);
|
||||
TString80 codart(f.get());
|
||||
anamag.setkey(1);
|
||||
anamag.put("CODART", codart);
|
||||
if (anamag.read() != NOERR)
|
||||
{
|
||||
TLocalisamfile codalt(LF_CODCORR);
|
||||
|
||||
codalt.setkey(2);
|
||||
codalt.put("CODARTALT", f.get());
|
||||
codalt.put("CODARTALT", codart);
|
||||
if (codalt.read() == NOERR)
|
||||
{
|
||||
const TString80 codart(codalt.get("CODART"));
|
||||
codart = codalt.get("CODART");
|
||||
anamag.zero();
|
||||
anamag.put("CODART", codart);
|
||||
if (anamag.read() == NOERR)
|
||||
f.set(codart);
|
||||
else
|
||||
anamag.zero();
|
||||
}
|
||||
}
|
||||
TString desc(anamag.get("DESCR"));
|
||||
|
||||
if (lingua.not_empty())
|
||||
}
|
||||
|
||||
if (anamag.good())
|
||||
{
|
||||
TLocalisamfile deslin(LF_DESLIN);
|
||||
const TString16 lingua = mask.get(F_CODLIN);
|
||||
const TString codart(row_mask.get(FR_CODART));
|
||||
TString desc(anamag.get("DESCR"));
|
||||
|
||||
deslin.setkey(2);
|
||||
deslin.put("CODART", row_mask.get(FR_CODART));
|
||||
deslin.put("CODLIN", lingua);
|
||||
if (deslin.read() == NOERR)
|
||||
desc = deslin.get("DESCR");
|
||||
}
|
||||
row_mask.set(FR_DESCR, desc);
|
||||
TLocalisamfile umart(LF_UMART);
|
||||
|
||||
umart.zero();
|
||||
umart.put("CODART", row_mask.get(FR_CODART));
|
||||
TRectype cmp_rec(umart.curr());
|
||||
curr_um.cut(0);
|
||||
curr_fc = 1.0;
|
||||
if (umart.read(_isgteq) == NOERR && umart.curr() == cmp_rec)
|
||||
{
|
||||
curr_um = umart.get("UM");
|
||||
curr_fc = umart.get_real("FC");
|
||||
if (lingua.not_empty())
|
||||
{
|
||||
TLocalisamfile deslin(LF_DESLIN);
|
||||
|
||||
deslin.setkey(2);
|
||||
deslin.put("CODART", codart);
|
||||
deslin.put("CODLIN", lingua);
|
||||
if (deslin.read() == NOERR)
|
||||
desc = deslin.get("DESCR");
|
||||
}
|
||||
row_mask.set(FR_DESCR, desc);
|
||||
|
||||
umart.setkey(1);
|
||||
umart.zero();
|
||||
umart.put("CODART", codart);
|
||||
if (umart.read(_isgteq) == NOERR && codart == umart.get("CODART"))
|
||||
{
|
||||
curr_um = umart.get("UM");
|
||||
curr_fc = umart.get_real("FC");
|
||||
}
|
||||
else
|
||||
{
|
||||
curr_um.cut(0);
|
||||
curr_fc = 1.0;
|
||||
}
|
||||
row_mask.set(FR_UMQTA, curr_um);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
condv.ricerca();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -111,20 +115,22 @@ HIDDEN bool umart_handler( TMask_field& f, KEY key )
|
||||
if ( key == K_TAB && f.focusdirty())
|
||||
{
|
||||
TMask& row_mask = f.mask( );
|
||||
TCond_vendita condv(app().clifo(), &app().edit_mask(), &row_mask);
|
||||
if (condv.gestum())
|
||||
{
|
||||
condv.calcola();
|
||||
row_mask.set(FR_SCONTO, condv.get_sconto());
|
||||
row_mask.set(FR_PREZZO, condv.get_prezzo());
|
||||
}
|
||||
TMask & mask = app().edit_mask();
|
||||
TLocalisamfile & anamag = ((TEdit_field &) row_mask.field(FR_CODART)).browse()->cursor()->file();
|
||||
TLocalisamfile & umart = ((TEdit_field &) f).browse()->cursor()->file();
|
||||
TCond_vendita & condv = app().condv();
|
||||
|
||||
condv.set_testa(&mask);
|
||||
condv.set_riga(&row_mask);
|
||||
condv.set_anamag(anamag);
|
||||
condv.set_umart(umart);
|
||||
condv.ricerca(FALSE);
|
||||
|
||||
const TString16 um(f.get());
|
||||
real fc(1.0);
|
||||
|
||||
if (um.not_empty() && curr_um.not_empty() && um != curr_um)
|
||||
{
|
||||
TLocalisamfile umart(LF_UMART);
|
||||
|
||||
umart.setkey(2);
|
||||
umart.put("CODART", row_mask.get(FR_CODART));
|
||||
umart.put("UM", um);
|
||||
@ -167,6 +173,27 @@ HIDDEN bool descr_handler( TMask_field& f, KEY key )
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
HIDDEN bool qta_handler( TMask_field& f, KEY key )
|
||||
{
|
||||
// Se qualcuno cerca di modificare la maschera
|
||||
if ( key == K_TAB && f.focusdirty())
|
||||
{
|
||||
TMask& row_mask = f.mask( );
|
||||
TMask & mask = app().edit_mask();
|
||||
TLocalisamfile & anamag = ((TEdit_field &) row_mask.field(FR_CODART)).browse()->cursor()->file();
|
||||
TLocalisamfile & umart = ((TEdit_field &) f).browse()->cursor()->file();
|
||||
TCond_vendita & condv = app().condv();
|
||||
|
||||
condv.set_testa(&mask);
|
||||
condv.set_riga(&row_mask);
|
||||
condv.set_anamag(anamag);
|
||||
condv.set_umart(umart);
|
||||
condv.ricerca(FALSE);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
void TRiga::load(TSheet_field & f, TToken_string& row, TRectype * r)
|
||||
{
|
||||
if (r)
|
||||
@ -354,12 +381,12 @@ void TRiga::sottrai( TPiede_documento& piede )
|
||||
piede.sottrai( temp_piede );
|
||||
}
|
||||
|
||||
TMask * TRiga::getmask( )
|
||||
TVariable_mask * TRiga::getmask( )
|
||||
{
|
||||
|
||||
TString16 msk("verig");
|
||||
msk << _data.get("TIPORIGA");
|
||||
TMask * mask = new TMask( msk );
|
||||
TVariable_mask * mask = new TVariable_mask( msk );
|
||||
int numhandler = _pro->get_int( "NHANDLER", "HANDLERS" );
|
||||
for( int i = 1; i <= numhandler; i ++ )
|
||||
{
|
||||
@ -384,7 +411,8 @@ TMask * TRiga::getmask( )
|
||||
{
|
||||
mask->set_handler( FR_CODART, codart_handler );
|
||||
mask->set_handler( FR_UMQTA, umart_handler );
|
||||
mask->set_handler( FR_DESCR, descr_handler );
|
||||
mask->set_handler( FR_DESCR, descr_handler );
|
||||
mask->set_handler( FR_QTA, qta_handler );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -29,6 +29,10 @@
|
||||
#include "msksheet.h"
|
||||
#endif
|
||||
|
||||
#ifndef __VARMASK_H
|
||||
#include "varmask.h"
|
||||
#endif
|
||||
|
||||
class TPiede_documento : public TAssoc_array
|
||||
{
|
||||
public:
|
||||
@ -86,7 +90,7 @@ class TRiga : public TObject
|
||||
// documento indicato. Va chiamata negli handler degli sheet
|
||||
void edit_keys( const KEY key, TPiede_documento& nuovo );
|
||||
// Costruisce e Ritorna la maschera della riga per la editazione
|
||||
TMask * getmask();
|
||||
TVariable_mask * getmask();
|
||||
|
||||
// Costruttorino standard
|
||||
TRiga( ) : _data( LF_RIGHEDOC ), _pro( NULL ) { }
|
||||
|
663
ve/sconti.cpp
663
ve/sconti.cpp
@ -22,225 +22,311 @@
|
||||
#include "veconf.h"
|
||||
#endif
|
||||
|
||||
#define A_ANAMAG 0
|
||||
#ifndef __TABUTIL_H
|
||||
#include <tabutil.h>
|
||||
#endif
|
||||
|
||||
// #define A_ANAMAG 0
|
||||
|
||||
HIDDEN const real CENTO(100.0);
|
||||
|
||||
void TCond_vendita::set_sconto( const char * exp, bool signal )
|
||||
bool TCond_vendita::set_sconto( const char * exp, bool signal )
|
||||
{
|
||||
TString work( exp );
|
||||
TString goodexp;
|
||||
TString num;
|
||||
TString80 goodexp;
|
||||
bool valid = TRUE;
|
||||
|
||||
// Elimina gli spazi molesti
|
||||
work.strip_spaces( );
|
||||
if (work.empty())
|
||||
// work.strip_spaces( );
|
||||
if (exp && *exp)
|
||||
{
|
||||
_sconto = "";
|
||||
return;
|
||||
}
|
||||
|
||||
// Per ora nessun errore
|
||||
_errorpos = -1;
|
||||
|
||||
int i = 0;
|
||||
_part = 1.0;
|
||||
const int wlen = work.len( );
|
||||
// Flag che indica se sono nella parte decimale di un numero
|
||||
bool dec = FALSE;
|
||||
// Flag che indica se si attende l'inizio di un numero
|
||||
bool startnum = TRUE;
|
||||
// Flag che indica se siamo all'inizio di un numero
|
||||
while ( i < wlen && _errorpos < 0 )
|
||||
{
|
||||
char c = work[ i++ ];
|
||||
switch( c )
|
||||
{
|
||||
case '+':
|
||||
case '-':
|
||||
// Se ero in in numero ...
|
||||
if( !startnum )
|
||||
TString80 num;
|
||||
bool dec = FALSE; // Flag che indica se si attende l'inizio di un numero
|
||||
bool startnum = TRUE; // Flag che indica se siamo all'inizio di un numero
|
||||
int errorchar = ' ';
|
||||
|
||||
_molt_sconto = 1.0;
|
||||
// Flag che indica se sono nella parte decimale di un numero
|
||||
for (const char * s = exp; *s && errorchar == ' '; s++)
|
||||
{
|
||||
const char c = *s;
|
||||
switch(c)
|
||||
{
|
||||
// Aggiunge il numero alla sequenza
|
||||
real newval( num );
|
||||
_part = _part * ( CENTO + newval ) / CENTO;
|
||||
if( newval >= 0 )
|
||||
goodexp << '+';
|
||||
goodexp << num;
|
||||
}
|
||||
// Inizia il nuovo numero
|
||||
num = ( c == '-' )?"-":"";
|
||||
startnum = TRUE;
|
||||
dec = FALSE;
|
||||
break;
|
||||
case '0':
|
||||
case '1':
|
||||
case '2':
|
||||
case '3':
|
||||
case '4':
|
||||
case '5':
|
||||
case '6':
|
||||
case '7':
|
||||
case '8':
|
||||
case '9':
|
||||
num << c;
|
||||
startnum = FALSE;
|
||||
break;
|
||||
case '.':
|
||||
case ',':
|
||||
// Se siamo gi` nella parte decimale ...
|
||||
if( dec )
|
||||
{
|
||||
// Segnala un errore
|
||||
_errorpos = i;
|
||||
case '+':
|
||||
case '-':
|
||||
// Se ero in in numero ...
|
||||
if( !startnum )
|
||||
{
|
||||
// Aggiunge il numero alla sequenza
|
||||
real newval( num );
|
||||
_molt_sconto *= ( CENTO + newval ) / CENTO;
|
||||
goodexp << num;
|
||||
}
|
||||
// Inizia il nuovo numero
|
||||
num = (c == '-') ? "-" : "+";
|
||||
startnum = TRUE;
|
||||
dec = FALSE;
|
||||
break;
|
||||
case '0':
|
||||
case '1':
|
||||
case '2':
|
||||
case '3':
|
||||
case '4':
|
||||
case '5':
|
||||
case '6':
|
||||
case '7':
|
||||
case '8':
|
||||
case '9':
|
||||
num << c;
|
||||
startnum = FALSE;
|
||||
break;
|
||||
case '.':
|
||||
case ',':
|
||||
if(!dec)
|
||||
{
|
||||
if( startnum )
|
||||
num << '0'; // Se occorreva un numero ci metto lo 0
|
||||
num << '.'; // Interpreto la virgola come punto
|
||||
dec = TRUE;
|
||||
startnum = TRUE;
|
||||
}
|
||||
else
|
||||
errorchar = c; // Se siamo gi` nella parte decimale segnala un errore
|
||||
break;
|
||||
case ' ':
|
||||
break;
|
||||
default:
|
||||
errorchar = c;
|
||||
break;
|
||||
}
|
||||
// Se occorreva un numero ci metto lo 0
|
||||
if( startnum )
|
||||
num << '0';
|
||||
// Interpreto la virgola come punto
|
||||
num << '.';
|
||||
dec = TRUE;
|
||||
startnum = TRUE;
|
||||
break;
|
||||
default:
|
||||
_errorpos = i;
|
||||
break;
|
||||
}
|
||||
// Controlla la validita`
|
||||
valid = errorchar == ' ';
|
||||
|
||||
if (valid)
|
||||
{
|
||||
// Aggiunge l'ultimo numero preso
|
||||
real lastval( num );
|
||||
_molt_sconto *= ( CENTO + lastval ) / CENTO;
|
||||
goodexp << num; // Assegna la nuova espressione formattata bene
|
||||
}
|
||||
else
|
||||
{
|
||||
if (signal) // Se richiesto segnala l'errore
|
||||
warning_box( "Espressione di sconto non valida. Errore sul carattere %c.", errorchar);
|
||||
_molt_sconto = 1.0; // Azzera la sequenza di percentuali
|
||||
goodexp = "";
|
||||
}
|
||||
}
|
||||
// Controlla la validit`
|
||||
_valid = ( _errorpos < 0 );
|
||||
// Se richiesto segnala l'errore
|
||||
if( !_valid && signal )
|
||||
warning_box( "Espressione di sconto non valida. Errore sul carattere %d.", _errorpos + 1 );
|
||||
if( _valid )
|
||||
{
|
||||
// Aggiunge l'ultimo numero preso
|
||||
real lastval( num );
|
||||
_part = _part * ( CENTO + lastval ) / CENTO;
|
||||
if( lastval >= 0 )
|
||||
goodexp << '+';
|
||||
goodexp << num;
|
||||
// Assegna la nuova espressione formattata bene
|
||||
_sconto = goodexp;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Azzera la sequenza di percentuali
|
||||
_part = 1.0;
|
||||
}
|
||||
_sconto = goodexp;
|
||||
if (_riga && _riga->id2pos(FR_SCONTO) >= 0 && _riga->field(FR_SCONTO).active())
|
||||
_riga->set(FR_SCONTO, _sconto);
|
||||
return valid;
|
||||
}
|
||||
|
||||
real TCond_vendita::sconto_val( )
|
||||
{
|
||||
CHECK(is_valid( ),"Tentativo di usare uno sconto non valido!" );
|
||||
return ( ( _part * CENTO ) - CENTO );
|
||||
void TCond_vendita::set_prezzo(const real & prezzo, const char * val_rif)
|
||||
|
||||
{
|
||||
_prezzo = prezzo;
|
||||
|
||||
if (_prezzo != ZERO)
|
||||
{
|
||||
TString16 valuta(_testa->get(F_CODVAL));
|
||||
TString16 valuta_rif(val_rif);
|
||||
|
||||
if (valuta == "LIT") valuta.cut(0);
|
||||
if (valuta_rif == "LIT") valuta_rif.cut(0);
|
||||
if (valuta != valuta_rif)
|
||||
{
|
||||
if (valuta_rif.not_empty())
|
||||
_prezzo *= _condv.get_real("CAMBIO");
|
||||
|
||||
real cambio(_testa->get(F_CAMBIO));
|
||||
|
||||
if (cambio == ZERO)
|
||||
cambio = 1.0;
|
||||
_prezzo /= cambio;
|
||||
_prezzo.round(cambio == 1.0 ? 0 : 3);
|
||||
}
|
||||
}
|
||||
if (_riga && _riga->id2pos(FR_PREZZO) >= 0 && _riga->field(FR_PREZZO).active())
|
||||
_riga->set(FR_PREZZO, _prezzo);
|
||||
}
|
||||
|
||||
void TCond_vendita::set_provv(const real & provv)
|
||||
|
||||
{
|
||||
_provv = provv;
|
||||
if (_riga && _riga->id2pos(FR_PERCPROV) >= 0 && _riga->field(FR_PERCPROV).active())
|
||||
_riga->set(FR_PERCPROV, _provv);
|
||||
}
|
||||
|
||||
void TCond_vendita::set_iva(const TString & codiva)
|
||||
|
||||
{
|
||||
_codiva = codiva;
|
||||
if (_riga && _riga->id2pos(FR_CODIVA) >= 0 && _riga->field(FR_CODIVA).active())
|
||||
_riga->set(FR_CODIVA, _codiva);
|
||||
}
|
||||
|
||||
bool TCond_vendita::cerca( int tiporicerca )
|
||||
{
|
||||
TString codart = _anamag.get( "CODART" );
|
||||
TString codriga = riga( ).get( FR_CODART );
|
||||
if( codriga != codart )
|
||||
{
|
||||
_anamag.setkey( 1 );
|
||||
_anamag.zero( );
|
||||
_anamag.put( "CODART", codriga );
|
||||
if (_anamag.read( ) != NOERR)
|
||||
_anamag.zero();
|
||||
}
|
||||
if( tiporicerca == A_ANAMAG )
|
||||
// Se ricercavo per anagrafica, ho gi` finito
|
||||
return !_anamag.curr().empty();
|
||||
if( _ditta.get_bool( "GES", "ve", tiporicerca ) )
|
||||
if( config_ditta().get_bool( "GES", "ve", tiporicerca ) )
|
||||
{
|
||||
// Se h attiva la gestione contratti ...
|
||||
_condv.setkey( 1 );
|
||||
_condv.zero( );
|
||||
switch( tiporicerca )
|
||||
{
|
||||
case A_CONTRATTI:
|
||||
_condv.put( "TIPO", "C" );
|
||||
if( _ditta.get_bool( "GESSCONCC", "ve" ) )
|
||||
case A_CONTRATTI:
|
||||
{
|
||||
const TString16 codcont(testa().get(F_CODCONT));
|
||||
|
||||
if (codcont.empty())
|
||||
return FALSE;
|
||||
_condv.put("TIPO", "C");
|
||||
if(config_ditta().get_bool("GESSCONCC", "ve"))
|
||||
{
|
||||
// Se in ditta h abilitata la gestione del cliente in chiave
|
||||
// al contratto, lo carico con gioia
|
||||
_condv.put( "TIPOCF", clifo( ).tipocf( ) );
|
||||
_condv.put( "CODCF", clifo( ).codcf( ) );
|
||||
}
|
||||
_condv.put( "COD", testa( ).get( F_CODCONT ) );
|
||||
break;
|
||||
case A_LISTINI:
|
||||
_condv.put( "TIPO", "L" );
|
||||
if( _ditta.get_bool( "GESLISCV", "ve" ) )
|
||||
_condv.put("TIPOCF", clifo().tipocf());
|
||||
_condv.put("CODCF", clifo().codcf());
|
||||
}
|
||||
else
|
||||
_condv.put("TIPOCF", "C");
|
||||
_condv.put("COD", codcont);
|
||||
}
|
||||
break;
|
||||
case A_LISTINI:
|
||||
{
|
||||
// Se in ditta h abilitata la gestione del cliente in chiave
|
||||
// al contratto, lo carico con gioia
|
||||
_condv.put( "TIPOCF", clifo( ).tipocf( ) );
|
||||
_condv.put( "CODCF", clifo( ).codcf( ) );
|
||||
const TString16 codlist(testa().get(F_CODLIST));
|
||||
|
||||
if (codlist.empty())
|
||||
return FALSE;
|
||||
_condv.put("TIPO", "L");
|
||||
// Se in ditta h abilitata la gestione della categoria di vendita in chiave
|
||||
// al listino, la carico con gioia
|
||||
if( config_ditta().get_bool("GESLISCV", "ve"))
|
||||
_condv.put("CATVEN", testa().get(F_CATVEN));
|
||||
_condv.put("COD", codlist);
|
||||
}
|
||||
_condv.put( "COD", testa( ).get( F_CODLIST ) );
|
||||
break;
|
||||
case A_OFFERTE:
|
||||
_condv.put( "TIPO", "O" );
|
||||
_condv.put( "COD", testa( ).get( F_CODCAMP ) );
|
||||
{
|
||||
const TString16 codcamp(testa().get(F_CODCAMP));
|
||||
|
||||
if (codcamp.empty())
|
||||
return FALSE;
|
||||
_condv.put("TIPO", "O");
|
||||
_condv.put("COD", codcamp);
|
||||
}
|
||||
break;
|
||||
}
|
||||
if( _condv.read( ) == NOERR )
|
||||
{
|
||||
_rcondv.setkey( 2 );
|
||||
_rcondv.zero( );
|
||||
_rcondv.put( "TIPO", _condv.get( "TIPO" ) );
|
||||
_rcondv.put( "CATVEN", _condv.get( "CATVEN" ) );
|
||||
_rcondv.put( "TIPOCF", _condv.get( "TIPOCF" ) );
|
||||
_rcondv.put( "CODCF", _condv.get( "CODCF" ) );
|
||||
_rcondv.put( "TIPO", _condv.get( "TIPO"));
|
||||
_rcondv.put( "CATVEN", _condv.get( "CATVEN"));
|
||||
_rcondv.put( "TIPOCF", _condv.get( "TIPOCF"));
|
||||
_rcondv.put( "CODCF", _condv.get( "CODCF"));
|
||||
_rcondv.put("COD", _condv.get("COD"));
|
||||
if( _condv.get_bool( "GESTUM" ) )
|
||||
_rcondv.put( "UM", riga( ).get( FR_UMQTA ) );
|
||||
if( _condv.get_bool( "GESTSCAGL" ) )
|
||||
_rcondv.put( "QLIM", riga( ).get( FR_QTA ) );
|
||||
_rcondv.put( "UM", riga().get(FR_UMQTA));
|
||||
|
||||
const bool gest_scagl = _condv.get_bool("GESTSCAGL");
|
||||
const TString16 seqricrighe( _condv.get( "SEQRIC" ) );
|
||||
bool found = FALSE;
|
||||
|
||||
if (gest_scagl)
|
||||
_rcondv.put("NSCAGL", 1);
|
||||
|
||||
for( int i = 0; i < seqricrighe.len( ); i ++ )
|
||||
for( int i = 0; !found && i < seqricrighe.len( ); i ++ )
|
||||
{
|
||||
|
||||
char ricerca = seqricrighe[ i ];
|
||||
_rcondv.put( "TIPORIGA", ricerca );
|
||||
switch( ricerca )
|
||||
{
|
||||
case 'A':
|
||||
_rcondv.put( "CODRIGA", codriga);
|
||||
if( _rcondv.read( ) == NOERR ) return TRUE;
|
||||
if( _rcondv.prev() == NOERR && _rcondv.get("TIPORIGA")[0] == 'A')
|
||||
case 'A':
|
||||
{
|
||||
const TString cod_found(_rcondv.get("CODRIGA"));
|
||||
|
||||
return cod_found.compare(codriga, cod_found.len()) == 0;
|
||||
const TString codriga = riga().get(FR_CODART);
|
||||
|
||||
_rcondv.put( "CODRIGA", codriga);
|
||||
if (_rcondv.read() != NOERR &&
|
||||
_rcondv.prev() == NOERR &&
|
||||
_rcondv.get("TIPORIGA")[0] == 'A')
|
||||
{
|
||||
const TString cod_found(_rcondv.get("CODRIGA"));
|
||||
|
||||
return cod_found.compare(codriga, cod_found.len()) == 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'R':
|
||||
_rcondv.put( "CODRIGA", _anamag.get( "RAGGFIS" ) );
|
||||
if( _rcondv.read( ) == NOERR ) return TRUE;
|
||||
_rcondv.put("CODRIGA", anamag().get( "RAGGFIS"));
|
||||
_rcondv.read();
|
||||
break;
|
||||
case 'G':
|
||||
case 'C':
|
||||
{
|
||||
const TRectype rec_to_found(_rcondv.curr());
|
||||
const TRectype rec_to_found(_rcondv.curr());
|
||||
|
||||
_rcondv.put( "CODRIGA", _anamag.get( "GRMERC1" ) );
|
||||
if( _rcondv.read( ) == NOERR ) return TRUE;
|
||||
_rcondv.curr() = rec_to_found;
|
||||
_rcondv.put( "CODRIGA", _anamag.get( "GRMERC2" ) );
|
||||
if( _rcondv.read( ) == NOERR ) return TRUE;
|
||||
_rcondv.curr() = rec_to_found;
|
||||
_rcondv.put( "CODRIGA", _anamag.get( "GRMERC3" ) );
|
||||
if( _rcondv.read( ) == NOERR ) return TRUE;
|
||||
_rcondv.put( "CODRIGA", anamag().get( "GRMERC1" ) );
|
||||
if (_rcondv.read( ) != NOERR )
|
||||
{
|
||||
_rcondv.curr() = rec_to_found;
|
||||
_rcondv.put( "CODRIGA", anamag().get( "GRMERC2" ) );
|
||||
if (_rcondv.read( ) != NOERR )
|
||||
{
|
||||
_rcondv.curr() = rec_to_found;
|
||||
_rcondv.put( "CODRIGA", anamag().get( "GRMERC3" ) );
|
||||
_rcondv.read( );
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'L':
|
||||
{
|
||||
const TRectype rec_to_found(_rcondv.curr());
|
||||
|
||||
_rcondv.put( "CODRIGA", anamag().get("GRMERC1").left(3) );
|
||||
if (_rcondv.read( ) != NOERR )
|
||||
{
|
||||
_rcondv.curr() = rec_to_found;
|
||||
_rcondv.put( "CODRIGA", anamag().get("GRMERC2").left(3) );
|
||||
if (_rcondv.read( ) != NOERR )
|
||||
{
|
||||
_rcondv.curr() = rec_to_found;
|
||||
_rcondv.put( "CODRIGA", anamag().get("GRMERC3").left(3) );
|
||||
_rcondv.read( );
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
error_box("Tipo di ricerca righe %c non valido", ricerca );
|
||||
break;
|
||||
}
|
||||
}
|
||||
found = _rcondv.good();
|
||||
}
|
||||
if (found && gest_scagl)
|
||||
{
|
||||
TRectype rec(_rcondv.curr());
|
||||
int last_scagl = 0;
|
||||
int scagl = _rcondv.get_int("NSCAGL");
|
||||
const real qta(_riga->get_real(FR_QTA));
|
||||
real qta_lim(_rcondv.get_real("QLIM"));
|
||||
|
||||
while (_rcondv.good() && scagl > last_scagl && qta_lim > ZERO && qta > qta_lim)
|
||||
{
|
||||
if (_rcondv.next() == NOERR)
|
||||
{
|
||||
last_scagl = scagl;
|
||||
scagl = _rcondv.get_int("NSCAGL");
|
||||
qta_lim =_rcondv.get_real("QLIM");
|
||||
rec = _rcondv.curr();
|
||||
}
|
||||
}
|
||||
_rcondv.read(rec);
|
||||
}
|
||||
|
||||
return found;
|
||||
}
|
||||
}
|
||||
// Ricerca fallita
|
||||
@ -248,52 +334,223 @@ bool TCond_vendita::cerca( int tiporicerca )
|
||||
}
|
||||
|
||||
// Probabilmente dovrebbe lavorare sulla maschera, ma per ora la lasciamo cosl
|
||||
void TCond_vendita::calcola( )
|
||||
void TCond_vendita::ricerca(bool full_load)
|
||||
{
|
||||
const char gestione = _ditta.get_char( "GESSCORIGA", "ve" );
|
||||
|
||||
set_sconto("");
|
||||
const bool condv_found = cerca(A_CONTRATTI) || cerca(A_OFFERTE) || cerca(A_LISTINI);
|
||||
set_prezzo(condv_found ? _rcondv.get_real( "PREZZO") : ZERO);
|
||||
|
||||
switch( gestione )
|
||||
TString codart = anamag().get( "CODART" );
|
||||
const TString codriga = riga().get( FR_CODART );
|
||||
|
||||
if(anamag().bad() || codriga != codart )
|
||||
{
|
||||
case 'N':
|
||||
// Sconti di riga non gestiti
|
||||
break;
|
||||
case 'L':
|
||||
// Percentuale su contratti/offerte/listini/anagrafica
|
||||
if (condv_found)
|
||||
set_sconto( _rcondv.get( "SCONTO" ) );
|
||||
else
|
||||
if(cerca( A_ANAMAG ))
|
||||
set_sconto( _anamag.get("SCONTO"));
|
||||
break;
|
||||
case 'A':
|
||||
// Posiziono l'anagrafica
|
||||
_sconti.setkey( 1 );
|
||||
_sconti.put( "TIPO", "R" );
|
||||
_sconti.put( "CODART", riga().get(FR_CODART));
|
||||
if( _ditta.get_bool( "GESSCORIGACV", "ve" ) )
|
||||
_sconti.put( "CODCAT", clifo( ).get( LF_CFVEN, "SCONTO" ) );
|
||||
if( _ditta.get_bool( "GESSCORIGAUM", "ve" ) )
|
||||
_sconti.put( "UM", riga( ).get( FR_UMQTA ) );
|
||||
if( _sconti.read( ) == NOERR )
|
||||
set_sconto( _sconti.get("SCONTO") );
|
||||
break;
|
||||
case 'C':
|
||||
set_sconto(clifo( ).get(LF_CFVEN, "SCONTO"));
|
||||
break;
|
||||
default:
|
||||
error_box( FALSE, "Tipo di gestione sconti %c non valido!", gestione );
|
||||
break;
|
||||
anamag().setkey(1);
|
||||
anamag().put("CODART", codriga);
|
||||
if (anamag().read() != NOERR)
|
||||
{
|
||||
if (full_load)
|
||||
{
|
||||
set_prezzo(ZERO);
|
||||
set_sconto("");
|
||||
set_iva("");
|
||||
set_provv(ZERO);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
codart = umart().get( "CODART" );
|
||||
const TString16 umriga(riga().get(FR_UMQTA));
|
||||
const TString16 um(umart().get("UM"));
|
||||
if (umart().bad() || codart != codriga || um != umriga)
|
||||
{
|
||||
umart().setkey(2);
|
||||
umart().put("CODART", codriga);
|
||||
umart().put("UM", um);
|
||||
if (umart().read != NOERR)
|
||||
umart().zero();
|
||||
}
|
||||
|
||||
const bool found_condv = cerca(A_CONTRATTI) || cerca(A_OFFERTE) || cerca(A_LISTINI);
|
||||
|
||||
if (found_condv)
|
||||
set_prezzo(_rcondv.get_real("PREZZO"), _condv.get("CODVAL"));
|
||||
else
|
||||
if (full_load)
|
||||
set_prezzo(umart().get_real("PREZZO"));
|
||||
|
||||
|
||||
if (full_load)
|
||||
{
|
||||
if (_ivarid)
|
||||
set_iva(anamag().get("CODIVAR"));
|
||||
else
|
||||
set_iva(anamag().get("CODIVA"));
|
||||
}
|
||||
|
||||
const char gestione = config_ditta().get_char( "GESSCORIGA", "ve" );
|
||||
|
||||
if (!full_load)
|
||||
{
|
||||
if (gestione == 'L' && found_condv)
|
||||
set_sconto(_rcondv.get("SCONTO"));
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (gestione)
|
||||
{
|
||||
case 'N':
|
||||
// Sconti di riga non gestiti
|
||||
set_sconto("");
|
||||
break;
|
||||
case 'L':
|
||||
// Percentuale su contratti/offerte/listini/anagrafica
|
||||
if (found_condv)
|
||||
set_sconto(_rcondv.get("SCONTO"));
|
||||
else
|
||||
set_sconto(anamag().get("SCONTO"));
|
||||
break;
|
||||
case 'A':
|
||||
{
|
||||
// Posiziono l'anagrafica
|
||||
const char rigakey = config_ditta().get_char( "SCORIGAKEY", "ve" );
|
||||
|
||||
_sconti.setkey(1);
|
||||
_sconti.put("TIPO", "R");
|
||||
if( config_ditta().get_bool("GESSCORIGACV", "ve"))
|
||||
_sconti.put("CODCAT", clifo().get(LF_CFVEN, "CATVEN"));
|
||||
if( config_ditta().get_bool("GESSCORIGAUM", "ve"))
|
||||
_sconti.put("UM", riga().get( FR_UMQTA));
|
||||
_sconti.put("TIPORIGA", rigakey);
|
||||
switch (rigakey)
|
||||
{
|
||||
case 'A':
|
||||
_sconti.put("CODART", codriga);
|
||||
_sconti.read();
|
||||
break;
|
||||
case 'R':
|
||||
_sconti.put("CODART", anamag().get("RAGGFIS"));
|
||||
_sconti.read();
|
||||
break;
|
||||
case 'C':
|
||||
{
|
||||
const TRectype rec_to_found(_sconti.curr());
|
||||
|
||||
_sconti.put( "CODART", anamag().get( "GRMERC1" ) );
|
||||
if (_sconti.read() != NOERR )
|
||||
{
|
||||
_sconti.curr() = rec_to_found;
|
||||
_sconti.put( "CODART", anamag().get( "GRMERC2" ) );
|
||||
if (_sconti.read() != NOERR )
|
||||
{
|
||||
_sconti.curr() = rec_to_found;
|
||||
_sconti.put( "CODART", anamag().get( "GRMERC3" ) );
|
||||
_sconti.read( );
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'L':
|
||||
{
|
||||
const TRectype rec_to_found(_sconti.curr());
|
||||
|
||||
_sconti.put("CODART", anamag().get("GRMERC1").left(3));
|
||||
if (_sconti.read() != NOERR )
|
||||
{
|
||||
_sconti.curr() = rec_to_found;
|
||||
_sconti.put("CODART", anamag().get("GRMERC2").left(3));
|
||||
if (_sconti.read() != NOERR )
|
||||
{
|
||||
_sconti.curr() = rec_to_found;
|
||||
_sconti.put("CODART", anamag().get("GRMERC3").left(3));
|
||||
_sconti.read();
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
error_box("Tipo di chiave righe sconti '%c' non valida!", rigakey);
|
||||
break;
|
||||
}
|
||||
if (_sconti.bad())
|
||||
_sconti.zero();
|
||||
set_sconto(_sconti.get("SCONTO"));
|
||||
}
|
||||
break;
|
||||
case 'C':
|
||||
set_sconto(clifo().get(LF_CFVEN, "SCONTO"));
|
||||
break;
|
||||
default:
|
||||
error_box("Tipo di gestione sconti '%c' non valido!", gestione );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (_riga && _riga->id2pos(FR_PERCPROV) >= 0 && _riga->field(FR_PERCPROV).active())
|
||||
{
|
||||
const TString16 codage(_testa->get(F_CODAG));
|
||||
|
||||
if (codage.not_empty())
|
||||
{
|
||||
TTable age("AGE");
|
||||
|
||||
age.put("CODTAB", codage);
|
||||
if (age.read() == NOERR)
|
||||
{
|
||||
char tipoprovv = age.get("S6")[0];
|
||||
|
||||
if (tipoprovv <= ' ')
|
||||
tipoprovv = config_ditta().get_char( "AGETIPOPERC", "ve" );
|
||||
|
||||
if (!full_load)
|
||||
{
|
||||
if (tipoprovv == 'L' && found_condv)
|
||||
set_provv(_rcondv.get_real("PERCPROVV"));
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (tipoprovv)
|
||||
{
|
||||
case 'A':
|
||||
set_provv(age.get_real("R0"));
|
||||
break;
|
||||
case 'C':
|
||||
set_provv(real(clifo().get(LF_CFVEN, "PERCPROVV")));
|
||||
break;
|
||||
case 'L':
|
||||
if (found_condv)
|
||||
set_provv(_rcondv.get_real("PERCPROVV"));
|
||||
else
|
||||
set_provv(anamag().get_real("PERCPROVV"));
|
||||
break;
|
||||
case 'V':
|
||||
{
|
||||
TString16 catven(testa().get(F_CATVEN));
|
||||
|
||||
if (catven.empty())
|
||||
catven = clifo().get(LF_CFVEN, "CATVEN");
|
||||
|
||||
if (catven.not_empty())
|
||||
{
|
||||
TTable cve("%CVE");
|
||||
|
||||
cve.put("CODART", codage);
|
||||
if (cve.read() == NOERR)
|
||||
set_provv(cve.get_real("R0"));
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
error_box("Tipo di gestione provvigioni '%c' non valido!", tipoprovv );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TCond_vendita::TCond_vendita( TCliFor& clifo, TMask * testa, TMask * riga ) : _condv( LF_CONDV ), _rcondv( LF_RCONDV ), _anamag( LF_ANAMAG ), _sconti( LF_SCONTI ), _ditta( CONFIG_DITTA )
|
||||
TCond_vendita::TCond_vendita(TCliFor& clifo, TConfig * ditta, TMask * testa, TMask * riga,
|
||||
TLocalisamfile * anamag, TLocalisamfile * umart)
|
||||
: _clifo(&clifo), _testa(testa), _riga(riga),
|
||||
_condv( LF_CONDV ), _rcondv( LF_RCONDV ), _sconti( LF_SCONTI ),
|
||||
_anamag(anamag), _umart(umart), _config_ditta(ditta), _ivarid(FALSE)
|
||||
{
|
||||
_clifo = &clifo;
|
||||
_testa = testa;
|
||||
_riga = riga;
|
||||
}
|
||||
|
||||
|
68
ve/sconti.h
68
ve/sconti.h
@ -19,44 +19,54 @@
|
||||
|
||||
class TCond_vendita : public TObject
|
||||
{
|
||||
TString _sconto;
|
||||
TString80 _sconto;
|
||||
TString16 _codiva;
|
||||
bool _ivarid;
|
||||
real _prezzo;
|
||||
bool _valid;
|
||||
int _errorpos;
|
||||
real _part;
|
||||
TCliFor* _clifo;
|
||||
// TRelation _condv;
|
||||
// Invece che la relazione uso i due files, poichè mi interessa sempre
|
||||
// solo una delle righe
|
||||
real _provv;
|
||||
real _molt_sconto;
|
||||
TCliFor * _clifo;
|
||||
TLocalisamfile _condv;
|
||||
TLocalisamfile _rcondv;
|
||||
TLocalisamfile _anamag;
|
||||
TLocalisamfile * _anamag;
|
||||
TLocalisamfile _sconti;
|
||||
TConfig _ditta;
|
||||
TMask* _testa;
|
||||
TMask* _riga;
|
||||
TLocalisamfile * _umart;
|
||||
TConfig * _config_ditta;
|
||||
TMask * _testa;
|
||||
TMask * _riga;
|
||||
|
||||
bool cerca( int tiporicerca );
|
||||
bool cerca(int tiporicerca);
|
||||
|
||||
protected:
|
||||
void set_prezzo(const real & prezzo,const char * val_rif = "");
|
||||
void set_provv(const real & provv);
|
||||
void set_iva(const TString & codiva);
|
||||
|
||||
TCliFor & clifo() const { CHECK(_clifo, "Cliente/fornitore non inizializzato"); return * _clifo; }
|
||||
TConfig & config_ditta() const { CHECK(_clifo, "Configurazione ditta non inizializzata"); return * _config_ditta; }
|
||||
TMask & testa() const { CHECK(_testa, "Maschera testata non inizializzata"); return * _testa; }
|
||||
TMask & riga() const { CHECK(_testa, "Maschera testata non inizializzata"); return * _riga; }
|
||||
TLocalisamfile & anamag() const { CHECK(_anamag, "Anagrafica di magazzino non inizializzata") ; return *_anamag; }
|
||||
TLocalisamfile & umart() const { CHECK(_umart, "Anagrafica di unita' di misura magazzino non inizializzata") ; return *_umart; }
|
||||
|
||||
public:
|
||||
bool set_sconto( const char * exp, bool signal = FALSE );
|
||||
const TString& get_sconto() const { return _sconto; }
|
||||
real sconto_val() const { return _molt_sconto;}
|
||||
real get_prezzo() const { return _prezzo; }
|
||||
real get_provv() const { return _provv; }
|
||||
const TString & get_iva() const { return _codiva; }
|
||||
|
||||
TString& get_sconto( void ) { return _sconto; }
|
||||
void set_sconto( const char * exp, bool signal = FALSE );
|
||||
real get_prezzo() { return _prezzo; }
|
||||
void set_prezzo(const real & prezzo) { _prezzo = prezzo; }
|
||||
bool is_valid( ){ return _valid; }
|
||||
real sconto_val( );
|
||||
const char * sconto_str( int len = 0, int dec = UNDEFINED, char pad = ' ' ){ real p(sconto_val()); return p.stringa( len, dec, pad ); }
|
||||
void set_config( TConfig * ditta){ _config_ditta = ditta; }
|
||||
void set_testa( TMask * testa ){ _testa = testa; }
|
||||
void set_riga( TMask * riga ){ _riga = riga; }
|
||||
void set_anamag(TLocalisamfile & anamag) { _anamag = &anamag; }
|
||||
void set_umart(TLocalisamfile & umart) { _umart = &umart; }
|
||||
void ricerca(bool full_load = TRUE);
|
||||
bool gestum() const { return _condv.get_bool("GESTUM"); }
|
||||
|
||||
TCliFor& clifo( ){ return *_clifo; }
|
||||
void set_testa( TMask& testa ){ _testa = &testa; }
|
||||
TMask& testa( ){ return *_testa; }
|
||||
void set_riga( TMask& riga ){ _riga = &riga; }
|
||||
TMask& riga( ){ return *_riga; }
|
||||
void calcola( );
|
||||
bool gestum() { return _condv.get_bool("GESTUM"); }
|
||||
|
||||
TCond_vendita( TCliFor& clifo, TMask * testa = NULL, TMask * riga = NULL );
|
||||
TCond_vendita(TCliFor & clifo, TConfig * _ditta = NULL, TMask * testa = NULL, TMask * riga = NULL,
|
||||
TLocalisamfile * anamag = NULL, TLocalisamfile * umart = NULL);
|
||||
~TCond_vendita() {}
|
||||
};
|
||||
|
||||
|
@ -137,6 +137,7 @@ void TCliForVendite::update_mask( TMask& m, bool onload )
|
||||
set( m, F_SPESEINC, LF_CFVEN, "ADDSPINC" );
|
||||
set( m, F_ADDBRB, LF_CFVEN, "ADDBOLLIRB" );
|
||||
set( m, F_ADDBTR, LF_CFVEN, "ADDBOLLITR" );
|
||||
set(m, F_CATVEN, LF_CFVEN, "CATVEN");
|
||||
}
|
||||
if ( occasionale ( ) )
|
||||
{
|
||||
@ -168,7 +169,7 @@ void TCliForVendite::update_mask( TMask& m, bool onload )
|
||||
const TString16 newcodval(m.get(F_CODVAL));
|
||||
const TString16 newdatacambio(m.get(F_DATACAMBIO));
|
||||
|
||||
if (newcodval.empty() || newdatacambio.empty())
|
||||
if ((m.id2pos(F_CAMBIO) >= 0) && (newcodval.empty() || newdatacambio.empty()))
|
||||
m.reset(F_CAMBIO);
|
||||
m.check_field(F_CODVAL);
|
||||
if (codval != newcodval || datacambio != newdatacambio)
|
||||
@ -190,6 +191,7 @@ void TCliForVendite::update_mask( TMask& m, bool onload )
|
||||
m.check_field( F_CODVETT1 );
|
||||
m.check_field( F_CODVETT2 );
|
||||
m.check_field( F_CODVETT3 );
|
||||
m.check_field( F_CATVEN );
|
||||
// imposta_dati_comune( m );
|
||||
imposta_indirizzo_spedizione( m );
|
||||
imposta_sconto_testa( m );
|
||||
|
504
ve/ve0100.cpp
504
ve/ve0100.cpp
@ -6,37 +6,39 @@ TMotore_application& app( ) { return ( TMotore_application& ) main_app( ); }
|
||||
|
||||
void TMotore_application::init_query_mode( TMask& m )
|
||||
{
|
||||
_msk->set( F_CODNUM, _codnum);
|
||||
_msk->set( F_CODNUM, _doc->numerazione());
|
||||
_msk->field(F_CODNUM).set_focusdirty(TRUE);
|
||||
_msk->field(F_CODNUM).on_key(K_TAB);
|
||||
_msk->field(F_CODNUM).set_dirty(FALSE);
|
||||
_msk->set( F_PROFILO, _profilo, TRUE);
|
||||
_msk->set( F_TIPODOC, _tipodoc, TRUE);
|
||||
_msk->set( F_TIPODOC, _doc->tipodoc(), TRUE);
|
||||
}
|
||||
|
||||
void TMotore_application::init_insert_mode( TMask& m )
|
||||
{
|
||||
TString tipocf( "A" );
|
||||
tipocf[ 0 ] = app().tipocf();
|
||||
m.reset();
|
||||
m.set(F_PROFILO, _profilo);
|
||||
m.set(F_CODNUM, _codnum);
|
||||
|
||||
const TString16 codnum(m.get(F_CODNUM));
|
||||
const int anno = m.get_int(F_ANNO);
|
||||
const char provv = m.get(F_PROVV)[0];
|
||||
const long numdoc = m.get_long(F_NDOC);
|
||||
|
||||
_doc->read(provv, anno, codnum, numdoc);
|
||||
_doc->head().put("TIPODOC", m.get(F_TIPODOC));
|
||||
|
||||
m.field(F_CODNUM).set_focusdirty(TRUE);
|
||||
m.field(F_CODNUM).on_key(K_TAB);
|
||||
m.set(F_TIPODOC, _tipodoc);
|
||||
m.field(F_TIPODOC).set_focusdirty(TRUE);
|
||||
m.field(F_TIPODOC).on_key(K_TAB);
|
||||
m.set(F_ANNO, _anno);
|
||||
m.set(F_PROVV, _tiponum);
|
||||
m.set(F_NDOC, _numdoc);
|
||||
m.set(F_STATO, _statodoc);
|
||||
m.set(F_STATO, _doc->head().get("STATO"));
|
||||
const TString16 data_doc(m.get( F_DATADOC));
|
||||
|
||||
m.set(F_DATAINSC,data_doc);
|
||||
m.set( F_DATACAMBIO, data_doc);
|
||||
clifo( ).occas_mask( ).reset( );
|
||||
// m.set( F_TIPOCF, tipocf , TRUE);
|
||||
int ndefaults = pro( ).get_int( "NDEFAULTS", "DEFAULT" ); // prof
|
||||
const int ndefaults = pro( ).get_int( "NDEFAULTS", "DEFAULT" ); // prof
|
||||
TMask & emask = edit_mask();
|
||||
|
||||
for( int i = 1; i <= ndefaults; i++ )
|
||||
{
|
||||
TString16 chiave;
|
||||
@ -44,10 +46,24 @@ void TMotore_application::init_insert_mode( TMask& m )
|
||||
TToken_string valore( pro( ).get( chiave, "DEFAULT" ) );
|
||||
int campo( valore.get_int( 0 ) );
|
||||
TString default_val( valore.get( 1 ) );
|
||||
edit_mask( ).set( campo, default_val, TRUE );
|
||||
emask.set( campo, default_val, TRUE );
|
||||
}
|
||||
}
|
||||
|
||||
void TMotore_application::update_profile()
|
||||
{
|
||||
TFilename fn(_doc->tipo().profile_name());
|
||||
|
||||
fn.ext("ini");
|
||||
if (_pro && _pro->name() != fn)
|
||||
{
|
||||
delete _pro;
|
||||
_pro = NULL;
|
||||
}
|
||||
if (_pro == NULL)
|
||||
_pro = new TConfig( fn );
|
||||
}
|
||||
|
||||
int TMotore_application::user_function( int index )
|
||||
{
|
||||
switch( index )
|
||||
@ -88,7 +104,7 @@ TMask *TMotore_application::ss_getmask( int numriga, TMask& fullmask, bool destr
|
||||
r->load(ss, riga);
|
||||
}
|
||||
TAssoc_array & row_masks = app()._row_masks;
|
||||
TMask * row_mask = (TMask *) row_masks.objptr(tipo);
|
||||
TVariable_mask * row_mask = (TVariable_mask *) row_masks.objptr(tipo);
|
||||
if (row_mask == NULL)
|
||||
{
|
||||
row_mask = r->getmask();
|
||||
@ -296,28 +312,6 @@ bool TMotore_application::tip_handler( TMask_field& f, KEY key )
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* bool TMotore_application::ndoc_handler( TMask_field& f, KEY key )
|
||||
{
|
||||
TMask& m = f.mask( );
|
||||
if ( key == K_TAB && m.is_running( ) )
|
||||
{
|
||||
TLocalisamfile& doc = app( ).rel( ).lfile( );
|
||||
doc.zero( );
|
||||
doc.put( "CODNUM", m.get( F_CODNUM ) );
|
||||
doc.put( "PROVV", m.get( F_PROVV ) );
|
||||
doc.put( "ANNO", m.get( F_ANNO ) );
|
||||
doc.put( "NDOC", f.get( ) );
|
||||
if ( doc.read( ) == NOERR )
|
||||
{
|
||||
m.set( F_TIPODOC, doc.get( "TIPODOC" ) );
|
||||
m.send_key(K_TAB, F_TIPODOC);
|
||||
m.set( F_STATO, doc.get( "STATO" ) );
|
||||
m.stop_run( K_AUTO_ENTER );
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
*/
|
||||
|
||||
bool TMotore_application::clifo_handler( TMask_field& f, KEY key )
|
||||
{
|
||||
@ -330,11 +324,6 @@ bool TMotore_application::clifo_handler( TMask_field& f, KEY key )
|
||||
TLocalisamfile& clifo = ((TEdit_field&)f).browse()->cursor()->file();
|
||||
const long codcf = atol(f.get());
|
||||
|
||||
/* clifo.setkey( 1 );
|
||||
clifo.put( "TIPOCF", cf );
|
||||
clifo.put( "CODCF", codcf );
|
||||
if (clifo.read( ) != NOERR)
|
||||
clifo.zero(); */
|
||||
if ( clifo.get_bool("SOSPESO") )
|
||||
return f.error_box( "Il codice '%ld' e' sospeso e non puo' essere utilizzato", codcf );
|
||||
if (app().clifo().load( cf, codcf, ""))
|
||||
@ -425,8 +414,7 @@ void TMotore_application::configura_sheet( TSheet_field& sheet, TConfig& config
|
||||
const int sconto_col = sheet.cid2index(FR_SCONTO);
|
||||
if (to_delete[sconto_col] == FALSE)
|
||||
{
|
||||
TConfig ditta(CONFIG_DITTA);
|
||||
const bool del = (ditta.get("GESSCORIGA") == "N");
|
||||
const bool del = (_config_ditta->get("GESSCORIGA") == "N");
|
||||
|
||||
to_delete.set(sconto_col, del);
|
||||
}
|
||||
@ -439,99 +427,74 @@ void TMotore_application::configura_sheet( TSheet_field& sheet, TConfig& config
|
||||
}
|
||||
}
|
||||
|
||||
void TMotore_application::get_edit_mask( const char * profilo )
|
||||
{
|
||||
TFilename fn( profilo );
|
||||
|
||||
// query_mask( ).enable( DLG_NEWREC );
|
||||
fn.ext( "ini" );
|
||||
if ( _pro )
|
||||
{
|
||||
if ( ( *_proname ) == fn )
|
||||
return;
|
||||
delete _pro;
|
||||
}
|
||||
_pro = new TConfig( fn );
|
||||
_proname = new TFilename( fn );
|
||||
_proname->upper( );
|
||||
TVariable_mask * _msk1 = (TVariable_mask *) _doc_masks.objptr(_tipodoc);
|
||||
const bool newmask = _msk1 == NULL;
|
||||
|
||||
if (newmask)
|
||||
{
|
||||
_msk1 = new TVariable_mask( pro( ).get( "MSKFILE", "MAIN" ) ); // prof
|
||||
_doc_masks.add(_tipodoc, _msk1);
|
||||
}
|
||||
_sheet = &( TSheet_field& )edit_mask( ).field( F_SHEET );
|
||||
sheet( ).set_notify( ss_handler );
|
||||
sheet().set_append(FALSE);
|
||||
TString tipocf( app( ).pro( ).get( "TIPOCF", "MAIN" ) ); //prof
|
||||
app( ).tipocf( tipocf[ 0 ] );
|
||||
if (newmask)
|
||||
{
|
||||
TList_field& listbox = ( TList_field& ) _msk1->field( F_LBTIPORIGA );
|
||||
const int numtr = app( ).pro( ).get_int( "NTIPIRIGA", "RIGHE" ); //prof
|
||||
TTable tabtr( "%TRI" );
|
||||
TToken_string keys( "" ), descrs( "" );
|
||||
for ( int i = 1; i <= numtr; i ++ )
|
||||
{
|
||||
TString chiave;
|
||||
TToken_string item;
|
||||
chiave.format( "%d", i );
|
||||
tabtr.zero( );
|
||||
TString tiporiga( app( ).pro( ).get( chiave, "RIGHE" ) ); // pro
|
||||
tabtr.put( "CODTAB", tiporiga );
|
||||
if ( tabtr.read( ) == NOERR )
|
||||
{
|
||||
keys.add( tabtr.get( "CODTAB" ) );
|
||||
descrs.add( tabtr.get( "S0" ) );
|
||||
}
|
||||
else
|
||||
error_box( "Inserito un tipo di riga non valido ( %s )", ( const char * )tiporiga );
|
||||
}
|
||||
listbox.replace_items( keys, descrs );
|
||||
configura_sheet( *_sheet, *_pro );
|
||||
((TVariable_sheet_field&)sheet()).set_getmask( ss_getmask );
|
||||
if (_msk1->id2pos( F_OCCASEDIT ) > 0 )
|
||||
_msk1->set_handler( F_OCCASEDIT, occas_handler );
|
||||
_msk1->set_handler( F_CODCF, clifo_handler );
|
||||
_msk1->set_handler( F_CODPAG, condpag_hndl );
|
||||
_msk1->set_handler( F_DATAINSC, condpag_hndl );
|
||||
// _msk1->set_handler( 99, elabora_handler );
|
||||
int numhandler = pro( ).get_int( "NHANDLER", "HANDLERS" ); // prof
|
||||
for ( i = 1; i <= numhandler; i ++ )
|
||||
{
|
||||
TString chiave;
|
||||
chiave.format( "%d", i );
|
||||
TToken_string riga = pro( ).get( chiave, "HANDLERS" );
|
||||
user_set_handler( riga.get_int( 0 ), riga.get_int( 1 ) );
|
||||
}
|
||||
}
|
||||
// _msk1->set( F_MEMORIGA, "Riga1" );
|
||||
}
|
||||
|
||||
TMask* TMotore_application::get_mask( int mode )
|
||||
{
|
||||
{
|
||||
switch ( mode )
|
||||
{
|
||||
case MODE_INS:
|
||||
case MODE_MOD:
|
||||
{
|
||||
_profilo = _msk->get( F_PROFILO );
|
||||
_codnum = _msk->get( F_CODNUM );
|
||||
_tipodoc = _msk->get( F_TIPODOC );
|
||||
_anno = _msk->get_int(F_ANNO);
|
||||
_tiponum = _msk->get(F_PROVV);
|
||||
_numdoc = _msk->get_long(F_NDOC);
|
||||
_statodoc = _msk->get_int(F_STATO);
|
||||
get_edit_mask( _profilo );
|
||||
TMask & emask = edit_mask();
|
||||
return( &emask );
|
||||
{
|
||||
const TString16 tipodoc(_msk->get(F_TIPODOC));
|
||||
|
||||
_doc->head().put("TIPODOC", tipodoc);
|
||||
|
||||
TVariable_mask * msk1 = (TVariable_mask *) _doc_masks.objptr(tipodoc);
|
||||
|
||||
update_profile();
|
||||
|
||||
TString tipocf( app( ).pro( ).get( "TIPOCF", "MAIN" ) ); //prof
|
||||
app( ).tipocf( tipocf[ 0 ] );
|
||||
if (msk1 == NULL)
|
||||
{
|
||||
msk1 = new TVariable_mask(_doc->tipo().mask_name()); // prof
|
||||
_doc_masks.add(tipodoc, msk1);
|
||||
_sheet = &( TSheet_field& )msk1->field( F_SHEET );
|
||||
sheet( ).set_notify( ss_handler );
|
||||
sheet().set_append(FALSE);
|
||||
TList_field& listbox = ( TList_field& ) msk1->field( F_LBTIPORIGA );
|
||||
const int numtr = app( ).pro( ).get_int( "NTIPIRIGA", "RIGHE" ); //prof
|
||||
TTable tabtr( "%TRI" );
|
||||
TToken_string keys( "" ), descrs( "" );
|
||||
for ( int i = 1; i <= numtr; i ++ )
|
||||
{
|
||||
TString chiave;
|
||||
TToken_string item;
|
||||
chiave.format( "%d", i );
|
||||
tabtr.zero( );
|
||||
TString tiporiga( app( ).pro( ).get( chiave, "RIGHE" ) ); // pro
|
||||
tabtr.put( "CODTAB", tiporiga );
|
||||
if ( tabtr.read( ) == NOERR )
|
||||
{
|
||||
keys.add( tabtr.get( "CODTAB" ) );
|
||||
descrs.add( tabtr.get( "S0" ) );
|
||||
}
|
||||
else
|
||||
error_box( "Inserito un tipo di riga non valido ( %s )", ( const char * )tiporiga );
|
||||
}
|
||||
listbox.replace_items( keys, descrs );
|
||||
configura_sheet( *_sheet, *_pro );
|
||||
((TVariable_sheet_field&)sheet()).set_getmask( ss_getmask );
|
||||
if (msk1->id2pos( F_OCCASEDIT ) > 0 )
|
||||
msk1->set_handler( F_OCCASEDIT, occas_handler );
|
||||
msk1->set_handler( F_CODCF, clifo_handler );
|
||||
msk1->set_handler( F_CODPAG, condpag_hndl );
|
||||
msk1->set_handler( F_DATAINSC, condpag_hndl );
|
||||
// _msk1->set_handler( 99, elabora_handler );
|
||||
int numhandler = pro( ).get_int( "NHANDLER", "HANDLERS" ); // prof
|
||||
for ( i = 1; i <= numhandler; i ++ )
|
||||
{
|
||||
TString chiave;
|
||||
chiave.format( "%d", i );
|
||||
TToken_string riga = pro( ).get( chiave, "HANDLERS" );
|
||||
user_set_handler( riga.get_int( 0 ), riga.get_int( 1 ) );
|
||||
}
|
||||
}
|
||||
else
|
||||
_sheet = &( TSheet_field& )edit_mask( ).field( F_SHEET );
|
||||
return msk1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
if( _msk == NULL)
|
||||
_msk = new TMask( "ve1000a" );
|
||||
return _msk;
|
||||
break;
|
||||
}
|
||||
@ -555,75 +518,63 @@ const char* TMotore_application::get_next_key( )
|
||||
{
|
||||
TToken_string key;
|
||||
TMask& m = curr_mask( );
|
||||
|
||||
const TString value = m.get( F_CODNUM );
|
||||
if (value.empty())
|
||||
return NULL;
|
||||
TTable tabnum( "NUM" );
|
||||
tabnum.zero( );
|
||||
tabnum.put( "CODTAB", value );
|
||||
if ( tabnum.read( ) == NOERR )
|
||||
|
||||
if (value.not_empty())
|
||||
{
|
||||
// Se per questa numerazione h abilitata le numerazione automatica
|
||||
if ( tabnum.get_bool ( "B1" ) )
|
||||
TTable tabnum( "NUM" );
|
||||
tabnum.zero( );
|
||||
tabnum.put( "CODTAB", value );
|
||||
if ( tabnum.read( ) == NOERR && tabnum.get_bool ( "B1" ))
|
||||
// Se per questa numerazione h abilitata le numerazione automatica
|
||||
{
|
||||
TLocalisamfile doc( LF_DOC );
|
||||
doc.zero( );
|
||||
doc.put( "CODNUM", value );
|
||||
doc.put( "ANNO", m.get( F_ANNO ) );
|
||||
TLocalisamfile doc(LF_DOC);
|
||||
doc.zero();
|
||||
doc.put("CODNUM", value);
|
||||
doc.put("ANNO", m.get(F_ANNO));
|
||||
doc.put("PROVV", m.get(F_PROVV));
|
||||
|
||||
TRectype cmp_rec(doc.curr()); // record campione
|
||||
|
||||
doc.put( "NDOC", 9999999L );
|
||||
// Se per questa numerazione h abilitata le numerazione provvisoria
|
||||
if ( tabnum.get_bool ( "B0" ) )
|
||||
{
|
||||
doc.put( "PROVV", "P" );
|
||||
}
|
||||
else // Altrimenti ...
|
||||
{
|
||||
doc.put( "PROVV", "D" );
|
||||
}
|
||||
if ( doc.read( _isgteq ) == NOERR )
|
||||
{
|
||||
doc.prev( );
|
||||
}
|
||||
long num = ( value == doc.get( "CODNUM" ) ) ? doc.get_long( "NDOC" ) : 0;
|
||||
key.format( "%d|%d", F_NDOC, num + 1 );
|
||||
return key;
|
||||
if (doc.read(_isgteq) == NOERR)
|
||||
doc.prev();
|
||||
|
||||
const long num = ((doc.curr() == cmp_rec) ? doc.get_long( "NDOC" ) : 0) + 1;
|
||||
|
||||
key.format( "%d|%d", F_NDOC, num);
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
return key;
|
||||
}
|
||||
|
||||
int TMotore_application::read( TMask& m )
|
||||
{
|
||||
azzera_piedi( );
|
||||
int err = TRelation_application::read( m );
|
||||
azzera_piedi( );
|
||||
|
||||
TRectype & curr = _rel->lfile().curr();
|
||||
const int err = _doc->read(curr);
|
||||
|
||||
if ( err == NOERR )
|
||||
{
|
||||
const char tipocf = m.get( F_TIPOCF )[ 0 ];
|
||||
clifo( ).load( tipocf, m.get_int( F_CODCF ), rel( ).curr( ).get( "OCFPI" ) );
|
||||
clifo( ).update_mask( ( TVariable_mask& ) m, TRUE );
|
||||
// TLocalisamfile& rdoc = rel( ).lfile( LF_RIGHEDOC );
|
||||
_statodoc = m.get_int(F_STATO);
|
||||
TRectype r(_rdoc->curr( ));
|
||||
r.zero( );
|
||||
/*
|
||||
r.put( "CODNUM", _codnum);
|
||||
r.put( "PROVV", _tiponum);
|
||||
r.put( "ANNO", _anno);
|
||||
r.put( "NDOC", _numdoc);
|
||||
*/
|
||||
r.put( "CODNUM", m.get(F_CODNUM));
|
||||
r.put( "PROVV", m.get(F_PROVV));
|
||||
r.put( "ANNO", m.get(F_ANNO));
|
||||
r.put( "NDOC", m.get(F_NDOC));
|
||||
_righe_rec->read( r );
|
||||
{
|
||||
curr = _doc->head();
|
||||
m.autoload(*_rel);
|
||||
const char tipocf = _doc->head().get("TIPOCF")[0];
|
||||
const long codcf = _doc->head().get_long("CODCF");
|
||||
const TString occas_cod(_doc->head().get("OCFPI"));
|
||||
|
||||
clifo().load( tipocf, codcf, occas_cod);
|
||||
clifo().update_mask( ( TVariable_mask& ) m, TRUE );
|
||||
|
||||
TSheet_field& f = ( TSheet_field& ) m.field( F_SHEET );
|
||||
|
||||
f.destroy( );
|
||||
int last = _righe_rec->last_row( );
|
||||
for ( int i = 1; i <= last; i ++ )
|
||||
const int rows = _doc->rows();
|
||||
for (int i = 1; i <= rows; i++)
|
||||
{
|
||||
TToken_string& srow = f.row( i - 1 );
|
||||
TRectype& rec = _righe_rec->row( i, FALSE );
|
||||
TRectype& rec = (*_doc)[i];
|
||||
|
||||
TRiga currentrow;
|
||||
|
||||
currentrow.load( rec );
|
||||
@ -636,14 +587,6 @@ int TMotore_application::read( TMask& m )
|
||||
return err;
|
||||
}
|
||||
|
||||
bool TMotore_application::check_key( TLocalisamfile& rdoc, TString16 codnum, bool provv, TString16 anno, TString16 ndoc )
|
||||
{
|
||||
return ( ( rdoc.get( "CODNUM" ) == codnum ) &&
|
||||
( rdoc.get( "NDOC" ) == ndoc ) &&
|
||||
( rdoc.get( "ANNO" ) == anno ) &&
|
||||
( rdoc.get_bool( "PROVV" ) == provv ) );
|
||||
}
|
||||
|
||||
int TMotore_application::write( const TMask& m ) // C 90
|
||||
{
|
||||
int err = esegui_procedura(OP_NUOVO);
|
||||
@ -655,32 +598,25 @@ int TMotore_application::write( const TMask& m ) // C 90
|
||||
err = app().clifo().write_occas();
|
||||
if ( err == NOERR )
|
||||
{
|
||||
err = TRelation_application::write( m );
|
||||
if ( err == NOERR )
|
||||
{
|
||||
TSheet_field& f = ss( );
|
||||
_righe_rec->destroy_rows( );
|
||||
((TRectype &)_righe_rec->key()).zero();
|
||||
/*
|
||||
_righe_rec->renum_key("CODNUM", _codnum);
|
||||
_righe_rec->renum_key("PROVV", _tiponum);
|
||||
_righe_rec->renum_key("ANNO", _anno);
|
||||
_righe_rec->renum_key("NDOC", _numdoc);
|
||||
*/
|
||||
_righe_rec->renum_key( "CODNUM", m.get(F_CODNUM));
|
||||
_righe_rec->renum_key( "PROVV", m.get(F_PROVV));
|
||||
_righe_rec->renum_key( "ANNO", m.get(F_ANNO));
|
||||
_righe_rec->renum_key( "NDOC", m.get(F_NDOC));
|
||||
for ( int i = 0; i < f.items( ); i ++ )
|
||||
{
|
||||
TToken_string& t = f.row( i );
|
||||
TRectype& rec = _righe_rec->row( i + 1, TRUE );
|
||||
store_riga( f, i, rec );
|
||||
}
|
||||
err = _righe_rec->write( );
|
||||
}
|
||||
m.autosave(*_rel);
|
||||
_doc->head() = _rel->lfile().curr();
|
||||
TSheet_field& f = ss( );
|
||||
_doc->destroy_rows();
|
||||
for ( int i = 0; i < f.items( ); i ++ )
|
||||
{
|
||||
TToken_string& t = f.row( i );
|
||||
TRectype& rec = _doc->add_row();
|
||||
store_riga( f, i, rec );
|
||||
}
|
||||
err = _doc->write( );
|
||||
}
|
||||
if (err == NOERR)
|
||||
{
|
||||
_rel->curr() = _doc->head();
|
||||
_rel->read(); // per posizionare correttamente la relazione
|
||||
}
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
@ -696,62 +632,30 @@ int TMotore_application::rewrite( const TMask& m ) // C 90
|
||||
err = app( ).clifo( ).write_occas( );
|
||||
if ( err == NOERR )
|
||||
{
|
||||
err = TRelation_application::rewrite( m );
|
||||
if ( err == NOERR )
|
||||
{
|
||||
TSheet_field& f = ss( );
|
||||
_righe_rec->destroy_rows( );
|
||||
for ( int i = 0; i < f.items( ); i ++ )
|
||||
{
|
||||
TToken_string& t = f.row( i );
|
||||
TRectype& rec = _righe_rec->row( i + 1, TRUE );
|
||||
store_riga( f, i, rec );
|
||||
}
|
||||
err = _righe_rec->rewrite( );
|
||||
}
|
||||
m.autosave(*_rel);
|
||||
_doc->head() = _rel->lfile().curr();
|
||||
|
||||
TSheet_field& f = ss( );
|
||||
_doc->destroy_rows( );
|
||||
for ( int i = 0; i < f.items( ); i ++ )
|
||||
{
|
||||
TToken_string& t = f.row( i );
|
||||
TRectype& rec = _doc->add_row();
|
||||
store_riga( f, i, rec );
|
||||
}
|
||||
err = _doc->rewrite( );
|
||||
}
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
// La funzione si trova in ve0100b
|
||||
|
||||
long TMotore_application::prossimo_numero( bool provv )
|
||||
{
|
||||
long ret;
|
||||
TTable tabnum( "NUM" );
|
||||
|
||||
tabnum.read( );
|
||||
if ( provv )
|
||||
ret = tabnum.get_long( "I0" ) + 1;
|
||||
else
|
||||
ret = tabnum.get_long( "I1" ) + 1;
|
||||
return ( ret );
|
||||
}
|
||||
|
||||
int TMotore_application::avanza_numero( bool provv )
|
||||
{
|
||||
TTable tabnum( "NUM" );
|
||||
|
||||
int err = tabnum.read( );
|
||||
if ( err == NOERR )
|
||||
{
|
||||
if ( provv )
|
||||
tabnum.put( "I0", tabnum.get_long( "I0" ) + 1 );
|
||||
else
|
||||
tabnum.put( "I1", tabnum.get_long( "I1" ) + 1 );
|
||||
err = tabnum.rewrite( );
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
bool TMotore_application::remove( void ) // C 80
|
||||
{
|
||||
if ( ! valida_operazione( OP_CANCELLA ) )
|
||||
return FALSE;
|
||||
int err = esegui_procedura(OP_CANCELLA);
|
||||
return TRelation_application::remove() && ( _righe_rec->remove() == NOERR );
|
||||
return _doc->remove() == NOERR;
|
||||
}
|
||||
|
||||
void TMotore_application::load_riga( TSheet_field& f, int numrig, TRectype& r )
|
||||
@ -802,16 +706,38 @@ void TMotore_application::store_riga( TSheet_field& f, int numrig, TRectype& r )
|
||||
TToken_string& rigastr = f.row( numrig );
|
||||
TRiga riga;
|
||||
riga.load(f, rigastr, &r);
|
||||
// riga.set_numero( numrig + 1 );
|
||||
riga.save( r );
|
||||
}
|
||||
|
||||
void TMotore_application::open_files(int logicnum, ...)
|
||||
{
|
||||
va_list marker;
|
||||
va_start(marker, logicnum);
|
||||
while (logicnum > 0)
|
||||
{
|
||||
CHECKD(_file.objptr(logicnum) == NULL, "File gia' aperto: ", logicnum);
|
||||
_file.add(new TLocalisamfile(logicnum), logicnum);
|
||||
logicnum = va_arg(marker, int);
|
||||
}
|
||||
}
|
||||
|
||||
void TMotore_application::on_firm_change()
|
||||
{
|
||||
if (_config_ditta != NULL)
|
||||
delete _config_ditta;
|
||||
_config_ditta = new TConfig(CONFIG_DITTA);
|
||||
condv().set_config(_config_ditta);
|
||||
_doc_masks.destroy();
|
||||
_row_masks.destroy();
|
||||
TApplication::on_firm_change();
|
||||
}
|
||||
|
||||
bool TMotore_application::user_create( )
|
||||
{
|
||||
TConfig ditta( CONFIG_DITTA );
|
||||
|
||||
_config_ditta = new TConfig(CONFIG_DITTA);
|
||||
|
||||
// Controllo se sono cambiate le impostazioni delle vendite.
|
||||
if (ditta.get_bool( "CHANGED", "ve" ))
|
||||
if (_config_ditta->get_bool( "CHANGED", "ve" ))
|
||||
{ // Se sono cambiate, rigenero tutte le maschere
|
||||
if (yesno_box( CHANGE_MESSAGE ) )
|
||||
{
|
||||
@ -825,22 +751,19 @@ bool TMotore_application::user_create( )
|
||||
|
||||
// Metto in relazione testata e righe
|
||||
_rel = new TRelation( LF_DOC );
|
||||
_rdoc = new TLocalisamfile(LF_RIGHEDOC);
|
||||
// rel( ).add( LF_RIGHEDOC,"CODNUM=CODNUM|ANNO=ANNO|PROVV=PROVV|NDOC=NDOC" );
|
||||
|
||||
// Inizializzo il Record_array
|
||||
_righe_rec = new TRecord_array( LF_RIGHEDOC, "NRIGA", 1 );
|
||||
open_files(LF_RIGHEDOC, LF_CONDV, LF_RCONDV, LF_ANAMAG, LF_SCONTI, LF_UMART, 0);
|
||||
_doc = new TDocumento;
|
||||
|
||||
_clifor = new TCliForVendite( );
|
||||
_condv = new TCond_vendita(*_clifor, _config_ditta);
|
||||
|
||||
azzera_piedi( );
|
||||
_msk = new TMask( "ve1000a" );
|
||||
// query_mask( ).set_handler( F_NDOC, ndoc_handler );
|
||||
_msk = new TMask( "ve0100a" );
|
||||
query_mask( ).set_handler( F_CODNUM, num_handler );
|
||||
query_mask( ).set_handler( F_TIPODOC, tip_handler );
|
||||
TConfig utente( CONFIG_USER );
|
||||
_codnum = utente.get( "CODNUM", "ve" );
|
||||
if (!_codnum.blank( ))
|
||||
_tipodoc = utente.get( "TIPODOC", "ve" );
|
||||
_doc->head().put("CODNUM", utente.get("CODNUM"));
|
||||
_doc->head().put("TIPODOC", utente.get("TIPODOC"));
|
||||
// La maschera di inserimento/modifica per ora non la so!
|
||||
// Viene letta dal profilo non appena trovato il record
|
||||
|
||||
@ -851,19 +774,19 @@ bool TMotore_application::user_destroy( )
|
||||
{
|
||||
// Registro l'ultimo tipo documento e l'ultima numerazione
|
||||
TConfig utente( CONFIG_USER );
|
||||
utente.set( "CODNUM", _codnum, "ve" );
|
||||
utente.set( "TIPODOC", _tipodoc, "ve" );
|
||||
utente.set( "CODNUM", _doc->numerazione(), "ve" );
|
||||
utente.set( "TIPODOC", _doc->tipodoc(), "ve" );
|
||||
|
||||
if (_config_ditta != NULL)
|
||||
delete _config_ditta;
|
||||
// Distruggo la maschera di modifica
|
||||
if ( _msk != NULL )
|
||||
delete _msk;
|
||||
|
||||
// Distruggo la relazione
|
||||
delete _doc;
|
||||
delete _rel;
|
||||
delete _rdoc;
|
||||
|
||||
// Distruggo il Record_array
|
||||
delete _righe_rec;
|
||||
delete _condv;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@ -935,26 +858,9 @@ bool TMotore_application::stato_valido( int stato, int operazione )
|
||||
return ( ret.get_pos( p ) != -1 );
|
||||
}
|
||||
|
||||
/*void TMotore_application::setta_stato_corrente( int nuovostato )
|
||||
{
|
||||
// warning_box( "Settaggio stati validi!\nStato corrente %s.\nStati validi %s.\nStato finale %s.", stato_corrente( ), stati_validi( operazione ), stato_finale( operazione ) );
|
||||
TString p;
|
||||
p.format( "%d", nuovostato );
|
||||
|
||||
TLocalisamfile& doc = rel( ).lfile( LF_DOC );
|
||||
|
||||
p[ 0 ] += ( char ) nuovostato;
|
||||
doc.put( "STATO", p );
|
||||
doc.rewrite( );
|
||||
query_mask( ).set( F_STATO, p );
|
||||
// warning_box( "Settaggio stati validi!\nStato corrente %s.\nStati validi %s.\nStato finale %s.", stato_corrente( ), stati_validi( operazione ), stato_finale( operazione ) );
|
||||
} */
|
||||
|
||||
int TMotore_application::stato_corrente( )
|
||||
{
|
||||
// int i = query_mask( ).get_int( F_STATO );
|
||||
// return ( i == 0 ? NO_DOC_STATUS : i );
|
||||
return _statodoc;
|
||||
return _doc->head().get_int("STATO");
|
||||
}
|
||||
|
||||
void TMotore_application::segnala_stato_non_valido( int operazione )
|
||||
|
75
ve/ve0100.h
75
ve/ve0100.h
@ -131,44 +131,41 @@
|
||||
// Definizione della classe dell'applicazione motore
|
||||
class TMotore_application : public TRelation_application
|
||||
{
|
||||
|
||||
TArray _file; // Tutti i fiels da usare
|
||||
// Array di totalizzatori
|
||||
TPiede_documento _piede;
|
||||
|
||||
// Record array per la gestione delle righe
|
||||
TRecord_array* _righe_rec;
|
||||
|
||||
// Puntatore al profilo del documento caricato
|
||||
TConfig* _pro;
|
||||
|
||||
// Puntatore al nome, per evitare di ricrearlo se h uguale
|
||||
TFilename* _proname;
|
||||
|
||||
// Puntatore alla maschera di ricerca
|
||||
TMask* _msk;
|
||||
TDocumento * _doc;
|
||||
|
||||
// Puntatore al profilo del documento caricato
|
||||
TConfig * _pro;
|
||||
TConfig * _config_ditta;
|
||||
|
||||
// Puntatore alla maschera di ricerca
|
||||
TMask * _msk;
|
||||
|
||||
// Puntatore alla maschera di modifica/inserimento ( dipende dal profilo )
|
||||
// TVariable_mask* _msk1;
|
||||
|
||||
// puntatore alla relazione
|
||||
TRelation* _rel;
|
||||
TLocalisamfile * _rdoc;
|
||||
TRelation * _rel;
|
||||
|
||||
// Puntatore allo sheet delle righe documento
|
||||
TSheet_field * _sheet;
|
||||
|
||||
// Oggetto cliente per il motore
|
||||
TCliForVendite* _clifor;
|
||||
TCliForVendite * _clifor;
|
||||
|
||||
TCond_vendita * _condv;
|
||||
|
||||
// Indica se il documento ha come soggetto un <C>liente o un <F>ornitore
|
||||
char _tipocf;
|
||||
|
||||
TString16 _profilo;
|
||||
TString16 _codnum;
|
||||
TString16 _tipodoc;
|
||||
int _anno;
|
||||
TString16 _tiponum;
|
||||
long _numdoc;
|
||||
int _statodoc;
|
||||
// TString16 _profilo;
|
||||
// TString16 _codnum;
|
||||
// TString16 _tipodoc;
|
||||
// int _anno;
|
||||
// TString16 _tiponum;
|
||||
// long _numdoc;
|
||||
// int _statodoc;
|
||||
|
||||
// Array di maschere documento
|
||||
|
||||
@ -201,9 +198,6 @@ class TMotore_application : public TRelation_application
|
||||
|
||||
void user_set_handler( int fieldid, int index, TMask* m = NULL );
|
||||
|
||||
long prossimo_numero( bool provv );
|
||||
int avanza_numero( bool provv );
|
||||
void get_edit_mask( const char * profilo );
|
||||
void azzera_piedi( );
|
||||
void carica_piedi( );
|
||||
void somma_piedi( );
|
||||
@ -214,8 +208,14 @@ class TMotore_application : public TRelation_application
|
||||
|
||||
protected:
|
||||
|
||||
void open_files(int logicnum, ...);
|
||||
void close_files() { _file.destroy(); }
|
||||
virtual void on_firm_change();
|
||||
|
||||
// Procedure e funzioni per la gestione della maschera e dei files
|
||||
void read_rdoc( TMask& m );
|
||||
void read_rdoc( TMask& m );
|
||||
void update_profile();
|
||||
|
||||
|
||||
// formato dipendente dallo sheet ( sono le varie colonne )
|
||||
void load_riga( TSheet_field& f, int numrig, TRectype& r );
|
||||
@ -224,7 +224,6 @@ protected:
|
||||
void save( TRelation* r ) const;
|
||||
void set_descr ( int numrig, const char* descr );
|
||||
void carica_righe_libere( int from = -1 );
|
||||
bool check_key( TLocalisamfile& rdoc, TString16 codnum, bool provv, TString16 _anno, TString16 _ndoc );
|
||||
|
||||
// Procedure e funzioni per la gestione degli stati
|
||||
// void setta_stato_corrente( int nuovostato );
|
||||
@ -262,15 +261,15 @@ public:
|
||||
|
||||
// Funzioni di accesso alle variabili private
|
||||
|
||||
TRecord_array& righe_rec( ) { CHECK( _righe_rec, "Record array delle righe nullo!" ); return * _righe_rec; }
|
||||
TConfig& pro( ) { CHECK( _pro, "Profilo del documento nullo!" ); return *_pro; }
|
||||
TFilename& proname( ) { CHECK( _proname, "Nome del profilo nullo!" ); return *_proname; }
|
||||
TMask& query_mask( ) { CHECK( _msk, "Maschera di ricerca nulla!" ); return *_msk; }
|
||||
TMask& edit_mask( ) { return (TMask &) _doc_masks[_tipodoc]; }
|
||||
TRelation& rel( ) { CHECK( _rel, "Relazione nulla!" ); return *_rel; }
|
||||
TSheet_field& sheet( ) { CHECK( _sheet, "Sheet nullo!" ); return *_sheet; }
|
||||
TCliForVendite& clifo( ) { CHECK( _clifor, "Oggetto cliente nullo!" ); return *_clifor; }
|
||||
TPiede_documento& piede( ){ return _piede; }
|
||||
TConfig & pro() { CHECK( _pro, "Profilo del documento nullo!" ); return *_pro; }
|
||||
const TFilename & proname() { return _pro->name(); }
|
||||
TMask & query_mask() { CHECK( _msk, "Maschera di ricerca nulla!" ); return *_msk; }
|
||||
TMask & edit_mask() { return (TMask &) _doc_masks[_doc->tipodoc()]; }
|
||||
TRelation & rel() { CHECK( _rel, "Relazione nulla!" ); return *_rel; }
|
||||
TSheet_field & sheet() { CHECK( _sheet, "Sheet nullo!" ); return *_sheet; }
|
||||
TCliForVendite & clifo() { CHECK( _clifor, "Oggetto cliente nullo!" ); return *_clifor; }
|
||||
TPiede_documento & piede() { return _piede; }
|
||||
TCond_vendita & condv() { return *_condv; }
|
||||
|
||||
// Operazione
|
||||
|
||||
|
@ -104,17 +104,3 @@ bool condpag_hndl( TMask_field& field, KEY key )
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// handler per la validazione di una stringa/sconto
|
||||
bool sconto_hndl( TMask_field& field, KEY key )
|
||||
{
|
||||
if (field.to_check(key, TRUE))
|
||||
{
|
||||
TCond_vendita s(app().clifo());
|
||||
s.set_sconto( field.get( ), TRUE );
|
||||
const bool ok = s.is_valid();
|
||||
if( ok )
|
||||
field.set( s.get_sconto( ) );
|
||||
return ok;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
@ -117,7 +117,7 @@ BOOLEAN 111
|
||||
BEGIN
|
||||
PROMPT 2 2 "Gestione archivio campagne"
|
||||
MESSAGE TRUE ENABLE,3@
|
||||
MESSAGE FALSE DISABLE,3@
|
||||
MESSAGE FALSE DISABLE,3@
|
||||
FIELD GES[A_CAMPAGNE]
|
||||
END
|
||||
|
||||
@ -189,7 +189,7 @@ END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Tab. gestione sconti " 1 1 60 14
|
||||
PAGE "Tab. gestione sconti " 1 1 60 14
|
||||
|
||||
GROUPBOX DLG_NULL 78 10
|
||||
BEGIN
|
||||
@ -204,7 +204,7 @@ ITEM "P|Percentuale su anagrafica "
|
||||
ITEM "T|Gestione tabella sconti "
|
||||
ITEM "A|Gestione archivio sconti "
|
||||
FIELD GESSCO
|
||||
END
|
||||
END
|
||||
|
||||
BOOLEAN 120
|
||||
BEGIN
|
||||
@ -291,7 +291,7 @@ ITEM "L|Codice linea "
|
||||
ITEM "C|Codice linea/categoria "
|
||||
ITEM "R|Codice raggruppamento fiscale "
|
||||
FIELD SCORIGAKEY
|
||||
END
|
||||
END
|
||||
|
||||
BOOLEAN 129
|
||||
BEGIN
|
||||
@ -301,7 +301,7 @@ END
|
||||
|
||||
BOOLEAN 130
|
||||
BEGIN
|
||||
PROMPT 2 13 "Gestione archivio sconti unità di misura "
|
||||
PROMPT 2 13 "Gestione archivio sconti unita' di misura "
|
||||
FIELD GESSCOUM
|
||||
END
|
||||
|
||||
|
@ -8,7 +8,7 @@ BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
@ -37,19 +37,18 @@ FIELD GESSUBAGE
|
||||
GROUP 8
|
||||
END
|
||||
|
||||
LIST F_TIPOPERC 33
|
||||
LIST F_TIPOPERC 25
|
||||
BEGIN
|
||||
FIELD AGETIPOPERC
|
||||
PROMPT 2 3 "Tipo percentuale da proporre "
|
||||
ITEM "V|Tab. categorie vendite agenti "
|
||||
ITEM "A|Tab. agenti "
|
||||
ITEM "C|Archivio clienti "
|
||||
ITEM "L|Archivio listini o contratti "
|
||||
ITEM "P|Provvigioni sulla tabella agenti "
|
||||
ITEM "V|Categoria vendita"
|
||||
ITEM "A|Agenti "
|
||||
ITEM "C|Clienti "
|
||||
ITEM "L|Condizioni di vendita"
|
||||
GROUP 1
|
||||
END
|
||||
END
|
||||
|
||||
BOOLEAN F_GESARCHPROV
|
||||
BOOLEAN F_GESARCHPROV
|
||||
BEGIN
|
||||
PROMPT 2 4 "Gestione archivio provvigioni "
|
||||
FIELD AGEARCPROVV
|
||||
@ -61,28 +60,28 @@ BEGIN
|
||||
PROMPT 2 5 "Chiavi archivio provvigioni "
|
||||
FIELD AGEKEYPROVV[1]
|
||||
GROUP 1
|
||||
END
|
||||
END
|
||||
|
||||
STRING F_ARCHPROV2 4
|
||||
BEGIN
|
||||
PROMPT 2 6 " "
|
||||
FIELD AGEKEYPROVV[2]
|
||||
GROUP 1
|
||||
END
|
||||
END
|
||||
|
||||
STRING F_ARCHPROV3 4
|
||||
BEGIN
|
||||
PROMPT 2 7 " "
|
||||
FIELD AGEKEYPROVV[3]
|
||||
GROUP 1
|
||||
END
|
||||
END
|
||||
|
||||
STRING F_ARCHPROV4 4
|
||||
BEGIN
|
||||
PROMPT 2 8 " "
|
||||
FIELD AGEKEYPROVV[4]
|
||||
GROUP 1
|
||||
END
|
||||
END
|
||||
|
||||
LIST F_TIPOLIQPROV 41
|
||||
BEGIN
|
||||
@ -419,7 +418,7 @@ END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Tabella arrotondamenti " 1 1 60 14
|
||||
PAGE "Tabella arrotondamenti " 1 1 60 14
|
||||
|
||||
GROUPBOX DLG_NULL 78 9
|
||||
BEGIN
|
||||
@ -430,79 +429,79 @@ NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 2 1 "Arrot. prezzi: fino a lire "
|
||||
FIELD ARRLIV[ 1 ]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 42 1 ""
|
||||
FIELD ARRARG[ 1 ]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 29 2 ""
|
||||
FIELD ARRLIV[ 2 ]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 42 2 ""
|
||||
FIELD ARRARG[ 2 ]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 29 3 ""
|
||||
FIELD ARRLIV[ 3 ]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 42 3 ""
|
||||
FIELD ARRARG[ 3 ]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 29 4 ""
|
||||
FIELD ARRLIV[ 4 ]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 42 4 ""
|
||||
FIELD ARRARG[ 4 ]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 29 5 ""
|
||||
FIELD ARRLIV[ 5 ]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 42 5 ""
|
||||
FIELD ARRARG[ 5 ]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 29 6 ""
|
||||
FIELD ARRLIV[ 6 ]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 42 6 ""
|
||||
FIELD ARRARG[ 6 ]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 29 7 "oltre "
|
||||
FIELD ARRARG[ 7 ]
|
||||
END
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
@ -8,7 +8,7 @@ BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
@ -27,50 +27,50 @@ STRING DLG_NULL 3
|
||||
BEGIN
|
||||
PROMPT 2 1 "Codice tabella sconto cliente "
|
||||
FIELD SCOPRCOD
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 30
|
||||
BEGIN
|
||||
PROMPT 2 3 "Descrizione "
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 2 5 "Cod. contabilità "
|
||||
FIELD SCOPRCODCON[1,2]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 29 5 ""
|
||||
PROMPT 29 5 ""
|
||||
FIELD SCOPRCODCON[3,4]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 6
|
||||
BEGIN
|
||||
PROMPT 35 5 ""
|
||||
PROMPT 35 5 ""
|
||||
FIELD SCOPRCODCON[5,10]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 26
|
||||
BEGIN
|
||||
PROMPT 47 5 ""
|
||||
END
|
||||
PROMPT 47 5 ""
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 2 7 "Num. campo piede documento "
|
||||
PROMPT 2 7 "Num. campo piede documento "
|
||||
FIELD SCOPRNPIEDE
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 26
|
||||
BEGIN
|
||||
PROMPT 34 7 ""
|
||||
END
|
||||
PROMPT 34 7 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Tabella gestione sconto ad importo " 1 1 60 14
|
||||
PAGE "Tabella gestione sconto ad importo " 1 1 60 14
|
||||
|
||||
GROUPBOX DLG_NULL 78 9
|
||||
BEGIN
|
||||
@ -81,46 +81,46 @@ STRING DLG_NULL 3
|
||||
BEGIN
|
||||
PROMPT 2 1 "Codice tabella sconto ad importo "
|
||||
FIELD SCOIMCOD
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 30
|
||||
BEGIN
|
||||
PROMPT 2 3 "Descrizione "
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 2 5 "Cod. contabilità "
|
||||
FIELD SCOIMCODCON[1,2]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 29 5 ""
|
||||
PROMPT 29 5 ""
|
||||
FIELD SCOIMCODCON[3,4]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 6
|
||||
BEGIN
|
||||
PROMPT 35 5 ""
|
||||
PROMPT 35 5 ""
|
||||
FIELD SCOIMCODCON[5,10]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 26
|
||||
BEGIN
|
||||
PROMPT 47 5 ""
|
||||
END
|
||||
PROMPT 47 5 ""
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 2 7 "Num. campo piede documento "
|
||||
PROMPT 2 7 "Num. campo piede documento "
|
||||
FIELD SCOIMNPIEDE
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 26
|
||||
BEGIN
|
||||
PROMPT 34 7 ""
|
||||
END
|
||||
PROMPT 34 7 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
356
ve/ve0200d.uml
356
ve/ve0200d.uml
@ -9,14 +9,14 @@ BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Tabella gestione spese d'incasso " 1 1 60 14
|
||||
PAGE "Tabella gestione spese d'incasso " 1 1 60 14
|
||||
|
||||
GROUPBOX DLG_NULL 78 17
|
||||
BEGIN
|
||||
@ -27,127 +27,127 @@ BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 1 "Addebito spese d'incasso "
|
||||
FIELD SPINADD
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 3
|
||||
BEGIN
|
||||
PROMPT 2 2 "Codice tabelle spese "
|
||||
FIELD SPINCODSP
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 30
|
||||
BEGIN
|
||||
PROMPT 2 3 "Descrizione "
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 2 4 "Cod. Iva "
|
||||
FIELD SPINCODIVA
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 26
|
||||
BEGIN
|
||||
PROMPT 29 4 ""
|
||||
END
|
||||
PROMPT 29 4 ""
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 2 5 "Cod. contabilità "
|
||||
PROMPT 2 5 "Cod. contabilita' "
|
||||
FIELD SPINCODCON[ 1,2]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 29 5 ""
|
||||
PROMPT 29 5 ""
|
||||
FIELD SPINCODCON[3,4]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 6
|
||||
BEGIN
|
||||
PROMPT 35 5 ""
|
||||
PROMPT 35 5 ""
|
||||
FIELD SPINCODCON[5,10]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 26
|
||||
BEGIN
|
||||
PROMPT 47 5 ""
|
||||
END
|
||||
PROMPT 47 5 ""
|
||||
END
|
||||
|
||||
BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 6 "Incasso prima rata "
|
||||
FIELD SPININCPR
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 2 7 "Num. campo piede documento "
|
||||
FIELD SPINNPIEDE
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 26
|
||||
BEGIN
|
||||
PROMPT 34 7 ""
|
||||
END
|
||||
PROMPT 34 7 ""
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 2 8 "Importo spese per rimesse dirette "
|
||||
FIELD SPINIMRD
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 2 9 "Importo spese per tratte "
|
||||
FIELD SPINIMTR
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 2 10 "Importo spese per ricevute bancarie "
|
||||
FIELD SPINIMRB
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 2 11 "Importo spese per cessioni "
|
||||
FIELD SPINIMCES
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 2 12 "Importo spese per pagherò "
|
||||
PROMPT 2 12 "Importo spese per paghero' "
|
||||
FIELD SPINIMPAG
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 2 12 "Importo spese per lettere di credito "
|
||||
PROMPT 2 12 "Importo spese per lettere di credito "
|
||||
FIELD SPINIMLET
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 2 13 "Importo spese per tratte accettate "
|
||||
PROMPT 2 13 "Importo spese per tratte accettate "
|
||||
FIELD SPINIMTA
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 2 14 "Importo spese per R.I.D. "
|
||||
PROMPT 2 14 "Importo spese per R.I.D. "
|
||||
FIELD SPINIMRID
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 2 15 "Importo spese per bonifici "
|
||||
PROMPT 2 15 "Importo spese per bonifici "
|
||||
FIELD SPINIMBON
|
||||
END
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Tabella gestione spese d'incasso " 1 1 60 14
|
||||
PAGE "Tabella gestione spese d'incasso " 1 1 60 14
|
||||
|
||||
GROUPBOX DLG_NULL 78 19
|
||||
BEGIN
|
||||
@ -158,185 +158,185 @@ BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 1 "Addebito spese bolli ricevute bancarie "
|
||||
FIELD SPBRBADD
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 3
|
||||
BEGIN
|
||||
PROMPT 2 2 "Codice tabelle spese "
|
||||
FIELD SPBRBCODSP
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 30
|
||||
BEGIN
|
||||
PROMPT 2 3 "Descrizione "
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 2 4 "Cod. Iva "
|
||||
PROMPT 2 4 "Cod. Iva "
|
||||
FIELD SPBRBCODIVA
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 26
|
||||
BEGIN
|
||||
PROMPT 29 4 ""
|
||||
END
|
||||
PROMPT 29 4 ""
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 2 5 "Cod. contabilità "
|
||||
PROMPT 2 5 "Cod. contabilita' "
|
||||
FIELD SPBRBCODCONT[1,2]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 29 5 ""
|
||||
PROMPT 29 5 ""
|
||||
FIELD SPBRBCODCONT[3,4]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 6
|
||||
BEGIN
|
||||
PROMPT 35 5 ""
|
||||
PROMPT 35 5 ""
|
||||
FIELD SPBRBCODCONT[5,10]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 26
|
||||
BEGIN
|
||||
PROMPT 47 5 ""
|
||||
END
|
||||
PROMPT 47 5 ""
|
||||
END
|
||||
|
||||
BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 6 "Incasso prima rata "
|
||||
PROMPT 2 6 "Incasso prima rata "
|
||||
FIELD SPBRBINCPR
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 2 7 "Num. campo piede documento "
|
||||
PROMPT 2 7 "Num. campo piede documento "
|
||||
FIELD SPBRBNPIEDE
|
||||
END
|
||||
|
||||
STRING DLG_NULL 26
|
||||
BEGIN
|
||||
PROMPT 34 7 ""
|
||||
END
|
||||
PROMPT 34 7 ""
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 2 8 "Scaglione "
|
||||
PROMPT 2 8 "Scaglione "
|
||||
FIELD SPBRBSCA[1]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 6
|
||||
BEGIN
|
||||
PROMPT 25 8 "Importo "
|
||||
PROMPT 25 8 "Importo "
|
||||
FIELD SPBRBIMP[1]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 2 9 "Scaglione "
|
||||
PROMPT 2 9 "Scaglione "
|
||||
FIELD SPBRBSCA[2]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 6
|
||||
BEGIN
|
||||
PROMPT 25 9 "Importo "
|
||||
PROMPT 25 9 "Importo "
|
||||
FIELD SPBRBIMP[2]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 2 10 "Scaglione "
|
||||
PROMPT 2 10 "Scaglione "
|
||||
FIELD SPBRBSCA[3]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 6
|
||||
BEGIN
|
||||
PROMPT 25 10 "Importo "
|
||||
PROMPT 25 10 "Importo "
|
||||
FIELD SPBRBIMP[3]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 2 11 "Scaglione "
|
||||
PROMPT 2 11 "Scaglione "
|
||||
FIELD SPBRBSCA[4]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 6
|
||||
BEGIN
|
||||
PROMPT 25 11 "Importo "
|
||||
PROMPT 25 11 "Importo "
|
||||
FIELD SPBRBIMP[4]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 2 12 "Scaglione "
|
||||
PROMPT 2 12 "Scaglione "
|
||||
FIELD SPBRBSCA[5]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 6
|
||||
BEGIN
|
||||
PROMPT 25 12 "Importo "
|
||||
PROMPT 25 12 "Importo "
|
||||
FIELD SPBRBIMP[5]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 2 13 "Scaglione "
|
||||
PROMPT 2 13 "Scaglione "
|
||||
FIELD SPBRBSCA[6]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 6
|
||||
BEGIN
|
||||
PROMPT 25 13 "Importo "
|
||||
PROMPT 25 13 "Importo "
|
||||
FIELD SPBRBIMP[6]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 2 14 "Scaglione "
|
||||
PROMPT 2 14 "Scaglione "
|
||||
FIELD SPBRBSCA[7]
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 6
|
||||
BEGIN
|
||||
PROMPT 25 14 "Importo "
|
||||
PROMPT 25 14 "Importo "
|
||||
FIELD SPBRBIMP[7]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 5
|
||||
BEGIN
|
||||
PROMPT 2 15 "Importo minimo R.B./1000 "
|
||||
FIELD SPBRBIMPMINRB
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 2 16 "Cod. pag. alternativo "
|
||||
PROMPT 2 16 "Cod. pag. alternativo "
|
||||
FIELD SPBRBCODPAGALT
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 30
|
||||
BEGIN
|
||||
PROMPT 36 16 ""
|
||||
END
|
||||
PROMPT 36 16 ""
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 2 17 "Classif. pag. RB a richiesta "
|
||||
PROMPT 2 17 "Classif. pag. RB a richiesta "
|
||||
FIELD SPBRBCLAPAGRB
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 30
|
||||
BEGIN
|
||||
PROMPT 36 17 ""
|
||||
END
|
||||
PROMPT 36 17 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Tabella gestione spese d'incasso " 1 1 60 14
|
||||
PAGE "Tabella gestione spese d'incasso " 1 1 60 14
|
||||
|
||||
GROUPBOX DLG_NULL 78 11
|
||||
BEGIN
|
||||
@ -347,85 +347,85 @@ BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 1 "Addebito bolli fatture esenti "
|
||||
FIELD SPBFEADD
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 3
|
||||
BEGIN
|
||||
PROMPT 2 2 "Codice tabelle spese "
|
||||
FIELD SPBFECODSP
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 30
|
||||
BEGIN
|
||||
PROMPT 2 3 "Descrizione "
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 2 4 "Cod. Iva "
|
||||
PROMPT 2 4 "Cod. Iva "
|
||||
FIELD SPBFECODIVA
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 26
|
||||
BEGIN
|
||||
PROMPT 29 4 ""
|
||||
END
|
||||
PROMPT 29 4 ""
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 2 5 "Cod. contabilità "
|
||||
PROMPT 2 5 "Cod. contabilità "
|
||||
FIELD SPBFECODCONT[1,2]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 29 5 ""
|
||||
PROMPT 29 5 ""
|
||||
FIELD SPBFECODCONT[3,4]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 6
|
||||
BEGIN
|
||||
PROMPT 35 5 ""
|
||||
PROMPT 35 5 ""
|
||||
FIELD SPBFECODCONT[5,10]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 26
|
||||
BEGIN
|
||||
PROMPT 47 5 ""
|
||||
END
|
||||
PROMPT 47 5 ""
|
||||
END
|
||||
|
||||
BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 6 "Incasso prima rata "
|
||||
PROMPT 2 6 "Incasso prima rata "
|
||||
FIELD SPBFEINCPR
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 2 7 "Num. campo piede documento "
|
||||
PROMPT 2 7 "Num. campo piede documento "
|
||||
FIELD SPBFENPIEDE
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 26
|
||||
BEGIN
|
||||
PROMPT 34 7 ""
|
||||
END
|
||||
PROMPT 34 7 ""
|
||||
END
|
||||
|
||||
STRING DLG_NULL 9
|
||||
BEGIN
|
||||
PROMPT 2 8 "Importo minimo fattura "
|
||||
PROMPT 2 8 "Importo minimo fattura "
|
||||
FIELD SPBFEIMPMINFAT
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 6
|
||||
BEGIN
|
||||
PROMPT 2 9 "Importo bollo "
|
||||
PROMPT 2 9 "Importo bollo "
|
||||
FIELD SPBFEIMPBOLLO
|
||||
END
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Tabella gestione bolli tratte Italia " 1 1 60 14
|
||||
PAGE "Tabella gestione bolli tratte Italia " 1 1 60 14
|
||||
|
||||
GROUPBOX DLG_NULL 78 14
|
||||
BEGIN
|
||||
@ -436,113 +436,113 @@ BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 1 "Addebito bolli su tratte Italia "
|
||||
FIELD SPTRADD
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 3
|
||||
BEGIN
|
||||
PROMPT 2 2 "Codice tabelle spese "
|
||||
FIELD SPTRCODSP
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 30
|
||||
BEGIN
|
||||
PROMPT 2 3 "Descrizione "
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 2 4 "Cod. Iva "
|
||||
PROMPT 2 4 "Cod. Iva "
|
||||
FIELD SPTRCODIVA
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 26
|
||||
BEGIN
|
||||
PROMPT 29 4 ""
|
||||
END
|
||||
PROMPT 29 4 ""
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 2 5 "Cod. contabilità "
|
||||
PROMPT 2 5 "Cod. contabilità "
|
||||
FIELD SPTRCODCON[1,2]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 29 5 ""
|
||||
PROMPT 29 5 ""
|
||||
FIELD SPTRCODCON[3,4]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 6
|
||||
BEGIN
|
||||
PROMPT 35 5 ""
|
||||
PROMPT 35 5 ""
|
||||
FIELD SPTRCODCON[5,10]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 26
|
||||
BEGIN
|
||||
PROMPT 47 5 ""
|
||||
END
|
||||
PROMPT 47 5 ""
|
||||
END
|
||||
|
||||
BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 6 "Incasso prima rata "
|
||||
PROMPT 2 6 "Incasso prima rata "
|
||||
FIELD SPTRINCPR
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 2 7 "Num. campo piede documento "
|
||||
PROMPT 2 7 "Num. campo piede documento "
|
||||
FIELD SPTRNPIEDE
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 26
|
||||
BEGIN
|
||||
PROMPT 34 7 ""
|
||||
END
|
||||
PROMPT 34 7 ""
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 5 2
|
||||
BEGIN
|
||||
PROMPT 2 8 "Percentuale spese tratte "
|
||||
PROMPT 2 8 "Percentuale spese tratte "
|
||||
FIELD SPTRPERCSPTR
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 5
|
||||
BEGIN
|
||||
PROMPT 2 9 "Importo minimo bollo "
|
||||
PROMPT 2 9 "Importo minimo bollo "
|
||||
FIELD SPTRIMPMINBOL
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 5
|
||||
BEGIN
|
||||
PROMPT 2 10 "Importo minimo tratte /1000 "
|
||||
PROMPT 2 10 "Importo minimo tratte /1000 "
|
||||
FIELD SPTRIMPMINTR
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 2 11 "Condizione pagam. alternativa "
|
||||
PROMPT 2 11 "Condizione pagam. alternativa "
|
||||
FIELD SPTRCODPAGALT
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 30
|
||||
BEGIN
|
||||
PROMPT 42 11 ""
|
||||
END
|
||||
PROMPT 42 11 ""
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 2 12 "Classif. pagamento TR a richiesta "
|
||||
PROMPT 2 12 "Classif. pagamento TR a richiesta "
|
||||
FIELD SPTRCLASPAG
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 30
|
||||
BEGIN
|
||||
PROMPT 42 12 ""
|
||||
END
|
||||
PROMPT 42 12 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Tabella gestione bolli tratte estero " 1 1 60 14
|
||||
PAGE "Tabella gestione bolli tratte estero " 1 1 60 14
|
||||
|
||||
GROUPBOX DLG_NULL 78 10
|
||||
BEGIN
|
||||
@ -553,75 +553,75 @@ STRING DLG_NULL 3
|
||||
BEGIN
|
||||
PROMPT 2 1 "Codice tabella spesa tratta estera "
|
||||
FIELD SPTECODSP
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 30
|
||||
BEGIN
|
||||
PROMPT 2 2 "Descrizione "
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 2 3 "Cod. Iva "
|
||||
PROMPT 2 3 "Cod. Iva "
|
||||
FIELD SPTECODIVA
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 26
|
||||
BEGIN
|
||||
PROMPT 29 3 ""
|
||||
END
|
||||
PROMPT 29 3 ""
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 2 4 "Cod. contabilità "
|
||||
PROMPT 2 4 "Cod. contabilità "
|
||||
FIELD SPTECODCON[1,2]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 29 4 ""
|
||||
PROMPT 29 4 ""
|
||||
FIELD SPTECODCON[3,4]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 6
|
||||
BEGIN
|
||||
PROMPT 35 4 ""
|
||||
PROMPT 35 4 ""
|
||||
FIELD SPTECODCON[5,10]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 26
|
||||
BEGIN
|
||||
PROMPT 47 4 ""
|
||||
END
|
||||
PROMPT 47 4 ""
|
||||
END
|
||||
|
||||
BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 5 "Incasso prima rata "
|
||||
PROMPT 2 5 "Incasso prima rata "
|
||||
FIELD SPTEINCPR
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 2 6 "Num. campo piede documento "
|
||||
PROMPT 2 6 "Num. campo piede documento "
|
||||
FIELD SPTENPIEDE
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 26
|
||||
BEGIN
|
||||
PROMPT 34 6 ""
|
||||
END
|
||||
PROMPT 34 6 ""
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 5 2
|
||||
BEGIN
|
||||
PROMPT 2 7 "Percentuale spese tratte "
|
||||
PROMPT 2 7 "Percentuale spese tratte "
|
||||
FIELD SPTEPERCSPTR
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 5
|
||||
BEGIN
|
||||
PROMPT 2 8 "Importo minimo bollo "
|
||||
PROMPT 2 8 "Importo minimo bollo "
|
||||
FIELD SPTEIMPMINBOL
|
||||
END
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
122
ve/ve0200e.uml
122
ve/ve0200e.uml
@ -8,14 +8,14 @@ BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Tabella descrizione codice articolo " 1 1 60 14
|
||||
PAGE "Tabella descrizione codice articolo " 1 1 60 14
|
||||
|
||||
GROUPBOX DLG_NULL 78 18
|
||||
BEGIN
|
||||
@ -25,185 +25,185 @@ END
|
||||
TEXT DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 1 "Descr. Cod. "
|
||||
END
|
||||
END
|
||||
|
||||
TEXT DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 14 1 "Descrizione "
|
||||
END
|
||||
END
|
||||
|
||||
TEXT DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 48 1 "Lungh. campi "
|
||||
END
|
||||
END
|
||||
|
||||
TEXT DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 63 1 "Tipo campi "
|
||||
END
|
||||
END
|
||||
|
||||
TEXT DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 2 "Cod. art. "
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 30
|
||||
BEGIN
|
||||
PROMPT 14 2 ""
|
||||
FIELD CODARTDES
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 48 2 ""
|
||||
FIELD CODARTLUN[1]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 52 2 ""
|
||||
FIELD CODARTLUN[2]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 56 2 ""
|
||||
FIELD CODARTLUN[3]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 63 2 ""
|
||||
FIELD CODARTPIC[1]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 67 2 ""
|
||||
FIELD CODARTPIC[2]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 71 2 ""
|
||||
FIELD CODARTPIC[3]
|
||||
END
|
||||
END
|
||||
|
||||
TEXT DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 3 "I° indice "
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 30
|
||||
BEGIN
|
||||
PROMPT 14 3 ""
|
||||
FIELD INDARTDES[1]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 48 3 ""
|
||||
FIELD INDARTLUN[1]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 63 3 ""
|
||||
FIELD INDARTPIC[1]
|
||||
END
|
||||
END
|
||||
|
||||
TEXT DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 4 "II° indice "
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 30
|
||||
BEGIN
|
||||
PROMPT 14 4 ""
|
||||
FIELD INDARTDES[2]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 48 4 ""
|
||||
FIELD INDARTLUN[2]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 2
|
||||
BEGIN
|
||||
PROMPT 63 4 ""
|
||||
FIELD INDARTPIC[2]
|
||||
END
|
||||
END
|
||||
|
||||
BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 6 "Gestione articoli in lingua "
|
||||
PROMPT 2 6 "Gestione articoli in lingua "
|
||||
FIELD ARTGESLIN
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 1
|
||||
BEGIN
|
||||
PROMPT 5 7 "Codice lingua n.1 "
|
||||
PROMPT 5 7 "Codice lingua n.1 "
|
||||
FIELD ARTCODLIN[1]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 1
|
||||
BEGIN
|
||||
PROMPT 5 8 "Codice lingua n.2 "
|
||||
PROMPT 5 8 "Codice lingua n.2 "
|
||||
FIELD ARTCODLIN[2]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 1
|
||||
BEGIN
|
||||
PROMPT 5 9 "Codice lingua n.3 "
|
||||
PROMPT 5 9 "Codice lingua n.3 "
|
||||
FIELD ARTCODLIN[3]
|
||||
END
|
||||
END
|
||||
|
||||
NUMBER DLG_NULL 1
|
||||
BEGIN
|
||||
PROMPT 5 10 "Codice lingua n.4 "
|
||||
PROMPT 5 10 "Codice lingua n.4 "
|
||||
FIELD ARTCODLIN[4]
|
||||
END
|
||||
END
|
||||
|
||||
BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 11 "Gestione più magazzini "
|
||||
PROMPT 2 11 "Gestione più magazzini "
|
||||
FIELD ARTGESMAG
|
||||
END
|
||||
END
|
||||
|
||||
BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 12 "Gestione depositi "
|
||||
PROMPT 2 12 "Gestione depositi "
|
||||
FIELD ARTGESDEP
|
||||
END
|
||||
END
|
||||
|
||||
BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 13 "Gestione commesse "
|
||||
PROMPT 2 13 "Gestione commesse "
|
||||
FIELD ARTGESCOMM
|
||||
END
|
||||
END
|
||||
|
||||
BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 14 "Gestione quantità in decimali "
|
||||
PROMPT 2 14 "Gestione quantita' in decimali "
|
||||
FIELD ARTGESQDEC
|
||||
END
|
||||
END
|
||||
|
||||
BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 15 "Gestione valuta "
|
||||
PROMPT 2 15 "Gestione valuta "
|
||||
FIELD ARTGESVAL
|
||||
END
|
||||
END
|
||||
|
||||
BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 16 "Ripetizione primo indice "
|
||||
PROMPT 2 16 "Ripetizione primo indice "
|
||||
FIELD ARTRIPIND
|
||||
END
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Tabella personalizzazione anagrafico articoli " 1 1 60 14
|
||||
PAGE "Tabella personalizzazione anagrafico articoli " 1 1 60 14
|
||||
|
||||
GROUPBOX DLG_NULL 78 18
|
||||
BEGIN
|
||||
@ -214,7 +214,7 @@ BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 1 "Gestione descrizioni estese "
|
||||
FIELD ARTGESDESCEST
|
||||
END
|
||||
END
|
||||
|
||||
LIST DLG_NULL 35
|
||||
BEGIN
|
||||
@ -229,77 +229,73 @@ BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 3 "Gestione articoli per taglia "
|
||||
FIELD ARTGESTAGLIA
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 10
|
||||
BEGIN
|
||||
PROMPT 2 4 "Descrizione campi chiave "
|
||||
FIELD ARTDESCHI[1]
|
||||
END
|
||||
END
|
||||
|
||||
STRING DLG_NULL 10
|
||||
BEGIN
|
||||
PROMPT 2 5 "Descrizione campi chiave "
|
||||
FIELD ARTDESCHI[2]
|
||||
END
|
||||
END
|
||||
|
||||
BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 6 "Gestione più unità di misura "
|
||||
PROMPT 2 6 "Gestione piu' unita' di misura "
|
||||
FIELD ARTGESUM
|
||||
END
|
||||
END
|
||||
|
||||
BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 7 "Gestione secondo codice iva "
|
||||
FIELD ARTGESCODIVA
|
||||
END
|
||||
END
|
||||
|
||||
BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 8 "Gestione campi peso lordo/netto "
|
||||
FIELD ARTGESPLN
|
||||
END
|
||||
END
|
||||
|
||||
BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 9 "Gestione campo aspetto dei beni "
|
||||
FIELD ARTGESASPBEN
|
||||
END
|
||||
END
|
||||
|
||||
BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 10 "Gestione campo codice gruppo articolo "
|
||||
FIELD ARTGESCODGR
|
||||
END
|
||||
END
|
||||
|
||||
BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 11 "Gestione campo distinta base "
|
||||
FIELD ARTGESDB
|
||||
END
|
||||
END
|
||||
|
||||
BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 12 "Gestione campo categorie vendite "
|
||||
FIELD ARTGESCATVEN
|
||||
END
|
||||
END
|
||||
|
||||
BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 13 "Gestione campo categorie acquisti "
|
||||
FIELD ARTGESCATACQ
|
||||
END
|
||||
END
|
||||
|
||||
BOOLEAN DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 2 14 "Gestione codice fornitore "
|
||||
FIELD ARTGESCODFOR
|
||||
END
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
ENDMASK
|
||||
|
||||
|
||||
|
@ -525,7 +525,7 @@ FLAG=Z
|
||||
USE=%BAN SE CODTAB?="?????"
|
||||
INPUT=CODTAB[1,5] F_CODABIA
|
||||
DISPLAY="Cod. Istit." CODTAB[1,5]~"Cod. Fil." CODTAB[6,10]~"Denominazione@50" S0
|
||||
OUTPUT=F_CODABIA CODTAB[1,5]~F_CODCABA CODTAB[6,10]~F_DESBANAPP S0
|
||||
OUTPUT=F_CODABIA CODTAB[1,5]~F_DESBANAPP S0
|
||||
|
||||
[CODCABA]
|
||||
GROUP=600
|
||||
@ -540,7 +540,7 @@ FLAG=Z
|
||||
USE=%BAN SE CODTAB?="??????????"
|
||||
INPUT=CODTAB[1,5] F_CODABIA~CODTAB[6,10] F_CODCABA
|
||||
DISPLAY=@F_CODABIA
|
||||
OUTPUT=@F_CODABIA
|
||||
OUTPUT=F_CODABIA CODTAB[1,5]~F_CODCABA CODTAB[6,10]~F_DESBANAPP S0
|
||||
|
||||
[DESBANAPP]
|
||||
GROUP=600
|
||||
@ -568,7 +568,7 @@ FLAG=Z
|
||||
USE=@F_CODABIA
|
||||
INPUT=CODTAB[1,5] F_CODABIP
|
||||
DISPLAY="Cod. Istit." CODTAB[1,5]~"Cod. Fil." CODTAB[6,10]~"Denominazione@50" S0
|
||||
OUTPUT=F_CODABIP CODTAB[1,5]~F_CODCABP CODTAB[6,10]~F_DESBANPRE S0
|
||||
OUTPUT=F_CODABIP CODTAB[1,5]~F_DESBANPRE S0
|
||||
|
||||
[CODCABP]
|
||||
GROUP=700
|
||||
@ -583,7 +583,7 @@ FLAG=Z
|
||||
USE=@F_CODCABA
|
||||
INPUT=CODTAB[1,5] F_CODABIP~CODTAB[6,10] F_CODCABP
|
||||
DISPLAY=@F_CODABIP
|
||||
OUTPUT=@F_CODABIP
|
||||
OUTPUT=F_CODABIP CODTAB[1,5]~F_CODCABP CODTAB[6,10]~F_DESBANPRE S0
|
||||
|
||||
[DESBANPRE]
|
||||
GROUP=700
|
||||
@ -903,7 +903,7 @@ TYPE=T_STRINGA
|
||||
PROMPT="Agente "
|
||||
SIZE=5
|
||||
FLAG=U
|
||||
USE=%AGE
|
||||
USE=AGE
|
||||
INPUT=CODTAB F_CODAG
|
||||
DISPLAY="Codice" CODTAB~"Descrizione@50" S0
|
||||
OUTPUT=F_CODAG CODTAB~F_DESAG S0
|
||||
@ -918,7 +918,7 @@ MSKID=F_DESAG
|
||||
TYPE=T_STRINGA
|
||||
PROMPT=""
|
||||
SIZE=50
|
||||
USE=%AGE KEY 2
|
||||
USE=AGE KEY 2
|
||||
INPUT=S0 F_DESAG
|
||||
DISPLAY="Descrizione@50" S0~"Codice" CODTAB
|
||||
OUTPUT=F_CODAG CODTAB~F_DESAG S0
|
||||
@ -934,7 +934,7 @@ TYPE=T_STRINGA
|
||||
PROMPT="Agente da vis. "
|
||||
SIZE=5
|
||||
FLAG=U
|
||||
USE=%AGE
|
||||
USE=AGE
|
||||
INPUT=CODTAB F_CODAGVIS
|
||||
DISPLAY="Codice" CODTAB~"Descrizione@50" S0
|
||||
OUTPUT=F_CODAGVIS CODTAB~F_DESAGVIS S0
|
||||
@ -949,7 +949,7 @@ MSKID=F_DESAGVIS
|
||||
TYPE=T_STRINGA
|
||||
PROMPT=""
|
||||
SIZE=50
|
||||
USE=%AGE KEY 2
|
||||
USE=AGE KEY 2
|
||||
INPUT=S0 F_DESAGVIS
|
||||
DISPLAY="Descrizione@50" S0~"Codice" CODTAB
|
||||
OUTPUT=F_CODAGVIS CODTAB~F_DESAGVIS S0
|
||||
|
@ -461,7 +461,7 @@ BEGIN
|
||||
PROMPT 2 4 "Raggrupp. fiscale "
|
||||
FIELD LF_ANAMAG->RAGGFIS
|
||||
USE %RFA
|
||||
JOIN %ASF ALIAS 200 INTO CODTAB=S8
|
||||
JOIN %ASF ALIAS 200 INTO CODTAB=S8
|
||||
INPUT CODTAB F_RAGGFIS
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Descrizione@40" S0
|
||||
@ -519,7 +519,7 @@ END
|
||||
|
||||
NUMBER F_PROVV 5 2
|
||||
BEGIN
|
||||
FIELD LF_ANAMAG->PROVV
|
||||
FIELD LF_ANAMAG->PERCPROVV
|
||||
PROMPT 2 7 "Provvigione "
|
||||
NUM_EXPR (#F_PROVV>=0)&&(#F_PROVV<=100)
|
||||
WARNING "La percentuale di provvigione deve essere compresa tra 0 e 100"
|
||||
@ -552,4 +552,4 @@ ENDMASK
|
||||
#include "ve2400a.uml"
|
||||
#include "ve2400b.uml"
|
||||
#include "ve2400c.uml"
|
||||
|
||||
|
||||
|
@ -116,17 +116,17 @@ int TDocumento::read(const TRectype& rec)
|
||||
{
|
||||
_head = rec; // Inizializza i campi chiave in ogni caso
|
||||
|
||||
TRectype* key = new TRectype(LF_RIGHEDOC);
|
||||
|
||||
key->put("CODNUM", _head.get("CODNUM"));
|
||||
key->put("ANNO", _head.get("ANNO"));
|
||||
key->put("PROVV", _head.get("PROVV"));
|
||||
key->put("NDOC", _head.get("NDOC"));
|
||||
|
||||
TLocalisamfile doc(LF_DOC);
|
||||
int err = _head.read(doc);
|
||||
|
||||
TRectype* key = new TRectype(LF_RIGHEDOC);
|
||||
key->put("CODNUM", doc.get("CODNUM"));
|
||||
key->put("ANNO", doc.get("ANNO"));
|
||||
key->put("PROVV", doc.get("PROVV"));
|
||||
key->put("NUMDOC", doc.get("NUMDOC"));
|
||||
|
||||
if (err == NOERR)
|
||||
err = _rows.read(key);
|
||||
_rows.read(key);
|
||||
else
|
||||
{
|
||||
_head = rec;
|
||||
@ -146,7 +146,7 @@ int TDocumento::read(char provv, int anno, const char* codnum, long numdoc)
|
||||
rec.put("CODNUM", codnum);
|
||||
rec.put("ANNO", anno);
|
||||
rec.put("PROVV", provv);
|
||||
rec.put("NUMDOC", numdoc);
|
||||
rec.put("NDOC", numdoc);
|
||||
|
||||
return read(rec);
|
||||
}
|
||||
@ -154,28 +154,43 @@ int TDocumento::read(char provv, int anno, const char* codnum, long numdoc)
|
||||
int TDocumento::write(bool re) const
|
||||
{
|
||||
TLocalisamfile doc(LF_DOC);
|
||||
int err = re ? _head.rewrite(doc) : _head.write(doc);
|
||||
if (err != NOERR)
|
||||
err = re ? _head.write(doc) : _head.rewrite(doc);
|
||||
if (err == NOERR)
|
||||
err = _rows.write(re);
|
||||
int err = NOERR;
|
||||
|
||||
if (re)
|
||||
{
|
||||
err = _rows.write(re);
|
||||
if (err == NOERR)
|
||||
{
|
||||
err = _head.rewrite(doc);
|
||||
if (err != NOERR)
|
||||
err = _head.write(doc);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
err = _head.write(doc);
|
||||
if (err != NOERR)
|
||||
err = _head.rewrite(doc);
|
||||
if (err == NOERR)
|
||||
err = _rows.write(re);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
int TDocumento::remove() const
|
||||
{
|
||||
TLocalisamfile doc(LF_DOC);
|
||||
int err = _head.remove(doc);
|
||||
int err = _rows.remove();
|
||||
if (err == NOERR)
|
||||
err = _rows.remove();
|
||||
err = _head.remove(doc);
|
||||
return err;
|
||||
}
|
||||
|
||||
const TTipo_documento& TDocumento::tipo() const
|
||||
{
|
||||
const char* tipodoc = _head.get("TIPODOC");
|
||||
const TString16 tipodoc(_head.get("TIPODOC"));
|
||||
CHECK(*tipodoc, "Tipo documento nullo");
|
||||
TTipo_documento* o = (TTipo_documento*)_tipi.objptr(tipodoc);
|
||||
TTipo_documento * o = (TTipo_documento*)_tipi.objptr(tipodoc);
|
||||
if (o == NULL)
|
||||
{
|
||||
o = new TTipo_documento(tipodoc);
|
||||
|
@ -21,7 +21,7 @@ protected:
|
||||
int read(const char* tipodoc);
|
||||
|
||||
public:
|
||||
TObject* dup() const { return new TTipo_documento(tipodoc()); }
|
||||
TObject* dup() const { return new TTipo_documento(codice()); }
|
||||
|
||||
public:
|
||||
enum TCondizione_uguaglianza
|
||||
@ -69,9 +69,9 @@ public:
|
||||
const TTipo_documento & tipo() const;
|
||||
const TString & tipodoc() { return _head.get("TIPODOC"); }
|
||||
const TDate & data() const { return _head.get_date("DATADOC"); }
|
||||
const TString & numerazione() { return _head.get("CODNUM"); }
|
||||
const TString & numerazione() const { return _head.get("CODNUM"); }
|
||||
int anno() const { return _head.get_int("ANNO"); }
|
||||
char tipo_numerazione() { return _head.get_int("PROVV"); }
|
||||
char tipo_numerazione() const { return _head.get_int("PROVV"); }
|
||||
long numero() const { return _head.get_long("NDOC"); }
|
||||
|
||||
TDocumento ();
|
||||
|
@ -165,6 +165,7 @@ ENDIF
|
||||
IFDEF(FL_CODART)
|
||||
FLAGS FL_CODART
|
||||
ENDIF
|
||||
ADD RUN ve2 -3
|
||||
END
|
||||
ENDIF
|
||||
|
||||
@ -256,6 +257,7 @@ ENDIF
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Codice@20" CODART
|
||||
OUTPUT FR_DESCR DESCR
|
||||
ADD RUN ve2 -3
|
||||
END
|
||||
ENDIF
|
||||
|
||||
|
@ -72,7 +72,6 @@
|
||||
#define F_G2 168
|
||||
#define F_DATAAGG 169 // GESTITO DAL MOTORE
|
||||
#define F_UTENTE 170 // GESTITO DAL MOTORE
|
||||
#define F_PROFILO 171 // GESTITO DAL MOTORE
|
||||
#define F_TIPODOC 172 // GESTITO DAL MOTORE
|
||||
#define F_DESNUM 173 // GESTITO DAL MOTORE
|
||||
#define F_TIPIDOCS 174 // GESTITO DAL MOTORE
|
||||
|
Loading…
x
Reference in New Issue
Block a user