campo-sirio/mg/mg1200.cpp
guy 9abac455f4 cosmesi da TString80 a TCodice_articolo
git-svn-id: svn://10.65.10.50/branches/R_10_00@23043 c028cbd2-c16b-5b4b-a496-9718f37d4682
2015-02-24 08:37:50 +00:00

80 lines
2.0 KiB
C++
Executable File

#include <applicat.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();
};
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 TDate d = mask.get_date(F_DATA);
const int codes = mask._esercizi.date2esc(d);
if (codes > 0)
fld.set(codes);
}
if (fld.to_check(k) || k == K_ENTER)
{
const int codes = mask.get_int(F_ANNOES);
if (codes > 0 && mask._esercizi.exist(codes))
{
const TEsercizio& e = mask._esercizi.esercizio(codes);
if (e.chiusura_mag().ok())
return fld.error_box(TR("Il magazzino dell'esercizio indicato risulta chiuso\n"
"Impossibile effettuare la ricostruzione saldi"));
}
}
return true;
}
class TApp_rebuildbalances : public TSkeleton_application
{
TRelation* _rel; // relazione
TCursor* _cur; // cursore
protected:
virtual bool create();
virtual void main_loop();
};
bool TApp_rebuildbalances::create()
{
open_files(LF_CLIFO, LF_UMART, LF_MAG, LF_MOVMAG, LF_RMOVMAG,
LF_TAB, LF_TABCOM, LF_STOMAG, LF_DESLIN, LF_CODCORR,
LF_ANAMAG, LF_CLIFOGIAC, 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 potrebbero non essere aggiornati.\n"
"Si consiglia di procedere 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;
}