Patch level : 10.0
Files correlati : lv0, tracciati record Ricompilazione Demo : [ ] Commento : Aggiunti i campi relativi al tipo forfait in testata e fatto in modo che, se selezionati, valgano per tutte le righe del contratto git-svn-id: svn://10.65.10.50/trunk@18960 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
fc80f47683
commit
999644b0a8
@ -1,3 +1,3 @@
|
||||
168
|
||||
0
|
||||
$lvcondv|||187|0|Tabella testate di contratto|||
|
||||
$lvcondv|||189|0|Tabella testate di contratto|||
|
||||
|
@ -1,5 +1,5 @@
|
||||
168
|
||||
44
|
||||
46
|
||||
CODCONT|3|6|0|Codice Contratto
|
||||
STATUS|1|2|0|Stato del contratto, <CH>chiuso, <CO>confermato, <DC>da confermare
|
||||
PROPOSTA|8|1|0|Proposta di contratto
|
||||
@ -43,6 +43,8 @@ NUMETI|2|5|0|Numero etichette
|
||||
RITAUDTTMP|8|1|0|Ritiro automatico dotazione temporanea
|
||||
DTFIXDDT|5|8|0|Data fissa per creazione DDT da sporco
|
||||
IMPCANFIS|4|18|3|Importo per canone fisso
|
||||
NOLCIC|1|1|0|Scelta per dotazione odierna o iniziale
|
||||
VCARTCLI|1|1|0|Scelta per la % sul val.conv su articolo <A> o cliente <C>
|
||||
COMMENTI|11|10|0|Commenti e note
|
||||
1
|
||||
CODCF+CODCONT|
|
||||
|
161
lv/lv0400.cpp
161
lv/lv0400.cpp
@ -86,7 +86,7 @@ bool TContratti_msk::on_art_select()
|
||||
//estraggo il record corrispondente su LF_CLIFOGIAC
|
||||
const TRecmag_lavanderie& reclav = artrec.find_rec(annoes);
|
||||
//recupero la maschera di riga
|
||||
TMask& rowmask = ss.sheet_mask();
|
||||
TMask& rowmask = ss.sheet_mask();
|
||||
|
||||
if (ini_get_string(CONFIG_DITTA, "lv", "Qtamodi") == "X")
|
||||
{
|
||||
@ -209,56 +209,7 @@ bool TContratti_msk::on_field_event(TOperable_field& o,TField_event e,long jolly
|
||||
_post_contr = lv_find_contract(codcf, indsped, oggi);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case DLG_PLANNING:
|
||||
//se viene premuto il bottone "Giri", lancia lv0500 (generatore automatico dei giri)
|
||||
if (e == fe_button && edit_mode())
|
||||
{
|
||||
TRelation_application& app = (TRelation_application&) main_app();
|
||||
app.get_relation()->read(_isequal,_unlock);
|
||||
TString str;
|
||||
str << "lv0 -4 " << get(F_CODCF) << " " << get(F_CODCONT);
|
||||
TExternal_app planning(str);
|
||||
planning.run();
|
||||
app.get_relation()->read(_isequal,_lock);
|
||||
}
|
||||
break;
|
||||
case S_CODART:
|
||||
if (!o.empty()) //se il campo risulta pieno
|
||||
{
|
||||
if (e == fe_modify) //e se risulta modificato
|
||||
{
|
||||
const TString& codart = o.get();
|
||||
TSheet_field& ss = sfield(F_RIGHE);
|
||||
TMask& m = o.mask(); // maschera di riga!
|
||||
|
||||
//se ho scritto un articolo diverso da quello che esisteva prima
|
||||
//e se si desidera veramente modificarlo, allora permetto la modifica
|
||||
//e forzo l'updatre della riga, altrimenti riscrivo l'articolo che c'era prima
|
||||
//e lascio tutto invariato
|
||||
if (_artrig.full() && codart != _artrig)
|
||||
{
|
||||
if (!yesno_box("Si desidera veramente modificare l'articolo %s",(const char*) _artrig))
|
||||
{
|
||||
m.set(S_CODART,_artrig);
|
||||
TToken_string& row=ss.row(ss.selected());
|
||||
row.add(_artrig, 0);
|
||||
ss.force_update(ss.selected());
|
||||
}
|
||||
else
|
||||
_artrig = codart;
|
||||
}
|
||||
|
||||
//se all'articolo è associata un'unità di misura, la propongo
|
||||
//in automatico e richiamo il metodo ON_ART_SELECT(); altrimenti lo richiamo
|
||||
//solo se è arrivato un fe_init al campo
|
||||
on_art_select();
|
||||
}
|
||||
else
|
||||
if (e == fe_init)
|
||||
on_art_select();
|
||||
}
|
||||
break;
|
||||
break;
|
||||
case F_RIGHE:
|
||||
//se lo sheet ha ricevuto un se_enter, allora aggiorno i campi del dettaglio sulla mashera principale
|
||||
if (e == se_enter)
|
||||
@ -319,6 +270,114 @@ bool TContratti_msk::on_field_event(TOperable_field& o,TField_event e,long jolly
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case F_TIPOFORFTE:
|
||||
case F_NOLCICTE:
|
||||
case F_VCARTCLITE:
|
||||
{
|
||||
const int tipoforfte = atoi(get(F_TIPOFORFTE));
|
||||
if (e == fe_modify || e == fe_init)
|
||||
{
|
||||
TSheet_field& ss = sfield(F_RIGHE);
|
||||
|
||||
//recupero le posizioni dei campi che devo modificare
|
||||
const int pos_tipoforf = ss.cid2index(S_TIPOFORF);
|
||||
const int pos_nolcic = ss.cid2index(S_NOLCIC);
|
||||
const int pos_vcartcli = ss.cid2index(S_VCARTCLI);
|
||||
|
||||
if (tipoforfte > 0)
|
||||
{
|
||||
//recupero i valori che devo copiare
|
||||
const char nolcic = get(F_NOLCICTE)[0];
|
||||
const char vcartcli = get(F_VCARTCLITE)[0];
|
||||
|
||||
FOR_EACH_SHEET_ROW(ss, r, row)
|
||||
{
|
||||
TToken_string& riga = ss.row(r);
|
||||
//scrivo i valori alle posizioni corrette
|
||||
riga.add(tipoforfte, pos_tipoforf);
|
||||
riga.add(nolcic, pos_nolcic);
|
||||
riga.add(vcartcli, pos_vcartcli);
|
||||
//disabilito le celle interessate
|
||||
ss.disable_cell(r, pos_tipoforf);
|
||||
ss.disable_cell(r, pos_nolcic);
|
||||
ss.disable_cell(r, pos_vcartcli);
|
||||
}
|
||||
field(F_TIPOFORF).disable();
|
||||
field(F_NOLCIC).disable();
|
||||
field(F_VCARTCLI).disable();
|
||||
}
|
||||
else
|
||||
{
|
||||
FOR_EACH_SHEET_ROW(ss, r, row)
|
||||
{
|
||||
TToken_string& riga = ss.row(r);
|
||||
|
||||
riga.add(tipoforfte, pos_tipoforf);
|
||||
riga.add('I', pos_nolcic);
|
||||
riga.add('A', pos_vcartcli);
|
||||
ss.enable_cell(r, pos_tipoforf);
|
||||
ss.enable_cell(r, pos_nolcic);
|
||||
ss.enable_cell(r, pos_vcartcli);
|
||||
}
|
||||
field(F_TIPOFORF).enable();
|
||||
field(F_NOLCIC).enable();
|
||||
field(F_VCARTCLI).enable();
|
||||
}
|
||||
ss.force_update();
|
||||
if (ss.items() >= 0)
|
||||
ss.select(0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case S_CODART:
|
||||
if (!o.empty()) //se il campo risulta pieno
|
||||
{
|
||||
if (e == fe_modify) //e se risulta modificato
|
||||
{
|
||||
const TString& codart = o.get();
|
||||
TSheet_field& ss = sfield(F_RIGHE);
|
||||
TMask& m = o.mask(); // maschera di riga!
|
||||
|
||||
//se ho scritto un articolo diverso da quello che esisteva prima
|
||||
//e se si desidera veramente modificarlo, allora permetto la modifica
|
||||
//e forzo l'updatre della riga, altrimenti riscrivo l'articolo che c'era prima
|
||||
//e lascio tutto invariato
|
||||
if (_artrig.full() && codart != _artrig)
|
||||
{
|
||||
if (!yesno_box("Si desidera veramente modificare l'articolo %s",(const char*) _artrig))
|
||||
{
|
||||
m.set(S_CODART,_artrig);
|
||||
TToken_string& row=ss.row(ss.selected());
|
||||
row.add(_artrig, 0);
|
||||
ss.force_update(ss.selected());
|
||||
}
|
||||
else
|
||||
_artrig = codart;
|
||||
}
|
||||
|
||||
//se all'articolo è associata un'unità di misura, la propongo
|
||||
//in automatico e richiamo il metodo ON_ART_SELECT(); altrimenti lo richiamo
|
||||
//solo se è arrivato un fe_init al campo
|
||||
on_art_select();
|
||||
}
|
||||
else
|
||||
if (e == fe_init)
|
||||
on_art_select();
|
||||
}
|
||||
break;
|
||||
case DLG_PLANNING:
|
||||
//se viene premuto il bottone "Giri", lancia lv0500 (generatore automatico dei giri)
|
||||
if (e == fe_button && edit_mode())
|
||||
{
|
||||
TRelation_application& app = (TRelation_application&) main_app();
|
||||
app.get_relation()->read(_isequal,_unlock);
|
||||
TString str;
|
||||
str << "lv0 -4 " << get(F_CODCF) << " " << get(F_CODCONT);
|
||||
TExternal_app planning(str);
|
||||
planning.run();
|
||||
app.get_relation()->read(_isequal,_lock);
|
||||
}
|
||||
break;
|
||||
case DLG_NEWREC:
|
||||
if (e == fe_button)
|
||||
{
|
||||
|
@ -43,6 +43,9 @@
|
||||
#define F_COLORE 241
|
||||
#define F_BARCODE 242
|
||||
#define F_RICALT 243
|
||||
#define F_TIPOFORFTE 244
|
||||
#define F_NOLCICTE 245
|
||||
#define F_VCARTCLITE 246
|
||||
|
||||
// Campi del dettalio sotto lo spreadsheet
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user