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;
|
||||
}
|
||||
|
||||
//class TEvasione_ter_msk
|
||||
/////////////////////////////////
|
||||
//// TEVASIONE_TER_MSK ////
|
||||
/////////////////////////////////
|
||||
|
||||
|
||||
//Classe TEvasione_ter_msk
|
||||
class TEvasione_ter_msk: public TAutomask
|
||||
{
|
||||
int _ndoc;
|
||||
@ -192,6 +197,7 @@ public:
|
||||
TEvasione_ter_msk();
|
||||
};
|
||||
|
||||
//ON_KEY: metodo che gestisce i tatsi funzione
|
||||
bool TEvasione_ter_msk::on_key(KEY key)
|
||||
{
|
||||
if (key >= K_F3 && key <= K_F7)
|
||||
@ -213,7 +219,7 @@ bool TEvasione_ter_msk::on_key(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()
|
||||
{
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
/*TDate dataeva = rdoc.dataeva();
|
||||
if (!dataeva.ok())
|
||||
dataeva = oggi;*/
|
||||
TBuono_prelievo_row rdoc(*row);
|
||||
|
||||
TString80 codart = rdoc.codart();
|
||||
|
||||
if (codart.blank())
|
||||
continue;
|
||||
|
||||
TQuantita_riga* qr = _ra.quantita(codart, oggi, true);
|
||||
qr->set_nriga(i);
|
||||
qr->set_evaso(rdoc.evaso());
|
||||
@ -270,6 +274,7 @@ void TEvasione_ter_msk::genera_buono()
|
||||
TDate adata = datagen;
|
||||
adata.addmonth();
|
||||
|
||||
//se _ndoc non è inizializzato, lo inizializzo all'ultimo ndoc utilizzato
|
||||
if(_ndoc == 0)
|
||||
{
|
||||
TString query2;
|
||||
@ -281,6 +286,7 @@ void TEvasione_ter_msk::genera_buono()
|
||||
_ndoc = bolle.get(DOC_NDOC).as_int();
|
||||
}
|
||||
|
||||
//recupero i dati di interesse dal planning
|
||||
TString query1 = "USE LVRCONSPLAN KEY 3\n";
|
||||
query1 << "FROM CODCF=" << codcf << " CODCONT=" << codcont << " DTCONS=#DADATA\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 codaut = consegne.get(LVRCONSPLAN_CODAUT).as_int();
|
||||
|
||||
//recupero il codpag
|
||||
//recupero il codpag e i codici banca
|
||||
TToken_string key;
|
||||
key.add('C');
|
||||
key.add(codcf);
|
||||
@ -358,6 +364,7 @@ void TEvasione_ter_msk::genera_buono()
|
||||
key.add(1);
|
||||
const TString4 um = cache().get(LF_UMART, key, UMART_UM);
|
||||
|
||||
//creo la nuova riga documento
|
||||
TRiga_documento& rdoc = doc.new_row("21");
|
||||
rdoc.put(RDOC_CODART, codart);
|
||||
rdoc.put(RDOC_CODARTMAG,codart);
|
||||
@ -434,20 +441,19 @@ void TEvasione_ter_msk::genera_buono()
|
||||
|
||||
if (err == NOERR)
|
||||
{
|
||||
if (yesno_box(TR("Il documento è stato generato; si desiderla stamparlo?")))
|
||||
{
|
||||
//stampa automatica
|
||||
TString80 str;
|
||||
str << "ve1 -2 " << codnum << ' ' << datagen.year() << " D " << _ndoc << " S D";
|
||||
TExternal_app stampa(str);
|
||||
stampa.run();
|
||||
}
|
||||
//stampa automatica
|
||||
TString80 str;
|
||||
str << "ve1 -2 " << codnum << ' ' << datagen.year() << " D " << _ndoc << " S D";
|
||||
TExternal_app stampa(str);
|
||||
stampa.run();
|
||||
}
|
||||
else
|
||||
warning_box(TR("Non è stato possibile generare nessun documento"));
|
||||
|
||||
//riazzero ndoc
|
||||
set(F_TNDOC, 0L, 1);
|
||||
|
||||
//nascondo i campi che non mi servono
|
||||
hide(F_TCODCF);
|
||||
hide(F_TRAGSOC);
|
||||
hide(F_TBARCODE);
|
||||
@ -456,12 +462,14 @@ void TEvasione_ter_msk::genera_buono()
|
||||
hide(F_TQTACON);
|
||||
hide(F_TQTADACON);
|
||||
|
||||
//mostro i campi che servono per la selezione del documento
|
||||
show(F_TCODNUM);
|
||||
show(F_TTPDOC);
|
||||
show(F_TDESCR);
|
||||
show(F_TANNO);
|
||||
show(F_TDATAPRCO);
|
||||
|
||||
//disabilito i bottoni
|
||||
disable(DLG_SELECT);
|
||||
disable(DLG_PREVIEW);
|
||||
disable(DLG_ELABORA);
|
||||
@ -588,11 +596,11 @@ void TEvasione_ter_msk::registra()
|
||||
movmag.write(movi);
|
||||
}
|
||||
|
||||
//
|
||||
//RIEMPI_SHEET: metodo che riempie lo sheet di riepilogo delle righe documento ancora da evadere
|
||||
void TEvasione_ter_msk::riempi_sheet()
|
||||
{
|
||||
TSheet_field& sheet = sfield(F_TRIGHE);
|
||||
//sheet.destroy();
|
||||
sheet.destroy();
|
||||
|
||||
FOR_EACH_ASSOC_OBJECT(_ra, obj, key, itm)
|
||||
{
|
||||
@ -600,8 +608,8 @@ void TEvasione_ter_msk::riempi_sheet()
|
||||
TQuantita_riga& qr = *(TQuantita_riga*)itm;
|
||||
|
||||
if(!qr.get_evaso())
|
||||
{
|
||||
TToken_string& riga = sheet.row(-1);
|
||||
{
|
||||
TToken_string& riga = sheet.row(-1);
|
||||
riga.add(chiave.get(0), 0);
|
||||
riga.add(qr.get_qta_da_con(), 1);
|
||||
riga.add(qr.get_qta_con(), 2);
|
||||
@ -610,6 +618,7 @@ void TEvasione_ter_msk::riempi_sheet()
|
||||
sheet.force_update();
|
||||
}
|
||||
|
||||
//SPEZZA_RIGHE: metodo che spezza le righe documento se richiesto
|
||||
void TEvasione_ter_msk::spezza_riga()
|
||||
{
|
||||
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 evaso = true;
|
||||
@ -732,10 +742,10 @@ void TEvasione_ter_msk::evadi_da_terminale()
|
||||
qr.add_qta_con(qtapacco);
|
||||
|
||||
if(qr.get_qta_con() > qr.get_qta_da_con())
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
_pacchi.add(codpacco, kdoc);
|
||||
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_TQTADACON, qr.get_qta_da_con());
|
||||
}
|
||||
|
||||
else
|
||||
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 (!f.empty())
|
||||
{
|
||||
//f.check();
|
||||
hide(F_TCODNUM);
|
||||
hide(F_TTPDOC);
|
||||
hide(F_TDESCR);
|
||||
|
@ -80,7 +80,6 @@ BEGIN
|
||||
INPUT ANNO F_TANNO SELECT
|
||||
INPUT CODNUM F_TCODNUM SELECT
|
||||
INPUT NDOC F_TNDOC
|
||||
INPUT TIPOCF "C"
|
||||
DISPLAY "Num." CODNUM
|
||||
DISPLAY "Data\ndocumento" DATADOC
|
||||
DISPLAY "Ragione Sociale@10" LF_CLIFO->RAGSOC
|
||||
@ -88,6 +87,7 @@ BEGIN
|
||||
OUTPUT F_TDATADOC DATADOC
|
||||
OUTPUT F_TCODCF CODCF
|
||||
OUTPUT F_TRAGSOC LF_CLIFO->RAGSOC
|
||||
CHECTYPE REQUIRED
|
||||
END
|
||||
|
||||
DATE F_TDATADOC
|
||||
|
Loading…
x
Reference in New Issue
Block a user