campo-sirio/mg/mg1200.cpp
angelo eb2b598985 Aggiunta Chiusura Apertura magazzino.
git-svn-id: svn://10.65.10.50/trunk@5733 c028cbd2-c16b-5b4b-a496-9718f37d4682
1997-12-15 09:21:43 +00:00

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;
}