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:
parent
91c0dede52
commit
c9e21df564
148
at/at0200.cpp
148
at/at0200.cpp
@ -86,7 +86,7 @@ bool TGiornalieroDC::ins_controlli_handler(TMask_field& f, KEY k)
|
|||||||
TMask& m = f.mask();
|
TMask& m = f.mask();
|
||||||
TSheet_field& s = (TSheet_field&)m.field(F_SOGGETTI);
|
TSheet_field& s = (TSheet_field&)m.field(F_SOGGETTI);
|
||||||
const bool ins_controlli = m.get_bool(F_INS_CONTROLLI);
|
const bool ins_controlli = m.get_bool(F_INS_CONTROLLI);
|
||||||
s.enable_column(4,ins_controlli);
|
s.enable_column(5,ins_controlli);
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -203,7 +203,8 @@ bool TGiornalieroDC::menu(MENU_TAG m)
|
|||||||
msk.reset();
|
msk.reset();
|
||||||
msk.field(DLG_SAVEREC).enable();
|
msk.field(DLG_SAVEREC).enable();
|
||||||
msk.field(DLG_FINDREC).enable();
|
msk.field(DLG_FINDREC).enable();
|
||||||
msk.field(DLG_NEWREC).enable();
|
msk.field(DLG_NEWREC).enable();
|
||||||
|
msk.enable(-1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case K_SAVE: // registra
|
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_COGNOME));
|
||||||
row.add(soggetti.get(SOG_NOME));
|
row.add(soggetti.get(SOG_NOME));
|
||||||
|
row.add(soggetti.get(SOG_TESSAVIS));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
row.add("");
|
row.add("");
|
||||||
row.add("");
|
row.add("");
|
||||||
|
row.add("");
|
||||||
}
|
}
|
||||||
row.add(donaz.get(DON_TIPODON));
|
row.add(donaz.get(DON_TIPODON));
|
||||||
row.add("");
|
row.add("");
|
||||||
@ -297,7 +300,6 @@ int TGiornalieroDC::read(TSheet_field& s)
|
|||||||
row.add(soggetti.get(SOG_CODSEZ));
|
row.add(soggetti.get(SOG_CODSEZ));
|
||||||
row.add(soggetti.get(SOG_CODSOT));
|
row.add(soggetti.get(SOG_CODSOT));
|
||||||
row.add(soggetti.get(SOG_CATDON));
|
row.add(soggetti.get(SOG_CATDON));
|
||||||
row.add(soggetti.get(SOG_TESSAVIS));
|
|
||||||
row.add(soggetti.get(SOG_INTSI));
|
row.add(soggetti.get(SOG_INTSI));
|
||||||
}
|
}
|
||||||
items++;
|
items++;
|
||||||
@ -311,8 +313,8 @@ int TGiornalieroDC::read(TSheet_field& s)
|
|||||||
|
|
||||||
int TGiornalieroDC::write(TSheet_field& s)
|
int TGiornalieroDC::write(TSheet_field& s)
|
||||||
{
|
{
|
||||||
|
TMask& m = s.mask();
|
||||||
const TMask& m = s.mask();
|
m.disable(-1);
|
||||||
int items = s.items();
|
int items = s.items();
|
||||||
TProgind *pi;
|
TProgind *pi;
|
||||||
pi = new TProgind(items,"Registrazione donazioni e controlli", FALSE, TRUE, 10);
|
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();
|
int err = sog.read();
|
||||||
if (err == NOERR)
|
if (err == NOERR)
|
||||||
{
|
{
|
||||||
TDate datadonazione = row.get(7);
|
TDate datadonazione = row.get(8);
|
||||||
if (!datadonazione.ok())
|
if (!datadonazione.ok())
|
||||||
datadonazione = _datadon;
|
datadonazione = _datadon;
|
||||||
TString16 tipocon = row.get(4);
|
TString16 tipocon = row.get(5);
|
||||||
if (tipocon.blank())
|
if (tipocon.blank())
|
||||||
tipocon = m.get(F_TIPOCON);
|
tipocon = m.get(F_TIPOCON);
|
||||||
if (tipocon.not_empty())
|
if (tipocon.not_empty())
|
||||||
@ -405,13 +407,13 @@ int TGiornalieroDC::write(TSheet_field& s)
|
|||||||
TRectype* rec = new TRectype(LF_DONAZ);
|
TRectype* rec = new TRectype(LF_DONAZ);
|
||||||
rec->put(DON_CODICE, row.get(0));
|
rec->put(DON_CODICE, row.get(0));
|
||||||
rec->put(DON_DATADON, datadonazione);
|
rec->put(DON_DATADON, datadonazione);
|
||||||
TString16 tipodon = row.get(3);
|
TString16 tipodon = row.get(4);
|
||||||
if (tipodon.blank())
|
if (tipodon.blank())
|
||||||
tipodon = _tipodon;
|
tipodon = _tipodon;
|
||||||
rec->put(DON_TIPODON, tipodon);
|
rec->put(DON_TIPODON, tipodon);
|
||||||
rec->put(DON_LUOGODON, _luogodon);
|
rec->put(DON_LUOGODON, _luogodon);
|
||||||
rec->put(DON_ETICHETTA, row.get(5));
|
rec->put(DON_ETICHETTA, row.get(6));
|
||||||
rec->put(DON_PRIMADON, row.get(6));
|
rec->put(DON_PRIMADON, row.get(7));
|
||||||
|
|
||||||
rec->put(DON_CODSEZ,sog.get(SOG_CODSEZ));
|
rec->put(DON_CODSEZ,sog.get(SOG_CODSEZ));
|
||||||
rec->put(DON_CODSOT,sog.get(SOG_CODSOT));
|
rec->put(DON_CODSOT,sog.get(SOG_CODSOT));
|
||||||
@ -458,11 +460,11 @@ int TGiornalieroDC::write(TSheet_field& s)
|
|||||||
}
|
}
|
||||||
if (!exist)
|
if (!exist)
|
||||||
{
|
{
|
||||||
if (insert)
|
//if (insert)
|
||||||
{
|
//{
|
||||||
err = _sdonazioni->row(_sdonazioni->rows()).write(*_donaz);
|
//err = _sdonazioni->row(_sdonazioni->rows()).write(*_donaz);
|
||||||
}
|
//}
|
||||||
else
|
//else
|
||||||
err = _sdonazioni->write(TRUE);
|
err = _sdonazioni->write(TRUE);
|
||||||
|
|
||||||
// controllo se è idoneo
|
// controllo se è idoneo
|
||||||
@ -703,6 +705,7 @@ int TGiornalieroDC::write(TSheet_field& s)
|
|||||||
sog.put(SOG_CATDON,ctd.get("S6"));
|
sog.put(SOG_CATDON,ctd.get("S6"));
|
||||||
if (ctd.get("S6").not_empty())
|
if (ctd.get("S6").not_empty())
|
||||||
catdon = ctd.get("S6");
|
catdon = ctd.get("S6");
|
||||||
|
sog.put(SOG_DATADIM,NULLDATE);
|
||||||
}
|
}
|
||||||
if ((catdon == _catini1 || _catini1.empty()) && (totdon+1>=_numdon1) && _catfin1.not_empty())
|
if ((catdon == _catini1 || _catini1.empty()) && (totdon+1>=_numdon1) && _catfin1.not_empty())
|
||||||
sog.put(SOG_CATDON, _catfin1);
|
sog.put(SOG_CATDON, _catfin1);
|
||||||
@ -710,10 +713,15 @@ int TGiornalieroDC::write(TSheet_field& s)
|
|||||||
sog.put(SOG_CATDON, _catfin2);
|
sog.put(SOG_CATDON, _catfin2);
|
||||||
}
|
}
|
||||||
TDate dataisc = sog.get_date(SOG_DATAISC);
|
TDate dataisc = sog.get_date(SOG_DATAISC);
|
||||||
if (dataisc.empty() && _dataisc)
|
if (dataisc.ok() && _dataisc)
|
||||||
{
|
{
|
||||||
const TRectype& riga = _sdonazioni->row(1);
|
if (sog.get_date(SOG_DATAPRISI).ok())
|
||||||
sog.put(SOG_DATAISC,riga.get(DON_DATADON));
|
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
|
// 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())
|
if (!row.empty_items())
|
||||||
app()._modified = TRUE;
|
app()._modified = TRUE;
|
||||||
const long codsog = row.get_long(0);
|
const long codsog = row.get_long(0);
|
||||||
const long etichetta = row.get_long(5);
|
const long etichetta = row.get_long(6);
|
||||||
if (codsog != 0)
|
if (codsog != 0)
|
||||||
for (int i=s.items()-1; i>=0; i--)
|
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
|
// controllo sull'etichetta
|
||||||
if (etichetta != 0)
|
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");
|
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');
|
m.set(F_S_PRIMADON, 'X');
|
||||||
if (!app()._nomessage)
|
if (!app()._nomessage)
|
||||||
{
|
{
|
||||||
TTable ctd("CTD");
|
TDate datadon = m.get_date(F_S_DATADON);
|
||||||
ctd.zero();
|
if (!datadon.ok())
|
||||||
ctd.put("CODTAB", sog.get(SOG_CATDON));
|
datadon = app().get_mask().get_date(F_DATADON);
|
||||||
if (ctd.read() == NOERR)
|
TDate dataultdon = sog.get(SOG_DATAULTDON);
|
||||||
{
|
if (datadon > dataultdon)
|
||||||
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
|
|
||||||
{
|
{
|
||||||
messaggio << "Stato soggetto " << stato << " non compatibile con la donazione\n";
|
TTable ctd("CTD");
|
||||||
TTable tcs("TCS");
|
ctd.zero();
|
||||||
tcs.put("CODTAB",stato);
|
ctd.put("CODTAB", sog.get(SOG_CATDON));
|
||||||
if (tcs.read() == NOERR)
|
if (ctd.read() == NOERR)
|
||||||
{
|
{
|
||||||
if (tcs.get("S7").empty())
|
bool dimissione = ctd.get_bool("B0");
|
||||||
messaggio << "Verificare la situazione del soggetto";
|
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
|
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";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -61,6 +61,7 @@ BEGIN
|
|||||||
PROMPT 2 1 "Data donazione "
|
PROMPT 2 1 "Data donazione "
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
HELP "Data donazione"
|
HELP "Data donazione"
|
||||||
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_TIPODON 2
|
STRING F_TIPODON 2
|
||||||
@ -77,6 +78,7 @@ BEGIN
|
|||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
WARNING "Codice non presente"
|
WARNING "Codice non presente"
|
||||||
HELP "Tipo donazione"
|
HELP "Tipo donazione"
|
||||||
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_LUOGODON 4
|
STRING F_LUOGODON 4
|
||||||
@ -92,18 +94,21 @@ BEGIN
|
|||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
WARNING "Codice non presente"
|
WARNING "Codice non presente"
|
||||||
HELP "Punto di prelievo"
|
HELP "Punto di prelievo"
|
||||||
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESC_TIPODON 30
|
STRING F_DESC_TIPODON 30
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 26 2 ""
|
PROMPT 26 2 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESC_LUOGODON 50
|
STRING F_DESC_LUOGODON 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 26 3 ""
|
PROMPT 26 3 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_INS_CONTROLLI
|
BOOLEAN F_INS_CONTROLLI
|
||||||
@ -111,6 +116,7 @@ BEGIN
|
|||||||
PROMPT 2 4 "Inserimento controlli"
|
PROMPT 2 4 "Inserimento controlli"
|
||||||
MESSAGE TRUE ENABLE,F_TIPOCON
|
MESSAGE TRUE ENABLE,F_TIPOCON
|
||||||
MESSAGE FALSE RESET,F_TIPOCON|DISABLE,F_TIPOCON
|
MESSAGE FALSE RESET,F_TIPOCON|DISABLE,F_TIPOCON
|
||||||
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_TIPOCON 2
|
STRING F_TIPOCON 2
|
||||||
@ -126,12 +132,14 @@ BEGIN
|
|||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
WARNING "Codice non presente"
|
WARNING "Codice non presente"
|
||||||
HELP "Tipo controllo"
|
HELP "Tipo controllo"
|
||||||
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESC_TIPOCON 30
|
STRING F_DESC_TIPOCON 30
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 46 4 ""
|
PROMPT 46 4 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
SPREADSHEET F_SOGGETTI
|
SPREADSHEET F_SOGGETTI
|
||||||
|
Loading…
x
Reference in New Issue
Block a user