Patch level : 12.0 678
Files correlati : fp Commento : Sistemata numerazione documenti con prefisso e postfisso, viene utilizzato il numero zerofilled
This commit is contained in:
parent
9a80fc8ce3
commit
c72c008841
@ -18,6 +18,8 @@
|
||||
SSimple_query& fp_db();
|
||||
// Controlla il livello di patch installato e aggiorna le tabelle se necessario
|
||||
bool check_tables();
|
||||
// Compila il numero di documento per la scrittura sui paf
|
||||
TString& complete_num_fp(const TCodice_numerazione& codnum, const int numdoc);
|
||||
// Genera la chiave per i paf
|
||||
bool chiave_paf(const TDocumento& doc, TString& hfatt, TString& bfatt);
|
||||
bool chiave_paf(const TRectype& doc, TString& hfatt, TString& bfatt);
|
||||
|
@ -134,6 +134,25 @@ bool check_tables()
|
||||
return true;
|
||||
}
|
||||
|
||||
TString& complete_num_fp(const TCodice_numerazione& codnum, const int numdoc)
|
||||
{
|
||||
static const int len_num_doc = TRectype(LF_DOC).length(DOC_NDOC);
|
||||
|
||||
TString& ret = get_tmp_string();
|
||||
const TString& prefisso = codnum.prefisso();
|
||||
const TString& postfisso = codnum.postfisso();
|
||||
static TString ndoc; ndoc.cut(0) << numdoc;
|
||||
|
||||
if(prefisso.full() || postfisso.full())
|
||||
{
|
||||
for (; ndoc.len() < len_num_doc;)
|
||||
ndoc.add_front("0");
|
||||
}
|
||||
ret << prefisso << ndoc << postfisso;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* HFATT: tipocf(1) + codcf(6)
|
||||
* BFATT: datadoc(8) + tipodoc_SDI(4) + numdoc(7)
|
||||
@ -150,10 +169,9 @@ bool chiave_paf(const TDocumento& doc, TString& hfatt, TString& bfatt)
|
||||
CHECK(hfatt.full(), "Destinatario fattura P.A. non valido");
|
||||
|
||||
const TCodice_numerazione& codnum = doc.codice_numerazione();
|
||||
TString full_num;
|
||||
codnum.complete_num(doc.numero(), full_num);
|
||||
|
||||
//20180101_TD01_123456712345671234567
|
||||
bfatt.cut(0) << doc.get_date(DOC_DATADOC).date2ansi() << '_' << tipo_doc_sdi(doc) << '_' << full_num;
|
||||
bfatt.cut(0) << doc.get_date(DOC_DATADOC).date2ansi() << '_' << tipo_doc_sdi(doc) << '_' << complete_num_fp(codnum, doc.numero());
|
||||
return hfatt.full() && bfatt.full();
|
||||
}
|
||||
|
||||
@ -1106,9 +1124,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
||||
paf0700f.set("P7_TIPODOC", tipo_doc_sdi(doc));
|
||||
paf0700f.set("P7_DIVISA", "EUR"); // Fisso su euro in quanto effettuiamo il cambio
|
||||
paf0700f.set("P7_DATA", doc.data());
|
||||
TString full_num;
|
||||
doc.codice_numerazione().complete_num(doc.numero(), full_num);
|
||||
paf0700f.set("P7_NUMERO", full_num);
|
||||
paf0700f.set("P7_NUMERO", complete_num_fp(doc.codice_numerazione(), doc.numero()));
|
||||
paf0700f.set("P7_GESTIONE", "D");
|
||||
|
||||
// <DatiBollo>
|
||||
|
Loading…
x
Reference in New Issue
Block a user