From d9bb4912508de27ac9f8f5de64d09b34b17789d2 Mon Sep 17 00:00:00 2001 From: guy <guy@c028cbd2-c16b-5b4b-a496-9718f37d4682> Date: Thu, 26 Jun 2014 13:28:39 +0000 Subject: [PATCH] git-svn-id: svn://10.65.10.50/branches/R_10_00@22972 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- pa/pa0100.cpp | 62 ++++++++++++++++++++++++++++----------------------- pa/pamenu.men | 7 ++++++ 2 files changed, 41 insertions(+), 28 deletions(-) create mode 100644 pa/pamenu.men diff --git a/pa/pa0100.cpp b/pa/pa0100.cpp index fdaeb7d29..bd7c53cc0 100644 --- a/pa/pa0100.cpp +++ b/pa/pa0100.cpp @@ -8,6 +8,8 @@ #include "pa0.h" #include "../fe/felib.h" + +#include <clifo.h> #include <nditte.h> ///////////////////////////////////////////////////////////////////////////////////// @@ -241,14 +243,14 @@ TPaf_record::TPaf_record(const char* table) : _table(table), _key(15, ',') class TDoc2Paf : public TSkeleton_application { - TAnagrafica _cessionario; + TAnagrafica _ditta; private: int parse_line(const TString& line, TString& var, TString& val) const; void create_table(TScanner& paf, const TString& table); protected: - const TString& cessionario(); + const TString& cessionario(const TDocumento& doc); const TString& fattura(const TDocumento& doc); void elabora(TDocumentoEsteso& doc); @@ -262,12 +264,9 @@ public: virtual void main_loop(); }; -const TString& TDoc2Paf::cessionario() +const TString& TDoc2Paf::cessionario(const TDocumento& doc) { - if (!_cessionario.ok()) - _cessionario.init(LF_NDITTE, prefix().get_codditta()); - const TString& piva = _cessionario.partita_IVA(); - return piva.full() ? piva : _cessionario.codice_fiscale(); + return doc.clifor().get(CLI_DESTIN); } const TString& TDoc2Paf::fattura(const TDocumento& doc) @@ -284,14 +283,17 @@ void TDoc2Paf::elabora(TDocumentoEsteso& doc) TString8 prginv; prginv.format("%05d", ini_get_int("./paf.ini", "Main", "PRGINV") + 1); ini_set_string("./paf.ini", "Main", "PRGINV", prginv); + const TString8 hfatt = cessionario(doc); + const TString80 bfatt = fattura(doc); + // <DatiTrassmissione> TPaf_record paf0100f("PAF0100F"); - paf0100f.set("P1KHFATT", cessionario()); - paf0100f.set("P1KBFATT", fattura(doc)); + paf0100f.set("P1KHFATT", hfatt); + paf0100f.set("P1KBFATT", bfatt); paf0100f.remove(); paf0100f.set("P1PAESE", "IT"); - paf0100f.set("P1CODICE", _cessionario.partita_IVA()); + paf0100f.set("P1CODICE", _ditta.partita_IVA()); paf0100f.set("P1PRGINV", prginv); paf0100f.set("P1FTRASM", "SDI10"); @@ -303,33 +305,33 @@ void TDoc2Paf::elabora(TDocumentoEsteso& doc) // <CedentePrestatore> TPaf_record paf0200f("PAF0200F"); - paf0200f.set("P2KHFATT", paf0100f.get("P1KHFATT")); - paf0200f.set("P2KBFATT", paf0100f.get("P1KBFATT")); + paf0200f.set("P2KHFATT", hfatt); + paf0200f.set("P2KBFATT", bfatt); paf0200f.remove(); paf0200f.set("P2PAESE", paf0100f.get("P1PAESE")); - paf0200f.set("P2CODICE", _cessionario.partita_IVA()); - paf0200f.set("P2FISCA", _cessionario.codice_fiscale()); - if (_cessionario.fisica()) + paf0200f.set("P2CODICE", _ditta.partita_IVA()); + paf0200f.set("P2FISCA", _ditta.codice_fiscale()); + if (_ditta.fisica()) { - paf0200f.set("P2NOME", _cessionario.nome()); - paf0200f.set("P2COGN", _cessionario.cognome()); + paf0200f.set("P2NOME", _ditta.nome()); + paf0200f.set("P2COGN", _ditta.cognome()); } else { - paf0200f.set("P2DENOM", _cessionario.ragione_sociale()); + paf0200f.set("P2DENOM", _ditta.ragione_sociale()); } paf0200f.set("P2RFISC", "RF01"); // DatiSede - paf0200f.set("P2SINDI", _cessionario.indirizzo_residenza()); - paf0200f.set("P2SCOMU", _cessionario.comune_residenza()); - paf0200f.set("P2SPROV", _cessionario.provincia_residenza()); + paf0200f.set("P2SINDI", _ditta.indirizzo_residenza()); + paf0200f.set("P2SCOMU", _ditta.comune_residenza()); + paf0200f.set("P2SPROV", _ditta.provincia_residenza()); paf0200f.set("P2SNAZI", paf0100f.get("P1PAESE")); // DatiStabile - paf0200f.set("P2OINDI", _cessionario.indirizzo_residenza()); - paf0200f.set("P2OCOMU", _cessionario.comune_residenza()); - paf0200f.set("P2OPROV", _cessionario.provincia_residenza()); + paf0200f.set("P2OINDI", _ditta.indirizzo_residenza()); + paf0200f.set("P2OCOMU", _ditta.comune_residenza()); + paf0200f.set("P2OPROV", _ditta.provincia_residenza()); paf0200f.set("P2ONAZI", paf0100f.get("P1PAESE")); paf0200f.insert(); @@ -345,7 +347,7 @@ void TDoc2Paf::elabora(TDocumentoEsteso& doc) paf0400f.set("P4PAESE", paf0100f.get("P1PAESE")); paf0400f.set("P4CODICE", cliente.partita_IVA()); paf0400f.set("P4FISCA", cliente.codice_fiscale()); - if (_cessionario.fisica()) + if (cliente.fisica()) { paf0400f.set("P4NOME", cliente.nome()); paf0400f.set("P4COGN", cliente.cognome()); @@ -489,9 +491,9 @@ void TDoc2Paf::main_loop() { const char* title = TR("Fatture Pubblica Amministrazione"); TArray_sheet sht(-1, 3, 78, -3, - title, HR("@1|Anno|Cod.|Numero|Cliente|Ragione Sociale@50")); + title, HR("@1|Anno|Cod.|Numero|Destinatario|Cliente|Ragione Sociale@50")); - TISAM_recordset clifo_pa("USE 20 SELECT ALLEG=7\nTO TIPOCF=C"); + TISAM_recordset clifo_pa("USE 20 SELECT PADESTIN!=''\nTO TIPOCF=C"); const TRecnotype n = clifo_pa.items(); if (n > 0) { @@ -512,6 +514,7 @@ void TDoc2Paf::main_loop() row->add(doc_pa.get(DOC_ANNO).as_int(), 1); row->add(doc_pa.get(DOC_CODNUM).as_string()); row->add(doc_pa.get(DOC_NDOC).as_int()); + row->add(clifo_pa.get(CLI_PADESTIN).as_string()); const long codcf = doc_pa.get(DOC_CODCF).as_int(); row->add(codcf); TString8 key; key.format("C|%ld", codcf); @@ -632,7 +635,8 @@ void TDoc2Paf::create_table(TScanner& paf, const TString& table) bool TDoc2Paf::create() { TFilename n = prefix().get_studio(); // base direcotry - n.add("sql"); n.add("paf.db"); + n.add("sql"); make_dir(n); + n.add("paf.db"); _db = xvt_sql_open(n, user(), "", n.path()); if (_db == NULL) return false; @@ -654,6 +658,8 @@ bool TDoc2Paf::create() else return cantread_box(n); + _ditta.init(LF_NDITTE, prefix().get_codditta()); + return TSkeleton_application::create(); } diff --git a/pa/pamenu.men b/pa/pamenu.men new file mode 100644 index 000000000..6fdf3c10e --- /dev/null +++ b/pa/pamenu.men @@ -0,0 +1,7 @@ +[PAMENU_001] +Caption = "Fattura P.A." +Picture = <ve01> +Module = pa +Flags = "F" +Item_01 = "Fatture P.A.", "pa0 -0", "F" +Item_02 = "Firma Digitale", fd0 -0, "F"