Patch level : 12.0 464
Files correlati : tf Commento : - Aggiornata maschera: aggiunti più filtri per gli stati dei movimenti - Sistemato errore durante il salvataggio dei movimenti custom - Forzato salvataggio stato movimento per tutti gli stati - Tolta per una maggiore chiarezza la forzatura del flag di inviato per tutti i record caricati, adesso si vede lo stato presente sul database (ovviamente se i record non hanno stato sarà "Inviare" di default). ATTENZIONE!! tutti i record che hanno uno stato compreso tra "Da inviare", "Forzato" o "Inviato" verranno esportati una volta lanciata l'esportazione. - Sistemata tabella durante l'impostazione del flag di forzato, adesso agisce sulla singola riga e non su tutto il documento - Sistemato errore di moltiplicazione dei record custom se presenti in prima nota più righe con la stessa aliquota git-svn-id: svn://10.65.10.50/branches/R_10_00@24131 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									eec53aee87
								
							
						
					
					
						commit
						6253ac34a0
					
				| @ -234,8 +234,8 @@ bool saveRec(TToken_string row, bool esportato) | |||||||
| { | { | ||||||
| 	static TLocalisamfile trasfatt(LF_TRASFATT); | 	static TLocalisamfile trasfatt(LF_TRASFATT); | ||||||
| 	static TLocalisamfile mov(LF_MOV); | 	static TLocalisamfile mov(LF_MOV); | ||||||
| 
 | 	static TString invio; invio.cut(0); | ||||||
| 	TString key = row.get(_numero); key << "|"<< row.get(_aliquota); | 	static TString key; key.cut(0) << row.get(_numero) << "|"<< row.get(_aliquota); | ||||||
| 
 | 
 | ||||||
| 	TRectype rCust = cache().get(LF_TRASFATT, key); | 	TRectype rCust = cache().get(LF_TRASFATT, key); | ||||||
| 	// Se la riga non esiste metto la chiave
 | 	// Se la riga non esiste metto la chiave
 | ||||||
| @ -243,11 +243,14 @@ bool saveRec(TToken_string row, bool esportato) | |||||||
| 	{ | 	{ | ||||||
| 		rCust.put("NUMREG",			row.get(_numero)); | 		rCust.put("NUMREG",			row.get(_numero)); | ||||||
| 		// Se il record viene creato al momento svuoto per sicurezza i valori TFINVIO e TFDATA in MOV
 | 		// Se il record viene creato al momento svuoto per sicurezza i valori TFINVIO e TFDATA in MOV
 | ||||||
|  | 		if(row.get_int(_numero) < MOV_CUSTOM) | ||||||
|  | 		{ | ||||||
| 			TRectype rOrig = cache().get(LF_MOV, row.get(_numero)); | 			TRectype rOrig = cache().get(LF_MOV, row.get(_numero)); | ||||||
| 			rOrig.put("TFINVIO",	""); | 			rOrig.put("TFINVIO",	""); | ||||||
| 			rOrig.put("TFDATA",		""); | 			rOrig.put("TFDATA",		""); | ||||||
| 			rOrig.rewrite(mov); | 			rOrig.rewrite(mov); | ||||||
| 		} | 		} | ||||||
|  | 	} | ||||||
| 	rCust.put("TIPO",				row.get(_tipocf)); | 	rCust.put("TIPO",				row.get(_tipocf)); | ||||||
| 	rCust.put("CODCF",			row.get(_codcf)); | 	rCust.put("CODCF",			row.get(_codcf)); | ||||||
| 	rCust.put("OCCAS",			row.get(_occas)); | 	rCust.put("OCCAS",			row.get(_occas)); | ||||||
| @ -262,10 +265,16 @@ bool saveRec(TToken_string row, bool esportato) | |||||||
| 	rCust.put("AUTOFATT",		row.get(_autofatt)); | 	rCust.put("AUTOFATT",		row.get(_autofatt)); | ||||||
| 	if(esportato) | 	if(esportato) | ||||||
| 	{ | 	{ | ||||||
| 		TString invio = esportato? "I" : row.get(_invio); | 		invio << "I"; | ||||||
| 		rCust.put("TFINVIO",	invio); |  | ||||||
| 		rCust.put("TFDATA",		TDate(TODAY)); | 		rCust.put("TFDATA",		TDate(TODAY)); | ||||||
| 	} | 	} | ||||||
|  | 	else | ||||||
|  | 	{ | ||||||
|  | 		invio << row.get(_invio); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	rCust.put("TFINVIO",	invio); | ||||||
|  | 
 | ||||||
| 	return rCust.write_rewrite(trasfatt) == NOERR; | 	return rCust.write_rewrite(trasfatt) == NOERR; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -18,7 +18,7 @@ | |||||||
| #define B_TIPO_BOLLADOG		413 | #define B_TIPO_BOLLADOG		413 | ||||||
| #define B_TIPO_STORDOC		414 | #define B_TIPO_STORDOC		414 | ||||||
| 
 | 
 | ||||||
| #define END_BOOLEAN				414 | #define END_BOOLEAN				415 | ||||||
| 
 | 
 | ||||||
| #define END_MASK					421 | #define END_MASK					421 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -105,7 +105,11 @@ BEGIN | |||||||
|   PROMPT 1 6 "Fatture da visualizzare" |   PROMPT 1 6 "Fatture da visualizzare" | ||||||
|   ITEM "0|Da inviare" |   ITEM "0|Da inviare" | ||||||
|   ITEM "1|Inviate" |   ITEM "1|Inviate" | ||||||
|   ITEM "2|Disabilitate" |   ITEM "2|Mai elaborati" | ||||||
|  |   ITEM "3|Forzate" | ||||||
|  |   ITEM "4|Errate" | ||||||
|  |   ITEM "5|Disabilitate" | ||||||
|  |   ITEM "6|Tutti" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| GROUPBOX DLG_NULL 65 4 | GROUPBOX DLG_NULL 65 4 | ||||||
|  | |||||||
| @ -39,9 +39,13 @@ enum return_code | |||||||
| // Su DB: X o ''->Da inviare, F->Forzato, I->Inviato, N->Non inviare
 | // Su DB: X o ''->Da inviare, F->Forzato, I->Inviato, N->Non inviare
 | ||||||
| enum filter_fatt | enum filter_fatt | ||||||
| { | { | ||||||
| 	toSend,		// Da inviare
 | 	toSend,			// "", "X", "F", "E"
 | ||||||
| 	sent,			// Inviate
 | 	sent,				// "I"
 | ||||||
| 	disabled	// Disabilitate
 | 	untouched,  // "", "X"
 | ||||||
|  | 	forced,			// "F"
 | ||||||
|  | 	disabled,		// "N"
 | ||||||
|  | 	err,				// "E"
 | ||||||
|  | 	all					// Nessun controllo
 | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| #define SHEET_GAP 101 | #define SHEET_GAP 101 | ||||||
| @ -107,7 +111,7 @@ bool saveRec(TToken_string row, bool esportato = false); | |||||||
| // Ritorno una data in formato ANSI
 | // Ritorno una data in formato ANSI
 | ||||||
| inline TDate toDate(const char * date) { return TDate(date).string(); } | inline TDate toDate(const char * date) { return TDate(date).string(); } | ||||||
| // Salto se la riga non è abilitata
 | // Salto se la riga non è abilitata
 | ||||||
| #define IF_IS_ENABLED(strarr) if(strcmp(strarr->get(_invio), FLAG_INVIO) != 0 && strcmp(strarr->get(_invio), FLAG_FORZATO) != 0) continue; | #define IF_IS_ENABLED(strarr) if(strcmp(strarr->get(_invio), FLAG_INVIO) != 0 && strcmp(strarr->get(_invio), FLAG_FORZATO) != 0 && strcmp(strarr->get(_invio), FLAG_INVIATO) != 0) continue; | ||||||
| // Ritorno il carattere senza accento maiuscolo
 | // Ritorno il carattere senza accento maiuscolo
 | ||||||
| inline const char * noSpecial(char a); | inline const char * noSpecial(char a); | ||||||
| // Ritorno se è ancora valida la bolla doganale senza informazioni fornitore
 | // Ritorno se è ancora valida la bolla doganale senza informazioni fornitore
 | ||||||
|  | |||||||
| @ -306,7 +306,7 @@ bool TTrFa_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) | |||||||
| 			else | 			else | ||||||
| 			{ | 			{ | ||||||
| 				TString invio = o.mask().get(A_INVIO); | 				TString invio = o.mask().get(A_INVIO); | ||||||
| 				if(invio != FLAG_FORZATO || invio != FLAG_ERRORE) | 				if(invio != FLAG_FORZATO && invio != FLAG_ERRORE) | ||||||
| 					changeInvio(o.mask().get(A_TIPOCF), o.mask().get(A_CODCF), o.mask().get(A_NUMDOC), invio); | 					changeInvio(o.mask().get(A_TIPOCF), o.mask().get(A_CODCF), o.mask().get(A_NUMDOC), invio); | ||||||
| 			} | 			} | ||||||
|     } |     } | ||||||
| @ -655,12 +655,13 @@ void TTrFa_mask::load_sheet() | |||||||
| 			 * basta settare i valori negli enum e lo sheet | 			 * basta settare i valori negli enum e lo sheet | ||||||
| 			 */ | 			 */ | ||||||
| 			TRectype isCust = getTrasFatt(movimento.get("NUMREG"), iva); | 			TRectype isCust = getTrasFatt(movimento.get("NUMREG"), iva); | ||||||
| 
 | #ifdef DBG | ||||||
| 			if(isCust.full() && (err < foundcust || err > foundidcust)) | 			if(isCust.full() && (err < foundcust || err > foundidcust)) | ||||||
| 				bool tolla = true; | 				bool tolla = true; | ||||||
| 
 | #endif | ||||||
| 			row.add(movimento.get("TFINVIO") == "I" ? "X" : "", _spedita);						// Spedita
 | 			const char * toSend = movimento.get("TFINVIO").blank() ? FLAG_INVIO : movimento.get("TFINVIO"); | ||||||
| 			row.add("X");																									// Da spedire, sempre!
 | 			row.add(movimento.get("TFINVIO") == FLAG_INVIATO ? "X" : "", _spedita);						// Spedita
 | ||||||
|  | 			row.add(toSend);																							// Da spedire
 | ||||||
| 			row.add(isCust.full() ? "X" : "", _forzata);									// Modificato
 | 			row.add(isCust.full() ? "X" : "", _forzata);									// Modificato
 | ||||||
| 			row.add(movimento.get_long("NUMREG"), _numero);								// Numero registrazione
 | 			row.add(movimento.get_long("NUMREG"), _numero);								// Numero registrazione
 | ||||||
| 			row.add(movimento.get_date("DATAREG"), _datareg);							// Data Registrazione
 | 			row.add(movimento.get_date("DATAREG"), _datareg);							// Data Registrazione
 | ||||||
| @ -712,16 +713,27 @@ bool TTrFa_mask::checkInvio(const TString& invio) | |||||||
| 	bool ok; | 	bool ok; | ||||||
| 	switch(get_int(F_FATTSEL)) | 	switch(get_int(F_FATTSEL)) | ||||||
| 	{ | 	{ | ||||||
| 	case 0: | 	case toSend: | ||||||
| 		ok = invio == "" || invio == FLAG_INVIO || invio == FLAG_FORZATO || invio == FLAG_ERRORE; | 		ok = invio == "" || invio == FLAG_INVIO || invio == FLAG_FORZATO || invio == FLAG_ERRORE; | ||||||
| 		break; | 		break; | ||||||
| 	case 1: | 	case sent: | ||||||
| 		ok = invio == FLAG_INVIATO; | 		ok = invio == FLAG_INVIATO; | ||||||
| 		break; | 		break; | ||||||
| 	case 2: | 	case untouched: | ||||||
| 	default: | 		ok = invio == "" || invio == FLAG_INVIO; | ||||||
|  | 	case forced: | ||||||
|  | 		ok = invio == FLAG_FORZATO; | ||||||
|  | 		break; | ||||||
|  | 	case disabled: | ||||||
| 		ok = invio == FLAG_NINVIO; | 		ok = invio == FLAG_NINVIO; | ||||||
| 		break; | 		break; | ||||||
|  | 	case err: | ||||||
|  | 		ok = invio == FLAG_ERRORE; | ||||||
|  | 		break; | ||||||
|  | 	case all: | ||||||
|  | 	default: | ||||||
|  | 		ok = true; | ||||||
|  | 		break; | ||||||
| 	} | 	} | ||||||
| 	return ok; | 	return ok; | ||||||
| } | } | ||||||
|  | |||||||
| @ -77,7 +77,7 @@ TRectype TTrFa_cursors::_next(return_code& code, TString& tipocf, TString& codcf | |||||||
| 	int tipoDoc = getTipoDoc(c_rmoviva->get("23.TIPODOC").as_string()); | 	int tipoDoc = getTipoDoc(c_rmoviva->get("23.TIPODOC").as_string()); | ||||||
| 	if(!newMov || !checkRecord(c_rmoviva) || tipoDoc == -1 || !msk().get_bool(tipoDoc)) | 	if(!newMov || !checkRecord(c_rmoviva) || tipoDoc == -1 || !msk().get_bool(tipoDoc)) | ||||||
| 	{ | 	{ | ||||||
| 		TString codiva; | 		static TString codiva; | ||||||
| 		do | 		do | ||||||
| 		{ | 		{ | ||||||
| 			// Se ritorna false ho finito i records
 | 			// Se ritorna false ho finito i records
 | ||||||
| @ -90,6 +90,7 @@ TRectype TTrFa_cursors::_next(return_code& code, TString& tipocf, TString& codcf | |||||||
| 			{ | 			{ | ||||||
| 				// Controllo se ho cambiato movimento
 | 				// Controllo se ho cambiato movimento
 | ||||||
| 				_newMov = numMov != c_rmoviva->get("23.NUMREG").as_string(); | 				_newMov = numMov != c_rmoviva->get("23.NUMREG").as_string(); | ||||||
|  | 				codiva.cut(0) << c_rmoviva->get("25.CODIVA").as_string(); | ||||||
| 			} | 			} | ||||||
| 		} // Ciclo finchè non trovo un nuovo movimento o trovo cod IVA già presi da cust
 | 		} // Ciclo finchè non trovo un nuovo movimento o trovo cod IVA già presi da cust
 | ||||||
| 		while(!checkRecord(c_rmoviva) || (!_newMov && _alqCust.get_pos(codiva) > -1)); | 		while(!checkRecord(c_rmoviva) || (!_newMov && _alqCust.get_pos(codiva) > -1)); | ||||||
| @ -105,6 +106,11 @@ TRectype TTrFa_cursors::_next(return_code& code, TString& tipocf, TString& codcf | |||||||
| 	else | 	else | ||||||
| 		code = found; | 		code = found; | ||||||
| 
 | 
 | ||||||
|  | #ifdef DBG | ||||||
|  | 	if(c_rmoviva->get("23.NUMREG").as_int() == 1930131) | ||||||
|  | 		bool tolla = true; | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
| 	// Controllo dell'esistenza di un record custom in tasfatt
 | 	// Controllo dell'esistenza di un record custom in tasfatt
 | ||||||
| 	retRec = getTrasFatt(c_rmoviva->get("23.NUMREG").as_string(), c_rmoviva->get("25.CODIVA").as_string()); | 	retRec = getTrasFatt(c_rmoviva->get("23.NUMREG").as_string(), c_rmoviva->get("25.CODIVA").as_string()); | ||||||
| 	if(retRec.empty()) | 	if(retRec.empty()) | ||||||
| @ -169,16 +175,29 @@ int TTrFa_cursors::updateFilters(const char tipocf, const long codcf, TDate dal, | |||||||
| 	switch(cod) | 	switch(cod) | ||||||
| 	{ | 	{ | ||||||
| 	case toSend: | 	case toSend: | ||||||
| 		query << "&&((23.TFINVIO=\"\")||(23.TFINVIO=\"X\")||(23.TFINVIO=\"F\")||(23.TFINVIO=\"E\"))"; | 		query << "&&((23.TFINVIO=\"\")||(23.TFINVIO=\"X\")||(23.TFINVIO=\"F\"))"; | ||||||
| 		queryCust << "&&((TFINVIO=\"\")||(TFINVIO=\"X\")||(TFINVIO=\"F\")||(TFINVIO=\"E\"))"; | 		queryCust << "&&((TFINVIO=\"\")||(TFINVIO=\"X\")||(TFINVIO=\"F\"))"; | ||||||
| 		break; | 		break; | ||||||
| 	case sent: | 	case sent: | ||||||
| 		query << "&&(23.TFINVIO=\"I\")"; | 		query << "&&(23.TFINVIO=\"I\")"; | ||||||
| 		queryCust << "&&(TFINVIO=\"I\")"; | 		queryCust << "&&(TFINVIO=\"I\")"; | ||||||
| 		break; | 		break; | ||||||
|  | 	case untouched: | ||||||
|  | 		query << "&&((23.TFINVIO=\"\")||(23.TFINVIO=\"X\")"; | ||||||
|  | 		queryCust << "&&((TFINVIO=\"\")||(TFINVIO=\"X\")"; | ||||||
|  | 		break; | ||||||
|  | 	case forced: | ||||||
|  | 		query << "&&(23.TFINVIO=\"F\")"; | ||||||
|  | 		queryCust << "&&(TFINVIO=\"F\")"; | ||||||
|  | 		break; | ||||||
| 	case disabled: | 	case disabled: | ||||||
| 		query << "&&(23.TFINVIO=\"N\")"; | 		query << "&&(23.TFINVIO=\"N\")"; | ||||||
| 		queryCust << "&&(TFINVIO=\"N\")"; | 		queryCust << "&&(TFINVIO=\"N\")"; | ||||||
|  | 	case err: | ||||||
|  | 		query << "&&(23.TFINVIO=\"E\")"; | ||||||
|  | 		queryCust << "&&(TFINVIO=\"E\")"; | ||||||
|  | 		break; | ||||||
|  | 	case all: | ||||||
| 	default: | 	default: | ||||||
| 		break; | 		break; | ||||||
| 	} | 	} | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user