Patch level : 10.0 patch 540
Files correlati : lv3 lv3400a.msk Ricompilazione Demo : [ ] Commento : Corretto il check su NDOC Corretto il caricamento delle righe documento per evitare di utilizzare le righe virtuali Corretta l'evasione di una riga quando raggiunge la quantita' da consegnare git-svn-id: svn://10.65.10.50/trunk@19718 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
95fccf4c9d
commit
22781a27cc
@ -160,7 +160,12 @@ TQuantita_riga* TRighe_array::quantita(TString& codart, TDate& data, bool create
|
|||||||
return qr;
|
return qr;
|
||||||
}
|
}
|
||||||
|
|
||||||
//class TEvasione_ter_msk
|
/////////////////////////////////
|
||||||
|
//// TEVASIONE_TER_MSK ////
|
||||||
|
/////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
//Classe TEvasione_ter_msk
|
||||||
class TEvasione_ter_msk: public TAutomask
|
class TEvasione_ter_msk: public TAutomask
|
||||||
{
|
{
|
||||||
int _ndoc;
|
int _ndoc;
|
||||||
@ -192,6 +197,7 @@ public:
|
|||||||
TEvasione_ter_msk();
|
TEvasione_ter_msk();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//ON_KEY: metodo che gestisce i tatsi funzione
|
||||||
bool TEvasione_ter_msk::on_key(KEY key)
|
bool TEvasione_ter_msk::on_key(KEY key)
|
||||||
{
|
{
|
||||||
if (key >= K_F3 && key <= K_F7)
|
if (key >= K_F3 && key <= K_F7)
|
||||||
@ -213,7 +219,7 @@ bool TEvasione_ter_msk::on_key(KEY key)
|
|||||||
return TAutomask::on_key(key);
|
return TAutomask::on_key(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
//PRECARICA_RIGHE: metodo che carica in un TAssoc_array le righe documento
|
//PRECARICA_RIGHE: metodo che carica in un TAssoc_array le righe fisiche del documento
|
||||||
void TEvasione_ter_msk::precarica_righe()
|
void TEvasione_ter_msk::precarica_righe()
|
||||||
{
|
{
|
||||||
TDoc_key kdoc(get_date(F_TDATADOC).year(), ini_get_string(CONFIG_DITTA, "lv", "NUM_PRE", NULL, 0), get_long(F_TNDOC));
|
TDoc_key kdoc(get_date(F_TDATADOC).year(), ini_get_string(CONFIG_DITTA, "lv", "NUM_PRE", NULL, 0), get_long(F_TNDOC));
|
||||||
@ -222,17 +228,15 @@ void TEvasione_ter_msk::precarica_righe()
|
|||||||
|
|
||||||
TDate oggi(TODAY);
|
TDate oggi(TODAY);
|
||||||
|
|
||||||
for(int i = 1; i <= doc.rows(); i++)
|
FOR_EACH_PHYSICAL_RDOC(doc, i, row)
|
||||||
{
|
{
|
||||||
TRiga_documento& row = doc[i];
|
TBuono_prelievo_row rdoc(*row);
|
||||||
TBuono_prelievo_row rdoc(row);
|
|
||||||
|
|
||||||
/*TDate dataeva = rdoc.dataeva();
|
|
||||||
if (!dataeva.ok())
|
|
||||||
dataeva = oggi;*/
|
|
||||||
|
|
||||||
TString80 codart = rdoc.codart();
|
TString80 codart = rdoc.codart();
|
||||||
|
|
||||||
|
if (codart.blank())
|
||||||
|
continue;
|
||||||
|
|
||||||
TQuantita_riga* qr = _ra.quantita(codart, oggi, true);
|
TQuantita_riga* qr = _ra.quantita(codart, oggi, true);
|
||||||
qr->set_nriga(i);
|
qr->set_nriga(i);
|
||||||
qr->set_evaso(rdoc.evaso());
|
qr->set_evaso(rdoc.evaso());
|
||||||
@ -270,6 +274,7 @@ void TEvasione_ter_msk::genera_buono()
|
|||||||
TDate adata = datagen;
|
TDate adata = datagen;
|
||||||
adata.addmonth();
|
adata.addmonth();
|
||||||
|
|
||||||
|
//se _ndoc non è inizializzato, lo inizializzo all'ultimo ndoc utilizzato
|
||||||
if(_ndoc == 0)
|
if(_ndoc == 0)
|
||||||
{
|
{
|
||||||
TString query2;
|
TString query2;
|
||||||
@ -281,6 +286,7 @@ void TEvasione_ter_msk::genera_buono()
|
|||||||
_ndoc = bolle.get(DOC_NDOC).as_int();
|
_ndoc = bolle.get(DOC_NDOC).as_int();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//recupero i dati di interesse dal planning
|
||||||
TString query1 = "USE LVRCONSPLAN KEY 3\n";
|
TString query1 = "USE LVRCONSPLAN KEY 3\n";
|
||||||
query1 << "FROM CODCF=" << codcf << " CODCONT=" << codcont << " DTCONS=#DADATA\n";
|
query1 << "FROM CODCF=" << codcf << " CODCONT=" << codcont << " DTCONS=#DADATA\n";
|
||||||
query1 << "TO CODCF=" << codcf << " CODCONT=" << codcont << " DTCONS=#ADATA\n";
|
query1 << "TO CODCF=" << codcf << " CODCONT=" << codcont << " DTCONS=#ADATA\n";
|
||||||
@ -292,7 +298,7 @@ void TEvasione_ter_msk::genera_buono()
|
|||||||
const int coditi = consegne.get(LVRCONSPLAN_CODITI).as_int();
|
const int coditi = consegne.get(LVRCONSPLAN_CODITI).as_int();
|
||||||
const int codaut = consegne.get(LVRCONSPLAN_CODAUT).as_int();
|
const int codaut = consegne.get(LVRCONSPLAN_CODAUT).as_int();
|
||||||
|
|
||||||
//recupero il codpag
|
//recupero il codpag e i codici banca
|
||||||
TToken_string key;
|
TToken_string key;
|
||||||
key.add('C');
|
key.add('C');
|
||||||
key.add(codcf);
|
key.add(codcf);
|
||||||
@ -358,6 +364,7 @@ void TEvasione_ter_msk::genera_buono()
|
|||||||
key.add(1);
|
key.add(1);
|
||||||
const TString4 um = cache().get(LF_UMART, key, UMART_UM);
|
const TString4 um = cache().get(LF_UMART, key, UMART_UM);
|
||||||
|
|
||||||
|
//creo la nuova riga documento
|
||||||
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);
|
||||||
@ -434,20 +441,19 @@ void TEvasione_ter_msk::genera_buono()
|
|||||||
|
|
||||||
if (err == NOERR)
|
if (err == NOERR)
|
||||||
{
|
{
|
||||||
if (yesno_box(TR("Il documento è stato generato; si desiderla stamparlo?")))
|
//stampa automatica
|
||||||
{
|
TString80 str;
|
||||||
//stampa automatica
|
str << "ve1 -2 " << codnum << ' ' << datagen.year() << " D " << _ndoc << " S D";
|
||||||
TString80 str;
|
TExternal_app stampa(str);
|
||||||
str << "ve1 -2 " << codnum << ' ' << datagen.year() << " D " << _ndoc << " S D";
|
stampa.run();
|
||||||
TExternal_app stampa(str);
|
|
||||||
stampa.run();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
warning_box(TR("Non è stato possibile generare nessun documento"));
|
warning_box(TR("Non è stato possibile generare nessun documento"));
|
||||||
|
|
||||||
|
//riazzero ndoc
|
||||||
set(F_TNDOC, 0L, 1);
|
set(F_TNDOC, 0L, 1);
|
||||||
|
|
||||||
|
//nascondo i campi che non mi servono
|
||||||
hide(F_TCODCF);
|
hide(F_TCODCF);
|
||||||
hide(F_TRAGSOC);
|
hide(F_TRAGSOC);
|
||||||
hide(F_TBARCODE);
|
hide(F_TBARCODE);
|
||||||
@ -456,12 +462,14 @@ void TEvasione_ter_msk::genera_buono()
|
|||||||
hide(F_TQTACON);
|
hide(F_TQTACON);
|
||||||
hide(F_TQTADACON);
|
hide(F_TQTADACON);
|
||||||
|
|
||||||
|
//mostro i campi che servono per la selezione del documento
|
||||||
show(F_TCODNUM);
|
show(F_TCODNUM);
|
||||||
show(F_TTPDOC);
|
show(F_TTPDOC);
|
||||||
show(F_TDESCR);
|
show(F_TDESCR);
|
||||||
show(F_TANNO);
|
show(F_TANNO);
|
||||||
show(F_TDATAPRCO);
|
show(F_TDATAPRCO);
|
||||||
|
|
||||||
|
//disabilito i bottoni
|
||||||
disable(DLG_SELECT);
|
disable(DLG_SELECT);
|
||||||
disable(DLG_PREVIEW);
|
disable(DLG_PREVIEW);
|
||||||
disable(DLG_ELABORA);
|
disable(DLG_ELABORA);
|
||||||
@ -588,11 +596,11 @@ void TEvasione_ter_msk::registra()
|
|||||||
movmag.write(movi);
|
movmag.write(movi);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//RIEMPI_SHEET: metodo che riempie lo sheet di riepilogo delle righe documento ancora da evadere
|
||||||
void TEvasione_ter_msk::riempi_sheet()
|
void TEvasione_ter_msk::riempi_sheet()
|
||||||
{
|
{
|
||||||
TSheet_field& sheet = sfield(F_TRIGHE);
|
TSheet_field& sheet = sfield(F_TRIGHE);
|
||||||
//sheet.destroy();
|
sheet.destroy();
|
||||||
|
|
||||||
FOR_EACH_ASSOC_OBJECT(_ra, obj, key, itm)
|
FOR_EACH_ASSOC_OBJECT(_ra, obj, key, itm)
|
||||||
{
|
{
|
||||||
@ -600,8 +608,8 @@ void TEvasione_ter_msk::riempi_sheet()
|
|||||||
TQuantita_riga& qr = *(TQuantita_riga*)itm;
|
TQuantita_riga& qr = *(TQuantita_riga*)itm;
|
||||||
|
|
||||||
if(!qr.get_evaso())
|
if(!qr.get_evaso())
|
||||||
{
|
{
|
||||||
TToken_string& riga = sheet.row(-1);
|
TToken_string& riga = sheet.row(-1);
|
||||||
riga.add(chiave.get(0), 0);
|
riga.add(chiave.get(0), 0);
|
||||||
riga.add(qr.get_qta_da_con(), 1);
|
riga.add(qr.get_qta_da_con(), 1);
|
||||||
riga.add(qr.get_qta_con(), 2);
|
riga.add(qr.get_qta_con(), 2);
|
||||||
@ -610,6 +618,7 @@ void TEvasione_ter_msk::riempi_sheet()
|
|||||||
sheet.force_update();
|
sheet.force_update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//SPEZZA_RIGHE: metodo che spezza le righe documento se richiesto
|
||||||
void TEvasione_ter_msk::spezza_riga()
|
void TEvasione_ter_msk::spezza_riga()
|
||||||
{
|
{
|
||||||
const TDate oggi(TODAY);
|
const TDate oggi(TODAY);
|
||||||
@ -644,6 +653,7 @@ void TEvasione_ter_msk::spezza_riga()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//CONTROLLA: metodo che controlla se tutte le righe del buono sono evase
|
||||||
bool TEvasione_ter_msk::controlla()
|
bool TEvasione_ter_msk::controlla()
|
||||||
{
|
{
|
||||||
bool evaso = true;
|
bool evaso = true;
|
||||||
@ -732,10 +742,10 @@ void TEvasione_ter_msk::evadi_da_terminale()
|
|||||||
qr.add_qta_con(qtapacco);
|
qr.add_qta_con(qtapacco);
|
||||||
|
|
||||||
if(qr.get_qta_con() > qr.get_qta_da_con())
|
if(qr.get_qta_con() > qr.get_qta_da_con())
|
||||||
{
|
|
||||||
warning_box(TR("ATTENZIONE: si sta consegnando un quantitativo maggiore al dovuto"));
|
warning_box(TR("ATTENZIONE: si sta consegnando un quantitativo maggiore al dovuto"));
|
||||||
|
|
||||||
|
if(qr.get_qta_con() >= qr.get_qta_da_con())
|
||||||
qr.set_evaso(true);
|
qr.set_evaso(true);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
_pacchi.add(codpacco, kdoc);
|
_pacchi.add(codpacco, kdoc);
|
||||||
set(F_TPACCHI, qr.get_pacchi());
|
set(F_TPACCHI, qr.get_pacchi());
|
||||||
@ -743,7 +753,6 @@ void TEvasione_ter_msk::evadi_da_terminale()
|
|||||||
set(F_TQTACON, qr.get_qta_con());
|
set(F_TQTACON, qr.get_qta_con());
|
||||||
set(F_TQTADACON, qr.get_qta_da_con());
|
set(F_TQTADACON, qr.get_qta_da_con());
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
warning_box(TR("Non è stato possibile sommare il pacco a nessuna riga del buono"));
|
warning_box(TR("Non è stato possibile sommare il pacco a nessuna riga del buono"));
|
||||||
}
|
}
|
||||||
@ -841,6 +850,7 @@ bool TEvasione_ter_msk::on_field_event(TOperable_field& f, TField_event e, long
|
|||||||
if (e == fe_modify)
|
if (e == fe_modify)
|
||||||
if (!f.empty())
|
if (!f.empty())
|
||||||
{
|
{
|
||||||
|
//f.check();
|
||||||
hide(F_TCODNUM);
|
hide(F_TCODNUM);
|
||||||
hide(F_TTPDOC);
|
hide(F_TTPDOC);
|
||||||
hide(F_TDESCR);
|
hide(F_TDESCR);
|
||||||
|
@ -80,7 +80,6 @@ BEGIN
|
|||||||
INPUT ANNO F_TANNO SELECT
|
INPUT ANNO F_TANNO SELECT
|
||||||
INPUT CODNUM F_TCODNUM SELECT
|
INPUT CODNUM F_TCODNUM SELECT
|
||||||
INPUT NDOC F_TNDOC
|
INPUT NDOC F_TNDOC
|
||||||
INPUT TIPOCF "C"
|
|
||||||
DISPLAY "Num." CODNUM
|
DISPLAY "Num." CODNUM
|
||||||
DISPLAY "Data\ndocumento" DATADOC
|
DISPLAY "Data\ndocumento" DATADOC
|
||||||
DISPLAY "Ragione Sociale@10" LF_CLIFO->RAGSOC
|
DISPLAY "Ragione Sociale@10" LF_CLIFO->RAGSOC
|
||||||
@ -88,6 +87,7 @@ BEGIN
|
|||||||
OUTPUT F_TDATADOC DATADOC
|
OUTPUT F_TDATADOC DATADOC
|
||||||
OUTPUT F_TCODCF CODCF
|
OUTPUT F_TCODCF CODCF
|
||||||
OUTPUT F_TRAGSOC LF_CLIFO->RAGSOC
|
OUTPUT F_TRAGSOC LF_CLIFO->RAGSOC
|
||||||
|
CHECTYPE REQUIRED
|
||||||
END
|
END
|
||||||
|
|
||||||
DATE F_TDATADOC
|
DATE F_TDATADOC
|
||||||
|
Loading…
x
Reference in New Issue
Block a user