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->_iva_originale = caus.iva(); | ||||
| 			if (tipo != 3) | ||||
| 			{ | ||||
| 				if (tipo != 2) | ||||
| 				{ | ||||
| 					_automatico->_datadoc = m.get(F_DATADOC); | ||||
| 					_automatico->_numdoc = m.get(F_NUMDOC); | ||||
| 				} | ||||
| 				_automatico->_clifo.get(_rel->cg(0)); | ||||
| 				_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(); | ||||
| 				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->_iva.destroy(); | ||||
| 				_automatico->_totale = ZERO; | ||||
|  | ||||
| @ -18,6 +18,7 @@ | ||||
| #define F_ANNOES    115 | ||||
| #define F_DATACOMP  116 | ||||
| #define F_ANNOIVA   117 | ||||
| 
 | ||||
| #define F_NUMDOCEXT 130 | ||||
| #define F_RITFATT		231 | ||||
| #define F_PROKEY		232 | ||||
| @ -93,6 +94,8 @@ | ||||
| #define F_GOCOLL         186 | ||||
| #define F_IDDOCSDI		   187 | ||||
| #define F_DATADOCSDI	   188 | ||||
| #define F_PREFISSO			 192 | ||||
| #define F_SLASH    			 193 | ||||
| 
 | ||||
| #define F_SHEETCG        190 | ||||
| #define F_SHEETIVA       191 | ||||
|  | ||||
| @ -153,6 +153,18 @@ BEGIN | ||||
|   WARNING "La causale o il saldaconto richiedono il numero documento" | ||||
| 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 | ||||
| BEGIN | ||||
|   PROMPT 27 6 "Data documento " | ||||
|  | ||||
| @ -2285,7 +2285,7 @@ bool TPrimanota_application::caus_modify_handler(TMask_field& f, KEY key) | ||||
| 			TMask& m = f.mask(); | ||||
| 			const int ann = m.get_int(F_ANNOIVA); | ||||
| 			const TString& cau = f.get(); | ||||
| 			const TCausale c(cau, ann); | ||||
| 			const TCausale & c = cached_causale(cau, ann); | ||||
| 
 | ||||
| 			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_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); | ||||
| 				} | ||||
| @ -2336,6 +2351,36 @@ bool TPrimanota_application::caus_modify_handler(TMask_field& f, KEY key) | ||||
| 		else | ||||
| 			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; | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -980,7 +980,7 @@ void TStampa_registri_app::calcola_progressivi() | ||||
| 
 | ||||
| 		codreg.rpad(3); | ||||
| 		select << codreg << format("%02d", i) << "\")"; | ||||
|   	keyf <<_annoIVA << _codatt << 1 << codreg << format("%02d", i); | ||||
|   	keyf << _annoIVA << _codatt << 1 << codreg << format("%02d", i); | ||||
| 		keyt << _annoIVA << _codatt << 2 << codreg << format("%02d", i); | ||||
| 		from.put("CODTAB", keyf); | ||||
| 		to.put("CODTAB", keyt); | ||||
| @ -2406,7 +2406,7 @@ bool TStampa_registri_app::preprocess_page(int file, int counter) | ||||
|     const long      numreg   = mov.get_long(MOV_NUMREG); | ||||
|     const long      protiva  = mov.get_long(MOV_PROTIVA); | ||||
|     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 char      tipocf   = mov.get(MOV_TIPO)[0]; | ||||
|     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); | ||||
|     if (datadoc.ok()) | ||||
|       set_row(_r, "@15g%s", (const char*) app); | ||||
|     set_row(_r, "@24g%s",   (const char*) numdoc); | ||||
| 		if (codcf != 0l) | ||||
| 			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) | ||||
|       set_row(_r, "@62g%02d", meseliq); | ||||
| 		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; | ||||
|     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);   | ||||
| 
 | ||||
|     while ((r = desc.get()) != NULL) | ||||
| @ -2686,9 +2732,9 @@ bool TStampa_registri_app::preprocess_page(int file, int counter) | ||||
|     { | ||||
|       if (_stampa_width == 132) | ||||
|       {   | ||||
|         set_row(_r, "@126g%5ld", numreg); | ||||
|         set_row(_r, "@126g%6ld", numreg); | ||||
|         if (stampato) | ||||
|           set_row(_r, "@131g*"); //solo in stampa di prova!
 | ||||
|           set_row(_r, "@132g*"); //solo in stampa di prova!
 | ||||
|       } | ||||
|       else //198 
 | ||||
|       { | ||||
| @ -3022,18 +3068,17 @@ void TStampa_registri_app::preprocess_header() | ||||
|       {   | ||||
|         if (_stampa_width == 132)  | ||||
|         { | ||||
|           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); | ||||
|           r++; | ||||
|           set_header(r++,FR("@10gNum.@19gDocumento@61gMese@65gT Tipo@102gCod %c@123gT %c@128gNum"), nd1, tipo); | ||||
|           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); | ||||
|         } | ||||
|         else  //stampa a 198
 | ||||
|         { | ||||
|           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); | ||||
|           r++; | ||||
|           set_header(r++,FR("Registrazione Documento@61gMese@65gT Tipo@110gCod %c@132g%c T@139gNum."), nd1, tipo, 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); | ||||
|         } | ||||
| 				if (cached_registro(_codreg).tipo() == iva_acquisti) | ||||
| 					set_header(r++, FR("Integr./Autofatt.Data@24gNumero")); | ||||
| 
 | ||||
|       }    | ||||
|     } | ||||
|     else if (!_intesta_vidi) | ||||
| @ -3064,6 +3109,8 @@ void TStampa_registri_app::preprocess_header() | ||||
|        if (_tipo_stampa == rif_giornale) | ||||
|          set_header(r, FR("@139gop. @144gCodice conto @159gDescrizione sottoconto")); | ||||
|        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 protocol() const { return _rec.get_long("I5"); } | ||||
| 	const TString& attivita() const { return _rec.get("S8"); } | ||||
| 	const TString& prefisso() const { return _rec.get("S5"); } | ||||
| 
 | ||||
| 
 | ||||
|   bool agenzia_viaggi() const; | ||||
|   const TString& tipo_attivita() const; | ||||
| @ -341,6 +343,7 @@ public: | ||||
| 	tipo_movimento tipomov() const; | ||||
| 	const TString& tipodoc() const; | ||||
| 	const TString& tipodocsdi() const; | ||||
| 	const bool is_reg_autof() const; | ||||
| 	bool saldaconto(const TDate& datareg) const; | ||||
| 	int link_m770() const; | ||||
| 	char link_cespiti() const; | ||||
| @ -364,7 +367,8 @@ public: | ||||
| }; | ||||
| 
 | ||||
| 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 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user