119 lines
2.7 KiB
C++
Executable File
119 lines
2.7 KiB
C++
Executable File
#include <applicat.h>
|
|
#include <utility.h>
|
|
#include <tabutil.h>
|
|
#include <msksheet.h>
|
|
#include <recarray.h>
|
|
#include <assoc.h>
|
|
#include <checks.h>
|
|
#include <defmask.h>
|
|
#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;
|
|
}
|