campo-sirio/cg/cg6903.cpp

103 lines
2.1 KiB
C++
Raw Normal View History

#include "cg6903.h"
#include "cg6900a.h"
bool TRip_flag::create()
{
TApplication::create();
_mov = new TLocalisamfile (LF_MOV);
_part = new TLocalisamfile (LF_PARTITE);
dispatch_e_menu (BAR_ITEM(1));
return TRUE;
}
bool TRip_flag::destroy()
{
delete _mov;
delete _part;
return TApplication::destroy();
}
bool TRip_flag::set()
{
TMask msk ("cg6903a");
KEY k;
k = msk.run();
if (k == K_ENTER)
{
long ditta = msk.get_long(F_DITTAINV);
TDate datalim (msk.get(F_DATA));
bool rippn = msk.get_bool(F_RIPPN);
bool ripiva = msk.get_bool(F_RIPIVA);
bool ripsc = msk.get_bool(F_RIPSC);
if (!rippn && !ripiva && !ripsc) return FALSE; // Se non flaggo nessuno dei tre non ha
// senso scorrere l'archivio.
set_firm(ditta);
if (rippn || ripiva)
{
long cicli = _mov->items();
_prog = new TProgind(cicli,"Ripristino movimenti in corso... Prego attendere.",FALSE);
_mov->setkey(1);
_mov->zero();
for (_mov->first();!_mov->eof();_mov->next())
{
TDate datareg (_mov->get_date(MOV_DATAREG));
_prog->addstatus(1);
if (datareg < datalim) continue;
if (rippn)
_mov->zero(MOV_INVIATO);
if (ripiva)
_mov->zero(MOV_INVIVA);
_mov->rewrite();
}
delete _prog;
}
if (ripsc)
{
long cicli = _part->items();
_prog = new TProgind(cicli,"Ripristino movimenti saldaconto in corso... Prego attendere.",FALSE);
_part->setkey(1);
_part->zero();
for (_part->first();!_part->eof();_part->next())
{
TDate datareg (_part->get_date(PART_DATAREG));
_prog->addstatus(1);
if (datareg < datalim) continue;
_part->zero(PART_INVIATA);
_part->rewrite();
}
delete _prog;
}
}
return FALSE;
}
bool TRip_flag::menu(MENU_TAG m)
{
if (m == BAR_ITEM(1))
return set();
return FALSE;
}