Patch level : 12.0 616

Files correlati     :
Commento            : ve0.exe profili

Aggiunti i campi per fatturazione elettronica alle maschere documenti
This commit is contained in:
AlexBonazzi 2018-08-03 16:10:46 +02:00
parent 632fb4b874
commit 63a708a083
14 changed files with 251 additions and 156 deletions

View File

@ -176,6 +176,9 @@ DESCRCUP = S_NORMALE
CIG = S_NORMALE CIG = S_NORMALE
DESCRCIG = S_NORMALE DESCRCIG = S_NORMALE
CMSH = S_NORMALE CMSH = S_NORMALE
TIPO_SDI = S_NORMALE
INVIO_FP = S_NORMALE
REG_FISCF = S_NORMALE
[DEFAULT] [DEFAULT]
@ -240,10 +243,11 @@ Col(21)=FR_TIPORIGA
2400 = S_NORMALE 2400 = S_NORMALE
2900 = S_NORMALE 2900 = S_NORMALE
3000 = S_NORMALE 3000 = S_NORMALE
3100 = S_NORMALE
4000 = S_NORMALE 4000 = S_NORMALE
[ORDINEGRUPPI] [ORDINEGRUPPI]
NGROUPS=14 NGROUPS=15
1=100 1=100
2=200 2=200
3=400 3=400
@ -258,5 +262,5 @@ NGROUPS=14
12=2400 12=2400
13=2900 13=2900
14=3000 14=3000
15=3100

View File

@ -20,8 +20,9 @@ Title(1)=Cliente
Title(2)=Pagamenti Title(2)=Pagamenti
Title(3)=Ind.Spedizione Title(3)=Ind.Spedizione
Title(4)=Spedizione Title(4)=Spedizione
Title(5)=Righe Title(5)=Fatturazione elettronica
Title(6)=Totali Title(6)=Righe
Title(7)=Totali
[PROFILO] [PROFILO]
// Si possono indicare, dopo il numero, PROMPT, HELP, WARNING cosi: // Si possono indicare, dopo il numero, PROMPT, HELP, WARNING cosi:
@ -175,6 +176,9 @@ DESCRCUP = S_NORMALE
CIG = S_NORMALE CIG = S_NORMALE
DESCRCIG = S_NORMALE DESCRCIG = S_NORMALE
CMSH = S_NORMALE CMSH = S_NORMALE
TIPO_SDI = S_NORMALE
INVIO_FP = S_NORMALE
REG_FISCF = S_NORMALE
[DEFAULT] [DEFAULT]
Default(0)=F_CAUSTRASP|VEN Default(0)=F_CAUSTRASP|VEN
@ -247,10 +251,11 @@ Col(24)=FR_TIPORIGA
2800 = S_NORMALE 2800 = S_NORMALE
2900 = S_NORMALE 2900 = S_NORMALE
3000 = S_NORMALE 3000 = S_NORMALE
3100 = S_NORMALE
4000 = S_NORMALE 4000 = S_NORMALE
[ORDINEGRUPPI] [ORDINEGRUPPI]
NGROUPS=30 NGROUPS=31
1=100 1=100
2=2500 2=2500
3=200 3=200
@ -281,4 +286,5 @@ NGROUPS=30
28=1000 28=1000
29=2900 29=2900
30=3000 30=3000
31=3100

View File

@ -122,6 +122,9 @@ CAUSMAG = S_OBBLIGATORIO
CAUSMAGC = S_DISABILITATO CAUSMAGC = S_DISABILITATO
DESCRMAG = S_NORMALE DESCRMAG = S_NORMALE
DESCRMAGC = S_DISABILITATO DESCRMAGC = S_DISABILITATO
TIPO_SDI = S_NORMALE
INVIO_FP = S_NORMALE
REG_FISCF = S_NORMALE
[DEFAULT] [DEFAULT]
Default(0)=F_CAUSTRASP|RES Default(0)=F_CAUSTRASP|RES
@ -177,9 +180,10 @@ Col(19) = FR_TIPORIGA
2800 = S_NORMALE 2800 = S_NORMALE
2900 = S_NORMALE 2900 = S_NORMALE
3000 = S_NORMALE 3000 = S_NORMALE
3100 = S_NORMALE
[ORDINEGRUPPI] [ORDINEGRUPPI]
NGROUPS=23 NGROUPS=24
1=100 1=100
2=200 2=200
3=300 3=300
@ -203,3 +207,4 @@ NGROUPS=23
21=1500 21=1500
22=1600 22=1600
23=3000 23=3000
24=3100

View File

@ -21,8 +21,9 @@ PREZZO=ULTCOS1
MODULE=ve MODULE=ve
Title(1)=Fornitore Title(1)=Fornitore
Title(2)=Pagamenti Title(2)=Pagamenti
Title(3)=Righe Title(3)=C.U.P.
Title(4)=Totali Title(4)=Righe
Title(5)=Totali
[PROFILO] [PROFILO]
@ -138,6 +139,9 @@ DESCRCUP = S_NORMALE
CIG = S_NORMALE CIG = S_NORMALE
DESCRCIG = S_NORMALE DESCRCIG = S_NORMALE
CMSH = S_NORMALE CMSH = S_NORMALE
TIPO_SDI = S_NORMALE
INVIO_FP = S_NORMALE
REG_FISCF = S_NORMALE
[DEFAULT] [DEFAULT]
@ -195,10 +199,11 @@ Col(21) = FR_TIPORIGA
2400 = S_NORMALE 2400 = S_NORMALE
2900 = S_NORMALE 2900 = S_NORMALE
3000 = S_NORMALE 3000 = S_NORMALE
3100 = S_NORMALE
4000 = S_NORMALE 4000 = S_NORMALE
[ORDINEGRUPPI] [ORDINEGRUPPI]
NGROUPS=15 NGROUPS=16
1=1000 1=1000
2=100 2=100
3=200 3=200
@ -214,3 +219,4 @@ NGROUPS=15
13=1900 13=1900
14=2900 14=2900
15=3000 15=3000
16=3100

View File

@ -176,6 +176,9 @@ DESCRCUP = S_NORMALE
CIG = S_NORMALE CIG = S_NORMALE
DESCRCIG = S_NORMALE DESCRCIG = S_NORMALE
CMSH = S_NORMALE CMSH = S_NORMALE
TIPO_SDI = S_NORMALE
INVIO_FP = S_NORMALE
REG_FISCF = S_NORMALE
[DEFAULT] [DEFAULT]
Default(0)=F_CAUSTRASP|VEN Default(0)=F_CAUSTRASP|VEN
@ -249,9 +252,10 @@ Col(25) = FR_TIPORIGA
2800 = S_NORMALE 2800 = S_NORMALE
2900 = S_NORMALE 2900 = S_NORMALE
3000 = S_NORMALE 3000 = S_NORMALE
3100 = S_NORMALE
[ORDINEGRUPPI] [ORDINEGRUPPI]
NGROUPS=30 NGROUPS=31
1=100 1=100
2=2500 2=2500
3=200 3=200
@ -282,4 +286,4 @@ NGROUPS=30
28=1010 28=1010
29=2900 29=2900
30=3000 30=3000
30=3100

View File

@ -157,6 +157,9 @@ DESCRCUP = S_NORMALE
CIG = S_NORMALE CIG = S_NORMALE
DESCRCIG = S_NORMALE DESCRCIG = S_NORMALE
CMSH = S_NORMALE CMSH = S_NORMALE
TIPO_SDI = S_NORMALE
INVIO_FP = S_NORMALE
REG_FISCF = S_NORMALE
[DEFAULT] [DEFAULT]
@ -218,9 +221,10 @@ Col(21)=FR_TIPORIGA
2500 = S_NORMALE 2500 = S_NORMALE
2900 = S_NORMALE 2900 = S_NORMALE
3000 = S_NORMALE 3000 = S_NORMALE
3100 = S_NORMALE
[ORDINEGRUPPI] [ORDINEGRUPPI]
NGROUPS=25 NGROUPS=26
1=100 1=100
2=2500 2=2500
3=200 3=200
@ -246,3 +250,4 @@ NGROUPS=25
23=1010 23=1010
24=2900 24=2900
25=3000 25=3000
26=3100

View File

@ -170,6 +170,9 @@ DESCRCUP = S_NORMALE
CIG = S_NORMALE CIG = S_NORMALE
DESCRCIG = S_NORMALE DESCRCIG = S_NORMALE
CMSH = S_NORMALE CMSH = S_NORMALE
TIPO_SDI = S_NORMALE
INVIO_FP = S_NORMALE
REG_FISCF = S_NORMALE
[DEFAULT] [DEFAULT]
@ -237,9 +240,10 @@ Col(25) = FR_TIPORIGA
2500 = S_NORMALE 2500 = S_NORMALE
2900 = S_NORMALE 2900 = S_NORMALE
3000 = S_NORMALE 3000 = S_NORMALE
3100 = S_NORMALE
[ORDINEGRUPPI] [ORDINEGRUPPI]
NGROUPS=27 NGROUPS=28
1=100 1=100
2=2500 2=2500
3=200 3=200
@ -267,4 +271,5 @@ NGROUPS=27
25=2900 25=2900
26=2000 26=2000
27=3000 27=3000
28=3100

View File

@ -29,8 +29,9 @@ Title(1)=Fornitore
Title(2)=Pagamenti Title(2)=Pagamenti
Title(3)=Ind.Spedizione Title(3)=Ind.Spedizione
Title(4)=Spedizione Title(4)=Spedizione
Title(5)=Righe Title(5)=C.U.P.
Title(6)=Totali Title(6)=Righe
Title(7)=Totali
[PROFILO] [PROFILO]
// Si possono indicare, dopo il numero, PROMPT, HELP, WARNING cosi: // Si possono indicare, dopo il numero, PROMPT, HELP, WARNING cosi:
@ -175,6 +176,9 @@ DESCRCUP = S_NORMALE
CIG = S_NORMALE CIG = S_NORMALE
DESCRCIG = S_NORMALE DESCRCIG = S_NORMALE
CMSH = S_NORMALE CMSH = S_NORMALE
TIPO_SDI = S_NORMALE
INVIO_FP = S_NORMALE
REG_FISCF = S_NORMALE
[SHEET] [SHEET]
Col(0) = FR_CODMAG Col(0) = FR_CODMAG
@ -247,9 +251,10 @@ Col(24) = FR_TIPORIGA
2800 = S_NORMALE 2800 = S_NORMALE
2900 = S_NORMALE 2900 = S_NORMALE
3000 = S_NORMALE 3000 = S_NORMALE
3100 = S_NORMALE
[ORDINEGRUPPI] [ORDINEGRUPPI]
NGROUPS=34 NGROUPS=36
1=100 1=100
2=200 2=200
3=300 3=300
@ -277,11 +282,11 @@ NGROUPS=34
25=1000 25=1000
26=2300 26=2300
27=2400 27=2400
28=3000 28=3200
29=3200 29=2500
30=2500 30=3400
31=3400 31=1600
32=1600 32=2000
33=2000 33=2900
34=2900 34=3000
35=3000 35=3100

View File

@ -717,7 +717,21 @@ bool TMotore_application::user_create( )
TISAM_recordset tip("USE %TIP"); TISAM_recordset tip("USE %TIP");
for (bool ok = tip.move_first(); ok; ok = tip.move_next()) for (bool ok = tip.move_first(); ok; ok = tip.move_next())
{
TFilename pname(tip.get("S4").as_string().sleft(8));
pname.ext("ini");
bool exist = pname.exist();
if (!exist)
{
pname.custom_path();
exist = pname.exist();
}
if (exist)
cached_tipodoc(tip.get("CODTAB").as_string()); cached_tipodoc(tip.get("CODTAB").as_string());
}
_config_ditta = new TConfig(CONFIG_DITTA); _config_ditta = new TConfig(CONFIG_DITTA);

View File

@ -692,33 +692,33 @@ TField::TField( TString& campo, TConfig& pro ) : _nome( campo )
_fieldname = pro.get( "FIELDNAME", campo ); _fieldname = pro.get( "FIELDNAME", campo );
_x = _gruppo = pro.get_int( "X", campo ); _x = _gruppo = pro.get_int( "X", campo );
_y = _gruppo = pro.get_int( "Y", campo ); _y = _gruppo = pro.get_int( "Y", campo );
_gruppo = pro.get_int( "GROUP", campo ); _gruppo = pro.get_int( "GR", campo );
CHECK( _gruppo != 0, "Gruppo uguale a 0" ); CHECK( _gruppo != 0, "Gruppo uguale a 0" );
_id = pro.get_int( "MSKID", campo ); _id = pro.get_int( "MS", campo );
CHECK( _id != 0, "Campo con MSKID uguale a 0" ); CHECK( _id != 0, "Campo con MSKID uguale a 0" );
_type = pro.get_int( "TYPE", campo ); _type = pro.get_int( "TY", campo );
_size = pro.get_int( "SIZE", campo ); _size = pro.get_int( "SI", campo );
_prompt = pro.get( "PROMPT", campo ); _prompt = pro.get( "PR", campo );
if( _prompt[ 0 ] == '\"' ) if( _prompt[ 0 ] == '\"' )
{ {
_prompt.rtrim(1); _prompt.rtrim(1);
_prompt.ltrim(1); _prompt.ltrim(1);
}; };
_flag = pro.get( "FLAG", campo ); _flag = pro.get( "FL", campo );
_help = pro.get( "HELP", campo ); _help = pro.get( "HE", campo );
_warning = pro.get( "WARNING", campo ); _warning = pro.get( "WA", campo );
_modules = pro.get( "MODULE", campo ); _modules.strip("\""); _modules = pro.get( "MO", campo ); _modules.strip("\"");
_use = pro.get( "USE", campo ); _use = pro.get( "US", campo );
_use.separator( '~' ); _use.separator( '~' );
_input = pro.get( "INPUT", campo ); _input = pro.get( "IN", campo );
_input.separator( '~' ); _input.separator( '~' );
_display = pro.get( "DISPLAY", campo ); _display = pro.get( "DI", campo );
_display.separator( '~' ); _display.separator( '~' );
_output = pro.get( "OUTPUT", campo ); _output = pro.get( "OU", campo );
_output.separator( '~' ); _output.separator( '~' );
_copy = pro.get( "COPY", campo ); _copy = pro.get( "CO", campo );
_copy.separator( '~' ); _copy.separator( '~' );
_special = pro.get( "SPECIAL", campo ); _special = pro.get( "SP", campo );
_special.separator( '~' ); _special.separator( '~' );
_configs = pro.get( "CONFIGS", campo ); _configs = pro.get( "CONFIGS", campo );
_configs.separator( '~' ); _configs.separator( '~' );
@ -811,7 +811,7 @@ int TField::stato_reale()
if (stato > S_NON_VISIBILE) if (stato > S_NON_VISIBILE)
{ {
const TString80 gruppo(fieldsini().get("GROUP", _nome)); const TString80 gruppo(fieldsini().get("GR", _nome));
int stato_gruppo = S_OBBLIGATORIO; int stato_gruppo = S_OBBLIGATORIO;
if (stato > stato_gruppo) if (stato > stato_gruppo)
stato = stato_gruppo; stato = stato_gruppo;
@ -972,17 +972,17 @@ void TMask_generator::carica_dati_campi( const TFilename& fn, TAssoc_array& a )
campo->x( atoi( value ) ); campo->x( atoi( value ) );
else if( key == "Y" ) else if( key == "Y" )
campo->y( atoi( value ) ); campo->y( atoi( value ) );
else if( key == "GROUP" ) else if( key.starts_with("GR"))
campo->gruppo( atoi( value ) ); campo->gruppo( atoi( value ) );
else if( key == "FIELDNAME" ) else if(key.starts_with("FI"))
campo->fieldname( value ); campo->fieldname( value );
else if( key == "MSKID" ) else if( key.starts_with("MS"))
campo->id( atoi( value ) ); campo->id( atoi( value ) );
else if( key == "TYPE" ) else if( key.starts_with("TY"))
campo->type( atoi( value ) ); campo->type( atoi( value ) );
else if( key == "SIZE" ) else if( key.starts_with("SI"))
campo->size( atoi( value ) ); campo->size( atoi( value ) );
else if( key == "PROMPT" ) else if( key.starts_with("PR"))
{ {
if( value[ 0 ] == '"' ) if( value[ 0 ] == '"' )
{ {
@ -991,29 +991,29 @@ void TMask_generator::carica_dati_campi( const TFilename& fn, TAssoc_array& a )
}; };
campo->prompt( value ); campo->prompt( value );
} }
else if( key == "FLAG" ) else if( key.starts_with("FL"))
campo->flag( value ); campo->flag( value );
else if( key == "USE" ) else if( key.starts_with("US"))
campo->use( (TToken_string & ) value ); campo->use( TToken_string(value, '~'));
else if( key == "INPUT" ) else if( key.starts_with("IN"))
campo->input( (TToken_string & )value ); campo->input(TToken_string(value, '~'));
else if( key == "DISPLAY" ) else if( key.starts_with("DI"))
campo->display( (TToken_string & )value ); campo->display(TToken_string(value, '~'));
else if( key == "OUTPUT" ) else if( key.starts_with("OU"))
campo->output( (TToken_string & )value ); campo->output(TToken_string(value, '~'));
else if( key == "COPY" ) else if( key.starts_with("CO"))
campo->copy( (TToken_string & )value ); campo->copy( (TToken_string & )value );
else if( key == "WARNING" ) else if( key.starts_with("WA"))
campo->warning( value ); campo->warning( value );
else if( key == "HELP" ) else if( key.starts_with("HE"))
campo->help( value ); campo->help( value );
else if( key == "MODULE" ) else if( key.starts_with("MO"))
campo->modules( value ); campo->modules( value );
else if( key == "SPECIAL" ) else if( key.starts_with("SP"))
campo->special( (TToken_string & )value ); campo->special(TToken_string(value, '~'));
else if( key == "ITEMS" ) else if( key.starts_with("IT"))
campo->items( (TToken_string & )value ); campo->items( TToken_string(value, '@'));
else if( key == "CONFIGS" ) else if( key.starts_with("CONF"))
campo->configs( (TToken_string & )value ); campo->configs( (TToken_string & )value );
else yesnofatal_box( "Chiave non trovata(%s)", (const char *) key ); else yesnofatal_box( "Chiave non trovata(%s)", (const char *) key );
} }

View File

@ -1993,6 +1993,36 @@ FIELDNAME=CODCMS
FLAG=H FLAG=H
SIZE=20 SIZE=20
[TIPO_SDI]
TYPE=T_LISTA
GROUP=3100
MSKID=F_TIPO_SDI
X=2
Y=1
SIZE=40
PROMPT="Tipo documento SDI "
FIELDNAME=TIPO_SDI
ITEMS=|@TD01|TD01 Fattura@TD02|TD02 Acconto/Anticipo su fattura@TD03|TD03 Acconto/Anticipo su parcella@TD04|TD04 Nota di credito@TD05|TD05 Nota di debito@TD06|TD06 parcella
[INVIO_FP]
TYPE=T_CHECKBOX
GROUP=3100
MSKID=F_INVIO_FP
X=65
Y=1
PROMPT="Invio XML"
FIELDNAME=INVIO_XML
[REG_FISCF]
TYPE=T_LISTA
GROUP=3100
MSKID=F_REG_FISCF
X=2
Y=2
SIZE=40
PROMPT="Regime Fisc. "
FIELDNAME=REGFISC
ITEMS=|@RF01|RF01 Ordinario@RF02|RF02 Contribuenti minimi@RF04|RF04 Agricoltura, connesse e pesca@RF05|RF05 Vendita sali e tabacchi@RF06|RF06 Commercio fiammiferi@RF07|RF07 Editoria@RF08|RF08 Gestione servizi tel. pubblica@RF09|RF09 Rivendita DdT pubblico e di sosta@RF10|RF10 Intr., giochi e altre attività@RF11|RF11 Agenzie viaggi e turismo@RF12|RF12 Agriturismo@RF13|RF13 Vendite a domicilio@RF14|RF14 Rivendita usato, arte, ant. o col.@RF15|RF15 Asta darte, ant. o da col.@RF16|RF16 IVA per cassa P.A.@RF17|RF17 IVA per cassa@RF18|RF18 Altro@RF19|RF19 Regime forfettario
[LVGROUP] [LVGROUP]
GROUP=4041 GROUP=4041
X=1 X=1

View File

@ -107,6 +107,9 @@ HEIGHT=2
[3000] [3000]
HEIGHT=3 HEIGHT=3
[3100]
HEIGHT=2
[3200] [3200]
HEIGHT=1 HEIGHT=1

View File

@ -357,6 +357,10 @@ void TTipo_documento::add_formula_if_needed(TConfig& profile, TString& variable,
void TTipo_documento::read_formule() void TTipo_documento::read_formule()
{ {
TFilename profile; profile_name(profile); TFilename profile; profile_name(profile);
TFilename p(profile); p.custom_path();
if (p.exist()) // evita la creazione di profili vuoti
{
TConfig prof(profile, "MAIN"); TConfig prof(profile, "MAIN");
prof.write_protect(); // Altrimenti non si distrugge!!! prof.write_protect(); // Altrimenti non si distrugge!!!
@ -431,10 +435,10 @@ void TTipo_documento::read_formule()
_field_qta = prof.get(RDOC_QTA, NULL, -1, RDOC_QTA); _field_qta = prof.get(RDOC_QTA, NULL, -1, RDOC_QTA);
_field_qtaevasa = prof.get(RDOC_QTAEVASA, NULL, -1, RDOC_QTAEVASA); _field_qtaevasa = prof.get(RDOC_QTAEVASA, NULL, -1, RDOC_QTAEVASA);
_field_qta_mag = prof.get("QTA_MAG"); _field_qta_mag = prof.get("QTA_MAG");
if(_field_qta_mag.blank()) if (_field_qta_mag.blank())
_field_qta_mag = _field_qta; _field_qta_mag = _field_qta;
_field_qtaevasa_mag = prof.get("QTAEVASA_MAG"); _field_qtaevasa_mag = prof.get("QTAEVASA_MAG");
if(_field_qtaevasa_mag.blank()) if (_field_qtaevasa_mag.blank())
_field_qtaevasa_mag = _field_qtaevasa; _field_qtaevasa_mag = _field_qtaevasa;
_check_qta = prof.get_char("CHECK_QTA", "MAIN"); _check_qta = prof.get_char("CHECK_QTA", "MAIN");
_load_cont = prof.get_bool("LOAD_CONT", "MAIN"); _load_cont = prof.get_bool("LOAD_CONT", "MAIN");
@ -456,6 +460,7 @@ void TTipo_documento::read_formule()
_hca_req = !prof.get_bool("HEAD_CA_OPT"); _hca_req = !prof.get_bool("HEAD_CA_OPT");
_check_double_art = prof.get_bool("CHECK_DOUBLE_ART"); _check_double_art = prof.get_bool("CHECK_DOUBLE_ART");
_ignora_anticipi_fatturazione = prof.get_bool("IGNORA_ANTICIPI_FATTURAZIONE"); _ignora_anticipi_fatturazione = prof.get_bool("IGNORA_ANTICIPI_FATTURAZIONE");
}
} }
bool TTipo_documento::movimento_interno() const bool TTipo_documento::movimento_interno() const

View File

@ -124,6 +124,9 @@
#define F_PATIPOCON 227 #define F_PATIPOCON 227
#define F_IVAXCASSA 228 #define F_IVAXCASSA 228
#define F_MANDATO 229 #define F_MANDATO 229
#define F_TIPO_SDI 230
#define F_INVIO_FP 231
#define F_REG_FISCF 232
#define F_CDC1 251 #define F_CDC1 251
#define F_CDC12 262 #define F_CDC12 262