Spesometro 2013

git-svn-id: svn://10.65.10.50/branches/R_10_00@22903 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2013-12-13 09:28:16 +00:00
parent ef83caf3bc
commit 735f648bbb
10 changed files with 2298 additions and 3263 deletions

View File

@ -6,10 +6,10 @@ int main(int argc, char** argv)
const int n = argc > 1 ? argv[1][1]-'0' : 0; const int n = argc > 1 ? argv[1][1]-'0' : 0;
switch (n) switch (n)
{ {
case 1: fe0200(argc, argv); break; // Immissione / Generazione Spesometro case 1: fe0200(argc, argv); break; // Gestione tabelle (contratti)
case 2: fe0300(argc, argv); break; // Somma file Spesometro (Dorotee) case 2: fe0300(argc, argv); break; // Somma file Spesometro (Dorotee)
case 3: fe0400(argc, argv); break; // Controllo contratti su movimenti case 3: fe0400(argc, argv); break; // Controllo contratti su movimenti
default: fe0100(argc, argv); break; // Gestione tabelle (contratti) default: fe0100(argc, argv); break; // Immissione / Generazione Spesometro
} }
return 0; return 0;
} }

File diff suppressed because it is too large Load Diff

View File

@ -2,9 +2,8 @@
<report name="fe0100" lpi="6"> <report name="fe0100" lpi="6">
<font face="Courier New" size="8" /> <font face="Courier New" size="8" />
<section type="Head" pattern="1"> <section type="Head" pattern="1">
<field x="8" type="Stringa" valign="center" align="center" width="112" height="3" pattern="1"> <field x="8" type="Testo" valign="center" align="center" width="112" height="3" pattern="1" text="Spesometro 2013">
<font face="Courier New" bold="1" size="24" /> <font face="Courier New" bold="1" size="24" />
<source>"Dati rilevanti " + ANNO + " tipo " + TIPO</source>
</field> </field>
<field border="3" y="3" type="Linea" width="120" height="0" pattern="1" /> <field border="3" y="3" type="Linea" width="120" height="0" pattern="1" />
<field border="2" x="8" y="3" type="Linea" height="3" pattern="1" /> <field border="2" x="8" y="3" type="Linea" height="3" pattern="1" />
@ -14,22 +13,18 @@
<field border="2" x="83" y="3" type="Linea" height="3" pattern="1" /> <field border="2" x="83" y="3" type="Linea" height="3" pattern="1" />
<field border="2" x="97" y="3" type="Linea" height="3" pattern="1" /> <field border="2" x="97" y="3" type="Linea" height="3" pattern="1" />
<field border="2" x="108" y="3" type="Linea" height="3" pattern="1" /> <field border="2" x="108" y="3" type="Linea" height="3" pattern="1" />
<field x="1" y="4" type="Testo" width="6" pattern="1" text="Riga" /> <field x="1" y="4" type="Testo" width="6" height="2" pattern="1" text="Numero Riga" />
<field border="3" y="6" type="Linea" width="120" height="0" pattern="1" /> <field border="3" y="6" type="Linea" width="120" height="0" pattern="1" />
<field x="9" y="3.5" type="Testo" width="16" id="101" pattern="1" text="Codice Fiscale"> <field x="9" y="3.5" type="Testo" width="16" id="101" pattern="1" text="Codice Fiscale" />
<source>COFI</source>
</field>
<field x="9" y="4.5" type="Testo" width="16" id="102" pattern="1" text="Partita IVA" /> <field x="9" y="4.5" type="Testo" width="16" id="102" pattern="1" text="Partita IVA" />
<field x="27" y="3.5" type="Testo" width="25" height="2" id="201" pattern="1" text="Ragione Sociale" /> <field x="27" y="3.5" type="Testo" width="25" height="2" id="201" pattern="1" text="Ragione Sociale" />
<field x="54" y="3.5" type="Testo" width="10" id="301" pattern="1" text="Data Reg." /> <field x="54" y="3.5" type="Testo" width="10" id="301" pattern="1" text="Data Reg." />
<field x="54" y="4.5" type="Testo" width="10" id="302" pattern="1" text="Num. Doc." /> <field x="54" y="4.5" type="Testo" width="10" id="302" pattern="1" text="Num. Doc." />
<field x="66" y="3.5" type="Testo" width="16" id="401" pattern="1" text="Mod. Pagamento" /> <field x="66" y="3.5" type="Testo" width="16" id="401" pattern="1" text="Tipo record" />
<field x="66" y="4.5" type="Testo" width="16" id="402" pattern="1" text="Tipo Operazione" /> <field x="66" y="4.5" type="Testo" width="16" id="402" pattern="1" text="Noleggio" />
<field x="84" y="3.5" type="Testo" align="right" width="12" id="501" pattern="1" text="Importo" /> <field x="84" y="3.5" type="Testo" align="right" width="12" id="501" pattern="1" text="Importo" />
<field x="84" y="4.5" type="Testo" align="right" width="12" id="502" pattern="1" text="Imposta" /> <field x="84" y="4.5" type="Testo" align="right" width="12" id="502" pattern="1" text="Imposta" />
<field x="100" y="3.5" type="Testo" width="10" height="2" id="601" pattern="1" text="Segno" /> <field x="97" y="3.5" type="Testo" width="10" align="center" height="2" id="601" pattern="1" text="Estero BlackList" />
<field x="109" y="3.5" type="Testo" width="10" id="601" pattern="1" text="Data rett." />
<field x="109" y="4.5" type="Testo" width="10" id="602" pattern="1" text="Num. Rett." />
</section> </section>
<section type="Head" level="1" pattern="1" /> <section type="Head" level="1" pattern="1" />
<section type="Head" level="2" height="1" page_break="1" pattern="1"> <section type="Head" level="2" height="1" page_break="1" pattern="1">
@ -50,64 +45,47 @@
<source>#RECORD.NUMBER</source> <source>#RECORD.NUMBER</source>
</field> </field>
<field x="9" y="0.5" type="Stringa" width="16" id="101" pattern="1"> <field x="9" y="0.5" type="Stringa" width="16" id="101" pattern="1">
<source>COFI</source> <source>CodiceFiscale</source>
</field> </field>
<field x="9" y="1.5" type="Stringa" width="16" id="102" pattern="1"> <field x="9" y="1.5" type="Stringa" width="16" id="102" pattern="1">
<source>PAIV</source> <source>PartitaIVA</source>
</field> </field>
<field x="27" y="0.5" type="Stringa" width="25" height="2" id="201" pattern="1"> <field x="27" y="0.5" type="Stringa" width="25" height="2" id="201" pattern="1">
<source>RAGSOC</source> <source>RagSoc</source>
<alt_source>Cognome+" "+Nome</alt_source>
</field> </field>
<field x="54" y="0.5" type="Data" width="11" id="301" pattern="1"> <field x="54" y="0.5" type="Data" width="11" id="301" pattern="1" >
<source>DATAREG</source> <source>DataReg</source>
</field> </field>
<field x="54" y="1.5" type="Stringa" width="10" id="302" pattern="1"> <field x="54" y="1.5" type="Stringa" width="10" id="302" pattern="1">
<source>NUMDOC</source> <source>NumDoc</source>
</field> </field>
<field x="66" y="0.5" type="Array" width="16" id="401" pattern="1"> <field x="66" y="0.5" type="Stringa" width="16" id="401" pattern="1">
<source>MODPAG</source> <source>Tipo</source>
<list>
<li />
<li Value="Non Frazionato" Code="1" />
<li Value="Frazionato" Code="2" />
<li Value="Periodico" Code="3" />
</list>
</field> </field>
<field x="66" y="1.5" type="Array" width="16" id="402" pattern="1"> <field x="66" y="1.5" type="Array" width="16" id="402" pattern="1">
<source>TIPOPE</source> <source>Noleggio</source>
<list> <list>
<li /> <li Code="" Value="" />
<li Value="Vendita" Code="1" /> <li Code="A" Value="Auto" />
<li Value="Acquisto" Code="2" /> <li Code="B" Value="Camper" />
<li Code="C" Value="Altro" />
<li Code="D" Value="Imbarcazioni" />
<li Code="E" Value="Aeromobili" />
</list> </list>
</field> </field>
<field x="84" y="0.5" type="Numero" align="right" width="12" id="501" pattern="1" text="############"> <field x="84" y="0.5" type="Valuta" align="right" width="12" id="501" pattern="1" text="#########.@@">
<source>IMPORTO</source> <source>Imponibile</source>
</field> </field>
<field x="84" y="1.5" type="Numero" align="right" width="12" id="502" pattern="1" text="############"> <field x="84" y="1.5" type="Valuta" align="right" width="12" id="502" pattern="1" text="#########.@@">
<source>IMPOSTA</source> <source>Imposta</source>
</field> </field>
<field x="109" y="0.5" type="Data" width="10" id="601" pattern="1"> <field x="97" y="0.5" type="Stringa" align="center" width="10" id="601" pattern="1">
<source>DATARETT</source> <source>StatoEstero</source>
<alt_source>StatoEsteroSede</alt_source>
</field> </field>
<field x="109" y="1.5" type="Stringa" width="10" id="602" pattern="1"> <field x="97" y="1.5" type="Stringa" align="center" width="10" id="602" pattern="1">
<source>NUMRETT</source> <source>BlackList</source>
</field>
<field x="98" y="0.5" type="Array" width="8" id="701" pattern="1">
<source>SIMPORTO</source>
<list>
<li />
<li Value="Credito" Code="C" />
<li Value="Debito" Code="D" />
</list>
</field>
<field x="98" y="1.5" type="Array" width="8" id="702" pattern="1">
<source>SIMPOSTA</source>
<list>
<li />
<li Value="Credito" Code="C" />
<li Value="Debito" Code="D" />
</list>
</field> </field>
</section> </section>
<section type="Foot" pattern="1" /> <section type="Foot" pattern="1" />

View File

@ -1,9 +1,7 @@
#define F_ANNO 301 #define F_TIPO 301
#define F_DATA 302 #define F_ANNO 302
#define F_SHOWALL 303 #define F_PERIODO 303
#define F_SENDALL 304
#define F_OUTFOLDER 305 #define F_OUTFOLDER 305
#define F_MAXREC 306
#define F_DEFINITIVO 307 #define F_DEFINITIVO 307
#define F_OUTFILE 308 #define F_OUTFILE 308
@ -14,33 +12,32 @@
#define F_RAGSOC 314 #define F_RAGSOC 314
#define F_RAGOCC 315 #define F_RAGOCC 315
#define F_INTER_COM 320
#define F_INTER_DATE 321
#define F_INTER_COFI 322
#define F_INTER_CAF 323
#define F_TIPOLOGIA 330
#define F_PROTELE 331
#define F_PROTDOC 332
#define F_RIGHE 300 #define F_RIGHE 300
#define A_RIGA 101 #define A_RIGA 101
#define A_FORZATA 102 #define A_FORZATA 102
#define A_IGNORA 103 #define A_IGNORA 103
#define A_TIPOCF 104 #define A_TIPO 104
#define A_CODCF 105 #define A_TIPOCF 105
#define A_OCFPI 106 #define A_CODCF 106
#define A_RAGSOC 107 #define A_OCFPI 107
#define A_DATAREG 108 #define A_RAGSOC 108
#define A_NUMDOC 109 #define A_DATAREG 109
#define A_IMPORTO 110 #define A_NUMDOC 110
#define A_IMPOSTA 111 #define A_DATADOC 111
#define A_MODPAG 112 #define A_TIPOIVA 112
#define A_CONTRATTO 113 #define A_IMPORTO 113
#define A_DATARETT 114 #define A_IMPOSTA 114
#define A_NUMRETT 115 #define A_NOLEGGIO 115
#define A_PAIV 116 #define A_REVERSE 116
#define A_COFI 117 #define A_AUTOFATT 117
#define A_SERVIZI 118
#define A_TURISMO 119
#define A_CARBURAN 120
#define A_RIEPILOG 121
#define A_ATTAGG 122
#define A_PASAGG 123
#define A_PAIV 124
#define A_COFI 125
#define A_OCCAS 155 #define A_OCCAS 155

View File

@ -30,12 +30,6 @@ BEGIN
PICTURE TOOL_RECALC PICTURE TOOL_RECALC
END END
BUTTON DLG_COPY 2 2
BEGIN
PROMPT 1 3 "+Contratto"
PICTURE TOOL_COPY
END
BUTTON DLG_EXPORT 2 2 BUTTON DLG_EXPORT 2 2
BEGIN BEGIN
PROMPT 1 4 "Excel" PROMPT 1 4 "Excel"
@ -65,9 +59,9 @@ END
ENDPAGE ENDPAGE
PAGE "Dati rilevanti" 0 2 0 0 PAGE "Comunicazione Polivalente" 0 2 0 0
GROUPBOX DLG_NULL 78 5 GROUPBOX DLG_NULL 78 6
BEGIN BEGIN
PROMPT 1 0 "@bFiltri di visualizzazione" PROMPT 1 0 "@bFiltri di visualizzazione"
END END
@ -78,24 +72,34 @@ BEGIN
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
FLAGS "AU" FLAGS "AU"
GROUP 1 GROUP 1
NUM_EXPR #THIS_FIELD>=2010 NUM_EXPR #THIS_FIELD>=2012
WARNING "Anno non valido" WARNING "Anno non valido"
END END
DATE F_DATA LIST F_TIPO 2 10
BEGIN BEGIN
PROMPT 15 1 "Limite note variazione " PROMPT 21 1 "Tipo "
CHECKTYPE REQUIRED ITEM "FE|Spesometro"
MESSAGE HIDE,F_PERIODO
ITEM "BL|Black List"
MESSAGE SHOW,F_PERIODO
ITEM "XX|Ignorati"
MESSAGE HIDE,F_PERIODO
ITEM "IN|Inviati"
MESSAGE HIDE,F_PERIODO
ITEM "**|Tutti"
MESSAGE HIDE,F_PERIODO
END END
LIST F_SHOWALL 1 13 LIST F_PERIODO 2 16
BEGIN BEGIN
PROMPT 52 1 "Movimenti " PROMPT 51 1 "Periodo "
ITEM "1|Rilevanti" ITEM "|Annuale"
ITEM "2|NON rilevanti" ITEM "T1|I Trimestre"
ITEM "4|Scartati" ITEM "T2|II Trimestre"
ITEM "7|Tutti" ITEM "T3|III Trimestre"
GROUP 1 ITEM "T4|IV Trimestre"
FLAGS "M"
END END
LIST F_TIPOCF 1 10 LIST F_TIPOCF 1 10
@ -162,131 +166,56 @@ BEGIN
GROUP 1 GROUP 1
END END
SPREADSHEET F_RIGHE STRING F_OUTFOLDER 255 45
BEGIN BEGIN
PROMPT 0 5 "" PROMPT 2 4 "Cartella "
ITEM "Numero\nRegistraz.@7F" DSELECT
ITEM "Forzata@C" CHECKTYPE REQUIRED
ITEM "Non\nInv.@2@F" FLAGS "M"
ITEM "C/F@2F" WARNING "Specificare una cartella di destinazione valida"
ITEM "Codice@F"
ITEM "Occasionale@16F"
ITEM "Ragione Sociale@24"
ITEM "Data\nOperazione@10"
ITEM "Numero\nDocum.@7"
ITEM "Importo\ndovuto@12"
ITEM "Imposta@12"
ITEM "Mod.\nPag.@4"
ITEM "Contratto@18"
ITEM "Data Doc.\nrettif.@10"
ITEM "N. Doc.\nrettif.@7"
ITEM "Partita IVA@15"
ITEM "Codice Fiscale@17"
DEFAULT "*" // Impedisce il salvataggio su profilo .ini
END
ENDPAGE
PAGE "Opzioni" 0 2 0 0
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 1 1 "@bOpzioni per invio"
END
LIST F_SENDALL 1 25
BEGIN
PROMPT 2 2 "Movimenti "
ITEM "1|Rilevanti"
ITEM "7|Tutti"
END END
BOOLEAN F_DEFINITIVO BOOLEAN F_DEFINITIVO
BEGIN BEGIN
PROMPT 50 2 "Invio definitivo" PROMPT 65 4 "Definitivo"
END END
STRING F_OUTFOLDER 255 50 SPREADSHEET F_RIGHE
BEGIN BEGIN
PROMPT 2 3 "Cartella " PROMPT 0 6 ""
DSELECT ITEM "Numero\nRegistraz.@7F"
CHECKTYPE REQUIRED ITEM "Forzata@C"
WARNING "Specificare una cartella di destinazione valida" ITEM "Ignora@5"
END ITEM "Tipo@2@F"
ITEM "C/F@2F"
NUMBER F_MAXREC 5 ITEM "Codice@F"
BEGIN ITEM "Occasionale@16F"
PROMPT 2 4 "Numero massimo di record per file " ITEM "Ragione Sociale@32"
NUM_EXPR (#THIS_FIELD>=100)&&(#THIS_FIELD<=15000) ITEM "Data\nOperazione@10"
FLAGS "U" ITEM "Numero\nDocum.@7"
CHECKTYPE REQUIRED ITEM "Data\nDocum.@10"
WARNING "Specificare una valore compreso tra 100 e 15000" ITEM "Tipo\nIVA@4"
END ITEM "Imponibile@12"
ITEM "Imposta@12"
GROUPBOX DLG_NULL 78 6 ITEM "Noleggio@10"
BEGIN ITEM "Rev.\nCharge@7"
PROMPT 1 6 "@bDati del soggetto che assume l'impegno alla presentazione telematica" ITEM "Auto\nfatt.@6"
END ITEM "Servizi\nEsteri@6"
ITEM "Operaz.\nTurismo@6"
LIST F_INTER_COM 1 20 ITEM "Scheda\nCarbur.@6"
BEGIN ITEM "Fatt.\nRiep.@6"
PROMPT 2 7 "Comunicazione predisposta da " ITEM "Op. Att.\nAggreg.@6"
ITEM "|" ITEM "Op. Pass.\nAggreg.@6"
ITEM "1|contribuente" ITEM "Partita IVA@15"
ITEM "2|chi effettua l'invio" ITEM "Codice Fiscale@16"
END DEFAULT "*" // Impedisce il salvataggio su profilo .ini
STRING F_INTER_COFI 16
BEGIN
PROMPT 2 8 "Codice fiscale dell'intermediario "
FLAGS "U"
END
NUMBER F_INTER_CAF 5
BEGIN
PROMPT 2 9 "Numero iscrizione all'albo C.A.F. "
END
DATE F_INTER_DATE
BEGIN
PROMPT 2 10 "Data dell'impegno alla trasmissione "
END
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 1 12 "@bAnnullamento o sostituzione"
END
LIST F_TIPOLOGIA 1 15
BEGIN
PROMPT 2 13 "Tipologia invio "
ITEM "0|Normale"
MESSAGE DISABLE,F_PROTELE|DISABLE,F_PROTDOC
ITEM "1|Sostitutivo"
MESSAGE ENABLE,F_PROTELE|ENABLE,F_PROTDOC
ITEM "2|Annullamento"
MESSAGE ENABLE,F_PROTELE|ENABLE,F_PROTDOC
END
STRING F_PROTELE 17
BEGIN
PROMPT 2 14 "Protocollo da sostituire o annullare "
FLAGS "U"
CHECKTYPE REQUIRED
END
STRING F_PROTDOC 6
BEGIN
PROMPT 2 15 "Protocollo documento "
FLAGS "U"
CHECKTYPE REQUIRED
END END
ENDPAGE ENDPAGE
ENDMASK ENDMASK
PAGE "Riga" -1 -1 69 11 PAGE "Riga" -1 -1 69 14
NUMBER A_RIGA 7 NUMBER A_RIGA 7
BEGIN BEGIN
@ -303,24 +232,32 @@ END
LIST A_IGNORA 2 55 LIST A_IGNORA 2 55
BEGIN BEGIN
PROMPT 1 1 "Non inv." PROMPT 1 1 "Ignora "
ITEM "| 0. Rilevante al fine della dichiarazione" ITEM "|"
ITEM "1| 1. Importo inferiore al limite della comunicazione" ITEM "1| 1. Importo non rilevante"
ITEM "2| 2. Soggetto da non inserire in allegato" ITEM "2| 2. Soggetto da non inserire in allegato"
ITEM "3| 3. Soggetto residente in stato a fiscalità agevolata" ITEM "3| 3. Residente in un paese della black list"
ITEM "4| 4. Soggetto residente all'estero" ITEM "4| 4. Soggetto residente all'estero"
ITEM "5| 5. Movimento intra" ITEM "5| 5. Movimento intra"
ITEM "6| 6. Soggetto all'articolo 8 (del dpr 26-10-1972)"
ITEM "7| 7. Data movimento fuori dai limiti della comunicazione" ITEM "7| 7. Data movimento fuori dai limiti della comunicazione"
ITEM "8| 8. Passaggi interni"
ITEM "9| 9. Già inviato" ITEM "9| 9. Già inviato"
ITEM "10|10.Altri motivi" ITEM "10|10.Altri motivi"
FIELD IGNORA FIELD IGNORA
END END
STRING A_TIPO 2
BEGIN
PROMPT 1 2 "Tipo "
FIELD TIPOPE
FLAGS "U"
STR_EXPR LEN(#THIS_FIELD)==2
WARNING "Tipo record di lunghezza errata"
CHECKTYPE REQUIRED
END
LIST A_TIPOCF 1 10 LIST A_TIPOCF 1 10
BEGIN BEGIN
PROMPT 1 2 "" PROMPT 1 3 ""
ITEM "C|Cliente" ITEM "C|Cliente"
ITEM "F|Fornitore" ITEM "F|Fornitore"
FIELD TIPOCF FIELD TIPOCF
@ -328,7 +265,7 @@ END
NUMBER A_CODCF 6 NUMBER A_CODCF 6
BEGIN BEGIN
PROMPT 17 2 "" PROMPT 17 3 ""
USE LF_CLIFO USE LF_CLIFO
INPUT TIPOCF A_TIPOCF SELECT INPUT TIPOCF A_TIPOCF SELECT
INPUT CODCF A_CODCF INPUT CODCF A_CODCF
@ -346,7 +283,7 @@ END
STRING A_OCFPI 16 STRING A_OCFPI 16
BEGIN BEGIN
PROMPT 36 2 "Occasionale " PROMPT 36 3 "Occasionale "
USE LF_OCCAS USE LF_OCCAS
INPUT CFPI A_OCFPI INPUT CFPI A_OCFPI
DISPLAY "Codice@16" CFPI DISPLAY "Codice@16" CFPI
@ -363,25 +300,25 @@ END
STRING A_RAGSOC 50 47 STRING A_RAGSOC 50 47
BEGIN BEGIN
PROMPT 1 3 "Ragione Sociale " PROMPT 1 4 "Ragione Sociale "
FLAGS "D" FLAGS "D"
END END
STRING A_PAIV 12 STRING A_PAIV 12
BEGIN BEGIN
PROMPT 1 4 "Partita IVA " PROMPT 1 5 "Partita IVA "
FLAGS "D" FLAGS "D"
END END
STRING A_COFI 16 STRING A_COFI 16
BEGIN BEGIN
PROMPT 33 4 "Codice Fiscale " PROMPT 33 5 "Codice Fiscale "
FLAGS "D" FLAGS "D"
END END
DATE A_DATAREG DATE A_DATAREG
BEGIN BEGIN
PROMPT 29 5 "Data " PROMPT 1 6 "Data reg. "
USE LF_MOV KEY 3 USE LF_MOV KEY 3
INPUT TIPO A_TIPOCF SELECT INPUT TIPO A_TIPOCF SELECT
INPUT CODCF A_CODCF SELECT INPUT CODCF A_CODCF SELECT
@ -393,84 +330,107 @@ BEGIN
DISPLAY "Num.Doc.@7" NUMDOC DISPLAY "Num.Doc.@7" NUMDOC
OUTPUT A_DATAREG DATAREG OUTPUT A_DATAREG DATAREG
OUTPUT A_NUMDOC NUMDOC OUTPUT A_NUMDOC NUMDOC
OUTPUT A_DATADOC DATADOC
FIELD DATAREG FIELD DATAREG
VALIDATE NOT_EMPTY_FUNC VALIDATE NOT_EMPTY_FUNC
END END
DATE A_DATADOC
BEGIN
PROMPT 27 6 "Data doc. "
FIELD DATADOC
END
STRING A_NUMDOC 7 STRING A_NUMDOC 7
BEGIN BEGIN
PROMPT 49 5 "Fattura " PROMPT 49 6 "Num. doc. "
FLAGS "U" FLAGS "U"
COPY ALL A_DATAREG
ADD RUN cg2 -0
FIELD NUMDOC FIELD NUMDOC
END END
LIST A_MODPAG 1 20 LIST A_NOLEGGIO 1 12
BEGIN BEGIN
PROMPT 1 6 "Modalità di pagamento " PROMPT 1 7 "Noleggio "
ITEM "1|1 - Non frazionato" ITEM " |Nessuno"
MESSAGE DISABLE,A_CONTRATTO|ENABLE,A_DATARETT|ENABLE,A_NUMRETT ITEM "A|Automobile"
ITEM "2|2 - Frazionato" ITEM "B|Camper"
MESSAGE ENABLE,A_CONTRATTO|DISABLE,A_DATARETT|DISABLE,A_NUMRETT ITEM "C|Altro"
ITEM "3|3 - Periodico" ITEM "D|Diporto"
MESSAGE ENABLE,A_CONTRATTO|DISABLE,A_DATARETT|DISABLE,A_NUMRETT ITEM "E|Aeromobile"
FIELD MODPAG FIELD NOLEGGIO
END END
STRING A_CONTRATTO 18 LIST A_TIPOIVA 1 24
BEGIN BEGIN
PROMPT 1 7 "Contratto riferimento " PROMPT 27 7 "Tipo IVA "
USE &CON ITEM "1|Imponibile"
INPUT CODTAB[1,1] A_TIPOCF SELECT ITEM "2|Non imponibile"
INPUT CODTAB[2,7] A_CODCF SELECT ITEM "3|Esente"
INPUT CODTAB[8,25] A_CONTRATTO ITEM "4|Non esposta in fattura"
DISPLAY "Contratto@18" CODTAB[8,25] ITEM "5|Margine"
DISPLAY "Descrizione@50" S0 FIELD TIPOIVA
OUTPUT A_CONTRATTO CODTAB[8,25]
ADD RUN fe0 -1 &CON
CHEKCTYPE REQUIRED
FIELD CONTRATTO
END
DATE A_DATARETT
BEGIN
PROMPT 1 8 "Documento rettificato "
FIELD DATARETT
USE LF_MOV KEY 3
INPUT TIPO A_TIPOCF SELECT
INPUT CODCF A_CODCF SELECT
INPUT DATAREG A_DATARETT
COPY DISPLAY A_DATAREG
OUTPUT A_DATARETT DATAREG
OUTPUT A_NUMRETT NUMDOC
ADD RUN cg2 -0
NUM_EXPR IF((#A_IMPORTO<0)&&(#A_IGNORA<=0);#A_DATARETT!="";1)
WARNING "Inserire la data della fattura rettificata"
END
STRING A_NUMRETT 7
BEGIN
PROMPT 50 8 "Numero "
FIELD NUMRETT
COPY ALL A_DATARETT
ADD RUN cg2 -0
VALIDATE REQIF_FUNC 1 A_DATARETT
WARNING "Inserire il numero della fattura rettificata"
END END
CURRENCY A_IMPORTO 12 CURRENCY A_IMPORTO 12
BEGIN BEGIN
PROMPT 1 10 "Importo dovuto " PROMPT 1 8 "Imponibile "
FIELD IMPORTO FIELD IMPORTO
END END
CURRENCY A_IMPOSTA 12 CURRENCY A_IMPOSTA 12
BEGIN BEGIN
PROMPT 44 10 "Imposta " PROMPT 44 8 "Imposta "
FIELD IMPOSTA FIELD IMPOSTA
END END
BOOLEAN A_REVERSE
BEGIN
PROMPT 1 9 "Reverse charge"
FIELD REVERSE
END
BOOLEAN A_AUTOFATT
BEGIN
PROMPT 38 9 "Autofattura"
FIELD AUTOFATT
END
BOOLEAN A_SERVIZI
BEGIN
PROMPT 1 10 "Acquisto servizi all'estero"
FIELD SERVIZI
END
BOOLEAN A_TURISMO
BEGIN
PROMPT 38 10 "Operazioni turismo"
FIELD TURISMO
END
BOOLEAN A_CARBURAN
BEGIN
PROMPT 1 11 "Scheda carburanti"
FIELD CARBURAN
END
BOOLEAN A_RIEPILOG
BEGIN
PROMPT 38 11 "Fattura riepilogativa"
FIELD RIEPILOG
END
NUMBER A_ATTAGG 4
BEGIN
PROMPT 1 12 "Operazioni aggregate: Attive "
FIELD ATTAGG
END
NUMBER A_PASAGG 4
BEGIN
PROMPT 44 12 "Passive "
FIELD PASAGG
END
ENDPAGE ENDPAGE
TOOLBAR "topbar" 0 0 0 2 TOOLBAR "topbar" 0 0 0 2

View File

@ -141,6 +141,6 @@ TMask* TFE_table_app::user_create_mask()
int fe0200(int argc, char* argv[]) int fe0200(int argc, char* argv[])
{ {
TFE_table_app a; TFE_table_app a;
a.run(argc, argv, TR("Tabella modulo dati rilevanti")); a.run(argc, argv, TR("Tabella Spesometro"));
return 0; return 0;
} }

View File

@ -16,7 +16,6 @@ protected:
void elabora(const TString_array& a, const TFilename& n) const; void elabora(const TString_array& a, const TFilename& n) const;
bool str2fname(const TString& name, TFilename& n) const; bool str2fname(const TString& name, TFilename& n) const;
bool row2fname(const TToken_string& row, TFilename& n) const;
void enable_buttons(); void enable_buttons();
public: public:
@ -40,59 +39,6 @@ bool TSomma_spesometro_msk::str2fname(const TString& name, TFilename& n) const
return n.exist(); return n.exist();
} }
bool TSomma_spesometro_msk::row2fname(const TToken_string& row, TFilename& n) const
{
TString80 name; row.get(0, name);
return str2fname(name, n);
}
void TSomma_spesometro_msk::elabora(const TString_array& infiles, const TFilename& outfile) const
{
int anno = 2010;
TFilename n;
if (row2fname(infiles.row(0), n))
{
const TDati_rilevanti_set s(n);
anno = s.anno();
}
TDati_rilevanti_set outset(anno);
const int tipologia = outset.add_header(*this);
if (tipologia != 2) // Invio i record solo quando non si tratta di annullamento
{
FOR_EACH_ARRAY_ROW(infiles, r, row) if (row2fname(*row, n))
{
const int len = outset.record_length();
ifstream s(n, ios::binary);
TString row(len);
while (!s.eof())
{
s.read(row.get_buffer(), len);
if (row[0] != '0' && row[0] != '9')
outset.new_rec(row);
}
}
}
outset.add_footer();
outset.sort();
outset.save_as(outfile);
if (outset.items() > 15000)
{
outset.split(outfile);
const int n = (outset.items()-1) / 15000 + 1;
warning_box(FR("E' stato generato il file %s, separato in %d parti da 15000 record."), (const char*)outfile, n);
}
else
message_box(FR("E' stato generato il file %s"), (const char*)outfile);
TDati_rilevanti_rep rep(outfile);
rep.preview();
}
void TSomma_spesometro_msk::enable_buttons() void TSomma_spesometro_msk::enable_buttons()
{ {
const TSheet_field& righe = sfield(F_RIGHE); const TSheet_field& righe = sfield(F_RIGHE);
@ -102,6 +48,11 @@ void TSomma_spesometro_msk::enable_buttons()
enable(DLG_PREVIEW, str2fname(get(F_OUTFILE), n)); enable(DLG_PREVIEW, str2fname(get(F_OUTFILE), n));
} }
void TSomma_spesometro_msk::elabora(const TString_array& a, const TFilename& n) const
{
}
bool TSomma_spesometro_msk::on_field_event(TOperable_field& o, TField_event e, long jolly) bool TSomma_spesometro_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
{ {
switch (o.dlg()) switch (o.dlg())
@ -126,7 +77,7 @@ bool TSomma_spesometro_msk::on_field_event(TOperable_field& o, TField_event e, l
TFilename fn; TFilename fn;
if (str2fname(o.mask().get(101), fn)) if (str2fname(o.mask().get(101), fn))
{ {
TDati_rilevanti_rep rep(fn); TSpesometro_rep rep(fn);
rep.preview(); rep.preview();
} }
} }
@ -137,7 +88,7 @@ bool TSomma_spesometro_msk::on_field_event(TOperable_field& o, TField_event e, l
TFilename fn; TFilename fn;
if (str2fname(get(F_OUTFILE), fn)) if (str2fname(get(F_OUTFILE), fn))
{ {
TDati_rilevanti_rep rep(fn); TSpesometro_rep rep(fn);
rep.preview(); rep.preview();
} }
} }
@ -167,21 +118,6 @@ bool TSomma_spesometro_msk::on_field_event(TOperable_field& o, TField_event e, l
} }
} }
// Elimina dalla lista il file di output
if (str2fname(get(F_OUTFILE), fn))
{
TFilename fr;
FOR_EACH_ARRAY_ROW(a, r, row)
{
row2fname(*row, fr);
if (fr.compare(fn, -1, true) == 0)
{
a.destroy(r, true);
break;
}
}
}
righe.force_update(); righe.force_update();
enable_buttons(); enable_buttons();
} }

View File

@ -141,42 +141,6 @@ bool TTest_spesometro_msk::elabora(int num, TLog_report& log)
{ {
if (!pi.addstatus(1)) if (!pi.addstatus(1))
break; break;
const int tipopag = curr.get_int(MOV_MODPAG);
const TString& contratto = curr.get(MOV_CONTRATTO);
if (contratto.full())
{
if (is_nota_variazione(curr))
{
curr.put(MOV_MODPAG, 1);
curr.zero(MOV_CONTRATTO);
done = update_file(file, TR("Azzerato contratto su nota di variazione"), log);
}
else
{
const TContratto c(curr);
const int t = c.modalita_pagamento();
if (t != tipopag)
{
str.cut(0) << TR("Cambiata modalità di pagamento ") << tipopag << " -> " << t;
curr.put(MOV_MODPAG, t);
if (num == LF_MOV)
{
curr.zero(MOV_DATARETT);
curr.zero(MOV_NUMRETT);
}
done = update_file(file, str, log);
}
}
}
else
{
if (tipopag > 1)
{
log_msg(curr, str, log);
curr.put(MOV_MODPAG, 1);
done = update_file(file, TR("Forzato pagamento non frazionato in assenza di contratto"), log);
}
}
} }
return done; return done;
} }

File diff suppressed because it is too large Load Diff

View File

@ -25,6 +25,7 @@ class TAnagrafica : public TObject
TAnagrafica& operator =(const TAnagrafica&) { CHECK(false, "Can't copy TAnagrafica"); } TAnagrafica& operator =(const TAnagrafica&) { CHECK(false, "Can't copy TAnagrafica"); }
TAnagrafica(const TAnagrafica&) { CHECK(false, "Can't copy TAnagrafica"); } TAnagrafica(const TAnagrafica&) { CHECK(false, "Can't copy TAnagrafica"); }
protected: protected:
void build_ind_res(const TRectype& rec, const char* ind, const char* civ); void build_ind_res(const TRectype& rec, const char* ind, const char* civ);
void split_ragsoc(); void split_ragsoc();
@ -38,14 +39,15 @@ public:
const TString& partita_IVA() const { return _paiv; } const TString& partita_IVA() const { return _paiv; }
const TString& ragione_sociale() const { return _ragsoc; } const TString& ragione_sociale() const { return _ragsoc; }
const TString& cognome() const { return _ragsoc.left(24); } const TString& cognome() const;
const TString& nome() const { CHECK(fisica(), "Non chiedere nome giuridico!"); return _ragsoc.mid(30,20); } const TString& nome() const;
char sesso() const { CHECK(fisica(), "Solo sesso fisico!"); return (_cofi[9] >= '4') ? 'F' : 'M'; } char sesso() const { CHECK(fisica(), "Solo sesso fisico!"); return (_cofi[9] >= '4') ? 'F' : 'M'; }
const TDate& data_nascita() const { return _data_nasc; } const TDate& data_nascita() const { return _data_nasc; }
bool italiano() const; bool italiano() const;
bool estero() const { return !italiano(); } bool estero() const { return !italiano(); }
const TString& stato_estero_UNICO() const; const TString& stato_estero_UNICO() const;
int inserimento_in_allegato() const { return _allegato; } int inserimento_in_allegato() const { return _allegato; }
char is_black_list() const;
const TString& comune_nascita() const; const TString& comune_nascita() const;
const TString& provincia_nascita() const; const TString& provincia_nascita() const;
@ -69,68 +71,35 @@ public:
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
// TContratto // TSpesometro_set
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
class TContratto : public TObject class TSpesometro_set : public TCSV_recordset
{ {
TRectype _rec;
protected: protected:
bool importo_annuale(int anno, real& importo, real& imposta) const; virtual bool set(unsigned int fld, const TVariant& var);
bool importo_figli(int anno, real& importo, real& imposta) const;
public:
virtual bool ok() const { return !_rec.empty(); }
const TString& chiave() const { return _rec.get("CODTAB"); }
const TString& codice() const { return chiave().mid(7); }
const TString& codice_padre() const { return _rec.get("S1"); }
const TString& codice_base() const;
bool totale_annuale(int anno, real& importo, real& imposta) const;
int modalita_pagamento() const;
bool init(const TString& codtab);
bool init(char tipocf, long codcf, const TString& codcont);
bool init(const TRectype& rec);
TContratto() : _rec(LF_TABMOD) {}
TContratto(char tipocf, long codcf, const char* codcont) : _rec(LF_TABMOD) { init(tipocf, codcf, codcont); }
TContratto(const TRectype& rec) : _rec(LF_TABMOD) { init(rec); }
};
///////////////////////////////////////////////////////////
// TDati_rilevanti_set
///////////////////////////////////////////////////////////
class TDati_rilevanti_set : public TAS400_recordset
{
int _anno;
protected:
virtual bool set_field(const TAS400_column_info& fi, const TVariant& var);
virtual const TVariant& get_field(const TAS400_column_info& fi) const;
void init(); void init();
bool set_val(int n, const TVariant& v) { return TAS400_recordset::set(n-1, v); } void add_header_data(int n, const TString& value);
public: public:
bool set(unsigned int n, const TVariant& v) { return set_val(n, v); } virtual const TVariant& get(unsigned int column) const;
bool set(unsigned int n, const TString& v) { return set_val(n, v); } bool set(unsigned int n, const char* v) { return set(n, TVariant(v)); }
bool set(unsigned int n, char v) { TString4 str; str << v; return set_val(n, str); } bool set(unsigned int n, const TString& v) { return set(n, TVariant(v)); }
bool set(unsigned int n, int v) { return set_val(n, long(v)); } bool set(unsigned int n, char v) { TString4 str; str << v; return set(n, str); }
bool set(unsigned int n, const real& v) { return set_val(n, v); } bool set(unsigned int n, int v) { return set(n, TVariant(long(v))); }
bool set(unsigned int n, const TDate& v) { return set_val(n, v); } bool set(unsigned int n, bool v) { return set(n, TVariant(v)); }
int add_header(const TMask& msk, int num_inv = 1, int tot_inv = 1); bool set(unsigned int n, const real& v) { return set(n, TVariant(v)); }
void add_footer(); bool set(unsigned int n, const TDate& v) { return set(n, TVariant(v)); }
bool split(const TFilename& name, const TRecnotype maxalleg = 15000); bool add_header(const TMask& msk);
int anno() const { return _anno; } bool add_footer(const TMask& msk);
TDati_rilevanti_set(int anno); TSpesometro_set();
TDati_rilevanti_set(const TFilename& file); TSpesometro_set(const TFilename& file);
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
// TDati_rilevanti_rep // TSpesometro_rep
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
class TCofi_cache : public TCache class TCofi_cache : public TCache
@ -147,25 +116,24 @@ public:
TCofi_cache() : _clifo(LF_CLIFO), _occas(LF_OCCAS) { } TCofi_cache() : _clifo(LF_CLIFO), _occas(LF_OCCAS) { }
}; };
class TDati_rilevanti_rep : public TReport class TSpesometro_rep : public TReport
{ {
TCofi_cache _cofi; TCofi_cache _cofi;
protected: protected:
const TString& cofi2ragsoc(char tipocf, const TString& cofi) const const TString& cofi2ragsoc(char tipocf, const TString& cofi) const
{ return ((TDati_rilevanti_rep*)this)->_cofi.cofi2ragsoc(tipocf, cofi); } { return ((TSpesometro_rep*)this)->_cofi.cofi2ragsoc(tipocf, cofi); }
const TString& paiv2ragsoc(char tipocf, const TString& cofi) const const TString& paiv2ragsoc(char tipocf, const TString& cofi) const
{ return ((TDati_rilevanti_rep*)this)->_cofi.paiv2ragsoc(tipocf, cofi); } { return ((TSpesometro_rep*)this)->_cofi.paiv2ragsoc(tipocf, cofi); }
virtual bool get_usr_val(const TString& name, TVariant& var) const; virtual bool get_usr_val(const TString& name, TVariant& var) const;
public: public:
TDati_rilevanti_rep(const TFilename& file); TSpesometro_rep(const TFilename& file);
}; };
// Utility // Utility
real fe_importo_limite(int anno);
bool fe_is_nota_variazione(const TRectype& rec); bool fe_is_nota_variazione(const TRectype& rec);
#endif #endif