Patch level : 10.0 no patch
Files correlati : ci0.exe CI2.EXE Ricompilazione Demo : [ ] Commento : Modulo rilevazione ore step 2 git-svn-id: svn://10.65.10.50/branches/R_10_00@21137 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
f7ddf31bce
commit
1da14e1f10
@ -173,12 +173,11 @@ void TDef_risoatt_msk::riempi_sheet()
|
|||||||
case 'A': codice = get(F_CODATT); break;
|
case 'A': codice = get(F_CODATT); break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
|
|
||||||
get_anal_fields(codcosto, codcms, codfase);
|
get_anal_fields(codcosto, codcms, codfase);
|
||||||
|
|
||||||
TString query;
|
TString query;
|
||||||
|
|
||||||
query << "USE " << LF_RILORE << "\n" ;
|
query << "USE " << LF_RILORE << " KEY 2\n" ;
|
||||||
|
|
||||||
TString select;
|
TString select;
|
||||||
if (risoatt.full())
|
if (risoatt.full())
|
||||||
@ -361,6 +360,7 @@ void TDef_risoatt_msk::registra()
|
|||||||
{
|
{
|
||||||
TRilevamento_ore rilroa;
|
TRilevamento_ore rilroa;
|
||||||
TSheet_field& sheet = sfield(F_SHEET);
|
TSheet_field& sheet = sfield(F_SHEET);
|
||||||
|
int err = NOERR;
|
||||||
|
|
||||||
FOR_EACH_SHEET_ROW(sheet, r, row)
|
FOR_EACH_SHEET_ROW(sheet, r, row)
|
||||||
{
|
{
|
||||||
@ -384,9 +384,11 @@ void TDef_risoatt_msk::registra()
|
|||||||
|
|
||||||
rilroa.read('D', id);
|
rilroa.read('D', id);
|
||||||
if (qtaore == 0)
|
if (qtaore == 0)
|
||||||
rilroa.remove();
|
err = rilroa.remove();
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
rilroa.put(RILORE_TIPO, "D");
|
||||||
|
rilroa.put(RILORE_ID, id);
|
||||||
rilroa.put(RILORE_ANNO, anno);
|
rilroa.put(RILORE_ANNO, anno);
|
||||||
rilroa.put(RILORE_MESE, mese);
|
rilroa.put(RILORE_MESE, mese);
|
||||||
rilroa.put(RILORE_GIORNO, giorno);
|
rilroa.put(RILORE_GIORNO, giorno);
|
||||||
@ -398,13 +400,19 @@ void TDef_risoatt_msk::registra()
|
|||||||
rilroa.put(RILORE_CODFASE, codfase);
|
rilroa.put(RILORE_CODFASE, codfase);
|
||||||
rilroa.put(RILORE_QTAORE, qtaore);
|
rilroa.put(RILORE_QTAORE, qtaore);
|
||||||
rilroa.put(RILORE_COSTO, costo);
|
rilroa.put(RILORE_COSTO, costo);
|
||||||
rilroa.put(RILORE_ID, id);
|
err = rilroa.rewrite_write();
|
||||||
rilroa.rewrite_write();
|
|
||||||
}
|
}
|
||||||
|
if (err != NOERR)
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
if (err == NOERR)
|
||||||
|
{
|
||||||
sheet.destroy();
|
sheet.destroy();
|
||||||
riempi_sheet();
|
riempi_sheet();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
error_box(FR("Errore %d in scrittura"), err);
|
||||||
|
}
|
||||||
|
|
||||||
//ON_FIELD_EVENT: metodo che gestisce gli eventi sui vari campi della maschera
|
//ON_FIELD_EVENT: metodo che gestisce gli eventi sui vari campi della maschera
|
||||||
bool TDef_risoatt_msk::on_field_event(TOperable_field& f, TField_event e, long jolly)
|
bool TDef_risoatt_msk::on_field_event(TOperable_field& f, TField_event e, long jolly)
|
||||||
@ -674,7 +682,6 @@ TDef_risoatt_msk::TDef_risoatt_msk()
|
|||||||
|
|
||||||
if (_dett == "A")
|
if (_dett == "A")
|
||||||
{
|
{
|
||||||
field(F_ANNO).update_flags("A", true);
|
|
||||||
reset(F_ANNO);
|
reset(F_ANNO);
|
||||||
disable(F_ANNO);
|
disable(F_ANNO);
|
||||||
reset(F_MESE);
|
reset(F_MESE);
|
||||||
@ -683,9 +690,12 @@ TDef_risoatt_msk::TDef_risoatt_msk()
|
|||||||
else
|
else
|
||||||
if (_dett == "M")
|
if (_dett == "M")
|
||||||
{
|
{
|
||||||
|
field(F_ANNO).update_flags("A", true);
|
||||||
reset(F_MESE);
|
reset(F_MESE);
|
||||||
disable(F_MESE);
|
disable(F_MESE);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
field(F_ANNO).update_flags("A", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////
|
////////////////////////////////////////
|
||||||
|
@ -40,7 +40,6 @@ END
|
|||||||
NUMBER F_ANNO 4
|
NUMBER F_ANNO 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 1 "Anno "
|
PROMPT 2 1 "Anno "
|
||||||
FLAGS "A"
|
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
END
|
END
|
||||||
|
|
||||||
|
107
ci/ci2100.cpp
107
ci/ci2100.cpp
@ -61,11 +61,10 @@ const real TRilevamento_prev_msk::proponi_costo(const TMask& msk)
|
|||||||
case 'A': codice = msk.get(S_CODATT); break;
|
case 'A': codice = msk.get(S_CODATT); break;
|
||||||
default : break;
|
default : break;
|
||||||
}
|
}
|
||||||
const int anno = msk.get_date(S_DADATA).year();
|
const TDate dal = msk.get_date(S_DADATA);
|
||||||
TString4 mese; mese.format("%02d", msk.get_date(S_DADATA).month());
|
|
||||||
const TString4 tpora = msk.get(S_TPORA);
|
const TString4 tpora = msk.get(S_TPORA);
|
||||||
|
|
||||||
const TRisoatt_key chiave(tipo, codice, anno, mese, tpora);
|
const TRisoatt_key chiave(tipo, codice, dal, tpora);
|
||||||
TModule_table roa("&ROA");
|
TModule_table roa("&ROA");
|
||||||
roa.put("CODTAB", chiave);
|
roa.put("CODTAB", chiave);
|
||||||
int err = roa.read();
|
int err = roa.read();
|
||||||
@ -74,6 +73,8 @@ const real TRilevamento_prev_msk::proponi_costo(const TMask& msk)
|
|||||||
costo = roa.get_real("R1");
|
costo = roa.get_real("R1");
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
const int anno = dal.year();
|
||||||
|
TString4 mese; mese.format("%02d", dal.month());
|
||||||
TString8 tmp; tmp << anno << mese;
|
TString8 tmp; tmp << anno << mese;
|
||||||
const long anme = atol(tmp);
|
const long anme = atol(tmp);
|
||||||
TString query;
|
TString query;
|
||||||
@ -105,11 +106,9 @@ const real TRilevamento_prev_msk::proponi_costo(TToken_string& riga)
|
|||||||
|
|
||||||
TString cazzone = riga.get(sheet.cid2index(S_DADATA));
|
TString cazzone = riga.get(sheet.cid2index(S_DADATA));
|
||||||
const TDate dadata(riga.get(sheet.cid2index(S_DADATA)));
|
const TDate dadata(riga.get(sheet.cid2index(S_DADATA)));
|
||||||
const int anno = dadata.year();
|
|
||||||
TString4 mese; mese.format("%02d", dadata.month());
|
|
||||||
const TString4 tpora = riga.get(sheet.cid2index(S_TPORA));
|
const TString4 tpora = riga.get(sheet.cid2index(S_TPORA));
|
||||||
|
|
||||||
const TRisoatt_key chiave(tipo, codice, anno, mese, tpora);
|
const TRisoatt_key chiave(tipo, codice, dadata, tpora);
|
||||||
TModule_table roa("&ROA");
|
TModule_table roa("&ROA");
|
||||||
roa.put("CODTAB", chiave);
|
roa.put("CODTAB", chiave);
|
||||||
int err = roa.read();
|
int err = roa.read();
|
||||||
@ -118,6 +117,8 @@ const real TRilevamento_prev_msk::proponi_costo(TToken_string& riga)
|
|||||||
costo = roa.get_real("R1");
|
costo = roa.get_real("R1");
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
const int anno = dadata.year();
|
||||||
|
TString4 mese; mese.format("%02d", dadata.month());
|
||||||
TString8 tmp; tmp << anno << mese;
|
TString8 tmp; tmp << anno << mese;
|
||||||
const long anme = atol(tmp);
|
const long anme = atol(tmp);
|
||||||
TString query;
|
TString query;
|
||||||
@ -256,7 +257,7 @@ void TRilevamento_prev_msk::carica_default()
|
|||||||
get_anal_fields(codcosto, codcms, codfase);
|
get_anal_fields(codcosto, codcms, codfase);
|
||||||
|
|
||||||
TString query;
|
TString query;
|
||||||
query << "USE " << LF_RILORE << "\n";
|
query << "USE " << LF_RILORE << " KEY 2\n";
|
||||||
|
|
||||||
TString select;
|
TString select;
|
||||||
if (risoatt.full())
|
if (risoatt.full())
|
||||||
@ -324,25 +325,25 @@ void TRilevamento_prev_msk::carica_default()
|
|||||||
{
|
{
|
||||||
TRilevamento_ore rilore(def.cursor()->curr());
|
TRilevamento_ore rilore(def.cursor()->curr());
|
||||||
TToken_string& riga = sheet.row(-1);
|
TToken_string& riga = sheet.row(-1);
|
||||||
riga.add(rilore.tipora(), sheet.cid2index(S_RISOATT));
|
const char tipo = rilore.get(RILORE_TIPORA)[0];
|
||||||
switch(rilore.tipora())
|
TString16 cod = rilore.get(RILORE_CODICE);
|
||||||
|
|
||||||
|
riga.add(tipo), sheet.cid2index(S_RISOATT);
|
||||||
|
switch (tipo)
|
||||||
{
|
{
|
||||||
case 'R': riga.add(rilore.codice(), sheet.cid2index(S_CODRIS)); break;
|
case 'R': riga.add(cod, sheet.cid2index(S_CODRIS)); break;
|
||||||
case 'A': riga.add(rilore.codice(), sheet.cid2index(S_CODATT)); break;
|
case 'A': riga.add(cod, sheet.cid2index(S_CODATT)); break;
|
||||||
default : break;
|
default : break;
|
||||||
}
|
}
|
||||||
riga.add(rilore.dadata(), sheet.cid2index(S_DADATA));
|
riga.add(rilore.get(RILORE_TPORA), sheet.cid2index(S_TPORA));
|
||||||
riga.add(rilore.adata(), sheet.cid2index(S_ADATA));
|
|
||||||
riga.add(rilore.tpora(), sheet.cid2index(S_TPORA));
|
|
||||||
riga.add(da.string(), sheet.cid2index(S_DADATA));
|
riga.add(da.string(), sheet.cid2index(S_DADATA));
|
||||||
riga.add(a.string(), sheet.cid2index(S_ADATA));
|
riga.add(a.string(), sheet.cid2index(S_ADATA));
|
||||||
put_row_anal_fields(riga, rilore.codcosto(), rilore.codcms(), rilore.codfase());
|
put_row_anal_fields(riga, rilore.get(RILORE_CODCOSTO), rilore.get(RILORE_CODCMS), rilore.get(RILORE_CODFASE));
|
||||||
riga.add(rilore.qtaore(), sheet.cid2index(S_QTAORE));
|
riga.add(rilore.get(RILORE_QTAORE), sheet.cid2index(S_QTAORE));
|
||||||
riga.add(proponi_costo(riga).string(), sheet.cid2index(S_COSTO));
|
riga.add(proponi_costo(riga).string(), sheet.cid2index(S_COSTO));
|
||||||
sheet.check_row(sheet.items() - 1);
|
sheet.check_row(sheet.items() - 1);
|
||||||
}
|
}
|
||||||
sheet.force_update();
|
sheet.force_update();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//RIEMPI_SHEET: metodo che riempie lo sheet in base ai campi chiave
|
//RIEMPI_SHEET: metodo che riempie lo sheet in base ai campi chiave
|
||||||
@ -379,7 +380,7 @@ void TRilevamento_prev_msk::riempi_sheet()
|
|||||||
get_anal_fields(codcosto, codcms, codfase);
|
get_anal_fields(codcosto, codcms, codfase);
|
||||||
|
|
||||||
TString query;
|
TString query;
|
||||||
query << "USE " << LF_RILORE << "\n" ;
|
query << "USE " << LF_RILORE << " KEY 2\n" ;
|
||||||
|
|
||||||
TString select;
|
TString select;
|
||||||
if (risoatt.full())
|
if (risoatt.full())
|
||||||
@ -431,21 +432,23 @@ void TRilevamento_prev_msk::riempi_sheet()
|
|||||||
{
|
{
|
||||||
TRilevamento_ore rilore(def.cursor()->curr());
|
TRilevamento_ore rilore(def.cursor()->curr());
|
||||||
TToken_string& riga = sheet.row(-1);
|
TToken_string& riga = sheet.row(-1);
|
||||||
riga.add(rilore.tipora(), sheet.cid2index(S_RISOATT));
|
const char tipo = rilore.get(RILORE_TIPORA)[0];
|
||||||
switch(rilore.tipora())
|
TString16 cod = rilore.get(RILORE_CODICE);
|
||||||
|
|
||||||
|
riga.add(tipo, sheet.cid2index(S_RISOATT));
|
||||||
|
switch(tipo)
|
||||||
{
|
{
|
||||||
case 'R': riga.add(rilore.codice(), sheet.cid2index(S_CODRIS)); break;
|
case 'R': riga.add(cod, sheet.cid2index(S_CODRIS)); break;
|
||||||
case 'A': riga.add(rilore.codice(), sheet.cid2index(S_CODATT)); break;
|
case 'A': riga.add(cod, sheet.cid2index(S_CODATT)); break;
|
||||||
default : break;
|
default : break;
|
||||||
}
|
}
|
||||||
riga.add(rilore.dadata(), sheet.cid2index(S_DADATA));
|
riga.add(rilore.get(RILORE_DADATA), sheet.cid2index(S_DADATA));
|
||||||
riga.add(rilore.adata(), sheet.cid2index(S_ADATA));
|
riga.add(rilore.get(RILORE_ADATA), sheet.cid2index(S_ADATA));
|
||||||
riga.add(rilore.tpora(), sheet.cid2index(S_TPORA));
|
riga.add(rilore.get(RILORE_TPORA), sheet.cid2index(S_TPORA));
|
||||||
put_row_anal_fields(riga, rilore.codcosto(), rilore.codcms(), rilore.codfase());
|
put_row_anal_fields(riga, rilore.get(RILORE_CODCOSTO), rilore.get(RILORE_CODCMS), rilore.get(RILORE_CODFASE));
|
||||||
riga.add(rilore.dadata(), sheet.cid2index(S_DADATA));
|
riga.add(rilore.get(RILORE_QTAORE), sheet.cid2index(S_QTAORE));
|
||||||
riga.add(rilore.adata(), sheet.cid2index(S_ADATA));
|
riga.add(rilore.get(RILORE_COSTO), sheet.cid2index(S_COSTO));
|
||||||
riga.add(rilore.qtaore(), sheet.cid2index(S_QTAORE));
|
riga.add(rilore.get(RILORE_ID), sheet.cid2index(S_ID));
|
||||||
riga.add(rilore.costo().string(), sheet.cid2index(S_COSTO));
|
|
||||||
sheet.check_row(sheet.items() - 1);
|
sheet.check_row(sheet.items() - 1);
|
||||||
}
|
}
|
||||||
sheet.force_update();
|
sheet.force_update();
|
||||||
@ -493,8 +496,8 @@ void TRilevamento_prev_msk::nuova_riga()
|
|||||||
msk.enable(S_CODRIS);
|
msk.enable(S_CODRIS);
|
||||||
if (tutti || tipo == "A")
|
if (tutti || tipo == "A")
|
||||||
msk.enable(S_CODATT);
|
msk.enable(S_CODATT);
|
||||||
msk.enable(S_DADATA, dadata.empty());
|
// msk.enable(S_DADATA, dadata.empty());
|
||||||
msk.enable(S_ADATA, adata.empty());
|
// msk.enable(S_ADATA, adata.empty());
|
||||||
msk.enable(S_TPORA, tpora.empty());
|
msk.enable(S_TPORA, tpora.empty());
|
||||||
if (_scdc_sid >= 0)
|
if (_scdc_sid >= 0)
|
||||||
for ( short id = _scdc_sid; id <= _scdc_lid; id++)
|
for ( short id = _scdc_sid; id <= _scdc_lid; id++)
|
||||||
@ -552,6 +555,7 @@ void TRilevamento_prev_msk::registra()
|
|||||||
{
|
{
|
||||||
TRilevamento_ore rilroa;
|
TRilevamento_ore rilroa;
|
||||||
TSheet_field& sheet = sfield(F_SHEET);
|
TSheet_field& sheet = sfield(F_SHEET);
|
||||||
|
int err = NOERR;
|
||||||
|
|
||||||
FOR_EACH_SHEET_ROW(sheet, r, row)
|
FOR_EACH_SHEET_ROW(sheet, r, row)
|
||||||
{
|
{
|
||||||
@ -561,6 +565,7 @@ void TRilevamento_prev_msk::registra()
|
|||||||
const TDate& dadata = riga.get(sheet.cid2index(S_DADATA));
|
const TDate& dadata = riga.get(sheet.cid2index(S_DADATA));
|
||||||
const TDate& adata = riga.get(sheet.cid2index(S_ADATA));
|
const TDate& adata = riga.get(sheet.cid2index(S_ADATA));
|
||||||
const TString4 tpora = riga.get(sheet.cid2index(S_TPORA));
|
const TString4 tpora = riga.get(sheet.cid2index(S_TPORA));
|
||||||
|
const long id = riga.get_long(sheet.cid2index(S_ID));
|
||||||
TString80 codcosto;
|
TString80 codcosto;
|
||||||
TString80 codcms;
|
TString80 codcms;
|
||||||
TString80 codfase;
|
TString80 codfase;
|
||||||
@ -569,21 +574,39 @@ void TRilevamento_prev_msk::registra()
|
|||||||
const real costo(tmp);
|
const real costo(tmp);
|
||||||
|
|
||||||
get_row_anal_fields(riga, codcosto, codcms, codfase);
|
get_row_anal_fields(riga, codcosto, codcms, codfase);
|
||||||
|
rilroa.read('P', id);
|
||||||
rilroa.read('P', dadata.year(), dadata.month(), dadata.day(), tipora, codice, tpora, codcosto, codcms, codfase);
|
|
||||||
|
|
||||||
if(qtaore == 0)
|
if(qtaore == 0)
|
||||||
rilroa.remove();
|
err = rilroa.remove();
|
||||||
else
|
else
|
||||||
{
|
|
||||||
rilroa.set_dadata(dadata);
|
|
||||||
rilroa.set_adata(adata);
|
|
||||||
rilroa.set_qtaore(qtaore);
|
|
||||||
rilroa.set_costo(costo);
|
|
||||||
|
|
||||||
int err = rilroa.rewrite_write();
|
{
|
||||||
|
rilroa.put(RILORE_TIPO, "P");
|
||||||
|
rilroa.put(RILORE_ID, id);
|
||||||
|
rilroa.put(RILORE_ANNO, dadata.year());
|
||||||
|
rilroa.put(RILORE_MESE, dadata.month());
|
||||||
|
rilroa.put(RILORE_GIORNO, dadata.day());
|
||||||
|
rilroa.put(RILORE_TIPORA, tipora);
|
||||||
|
rilroa.put(RILORE_CODICE, codice);
|
||||||
|
rilroa.put(RILORE_TPORA, tpora);
|
||||||
|
rilroa.put(RILORE_CODCOSTO, codcosto);
|
||||||
|
rilroa.put(RILORE_CODCMS, codcms);
|
||||||
|
rilroa.put(RILORE_CODFASE, codfase);
|
||||||
|
rilroa.put(RILORE_DADATA, dadata);
|
||||||
|
rilroa.put(RILORE_ADATA, adata);
|
||||||
|
rilroa.put(RILORE_QTAORE, qtaore);
|
||||||
|
rilroa.put(RILORE_COSTO, costo);
|
||||||
|
err = rilroa.rewrite_write();
|
||||||
}
|
}
|
||||||
|
if (err != NOERR)
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
if (err == NOERR)
|
||||||
|
{
|
||||||
|
sheet.destroy();
|
||||||
|
riempi_sheet();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
error_box(FR("Errore %d in scrittura"), err);
|
||||||
}
|
}
|
||||||
|
|
||||||
//ON_FIELD_EVENT: metodo che gestisce gli eventi sui vari campi della maschera
|
//ON_FIELD_EVENT: metodo che gestisce gli eventi sui vari campi della maschera
|
||||||
|
@ -38,3 +38,4 @@
|
|||||||
#define S_CDC12 117
|
#define S_CDC12 117
|
||||||
#define S_QTAORE 118
|
#define S_QTAORE 118
|
||||||
#define S_COSTO 119
|
#define S_COSTO 119
|
||||||
|
#define S_ID 121
|
@ -138,14 +138,15 @@ BEGIN
|
|||||||
ITEM "Qta\nOre@5"
|
ITEM "Qta\nOre@5"
|
||||||
ITEM "Costo@10"
|
ITEM "Costo@10"
|
||||||
ITEM "Descrizione@50"
|
ITEM "Descrizione@50"
|
||||||
|
ITEM "ID@8"
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
|
||||||
PAGE "Riga preventivo" -1 -1 78 13
|
PAGE "Riga preventivo" -1 -1 78 14
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 76 12
|
GROUPBOX DLG_NULL 76 1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "@bRisorsa - Attrezzatura"
|
PROMPT 1 1 "@bRisorsa - Attrezzatura"
|
||||||
END
|
END
|
||||||
@ -308,6 +309,12 @@ BEGIN
|
|||||||
PROMPT 30 11 "Prezzo "
|
PROMPT 30 11 "Prezzo "
|
||||||
END
|
END
|
||||||
|
|
||||||
|
NUMBER S_ID 8
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 12 "ID "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
TOOLBAR "" 0 0 0 2
|
TOOLBAR "" 0 0 0 2
|
||||||
|
257
ci/ci2200.cpp
257
ci/ci2200.cpp
@ -31,7 +31,14 @@ class TRilevamento_cons_msk : public TAutomask
|
|||||||
short _sfase_sid, _sfase_lid;
|
short _sfase_sid, _sfase_lid;
|
||||||
char _edit_mode;
|
char _edit_mode;
|
||||||
TDate _datasel;
|
TDate _datasel;
|
||||||
|
TString _dett;
|
||||||
|
int _anno;
|
||||||
|
int _mese;
|
||||||
int _giorno;
|
int _giorno;
|
||||||
|
int _first_ex;
|
||||||
|
int _n_ex;
|
||||||
|
int _es_array[32];
|
||||||
|
TEsercizi_contabili _es;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
const real proponi_costo(TToken_string& riga);
|
const real proponi_costo(TToken_string& riga);
|
||||||
@ -39,13 +46,13 @@ protected:
|
|||||||
void get_row_anal_fields(TToken_string & row, TString & cdc, TString & cms, TString & fase);
|
void get_row_anal_fields(TToken_string & row, TString & cdc, TString & cms, TString & fase);
|
||||||
void put_row_anal_fields(TToken_string & row, const TString & cdc, const TString & cms, const TString & fase);
|
void put_row_anal_fields(TToken_string & row, const TString & cdc, const TString & cms, const TString & fase);
|
||||||
void carica_default();
|
void carica_default();
|
||||||
|
void update_day();
|
||||||
void riempi_sheet();
|
void riempi_sheet();
|
||||||
void riempi_calendario(const TString & query, const int anno, const int mese);
|
void riempi_calendario(const TString & query);
|
||||||
void riempi_risoatt(int giorno);
|
void riempi_risoatt();
|
||||||
void azzera_tutto();
|
void azzera_tutto();
|
||||||
void registra();
|
void registra();
|
||||||
|
|
||||||
virtual void notify_focus_field(short id);
|
|
||||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -65,18 +72,17 @@ const real TRilevamento_cons_msk::proponi_costo(TToken_string& riga)
|
|||||||
default : break;
|
default : break;
|
||||||
}
|
}
|
||||||
|
|
||||||
const int anno = get_int(F_ANNO);
|
const TDate dal(1, _mese, _anno);
|
||||||
const TString4 mese = get(F_MESE);
|
|
||||||
const TString4 tpora = riga.get(sheet.cid2index(S_TPORA));
|
const TString4 tpora = riga.get(sheet.cid2index(S_TPORA));
|
||||||
|
|
||||||
const TRisoatt_key chiave(tipo, codice, anno, mese, tpora);
|
const TRisoatt_key chiave(tipo, codice, dal, tpora);
|
||||||
const TRectype & roa = cache().get("&ROA", chiave);
|
const TRectype & roa = cache().get("&ROA", chiave);
|
||||||
|
|
||||||
if(!roa.empty())
|
if(!roa.empty())
|
||||||
costo = roa.get_real("R1");
|
costo = roa.get_real("R1");
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TString8 tmp; tmp << anno << mese;
|
TString8 tmp; tmp << _anno << _mese;
|
||||||
const long anme = atol(tmp);
|
const long anme = atol(tmp);
|
||||||
TString query;
|
TString query;
|
||||||
query << "USE &ROA\n"
|
query << "USE &ROA\n"
|
||||||
@ -193,9 +199,7 @@ void TRilevamento_cons_msk::put_row_anal_fields(TToken_string & row, const TStri
|
|||||||
void TRilevamento_cons_msk::carica_default()
|
void TRilevamento_cons_msk::carica_default()
|
||||||
{
|
{
|
||||||
//leggo dalla maschera i campi chiave di ricerca
|
//leggo dalla maschera i campi chiave di ricerca
|
||||||
const int anno = get_int(F_ANNO);
|
|
||||||
const TString4 risoatt = get(F_RISOATT) == "T" ? "" : get(F_RISOATT);
|
const TString4 risoatt = get(F_RISOATT) == "T" ? "" : get(F_RISOATT);
|
||||||
const int mese = get_int(F_MESE);
|
|
||||||
const TString4 tpora = get(F_TPORA);
|
const TString4 tpora = get(F_TPORA);
|
||||||
TString80 codcosto;
|
TString80 codcosto;
|
||||||
TString80 codcms;
|
TString80 codcms;
|
||||||
@ -212,7 +216,7 @@ void TRilevamento_cons_msk::carica_default()
|
|||||||
}
|
}
|
||||||
get_anal_fields(codcosto, codcms, codfase);
|
get_anal_fields(codcosto, codcms, codfase);
|
||||||
|
|
||||||
query << "USE " << LF_RILORE << "\n" ;
|
query << "USE " << LF_RILORE << " KEY 2\n" ;
|
||||||
if (risoatt.full())
|
if (risoatt.full())
|
||||||
select << "(" << RILORE_TIPORA << "==\"" << risoatt << "\")";
|
select << "(" << RILORE_TIPORA << "==\"" << risoatt << "\")";
|
||||||
if (codice.full())
|
if (codice.full())
|
||||||
@ -245,33 +249,75 @@ void TRilevamento_cons_msk::carica_default()
|
|||||||
|
|
||||||
TString fromto = RILORE_TIPO "=\"D\" ";
|
TString fromto = RILORE_TIPO "=\"D\" ";
|
||||||
|
|
||||||
if (anno > 0)
|
if (_anno > 0)
|
||||||
{
|
{
|
||||||
fromto << " " << RILORE_ANNO << "=" << anno << " ";
|
fromto << " " << RILORE_ANNO << "=" << _anno << " ";
|
||||||
if (mese > 0)
|
if (_mese > 0)
|
||||||
fromto << RILORE_MESE << "=" << mese << " ";
|
fromto << RILORE_MESE << "=" << _mese << " ";
|
||||||
}
|
}
|
||||||
riempi_calendario(query, anno, mese);
|
riempi_calendario(query);
|
||||||
}
|
}
|
||||||
|
|
||||||
//RIEMPI_CALENDARIO: coloro le celle dello sheet calendario secondo le festività e i giorni occupati
|
//RIEMPI_CALENDARIO: coloro le celle dello sheet calendario secondo le festività e i giorni occupati
|
||||||
void TRilevamento_cons_msk::riempi_calendario(const TString & query, const int anno, const int mese)
|
void TRilevamento_cons_msk::riempi_calendario(const TString & query)
|
||||||
{
|
{
|
||||||
TSheet_field& calendario = sfield(F_CALENDARIO);
|
TSheet_field& calendario = sfield(F_CALENDARIO);
|
||||||
|
|
||||||
calendario.destroy();
|
if (_dett == "A")
|
||||||
sfield(F_SHEET).destroy();
|
{
|
||||||
|
TBit_array full_years;
|
||||||
TToken_string & row = calendario.row(-1);
|
|
||||||
TDate d(1, mese, anno); d.set_end_month();
|
|
||||||
const int end_month = d.day();
|
|
||||||
const short last_id = DAY2ID(end_month);
|
|
||||||
TBit_array fulldays;
|
|
||||||
TISAM_recordset recset(query);
|
TISAM_recordset recset(query);
|
||||||
|
|
||||||
//abilito per default tutte le colonne del calendario
|
for (bool ok = recset.move_first(); ok; ok = recset.move_next())
|
||||||
for(short id = C_1; id <= C_31; id++)
|
{
|
||||||
calendario.enable_column(calendario.cid2index(id), id <= last_id ? true : false);
|
const int anno = recset.get(RILORE_ANNO).as_int();
|
||||||
|
|
||||||
|
full_years.set(anno);
|
||||||
|
}
|
||||||
|
for (int i = 0; i < _n_ex; i++)
|
||||||
|
{
|
||||||
|
TToken_string & row = calendario.row(i);
|
||||||
|
|
||||||
|
if (full_years[_es_array[i]])
|
||||||
|
{
|
||||||
|
if (_edit_mode)
|
||||||
|
calendario.set_back_and_fore_color(COLOR_DKBLUE, COLOR_DKBLUE, i, 0); // coloro di blu le date con registrazioni
|
||||||
|
}
|
||||||
|
row.add(_es_array[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if (_dett == "M")
|
||||||
|
{
|
||||||
|
TBit_array full_months;
|
||||||
|
TISAM_recordset recset(query);
|
||||||
|
|
||||||
|
for (bool ok = recset.move_first(); ok; ok = recset.move_next())
|
||||||
|
{
|
||||||
|
const int mese = recset.get(RILORE_MESE).as_int();
|
||||||
|
|
||||||
|
full_months.set(mese);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 12; i++)
|
||||||
|
{
|
||||||
|
TToken_string & row = calendario.row(i);
|
||||||
|
|
||||||
|
if (full_months[i])
|
||||||
|
{
|
||||||
|
if (_edit_mode)
|
||||||
|
calendario.set_back_and_fore_color(COLOR_DKBLUE, COLOR_DKBLUE, i, 0); // coloro di blu le date con registrazioni
|
||||||
|
}
|
||||||
|
row.add(itom(i + 1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if (_dett == "G")
|
||||||
|
{
|
||||||
|
TDate d(1, _mese, _anno); d.set_end_month();
|
||||||
|
const int end_month = d.day();
|
||||||
|
TBit_array fulldays;
|
||||||
|
TISAM_recordset recset(query);
|
||||||
|
|
||||||
//scorro il recordset, aggiungo una riga allo sheet per ogni chiave analitica che trovo e coloro di blu
|
//scorro il recordset, aggiungo una riga allo sheet per ogni chiave analitica che trovo e coloro di blu
|
||||||
//tutte le celle che corrispondono a una data interessata da qualcosa
|
//tutte le celle che corrispondono a una data interessata da qualcosa
|
||||||
@ -282,24 +328,25 @@ void TRilevamento_cons_msk::riempi_calendario(const TString & query, const int a
|
|||||||
fulldays.set(day);
|
fulldays.set(day);
|
||||||
}
|
}
|
||||||
|
|
||||||
for(short id = C_1; id <= last_id; id++)
|
for(int i = 0; i < end_month; i++)
|
||||||
{
|
{
|
||||||
const int column = calendario.cid2index(id);
|
TToken_string & row = calendario.row(i);
|
||||||
|
|
||||||
if (fulldays[ID2DAY(id)])
|
if (fulldays[i])
|
||||||
{
|
{
|
||||||
if (_edit_mode)
|
if (_edit_mode)
|
||||||
calendario.set_back_and_fore_color(COLOR_DKBLUE, COLOR_DKBLUE, 0, column); // coloro di blu le date con registrazioni
|
calendario.set_back_and_fore_color(COLOR_DKBLUE, COLOR_DKBLUE, i, 0); // coloro di blu le date con registrazioni
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (TDate(ID2DAY(id), mese, anno).is_holiday())
|
if (TDate(i, _mese, _anno).is_holiday())
|
||||||
calendario.set_back_and_fore_color(COLOR_DKRED, COLOR_DKRED, 0, column); // coloro di rosso le festività
|
calendario.set_back_and_fore_color(COLOR_DKRED, COLOR_DKRED, i, 0); // coloro di rosso le festività
|
||||||
row.add(' ', column);
|
row.add(i + 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
calendario.force_update();
|
calendario.force_update();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TRilevamento_cons_msk::riempi_risoatt(int giorno)
|
void TRilevamento_cons_msk::riempi_risoatt()
|
||||||
{
|
{
|
||||||
TSheet_field& sheet = sfield(F_SHEET);
|
TSheet_field& sheet = sfield(F_SHEET);
|
||||||
|
|
||||||
@ -308,9 +355,7 @@ void TRilevamento_cons_msk::riempi_risoatt(int giorno)
|
|||||||
sheet.destroy();
|
sheet.destroy();
|
||||||
|
|
||||||
//leggo dalla maschera i campi chiave di ricerca
|
//leggo dalla maschera i campi chiave di ricerca
|
||||||
const int anno = get_int(F_ANNO);
|
|
||||||
const TString4 risoatt = get(F_RISOATT) == "T" ? "" : get(F_RISOATT);
|
const TString4 risoatt = get(F_RISOATT) == "T" ? "" : get(F_RISOATT);
|
||||||
const int mese = get_int(F_MESE);
|
|
||||||
const TString4 tpora = get(F_TPORA);
|
const TString4 tpora = get(F_TPORA);
|
||||||
TString80 codcosto;
|
TString80 codcosto;
|
||||||
TString80 codcms;
|
TString80 codcms;
|
||||||
@ -328,7 +373,7 @@ void TRilevamento_cons_msk::riempi_risoatt(int giorno)
|
|||||||
get_anal_fields(codcosto, codcms, codfase);
|
get_anal_fields(codcosto, codcms, codfase);
|
||||||
//preparo la query
|
//preparo la query
|
||||||
|
|
||||||
query << "USE " << LF_RILORE << "\n" ;
|
query << "USE " << LF_RILORE << " KEY 2\n" ;
|
||||||
if (risoatt.full())
|
if (risoatt.full())
|
||||||
select << "(" << RILORE_TIPORA << "==\"" << risoatt << "\")";
|
select << "(" << RILORE_TIPORA << "==\"" << risoatt << "\")";
|
||||||
if (codice.full())
|
if (codice.full())
|
||||||
@ -365,14 +410,14 @@ void TRilevamento_cons_msk::riempi_risoatt(int giorno)
|
|||||||
fromto << "=\"C\"";
|
fromto << "=\"C\"";
|
||||||
else
|
else
|
||||||
fromto << "=\"D\"";
|
fromto << "=\"D\"";
|
||||||
if (anno > 0)
|
if (_anno > 0)
|
||||||
{
|
{
|
||||||
fromto << " " << RILORE_ANNO << "=" << anno << " ";
|
fromto << " " << RILORE_ANNO << "=" << _anno << " ";
|
||||||
if (mese > 0)
|
if (_mese > 0)
|
||||||
{
|
{
|
||||||
fromto << RILORE_MESE << "=" << mese << " ";
|
fromto << RILORE_MESE << "=" << _mese << " ";
|
||||||
if (_edit_mode && giorno > 0)
|
if (_edit_mode && _giorno > 0)
|
||||||
fromto << RILORE_GIORNO << "=" << giorno << " ";
|
fromto << RILORE_GIORNO << "=" << _giorno << " ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
query << "FROM " << fromto << "\n"
|
query << "FROM " << fromto << "\n"
|
||||||
@ -386,17 +431,22 @@ void TRilevamento_cons_msk::riempi_risoatt(int giorno)
|
|||||||
TRilevamento_ore rilore(def.cursor()->curr());
|
TRilevamento_ore rilore(def.cursor()->curr());
|
||||||
|
|
||||||
TToken_string& riga = sheet.row(-1);
|
TToken_string& riga = sheet.row(-1);
|
||||||
riga.add(rilore.tipora(), sheet.cid2index(S_RISOATT));
|
const char tipo = rilore.get(RILORE_TIPORA)[0];
|
||||||
switch(rilore.tipora())
|
TString16 cod = rilore.get(RILORE_CODICE);
|
||||||
|
|
||||||
|
riga.add(tipo, sheet.cid2index(S_RISOATT));
|
||||||
|
switch(tipo)
|
||||||
{
|
{
|
||||||
case 'R': riga.add(rilore.codice(), sheet.cid2index(S_CODRIS)); break;
|
case 'R': riga.add(cod, sheet.cid2index(S_CODRIS)); break;
|
||||||
case 'A': riga.add(rilore.codice(), sheet.cid2index(S_CODATT)); break;
|
case 'A': riga.add(cod, sheet.cid2index(S_CODATT)); break;
|
||||||
default : break;
|
default : break;
|
||||||
}
|
}
|
||||||
put_row_anal_fields(riga, rilore.codcosto(), rilore.codcms(), rilore.codfase());
|
riga.add(rilore.get(RILORE_TPORA), sheet.cid2index(S_TPORA));
|
||||||
riga.add(rilore.tpora(), sheet.cid2index(S_TPORA));
|
put_row_anal_fields(riga, rilore.get(RILORE_CODCOSTO), rilore.get(RILORE_CODCMS), rilore.get(RILORE_CODFASE));
|
||||||
riga.add(rilore.qtaore(), sheet.cid2index(S_QTAORE));
|
riga.add(rilore.get(RILORE_QTAORE), sheet.cid2index(S_QTAORE));
|
||||||
riga.add(rilore.costo().string(), sheet.cid2index(S_COSTO));
|
riga.add(rilore.get(RILORE_COSTO), sheet.cid2index(S_COSTO));
|
||||||
|
riga.add(rilore.get(RILORE_ID), sheet.cid2index(S_ID));
|
||||||
|
|
||||||
sheet.check_row(sheet.items() - 1);
|
sheet.check_row(sheet.items() - 1);
|
||||||
}
|
}
|
||||||
sheet.force_update();
|
sheet.force_update();
|
||||||
@ -407,9 +457,7 @@ void TRilevamento_cons_msk::riempi_risoatt(int giorno)
|
|||||||
void TRilevamento_cons_msk::riempi_sheet()
|
void TRilevamento_cons_msk::riempi_sheet()
|
||||||
{
|
{
|
||||||
//leggo dalla maschera i campi chiave di ricerca
|
//leggo dalla maschera i campi chiave di ricerca
|
||||||
const int anno = get_int(F_ANNO);
|
|
||||||
const TString4 risoatt = get(F_RISOATT) == "T" ? "" : get(F_RISOATT);
|
const TString4 risoatt = get(F_RISOATT) == "T" ? "" : get(F_RISOATT);
|
||||||
const int mese = get_int(F_MESE);
|
|
||||||
const TString4 tpora = get(F_TPORA);
|
const TString4 tpora = get(F_TPORA);
|
||||||
TString80 codcosto;
|
TString80 codcosto;
|
||||||
TString80 codcms;
|
TString80 codcms;
|
||||||
@ -428,7 +476,7 @@ void TRilevamento_cons_msk::riempi_sheet()
|
|||||||
get_anal_fields(codcosto, codcms, codfase);
|
get_anal_fields(codcosto, codcms, codfase);
|
||||||
|
|
||||||
//preparo la query
|
//preparo la query
|
||||||
query << "USE " << LF_RILORE << "\n" ;
|
query << "USE " << LF_RILORE << " KEY 2\n" ;
|
||||||
if (risoatt.full())
|
if (risoatt.full())
|
||||||
select << "(" << RILORE_TIPORA << "==\"" << risoatt << "\")";
|
select << "(" << RILORE_TIPORA << "==\"" << risoatt << "\")";
|
||||||
if (codice.full())
|
if (codice.full())
|
||||||
@ -461,15 +509,16 @@ void TRilevamento_cons_msk::riempi_sheet()
|
|||||||
|
|
||||||
TString fromto = RILORE_TIPO "=\"C\"";
|
TString fromto = RILORE_TIPO "=\"C\"";
|
||||||
|
|
||||||
if (anno > 0)
|
if (_anno > 0)
|
||||||
{
|
{
|
||||||
fromto << " " << RILORE_ANNO << "=" << anno << " ";
|
fromto << " " << RILORE_ANNO << "=" << _anno << " ";
|
||||||
if (mese > 0)
|
if (_mese > 0)
|
||||||
fromto << RILORE_MESE << "=" << mese << " ";
|
fromto << RILORE_MESE << "=" << _mese << " ";
|
||||||
}
|
}
|
||||||
query << "FROM " << fromto << "\n"
|
query << "FROM " << fromto << "\n"
|
||||||
<< "TO " << fromto;
|
<< "TO " << fromto;
|
||||||
riempi_calendario(query, anno, mese);
|
riempi_calendario(query);
|
||||||
|
riempi_risoatt();
|
||||||
}
|
}
|
||||||
|
|
||||||
//AZZERA_TUTTO: metodo che azzera il valore unitario di tutte le righe visualizzate sullo sheet
|
//AZZERA_TUTTO: metodo che azzera il valore unitario di tutte le righe visualizzate sullo sheet
|
||||||
@ -497,6 +546,7 @@ void TRilevamento_cons_msk::registra()
|
|||||||
TString80 codcosto;
|
TString80 codcosto;
|
||||||
TString80 codcms;
|
TString80 codcms;
|
||||||
TString16 codfase;
|
TString16 codfase;
|
||||||
|
int err = NOERR;
|
||||||
|
|
||||||
FOR_EACH_SHEET_ROW(sheet, r, row)
|
FOR_EACH_SHEET_ROW(sheet, r, row)
|
||||||
{
|
{
|
||||||
@ -505,31 +555,65 @@ void TRilevamento_cons_msk::registra()
|
|||||||
const TString16 codice = tipora == 'R' ? riga.get(sheet.cid2index(S_CODRIS)) : riga.get(sheet.cid2index(S_CODATT));
|
const TString16 codice = tipora == 'R' ? riga.get(sheet.cid2index(S_CODRIS)) : riga.get(sheet.cid2index(S_CODATT));
|
||||||
const TString4 tpora = riga.get(sheet.cid2index(S_TPORA));
|
const TString4 tpora = riga.get(sheet.cid2index(S_TPORA));
|
||||||
const int qtaore = riga.get_int(sheet.cid2index(S_QTAORE));
|
const int qtaore = riga.get_int(sheet.cid2index(S_QTAORE));
|
||||||
|
const long id = riga.get_long(sheet.cid2index(S_ID));
|
||||||
const real costo(riga.get(sheet.cid2index(S_COSTO)));
|
const real costo(riga.get(sheet.cid2index(S_COSTO)));
|
||||||
|
|
||||||
get_row_anal_fields(riga, codcosto, codcms, codfase);
|
get_row_anal_fields(riga, codcosto, codcms, codfase);
|
||||||
rilroa.read('C', anno, mese, _giorno, tipora, codice, tpora, codcosto, codcms, codfase);
|
rilroa.read('C', id);
|
||||||
if(qtaore == 0)
|
if(qtaore == 0)
|
||||||
rilroa.remove();
|
err = rilroa.remove();
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
rilroa.set_qtaore(qtaore);
|
rilroa.put(RILORE_TIPO, "C");
|
||||||
rilroa.set_costo(costo);
|
rilroa.put(RILORE_ID, id);
|
||||||
|
rilroa.put(RILORE_ANNO, anno);
|
||||||
int err = rilroa.rewrite_write();
|
rilroa.put(RILORE_MESE, mese);
|
||||||
|
rilroa.put(RILORE_GIORNO, _giorno);
|
||||||
|
rilroa.put(RILORE_TIPORA, tipora);
|
||||||
|
rilroa.put(RILORE_CODICE, codice);
|
||||||
|
rilroa.put(RILORE_TPORA, tpora);
|
||||||
|
rilroa.put(RILORE_CODCOSTO, codcosto);
|
||||||
|
rilroa.put(RILORE_CODCMS, codcms);
|
||||||
|
rilroa.put(RILORE_CODFASE, codfase);
|
||||||
|
rilroa.put(RILORE_QTAORE, qtaore);
|
||||||
|
rilroa.put(RILORE_COSTO, costo);
|
||||||
|
err = rilroa.rewrite_write();
|
||||||
}
|
}
|
||||||
|
if (err != NOERR)
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
if (err == NOERR)
|
||||||
|
{
|
||||||
|
sheet.destroy();
|
||||||
riempi_sheet();
|
riempi_sheet();
|
||||||
riempi_risoatt(_giorno);
|
}
|
||||||
|
else
|
||||||
|
error_box(FR("Errore %d in scrittura"), err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TRilevamento_cons_msk::notify_focus_field(short id)
|
void TRilevamento_cons_msk::update_day()
|
||||||
{
|
{
|
||||||
TMask::notify_focus_field(id);
|
const int row = sfield(F_CALENDARIO).selected();
|
||||||
if(id == F_CALENDARIO)
|
|
||||||
|
if (_dett == "G")
|
||||||
{
|
{
|
||||||
_giorno = sfield(id).current_column();
|
_anno = get_int(F_ANNO);
|
||||||
riempi_risoatt(_giorno);
|
_mese = get_int(F_MESE);
|
||||||
|
_giorno = row +1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if (_dett == "M")
|
||||||
|
{
|
||||||
|
_anno = get_int(F_ANNO);
|
||||||
|
_mese = row + 1;
|
||||||
|
_giorno = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if (_dett == "A")
|
||||||
|
{
|
||||||
|
_anno = _es_array[row];
|
||||||
|
_mese = 1;
|
||||||
|
_giorno = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -567,7 +651,17 @@ bool TRilevamento_cons_msk::on_field_event(TOperable_field& f, TField_event e, l
|
|||||||
case F_CODATT:
|
case F_CODATT:
|
||||||
case F_TPORA:
|
case F_TPORA:
|
||||||
if (e == fe_modify)
|
if (e == fe_modify)
|
||||||
|
{
|
||||||
|
update_day();
|
||||||
riempi_sheet();
|
riempi_sheet();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case F_CALENDARIO:
|
||||||
|
if (e == se_enter)
|
||||||
|
{
|
||||||
|
update_day();
|
||||||
|
riempi_risoatt();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case S_RISOATT:
|
case S_RISOATT:
|
||||||
case S_CODRIS:
|
case S_CODRIS:
|
||||||
@ -714,6 +808,25 @@ TRilevamento_cons_msk::TRilevamento_cons_msk()
|
|||||||
s.delete_column(id);
|
s.delete_column(id);
|
||||||
}
|
}
|
||||||
_qtaore = 0;
|
_qtaore = 0;
|
||||||
|
_dett = ini_get_string(CONFIG_DITTA, "ci", "DETTCONS");
|
||||||
|
TSheet_field & sc = sfield(F_CALENDARIO);
|
||||||
|
|
||||||
|
_n_ex = 0;
|
||||||
|
for (int codes = _es.first(); codes != 0; codes = _es.next(codes))
|
||||||
|
_es_array[_n_ex++] = codes;
|
||||||
|
if (_dett == "A")
|
||||||
|
{
|
||||||
|
reset(F_ANNO);
|
||||||
|
disable(F_ANNO);
|
||||||
|
reset(F_MESE);
|
||||||
|
disable(F_MESE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if (_dett == "M")
|
||||||
|
{
|
||||||
|
reset(F_MESE);
|
||||||
|
disable(F_MESE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////
|
////////////////////////////////////////////
|
||||||
|
36
ci/ci2200a.h
36
ci/ci2200a.h
@ -19,40 +19,7 @@
|
|||||||
#define DLG_CERCA 901
|
#define DLG_CERCA 901
|
||||||
#define DLG_DEFAULT 902
|
#define DLG_DEFAULT 902
|
||||||
|
|
||||||
#define C_0 100
|
#define F_CONT 101
|
||||||
#define C_1 101
|
|
||||||
#define C_2 102
|
|
||||||
#define C_3 103
|
|
||||||
#define C_4 104
|
|
||||||
#define C_5 105
|
|
||||||
#define C_6 106
|
|
||||||
#define C_7 107
|
|
||||||
#define C_8 108
|
|
||||||
#define C_9 109
|
|
||||||
#define C_10 110
|
|
||||||
#define C_11 111
|
|
||||||
#define C_12 112
|
|
||||||
#define C_13 113
|
|
||||||
#define C_14 114
|
|
||||||
#define C_15 115
|
|
||||||
#define C_16 116
|
|
||||||
#define C_17 117
|
|
||||||
#define C_18 118
|
|
||||||
#define C_19 119
|
|
||||||
#define C_20 120
|
|
||||||
#define C_21 121
|
|
||||||
#define C_22 122
|
|
||||||
#define C_23 123
|
|
||||||
#define C_24 124
|
|
||||||
#define C_25 125
|
|
||||||
#define C_26 126
|
|
||||||
#define C_27 127
|
|
||||||
#define C_28 128
|
|
||||||
#define C_29 129
|
|
||||||
#define C_30 130
|
|
||||||
#define C_31 131
|
|
||||||
#define ID2DAY(ID) (ID - C_0)
|
|
||||||
#define DAY2ID(DAY) (C_0 + DAY)
|
|
||||||
|
|
||||||
#define S_RISOATT 101
|
#define S_RISOATT 101
|
||||||
#define S_CODRIS 102
|
#define S_CODRIS 102
|
||||||
@ -75,3 +42,4 @@
|
|||||||
#define S_QTAORE 116
|
#define S_QTAORE 116
|
||||||
#define S_COSTO 117
|
#define S_COSTO 117
|
||||||
#define S_OREDIS 118
|
#define S_OREDIS 118
|
||||||
|
#define S_ID 120
|
||||||
|
203
ci/ci2200a.uml
203
ci/ci2200a.uml
@ -40,13 +40,13 @@ END
|
|||||||
NUMBER F_ANNO 4
|
NUMBER F_ANNO 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 1 "Anno "
|
PROMPT 2 1 "Anno "
|
||||||
FLAGS "A"
|
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
END
|
END
|
||||||
|
|
||||||
LISTBOX F_MESE 10
|
LISTBOX F_MESE 10
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 24 1 "Mese "
|
PROMPT 24 1 "Mese "
|
||||||
|
ITEM "|"
|
||||||
FLAGS "M"
|
FLAGS "M"
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -112,45 +112,15 @@ BEGIN
|
|||||||
GROUP 3
|
GROUP 3
|
||||||
END
|
END
|
||||||
|
|
||||||
SPREADSHEET F_CALENDARIO -16 2
|
SPREADSHEET F_CALENDARIO 10 0
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 7 ""
|
PROMPT 1 7 ""
|
||||||
ITEM "1@2"
|
ITEM "@4"
|
||||||
ITEM "2@2"
|
|
||||||
ITEM "3@2"
|
|
||||||
ITEM "4@2"
|
|
||||||
ITEM "5@2"
|
|
||||||
ITEM "6@2"
|
|
||||||
ITEM "7@2"
|
|
||||||
ITEM "8@2"
|
|
||||||
ITEM "9@2"
|
|
||||||
ITEM "10"
|
|
||||||
ITEM "11"
|
|
||||||
ITEM "12"
|
|
||||||
ITEM "13"
|
|
||||||
ITEM "14"
|
|
||||||
ITEM "15"
|
|
||||||
ITEM "16"
|
|
||||||
ITEM "17"
|
|
||||||
ITEM "18"
|
|
||||||
ITEM "19"
|
|
||||||
ITEM "20"
|
|
||||||
ITEM "21"
|
|
||||||
ITEM "22"
|
|
||||||
ITEM "23"
|
|
||||||
ITEM "24"
|
|
||||||
ITEM "25"
|
|
||||||
ITEM "26"
|
|
||||||
ITEM "27"
|
|
||||||
ITEM "28"
|
|
||||||
ITEM "29"
|
|
||||||
ITEM "30"
|
|
||||||
ITEM "31"
|
|
||||||
END
|
END
|
||||||
|
|
||||||
SPREADSHEET F_SHEET -15 0
|
SPREADSHEET F_SHEET 65 0
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 10 ""
|
PROMPT 15 7 ""
|
||||||
ITEM "Tipo"
|
ITEM "Tipo"
|
||||||
ITEM "Codice@16"
|
ITEM "Codice@16"
|
||||||
ITEM "Tipo\nOra@5"
|
ITEM "Tipo\nOra@5"
|
||||||
@ -170,166 +140,17 @@ BEGIN
|
|||||||
ITEM "Costo@6"
|
ITEM "Costo@6"
|
||||||
ITEM "Ore\ndisponibilità"
|
ITEM "Ore\ndisponibilità"
|
||||||
ITEM "Descrizione@50"
|
ITEM "Descrizione@50"
|
||||||
|
ITEM "ID@8"
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
|
||||||
PAGE "Calendario" -1 -1 78 13
|
PAGE "Calendario" -1 -1 78 6
|
||||||
|
|
||||||
STRING C_1 1
|
STRING F_CONT 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 4 " 1"
|
PROMPT 2 2 " "
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_2 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 6 4 " 2"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_3 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 10 4 " 3"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_4 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 14 4 " 4"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_5 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 18 4 " 5"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_6 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 22 4 " 6"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_7 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 26 4 " 7"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_8 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 30 4 " 8"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_9 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 34 4 " 9"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_10 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 38 4 "10"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_11 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 42 4 "11"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_12 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 46 4 "12"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_13 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 50 4 "13"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_14 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 54 4 "14"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_15 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 58 4 "15"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_16 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 62 4 "16"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_17 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 66 4 "17"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_18 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 70 4 "18"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_19 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 2 5 "19"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_20 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 6 5 "20"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_21 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 10 5 "21"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_22 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 14 5 "22"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_23 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 18 5 "23"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_24 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 22 5 "24"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_25 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 26 5 "25"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_26 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 30 5 "26"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_27 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 34 5 "27"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_28 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 38 5 "28"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_29 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 42 5 "29"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_30 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 46 5 "30"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING C_31 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 50 5 "31"
|
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
@ -503,6 +324,12 @@ BEGIN
|
|||||||
PROMPT 50 11 "Quantità ore "
|
PROMPT 50 11 "Quantità ore "
|
||||||
END
|
END
|
||||||
|
|
||||||
|
NUMBER S_ID 8
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 12 "ID "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
TOOLBAR "" 0 0 0 2
|
TOOLBAR "" 0 0 0 2
|
||||||
|
@ -766,10 +766,14 @@ void TRilevamento_ore::update_id()
|
|||||||
const TString4 tipo = get(RILORE_TIPO);
|
const TString4 tipo = get(RILORE_TIPO);
|
||||||
|
|
||||||
rilore.put(RILORE_TIPO, tipo);
|
rilore.put(RILORE_TIPO, tipo);
|
||||||
rilore.put(RILORE_ID, 999999999L);
|
rilore.put(RILORE_ID, 99999999L);
|
||||||
|
|
||||||
if (rilore.read() != _isemptyfile && rilore.get(RILORE_TIPO) == tipo)
|
if (rilore.read() != _isemptyfile)
|
||||||
|
{
|
||||||
|
if (rilore.get(RILORE_TIPO) != tipo)
|
||||||
|
rilore.prev();
|
||||||
id = rilore.get_long(RILORE_ID);
|
id = rilore.get_long(RILORE_ID);
|
||||||
|
}
|
||||||
put(RILORE_ID, ++id);
|
put(RILORE_ID, ++id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user