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
|
||||
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
|
||||
TPaf_record::TPaf_record(const char* table) : _table(table), _key(15, ',')
|
||||
@ -724,6 +724,7 @@ bool TDoc_fp::show_log()
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
const int TDoc_fp::commit()
|
||||
{
|
||||
int r = 0;
|
||||
@ -743,21 +744,25 @@ const int TDoc_fp::commit()
|
||||
_to_commit = false;
|
||||
return r;
|
||||
}
|
||||
|
||||
const int TDoc_fp::force_commit()
|
||||
{
|
||||
_to_commit = true;
|
||||
return commit();
|
||||
}
|
||||
|
||||
const char* TDoc_fp::natura(const TString& codiva) const
|
||||
{
|
||||
return cache().get("%IVA", codiva, "S12");
|
||||
}
|
||||
|
||||
void TDoc_fp::set_IVA(const TString& codiva, TPaf_record& paf)
|
||||
{
|
||||
// É necessario il cast a real?
|
||||
paf.set("PI_ALIQUOTAIVA", static_cast<real>(cache().get("%IVA", codiva, "R0")));
|
||||
paf.set("PI_NATURA", cache().get("%IVA", codiva, "S12"));
|
||||
}
|
||||
|
||||
void TDoc_fp::set_IVA(const TRiga_documento& rdoc, TPaf_record& paf)
|
||||
{
|
||||
set_IVA(rdoc.get(RDOC_CODIVA), paf);
|
||||
@ -1024,10 +1029,15 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
||||
// <DatiBollo>
|
||||
paf0700f.set("P7_IMPORTOBOLLO", converti_prezzo(doc.get_real("BOLLI")));
|
||||
// </DatiBollo>
|
||||
|
||||
// <DatiCassaPrevidenziale>
|
||||
// Non la mettiamo!
|
||||
// </DatiCassaPrevidenziale>
|
||||
|
||||
// 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>
|
||||
TPaf_record paf0900f("PAF0900F");
|
||||
paf0900f.set("P9_KEYHEADERFATT", _hfatt);
|
||||
@ -1059,6 +1069,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
// </ScontoMaggiorazione>
|
||||
// <DatiGenerali>
|
||||
TPaf_record paf2700f("PAF2700F");
|
||||
@ -1067,9 +1078,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
||||
remove(paf2700f);
|
||||
// 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.
|
||||
#ifndef DBG
|
||||
if(!((doc.get_bool("ADDBOLLI") && doc.get_real("BOLLI") > ZERO) && doc.get(DOC_SCONTOPERC)))
|
||||
#endif
|
||||
|
||||
paf2700f.set("PQ_IMPTOTDOC", doc.totale_doc());
|
||||
const TRectype& cont_conv_off = cco(doc);
|
||||
TString causale = cont_conv_off.get("S1");
|
||||
@ -1431,7 +1440,8 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
||||
}
|
||||
|
||||
// <ScontoMaggiorazione>
|
||||
sconto_expr = rdoc->get(RDOC_SCONTO);
|
||||
TString80 sconto_expr = rdoc->get(RDOC_SCONTO);
|
||||
TToken_string sconti;
|
||||
if (parse_sconto(sconto_expr, sconti))
|
||||
{
|
||||
long nlin_sconto = 0;
|
||||
@ -1457,6 +1467,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// </ScontoMaggiorazione>
|
||||
|
||||
paf1800f.set("PI_GESTIONE", "D");
|
||||
@ -1464,7 +1475,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
||||
}
|
||||
// Controllo plafond
|
||||
// Riga esenzione?
|
||||
if (doc.is_fattura() || doc.is_nota_credito())
|
||||
if (doc.is_fattura())
|
||||
{
|
||||
doc.set_riga_esenzione();
|
||||
if(doc.ha_riga_esenzione())
|
||||
@ -1543,6 +1554,39 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
||||
set_IVA(codivadefault, paf1800f);
|
||||
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>
|
||||
// <DatiDDT>
|
||||
// Metto qua i dati DDT per capire se la fattura è accompagnatoria o deriva da bolla
|
||||
|
Loading…
x
Reference in New Issue
Block a user