From 6caf3d94761aa61a0c2b52a45906e58a2288227e Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 26 Jan 1995 18:06:15 +0000 Subject: [PATCH] Sostituito anno con attuale / precedente git-svn-id: svn://10.65.10.50/trunk@923 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ba/ba4600.cpp | 43 +++++++++++++++++++++++++++++++++++++++++ ba/ba4600a.uml | 52 +++++++++++++++++++++++++------------------------- 2 files changed, 69 insertions(+), 26 deletions(-) diff --git a/ba/ba4600.cpp b/ba/ba4600.cpp index 548514c5b..315eaa885 100755 --- a/ba/ba4600.cpp +++ b/ba/ba4600.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include "ba4.h" #include "ba4600.h" @@ -22,6 +23,9 @@ public: virtual ~TSoci_application() {} virtual void init_query_mode(TMask& m) ; virtual void init_query_insert_mode(TMask& m) ; + virtual int rewrite(const TMask& m); + virtual int write(const TMask& m); + virtual void update_ap_socio(const TMask& m); }; void TSoci_application::init_query_mode(TMask& m) @@ -41,6 +45,45 @@ void TSoci_application::init_query_insert_mode(TMask& m) m.set(FLD_SC1_CODANAGR_ANAGR_RAGSOC, ""); } +void TSoci_application::update_ap_socio(const TMask& m) +{ + TString16 ap = m.get(FLD_SC1_ANNO); + int err = NOERR; + + if (ap == "A") + ap = "P"; + else + ap = "A"; + if (yesno_box(format("Devo aggiornare anche il socio %s", ap == "A" ? "attuale" : "precedente"))) + { + m.autosave(_rel); + _rel->lfile().put("ATTPREC", ap); + const bool was =_rel->read(_isequal, _lock) == NOERR; + m.autosave(_rel); + _rel->lfile().put("ATTPREC", ap); + if (was) err = _rel->rewrite(); + else err = _rel->write(); + if (err != NOERR) + message_box(format("Aggiornamento socio %s - Errore : %d", ap == "A" ? "attuale" : "precedente", err)); + } +} + +int TSoci_application::write(const TMask& m) +{ + const int err = TRelation_application::write(m); + if (err == NOERR) + update_ap_socio(m); + return err; +} + +int TSoci_application::rewrite(const TMask& m) +{ + const int err = TRelation_application::rewrite(m); + if (err == NOERR) + update_ap_socio(m); + return err; +} + bool TSoci_application::user_create() { _msk = new TMask("ba4600a") ; diff --git a/ba/ba4600a.uml b/ba/ba4600a.uml index d021cad96..db0713a4a 100755 --- a/ba/ba4600a.uml +++ b/ba/ba4600a.uml @@ -45,30 +45,13 @@ BEGIN MESSAGE COPY,3@ END -NUMBER FLD_SC1_ANNO 4 +LIST FLD_SC1_ANNO 12 BEGIN - PROMPT 1 3 "Anno " - FIELD LF_SOCI->ANNO - FLAGS "A" + PROMPT 1 3 "Attuale/Prec. " + FIELD LF_SOCI->ATTPREC KEY 1 - USE LF_SOCI KEY 1 - JOIN LF_ANAG TO LF_SOCI KEY 1 INTO TIPOA=TIPOASOC CODANAGR=CODANAGRSO - INPUT CODDITTA FLD_SC1_CODDITTA SELECT - INPUT TIPOASOC LST_SC1_TIPOASOC - INPUT CODANAGRSO FLD_SC1_CODANAGRSO - INPUT ANNO FLD_SC1_ANNO - DISPLAY "Tipo" TIPOASOC - DISPLAY "Codice" CODANAGRSO - DISPLAY "Ragione sociale@50" LF_ANAG->RAGSOC - DISPLAY "Anno" ANNO - DISPLAY "Quote@10" PERCQUAZ - OUTPUT FLD_SC1_CODDITTA CODDITTA - OUTPUT LST_SC1_TIPOASOC TIPOASOC - OUTPUT FLD_SC1_CODANAGRSOH CODANAGRSO - OUTPUT FLD_SC1_CODANAGR_ANAGR_RAGSOC LF_ANAG->RAGSOC - OUTPUT FLD_SC1_ANNO ANNO - CHECKTYPE REQUIRED - WARNING "Socio assente" + ITEM "A|Attuale" + ITEM "P|Precedente" MESSAGE COPY,7@ END @@ -91,7 +74,22 @@ BEGIN FIELD LF_SOCI->CODANAGRSO FLAGS "R" KEY 1 - COPY ALL FLD_SC1_ANNO + USE LF_SOCI KEY 1 + JOIN LF_ANAG TO LF_SOCI KEY 1 INTO TIPOA=TIPOASOC CODANAGR=CODANAGRSO + INPUT CODDITTA FLD_SC1_CODDITTA SELECT + INPUT ATTPREV FLD_SC1_ANNO SELECT + INPUT TIPOASOC LST_SC1_TIPOASOC + INPUT CODANAGRSO FLD_SC1_CODANAGRSO + DISPLAY "Tipo" TIPOASOC + DISPLAY "Codice" CODANAGRSO + DISPLAY "Ragione sociale@50" LF_ANAG->RAGSOC + DISPLAY "Atuale/Precedente" ATTPREC + DISPLAY "Quote@10" PERCQUAZ + OUTPUT FLD_SC1_CODDITTA CODDITTA + OUTPUT LST_SC1_TIPOASOC TIPOASOC + OUTPUT FLD_SC1_CODANAGRSOH CODANAGRSO + OUTPUT FLD_SC1_CODANAGR_ANAGR_RAGSOC LF_ANAG->RAGSOC + OUTPUT FLD_SC1_ANNO ATTPREC VALIDATE CHECK_FIELD FLD_SC1_CODANAGRSO CHECKTYPE REQUIRED MESSAGE COPY,FLD_SC1_CODANAGRSO|COPY,5@ @@ -305,10 +303,12 @@ BEGIN GROUP 4 END -NUMBER DLG_NULL 4 +LIST DLG_NULL 12 BEGIN - PROMPT 1 3 "Anno " - FLAGS "AD" + PROMPT 1 3 "Attuale/Prec. " + FLAGS "D" + ITEM "A|Attuale" + ITEM "P|Precedente" GROUP 7 END