1996-07-30 14:46:52 +00:00
# include <form.h>
1997-03-20 10:33:28 +00:00
# include <mask.h>
1996-07-30 14:46:52 +00:00
# include <printapp.h>
1998-02-04 13:46:27 +00:00
# include <progind.h>
1997-03-20 10:33:28 +00:00
# include <recarray.h>
# include <tabutil.h>
# include <utility.h>
1996-07-30 14:46:52 +00:00
# include "at1.h"
1997-03-20 10:33:28 +00:00
// nomi campi maschera
1996-07-30 14:46:52 +00:00
# include "at1200a.h"
1997-03-20 10:33:28 +00:00
// nomi dei campi
# include "soggetti.h"
# include "donaz.h"
# include "benem.h"
1997-12-05 16:26:15 +00:00
# include "sezioni.h"
1998-02-04 13:46:27 +00:00
# include "atopera.h"
# include "atropera.h"
1997-12-05 16:26:15 +00:00
# define ALIAS_GAZ 300
1996-07-30 14:46:52 +00:00
1997-08-01 14:49:53 +00:00
class TAttribuzioneBenemerenze : public TPrintapp
1996-07-30 14:46:52 +00:00
{
1997-03-20 10:33:28 +00:00
TMask * _msk ;
TRelation * _rel ;
TLocalisamfile * _donaz ;
TLocalisamfile * _benem ;
1998-02-04 13:46:27 +00:00
TLocalisamfile * _atopera ;
TLocalisamfile * _atropera ;
TLocalisamfile * _sezioni ;
1997-03-20 10:33:28 +00:00
TRecord_array * _sdonazioni ;
TRecord_array * _sbenemerenze ;
1998-02-04 13:46:27 +00:00
TCursor * _cur ;
1997-12-05 16:26:15 +00:00
TAssoc_array _catdon ;
1998-02-04 13:46:27 +00:00
TAssoc_array _tabben ;
TString16 _gruppoazie , _oldben ;
1998-02-23 08:23:18 +00:00
int _bonus ;
1997-12-05 16:26:15 +00:00
TDate _dataela , _datapre ;
2007-03-06 16:37:44 +00:00
bool _attgruppi , _anchegruppi , _prevista , _nuovicriteri ;
1997-12-05 16:26:15 +00:00
bool _definitiva ;
1997-03-20 10:33:28 +00:00
TParagraph_string _cognome_nome ;
2004-07-20 12:00:26 +00:00
int _numdon ;
1997-12-05 16:26:15 +00:00
int _contatore ;
2000-03-03 11:47:59 +00:00
int _progope ;
2004-07-20 12:00:26 +00:00
1997-03-20 10:33:28 +00:00
protected :
virtual bool user_create ( ) ;
virtual bool user_destroy ( ) ;
virtual bool set_print ( int m ) ;
virtual void set_page ( int file , int cnt ) ;
virtual bool preprocess_page ( int file , int counter ) ;
2000-03-03 11:47:59 +00:00
virtual void postclose_print ( ) ;
1997-03-20 10:33:28 +00:00
1996-07-30 14:46:52 +00:00
public :
void crea_intestazione ( ) ;
1998-02-04 13:46:27 +00:00
void header_ben ( const TString16 tipoben ) ;
TAttribuzioneBenemerenze ( ) : _cognome_nome ( " " , 25 ) { }
1996-07-30 14:46:52 +00:00
} ;
1997-08-01 14:49:53 +00:00
HIDDEN inline TAttribuzioneBenemerenze & app ( ) { return ( TAttribuzioneBenemerenze & ) main_app ( ) ; }
1996-07-30 14:46:52 +00:00
2000-03-03 11:47:59 +00:00
void TAttribuzioneBenemerenze : : postclose_print ( )
{
TLocalisamfile atropera ( LF_ATROPERA ) ;
atropera . setkey ( 1 ) ;
atropera . zero ( ) ;
atropera . put ( ROP_PROGOPE , _progope ) ;
TRectype r ( atropera . curr ( ) ) ;
for ( atropera . read ( ) ; ! atropera . eof ( ) ; atropera . next ( ) )
{
if ( atropera . curr ( ) ! = r ) break ;
atropera . remove ( ) ;
}
if ( ! _definitiva )
{
TLocalisamfile atopera ( LF_ATOPERA ) ;
atopera . setkey ( 1 ) ;
atopera . zero ( ) ;
atopera . put ( OPE_PROGOPE , _progope ) ;
if ( atopera . read ( ) = = NOERR )
atopera . remove ( ) ;
}
}
1997-08-01 14:49:53 +00:00
bool TAttribuzioneBenemerenze : : preprocess_page ( int file , int counter )
2004-07-20 12:00:26 +00:00
{
1998-02-23 08:23:18 +00:00
if ( file = = LF_ATROPERA )
1996-07-30 14:46:52 +00:00
{
1998-02-23 08:23:18 +00:00
TRectype & recsog = current_cursor ( ) - > curr ( LF_SOGGETTI ) ;
TString80 nome = recsog . get ( SOG_COGNOME ) ;
nome < < " " ;
nome < < recsog . get ( SOG_NOME ) ;
_cognome_nome = nome ;
2004-07-20 12:00:26 +00:00
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 ;
}
1998-02-23 08:23:18 +00:00
// salto pagina se cambio benemerenza
const TString16 tipoben = current_cursor ( ) - > curr ( ) . get ( ROP_S0 ) ;
if ( tipoben ! = _oldben )
{
if ( _oldben ! = " ** " )
printer ( ) . formfeed ( ) ;
_oldben = tipoben ;
header_ben ( tipoben ) ;
}
1998-10-16 14:15:16 +00:00
if ( _definitiva )
1998-02-23 08:23:18 +00:00
{
const long codice = recsog . get_long ( SOG_CODICE ) ;
TRectype * key = new TRectype ( LF_BENEM ) ;
key - > put ( BEN_CODICE , codice ) ;
1998-10-16 14:15:16 +00:00
int err = _sbenemerenze - > read ( key ) ;
2001-10-22 09:07:33 +00:00
int r = _sbenemerenze - > rows ( ) ;
TRectype & rec = _sbenemerenze - > row ( r + 1 , TRUE ) ;
1998-02-23 08:23:18 +00:00
2001-10-22 09:07:33 +00:00
TString16 codsez = recsog . get ( SOG_CODSEZ ) ;
TString16 codsot = recsog . get ( SOG_CODSOT ) ;
TString16 gruppoazie = recsog . get ( SOG_GRUPPOAZIE ) ;
1998-02-23 08:23:18 +00:00
2001-10-22 09:07:33 +00:00
rec . put ( BEN_TIPOBEN , tipoben ) ;
rec . put ( BEN_DATAMAT , recsog . get ( SOG_DATAULTDON ) ) ;
rec . put ( BEN_BONUS , recsog . get ( SOG_TOTDON ) ) ;
rec . put ( BEN_DATABEN , _dataela ) ;
rec . put ( BEN_DATACON , _datapre ) ;
if ( _attgruppi )
rec . put ( BEN_GRUPPOAZIE , gruppoazie ) ;
else
{
rec . put ( BEN_CODSEZ , codsez ) ;
rec . put ( BEN_CODSOT , codsot ) ;
}
err = _sbenemerenze - > rewrite ( ) ;
1998-02-23 08:23:18 +00:00
}
}
1997-03-20 10:33:28 +00:00
return TRUE ;
1996-07-30 14:46:52 +00:00
}
1997-08-01 14:49:53 +00:00
void TAttribuzioneBenemerenze : : set_page ( int file , int cnt )
1998-02-04 13:46:27 +00:00
{
if ( file = = LF_SOGGETTI )
{
set_row ( 1 , " @0g#a " , & _cognome_nome ) ;
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 , " ### " ) ) ;
2007-03-06 16:37:44 +00:00
set_row ( 1 , " @48g@ld " , FLD ( LF_SOGGETTI , SOG_DATAISC ) ) ;
2004-07-20 12:00:26 +00:00
if ( _prevista )
2007-03-06 16:37:44 +00:00
set_row ( 1 , " @59g#3d " , & _numdon ) ;
1998-02-04 13:46:27 +00:00
}
else
set_row ( 1 , " " ) ;
1997-03-20 10:33:28 +00:00
}
1998-02-04 13:46:27 +00:00
void TAttribuzioneBenemerenze : : header_ben ( const TString16 tipoben )
1996-07-30 14:46:52 +00:00
{
1997-03-20 10:33:28 +00:00
TString intestazione ( 132 ) ;
1998-02-04 13:46:27 +00:00
intestazione = " Benemerenza " ;
intestazione < < tipoben ;
intestazione < < " " ;
2002-10-24 09:03:56 +00:00
intestazione < < cache ( ) . get ( " BNZ " , tipoben ) . get ( " S0 " ) ;
1997-03-20 10:33:28 +00:00
intestazione . center_just ( ) ;
set_header ( 1 , " @0g%s " , ( const char * ) intestazione ) ;
return ;
1996-07-30 14:46:52 +00:00
}
1997-08-01 14:49:53 +00:00
bool TAttribuzioneBenemerenze : : set_print ( int )
1996-07-30 14:46:52 +00:00
{
KEY tasto ;
tasto = _msk - > run ( ) ;
1997-03-20 10:33:28 +00:00
if ( tasto = = K_ENTER )
{
2007-03-06 16:37:44 +00:00
const TDate datarif = TDate ( " 16/05/2004 " ) ;
1998-02-04 13:46:27 +00:00
_oldben = " ** " ;
2004-07-20 12:00:26 +00:00
_contatore = 0 ;
_prevista = ( _msk - > get ( F_SITUAZIONE ) [ 0 ] = = ' P ' ) ;
1997-12-05 16:26:15 +00:00
_dataela = _msk - > get ( F_DATAELA ) ;
_datapre = _msk - > get ( F_DATAPRE ) ;
1998-10-16 14:15:16 +00:00
_attgruppi = _msk - > get_bool ( F_ATTGRUPPI ) ;
1997-12-05 16:26:15 +00:00
_gruppoazie = _msk - > get ( F_GRUPPOAZIE ) ;
_anchegruppi = _msk - > get_bool ( F_ANCHEGRUPPI ) ;
_definitiva = _msk - > get_bool ( F_DEFINITIVA ) ;
2007-03-06 16:37:44 +00:00
_nuovicriteri = _msk - > get_bool ( F_NUOVICRITERI ) ;
1998-02-04 13:46:27 +00:00
_catdon . destroy ( ) ;
1997-12-05 16:26:15 +00:00
const TString16 catpri = _msk - > get ( F_CAT1 ) ;
const TString16 catsec = _msk - > get ( F_CAT2 ) ;
const TString16 catter = _msk - > get ( F_CAT3 ) ;
const TString16 catqua = _msk - > get ( F_CAT4 ) ;
const TString16 catqui = _msk - > get ( F_CAT5 ) ;
const TString16 catses = _msk - > get ( F_CAT6 ) ;
2000-10-10 08:36:57 +00:00
if ( catpri . not_empty ( ) )
1997-12-05 16:26:15 +00:00
_catdon . add ( ( const char * ) catpri ) ;
2000-10-10 08:36:57 +00:00
if ( catsec . not_empty ( ) )
1997-12-05 16:26:15 +00:00
_catdon . add ( ( const char * ) catsec ) ;
2000-10-10 08:36:57 +00:00
if ( catter . not_empty ( ) )
1997-12-05 16:26:15 +00:00
_catdon . add ( ( const char * ) catter ) ;
2000-10-10 08:36:57 +00:00
if ( catqua . not_empty ( ) )
1997-12-05 16:26:15 +00:00
_catdon . add ( ( const char * ) catqua ) ;
2000-10-10 08:36:57 +00:00
if ( catqui . not_empty ( ) )
1997-12-05 16:26:15 +00:00
_catdon . add ( ( const char * ) catqui ) ;
2000-10-10 08:36:57 +00:00
if ( catses . not_empty ( ) )
1997-12-05 16:26:15 +00:00
_catdon . add ( ( const char * ) catses ) ;
1998-02-04 13:46:27 +00:00
_tabben . destroy ( ) ;
TTable ben ( " BNZ " ) ;
for ( ben . first ( ) ; ! ben . eof ( ) ; ben . next ( ) )
{
TString16 codben = ben . get ( " CODTAB " ) ;
int numdonben = ben . get_int ( " I0 " ) ;
2007-03-06 16:37:44 +00:00
int m_numdon = ben . get_int ( " I1 " ) ;
int m_anni = ben . get_int ( " I2 " ) ;
TToken_string * condizioni = new TToken_string ( ) ; ;
condizioni - > add ( numdonben ) ;
condizioni - > add ( m_numdon ) ;
condizioni - > add ( m_anni ) ;
_tabben . add ( ( const char * ) codben , ( TObject * ) condizioni ) ;
//real* oggetto = new real(numdonben);
//_tabben.add((const char*)codben, (TObject*) oggetto);
1998-02-04 13:46:27 +00:00
}
1999-01-26 13:53:35 +00:00
TString80 filtro ;
1998-10-16 14:15:16 +00:00
if ( _attgruppi )
{
if ( _gruppoazie . not_empty ( ) )
filtro . format ( " (90->GRUPPOAZIE == \" %s \" ) " , ( const char * ) _gruppoazie ) ;
else
filtro . format ( " (90->GRUPPOAZIE != \" \" ) " ) ;
}
1998-02-04 13:46:27 +00:00
else
if ( ! _anchegruppi )
filtro . format ( " (90->GRUPPOAZIE == \" \" ) " ) ;
1999-01-26 13:53:35 +00:00
if ( filtro . not_empty ( ) )
filtro < < " && " ;
filtro < < " (90->BENEM == \" X \" ) " ;
1998-02-04 13:46:27 +00:00
// filtro per sezioni
const TString16 sezini = _msk - > get ( F_SEZINI ) ;
const TString16 sotini = _msk - > get ( F_SOTINI ) ;
TRectype da ( LF_SOGGETTI ) ;
if ( sezini . not_empty ( ) )
da . put ( SOG_CODSEZ , sezini ) ;
if ( sotini . not_empty ( ) )
da . put ( SOG_CODSOT , sotini ) ;
_cur = new TCursor ( _rel , " " , 3 , & da , & da ) ;
_cur - > setfilter ( filtro , TRUE ) ;
TLocalisamfile atopera ( LF_ATOPERA ) ;
atopera . last ( ) ;
2000-03-03 11:47:59 +00:00
_progope = atopera . get_int ( OPE_PROGOPE ) ;
_progope + + ;
1998-02-04 13:46:27 +00:00
atopera . zero ( ) ;
2000-03-03 11:47:59 +00:00
atopera . put ( OPE_PROGOPE , _progope ) ;
1998-02-04 13:46:27 +00:00
atopera . put ( OPE_CODSEZ , sezini ) ;
atopera . put ( OPE_CODSOT , sotini ) ;
atopera . put ( OPE_GRUPPOAZIE , _gruppoazie ) ;
atopera . put ( OPE_DATA1 , _dataela ) ;
atopera . put ( OPE_DATA2 , _datapre ) ;
atopera . put ( OPE_FLAG1 , _anchegruppi ) ;
1998-10-16 14:15:16 +00:00
atopera . put ( OPE_FLAG2 , _attgruppi ) ;
1998-02-04 13:46:27 +00:00
atopera . put ( OPE_UTENTE , user ( ) ) ;
2000-03-03 11:47:59 +00:00
atopera . put ( OPE_TIPOOPE , ' B ' ) ;
1998-02-04 13:46:27 +00:00
atopera . write ( ) ;
TLocalisamfile atropera ( LF_ATROPERA ) ;
TRectype & sog = _cur - > curr ( ) ;
long last = _cur - > items ( ) ;
_benem - > setkey ( 3 ) ;
TProgind prg ( last , " Elaborazione in corso... Prego attendere " , FALSE , TRUE , 30 ) ;
for ( * _cur = 0 ; _cur - > pos ( ) < last ; + + ( * _cur ) )
{
prg . addstatus ( 1 ) ;
// controllare la categoria
bool filtrato = TRUE ;
long codice = sog . get_long ( SOG_CODICE ) ;
if ( _catdon . items ( ) ! = 0 )
{
const TString16 cat = sog . get ( SOG_CATDON ) ;
filtrato = _catdon . is_key ( ( const char * ) cat ) ;
}
if ( filtrato )
{
2007-03-06 16:37:44 +00:00
const char sesso = sog . get ( SOG_SESSO ) [ 0 ] ;
const TDate datanasc = sog . get_date ( SOG_DATANASC ) ;
const TDate dataisc = sog . get_date ( SOG_DATAISC ) ;
1998-02-04 13:46:27 +00:00
TRectype * key = new TRectype ( LF_DONAZ ) ;
key - > put ( DON_CODICE , codice ) ;
int err = _sdonazioni - > read ( key ) ;
if ( err = = NOERR )
2007-03-06 16:37:44 +00:00
{
1998-02-04 13:46:27 +00:00
int precsi = sog . get_int ( SOG_DONPRECSI ) ;
int precaf = sog . get_int ( SOG_DONPRECAF ) ;
1998-10-16 14:15:16 +00:00
int numdon = precsi + precaf ;
2007-03-06 16:37:44 +00:00
int donxanno = 0 ;
int anno = 0 ;
1998-02-04 13:46:27 +00:00
for ( int r = 1 ; r < = _sdonazioni - > rows ( ) ; r + + )
{
const TRectype & riga = _sdonazioni - > row ( r ) ;
2007-03-06 16:37:44 +00:00
const TDate datadon = riga . get_date ( DON_DATADON ) ;
const TString16 tipodon = riga . get ( DON_TIPODON ) ;
1998-02-04 13:46:27 +00:00
if ( datadon < = _dataela )
2007-03-06 16:37:44 +00:00
{
if ( _nuovicriteri & & datadon > datarif ) // 16/05/2004
{
if ( anno ! = datadon . year ( ) )
{
if ( donxanno > 4 )
donxanno = 4 ;
numdon + = donxanno ;
donxanno = 0 ;
}
donxanno + + ;
int eta = datadon . year ( ) - datanasc . year ( ) ;
if ( datadon . month ( ) < datanasc . month ( ) )
eta - - ;
else
if ( datadon . month ( ) = = datanasc . month ( ) )
if ( datadon . day ( ) < datanasc . day ( ) )
eta - - ;
if ( ( tipodon = = " SI " | | tipodon = = " SN " ) & & ( sesso = = ' 2 ' ) & & ( eta < 50 ) )
donxanno + + ;
}
else
numdon + + ;
}
}
if ( _nuovicriteri )
{
if ( donxanno > 4 )
donxanno = 4 ;
numdon + = donxanno ;
1998-02-04 13:46:27 +00:00
}
2004-07-20 12:00:26 +00:00
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 ) ;
}
}
1998-02-04 13:46:27 +00:00
TString16 ultben = " ** " ;
TRectype * key = new TRectype ( LF_BENEM ) ;
key - > put ( BEN_CODICE , codice ) ;
int err = _sbenemerenze - > read ( key ) ;
if ( err = = NOERR )
{
for ( int r = 1 ; r < = _sbenemerenze - > rows ( ) ; r + + )
{
const TRectype & riga = _sbenemerenze - > row ( r ) ;
ultben = riga . get ( BEN_TIPOBEN ) ;
1998-09-25 13:07:50 +00:00
if ( ultben . empty ( ) )
ultben = " ** " ;
1998-02-04 13:46:27 +00:00
}
}
2007-03-06 16:37:44 +00:00
//long bonusctrl = 0;
int bonusctrl = 0 ;
int m_bonusctrl = 0 ;
int m_annictrl = 0 ;
1998-02-04 13:46:27 +00:00
if ( ultben ! = " ** " )
{
2007-03-06 16:37:44 +00:00
//real& ndonult = (real&) _tabben.find((const char*) ultben);
//bonusctrl = ndonult.integer();
TToken_string & condizioni = ( TToken_string & ) _tabben . find ( ( const char * ) ultben ) ;
TString str = condizioni . get ( ) ;
bonusctrl = atoi ( str ) ;
str = condizioni . get ( ) ;
m_bonusctrl = atoi ( str ) ;
str = condizioni . get ( ) ;
m_annictrl = atoi ( str ) ;
str = condizioni . get ( ) ;
1998-02-04 13:46:27 +00:00
}
_tabben . restart ( ) ;
2007-03-06 16:37:44 +00:00
TToken_string * c ;
for ( c = ( TToken_string * ) _tabben . first_item ( ) ; c ! = NULL ; c = ( TToken_string * ) _tabben . succ_item ( ) )
1998-02-04 13:46:27 +00:00
{
const char * tipoben = _tabben . get_hashobj ( ) - > key ( ) ;
2007-03-06 16:37:44 +00:00
//long bonus = c->integer();
TString str = c - > get ( 0 ) ;
int bonus = atoi ( str ) ;
str = c - > get ( ) ;
int m_bonus = atoi ( str ) ;
str = c - > get ( ) ;
int m_anni = atoi ( str ) ;
str = c - > get ( ) ;
1998-02-04 13:46:27 +00:00
if ( bonus > bonusctrl )
{
2007-03-06 16:37:44 +00:00
bool attribuisci = false ;
if ( numdon > = bonus )
attribuisci = true ;
if ( _nuovicriteri & & ! attribuisci & & ( m_bonus > 0 | | m_anni > 0 ) ) // se uso nuovi criteri e non ne ha diritto col vecchio sistema quardo se ne ha diritto con i nuovi criteri
{
const int anniisc = ( _dataela - dataisc ) / 360 ;
attribuisci = ( numdon > = m_bonus ) & & ( anniisc > = m_anni ) ;
}
if ( attribuisci )
{
1998-02-04 13:46:27 +00:00
// controllo che non abbia ricevuto la benemerenza
_benem - > zero ( ) ;
_benem - > put ( BEN_CODICE , codice ) ;
_benem - > put ( BEN_TIPOBEN , tipoben ) ;
_benem - > read ( ) ;
if ( _benem - > bad ( ) )
{
atropera . zero ( ) ;
2000-03-03 11:47:59 +00:00
atropera . put ( ROP_PROGOPE , _progope ) ;
1998-02-04 13:46:27 +00:00
atropera . put ( ROP_CODICE , codice ) ;
atropera . put ( ROP_S0 , tipoben ) ;
atropera . write ( ) ;
}
}
}
}
}
}
}
reset_files ( ) ;
TRelation * relope = new TRelation ( LF_ATROPERA ) ;
relope - > add ( LF_SOGGETTI , " CODICE==CODICE " ) ;
TString80 chiave = " 131->S0|UPPER(90->COGNOME)|UPPER(90->NOME) " ;
2000-03-03 11:47:59 +00:00
TString80 filtroope = format ( " 131->PROGOPE==%d " , _progope ) ;
1998-02-04 13:46:27 +00:00
int curope = add_cursor ( new TSorted_cursor ( relope , ( const char * ) chiave , " " , 1 ) ) ;
2000-03-03 11:47:59 +00:00
current_cursor ( ) - > setfilter ( ( const char * ) filtroope , TRUE ) ;
1998-02-04 13:46:27 +00:00
add_file ( LF_ATROPERA ) ;
add_file ( LF_SOGGETTI , LF_ATROPERA ) ;
1997-03-20 10:33:28 +00:00
reset_print ( ) ;
1996-07-30 14:46:52 +00:00
crea_intestazione ( ) ;
return TRUE ;
}
else
return FALSE ;
}
1997-08-01 14:49:53 +00:00
void TAttribuzioneBenemerenze : : crea_intestazione ( )
1996-07-30 14:46:52 +00:00
{
1997-03-20 10:33:28 +00:00
reset_header ( ) ;
TString sep ( 132 ) ;
1998-02-04 13:46:27 +00:00
sep = " ATTRIBUZIONE BENEMERENZE " ;
2007-03-06 16:37:44 +00:00
if ( _nuovicriteri )
sep < < " CON NUOVI CRITERI " ;
2004-07-20 12:00:26 +00:00
if ( _prevista )
sep < < " PREVISTE " ;
1999-01-26 13:53:35 +00:00
if ( _definitiva )
sep < < " DEFINITIVA " ;
else
sep < < " PROVVISORIA " ;
1997-03-20 10:33:28 +00:00
sep < < " ALLA DATA " ;
1998-02-04 13:46:27 +00:00
sep < < _dataela . string ( ) ; ;
1997-03-20 10:33:28 +00:00
sep . center_just ( ) ;
set_header ( 2 , " @0g%s " , ( const char * ) sep ) ;
sep = " " ;
sep < < " Pag. @# " ;
set_header ( 2 , " @120g%s " , ( const char * ) sep ) ;
sep = " " ;
sep . fill ( ' - ' ) ;
set_header ( 3 , ( const char * ) sep ) ;
2004-07-20 12:00:26 +00:00
if ( _prevista )
{
2007-03-06 16:37:44 +00:00
set_header ( 4 , " @0gCognome e nome@26gC.@29gTessera@39gTot.don.@48gData isc.@59gDon.pre. " ) ;
set_header ( 5 , " @0-------------------------@26g--@29g--------@39g--------@48g----------@59g-------- " ) ;
2004-07-20 12:00:26 +00:00
}
else
{
2007-03-06 16:37:44 +00:00
set_header ( 4 , " @0gCognome e nome@26gC.@29gTessera@39gTot.don.@48gData isc. " ) ;
set_header ( 5 , " @0-------------------------@26g--@29g--------@39g--------@48g---------- " ) ;
2004-07-20 12:00:26 +00:00
}
1996-07-30 14:46:52 +00:00
}
1997-08-01 14:49:53 +00:00
bool TAttribuzioneBenemerenze : : user_create ( )
1998-02-04 13:46:27 +00:00
{
1997-03-20 10:33:28 +00:00
_msk = new TMask ( " at1200a " ) ;
_rel = new TRelation ( LF_SOGGETTI ) ;
_rel - > add ( LF_SEZIONI , " CODSEZ==CODSEZ|CODSOT==CODSOT " ) ;
1997-12-05 16:26:15 +00:00
_rel - > add ( " GAZ " , " CODTAB==GRUPPOAZIE " , 1 , 0 , ALIAS_GAZ ) ;
1997-03-20 10:33:28 +00:00
_donaz = new TLocalisamfile ( LF_DONAZ ) ;
_benem = new TLocalisamfile ( LF_BENEM ) ;
_sdonazioni = new TRecord_array ( LF_DONAZ , DON_PROGDON ) ;
_sbenemerenze = new TRecord_array ( LF_BENEM , BEN_PROGBEN ) ;
1998-02-04 13:46:27 +00:00
_atopera = new TLocalisamfile ( LF_ATOPERA ) ;
_atropera = new TLocalisamfile ( LF_ATROPERA ) ;
_sezioni = new TLocalisamfile ( LF_SEZIONI ) ;
1997-03-20 10:33:28 +00:00
return TRUE ;
}
1996-07-30 14:46:52 +00:00
1997-08-01 14:49:53 +00:00
bool TAttribuzioneBenemerenze : : user_destroy ( )
1996-07-30 14:46:52 +00:00
{
1998-08-07 09:48:37 +00:00
delete _sezioni ;
delete _atropera ;
delete _atopera ;
delete _sbenemerenze ;
delete _sdonazioni ;
delete _benem ;
delete _donaz ;
1997-03-20 10:33:28 +00:00
delete _rel ;
delete _msk ;
return TRUE ;
1996-07-30 14:46:52 +00:00
}
int at1200 ( int argc , char * argv [ ] )
{
1997-08-01 14:49:53 +00:00
TAttribuzioneBenemerenze a ;
1998-08-07 09:48:37 +00:00
a . run ( argc , argv , " Attribuzione complessiva " ) ;
1997-03-20 10:33:28 +00:00
return 0 ;
}