Create le maschere e il programma per la configurazione delle vendite

git-svn-id: svn://10.65.10.50/trunk@1825 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
matteo 1995-09-14 13:59:52 +00:00
parent 416f1d589f
commit 2a2192541b
20 changed files with 5617 additions and 3509 deletions

View File

@ -27,15 +27,6 @@ const TString& TData_picker::get( const TString& table, const TString& codtab, c
return _table->get( field );
};
void TData_picker::set( TMask& m, const int mskfield, const TString& value )
{
if( present( m, mskfield ) )
{
m.set( mskfield, value, TRUE );
m.field( mskfield ).check( );
}
};
const TString& TData_picker::get( const int file, const TString& fieldname )
{
return lfile( file ).get( fieldname );
@ -92,12 +83,14 @@ void TCliFor::load( const char tipocf, const long codcf, const TString& ocfpi )
}
}
void TCliForVendite::update_mask( TMask& m, bool onload )
void TCliForVendite::update_mask( TMask_vendite& m, bool onload )
{
TString16 stato;
// Setta i campi che appartengono al file LF_CLIFO
bool occas = occasionale( );
show( m, F_OCFPI, occas );
show( m, F_OCCASEDIT, occas );
m.show( F_OCFPI, occas );
m.show( F_OCCASEDIT, occas );
// In forse per l'Occasionale, sicuri per il Normale
m.show( F_COFI, !occas );
m.show( F_STATOPAIVA, !occas );
@ -108,8 +101,6 @@ void TCliForVendite::update_mask( TMask& m, bool onload )
set( m, F_CODVAL, LF_CLIFO, "CODVAL" );
set( m, F_CODLIN, LF_CLIFO, "CODLIN" );
set( m, F_CODPAG, LF_CLIFO, "CODPAG" );
// Questo nonb va qua, ma nella read
set( m, F_DATAINSC, m.get( F_DATADOC ) );
set( m, F_CODABIA, LF_CLIFO, "CODABI" );
set( m, F_CODCABA, LF_CLIFO, "CODCAB" );
// Setta i campi che appartengono al file LF_CFVEN
@ -131,19 +122,19 @@ void TCliForVendite::update_mask( TMask& m, bool onload )
}
if ( occasionale ( ) )
{
// set( m, F_COFI, "" );
// set( m, F_PAIVA, "" );
set( m, F_OCFPI, occas_mask( ).get( O_CODICE ) );
set( m, F_RAGSOC, occas_mask( ).get( O_RAGSOC ) );
set( m, F_INDCF, occas_mask( ).get( O_INDIRIZZO ) );
set( m, F_CIVCF, occas_mask( ).get( O_NUMERO ) );
set( m, F_CAPCF, occas_mask( ).get( O_CAP ) );
set( m, F_COMCF, occas_mask( ).get( O_COMUNE ) );
set( m, F_STATOCF, occas_mask( ).get( O_STATO ) );
m.set( F_COFI, "" );
m.set( F_PAIVA, "" );
m.set( F_OCFPI, occas_mask( ).get( O_CODICE ) );
m.set( F_RAGSOC, occas_mask( ).get( O_RAGSOC ) );
m.set( F_INDCF, occas_mask( ).get( O_INDIRIZZO ) );
m.set( F_CIVCF, occas_mask( ).get( O_NUMERO ) );
m.set( F_CAPCF, occas_mask( ).get( O_CAP ) );
m.set( F_COMCF, occas_mask( ).get( O_COMUNE ) );
m.set( F_STATOCF, stato = occas_mask( ).get( O_STATO ) );
}
else
{
set( m, F_COFI, LF_CLIFO, "COMCF" );
set( m, F_COFI, LF_CLIFO, "COFI" );
set( m, F_INDCF, LF_CLIFO, "INDCF" );
set( m, F_CIVCF, LF_CLIFO, "CIVCF" );
set( m, F_STATOPAIVA, LF_CLIFO, "STATOPAIV" );
@ -151,8 +142,22 @@ void TCliForVendite::update_mask( TMask& m, bool onload )
set( m, F_LOCALITACF, LF_CLIFO, "LOCALITACF" );
set( m, F_CAPCF, LF_CLIFO, "CAPCF" );
set( m, F_COMCF, LF_CLIFO, "COMCF" );
set( m, F_STATOCF, LF_CLIFO, "STATOCF" );
stato = get( LF_CLIFO, "STATOCF" );
m.set( F_STATOCF, stato );
}
if ( !stato.blank( ) )
m.set( F_DESSTATOCF, get( "%STA", stato, "S0" ) );
TString16 tmpstr( m.get( F_CODPAG ) );
if( !tmpstr.blank( ) )
{
m.field( F_CODPAG ).on_hit( );
m.field( F_CODPAG ).check( );
}
tmpstr = m.get( F_CODLIN );
if( !tmpstr.blank( ) )
m.field( F_CODLIN ).check( );
imposta_dati_comune( m );
imposta_indirizzo_spedizione( m );
}
void TCliFor::edita_occasionale( )
@ -180,3 +185,81 @@ bool TCliFor::occas_code_handler(TMask_field& f, KEY key)
}
return TRUE;
}
void TCliForVendite::imposta_dati_comune( TMask_vendite& m )
{
TLocalisamfile comuni(LF_COMUNI);
comuni.setkey( 1 );
if( occasionale( ) )
{
comuni.put( "COM", occas_mask( ).get( O_COMUNE ));
comuni.put( "STATO", occas_mask( ).get( O_STATO ) );
}
else
{
comuni.put( "COM", get( LF_CLIFO, "COMCF" ));
comuni.put( "STATO", get( LF_CLIFO, "STATOCF" ) );
}
comuni.read( );
m.set( F_DENCOM, comuni.get( "DENCOM" ) );
m.set( F_PROVCOM, comuni.get( "PROVCOM" ) );
}
void TCliForVendite::imposta_indirizzo_spedizione( TMask_vendite& m )
{
TString16 stato;
if( occasionale( ) )
{
m.set( F_CODINDSP, "" );
m.disable( F_CODINDSP );
m.set( F_RAGSOCSP, occas_mask( ).get( O_RAGSOC ) );
m.set( F_INDSP, occas_mask( ).get( O_INDIRIZZO ) );
m.set( F_CIVSP, occas_mask( ).get( O_NUMERO ) );
// Sugli occasionali non c'è la località
m.set( F_LOCALITASP, "" );
m.set( F_CAPSP, occas_mask( ).get( O_CAP ) );
m.set( F_COMSP, occas_mask( ).get( O_COMUNE ) );
m.set( F_STATOSP, stato = occas_mask( ).get( O_STATO ) );
}
else
{
TString16 codindsp( m.get( F_CODINDSP ) );
if( codindsp.blank( ) )
{
m.set( F_RAGSOCSP, "" );
m.set( F_INDSP, "" );
m.set( F_CIVSP, "" );
m.set( F_LOCALITASP, "" );
m.set( F_CAPSP, "" );
m.set( F_COMSP, "" );
m.set( F_STATOSP, "" );
return;
}
else
{
TLocalisamfile indsped( LF_INDSP );
indsped.setkey( 1 );
indsped.put( "TIPOCF", _tipocf );
indsped.put( "CODCF", _codcf );
indsped.put( "CODIND", atoi( codindsp ) );
if( indsped.read( ) != NOERR )
yesnofatal_box( "Indirizzo di spedizione non trovato!" );
m.set( F_RAGSOCSP, indsped.get( "RAGSOC" ) );
m.set( F_INDSP, indsped.get( "INDIR" ) );
m.set( F_CIVSP, indsped.get( "CIV" ) );
m.set( F_LOCALITASP, indsped.get( "LOCALITA" ) );
m.set( F_CAPSP, indsped.get( "CAP" ) );
m.set( F_COMSP, indsped.get( "COM" ) );
m.set( F_STATOSP, stato = indsped.get( "STATO" ) );
}
}
if ( !stato.blank( ) )
m.set( F_DESSTATOSP, get( "%STA", stato, "S0" ) );
TLocalisamfile comuni(LF_COMUNI);
comuni.setkey( 1 );
comuni.put( "COM", m.get( F_COMSP ) );
comuni.put( "STATO", m.get( F_STATOSP ) );
comuni.read( );
m.set( F_DENCOMSP, comuni.get( "DENCOM" ) );
m.set( F_PROVCOMSP, comuni.get( "PROVCOM" ) );
}

View File

@ -14,8 +14,8 @@
#endif
#ifndef __MASK_H
#include <mask.h>
#ifndef __TMASKVEN_H
#include "tmaskven.h"
#endif
class TData_picker : public TRelation
@ -32,22 +32,21 @@ public:
int get_int( const int file, const TString& fieldname );
long get_long( const int file, const TString& fieldname );
bool get_bool( const int file, const TString& fieldname );
bool present( TMask& m, const int mskfield ){ return ( m.id2pos( mskfield ) >= 0 ); }
void set( TMask& m, const int mskfield, const int file, const TString& filefield ){ set( m, mskfield, get( file, filefield ) ); };
void set( TMask& m, const int mskfield, const TString& value );
void show( TMask& m, const int mskfield, const bool show = TRUE ){ if( present( m, mskfield ) ) m.show( mskfield, show ); };
void hide( TMask& m, const int mskfield ){ show( m, mskfield, FALSE ); };
void set( TMask_vendite& m, const int mskfield, const int file, const TString& filefield ){ m.set( mskfield, get( file, filefield ) ); };
};
class TCliFor : public TData_picker
{
private:
char _tipocf;
long _codcf;
bool _occas;
TMask _occas_mask;
protected:
char _tipocf;
long _codcf;
public:
TCliFor( );
@ -57,14 +56,17 @@ TMask& occas_mask( ){ return _occas_mask; };
static bool occas_code_handler(TMask_field& f, KEY key);
int write_occas( );
void edita_occasionale( );
};
class TCliForVendite : public TCliFor
{
public:
void update_mask( TMask& m, bool onload = FALSE );
void update_mask( TMask_vendite& m, bool onload = FALSE );
void imposta_dati_comune( TMask_vendite& m );
void imposta_indirizzo_spedizione( TMask_vendite& m );
};
#endif

View File

@ -73,7 +73,7 @@ TIPOCF = 2
CODCF = 3
RAGSOC = 2
OCCAS = 0
OCFPI = 0
OCFPI = 1
COFI = 1
STATOPAIV = 1
PAIVA = 1
@ -177,6 +177,7 @@ DESUMPNETTO = 2
DESUMTARA = 2
DESCRMAG1 = 2
DESCRMAG2 = 2
OCCASEDIT = 2
[SHEET]
NCOLS=4
@ -208,6 +209,23 @@ NHANDLER=0
[PROFILOGRUPPO]
=
1000 = 0
2000 = 0
1400 = 0
2400 = 0
1800 = 0
2800 =
1100 = 0
2100 = 0
1500 = 0
2500 = 0
1900 = 0
2900 =
1200 = 0
2200 = 0
29 =
1600 = 0
2600 = 0
101 = 0
100 = 2
200 = 2
@ -215,24 +233,11 @@ NHANDLER=0
400 = 2
500 = 2
600 = 2
1300 = 0
700 = 2
2300 = 0
800 = 2
900 = 2
1000 = 2
1100 = 2
1200 = 2
1300 = 2
1400 = 2
1500 = 2
1600 = 2
1700 = 2
1800 = 2
1900 = 2
2000 = 2
2100 = 2
2200 = 2
2300 = 2
2400 = 2
2500 = 2
2600 = 2
1700 = 0
2700 =

View File

@ -68,6 +68,12 @@
#include "ve1000o.h"
#endif
#ifndef __TMASKVEN_H
#include "tmaskven.h"
#endif
// Numero di colonne presenti sullo sheet totale
#define MAX_COLUMNS 22
@ -96,7 +102,7 @@ class TMotore_application : public TRelation_application
TMask* _msk;
// Puntatore alla maschera di modifica/inserimento ( dipende dal profilo )
TMask* _msk1;
TMask_vendite* _msk1;
// puntatore alla relazione
TRelation* _rel;
@ -116,7 +122,7 @@ class TMotore_application : public TRelation_application
virtual TMask* get_mask(int mode);
virtual bool changing_mask(int mode);
virtual TRelation* get_relation( ) const { return _rel;}
virtual void init_insert_mode( TMask& m );
virtual int read( TMask& m );
virtual bool remove( void );
virtual int write(const TMask& m);
@ -214,6 +220,13 @@ public:
HIDDEN TMotore_application& app( ) { return (TMotore_application&) main_app( ); }
void TMotore_application::init_insert_mode( TMask& m )
{
m.set( F_DATAINSC, m.get( F_DATADOC ) );
m.reset( );
clifo( ).occas_mask( ).reset( );
};
int TMotore_application::user_function( int index )
{
switch( index )
@ -222,7 +235,7 @@ int TMotore_application::user_function( int index )
break;
default:
yesnofatal_box( "Chiamata ad una procedura utente non definita: %d", index );
return FALSE;
return NOERR;
break;
};
return NOERR;
@ -318,6 +331,33 @@ bool TMotore_application::ss_handler( TSheet_field& ss, int r, KEY key )
// Mi calcolo nei piedi temporanei la riga
app().calcola_riga( rdoc.curr( ), TRUE );
}
if ( key == K_TAB ) // Mi posiziono su di una riga nello sheet
{
TRelation rdoc( LF_RIGHEDOC );
TToken_string riga( ss.row( r ) );
rdoc.curr( ).zero( );
rdoc.curr( ).put( "CODNUM", app( ).edit_mask( ).get( F_CODNUM ) );
rdoc.curr( ).put( "ANNO", app( ).edit_mask( ).get( F_ANNO ) );
rdoc.curr( ).put( "PROVV", app( ).edit_mask( ).get( F_PROVV ) );
rdoc.curr( ).put( "NDOC", app( ).edit_mask( ).get( F_NDOC ) );
rdoc.curr( ).put( "NRIGA", riga.get( 1 ) );
rdoc.read( );
app( ).edit_mask( ).field( F_MEMORIGA ).autoload( &rdoc );
}
if ( key == K_TAB ) // Lascio una riga nello sheet
{
TRelation rdoc( LF_RIGHEDOC );
TToken_string riga( ss.row( r ) );
rdoc.curr( ).zero( );
rdoc.curr( ).put( "CODNUM", app( ).edit_mask( ).get( F_CODNUM ) );
rdoc.curr( ).put( "ANNO", app( ).edit_mask( ).get( F_ANNO ) );
rdoc.curr( ).put( "PROVV", app( ).edit_mask( ).get( F_PROVV ) );
rdoc.curr( ).put( "NDOC", app( ).edit_mask( ).get( F_NDOC ) );
rdoc.curr( ).put( "NRIGA", riga.get( 1 ) );
rdoc.read( );
app( ).edit_mask( ).field( F_MEMORIGA ).autosave( &rdoc );
rdoc.write( );
}
if ( key == K_INS ) // Inserimento
{
TMask& m = *app( )._msk1;
@ -406,11 +446,14 @@ bool TMotore_application::num_handler( TMask_field& f, KEY key )
// Copio i tipi di documento validi per la numerazione
const TString tipidocs( tabnum.get("S2") );
m.set(F_TIPIDOCS, tipidocs );
TString16 curtipo( m.get( F_TIPODOC ) );
if( curtipo.blank( ) )
{
// Propone il primo tipo di documento come default
m.set(F_TIPODOC, tipidocs.left( 4 ) );
// m.field( F_TIPODOC ).check( );
m.send_key( K_TAB, F_TIPODOC );
}
// Se per questa numerazione è abilitata le numerazione provvisoria
if ( tabnum.get_bool ( "B0" ) )
{
@ -489,6 +532,8 @@ bool TMotore_application::tip_handler(TMask_field& f, KEY key)
return FALSE;
}
TTable tabtip( "%TIP" );
tabtip.zero( );
tabtip.put( "CODTAB", tipo );
tabtip.read( );
m.set(F_DESTIPODOC, tabtip.get("S0") );
m.set(F_PROFILO, tabtip.get("S4") );
@ -573,7 +618,7 @@ bool TMotore_application::clifo_handler(TMask_field& f, KEY key)
if (f.focusdirty())
{
app().clifo( ).load( cf, atol( f.get( ) ), "" );
app().clifo( ).update_mask( m );
app().clifo( ).update_mask( ( TMask_vendite& ) m );
if ( app( ).clifo( ).occasionale( ) && app( ).clifo( ).occas_mask( ).get(O_CODICE).empty( ) )
m.send_key(K_SPACE, F_OCCASEDIT); // Lancia maschera occasionali
}
@ -664,7 +709,7 @@ void TMotore_application::get_edit_mask( void )
_proname = new TFilename( fn );
_proname->upper( );
if ( _msk1 ) delete _msk1;
_msk1 = new TMask( pro( ).get( "MSKFILE", "MAIN" ) );
_msk1 = new TMask_vendite( pro( ).get( "MSKFILE", "MAIN" ) );
// edit_mask( ).set( F_PROFILO, query_mask( ).get( F_PROFILO ) );
edit_mask( ).set( F_DESNUM, query_mask( ).get( F_DESNUM ) );
_sheet = &(TSheet_field &)edit_mask( ).field(F_SHEET);
@ -704,6 +749,7 @@ void TMotore_application::get_edit_mask( void )
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 )
@ -716,6 +762,8 @@ TMask* TMotore_application::get_mask( int mode )
edit_mask( ).enable( DLG_PRINT, ( mode == MODE_MOD ) );
edit_mask( ).set_handler( F_OCCASEDIT, occas_handler );
edit_mask( ).set_handler( F_CODCF, clifo_handler );
edit_mask( ).set_handler( F_CODPAG, condpag_hndl );
edit_mask( ).set_handler( F_DATAINSC, condpag_hndl );
return ( _msk1 );
break;
default:
@ -783,14 +831,12 @@ const char* TMotore_application::get_next_key( )
int TMotore_application::read(TMask& m)
{
azzera_piedi( );
m.reset( );
clifo( ).occas_mask( ).reset( );
int err = TRelation_application::read( m );
if ( err == NOERR )
{
TString16 tipocf( m.get( F_TIPOCF ) );
clifo( ).load( tipocf[ 0 ], m.get_int( F_CODCF ), rel( ).curr( ).get( "OCFPI" ) );
clifo( ).update_mask( m, TRUE );
clifo( ).update_mask( ( TMask_vendite& ) m, TRUE );
TLocalisamfile& rdoc = rel( ).lfile(LF_RIGHEDOC);
TRectype r = rdoc.curr( );
r.zero( );
@ -831,7 +877,6 @@ int TMotore_application::write(const TMask& m)
{
err = app( ).clifo( ).write_occas( );
}
if ( err == NOERR )
{
err = TRelation_application::write( m );
@ -1007,6 +1052,19 @@ bool TMotore_application::user_create( )
query_mask( ).set_handler( F_NDOC, ndoc_handler );
query_mask( ).set_handler( F_CODNUM, num_handler );
query_mask( ).set_handler( F_TIPODOC, tip_handler );
TConfig utente( CONFIG_USER );
TString16 codnum( utente.get( "CODNUM", "ve") );
if (!codnum.blank( ) )
{
query_mask( ).set( F_CODNUM, codnum );
query_mask( ).set( F_DESNUM, utente.get( "DESNUM", "ve") );
}
TString16 tipodoc( utente.get( "TIPODOC", "ve") );
if (!tipodoc.blank( ) )
{
query_mask( ).set( F_TIPODOC, tipodoc );
query_mask( ).set( F_DESTIPODOC, utente.get( "DESTIPODOC", "ve") );
}
// La maschera di inserimento/modifica per ora non la so!
// Viene letta dal profilo non appena trovato il record
_msk1 = NULL;
@ -1023,6 +1081,12 @@ bool TMotore_application::user_create( )
bool TMotore_application::user_destroy( )
{
// Registro l'ultimo tipo documento e l'ultima numerazione
TConfig utente( CONFIG_USER );
utente.set( "CODNUM", query_mask( ).get( F_CODNUM ), "ve" );
utente.set( "TIPODOC", query_mask( ).get( F_TIPODOC ), "ve" );
utente.set( "DESNUM", query_mask( ).get( F_DESNUM ), "ve" );
utente.set( "DESTIPODOC", query_mask( ).get( F_DESTIPODOC), "ve" );
// Se è ancora allocata, distruggo la maschera di modifica
if ( _msk1 ) delete _msk1;

View File

@ -14,4 +14,5 @@
#define NO_DOC_STATUS -2
#define F_SHEET 500
#define F_MEMORIGA 501
#define BASE_PIEDE 600

View File

@ -31,6 +31,10 @@
#include "ve0100c.h"
#endif
#ifndef __PAGAMENT_H
#include "..\cg\pagament.h"
#endif
bool ora_hndl(TMask_field& field, KEY key)
{
if (key == K_TAB)
@ -93,3 +97,29 @@ bool dummy_hndl(TMask_field& field, KEY key)
warning_box("Al campo %d è arrivato un KEY %d",field.dlg(),key);
return TRUE;
}
bool condpag_hndl(TMask_field& field, KEY key)
{
if (key == K_TAB)
{
if (field.to_check(key))
{
TMask& m = field.mask( );
TString16 condpag( m.get( F_CODPAG ) );
TString16 data( m.get( F_DATAINSC ) );
if ( condpag.blank( ) || data.blank( ) )
return TRUE;
TPagamento pag( condpag, data );
pag.set_total( 100, 10, 10 );
pag.set_rate_auto( );
int numrate = pag.n_rate( );
for( int i = 0; i < numrate; i ++ )
m.set( F_DATASCAD1 + i, pag.data_rata( i ).string( ) );
for( ; i < 5; i ++ )
m.hide( F_DATASCAD1 + i );
}
}
return TRUE;
}

View File

@ -5,3 +5,4 @@
extern bool ora_hndl(TMask_field& field, KEY key);
extern bool codcli_hndl(TMask_field& field, KEY key);
extern bool dummy_hndl(TMask_field& field, KEY key);
extern bool condpag_hndl(TMask_field& field, KEY key);

View File

@ -16,52 +16,100 @@
#include <tabutil.h>
#endif
// #include "ve5.h"
class Conf_vendite_app : public TConfig_application
class TConf_vendite : public TConfig_application
{
private:
bool _changed;
public:
virtual bool preprocess_config (TMask& mask, TConfig& config);
virtual bool postprocess_config_changed (const char* par, const char* var,
const char* oldv, const char* newv);
virtual bool postprocess_config (TMask& mask, TConfig& config);
virtual bool user_create( );
virtual bool user_destroy( );
Conf_vendite_app() : TConfig_application(CONFIG_DITTA) {}
virtual ~Conf_vendite_app() {}
TConf_vendite() : TConfig_application( CONFIG_DITTA ){ }
virtual ~TConf_vendite( ){ }
};
bool Conf_vendite_app::preprocess_config (TMask& mask, TConfig& config)
bool TConf_vendite::preprocess_config (TMask& mask, TConfig& config)
{
disable_menu_item(M_FILE_NEW);
disable_menu_item(M_FILE_REVERT);
return TRUE;
}
bool Conf_vendite_app::postprocess_config(TMask& mask, TConfig& config)
{ TExternal_app *cl;
TTable t("TIP");
t.first();
while( ! t.eof() )
bool TConf_vendite::postprocess_config (TMask& mask, TConfig& config)
{
TString s( "Eseguirò \"vegenmsk " );
s << t.get( "S1" );
s << "\"!";
message_box( s );
s = "vegenmsk ";
s << t.get( "S1" );
cl = new TExternal_app( s );
cl->run( );
delete cl;
t.next();
}
_changed = FALSE;
enable_menu_item(M_FILE_NEW);
enable_menu_item(M_FILE_REVERT);
return TRUE;
}
bool TConf_vendite::postprocess_config_changed (const char* par, const char* var,
const char* oldv, const char* newv)
{
// Notifica al motore che la configurazione è cambiata: occorre rigenerare le maschere
_changed = TRUE;
return TRUE;
}
bool TConf_vendite::user_create( )
{
char msk = argv(2)[0];
// Devo usare un puntatore così deletandolo si registra
TConfig confditta( CONFIG_DITTA );
switch( msk )
{
case 'a':
case 'A':
confditta.set( "EdMask", "ve0200a" "ve" );
break;
case 'b':
case 'B':
confditta.set( "EdMask", "ve0200b" "ve" );
break;
case 'c':
case 'C':
confditta.set( "EdMask", "ve0200c" "ve" );
break;
case 'd':
case 'D':
confditta.set( "EdMask", "ve0200d" "ve" );
break;
case 'e':
case 'E':
confditta.set( "EdMask", "ve0200e" "ve" );
break;
default:
fatal_box( "Sintassi: VE0 -2 [a|b|c|d|e]" );
return FALSE;
break;
}
return TRUE;
}
bool TConf_vendite::user_destroy( )
{
if( _changed )
{
TConfig confditta( CONFIG_DITTA );
confditta.set( "EdMask", "", "ve" );
confditta.set( "CHANGED", "X", "ve" );
}
return TRUE;
}
int ve0200(int argc, char** argv)
{
Conf_vendite_app appc;
TConf_vendite appc;
if( argc < 3 )
fatal_box( "Sintassi: VE0 -2 [a|b|c|d|e]" );
appc.run(argc, argv, "Parametri gestione vendite");
return 0;
}

270
ve/ve0200a.uml Executable file
View File

@ -0,0 +1,270 @@
/* toolbar */
#include "ve0200b.h"
TOOLBAR "" 0 20 0 2
BUTTON DLG_OK 10 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
PAGE "Tabelle di installazione" 1 1 60 14
GROUPBOX DLG_NULL 78 15
BEGIN
PROMPT 0 0 "Gestione listini/contratti/campagne 1/2"
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 2 "Cumula articolo/listino/listino"
FIELD CUMULAALC
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 3 "Gestione archivio listini"
MESSAGE FALSE DISABLE,1@
MESSAGE TRUE ENABLE,1@
FIELD GESLIS
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 4 "Gestione codice categoria vendite+codice listino"
FIELD GESLISCV
GROUP 1
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 5 "Gestione listini per unita di misura"
FIELD GESLISUM
GROUP 1
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 6 "Gestione listino a scaglioni"
FIELD GESLISSCA
GROUP 1
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 7 "Gestione sconti/omaggio articoli"
FIELD GESLISSO
GROUP 1
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 9 "Gestione archivio contratti"
MESSAGE FALSE DISABLE,2@
MESSAGE TRUE ENABLE,2@
FIELD GESCON
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 10 "Gestione codice contratto"
FIELD GESCONCC
GROUP 2
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 11 "Gestione contratti per unita di misura"
FIELD GESCONUM
GROUP 2
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 12 "Gestione contratto a scaglioni"
FIELD GESCONSCA
GROUP 2
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 13 "Gestione sconti/omaggio articoli"
FIELD GESCONSO
GROUP 2
END
ENDPAGE
PAGE "Tabelle di installazione" 1 1 60 14
GROUPBOX DLG_NULL 78 15
BEGIN
PROMPT 0 0 "Gestione listini/contratti/campagne 2/2"
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 2 "Gestione archivio campagne"
MESSAGE TRUE ENABLE,3@
MESSAGE FALSE DISABLE,3@
FIELD GESCAM
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 3 "Gestione campagne per unita di misura"
FIELD GESCAMUM
GROUP 3
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 4 "Gestione campagne a scaglioni"
FIELD GESCAMSCA
GROUP 3
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 5 "Gestione sconti/omaggio articoli"
FIELD GESCAMSO
GROUP 3
END
LIST DLG_NULL 40
BEGIN
PROMPT 2 7 "Sequenza di ricerca righe"
ITEM "A|Codice articolo"
ITEM "L|Codice linea"
ITEM "C|Codice linea/categoria"
ITEM "R|Codice raggruppamento fiscale"
ITEM " | "
FIELD SEQRICRIGHE[ 1 ]
END
LIST DLG_NULL 40
BEGIN
PROMPT 2 8 " "
ITEM "A|Codice articolo"
ITEM "L|Codice linea"
ITEM "C|Codice linea/categoria"
ITEM "R|Codice raggruppamento fiscale"
ITEM " | "
FIELD SEQRICRIGHE[ 2 ]
END
LIST DLG_NULL 40
BEGIN
PROMPT 2 9 " "
ITEM "A|Codice articolo"
ITEM "L|Codice linea"
ITEM "C|Codice linea/categoria"
ITEM "R|Codice raggruppamento fiscale"
ITEM " | "
FIELD SEQRICRIGHE[ 3 ]
END
LIST DLG_NULL 40
BEGIN
PROMPT 2 10 " "
ITEM "A|Codice articolo"
ITEM "L|Codice linea"
ITEM "C|Codice linea/categoria"
ITEM "R|Codice raggruppamento fiscale"
ITEM " | "
FIELD SEQRICRIGHE[ 4 ]
END
ENDPAGE
PAGE "Tabella gestione sconti " 1 1 60 14
GROUPBOX DLG_NULL 78 10
BEGIN
PROMPT 0 0 "Gestione Sconti"
END
LIST DLG_NULL 36
BEGIN
PROMPT 2 1 "Tipo gestione sconti documenti "
ITEM "N|Non gestire"
ITEM "P|Percentuale su anagrafica "
ITEM "T|Gestione tabella sconti "
ITEM "A|Gestione archivio sconti "
FIELD GESSCO
END
LIST DLG_NULL 36
BEGIN
PROMPT 2 2 "Chiave archivio sconti "
ITEM "V|Tab. categorie vendite "
ITEM "C|Tab. sconti clienti "
ITEM "Z|Tab. zone "
ITEM "M|Tab. modalità di pagamento "
FIELD SCOKEY
END
LIST DLG_NULL 36
BEGIN
PROMPT 2 3 "Tipo calcolo sconti documento "
ITEM "R|Sconti sulle righe merci "
ITEM "G|Sconti sul valore globale merci "
FIELD SCOTIPCAL
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 4 "Gestione sconti ad importo "
FIELD GESSCOIMP
END
LIST DLG_NULL 36
BEGIN
PROMPT 2 5 "Tipo gestione sconti riga "
ITEM "N|Non gestire"
ITEM "L|Perc. su anagrafica/listini/contratti "
ITEM "A|Gest. arch. sconti "
ITEM "V|Gest. arch. con cat. vendita cliente "
ITEM "C|Perc. indicata su anagrafica cliente "
FIELD GESSCORIGA
END
LIST DLG_NULL 36
BEGIN
PROMPT 2 6 "Chiave archivio sconti di riga "
ITEM "A|Codice articolo "
ITEM "L|Codice linea "
ITEM "C|Codice linea/categoria "
ITEM "R|Codice raggruppamento fiscale "
FIELD
SCORIGAKEY
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 7 "Gestione archivio sconti a scaglioni "
GESSCOSCA
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 8 "Gestione archivio sconti unità di misura "
GESSCOUM
END
ENDPAGE
ENDMASK

12
ve/ve0200b.h Executable file
View File

@ -0,0 +1,12 @@
#define F_TIPOPERC 101
#define F_GESARCHPROV 102
#define F_ARCHPROV1 103
#define F_ARCHPROV2 104
#define F_ARCHPROV3 105
#define F_ARCHPROV4 106
#define F_TIPOLIQPROV 107
#define F_GESVAL 108
#define F_GESLIN 109
#define F_GESSOSPIMP 110
#define F_GESOCCAS 111
#define F_GESOCCHK 112

509
ve/ve0200b.uml Executable file
View File

@ -0,0 +1,509 @@
/* toolbar */
#include "ve0200b.h"
TOOLBAR "" 0 20 0 2
BUTTON DLG_OK 10 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
PAGE "Tabelle di installazione" 1 1 60 14
GROUPBOX DLG_NULL 78 10
BEGIN
PROMPT 0 0 "Gestione degli agenti"
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 1 "Gestione agenti "
MESSAGE FALSE DISABLE,8@
MESSAGE TRUE ENABLE,8@
FIELD GESAGE
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 2 "Gestione subagenti "
FIELD GESSUBAGE
GROUP 8
END
LIST F_TIPOPERC 33
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 "
GROUP 1
END
BOOLEAN F_GESARCHPROV
BEGIN
PROMPT 2 4 "Gestione archivio provvigioni "
FIELD AGEARCPROVV
GROUP 1
END
STRING F_ARCHPROV1 4
BEGIN
PROMPT 2 5 "Chiavi archivio provvigioni "
FIELD AGEKEYPROVV[1]
GROUP 1
END
STRING F_ARCHPROV2 4
BEGIN
PROMPT 2 6 " "
FIELD AGEKEYPROVV[2]
GROUP 1
END
STRING F_ARCHPROV3 4
BEGIN
PROMPT 2 7 " "
FIELD AGEKEYPROVV[3]
GROUP 1
END
STRING F_ARCHPROV4 4
BEGIN
PROMPT 2 8 " "
FIELD AGEKEYPROVV[4]
GROUP 1
END
LIST F_TIPOLIQPROV 41
BEGIN
PROMPT 2 9 "Tipo liquidazione provvigione "
ITEM "F|Liquidate sul valore del fatturato "
ITEM "M|Liq. sul valore fatt. e sul valore merce "
FIELD AGELIQPROVV
GROUP 1
END
ENDPAGE
PAGE "Tabelle di installazione" 1 1 60 14
GROUPBOX DLG_NULL 78 10
BEGIN
PROMPT 0 0 "Gestione dati generali"
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 2 "Gestione documenti in valuta"
MESSAGE TRUE ENABLE,@7
MESSAGE FALSE DISABLE,@7
FIELD GESVAL
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 3 "Gestione archivio cambi "
FIELD GESVALAC
END
BOOLEAN F_GESLIN
BEGIN
PROMPT 2 4 "Gestione documenti in lingua"
FIELD GESLIN
END
BOOLEAN F_GESSOSPIMP
BEGIN
PROMPT 2 6 "Gestione documenti in sospensione di imposta"
FIELD GESSOSPIMP
END
BOOLEAN F_GESOCCAS
BEGIN
PROMPT 2 8 "Gestione archivio clienti occasionali"
FIELD GESOCCAS
MESSAGE FALSE DISABLE,F_GESOCCHK
END
BOOLEAN F_GESOCCHK
BEGIN
PROMPT 2 10 "Controllo p.iva/cod.fiscale cliente occasionale"
FIELD GESOCCCHK
END
ENDPAGE
PAGE "Tabelle di installazione" 1 1 60 2
GROUPBOX DLG_NULL 78 16
BEGIN
PROMPT 0 0 "Etichette totalizzatori piede documento 1/4"
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 2 " 1:"
FIELD PIEDE[ 1]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 3 " 2:"
FIELD PIEDE[ 2]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 4 " 3:"
FIELD PIEDE[ 3]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 5 " 4:"
FIELD PIEDE[ 4]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 6 " 5:"
FIELD PIEDE[ 5]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 7 " 6:"
FIELD PIEDE[ 6]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 8 " 7:"
FIELD PIEDE[ 7]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 9 " 8:"
FIELD PIEDE[ 8]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 10 " 9:"
FIELD PIEDE[ 9]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 11 "10:"
FIELD PIEDE[10]
END
ENDPAGE
PAGE "Tabelle di installazione" 1 1 60 2
GROUPBOX DLG_NULL 78 16
BEGIN
PROMPT 0 0 "Etichette totalizzatori piede documento 2/4"
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 2 "11:"
FIELD PIEDE[11]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 3 "12:"
FIELD PIEDE[12]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 4 "13:"
FIELD PIEDE[13]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 5 "14:"
FIELD PIEDE[14]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 6 "15:"
FIELD PIEDE[15]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 7 "16:"
FIELD PIEDE[16]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 8 "17:"
FIELD PIEDE[17]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 9 "18:"
FIELD PIEDE[18]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 10 "19:"
FIELD PIEDE[19]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 11 "20:"
FIELD PIEDE[20]
END
ENDPAGE
PAGE "Tabelle di installazione" 1 1 60 2
GROUPBOX DLG_NULL 78 16
BEGIN
PROMPT 0 0 "Etichette totalizzatori piede documento 3/4"
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 2 "21:"
FIELD PIEDE[21]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 3 "22:"
FIELD PIEDE[22]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 4 "23:"
FIELD PIEDE[23]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 5 "24:"
FIELD PIEDE[24]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 6 "25:"
FIELD PIEDE[25]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 7 "26:"
FIELD PIEDE[26]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 8 "27:"
FIELD PIEDE[27]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 9 "28:"
FIELD PIEDE[28]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 10 "29:"
FIELD PIEDE[29]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 11 "30:"
FIELD PIEDE[30]
END
ENDPAGE
PAGE "Tabelle di installazione" 1 1 60 2
GROUPBOX DLG_NULL 78 16
BEGIN
PROMPT 0 0 "Etichette totalizzatori piede documento 4/4"
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 2 "31:"
FIELD PIEDE[31]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 3 "32:"
FIELD PIEDE[32]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 4 "33:"
FIELD PIEDE[33]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 5 "34:"
FIELD PIEDE[34]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 6 "35:"
FIELD PIEDE[35]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 7 "36:"
FIELD PIEDE[36]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 8 "37:"
FIELD PIEDE[37]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 9 "38:"
FIELD PIEDE[38]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 10 "39:"
FIELD PIEDE[39]
END
STRING DLG_NULL 40
BEGIN
PROMPT 2 11 "40:"
FIELD PIEDE[40]
END
ENDPAGE
PAGE "Tabella arrotondamenti " 1 1 60 14
GROUPBOX DLG_NULL 78 9
BEGIN
PROMPT 0 0 "Dati anagrafici ditta "
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 2 1 "Arrot. prezzi: fino a lire "
FIELD ARRLIV[ 1 ]
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 42 1 ""
FIELD ARRARG[ 1 ]
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 29 2 ""
FIELD ARRLIV[ 2 ]
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 42 2 ""
FIELD ARRARG[ 2 ]
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 29 3 ""
FIELD ARRLIV[ 3 ]
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 42 3 ""
FIELD ARRARG[ 3 ]
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 29 4 ""
FIELD ARRLIV[ 4 ]
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 42 4 ""
FIELD ARRARG[ 4 ]
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 29 5 ""
FIELD ARRLIV[ 5 ]
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 42 5 ""
FIELD ARRARG[ 5 ]
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 29 6 ""
FIELD ARRLIV[ 6 ]
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 42 6 ""
FIELD ARRARG[ 6 ]
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 29 7 "oltre "
FIELD ARRARG[ 7 ]
END
ENDPAGE
ENDMASK

130
ve/ve0200c.uml Executable file
View File

@ -0,0 +1,130 @@
/* toolbar */
#include "ve0200b.h"
TOOLBAR "" 0 20 0 2
BUTTON DLG_OK 10 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
PAGE "Tabella gestione sconto a percentuale " 1 1 60 14
GROUPBOX DLG_NULL 78 9
BEGIN
PROMPT 0 0 "Gestione spese/sconti "
END
STRING DLG_NULL 3
BEGIN
PROMPT 2 1 "Codice tabella sconto cliente "
FIELD SCOPRCOD
END
STRING DLG_NULL 30
BEGIN
PROMPT 2 3 "Descrizione "
END
STRING DLG_NULL 2
BEGIN
PROMPT 2 5 "Cod. contabilità "
FIELD SCOPRCODCON[1,2]
END
STRING DLG_NULL 2
BEGIN
PROMPT 29 5 ""
FIELD SCOPRCODCON[3,4]
END
STRING DLG_NULL 6
BEGIN
PROMPT 35 5 ""
FIELD SCOPRCODCON[5,10]
END
STRING DLG_NULL 26
BEGIN
PROMPT 47 5 ""
END
STRING DLG_NULL 2
BEGIN
PROMPT 2 7 "Num. campo piede documento "
FIELD SCOPRNPIEDE
END
STRING DLG_NULL 26
BEGIN
PROMPT 34 7 ""
END
ENDPAGE
PAGE "Tabella gestione sconto ad importo " 1 1 60 14
GROUPBOX DLG_NULL 78 9
BEGIN
PROMPT 0 0 "Gestione sconto ad importo "
END
STRING DLG_NULL 3
BEGIN
PROMPT 2 1 "Codice tabella sconto ad importo "
FIELD SCOIMCOD
END
STRING DLG_NULL 30
BEGIN
PROMPT 2 3 "Descrizione "
END
STRING DLG_NULL 2
BEGIN
PROMPT 2 5 "Cod. contabilità "
FIELD SCOIMCODCON[1,2]
END
STRING DLG_NULL 2
BEGIN
PROMPT 29 5 ""
FIELD SCOIMCODCON[3,4]
END
STRING DLG_NULL 6
BEGIN
PROMPT 35 5 ""
FIELD SCOIMCODCON[5,10]
END
STRING DLG_NULL 26
BEGIN
PROMPT 47 5 ""
END
STRING DLG_NULL 2
BEGIN
PROMPT 2 7 "Num. campo piede documento "
FIELD SCOIMNPIEDE
END
STRING DLG_NULL 26
BEGIN
PROMPT 34 7 ""
END
ENDPAGE
ENDMASK

630
ve/ve0200d.uml Executable file
View File

@ -0,0 +1,630 @@
/* toolbar */
#include "ve0200b.h"
TOOLBAR "" 0 20 0 2
BUTTON DLG_OK 10 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
PAGE "Tabella gestione spese d'incasso " 1 1 60 14
GROUPBOX DLG_NULL 78 17
BEGIN
PROMPT 0 0 "Gestione spese d'incasso"
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 1 "Addebito spese d'incasso "
FIELD SPINADD
END
STRING DLG_NULL 3
BEGIN
PROMPT 2 2 "Codice tabelle spese "
FIELD SPINCODSP
END
STRING DLG_NULL 30
BEGIN
PROMPT 2 3 "Descrizione "
END
STRING DLG_NULL 2
BEGIN
PROMPT 2 4 "Cod. Iva "
FIELD SPINCODIVA
END
STRING DLG_NULL 26
BEGIN
PROMPT 29 4 ""
END
STRING DLG_NULL 2
BEGIN
PROMPT 2 5 "Cod. contabilità "
FIELD SPINCODCON[ 1,2]
END
STRING DLG_NULL 2
BEGIN
PROMPT 29 5 ""
FIELD SPINCODCON[3,4]
END
STRING DLG_NULL 6
BEGIN
PROMPT 35 5 ""
FIELD SPINCODCON[5,10]
END
STRING DLG_NULL 26
BEGIN
PROMPT 47 5 ""
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 6 "Incasso prima rata "
FIELD SPININCPR
END
STRING DLG_NULL 2
BEGIN
PROMPT 2 7 "Num. campo piede documento "
FIELD SPINNPIEDE
END
STRING DLG_NULL 26
BEGIN
PROMPT 34 7 ""
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 2 8 "Importo spese per rimesse dirette "
FIELD SPINIMRD
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 2 9 "Importo spese per tratte "
FIELD SPINIMTR
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 2 10 "Importo spese per ricevute bancarie "
FIELD SPINIMRB
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 2 11 "Importo spese per cessioni "
FIELD SPINIMCES
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 2 12 "Importo spese per pagherò "
FIELD SPINIMPAG
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 2 12 "Importo spese per lettere di credito "
FIELD SPINIMLET
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 2 13 "Importo spese per tratte accettate "
FIELD SPINIMTA
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 2 14 "Importo spese per R.I.D. "
FIELD SPINIMRID
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 2 15 "Importo spese per bonifici "
FIELD SPINIMBON
END
ENDPAGE
PAGE "Tabella gestione spese d'incasso " 1 1 60 14
GROUPBOX DLG_NULL 78 19
BEGIN
PROMPT 0 0 "Gestione spese bolli ricevute bancarie"
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 1 "Addebito spese bolli ricevute bancarie "
FIELD SPBRBADD
END
STRING DLG_NULL 3
BEGIN
PROMPT 2 2 "Codice tabelle spese "
FIELD SPBRBCODSP
END
STRING DLG_NULL 30
BEGIN
PROMPT 2 3 "Descrizione "
END
STRING DLG_NULL 2
BEGIN
PROMPT 2 4 "Cod. Iva "
FIELD SPBRBCODIVA
END
STRING DLG_NULL 26
BEGIN
PROMPT 29 4 ""
END
STRING DLG_NULL 2
BEGIN
PROMPT 2 5 "Cod. contabilità "
FIELD SPBRBCODCONT[1,2]
END
STRING DLG_NULL 2
BEGIN
PROMPT 29 5 ""
FIELD SPBRBCODCONT[3,4]
END
STRING DLG_NULL 6
BEGIN
PROMPT 35 5 ""
FIELD SPBRBCODCONT[5,10]
END
STRING DLG_NULL 26
BEGIN
PROMPT 47 5 ""
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 6 "Incasso prima rata "
FIELD SPBRBINCPR
END
STRING DLG_NULL 2
BEGIN
PROMPT 2 7 "Num. campo piede documento "
FIELD SPBRBNPIEDE
END
STRING DLG_NULL 26
BEGIN
PROMPT 34 7 ""
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 2 8 "Scaglione "
FIELD SPBRBSCA[1]
END
NUMBER DLG_NULL 6
BEGIN
PROMPT 25 8 "Importo "
FIELD SPBRBIMP[1]
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 2 9 "Scaglione "
FIELD SPBRBSCA[2]
END
NUMBER DLG_NULL 6
BEGIN
PROMPT 25 9 "Importo "
FIELD SPBRBIMP[2]
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 2 10 "Scaglione "
FIELD SPBRBSCA[3]
END
NUMBER DLG_NULL 6
BEGIN
PROMPT 25 10 "Importo "
FIELD SPBRBIMP[3]
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 2 11 "Scaglione "
FIELD SPBRBSCA[4]
END
NUMBER DLG_NULL 6
BEGIN
PROMPT 25 11 "Importo "
FIELD SPBRBIMP[4]
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 2 12 "Scaglione "
FIELD SPBRBSCA[5]
END
NUMBER DLG_NULL 6
BEGIN
PROMPT 25 12 "Importo "
FIELD SPBRBIMP[5]
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 2 13 "Scaglione "
FIELD SPBRBSCA[6]
END
NUMBER DLG_NULL 6
BEGIN
PROMPT 25 13 "Importo "
FIELD SPBRBIMP[6]
END
NUMBER DLG_NULL 9
BEGIN
PROMPT 2 14 "Scaglione "
FIELD SPBRBSCA[7]
END
NUMBER DLG_NULL 6
BEGIN
PROMPT 25 14 "Importo "
FIELD SPBRBIMP[7]
END
STRING DLG_NULL 5
BEGIN
PROMPT 2 15 "Importo minimo R.B./1000 "
FIELD SPBRBIMPMINRB
END
STRING DLG_NULL 2
BEGIN
PROMPT 2 16 "Cod. pag. alternativo "
FIELD SPBRBCODPAGALT
END
STRING DLG_NULL 30
BEGIN
PROMPT 36 16 ""
END
STRING DLG_NULL 2
BEGIN
PROMPT 2 17 "Classif. pag. RB a richiesta "
FIELD SPBRBCLAPAGRB
END
STRING DLG_NULL 30
BEGIN
PROMPT 36 17 ""
END
ENDPAGE
PAGE "Tabella gestione spese d'incasso " 1 1 60 14
GROUPBOX DLG_NULL 78 11
BEGIN
PROMPT 0 0 "Gestione bolli fatture esenti"
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 1 "Addebito bolli fatture esenti "
FIELD SPBFEADD
END
STRING DLG_NULL 3
BEGIN
PROMPT 2 2 "Codice tabelle spese "
FIELD SPBFECODSP
END
STRING DLG_NULL 30
BEGIN
PROMPT 2 3 "Descrizione "
END
STRING DLG_NULL 2
BEGIN
PROMPT 2 4 "Cod. Iva "
FIELD SPBFECODIVA
END
STRING DLG_NULL 26
BEGIN
PROMPT 29 4 ""
END
STRING DLG_NULL 2
BEGIN
PROMPT 2 5 "Cod. contabilità "
FIELD SPBFECODCONT[1,2]
END
STRING DLG_NULL 2
BEGIN
PROMPT 29 5 ""
FIELD SPBFECODCONT[3,4]
END
STRING DLG_NULL 6
BEGIN
PROMPT 35 5 ""
FIELD SPBFECODCONT[5,10]
END
STRING DLG_NULL 26
BEGIN
PROMPT 47 5 ""
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 6 "Incasso prima rata "
FIELD SPBFEINCPR
END
STRING DLG_NULL 2
BEGIN
PROMPT 2 7 "Num. campo piede documento "
FIELD SPBFENPIEDE
END
STRING DLG_NULL 26
BEGIN
PROMPT 34 7 ""
END
STRING DLG_NULL 9
BEGIN
PROMPT 2 8 "Importo minimo fattura "
FIELD SPBFEIMPMINFAT
END
STRING DLG_NULL 6
BEGIN
PROMPT 2 9 "Importo bollo "
FIELD SPBFEIMPBOLLO
END
ENDPAGE
PAGE "Tabella gestione bolli tratte Italia " 1 1 60 14
GROUPBOX DLG_NULL 78 14
BEGIN
PROMPT 0 0 "Gestione bolli su tratte Italia"
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 1 "Addebito bolli su tratte Italia "
FIELD SPTRADD
END
STRING DLG_NULL 3
BEGIN
PROMPT 2 2 "Codice tabelle spese "
FIELD SPTRCODSP
END
STRING DLG_NULL 30
BEGIN
PROMPT 2 3 "Descrizione "
END
STRING DLG_NULL 2
BEGIN
PROMPT 2 4 "Cod. Iva "
FIELD SPTRCODIVA
END
STRING DLG_NULL 26
BEGIN
PROMPT 29 4 ""
END
STRING DLG_NULL 2
BEGIN
PROMPT 2 5 "Cod. contabilità "
FIELD SPTRCODCON[1,2]
END
STRING DLG_NULL 2
BEGIN
PROMPT 29 5 ""
FIELD SPTRCODCON[3,4]
END
STRING DLG_NULL 6
BEGIN
PROMPT 35 5 ""
FIELD SPTRCODCON[5,10]
END
STRING DLG_NULL 26
BEGIN
PROMPT 47 5 ""
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 6 "Incasso prima rata "
FIELD SPTRINCPR
END
STRING DLG_NULL 2
BEGIN
PROMPT 2 7 "Num. campo piede documento "
FIELD SPTRNPIEDE
END
STRING DLG_NULL 26
BEGIN
PROMPT 34 7 ""
END
NUMBER DLG_NULL 5 2
BEGIN
PROMPT 2 8 "Percentuale spese tratte "
FIELD SPTRPERCSPTR
END
STRING DLG_NULL 5
BEGIN
PROMPT 2 9 "Importo minimo bollo "
FIELD SPTRIMPMINBOL
END
STRING DLG_NULL 5
BEGIN
PROMPT 2 10 "Importo minimo tratte /1000 "
FIELD SPTRIMPMINTR
END
STRING DLG_NULL 2
BEGIN
PROMPT 2 11 "Condizione pagam. alternativa "
FIELD SPTRCODPAGALT
END
STRING DLG_NULL 30
BEGIN
PROMPT 42 11 ""
END
STRING DLG_NULL 2
BEGIN
PROMPT 2 12 "Classif. pagamento TR a richiesta "
FIELD SPTRCLASPAG
END
STRING DLG_NULL 30
BEGIN
PROMPT 42 12 ""
END
ENDPAGE
PAGE "Tabella gestione bolli tratte estero " 1 1 60 14
GROUPBOX DLG_NULL 78 10
BEGIN
PROMPT 0 0 "Gestione spese tratta estera"
END
STRING DLG_NULL 3
BEGIN
PROMPT 2 1 "Codice tabella spesa tratta estera "
FIELD SPTECODSP
END
STRING DLG_NULL 30
BEGIN
PROMPT 2 2 "Descrizione "
END
STRING DLG_NULL 2
BEGIN
PROMPT 2 3 "Cod. Iva "
FIELD SPTECODIVA
END
STRING DLG_NULL 26
BEGIN
PROMPT 29 3 ""
END
STRING DLG_NULL 2
BEGIN
PROMPT 2 4 "Cod. contabilità "
FIELD SPTECODCON[1,2]
END
STRING DLG_NULL 2
BEGIN
PROMPT 29 4 ""
FIELD SPTECODCON[3,4]
END
STRING DLG_NULL 6
BEGIN
PROMPT 35 4 ""
FIELD SPTECODCON[5,10]
END
STRING DLG_NULL 26
BEGIN
PROMPT 47 4 ""
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 5 "Incasso prima rata "
FIELD SPTEINCPR
END
STRING DLG_NULL 2
BEGIN
PROMPT 2 6 "Num. campo piede documento "
FIELD SPTENPIEDE
END
STRING DLG_NULL 26
BEGIN
PROMPT 34 6 ""
END
NUMBER DLG_NULL 5 2
BEGIN
PROMPT 2 7 "Percentuale spese tratte "
FIELD SPTEPERCSPTR
END
STRING DLG_NULL 5
BEGIN
PROMPT 2 8 "Importo minimo bollo "
FIELD SPTEIMPMINBOL
END
ENDPAGE
ENDMASK

305
ve/ve0200e.uml Executable file
View File

@ -0,0 +1,305 @@
/* toolbar */
#include "ve0200b.h"
TOOLBAR "" 0 20 0 2
BUTTON DLG_OK 10 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
PAGE "Tabella descrizione codice articolo " 1 1 60 14
GROUPBOX DLG_NULL 78 18
BEGIN
PROMPT 0 0 "Personalizzazione procedura"
END
TEXT DLG_NULL
BEGIN
PROMPT 2 1 "Descr. Cod. "
END
TEXT DLG_NULL
BEGIN
PROMPT 14 1 "Descrizione "
END
TEXT DLG_NULL
BEGIN
PROMPT 48 1 "Lungh. campi "
END
TEXT DLG_NULL
BEGIN
PROMPT 63 1 "Tipo campi "
END
TEXT DLG_NULL
BEGIN
PROMPT 2 2 "Cod. art. "
END
STRING DLG_NULL 30
BEGIN
PROMPT 14 2 ""
FIELD CODARTDES
END
STRING DLG_NULL 2
BEGIN
PROMPT 48 2 ""
FIELD CODARTLUN[1]
END
STRING DLG_NULL 2
BEGIN
PROMPT 52 2 ""
FIELD CODARTLUN[2]
END
STRING DLG_NULL 2
BEGIN
PROMPT 56 2 ""
FIELD CODARTLUN[3]
END
STRING DLG_NULL 2
BEGIN
PROMPT 63 2 ""
FIELD CODARTPIC[1]
END
STRING DLG_NULL 2
BEGIN
PROMPT 67 2 ""
FIELD CODARTPIC[2]
END
STRING DLG_NULL 2
BEGIN
PROMPT 71 2 ""
FIELD CODARTPIC[3]
END
TEXT DLG_NULL
BEGIN
PROMPT 2 3 "I° indice "
END
STRING DLG_NULL 30
BEGIN
PROMPT 14 3 ""
FIELD INDARTDES[1]
END
STRING DLG_NULL 2
BEGIN
PROMPT 48 3 ""
FIELD INDARTLUN[1]
END
STRING DLG_NULL 2
BEGIN
PROMPT 63 3 ""
FIELD INDARTPIC[1]
END
TEXT DLG_NULL
BEGIN
PROMPT 2 4 "II° indice "
END
STRING DLG_NULL 30
BEGIN
PROMPT 14 4 ""
FIELD INDARTDES[2]
END
STRING DLG_NULL 2
BEGIN
PROMPT 48 4 ""
FIELD INDARTLUN[2]
END
STRING DLG_NULL 2
BEGIN
PROMPT 63 4 ""
FIELD INDARTPIC[2]
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 6 "Gestione articoli in lingua "
FIELD ARTGESLIN
END
NUMBER DLG_NULL 1
BEGIN
PROMPT 5 7 "Codice lingua n.1 "
FIELD ARTCODLIN[1]
END
NUMBER DLG_NULL 1
BEGIN
PROMPT 5 8 "Codice lingua n.2 "
FIELD ARTCODLIN[2]
END
NUMBER DLG_NULL 1
BEGIN
PROMPT 5 9 "Codice lingua n.3 "
FIELD ARTCODLIN[3]
END
NUMBER DLG_NULL 1
BEGIN
PROMPT 5 10 "Codice lingua n.4 "
FIELD ARTCODLIN[4]
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 11 "Gestione più magazzini "
FIELD ARTGESMAG
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 12 "Gestione depositi "
FIELD ARTGESDEP
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 13 "Gestione commesse "
FIELD ARTGESCOMM
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 14 "Gestione quantità in decimali "
FIELD ARTGESQDEC
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 15 "Gestione valuta "
FIELD ARTGESVAL
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 16 "Ripetizione primo indice "
FIELD ARTRIPIND
END
ENDPAGE
PAGE "Tabella personalizzazione anagrafico articoli " 1 1 60 14
GROUPBOX DLG_NULL 78 18
BEGIN
PROMPT 0 0 "Gestione archivio articoli"
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 1 "Gestione descrizioni estese "
FIELD ARTGESDESCEST
END
LIST DLG_NULL 35
BEGIN
PROMPT 2 2 "Gestione art. per lotti "
ITEM "N|Non gestire"
ITEM "D|Gestiti con lotto data "
ITEM "Q|Gestiti con lotto descr. qualità "
FIELD ARTGESLOTTI
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 3 "Gestione articoli per taglia "
FIELD ARTGESTAGLIA
END
STRING DLG_NULL 10
BEGIN
PROMPT 2 4 "Descrizione campi chiave "
FIELD ARTDESCHI[1]
END
STRING DLG_NULL 10
BEGIN
PROMPT 2 5 "Descrizione campi chiave "
FIELD ARTDESCHI[2]
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 6 "Gestione più unità di misura "
FIELD ARTGESUM
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 7 "Gestione secondo codice iva "
FIELD ARTGESCODIVA
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 8 "Gestione campi peso lordo/netto "
FIELD ARTGESPLN
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 9 "Gestione campo aspetto dei beni "
FIELD ARTGESASPBEN
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 10 "Gestione campo codice gruppo articolo "
FIELD ARTGESCODGR
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 11 "Gestione campo distinta base "
FIELD ARTGESDB
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 12 "Gestione campo categorie vendite "
FIELD ARTGESCATVEN
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 13 "Gestione campo categorie acquisti "
FIELD ARTGESCATACQ
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 14 "Gestione codice fornitore "
FIELD ARTGESCODFOR
END
ENDPAGE
ENDMASK

View File

@ -47,6 +47,10 @@
#include "veuml.h"
#endif
#ifndef __VEUML1_H
#include "veuml1.h"
#endif
#ifndef __LFFILES_H
#include "lffiles.h"
#endif
@ -1019,13 +1023,14 @@ void TMask_generator::genera( )
temp_s.format( "TIPOCF \"C\"~CODCF %d", F_CODCF);
_m->input( temp_s );
_m->display( "\"Codice\" CODCF~\"Ragione Sociale@50\" RAGSOC~\"Partita IVA@12\" PAIV~\"Sospeso\" SOSPESO" );
temp_s.format( "%d CODCF~%d RAGSOC", F_CODCF, F_DESCF );
temp_s.format( "%d CODCF~%d RAGSOC", F_CODCF, F_RAGSOC );
_m->output( temp_s );
_m->check( S_OBBLIGATORIO );
_m->outline( "ADD RU cg0 -1 C" );
_m->message( "CO,10@" );
_m->end();
_m->control( T_STRINGA, F_DESCF, 50 );
_m->control( T_STRINGA, F_RAGSOC, 50 );
_m->begin( );
if ( _pro->get( "TIPOCF", "MAIN" ) == "C" )
{
@ -1041,13 +1046,14 @@ void TMask_generator::genera( )
_m->prompt( 24, 4, "" );
_m->group( 1 );
_m->use( LF_CLIFO, 2 );
temp_s.format( "TIPOCF \"C\"~RAGSOC %d", F_DESCF);
temp_s.format( "TIPOCF \"C\"~RAGSOC %d", F_RAGSOC );
_m->input( temp_s );
_m->display( "\"Ragione Sociale@50\" RAGSOC~\"Partita IVA@12\" PAIV~\"Codice\" CODCF" );
temp_s.format( "%d CODCF~%d RAGSOC", F_CODCF, F_DESCF );
temp_s.format( "%d CODCF~%d RAGSOC", F_CODCF, F_RAGSOC );
_m->output( temp_s );
_m->check( S_OBBLIGATORIO );
_m->outline( "ADD RU cg0 -1 C" );
_m->message( "CO,11@" );
_m->end();
_m->line( MASK_FIRST_LINE );
@ -1127,12 +1133,20 @@ void TMask_generator::genera( )
// Generazione dello sheet : vedi il profilo
TScanner sheet_in( "ve0300b.dat" );
_m->_out << "SPREADSHEET " << F_SHEET << "\n";
_m->_out << "SPREADSHEET " << F_SHEET << " 76 6 \n";
_m->begin();
_m->prompt( 2, 8 );
for( i = 0; i < _tab0300b.items( ); i ++ )
genera_item_sheet( _tab0300b.row( i ) );
_m->end();
_m->control( T_MEMO, F_MEMORIGA, 7604 );
_m->begin();
_m->prompt( 2, 15, " " );
_m->field( "34->DESCEST" );
_m->end( );
_m->end();
// Generazione pagina dei piedi

View File

@ -362,6 +362,7 @@ DISPLAY="Codice" CODTAB~"Descrizione@50" S0
OUTPUT=F_CODPAG CODTAB~F_DESCODPAG S0
WARNING=Codice tipo pagamento non trovato
HELP=Inserisci il codice del tipo di pagamento
SPECIAL=ADD RU BA3 -6
[DESCODPAG]
GROUP=400
@ -578,12 +579,12 @@ HELP=Inserisci il codice dell'indirizzo di spedizione
GROUP=900
X=24
Y=0
MSKID=F_RAGSOC
MSKID=F_RAGSOCSP
TYPE=T_STRINGA
SIZE=50
FLAG=U
USE=20 KE 2
INPUT=RAGSOC 301
INPUT=RAGSOC F_RAGSOCSP
DISPLAY="Ragione sociale@50" 20->RAGSOC~"Codice" 20->CODCF~"Indrizzo@35" 20->INDCF
SPECIAL=JO 17 TO 20 KE 1 INTO TIPOCF=TIPOCF CODCF=CODCF
WARNING=Ragione sociale non trovata

View File

@ -70,7 +70,7 @@ bool TCondizioni_vendita::user_create() {
_tohide.set(F_C_OBBLIG);
set_search_field(F_L_COD); // impostazione del campo di ricerca
TConfig prassid(CONFIG_DITTA, "ve"); // apre il file di configurazione della ditta corrente
_catven_on= (toupper(prassid.get("CATVEN_ON")[0])!='T'); // setta il booleano di abilitazione di CATVEN
_catven_on= (prassid.get_bool("CODLISCV")); // setta il booleano di abilitazione di CATVEN
_msk->set_handler(F_L_CODLISSUCC, handle_codlissucc); // setta l'handler per il campo di codice successivo
gotcha= TRUE;
break;

View File

@ -67,7 +67,7 @@ bool TRighe_condizioni_vendita::user_create() {
_tohide.set(F_R_CO_CODLOTTO);
_tohide.set(F_R_O_ARTES);
TConfig prassid(CONFIG_DITTA, "ve"); // apre il file di configurazione della ditta corrente
_catven_on= (toupper(prassid.get("CATVEN_ON")[0])!='T'); // setta il booleano di abilitazione di CATVEN
_catven_on= prassid.get_bool("GESLISCV"); // setta il booleano di abilitazione di CATVEN
set_search_field(F_R_L_RICERCA); // impostazione del campo di ricerca
_msk->set_handler(F_R_L_COD, handle_cod); // impostazione dell'handler sul campo di controllo della testata
gotcha= TRUE;

View File

@ -16,6 +16,8 @@
#define F_CIVCF 303
#define F_NOME_VAL 304
#define F_DESCODPAG 305
// I prossimi 5 campi devono essere consecutivi come numerazione
// perchè faccio un ciclo per settarli
#define F_DATASCAD1 306
#define F_DATASCAD2 307
#define F_DATASCAD3 308
@ -59,4 +61,5 @@
#define F_STATOSP 346
#define F_DESSTATOSP 347
#define F_DESLIST 348
#define F_RAGSOCSP 349
#endif // __VEUML1_H