#include #include #include #include #include #include #include #include #include "mg1200.h" #include "mglib.h" #include "..\cg\cglib01.h" class TMask_buildmov: public TMask { TEsercizi_contabili esercizi; static bool handle_annoes(TMask_field &, KEY); // handler del numero di registrazione public: TMask_buildmov(); virtual ~TMask_buildmov() {}; }; TMask_buildmov::TMask_buildmov() : TMask("mg1200") { set_handler(F_ANNOES, handle_annoes); } bool TMask_buildmov::handle_annoes(TMask_field &fld, KEY k) { TMask_buildmov &mask=(TMask_buildmov &)fld.mask(); if (fld.get().empty()) { // DEFAULT fld.set(mask.esercizi.date2esc(mask.get_date(F_DATA))); } if (k == K_TAB && fld.focusdirty()) { if (mask.esercizi.exist(mask.get_int(F_ANNOES))) { const TEsercizio & e=mask.esercizi.esercizio(mask.get_int(F_ANNOES)); if (mask.esercizi.esercizio(mask.get_int(F_ANNOES)).chiusura_mag()!=TDate(NULLDATE)) { fld.error_box("Il magazzino dell'esercizio indicato risulta chiuso \nImpossibile effettuare la ricostruzione saldi") ; return FALSE; } } } return TRUE; } class TApp_rebuildbalances: public TSkeleton_application { TArray * used_files; TRelation * _rel; // relazione TCursor * _cur; // cursore TString16 _annoes; bool _reset_giac ; protected: virtual bool create(); virtual bool destroy(); virtual void main_loop(); public: TApp_rebuildbalances() {}; virtual ~TApp_rebuildbalances() {}; }; //inline TApp_rebuildbalances& app() { return (TApp_rebuildbalances&) main_app(); } bool TApp_rebuildbalances::create() { used_files= new TArray; used_files->add(new TLocalisamfile(LF_ANAMAG)); used_files->add(new TLocalisamfile(LF_UMART)); used_files->add(new TLocalisamfile(LF_MAG)); used_files->add(new TLocalisamfile(LF_MOVMAG)); used_files->add(new TLocalisamfile(LF_RMOVMAG)); TSkeleton_application::create(); return TRUE; } bool TApp_rebuildbalances::destroy() { delete used_files; TSkeleton_application::destroy(); return TRUE; } void TApp_rebuildbalances::main_loop() { /*if (argc()>2) _annoes=argv(2); else fatal_box("Manca l'indicazione dell'esercizio da ricostruire"); if (argc()>3) _reset_giac=(TString(argv(3)).upper()=="RESET");*/ TMask_buildmov m; while (m.run()==K_ENTER) { if (!rebuild_balances(m.get(F_ANNOES)/*, TRUE*/)) error_box("Ricostruzione saldi incompleta o errata. Ripetere"); } } int mg1200(int argc, char* argv[]) { TApp_rebuildbalances a; a.run(argc, argv, "Ricostruzione saldi"); return 0; }