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
This commit is contained in:
cris 1999-02-23 14:01:37 +00:00
parent c52b7ebaf1
commit 78668f5c24
3 changed files with 54 additions and 1 deletions

View File

@ -4,6 +4,7 @@
#include <utility.h>
#include "soggetti.h"
#include "donaz.h"
#include "sezioni.h"
#include <comuni.h>
@ -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;
}

View File

@ -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

View File

@ -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