Patch level : 1.7 at

Files correlati     : at1200a.msk at1.exe
Ricompilazione Demo : [ ]
Commento            : attribuzione complessiva benemerenze: possibilita di fare la stampa dell ben. previste (chiesto da Luzzara)


git-svn-id: svn://10.65.10.50/trunk@12249 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
cris 2004-07-20 12:00:26 +00:00
parent dc58976cd2
commit f3ab5bca70
3 changed files with 89 additions and 23 deletions

View File

@ -39,11 +39,13 @@ class TAttribuzioneBenemerenze : public TPrintapp
TString16 _gruppoazie, _oldben;
int _bonus;
TDate _dataela, _datapre;
bool _attgruppi,_anchegruppi;
bool _attgruppi,_anchegruppi, _prevista;
bool _definitiva;
TParagraph_string _cognome_nome;
int _numdon;
int _contatore;
int _progope;
protected:
virtual bool user_create();
virtual bool user_destroy();
@ -84,7 +86,7 @@ void TAttribuzioneBenemerenze::postclose_print()
}
bool TAttribuzioneBenemerenze::preprocess_page(int file, int counter)
{
{
if (file==LF_ATROPERA)
{
TRectype& recsog = current_cursor()->curr(LF_SOGGETTI);
@ -92,6 +94,35 @@ bool TAttribuzioneBenemerenze::preprocess_page(int file, int counter)
nome << " ";
nome << recsog.get(SOG_NOME);
_cognome_nome = nome;
if (_prevista)
{
int numdon = recsog.get_int(SOG_TOTDON);
if (_prevista)
{
// aggiungo le donazioni che puo' fare da oggi alla data elaborazione
const TDate oggi(TODAY);
const long giorni = _dataela - oggi;
int intervallo = 0;
if (giorni > 0)
{
const int intsi = recsog.get_int(SOG_INTSI);
const int intaf = recsog.get_int(SOG_INTAF);
if (intsi == 0)
intervallo = intaf;
else
{
if (intaf == 0)
intervallo = intsi;
else
intervallo = min(intsi, intaf);
}
if (intervallo > 0)
numdon = numdon + int(giorni / intervallo);
}
}
_numdon = numdon;
}
// salto pagina se cambio benemerenza
const TString16 tipoben = current_cursor()->curr().get(ROP_S0);
if (tipoben!=_oldben)
@ -140,6 +171,8 @@ void TAttribuzioneBenemerenze::set_page(int file, int cnt)
set_row(1,"@26g@S", FLD(LF_SOGGETTI,SOG_CATDON));
set_row(1,"@29g@S", FLD(LF_SOGGETTI,SOG_TESSAVIS));
set_row(1,"@39g@pn", FLD(LF_SOGGETTI,SOG_TOTDON,"###"));
if (_prevista)
set_row(1,"@48g#3d", &_numdon);
}
else
set_row(1,"");
@ -164,7 +197,8 @@ bool TAttribuzioneBenemerenze::set_print(int)
if (tasto == K_ENTER)
{
_oldben = "**";
_contatore = 0;
_contatore = 0;
_prevista = (_msk->get(F_SITUAZIONE)[0] == 'P');
_dataela = _msk->get(F_DATAELA);
_datapre = _msk->get(F_DATAPRE);
_attgruppi = _msk->get_bool(F_ATTGRUPPI);
@ -241,10 +275,6 @@ bool TAttribuzioneBenemerenze::set_print(int)
atopera.put(OPE_TIPOOPE,'B');
atopera.write();
TLocalisamfile atropera(LF_ATROPERA);
// cancelliamo l'elaborazione precedente
// NO! non la cancelliamo piu' cosi' perche ci possono essere le righe di altre elaborazioni (es. tessere!)
//for (atropera.first(); !atropera.eof(); atropera.next())
// atropera.remove();
TRectype& sog = _cur->curr();
long last = _cur->items();
_benem->setkey(3);
@ -270,11 +300,6 @@ bool TAttribuzioneBenemerenze::set_print(int)
{
int precsi = sog.get_int(SOG_DONPRECSI);
int precaf = sog.get_int(SOG_DONPRECAF);
//int numdon = 0;
//if (precsi!=0)
//numdon = numdon+precsi;
//if (precaf!=0)
// numdon = numdon+precaf;
int numdon = precsi + precaf;
for (int r=1; r<=_sdonazioni->rows(); r++)
{
@ -283,6 +308,29 @@ bool TAttribuzioneBenemerenze::set_print(int)
if (datadon<=_dataela)
numdon++;
}
if (_prevista)
{
// aggiungo le donazioni che puo' fare da oggi alla data elaborazione
const TDate oggi(TODAY);
const long giorni = _dataela - oggi;
int intervallo = 0;
if (giorni > 0)
{
const int intsi = sog.get_int(SOG_INTSI);
const int intaf = sog.get_int(SOG_INTAF);
if (intsi == 0)
intervallo = intaf;
else
{
if (intaf == 0)
intervallo = intsi;
else
intervallo = min(intsi, intaf);
}
if (intervallo > 0)
numdon = numdon + int(giorni / intervallo);
}
}
TString16 ultben = "**";
TRectype* key = new TRectype(LF_BENEM);
key->put(BEN_CODICE, codice);
@ -314,7 +362,6 @@ bool TAttribuzioneBenemerenze::set_print(int)
if (numdon >= bonus)
{
// controllo che non abbia ricevuto la benemerenza
//const char* tipoben = _tabben.get_hashobj()->key();
_benem->zero();
_benem->put(BEN_CODICE, codice);
_benem->put(BEN_TIPOBEN, tipoben);
@ -356,6 +403,8 @@ void TAttribuzioneBenemerenze::crea_intestazione()
TString sep(132);
sep = "ATTRIBUZIONE BENEMERENZE ";
if (_prevista)
sep << " PREVISTE ";
if (_definitiva)
sep << "DEFINITIVA";
else
@ -371,8 +420,16 @@ void TAttribuzioneBenemerenze::crea_intestazione()
sep = "";
sep.fill('-');
set_header(3, (const char *) sep);
set_header(4,"@0gCognome e nome@26gC.@29gTessera@39gTot.don.");
set_header(5,"@0-------------------------@26g--@29g--------@39g--------");
if (_prevista)
{
set_header(4,"@0gCognome e nome@26gC.@29gTessera@39gTot.don.@48gDon.pre.");
set_header(5,"@0-------------------------@26g--@29g--------@39g--------@48g--------");
}
else
{
set_header(4,"@0gCognome e nome@26gC.@29gTessera@39gTot.don.");
set_header(5,"@0-------------------------@26g--@29g--------@39g--------");
}
}
bool TAttribuzioneBenemerenze::user_create()

View File

@ -19,6 +19,7 @@
#define F_CAT6 211
#define F_D_CAT6 212
#define F_SITUAZIONE 308
#define F_DATAELA 309
#define F_DATAPRE 310
#define F_ATTGRUPPI 311

View File

@ -201,34 +201,42 @@ BEGIN
FLAGS "D"
END
GROUPBOX DLG_NULL 77 8
GROUPBOX DLG_NULL 77 9
BEGIN
PROMPT 1 9 "Opzioni per l'attribuzione"
END
LISTBOX F_SITUAZIONE 10
BEGIN
PROMPT 2 10 "Situazione "
FLAGS "U"
ITEM "A|Attuale"
ITEM "P|Prevista"
END
DATE F_DATAELA
BEGIN
PROMPT 2 10 "Data elaborazione "
PROMPT 2 11 "Data elaborazione "
CHECKTYPE REQUIRED
HELP "Data di riferimento per l'attribuzione delle benemerenze"
END
DATE F_DATAPRE
BEGIN
PROMPT 2 11 "Data prevista consegna "
PROMPT 2 12 "Data prevista consegna "
HELP "Data di prevista consegna"
END
BOOLEAN F_ATTGRUPPI
BEGIN
PROMPT 2 12 "Attribuzione fatta dai gruppi aziendali"
PROMPT 2 13 "Attribuzione fatta dai gruppi aziendali"
MESSAGE TRUE ENABLE,1@|RESET,F_ANCHEGRUPPI|DISABLE,F_ANCHEGRUPPI
MESSAGE FALSE RESET,1@|DISABLE,1@|ENABLE,F_ANCHEGRUPPI
END
STRING F_GRUPPOAZIE 4
BEGIN
PROMPT 2 13 "Gruppo az. che attribuisce "
PROMPT 2 14 "Gruppo az. che attribuisce "
FLAGS "U"
USE GAZ
INPUT CODTAB F_GRUPPOAZIE
@ -246,7 +254,7 @@ END
STRING F_D_GRUPPOAZIE 30
BEGIN
PROMPT 37 13 ""
PROMPT 37 14 ""
FLAGS "U"
USE GAZ KEY 2
INPUT S0 F_D_GRUPPOAZIE
@ -261,12 +269,12 @@ END
BOOLEAN F_ANCHEGRUPPI
BEGIN
PROMPT 2 14 "Includi soggetti appartenenti a gruppi aziendali"
PROMPT 2 15 "Includi soggetti appartenenti a gruppi aziendali"
END
BOOLEAN F_DEFINITIVA
BEGIN
PROMPT 2 15 "Attribuzione definitiva"
PROMPT 2 16 "Attribuzione definitiva"
HELP "Se attribuzione definitiva, le benemerenze stampate verranno registrate"
END