Patch level : 12.0 1032
Files correlati : ve0.exe Commento : Modificato il metodo di ricerca dei riferimenti di bolla per le fatture delle lavanderie con i riferimenti in testa Interno Bisogna controllare i casi normali
This commit is contained in:
parent
245289fa14
commit
cce0c55a8c
@ -23,22 +23,6 @@
|
|||||||
bool set_connection(SSimple_query& s)
|
bool set_connection(SSimple_query& s)
|
||||||
{
|
{
|
||||||
bool ok = true;
|
bool ok = true;
|
||||||
#ifdef DBG
|
|
||||||
TString ip = fp_settings().get_db_indirizzo();
|
|
||||||
if (ip.upper() != "TESTCAMPO2012")
|
|
||||||
{
|
|
||||||
if (s.sq_connect("TESTCAMPO2012@campo_fp",
|
|
||||||
"fp",
|
|
||||||
"fp",
|
|
||||||
TSDB_MSSQL) != NOERR)
|
|
||||||
{
|
|
||||||
warning_box("Impossibile connettersi al DB esterno");
|
|
||||||
ok = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
#endif
|
|
||||||
if (s.sq_connect(
|
if (s.sq_connect(
|
||||||
fp_settings().get_db_str_con(),
|
fp_settings().get_db_str_con(),
|
||||||
fp_settings().get_db_user(),
|
fp_settings().get_db_user(),
|
||||||
@ -48,9 +32,6 @@ bool set_connection(SSimple_query& s)
|
|||||||
warning_box("Impossibile connettersi al DB esterno");
|
warning_box("Impossibile connettersi al DB esterno");
|
||||||
ok = false;
|
ok = false;
|
||||||
}
|
}
|
||||||
#ifdef DBG
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1838,8 +1819,51 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
long riga = 1;
|
long riga = 1;
|
||||||
bool f_buonocons = false;
|
bool f_buonocons = false;
|
||||||
bool first_row = false;
|
bool first_row = false;
|
||||||
|
const bool riftesta = main_app().has_module(LVAUT, CHK_DONGLE) && ini_get_bool(CONFIG_DITTA, "lv", "RifTest");
|
||||||
map<TString20, TDate> ancestors_s;
|
map<TString20, TDate> ancestors_s;
|
||||||
TString riga_buoni_cons;
|
TString riga_buoni_cons;
|
||||||
|
TString temp;
|
||||||
|
|
||||||
|
if (riftesta)
|
||||||
|
{
|
||||||
|
TString rifs = doc.get(DOC_NOTE);
|
||||||
|
|
||||||
|
if (rifs.len() > 25 && rifs[25] == ' ')
|
||||||
|
{
|
||||||
|
temp = rifs;
|
||||||
|
rifs = temp.left(25);
|
||||||
|
temp.ltrim(26);
|
||||||
|
rifs << temp;
|
||||||
|
}
|
||||||
|
rifs.trim();
|
||||||
|
if (rifs == "0")
|
||||||
|
rifs.cut(0);
|
||||||
|
int pos = rifs.find(" - ");
|
||||||
|
int len = rifs.len();
|
||||||
|
|
||||||
|
if (len > 0 && pos < 0)
|
||||||
|
pos = len;
|
||||||
|
|
||||||
|
for(; pos >= 0;)
|
||||||
|
{
|
||||||
|
TToken_string rif(rifs.left(pos), ' ');
|
||||||
|
|
||||||
|
// <DatiDDT>
|
||||||
|
reset(paf1600f);
|
||||||
|
temp = rif.get();
|
||||||
|
paf1600f.set("PF_NUMDDDT", temp);
|
||||||
|
temp = rif.get();
|
||||||
|
paf1600f.set("PF_DATADDT", temp);
|
||||||
|
paf1600f.set("PF_GESTIONE", "D");
|
||||||
|
ok &= insert(paf1600f);
|
||||||
|
rifs.ltrim(pos + 3);
|
||||||
|
pos = rifs.find(" - ");
|
||||||
|
len = rifs.len();
|
||||||
|
if (len > 0 && pos < 0)
|
||||||
|
pos = len;
|
||||||
|
// </DatiDDT>
|
||||||
|
}
|
||||||
|
}
|
||||||
FOR_EACH_PHYSICAL_FPRDOC(doc, r, rdoc)
|
FOR_EACH_PHYSICAL_FPRDOC(doc, r, rdoc)
|
||||||
{
|
{
|
||||||
// Controllo la riga
|
// Controllo la riga
|
||||||
@ -1879,65 +1903,68 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
paf1800f.set("PI_PRZTOTALE", ZERO);
|
paf1800f.set("PI_PRZTOTALE", ZERO);
|
||||||
set_IVA(_codivadefault, paf1800f);
|
set_IVA(_codivadefault, paf1800f);
|
||||||
}
|
}
|
||||||
else if (rdoc->is_merce())
|
else if (rdoc->is_merce())
|
||||||
{
|
{
|
||||||
if (rdoc->get(RDOC_QTA).is_zero())
|
if (rdoc->get(RDOC_QTA).is_zero())
|
||||||
{
|
{
|
||||||
TString msg;
|
TString msg;
|
||||||
msg.format("La riga merce %d ha quantità nulla", riga);
|
msg.format("La riga merce %d ha quantità nulla", riga);
|
||||||
log(1, msg);
|
log(1, msg);
|
||||||
}
|
}
|
||||||
set_qta_prezzo(paf1800f, rdoc);
|
set_qta_prezzo(paf1800f, rdoc);
|
||||||
if(rdoc->iva().codice().empty())
|
if (rdoc->iva().codice().empty())
|
||||||
{
|
{
|
||||||
set_IVA(_codivadefault, paf1800f);
|
set_IVA(_codivadefault, paf1800f);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
set_IVA(*rdoc, paf1800f);
|
set_IVA(*rdoc, paf1800f);
|
||||||
/*
|
/*
|
||||||
const TDate data = doc.get(DOC_DATADOC);
|
const TDate data = doc.get(DOC_DATADOC);
|
||||||
paf1800f.set("PI_DTINIZIOPER", data);
|
paf1800f.set("PI_DTINIZIOPER", data);
|
||||||
paf1800f.set("PI_DTFINEPER", data);
|
paf1800f.set("PI_DTFINEPER", data);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Ogni riga si può rifare a un DDT/Ordine diverso, per questo devo inserire i dati da qua e non in testata
|
* Ogni riga si può rifare a un DDT/Ordine diverso, per questo devo inserire i dati da qua e non in testata
|
||||||
*/
|
*/
|
||||||
TArray ancestors;
|
if (!riftesta)
|
||||||
find_ancestors(*rdoc, ancestors);
|
{
|
||||||
for (int i = ancestors.last(); i > 0; i = ancestors.pred(i))
|
TArray ancestors;
|
||||||
{
|
find_ancestors(*rdoc, ancestors);
|
||||||
_has_bolla |= true;
|
for (int i = ancestors.last(); i > 0; i = ancestors.pred(i))
|
||||||
const TAncestor& a = dynamic_cast<const TAncestor&>(ancestors[i]);
|
{
|
||||||
ancestors_s.insert({ a._numdoc, a._datadoc }); // Per i buoni di consegna lavanderie
|
_has_bolla |= true;
|
||||||
if (i == 1)
|
const TAncestor& a = dynamic_cast<const TAncestor&>(ancestors[i]);
|
||||||
{
|
ancestors_s.insert({ a._numdoc, a._datadoc }); // Per i buoni di consegna lavanderie
|
||||||
// <DatiDDT>
|
if (i == 1)
|
||||||
reset(paf1600f);
|
{
|
||||||
paf1600f.set("PF_RIFNUMLINEA", static_cast<long>(r));
|
// <DatiDDT>
|
||||||
paf1600f.set("PF_NUMDDDT", a._numdoc);
|
reset(paf1600f);
|
||||||
paf1600f.set("PF_DATADDT", a._datadoc);
|
paf1600f.set("PF_RIFNUMLINEA", static_cast<long>(r));
|
||||||
paf1600f.set("PF_GESTIONE", "D");
|
paf1600f.set("PF_NUMDDDT", a._numdoc);
|
||||||
ok &= insert(paf1600f);
|
paf1600f.set("PF_DATADDT", a._datadoc);
|
||||||
// </DatiDDT>
|
paf1600f.set("PF_GESTIONE", "D");
|
||||||
}
|
ok &= insert(paf1600f);
|
||||||
else if (i == 3)
|
// </DatiDDT>
|
||||||
{
|
}
|
||||||
// <DatiOrdineAcquisto>
|
else if (i == 3)
|
||||||
paf1000f.set("P0_KEYHEADERFATT", _hfatt);
|
{
|
||||||
paf1000f.set("P0_KEYBODYFATT", _bfatt);
|
// <DatiOrdineAcquisto>
|
||||||
paf1000f.set("P0_RIFNUMLINEA", static_cast<long>(r));
|
paf1000f.set("P0_KEYHEADERFATT", _hfatt);
|
||||||
paf1000f.set("P0_IDDOC", a._numdoc);
|
paf1000f.set("P0_KEYBODYFATT", _bfatt);
|
||||||
paf1000f.set("P0_DATADOC", a._datadoc);
|
paf1000f.set("P0_RIFNUMLINEA", static_cast<long>(r));
|
||||||
paf1000f.set("P0_COMMESSACONV", com);
|
paf1000f.set("P0_IDDOC", a._numdoc);
|
||||||
paf1000f.set("P0_CODCUP", cup);
|
paf1000f.set("P0_DATADOC", a._datadoc);
|
||||||
paf1000f.set("P0_CODCIG", cig);
|
paf1000f.set("P0_COMMESSACONV", com);
|
||||||
paf1000f.set("P0_GESTIONE", "D");
|
paf1000f.set("P0_CODCUP", cup);
|
||||||
ok &= insert(paf1000f);
|
paf1000f.set("P0_CODCIG", cig);
|
||||||
// </DatiOrdineAcquisto>
|
paf1000f.set("P0_GESTIONE", "D");
|
||||||
}
|
ok &= insert(paf1000f);
|
||||||
}
|
// </DatiOrdineAcquisto>
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (rdoc->is_spese())
|
else if (rdoc->is_spese())
|
||||||
{
|
{
|
||||||
const TSpesa_prest& sp = rdoc->spesa();
|
const TSpesa_prest& sp = rdoc->spesa();
|
||||||
@ -2101,7 +2128,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
|
|
||||||
/* Se ho una fattura che deriva dalla fatturazione differita delle lavanderie prendo
|
/* Se ho una fattura che deriva dalla fatturazione differita delle lavanderie prendo
|
||||||
* dalla relativa riga descrizione tutti i riferimenti alle bolle che mancano */
|
* dalla relativa riga descrizione tutti i riferimenti alle bolle che mancano */
|
||||||
if (f_buonocons)
|
if (!riftesta && f_buonocons)
|
||||||
{
|
{
|
||||||
TString& memo = riga_buoni_cons;
|
TString& memo = riga_buoni_cons;
|
||||||
if (memo.full())
|
if (memo.full())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user