Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            : Giornaliero donazioni: messaggi su non idonei + non si puo' modificare la testata sopo la registrazione + dataiscrizione e datadimissione corretti


git-svn-id: svn://10.65.10.50/trunk@7715 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
cris 1999-01-26 14:42:46 +00:00
parent 91c0dede52
commit c9e21df564
2 changed files with 88 additions and 68 deletions

View File

@ -86,7 +86,7 @@ bool TGiornalieroDC::ins_controlli_handler(TMask_field& f, KEY k)
TMask& m = f.mask();
TSheet_field& s = (TSheet_field&)m.field(F_SOGGETTI);
const bool ins_controlli = m.get_bool(F_INS_CONTROLLI);
s.enable_column(4,ins_controlli);
s.enable_column(5,ins_controlli);
}
return TRUE;
}
@ -203,7 +203,8 @@ bool TGiornalieroDC::menu(MENU_TAG m)
msk.reset();
msk.field(DLG_SAVEREC).enable();
msk.field(DLG_FINDREC).enable();
msk.field(DLG_NEWREC).enable();
msk.field(DLG_NEWREC).enable();
msk.enable(-1);
}
break;
case K_SAVE: // registra
@ -280,11 +281,13 @@ int TGiornalieroDC::read(TSheet_field& s)
{
row.add(soggetti.get(SOG_COGNOME));
row.add(soggetti.get(SOG_NOME));
row.add(soggetti.get(SOG_TESSAVIS));
}
else
{
row.add("");
row.add("");
row.add("");
}
row.add(donaz.get(DON_TIPODON));
row.add("");
@ -297,7 +300,6 @@ int TGiornalieroDC::read(TSheet_field& s)
row.add(soggetti.get(SOG_CODSEZ));
row.add(soggetti.get(SOG_CODSOT));
row.add(soggetti.get(SOG_CATDON));
row.add(soggetti.get(SOG_TESSAVIS));
row.add(soggetti.get(SOG_INTSI));
}
items++;
@ -311,8 +313,8 @@ int TGiornalieroDC::read(TSheet_field& s)
int TGiornalieroDC::write(TSheet_field& s)
{
const TMask& m = s.mask();
TMask& m = s.mask();
m.disable(-1);
int items = s.items();
TProgind *pi;
pi = new TProgind(items,"Registrazione donazioni e controlli", FALSE, TRUE, 10);
@ -332,10 +334,10 @@ int TGiornalieroDC::write(TSheet_field& s)
int err = sog.read();
if (err == NOERR)
{
TDate datadonazione = row.get(7);
TDate datadonazione = row.get(8);
if (!datadonazione.ok())
datadonazione = _datadon;
TString16 tipocon = row.get(4);
TString16 tipocon = row.get(5);
if (tipocon.blank())
tipocon = m.get(F_TIPOCON);
if (tipocon.not_empty())
@ -405,13 +407,13 @@ int TGiornalieroDC::write(TSheet_field& s)
TRectype* rec = new TRectype(LF_DONAZ);
rec->put(DON_CODICE, row.get(0));
rec->put(DON_DATADON, datadonazione);
TString16 tipodon = row.get(3);
TString16 tipodon = row.get(4);
if (tipodon.blank())
tipodon = _tipodon;
rec->put(DON_TIPODON, tipodon);
rec->put(DON_LUOGODON, _luogodon);
rec->put(DON_ETICHETTA, row.get(5));
rec->put(DON_PRIMADON, row.get(6));
rec->put(DON_ETICHETTA, row.get(6));
rec->put(DON_PRIMADON, row.get(7));
rec->put(DON_CODSEZ,sog.get(SOG_CODSEZ));
rec->put(DON_CODSOT,sog.get(SOG_CODSOT));
@ -458,11 +460,11 @@ int TGiornalieroDC::write(TSheet_field& s)
}
if (!exist)
{
if (insert)
{
err = _sdonazioni->row(_sdonazioni->rows()).write(*_donaz);
}
else
//if (insert)
//{
//err = _sdonazioni->row(_sdonazioni->rows()).write(*_donaz);
//}
//else
err = _sdonazioni->write(TRUE);
// controllo se è idoneo
@ -703,6 +705,7 @@ int TGiornalieroDC::write(TSheet_field& s)
sog.put(SOG_CATDON,ctd.get("S6"));
if (ctd.get("S6").not_empty())
catdon = ctd.get("S6");
sog.put(SOG_DATADIM,NULLDATE);
}
if ((catdon == _catini1 || _catini1.empty()) && (totdon+1>=_numdon1) && _catfin1.not_empty())
sog.put(SOG_CATDON, _catfin1);
@ -710,10 +713,15 @@ int TGiornalieroDC::write(TSheet_field& s)
sog.put(SOG_CATDON, _catfin2);
}
TDate dataisc = sog.get_date(SOG_DATAISC);
if (dataisc.empty() && _dataisc)
{
const TRectype& riga = _sdonazioni->row(1);
sog.put(SOG_DATAISC,riga.get(DON_DATADON));
if (dataisc.ok() && _dataisc)
{
if (sog.get_date(SOG_DATAPRISI).ok())
sog.put(SOG_DATAISC,sog.get(SOG_DATAPRISI));
else
{
const TRectype& riga = _sdonazioni->row(1);
sog.put(SOG_DATAISC,riga.get(DON_DATADON));
}
}
// aggiorno data e utente ultimo aggiornamento
@ -791,7 +799,7 @@ bool TGiornalieroDC::soggetti_notify(TSheet_field& s, int r, KEY k)
if (!row.empty_items())
app()._modified = TRUE;
const long codsog = row.get_long(0);
const long etichetta = row.get_long(5);
const long etichetta = row.get_long(6);
if (codsog != 0)
for (int i=s.items()-1; i>=0; i--)
{
@ -805,7 +813,7 @@ bool TGiornalieroDC::soggetti_notify(TSheet_field& s, int r, KEY k)
// controllo sull'etichetta
if (etichetta != 0)
{
if (etichetta == row.get_long(5))
if (etichetta == row.get_long(6))
return s.sheet_mask().field(F_S_ETICHETTA).error_box("Etichetta sacca gia' inserita");
}
}
@ -975,55 +983,59 @@ bool TGiornalieroDC::tipodon_handler(TMask_field& f, KEY k)
m.set(F_S_PRIMADON, 'X');
if (!app()._nomessage)
{
TTable ctd("CTD");
ctd.zero();
ctd.put("CODTAB", sog.get(SOG_CATDON));
if (ctd.read() == NOERR)
{
bool dimissione = ctd.get_bool("B0");
if (dimissione)
{
TString16 catcoll = ctd.get("S6");
if (catcoll.empty())
messaggio << "Soggetto dimesso senza categoria collegata\n";
else
messaggio << "Soggetto dimesso, cambio categoria automatico\n";
}
}
TString16 stato = sog.get(SOG_STATO);
char modstato = modstato_tcs(stato);
if (modstato == 'I' || modstato == 'F') // il soggetto è idoneo
{
TDate datapros(NULLDATE);
TString16 tipodon = m.get(F_S_TIPODON);
if (tipodon.empty())
tipodon = app().get_mask().get(F_TIPODON);
TDate datadon = m.get_date(F_S_DATADON);
if (!datadon.ok())
datadon = app().get_mask().get_date(F_DATADON);
if (is_donaz(tipodon,IDON_SI))
datapros = sog.get_date(SOG_DATAPROSSI);
else
datapros = sog.get_date(SOG_DATAPROSAF);
if (datapros.empty())
messaggio << "Soggetto non idoneo al tipo donazione\n";
else
if (datapros > datadon)
messaggio << "Il soggetto ha donato prima della scadenza del " << datapros.string() << "\n";
}
else
TDate datadon = m.get_date(F_S_DATADON);
if (!datadon.ok())
datadon = app().get_mask().get_date(F_DATADON);
TDate dataultdon = sog.get(SOG_DATAULTDON);
if (datadon > dataultdon)
{
messaggio << "Stato soggetto " << stato << " non compatibile con la donazione\n";
TTable tcs("TCS");
tcs.put("CODTAB",stato);
if (tcs.read() == NOERR)
{
if (tcs.get("S7").empty())
messaggio << "Verificare la situazione del soggetto";
TTable ctd("CTD");
ctd.zero();
ctd.put("CODTAB", sog.get(SOG_CATDON));
if (ctd.read() == NOERR)
{
bool dimissione = ctd.get_bool("B0");
if (dimissione)
{
TString16 catcoll = ctd.get("S6");
if (catcoll.empty())
messaggio << "Soggetto dimesso senza categoria collegata\n";
else
messaggio << "Soggetto dimesso, cambio categoria automatico\n";
}
}
TString16 stato = sog.get(SOG_STATO);
char modstato = modstato_tcs(stato);
if (modstato == 'I' || modstato == 'F') // il soggetto è idoneo
{
TDate datapros(NULLDATE);
TString16 tipodon = m.get(F_S_TIPODON);
if (tipodon.empty())
tipodon = app().get_mask().get(F_TIPODON);
if (is_donaz(tipodon,IDON_SI))
datapros = sog.get_date(SOG_DATAPROSSI);
else
messaggio << "Cambio stato automatico";
}
}
datapros = sog.get_date(SOG_DATAPROSAF);
if (datapros.empty())
messaggio << "Soggetto non idoneo al tipo donazione\n";
else
if (datapros > datadon)
messaggio << "Il soggetto ha donato prima della scadenza del " << datapros.string() << "\n";
}
else
{
messaggio << "Stato soggetto " << stato << " non compatibile con la donazione\n";
TTable tcs("TCS");
tcs.put("CODTAB",stato);
if (tcs.read() == NOERR)
{
if (tcs.get("S7").empty())
messaggio << "Verificare la situazione del soggetto";
else
messaggio << "Cambio stato automatico";
}
}
}
}
}
}

View File

@ -61,6 +61,7 @@ BEGIN
PROMPT 2 1 "Data donazione "
CHECKTYPE REQUIRED
HELP "Data donazione"
GROUP 1
END
STRING F_TIPODON 2
@ -77,6 +78,7 @@ BEGIN
CHECKTYPE NORMAL
WARNING "Codice non presente"
HELP "Tipo donazione"
GROUP 1
END
STRING F_LUOGODON 4
@ -92,18 +94,21 @@ BEGIN
CHECKTYPE NORMAL
WARNING "Codice non presente"
HELP "Punto di prelievo"
GROUP 1
END
STRING F_DESC_TIPODON 30
BEGIN
PROMPT 26 2 ""
FLAGS "D"
GROUP 1
END
STRING F_DESC_LUOGODON 50
BEGIN
PROMPT 26 3 ""
FLAGS "D"
GROUP 1
END
BOOLEAN F_INS_CONTROLLI
@ -111,6 +116,7 @@ BEGIN
PROMPT 2 4 "Inserimento controlli"
MESSAGE TRUE ENABLE,F_TIPOCON
MESSAGE FALSE RESET,F_TIPOCON|DISABLE,F_TIPOCON
GROUP 1
END
STRING F_TIPOCON 2
@ -126,12 +132,14 @@ BEGIN
CHECKTYPE NORMAL
WARNING "Codice non presente"
HELP "Tipo controllo"
GROUP 1
END
STRING F_DESC_TIPOCON 30
BEGIN
PROMPT 46 4 ""
FLAGS "D"
GROUP 1
END
SPREADSHEET F_SOGGETTI