#include #include #include #include #include #include #include #include "../cg/cg2103.h" /////////////////////////////////////////////////////////// // TIP_mask /////////////////////////////////////////////////////////// class TIP_mask : public TAutomask { clock_t _next_update; bool _updating; private: bool apply_filter(const TRecordset& righe) const; void serialize(bool bSave); protected: virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); public: TIP_mask(const char * maskname); ~TIP_mask(); }; /////////////////////////////////////////////////////////// // TCausali_cache /////////////////////////////////////////////////////////// class TCausali_cache : public TCache { protected: virtual TObject* key2obj(const char* key); public: const TCausale& causale(const char* codice, int annoiva); }; /////////////////////////////////////////////////////////// // TRiclassifica_cache /////////////////////////////////////////////////////////// class TIPRiclassifica_cache : public TCache { TLocalisamfile _multirel; protected: virtual TObject* key2obj(const char* key); public: const char * sdecode(const char* tab, const TString& cod); long decode(const char* tab, const TString& cod); TIPRiclassifica_cache() : _multirel(LF_MULTIREL) { _multirel.setkey(2);} }; /////////////////////////////////////////////////////////// // TIP_sender /////////////////////////////////////////////////////////// const long TSbill2ricl(char & t, int gr, int co, long so); /////////////////////////////////////////////////////////// // TIP_sender /////////////////////////////////////////////////////////// class TIP_textset : public TCSV_recordset { TAssoc_array _colnames; protected: void add_field(const char* name = "Filler", int len = 0, const char * tipo = "C"); public: virtual bool destroy(TRecnotype r); virtual bool set(const char* field, const TVariant& v); void set(const char* field, const TString & str) { set(field, TVariant(str)); } void set(const char* field, const int n) { set(field, TVariant((long)n)); } void set(const char* field, const char* s) { set(field, TVariant(s)); } void set(const char* field, const TDate& d) { set(field, TVariant(d)); } void set(const char* field, const real& v) { set(field, TVariant(v)); } int find_column(const char * name); TIP_textset(const char* query = "") : TCSV_recordset(TString("CSV(\"\t\")\n") << query) {} }; class TIP_clienti_textset : public TIP_textset { public: TIP_clienti_textset(const char* query = ""); }; class TIP_fornitori_textset : public TIP_textset { public: TIP_fornitori_textset(const char* query = ""); }; class TIP_movimenti_textset : public TIP_textset { public: TIP_movimenti_textset(const char* query = ""); }; class TIP_scadenze_textset : public TIP_textset { public: TIP_scadenze_textset(const char* query = ""); }; class TIP_cespiti_textset : public TIP_textset { public: TIP_cespiti_textset(const char* query = ""); }; class TIP_categorie_textset : public TIP_textset { public: TIP_categorie_textset(const char* query = ""); }; class TIP_intra_textset : public TIP_textset { public: TIP_intra_textset(const char* query = ""); }; class TIP_sender : public TSkeleton_application { TIP_mask * _mask; TAssoc_array _caus_regolarizzazione; TIPRiclassifica_cache* _tabelle; TCausali_cache * _causali; TAssoc_array _riclassifica; bool _errors_logged; bool _errors; TLog_report* _log; TReport_book * _book; TRecord_cache * _part; long _ultscadid; bool test_swap(const TRecordset& mov); bool mov_regolarizzazione(const TRecordset& mov); bool mov_intra(const TRecordset& mov); bool mov_reverse_charge(const TRecordset& mov); const TString & scod2ricl(const char* tab, const TString& cod); const TString & scod2ricl(const char* tab, const TVariant& cod); const long cod2ricl(const char* tab, const TString& cod); const long cod2ricl(const char* tab, const TVariant& cod); const long bill2ricl(char t, int gr, int co, long so); const TString & pag2tipo(const TVariant & codpag); const TString & row2cauriga(TISAM_recordset& rmov, const TCausale & caus); void get_pref(const TVariant & pref, TVariant & pint, TVariant & pnaz); const real ind2perc(const TVariant & tipodet); void add_cli(TISAM_recordset & cli, TIP_clienti_textset & ipcli); void add_forn(TISAM_recordset & forn, TIP_fornitori_textset & ipforn); void add_mov_cg(TISAM_recordset & mov, TIP_movimenti_textset & ipmov, const TVariant & reg_regol, const TVariant & prot_regol, const char tipo = ' '); void add_mov_iva(TISAM_recordset & mov, TIP_movimenti_textset & ipmov, const TVariant & reg_regol, const TVariant & prot_regol); void add_mov(TISAM_recordset & mov, TIP_movimenti_textset & ipmov); void add_scad(TISAM_recordset & mov, TIP_scadenze_textset & ipscad); void add_intra(TISAM_recordset & mov, TIP_intra_textset & ipintra); void transfer_cli(const char * path); void transfer_forn(const char * path); void transfer_mov(const char * path); void transfer_scad(const char * path); void transfer_cesp(const char * path); void transfer_cat(const char * path); void transfer_intra(const char * path); protected: virtual bool find_regolarizzazione(TRecordset& mov); virtual TMask & get_mask(); public: virtual bool multi_activity() const { return true; } TAssoc_array & riclassifica() {return _riclassifica;} virtual void postprocess_movs(TRecordset & mov); virtual void set_parameters(); // qui void log(int sev, const char* msg); virtual bool create(); virtual void main_loop(); virtual bool destroy(); TIP_sender() : _tabelle(NULL) {} };