campo-sirio/cg/cg5501.cpp

71 lines
1.5 KiB
C++
Raw Normal View History

#include "cg5500.h"
#include <utility.h>
bool Visliq_app::look_lim(int m)
{
bool ok = FALSE;
_lim_r->zero();
(*_lim_anno) = _year;
(*_lim_mese) = format("%02d",m);
if (_lim->read() == NOERR)
{
_lam_r->zero();
(*_lam_anno) = _year;
(*_lam_mese) = format("%02d",m);
_lam->read();
}
return _lim->good() && _lam->good();
}
bool Visliq_app::look_del(int month, int type, bool create)
{
_del->zero();
(*_del_ditta) = format("%05ld", get_firm());
(*_del_anno) = _year;
(*_del_mese) = format("%02d", month);
(*_del_tipo) = format("%1d", type);
TString16 ctab = _del->get("CODTAB");
_del->read();
bool ok = _del->good();
if (!ok && create)
{
_del->zero();
_del->put("CODTAB",ctab);
_del->write();
}
return ok;
}
bool Visliq_app::look_lia(long ditta, int year)
{
if (year == 0) year = _year;
if (ditta == 0l) ditta = get_firm();
TString16 y; y << format("%05ld", ditta); y << year;
_lia->zero();
_lia->put("CODTAB", y);
_lia->read();
return _lia->good();
}
bool Visliq_app::is_trim(int x)
// TRUE se il mese passato e' un trimestre
{ return x == 3 || x == 6 || x == 9 || x == 12; }
bool Visliq_app::is_month_ok(int x, int month)
// TRUE se il mese passato e' compatibile con il regime
// di liquidazione e (opz) non e' maggiore di quello scelto
{
if (month == -1) month = x;
return _freqviva == "M" ?
( x > 0 && x <= month) :
( x <= month && is_trim(x));
}