From 078b1ebf17900f784fc5c70395d067f67253ab58 Mon Sep 17 00:00:00 2001 From: cris Date: Fri, 13 Feb 1998 13:28:00 +0000 Subject: [PATCH] Sblocco sospesi: aggiunto ricalcolo della situazione dopo l'inserimento della nuova idoneita Patch level : Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/trunk@6183 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- at/at0700.cpp | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/at/at0700.cpp b/at/at0700.cpp index 353cbc010..4cccd229c 100755 --- a/at/at0700.cpp +++ b/at/at0700.cpp @@ -39,6 +39,7 @@ class TSbloccoSospesi : public TPrintapp bool _definitiva, _anchedimessi; TParagraph_string _cognome_nome, _operazione; TString16 _finesospensione; + int _intsi_f1, _intsi_f2, _intsi_m, _intaf_m, _etadonne; static bool filter_func_sbloccosospesi(const TRelation* rel); @@ -185,8 +186,7 @@ bool TSbloccoSospesi::preprocess_page(int file, int counter) reccon.put(CON_TIPOCON, FINE_SOSPENSIONE); _scontrolli->add_row(reccon); _scontrolli->rewrite(); - //con_reord(recsog, _scontrolli); - current_cursor()->file().rewrite(); + //current_cursor()->file().rewrite(); } if ((statosi == "SO" && datafinesi.ok() && datafinesi <= app()._data_sblocco) || (statoaf == "SO" && datafineaf.ok() && datafineaf <= app()._data_sblocco)) { @@ -196,7 +196,6 @@ bool TSbloccoSospesi::preprocess_page(int file, int counter) int err = _sidoneita->read(key); if (statosi == "SO" && datafinesi.ok() && datafinesi <= app()._data_sblocco) { - //int err = _sidoneita->read(key); int progido = _sidoneita->rows()+1; TRectype& recido = _idoneita->curr(); recido.zero(); @@ -206,12 +205,26 @@ bool TSbloccoSospesi::preprocess_page(int file, int counter) recido.put(IDO_IDO_SOS, "ID"); recido.put(IDO_TIPOIDO, "SI"); recido.put(IDO_INTERVALLO, recsog.get(SOG_INTSI)); + if (recsog.get_int(SOG_INTSI) == 0) + { + TString16 sesso = recsog.get(SOG_SESSO); + if (sesso == 2) + { + TDate datanasc = recsog.get_date(SOG_DATANASC); + int eta = _data_stampa.year() - datanasc.year(); + if(eta <= etadonne) + recido.put(IDO_INTERVALLO, _intsi_f1); + else + recido.put(IDO_INTERVALLO, _intsi_f2); + } + else + recido.put(IDO_INTERVALLO, _intsi_m); + } _sidoneita->add_row(recido); _sidoneita->rewrite(); } if (statoaf == "SO" && datafineaf.ok() && datafineaf <= app()._data_sblocco) { - //int err = _sidoneita->read(key); int progido = _sidoneita->rows()+1; TRectype& recido = _idoneita->curr(); recido.zero(); @@ -221,10 +234,12 @@ bool TSbloccoSospesi::preprocess_page(int file, int counter) recido.put(IDO_IDO_SOS, "ID"); recido.put(IDO_TIPOIDO, "AF"); recido.put(IDO_INTERVALLO, recsog.get(SOG_INTAF)); + if (recsog.get_int(SOG_INTAF) == 0) + recido.put(IDO_INTERVALLO, _intaf_m); _sidoneita->add_row(recido); _sidoneita->rewrite(); } - //ido_reord(recsog, _sidoneita); + con_reord(recsog, _scontrolli, _sidoneita); current_cursor()->file().rewrite(); } } @@ -385,6 +400,13 @@ bool TSbloccoSospesi::user_create() _idoneita = new TLocalisamfile(LF_IDONEITA); _scontrolli = new TRecord_array(LF_CONTSAN, CON_PROGCON); _sidoneita = new TRecord_array(LF_IDONEITA, IDO_PROGIDO); + + TConfig config(CONFIG_STUDIO); + _etadonne = config.get_int("EtaDonne"); + _intsi_f1 = config.get_int("IntSI_F1"); + _intsi_f2 = config.get_int("IntSI_F2"); + _intsi_m = config.get_int("IntSI_M"); + _intaf_m = config.get_int("IntAF_M"); return TRUE; }