Patch level :4.0 673
Files correlati : Ricompilazione Demo : [ ] Commento :RICORDO CHE TC9 ESISTE SOLO NELLA 4.0; EVITARE I RIPORTI! git-svn-id: svn://10.65.10.50/trunk@15158 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									7388c8a340
								
							
						
					
					
						commit
						bb2ba3f216
					
				| @ -286,7 +286,8 @@ TTS_textset::TTS_textset(const char* query) | |||||||
| 
 | 
 | ||||||
| 	TString80 field; | 	TString80 field; | ||||||
| 	// dati iva
 | 	// dati iva
 | ||||||
| 	for (int i=0; i<8; i++) |   int i; | ||||||
|  | 	for (i = 0; i < 8; i++) | ||||||
| 	{ | 	{ | ||||||
| 		field.format("TRF-IMPONIB_%d", i);   | 		field.format("TRF-IMPONIB_%d", i);   | ||||||
| 		add_field("0", field,	12,  n, 475+(31*i));	// imponibile
 | 		add_field("0", field,	12,  n, 475+(31*i));	// imponibile
 | ||||||
| @ -304,7 +305,7 @@ TTS_textset::TTS_textset(const char* query) | |||||||
|   add_field("0", "TRF-TOT-FATT",				12,  n, 723);		// totale fattura
 |   add_field("0", "TRF-TOT-FATT",				12,  n, 723);		// totale fattura
 | ||||||
| 
 | 
 | ||||||
|   // conti di ricavo/costo
 |   // conti di ricavo/costo
 | ||||||
| 	for (i=0; i<8; i++) | 	for (i = 0; i < 8; i++) | ||||||
| 	{ | 	{ | ||||||
| 		field.format("TRF-CONTORIC_%d", i);   | 		field.format("TRF-CONTORIC_%d", i);   | ||||||
| 		add_field("0", field,	 7,  n, 735+(19*i));	// codice conto di ricavo/costo
 | 		add_field("0", field,	 7,  n, 735+(19*i));	// codice conto di ricavo/costo
 | ||||||
| @ -319,7 +320,7 @@ TTS_textset::TTS_textset(const char* query) | |||||||
|   add_field("0", "TRF-CAU-AGG-2-PAGAM",	34, an, 939);		// ulteriore descrizione aggiuntiva
 |   add_field("0", "TRF-CAU-AGG-2-PAGAM",	34, an, 939);		// ulteriore descrizione aggiuntiva
 | ||||||
| 
 | 
 | ||||||
| 	// altri movimenti
 | 	// altri movimenti
 | ||||||
| 	for (i=0; i<80; i++) | 	for (i = 0; i < 80; i++) | ||||||
| 	{ | 	{ | ||||||
| 		field.format("TRF-CONTO_%d", i);   | 		field.format("TRF-CONTO_%d", i);   | ||||||
| 	  add_field("0", field,	 7,  n,  973+(64*i));		// codice conto
 | 	  add_field("0", field,	 7,  n,  973+(64*i));		// codice conto
 | ||||||
| @ -338,7 +339,7 @@ TTS_textset::TTS_textset(const char* query) | |||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// ratei e risconti
 | 	// ratei e risconti
 | ||||||
| 	for (i=0; i<10; i++) | 	for (i = 0; i < 10; i++) | ||||||
| 	{ | 	{ | ||||||
| 		field.format("TRF-RIFER-TAB_%d", i);   | 		field.format("TRF-RIFER-TAB_%d", i);   | ||||||
| 		add_field("0", field,	 1, an, 6093+(19*i));		// tabella di riferimento
 | 		add_field("0", field,	 1, an, 6093+(19*i));		// tabella di riferimento
 | ||||||
| @ -358,7 +359,7 @@ TTS_textset::TTS_textset(const char* query) | |||||||
|   add_field("0", "TRF-AN-TIPO-SOGG", 1,  n, 6290);		// tipo soggetto ritenuta di acconto
 |   add_field("0", "TRF-AN-TIPO-SOGG", 1,  n, 6290);		// tipo soggetto ritenuta di acconto
 | ||||||
| 
 | 
 | ||||||
| 	// ulteriori dati ev. pagamento o movimenti diversi
 | 	// ulteriori dati ev. pagamento o movimenti diversi
 | ||||||
| 	for (i=0; i<80; i++) | 	for (i = 0; i < 80; i++) | ||||||
| 	{ | 	{ | ||||||
| 		field.format("TRF-EC-PARTITA-SEZ-PAG_%d", i);   | 		field.format("TRF-EC-PARTITA-SEZ-PAG_%d", i);   | ||||||
| 		add_field("0", field,	 2,  n, 6291+(2*i));		// numero sezionale partita estratto conto
 | 		add_field("0", field,	 2,  n, 6291+(2*i));		// numero sezionale partita estratto conto
 | ||||||
| @ -374,13 +375,13 @@ TTS_textset::TTS_textset(const char* query) | |||||||
|   add_field("0", "TRF-RIT-4",								12,  n, 6526);		// 4
 |   add_field("0", "TRF-RIT-4",								12,  n, 6526);		// 4
 | ||||||
| 
 | 
 | ||||||
| 	// ulteriori dati per unita' produttive ricavi
 | 	// ulteriori dati per unita' produttive ricavi
 | ||||||
| 	for (i=0; i<8; i++) | 	for (i = 0; i < 8; i++) | ||||||
| 	{ | 	{ | ||||||
| 		field.format("TRF-UNITA-RICAVI_%d", i);   | 		field.format("TRF-UNITA-RICAVI_%d", i);   | ||||||
| 		add_field("0", field, 2,  n, 6538+(2*i));		// 
 | 		add_field("0", field, 2,  n, 6538+(2*i));		// 
 | ||||||
| 	} | 	} | ||||||
| 	// ulteriori dati per unita' produttive pagamenti
 | 	// ulteriori dati per unita' produttive pagamenti
 | ||||||
| 	for (i=0; i<80; i++) | 	for (i = 0; i < 80; i++) | ||||||
| 	{ | 	{ | ||||||
| 		field.format("TRF-UNITA-PAGAM_%d", i);   | 		field.format("TRF-UNITA-PAGAM_%d", i);   | ||||||
| 		add_field("0", field,	 2,  n, 6554+(2*i));		// 
 | 		add_field("0", field,	 2,  n, 6554+(2*i));		// 
 | ||||||
|  | |||||||
| @ -7,8 +7,8 @@ int main(int argc, char** argv) | |||||||
|   const int op = argc < 2 ? 0 : argv[1][1]-'0'; |   const int op = argc < 2 ? 0 : argv[1][1]-'0'; | ||||||
|   switch (op) |   switch (op) | ||||||
|   { |   { | ||||||
|     case  0: tc9100(argc,argv); break;	// esiste sulla 4.0 Invio a Proforma
 |     case  0: tc9100(argc,argv); break;	// Invio a Proforma
 | ||||||
|     case  1: tc9200(argc,argv); break;  // esiste dalla 4.0 Invio a Sispac/Cosmo
 |     case  1: tc9200(argc,argv); break;  // Invio a Sispac/Cosmo
 | ||||||
|     default: tc9100(argc,argv); break; |     default: tc9100(argc,argv); break; | ||||||
|   } |   } | ||||||
|   exit(0); |   exit(0); | ||||||
|  | |||||||
							
								
								
									
										1623
									
								
								tc/tc9100.cpp
									
									
									
									
									
								
							
							
						
						
									
										1623
									
								
								tc/tc9100.cpp
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										34
									
								
								tc/tc9100a.h
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								tc/tc9100a.h
									
									
									
									
									
								
							| @ -1,15 +1,23 @@ | |||||||
| // invio dati ad altra procedura (Proforma)
 | // invio dati ad altra procedura (Proforma)
 | ||||||
| 
 | 
 | ||||||
| #define F_CODDITTA      101 | #define F_CODDITTA       301 | ||||||
| #define F_RAGSOC        102 | #define F_RAGSOC         302 | ||||||
| #define F_MOVIMENTI     103 | #define F_MOVIMENTI      303 | ||||||
| #define F_CLIENTI       104 | #define F_CLIENTI        304 | ||||||
| #define F_FORNITORI     105 | #define F_FORNITORI      305 | ||||||
| #define F_CONTI					106 | #define F_CONTI					 306 | ||||||
| #define F_PAGAMENTI			107 | #define F_PAGAMENTI			 307 | ||||||
| #define F_TIPOINVIO			108 | #define F_TIPOINVIO			 308 | ||||||
| #define F_DESTINAZIONE  109 | #define F_DESTINAZIONE   309 | ||||||
| #define F_DATAINI       110 | #define F_DATAINI        310 | ||||||
| #define F_DATAFIN       111 | #define F_DATAFIN        311 | ||||||
| #define F_RIPRISTINA    112 | #define F_RIPRISTINA     312 | ||||||
| #define F_DATARIPRISTINO 113 | #define F_DATARIPRISTINO 313 | ||||||
|  | 
 | ||||||
|  | #define F_PDCC					 315 | ||||||
|  | 
 | ||||||
|  | #define S_TIPO					101 | ||||||
|  | #define S_GRUPPO				102 | ||||||
|  | #define S_CONTO					103 | ||||||
|  | #define S_SOTTOCONTO		104 | ||||||
|  | #define S_DESCRIZIONE		105 | ||||||
|  | |||||||
							
								
								
									
										423
									
								
								tc/tc9100a.ini
									
									
									
									
									
								
							
							
						
						
									
										423
									
								
								tc/tc9100a.ini
									
									
									
									
									
								
							| @ -7,3 +7,426 @@ SKIPLINES = 0 | |||||||
| TYPEFIELD = -1 | TYPEFIELD = -1 | ||||||
| TYPELEN = -1 | TYPELEN = -1 | ||||||
| TYPEPOS = -1 | TYPEPOS = -1 | ||||||
|  | 
 | ||||||
|  | [TYPE STRINGA] | ||||||
|  | ALIGN = L | ||||||
|  | DATA = S | ||||||
|  | DECIMAL = 0 | ||||||
|  | FILLER = ' ' | ||||||
|  | LENGTH = 0 | ||||||
|  | PICTURE = | ||||||
|  | 
 | ||||||
|  | [TYPE NUMERO] | ||||||
|  | ALIGN = R | ||||||
|  | DATA = N | ||||||
|  | DECIMAL = 0 | ||||||
|  | FILLER = '0' | ||||||
|  | PICTURE = | ||||||
|  | 
 | ||||||
|  | [TYPE DATA] | ||||||
|  | ALIGN = | ||||||
|  | DATA = D | ||||||
|  | DECIMAL = 0 | ||||||
|  | FILLER = '0' | ||||||
|  | LENGTH = 8 | ||||||
|  | PICTURE = 1444 | ||||||
|  | 
 | ||||||
|  | [TYPE IMPORTO] | ||||||
|  | ALIGN = R | ||||||
|  | DATA = N | ||||||
|  | DECIMAL = 2 | ||||||
|  | FILLER = '0' | ||||||
|  | LENGTH = 14 | ||||||
|  | PICTURE = @@@@@@@@@,@@ | ||||||
|  | 
 | ||||||
|  | [RECORD T] | ||||||
|  | 
 | ||||||
|  | NAME(0) = ID REGISTRAZIONE | ||||||
|  | TYPE(0) = NUMERO | ||||||
|  | POSITION(0) = 0 | ||||||
|  | LENGTH(0) = 10 | ||||||
|  | FIELD(0) = NUMREG | ||||||
|  | 
 | ||||||
|  | NAME(1) = DATA REGISTRAZIONE | ||||||
|  | TYPE(1) = DATA | ||||||
|  | POSITION(1) = 10 | ||||||
|  | LENGTH(1) = 8 | ||||||
|  | FIELD(1) = DATAREG | ||||||
|  | 
 | ||||||
|  | NAME(2) = CODICE CAUSALE | ||||||
|  | TYPE(2) = STRINGA | ||||||
|  | POSITION(2) = 18 | ||||||
|  | LENGTH(2) = 3 | ||||||
|  | FIELD(2) = CODCAUS | ||||||
|  | 
 | ||||||
|  | NAME(3) = DESCRIZIONE CAUSALE | ||||||
|  | TYPE(3) = STRINGA | ||||||
|  | POSITION(3) = 21 | ||||||
|  | LENGTH(3) = 40 | ||||||
|  | FIELD(3) = 26->DESCR[1,40] | ||||||
|  | 
 | ||||||
|  | NAME(4) = DESCRIZIONE TESTATA | ||||||
|  | TYPE(4) = STRINGA | ||||||
|  | POSITION(4) = 61 | ||||||
|  | LENGTH(4) = 240 | ||||||
|  | FIELD(4) = DESCR[1,40] | ||||||
|  | 
 | ||||||
|  | NAME(5) = DATA DOCUMENTO | ||||||
|  | TYPE(5) = DATA | ||||||
|  | POSITION(5) = 301 | ||||||
|  | LENGTH(5) = 8 | ||||||
|  | FIELD(5) = DATADOC  | ||||||
|  | 
 | ||||||
|  | NAME(6) = NUMERO DOCUMENTO | ||||||
|  | TYPE(6) = STRINGA | ||||||
|  | POSITION(6) = 309 | ||||||
|  | LENGTH(6) = 6 | ||||||
|  | FIELD(6) = NUMDOC | ||||||
|  | 
 | ||||||
|  | NAME(7) = TIPO DOCUMENTO | ||||||
|  | TYPE(7) = STRINGA | ||||||
|  | POSITION(7) = 315 | ||||||
|  | LENGTH(7) = 30 | ||||||
|  | 
 | ||||||
|  | NAME(8) = CODICE CLIFOR | ||||||
|  | TYPE(8) = STRINGA | ||||||
|  | POSITION(8) = 345 | ||||||
|  | LENGTH(8) = 10 | ||||||
|  | FIELD(8) = CODCF | ||||||
|  | 
 | ||||||
|  | NAME(9) = TOTALE IMPONIBILE | ||||||
|  | TYPE(9) = IMPORTO | ||||||
|  | POSITION(9) = 355 | ||||||
|  | 
 | ||||||
|  | NAME(10) = TOTALE IVA | ||||||
|  | TYPE(10) = IMPORTO | ||||||
|  | POSITION(10) = 369 | ||||||
|  | 
 | ||||||
|  | NAME(11) = TOTALE DOCUMENTO | ||||||
|  | TYPE(11) = IMPORTO | ||||||
|  | POSITION(11) = 383 | ||||||
|  | FIELD(11) = TOTDOC | ||||||
|  | 
 | ||||||
|  | NAME(12) = DATA PAGAMENTO | ||||||
|  | TYPE(12) = DATA | ||||||
|  | POSITION(12) = 397 | ||||||
|  | LENGTH(12) = 8 | ||||||
|  | 
 | ||||||
|  | NAME(13) = TIPO PAGAMENTO | ||||||
|  | TYPE(13) = STRINGA | ||||||
|  | POSITION(13) = 405 | ||||||
|  | LENGTH(13) = 20 | ||||||
|  | FIELD(13) = CODPAG | ||||||
|  | 
 | ||||||
|  | NAME(14) = DATA COMPETENZA | ||||||
|  | TYPE(14) = DATA | ||||||
|  | POSITION(14) = 425 | ||||||
|  | LENGTH(14) = 8 | ||||||
|  | FIELD(14) = DATACOMP | ||||||
|  | 
 | ||||||
|  | NAME(15) = NUMERO PROTOCOLLO | ||||||
|  | TYPE(15) = STRINGA | ||||||
|  | POSITION(15) = 433 | ||||||
|  | LENGTH(15) = 10 | ||||||
|  | FIELD(15) = PROTIVA | ||||||
|  | 
 | ||||||
|  | NAME(16) = VALUTA | ||||||
|  | TYPE(16) = STRINGA | ||||||
|  | POSITION(16) = 443 | ||||||
|  | LENGTH(16) = 1 | ||||||
|  | MESSAGE(16)=_FISSO,!1 | ||||||
|  | 
 | ||||||
|  | [RECORD R] | ||||||
|  | 
 | ||||||
|  | NAME(0) = ID REGISTRAZIONE | ||||||
|  | TYPE(0) = NUMERO | ||||||
|  | POSITION(0) = 0 | ||||||
|  | LENGTH(0) = 10 | ||||||
|  | FIELD(0) = 23->NUMREG | ||||||
|  | 
 | ||||||
|  | NAME(1) = FLAG RIGA IVA | ||||||
|  | TYPE(1) = STRINGA | ||||||
|  | POSITION(1) = 10 | ||||||
|  | LENGTH(1) = 1 | ||||||
|  | MESSAGE(1) = _FISSO,!N | ||||||
|  | 
 | ||||||
|  | NAME(2) = FLAG DARE/AVERE | ||||||
|  | TYPE(2) = STRINGA | ||||||
|  | POSITION(2) = 11 | ||||||
|  | LENGTH(2) = 1 | ||||||
|  | FIELD(2) = SEZIONE | ||||||
|  | 
 | ||||||
|  | NAME(3) = CODICE MASTRO | ||||||
|  | TYPE(3) = STRINGA | ||||||
|  | POSITION(3) = 12 | ||||||
|  | LENGTH(3) = 5 | ||||||
|  | 
 | ||||||
|  | NAME(4) = CODICE CONTO | ||||||
|  | TYPE(4) = STRINGA | ||||||
|  | POSITION(4) = 17 | ||||||
|  | LENGTH(4) = 5 | ||||||
|  | 
 | ||||||
|  | NAME(5) = CODICE SOTTOCONTO | ||||||
|  | TYPE(5) = STRINGA | ||||||
|  | POSITION(5) = 22 | ||||||
|  | LENGTH(5) = 5 | ||||||
|  | 
 | ||||||
|  | NAME(6) = FLAG CLIFOR | ||||||
|  | TYPE(6) = STRINGA | ||||||
|  | POSITION(6) = 27 | ||||||
|  | LENGTH(6) = 1 | ||||||
|  | 
 | ||||||
|  | NAME(7) = CODICE CLIFOR | ||||||
|  | TYPE(7) = STRINGA | ||||||
|  | POSITION(7) = 28 | ||||||
|  | LENGTH(7) = 10 | ||||||
|  | 
 | ||||||
|  | NAME(8) = DESCRIZIONE RIGA | ||||||
|  | TYPE(8) = STRINGA | ||||||
|  | POSITION(8) = 38 | ||||||
|  | LENGTH(8) = 40 | ||||||
|  | FIELD(8) = DESCR[1,40] | ||||||
|  | 
 | ||||||
|  | NAME(9) = IMPORTO SOTTOCONTO | ||||||
|  | TYPE(9) = IMPORTO | ||||||
|  | POSITION(9) = 78 | ||||||
|  | FIELD(9) = IMPORTO | ||||||
|  | 
 | ||||||
|  | NAME(10) = IMPONIBILE | ||||||
|  | TYPE(10) = IMPORTO | ||||||
|  | POSITION(10) = 92 | ||||||
|  | 
 | ||||||
|  | NAME(11) = CODICE IVA | ||||||
|  | TYPE(11) = STRINGA | ||||||
|  | POSITION(11) = 106 | ||||||
|  | LENGTH(11) = 4 | ||||||
|  | 
 | ||||||
|  | NAME(12) = CP INDED | ||||||
|  | TYPE(12) = STRINGA | ||||||
|  | POSITION(12) = 110 | ||||||
|  | LENGTH(12) = 15 | ||||||
|  | 
 | ||||||
|  | NAME(13) = COMMESSA | ||||||
|  | TYPE(13) = STRINGA | ||||||
|  | POSITION(13) = 125 | ||||||
|  | LENGTH(13) = 20 | ||||||
|  | FIELD(13) = CODCMS | ||||||
|  | 
 | ||||||
|  | NAME(14) = SOTTOPROGETTO | ||||||
|  | TYPE(14) = STRINGA | ||||||
|  | POSITION(14) = 145 | ||||||
|  | LENGTH(14) = 20 | ||||||
|  | 
 | ||||||
|  | NAME(15) = EDIZIONE | ||||||
|  | TYPE(15) = STRINGA | ||||||
|  | POSITION(15) = 165 | ||||||
|  | LENGTH(15) = 20 | ||||||
|  | 
 | ||||||
|  | NAME(16) = VOCE DI SPESA | ||||||
|  | TYPE(16) = STRINGA | ||||||
|  | POSITION(16) = 185 | ||||||
|  | LENGTH(16) = 10 | ||||||
|  | 
 | ||||||
|  | [RECORD I] | ||||||
|  | 
 | ||||||
|  | NAME(0) = ID REGISTRAZIONE | ||||||
|  | TYPE(0) = NUMERO | ||||||
|  | POSITION(0) = 0 | ||||||
|  | LENGTH(0) = 10 | ||||||
|  | FIELD(0) = NUMREG | ||||||
|  | 
 | ||||||
|  | NAME(1) = FLAG RIGA IVA | ||||||
|  | TYPE(1) = STRINGA | ||||||
|  | POSITION(1) = 10 | ||||||
|  | LENGTH(1) = 1 | ||||||
|  | MESSAGE(1) = _FISSO,!S | ||||||
|  | 
 | ||||||
|  | NAME(3) = CODICE MASTRO | ||||||
|  | TYPE(3) = STRINGA | ||||||
|  | POSITION(3) = 12 | ||||||
|  | LENGTH(3) = 5 | ||||||
|  | FIELD(3) = GRUPPO | ||||||
|  | 
 | ||||||
|  | NAME(4) = CODICE CONTO | ||||||
|  | TYPE(4) = STRINGA | ||||||
|  | POSITION(4) = 17 | ||||||
|  | LENGTH(4) = 5 | ||||||
|  | FIELD(4) = CONTO | ||||||
|  | 
 | ||||||
|  | NAME(5) = CODICE SOTTOCONTO | ||||||
|  | TYPE(5) = STRINGA | ||||||
|  | POSITION(5) = 22 | ||||||
|  | LENGTH(5) = 5 | ||||||
|  | FIELD(5) = SOTTOCONTO | ||||||
|  | 
 | ||||||
|  | NAME(6) = FLAG CLIFOR | ||||||
|  | TYPE(6) = STRINGA | ||||||
|  | POSITION(6) = 27 | ||||||
|  | LENGTH(6) = 1 | ||||||
|  | FIELD(6) = TIPOC | ||||||
|  | 
 | ||||||
|  | NAME(7) = CODICE CLIFOR | ||||||
|  | TYPE(7) = STRINGA | ||||||
|  | POSITION(7) = 28 | ||||||
|  | LENGTH(7) = 10 | ||||||
|  | 
 | ||||||
|  | NAME(8) = DESCRIZIONE RIGA | ||||||
|  | TYPE(8) = STRINGA | ||||||
|  | POSITION(8) = 38 | ||||||
|  | LENGTH(8) = 40 | ||||||
|  | 
 | ||||||
|  | NAME(9) = IMPORTO SOTTOCONTO | ||||||
|  | TYPE(9) = IMPORTO | ||||||
|  | POSITION(9) = 78 | ||||||
|  | 
 | ||||||
|  | NAME(10) = IMPONIBILE | ||||||
|  | TYPE(10) = IMPORTO | ||||||
|  | POSITION(10) = 92 | ||||||
|  | FIELD(10) = IMPONIBILE | ||||||
|  | 
 | ||||||
|  | NAME(11) = CODICE IVA | ||||||
|  | TYPE(11) = STRINGA | ||||||
|  | POSITION(11) = 106 | ||||||
|  | LENGTH(11) = 4 | ||||||
|  | FIELD(11) = CODIVA | ||||||
|  | 
 | ||||||
|  | NAME(12) = CP INDED | ||||||
|  | TYPE(12) = STRINGA | ||||||
|  | POSITION(12) = 110 | ||||||
|  | LENGTH(12) = 15 | ||||||
|  | 
 | ||||||
|  | NAME(13) = COMMESSA | ||||||
|  | TYPE(13) = STRINGA | ||||||
|  | POSITION(13) = 125 | ||||||
|  | LENGTH(13) = 20 | ||||||
|  | 
 | ||||||
|  | NAME(14) = SOTTOPROGETTO | ||||||
|  | TYPE(14) = STRINGA | ||||||
|  | POSITION(14) = 145 | ||||||
|  | LENGTH(14) = 20 | ||||||
|  | 
 | ||||||
|  | NAME(15) = EDIZIONE | ||||||
|  | TYPE(15) = STRINGA | ||||||
|  | POSITION(15) = 165 | ||||||
|  | LENGTH(15) = 20 | ||||||
|  | 
 | ||||||
|  | NAME(16) = VOCE DI SPESA | ||||||
|  | TYPE(16) = STRINGA | ||||||
|  | POSITION(16) = 185 | ||||||
|  | LENGTH(16) = 10 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | [RECORD C] | ||||||
|  | 
 | ||||||
|  | NAME(0) = CODICE | ||||||
|  | TYPE(0) = STRINGA | ||||||
|  | POSITION(0) = 0 | ||||||
|  | LENGTH(0) = 10 | ||||||
|  | FIELD(0) = 20->CODCF | ||||||
|  | 
 | ||||||
|  | NAME(1) = RAGIONE SOCIALE | ||||||
|  | TYPE(1) = STRINGA | ||||||
|  | POSITION(1) = 11 | ||||||
|  | LENGTH(1) = 40 | ||||||
|  | MESSAGE(1) = _RAGSOC | ||||||
|  | FIELD(1) = 20->RAGSOC | ||||||
|  | 
 | ||||||
|  | NAME(2) = PARTITA IVA | ||||||
|  | TYPE(2) = STRINGA | ||||||
|  | POSITION(2) = 50 | ||||||
|  | LENGTH(2) = 12 | ||||||
|  | FIELD(2)=20->PAIV | ||||||
|  | 
 | ||||||
|  | NAME(3) = CODICE FISCALE | ||||||
|  | TYPE(3) = STRINGA | ||||||
|  | POSITION(3) = 62 | ||||||
|  | LENGTH(3) = 16 | ||||||
|  | FIELD(3) = 20->COFI | ||||||
|  | 
 | ||||||
|  | NAME(4) = INDIRIZZO | ||||||
|  | TYPE(4) = STRINGA | ||||||
|  | POSITION(4) = 78 | ||||||
|  | LENGTH(4) = 40 | ||||||
|  | FIELD(4) = 20->INDCF | ||||||
|  | 
 | ||||||
|  | NAME(5) = CAP DI RESIDENZA | ||||||
|  | TYPE(5) = STRINGA | ||||||
|  | POSITION(5) = 118 | ||||||
|  | LENGTH(5) = 5 | ||||||
|  | FIELD(5)=20->CAPCF | ||||||
|  | 
 | ||||||
|  | NAME(6) = COMUNE DI RESIDENZA | ||||||
|  | TYPE(6) = STRINGA | ||||||
|  | POSITION(6) = 123 | ||||||
|  | LENGTH(6) = 23 | ||||||
|  | FIELD(6) = 13->DENCOM[1,40] | ||||||
|  | 
 | ||||||
|  | NAME(7) = PROVINCIA DI RESIDENZA | ||||||
|  | TYPE(7) = STRINGA | ||||||
|  | POSITION(7) = 163 | ||||||
|  | LENGTH(7) = 2 | ||||||
|  | FIELD(7) = 13->PROVCOM | ||||||
|  | 
 | ||||||
|  | NAME(8) = TELEFONO | ||||||
|  | TYPE(8) = STRINGA | ||||||
|  | POSITION(8) = 165 | ||||||
|  | LENGTH(8) = 20 | ||||||
|  | FIELD(8) = 20->TEL | ||||||
|  | MESSAGE(8) = _TELEFONO | ||||||
|  | 
 | ||||||
|  | [RECORD P] | ||||||
|  | 
 | ||||||
|  | NAME(0) = CODICE MASTRO | ||||||
|  | TYPE(0) = STRINGA | ||||||
|  | POSITION(0) = 0 | ||||||
|  | LENGTH(0) = 5 | ||||||
|  | FIELD(0)=19->GRUPPO | ||||||
|  | 
 | ||||||
|  | NAME(1) = CODICE CONTO | ||||||
|  | TYPE(1) = STRINGA | ||||||
|  | POSITION(1) = 5 | ||||||
|  | B LENGTH(1) = 5 | ||||||
|  | FIELD(1)=19->CONTO | ||||||
|  | 
 | ||||||
|  | NAME(2) = CODICE SOTTOCONTO | ||||||
|  | TYPE(2) = STRINGA | ||||||
|  | POSITION(2) = 10 | ||||||
|  | LENGTH(2) = 5 | ||||||
|  | FIELD(2)=19->SOTTOCONTO | ||||||
|  | 
 | ||||||
|  | NAME(3) = DESCRIZIONE | ||||||
|  | TYPE(3) = STRINGA | ||||||
|  | POSITION(3) = 15 | ||||||
|  | LENGTH(3) = 80 | ||||||
|  | FIELD(3)=19->DESCR | ||||||
|  | 
 | ||||||
|  | [RECORD G] | ||||||
|  | 
 | ||||||
|  | NAME(0) = ID REGISTRAZIONE PAGAMENTO | ||||||
|  | TYPE(0) = NUMERO | ||||||
|  | POSITION(0) = 0 | ||||||
|  | LENGTH(0) = 10 | ||||||
|  | MESSAGE(0) = _NREGPAG | ||||||
|  | 
 | ||||||
|  | NAME(1) = ID REGISTRAZIONE COSTO | ||||||
|  | TYPE(1) = NUMERO | ||||||
|  | POSITION(1) = 10 | ||||||
|  | LENGTH(1) = 10 | ||||||
|  | MESSAGE(1) = _NREGCOSTO | ||||||
|  | 
 | ||||||
|  | NAME(2) = IMPORTO | ||||||
|  | TYPE(2) = IMPORTO | ||||||
|  | POSITION(2) = 20 | ||||||
|  | MESSAGE(2) = _IMPORTO | ||||||
|  | 
 | ||||||
|  | NAME(3) = FLAG ACCONTO/SALDO | ||||||
|  | TYPE(3) = STRINGA | ||||||
|  | POSITION(3) = 34 | ||||||
|  | LENGTH(3) = 1 | ||||||
|  | MESSAGE(3) = _FLAG | ||||||
|  | 
 | ||||||
|  | NAME(4) = VALUTA | ||||||
|  | TYPE(4) = STRINGA | ||||||
|  | POSITION(4) = 35 | ||||||
|  | LENGTH(4) = 1 | ||||||
|  | MESSAGE(4)=_FISSO,!1 | ||||||
|  | |||||||
							
								
								
									
										170
									
								
								tc/tc9100a.uml
									
									
									
									
									
								
							
							
						
						
									
										170
									
								
								tc/tc9100a.uml
									
									
									
									
									
								
							| @ -1,5 +1,19 @@ | |||||||
| #include "tc9100a.h" | #include "tc9100a.h" | ||||||
| 
 | 
 | ||||||
|  | TOOLBAR "" 0 -2 0 2 | ||||||
|  | 
 | ||||||
|  | BUTTON DLG_OK 10 2 | ||||||
|  | BEGIN | ||||||
|  |   PROMPT -12 -11 "" | ||||||
|  | END | ||||||
|  | 
 | ||||||
|  | BUTTON DLG_QUIT 10 2 | ||||||
|  | BEGIN | ||||||
|  |   PROMPT -22 -11 "" | ||||||
|  | END | ||||||
|  | 
 | ||||||
|  | ENDPAGE | ||||||
|  | 
 | ||||||
| PAGE "Invio dati contabilita'" -1 -1 78 20 | PAGE "Invio dati contabilita'" -1 -1 78 20 | ||||||
| 
 | 
 | ||||||
| GROUPBOX DLG_NULL 76 3 | GROUPBOX DLG_NULL 76 3 | ||||||
| @ -31,70 +45,188 @@ END | |||||||
| BOOLEAN F_MOVIMENTI | BOOLEAN F_MOVIMENTI | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 3 5 "Movimenti contabili" |   PROMPT 3 5 "Movimenti contabili" | ||||||
|   MESSAGE TRUE,ENABLE F_DATAFIN |   MESSAGE FALSE CLEAR,F_PAGAMENTI|DISABLE,F_DATAFIN | ||||||
|  |   MESSAGE TRUE ENABLE,F_PAGAMENTI|ENABLE,F_DATAFIN | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BOOLEAN F_CLIENTI | BOOLEAN F_CLIENTI | ||||||
| BEGIN | BEGIN | ||||||
|         PROMPT 3 6 "Clienti" |   PROMPT 3 6 "Clienti" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BOOLEAN F_FORNITORI | BOOLEAN F_FORNITORI | ||||||
| BEGIN | BEGIN | ||||||
|         PROMPT 3 7 "Fornitori" |   PROMPT 3 7 "Fornitori" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BOOLEAN F_CONTI | BOOLEAN F_CONTI | ||||||
| BEGIN | BEGIN | ||||||
|         PROMPT 3 8 "Piano dei conti" |   PROMPT 3 8 "Piano dei conti" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BOOLEAN F_PAGAMENTI | BOOLEAN F_PAGAMENTI | ||||||
| BEGIN | BEGIN | ||||||
|         PROMPT 40 5 "Pagamenti" |   PROMPT 40 5 "Pagamenti" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| LISTBOX F_TIPOINVIO 20 | LISTBOX F_TIPOINVIO 20 | ||||||
| BEGIN | BEGIN | ||||||
|         PROMPT 2 10 "Invio a      " |   PROMPT 2 10 "Invio a      " | ||||||
| 		ITEM "P|Proforma" |   ITEM "P|Proforma" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| STRING F_DESTINAZIONE 20 | STRING F_DESTINAZIONE 20 | ||||||
| BEGIN | BEGIN | ||||||
|        PROMPT 2 11 "Destinazione  " |   PROMPT 2 11 "Destinazione  " | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| DATE F_DATAINI | DATE F_DATAINI | ||||||
| BEGIN | BEGIN | ||||||
|        PROMPT 2 12 "Data iniziale " |   PROMPT 2 12 "Data iniziale " | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| DATE F_DATAFIN | DATE F_DATAFIN | ||||||
| BEGIN | BEGIN | ||||||
|        PROMPT 40 12 "Data finale  " |   PROMPT 40 12 "Data finale  " | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BUTTON F_RIPRISTINA 20 | BUTTON F_RIPRISTINA 20 2 | ||||||
| BEGIN | BEGIN | ||||||
|        PROMPT 2 14 "Annulla invio" |   PROMPT 2 14 "Annulla invio" | ||||||
|        MESSAGE SHOW,F_DATARIPRISTINO|ENABLE,F_DATARIPRISTINO |   MESSAGE SHOW,F_DATARIPRISTINO|ENABLE,F_DATARIPRISTINO | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| DATE F_DATARIPRISTINO | DATE F_DATARIPRISTINO | ||||||
| BEGIN | BEGIN | ||||||
|         PROMPT 25 14 "Annulla invio fino al " |   PROMPT 25 14 "Annulla invio fino al " | ||||||
|         FLAGS "HD" |   FLAGS "HD" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BUTTON DLG_OK 9 2 | ENDPAGE | ||||||
|  | 
 | ||||||
|  | PAGE "Conti" -1 -1 78 20 | ||||||
|  | 
 | ||||||
|  | TEXT -1 | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT -12 -1 "" |   PROMPT 1 1 "@bPiano dei conti contabile" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BUTTON DLG_QUIT 9 2 | SPREADSHEET F_PDCC 78 -6 | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT -22 -1 "" |   PROMPT 1 2 "Pdcc" | ||||||
|  |   ITEM "Tipo" | ||||||
|  |   ITEM "Gruppo" | ||||||
|  |   ITEM "Conto" | ||||||
|  |   ITEM "Sottoconto" | ||||||
|  |   ITEM "Descrizione@50" | ||||||
|  | END | ||||||
|  | 
 | ||||||
|  | TEXT -1 | ||||||
|  | BEGIN | ||||||
|  |   PROMPT 1 17 "Inserire conti di tipo F per ritenute Fiscali" | ||||||
|  | END | ||||||
|  | 
 | ||||||
|  | TEXT -1 | ||||||
|  | BEGIN | ||||||
|  |   PROMPT 1 18 "S per ritenute Sociali, C per Costi, P per Pagamenti" | ||||||
|  | END | ||||||
|  | 
 | ||||||
|  | BUTTON DLG_SAVEREC 12 2 | ||||||
|  | BEGIN | ||||||
|  |   PROMPT -11 19 "" | ||||||
|  |   PICTURE BMP_SAVEREC | ||||||
|  |   PICTURE BMP_SAVERECDN | ||||||
|  | END | ||||||
|  | 
 | ||||||
|  | ENDPAGE | ||||||
|  | 
 | ||||||
|  | ENDMASK | ||||||
|  | 
 | ||||||
|  | //-------------------------------------------------------------------- | ||||||
|  | //		Riga dello sheet dei conti | ||||||
|  | //-------------------------------------------------------------------- | ||||||
|  | 
 | ||||||
|  | PAGE "Riga Piano dei conti contabile" -1 -1 78 8 | ||||||
|  | 
 | ||||||
|  | LIST S_TIPO 1 18 | ||||||
|  | BEGIN | ||||||
|  |   PROMPT 1 1 "Tipo        " | ||||||
|  |   ITEM "C|Costi" | ||||||
|  |   ITEM "P|Pagamenti" | ||||||
|  |   ITEM "F|Ritenute fiscali" | ||||||
|  |   ITEM "S|Ritenute sociali" | ||||||
|  | END | ||||||
|  | 
 | ||||||
|  | NUMBER S_GRUPPO 3 | ||||||
|  | BEGIN | ||||||
|  |   PROMPT 1 2 "Gruppo      " | ||||||
|  |   USE LF_PCON KEY 1 SELECT CONTO="" | ||||||
|  |   INPUT GRUPPO S_GRUPPO | ||||||
|  |   DISPLAY "Gruppo" GRUPPO | ||||||
|  |   DISPLAY "Descrizione@50" DESCR | ||||||
|  |   OUTPUT S_GRUPPO GRUPPO | ||||||
|  |   CHECKTYPE REQUIRED | ||||||
|  | END | ||||||
|  | 
 | ||||||
|  | NUMBER S_CONTO 3 | ||||||
|  | BEGIN | ||||||
|  |   PROMPT 1 3 "Conto       " | ||||||
|  |   USE LF_PCON KEY 1 SELECT ((CONTO!="")&&(SOTTOCONTO="")) | ||||||
|  |   COPY INPUT S_GRUPPO | ||||||
|  |   INPUT CONTO S_CONTO | ||||||
|  |   DISPLAY "Gruppo" GRUPPO | ||||||
|  |   DISPLAY "Conto" CONTO | ||||||
|  |   DISPLAY "Descrizione@50" DESCR | ||||||
|  |   OUTPUT S_GRUPPO GRUPPO | ||||||
|  |   OUTPUT S_CONTO CONTO | ||||||
|  |   CHECKTYPE NORMAL | ||||||
|  |   VALIDATE REQIF_FUNC 1 S_SOTTOCONTO | ||||||
|  | END | ||||||
|  | 
 | ||||||
|  | NUMBER S_SOTTOCONTO 6 | ||||||
|  | BEGIN | ||||||
|  |   PROMPT 1 4 "Sottoconto  " | ||||||
|  |   USE LF_PCON KEY 1 SELECT SOTTOCONTO!="" | ||||||
|  |   COPY INPUT S_CONTO | ||||||
|  |   INPUT SOTTOCONTO S_SOTTOCONTO | ||||||
|  |   DISPLAY "Gruppo" GRUPPO | ||||||
|  |   DISPLAY "Conto" CONTO | ||||||
|  |   DISPLAY "Sottoconto" SOTTOCONTO | ||||||
|  |   DISPLAY "Descrizione@50" DESCR | ||||||
|  |   OUTPUT S_SOTTOCONTO SOTTOCONTO | ||||||
|  |   OUTPUT S_CONTO CONTO | ||||||
|  |   OUTPUT S_GRUPPO GRUPPO | ||||||
|  |   OUTPUT S_DESCRIZIONE DESCR | ||||||
|  |   CHECKTYPE NORMAL | ||||||
|  | END | ||||||
|  | 
 | ||||||
|  | STRING S_DESCRIZIONE 50 | ||||||
|  | BEGIN | ||||||
|  |   PROMPT 1 5 "Descrizione " | ||||||
|  |   KEY 2 | ||||||
|  |   USE LF_PCON KEY 2 | ||||||
|  |   INPUT DESCR S_DESCRIZIONE | ||||||
|  |   DISPLAY "Descrizione@50" DESCR | ||||||
|  |   DISPLAY "Gruppo" GRUPPO | ||||||
|  |   DISPLAY "Conto" CONTO | ||||||
|  |   DISPLAY "Sottoconto" SOTTOCONTO | ||||||
|  |   COPY OUTPUT S_SOTTOCONTO | ||||||
|  |   CHECKTYPE REQUIRED | ||||||
|  | END | ||||||
|  | 
 | ||||||
|  | BUTTON DLG_OK 10 2 | ||||||
|  | BEGIN | ||||||
|  |   PROMPT -13 -1 "" | ||||||
|  | END | ||||||
|  | 
 | ||||||
|  | BUTTON DLG_DELREC 10 2 | ||||||
|  | BEGIN | ||||||
|  |   PROMPT -23 -1 "" | ||||||
|  | END | ||||||
|  | 
 | ||||||
|  | BUTTON DLG_CANCEL 10 2 | ||||||
|  | BEGIN  | ||||||
|  |   PROMPT -33 -1 "" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| ENDPAGE | ENDPAGE | ||||||
|  | |||||||
| @ -1,2 +1,5 @@ | |||||||
| 
 | [OPZIONI] | ||||||
|  | CONFSTRINGA = | ||||||
|  | DATA = | ||||||
|  | PERCORSO = | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										384
									
								
								tc/tc9200.cpp
									
									
									
									
									
								
							
							
						
						
									
										384
									
								
								tc/tc9200.cpp
									
									
									
									
									
								
							| @ -1,7 +1,385 @@ | |||||||
| //NON riportare nulla!!!! Esiste dalla 4.0; qui e' solo un segnaposto
 | #include <applicat.h> | ||||||
| #include "tc9.h" | #include <automask.h> | ||||||
|  | #include <filetext.h> | ||||||
|  | 
 | ||||||
|  | #include "tc0.h" | ||||||
|  | #include "tc9200a.h" | ||||||
|  | 
 | ||||||
|  | #include <clifo.h> | ||||||
|  | #include <mov.h> | ||||||
|  | #include <rmov.h> | ||||||
|  | #include <rmoviva.h> | ||||||
|  | 
 | ||||||
|  | #define ALIAS_REG		100 | ||||||
|  |   | ||||||
|  | class TInvioS_file: public TFile_text | ||||||
|  | { | ||||||
|  | protected: | ||||||
|  |   virtual void validate(TCursor& cur,TRecord_text &rec, TToken_string &val, TString& str); | ||||||
|  | 
 | ||||||
|  | public: | ||||||
|  |   TInvioS_file(const TString& file_name); | ||||||
|  |   virtual ~TInvioS_file() { } | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | TInvioS_file::TInvioS_file(const TString& file_name) | ||||||
|  |           : TFile_text(file_name, "tc9200a.ini") | ||||||
|  | { | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | class TInvioS_mask : public TAutomask | ||||||
|  | { | ||||||
|  | protected: | ||||||
|  |   bool on_field_event(TOperable_field& o, TField_event e, long jolly); | ||||||
|  | public: | ||||||
|  | 
 | ||||||
|  |   TInvioS_mask(); | ||||||
|  |    | ||||||
|  |   virtual ~TInvioS_mask(){}; | ||||||
|  | }; | ||||||
|  |    | ||||||
|  | TInvioS_mask::TInvioS_mask() :TAutomask ("tc9200a") | ||||||
|  | { | ||||||
|  | }   | ||||||
|  |    | ||||||
|  | bool TInvioS_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) | ||||||
|  | {  | ||||||
|  | 	switch (o.dlg()) | ||||||
|  | 	{ | ||||||
|  | 	case F_CODDITTA:                                | ||||||
|  | 		if (e==fe_init && o.empty()) | ||||||
|  | 		{ | ||||||
|  | 			set(F_CODDITTA, main_app().get_firm()); | ||||||
|  | 			((TEdit_field&) o).check(); | ||||||
|  | 			disable(F_CODDITTA); | ||||||
|  | 		}	 | ||||||
|  | 		break; | ||||||
|  | 	default: | ||||||
|  | 		break;	 | ||||||
|  | 	} | ||||||
|  |   return TRUE; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | class TInvioS : public TSkeleton_application | ||||||
|  | {                      | ||||||
|  | 	TCursor*				   _cur; | ||||||
|  |   TInvioS_mask* 		 _msk; | ||||||
|  |   TInvioS_file*			 _trasfile; | ||||||
|  | 	TConfig*					 _configfile; | ||||||
|  |   TDate							 _dataini, _datafin; | ||||||
|  |    | ||||||
|  | protected: | ||||||
|  |   virtual bool create(void); | ||||||
|  |   virtual bool destroy(void); | ||||||
|  |   virtual void main_loop() ; | ||||||
|  |   void invio_sispac(); | ||||||
|  |   long i_sispac_clifor(const char* tipocf, const bool invio = TRUE); | ||||||
|  |   long i_sispac_movcont(const bool invio = TRUE); | ||||||
|  |   long i_sispac_moviva(const bool invio = TRUE); | ||||||
|  | 
 | ||||||
|  | public: | ||||||
|  | 	TInvioS_file* apri_file(const char* nome); | ||||||
|  | 	void chiudi_file(TInvioS_file* trasfile); | ||||||
|  | 	TConfig& config() {return *_configfile;}; | ||||||
|  |   TInvioS() {} ; | ||||||
|  |   virtual ~TInvioS() {} ; | ||||||
|  | };   | ||||||
|  | 
 | ||||||
|  | // restituisce un riferimento all' applicazione
 | ||||||
|  | inline TInvioS& app() { return (TInvioS&) main_app();} | ||||||
|  | 
 | ||||||
|  | // gestione dei messaggi estesi nei campi
 | ||||||
|  | void TInvioS_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TString& str) | ||||||
|  | { | ||||||
|  |   const TString code(s.get(0)); | ||||||
|  |   TString valore; | ||||||
|  |   if (code == "_FISSO") | ||||||
|  |   { | ||||||
|  |     // gestione dei campi fissi per i record delle riba
 | ||||||
|  |     // sintassi: _FISSO,!<valore>
 | ||||||
|  |     // dove: <valore> è la stringa fissa da emettere
 | ||||||
|  |     TString in(s.get()); | ||||||
|  |     CHECK(in[0]=='!',"Macro _FISSO senza carattere '!'"); | ||||||
|  |     in.ltrim(1); | ||||||
|  |     in.trim(); | ||||||
|  |     valore = in; | ||||||
|  |   }  | ||||||
|  |   else if (code == "_TIPORIGA") | ||||||
|  |   { | ||||||
|  | 		valore = str.empty() ? " " : "S"; | ||||||
|  |   }  | ||||||
|  |   else if (code == "_CODPAG") | ||||||
|  |   { | ||||||
|  |  		valore = app().config().get(str, "PAGAMENTI"); | ||||||
|  |   }  | ||||||
|  |   else if (code == "_OPZIONI") | ||||||
|  |   { | ||||||
|  |  		TString in(s.get()); 	 | ||||||
|  |  		valore = app().config().get(in, "OPZIONI"); | ||||||
|  |   } | ||||||
|  |   else if (code == "_IMPORTO") | ||||||
|  |   {  | ||||||
|  | 		real importo(str); | ||||||
|  | 		valore = importo.string(0,2); | ||||||
|  |   	valore.strip("-"); | ||||||
|  |   	valore.strip("+"); | ||||||
|  |   	valore.strip("."); | ||||||
|  |   } | ||||||
|  |   else if (code == "_IMPORTORIGAIVA") | ||||||
|  |   {  | ||||||
|  | 		real imponibile = cur.curr(LF_RMOVIVA).get_real(RMI_IMPONIBILE);; | ||||||
|  | 		real imposta = cur.curr(LF_RMOVIVA).get_real(RMI_IMPOSTA);; | ||||||
|  | 		imponibile += imposta; | ||||||
|  | 		valore = imposta.string(0,2); | ||||||
|  |   	valore.strip("-"); | ||||||
|  |   	valore.strip("+"); | ||||||
|  |   	valore.strip("."); | ||||||
|  |   } | ||||||
|  | 	else if (code == "_INDIR") | ||||||
|  | 	{ | ||||||
|  | 		valore = cur.curr(LF_CLIFO).get(CLI_INDCF); | ||||||
|  | 		valore << ' ' << cur.curr(LF_CLIFO).get(CLI_CIVCF); | ||||||
|  | 		valore.cut(40); | ||||||
|  | 	} | ||||||
|  | 	else if (code == "_GIUFIS") | ||||||
|  | 	{ | ||||||
|  | 		const char c = str[0]; | ||||||
|  | 		valore = (c == 'F') ? "S" : "N"; | ||||||
|  | 	} | ||||||
|  | 	else if (code == "_TITOLARE") | ||||||
|  | 	{ | ||||||
|  | 		valore = (str.empty() ? "N" : "S"); | ||||||
|  | 	} | ||||||
|  | 	else if (code == "_TIPODET") | ||||||
|  | 	{ | ||||||
|  | 		valore = (str.empty() ? " " : "100"); | ||||||
|  | 	} | ||||||
|  | 	else if (code == "_CONTO") | ||||||
|  | 	{ | ||||||
|  | 		int gruppo = cur.curr(LF_CLIFO).get_int(CLI_GRUPPO); | ||||||
|  | 		if (gruppo == 10) | ||||||
|  | 			gruppo = 0; | ||||||
|  | 		int conto = cur.curr(LF_CLIFO).get_int(CLI_CONTO); | ||||||
|  | 		long codice = cur.curr(LF_CLIFO).get_int(CLI_CODCF); | ||||||
|  | 		valore.format("%03d%03d%06ld", gruppo, conto, codice); | ||||||
|  | 	} | ||||||
|  | 	else if (code == "_CONTOMOV") | ||||||
|  | 	{ | ||||||
|  | 		int gruppo = cur.curr(LF_RMOV).get_int(RMV_GRUPPO); | ||||||
|  | 		if (gruppo == 10) | ||||||
|  | 			gruppo = 0; | ||||||
|  | 		int conto = cur.curr(LF_RMOV).get_int(RMV_CONTO); | ||||||
|  | 		long codice = cur.curr(LF_RMOV).get_int(RMV_SOTTOCONTO); | ||||||
|  | 		valore.format("%03d%03d%06ld", gruppo, conto, codice); | ||||||
|  | 	} | ||||||
|  | 	else if (code == "_CONTOMOVIVA") | ||||||
|  | 	{ | ||||||
|  | 		int gruppo = cur.curr(LF_RMOVIVA).get_int(RMI_GRUPPO); | ||||||
|  | 		if (gruppo == 10) | ||||||
|  | 			gruppo = 0; | ||||||
|  | 		int conto = cur.curr(LF_RMOVIVA).get_int(RMI_CONTO); | ||||||
|  | 		long codice = cur.curr(LF_RMOVIVA).get_int(RMI_SOTTOCONTO); | ||||||
|  | 		valore.format("%03d%03d%06ld", gruppo, conto, codice); | ||||||
|  | 	} | ||||||
|  |   else NFCHECK("Macro non definita: %s", (const char *)code); | ||||||
|  |   str = valore; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | TInvioS_file* TInvioS::apri_file(const char* nome) | ||||||
|  | { | ||||||
|  | 	TFilename filename = _msk->get(F_DESTINAZIONE); | ||||||
|  | 	filename.add(nome); | ||||||
|  | 	filename.ext("txt"); | ||||||
|  | 	if (filename.exist()) | ||||||
|  | 		remove(filename); | ||||||
|  | 	TInvioS_file* trasfile = new TInvioS_file(filename); | ||||||
|  | 	trasfile->open(filename,'w'); | ||||||
|  | 	trasfile->force_record_separator(); | ||||||
|  | 	return trasfile; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void TInvioS::chiudi_file(TInvioS_file* trasfile) | ||||||
|  | { | ||||||
|  | 	trasfile->close(); | ||||||
|  | 	delete trasfile; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | long TInvioS::i_sispac_movcont(const bool invio) | ||||||
|  | { | ||||||
|  |   TRectype da(LF_MOV); | ||||||
|  |   TRectype a(LF_MOV); | ||||||
|  | 	TDate dataini = _msk->get_date(F_DATAINI); | ||||||
|  | 	TDate datafin = _msk->get_date(F_DATAFIN); | ||||||
|  | 	if (dataini.ok()) | ||||||
|  | 		da.put(MOV_DATAREG, dataini); | ||||||
|  | 	if (datafin.ok()) | ||||||
|  | 		a.put(MOV_DATAREG, datafin); | ||||||
|  |   TRelation rel(LF_MOV); | ||||||
|  |   rel.add(LF_RMOV, "NUMREG==NUMREG", 1); | ||||||
|  |   rel.add(LF_CLIFO, "TIPOCF==TIPO|CODCF==CODCF", 1); | ||||||
|  |   TCursor cur(&rel, "", 2, &da, &a); | ||||||
|  |   const long cur_items = cur.items(); | ||||||
|  |   if (cur_items != 0)  | ||||||
|  |   {                | ||||||
|  | 	  cur.freeze(); | ||||||
|  |     TRectype& cur_rec = cur.curr(); | ||||||
|  |     for (cur = 0; cur.pos() < cur_items; ++(cur)) | ||||||
|  |     {                                                     | ||||||
|  | 			const long numreg = cur.curr().get_long(MOV_NUMREG); | ||||||
|  |  			bool continua = TRUE; | ||||||
|  |  			while (continua) | ||||||
|  |  			{                                                    | ||||||
|  |  				const long numregrig = cur.curr(LF_RMOV).get_long(RMV_NUMREG); | ||||||
|  |  				if (numreg == numregrig) | ||||||
|  |  				{       | ||||||
|  |  					if (invio) | ||||||
|  |  					{ | ||||||
|  | 			    	TRectype& cur_rec_righe = cur.curr(LF_RMOV); | ||||||
|  | 						TRecord_text recrighe; | ||||||
|  | 						recrighe.set_type("R"); | ||||||
|  | 						_trasfile->autoload(recrighe, cur);  | ||||||
|  | 						_trasfile->write(recrighe); | ||||||
|  | 					} | ||||||
|  |  				} | ||||||
|  | 		  	continua = cur.next_match(LF_RMOV, "NUMREG"); | ||||||
|  |  			}	 | ||||||
|  |     }	 | ||||||
|  |   }                   | ||||||
|  |   return 0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | long TInvioS::i_sispac_moviva(const bool invio) | ||||||
|  | { | ||||||
|  |   TRectype da(LF_MOV); | ||||||
|  |   TRectype a(LF_MOV); | ||||||
|  |   da.put(MOV_DATAREG, _dataini); | ||||||
|  |   a.put(MOV_DATAREG, _datafin); | ||||||
|  |   TRelation rel(LF_MOV); | ||||||
|  |   rel.add(LF_RMOVIVA, "NUMREG==NUMREG", 1); | ||||||
|  |   rel.add("REG", "CODTAB[1,4]==ANNOIVA|CODTAB[5,7]==REG", 1); | ||||||
|  |   rel.add(LF_CLIFO, "TIPOCF==TIPO|CODCF==CODCF", 1); | ||||||
|  |   TCursor cur(&rel, "", 2, &da, &a); | ||||||
|  |   const long cur_items = cur.items(); | ||||||
|  |   if (cur_items != 0)  | ||||||
|  | 
 | ||||||
|  |   {                | ||||||
|  | 	  cur.freeze(); | ||||||
|  |     TRectype& cur_rec = cur.curr(); | ||||||
|  |     for (cur = 0; cur.pos() < cur_items; ++(cur)) | ||||||
|  |     {                                                     | ||||||
|  | 			const long numreg = cur.curr().get_long(MOV_NUMREG); | ||||||
|  |  			bool continua = TRUE; | ||||||
|  |  			while (continua) | ||||||
|  |  			{                                                    | ||||||
|  |  				const long numregrig = cur.curr(LF_RMOVIVA).get_long(RMI_NUMREG); | ||||||
|  |  				if (numreg == numregrig) | ||||||
|  |  				{       | ||||||
|  |  					if (invio) | ||||||
|  |  					{ | ||||||
|  | 			    	TRectype& cur_rec_righe = cur.curr(LF_RMOVIVA); | ||||||
|  | 						TRecord_text recrighe; | ||||||
|  | 						recrighe.set_type("I"); | ||||||
|  | 						_trasfile->autoload(recrighe, cur);  | ||||||
|  | 						_trasfile->write(recrighe); | ||||||
|  | 					} | ||||||
|  |  				} | ||||||
|  | 		  	continua = cur.next_match(LF_RMOVIVA, "NUMREG"); | ||||||
|  |  			}	 | ||||||
|  |     }	 | ||||||
|  |   }                   | ||||||
|  |   return 0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | long TInvioS::i_sispac_clifor(const char* tipocf, const bool invio) | ||||||
|  | { | ||||||
|  | 	TString80 nomefile = "FILE"; | ||||||
|  | 	nomefile << tipocf; | ||||||
|  | 	TInvioS_file* trasfilecf = apri_file(_configfile->get(nomefile, "OPZIONI")); | ||||||
|  |   TRelation rel(LF_CLIFO); | ||||||
|  |   rel.add(LF_COMUNI, "STATO==STATOCF|COM==COMCF", 1); | ||||||
|  |   rel.add(LF_ANAGFIS,"CODANAGR==CODANAGPER", 1); | ||||||
|  |   rel.add(LF_ANAG,"TIPOA==TIPOPERS|CODANAGR==CODANAGPER", 1); | ||||||
|  | 	TString80 filtro; | ||||||
|  | 	filtro = "20->TIPOCF == \""; | ||||||
|  | 	filtro << tipocf; | ||||||
|  | 	filtro << "\""; | ||||||
|  |   TCursor cur(&rel); | ||||||
|  | 	cur.setfilter(filtro, TRUE); | ||||||
|  |   const long cur_items = cur.items(); | ||||||
|  |   if (cur_items != 0 && invio)  | ||||||
|  |   { | ||||||
|  | 	  cur.freeze(); | ||||||
|  |     TRectype& cur_rec = cur.curr(); | ||||||
|  |     for (cur = 0; cur.pos() < cur_items; ++(cur)) | ||||||
|  |     { | ||||||
|  | 			TRecord_text rec; | ||||||
|  | 			rec.set_type(tipocf); | ||||||
|  | 			trasfilecf->autoload(rec, cur);  | ||||||
|  | 			trasfilecf->write(rec); | ||||||
|  |     }	 | ||||||
|  |   }  | ||||||
|  | 	chiudi_file(trasfilecf); | ||||||
|  |   return 0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | //metodone globale che chiama, come un menu, i vari sottometodi in base alle scelte sulla maschera
 | ||||||
|  | void TInvioS::invio_sispac() | ||||||
|  | { | ||||||
|  | 	if (_msk->get_bool(F_CLIFOR)) | ||||||
|  | 	{ | ||||||
|  | 		i_sispac_clifor("C"); | ||||||
|  | 		i_sispac_clifor("F"); | ||||||
|  | 	} | ||||||
|  | 	if (_msk->get_bool(F_MOVCONT)) | ||||||
|  | 	{ | ||||||
|  | 		TString80 filename = _configfile->get("FILEM", "OPZIONI"); | ||||||
|  | 		_trasfile = apri_file(filename); | ||||||
|  | 		i_sispac_movcont(); | ||||||
|  | 		i_sispac_moviva(); | ||||||
|  | 		chiudi_file(_trasfile); | ||||||
|  | 	}	 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | bool TInvioS::create() | ||||||
|  | { | ||||||
|  |   _msk = new TInvioS_mask(); | ||||||
|  | 	TFilename configname = "tc9200conf.ini"; | ||||||
|  | 	configname.custom_path(); | ||||||
|  | 	_configfile = new TConfig(configname); | ||||||
|  |   return TSkeleton_application::create(); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | bool TInvioS::destroy() | ||||||
|  | {  | ||||||
|  | 	delete _configfile; | ||||||
|  | 	delete _msk; | ||||||
|  |   return TSkeleton_application::destroy(); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void TInvioS::main_loop() | ||||||
|  | { | ||||||
|  | 	_msk->set(F_NUMEROINVIO, _configfile->get_int("NUMEROINVIO","OPZIONI")+1); | ||||||
|  | 	_msk->set(F_DATAINI, _configfile->get("DATA","OPZIONI")); | ||||||
|  | 	_msk->set(F_DESTINAZIONE, _configfile->get("PERCORSO","OPZIONI")); | ||||||
|  |   while (_msk->run() != K_QUIT) | ||||||
|  |   {                                   | ||||||
|  |   	_configfile->set("NUMEROINVIO", _msk->get(F_NUMEROINVIO),"OPZIONI"); | ||||||
|  |   	_configfile->set("DATA", _msk->get_date(F_DATAFIN),"OPZIONI"); | ||||||
|  |   	_configfile->set("PERCORSO", _msk->get(F_DESTINAZIONE),"OPZIONI"); | ||||||
|  |   	_configfile->set_paragraph("PAGAMENTI"); | ||||||
|  |   	_dataini = _msk->get_date(F_DATAINI); | ||||||
|  |   	_datafin = _msk->get_date(F_DATAFIN); | ||||||
|  | 		const char tipoinvio = _msk->get(F_TIPOINVIO)[0]; | ||||||
|  | 		if (tipoinvio == 'S') | ||||||
|  | 			invio_sispac(); | ||||||
|  | 	}	 | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| int tc9200(int argc, char **argv)  | int tc9200(int argc, char **argv)  | ||||||
| { | { | ||||||
| 	return 0; |   TInvioS a; | ||||||
|  |   a.run(argc, argv, "Invio dati contabilità Sispac/Cosmo"); | ||||||
|  |   return 0; | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | |||||||
| @ -5,6 +5,8 @@ Module  = 27 | |||||||
| Flags   = "" | Flags   = "" | ||||||
| Item_01 = "TeamSystem", [TCMENU_002] | Item_01 = "TeamSystem", [TCMENU_002] | ||||||
| Item_02 = "Zucchetti", "tc1 -0", "" | Item_02 = "Zucchetti", "tc1 -0", "" | ||||||
|  | Item_03 = "Proforma", "tc9 -0", "" | ||||||
|  | Item_04 = "Sispac/Cosmo", "tc9 -1", "" | ||||||
| 
 | 
 | ||||||
| [TCMENU_002] | [TCMENU_002] | ||||||
| Caption = "TeamSystem" | Caption = "TeamSystem" | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user