///////////////////////////////////////////////////////////////////////////////////// // TPassive_mask ///////////////////////////////////////////////////////////////////////////////////// #include "defmask.h" #include "automask.h" #include "applicat.h" #include #include "tsdb.h" #include "fp0400a.h" #include "fplib.h" class TPassive_mask : public TAutomask { protected: void set_filter_changed(); bool on_field_event(TOperable_field& o, TField_event e, long jolly) override; void next_page(int p) override; void fill(); void init(); void load_all_fields(); bool _filter_changed; public: void save_all_fields() const; TPassive_mask() : TAutomask("fp0400a"), _filter_changed(true) { load_all_fields(); } }; void TPassive_mask::set_filter_changed() { _filter_changed = true; } void TPassive_mask::next_page(int p) { //if(true) if (_filter_changed && p != 1000) { fill(); _filter_changed = false; } TAutomask::next_page(p); } void TPassive_mask::fill() { TSheet_field& sf = sfield(F_DOCS); //TString_array& sht = sf.rows_array(); sf.hide(); sf.destroy(); const TDate dal = get(F_DATAINI); const TDate al = get(F_DATAEND); TString query; query << "SELECT YEAR(P7_DATA) as ANNO, P7_TIPODOC as [TIPO_SDI], P7_NUMERO as [NUM_DOC], " << "P7_DATA as [DATA_DOC], PQ_IMPTOTDOC as [TOT_DOC], P2_ANADENOMIN AS [RAG_SOC], P2_ANANOME AS NOME, " << "P2_ANACOGNOME AS COGNOME, P2_FISCIVACOD AS [P_IVA], P2_CODFISCALE AS [COD_FISC], P2_FISCIVAPAESE AS [COD_PAESE], PP_ATTACHMENT ATTACHMENT, P1_CODDEST as [COD_SDI], PU_PEC AS PEC\n" << "FROM PAA0100F PAA01\n" << "JOIN PAA0200F PAA02 ON P1_KEYPRGINVIO = P2_KEYPRGINVIO and P1_KEYHEADERFATT = P2_KEYHEADERFATT and P1_KEYBODYFATT = P2_KEYBODYFATT\n" << "JOIN PAA0700F PAA07 ON P1_KEYPRGINVIO = P7_KEYPRGINVIO and P1_KEYHEADERFATT = P7_KEYHEADERFATT and P1_KEYBODYFATT = P7_KEYBODYFATT\n" << "JOIN PAA2700F PAA27 ON P1_KEYPRGINVIO = PQ_KEYPRGINVIO and P1_KEYHEADERFATT = PQ_KEYHEADERFATT and P1_KEYBODYFATT = PQ_KEYBODYFATT\n" << "LEFT JOIN PAA2600F PAA26 ON P1_KEYPRGINVIO = PP_KEYPRGINVIO and P1_KEYHEADERFATT = PP_KEYHEADERFATT and P1_KEYBODYFATT = PP_KEYBODYFATT\n" << "LEFT JOIN PAA3200F PAA32 ON P1_KEYPRGINVIO = PU_KEYPRGINVIO and PU_KEYHEADERFATT = PU_KEYHEADERFATT and P1_KEYBODYFATT = PU_KEYBODYFATT\n" << "WHERE P7_DATA >= \'" << dal.date2ansi() << "\' AND P7_DATA <= \'" << al.date2ansi() << "\'"; fp_db().sq_set_exec(query, false); //TProgress_monitor pi(fp_db().sq_items(), nullptr); TLocalisamfile clifo(LF_CLIFO); while(fp_db().sq_next()) //for(bool ok = ; ok; ok = s.sq_next()) { clifo.zero(); clifo.put(CLI_TIPOCF, 'F'); TToken_string& row = sf.row(-1); TString denom = fp_db().sq_get("RAG_SOC"); if (denom.blank()) { denom = fp_db().sq_get("NOME"); denom.trim(); denom << " " << fp_db().sq_get("COGNOME"); denom.trim(); } TString id_fisc = fp_db().sq_get("COGNOME"); row.add(fp_db().sq_get_int("ANNO"), 0); row.add(fp_db().sq_get("TIPO_SDI")); row.add(fp_db().sq_get("NUM_DOC")); row.add(fp_db().sq_get("DATA_DOC")); row.add(fp_db().sq_get("TOT_DOC")); // Cerco se il fornitore è presente in Campo if (fp_db().sq_get("P_IVA") == "01903590154") bool tolla = true; if(fp_db().sq_get("COD_PAESE").full() && fp_db().sq_get("P_IVA").full()) { clifo.setkey(5); clifo.put(CLI_STATOPAIV, fp_db().sq_get("COD_PAESE")); clifo.put(CLI_PAIV, fp_db().sq_get("P_IVA")); if(clifo.read() == NOERR) row.add(clifo.get(CLI_CODCF)); else if (fp_db().sq_get("COD_PAESE") == "IT") { clifo.put(CLI_PAIV, fp_db().sq_get("P_IVA")); clifo.put(CLI_STATOPAIV, ""); if (clifo.read() == NOERR) row.add(clifo.get(CLI_CODCF)); } } else if(fp_db().sq_get("COD_FISC").full()) { clifo.setkey(4); clifo.put(CLI_COFI, fp_db().sq_get("COD_FISC")); if (clifo.read() == NOERR) row.add(clifo.get(CLI_CODCF)); } row.add(denom, sf.cid2index(S_RAGSOC)); row.add(fp_db().sq_get("COD_PAESE") << fp_db().sq_get("P_IVA")); row.add(fp_db().sq_get("COD_FISC")); TString appo = fp_db().sq_get("ATTACHMENT"); row.add( appo.blank() ? "" : "X" ); row.add(fp_db().sq_get("COD_SDI").blank() ? fp_db().sq_get("PEC") : fp_db().sq_get("COD_SDI")); } sf.force_update(); sf.show(); } void TPassive_mask::init() { } void TPassive_mask::load_all_fields() { } bool TPassive_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) { switch (o.dlg()) { case F_DATAINI: if (e == fe_init) o.set(ini_get_string(CONFIG_DITTA, "fp", "LastXML", "01-01-2019")); else if (e == fe_close) ini_set_string(CONFIG_DITTA, "fp", "LastXML", o.get()); break; case F_DATAEND: if (e == fe_init) o.set(TDate(TODAY)); default: break; } if ((e == fe_modify || e >= se_enter) && jolly == 0) if (o.dlg() >= START_MASK && o.dlg() <= END_MASK) set_filter_changed(); return true; } ///////////////////////////////////////////////////////////////////////////////////// // TPassive_app ///////////////////////////////////////////////////////////////////////////////////// class TPassive_app : public TSkeleton_application { public: void main_loop() override; TPassive_app() = default; }; void TPassive_app::main_loop() { TPassive_mask mask; while(mask.run() == K_ENTER) { } } int fp0400(int argc, char * argv[]) { TPassive_app fpas; fpas.run(argc, argv, TR("Fatturazione F.P.")); return 0; }