Patch level : 10.0 312

Files correlati     : cg0.exe
Ricompilazione Demo : [ ]
Commento            :
0001297: controllo date in effetti
Nell'applicazione Clienti/Fornitori, pateletta 'Banche\Effetti', nei periodi di non accettazione non vengono efeettuati controlli sulle date a tal punto che risulta fattibile inserire data 31 febbraio.


git-svn-id: svn://10.65.10.50/trunk@18914 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2009-05-22 14:59:30 +00:00
parent 66ddbab714
commit 19de246317

View File

@ -969,11 +969,37 @@ bool TClifo_application::effetti_notify(TSheet_field& pnae, int r, KEY key)
if (key == K_INS)
{
TClifo_application& a = app();
TRectype& cfven = a.get_relation()->curr(LF_CFVEN);
int mass_len = cfven.length(CFV_NONACCEFF); // Lunghezza campo
int mass_rig = mass_len / 11; // Numero di periodi ivi salvabili
return pnae.items() < mass_rig; // Non accettare righe che non si possono salvare
const TRectype& cfven = a.get_relation()->curr(LF_CFVEN);
const int mass_len = cfven.length(CFV_NONACCEFF); // Lunghezza campo
const int mass_rig = mass_len / 11; // Numero di periodi ivi salvabili
return pnae.items() < mass_rig; // Non accettare righe che non si possono salvare
}
if (key == K_ENTER)
{
// Controlla che i giorni superiori a 29 appartengano veramente al mese corrispondente
TToken_string& row = pnae.row(r);
bool dirty = false;
for (int i = 0; i <= 4; i += 2)
{
int gg; row.get(i, gg);
int mm; row.get(i+1, mm);
if (gg > 29)
{
TDate d(1, mm, 2000); // Scelgo un anno bisestile arbitrario
d.set_end_month();
if (d.day() < gg)
{
gg = d.day();
row.add(gg, i);
dirty = true;
}
}
}
if (dirty)
pnae.force_update(r);
}
return true;
}
@ -1004,8 +1030,7 @@ bool TClifo_application::user_create() // initvar e arrmask
TSheet_field& pnae = _msk->sfield(F_NONACCEFF);
pnae.set_notify(effetti_notify);
TConfig config(CONFIG_STUDIO);
_savenew = !config.get_bool("Cg02SN");
_savenew = !ini_get_bool(CONFIG_STUDIO, "cg", "Cg02SN");
return true;
}