Patch level : nopatch
Files correlati : Commento : Implementazione nuovo modulo FP
This commit is contained in:
		
							parent
							
								
									3d906254a0
								
							
						
					
					
						commit
						fec596bb45
					
				@ -17,7 +17,6 @@
 | 
				
			|||||||
#define FILTER_ALL			"A"
 | 
					#define FILTER_ALL			"A"
 | 
				
			||||||
#define FILTER_CONT			"C"
 | 
					#define FILTER_CONT			"C"
 | 
				
			||||||
#define PARA_FP					"fp"
 | 
					#define PARA_FP					"fp"
 | 
				
			||||||
#define F1_INIREGCONT   "regcont"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
enum
 | 
					enum
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
				
			|||||||
@ -150,7 +150,7 @@ void TPAR_mask::fill()
 | 
				
			|||||||
		const TCli_for & cli = cached_clifor(mov.get_char(MOV_TIPO), mov.get_long(MOV_CODCF));
 | 
							const TCli_for & cli = cached_clifor(mov.get_char(MOV_TIPO), mov.get_long(MOV_CODCF));
 | 
				
			||||||
		bool sent = false;
 | 
							bool sent = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (chiave_paf_mov(mov, tipodocsdi, hfatt, bfatt))
 | 
							if (chiave_paf_mov(mov, hfatt, bfatt))
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			if (paf0100f.search(nullptr, hfatt, bfatt) && paf0100f.sq_get("P1_GESTIONE") != " " && paf0100f.sq_get("P1_ERRINT") != "*")
 | 
								if (paf0100f.search(nullptr, hfatt, bfatt) && paf0100f.sq_get("P1_GESTIONE") != " " && paf0100f.sq_get("P1_ERRINT") != "*")
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
@ -598,7 +598,7 @@ void TPAR_mask::set_err_paf()
 | 
				
			|||||||
			TString hfatt, bfatt;
 | 
								TString hfatt, bfatt;
 | 
				
			||||||
			TPaf_record paf0100f("PAF0100F");
 | 
								TPaf_record paf0100f("PAF0100F");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if (chiave_paf_mov(mov, tipodocsdi, hfatt, bfatt) && paf0100f.search(nullptr, hfatt, bfatt))
 | 
								if (chiave_paf_mov(mov, hfatt, bfatt) && paf0100f.search(nullptr, hfatt, bfatt))
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				TString query;
 | 
									TString query;
 | 
				
			||||||
				query <<
 | 
									query <<
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										125
									
								
								src/fp/fplib.h
									
									
									
									
									
								
							
							
						
						
									
										125
									
								
								src/fp/fplib.h
									
									
									
									
									
								
							@ -7,6 +7,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include "../ve/velib05.h"
 | 
					#include "../ve/velib05.h"
 | 
				
			||||||
#include "../fe/felib.h"
 | 
					#include "../fe/felib.h"
 | 
				
			||||||
 | 
					#include <reprint.h>
 | 
				
			||||||
#include <reputils.h>
 | 
					#include <reputils.h>
 | 
				
			||||||
#include <vector>
 | 
					#include <vector>
 | 
				
			||||||
#include <memory>
 | 
					#include <memory>
 | 
				
			||||||
@ -35,13 +36,13 @@ TString& complete_num_fp(const TCodice_numerazione& codnum, const int numdoc);
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Genera la chiave per i paf
 | 
					// Genera la chiave per i paf
 | 
				
			||||||
bool chiave_paf_mov(const TRectype& mov, const TString & tipodoc, TString& hfatt, TString& bfatt);
 | 
					bool chiave_paf_mov(const TRectype& mov, TString& hfatt, TString& bfatt);
 | 
				
			||||||
bool chiave_paf_doc(const TDocumento& doc, TString& hfatt, TString& bfatt);
 | 
					bool chiave_paf_doc(const TDocumento& doc, TString& hfatt, TString& bfatt);
 | 
				
			||||||
bool chiave_paf_doc(const TRectype& doc, TString& hfatt, TString& bfatt);
 | 
					bool chiave_paf_doc(const TRectype& doc, TString& hfatt, TString& bfatt);
 | 
				
			||||||
// Ritorna cod sdi, pec o vuoto. Chiama get_coddest()
 | 
					// Ritorna cod sdi, pec o vuoto. Chiama get_coddest()
 | 
				
			||||||
TString get_dest_sdi(char tipocf, long codcf, const TString& cod_ind_sped);
 | 
					TString get_dest_sdi(char tipocf, long codcf, const TString& cod_ind_sped);
 | 
				
			||||||
// Valorizza codice sdi e pec in base alle configurazioni del monitor
 | 
					// Valorizza codice sdi e pec in base alle configurazioni del monitor
 | 
				
			||||||
bool get_coddest(char tipocf, long codcf, TString& coddest, TString& pec, const TString& cod_ind_sped);
 | 
					bool get_coddest(char tipocf, long codcf, TString& coddest, TString& pec, const TString& cod_ind_sped = EMPTY_STRING);
 | 
				
			||||||
const TString& tipo_doc_sdi(const TDocumento& doc);
 | 
					const TString& tipo_doc_sdi(const TDocumento& doc);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Controlli comuni
 | 
					// Controlli comuni
 | 
				
			||||||
@ -451,7 +452,17 @@ public:
 | 
				
			|||||||
	virtual ~TFP_expression() {};
 | 
						virtual ~TFP_expression() {};
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Gestione PAF
 | 
					/*
 | 
				
			||||||
 | 
					 /$$$$$$$$ /$$$$$$$
 | 
				
			||||||
 | 
					|__  $$__/| $$__  $$
 | 
				
			||||||
 | 
						 | $$   | $$  \ $$  /$$$$$$   /$$$$$$$
 | 
				
			||||||
 | 
						 | $$   | $$  | $$ /$$__  $$ /$$_____/
 | 
				
			||||||
 | 
						 | $$   | $$  | $$| $$  \ $$| $$
 | 
				
			||||||
 | 
						 | $$   | $$  | $$| $$  | $$| $$
 | 
				
			||||||
 | 
						 | $$   | $$$$$$$/|  $$$$$$/|  $$$$$$$
 | 
				
			||||||
 | 
						 |__/   |_______/  \______/  \_______/
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class TDoc_fp : public TObject
 | 
					class TDoc_fp : public TObject
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	friend class TFP_custom;
 | 
						friend class TFP_custom;
 | 
				
			||||||
@ -462,7 +473,7 @@ private:
 | 
				
			|||||||
	TAnagrafica				_ditta;
 | 
						TAnagrafica				_ditta;
 | 
				
			||||||
	TString16					_cofi;
 | 
						TString16					_cofi;
 | 
				
			||||||
	TFilename					_dbname;
 | 
						TFilename					_dbname;
 | 
				
			||||||
	TLog_report*			_log;
 | 
						TLog_report 			_log;
 | 
				
			||||||
	TString						_logpaf;
 | 
						TString						_logpaf;
 | 
				
			||||||
	bool							_gestioneallegati;
 | 
						bool							_gestioneallegati;
 | 
				
			||||||
	bool							_allegafattura;
 | 
						bool							_allegafattura;
 | 
				
			||||||
@ -542,7 +553,7 @@ protected:
 | 
				
			|||||||
	const TString&      descrizione(const TRiga_documento& rdoc);
 | 
						const TString&      descrizione(const TRiga_documento& rdoc);
 | 
				
			||||||
	const TRectype& cco(const TRectype&                doc) const; // Contratto/Convenzione/Offerta
 | 
						const TRectype& cco(const TRectype&                doc) const; // Contratto/Convenzione/Offerta
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	void        log(int severity, const char* msg);
 | 
					
 | 
				
			||||||
	const TString & natura(const char* codiva) const;
 | 
						const TString & natura(const char* codiva) const;
 | 
				
			||||||
	static const char* get_esigibilita_iva(const TDocumentoEsteso& doc);
 | 
						static const char* get_esigibilita_iva(const TDocumentoEsteso& doc);
 | 
				
			||||||
	void set_IVA(TString         codiva, TPaf_record& paf) const;
 | 
						void set_IVA(TString         codiva, TPaf_record& paf) const;
 | 
				
			||||||
@ -581,4 +592,108 @@ public:
 | 
				
			|||||||
	TDoc_fp();
 | 
						TDoc_fp();
 | 
				
			||||||
	~TDoc_fp();
 | 
						~TDoc_fp();
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 /$$$$$$$$ /$$$$$$$
 | 
				
			||||||
 | 
					|__  $$__/| $$__  $$
 | 
				
			||||||
 | 
						 | $$   | $$  \ $$  /$$$$$$   /$$$$$$
 | 
				
			||||||
 | 
						 | $$   | $$$$$$$/ /$$__  $$ /$$__  $$
 | 
				
			||||||
 | 
						 | $$   | $$__  $$| $$$$$$$$| $$  \ $$
 | 
				
			||||||
 | 
						 | $$   | $$  \ $$| $$_____/| $$  | $$
 | 
				
			||||||
 | 
						 | $$   | $$  | $$|  $$$$$$$|  $$$$$$$
 | 
				
			||||||
 | 
						 |__/   |__/  |__/ \_______/ \____  $$
 | 
				
			||||||
 | 
																				 /$$  \ $$
 | 
				
			||||||
 | 
																				|  $$$$$$/
 | 
				
			||||||
 | 
																				 \______/
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class TReg_fp : public TObject
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						friend class TFP_custom;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
						TAnagrafica				_ditta;
 | 
				
			||||||
 | 
						TString16					_cofi;
 | 
				
			||||||
 | 
						TFilename					_dbname;
 | 
				
			||||||
 | 
						TLog_report 			_log;
 | 
				
			||||||
 | 
						TString						_logpaf;
 | 
				
			||||||
 | 
						bool							_gestioneallegati;
 | 
				
			||||||
 | 
						bool							_allegafattura;
 | 
				
			||||||
 | 
						TString						_def_fld;
 | 
				
			||||||
 | 
						TString						_def_usr_fld;
 | 
				
			||||||
 | 
						bool							_to_commit;
 | 
				
			||||||
 | 
						bool							_cache_insert;
 | 
				
			||||||
 | 
						vector<TString>		_query;
 | 
				
			||||||
 | 
						TString8					_hfatt; // Codice univoco di 6 caratteri dell'ufficio P.A. o di 7 caratteri per un privato
 | 
				
			||||||
 | 
						TString						_bfatt; // Codice univoco di 20 caratteri del Regumento
 | 
				
			||||||
 | 
						TString						_paese;
 | 
				
			||||||
 | 
						bool							_enapec;
 | 
				
			||||||
 | 
						bool							_privato;
 | 
				
			||||||
 | 
						TString						_coddest;
 | 
				
			||||||
 | 
						TString						_pec;
 | 
				
			||||||
 | 
						bool							_is_pa;
 | 
				
			||||||
 | 
						TString						_codivadefault;
 | 
				
			||||||
 | 
						long							_idx_cassa_previdenziale;
 | 
				
			||||||
 | 
						long							_idx_adg_reg_row; // Indice per la tabella altri dati gestionali della riga
 | 
				
			||||||
 | 
						int								_num_linea;
 | 
				
			||||||
 | 
						int								_counter;
 | 
				
			||||||
 | 
						TPaf_container		_paf_container;
 | 
				
			||||||
 | 
						int								_count_r_conai;
 | 
				
			||||||
 | 
						bool							_nascondi_sconti_righe_fatt;
 | 
				
			||||||
 | 
						TFP_nota_piede_f	_riga_npf;
 | 
				
			||||||
 | 
						bool							_has_cust;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						bool						insert(TPaf_record& p);
 | 
				
			||||||
 | 
						bool						remove(TPaf_record& p);
 | 
				
			||||||
 | 
						void						reset(TPaf_record& p) const { TPaf_container::set_keys_paf(p, _hfatt, _bfatt); }
 | 
				
			||||||
 | 
						bool						save_paf();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					protected:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**< Funzioni di controllo */
 | 
				
			||||||
 | 
						/**< Controlli di testata, non  const per il calcolo della codizione di pagamento */
 | 
				
			||||||
 | 
						bool check_initial(const TMovimento_contabile& mov);
 | 
				
			||||||
 | 
						/**< Controllo di riga */
 | 
				
			||||||
 | 
						bool check_row(const TMovimento_contabile& mov, int n_riga);
 | 
				
			||||||
 | 
						/**< Controllo riepilogo IVA */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						bool initialize(const TMovimento_contabile& Reg);
 | 
				
			||||||
 | 
						//static bool get_bnp_iban(const TString&                   abi, const TString&     cab, int       prg, TString& iban);
 | 
				
			||||||
 | 
						//bool get_bank(TRegumento&                    Reg, TString& iban, TString& abi, TString& cab, TString& istituto) const;
 | 
				
			||||||
 | 
						//bool get_bank_presentazione(const TRegumento& Reg, TString& iban, TString& abi, TString& cab, TString& istituto) const;
 | 
				
			||||||
 | 
						//bool get_bank_appoggio(const TRegumento& Reg, TString& iban, TString& abi, TString& cab, TString& istituto) const;
 | 
				
			||||||
 | 
						const TString&      descrizione(const TMovimento_contabile& mov, int n_riga) const {	return mov.cg()[n_riga].get((RMV_DESCR));} 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						void        save_log() { TReport_book b; b.add(_log); b.export_text(TFilename("fp_err.log"), false, 132); }
 | 
				
			||||||
 | 
						const TString & natura(const char* codiva) const;
 | 
				
			||||||
 | 
						static const char* get_esigibilita_iva(const TMovimento_contabile& Reg);
 | 
				
			||||||
 | 
						void set_IVA(TString         codiva, TPaf_record& paf) const;
 | 
				
			||||||
 | 
						void set_IVA(const TMovimento_contabile& mov, int n_row, TPaf_record&   paf) const;
 | 
				
			||||||
 | 
						bool add_row_art(long& riga_art, const TString& codice_tipo, const TString& codice_valore, TPaf_record& paf);
 | 
				
			||||||
 | 
						bool add_row_alleg(TFilename& file, long& nprogr, TPaf_record& paf);
 | 
				
			||||||
 | 
						void set_qta_prezzo(TPaf_record& paf1800f, const TMovimento_contabile& mov, int n_row) const;
 | 
				
			||||||
 | 
						void add_ritenuta(const TMovimento_contabile & mov, int n_row, TPaf_record& paf0700f) const;
 | 
				
			||||||
 | 
						bool add_riepilogo_iva(const TMovimento_contabile mov, int n_riga);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						const TFirm& TReg_fp::get_firm(){return prefix().firm();}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						bool export_paf0100f();
 | 
				
			||||||
 | 
						bool export_paf3200f();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
						bool reg_to_paf(const TMovimento_contabile& mov);
 | 
				
			||||||
 | 
						bool reg_to_paf(long n_mov);
 | 
				
			||||||
 | 
						// Mostra il log a fine esecuzione
 | 
				
			||||||
 | 
						bool show_log();
 | 
				
			||||||
 | 
						int commit();
 | 
				
			||||||
 | 
						int force_commit();
 | 
				
			||||||
 | 
						void set_cache_insert(const bool v) { _cache_insert = v; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						TReg_fp();
 | 
				
			||||||
 | 
						~TReg_fp();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
#endif // __FPLIB_H
 | 
					#endif // __FPLIB_H
 | 
				
			||||||
 | 
				
			|||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user