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:
Mattia Tollari 2019-01-17 14:14:09 +01:00
parent 9a80fc8ce3
commit c72c008841
2 changed files with 24 additions and 6 deletions

View File

@ -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);

View File

@ -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>