#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.empty()) { // DEFAULT const long esc=mask._esercizi.date2esc(mask.get_date(F_DATA)); if (esc!=0) fld.set(esc); } if (fld.to_check(k) || k == K_ENTER) { if (mask._esercizi.exist(mask.get_int(F_ANNOES))) { const TEsercizio & e=mask._esercizi.esercizio(mask.get_int(F_ANNOES)); if (e.chiusura_mag()!=TDate(NULLDATE)) { fld.error_box(TR("Il magazzino dell'esercizio indicato risulta chiuso \nImpossibile effettuare la ricostruzione saldi")) ; return FALSE; } } } return TRUE; } class TApp_rebuildbalances : public TSkeleton_application { TRelation* _rel; // relazione TCursor* _cur; // cursore int _annoes; bool _reset_giac; protected: virtual bool create(); virtual void main_loop(); }; bool TApp_rebuildbalances::create() { open_files(LF_UMART, LF_MAG, LF_RMOVMAG, LF_TABCOM, LF_STOMAG, LF_DESLIN, LF_CODCORR, 0); return TSkeleton_application::create(); } void TApp_rebuildbalances::main_loop() { TMask_buildmov m; while (m.run()==K_ENTER) { if (!rebuild_balances(m.get_int(F_ANNOES))) warning_box(TR("A causa degli errori riscontrati i saldi di magazzino \npotrebbero non essere stati del tutto aggiornati. \nProcedere ad una nuova operazione di ''Ricostruzione saldi''")); } } int mg1200(int argc, char* argv[]) { TApp_rebuildbalances a; a.run(argc, argv, TR("Ricostruzione saldi")); return 0; }