Patch level : 10.0 67

Files correlati     :
Ricompilazione Demo : [ ]
Commento           :

RIportata la verione 3.2 1167


git-svn-id: svn://10.65.10.50/trunk@16718 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2008-06-11 10:26:16 +00:00
parent c4c9328557
commit 4541a40a90
12 changed files with 1718 additions and 33 deletions

BIN
gv/CBI-F24-001 5_0.odt Executable file

Binary file not shown.

BIN
gv/F24.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

BIN
gv/F24orig.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 KiB

View File

@ -1,3 +1,3 @@
158
0
$righef24|0|0|196|0|Righe di delega F24|||
$righef24|0|0|250|0|Righe di delega F24|||

View File

@ -1,10 +1,14 @@
158
20
36
PROGR|3|6|0|Progressivo riga
F24|3|6|0|Numero F24 a cui la riga e' associata
SEZIONE|1|1|0|Sezione (Erario, INPS etc)
INDICE|1|1|0|indice della sezione
TRIBUTO|1|4|0|Codice tributo
TIPOINTEST|1|1|0|Tipo intestatario (D, G, F, C)
INTEST|3|6|0|Codice intestatario
TIPO|1|1|0|Tipo persona (G, F, C)
CODICE|3|6|0|Codice persona
DESCR|1|50|0|Descrizione riga F24
DATASCAD|5|8|0|Data scadenza
DATAVERS|5|8|0|Data versamento
@ -14,14 +18,27 @@ RATEAZIONE|1|8|0|Rateazione/Regione/Prov.
ANNO|2|4|0|Anno di riferimento
IMPORTODEB|4|15|3|Importo a debito
IMPORTOCRE|4|15|3|Importo a credito
SEDE|1|4|0|Sede sezione INPS
DETRAZICI|4|15|3|Detrazione ICI
SEDE|1|5|0|Sede sezione INPS/INAIL
MATRICOLA|1|17|0|Matricola
PERIODODA|10|6|0|Inizio periodo di riferimento
PERIODOA|10|6|0|Fine periodo di riferimento
NUMREG|3|7|0|Numero di registrazione contabile
INTIVATRIM|4|14|3|Interessi IVA
4
CODREG|2|2|0|COdice Regione
ENTECOM|1|4|0|Codice Ente/Comune
RAVVED|8|1|0|Ravvedimento
IMMVAR|8|1|0|Immobili variati
ACCONTO|8|1|0|Acconto
SALDO|8|1|0|Saldo
NUMIMM|2|2|0|Numero Immobli
POSASS|3|8|0|Posizione assicurativa INAIL
CIN|2|2|0|Codice di controllo
CAUSINAIL|1|1|0|Causale INAIL
NUMRIF|3|6|0|Numero di riferimento INAIL
5
PROGR|
F24+PROGR|
TIPOINTEST+INTEST+DATASCAD+TRIBUTO|X
TIPOINTEST+INTEST+ANNO+TRIBUTO|X
F24+INDICE+TRIBUTO+PROGR|X

View File

@ -5,7 +5,8 @@
#include <automask.h>
#include <defmask.h>
#include<modaut.h>
#include <modaut.h>
#include <nditte.h>
#include <recarray.h>
#include <relapp.h>
#include <reprint.h>
@ -27,8 +28,8 @@ static char trib2sec(const TString& trib)
}
// Traformazione da codice sheet a codice tributo e viceversa
static const short ids[] = { F_ERARIO, F_INPS, 0 };
static const char sec[] = { 'E', 'I', '\0' };
static const short ids[] = { F_ERARIO, F_INPS, F_REGIONI, F_ICI, F_INAIL, 0 };
static const char sec[] = { 'E', 'I', 'R', 'L', 'N', '\0' };
static char sheet2sec(short id)
{
@ -44,6 +45,13 @@ static short sec2sheet(char s)
return ids[i];
}
static short sec2index(char s)
{
int i;
for (i = 0; sec[i] && sec[i] != s; i++);
return i;
}
///////////////////////////////////////////////////////////
// TF24_query_mask
///////////////////////////////////////////////////////////
@ -179,6 +187,8 @@ class TF24_edit_mask : public TAutomask
{
private:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
virtual bool on_key(KEY key);
protected:
int find_empty_row(TSheet_field& s) const;
@ -189,6 +199,7 @@ protected:
public:
bool add_row(const TRecordset& riga, int pos = -1);
void compute_totals(int mode = 0xFF);
void print();
TF24_edit_mask() : TAutomask("gv0500b") {}
};
@ -229,9 +240,20 @@ void TF24_edit_mask::compute_totals(int mode)
if (mode & 2)
compute_total(F_INPS, 4);
if (mode & 4)
compute_total(F_REGIONI, 4);
if (mode & 8)
compute_total(F_ICI, 4);
if (mode & 16)
compute_total(F_INAIL, 3);
real saldo;
saldo += get_real(F_ERARIO_AB);
saldo += get_real(F_INPS_CD);
saldo += get_real(F_REGIONI_EF);
saldo += get_real(F_ICI_GH);
saldo += get_real(F_INAIL_IL);
set(F_SALDO, saldo);
}
@ -334,6 +356,22 @@ bool TF24_edit_mask::add_row(const TRecordset& riga, int pos)
return ok;
}
void TF24_edit_mask::print()
{
TReport rep;
if (rep.load("gv0500"))
{
TReport_book book;
const TVariant num(get(F_DISTINTA));
TRecordset * r = rep.recordset();
r->set_var("#DISTINTA", num);
book.add(rep);
book.print_or_preview();
}
}
bool TF24_edit_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
bool ok = true;
@ -371,6 +409,52 @@ bool TF24_edit_mask::on_field_event(TOperable_field& o, TField_event e, long jol
break;
}
break;
case F_REGIONI:
switch (e)
{
case se_notify_modify:
case se_notify_del:
compute_totals(0x4);
break;
case se_query_add:
ok = false;
break;
default:
break;
}
break;
case F_ICI:
switch (e)
{
case se_notify_modify:
case se_notify_del:
compute_totals(0x8);
break;
case se_query_add:
ok = false;
break;
default:
break;
}
break;
case F_INAIL:
switch (e)
{
case se_notify_modify:
case se_notify_del:
compute_totals(0x16);
break;
case se_query_add:
ok = false;
break;
default:
break;
}
break;
case F_STAMPA:
if (e == fe_button)
print();
break;
case F_CONT:
if (e == fe_button)
{
@ -391,6 +475,16 @@ bool TF24_edit_mask::on_field_event(TOperable_field& o, TField_event e, long jol
return ok;
}
bool TF24_edit_mask::on_key(KEY key)
{
if (key == K_SHIFT + K_F12)
{
enable(F_DATAVERS);
enable(DLG_SAVEREC);
}
return TAutomask::on_key(key);
}
///////////////////////////////////////////////////////////
// TF24_app
// TRelation_application molto all'avanguardia
@ -412,6 +506,7 @@ private:
protected:
virtual bool user_create();
virtual bool user_destroy();
virtual void print();
virtual bool has_filtered_cursor() const { return _recset != NULL; }
virtual TCursor& get_filtered_cursor() const { return *_recset->cursor(); }
@ -431,7 +526,7 @@ protected:
bool TF24_app::user_create()
{
_recset = new TElencoF24_set(1); // Elenco di tutti gli F24 da inviare
_recset = new TElencoF24_set(3); // Elenco di tutti gli F24 da inviare
_msk.add(new TF24_query_mask);
_msk.add(new TF24_edit_mask);
set_search_field(F_DISTINTA);
@ -446,6 +541,14 @@ bool TF24_app::user_destroy()
return true;
}
void TF24_app::print()
{
TF24_edit_mask & m = *(TF24_edit_mask *)get_mask(1);
if (m.is_running() && m.field(F_STAMPA).enabled())
m.print();
}
bool TF24_app::get_next_key(TToken_string& key)
{
key.cut(0);
@ -465,8 +568,9 @@ void TF24_app::init_mask(TMask& mask) const
{
TF24_edit_mask& m = (TF24_edit_mask&)mask;
char ti = m.get(F_TIPOINTEST)[0];
long intest = m.get_long(F_PERSON);
m.disable(F_DATAVERS);
long intest = intest = m.get_long(F_PERSON);
char ti = m.get(F_TIPOINTEST)[0];
TString codfis, ragsoc, key;
if (ti == 'C')
{
@ -506,7 +610,7 @@ void TF24_app::init_mask(TMask& mask) const
m.compute_totals();
}
void TF24_app::init_query_mode(TMask& /*mask*/)
void TF24_app::init_query_mode(TMask& /*mask */)
{
}
@ -516,6 +620,7 @@ void TF24_app::init_insert_mode(TMask& mask)
const TMask& q = *get_mask(MODE_QUERY);
const long progr = q.get_long(F_PROGR);
if (progr > 0)
{
TISAM_recordset riga("USE RIGHEF24\nFROM PROGR=#RIGA\nTO PROGR=#RIGA");
@ -526,6 +631,7 @@ void TF24_app::init_insert_mode(TMask& mask)
m.add_row(riga);
}
}
mask.disable(F_STAMPA);
}
void TF24_app::init_modify_mode(TMask& mask)
@ -534,6 +640,7 @@ void TF24_app::init_modify_mode(TMask& mask)
const bool dainviare = mask.get(F_DATAVERS).blank();
mask.enable(DLG_SAVEREC, dainviare);
mask.enable(DLG_DELREC, dainviare);
mask.enable(F_STAMPA);
}
int TF24_app::read(TMask& mask)
@ -583,6 +690,16 @@ int TF24_app::riscrivi(const TMask& mask)
}
TLocalisamfile righef24(LF_RIGHEF24);
TString4 tipo(mask.get(F_TIPOINTEST));
long codice = mask.get_long(F_PERSON);
if (tipo == "D")
{
TString8 key; key.format("%ld", prefix().get_codditta());
const TRectype & firm = cache().get(LF_NDITTE, key);
tipo = firm.get(NDT_TIPOA);
codice = firm.get_long(NDT_CODANAGR);
}
if (_progr.items() > 0)
{
@ -620,6 +737,7 @@ int TF24_app::riscrivi(const TMask& mask)
break;
}
((TMask&)mask).set(F_DISTINTA, f24); // Aggiorna numero distinta
righef24.setkey(1);
}
// Mi preparo a numerare le eventuali righe nuove
@ -692,7 +810,13 @@ int TF24_app::riscrivi(const TMask& mask)
if (fr != NULL)
righef24.put(fr->name(), g->get());
}
char sec = trib2sec(righef24.get("TRIBUTO"));
righef24.put("SEZIONE", sec);
righef24.put("INDICE", sec2index(sec) + 1);
righef24.put("TIPO", tipo);
righef24.put("CODICE", codice);
err = righef24.rewrite();
}
}

605
gv/gv0500.rep Executable file
View File

@ -0,0 +1,605 @@
<?xml version="1.0" encoding="UTF-8" ?>
<report name="gv0500" lpi="6">
<description>Stampa F24</description>
<font face="Courier New" size="12" />
<section type="Head" height="18">
<field x="4" type="Numero" hidden="1" align="right" width="5" pattern="1">
<source>RIGHEF24.ABI</source>
<postscript description="H0.0 POSTSCRIPT">MESSAGE COPY,F1.101</postscript>
</field>
<field x="11" type="Numero" hidden="1" align="right" width="5" pattern="1">
<source>RIGHEF24.CAB</source>
<postscript description="H0.0 POSTSCRIPT">MESSAGE COPY,F1.102</postscript>
</field>
<field x="47.5" y="3" type="Stringa" valign="bottom" width="35" height="2" pattern="1">
<prescript description="H0.0 PRESCRIPT">"S0"
"'"
"ABI" @ +
"'" +
"%BAN"
TABLE_READ</prescript>
</field>
<field x="47.5" y="5" type="Stringa" valign="bottom" width="24" height="2" pattern="1">
<prescript description="H0.0 PRESCRIPT">"S0"
"'"
"ABI" @ +
"CAB" @ +
"'" +
"%BAN"
TABLE_READ</prescript>
</field>
<field x="75" y="6" type="Stringa" width="5" pattern="1">
<prescript description="H0.0 PRESCRIPT">"DENCOM!#103=PROVCOM"
"COM="
"S5" @ +
13
ISAM_READ</prescript>
</field>
<field x="16" y="9" type="Stringa" valign="bottom" hidden="1" bg_color="#FFFF80" width="32" pattern="1" text="# # # # # # # # # # # # # # # #">
<source>CLIFO.COFI</source>
<prescript description="H0.0 PRESCRIPT">#THIS "TIPO" @
"C" = IF
SHOW
#THIS @
STRLEN
11 = IF
#THIS @
" " +
#THIS !
THEN
ELSE
HIDE
THEN
</prescript>
</field>
<field x="16" y="9" type="Stringa" valign="bottom" width="32" pattern="1" text="# # # # # # # # # # # # # # # #">
<source>ANAGR.COFI</source>
<prescript description="H0.0 PRESCRIPT">#THIS "TIPO" @
"C" = NEGATE IF
SHOW
#THIS @
STRLEN
11 = IF
#THIS @
" " +
#THIS !
THEN
ELSE
HIDE
THEN</prescript>
</field>
<field x="16" y="11" type="Stringa" hidden="1" width="30" pattern="1">
<prescript description="H0.0 PRESCRIPT">#THIS "TIPO" @
"C" = IF
SHOW
"CLIFO.RAGSOC" @
0
30
STRMID
#THIS !
ELSE
HIDE
THEN</prescript>
</field>
<field x="16" y="11" type="Stringa" width="30" pattern="1">
<prescript description="H0.0 PRESCRIPT">#THIS "TIPO" @
"C" = NEGATE IF
SHOW
"ANAGR.RAGSOC" @
0
30
STRMID
#THIS !
ELSE
HIDE
THEN</prescript>
</field>
<field x="58.5" y="11" type="Stringa" hidden="1" width="20" pattern="1">
<prescript description="H0.0 PRESCRIPT">#THIS "TIPO" @
"C" = IF
SHOW
"CLIFO.RAGSOC" @
30
20
STRMID
#THIS !
ELSE
HIDE
THEN</prescript>
</field>
<field x="58.5" y="11" type="Stringa" width="20" pattern="1">
<prescript description="H0.0 PRESCRIPT">#THIS "TIPO" @
"C" = NEGATE IF
SHOW
"ANAGR.RAGSOC" @
30
20
STRMID
#THIS !
ELSE
HIDE
THEN</prescript>
</field>
<field x="15.5" y="13" type="Numero" align="right" width="4" pattern="1" hide_zero="1" text="# #">
<prescript description="H0.0 PRESCRIPT">"ANAGR.COFI" @
DUP
"" = IF
DROP
"CLIFO.COFI" @
THEN
DUP
STRLEN
16 = IF
9
2
STRMID
DUP
40 &#3E; IF
40 -
"F" #104 !
ELSE
"M" #104 !
THEN
#THIS !
THEN</prescript>
</field>
<field x="20" y="13" type="Array" width="4" pattern="1">
<prescript description="H0.0 PRESCRIPT">"ANAGR.COFI" @
DUP
"" = IF
DROP
"CLIFO.COFI" @
THEN
DUP
STRLEN
16 = IF
8
1
STRMID
#THIS !
THEN</prescript>
<list>
<li Value=" " Code=" " />
<li Value="0 1" Code="A" />
<li Value="0 2" Code="B" />
<li Value="0 3" Code="C" />
<li Value="0 4" Code="D" />
<li Value="0 5" Code="E" />
<li Value="0 6" Code="H" />
<li Value="0 7" Code="L" />
<li Value="0 8" Code="M" />
<li Value="0 9" Code="P" />
<li Value="1 0" Code="R" />
<li Value="1 1" Code="S" />
<li Value="1 2" Code="T" />
</list>
</field>
<field x="23.5" y="13" type="Numero" align="right" width="8" pattern="1" hide_zero="1" text="# # # #">
<prescript description="H0.0 PRESCRIPT">"ANAGR.COFI" @
DUP
"" = IF
DROP
"CLIFO.COFI" @
THEN
DUP
STRLEN
16 = IF
6
2
STRMID
#THIS !
#THIS @
1900 +
DUP
50 &#3C; IF
100 +
THEN
#THIS !
THEN</prescript>
</field>
<field x="52" y="15" type="Stringa" hidden="1" width="30" height="2" pattern="1">
<source>CLIFO.INDCF+", "+CLIFO.CIVCF</source>
<prescript description="H0.0 PRESCRIPT">#THIS "TIPO" @
"C" = IF
SHOW
ELSE
HIDE
THEN</prescript>
</field>
<field x="52" y="15" type="Stringa" width="30" height="2" pattern="1">
<source>ANAGR.INDRES+", "+ANAGR.CIVRES</source>
<prescript description="H0.0 PRESCRIPT">#THIS "TIPO" @
"C" = NEGATE IF
SHOW
ELSE
HIDE
THEN</prescript>
</field>
<field y="19" type="Array" hidden="1" width="1" pattern="1">
<source>RIGHEF24.TIPO</source>
<list>
<li Value="C" Code="C">MESSAGE SHOW,2@ MESSAGE HIDE,1@</li>
<li Value="F" Code="F">MESSAGE SHOW,1@ MESSAGE HIDE,2@</li>
<li Value="G" Code="G">MESSAGE SHOW,1@ MESSAGE HIDE,2@</li>
</list>
</field>
<field x="16" y="15" type="Stringa" hidden="1" width="30" height="2" id="101" pattern="1">
<prescript description="H0.101 PRESCRIPT">#THIS "TIPO" @
"C" = IF
SHOW
"DENCOM!#103=PROVCOM"
"CLIFO.STATOCF" @
"" = NEGATE IF
"STATO="
"CLIFO.STATOCF" @ +
"!COM" +
ELSE
"COM="
THEN
"CLIFO.COMCF" @ +
13
ISAM_READ
ELSE
HIDE
THEN</prescript>
</field>
<field x="16" y="15" type="Stringa" width="30" height="2" id="102" pattern="1">
<prescript description="H0.102 PRESCRIPT">#THIS "TIPO" @
"C" = NEGATE IF
SHOW
"DENCOM!#103=PROVCOM"
"COM="
"ANAGR.COMRES" @ +
13
ISAM_READ
ELSE
HIDE
THEN</prescript>
</field>
<field x="47" y="15" type="Stringa" width="4" id="103" pattern="1" text="# #" />
<field x="34.5" y="13" type="Stringa" width="1" id="104" pattern="1" />
<field x="38.5" y="13" type="Stringa" width="39" id="105" pattern="1">
<prescript description="H0.105 PRESCRIPT">"DENCOM!#106=PROVCOM"
"COM="
"ANAGR.COFI" @
DUP
"" = IF
DROP
"CLIFO.COFI" @
THEN
DUP
STRLEN
16 = IF
11
4
STRMID
THEN
+
13
ISAM_READ
</prescript>
</field>
<field x="76.5" y="13" type="Stringa" width="4" id="106" pattern="1" text="# #" />
</section>
<section type="Head" level="1">
<prescript description="H1 PRESCRIPT">VARIABLE HB0
VARIABLE HB1
VARIABLE HB2
VARIABLE HB3
VARIABLE HB4
VARIABLE HB5
VARIABLE LS
VARIABLE HS
0 "HB0" !
7 "HB1" !
5 "HB2" !
5 "HB3" !
5 "HB4" !
4 "HB5" !
"" LS !
0
TOT_SEC_HEIGHT
HS !</prescript>
</section>
<section type="Head" level="2" height="2">
<groupby>SEZIONE</groupby>
<prescript description="H2 PRESCRIPT">"F2"
"HB"
"SEZIONE" @
SEC_2_INDEX
+
@
SET_SEC_HEIGHT
"H2"
HS @
"SEZIONE" @
SEC_2_INDEX
TOT_SEC_HEIGHT
-
"SEZIONE" @
SEC_2_INDEX
LS @
SEC_2_INDEX
-
2 *
+
SET_SEC_HEIGHT
"SEZIONE" @
LS !
</prescript>
</section>
<section type="Body">
<field type="Immagine" width="83.7" height="70" pattern="1">
<source>"f24.png"</source>
</field>
</section>
<section type="Body" level="1">
<condition>SEZIONE='E'</condition>
<postscript description="B1 POSTSCRIPT">"F2"
DECR_SEC_HEIGHT</postscript>
<field x="22.5" type="Stringa" width="4" pattern="1">
<source>TRIBUTO</source>
</field>
<field x="31" type="Stringa" width="4" pattern="1">
<source>RATEAZIONE</source>
</field>
<field x="38" type="Numero" align="right" width="4" pattern="1">
<source>ANNO</source>
</field>
<field x="45.5" type="Valuta" align="right" width="11" pattern="1" hide_zero="1" text="###.###.###,@@">
<source>IMPORTODEB</source>
<prescript description="B1.0 PRESCRIPT">#THIS @
"F2.101" +!
</prescript>
</field>
<field x="57.5" type="Valuta" align="right" width="11" pattern="1" hide_zero="1" text="###.###.###,@@">
<source>IMPORTOCRE</source>
<prescript description="B1.0 PRESCRIPT">#THIS @
"F2.102" +!
</prescript>
</field>
</section>
<section type="Body" level="2" bg_color="#FFFF80">
<condition>SEZIONE='I'</condition>
<postscript description="B2 POSTSCRIPT">"F2"
DECR_SEC_HEIGHT</postscript>
<field x="2.5" type="Stringa" width="5" pattern="1">
<source>RIGHEF24.SEDE</source>
</field>
<field x="8" type="Stringa" width="4" pattern="1">
<source>TRIBUTO</source>
</field>
<field x="12.5" type="Stringa" width="18" pattern="1">
<source>RIGHEF24.MATRICOLA</source>
</field>
<field x="31" type="Numero" align="right" width="6" pattern="1" hide_zero="1" text="@@@@@@">
<source>RIGHEF24.PERIODODA</source>
</field>
<field x="38" type="Numero" align="right" width="6" pattern="1" hide_zero="1" text="@@@@@@">
<source>RIGHEF24.PERIODOA</source>
</field>
<field x="45.5" type="Valuta" align="right" width="11" pattern="1" hide_zero="1" text="###.###.###,@@">
<source>IMPORTODEB</source>
<prescript description="B2.0 PRESCRIPT">#THIS @
"F2.101" +!
</prescript>
</field>
<field x="57.5" type="Valuta" align="right" width="11" pattern="1" hide_zero="1" text="###.###.###,@@">
<source>IMPORTOCRE</source>
<prescript description="B2.0 PRESCRIPT">#THIS @
"F2.102" +!
</prescript>
</field>
</section>
<section type="Body" level="3">
<condition>SEZIONE=='R'</condition>
<postscript description="B3 POSTSCRIPT">"F2"
DECR_SEC_HEIGHT</postscript>
<field x="1.5" type="Numero" align="right" width="5" pattern="1" text="@ @">
<source>RIGHEF24.CODREG</source>
</field>
<field x="22" type="Stringa" width="4" pattern="1">
<source>TRIBUTO</source>
</field>
<field x="31" type="Stringa" width="4" pattern="1">
<source>RATEAZIONE</source>
</field>
<field x="38" type="Numero" align="right" width="4" pattern="1">
<source>ANNO</source>
</field>
<field x="45.5" type="Valuta" align="right" width="11" pattern="1" hide_zero="1" text="###.###.###,@@">
<source>IMPORTODEB</source>
<prescript description="B3.0 PRESCRIPT">#THIS @
"F2.101" +!
</prescript>
</field>
<field x="57.5" type="Valuta" align="right" width="11" pattern="1" hide_zero="1" text="###.###.###,@@">
<source>IMPORTOCRE</source>
<prescript description="B3.0 PRESCRIPT">#THIS @
"F2.102" +!
</prescript>
</field>
</section>
<section type="Body" level="4">
<condition>SEZIONE=='L'</condition>
<postscript description="B4 POSTSCRIPT">"F2"
DECR_SEC_HEIGHT</postscript>
<field x="2.9" type="Stringa" bg_color="#FFFF80" width="7" pattern="1" text="# # # #">
<source>RIGHEF24.ENTECOM</source>
<prescript description="B4.0 PRESCRIPT">#THIS @
DUP
4 SWAP
STRLEN
DO
" " +
LOOP
#THIS !
</prescript>
</field>
<field x="10.5" type="Stringa" width="1" pattern="1">
<source>RIGHEF24.RAVVED</source>
</field>
<field x="12.5" type="Stringa" width="1" pattern="1">
<source>RIGHEF24.IMMVAR</source>
</field>
<field x="14.5" type="Stringa" width="1" pattern="1">
<source>RIGHEF24.ACCONTO</source>
</field>
<field x="16.5" type="Stringa" width="1" pattern="1">
<source>RIGHEF24.SALDO</source>
</field>
<field x="18.2" type="Numero" align="right" width="2" pattern="1" hide_zero="1">
<source>RIGHEF24.NUMIMM</source>
</field>
<field x="22.5" type="Stringa" width="4" pattern="1">
<source>TRIBUTO</source>
</field>
<field x="31" type="Stringa" width="4" pattern="1">
<source>RATEAZIONE</source>
</field>
<field x="38" type="Numero" align="right" width="4" pattern="1">
<source>ANNO</source>
</field>
<field x="45.5" type="Valuta" align="right" width="11" pattern="1" hide_zero="1" text="###.###.###,@@">
<source>IMPORTODEB</source>
<prescript description="B4.0 PRESCRIPT">#THIS @
"F2.101" +!
</prescript>
</field>
<field x="57.5" type="Valuta" align="right" width="11" pattern="1" hide_zero="1" text="###.###.###,@@">
<source>IMPORTOCRE</source>
<prescript description="B4.0 PRESCRIPT">#THIS @
"F2.102" +!
</prescript>
</field>
</section>
<section type="Body" level="5">
<condition>SEZIONE=='N'</condition>
<postscript description="B5 POSTSCRIPT">"F2"
DECR_SEC_HEIGHT</postscript>
<field x="14" type="Stringa" width="5" pattern="1">
<source>RIGHEF24.SEDE</source>
</field>
<field x="19.5" type="Numero" align="right" width="8" pattern="1">
<source>RIGHEF24.POSASS</source>
</field>
<field x="29" type="Numero" align="right" width="2" pattern="1">
<source>RIGHEF24.CIN</source>
</field>
<field x="33" type="Numero" align="right" width="6" pattern="1">
<source>RIGHEF24.NUMRIF</source>
</field>
<field x="40.5" type="Stringa" width="1" pattern="1">
<source>RIGHEF24.CAUSINAIL</source>
</field>
<field x="45.5" type="Valuta" align="right" width="11" pattern="1" hide_zero="1" text="###.###.###,@@">
<source>IMPORTODEB</source>
<prescript description="B5.0 PRESCRIPT">#THIS @
"F2.101" +!
</prescript>
</field>
<field x="57.5" type="Valuta" align="right" width="11" pattern="1" hide_zero="1" text="###.###.###,@@">
<source>IMPORTOCRE</source>
<prescript description="B5.0 PRESCRIPT">#THIS @
"F2.102" +!
</prescript>
</field>
</section>
<section type="Foot" />
<section y="58" type="Foot" level="1" bg_color="#80FF80">
<field x="23.5" y="6.75" type="Numero" align="right" width="5" id="101" pattern="1" text="@@@@@" />
<field x="36" y="6.75" type="Numero" align="right" width="5" id="102" pattern="1" text="@@@@@" />
<field x="69.5" y="0.87" type="Valuta" align="right" bg_color="#FF8080" width="11" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
<postscript description="F1.103 POSTSCRIPT">0 #THIS !</postscript>
</field>
</section>
<section type="Foot" level="2" bg_color="#80FF80" height="5">
<postscript description="F2 POSTSCRIPT">\ Ripristina l'altezza del footer
"F2"
"HB2" @
SET_SEC_HEIGHT
LS @
SEC_2_INDEX
1
+
TOT_SEC_HEIGHT
HS !
</postscript>
<field x="69.5" type="Valuta" align="right" width="11" pattern="1" hide_zero="1" text="###.###.###,@@">
<source>#101-#102</source>
<prescript description="F2.0 PRESCRIPT">"F2"
REP_MESSAGE_ALIGN_BOTTOM
</prescript>
<postscript description="F2.0 POSTSCRIPT">MESSAGE ADD,F1.103</postscript>
</field>
<field x="45.5" y="0.06" type="Valuta" align="right" width="11" id="101" pattern="1" hide_zero="1" text="###.###.###,@@">
<prescript description="F2.101 PRESCRIPT">"F2"
REP_MESSAGE_ALIGN_BOTTOM</prescript>
<postscript description="F2.101 POSTSCRIPT">0 #THIS !</postscript>
</field>
<field x="57.5" y="0.06" type="Valuta" align="right" width="11" id="102" pattern="1" hide_zero="1" text="###.###.###,@@">
<prescript description="F2.102 PRESCRIPT">"F2"
REP_MESSAGE_ALIGN_BOTTOM</prescript>
<postscript description="F2.102 POSTSCRIPT">0 #THIS !</postscript>
</field>
</section>
<sql>USE RIGHEF24 KEY 5
JOIN ANAGR INTO TIPOA==TIPO CODANAGR==CODICE
JOIN CLIFO INTO TIPOCF==TIPO CODCF==CODICE
FROM F24=#DISTINTA
TO F24=#DISTINTA</sql>
<prescript description="PRESCRIPT">: SET_SEC_HEIGHT ( s h -- )
0 SWAP ROT
SET_SIZE
;
: DECR_SEC_HEIGHT ( s -- )
DUP
GET_SIZE
SWAP
DROP
1 -
SET_SEC_HEIGHT
;
: SEC_2_INDEX ( s -- n )
DUP
"E" = IF
1
ELSE
DUP
"I" = IF
2
ELSE
DUP
"R" = IF
3
ELSE
DUP
"L" = IF
4
ELSE
DUP
"N" = IF
5
ELSE
0
THEN
THEN
THEN
THEN
THEN
SWAP
DROP
;
: TOT_SEC_HEIGHT ( n -- n )
VARIABLE TOT
0 TOT !
6 SWAP DO
"HB"
I
+ @
TOT +!
LOOP
TOT @
;</prescript>
</report>

View File

@ -14,6 +14,7 @@
#define F_COFI 301
#define F_RAGSOC 302
#define F_CONT 303
#define F_STAMPA 304
#define F_ERARIO 401
#define F_ERARIO_A 402
@ -25,6 +26,21 @@
#define F_INPS_D 503
#define F_INPS_CD 504
#define F_REGIONI 601
#define F_REGIONI_E 602
#define F_REGIONI_F 603
#define F_REGIONI_EF 604
#define F_ICI 701
#define F_ICI_G 702
#define F_ICI_H 703
#define F_ICI_GH 704
#define F_INAIL 801
#define F_INAIL_I 802
#define F_INAIL_L 803
#define F_INAIL_IL 804
#define F_SALDO 999

View File

@ -78,6 +78,7 @@ BEGIN
OUTPUT F_CLIFO CODCF
CHECKTYPE NORMAL
ADD RUN cg0 -1 C
MESSAGE COPY,F_PERSON
END
NUMBER F_PERSON 6
@ -96,9 +97,9 @@ END
LIST F_TIPO 1 10
BEGIN
PROMPT 2 4 "Tipo distinta "
ITEM "3|Tutte"
ITEM "1|Da inviare"
ITEM "2|Inviata"
ITEM "3|Tutte"
END
NUMBER F_DISTINTA 6

View File

@ -92,7 +92,7 @@ BEGIN
FLAGS "D"
END
GROUPBOX -1 78 5
GROUPBOX -1 78 6
BEGIN
PROMPT 1 5 "CONTRIBUENTE"
END
@ -115,9 +115,9 @@ BEGIN
FLAGS "D"
END
STRING F_COFI 13
STRING F_COFI 16
BEGIN
PROMPT 47 6 "Codice fiscale "
PROMPT 45 6 "Codice fiscale "
FLAGS "D"
END
@ -127,18 +127,25 @@ BEGIN
FLAGS "D"
END
BUTTON F_CONT 20
BUTTON F_STAMPA 10 2
BEGIN
PROMPT 2 8 "Contabilizza"
PROMPT -12 8 "~Stampa"
PICTURE BMP_PRINT
FLAGS "D"
END
BUTTON F_CONT 10 2
BEGIN
PROMPT -22 8 "~Contabilizza"
FLAGS "D"
END
TEXT -1
BEGIN
PROMPT 1 10 "@bSEZIONE ERARIO"
PROMPT 1 11 "@bSEZIONE ERARIO"
END
SPREADSHEET F_ERARIO 0 8
SPREADSHEET F_ERARIO 0 7
BEGIN
PROMPT 2 11 "Erario"
ITEM "cod.\ntrib.@4"
@ -180,7 +187,7 @@ BEGIN
PROMPT 1 0 "@bSEZIONE INPS"
END
SPREADSHEET F_INPS 0 6
SPREADSHEET F_INPS 0 5
BEGIN
PROMPT 2 1 "INPS"
ITEM "codice\nsede"
@ -197,19 +204,143 @@ END
CURRENCY F_INPS_C 15
BEGIN
PROMPT 2 8 "@b(C) "
PROMPT 2 6 "@b(C) "
FLAGS "D"
END
CURRENCY F_INPS_D 15
BEGIN
PROMPT 26 8 "@b(D) "
PROMPT 26 6 "@b(D) "
FLAGS "D"
END
CURRENCY F_INPS_CD 15
BEGIN
PROMPT 50 8 "@bSaldo (C-D) "
PROMPT 50 6 "@bSaldo (C-D) "
FLAGS "D"
END
TEXT -1
BEGIN
PROMPT 1 7 "@bSEZIONE Regioni"
END
SPREADSHEET F_REGIONI 0 5
BEGIN
PROMPT 2 8 "Regioni"
ITEM "Regione@10"
ITEM "cod.\ntrib.@4"
ITEM "rateazione@10"
ITEM "anno\nrif."
ITEM "importi a debito\nversati@18"
ITEM "importi a credito\ncompensati@18"
ITEM "riga@7"
ITEM "descrizione@50"
ITEM "Data scadenza"
END
CURRENCY F_REGIONI_E 15
BEGIN
PROMPT 2 13 "@b(E) "
FLAGS "D"
END
CURRENCY F_REGIONI_F 15
BEGIN
PROMPT 26 13 "@b(F) "
FLAGS "D"
END
CURRENCY F_REGIONI_EF 15
BEGIN
PROMPT 50 13 "@bSaldo (E-F) "
FLAGS "D"
END
TEXT -1
BEGIN
PROMPT 1 14 "@bSEZIONE ICI"
END
SPREADSHEET F_ICI 0 5
BEGIN
PROMPT 2 15 "ICI ed altri tributi locali"
ITEM "cod.\nente\ncom.@4"
ITEM "Ravved."
ITEM "Immob.\nvariati"
ITEM "Acconto"
ITEM "Saldo"
ITEM "Numero\nImmobili"
ITEM "cod.\ntrib.@4"
ITEM "rateazione@10"
ITEM "anno\nrif."
ITEM "importi a debito\nversati@18"
ITEM "importi a credito\ncompensati@18"
ITEM "riga@7"
ITEM "descrizione@50"
ITEM "Data scadenza"
END
CURRENCY F_ICI_G 15
BEGIN
PROMPT 2 20 "@b(G) "
FLAGS "D"
END
CURRENCY F_ICI_H 15
BEGIN
PROMPT 26 20 "@b(H) "
FLAGS "D"
END
CURRENCY F_ICI_GH 15
BEGIN
PROMPT 50 20 "@bSaldo (G-H) "
FLAGS "D"
END
ENDPAGE
PAGE "INAIL" -1 -1 0 0
TEXT -1
BEGIN
PROMPT 1 0 "@bSEZIONE INAIL"
END
SPREADSHEET F_INAIL 0 5
BEGIN
PROMPT 2 1 "INAIL"
ITEM "cod.\ntrib.@4"
ITEM "codice\nsede"
ITEM "Posizione\nassicurativa"
ITEM "codice\ncontr."
ITEM "Numero di\nriferimento"
ITEM "Causale"
ITEM "importi\na debito@15"
ITEM "importi\na credito@15"
ITEM "riga@7"
ITEM "descrizione@50"
ITEM "Data scadenza"
END
CURRENCY F_INAIL_I 15
BEGIN
PROMPT 2 7 "@b(I) "
FLAGS "D"
END
CURRENCY F_INAIL_L 15
BEGIN
PROMPT 26 7 "@b(L) "
FLAGS "D"
END
CURRENCY F_INAIL_IL 15
BEGIN
PROMPT 50 7 "@bSaldo (I-L) "
FLAGS "D"
END
@ -238,6 +369,7 @@ BEGIN
DISPLAY "Descrizione@70" S0
OUTPUT 101 CODTAB
CHECKTYPE REQUIRED
FLAGS "U"
FIELD TRIBUTO
END
@ -254,6 +386,7 @@ END
STRING 102 8
BEGIN
PROMPT 9 2 ""
FIELD RATEAZIONE
END
TEXT -1
@ -324,7 +457,7 @@ END
STRING 108 50
BEGIN
PROMPT 10 4 ""
PROMPT 15 4 ""
FIELD DESCR
END
@ -396,6 +529,7 @@ BEGIN
DISPLAY "Descrizione@70" S0
OUTPUT 102 CODTAB
CHECKTYPE REQUIRED
FLAGS "U"
FIELD TRIBUTO
END
@ -417,7 +551,7 @@ END
TEXT -1
BEGIN
PROMPT 40 0 "periodo di riferimento"
PROMPT 42 0 "periodo di riferimento"
END
TEXT -1
@ -427,18 +561,18 @@ END
NUMBER 104 6
BEGIN
PROMPT 48 2 ""
PROMPT 40 2 ""
FIELD PERIODODA
END
TEXT -1
BEGIN
PROMPT 48 1 "a mm/aaaa"
PROMPT 50 1 "a mm/aaaa"
END
NUMBER 105 6
BEGIN
PROMPT 40 2 ""
PROMPT 50 2 ""
FIELD PERIODOA
END
@ -483,7 +617,7 @@ END
STRING 109 50
BEGIN
PROMPT 10 7 ""
PROMPT 15 7 ""
FIELD DESCR
END
@ -517,3 +651,534 @@ END
ENDPAGE
ENDMASK
PAGE "Regioni" -1 -1 80 7
TEXT -1
BEGIN
PROMPT 1 1 "Regione"
END
STRING 101 2
BEGIN
PROMPT 1 2 ""
FLAGS "RZ"
KEY 1
USE %RGI
INPUT CODTAB 101
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione @50" S0
OUTPUT 101 CODTAB
CHECKTYPE REQUIRED
FIELD CODREG
END
TEXT -1
BEGIN
PROMPT 9 0 "codice"
END
TEXT -1
BEGIN
PROMPT 9 1 "tributo"
END
STRING 102 4
BEGIN
PROMPT 9 2 ""
USE %TRB SELECT S6=="R"
INPUT CODTAB 102
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@70" S0
OUTPUT 102 CODTAB
CHECKTYPE REQUIRED
FLAGS "U"
FIELD TRIBUTO
END
TEXT -1
BEGIN
PROMPT 17 1 "rateazione"
END
STRING 103 8
BEGIN
PROMPT 17 2 ""
FIELD RATEAZIONE
END
TEXT -1
BEGIN
PROMPT 28 1 "anno"
END
NUMBER 104 4
BEGIN
PROMPT 28 2 ""
FIELD ANNO
END
TEXT -1
BEGIN
PROMPT 34 0 "importi a debito"
END
TEXT -1
BEGIN
PROMPT 34 1 "versati"
END
CURRENCY 105 15
BEGIN
PROMPT 34 2 ""
FIELD IMPORTODEB
END
TEXT -1
BEGIN
PROMPT 54 0 "importi a credito"
END
TEXT -1
BEGIN
PROMPT 54 1 "compensati"
END
CURRENCY 106 15
BEGIN
PROMPT 54 2 ""
FIELD IMPORTOCRE
END
NUMBER 107 7
BEGIN
PROMPT 1 4 "riga "
FLAGS "D"
FIELD PROGR
END
STRING 108 50
BEGIN
PROMPT 15 4 ""
FIELD DESCR
END
DATE 109
BEGIN
PROMPT 1 5 "Scad."
FIELD DATASCAD
END
BUTTON DLG_USER 10 2
BEGIN
PROMPT -14 -1 ""
PICTURE BMP_LINK
END
BUTTON DLG_DELREC 10 2
BEGIN
PROMPT -24 -1 ""
END
BUTTON DLG_OK 10 2
BEGIN
PROMPT -34 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -44 -1 ""
END
ENDPAGE
ENDMASK
PAGE "ICI ed altri tributi locali" -1 -1 80 10
TEXT -1
BEGIN
PROMPT 1 0 "codice ente"
END
TEXT -1
BEGIN
PROMPT 1 1 "comune"
END
STRING 101 4
BEGIN
PROMPT 1 2 ""
FIELD ENTECOM
END
TEXT -1
BEGIN
PROMPT 8 1 "Ravv."
END
BOOLEAN 102
BEGIN
PROMPT 8 2 ""
FIELD RAVVED
END
TEXT -1
BEGIN
PROMPT 13 0 "Imm."
END
TEXT -1
BEGIN
PROMPT 13 1 "var."
END
BOOLEAN 103
BEGIN
PROMPT 13 2 ""
FIELD IMMVAR
END
TEXT -1
BEGIN
PROMPT 17 1 "Acc."
END
BOOLEAN 104
BEGIN
PROMPT 17 2 ""
FIELD ACCONTO
END
TEXT -1
BEGIN
PROMPT 21 1 "Sal."
END
BOOLEAN 105
BEGIN
PROMPT 21 2 ""
FIELD SALDO
END
TEXT -1
BEGIN
PROMPT 25 0 "Num."
END
TEXT -1
BEGIN
PROMPT 25 1 "Imm."
END
NUMBER 106 2
BEGIN
PROMPT 25 2 ""
FIELD NUMIMM
END
TEXT -1
BEGIN
PROMPT 29 0 "codice"
END
TEXT -1
BEGIN
PROMPT 29 1 "tributo"
END
STRING 107 4
BEGIN
PROMPT 29 2 ""
USE %TRB SELECT S6=="L"
INPUT CODTAB 107
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@70" S0
OUTPUT 107 CODTAB
CHECKTYPE REQUIRED
FLAGS "U"
FIELD TRIBUTO
END
TEXT -1
BEGIN
PROMPT 37 1 "rateazione"
END
STRING 108 8
BEGIN
PROMPT 37 2 ""
FIELD RATEAZIONE
END
TEXT -1
BEGIN
PROMPT 49 1 "anno"
END
NUMBER 109 4
BEGIN
PROMPT 49 2 ""
FIELD ANNO
END
TEXT -1
BEGIN
PROMPT 1 3 "importi a debito"
END
TEXT -1
BEGIN
PROMPT 1 4 "versati"
END
CURRENCY 110 15
BEGIN
PROMPT 1 5 ""
FIELD IMPORTODEB
END
TEXT -1
BEGIN
PROMPT 21 3 "importi a credito"
END
TEXT -1
BEGIN
PROMPT 21 4 "compensati"
END
CURRENCY 111 15
BEGIN
PROMPT 21 5 ""
FIELD IMPORTOCRE
END
NUMBER 112 7
BEGIN
PROMPT 1 7 "riga "
FLAGS "D"
FIELD PROGR
END
STRING 113 50
BEGIN
PROMPT 15 7 ""
FIELD DESCR
END
DATE 114
BEGIN
PROMPT 1 8 "Scad."
FIELD DATASCAD
END
BUTTON DLG_USER 10 2
BEGIN
PROMPT -14 -1 ""
PICTURE BMP_LINK
END
BUTTON DLG_DELREC 10 2
BEGIN
PROMPT -24 -1 ""
END
BUTTON DLG_OK 10 2
BEGIN
PROMPT -34 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -44 -1 ""
END
ENDPAGE
ENDMASK
PAGE "INAIL" -1 -1 80 7
TEXT -1
BEGIN
PROMPT 1 0 "codice"
END
TEXT -1
BEGIN
PROMPT 1 1 "tributo"
END
STRING 101 4
BEGIN
PROMPT 1 2 ""
USE %TRB SELECT S6=="N"
INPUT CODTAB 101
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@70" S0
OUTPUT 101 CODTAB
CHECKTYPE REQUIRED
FLAGS "U"
FIELD TRIBUTO
END
TEXT -1
BEGIN
PROMPT 8 0 "codice"
END
TEXT -1
BEGIN
PROMPT 8 1 "sede"
END
STRING 102 5
BEGIN
PROMPT 8 2 ""
FIELD SEDE
END
TEXT -1
BEGIN
PROMPT 14 0 "Posizione"
END
TEXT -1
BEGIN
PROMPT 14 1 "Assicur."
END
NUMBER 103 8
BEGIN
PROMPT 14 2 ""
FIELD POSASS
FLAGS "Z"
END
TEXT -1
BEGIN
PROMPT 24 0 "Codice"
END
TEXT -1
BEGIN
PROMPT 24 1 "contr."
END
NUMBER 104 2
BEGIN
PROMPT 24 2 ""
FIELD CIN
FLAGS "Z"
END
TEXT -1
BEGIN
PROMPT 30 0 "Numero"
END
TEXT -1
BEGIN
PROMPT 30 1 "rif."
END
NUMBER 105 6
BEGIN
PROMPT 30 2 ""
FIELD NUMRIF
FLAGS "Z"
END
TEXT -1
BEGIN
PROMPT 38 0 "Caus."
END
TEXT -1
BEGIN
PROMPT 38 1 "INAIL"
END
STRING 106 1
BEGIN
PROMPT 38 2 ""
FIELD CAUSINAIL
FLAGS "U"
END
TEXT -1
BEGIN
PROMPT 45 0 "importi a debito"
END
TEXT -1
BEGIN
PROMPT 45 1 "versati"
END
CURRENCY 107 15
BEGIN
PROMPT 45 2 ""
FIELD IMPORTODEB
END
TEXT -1
BEGIN
PROMPT 62 0 "importi a credito"
END
TEXT -1
BEGIN
PROMPT 62 1 "compensati"
END
CURRENCY 108 15
BEGIN
PROMPT 62 2 ""
FIELD IMPORTOCRE
END
NUMBER 109 7
BEGIN
PROMPT 1 4 "riga "
FIELD PROGR
FLAGS "D"
END
STRING 110 50
BEGIN
PROMPT 15 4 ""
FIELD DESCR
END
DATE 111
BEGIN
PROMPT 1 5 "Scad."
FIELD DATASCAD
END
BUTTON DLG_USER 10 2
BEGIN
PROMPT -14 -1 ""
PICTURE BMP_LINK
END
BUTTON DLG_DELREC 10 2
BEGIN
PROMPT -24 -1 ""
END
BUTTON DLG_OK 10 2
BEGIN
PROMPT -34 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -44 -1 ""
END
ENDPAGE
ENDMASK

View File

@ -73,6 +73,9 @@ protected:
void add_10_20(const TRecordset& riga, const TMask& m);
void add_erario(TRecordset& riga, real& saldo_tot, real& credito_tot);
void add_inps(TRecordset& riga, real& saldo_tot, real& credito_tot);
void add_regioni(TRecordset& riga, real& saldo_tot, real& credito_tot);
void add_ici(TRecordset& riga, real& saldo_tot, real& credito_tot);
void add_inail(TRecordset& riga, real& saldo_tot, real& credito_tot);
void add_50(TRecordset& riga, const real& saldo_tot, const real& credito_tot, const TMask& m);
void add_delega(long nDelega, const TMask& m);
void add_footer(const TMask& m);
@ -345,7 +348,84 @@ TF24_textset::TF24_textset(const char* query)
add_field("40-04", 44, 58, f, n, "SaldoSezione");
add_field("40-04", 59,120);
add_field("50-01", 1, 1);
add_field("40-05", 1, 1);
add_field("40-05", 2, 3, o, an, "TipoRecord", "40");
add_field("40-05", 4, 10, o, n, "ProgressivoDelega");
add_field("40-05", 11, 12, o, an, "SubtipoRecord", "05");
add_field("40-05", 13, 14, o, n, "CodiceRegione");
add_field("40-05", 15, 16, o, n, "ProgressivoContributo");
add_field("40-05", 17, 20, o, an, "CodiceTributo");
add_field("40-05", 21, 28, o, an, "RiferimentiTributo");
add_field("40-05", 29, 43, f, n, "ImportoDebito"); // non sarebbe f, ma 0 e' valido
add_field("40-05", 44, 58, f, n, "ImportoCredito"); // non sarebbe f, ma 0 e' valido
add_field("40-05", 59,120);
add_field("40-06", 1, 1);
add_field("40-06", 2, 3, o, an, "TipoRecord", "40");
add_field("40-06", 4, 10, o, n, "ProgressivoDelega");
add_field("40-06", 11, 12, o, an, "SubtipoRecord", "06");
add_field("40-05", 13, 14);
add_field("40-06", 15, 29, f, n, "TotaleDebito"); // non sarebbe f, ma 0 e' valido
add_field("40-06", 30, 44, f, n, "TotaleCredito"); // non sarebbe f, ma 0 e' valido
add_field("40-06", 45, 45, o, an, "SegnoSezione");
add_field("40-06", 46, 60, f, n, "SaldoSezione");
add_field("40-06", 61,120);
add_field("40-07", 1, 1);
add_field("40-07", 2, 3, o, an, "TipoRecord", "40");
add_field("40-07", 4, 10, o, n, "ProgressivoDelega");
add_field("40-07", 11, 12, o, an, "SubtipoRecord", "07");
add_field("40-07", 13, 16, o, an, "CodiceEnte");
add_field("40-07", 17, 18, o, n, "ProgressivoContributo");
add_field("40-07", 19, 22, o, an, "CodiceTributo");
add_field("40-07", 23, 30, o, an, "RiferimentiTributo");
add_field("40-07", 31, 45, f, n, "ImportoDebito"); // non sarebbe f, ma 0 e' valido
add_field("40-07", 46, 60, f, n, "ImportoCredito"); // non sarebbe f, ma 0 e' valido
add_field("40-07", 61, 61, f, n, "Ravvedimento");
add_field("40-07", 62, 62, f, n, "ImmobiliVariati");
add_field("40-07", 63, 63, f, n, "Acconto");
add_field("40-07", 64, 64, f, n, "Saldo");
add_field("40-07", 65, 66, f, n, "NumeroFabbricati");
add_field("40-07", 67, 82, f, n, "DetrazioneICI"); // non sarebbe f, ma 0 e' valido
add_field("40-07", 83,120);
add_field("40-08", 1, 1);
add_field("40-08", 2, 3, o, an, "TipoRecord", "40");
add_field("40-08", 4, 10, o, n, "ProgressivoDelega");
add_field("40-08", 11, 12, o, an, "SubtipoRecord", "08");
add_field("40-08", 13, 16);
add_field("40-08", 17, 31, f, n, "TotaleDebito"); // non sarebbe f, ma 0 e' valido
add_field("40-08", 32, 46, f, n, "TotaleCredito"); // non sarebbe f, ma 0 e' valido
add_field("40-08", 47, 47, o, an, "SegnoSezione");
add_field("40-08", 48, 62, f, n, "SaldoSezione");
add_field("40-08", 63,120);
add_field("40-09", 1, 1);
add_field("40-09", 2, 3, o, an, "TipoRecord", "40");
add_field("40-09", 4, 10, o, n, "ProgressivoDelega");
add_field("40-09", 11, 12, o, an, "SubtipoRecord", "09");
add_field("40-09", 13, 14, o, n, "ProgressivoContributo");
add_field("40-09", 15, 19, o, n, "CodiceSede");
add_field("40-09", 20, 27, o, n, "NumeroPosizioneAssicurativa");
add_field("40-09", 28, 29, o, n, "CCNumeroPosizioneAssicurativa");
add_field("40-09", 30, 30, o, an, "Causale");
add_field("40-09", 31, 34);
add_field("40-09", 35, 40, o, n, "NumeroDiRiferimento");
add_field("40-09", 41, 55, f, n, "ImportoDebito"); // non sarebbe f, ma 0 e' valido
add_field("40-09", 56, 70, f, n, "ImportoCredito"); // non sarebbe f, ma 0 e' valido
add_field("40-09", 71,120);
add_field("40-10", 1, 1);
add_field("40-10", 2, 3, o, an, "TipoRecord", "40");
add_field("40-10", 4, 10, o, n, "ProgressivoDelega");
add_field("40-10", 11, 12, o, an, "SubtipoRecord", "10");
add_field("40-10", 13, 27, f, n, "TotaleDebito"); // non sarebbe f, ma 0 e' valido
add_field("40-10", 28, 42, f, n, "TotaleCredito"); // non sarebbe f, ma 0 e' valido
add_field("40-10", 43, 43, o, an, "SegnoSezione");
add_field("40-10", 44, 58, f, n, "SaldoSezione");
add_field("40-10", 59,120);
add_field("50-01", 1, 1);
add_field("50-01", 2, 3, o, an, "TipoRecord", "50");
add_field("50-01", 4, 10, o, n, "ProgressivoDelega");
add_field("50-01", 11, 12, o, an, "SubtipoRecord", "01");
@ -699,6 +779,8 @@ void TF4_sender::add_10_20(const TRecordset& riga, const TMask& m)
else
set("ProvinciaNascita", "EE");
}
set("ProtocolloDelega", riga.get("F24"));
}
/////////////////////////////////////////////////////////
@ -781,6 +863,10 @@ void TF4_sender::add_erario(TRecordset& riga, real& saldo_tot, real& credito_tot
set("ProgressivoDelega", nProgDelega);
set("ProgressivoTributo", ++nProgr);
set("CodiceTributo", tributo);
TString16 rif(riga.get("RATEAZIONE").as_string());
rif << riga.get("ANNO").as_string();
set("RiferimentiTributo", rif);
const real d = riga.get("IMPORTODEB").as_real();
set("ImportoDebito", d);
@ -828,7 +914,10 @@ void TF4_sender::add_inps(TRecordset& riga, real& saldo_tot, real& credito_tot)
set("ProgressivoDelega", nProgDelega);
set("ProgressivoContributo", ++nProgr);
set("CausaleContributo", tributo);
set("CodiceSede", riga.get("SEDE"));
set("MatricolaINPS", riga.get("MATRICOLA"));
set("PeriodoInizio", riga.get("PERIODODA"));
set("PeriodoFine", riga.get("PERIODOA"));
const real d = riga.get("IMPORTODEB").as_real();
set("ImportoDebito", d);
debito += d;
@ -857,6 +946,171 @@ void TF4_sender::add_inps(TRecordset& riga, real& saldo_tot, real& credito_tot)
credito_tot += credito;
}
void TF4_sender::add_regioni(TRecordset& riga, real& saldo_tot, real& credito_tot)
{
const long nProgDelega = _f24->get_count("10");
int nProgr = 0;
real debito, credito;
for (bool ok = riga.move_first(); ok ; ok = riga.move_next())
{
const TString4 tributo = riga.get("TRIBUTO").as_string();
const char sezione = trib2sec(tributo);
if (sezione == 'R')
{
if (new_rec("40-05")) // qui
{
set("ProgressivoDelega", nProgDelega);
set("ProgressivoContributo", ++nProgr);
set("CodiceRegione", riga.get("CODREG").as_int());
set("CodiceTributo", tributo);
TString16 rif(riga.get("RATEAZIONE").as_string());
rif << riga.get("ANNO").as_string();
set("RiferimentiTributo", rif);
const real d = riga.get("IMPORTODEB").as_real();
set("ImportoDebito", d);
debito += d;
const real c = riga.get("IMPORTOCRED").as_real();
set("ImportoCredito", c);
credito += c;
if (nProgr > 4)
log(2, "Numero eccessivo di righe nella sezione Regione");
}
}
}
const real saldo = debito-credito;
if (nProgr > 0 && new_rec("40-06"))
{
set("ProgressivoDelega", nProgDelega);
set("TotaleDebito", debito);
set("TotaleCredito", credito);
set("SegnoSezione", saldo < ZERO ? "N" : "P");
set("SaldoSezione", saldo < ZERO ? -saldo : saldo);
}
saldo_tot += saldo;
credito_tot += credito;
}
void TF4_sender::add_ici(TRecordset& riga, real& saldo_tot, real& credito_tot)
{
const long nProgDelega = _f24->get_count("10");
int nProgr = 0;
real debito, credito;
for (bool ok = riga.move_first(); ok ; ok = riga.move_next())
{
const TString4 tributo = riga.get("TRIBUTO").as_string();
const char sezione = trib2sec(tributo);
if (sezione == 'L')
{
if (new_rec("40-07")) // qui
{
set("ProgressivoDelega", nProgDelega);
set("ProgressivoContributo", ++nProgr);
set("CodiceEnte", riga.get("ENTECOM").as_string());
set("CodiceTributo", tributo);
TString16 rif(riga.get("RATEAZIONE").as_string());
rif << riga.get("ANNO").as_string();
set("RiferimentiTributo", rif);
const real d = riga.get("IMPORTODEB").as_real();
set("ImportoDebito", d);
debito += d;
const real c = riga.get("IMPORTOCRED").as_real();
set("ImportoCredito", c);
credito += c;
set("Ravvedimento", riga.get("RAVVED").as_bool() ? 1 : 0);
set("ImmobiliVariati", riga.get("IMMVAR").as_bool() ? 1 : 0);
set("Acconto", riga.get("ACCONTO").as_bool() ? 1 : 0);
set("Saldo", riga.get("SALDO").as_bool() ? 1 : 0);
set("NumeroFabbricati", riga.get("NUMIMM").as_int());
set("DetrazioneICI", 0L);
if (nProgr > 4)
log(2, "Numero eccessivo di righe nella sezione ICI/Altri tributi locali");
}
}
}
const real saldo = debito-credito;
if (nProgr > 0 && new_rec("40-08"))
{
set("ProgressivoDelega", nProgDelega);
set("TotaleDebito", debito);
set("TotaleCredito", credito);
set("SegnoSezione", saldo < ZERO ? "N" : "P");
set("SaldoSezione", saldo < ZERO ? -saldo : saldo);
}
saldo_tot += saldo;
credito_tot += credito;
}
void TF4_sender::add_inail(TRecordset& riga, real& saldo_tot, real& credito_tot)
{
const long nProgDelega = _f24->get_count("10");
int nProgr = 0;
real debito, credito;
for (bool ok = riga.move_first(); ok ; ok = riga.move_next())
{
const TString4 tributo = riga.get("TRIBUTO").as_string();
const char sezione = trib2sec(tributo);
if (sezione == 'N')
{
if (new_rec("40-09")) // qui
{
set("ProgressivoDelega", nProgDelega);
set("ProgressivoContributo", ++nProgr);
set("CodiceSede", riga.get("SEDE").as_string());
set("NumeroPosizioneAssicurativa", riga.get("POSASS").as_real());
set("CCNumeroPosizioneAssicurativa", riga.get("CIN").as_real());
set("Causale", riga.get("CAUSINAIL").as_string());
set("NumeroDiRiferimento", riga.get("NUMRIF").as_real());
const real d = riga.get("IMPORTODEB").as_real();
set("ImportoDebito", d);
debito += d;
const real c = riga.get("IMPORTOCRED").as_real();
set("ImportoCredito", c);
credito += c;
if (nProgr > 3)
log(2, "Numero eccessivo di righe nella sezione INAIL");
}
}
}
const real saldo = debito-credito;
if (nProgr > 0 && new_rec("40-10"))
{
set("ProgressivoDelega", nProgDelega);
set("TotaleDebito", debito);
set("TotaleCredito", credito);
set("SegnoSezione", saldo < ZERO ? "N" : "P");
set("SaldoSezione", saldo < ZERO ? -saldo : saldo);
}
saldo_tot += saldo;
credito_tot += credito;
}
void TF4_sender::add_50(TRecordset& riga, const real& saldo_tot, const real& credito_tot, const TMask& m)
{
riga.move_first();
@ -920,6 +1174,9 @@ void TF4_sender::add_delega(long nDelega, const TMask& m)
add_10_20(delega, m);
add_erario(delega, saldo_tot, credito_tot);
add_inps(delega, saldo_tot, credito_tot);
add_regioni(delega, saldo_tot, credito_tot);
add_ici(delega, saldo_tot, credito_tot);
add_inail(delega, saldo_tot, credito_tot);
add_50(delega, saldo_tot, credito_tot, m);
_f24->totale_positivi() += saldo_tot;

View File

@ -107,7 +107,7 @@ bool TF24_set::contabilizza(TLog_report & log)
}
else
{
msg.format("Tributo %s : Conto %d %d %ld assente", codtrib, c.gruppo(), c.conto(), c.sottoconto());
msg.format("Tributo %s : Conto %d %d %ld assente", (const char *) codtrib, c.gruppo(), c.conto(), c.sottoconto());
log.log(2, msg);
return false;
}
@ -137,7 +137,7 @@ bool TF24_set::contabilizza(TLog_report & log)
}
else
{
msg.format(FR("Banca %s : Conto %d %d %ld assente"), codbnp, c.gruppo(), c.conto(), c.sottoconto());
msg.format(FR("Banca %s : Conto %d %d %ld assente"), (const char *) codbnp, c.gruppo(), c.conto(), c.sottoconto());
log.log(2, msg);
return false;
}