Patch level : 12.0 830
Files correlati : cg2.exe Commento : - [Prima nota] Filtro data documento passato in automatico se valorizzato - Esportazione da 'Fatture SDI' delle righe IVA e scadenze - Controllo Totale documento se zero sommo da righe IVA
This commit is contained in:
		
							parent
							
								
									6c85a4d22f
								
							
						
					
					
						commit
						1868cc986d
					
				@ -3847,6 +3847,86 @@ bool TPrimanota_application::quadratura_handler(TMask_field& f, KEY key)
 | 
				
			|||||||
  return true;
 | 
					  return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TPrimanota_application::set_righe_iva_f1(TMask& cg_msk, const shared_ptr<TPro_msk>& msk)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						TSheet_field& sf = cg_msk.sfield(F_SHEETIVA);
 | 
				
			||||||
 | 
						const vector<TPro_msk::riga_iva_s>& righe = msk->get_righeiva();
 | 
				
			||||||
 | 
						int i = 0;
 | 
				
			||||||
 | 
						for (auto it = righe.begin(); it != righe.end(); ++it)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							if(it->imponibile != 0 || it->imposta != 0)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								TToken_string& row = sf.row(i);
 | 
				
			||||||
 | 
								row.add(it->imponibile, cid2index(IVA_IMPONIBILE));
 | 
				
			||||||
 | 
								row.add(it->imposta, cid2index(IVA_IMPOSTA));
 | 
				
			||||||
 | 
								i++;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool TPrimanota_application::set_scadenze_f1(const TMask& cg_msk, const shared_ptr<TPro_msk>& msk)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						TSheet_field& sf = cg_msk.sfield(FS_RATESHEET);
 | 
				
			||||||
 | 
						const vector<TPro_msk::scadenza_s>& righe = msk->get_scadenze();
 | 
				
			||||||
 | 
						int i = 0;
 | 
				
			||||||
 | 
						for (auto it = righe.begin(); it != righe.end(); ++it, ++i)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							TToken_string& row = sf.row(i);
 | 
				
			||||||
 | 
							row.add(it->data, cid2index(101));
 | 
				
			||||||
 | 
							row.add(it->importo, cid2index(102));
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return !righe.empty();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TPrimanota_application::set_clifo(TMask& cg_msk, const shared_ptr<TPro_msk>& msk)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						TLocalisamfile clifo(LF_CLIFO);
 | 
				
			||||||
 | 
						clifo.setkey(5);
 | 
				
			||||||
 | 
						clifo.put(CLI_TIPOCF, "F");
 | 
				
			||||||
 | 
						clifo.put(CLI_PAIV, msk->get_piva());
 | 
				
			||||||
 | 
						clifo.read();
 | 
				
			||||||
 | 
						if (clifo.get(CLI_PAIV) == msk->get_piva())
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							cg_msk.set(F_CODCLIFOR, clifo.get(CLI_CODCF));
 | 
				
			||||||
 | 
							cg_msk.set(F_RAGSOCCF, clifo.get(CLI_RAGSOC));
 | 
				
			||||||
 | 
							cg_msk.set(F_STATOPAIV, clifo.get(CLI_STATOPAIV));
 | 
				
			||||||
 | 
							cg_msk.set(F_PIVA, clifo.get(CLI_PAIV));
 | 
				
			||||||
 | 
							cg_msk.set(F_COFI, clifo.get(CLI_COFI));
 | 
				
			||||||
 | 
							cg_msk.set(F_CODPAG, clifo.get(CLI_CODPAG));
 | 
				
			||||||
 | 
							TTable tab("%CPG"); tab.put("CODTAB", clifo.get(CLI_CODPAG));
 | 
				
			||||||
 | 
							tab.read();
 | 
				
			||||||
 | 
							cg_msk.set(F_DESPAG, tab.get("S0"));
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TPrimanota_application::set_totale(TMask& cg_msk, const shared_ptr<TPro_msk>& msk)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						real totale = msk->get_totdoc();
 | 
				
			||||||
 | 
						if(totale == 0)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							const vector<TPro_msk::riga_iva_s>& righe = msk->get_righeiva();
 | 
				
			||||||
 | 
							for(auto it = righe.begin(); it != righe.end(); ++it)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								totale += it->imponibile;
 | 
				
			||||||
 | 
								totale += it->imposta;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						cg_msk.set(F_TOTALE, abs(totale));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TPrimanota_application::riporta_dati_f1(TMask& cg_msk, const shared_ptr<TPro_msk>& msk)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						cg_msk.set(F_NUMDOCEXT, msk->get_numdoc());
 | 
				
			||||||
 | 
						cg_msk.set(F_NUMDOC, msk->get_numdoc().right(7));
 | 
				
			||||||
 | 
						cg_msk.set(F_DATADOC, msk->get_datadoc());
 | 
				
			||||||
 | 
						if (!cg_msk.get(F_CODCLIFOR).full())
 | 
				
			||||||
 | 
							set_clifo(cg_msk, msk);
 | 
				
			||||||
 | 
						set_righe_iva_f1(cg_msk, msk);
 | 
				
			||||||
 | 
						set_totale(cg_msk, msk);
 | 
				
			||||||
 | 
						if (set_scadenze_f1(cg_msk, msk))
 | 
				
			||||||
 | 
							cg_msk.set(FS_RECALC, "");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool TPrimanota_application::fppro_mask(TMask_field& f, KEY key)
 | 
					bool TPrimanota_application::fppro_mask(TMask_field& f, KEY key)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	TMask& cg_msk = f.mask();
 | 
						TMask& cg_msk = f.mask();
 | 
				
			||||||
@ -3854,22 +3934,22 @@ bool TPrimanota_application::fppro_mask(TMask_field& f, KEY key)
 | 
				
			|||||||
		return true;
 | 
							return true;
 | 
				
			||||||
	auto msk = std::make_shared<TPro_msk>(cg_msk);
 | 
						auto msk = std::make_shared<TPro_msk>(cg_msk);
 | 
				
			||||||
	app()._pro_mask = msk;
 | 
						app()._pro_mask = msk;
 | 
				
			||||||
 | 
						const TString datadoc = cg_msk.get(F_DATADOC);
 | 
				
			||||||
 | 
						if(datadoc.full())
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							msk->set(F_ENABDATE, "X");
 | 
				
			||||||
 | 
							msk->field(F_DATESEARCH).show();
 | 
				
			||||||
 | 
							msk->set(F_DATESEARCH, datadoc);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	if (msk->load_fppro_mask(msk.get()))
 | 
						if (msk->load_fppro_mask(msk.get()))
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		msk->run();
 | 
							msk->run();
 | 
				
			||||||
		// Riporto dati FPPRO su maschera Prima Nota (solo se hai F1)
 | 
							// Riporto dati FPPRO su maschera Prima Nota (solo se hai F1)
 | 
				
			||||||
		// Se non hai F1 collego senza riportarti i dati (solo le chiavi db)
 | 
							// Se non hai F1 collego senza riportarti i dati (solo le chiavi db)
 | 
				
			||||||
		if(app().has_f1_db(&cg_msk))
 | 
							if(app().has_f1_db(&cg_msk))
 | 
				
			||||||
		{
 | 
								riporta_dati_f1(cg_msk, msk);
 | 
				
			||||||
			cg_msk.set(F_NUMDOCEXT, msk->get_numdoc());
 | 
					 | 
				
			||||||
			cg_msk.set(F_NUMDOC, msk->get_numdoc().right(7));
 | 
					 | 
				
			||||||
			cg_msk.set(F_DATADOC, msk->get_datadoc());
 | 
					 | 
				
			||||||
			cg_msk.set(F_TOTALE, msk->get_totdoc());
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		cg_msk.set(F_PROKEY, msk->get_fpprokeys());
 | 
							cg_msk.set(F_PROKEY, msk->get_fpprokeys());
 | 
				
			||||||
		is_collegato(cg_msk.field(F_COLFPPRO));
 | 
							is_collegato(cg_msk.field(F_COLFPPRO));
 | 
				
			||||||
 | 
					 | 
				
			||||||
		cg_msk.set(F_ANNORIF, cg_msk.get(F_ANNOIVA));
 | 
							cg_msk.set(F_ANNORIF, cg_msk.get(F_ANNOIVA));
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -3972,7 +4052,9 @@ bool TPro_msk::fppro_ok_handler(TMask_field& f, KEY k)
 | 
				
			|||||||
		if(!loaded && *row->get(0) == 'X')
 | 
							if(!loaded && *row->get(0) == 'X')
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			//TProtocollo protocollo(TDate(row->get(2)).year(), row->get(9), row->get(10));
 | 
								//TProtocollo protocollo(TDate(row->get(2)).year(), row->get(9), row->get(10));
 | 
				
			||||||
			app()._pro_mask->set_doc(row->get(5), row->get(3), row->get(4), "", row->get(11));
 | 
								app()._pro_mask->set_doc(row->get(cid2index(F_NUMEROS)), row->get(cid2index(F_DATAS)),
 | 
				
			||||||
 | 
									row->get(cid2index(F_IMPTOTDOCS)), "", row->get(cid2index(F_KEYFPPROS)),
 | 
				
			||||||
 | 
									row->get(cid2index(F_FISCIVACODS)));
 | 
				
			||||||
			loaded = true;
 | 
								loaded = true;
 | 
				
			||||||
			ok = true;
 | 
								ok = true;
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
@ -4056,13 +4138,54 @@ bool TPro_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
 | 
				
			|||||||
	return true;
 | 
						return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void TPro_msk::set_doc(const char* numero, const char* datadoc, const char* totdoc, const char* protfppro, const char* fpprokeys)
 | 
					void TPro_msk::set_righeiva(const char* fpprokeys)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						TToken_string keys(fpprokeys, ';');
 | 
				
			||||||
 | 
						TString query;
 | 
				
			||||||
 | 
						query << "SELECT PL_ALIQUOTAIVA AS ALIQUOTA, PL_NATURA AS NATURA, PL_IMPONIBILE AS IMPONIBILE, PL_IMPOSTA AS IMPOSTA \nFROM PAA2200F\n" <<
 | 
				
			||||||
 | 
							"WHERE PL_KEYPRGINVIO = '" << keys.get(0) << "' AND PL_KEYHEADERFATT = '" << keys.get(1) << "' AND PL_KEYBODYFATT = '" << keys.get(2) << "';";
 | 
				
			||||||
 | 
						fp_db().sq_set_exec(query, false);
 | 
				
			||||||
 | 
						for(bool ok = fp_db().sq_next(); ok; ok = fp_db().sq_next())
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							add_rigaiva(real(fp_db().sq_get("IMPONIBILE")),
 | 
				
			||||||
 | 
								real(fp_db().sq_get("IMPOSTA")),
 | 
				
			||||||
 | 
								real(fp_db().sq_get("ALIQUOTA")),
 | 
				
			||||||
 | 
								fp_db().sq_get("NATURA"));
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TPro_msk::set_scadenze(const char* fpprokeys)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						TToken_string keys(fpprokeys, ';');
 | 
				
			||||||
 | 
						TString query; query << "SELECT PO_RIGA AS RIGA, PO_DATASCADENZA AS DATA, PO_IMPORTO AS IMPORTO \nFROM PAA2500F \n" <<
 | 
				
			||||||
 | 
							"WHERE PO_KEYPRGINVIO = '" << keys.get(0) << "' AND PO_KEYHEADERFATT = '" << keys.get(1) << "' AND PO_KEYBODYFATT = '" << keys.get(2) << "';";
 | 
				
			||||||
 | 
						fp_db().sq_set_exec(query, false);
 | 
				
			||||||
 | 
						for(bool ok = fp_db().sq_next(); ok; ok = fp_db().sq_next())
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							add_scad(fp_db().sq_get_date("DATA"), real(fp_db().sq_get("IMPORTO")));
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TPro_msk::set_doc(const char* numero, const char* datadoc, const char* totdoc, const char* protfppro, const char* fpprokeys, const char* piva)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	_numero = numero;
 | 
						_numero = numero;
 | 
				
			||||||
	_datadoc = datadoc;
 | 
						_datadoc = datadoc;
 | 
				
			||||||
	_totdoc = totdoc;
 | 
						_totdoc = totdoc;
 | 
				
			||||||
	_protfppro.sset(protfppro);
 | 
						_protfppro.sset(protfppro);
 | 
				
			||||||
	_fpprokeys = fpprokeys;
 | 
						_fpprokeys = fpprokeys;
 | 
				
			||||||
 | 
						_piva = piva;
 | 
				
			||||||
 | 
						set_righeiva(fpprokeys);
 | 
				
			||||||
 | 
						set_scadenze(fpprokeys);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TPro_msk::add_rigaiva(const real& imponibile, const real& imposta, const real& aliquota, const TString4& natura)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						_righe_iva.insert(_righe_iva.end(), { imponibile, imposta, aliquota, natura });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TPro_msk::add_scad(const TDate& date, const real& importo)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						_scadenze.insert(_scadenze.end(), { date, importo });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TString& TPro_msk::query_fppro(const TString& keyprginvio, const TString& keyheaderfatt, const TString& keybodyfatt,
 | 
					TString& TPro_msk::query_fppro(const TString& keyprginvio, const TString& keyheaderfatt, const TString& keybodyfatt,
 | 
				
			||||||
@ -4121,15 +4244,22 @@ TString& TPro_msk::query_fppro(const TString& codforn, const TString& stato_piva
 | 
				
			|||||||
			query << "\nORDER BY P1_DATAORARIC ASC";
 | 
								query << "\nORDER BY P1_DATAORARIC ASC";
 | 
				
			||||||
		query << ";";
 | 
							query << ";";
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	else if(!keys.empty())
 | 
						else if (!keys.empty())
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		query << keys;
 | 
							query << keys;
 | 
				
			||||||
		if (!where_str.empty())
 | 
							if (!where_str.empty())
 | 
				
			||||||
			query << " AND " << where_str;
 | 
								query << " AND " << where_str;
 | 
				
			||||||
		query << ";";
 | 
							query << ";";
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						else if (!date.empty())
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							query << " PZ_DATA = '" << TDate(date).date2ansi() << "' ";
 | 
				
			||||||
 | 
							if (order)
 | 
				
			||||||
 | 
								query << "\nORDER BY P1_DATAORARIC ASC";
 | 
				
			||||||
 | 
							query << ";";
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		query.cut(0);
 | 
							query.cut(0) << query.left(query.len()-6);
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	return query;
 | 
						return query;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -4160,4 +4290,5 @@ TPro_msk::TPro_msk(TMask& cg_msk) : TAutomask("cg2fppro")
 | 
				
			|||||||
	TMask::set(F_PIVAS, cg_msk.get(F_PIVA));
 | 
						TMask::set(F_PIVAS, cg_msk.get(F_PIVA));
 | 
				
			||||||
	TMask::set(F_RAGSOCS, cg_msk.get(F_RAGSOCCF));
 | 
						TMask::set(F_RAGSOCS, cg_msk.get(F_RAGSOCCF));
 | 
				
			||||||
	set(F_DATESEARCH, TDate(TODAY));
 | 
						set(F_DATESEARCH, TDate(TODAY));
 | 
				
			||||||
 | 
						_righe_iva.clear();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -35,6 +35,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include <automask.h>
 | 
					#include <automask.h>
 | 
				
			||||||
#include "../f1/f1lib.h"
 | 
					#include "../f1/f1lib.h"
 | 
				
			||||||
 | 
					#include <vector>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define K_ELIMMAS			0 // Key per eliminazione massima
 | 
					#define K_ELIMMAS			0 // Key per eliminazione massima
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -184,6 +185,11 @@ class TPrimanota_application : public TRelation_application
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  static bool quadratura_handler(TMask_field& f, KEY k); // Bottone quadratura per ATS
 | 
					  static bool quadratura_handler(TMask_field& f, KEY k); // Bottone quadratura per ATS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  static void set_righe_iva_f1(TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
 | 
				
			||||||
 | 
					  static bool set_scadenze_f1(const TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
 | 
				
			||||||
 | 
					  static void set_clifo(TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
 | 
				
			||||||
 | 
					  static void set_totale(TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
 | 
				
			||||||
 | 
					  static void riporta_dati_f1(TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
 | 
				
			||||||
	// Handlers per aggancio FPPRO
 | 
						// Handlers per aggancio FPPRO
 | 
				
			||||||
	// Bottone per maschera FPPRO
 | 
						// Bottone per maschera FPPRO
 | 
				
			||||||
	static bool fppro_mask(TMask_field& f, KEY key);
 | 
						static bool fppro_mask(TMask_field& f, KEY key);
 | 
				
			||||||
@ -394,11 +400,17 @@ public:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
class TPro_msk : public TAutomask
 | 
					class TPro_msk : public TAutomask
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
						struct riga_iva_s;
 | 
				
			||||||
 | 
						struct scadenza_s;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	TString _numero;
 | 
						TString _numero;
 | 
				
			||||||
	TDate		_datadoc;
 | 
						TDate		_datadoc;
 | 
				
			||||||
	real		_totdoc;
 | 
						real		_totdoc;
 | 
				
			||||||
	TProtocollo _protfppro;
 | 
						TProtocollo _protfppro;
 | 
				
			||||||
	TString _fpprokeys;
 | 
						TString _fpprokeys;
 | 
				
			||||||
 | 
						TString _piva;
 | 
				
			||||||
 | 
						vector<riga_iva_s> _righe_iva;
 | 
				
			||||||
 | 
						vector<scadenza_s> _scadenze;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Handlers per aggancio FPPRO
 | 
						// Handlers per aggancio FPPRO
 | 
				
			||||||
	// Bottone carica documenti in maschera FPPRO
 | 
						// Bottone carica documenti in maschera FPPRO
 | 
				
			||||||
@ -411,14 +423,35 @@ class TPro_msk : public TAutomask
 | 
				
			|||||||
	void fppro_selfatt() const;
 | 
						void fppro_selfatt() const;
 | 
				
			||||||
	bool on_field_event(TOperable_field& o, TField_event e, long jolly) override;
 | 
						bool on_field_event(TOperable_field& o, TField_event e, long jolly) override;
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
 | 
						struct riga_iva_s
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							real			imponibile;
 | 
				
			||||||
 | 
							real			imposta;
 | 
				
			||||||
 | 
							real			aliquota;
 | 
				
			||||||
 | 
							TString4	natura;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
						struct scadenza_s
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							TDate data;
 | 
				
			||||||
 | 
							real	importo;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	void set_doc(const char* numero, const char* datadoc, const char* totdoc, const char* protfppro, const char* fpprokeys);
 | 
						void set_righeiva(const char* fpprokeys);
 | 
				
			||||||
 | 
						void set_scadenze(const char* fpprokeys);
 | 
				
			||||||
 | 
						void set_doc(const char* numero, const char* datadoc, const char* totdoc, const char* protfppro, const char* fpprokeys, const char* piva);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	TString get_numdoc() const { return _numero; }
 | 
						TString get_numdoc() const { return _numero; }
 | 
				
			||||||
	TDate		get_datadoc() const { return _datadoc; }
 | 
						TDate		get_datadoc() const { return _datadoc; }
 | 
				
			||||||
	real	get_totdoc() const { return _totdoc; }
 | 
						real	get_totdoc() const { return _totdoc; }
 | 
				
			||||||
	TProtocollo& get_protocollo() { return _protfppro; }
 | 
						TProtocollo& get_protocollo() { return _protfppro; }
 | 
				
			||||||
	TString get_fpprokeys() const { return _fpprokeys; }
 | 
						TString get_fpprokeys() const { return _fpprokeys; }
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						TString get_piva() const { return _piva; }
 | 
				
			||||||
 | 
						const vector<riga_iva_s>& get_righeiva() { return _righe_iva; }
 | 
				
			||||||
 | 
						vector<scadenza_s>& get_scadenze() { return _scadenze; }
 | 
				
			||||||
 | 
						void add_rigaiva(const real& imponibile, const real& imposta, const real& aliquota, const TString4& natura);
 | 
				
			||||||
 | 
						void add_scad(const TDate& date, const real& importo);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	static TString& query_fppro(const TString& keyprginvio, const TString& keyheaderfatt, const TString& keybodyfatt, const TString& where_str);
 | 
						static TString& query_fppro(const TString& keyprginvio, const TString& keyheaderfatt, const TString& keybodyfatt, const TString& where_str);
 | 
				
			||||||
	static TString& query_fppro(const TString& codforn, const TString& date);
 | 
						static TString& query_fppro(const TString& codforn, const TString& date);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user