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;
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 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;
}

File diff suppressed because it is too large Load Diff

View File

@ -2,9 +2,8 @@
<report name="fe0100" lpi="6">
<font face="Courier New" size="8" />
<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" />
<source>"Dati rilevanti " + ANNO + " tipo " + TIPO</source>
</field>
<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" />
@ -14,22 +13,18 @@
<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="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 x="9" y="3.5" type="Testo" width="16" id="101" pattern="1" text="Codice Fiscale">
<source>COFI</source>
</field>
<field x="9" y="3.5" type="Testo" width="16" id="101" pattern="1" text="Codice Fiscale" />
<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="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="66" y="3.5" type="Testo" width="16" id="401" pattern="1" text="Mod. Pagamento" />
<field x="66" y="4.5" type="Testo" width="16" id="402" pattern="1" text="Tipo Operazione" />
<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="Noleggio" />
<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="100" y="3.5" type="Testo" width="10" height="2" id="601" pattern="1" text="Segno" />
<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." />
<field x="97" y="3.5" type="Testo" width="10" align="center" height="2" id="601" pattern="1" text="Estero BlackList" />
</section>
<section type="Head" level="1" pattern="1" />
<section type="Head" level="2" height="1" page_break="1" pattern="1">
@ -50,64 +45,47 @@
<source>#RECORD.NUMBER</source>
</field>
<field x="9" y="0.5" type="Stringa" width="16" id="101" pattern="1">
<source>COFI</source>
<source>CodiceFiscale</source>
</field>
<field x="9" y="1.5" type="Stringa" width="16" id="102" pattern="1">
<source>PAIV</source>
<source>PartitaIVA</source>
</field>
<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 x="54" y="0.5" type="Data" width="11" id="301" pattern="1">
<source>DATAREG</source>
<field x="54" y="0.5" type="Data" width="11" id="301" pattern="1" >
<source>DataReg</source>
</field>
<field x="54" y="1.5" type="Stringa" width="10" id="302" pattern="1">
<source>NUMDOC</source>
<source>NumDoc</source>
</field>
<field x="66" y="0.5" type="Array" width="16" id="401" pattern="1">
<source>MODPAG</source>
<list>
<li />
<li Value="Non Frazionato" Code="1" />
<li Value="Frazionato" Code="2" />
<li Value="Periodico" Code="3" />
</list>
<field x="66" y="0.5" type="Stringa" width="16" id="401" pattern="1">
<source>Tipo</source>
</field>
<field x="66" y="1.5" type="Array" width="16" id="402" pattern="1">
<source>TIPOPE</source>
<list>
<li />
<li Value="Vendita" Code="1" />
<li Value="Acquisto" Code="2" />
</list>
<source>Noleggio</source>
<list>
<li Code="" Value="" />
<li Code="A" Value="Auto" />
<li Code="B" Value="Camper" />
<li Code="C" Value="Altro" />
<li Code="D" Value="Imbarcazioni" />
<li Code="E" Value="Aeromobili" />
</list>
</field>
<field x="84" y="0.5" type="Numero" align="right" width="12" id="501" pattern="1" text="############">
<source>IMPORTO</source>
<field x="84" y="0.5" type="Valuta" align="right" width="12" id="501" pattern="1" text="#########.@@">
<source>Imponibile</source>
</field>
<field x="84" y="1.5" type="Numero" align="right" width="12" id="502" pattern="1" text="############">
<source>IMPOSTA</source>
<field x="84" y="1.5" type="Valuta" align="right" width="12" id="502" pattern="1" text="#########.@@">
<source>Imposta</source>
</field>
<field x="109" y="0.5" type="Data" width="10" id="601" pattern="1">
<source>DATARETT</source>
<field x="97" y="0.5" type="Stringa" align="center" width="10" id="601" pattern="1">
<source>StatoEstero</source>
<alt_source>StatoEsteroSede</alt_source>
</field>
<field x="109" y="1.5" type="Stringa" width="10" id="602" pattern="1">
<source>NUMRETT</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 x="97" y="1.5" type="Stringa" align="center" width="10" id="602" pattern="1">
<source>BlackList</source>
</field>
</section>
<section type="Foot" pattern="1" />

View File

@ -1,9 +1,7 @@
#define F_ANNO 301
#define F_DATA 302
#define F_SHOWALL 303
#define F_SENDALL 304
#define F_TIPO 301
#define F_ANNO 302
#define F_PERIODO 303
#define F_OUTFOLDER 305
#define F_MAXREC 306
#define F_DEFINITIVO 307
#define F_OUTFILE 308
@ -14,33 +12,32 @@
#define F_RAGSOC 314
#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 A_RIGA 101
#define A_FORZATA 102
#define A_IGNORA 103
#define A_TIPOCF 104
#define A_CODCF 105
#define A_OCFPI 106
#define A_RAGSOC 107
#define A_DATAREG 108
#define A_NUMDOC 109
#define A_IMPORTO 110
#define A_IMPOSTA 111
#define A_MODPAG 112
#define A_CONTRATTO 113
#define A_DATARETT 114
#define A_NUMRETT 115
#define A_PAIV 116
#define A_COFI 117
#define A_TIPO 104
#define A_TIPOCF 105
#define A_CODCF 106
#define A_OCFPI 107
#define A_RAGSOC 108
#define A_DATAREG 109
#define A_NUMDOC 110
#define A_DATADOC 111
#define A_TIPOIVA 112
#define A_IMPORTO 113
#define A_IMPOSTA 114
#define A_NOLEGGIO 115
#define A_REVERSE 116
#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

View File

@ -1,502 +1,462 @@
#include "fe0100a.h"
TOOLBAR "topbar" 0 0 0 2
BUTTON DLG_OK 2 2
BEGIN
PROMPT 1 1 "Aggiorna"
PICTURE TOOL_CONVERT
END
BUTTON DLG_SAVEREC 2 2
BEGIN
PROMPT 1 1 "Registra"
PICTURE TOOL_SAVEREC
FLAGS "D"
END
BUTTON DLG_CANCEL 2 2,
BEGIN
PROMPT 1 2 "Annulla"
END
BUTTON DLG_NULL 2 2
BEGIN
END
BUTTON DLG_RECALC 2 2
BEGIN
PROMPT 1 3 "Ricalcola"
PICTURE TOOL_RECALC
END
BUTTON DLG_COPY 2 2
BEGIN
PROMPT 1 3 "+Contratto"
PICTURE TOOL_COPY
END
BUTTON DLG_EXPORT 2 2
BEGIN
PROMPT 1 4 "Excel"
PICTURE TOOL_EXCEL
MODULE rs
END
BUTTON DLG_ELABORA 2 2
BEGIN
PROMPT 1 5 "Invia"
PICTURE TOOL_EXPORT
END
BUTTON DLG_DELREC 2 2
BEGIN
PROMPT 1 6 "Azzera Invio"
PICTURE TOOL_RESET
END
BUTTON DLG_PREVIEW 2 2
BEGIN
PROMPT 1 7 "Anteprima"
PICTURE TOOL_PREVIEW
END
#include <helpbar.h>
ENDPAGE
PAGE "Dati rilevanti" 0 2 0 0
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 1 0 "@bFiltri di visualizzazione"
END
NUMBER F_ANNO 4
BEGIN
PROMPT 2 1 "Anno "
CHECKTYPE REQUIRED
FLAGS "AU"
GROUP 1
NUM_EXPR #THIS_FIELD>=2010
WARNING "Anno non valido"
END
DATE F_DATA
BEGIN
PROMPT 15 1 "Limite note variazione "
CHECKTYPE REQUIRED
END
LIST F_SHOWALL 1 13
BEGIN
PROMPT 52 1 "Movimenti "
ITEM "1|Rilevanti"
ITEM "2|NON rilevanti"
ITEM "4|Scartati"
ITEM "7|Tutti"
GROUP 1
END
LIST F_TIPOCF 1 10
BEGIN
PROMPT 2 2 ""
ITEM "C|Cliente"
ITEM "F|Fornitore"
GROUP 1
END
NUMBER F_CODCF 6
BEGIN
PROMPT 16 2 ""
USE LF_CLIFO
INPUT TIPOCF F_TIPOCF SELECT
INPUT CODCF F_CODCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Occasionale@C" OCCAS
DISPLAY "Codice Fiscale@16" COFI
DISPLAY "Partita IVA@15" PAIV
OUTPUT F_CODCF CODCF
OUTPUT F_RAGSOC RAGSOC
CHEKTYPE NORMAL
ADD RUN CG0 -1
GROUP 1
END
STRING F_RAGSOC 50 49
BEGIN
PROMPT 26 2 ""
USE LF_CLIFO KEY 2
INPUT TIPOCF F_TIPOCF SELECT
INPUT RAGSOC F_RAGSOC
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Codice" CODCF
DISPLAY "Codice Fiscale@16" COFI
DISPLAY "Partita IVA@15" PAIV
COPY OUTPUT F_CODCF
ADD RUN CG0 -1
GROUP 1
END
STRING F_OCFPI 16
BEGIN
PROMPT 2 3 "Occ."
USE LF_OCCAS
INPUT CFPI F_OCFPI
DISPLAY "Codice@16" CFPI
DISPLAY "Ragione Sociale@50" RAGSOC
OUTPUT F_OCFPI CFPI
OUTPUT F_RAGOCC RAGSOC
CHEKTYPE NORMAL
ADD RUN cg0 -6
GROUP 1
MESSAGE EMPTY SHOW,F_RAGSOC|HIDE,F_RAGOCC
MESSAGE HIDE,F_RAGSOC|SHOW,F_RAGOCC
END
STRING F_RAGOCC 50 49
BEGIN
PROMPT 26 3 ""
FLAGS "H"
GROUP 1
END
SPREADSHEET F_RIGHE
BEGIN
PROMPT 0 5 ""
ITEM "Numero\nRegistraz.@7F"
ITEM "Forzata@C"
ITEM "Non\nInv.@2@F"
ITEM "C/F@2F"
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
BOOLEAN F_DEFINITIVO
BEGIN
PROMPT 50 2 "Invio definitivo"
END
STRING F_OUTFOLDER 255 50
BEGIN
PROMPT 2 3 "Cartella "
DSELECT
CHECKTYPE REQUIRED
WARNING "Specificare una cartella di destinazione valida"
END
NUMBER F_MAXREC 5
BEGIN
PROMPT 2 4 "Numero massimo di record per file "
NUM_EXPR (#THIS_FIELD>=100)&&(#THIS_FIELD<=15000)
FLAGS "U"
CHECKTYPE REQUIRED
WARNING "Specificare una valore compreso tra 100 e 15000"
END
GROUPBOX DLG_NULL 78 6
BEGIN
PROMPT 1 6 "@bDati del soggetto che assume l'impegno alla presentazione telematica"
END
LIST F_INTER_COM 1 20
BEGIN
PROMPT 2 7 "Comunicazione predisposta da "
ITEM "|"
ITEM "1|contribuente"
ITEM "2|chi effettua l'invio"
END
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
ENDPAGE
ENDMASK
PAGE "Riga" -1 -1 69 11
NUMBER A_RIGA 7
BEGIN
PROMPT 1 0 "Numero progressivo "
FLAGS "D"
FIELD PROGR
END
BOOLEAN A_FORZATA
BEGIN
PROMPT 40 0 "Forzatura manuale"
FIELD FORZATURA
END
LIST A_IGNORA 2 55
BEGIN
PROMPT 1 1 "Non inv."
ITEM "| 0. Rilevante al fine della dichiarazione"
ITEM "1| 1. Importo inferiore al limite della comunicazione"
ITEM "2| 2. Soggetto da non inserire in allegato"
ITEM "3| 3. Soggetto residente in stato a fiscalità agevolata"
ITEM "4| 4. Soggetto residente all'estero"
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 "8| 8. Passaggi interni"
ITEM "9| 9. Già inviato"
ITEM "10|10.Altri motivi"
FIELD IGNORA
END
LIST A_TIPOCF 1 10
BEGIN
PROMPT 1 2 ""
ITEM "C|Cliente"
ITEM "F|Fornitore"
FIELD TIPOCF
END
NUMBER A_CODCF 6
BEGIN
PROMPT 17 2 ""
USE LF_CLIFO
INPUT TIPOCF A_TIPOCF SELECT
INPUT CODCF A_CODCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Occasionale@C" OCCAS
DISPLAY "Partita IVA" PAIV
DISPLAY "Codice fiscale@16" COFI
OUTPUT A_CODCF CODCF
CHEKTYPE REQUIRED
ADD RUN cg0 -1
FIELD CODCF
FLAGS "G"
END
STRING A_OCFPI 16
BEGIN
PROMPT 36 2 "Occasionale "
USE LF_OCCAS
INPUT CFPI A_OCFPI
DISPLAY "Codice@16" CFPI
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Partita IVA" PAIV
DISPLAY "Codice fiscale@16" COFI
OUTPUT A_OCFPI CFPI
CHEKTYPE NORMAL
GROUP 3
ADD RUN cg0 -6
FIELD OCFPI
FLAGS "G"
END
STRING A_RAGSOC 50 47
BEGIN
PROMPT 1 3 "Ragione Sociale "
FLAGS "D"
END
STRING A_PAIV 12
BEGIN
PROMPT 1 4 "Partita IVA "
FLAGS "D"
END
STRING A_COFI 16
BEGIN
PROMPT 33 4 "Codice Fiscale "
FLAGS "D"
END
DATE A_DATAREG
BEGIN
PROMPT 29 5 "Data "
USE LF_MOV KEY 3
INPUT TIPO A_TIPOCF SELECT
INPUT CODCF A_CODCF SELECT
INPUT DATAREG A_DATAREG
DISPLAY "Data.Reg.@10" DATAREG
DISPLAY "Num.Reg.@7" NUMREG
DISPLAY "Descrizione@50" DESCR
DISPLAY "Data Doc.@10" DATADOC
DISPLAY "Num.Doc.@7" NUMDOC
OUTPUT A_DATAREG DATAREG
OUTPUT A_NUMDOC NUMDOC
FIELD DATAREG
VALIDATE NOT_EMPTY_FUNC
END
STRING A_NUMDOC 7
BEGIN
PROMPT 49 5 "Fattura "
FLAGS "U"
COPY ALL A_DATAREG
ADD RUN cg2 -0
FIELD NUMDOC
END
LIST A_MODPAG 1 20
BEGIN
PROMPT 1 6 "Modalità di pagamento "
ITEM "1|1 - Non frazionato"
MESSAGE DISABLE,A_CONTRATTO|ENABLE,A_DATARETT|ENABLE,A_NUMRETT
ITEM "2|2 - Frazionato"
MESSAGE ENABLE,A_CONTRATTO|DISABLE,A_DATARETT|DISABLE,A_NUMRETT
ITEM "3|3 - Periodico"
MESSAGE ENABLE,A_CONTRATTO|DISABLE,A_DATARETT|DISABLE,A_NUMRETT
FIELD MODPAG
END
STRING A_CONTRATTO 18
BEGIN
PROMPT 1 7 "Contratto riferimento "
USE &CON
INPUT CODTAB[1,1] A_TIPOCF SELECT
INPUT CODTAB[2,7] A_CODCF SELECT
INPUT CODTAB[8,25] A_CONTRATTO
DISPLAY "Contratto@18" CODTAB[8,25]
DISPLAY "Descrizione@50" S0
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
CURRENCY A_IMPORTO 12
BEGIN
PROMPT 1 10 "Importo dovuto "
FIELD IMPORTO
END
CURRENCY A_IMPOSTA 12
BEGIN
PROMPT 44 10 "Imposta "
FIELD IMPOSTA
END
ENDPAGE
TOOLBAR "topbar" 0 0 0 2
BUTTON DLG_OK 2 2
BEGIN
PROMPT 1 1 ""
END
BUTTON DLG_USER 2 2
BEGIN
PROMPT 2 1 "Collega"
PICTURE TOOL_LINK
END
BUTTON DLG_DELREC 2 2
BEGIN
PROMPT 2 1 "Elimina"
PICTURE TOOL_DELREC
END
BUTTON DLG_CANCEL 2 2
BEGIN
PROMPT 4 1 ""
END
ENDPAGE
ENDMASK
#include "fe0100a.h"
TOOLBAR "topbar" 0 0 0 2
BUTTON DLG_OK 2 2
BEGIN
PROMPT 1 1 "Aggiorna"
PICTURE TOOL_CONVERT
END
BUTTON DLG_SAVEREC 2 2
BEGIN
PROMPT 1 1 "Registra"
PICTURE TOOL_SAVEREC
FLAGS "D"
END
BUTTON DLG_CANCEL 2 2,
BEGIN
PROMPT 1 2 "Annulla"
END
BUTTON DLG_NULL 2 2
BEGIN
END
BUTTON DLG_RECALC 2 2
BEGIN
PROMPT 1 3 "Ricalcola"
PICTURE TOOL_RECALC
END
BUTTON DLG_EXPORT 2 2
BEGIN
PROMPT 1 4 "Excel"
PICTURE TOOL_EXCEL
MODULE rs
END
BUTTON DLG_ELABORA 2 2
BEGIN
PROMPT 1 5 "Invia"
PICTURE TOOL_EXPORT
END
BUTTON DLG_DELREC 2 2
BEGIN
PROMPT 1 6 "Azzera Invio"
PICTURE TOOL_RESET
END
BUTTON DLG_PREVIEW 2 2
BEGIN
PROMPT 1 7 "Anteprima"
PICTURE TOOL_PREVIEW
END
#include <helpbar.h>
ENDPAGE
PAGE "Comunicazione Polivalente" 0 2 0 0
GROUPBOX DLG_NULL 78 6
BEGIN
PROMPT 1 0 "@bFiltri di visualizzazione"
END
NUMBER F_ANNO 4
BEGIN
PROMPT 2 1 "Anno "
CHECKTYPE REQUIRED
FLAGS "AU"
GROUP 1
NUM_EXPR #THIS_FIELD>=2012
WARNING "Anno non valido"
END
LIST F_TIPO 2 10
BEGIN
PROMPT 21 1 "Tipo "
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
LIST F_PERIODO 2 16
BEGIN
PROMPT 51 1 "Periodo "
ITEM "|Annuale"
ITEM "T1|I Trimestre"
ITEM "T2|II Trimestre"
ITEM "T3|III Trimestre"
ITEM "T4|IV Trimestre"
FLAGS "M"
END
LIST F_TIPOCF 1 10
BEGIN
PROMPT 2 2 ""
ITEM "C|Cliente"
ITEM "F|Fornitore"
GROUP 1
END
NUMBER F_CODCF 6
BEGIN
PROMPT 16 2 ""
USE LF_CLIFO
INPUT TIPOCF F_TIPOCF SELECT
INPUT CODCF F_CODCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Occasionale@C" OCCAS
DISPLAY "Codice Fiscale@16" COFI
DISPLAY "Partita IVA@15" PAIV
OUTPUT F_CODCF CODCF
OUTPUT F_RAGSOC RAGSOC
CHEKTYPE NORMAL
ADD RUN CG0 -1
GROUP 1
END
STRING F_RAGSOC 50 49
BEGIN
PROMPT 26 2 ""
USE LF_CLIFO KEY 2
INPUT TIPOCF F_TIPOCF SELECT
INPUT RAGSOC F_RAGSOC
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Codice" CODCF
DISPLAY "Codice Fiscale@16" COFI
DISPLAY "Partita IVA@15" PAIV
COPY OUTPUT F_CODCF
ADD RUN CG0 -1
GROUP 1
END
STRING F_OCFPI 16
BEGIN
PROMPT 2 3 "Occ."
USE LF_OCCAS
INPUT CFPI F_OCFPI
DISPLAY "Codice@16" CFPI
DISPLAY "Ragione Sociale@50" RAGSOC
OUTPUT F_OCFPI CFPI
OUTPUT F_RAGOCC RAGSOC
CHEKTYPE NORMAL
ADD RUN cg0 -6
GROUP 1
MESSAGE EMPTY SHOW,F_RAGSOC|HIDE,F_RAGOCC
MESSAGE HIDE,F_RAGSOC|SHOW,F_RAGOCC
END
STRING F_RAGOCC 50 49
BEGIN
PROMPT 26 3 ""
FLAGS "H"
GROUP 1
END
STRING F_OUTFOLDER 255 45
BEGIN
PROMPT 2 4 "Cartella "
DSELECT
CHECKTYPE REQUIRED
FLAGS "M"
WARNING "Specificare una cartella di destinazione valida"
END
BOOLEAN F_DEFINITIVO
BEGIN
PROMPT 65 4 "Definitivo"
END
SPREADSHEET F_RIGHE
BEGIN
PROMPT 0 6 ""
ITEM "Numero\nRegistraz.@7F"
ITEM "Forzata@C"
ITEM "Ignora@5"
ITEM "Tipo@2@F"
ITEM "C/F@2F"
ITEM "Codice@F"
ITEM "Occasionale@16F"
ITEM "Ragione Sociale@32"
ITEM "Data\nOperazione@10"
ITEM "Numero\nDocum.@7"
ITEM "Data\nDocum.@10"
ITEM "Tipo\nIVA@4"
ITEM "Imponibile@12"
ITEM "Imposta@12"
ITEM "Noleggio@10"
ITEM "Rev.\nCharge@7"
ITEM "Auto\nfatt.@6"
ITEM "Servizi\nEsteri@6"
ITEM "Operaz.\nTurismo@6"
ITEM "Scheda\nCarbur.@6"
ITEM "Fatt.\nRiep.@6"
ITEM "Op. Att.\nAggreg.@6"
ITEM "Op. Pass.\nAggreg.@6"
ITEM "Partita IVA@15"
ITEM "Codice Fiscale@16"
DEFAULT "*" // Impedisce il salvataggio su profilo .ini
END
ENDPAGE
ENDMASK
PAGE "Riga" -1 -1 69 14
NUMBER A_RIGA 7
BEGIN
PROMPT 1 0 "Numero progressivo "
FLAGS "D"
FIELD PROGR
END
BOOLEAN A_FORZATA
BEGIN
PROMPT 40 0 "Forzatura manuale"
FIELD FORZATURA
END
LIST A_IGNORA 2 55
BEGIN
PROMPT 1 1 "Ignora "
ITEM "|"
ITEM "1| 1. Importo non rilevante"
ITEM "2| 2. Soggetto da non inserire in allegato"
ITEM "3| 3. Residente in un paese della black list"
ITEM "4| 4. Soggetto residente all'estero"
ITEM "5| 5. Movimento intra"
ITEM "7| 7. Data movimento fuori dai limiti della comunicazione"
ITEM "9| 9. Già inviato"
ITEM "10|10.Altri motivi"
FIELD IGNORA
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
BEGIN
PROMPT 1 3 ""
ITEM "C|Cliente"
ITEM "F|Fornitore"
FIELD TIPOCF
END
NUMBER A_CODCF 6
BEGIN
PROMPT 17 3 ""
USE LF_CLIFO
INPUT TIPOCF A_TIPOCF SELECT
INPUT CODCF A_CODCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Occasionale@C" OCCAS
DISPLAY "Partita IVA" PAIV
DISPLAY "Codice fiscale@16" COFI
OUTPUT A_CODCF CODCF
CHEKTYPE REQUIRED
ADD RUN cg0 -1
FIELD CODCF
FLAGS "G"
END
STRING A_OCFPI 16
BEGIN
PROMPT 36 3 "Occasionale "
USE LF_OCCAS
INPUT CFPI A_OCFPI
DISPLAY "Codice@16" CFPI
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Partita IVA" PAIV
DISPLAY "Codice fiscale@16" COFI
OUTPUT A_OCFPI CFPI
CHEKTYPE NORMAL
GROUP 3
ADD RUN cg0 -6
FIELD OCFPI
FLAGS "G"
END
STRING A_RAGSOC 50 47
BEGIN
PROMPT 1 4 "Ragione Sociale "
FLAGS "D"
END
STRING A_PAIV 12
BEGIN
PROMPT 1 5 "Partita IVA "
FLAGS "D"
END
STRING A_COFI 16
BEGIN
PROMPT 33 5 "Codice Fiscale "
FLAGS "D"
END
DATE A_DATAREG
BEGIN
PROMPT 1 6 "Data reg. "
USE LF_MOV KEY 3
INPUT TIPO A_TIPOCF SELECT
INPUT CODCF A_CODCF SELECT
INPUT DATAREG A_DATAREG
DISPLAY "Data.Reg.@10" DATAREG
DISPLAY "Num.Reg.@7" NUMREG
DISPLAY "Descrizione@50" DESCR
DISPLAY "Data Doc.@10" DATADOC
DISPLAY "Num.Doc.@7" NUMDOC
OUTPUT A_DATAREG DATAREG
OUTPUT A_NUMDOC NUMDOC
OUTPUT A_DATADOC DATADOC
FIELD DATAREG
VALIDATE NOT_EMPTY_FUNC
END
DATE A_DATADOC
BEGIN
PROMPT 27 6 "Data doc. "
FIELD DATADOC
END
STRING A_NUMDOC 7
BEGIN
PROMPT 49 6 "Num. doc. "
FLAGS "U"
FIELD NUMDOC
END
LIST A_NOLEGGIO 1 12
BEGIN
PROMPT 1 7 "Noleggio "
ITEM " |Nessuno"
ITEM "A|Automobile"
ITEM "B|Camper"
ITEM "C|Altro"
ITEM "D|Diporto"
ITEM "E|Aeromobile"
FIELD NOLEGGIO
END
LIST A_TIPOIVA 1 24
BEGIN
PROMPT 27 7 "Tipo IVA "
ITEM "1|Imponibile"
ITEM "2|Non imponibile"
ITEM "3|Esente"
ITEM "4|Non esposta in fattura"
ITEM "5|Margine"
FIELD TIPOIVA
END
CURRENCY A_IMPORTO 12
BEGIN
PROMPT 1 8 "Imponibile "
FIELD IMPORTO
END
CURRENCY A_IMPOSTA 12
BEGIN
PROMPT 44 8 "Imposta "
FIELD IMPOSTA
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
TOOLBAR "topbar" 0 0 0 2
BUTTON DLG_OK 2 2
BEGIN
PROMPT 1 1 ""
END
BUTTON DLG_USER 2 2
BEGIN
PROMPT 2 1 "Collega"
PICTURE TOOL_LINK
END
BUTTON DLG_DELREC 2 2
BEGIN
PROMPT 2 1 "Elimina"
PICTURE TOOL_DELREC
END
BUTTON DLG_CANCEL 2 2
BEGIN
PROMPT 4 1 ""
END
ENDPAGE
ENDMASK

View File

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

View File

@ -16,7 +16,6 @@ protected:
void elabora(const TString_array& a, const TFilename& n) const;
bool str2fname(const TString& name, TFilename& n) const;
bool row2fname(const TToken_string& row, TFilename& n) const;
void enable_buttons();
public:
@ -40,59 +39,6 @@ bool TSomma_spesometro_msk::str2fname(const TString& name, TFilename& n) const
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()
{
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));
}
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)
{
switch (o.dlg())
@ -126,7 +77,7 @@ bool TSomma_spesometro_msk::on_field_event(TOperable_field& o, TField_event e, l
TFilename fn;
if (str2fname(o.mask().get(101), fn))
{
TDati_rilevanti_rep rep(fn);
TSpesometro_rep rep(fn);
rep.preview();
}
}
@ -137,7 +88,7 @@ bool TSomma_spesometro_msk::on_field_event(TOperable_field& o, TField_event e, l
TFilename fn;
if (str2fname(get(F_OUTFILE), fn))
{
TDati_rilevanti_rep rep(fn);
TSpesometro_rep rep(fn);
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();
enable_buttons();
}

View File

@ -141,42 +141,6 @@ bool TTest_spesometro_msk::elabora(int num, TLog_report& log)
{
if (!pi.addstatus(1))
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;
}

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(const TAnagrafica&) { CHECK(false, "Can't copy TAnagrafica"); }
protected:
void build_ind_res(const TRectype& rec, const char* ind, const char* civ);
void split_ragsoc();
@ -38,14 +39,15 @@ public:
const TString& partita_IVA() const { return _paiv; }
const TString& ragione_sociale() const { return _ragsoc; }
const TString& cognome() const { return _ragsoc.left(24); }
const TString& nome() const { CHECK(fisica(), "Non chiedere nome giuridico!"); return _ragsoc.mid(30,20); }
const TString& cognome() const;
const TString& nome() const;
char sesso() const { CHECK(fisica(), "Solo sesso fisico!"); return (_cofi[9] >= '4') ? 'F' : 'M'; }
const TDate& data_nascita() const { return _data_nasc; }
bool italiano() const;
bool estero() const { return !italiano(); }
const TString& stato_estero_UNICO() const;
int inserimento_in_allegato() const { return _allegato; }
char is_black_list() const;
const TString& comune_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:
bool importo_annuale(int anno, real& importo, real& imposta) const;
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;
virtual bool set(unsigned int fld, const TVariant& var);
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:
bool set(unsigned int n, const TVariant& v) { return set_val(n, v); }
bool set(unsigned int n, const TString& v) { return set_val(n, v); }
bool set(unsigned int n, char v) { TString4 str; str << v; return set_val(n, str); }
bool set(unsigned int n, int v) { return set_val(n, long(v)); }
bool set(unsigned int n, const real& v) { return set_val(n, v); }
bool set(unsigned int n, const TDate& v) { return set_val(n, v); }
int add_header(const TMask& msk, int num_inv = 1, int tot_inv = 1);
void add_footer();
bool split(const TFilename& name, const TRecnotype maxalleg = 15000);
int anno() const { return _anno; }
virtual const TVariant& get(unsigned int column) const;
bool set(unsigned int n, const char* v) { return set(n, TVariant(v)); }
bool set(unsigned int n, const TString& v) { return set(n, TVariant(v)); }
bool set(unsigned int n, char v) { TString4 str; str << v; return set(n, str); }
bool set(unsigned int n, int v) { return set(n, TVariant(long(v))); }
bool set(unsigned int n, bool v) { return set(n, TVariant(v)); }
bool set(unsigned int n, const real& v) { return set(n, TVariant(v)); }
bool set(unsigned int n, const TDate& v) { return set(n, TVariant(v)); }
bool add_header(const TMask& msk);
bool add_footer(const TMask& msk);
TDati_rilevanti_set(int anno);
TDati_rilevanti_set(const TFilename& file);
TSpesometro_set();
TSpesometro_set(const TFilename& file);
};
///////////////////////////////////////////////////////////
// TDati_rilevanti_rep
// TSpesometro_rep
///////////////////////////////////////////////////////////
class TCofi_cache : public TCache
@ -147,25 +116,24 @@ public:
TCofi_cache() : _clifo(LF_CLIFO), _occas(LF_OCCAS) { }
};
class TDati_rilevanti_rep : public TReport
class TSpesometro_rep : public TReport
{
TCofi_cache _cofi;
protected:
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
{ 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;
public:
TDati_rilevanti_rep(const TFilename& file);
TSpesometro_rep(const TFilename& file);
};
// Utility
real fe_importo_limite(int anno);
bool fe_is_nota_variazione(const TRectype& rec);
#endif