diff --git a/src/fe/felib.cpp b/src/fe/felib.cpp index e0d068b76..350fb04c3 100644 --- a/src/fe/felib.cpp +++ b/src/fe/felib.cpp @@ -356,6 +356,7 @@ void TAnagrafica::split_ragsoc() bool TAnagrafica::init(const TRectype& rec) { _tipo = '\0'; + _sociounico = '\0'; _stato_estero = _stato_nasc = 0; _allegato = 0; _ragsoc.cut(0); @@ -443,6 +444,7 @@ bool TAnagrafica::init(const TRectype& rec) const char tipoa = rec.get_char(NDT_TIPOA); const long codana = rec.get_long(NDT_CODANAGR); const bool good = init(LF_ANAG, tipoa, codana); + _sociounico = rec.get_char(NDT_SOCIOUNICO); if (_tipo == 'G') { _ragsoc = rec.get(NDT_RAGSOC); diff --git a/src/fe/felib.h b/src/fe/felib.h index 139660721..e2cb03d48 100644 --- a/src/fe/felib.h +++ b/src/fe/felib.h @@ -16,6 +16,7 @@ class TAnagrafica : public TObject { char _tipo; // F o G + char _sociounico; TString4 _stato_paiv; TString _cofi, _paiv, _cofiest; TString80 _ragsoc; @@ -54,6 +55,7 @@ public: const TString& stato_estero_UNICO() const; int inserimento_in_allegato() const { return _allegato; } char is_black_list(const TDate& datareg) const; + const char sociounico() const { return _sociounico; } const TString& comune_nascita() const; const TString& provincia_nascita() const; diff --git a/src/fp/fp0300.cpp b/src/fp/fp0300.cpp index ab3d4a9b1..c5c6eeacd 100644 --- a/src/fp/fp0300.cpp +++ b/src/fp/fp0300.cpp @@ -158,6 +158,7 @@ protected: } const TString& var2str(const TString& fld, const TVariant& var) const; + const TVariant& get(const char* fld) const; public: void reset() { _fields.destroy(); } @@ -168,7 +169,7 @@ public: void set(const char* fld, const TString& var); void set(const char* fld, const TDate& var); void set(const char* fld, bool var); - const TVariant& get(const char* fld) const; + const TString sq_get(const char* fld) const; bool insert(); bool remove(); @@ -258,6 +259,11 @@ void TPaf_record::set(const char* fld, bool var) set(fld, var ? "SI" : "NO"); } +const TString TPaf_record::sq_get(const char* fld) const +{ + return db().sq_get(fld); +} + // Legge il valore di un campo variant const TVariant& TPaf_record::get(const char* fld) const { @@ -442,7 +448,7 @@ void TPA_mask::fill() sht.destroy(); const TDate dal = get(F_DATAINI); - const char filter_selected = get(F_FATTSEL)[0]; + TString filter_selected = get(F_FATTSEL); // Record di controllo per eventuali elaborazioni precedenti TString hfatt(LEN_HFATT), bfatt(LEN_BFATT); @@ -451,7 +457,7 @@ void TPA_mask::fill() TString query; query << "USE 33 " << - "SELECT (BETWEEN(33.DATADOC,#DADATADOC,#ADATADOC))&&(33.TIPOCF=='C')&&(17.PADESTIN!='')&&(400@." FLD_TIPO_SDI "!='')"; + "SELECT (BETWEEN(33.DATADOC,#DADATADOC,#ADATADOC))&&(33.TIPOCF=='C')&&((17.PADESTIN!='')||(20.PEC!=''))&&(400@." FLD_TIPO_SDI "!='')"; if(get(F_DATIPODOC).full() && get(F_ATIPODOC).full()) { query << "&&(BETWEEN(33.TIPODOC, #DATIPODOC, #ATIPODOC))"; @@ -491,7 +497,8 @@ void TPA_mask::fill() { if (paf0100f.search(NULL, hfatt, bfatt)) { - if (filter_selected && paf0100f.get("P1_GESTIONE").as_string()[0] != filter_selected) + sent = true; + if (!filter_selected.full() || paf0100f.sq_get("P1_GESTIONE") != filter_selected) continue; } } @@ -506,10 +513,12 @@ void TPA_mask::fill() row->add(rec.get(DOC_DATADOC).as_date()); row->add(rec.get(CFV_CODCF).as_int()); row->add(rec.get("20." CLI_RAGSOC).as_string()); - row->add(rec.get(CFV_PADESTIN).as_string()); - row->add(rec.get(CFV_PARIFAMM).as_string()); + TString rif = rec.get("17." CFV_PADESTIN).as_string(); + if (rif.empty()) + rif = rec.get("20.PEC").as_string(); + row->add(rif); + row->add(rec.get("17." CFV_PARIFAMM).as_string()); row->add(rec.get("20." CLI_COFI).as_string()); - row->add(!td.invio_xml() ? "X" : ""); bool split = rec.get("20." CLI_SPLITPAY).as_bool(); if (split) @@ -526,6 +535,7 @@ void TPA_mask::fill() const bool attach = !rec.get("COLL_GOLEM").is_empty(); row->add(attach ? "X" : " "); + row->add(!td.invio_xml() ? "X" : ""); sht.add(row); } @@ -1027,6 +1037,8 @@ bool TDoc2Paf::elabora(TDocumentoEsteso& doc) rifamm = doc.clifor().vendite().get(CFV_PARIFAMM); paf0200f.set("P2_RIFAMMINISTR", rifamm); + paf0200f.set("P2_ISCRREASOCIOU", _ditta.sociounico() == 'S' ? "SU" : "SM"); + TISAM_recordset unloc("USE UNLOC\nJOIN COMUNI INTO COM==COMCCIAA\nFROM CODDITTA=#DITTA\nTO CODDITTA=#DITTA"); unloc.set_var("#DITTA", firm.get(NDT_CODDITTA)); if (unloc.move_first()) @@ -1639,18 +1651,24 @@ bool TDoc2Paf::elabora(TDocumentoEsteso& doc) ok &= paf2600f.insert(); } } - const TTipo_documento& td = cached_tipodoc(doc.get(DOC_TIPODOC)); - /* - if(td.invio_xml()) - { - // Genero il pdf del documento e lo allego - - } - */ + + + + } - // - return true; + + // Tabella di non invio XML + TPaf_record pafw300f("PAFW300F"); + pafw300f.set("PW_KEYPRGINVIO", hfatt); + pafw300f.set("PW_KEYHEADERFATT", bfatt); + pafw300f.remove(); // Cancella eventuali allegati + const TTipo_documento& td = cached_tipodoc(doc.get(DOC_TIPODOC)); + if(!td.invio_xml()) + pafw300f.set("PW_CODSDI", "**********"); + ok &= pafw300f.insert(); + + return ok; } bool TDoc2Paf::elabora(const TRectype& rec) diff --git a/src/include/nditte.h b/src/include/nditte.h index 5351c024f..a45c71110 100755 --- a/src/include/nditte.h +++ b/src/include/nditte.h @@ -57,5 +57,6 @@ #define NDT_NONOBBSTAT "NONOBBSTAT" #define NDT_INTCAF "INTCAF" #define NDT_DICHP "DICHP" +#define NDT_SOCIOUNICO "SOCIOUNICO" #endif