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:
		
							parent
							
								
									ef83caf3bc
								
							
						
					
					
						commit
						735f648bbb
					
				@ -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;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1532
									
								
								fe/fe0100.cpp
									
									
									
									
									
								
							
							
						
						
									
										1532
									
								
								fe/fe0100.cpp
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -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>
 | 
			
		||||
   <source>Noleggio</source>
 | 
			
		||||
    <list>
 | 
			
		||||
    <li />
 | 
			
		||||
    <li Value="Vendita" Code="1" />
 | 
			
		||||
    <li Value="Acquisto" Code="2" />
 | 
			
		||||
      <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" />
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										53
									
								
								fe/fe0100a.h
									
									
									
									
									
								
							
							
						
						
									
										53
									
								
								fe/fe0100a.h
									
									
									
									
									
								
							@ -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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										350
									
								
								fe/fe0100a.uml
									
									
									
									
									
								
							
							
						
						
									
										350
									
								
								fe/fe0100a.uml
									
									
									
									
									
								
							@ -30,12 +30,6 @@ BEGIN
 | 
			
		||||
  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"
 | 
			
		||||
@ -65,9 +59,9 @@ END
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
  PROMPT 1 0 "@bFiltri di visualizzazione"
 | 
			
		||||
END
 | 
			
		||||
@ -78,24 +72,34 @@ BEGIN
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
  FLAGS "AU"
 | 
			
		||||
  GROUP 1
 | 
			
		||||
  NUM_EXPR #THIS_FIELD>=2010
 | 
			
		||||
  NUM_EXPR #THIS_FIELD>=2012
 | 
			
		||||
  WARNING "Anno non valido"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
DATE F_DATA 
 | 
			
		||||
LIST F_TIPO 2 10
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 15 1 "Limite note variazione "
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
  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_SHOWALL 1 13
 | 
			
		||||
LIST F_PERIODO 2 16
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 52 1 "Movimenti "
 | 
			
		||||
  ITEM "1|Rilevanti"
 | 
			
		||||
  ITEM "2|NON rilevanti"
 | 
			
		||||
  ITEM "4|Scartati"
 | 
			
		||||
  ITEM "7|Tutti"
 | 
			
		||||
  GROUP 1
 | 
			
		||||
  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
 | 
			
		||||
@ -162,131 +166,56 @@ BEGIN
 | 
			
		||||
  GROUP 1
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
SPREADSHEET F_RIGHE
 | 
			
		||||
STRING F_OUTFOLDER 255 45
 | 
			
		||||
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"
 | 
			
		||||
  PROMPT 2 4 "Cartella  "
 | 
			
		||||
  DSELECT
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
  FLAGS "M"
 | 
			
		||||
  WARNING "Specificare una cartella di destinazione valida"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_DEFINITIVO
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 50 2 "Invio definitivo"
 | 
			
		||||
  PROMPT 65 4 "Definitivo"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_OUTFOLDER 255 50
 | 
			
		||||
SPREADSHEET F_RIGHE
 | 
			
		||||
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
 | 
			
		||||
  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 11
 | 
			
		||||
PAGE "Riga" -1 -1 69 14
 | 
			
		||||
 | 
			
		||||
NUMBER A_RIGA 7
 | 
			
		||||
BEGIN
 | 
			
		||||
@ -303,24 +232,32 @@ 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"
 | 
			
		||||
  PROMPT 1 1 "Ignora  "
 | 
			
		||||
  ITEM "|"
 | 
			
		||||
  ITEM "1| 1. Importo non rilevante"
 | 
			
		||||
  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 "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
 | 
			
		||||
 | 
			
		||||
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 2 ""
 | 
			
		||||
  PROMPT 1 3 ""
 | 
			
		||||
  ITEM "C|Cliente"
 | 
			
		||||
  ITEM "F|Fornitore"
 | 
			
		||||
  FIELD TIPOCF
 | 
			
		||||
@ -328,7 +265,7 @@ END
 | 
			
		||||
 | 
			
		||||
NUMBER A_CODCF 6
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 17 2 ""
 | 
			
		||||
  PROMPT 17 3 ""
 | 
			
		||||
  USE LF_CLIFO
 | 
			
		||||
  INPUT TIPOCF A_TIPOCF SELECT
 | 
			
		||||
  INPUT CODCF A_CODCF
 | 
			
		||||
@ -346,7 +283,7 @@ END
 | 
			
		||||
 | 
			
		||||
STRING A_OCFPI 16
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 36 2 "Occasionale "
 | 
			
		||||
  PROMPT 36 3 "Occasionale "
 | 
			
		||||
  USE LF_OCCAS
 | 
			
		||||
  INPUT CFPI A_OCFPI
 | 
			
		||||
  DISPLAY "Codice@16" CFPI
 | 
			
		||||
@ -363,25 +300,25 @@ END
 | 
			
		||||
 | 
			
		||||
STRING A_RAGSOC 50 47
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 3 "Ragione Sociale "
 | 
			
		||||
  PROMPT 1 4 "Ragione Sociale "
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING A_PAIV 12
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 4 "Partita IVA     "
 | 
			
		||||
  PROMPT 1 5 "Partita IVA     "
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING A_COFI 16
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 33 4 "Codice Fiscale "
 | 
			
		||||
  PROMPT 33 5 "Codice Fiscale "
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
DATE A_DATAREG
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 29 5 "Data "
 | 
			
		||||
  PROMPT 1 6 "Data reg. "
 | 
			
		||||
  USE LF_MOV KEY 3
 | 
			
		||||
  INPUT TIPO A_TIPOCF SELECT
 | 
			
		||||
  INPUT CODCF A_CODCF SELECT
 | 
			
		||||
@ -393,84 +330,107 @@ BEGIN
 | 
			
		||||
  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 5 "Fattura "
 | 
			
		||||
  PROMPT 49 6 "Num. doc. "
 | 
			
		||||
  FLAGS "U"
 | 
			
		||||
  COPY ALL A_DATAREG
 | 
			
		||||
  ADD RUN cg2 -0
 | 
			
		||||
  FIELD NUMDOC
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
LIST A_MODPAG 1 20
 | 
			
		||||
LIST A_NOLEGGIO 1 12
 | 
			
		||||
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
 | 
			
		||||
  PROMPT 1 7 "Noleggio  "
 | 
			
		||||
  ITEM " |Nessuno"
 | 
			
		||||
  ITEM "A|Automobile"
 | 
			
		||||
  ITEM "B|Camper"
 | 
			
		||||
  ITEM "C|Altro"
 | 
			
		||||
  ITEM "D|Diporto"
 | 
			
		||||
  ITEM "E|Aeromobile"
 | 
			
		||||
  FIELD NOLEGGIO
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING A_CONTRATTO 18
 | 
			
		||||
LIST A_TIPOIVA 1 24
 | 
			
		||||
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"
 | 
			
		||||
  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 10 "Importo dovuto        "
 | 
			
		||||
  PROMPT 1 8 "Imponibile "
 | 
			
		||||
  FIELD IMPORTO
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
CURRENCY A_IMPOSTA 12
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 44 10 "Imposta "
 | 
			
		||||
  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
 | 
			
		||||
 | 
			
		||||
@ -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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -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();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										950
									
								
								fe/felib.cpp
									
									
									
									
									
								
							
							
						
						
									
										950
									
								
								fe/felib.cpp
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										82
									
								
								fe/felib.h
									
									
									
									
									
								
							
							
						
						
									
										82
									
								
								fe/felib.h
									
									
									
									
									
								
							@ -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
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user