Patch level : 12.0 436
Files correlati : tf Commento : - Aggiunta nuovo programma cambio stato TF0100: - Tolta detraibilità - Tolti campi inutili dalla maschera - Spostata funzione checkRecord in tfutility - Aggiunti (disabilitati) a menù i nuovi programmi git-svn-id: svn://10.65.10.50/branches/R_10_00@24053 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									b6fe090da8
								
							
						
					
					
						commit
						fe7c5f30df
					
				| @ -8,10 +8,10 @@ int main(int argc, char** argv) | |||||||
| 
 | 
 | ||||||
|   switch (r) |   switch (r) | ||||||
|   { |   { | ||||||
| 	 |  | ||||||
|   case 1 : rt = tf0200(argc, argv); break;	// Comunicazione Liquidazioni Periodiche IVA
 |   case 1 : rt = tf0200(argc, argv); break;	// Comunicazione Liquidazioni Periodiche IVA
 | ||||||
| 	case 3:  rt = tf0400(argc, argv); break;	// Controllo Spesometro
 | 	//case 2 : rt = tf0300(argc, argv); break;	// Cambio stato invio
 | ||||||
| 	case 4:  rt = tf0500(argc, argv); break;	// Invio IVA
 | 	case 3 : rt = tf0400(argc, argv); break;	// Controllo Spesometro
 | ||||||
|  | 	case 4 : rt = tf0500(argc, argv); break;	// Invio IVA
 | ||||||
| 	default: rt = tf0100(argc, argv); break;	// Spesometro
 | 	default: rt = tf0100(argc, argv); break;	// Spesometro
 | ||||||
|   } |   } | ||||||
|   return rt; |   return rt; | ||||||
|  | |||||||
| @ -3,6 +3,7 @@ | |||||||
| 
 | 
 | ||||||
| int tf0100(int argc, char* argv[]); | int tf0100(int argc, char* argv[]); | ||||||
| int tf0200(int argc, char* argv[]); | int tf0200(int argc, char* argv[]); | ||||||
|  | int tf0300(int argc, char* argv[]); | ||||||
| int tf0400(int argc, char* argv[]); | int tf0400(int argc, char* argv[]); | ||||||
| int tf0500(int argc, char* argv[]); | int tf0500(int argc, char* argv[]); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1325,17 +1325,21 @@ bool TTrFa_app::tff2200(TToken_string* strarr, int nriga) | |||||||
| 	TRectype thisMov = cache().get(LF_MOV, strarr->get(_numero)); | 	TRectype thisMov = cache().get(LF_MOV, strarr->get(_numero)); | ||||||
| 	tff2200f.set("PL_ESIGIVA",				is_split_payment(thisMov) ? "S" : is_IVA_diff(thisMov) || is_IVAxCassa(thisMov) ? "D" : "I"); | 	tff2200f.set("PL_ESIGIVA",				is_split_payment(thisMov) ? "S" : is_IVA_diff(thisMov) || is_IVAxCassa(thisMov) ? "D" : "I"); | ||||||
| 	tff2200f.set("PL_NATURA",					strarr->get(_natura)); | 	tff2200f.set("PL_NATURA",					strarr->get(_natura)); | ||||||
|  | 	 | ||||||
|  | 	/* Tutto disabilitato! *************************************
 | ||||||
|  | 
 | ||||||
| 	real det(strarr->get(_detraibile));  | 	real det(strarr->get(_detraibile));  | ||||||
| 	// Nella conversione la vigola viene persa e 100,00 diventa 10.000 quindi divido 
 | 	// Nella conversione la vigola viene persa e 100,00 diventa 10.000 quindi divido 
 | ||||||
| 	det /= CENTO; | 	det /= CENTO; | ||||||
| 	if(det > ZERO) | 	if(det > ZERO) | ||||||
| 	{ | 	{ | ||||||
| 		tff2200f.set("PL_DETRAIBILE",   det); | 		tff2200f.set("PL_DETRAIBILE",   CENTO - det); | ||||||
| 	} | 	} | ||||||
| 	else if(false)	// Sempre disabilitato!
 | 	else if(false)	// Sempre disabilitato!
 | ||||||
| 	{ | 	{ | ||||||
| 		tff2200f.set("PL_DEDUCIBILE",   "SI"); | 		tff2200f.set("PL_DEDUCIBILE",   "SI"); | ||||||
| 	} | 	} | ||||||
|  | 	*/ | ||||||
| 
 | 
 | ||||||
| 	tff2200f.set("PL_GESTIONE", "D"); | 	tff2200f.set("PL_GESTIONE", "D"); | ||||||
| 	return tff2200f.insert(); | 	return tff2200f.insert(); | ||||||
|  | |||||||
| @ -342,7 +342,6 @@ BEGIN | |||||||
|   ITEM "N5|N5 - IVA in regime del margine" |   ITEM "N5|N5 - IVA in regime del margine" | ||||||
|   ITEM "N6|N6 - IVA in reverse charge" |   ITEM "N6|N6 - IVA in reverse charge" | ||||||
|   ITEM "N7|N7 - IVA assolta in altro stato U3" |   ITEM "N7|N7 - IVA assolta in altro stato U3" | ||||||
|   FIELD S12 |  | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| STRING A_ALIQUOTA 4 | STRING A_ALIQUOTA 4 | ||||||
| @ -375,26 +374,22 @@ END | |||||||
| NUMBER A_IMPONIBILE 12 2 | NUMBER A_IMPONIBILE 12 2 | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 42 8 "Imponibile" |   PROMPT 42 8 "Imponibile" | ||||||
|   FIELD IMPORTO |  | ||||||
|   CHEKTYPE REQUIRED |   CHEKTYPE REQUIRED | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| NUMBER A_IMPOSTA 12 2 | NUMBER A_IMPOSTA 12 2 | ||||||
| BEGIN | BEGIN | ||||||
|  PROMPT 42 9 "Imposta   " |  PROMPT 42 9 "Imposta   " | ||||||
|   FIELD IMPOSTA |  | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BOOLEAN A_REVERSE | BOOLEAN A_REVERSE | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 1 9 "Reverse charge" |   PROMPT 1 9 "Reverse charge" | ||||||
|   FIELD REVERSE |  | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BOOLEAN A_AUTOFATT | BOOLEAN A_AUTOFATT | ||||||
| BEGIN | BEGIN | ||||||
|  PROMPT 25 9 "Autofattura" |  PROMPT 25 9 "Autofattura" | ||||||
|   FIELD AUTOFATT |  | ||||||
|   FLAGS "D" |   FLAGS "D" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -44,7 +44,6 @@ enum filter_fatt | |||||||
| 	disabled	// Disabilitate
 | 	disabled	// Disabilitate
 | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| #define MOV_CUSTOM 10000000 |  | ||||||
| #define SHEET_GAP 101 | #define SHEET_GAP 101 | ||||||
| #define DTE_PROVV "DTE0000001" | #define DTE_PROVV "DTE0000001" | ||||||
| #define DTR_PROVV "DTR0000001" | #define DTR_PROVV "DTR0000001" | ||||||
| @ -172,7 +171,6 @@ class TTrFa_cursors : TObject | |||||||
| 
 | 
 | ||||||
| 	TRectype _next(return_code& code, TString& tipocf, TString& codcf, TString& ocfpi);		// Si sposta avanti di un elemento
 | 	TRectype _next(return_code& code, TString& tipocf, TString& codcf, TString& ocfpi);		// Si sposta avanti di un elemento
 | ||||||
| 	TRectype _nextCust(return_code& code, TString& tipocf, TString& codcf, TString& ocfpi);		// Si sposta avanti di un elemento tra quelli custom
 | 	TRectype _nextCust(return_code& code, TString& tipocf, TString& codcf, TString& ocfpi);		// Si sposta avanti di un elemento tra quelli custom
 | ||||||
| 	bool checkRecord(TISAM_recordset* rec); |  | ||||||
| public: | public: | ||||||
| 	//TTrFa_cursors();
 | 	//TTrFa_cursors();
 | ||||||
| 	~TTrFa_cursors(); | 	~TTrFa_cursors(); | ||||||
|  | |||||||
| @ -152,29 +152,6 @@ TRectype TTrFa_cursors::_nextCust(return_code& code, TString& tipocf, TString& c | |||||||
| 	return c_trasfatt->cursor()->curr(); | 	return c_trasfatt->cursor()->curr(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /* Utilizzo questa funzione per filtrare al meglio i record, tutti i casi che devo omettere verranno rilevati e ritorneranno false
 |  | ||||||
|  * Nota bene: viene sfruttato un puntatore di TISA_Recordset per non creare nuovi oggetti e velocizzare la chiamata |  | ||||||
|  * a questo punto il programma non ha ancora creato un record di $trasfatt con i dati che mi interessano |  | ||||||
|  */ |  | ||||||
| bool TTrFa_cursors::checkRecord(TISAM_recordset* rec) |  | ||||||
| { |  | ||||||
| 
 |  | ||||||
| 	TString keyClifo; keyClifo << rec->get("23.TIPO").as_string() << "|" << rec->get("23.CODCF").as_string(); |  | ||||||
| 	// Salto le schede carburanti
 |  | ||||||
| 	if(cache().get(LF_CLIFO, keyClifo, "ALLEG") == "C") |  | ||||||
| 		return false; |  | ||||||
| 
 |  | ||||||
| 	// Clienti
 |  | ||||||
| 	if(rec->get("23.TIPO").as_string() == "C") |  | ||||||
| 	{ |  | ||||||
| 		// Tolgo tutti i movimenti di sola IVA e in reverse charge o di tipo 3 (Acquisto di beni e servizi di soggetti non residenti)
 |  | ||||||
| 		TCausale caus(rec->get("23.CODCAUS").as_string()); |  | ||||||
| 		if(caus.soloiva() && (caus.reverse_charge() || caus.regime_speciale() == 3)) |  | ||||||
| 			return false; |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return true; |  | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| int TTrFa_cursors::updateFilters(const char tipocf, const long codcf, TDate dal, TDate al, int cod) | int TTrFa_cursors::updateFilters(const char tipocf, const long codcf, TDate dal, TDate al, int cod) | ||||||
| { | { | ||||||
|  | |||||||
| @ -3,7 +3,9 @@ Caption = "Trasferimento Fatture" | |||||||
| Picture = <cg01> | Picture = <cg01> | ||||||
| Module  = tf | Module  = tf | ||||||
| Flags   = "" | Flags   = "" | ||||||
| Item_01 = "Trasferimento Fatture", "tf0 -0", "" | Item_01 = "Trasferimento Fatture", "tf0 -0", ""+ | ||||||
| Item_02 = "Controllo Spesometro", "tf0 -3", "" | //Item_02 = "Cambio stato Spesometro", "tf0 -2", "" | ||||||
| Item_03 = "Liquidazione IVA Periodica", "tf0 -1", "" | //Item_03 = "Controllo Spesometro", "tf0 -3", "" | ||||||
| Item_04 = "Invio Liquidazione IVA Periodica", "tf0 -4", "" | Item_04 = "Report Spesometro", "ba8 -4 totiva_aliq.rep", "" | ||||||
|  | Item_05 = "Liquidazione IVA Periodica", "tf0 -1", "" | ||||||
|  | Item_06 = "Invio Liquidazione IVA Periodica", "tf0 -4", "" | ||||||
|  | |||||||
| @ -75,4 +75,33 @@ TString getRFSO(TString codrfso) | |||||||
| { | { | ||||||
| 	TString key; key << codrfso[0] << "|" << codrfso.mid(1); | 	TString key; key << codrfso[0] << "|" << codrfso.mid(1); | ||||||
| 	return cache().get(LF_ANAG, key, "RAGSOC"); | 	return cache().get(LF_ANAG, key, "RAGSOC"); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /* Utilizzo questa funzione per filtrare al meglio i record, tutti i casi che devo omettere verranno rilevati e ritorneranno false
 | ||||||
|  |  * Nota bene: viene sfruttato un puntatore di TISA_Recordset per non creare nuovi oggetti e velocizzare la chiamata | ||||||
|  |  * a questo punto il programma non ha ancora creato un record di $trasfatt con i dati che mi interessano | ||||||
|  |  */ | ||||||
|  | bool checkRecord(TISAM_recordset* rec) | ||||||
|  | { | ||||||
|  | 
 | ||||||
|  | 	TString keyClifo; keyClifo << rec->get("23.TIPO").as_string() << "|" << rec->get("23.CODCF").as_string(); | ||||||
|  | 	TRectype rclifo = cache().get(LF_CLIFO, keyClifo); | ||||||
|  | 	// Salto le schede carburanti
 | ||||||
|  | 	if(rclifo.get("ALLEG") == "C") | ||||||
|  | 		return false; | ||||||
|  | 
 | ||||||
|  | 	// Clienti
 | ||||||
|  | 	if(rec->get("23.TIPO").as_string() == "C") | ||||||
|  | 	{ | ||||||
|  | 		// Tolgo tutti i movimenti di sola IVA e in reverse charge o di tipo 3 (Acquisto di beni e servizi di soggetti non residenti)
 | ||||||
|  | 		TCausale caus(rec->get("23.CODCAUS").as_string()); | ||||||
|  | 		if(caus.soloiva() && (caus.reverse_charge() || caus.regime_speciale() == 3)) | ||||||
|  | 			return false; | ||||||
|  | 	} else if(rclifo.get("PAIV")[0] != '0' && rclifo.get("PAIV")[0] != '1' && rclifo.get("COFI")[0] >= '8') | ||||||
|  | 		// Salto tutti i fornitori con cod cf che inizia per 8 o 9 e con p.iva non valida
 | ||||||
|  | 	{ | ||||||
|  | 		return false; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return true; | ||||||
| } | } | ||||||
| @ -1,7 +1,9 @@ | |||||||
| #include <strings.h> | #include <strings.h> | ||||||
| #include <recset.h> | #include <recset.h> | ||||||
| 
 | 
 | ||||||
| // Funzioni comode per più programmi
 | // Funzioni/Costanti comode per più programmi
 | ||||||
|  | 
 | ||||||
|  | #define MOV_CUSTOM 10000000 | ||||||
| 
 | 
 | ||||||
| // Ritorna il record custom
 | // Ritorna il record custom
 | ||||||
| TRectype getTrasFatt(TString reg, TString codiva); | TRectype getTrasFatt(TString reg, TString codiva); | ||||||
| @ -18,4 +20,6 @@ TString findDetraib(TString tipodet); | |||||||
| // Ritorna "X" se ha il reverse charge
 | // Ritorna "X" se ha il reverse charge
 | ||||||
| TString revCharge(TString numreg); | TString revCharge(TString numreg); | ||||||
| // Ritorna la ragione sociale del RFSO
 | // Ritorna la ragione sociale del RFSO
 | ||||||
| TString getRFSO(TString codrfso); | TString getRFSO(TString codrfso); | ||||||
|  | // Controllo che sia un record che mi interessa
 | ||||||
|  | bool checkRecord(TISAM_recordset* rec); | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user