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; TString16 _gruppoazie, _oldben;
int _bonus; int _bonus;
TDate _dataela, _datapre; TDate _dataela, _datapre;
bool _attgruppi,_anchegruppi; bool _attgruppi,_anchegruppi, _prevista;
bool _definitiva; bool _definitiva;
TParagraph_string _cognome_nome; TParagraph_string _cognome_nome;
int _numdon;
int _contatore; int _contatore;
int _progope; int _progope;
protected: protected:
virtual bool user_create(); virtual bool user_create();
virtual bool user_destroy(); virtual bool user_destroy();
@ -92,6 +94,35 @@ bool TAttribuzioneBenemerenze::preprocess_page(int file, int counter)
nome << " "; nome << " ";
nome << recsog.get(SOG_NOME); nome << recsog.get(SOG_NOME);
_cognome_nome = 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 // salto pagina se cambio benemerenza
const TString16 tipoben = current_cursor()->curr().get(ROP_S0); const TString16 tipoben = current_cursor()->curr().get(ROP_S0);
if (tipoben!=_oldben) 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,"@26g@S", FLD(LF_SOGGETTI,SOG_CATDON));
set_row(1,"@29g@S", FLD(LF_SOGGETTI,SOG_TESSAVIS)); set_row(1,"@29g@S", FLD(LF_SOGGETTI,SOG_TESSAVIS));
set_row(1,"@39g@pn", FLD(LF_SOGGETTI,SOG_TOTDON,"###")); set_row(1,"@39g@pn", FLD(LF_SOGGETTI,SOG_TOTDON,"###"));
if (_prevista)
set_row(1,"@48g#3d", &_numdon);
} }
else else
set_row(1,""); set_row(1,"");
@ -165,6 +198,7 @@ bool TAttribuzioneBenemerenze::set_print(int)
{ {
_oldben = "**"; _oldben = "**";
_contatore = 0; _contatore = 0;
_prevista = (_msk->get(F_SITUAZIONE)[0] == 'P');
_dataela = _msk->get(F_DATAELA); _dataela = _msk->get(F_DATAELA);
_datapre = _msk->get(F_DATAPRE); _datapre = _msk->get(F_DATAPRE);
_attgruppi = _msk->get_bool(F_ATTGRUPPI); _attgruppi = _msk->get_bool(F_ATTGRUPPI);
@ -241,10 +275,6 @@ bool TAttribuzioneBenemerenze::set_print(int)
atopera.put(OPE_TIPOOPE,'B'); atopera.put(OPE_TIPOOPE,'B');
atopera.write(); atopera.write();
TLocalisamfile atropera(LF_ATROPERA); 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(); TRectype& sog = _cur->curr();
long last = _cur->items(); long last = _cur->items();
_benem->setkey(3); _benem->setkey(3);
@ -270,11 +300,6 @@ bool TAttribuzioneBenemerenze::set_print(int)
{ {
int precsi = sog.get_int(SOG_DONPRECSI); int precsi = sog.get_int(SOG_DONPRECSI);
int precaf = sog.get_int(SOG_DONPRECAF); 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; int numdon = precsi + precaf;
for (int r=1; r<=_sdonazioni->rows(); r++) for (int r=1; r<=_sdonazioni->rows(); r++)
{ {
@ -283,6 +308,29 @@ bool TAttribuzioneBenemerenze::set_print(int)
if (datadon<=_dataela) if (datadon<=_dataela)
numdon++; 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 = "**"; TString16 ultben = "**";
TRectype* key = new TRectype(LF_BENEM); TRectype* key = new TRectype(LF_BENEM);
key->put(BEN_CODICE, codice); key->put(BEN_CODICE, codice);
@ -314,7 +362,6 @@ bool TAttribuzioneBenemerenze::set_print(int)
if (numdon >= bonus) if (numdon >= bonus)
{ {
// controllo che non abbia ricevuto la benemerenza // controllo che non abbia ricevuto la benemerenza
//const char* tipoben = _tabben.get_hashobj()->key();
_benem->zero(); _benem->zero();
_benem->put(BEN_CODICE, codice); _benem->put(BEN_CODICE, codice);
_benem->put(BEN_TIPOBEN, tipoben); _benem->put(BEN_TIPOBEN, tipoben);
@ -356,6 +403,8 @@ void TAttribuzioneBenemerenze::crea_intestazione()
TString sep(132); TString sep(132);
sep = "ATTRIBUZIONE BENEMERENZE "; sep = "ATTRIBUZIONE BENEMERENZE ";
if (_prevista)
sep << " PREVISTE ";
if (_definitiva) if (_definitiva)
sep << "DEFINITIVA"; sep << "DEFINITIVA";
else else
@ -371,9 +420,17 @@ void TAttribuzioneBenemerenze::crea_intestazione()
sep = ""; sep = "";
sep.fill('-'); sep.fill('-');
set_header(3, (const char *) sep); set_header(3, (const char *) sep);
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(4,"@0gCognome e nome@26gC.@29gTessera@39gTot.don.");
set_header(5,"@0-------------------------@26g--@29g--------@39g--------"); set_header(5,"@0-------------------------@26g--@29g--------@39g--------");
} }
}
bool TAttribuzioneBenemerenze::user_create() bool TAttribuzioneBenemerenze::user_create()
{ {

View File

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

View File

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