Aggiustati riepiloghi quater da stampa registri

Kaciatella visualizzazione


git-svn-id: svn://10.65.10.50/trunk@1426 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
villa 1995-06-01 14:59:53 +00:00
parent 6b677c5eca
commit 18f266696b
5 changed files with 36 additions and 17 deletions

View File

@ -351,7 +351,7 @@ public:
void zero_annual (int month); void zero_annual (int month);
void recalc_att (int month, const char* codatt); void recalc_att (int month, const char* codatt);
void recalc_annual (const char* codatt); void recalc_annual (const char* codatt);
_DescrItem* recalc_rimborso(int month, const char* codatts); _DescrItem* recalc_rimborso(int month, const char* codatts, bool print);
// ricalcolo liquidazioni dai progressivi mensili // ricalcolo liquidazioni dai progressivi mensili
void write_liq (int month, const char* atts); void write_liq (int month, const char* atts);

View File

@ -175,6 +175,10 @@ bool TLiquidazione_app::update_firm(int month, bool recalc)
// azzera rimborsi // azzera rimborsi
zero_firm(month); zero_firm(month);
// casini per stampa minchie in coda ai registri
bool riepliq = FALSE;
bool stliq = FALSE;
_nditte->save_status(); _nditte->save_status();
if (_nditte->is_first_match(LF_ATTIV)) if (_nditte->is_first_match(LF_ATTIV))
{ {
@ -251,14 +255,22 @@ bool TLiquidazione_app::update_firm(int month, bool recalc)
_pla->rewrite(); _pla->rewrite();
} }
for (_reg->first(); !_isvent && _reg->good(); _reg->next())
for (_reg->first(); _reg->good(); _reg->next())
{ {
if (codatt == _reg->get("S8") && _reg->get_int("I0") == 2) if (codatt == _reg->get("S8") && _reg->get_int("I0") == 2)
_isvent = _reg->get_bool("B3"); {
if (!_isvent) _isvent = _reg->get_bool("B3");
if (!riepliq) riepliq = _reg->get_bool("B6");
if (!stliq) stliq = _reg->get_bool("B7");
}
} }
if (!_isregis)
stliq = riepliq = TRUE;
if (calc || !recalc) if (calc || !recalc)
if (!update_att(month, cattiv)) if (!update_att(month, cattiv) && stliq)
describe_error("Attivita' non ricalcolate: possibili errori", describe_error("Attivita' non ricalcolate: possibili errori",
codatt); codatt);
@ -271,21 +283,22 @@ bool TLiquidazione_app::update_firm(int month, bool recalc)
!_plm->get_real("R1").is_zero(); !_plm->get_real("R1").is_zero();
} }
if (month == _month) if (month == _month && riepliq)
describe_att(month,cattiv,gheravergot, '0' + (_mixed ? tipoatt : 0)); describe_att(month, cattiv, gheravergot,
'0' + (_mixed ? tipoatt : 0));
atts.add(cattiv); atts.add(cattiv);
cattivs.add(cattiv); cattivs.add(cattiv);
} // for tipoatt } // for tipoatt
// se attivita' mista stampa riepilogo // se attivita' mista stampa riepilogo
if (_mixed && month == _month) if (_mixed && month == _month && riepliq)
describe_att(month,cattivs, TRUE, 'M'); describe_att(month,cattivs, TRUE, 'M');
} }
while (_nditte->next_match(LF_ATTIV)); while (_nditte->next_match(LF_ATTIV));
// se quater stampa riepilogo // se quater stampa riepilogo
if (quater && month == _month) if (quater && month == _month && riepliq)
describe_att(month,atts, TRUE, 'Q'); describe_att(month,atts, TRUE, 'Q');
// occorre poterla chiamare altre volte con mesi diversi // occorre poterla chiamare altre volte con mesi diversi
@ -303,10 +316,10 @@ bool TLiquidazione_app::update_firm(int month, bool recalc)
// unica nel suo genere, recalc_rimborso ritorna // unica nel suo genere, recalc_rimborso ritorna
// un bel descritem (NULL se non si rimborsa un cas) // un bel descritem (NULL se non si rimborsa un cas)
// da passare a describe_liq // da passare a describe_liq
rimb_d = recalc_rimborso(month,atts); rimb_d = recalc_rimborso(month,atts, stliq);
} }
if (month == _month) if (month == _month && stliq)
{ {
describe_firm(month); describe_firm(month);
describe_liq(_month, atts, _isregis ? NULL : rimb_d); describe_liq(_month, atts, _isregis ? NULL : rimb_d);

View File

@ -264,7 +264,8 @@ public:
}; };
_DescrItem* TLiquidazione_app::recalc_rimborso(int month, const char* codatts) _DescrItem* TLiquidazione_app::recalc_rimborso(int month, const char* codatts,
bool stliq)
{ {
// calcola condizioni per il diritto al rimborso infracazzuale // calcola condizioni per il diritto al rimborso infracazzuale
// chiamata soltanto per i trimestri anche se annuale // chiamata soltanto per i trimestri anche se annuale
@ -292,7 +293,7 @@ _DescrItem* TLiquidazione_app::recalc_rimborso(int month, const char* codatts)
} }
// condizione 1 // condizione 1
if (!vol_aff.is_zero() && (es_ni/vol_aff) > MIN_PARTE_ESENTE) if (stliq && !vol_aff.is_zero() && (es_ni/vol_aff) > MIN_PARTE_ESENTE)
{ {
rimborsami = TRUE; rimborsami = TRUE;
d = new _DescrItem(RIMBORSO); d = new _DescrItem(RIMBORSO);
@ -462,7 +463,7 @@ _DescrItem* TLiquidazione_app::recalc_rimborso(int month, const char* codatts)
alv = ivav/vtot; alv.round(2); alv = ivav/vtot; alv.round(2);
ala = ivaa/atot; ala.round(2); ala = ivaa/atot; ala.round(2);
if ((ala - alv) > SOGLIA_MAGGIORE_ALIQUOTA_DEL_CAZZO_PER_AVER_DIRITTO_AL_RIMBORSO) if (stliq && (ala - alv) > SOGLIA_MAGGIORE_ALIQUOTA_DEL_CAZZO_PER_AVER_DIRITTO_AL_RIMBORSO)
{ {
rimborsami = TRUE; rimborsami = TRUE;
if (d == NULL) d = new _DescrItem(RIMBORSO); if (d == NULL) d = new _DescrItem(RIMBORSO);

View File

@ -1412,7 +1412,7 @@ bool TLiquidazione_app::set_annual(_DescrItem& d)
int row = get_maxrow()+1; int row = get_maxrow()+1;
if (d._f0 & IS_PRORATA) if (d._f0 & IS_PRORATA)
{ {
set_bookmark("Calcolo pro-rata", _firm_bookmark); set_bookmark("Calcolo pro-rata", _att_bookmark);
ret = TRUE; ret = TRUE;
set_print_zero(TRUE); set_print_zero(TRUE);

View File

@ -425,6 +425,11 @@ bool Visliq_app::vis_liq()
select_butt(m); select_butt(m);
else if (k == K_ENTER) else if (k == K_ENTER)
{ {
if (m.get(F_CODDITTA).empty() || m.get(F_RAGSOC).empty())
{
beep();
continue;
}
long dtt = m.get_long(F_CODDITTA); long dtt = m.get_long(F_CODDITTA);
set_firm(dtt); set_firm(dtt);