#include #include #include #include #include #include "../include/mov.h" #include "../cg/cglib01.h" #include "tcconf.h" class TTS_confditta : public TConfig_application { char _current; static bool check_fields(TMask_field& f, KEY k); // @cmember:(INTERNAL) Salva i parametri dalla maschera virtual void save_mask(bool tosave); virtual void load_mask(); public: // @cmember Disabilita la verifica del modulo in chiave virtual bool check_autorization() const { return FALSE; } virtual bool preprocess_config (TMask& mask, TConfig& config); virtual bool postprocess_config (TMask& mask, TConfig& config); virtual bool user_create( ); virtual bool user_destroy( ); TTS_confditta() : TConfig_application( CONFIG_DITTA ){ } virtual ~TTS_confditta( ){ } }; bool TTS_confditta::check_fields(TMask_field& f, KEY k) { return true; } void TTS_confditta::load_mask() { TMask* mask = get_mask(); if (mask==NULL) return; TConfig_application::load_mask(); TConfig& config = *get_config(); TSheet_field& s = mask->sfield(F_SHEET_IVA); for (int i=0;config.exist("TSGIVA", i);i++) { TToken_string& row = s.row(i); row.add(config.get("TSGIVA", NULL, i)); row.add(config.get("TSCIVA", NULL, i)); row.add(config.get("TSSIVA", NULL, i)); s.check_row(i); } } void TTS_confditta::save_mask(bool tosave) { if (tosave) { const TMask & m = *get_mask(); if (m.get_bool(F_RIPRISTINO)) { const TDate from(m.get(F_ULTINVIO)); TEsercizi_contabili esc; const TEsercizio & e = esc.esercizio(esc.date2esc(from)); const TDate to(e.fine()); TString query = "USE MOV KEY 2 SELECT INVIATO==\"X\""; query << "\nFROM DATAREG=#DATA_DA"; query << "\nTO DATAREG=#DATA_AL"; TISAM_recordset mov(query); mov.set_var("#DATA_DA", TVariant(from)); mov.set_var("#DATA_AL", TVariant(to)); if (mov.items() >0L) { TProgind pi(mov.items(), TR("Ripristino movimenti"), true, true); TLocalisamfile cgmov(LF_MOV); for (bool ok = mov.move_first(); ok; ok = mov.move_next()) { if (!pi.addstatus(1)) break; const long numreg = mov.get(MOV_NUMREG).as_int(); cgmov.put(MOV_NUMREG, numreg); if (cgmov.read(_isequal, _lock) == NOERR) { cgmov.zero(MOV_INVIATO); cgmov.rewrite(); } } } } TConfig& config = *get_config(); for (int i = 0; config.exist("TSGIVA", i); i++) { config.remove("TSGIVA", i); config.remove("TSCIVA", i); config.remove("TSSIVA", i); } TSheet_field& s = m.sfield(F_SHEET_IVA); FOR_EACH_SHEET_ROW(s, j, row) { config.set("TSGIVA", row->get(0), NULL, true, j); config.set("TSCIVA", row->get(1), NULL, true, j); config.set("TSSIVA", row->get(2), NULL, true, j); } } TConfig_application::save_mask(tosave); } bool TTS_confditta::preprocess_config (TMask& mask, TConfig& config) { return true; } bool TTS_confditta::postprocess_config (TMask& mask, TConfig& config) { return true; } bool TTS_confditta::user_create( ) { TConfig conf(CONFIG_DITTA); conf.set( "EdMask", "tc0300a", "tc"); return true; } bool TTS_confditta::user_destroy( ) { return true; } int tc0300(int argc, char* argv[]) { TTS_confditta appc; appc.run(argc, argv, TR("Parametri ditta TeamSystem")); return 0; }