From 19de246317cff9ac858f74feba0c469f940cd74b Mon Sep 17 00:00:00 2001 From: guy Date: Fri, 22 May 2009 14:59:30 +0000 Subject: [PATCH] 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 --- cg/cg0200.cpp | 37 +++++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/cg/cg0200.cpp b/cg/cg0200.cpp index 743db76d7..4d8bf41da 100755 --- a/cg/cg0200.cpp +++ b/cg/cg0200.cpp @@ -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; }