Patch level : 12.0 364
Files correlati : li0.exe Commento : - Sistemato bug anno lilib01 e tolta sovrascrittura cliente. - Aggiunto blocco durante l'inserimento di una nuova dichiarazione se la precedente del cliente non è chiusa. - Tolto sovrascrittura flag "Usa li". git-svn-id: svn://10.65.10.50/branches/R_10_00@23681 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
5d4ba97680
commit
05e9108d56
@ -17,6 +17,9 @@ class TLetint_mask : public TAutomask
|
|||||||
protected:
|
protected:
|
||||||
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);
|
||||||
virtual bool on_key(KEY k);
|
virtual bool on_key(KEY k);
|
||||||
|
bool hasLiOpen();
|
||||||
|
|
||||||
|
bool block;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TDate ultima_stampa(int anno);
|
TDate ultima_stampa(int anno);
|
||||||
@ -83,15 +86,29 @@ bool TLetint_mask::on_field_event(TOperable_field& o, TField_event e, long jolly
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case F_CODCLI:
|
||||||
|
// Controllo se il cliente non ha già una dichiarazione aperta
|
||||||
|
if(hasLiOpen() && insert_mode())
|
||||||
|
{
|
||||||
|
warning_box("Il cliente %d ha già una dichiarazione aperta! Chiudere prima la precedente!", get_int(F_CODCLI));
|
||||||
|
|
||||||
|
disable(DLG_SAVEREC);
|
||||||
|
block = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
enable(DLG_SAVEREC);
|
||||||
|
enable(F_TIPOOP);
|
||||||
|
}
|
||||||
case F_TIPOOP:
|
case F_TIPOOP:
|
||||||
switch(get_int(F_TIPOOP))
|
switch(get_int(F_TIPOOP))
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
enable(DLG_SAVEREC);
|
if(!block) enable(DLG_SAVEREC);
|
||||||
disable(F_DAL);
|
disable(F_DAL);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
enable(DLG_SAVEREC);
|
if(!block) enable(DLG_SAVEREC);
|
||||||
enable(F_DAL);
|
enable(F_DAL);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
@ -101,28 +118,27 @@ bool TLetint_mask::on_field_event(TOperable_field& o, TField_event e, long jolly
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DLG_SAVEREC:
|
|
||||||
{
|
|
||||||
// Salvo le informazioni nel cliente:
|
|
||||||
TRectype cli = cache().get(LF_CFVEN, TString("C|")<< get_int(F_CODCLI));
|
|
||||||
if(!cli.get("VSNRPROT").empty() && TDate(get(F_DAL)) <= TDate(TODAY))
|
|
||||||
{
|
|
||||||
cli.put("VSNRPROT", get_int(F_VSPROT));
|
|
||||||
cli.put("VSDATAREG", get_date(F_VSDATA));
|
|
||||||
cli.put("NSNPROT", get_int(F_NUMPROT));
|
|
||||||
cli.put("NSDATAREG", get_date(F_DATAREG));
|
|
||||||
cli.rewrite(TLocalisamfile(LF_CFVEN));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
// Abilito l'utilizzo delle dichiarazioni di intento
|
|
||||||
ini_set_bool(CONFIG_DITTA, "ve", "USELETTERE", true);
|
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TLetint_mask::hasLiOpen()
|
||||||
|
{
|
||||||
|
TRelation relLi(LF_LETINT);
|
||||||
|
TRectype r_li(relLi.curr());
|
||||||
|
r_li.put("CODCLI", get(F_CODCLI));
|
||||||
|
r_li.put("ANNO", 2017); // É da quest'anno che abbiamo messo il campo chiusa
|
||||||
|
|
||||||
|
TCursor c_li(&relLi, "", 2, &r_li, &r_li);
|
||||||
|
for(c_li = 0; c_li.pos() < c_li.items(); ++c_li)
|
||||||
|
{
|
||||||
|
if(!c_li.curr().get_bool("CHIUSA")) return true; // Alla prima trovata esco
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
TDate TLetint_mask::ultima_stampa(int anno)
|
TDate TLetint_mask::ultima_stampa(int anno)
|
||||||
{
|
{
|
||||||
TTable reg("REG");
|
TTable reg("REG");
|
||||||
@ -146,7 +162,7 @@ TDate TLetint_mask::ultima_stampa(int anno)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TLetint_mask::TLetint_mask() : TAutomask("li0400a")
|
TLetint_mask::TLetint_mask() : TAutomask("li0400a"), block(false)
|
||||||
{
|
{
|
||||||
first_focus(F_ANNO);
|
first_focus(F_ANNO);
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,8 @@ void TLi_manager::elabPlafond()
|
|||||||
TDate today(TODAY);
|
TDate today(TODAY);
|
||||||
if(!iniDicInt.ok())
|
if(!iniDicInt.ok())
|
||||||
filtro.add("ANNO", today.year());
|
filtro.add("ANNO", today.year());
|
||||||
filtro.add("ANNO", iniDicInt.year());
|
else
|
||||||
|
filtro.add("ANNO", iniDicInt.year());
|
||||||
|
|
||||||
// Creo un cursore ordinato e prelevo la prima riga non chiusa
|
// Creo un cursore ordinato e prelevo la prima riga non chiusa
|
||||||
TCursor c_dicint(&letint, "", 2, &filtro, &filtro);
|
TCursor c_dicint(&letint, "", 2, &filtro, &filtro);
|
||||||
@ -43,22 +44,14 @@ void TLi_manager::elabPlafond()
|
|||||||
TRectype row = c_dicint.curr();
|
TRectype row = c_dicint.curr();
|
||||||
if(!row.get_bool("CHIUSA"))
|
if(!row.get_bool("CHIUSA"))
|
||||||
{
|
{
|
||||||
if(iniDicInt.ok() && row.get_date("DAL") > iniDicInt) continue;
|
if(iniDicInt.ok() && row.get_date("DAL") > iniDicInt) break;
|
||||||
done = true;
|
done = true;
|
||||||
if(row.get_int("TIPOOP") != FINO_A_PLAFOND && row.get_int("TIPOOP") != SOLUZIONE_UNICA) continue;
|
if(row.get_int("TIPOOP") != FINO_A_PLAFOND && row.get_int("TIPOOP") != SOLUZIONE_UNICA) break;
|
||||||
|
|
||||||
if(row.get_int("TIPOOP") == SOLUZIONE_UNICA) soluzione = true;
|
if(row.get_int("TIPOOP") == SOLUZIONE_UNICA) soluzione = true;
|
||||||
iniDicInt = row.get_date("DAL");
|
iniDicInt = row.get_date("DAL");
|
||||||
plafond = row.get_real("IMPORTO");
|
plafond = row.get_real("IMPORTO");
|
||||||
validPlafond = true;
|
validPlafond = true;
|
||||||
|
|
||||||
// Salvo le informazioni nel cliente:
|
|
||||||
TRectype cli = cache().get(LF_CFVEN, TString("C|")<<codcli);
|
|
||||||
cli.put("VSNRPROT", row.get_int("VSPROT"));
|
|
||||||
cli.put("VSDATAREG", row.get_date("VSDATA"));
|
|
||||||
cli.put("NSNPROT", row.get_int("NUMPROT"));
|
|
||||||
cli.put("NSDATAREG", row.get_date("DATAREG"));
|
|
||||||
cli.rewrite(TLocalisamfile(LF_CFVEN));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user