From 78668f5c249da68541e084143adb43367072cca8 Mon Sep 17 00:00:00 2001 From: cris Date: Tue, 23 Feb 1999 14:01:37 +0000 Subject: [PATCH] Patch level : Files correlati : Ricompilazione Demo : [ ] Commento : Scadenze di don.: possibilita' si selezionare i soggetti che hanno fatto l'ultima donazione in un punto definito, oppure hanno quel punto di prelievo preferito (se hanno 0 donazioni) git-svn-id: svn://10.65.10.50/trunk@7855 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- at/at4100.cpp | 32 +++++++++++++++++++++++++++++++- at/at4100a.h | 2 ++ at/at4100a.uml | 21 +++++++++++++++++++++ 3 files changed, 54 insertions(+), 1 deletion(-) diff --git a/at/at4100.cpp b/at/at4100.cpp index 447c9d2a5..01c6ac1dc 100755 --- a/at/at4100.cpp +++ b/at/at4100.cpp @@ -4,6 +4,7 @@ #include #include "soggetti.h" +#include "donaz.h" #include "sezioni.h" #include @@ -52,6 +53,7 @@ class TStampaScadenze : public TPrintapp { TRelation* _rel; TMask* _msk; + TLocalisamfile* _donaz; TScadenze_form* _form_eti; TScadenze_form* _form_car; TScadenze_form* _form_per; @@ -61,7 +63,7 @@ class TStampaScadenze : public TPrintapp TDate _dataini, _datafin, _dataultid; int _intminconv; bool _usomodo, _usasez; - TString16 _giorni; + TString16 _giorni, _punto; TString16 _procdon, _modo, _ab01, _ab02, _ab03, _rh; ts _tipostampa; TString16 _codsez, _codsot, _orario, _datacart; @@ -441,6 +443,28 @@ bool TStampaScadenze::filter_func_scadenze(const TRelation* rel) } filtrato = almenoungiorno; } + if (filtrato && !app()._punto.blank()) + { + TDate dataultima(NULLDATE); + if (app()._procdon == IDON_SI) + dataultima = sog.get(SOG_DATAULTSI); + else + dataultima = sog.get(SOG_DATAULTAF); + if (dataultima.ok()) + { + TLocalisamfile donaz(LF_DONAZ); + donaz.setkey(2); + donaz.zero(); + donaz.put(DON_DATADON, dataultima); + donaz.put(DON_CODICE, sog.get(SOG_CODICE)); + if (donaz.read() == NOERR) + filtrato = (donaz.get(DON_LUOGODON) == app()._punto); + else + filtrato = (sog.get(SOG_PUNTORACC) == app()._punto); + } + else + filtrato = (sog.get(SOG_PUNTORACC) == app()._punto); + } return filtrato; } @@ -495,6 +519,9 @@ bool TStampaScadenze::preprocess_page(int file, int counter) if (_tipostampa==etichette) if (printer().rows_left() < _form_eti->get_body().height()) printer().formfeed(); + if (_tipostampa==personale) + if (printer().rows_left() < _form_per->get_body().height()) + printer().formfeed(); return TRUE; } @@ -598,6 +625,7 @@ bool TStampaScadenze::set_print(int m) _ab02 = _msk->get(F_AB02); _ab03 = _msk->get(F_AB03); _rh = _msk->get(F_RHANTID); + _punto = _msk->get(F_PUNTO); _giorni = "NNNNNNN"; if (_msk->get_bool(F_GPD_LUN)) _giorni[0] = 'X'; @@ -748,6 +776,7 @@ bool TStampaScadenze::user_create() _rel->add("LCP", "CODTAB==DOM_CODLOC",1,0,ALIAS_LCPDOM); _rel->add(LF_COMUNI, "COM==DOM_CODCOM",1,0,ALIAS_COMDOM); _rel->add(LF_SEZIONI, "CODSEZ==CODSEZ|CODSOT==CODSOT"); + _donaz = new TLocalisamfile(LF_DONAZ); add_cursor(new TCursor(_rel, "", 3)); _msk = new TMask("at4100a"); TConfig config(CONFIG_STUDIO); @@ -767,6 +796,7 @@ bool TStampaScadenze::user_destroy() delete _form_car; delete _form_eti; delete _msk; + delete _donaz; delete _rel; return TRUE; } diff --git a/at/at4100a.h b/at/at4100a.h index 01e7207a1..9b3ecb7e7 100755 --- a/at/at4100a.h +++ b/at/at4100a.h @@ -42,6 +42,8 @@ #define F_AB03 317 #define F_RHANTID 318 #define F_INTMINCONV 319 +#define F_PUNTO 320 +#define F_D_PUNTO 321 #define F_ELENCO 401 #define F_COMPLETO 402 diff --git a/at/at4100a.uml b/at/at4100a.uml index 5c0fa3632..c4127a206 100755 --- a/at/at4100a.uml +++ b/at/at4100a.uml @@ -403,5 +403,26 @@ BEGIN PROMPT 54 15 "Int.min.conv. " END +STRING F_PUNTO 4 +BEGIN + PROMPT 2 17 "Punto di prelievo " + FLAGS "U" + USE LDN + INPUT CODTAB F_PUNTO + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_PUNTO CODTAB + OUTPUT F_D_PUNTO S0 + CHECKTYPE NORMAL + WARNING "Codice non presente" + HELP "Punto di prelievo per la convocazione" +END + +STRING F_D_PUNTO 50 +BEGIN + PROMPT 27 17 "" + FLAGS "D" +END + ENDPAGE ENDMASK