Patch level : 10.0 patch 488

Files correlati     : lv3
Ricompilazione Demo : [ ]
Commento            :
Prima vesrione funzionante evasione buoni di prelievo


git-svn-id: svn://10.65.10.50/trunk@19538 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca83 2009-10-28 15:25:33 +00:00
parent e18191514b
commit 0956622dec

View File

@ -9,6 +9,7 @@
#include "../mg/clifogiac.h" #include "../mg/clifogiac.h"
#include "../ve/velib.h" #include "../ve/velib.h"
#include "clifo.h"
#include "lvcondv.h" #include "lvcondv.h"
#include "lvrcondv.h" #include "lvrcondv.h"
#include "lvrconsplan.h" #include "lvrconsplan.h"
@ -74,6 +75,7 @@ protected:
void sistema_quantita(); void sistema_quantita();
void sistema_pacchi(); void sistema_pacchi();
void evadi_da_barcode(); void evadi_da_barcode();
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);
@ -94,7 +96,14 @@ static int sort_by_qta_evasa(TSheet_field& sheet, int r1, int r2)
const int qta2 = row2.get_int(6); const int qta2 = row2.get_int(6);
int dif = qta1 - qta2; int dif = qta1 - qta2;
if (dif == 0)
{
const TString& codart1 = row1.get(1);
const TString& codart2 = row2.get(1);
dif = codart1.compare(codart2);
}
return dif; return dif;
} }
@ -105,14 +114,20 @@ static int sort_by_codart(TSheet_field& sheet, int r1, int r2)
TToken_string& row1 = sheet.row(r1); TToken_string& row1 = sheet.row(r1);
TToken_string& row2 = sheet.row(r2); TToken_string& row2 = sheet.row(r2);
/*const int qta1 = row1.get_int(6); const TString& codart1 = row1.get(1);
const int qta2 = row2.get_int(6); const TString& codart2 = row2.get(1);
int dif = qta1 - qta2; int dif = codart1.compare(codart2);
if (dif == 0)
{
const int qta1 = row1.get_int(6);
const int qta2 = row2.get_int(6);
dif = qta2 - qta1;
}
return dif;*/ return dif;
return 0;
} }
//SETTA_CAMPI_DATA: metodo che compila tutti i campi legati alla data //SETTA_CAMPI_DATA: metodo che compila tutti i campi legati alla data
@ -138,7 +153,16 @@ void TEvasione_msk::setta_campi_data()
set(F_SETTIMANA, settimana); set(F_SETTIMANA, settimana);
} }
else else
warning_box(TR("Data non valida!")); {
TString8 str = data.string();
if (str.empty())
{
reset(F_GIORNO);
reset(F_SETTIMANA);
}
else
warning_box(TR("Data non valida!"));
}
} }
//SETTA_CAMPI_CLIENTE: metodo che compila tutti i campi legati al cliente //SETTA_CAMPI_CLIENTE: metodo che compila tutti i campi legati al cliente
@ -176,6 +200,16 @@ void TEvasione_msk::setta_campi_cliente()
reset(F_DATAPRCO); reset(F_DATAPRCO);
reset(F_CODITI); reset(F_CODITI);
} }
if (get(F_RAGSOC).empty())
{
TToken_string key;
key.add('C');
key.add(codcf);
const TRectype& clifo = cache().get(LF_CLIFO, key);
set(F_RAGSOC, clifo.get(CLI_RAGSOC));
set(F_RICALT, clifo.get(CLI_RICALT));
}
} }
else else
{ {
@ -190,6 +224,8 @@ void TEvasione_msk::setta_campi_cliente()
} }
else else
{ {
reset(F_RICALT);
reset(F_RAGSOC);
reset(F_CODCONT); reset(F_CODCONT);
reset(F_DATAPRCO); reset(F_DATAPRCO);
reset(F_CODITI); reset(F_CODITI);
@ -202,9 +238,30 @@ void TEvasione_msk::carica_righe()
TDoc_key kdoc(get_int(F_ANNO), get(F_CODNUM), get_long(F_NDOC)); TDoc_key kdoc(get_int(F_ANNO), get(F_CODNUM), get_long(F_NDOC));
TBuono_prelievo doc(kdoc); TBuono_prelievo doc(kdoc);
const TString4 stato = doc.get(DOC_STATO);
set(F_STATO, stato);
disable(F_STATO);
set(F_DATADOC, doc.get_date(DOC_DATADOC)); setta_campi_data();
set(F_CODCF, doc.get_long(DOC_CODCF)); setta_campi_cliente(); field(F_CODCF).set_dirty();
_buonori = doc; _buonori = doc;
TSheet_field sheet = sfield(F_RIGHE); if(doc.rows() > 0)
{
enable(DLG_SELECT);
enable(DLG_PREVIEW);
if(stato == "1")
enable(DLG_ELABORA);
enable(DLG_SAVEREC);
enable(DLG_CANCEL);
show(F_RIGHE);
}
TSheet_field& sheet = sfield(F_RIGHE);
sheet.row(-1); sheet.row(-1);
//preparo l'array delle posizioni dei campi nello sheet //preparo l'array delle posizioni dei campi nello sheet
_posizioni.aggiungi("evaso", sheet.cid2index(S_EVASO)); _posizioni.aggiungi("evaso", sheet.cid2index(S_EVASO));
@ -227,19 +284,17 @@ void TEvasione_msk::carica_righe()
TBuono_prelievo_row rdoc(row); TBuono_prelievo_row rdoc(row);
TToken_string& riga = sheet.row(-1); TToken_string& riga = sheet.row(-1);
riga.add(rdoc.evaso(), _posizioni.posizione("evaso")); riga.add(rdoc.evaso() ? "X" : "", _posizioni.posizione("evaso"));
riga.add(rdoc.codart(), _posizioni.posizione("codart")); riga.add(rdoc.codart(), _posizioni.posizione("codart"));
riga.add(rdoc.desart(), _posizioni.posizione("artdescr")); riga.add(rdoc.desart(), _posizioni.posizione("artdescr"));
riga.add(rdoc.causale(), _posizioni.posizione("causale")); riga.add(rdoc.causale(), _posizioni.posizione("causale"));
riga.add(rdoc.qta_ritirata(), _posizioni.posizione("ritirato")); riga.add(rdoc.qta_ritirata(), _posizioni.posizione("ritirato"));
riga.add(rdoc.qta_dacons(), _posizioni.posizione("dacons")); riga.add(rdoc.qta_dacons(), _posizioni.posizione("dacons"));
riga.add(rdoc.qta_consegnata(), _posizioni.posizione("consegnato")); riga.add(rdoc.qta_consegnata(), _posizioni.posizione("consegnato"));
const TRectype& anamag = cache().get(LF_ANAMAG, rdoc.codart()); const TRectype& anamag = cache().get(LF_ANAMAG, rdoc.codart());
//recupero i dati di interesse dall'anagrafica di magazzino //recupero i dati di interesse dall'anagrafica di magazzino
const long ppconf = anamag.get_long(ANAMAG_PPCONF); const long ppconf = anamag.get_long(ANAMAG_PPCONF);
if (ppconf > 0) if (ppconf > 0)
riga.add(rdoc.num_pacchi(), _posizioni.posizione("pacchi")); riga.add(rdoc.num_pacchi(), _posizioni.posizione("pacchi"));
else else
@ -253,13 +308,14 @@ void TEvasione_msk::carica_righe()
riga.add(rdoc.rifbcon(), _posizioni.posizione("rifbcon")); riga.add(rdoc.rifbcon(), _posizioni.posizione("rifbcon"));
riga.add(rdoc.rifbrit(), _posizioni.posizione("rifbrit")); riga.add(rdoc.rifbrit(), _posizioni.posizione("rifbrit"));
} }
sheet.sort(sort_by_codart);
sheet.force_update(); sheet.force_update();
} }
//RIORDINA_RIGHE: metodo che riordina le righe dello sheet in base alle quota di evasione //RIORDINA_RIGHE: metodo che riordina le righe dello sheet in base alle quota di evasione
void TEvasione_msk::riordina_righe() void TEvasione_msk::riordina_righe()
{ {
TSheet_field sheet = sfield(F_RIGHE); TSheet_field& sheet = sfield(F_RIGHE);
sheet.sort(sort_by_qta_evasa); sheet.sort(sort_by_qta_evasa);
sheet.force_update(); sheet.force_update();
} }
@ -283,7 +339,7 @@ void TEvasione_msk::genera_documento()
//dati documento da generare //dati documento da generare
TString4 codnum = ini_get_string(CONFIG_DITTA, "lv", "NUM_GEN"); TString4 codnum = ini_get_string(CONFIG_DITTA, "lv", "NUM_GEN");
TString4 tipodoc = ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_GEN"); TString4 tipodoc = ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_GEN");
char stato = cache().get("%TIP", tipodoc, "S2").left(1)[0]; char stato = cache().get("%TIP", tipodoc, "S2").left(1)[0];
const TDate databpre = bpre.datadoc(); const TDate databpre = bpre.datadoc();
const TDate datagen(TODAY); const TDate datagen(TODAY);
@ -351,7 +407,7 @@ void TEvasione_msk::genera_documento()
long dottmp = magcli.get_long(CLIFOGIAC_DOTTM); long dottmp = magcli.get_long(CLIFOGIAC_DOTTM);
long dotod = magcli.get_long(CLIFOGIAC_DOTOD); long dotod = magcli.get_long(CLIFOGIAC_DOTOD);
TRiga_documento rdoc = doc.new_row("21"); TRiga_documento& rdoc = doc.new_row("21");
rdoc.put(RDOC_CODART, codart); rdoc.put(RDOC_CODART, codart);
rdoc.put(RDOC_CODARTMAG,codart); rdoc.put(RDOC_CODARTMAG,codart);
rdoc.put(RDOC_CHECKED,'X'); rdoc.put(RDOC_CHECKED,'X');
@ -395,7 +451,7 @@ void TEvasione_msk::genera_documento()
prezzo = anamag.get_real(ANAMAG_COSTSTD); prezzo = anamag.get_real(ANAMAG_COSTSTD);
rdoc.put(RDOC_PREZZO, prezzo); rdoc.put(RDOC_PREZZO, prezzo);
rdoc.put(RDOC_SCONTO,rcont.get(LVRCONDV_SCONTPERC)); //sconto rdoc.put(RDOC_SCONTO, rcont.get(LVRCONDV_SCONTPERC)); //sconto
} }
//scrivo il magazzino //scrivo il magazzino
@ -417,8 +473,10 @@ void TEvasione_msk::genera_documento()
if (doc.rows() > 0) if (doc.rows() > 0)
{ {
doc.write(); doc.write();
//bpre.set_stato("evaso"); const TString4 stato = cache().get("%TIP", ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_PRE", NULL, 0), "S2").mid(1,1);
bpre.put(DOC_STATO, stato);
bpre.write(); bpre.write();
set(F_STATO, stato);
} }
} }
@ -426,7 +484,7 @@ void TEvasione_msk::genera_documento()
void TEvasione_msk::evadi_tutto() void TEvasione_msk::evadi_tutto()
{ {
const int posevaso = _posizioni.posizione("evaso"); const int posevaso = _posizioni.posizione("evaso");
TSheet_field sheet = sfield(F_RIGHE); TSheet_field& sheet = sfield(F_RIGHE);
FOR_EACH_SHEET_ROW(sheet, r, riga) FOR_EACH_SHEET_ROW(sheet, r, riga)
{ {
@ -438,26 +496,28 @@ void TEvasione_msk::evadi_tutto()
//SPEZZA_RIGA: metodo che spezza una riga del buono in due righe, una per la quota evasa e una per la quota da evadere //SPEZZA_RIGA: metodo che spezza una riga del buono in due righe, una per la quota evasa e una per la quota da evadere
void TEvasione_msk::spezza_riga() void TEvasione_msk::spezza_riga()
{ {
TDoc_key kdoc(get_int(F_ANNO), get(F_CODNUM), get_long(F_NDOC)); TSheet_field& sheet = sfield(F_RIGHE);
TBuono_prelievo bpre(kdoc);
for(int riga = 1; riga <= bpre.rows(); riga++) FOR_EACH_SHEET_ROW_BACK(sheet, r, riga1)
{ {
TRiga_documento& row = bpre[riga]; char flgev = riga1->get_char(_posizioni.posizione("evaso"));
TBuono_prelievo_row rbpre1(row); if (flgev != 'X')
{
TToken_string& riga2 = sheet.row(-1);
riga2 = *riga1;
if (rbpre1.evaso()) const int dacons2 = riga2.get_int(_posizioni.posizione("ritirato")) - riga2.get_int(_posizioni.posizione("consegnato"));
continue; riga2.add(dacons2, _posizioni.posizione("dacons"));
riga2.add(0L, _posizioni.posizione("consegnato"));
riga2.add(0L, _posizioni.posizione("pacchi"));
TRiga_documento rdoc(row); const int dacons1 = riga1->get_int(_posizioni.posizione("ritirato")) - riga1->get_int(_posizioni.posizione("consegnato"));
TBuono_prelievo_row rbpre2(rdoc); riga1->add(dacons1, _posizioni.posizione("dacons"));
riga1->add("X", _posizioni.posizione("evaso"));
rbpre2.set_qta_dacons(rbpre2.qta_ritirata() - rbpre2.qta_consegnata()); }
rbpre2.set_qta_consegnata(0); }
sheet.sort(sort_by_codart);
rbpre1.set_qta_dacons(rbpre1.qta_ritirata() - rbpre1.qta_consegnata()); sheet.force_update();
rbpre1.set_evaso(true);
}
} }
//SALVA: metodo che salva il buono di prelievo così com'è, senza compiere altre operazioni //SALVA: metodo che salva il buono di prelievo così com'è, senza compiere altre operazioni
@ -469,7 +529,7 @@ void TEvasione_msk::salva()
//nel caso avessi spezzato le righe, riscirvendole da capo mi vengono ordinate per codice //nel caso avessi spezzato le righe, riscirvendole da capo mi vengono ordinate per codice
doc.destroy_rows(); doc.destroy_rows();
TSheet_field sheet = sfield(F_RIGHE); TSheet_field& sheet = sfield(F_RIGHE);
//riordino lo sheet //riordino lo sheet
sheet.sort(sort_by_codart); sheet.sort(sort_by_codart);
sheet.force_update(); sheet.force_update();
@ -477,10 +537,17 @@ void TEvasione_msk::salva()
//per ogni riga dello sheet genero una riga documento //per ogni riga dello sheet genero una riga documento
FOR_EACH_SHEET_ROW(sheet, r, riga) FOR_EACH_SHEET_ROW(sheet, r, riga)
{ {
TRiga_documento& row = doc.new_row(); TRiga_documento& row = doc.new_row("21");
TBuono_prelievo_row rdoc(row); TBuono_prelievo_row rdoc(row);
rdoc.set_evaso(riga->get(_posizioni.posizione("evaso")) == "X" ? true: false); const char flgev = riga->get(_posizioni.posizione("evaso"))[0];
bool flag;
if (flgev == 'X')
flag = true;
else
flag = false;
rdoc.set_evaso(flag);
rdoc.set_codart(riga->get(_posizioni.posizione("codart"))); rdoc.set_codart(riga->get(_posizioni.posizione("codart")));
rdoc.set_desart(riga->get(_posizioni.posizione("artdescr"))); rdoc.set_desart(riga->get(_posizioni.posizione("artdescr")));
rdoc.set_causale(riga->get(_posizioni.posizione("causale"))); rdoc.set_causale(riga->get(_posizioni.posizione("causale")));
@ -503,7 +570,7 @@ void TEvasione_msk::annulla_operazioni()
//ANNULLA PACCHI //ANNULLA PACCHI
//elimino lo sheet senza salvarlo //elimino lo sheet senza salvarlo
TSheet_field sheet = sfield(F_RIGHE); TSheet_field& sheet = sfield(F_RIGHE);
sheet.destroy(); sheet.destroy();
for(int i = 1; i <= _buonori.rows(); i++) for(int i = 1; i <= _buonori.rows(); i++)
@ -512,14 +579,25 @@ void TEvasione_msk::annulla_operazioni()
TBuono_prelievo_row rdoc(row); TBuono_prelievo_row rdoc(row);
TToken_string& riga = sheet.row(-1); TToken_string& riga = sheet.row(-1);
riga.add(rdoc.evaso(), _posizioni.posizione("evaso")); riga.add(rdoc.evaso() ? "X" : "", _posizioni.posizione("evaso"));
riga.add(rdoc.codart(), _posizioni.posizione("codart")); riga.add(rdoc.codart(), _posizioni.posizione("codart"));
riga.add(rdoc.desart(), _posizioni.posizione("artdescr")); riga.add(rdoc.desart(), _posizioni.posizione("artdescr"));
riga.add(rdoc.causale(), _posizioni.posizione("causale")); riga.add(rdoc.causale(), _posizioni.posizione("causale"));
riga.add(rdoc.qta_ritirata(), _posizioni.posizione("ritirato")); riga.add(rdoc.qta_ritirata(), _posizioni.posizione("ritirato"));
riga.add(rdoc.qta_dacons(), _posizioni.posizione("dacons")); riga.add(rdoc.qta_dacons(), _posizioni.posizione("dacons"));
riga.add(rdoc.qta_consegnata(), _posizioni.posizione("consegnato")); riga.add(rdoc.qta_consegnata(), _posizioni.posizione("consegnato"));
riga.add(rdoc.num_pacchi(), _posizioni.posizione("pacchi"));
const TRectype& anamag = cache().get(LF_ANAMAG, rdoc.codart());
//recupero i dati di interesse dall'anagrafica di magazzino
const long ppconf = anamag.get_long(ANAMAG_PPCONF);
if (ppconf > 0)
riga.add(rdoc.num_pacchi(), _posizioni.posizione("pacchi"));
else
{
riga.add(0, _posizioni.posizione("pacchi"));
sheet.disable_cell(i, _posizioni.posizione("pacchi"));
}
riga.add(rdoc.cong_pre(), _posizioni.posizione("congpre")); riga.add(rdoc.cong_pre(), _posizioni.posizione("congpre"));
riga.add(rdoc.cong_att(), _posizioni.posizione("congatt")); riga.add(rdoc.cong_att(), _posizioni.posizione("congatt"));
riga.add(rdoc.rifbcon(), _posizioni.posizione("rifbcon")); riga.add(rdoc.rifbcon(), _posizioni.posizione("rifbcon"));
@ -531,13 +609,14 @@ void TEvasione_msk::annulla_operazioni()
//CONTROLLA: metodo che controlla se tutte le righe sono evase //CONTROLLA: metodo che controlla se tutte le righe sono evase
bool TEvasione_msk::controlla() bool TEvasione_msk::controlla()
{ {
TSheet_field sheet = sfield(F_RIGHE); TSheet_field& sheet = sfield(F_RIGHE);
bool evaso = true; bool evaso = true;
FOR_EACH_SHEET_ROW(sheet, r, row) FOR_EACH_SHEET_ROW(sheet, r, row)
{ {
if (row->get(_posizioni.posizione("evaso")) != "X") const char flgev = row->get(_posizioni.posizione("evaso"))[0];
if (flgev != 'X')
evaso = false; evaso = false;
} }
return evaso; return evaso;
@ -548,7 +627,8 @@ bool TEvasione_msk::controlla()
//a mano ed è prevista una evasione a pacchi, allora aggiorno il numero dei pacchi //a mano ed è prevista una evasione a pacchi, allora aggiorno il numero dei pacchi
void TEvasione_msk::sistema_quantita() void TEvasione_msk::sistema_quantita()
{ {
TString80 codart = get(S_CODART); TMask& msk = sfield(F_RIGHE).sheet_mask();
TString80 codart = msk.get(S_CODART);
const TRectype& anamag = cache().get(LF_ANAMAG,codart); const TRectype& anamag = cache().get(LF_ANAMAG,codart);
//recupero i dati di interesse dall'anagrafica di magazzino //recupero i dati di interesse dall'anagrafica di magazzino
@ -556,20 +636,17 @@ void TEvasione_msk::sistema_quantita()
if (ppconf > 0) if (ppconf > 0)
{ {
TSheet_field sheet = sfield(F_RIGHE); int pacchi = msk.get_int(S_PACCHI);
TToken_string riga = sheet.row(sheet.selected());
int pacchi = get_int(S_PACCHI);
int qta_consegnata = pacchi * ppconf; int qta_consegnata = pacchi * ppconf;
riga.add(qta_consegnata, _posizioni.posizione("consegnato")); msk.set(S_CONSEGNATO, qta_consegnata);
sheet.force_update(sheet.selected());
} }
} }
void TEvasione_msk::sistema_pacchi() void TEvasione_msk::sistema_pacchi()
{ {
TString80 codart = get(S_CODART); TMask& msk = sfield(F_RIGHE).sheet_mask();
TString80 codart = msk.get(S_CODART);
const TRectype& anamag = cache().get(LF_ANAMAG,codart); const TRectype& anamag = cache().get(LF_ANAMAG,codart);
//recupero i dati di interesse dall'anagrafica di magazzino //recupero i dati di interesse dall'anagrafica di magazzino
@ -577,14 +654,10 @@ void TEvasione_msk::sistema_pacchi()
if (ppconf > 0) if (ppconf > 0)
{ {
TSheet_field sheet = sfield(F_RIGHE); int qta_consegnata = msk.get_int(S_CONSEGNATO);
TToken_string riga = sheet.row(sheet.selected());
int pacchi = qta_consegnata / ppconf;
int qta_consegnata = get_int(S_CONSEGNATO); msk.set(S_PACCHI, pacchi);
int pacchi = qta_consegnata / ppconf + 1;
riga.add(pacchi, _posizioni.posizione("pacchi"));
sheet.force_update(sheet.selected());
} }
} }
@ -636,24 +709,37 @@ bool TEvasione_msk::on_field_event(TOperable_field& f, TField_event e, long joll
break; break;
case DLG_SAVEREC: case DLG_SAVEREC:
{ {
salva(); if (e == fe_button)
salva();
} }
break; break;
case DLG_CANCEL: case DLG_CANCEL:
{ {
annulla_operazioni(); if (e == fe_button)
{
annulla_operazioni();
return false;
}
} }
break; break;
case F_NDOC: case F_NDOC:
{ {
if (e == fe_modify) if (e == fe_modify)
if (f.get_long() > 0) if (f.get_long() > 0)
{ carica_righe();
enable(F_RIGHE);
carica_righe();
}
else else
disable(F_RIGHE); {
sfield(F_RIGHE).destroy();
disable(DLG_SELECT);
disable(DLG_PREVIEW);
disable(DLG_ELABORA);
disable(DLG_SAVEREC);
disable(DLG_CANCEL);
reset(F_STATO);
reset(F_DATADOC); setta_campi_data();
reset(F_CODCF); setta_campi_cliente();
hide(F_RIGHE);
}
} }
break; break;
case F_DATADOC: case F_DATADOC:
@ -667,43 +753,20 @@ bool TEvasione_msk::on_field_event(TOperable_field& f, TField_event e, long joll
if (e == fe_modify) if (e == fe_modify)
setta_campi_cliente(); setta_campi_cliente();
} }
break; break;
case F_RIGHE:
{
if (e == fe_modify)
{
TSheet_field sheet = sfield(F_RIGHE);
if (sheet.items() > 0)
{
enable(DLG_SELECT);
enable(DLG_PREVIEW);
enable(DLG_ELABORA);
enable(DLG_SAVEREC);
enable(DLG_CANCEL);
}
else
{
disable(DLG_SELECT);
disable(DLG_PREVIEW);
disable(DLG_ELABORA);
disable(DLG_SAVEREC);
disable(DLG_CANCEL);
}
}
}
break;
case S_CONSEGNATO: case S_CONSEGNATO:
{ {
if (e == fe_modify) if (e == fe_modify)
{ {
TMask& msk = sfield(F_RIGHE).sheet_mask();
//la riga risulta evasa se la quantità consegnata è maggiore o uguale alla quantità da consegnare //la riga risulta evasa se la quantità consegnata è maggiore o uguale alla quantità da consegnare
if(f.get_long() > get_long(S_DACONS)) if(msk.get_long(S_CONSEGNATO) > msk.get_long(S_DACONS))
{ {
warning_box(TR("ATTENZIONE: stai consegnando un quantitativo maggiore al dovuto")); warning_box(TR("ATTENZIONE: stai consegnando un quantitativo maggiore al dovuto"));
set(S_EVASO, "X"); msk.set(S_EVASO, "X");
} }
else if (f.get_long() == get_long(S_DACONS)) else if (msk.get_long(S_CONSEGNATO) == msk.get_long(S_DACONS))
set(S_EVASO, "X"); msk.set(S_EVASO, "X");
sistema_pacchi(); sistema_pacchi();
} }
} }
@ -711,9 +774,7 @@ bool TEvasione_msk::on_field_event(TOperable_field& f, TField_event e, long joll
case S_PACCHI: case S_PACCHI:
{ {
if (e == fe_modify) if (e == fe_modify)
{
sistema_quantita(); sistema_quantita();
}
} }
break; break;
default:break; default:break;
@ -737,7 +798,7 @@ TEvasione_msk::TEvasione_msk():TAutomask("lv3200a")
int annoes = es.date2esc(data); int annoes = es.date2esc(data);
set(F_ANNO, annoes); set(F_ANNO, annoes);
disable(F_RIGHE); hide(F_RIGHE);
disable(DLG_SELECT); disable(DLG_SELECT);
disable(DLG_PREVIEW); disable(DLG_PREVIEW);
disable(DLG_ELABORA); disable(DLG_ELABORA);
@ -769,6 +830,7 @@ public:
bool TEvasione_app::create() bool TEvasione_app::create()
{ {
_msk = new TEvasione_msk(); _msk = new TEvasione_msk();
open_files(LF_DOC, LF_RIGHEDOC);
return TSkeleton_application::create(); return TSkeleton_application::create();
} }