Patch level : 12.0 nopatch
Files correlati : fp0700.cpp, fp0700a.h, fp0700a.uml, fplib.h, fplib01.cpp Commento: Modifiche Integrazioni per reinvio modifica provvisorio
This commit is contained in:
		
							parent
							
								
									8c293c2964
								
							
						
					
					
						commit
						a08d9fc134
					
				@ -34,7 +34,7 @@ protected:
 | 
			
		||||
	bool					on_key(KEY key) override;
 | 
			
		||||
	bool					check_not_empty();
 | 
			
		||||
	bool					check_full_fields() const;
 | 
			
		||||
	void					set_err_paf();
 | 
			
		||||
	void					delete_paf();
 | 
			
		||||
	void					fill();
 | 
			
		||||
	void					init();
 | 
			
		||||
	void					force_reload_sheet();
 | 
			
		||||
@ -129,7 +129,7 @@ void TPAR_mask::fill()
 | 
			
		||||
	TString query;
 | 
			
		||||
	const bool diagn = get_bool(F_DIAGN);
 | 
			
		||||
 | 
			
		||||
	enable(DLG_OK, filter_selected.empty() || filter_selected == "E" || filter_selected == "X");
 | 
			
		||||
	enable(DLG_OK, filter_selected.empty() || filter_selected == "E" || filter_selected == "X" || filter_selected == "D");
 | 
			
		||||
	enable(DLG_PRINT, true);
 | 
			
		||||
	enable(DLG_SAVEREC, (is_f8() && (filter_selected == "X") || filter_selected == "D"));
 | 
			
		||||
	enable(DLG_FINDREC, filter_selected == "D");
 | 
			
		||||
@ -147,6 +147,7 @@ void TPAR_mask::fill()
 | 
			
		||||
 | 
			
		||||
		//MY QUERY
 | 
			
		||||
 | 
			
		||||
	//DA RIVEDERE QUESTA QUERY 
 | 
			
		||||
	query << "USE " << LF_MOV << " KEY 2\n";
 | 
			
		||||
	if (dal.ok()) 
 | 
			
		||||
		query << "FROM " << MOV_DATAREG << "=" << dal << "\n";
 | 
			
		||||
@ -562,7 +563,7 @@ bool TPAR_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
 | 
			
		||||
	case DLG_SAVEREC:
 | 
			
		||||
	{
 | 
			
		||||
		if (e == fe_button)
 | 
			
		||||
			set_err_paf();
 | 
			
		||||
			delete_paf();
 | 
			
		||||
	}
 | 
			
		||||
	break;
 | 
			
		||||
	case DLG_FINDREC:
 | 
			
		||||
@ -647,7 +648,7 @@ bool TPAR_mask::check_full_fields() const
 | 
			
		||||
	return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TPAR_mask::set_err_paf()
 | 
			
		||||
void TPAR_mask::delete_paf()
 | 
			
		||||
{
 | 
			
		||||
	// Vado a riportare sui paf l'errore
 | 
			
		||||
	TSheet_field& sfld = sfield(F_REGS);
 | 
			
		||||
@ -670,6 +671,34 @@ void TPAR_mask::set_err_paf()
 | 
			
		||||
			if (chiave_paf_mov(mov, tipodocsdi, hfatt, bfatt) && paf0100f.search(nullptr, hfatt, bfatt))
 | 
			
		||||
			{
 | 
			
		||||
				TString query;
 | 
			
		||||
 | 
			
		||||
				query <<
 | 
			
		||||
					"DELETE FROM PAF0100F WHERE P1_KEYHEADERFATT = '" << hfatt << "' AND P1_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"DELETE FROM PAF0200F WHERE P2_KEYHEADERFATT = '" << hfatt << "' AND P2_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"DELETE FROM PAF0400F WHERE P4_KEYHEADERFATT = '" << hfatt << "' AND P4_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"DELETE FROM PAF0700F WHERE P7_KEYHEADERFATT = '" << hfatt << "' AND P7_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"DELETE FROM PAF0800F WHERE P8_KEYHEADERFATT = '" << hfatt << "' AND P8_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"DELETE FROM PAF1000F WHERE P0_KEYHEADERFATT = '" << hfatt << "' AND P0_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"DELETE FROM PAF1100F WHERE PA_KEYHEADERFATT = '" << hfatt << "' AND PA_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"DELETE FROM PAF1200F WHERE PB_KEYHEADERFATT = '" << hfatt << "' AND PB_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"DELETE FROM PAF1400F WHERE PD_KEYHEADERFATT = '" << hfatt << "' AND PD_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"DELETE FROM PAF1600F WHERE PF_KEYHEADERFATT = '" << hfatt << "' AND PF_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"DELETE FROM PAF1700F WHERE PG_KEYHEADERFATT = '" << hfatt << "' AND PG_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"DELETE FROM PAF1800F WHERE PI_KEYHEADERFATT = '" << hfatt << "' AND PI_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"DELETE FROM PAF1900F WHERE PY_KEYHEADERFATT = '" << hfatt << "' AND PY_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"DELETE FROM PAF2000F WHERE PJ_KEYHEADERFATT = '" << hfatt << "' AND PJ_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"DELETE FROM PAF2100F WHERE PK_KEYHEADERFATT = '" << hfatt << "' AND PK_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"DELETE FROM PAF2200F WHERE PL_KEYHEADERFATT = '" << hfatt << "' AND PL_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"DELETE FROM PAF2400F WHERE PN_KEYHEADERFATT = '" << hfatt << "' AND PN_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"DELETE FROM PAF2500F WHERE PO_KEYHEADERFATT = '" << hfatt << "' AND PO_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"DELETE FROM PAF2600F WHERE PP_KEYHEADERFATT = '" << hfatt << "' AND PP_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"DELETE FROM PAF2700F WHERE PQ_KEYHEADERFATT = '" << hfatt << "' AND PQ_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"DELETE FROM PAF3000F WHERE PT_KEYHEADERFATT = '" << hfatt << "' AND PT_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"DELETE FROM PAF3200F WHERE PU_KEYHEADERFATT = '" << hfatt << "' AND PU_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					// PAFW3 non ha il flag di gestione
 | 
			
		||||
					"DELETE FROM PAFW300F WHERE PW_KEYHEADERFATT = '" << hfatt << "' AND PW_KEYBODYFATT = '" << bfatt << "';\n";
 | 
			
		||||
 | 
			
		||||
				/*
 | 
			
		||||
				query <<
 | 
			
		||||
					"UPDATE PAF0100F SET P1_GESTIONE = 'E', P1_KEYPRGINVIO = 'DELETED' WHERE P1_KEYHEADERFATT = '" << hfatt << "' AND P1_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"UPDATE PAF0200F SET P2_GESTIONE = 'E', P2_KEYPRGINVIO = 'DELETED' WHERE P2_KEYHEADERFATT = '" << hfatt << "' AND P2_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
@ -679,7 +708,7 @@ void TPAR_mask::set_err_paf()
 | 
			
		||||
					"UPDATE PAF1000F SET P0_GESTIONE = 'E', P0_KEYPRGINVIO = 'DELETED' WHERE P0_KEYHEADERFATT = '" << hfatt << "' AND P0_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"UPDATE PAF1100F SET PA_GESTIONE = 'E', PA_KEYPRGINVIO = 'DELETED' WHERE PA_KEYHEADERFATT = '" << hfatt << "' AND PA_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"UPDATE PAF1200F SET PB_GESTIONE = 'E', PB_KEYPRGINVIO = 'DELETED' WHERE PB_KEYHEADERFATT = '" << hfatt << "' AND PB_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"UPDATE PAF1400F SET PB_GESTIONE = 'E', PB_KEYPRGINVIO = 'DELETED' WHERE PB_KEYHEADERFATT = '" << hfatt << "' AND PB_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"UPDATE PAF1400F SET PD_GESTIONE = 'E', PD_KEYPRGINVIO = 'DELETED' WHERE PD_KEYHEADERFATT = '" << hfatt << "' AND PD_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"UPDATE PAF1600F SET PF_GESTIONE = 'E', PF_KEYPRGINVIO = 'DELETED' WHERE PF_KEYHEADERFATT = '" << hfatt << "' AND PF_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"UPDATE PAF1700F SET PG_GESTIONE = 'E', PG_KEYPRGINVIO = 'DELETED' WHERE PG_KEYHEADERFATT = '" << hfatt << "' AND PG_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					"UPDATE PAF1800F SET PI_GESTIONE = 'E', PI_KEYPRGINVIO = 'DELETED' WHERE PI_KEYHEADERFATT = '" << hfatt << "' AND PI_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
@ -695,6 +724,7 @@ void TPAR_mask::set_err_paf()
 | 
			
		||||
					"UPDATE PAF3200F SET PU_GESTIONE = 'E', PU_KEYPRGINVIO = 'DELETED' WHERE PU_KEYHEADERFATT = '" << hfatt << "' AND PU_KEYBODYFATT = '" << bfatt << "';\n" <<
 | 
			
		||||
					// PAFW3 non ha il flag di gestione
 | 
			
		||||
					"UPDATE PAFW300F SET PW_KEYPRGINVIO = 'DELETED' WHERE PW_KEYHEADERFATT = '" << hfatt << "' AND PW_KEYBODYFATT = '" << bfatt << "';\n";
 | 
			
		||||
					*/
 | 
			
		||||
				if (!fp_db().sq_set_exec(query))
 | 
			
		||||
				{
 | 
			
		||||
					TString err = "Impossibile salvare la regolarizzazione "; err << nreg << "\nVerrà saltata.";
 | 
			
		||||
 | 
			
		||||
@ -1,8 +1,8 @@
 | 
			
		||||
#define F_DATAINI				401
 | 
			
		||||
#define F_DATAEND				402
 | 
			
		||||
#define F_REGSEL				403
 | 
			
		||||
#define F_CAUSALI_TIPO	404
 | 
			
		||||
#define F_TIPO_SDI			405
 | 
			
		||||
#define F_CAUSALI_TIPO			404
 | 
			
		||||
#define F_TIPO_SDI				405
 | 
			
		||||
#define F_REGS					406
 | 
			
		||||
#define F_DIAGN					407
 | 
			
		||||
#define START_MASK				F_DATAINI
 | 
			
		||||
 | 
			
		||||
@ -71,12 +71,12 @@ END
 | 
			
		||||
 | 
			
		||||
RADIOBUTTON F_REGSEL 7 80
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 3 "Registrazioni da visualizzare"
 | 
			
		||||
  PROMPT 1 3 "@bIntegrazioni da visualizzare"
 | 
			
		||||
  ITEM "|Da inviare"
 | 
			
		||||
  ITEM "X|XML Generato"
 | 
			
		||||
  ITEM "N|Notificato"
 | 
			
		||||
  //ITEM "N|Notificato"
 | 
			
		||||
  ITEM "D|Pre-Diagosticate"
 | 
			
		||||
  ITEM "E|In errore"
 | 
			
		||||
  ITEM "D|Diag."
 | 
			
		||||
  ITEM "X|XML Generato"
 | 
			
		||||
  FLAGS "Z"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
@ -90,7 +90,7 @@ END
 | 
			
		||||
 | 
			
		||||
LIST F_TIPO_SDI 40
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 14 "Tipo documento SDI "
 | 
			
		||||
  PROMPT 1 13 "@bDocumento SDI da generare"
 | 
			
		||||
  ITEM "TD16|TD16 Integraz. fatt. rev.ch. interno"
 | 
			
		||||
  ITEM "TD17|TD17 Integ./autof. acq. servizi estero"
 | 
			
		||||
  ITEM "TD18|TD18 Integ. acq. beni intracomunitari"
 | 
			
		||||
@ -98,10 +98,16 @@ BEGIN
 | 
			
		||||
  ITEM "TD20|TD20 Autofattura"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
	BOOLEAN F_DIAGN
 | 
			
		||||
	BEGIN
 | 
			
		||||
		PROMPT 1 15 "Esporta in stato diagnosticato"
 | 
			
		||||
	END
 | 
			
		||||
GROUPBOX DLG_NULL 80 4
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 14 "@bConfigurazione"
 | 
			
		||||
  GROUP 1
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_DIAGN
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 2 15 "Esporta in stato diagnosticato"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING DLG_PROFILE 50
 | 
			
		||||
BEGIN
 | 
			
		||||
 | 
			
		||||
@ -694,9 +694,9 @@ protected:
 | 
			
		||||
	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);
 | 
			
		||||
	bool add_riepilogo_iva(const TMovimento_contabile & mov, int n_riga);
 | 
			
		||||
 | 
			
		||||
	const char * stato_paf() const { return _definitivo && !get_no_export_pronto() ? "P" : "D"; }
 | 
			
		||||
	const char * stato_paf() const { return _definitivo ? "P" : "D"; }
 | 
			
		||||
	
 | 
			
		||||
	const TFirm& TReg_fp::get_firm(){return prefix().firm();}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -3043,13 +3043,14 @@ bool TReg_fp::initialize(const TMovimento_contabile& mov)
 | 
			
		||||
	_log.log(-1, _bfatt);
 | 
			
		||||
	// Controllo se il documento  almeno in stato di stampa
 | 
			
		||||
	_is_pa = mov.clifo().get_int("ALLEG") == 7;
 | 
			
		||||
	_pec = _ditta.pec();
 | 
			
		||||
	
 | 
			
		||||
	if (_ditta.coddest().empty())
 | 
			
		||||
	if (_ditta.coddest().empty() && _pec.empty())
 | 
			
		||||
		_coddest = "0000000";
 | 
			
		||||
	else
 | 
			
		||||
		_coddest = _ditta.coddest();
 | 
			
		||||
 | 
			
		||||
	_pec = _ditta.pec();
 | 
			
		||||
 | 
			
		||||
	_enapec = _coddest == "0000000" && _pec.full();
 | 
			
		||||
	_privato = _coddest.len() != 6;
 | 
			
		||||
	// Azzero indici
 | 
			
		||||
@ -3148,7 +3149,7 @@ bool TReg_fp::add_row_alleg(TFilename& file, long& nprogr, TPaf_record& paf)
 | 
			
		||||
	return ok;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TReg_fp::add_riepilogo_iva(const TMovimento_contabile mov, int n_riga)
 | 
			
		||||
bool TReg_fp::add_riepilogo_iva(const TMovimento_contabile & mov, int n_riga)
 | 
			
		||||
{
 | 
			
		||||
	TPaf_record& paf2200f = _paf_container.get_paf("PAF2200F");
 | 
			
		||||
	const TRectype& rec_iva = mov.iva()[n_riga];
 | 
			
		||||
@ -3190,6 +3191,9 @@ bool TReg_fp::export_paf0100f()
 | 
			
		||||
	tel << get_firm().get(NDT_PTEL) << get_firm().get(NDT_TEL);
 | 
			
		||||
	paf0100f.set("P1_TELEFONO", tel);
 | 
			
		||||
	paf0100f.set("P1_MAIL", get_firm().get(NDT_MAIL));
 | 
			
		||||
 | 
			
		||||
	const char* c = stato_paf();
 | 
			
		||||
 | 
			
		||||
	paf0100f.set("P1_GESTIONE", stato_paf());
 | 
			
		||||
	paf0100f.set("P1_ERRINT", "");
 | 
			
		||||
	// </DatiTrassmissione>
 | 
			
		||||
@ -3220,17 +3224,17 @@ bool TReg_fp::reg_to_paf(const TMovimento_contabile& mov)
 | 
			
		||||
	// <CedentePrestatore>
 | 
			
		||||
 | 
			
		||||
	TPaf_record& paf0200f = _paf_container.get_paf("PAF0200F");
 | 
			
		||||
	const TAnagrafica & fornitore = mov.clifo().anagrafica();
 | 
			
		||||
	const TAnagrafica& fornitore = mov.clifo().anagrafica();
 | 
			
		||||
 | 
			
		||||
	if (!paf0200f.is_full())
 | 
			
		||||
	{
 | 
			
		||||
		if (fornitore.partita_IVA().full())
 | 
			
		||||
		{
 | 
			
		||||
			paf0200f.set("P2_FISCIVAPAESE", fornitore.stato_partita_IVA()); 
 | 
			
		||||
			paf0200f.set("P2_FISCIVACOD", fornitore.partita_IVA());	
 | 
			
		||||
			paf0200f.set("P2_FISCIVAPAESE", fornitore.stato_partita_IVA());
 | 
			
		||||
			paf0200f.set("P2_FISCIVACOD", fornitore.partita_IVA());
 | 
			
		||||
		}
 | 
			
		||||
		paf0200f.set("P2_CODFISCALE", fornitore.codice_fiscale());  //
 | 
			
		||||
		
 | 
			
		||||
 | 
			
		||||
		const bool df = _ditta.fisica();
 | 
			
		||||
 | 
			
		||||
		if (_ditta.fisica())
 | 
			
		||||
@ -3266,85 +3270,85 @@ bool TReg_fp::reg_to_paf(const TMovimento_contabile& mov)
 | 
			
		||||
			paf0200f.set("P2_SEDEPROV", fornitore.provincia_residenza()); //
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	 
 | 
			
		||||
		ok &= insert(paf0200f);
 | 
			
		||||
			
 | 
			
		||||
		// </CedentePrestatore>
 | 
			
		||||
		// </CedentePrestatore>
 | 
			
		||||
		// <CessionarioCommittente>
 | 
			
		||||
		TPaf_record& paf0400f = _paf_container.get_paf("PAF0400F");
 | 
			
		||||
 | 
			
		||||
		TString stato = _ditta.stato_partita_IVA();
 | 
			
		||||
		TTable tab_codiso("%SCE");
 | 
			
		||||
		tab_codiso.tab();
 | 
			
		||||
		tab_codiso.put("CODTAB", stato); tab_codiso.read();
 | 
			
		||||
		TString piva = _ditta.partita_IVA();
 | 
			
		||||
		TString fisc = _ditta.codice_fiscale();
 | 
			
		||||
	ok &= insert(paf0200f);
 | 
			
		||||
 | 
			
		||||
		if (!stato.full())
 | 
			
		||||
			stato = "IT";
 | 
			
		||||
		if (tab_codiso.get_bool("B0") || stato == "IT") // Cliente EU
 | 
			
		||||
	// </CedentePrestatore>
 | 
			
		||||
	// </CedentePrestatore>
 | 
			
		||||
	// <CessionarioCommittente>
 | 
			
		||||
	TPaf_record& paf0400f = _paf_container.get_paf("PAF0400F");
 | 
			
		||||
 | 
			
		||||
	TString stato = _ditta.stato_partita_IVA();
 | 
			
		||||
	TTable tab_codiso("%SCE");
 | 
			
		||||
	tab_codiso.tab();
 | 
			
		||||
	tab_codiso.put("CODTAB", stato); tab_codiso.read();
 | 
			
		||||
	TString piva = _ditta.partita_IVA();
 | 
			
		||||
	TString fisc = _ditta.codice_fiscale();
 | 
			
		||||
 | 
			
		||||
	if (!stato.full())
 | 
			
		||||
		stato = "IT";
 | 
			
		||||
	if (tab_codiso.get_bool("B0") || stato == "IT") // Cliente EU
 | 
			
		||||
	{
 | 
			
		||||
		if (piva.full())
 | 
			
		||||
		{
 | 
			
		||||
			if (piva.full())
 | 
			
		||||
			if (piva.len() == 11 && (piva[0] == '8' || piva[0] == '9'))
 | 
			
		||||
			{
 | 
			
		||||
				if (piva.len() == 11 && (piva[0] == '8' || piva[0] == '9'))
 | 
			
		||||
				{
 | 
			
		||||
					fisc = piva;
 | 
			
		||||
					piva.cut(0);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			else if (fisc.full() && fisc.len() == 11 && (fisc[0] == '8' || fisc[0] == '9'))
 | 
			
		||||
				fisc = piva;
 | 
			
		||||
				piva.cut(0);
 | 
			
		||||
 | 
			
		||||
			if (piva.full())
 | 
			
		||||
			{
 | 
			
		||||
				paf0400f.set("P4_FISCIVAPAESE", stato); //
 | 
			
		||||
				paf0400f.set("P4_FISCIVACOD", piva); //
 | 
			
		||||
			}
 | 
			
		||||
			if (fisc.full())
 | 
			
		||||
				paf0400f.set("P4_CODFISC", fisc); //
 | 
			
		||||
		}
 | 
			
		||||
		else // Cliente EXTRA-EU sempre nel campo della partita iva sui paf
 | 
			
		||||
		{
 | 
			
		||||
			paf0400f.set("P4_FISCIVAPAESE", stato);
 | 
			
		||||
			if (fisc.full())  // Guardo prima l'id fiscale, perche' e' qui che dovrebbero stare in Campo
 | 
			
		||||
				paf0400f.set("P4_FISCIVACOD", fisc);
 | 
			
		||||
			else if (piva.full()) // Altrimenti dovrebbe essere nella partita iva
 | 
			
		||||
				paf0400f.set("P4_FISCIVACOD", piva);
 | 
			
		||||
		}
 | 
			
		||||
		else if (fisc.full() && fisc.len() == 11 && (fisc[0] == '8' || fisc[0] == '9'))
 | 
			
		||||
			piva.cut(0);
 | 
			
		||||
 | 
			
		||||
		if (_ditta.fisica() && _ditta.nome().full())
 | 
			
		||||
		if (piva.full())
 | 
			
		||||
		{
 | 
			
		||||
			paf0400f.set("P4_ANANOME", _ditta.nome()); //
 | 
			
		||||
			paf0400f.set("P4_ANACOGNOME", _ditta.cognome()); //
 | 
			
		||||
			paf0400f.set("P4_FISCIVAPAESE", stato); //
 | 
			
		||||
			paf0400f.set("P4_FISCIVACOD", piva); //
 | 
			
		||||
		}
 | 
			
		||||
		else
 | 
			
		||||
		{
 | 
			
		||||
			paf0400f.set("P4_ANADENOM", _ditta.ragione_sociale()); //
 | 
			
		||||
		}
 | 
			
		||||
		// DatiSede
 | 
			
		||||
		paf0400f.set("P4_SEDEIND", _ditta.via_residenza());
 | 
			
		||||
		paf0400f.set("P4_SEDENRCIVICO", _ditta.civico_residenza().left(8));
 | 
			
		||||
		paf0400f.set("P4_SEDECAP", _ditta.CAP_residenza());
 | 
			
		||||
		paf0400f.set("P4_SEDECOMUNE", _ditta.comune_residenza());
 | 
			
		||||
		paf0400f.set("P4_SEDEPROV", _ditta.provincia_residenza());
 | 
			
		||||
		paf0400f.set("P4_SEDENAZ", _ditta.stato_residenza_ISO());
 | 
			
		||||
		if (fisc.full())
 | 
			
		||||
			paf0400f.set("P4_CODFISC", fisc); //
 | 
			
		||||
	}
 | 
			
		||||
	else // Cliente EXTRA-EU sempre nel campo della partita iva sui paf
 | 
			
		||||
	{
 | 
			
		||||
		paf0400f.set("P4_FISCIVAPAESE", stato);
 | 
			
		||||
		if (fisc.full())  // Guardo prima l'id fiscale, perche' e' qui che dovrebbero stare in Campo
 | 
			
		||||
			paf0400f.set("P4_FISCIVACOD", fisc);
 | 
			
		||||
		else if (piva.full()) // Altrimenti dovrebbe essere nella partita iva
 | 
			
		||||
			paf0400f.set("P4_FISCIVACOD", piva);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
		// Titolo onorifico!
 | 
			
		||||
		const TString& titolo = (mov.clifo().vendite().get(CFV_TITOLO));
 | 
			
		||||
	if (_ditta.fisica() && _ditta.nome().full())
 | 
			
		||||
	{
 | 
			
		||||
		paf0400f.set("P4_ANANOME", _ditta.nome()); //
 | 
			
		||||
		paf0400f.set("P4_ANACOGNOME", _ditta.cognome()); //
 | 
			
		||||
	}
 | 
			
		||||
	else
 | 
			
		||||
	{
 | 
			
		||||
		paf0400f.set("P4_ANADENOM", _ditta.ragione_sociale()); //
 | 
			
		||||
	}
 | 
			
		||||
	// DatiSede
 | 
			
		||||
	paf0400f.set("P4_SEDEIND", _ditta.via_residenza());
 | 
			
		||||
	paf0400f.set("P4_SEDENRCIVICO", _ditta.civico_residenza().left(8));
 | 
			
		||||
	paf0400f.set("P4_SEDECAP", _ditta.CAP_residenza());
 | 
			
		||||
	paf0400f.set("P4_SEDECOMUNE", _ditta.comune_residenza());
 | 
			
		||||
	paf0400f.set("P4_SEDEPROV", _ditta.provincia_residenza());
 | 
			
		||||
	paf0400f.set("P4_SEDENAZ", _ditta.stato_residenza_ISO());
 | 
			
		||||
 | 
			
		||||
		if (titolo.full())
 | 
			
		||||
			paf0400f.set("P4_ANATITOLO", cache().get("TIT", titolo, "S0"));
 | 
			
		||||
		paf0400f.set("P4_GESTIONE", stato_paf());
 | 
			
		||||
		ok &= insert(paf0400f);
 | 
			
		||||
		// </CessionarioCommittente>
 | 
			
		||||
	// Titolo onorifico!
 | 
			
		||||
	const TString& titolo = (mov.clifo().vendite().get(CFV_TITOLO));
 | 
			
		||||
 | 
			
		||||
	if (titolo.full())
 | 
			
		||||
		paf0400f.set("P4_ANATITOLO", cache().get("TIT", titolo, "S0"));
 | 
			
		||||
	paf0400f.set("P4_GESTIONE", stato_paf());
 | 
			
		||||
	ok &= insert(paf0400f);
 | 
			
		||||
	// </CessionarioCommittente>
 | 
			
		||||
	TPaf_record& paf0700f = _paf_container.get_paf("PAF0700F");
 | 
			
		||||
	paf0700f.set("P7_TIPODOC", _tipo_doc_sdi);
 | 
			
		||||
	paf0700f.set("P7_DIVISA", "EUR"); // Fisso su euro in quanto effettuiamo il cambio
 | 
			
		||||
	paf0700f.set("P7_DATA", mov.get_date(MOV_DATAREG)); // sembra sempre la data di registrazione visto che è na data di ricezione
 | 
			
		||||
	TString numdoc = mov.get(MOV_NUMDOCEXT);
 | 
			
		||||
 | 
			
		||||
	if (numdoc.blank()) 
 | 
			
		||||
	if (numdoc.blank())
 | 
			
		||||
		numdoc = mov.get(MOV_NUMDOC);
 | 
			
		||||
	else
 | 
			
		||||
	{
 | 
			
		||||
@ -3352,7 +3356,7 @@ bool TReg_fp::reg_to_paf(const TMovimento_contabile& mov)
 | 
			
		||||
			numdoc = numdoc.mid(30);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	paf0700f.set("P7_NUMERO", numdoc); 
 | 
			
		||||
	paf0700f.set("P7_NUMERO", numdoc);
 | 
			
		||||
	paf0700f.set("P7_GESTIONE", stato_paf());
 | 
			
		||||
 | 
			
		||||
	TPaf_record& paf2700f = _paf_container.get_paf("PAF2700F");
 | 
			
		||||
@ -3378,18 +3382,18 @@ bool TReg_fp::reg_to_paf(const TMovimento_contabile& mov)
 | 
			
		||||
 | 
			
		||||
		if (nregcoll > 0L)
 | 
			
		||||
		{
 | 
			
		||||
			const TRectype & movcoll = cache().get(LF_MOV, nregcoll);
 | 
			
		||||
			const TRectype& movcoll = cache().get(LF_MOV, nregcoll);
 | 
			
		||||
 | 
			
		||||
			idsdi = movcoll.get(MOV_IDDOCSDI);
 | 
			
		||||
			datasdi = movcoll.get_date(MOV_DATADOCSDI);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	if (idsdi.blank()) 
 | 
			
		||||
	if (idsdi.blank())
 | 
			
		||||
	{
 | 
			
		||||
		idsdi = mov.get(MOV_NUMDOC);
 | 
			
		||||
		datasdi = mov.get_date(MOV_DATADOC);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	paf1400f.set("PD_IDDOC", idsdi);
 | 
			
		||||
	paf1400f.set("PD_DATADOC", datasdi);
 | 
			
		||||
	ok &= insert(paf1400f);
 | 
			
		||||
@ -3414,9 +3418,9 @@ bool TReg_fp::reg_to_paf(const TMovimento_contabile& mov)
 | 
			
		||||
		reset(paf1800f);
 | 
			
		||||
		paf1800f.set("PI_NUMEROLINEA", (long)i);
 | 
			
		||||
 | 
			
		||||
			//PI_TIPOCESSPREST CHAR(2) NOT NULL DEFAULT '', ci va?
 | 
			
		||||
			//PI_DESCRIZIONE CHAR(100) NOT NULL DEFAULT '',
 | 
			
		||||
			//PI_RIFAMMINISTR CHAR(20) NOT NULL DEFAULT '',
 | 
			
		||||
		//PI_TIPOCESSPREST CHAR(2) NOT NULL DEFAULT '', ci va?
 | 
			
		||||
		//PI_DESCRIZIONE CHAR(100) NOT NULL DEFAULT '',
 | 
			
		||||
		//PI_RIFAMMINISTR CHAR(20) NOT NULL DEFAULT '',
 | 
			
		||||
 | 
			
		||||
		paf1800f.set("PI_QUANTITA", 1l);
 | 
			
		||||
		paf1800f.set("PI_PREZZOUNIT", rec_iva.get(RMI_IMPONIBILE));
 | 
			
		||||
@ -3430,8 +3434,6 @@ bool TReg_fp::reg_to_paf(const TMovimento_contabile& mov)
 | 
			
		||||
 | 
			
		||||
		ok &= insert(paf1800f);
 | 
			
		||||
		add_riepilogo_iva(mov, i);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		reset(paf3000f);
 | 
			
		||||
		paf3000f.set("PT_RIFNUMLINEA", (long)i);
 | 
			
		||||
		paf3000f.set("PT_COMMENTO", "");//TODO COSA DOBBIAMO METTERE NELLA DESCRIZIONE IVA CHE NON C'è
 | 
			
		||||
@ -3440,33 +3442,31 @@ bool TReg_fp::reg_to_paf(const TMovimento_contabile& mov)
 | 
			
		||||
		if (ok) ok &= insert(paf3000f);
 | 
			
		||||
 | 
			
		||||
		if (ok) ok &= insert(paf0700f);
 | 
			
		||||
 | 
			
		||||
		// Tabella di non invio XML
 | 
			
		||||
		TPaf_record& pafw300f = _paf_container.get_paf("PAFW300F");
 | 
			
		||||
		pafw300f.set("PW_TIPODOC", ""); //TODO PASSARE IL TIPO DOCUMENTO DELLA MASK NEL COSTRUTTORE
 | 
			
		||||
		pafw300f.set("PW_TIPONUM", ""); //TODO COSA CI METTIAMO NEL TIPO NUM
 | 
			
		||||
		pafw300f.set("PW_NUMERO", mov.get(MOV_NUMDOC));
 | 
			
		||||
		pafw300f.set("PW_DATA", mov.get_date(MOV_DATADOC));
 | 
			
		||||
		if (!_definitivo) 
 | 
			
		||||
			pafw300f.set("PW_CODSDI", "**********");
 | 
			
		||||
		pafw300f.set("PW_CDEST", _coddest);
 | 
			
		||||
		pafw300f.set("PW_RAGSOC", fornitore.ragione_sociale().left(35));
 | 
			
		||||
		pafw300f.set("PW_PAESE", fornitore.stato_residenza_ISO());
 | 
			
		||||
		pafw300f.set("PW_CODICE", fornitore.codice_fiscale_estero());
 | 
			
		||||
		pafw300f.set("PW_CFISCA", fornitore.codice_fiscale());
 | 
			
		||||
		pafw300f.set("PW_DENOM", fornitore.ragione_sociale());
 | 
			
		||||
		if (fornitore.fisica() && fornitore.nome().full())
 | 
			
		||||
		{
 | 
			
		||||
			pafw300f.set("PW_NOME", fornitore.nome());
 | 
			
		||||
			pafw300f.set("PW_COGN", fornitore.cognome());
 | 
			
		||||
		}
 | 
			
		||||
		else
 | 
			
		||||
			pafw300f.set("PW_RAGSOC", fornitore.ragione_sociale().left(35));
 | 
			
		||||
		pafw300f.set("PW_IMPO", mov.get_real(MOV_TOTDOC)); //TODO controllare ?????
 | 
			
		||||
		ok &= insert(pafw300f);
 | 
			
		||||
		return _to_commit = (ok && save_paf());
 | 
			
		||||
	}
 | 
			
		||||
	return ok;
 | 
			
		||||
	// Tabella di non invio XML
 | 
			
		||||
	TPaf_record& pafw300f = _paf_container.get_paf("PAFW300F");
 | 
			
		||||
	pafw300f.set("PW_TIPODOC", ""); //TODO PASSARE IL TIPO DOCUMENTO DELLA MASK NEL COSTRUTTORE
 | 
			
		||||
	pafw300f.set("PW_TIPONUM", ""); //TODO COSA CI METTIAMO NEL TIPO NUM
 | 
			
		||||
	pafw300f.set("PW_NUMERO", mov.get(MOV_NUMDOC));
 | 
			
		||||
	pafw300f.set("PW_DATA", mov.get_date(MOV_DATADOC));
 | 
			
		||||
	if (!_definitivo) 
 | 
			
		||||
		pafw300f.set("PW_CODSDI", "**********");
 | 
			
		||||
	pafw300f.set("PW_CDEST", _coddest);
 | 
			
		||||
	pafw300f.set("PW_RAGSOC", fornitore.ragione_sociale().left(35));
 | 
			
		||||
	pafw300f.set("PW_PAESE", fornitore.stato_residenza_ISO());
 | 
			
		||||
	pafw300f.set("PW_CODICE", fornitore.codice_fiscale_estero());
 | 
			
		||||
	pafw300f.set("PW_CFISCA", fornitore.codice_fiscale());
 | 
			
		||||
	pafw300f.set("PW_DENOM", fornitore.ragione_sociale());
 | 
			
		||||
	if (fornitore.fisica() && fornitore.nome().full())
 | 
			
		||||
	{
 | 
			
		||||
		pafw300f.set("PW_NOME", fornitore.nome());
 | 
			
		||||
		pafw300f.set("PW_COGN", fornitore.cognome());
 | 
			
		||||
	}
 | 
			
		||||
	else
 | 
			
		||||
		pafw300f.set("PW_RAGSOC", fornitore.ragione_sociale().left(35));
 | 
			
		||||
	pafw300f.set("PW_IMPO", mov.get_real(MOV_TOTDOC)); //TODO controllare ?????
 | 
			
		||||
	ok &= insert(pafw300f);
 | 
			
		||||
	return _to_commit = (ok && save_paf());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TReg_fp::reg_to_paf(long n_mov)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user