Patch level : 12.0 692
Files correlati : fp Commento : - Sistemato errore che lanciava fetch dopo un insert nel caso di valori con dentro scritta "SELECT" - Disabilitata scrittura sconto di testata in XML in quanto su Campo influenza solo le righe merci - Aggiunto totale fattura nell'XML - Tolta dicitura plafond per note credito - Aggiunte righe di sconto in testata per ogni aliquota nell'XML per far quadrare i totali -
This commit is contained in:
parent
2a6a8654c9
commit
f66f7cc44c
@ -424,7 +424,7 @@ TString & TPaf_record::insert_string()
|
|||||||
// Aggiunge un record al db
|
// Aggiunge un record al db
|
||||||
bool TPaf_record::insert()
|
bool TPaf_record::insert()
|
||||||
{
|
{
|
||||||
return fp_db().sq_set_exec(insert_string());
|
return fp_db().sq_set_exec(insert_string(), false);
|
||||||
}
|
}
|
||||||
// Crea un record della tabella data ed imposta i nomi dei campi chiave
|
// Crea un record della tabella data ed imposta i nomi dei campi chiave
|
||||||
TPaf_record::TPaf_record(const char* table) : _table(table), _key(15, ',')
|
TPaf_record::TPaf_record(const char* table) : _table(table), _key(15, ',')
|
||||||
@ -724,6 +724,7 @@ bool TDoc_fp::show_log()
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const int TDoc_fp::commit()
|
const int TDoc_fp::commit()
|
||||||
{
|
{
|
||||||
int r = 0;
|
int r = 0;
|
||||||
@ -743,21 +744,25 @@ const int TDoc_fp::commit()
|
|||||||
_to_commit = false;
|
_to_commit = false;
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
const int TDoc_fp::force_commit()
|
const int TDoc_fp::force_commit()
|
||||||
{
|
{
|
||||||
_to_commit = true;
|
_to_commit = true;
|
||||||
return commit();
|
return commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* TDoc_fp::natura(const TString& codiva) const
|
const char* TDoc_fp::natura(const TString& codiva) const
|
||||||
{
|
{
|
||||||
return cache().get("%IVA", codiva, "S12");
|
return cache().get("%IVA", codiva, "S12");
|
||||||
}
|
}
|
||||||
|
|
||||||
void TDoc_fp::set_IVA(const TString& codiva, TPaf_record& paf)
|
void TDoc_fp::set_IVA(const TString& codiva, TPaf_record& paf)
|
||||||
{
|
{
|
||||||
// É necessario il cast a real?
|
// É necessario il cast a real?
|
||||||
paf.set("PI_ALIQUOTAIVA", static_cast<real>(cache().get("%IVA", codiva, "R0")));
|
paf.set("PI_ALIQUOTAIVA", static_cast<real>(cache().get("%IVA", codiva, "R0")));
|
||||||
paf.set("PI_NATURA", cache().get("%IVA", codiva, "S12"));
|
paf.set("PI_NATURA", cache().get("%IVA", codiva, "S12"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void TDoc_fp::set_IVA(const TRiga_documento& rdoc, TPaf_record& paf)
|
void TDoc_fp::set_IVA(const TRiga_documento& rdoc, TPaf_record& paf)
|
||||||
{
|
{
|
||||||
set_IVA(rdoc.get(RDOC_CODIVA), paf);
|
set_IVA(rdoc.get(RDOC_CODIVA), paf);
|
||||||
@ -1024,10 +1029,15 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
// <DatiBollo>
|
// <DatiBollo>
|
||||||
paf0700f.set("P7_IMPORTOBOLLO", converti_prezzo(doc.get_real("BOLLI")));
|
paf0700f.set("P7_IMPORTOBOLLO", converti_prezzo(doc.get_real("BOLLI")));
|
||||||
// </DatiBollo>
|
// </DatiBollo>
|
||||||
|
|
||||||
// <DatiCassaPrevidenziale>
|
// <DatiCassaPrevidenziale>
|
||||||
// Non la mettiamo!
|
// Non la mettiamo!
|
||||||
// </DatiCassaPrevidenziale>
|
// </DatiCassaPrevidenziale>
|
||||||
|
|
||||||
// Non inserisco più adesso il paf0700f ma lo faccio alla fine (per inserire le ritenute)
|
// Non inserisco più adesso il paf0700f ma lo faccio alla fine (per inserire le ritenute)
|
||||||
|
/*
|
||||||
|
* Lo sconto in testata è stato disabilitato in quanto su Campo influenza solo le righe merci mentre dovrebbe modificare tutte le righe
|
||||||
|
*
|
||||||
// <ScontoMaggiorazione>
|
// <ScontoMaggiorazione>
|
||||||
TPaf_record paf0900f("PAF0900F");
|
TPaf_record paf0900f("PAF0900F");
|
||||||
paf0900f.set("P9_KEYHEADERFATT", _hfatt);
|
paf0900f.set("P9_KEYHEADERFATT", _hfatt);
|
||||||
@ -1059,6 +1069,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
// </ScontoMaggiorazione>
|
// </ScontoMaggiorazione>
|
||||||
// <DatiGenerali>
|
// <DatiGenerali>
|
||||||
TPaf_record paf2700f("PAF2700F");
|
TPaf_record paf2700f("PAF2700F");
|
||||||
@ -1067,9 +1078,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
remove(paf2700f);
|
remove(paf2700f);
|
||||||
// Disabilitata la scrittura del totale del documento, questo causa problemi se è presente uno sconto in testata e l'addebito del bollo.
|
// Disabilitata la scrittura del totale del documento, questo causa problemi se è presente uno sconto in testata e l'addebito del bollo.
|
||||||
// Campo calcola prima il totale, poi lo sconta e ci applica il bollo mentre lo SDI sconta a bollo già applicato.
|
// Campo calcola prima il totale, poi lo sconta e ci applica il bollo mentre lo SDI sconta a bollo già applicato.
|
||||||
#ifndef DBG
|
|
||||||
if(!((doc.get_bool("ADDBOLLI") && doc.get_real("BOLLI") > ZERO) && doc.get(DOC_SCONTOPERC)))
|
|
||||||
#endif
|
|
||||||
paf2700f.set("PQ_IMPTOTDOC", doc.totale_doc());
|
paf2700f.set("PQ_IMPTOTDOC", doc.totale_doc());
|
||||||
const TRectype& cont_conv_off = cco(doc);
|
const TRectype& cont_conv_off = cco(doc);
|
||||||
TString causale = cont_conv_off.get("S1");
|
TString causale = cont_conv_off.get("S1");
|
||||||
@ -1431,7 +1440,8 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// <ScontoMaggiorazione>
|
// <ScontoMaggiorazione>
|
||||||
sconto_expr = rdoc->get(RDOC_SCONTO);
|
TString80 sconto_expr = rdoc->get(RDOC_SCONTO);
|
||||||
|
TToken_string sconti;
|
||||||
if (parse_sconto(sconto_expr, sconti))
|
if (parse_sconto(sconto_expr, sconti))
|
||||||
{
|
{
|
||||||
long nlin_sconto = 0;
|
long nlin_sconto = 0;
|
||||||
@ -1457,6 +1467,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// </ScontoMaggiorazione>
|
// </ScontoMaggiorazione>
|
||||||
|
|
||||||
paf1800f.set("PI_GESTIONE", "D");
|
paf1800f.set("PI_GESTIONE", "D");
|
||||||
@ -1464,7 +1475,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
}
|
}
|
||||||
// Controllo plafond
|
// Controllo plafond
|
||||||
// Riga esenzione?
|
// Riga esenzione?
|
||||||
if (doc.is_fattura() || doc.is_nota_credito())
|
if (doc.is_fattura())
|
||||||
{
|
{
|
||||||
doc.set_riga_esenzione();
|
doc.set_riga_esenzione();
|
||||||
if(doc.ha_riga_esenzione())
|
if(doc.ha_riga_esenzione())
|
||||||
@ -1543,6 +1554,39 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
set_IVA(codivadefault, paf1800f);
|
set_IVA(codivadefault, paf1800f);
|
||||||
ok &= insert(paf1800f) && insert(paf3000f);
|
ok &= insert(paf1800f) && insert(paf3000f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Riga sconto di testata
|
||||||
|
// Se è presente uno sconto in testata devo sottrarlo come riga sconto o lo SDI urla
|
||||||
|
if(doc.get(DOC_SCONTOPERC).full())
|
||||||
|
{
|
||||||
|
TAssoc_array& tiva = doc.tabella_iva(false);
|
||||||
|
FOR_EACH_ASSOC_OBJECT(tiva, obj, key, itm)
|
||||||
|
{
|
||||||
|
const TRiepilogo_iva& riva = *dynamic_cast<const TRiepilogo_iva*>(itm);
|
||||||
|
|
||||||
|
paf1800f.reset();
|
||||||
|
paf1800f.set("PI_KEYHEADERFATT", _hfatt);
|
||||||
|
paf1800f.set("PI_KEYBODYFATT", _bfatt);
|
||||||
|
paf1800f.set("PI_NUMEROLINEA", ++riga);
|
||||||
|
paf3000f.reset();
|
||||||
|
paf3000f.set("PT_KEYHEADERFATT", _hfatt);
|
||||||
|
paf3000f.set("PT_KEYBODYFATT", _bfatt);
|
||||||
|
paf3000f.set("PT_RIFNUMLINEA", riga);
|
||||||
|
paf1800f.set("PI_TIPOCESSPREST", "AB");
|
||||||
|
TString msg = "Riga sconto merci in testata ";
|
||||||
|
if(riva.cod_iva().percentuale() > ZERO)
|
||||||
|
msg << riva.cod_iva().percentuale() << "%";
|
||||||
|
else
|
||||||
|
msg << riva.cod_iva().codice();
|
||||||
|
paf3000f.set("PT_COMMENTO", msg);
|
||||||
|
paf1800f.set("PI_QUANTITA", UNO);
|
||||||
|
paf1800f.set("PI_PREZZOUNIT", -abs(riva.sconto_perc()));
|
||||||
|
paf1800f.set("PI_PRZTOTALE", -abs(riva.sconto_perc()));
|
||||||
|
set_IVA(riva.cod_iva().codice(), paf1800f);
|
||||||
|
ok &= insert(paf1800f) && insert(paf3000f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// </DatiBeniServizi>
|
// </DatiBeniServizi>
|
||||||
// <DatiDDT>
|
// <DatiDDT>
|
||||||
// Metto qua i dati DDT per capire se la fattura è accompagnatoria o deriva da bolla
|
// Metto qua i dati DDT per capire se la fattura è accompagnatoria o deriva da bolla
|
||||||
|
Loading…
x
Reference in New Issue
Block a user