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:
parent
e18191514b
commit
0956622dec
280
lv/lv3200.cpp
280
lv/lv3200.cpp
@ -9,6 +9,7 @@
|
||||
#include "../mg/clifogiac.h"
|
||||
#include "../ve/velib.h"
|
||||
|
||||
#include "clifo.h"
|
||||
#include "lvcondv.h"
|
||||
#include "lvrcondv.h"
|
||||
#include "lvrconsplan.h"
|
||||
@ -74,6 +75,7 @@ protected:
|
||||
|
||||
void sistema_quantita();
|
||||
void sistema_pacchi();
|
||||
|
||||
void evadi_da_barcode();
|
||||
|
||||
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);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
@ -105,14 +114,20 @@ static int sort_by_codart(TSheet_field& sheet, int r1, int r2)
|
||||
TToken_string& row1 = sheet.row(r1);
|
||||
TToken_string& row2 = sheet.row(r2);
|
||||
|
||||
/*const int qta1 = row1.get_int(6);
|
||||
const int qta2 = row2.get_int(6);
|
||||
const TString& codart1 = row1.get(1);
|
||||
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 0;
|
||||
return dif;
|
||||
}
|
||||
|
||||
//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);
|
||||
}
|
||||
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
|
||||
@ -176,6 +200,16 @@ void TEvasione_msk::setta_campi_cliente()
|
||||
reset(F_DATAPRCO);
|
||||
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
|
||||
{
|
||||
@ -190,6 +224,8 @@ void TEvasione_msk::setta_campi_cliente()
|
||||
}
|
||||
else
|
||||
{
|
||||
reset(F_RICALT);
|
||||
reset(F_RAGSOC);
|
||||
reset(F_CODCONT);
|
||||
reset(F_DATAPRCO);
|
||||
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));
|
||||
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;
|
||||
|
||||
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);
|
||||
//preparo l'array delle posizioni dei campi nello sheet
|
||||
_posizioni.aggiungi("evaso", sheet.cid2index(S_EVASO));
|
||||
@ -227,19 +284,17 @@ void TEvasione_msk::carica_righe()
|
||||
TBuono_prelievo_row rdoc(row);
|
||||
|
||||
TToken_string& riga = sheet.row(-1);
|
||||
riga.add(rdoc.evaso(), _posizioni.posizione("evaso"));
|
||||
riga.add(rdoc.codart(), _posizioni.posizione("codart"));
|
||||
riga.add(rdoc.desart(), _posizioni.posizione("artdescr"));
|
||||
riga.add(rdoc.causale(), _posizioni.posizione("causale"));
|
||||
riga.add(rdoc.qta_ritirata(), _posizioni.posizione("ritirato"));
|
||||
riga.add(rdoc.qta_dacons(), _posizioni.posizione("dacons"));
|
||||
riga.add(rdoc.qta_consegnata(), _posizioni.posizione("consegnato"));
|
||||
riga.add(rdoc.evaso() ? "X" : "", _posizioni.posizione("evaso"));
|
||||
riga.add(rdoc.codart(), _posizioni.posizione("codart"));
|
||||
riga.add(rdoc.desart(), _posizioni.posizione("artdescr"));
|
||||
riga.add(rdoc.causale(), _posizioni.posizione("causale"));
|
||||
riga.add(rdoc.qta_ritirata(), _posizioni.posizione("ritirato"));
|
||||
riga.add(rdoc.qta_dacons(), _posizioni.posizione("dacons"));
|
||||
riga.add(rdoc.qta_consegnata(), _posizioni.posizione("consegnato"));
|
||||
|
||||
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
|
||||
@ -253,13 +308,14 @@ void TEvasione_msk::carica_righe()
|
||||
riga.add(rdoc.rifbcon(), _posizioni.posizione("rifbcon"));
|
||||
riga.add(rdoc.rifbrit(), _posizioni.posizione("rifbrit"));
|
||||
}
|
||||
sheet.sort(sort_by_codart);
|
||||
sheet.force_update();
|
||||
}
|
||||
|
||||
//RIORDINA_RIGHE: metodo che riordina le righe dello sheet in base alle quota di evasione
|
||||
void TEvasione_msk::riordina_righe()
|
||||
{
|
||||
TSheet_field sheet = sfield(F_RIGHE);
|
||||
TSheet_field& sheet = sfield(F_RIGHE);
|
||||
sheet.sort(sort_by_qta_evasa);
|
||||
sheet.force_update();
|
||||
}
|
||||
@ -283,7 +339,7 @@ void TEvasione_msk::genera_documento()
|
||||
//dati documento da generare
|
||||
TString4 codnum = ini_get_string(CONFIG_DITTA, "lv", "NUM_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 datagen(TODAY);
|
||||
@ -351,7 +407,7 @@ void TEvasione_msk::genera_documento()
|
||||
long dottmp = magcli.get_long(CLIFOGIAC_DOTTM);
|
||||
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_CODARTMAG,codart);
|
||||
rdoc.put(RDOC_CHECKED,'X');
|
||||
@ -395,7 +451,7 @@ void TEvasione_msk::genera_documento()
|
||||
prezzo = anamag.get_real(ANAMAG_COSTSTD);
|
||||
|
||||
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
|
||||
@ -417,8 +473,10 @@ void TEvasione_msk::genera_documento()
|
||||
if (doc.rows() > 0)
|
||||
{
|
||||
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();
|
||||
set(F_STATO, stato);
|
||||
}
|
||||
}
|
||||
|
||||
@ -426,7 +484,7 @@ void TEvasione_msk::genera_documento()
|
||||
void TEvasione_msk::evadi_tutto()
|
||||
{
|
||||
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)
|
||||
{
|
||||
@ -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
|
||||
void TEvasione_msk::spezza_riga()
|
||||
{
|
||||
TDoc_key kdoc(get_int(F_ANNO), get(F_CODNUM), get_long(F_NDOC));
|
||||
TBuono_prelievo bpre(kdoc);
|
||||
TSheet_field& sheet = sfield(F_RIGHE);
|
||||
|
||||
for(int riga = 1; riga <= bpre.rows(); riga++)
|
||||
FOR_EACH_SHEET_ROW_BACK(sheet, r, riga1)
|
||||
{
|
||||
TRiga_documento& row = bpre[riga];
|
||||
TBuono_prelievo_row rbpre1(row);
|
||||
char flgev = riga1->get_char(_posizioni.posizione("evaso"));
|
||||
if (flgev != 'X')
|
||||
{
|
||||
TToken_string& riga2 = sheet.row(-1);
|
||||
riga2 = *riga1;
|
||||
|
||||
if (rbpre1.evaso())
|
||||
continue;
|
||||
const int dacons2 = riga2.get_int(_posizioni.posizione("ritirato")) - riga2.get_int(_posizioni.posizione("consegnato"));
|
||||
riga2.add(dacons2, _posizioni.posizione("dacons"));
|
||||
riga2.add(0L, _posizioni.posizione("consegnato"));
|
||||
riga2.add(0L, _posizioni.posizione("pacchi"));
|
||||
|
||||
TRiga_documento rdoc(row);
|
||||
TBuono_prelievo_row rbpre2(rdoc);
|
||||
|
||||
rbpre2.set_qta_dacons(rbpre2.qta_ritirata() - rbpre2.qta_consegnata());
|
||||
rbpre2.set_qta_consegnata(0);
|
||||
|
||||
rbpre1.set_qta_dacons(rbpre1.qta_ritirata() - rbpre1.qta_consegnata());
|
||||
rbpre1.set_evaso(true);
|
||||
}
|
||||
const int dacons1 = riga1->get_int(_posizioni.posizione("ritirato")) - riga1->get_int(_posizioni.posizione("consegnato"));
|
||||
riga1->add(dacons1, _posizioni.posizione("dacons"));
|
||||
riga1->add("X", _posizioni.posizione("evaso"));
|
||||
}
|
||||
}
|
||||
sheet.sort(sort_by_codart);
|
||||
sheet.force_update();
|
||||
}
|
||||
|
||||
//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
|
||||
doc.destroy_rows();
|
||||
|
||||
TSheet_field sheet = sfield(F_RIGHE);
|
||||
TSheet_field& sheet = sfield(F_RIGHE);
|
||||
//riordino lo sheet
|
||||
sheet.sort(sort_by_codart);
|
||||
sheet.force_update();
|
||||
@ -477,10 +537,17 @@ void TEvasione_msk::salva()
|
||||
//per ogni riga dello sheet genero una riga documento
|
||||
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);
|
||||
|
||||
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_desart(riga->get(_posizioni.posizione("artdescr")));
|
||||
rdoc.set_causale(riga->get(_posizioni.posizione("causale")));
|
||||
@ -503,7 +570,7 @@ void TEvasione_msk::annulla_operazioni()
|
||||
//ANNULLA PACCHI
|
||||
|
||||
//elimino lo sheet senza salvarlo
|
||||
TSheet_field sheet = sfield(F_RIGHE);
|
||||
TSheet_field& sheet = sfield(F_RIGHE);
|
||||
sheet.destroy();
|
||||
|
||||
for(int i = 1; i <= _buonori.rows(); i++)
|
||||
@ -512,14 +579,25 @@ void TEvasione_msk::annulla_operazioni()
|
||||
TBuono_prelievo_row rdoc(row);
|
||||
|
||||
TToken_string& riga = sheet.row(-1);
|
||||
riga.add(rdoc.evaso(), _posizioni.posizione("evaso"));
|
||||
riga.add(rdoc.codart(), _posizioni.posizione("codart"));
|
||||
riga.add(rdoc.desart(), _posizioni.posizione("artdescr"));
|
||||
riga.add(rdoc.causale(), _posizioni.posizione("causale"));
|
||||
riga.add(rdoc.qta_ritirata(), _posizioni.posizione("ritirato"));
|
||||
riga.add(rdoc.qta_dacons(), _posizioni.posizione("dacons"));
|
||||
riga.add(rdoc.qta_consegnata(), _posizioni.posizione("consegnato"));
|
||||
riga.add(rdoc.num_pacchi(), _posizioni.posizione("pacchi"));
|
||||
riga.add(rdoc.evaso() ? "X" : "", _posizioni.posizione("evaso"));
|
||||
riga.add(rdoc.codart(), _posizioni.posizione("codart"));
|
||||
riga.add(rdoc.desart(), _posizioni.posizione("artdescr"));
|
||||
riga.add(rdoc.causale(), _posizioni.posizione("causale"));
|
||||
riga.add(rdoc.qta_ritirata(), _posizioni.posizione("ritirato"));
|
||||
riga.add(rdoc.qta_dacons(), _posizioni.posizione("dacons"));
|
||||
riga.add(rdoc.qta_consegnata(), _posizioni.posizione("consegnato"));
|
||||
|
||||
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_att(), _posizioni.posizione("congatt"));
|
||||
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
|
||||
bool TEvasione_msk::controlla()
|
||||
{
|
||||
TSheet_field sheet = sfield(F_RIGHE);
|
||||
TSheet_field& sheet = sfield(F_RIGHE);
|
||||
|
||||
bool evaso = true;
|
||||
|
||||
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;
|
||||
}
|
||||
return evaso;
|
||||
@ -548,7 +627,8 @@ bool TEvasione_msk::controlla()
|
||||
//a mano ed è prevista una evasione a pacchi, allora aggiorno il numero dei pacchi
|
||||
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);
|
||||
//recupero i dati di interesse dall'anagrafica di magazzino
|
||||
@ -556,20 +636,17 @@ void TEvasione_msk::sistema_quantita()
|
||||
|
||||
if (ppconf > 0)
|
||||
{
|
||||
TSheet_field sheet = sfield(F_RIGHE);
|
||||
TToken_string riga = sheet.row(sheet.selected());
|
||||
|
||||
int pacchi = get_int(S_PACCHI);
|
||||
int pacchi = msk.get_int(S_PACCHI);
|
||||
|
||||
int qta_consegnata = pacchi * ppconf;
|
||||
riga.add(qta_consegnata, _posizioni.posizione("consegnato"));
|
||||
sheet.force_update(sheet.selected());
|
||||
msk.set(S_CONSEGNATO, qta_consegnata);
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
//recupero i dati di interesse dall'anagrafica di magazzino
|
||||
@ -577,14 +654,10 @@ void TEvasione_msk::sistema_pacchi()
|
||||
|
||||
if (ppconf > 0)
|
||||
{
|
||||
TSheet_field sheet = sfield(F_RIGHE);
|
||||
TToken_string riga = sheet.row(sheet.selected());
|
||||
|
||||
int qta_consegnata = get_int(S_CONSEGNATO);
|
||||
|
||||
int pacchi = qta_consegnata / ppconf + 1;
|
||||
riga.add(pacchi, _posizioni.posizione("pacchi"));
|
||||
sheet.force_update(sheet.selected());
|
||||
int qta_consegnata = msk.get_int(S_CONSEGNATO);
|
||||
|
||||
int pacchi = qta_consegnata / ppconf;
|
||||
msk.set(S_PACCHI, pacchi);
|
||||
}
|
||||
}
|
||||
|
||||
@ -636,24 +709,37 @@ bool TEvasione_msk::on_field_event(TOperable_field& f, TField_event e, long joll
|
||||
break;
|
||||
case DLG_SAVEREC:
|
||||
{
|
||||
salva();
|
||||
if (e == fe_button)
|
||||
salva();
|
||||
}
|
||||
break;
|
||||
case DLG_CANCEL:
|
||||
{
|
||||
annulla_operazioni();
|
||||
if (e == fe_button)
|
||||
{
|
||||
annulla_operazioni();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case F_NDOC:
|
||||
{
|
||||
if (e == fe_modify)
|
||||
if (f.get_long() > 0)
|
||||
{
|
||||
enable(F_RIGHE);
|
||||
carica_righe();
|
||||
}
|
||||
carica_righe();
|
||||
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;
|
||||
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)
|
||||
setta_campi_cliente();
|
||||
}
|
||||
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;
|
||||
break;
|
||||
case S_CONSEGNATO:
|
||||
{
|
||||
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
|
||||
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"));
|
||||
set(S_EVASO, "X");
|
||||
msk.set(S_EVASO, "X");
|
||||
}
|
||||
else if (f.get_long() == get_long(S_DACONS))
|
||||
set(S_EVASO, "X");
|
||||
else if (msk.get_long(S_CONSEGNATO) == msk.get_long(S_DACONS))
|
||||
msk.set(S_EVASO, "X");
|
||||
sistema_pacchi();
|
||||
}
|
||||
}
|
||||
@ -711,9 +774,7 @@ bool TEvasione_msk::on_field_event(TOperable_field& f, TField_event e, long joll
|
||||
case S_PACCHI:
|
||||
{
|
||||
if (e == fe_modify)
|
||||
{
|
||||
sistema_quantita();
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:break;
|
||||
@ -737,7 +798,7 @@ TEvasione_msk::TEvasione_msk():TAutomask("lv3200a")
|
||||
int annoes = es.date2esc(data);
|
||||
set(F_ANNO, annoes);
|
||||
|
||||
disable(F_RIGHE);
|
||||
hide(F_RIGHE);
|
||||
disable(DLG_SELECT);
|
||||
disable(DLG_PREVIEW);
|
||||
disable(DLG_ELABORA);
|
||||
@ -769,6 +830,7 @@ public:
|
||||
bool TEvasione_app::create()
|
||||
{
|
||||
_msk = new TEvasione_msk();
|
||||
open_files(LF_DOC, LF_RIGHEDOC);
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user