Patch level : 12.0 1164
Files correlati : cg2.exe cg2100c.msk Commento: Aggiunto il prefisso da registro per i tipi documento da TD16 a TD19 in prima nota stampa registri e invio regolarizzazioni.
This commit is contained in:
		
							parent
							
								
									07f89c0924
								
							
						
					
					
						commit
						e3e6ece7b5
					
				| @ -1875,9 +1875,12 @@ void TPrimanota_application::genera_automatico(int tipo, const char* causimm) | |||||||
|       _automatico->_causale_originale = m.get(F_CODCAUS); |       _automatico->_causale_originale = m.get(F_CODCAUS); | ||||||
|       _automatico->_iva_originale = caus.iva(); |       _automatico->_iva_originale = caus.iva(); | ||||||
| 			if (tipo != 3) | 			if (tipo != 3) | ||||||
|  | 			{ | ||||||
|  | 				if (tipo != 2) | ||||||
| 				{ | 				{ | ||||||
| 					_automatico->_datadoc = m.get(F_DATADOC); | 					_automatico->_datadoc = m.get(F_DATADOC); | ||||||
| 					_automatico->_numdoc = m.get(F_NUMDOC); | 					_automatico->_numdoc = m.get(F_NUMDOC); | ||||||
|  | 				} | ||||||
| 				_automatico->_clifo.get(_rel->cg(0)); | 				_automatico->_clifo.get(_rel->cg(0)); | ||||||
| 				_automatico->_totale = m.get_real(F_TOTALE); | 				_automatico->_totale = m.get_real(F_TOTALE); | ||||||
| 			} | 			} | ||||||
| @ -1887,7 +1890,21 @@ void TPrimanota_application::genera_automatico(int tipo, const char* causimm) | |||||||
|       { |       { | ||||||
| 				TSheet_field & iva = app().ivas(); | 				TSheet_field & iva = app().ivas(); | ||||||
| 				const int items = iva.items(); | 				const int items = iva.items(); | ||||||
|  | 				const TCausale & causreg = cached_causale(causimm); | ||||||
|  | 				const TString8 tipo_doc_sdi = causreg.tipodocsdi(); | ||||||
|  | 				const int tipo_doc = atoi(tipo_doc_sdi.mid(2)); | ||||||
| 
 | 
 | ||||||
|  | 				if (tipo_doc_sdi.starts_with("TD") && (tipo_doc > 15 && tipo_doc < 20)) | ||||||
|  | 				{ | ||||||
|  | 					_automatico->_datadoc = m.get(F_DATAREG); | ||||||
|  | 					_automatico->_numdoc.cut(0); | ||||||
|  | 					_automatico->_numdoc << cached_registro(causreg.codice_registro()).protocol() + 1; | ||||||
|  | 				} | ||||||
|  | 				else | ||||||
|  | 				{ | ||||||
|  | 					_automatico->_datadoc = m.get(F_DATADOC); | ||||||
|  | 					_automatico->_numdoc = m.get(F_NUMDOC); | ||||||
|  | 				} | ||||||
| 				_automatico->_movcoll = m.get_long(F_NUMREG); | 				_automatico->_movcoll = m.get_long(F_NUMREG); | ||||||
| 				_automatico->_iva.destroy(); | 				_automatico->_iva.destroy(); | ||||||
| 				_automatico->_totale = ZERO; | 				_automatico->_totale = ZERO; | ||||||
|  | |||||||
| @ -18,6 +18,7 @@ | |||||||
| #define F_ANNOES    115 | #define F_ANNOES    115 | ||||||
| #define F_DATACOMP  116 | #define F_DATACOMP  116 | ||||||
| #define F_ANNOIVA   117 | #define F_ANNOIVA   117 | ||||||
|  | 
 | ||||||
| #define F_NUMDOCEXT 130 | #define F_NUMDOCEXT 130 | ||||||
| #define F_RITFATT		231 | #define F_RITFATT		231 | ||||||
| #define F_PROKEY		232 | #define F_PROKEY		232 | ||||||
| @ -93,6 +94,8 @@ | |||||||
| #define F_GOCOLL         186 | #define F_GOCOLL         186 | ||||||
| #define F_IDDOCSDI		   187 | #define F_IDDOCSDI		   187 | ||||||
| #define F_DATADOCSDI	   188 | #define F_DATADOCSDI	   188 | ||||||
|  | #define F_PREFISSO			 192 | ||||||
|  | #define F_SLASH    			 193 | ||||||
| 
 | 
 | ||||||
| #define F_SHEETCG        190 | #define F_SHEETCG        190 | ||||||
| #define F_SHEETIVA       191 | #define F_SHEETIVA       191 | ||||||
|  | |||||||
| @ -153,6 +153,18 @@ BEGIN | |||||||
|   WARNING "La causale o il saldaconto richiedono il numero documento" |   WARNING "La causale o il saldaconto richiedono il numero documento" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
|  | TEXT F_SLASH | ||||||
|  | BEGIN | ||||||
|  |   PROMPT 16 6 "/" | ||||||
|  |   FLAGS "H" | ||||||
|  | END | ||||||
|  | 
 | ||||||
|  | STRING F_PREFISSO 2 | ||||||
|  | BEGIN | ||||||
|  |   PROMPT 13 6 "" | ||||||
|  |   FLAGS "HD" | ||||||
|  | END | ||||||
|  | 
 | ||||||
| DATE F_DATADOC | DATE F_DATADOC | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 27 6 "Data documento " |   PROMPT 27 6 "Data documento " | ||||||
|  | |||||||
| @ -2285,7 +2285,7 @@ bool TPrimanota_application::caus_modify_handler(TMask_field& f, KEY key) | |||||||
| 			TMask& m = f.mask(); | 			TMask& m = f.mask(); | ||||||
| 			const int ann = m.get_int(F_ANNOIVA); | 			const int ann = m.get_int(F_ANNOIVA); | ||||||
| 			const TString& cau = f.get(); | 			const TString& cau = f.get(); | ||||||
| 			const TCausale c(cau, ann); | 			const TCausale & c = cached_causale(cau, ann); | ||||||
| 
 | 
 | ||||||
| 			if (c.ok()) | 			if (c.ok()) | ||||||
| 			{ | 			{ | ||||||
| @ -2327,6 +2327,21 @@ bool TPrimanota_application::caus_modify_handler(TMask_field& f, KEY key) | |||||||
| 
 | 
 | ||||||
| 							new_mask->set(F_PROTIVA, protocol); | 							new_mask->set(F_PROTIVA, protocol); | ||||||
| 							new_mask->set(F_RITFATT, app().causale().fattura_in_ritardo() ? "X" : " "); | 							new_mask->set(F_RITFATT, app().causale().fattura_in_ritardo() ? "X" : " "); | ||||||
|  | 							 | ||||||
|  | 							const TString & prefisso = c.reg().prefisso(); | ||||||
|  | 
 | ||||||
|  | 							if (c.is_reg_autof() && prefisso.full()) | ||||||
|  | 							{ | ||||||
|  | 								m.show(F_PREFISSO); | ||||||
|  | 								m.show(F_SLASH); | ||||||
|  | 								m.set(F_PREFISSO, prefisso); | ||||||
|  | 							} | ||||||
|  | 							else | ||||||
|  | 							{ | ||||||
|  | 								m.hide(F_PREFISSO); | ||||||
|  | 								m.hide(F_SLASH); | ||||||
|  | 								m.reset(F_PREFISSO); | ||||||
|  | 							} | ||||||
| 						} | 						} | ||||||
| 						check_fppro_fields(*new_mask); | 						check_fppro_fields(*new_mask); | ||||||
| 				} | 				} | ||||||
| @ -2336,6 +2351,36 @@ bool TPrimanota_application::caus_modify_handler(TMask_field& f, KEY key) | |||||||
| 		else | 		else | ||||||
| 			return false; | 			return false; | ||||||
| 	} | 	} | ||||||
|  | 	else | ||||||
|  | 		if (f.initial_check(key)) | ||||||
|  | 		{ | ||||||
|  | 			TMask& m = f.mask(); | ||||||
|  | 			const int ann = m.get_int(F_ANNOIVA); | ||||||
|  | 			const TString& cau = f.get(); | ||||||
|  | 
 | ||||||
|  | 			if (cau.full()) | ||||||
|  | 			{ | ||||||
|  | 				const TCausale & c = cached_causale(cau, ann); | ||||||
|  | 
 | ||||||
|  | 				if (c.iva() != nessuna_iva) | ||||||
|  | 				{ | ||||||
|  | 					const TString & prefisso = c.reg().prefisso(); | ||||||
|  | 
 | ||||||
|  | 					if (c.is_reg_autof() && prefisso.full()) | ||||||
|  | 					{ | ||||||
|  | 						m.show(F_PREFISSO); | ||||||
|  | 						m.show(F_SLASH); | ||||||
|  | 						m.set(F_PREFISSO, prefisso); | ||||||
|  | 					} | ||||||
|  | 					else | ||||||
|  | 					{ | ||||||
|  | 						m.hide(F_PREFISSO); | ||||||
|  | 						m.hide(F_SLASH); | ||||||
|  | 						m.reset(F_PREFISSO); | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
| 	return true; | 	return true; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -2406,7 +2406,7 @@ bool TStampa_registri_app::preprocess_page(int file, int counter) | |||||||
|     const long      numreg   = mov.get_long(MOV_NUMREG); |     const long      numreg   = mov.get_long(MOV_NUMREG); | ||||||
|     const long      protiva  = mov.get_long(MOV_PROTIVA); |     const long      protiva  = mov.get_long(MOV_PROTIVA); | ||||||
|     const long      uprotiva = mov.get_long(MOV_UPROTIVA);                    |     const long      uprotiva = mov.get_long(MOV_UPROTIVA);                    | ||||||
|     const TString16 numdoc   = mov.get(MOV_NUMDOC); |     TString16       numdoc   = mov.get(MOV_NUMDOC); | ||||||
|     const int       meseliq  = mov.get_int(MOV_MESELIQ); |     const int       meseliq  = mov.get_int(MOV_MESELIQ); | ||||||
|     const char      tipocf   = mov.get(MOV_TIPO)[0]; |     const char      tipocf   = mov.get(MOV_TIPO)[0]; | ||||||
|     TString16 ocfpi    = mov.get(MOV_OCFPI); |     TString16 ocfpi    = mov.get(MOV_OCFPI); | ||||||
| @ -2523,9 +2523,29 @@ bool TStampa_registri_app::preprocess_page(int file, int counter) | |||||||
|     set_row(_r, "@9g%5ld", protiva); |     set_row(_r, "@9g%5ld", protiva); | ||||||
|     if (datadoc.ok()) |     if (datadoc.ok()) | ||||||
|       set_row(_r, "@15g%s", (const char*) app); |       set_row(_r, "@15g%s", (const char*) app); | ||||||
|     set_row(_r, "@24g%s",   (const char*) numdoc); |  | ||||||
| 		if (codcf != 0l) | 		if (codcf != 0l) | ||||||
| 			set_row(_r, "@31g%6ld", codcf); | 			set_row(_r, "@31g%6ld", codcf); | ||||||
|  | 		if (cached_causale(mov.curr()).reverse_charge_pubb()) | ||||||
|  | 		{ | ||||||
|  | 			const TRectype movcoll = cache().get(LF_MOV, mov.get_long(MOV_MOVCOLL)); | ||||||
|  | 			const TCausale & caus = cached_causale(movcoll); | ||||||
|  | 
 | ||||||
|  | 			if (caus.is_reg_autof() && tipomov == acquisto) | ||||||
|  | 			{ | ||||||
|  | 				app = movcoll.get_date(MOV_DATADOC).string(brief, '/'); | ||||||
|  | 				set_row(_r + 1, "@15g%s", (const char*)app); | ||||||
|  | 
 | ||||||
|  | 				TString numdoccoll = movcoll.get(MOV_NUMDOC); | ||||||
|  | 				const TString & prefisso = caus.reg().prefisso(); | ||||||
|  | 
 | ||||||
|  | 				if (prefisso.full()) | ||||||
|  | 				{ | ||||||
|  | 					numdoccoll.insert("/"); | ||||||
|  | 					numdoccoll.insert(prefisso); | ||||||
|  | 				} | ||||||
|  | 				set_row(_r + 1, "@24g%s", (const char*)numdoccoll); | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|     if (meseliq > 0) |     if (meseliq > 0) | ||||||
|       set_row(_r, "@62g%02d", meseliq); |       set_row(_r, "@62g%02d", meseliq); | ||||||
| 		set_row(_r, "@67g%2s",  (const char*) _tipodoc); | 		set_row(_r, "@67g%2s",  (const char*) _tipodoc); | ||||||
| @ -2563,6 +2583,32 @@ bool TStampa_registri_app::preprocess_page(int file, int counter) | |||||||
|      |      | ||||||
|     const char* r; |     const char* r; | ||||||
|     int i = 1; |     int i = 1; | ||||||
|  | 
 | ||||||
|  | 		if (cached_causale(mov.curr()).reverse_charge_pubb()) | ||||||
|  | 		{ | ||||||
|  | 			const TRectype movcoll = cache().get(LF_MOV, mov.get_long(MOV_MOVCOLL)); | ||||||
|  | 
 | ||||||
|  | 			if (cached_causale(movcoll).is_reg_autof() && tipomov == vendita) | ||||||
|  | 			{ | ||||||
|  | 				TParagraph_string desc(cache().get(LF_NDITTE, get_firm()).get(NDT_RAGSOC), 23); | ||||||
|  | 
 | ||||||
|  | 				while ((r = desc.get()) != NULL) | ||||||
|  | 				{ | ||||||
|  | 					set_row(i, "@38g%s", r); | ||||||
|  | 					i++; | ||||||
|  | 				} | ||||||
|  | 				const TString & prefisso = cached_causale(mov.curr()).reg().prefisso(); | ||||||
|  | 
 | ||||||
|  | 				if (prefisso.full()) | ||||||
|  | 				{ | ||||||
|  | 					numdoc.insert("/"); | ||||||
|  | 					numdoc.insert(prefisso); | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		set_row(_r, "@24g%s", (const char*)numdoc); | ||||||
|  | 		if (codcf != 0l) | ||||||
|  | 			set_row(i, "@31g%6ld", codcf); | ||||||
| 		TParagraph_string desc(ragsoc, 23);   | 		TParagraph_string desc(ragsoc, 23);   | ||||||
| 
 | 
 | ||||||
|     while ((r = desc.get()) != NULL) |     while ((r = desc.get()) != NULL) | ||||||
| @ -2686,9 +2732,9 @@ bool TStampa_registri_app::preprocess_page(int file, int counter) | |||||||
|     { |     { | ||||||
|       if (_stampa_width == 132) |       if (_stampa_width == 132) | ||||||
|       {   |       {   | ||||||
|         set_row(_r, "@126g%5ld", numreg); |         set_row(_r, "@126g%6ld", numreg); | ||||||
|         if (stampato) |         if (stampato) | ||||||
|           set_row(_r, "@131g*"); //solo in stampa di prova!
 |           set_row(_r, "@132g*"); //solo in stampa di prova!
 | ||||||
|       } |       } | ||||||
|       else //198 
 |       else //198 
 | ||||||
|       { |       { | ||||||
| @ -3022,18 +3068,17 @@ void TStampa_registri_app::preprocess_header() | |||||||
|       {   |       {   | ||||||
|         if (_stampa_width == 132)  |         if (_stampa_width == 132)  | ||||||
|         { |         { | ||||||
|           set_header(r,FR("@10gNum.@19gDocumento@61gMese@65gT Tipo@102gCod %c@123gT %c@128gNum"), nd1, tipo); |           set_header(r++,FR("@10gNum.@19gDocumento@61gMese@65gT Tipo@102gCod %c@123gT %c@128gNum"), nd1, tipo); | ||||||
|           r++; |           set_header(r++, FR("Data reg. prot.@17gData@24gNumero Codice Ragione sociale/descr. liq.@65gO Doc.@74gTotale doc.@90gImponibile  IVA %c@115gImposta@123g%c %c@128gReg"), nd2, cor, type); | ||||||
|           set_header(r, FR("Data reg. prot.@17gData@24gNumero Codice Ragione sociale/descr. liq.@65gO Doc.@74gTotale doc.@90gImponibile  IVA %c@115gImposta@123g%c %c@128gReg"), nd2, cor, type); |  | ||||||
|           r++; |  | ||||||
|         } |         } | ||||||
|         else  //stampa a 198
 |         else  //stampa a 198
 | ||||||
|         { |         { | ||||||
|           set_header(r,FR("Registrazione Documento@61gMese@65gT Tipo@110gCod %c@132g%c T@139gNum."), nd1, tipo, cor); |           set_header(r++,FR("Registrazione Documento@61gMese@65gT Tipo@110gCod %c@132g%c T@139gNum."), nd1, tipo, cor); | ||||||
|           r++; |           set_header(r++, FR("Data Protocollo  Data@24gNumero Codice Ragione sociale/descr. liq.@65gO Documento@80gTot.Documento@98gImponibile  IVA %c@124gImposta@132g%c %c@139gReg."), nd2, type, cor); | ||||||
|           set_header(r, FR("Data Protocollo  Data@24gNumero Codice Ragione sociale/descr. liq.@65gO Documento@80gTot.Documento@98gImponibile  IVA %c@124gImposta@132g%c %c@139gReg."), nd2, type, cor); |  | ||||||
|           r++; |  | ||||||
|         } |         } | ||||||
|  | 				if (cached_registro(_codreg).tipo() == iva_acquisti) | ||||||
|  | 					set_header(r++, FR("Integr./Autofatt.Data@24gNumero")); | ||||||
|  | 
 | ||||||
|       }    |       }    | ||||||
|     } |     } | ||||||
|     else if (!_intesta_vidi) |     else if (!_intesta_vidi) | ||||||
| @ -3064,6 +3109,8 @@ void TStampa_registri_app::preprocess_header() | |||||||
|        if (_tipo_stampa == rif_giornale) |        if (_tipo_stampa == rif_giornale) | ||||||
|          set_header(r, FR("@139gop. @144gCodice conto @159gDescrizione sottoconto")); |          set_header(r, FR("@139gop. @144gCodice conto @159gDescrizione sottoconto")); | ||||||
|        r++; |        r++; | ||||||
|  | 			 if (cached_registro(_codreg).tipo() == iva_acquisti) | ||||||
|  | 				 set_header(r++, FR("Integr./Autofatt.Data@24gNumero")); | ||||||
|       } |       } | ||||||
|      }     |      }     | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -251,6 +251,8 @@ public: | |||||||
|   long mese_stampa_ultima_liq() const { return _rec.get_long("I4"); } |   long mese_stampa_ultima_liq() const { return _rec.get_long("I4"); } | ||||||
|   long protocol() const { return _rec.get_long("I5"); } |   long protocol() const { return _rec.get_long("I5"); } | ||||||
| 	const TString& attivita() const { return _rec.get("S8"); } | 	const TString& attivita() const { return _rec.get("S8"); } | ||||||
|  | 	const TString& prefisso() const { return _rec.get("S5"); } | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
|   bool agenzia_viaggi() const; |   bool agenzia_viaggi() const; | ||||||
|   const TString& tipo_attivita() const; |   const TString& tipo_attivita() const; | ||||||
| @ -341,6 +343,7 @@ public: | |||||||
| 	tipo_movimento tipomov() const; | 	tipo_movimento tipomov() const; | ||||||
| 	const TString& tipodoc() const; | 	const TString& tipodoc() const; | ||||||
| 	const TString& tipodocsdi() const; | 	const TString& tipodocsdi() const; | ||||||
|  | 	const bool is_reg_autof() const; | ||||||
| 	bool saldaconto(const TDate& datareg) const; | 	bool saldaconto(const TDate& datareg) const; | ||||||
| 	int link_m770() const; | 	int link_m770() const; | ||||||
| 	char link_cespiti() const; | 	char link_cespiti() const; | ||||||
| @ -364,7 +367,8 @@ public: | |||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| const TCausale & cached_causale(const char * codcaus, const int year = 0); | const TCausale & cached_causale(const char * codcaus, const int year = 0); | ||||||
| inline const TCausale & cached_causale(const TRectype & caus, const int year = 0) { return cached_causale(caus.get(CAU_CODCAUS), year); } | inline const TCausale & cached_causale(const TRectype & caus, const int year) { return cached_causale(caus.get(CAU_CODCAUS), year); } // causale da record
 | ||||||
|  | inline const TCausale & cached_causale(const TRectype & mov) { return cached_causale(mov.get(MOV_CODCAUS), mov.get_int(MOV_ANNOIVA)); }  // causale da movimento
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class TCodiceIVA : public TRectype | class TCodiceIVA : public TRectype | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user