Patch level : 10.0 patch 340
Files correlati : lv0.exe, lv2.exe, lv3.exe, lv0400a.msk, tracciati record Ricompilazione Demo : [ ] Commento : Eliminato il booleano di arrotondamento dalle righe dei contratti; cambiata la gestione dell'arrotondamento che adesso fa riferimento al campo CALCCONS; modificata scrittura del consegnato; adesso viene scritto sempre se il campo sulla maschera risulta vuoto git-svn-id: svn://10.65.10.50/trunk@19017 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
d5ebb229cf
commit
fbd07a61df
@ -1,3 +1,3 @@
|
|||||||
69
|
69
|
||||||
0
|
0
|
||||||
$lvrcondv|0|0|219|0|Righe del contratto|||
|
$lvrcondv|0|0|218|0|Righe del contratto|||
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
169
|
169
|
||||||
26
|
25
|
||||||
CODCF|3|6|0|Codice cliente
|
CODCF|3|6|0|Codice cliente
|
||||||
CODCONT|3|6|0|Codice contratto
|
CODCONT|3|6|0|Codice contratto
|
||||||
CODART|1|20|0|Codice articolo
|
CODART|1|20|0|Codice articolo
|
||||||
@ -14,7 +14,6 @@ UM|1|3|0|Unit
|
|||||||
PREZDAN|4|18|3|Prezzo danneggiati
|
PREZDAN|4|18|3|Prezzo danneggiati
|
||||||
TIPOFORF|2|1|0|Tipo forfait
|
TIPOFORF|2|1|0|Tipo forfait
|
||||||
RITAUDTTMP|8|1|0|Ritiro automatico dotazione temporanea
|
RITAUDTTMP|8|1|0|Ritiro automatico dotazione temporanea
|
||||||
ARROT|8|1|0|Arrotondamento
|
|
||||||
CAUSLAV|1|3|0|Causale di lavanderie
|
CAUSLAV|1|3|0|Causale di lavanderie
|
||||||
VALCONV|4|18|3|Valore convenzionale
|
VALCONV|4|18|3|Valore convenzionale
|
||||||
FORFPERCL|4|6|2|Percentuale di forfait cliente
|
FORFPERCL|4|6|2|Percentuale di forfait cliente
|
||||||
|
@ -158,22 +158,14 @@ bool TContratti_msk::on_art_select()
|
|||||||
if (field(F_PPCONF).empty())
|
if (field(F_PPCONF).empty())
|
||||||
{
|
{
|
||||||
set(F_CALCCONS, "0");
|
set(F_CALCCONS, "0");
|
||||||
set(F_ARROT, "");
|
|
||||||
disable(F_CALCCONS);
|
disable(F_CALCCONS);
|
||||||
disable(F_ARROT);
|
|
||||||
rowmask.field(S_CALCCONS).disable();
|
rowmask.field(S_CALCCONS).disable();
|
||||||
rowmask.field(S_ARROT).disable();
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
enable(F_CALCCONS);
|
enable(F_CALCCONS);
|
||||||
enable(F_ARROT);
|
|
||||||
rowmask.field(S_CALCCONS).enable();
|
rowmask.field(S_CALCCONS).enable();
|
||||||
rowmask.field(S_ARROT).enable();
|
|
||||||
set(F_ARROT, "X");
|
|
||||||
|
|
||||||
TToken_string row = ss.row(ss.selected());
|
TToken_string row = ss.row(ss.selected());
|
||||||
row.add("X", ss.cid2index(S_ARROT));
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -243,18 +235,11 @@ bool TContratti_msk::on_field_event(TOperable_field& o,TField_event e,long jolly
|
|||||||
if (field(F_PPCONF).empty())
|
if (field(F_PPCONF).empty())
|
||||||
{
|
{
|
||||||
set(F_CALCCONS, "0");
|
set(F_CALCCONS, "0");
|
||||||
set(F_ARROT, "");
|
|
||||||
disable(F_CALCCONS);
|
disable(F_CALCCONS);
|
||||||
disable(F_ARROT);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
|
||||||
enable(F_CALCCONS);
|
enable(F_CALCCONS);
|
||||||
enable(F_ARROT);
|
|
||||||
set(F_ARROT, "X");
|
|
||||||
row.add("X", ss.cid2index(S_ARROT));
|
|
||||||
ss.force_update();
|
|
||||||
}
|
|
||||||
_artrig=row.get(0); //salvo nella variabile globale il codart della riga selezionata
|
_artrig=row.get(0); //salvo nella variabile globale il codart della riga selezionata
|
||||||
}
|
}
|
||||||
//se ho cancellato una riga dello sheet, chiedo conferma che sia effettivamente quello che si vuole fare
|
//se ho cancellato una riga dello sheet, chiedo conferma che sia effettivamente quello che si vuole fare
|
||||||
@ -360,6 +345,22 @@ bool TContratti_msk::on_field_event(TOperable_field& o,TField_event e,long jolly
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case F_CALCCONS:
|
||||||
|
{
|
||||||
|
//Abilito/disabilito il conguaglio sulle righe nel caso opportuno
|
||||||
|
if (e == fe_modify || e == fe_init)
|
||||||
|
{
|
||||||
|
TSheet_field& ss = sfield(F_RIGHE);
|
||||||
|
|
||||||
|
if (atoi(o.get()) == 1)
|
||||||
|
ss.enable_cell(ss.selected(), ss.cid2index(S_CONG));
|
||||||
|
else
|
||||||
|
ss.disable_cell(ss.selected(), ss.cid2index(S_CONG));
|
||||||
|
|
||||||
|
ss.force_update(ss.selected());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
case S_CODART:
|
case S_CODART:
|
||||||
if (!o.empty()) //se il campo risulta pieno
|
if (!o.empty()) //se il campo risulta pieno
|
||||||
{
|
{
|
||||||
|
@ -67,8 +67,7 @@
|
|||||||
#define F_CAUSLAVRIG 526
|
#define F_CAUSLAVRIG 526
|
||||||
#define F_RITAUDTTMPRIG 527
|
#define F_RITAUDTTMPRIG 527
|
||||||
#define F_FATTKG 528
|
#define F_FATTKG 528
|
||||||
#define F_ARROT 529
|
#define F_PPCONF 530
|
||||||
#define F_PPCONF 531
|
|
||||||
|
|
||||||
#define S_CODART 101
|
#define S_CODART 101
|
||||||
#define S_DESCR 102
|
#define S_DESCR 102
|
||||||
@ -98,9 +97,8 @@
|
|||||||
#define S_CAUSLAV 126
|
#define S_CAUSLAV 126
|
||||||
#define S_RITAUDTTMP 127
|
#define S_RITAUDTTMP 127
|
||||||
#define S_FATTKG 128
|
#define S_FATTKG 128
|
||||||
#define S_ARROT 129
|
#define S_UM 129
|
||||||
#define S_UM 130
|
#define S_PPCONF 130
|
||||||
#define S_PPCONF 131
|
|
||||||
|
|
||||||
#define S_CODCF 301
|
#define S_CODCF 301
|
||||||
#define S_RAGSOC 302
|
#define S_RAGSOC 302
|
||||||
|
@ -140,7 +140,6 @@ BEGIN
|
|||||||
ITEM "Causale\ndefault@7"
|
ITEM "Causale\ndefault@7"
|
||||||
ITEM "Ritiro\naut.Dot.Temp.@12"
|
ITEM "Ritiro\naut.Dot.Temp.@12"
|
||||||
ITEM "Fatturazione\na kg"
|
ITEM "Fatturazione\na kg"
|
||||||
ITEM "Arrotond."
|
|
||||||
ITEM "UM@3"
|
ITEM "UM@3"
|
||||||
ITEM "Pezzi per\nPacco"
|
ITEM "Pezzi per\nPacco"
|
||||||
END
|
END
|
||||||
@ -309,12 +308,6 @@ BEGIN
|
|||||||
PROMPT 35 20 "Fatturazione a Kg."
|
PROMPT 35 20 "Fatturazione a Kg."
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_ARROT
|
|
||||||
BEGIN
|
|
||||||
PROMPT 65 20 "Arrotondamento "
|
|
||||||
FLAGS "G"
|
|
||||||
END
|
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "Dati Testata" 0 2 0 0
|
PAGE "Dati Testata" 0 2 0 0
|
||||||
@ -667,15 +660,6 @@ BEGIN
|
|||||||
FIELD ARTBLOC
|
FIELD ARTBLOC
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN S_ARROT
|
|
||||||
BEGIN
|
|
||||||
PROMPT 40 4 "Arrotondamento"
|
|
||||||
FIELD ARROT
|
|
||||||
FLAGS "G"
|
|
||||||
MESSAGE FALSE CLEAR,S_CONG
|
|
||||||
MESSAGE TRUE ENABLE,S_CONG
|
|
||||||
END
|
|
||||||
|
|
||||||
NUMBER S_CONG 9
|
NUMBER S_CONG 9
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 58 4 "Conguaglio"
|
PROMPT 58 4 "Conguaglio"
|
||||||
@ -848,7 +832,9 @@ LISTBOX S_CALCCONS 1 34
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 19 "Calcolo"
|
PROMPT 2 19 "Calcolo"
|
||||||
ITEM "0|Uguale al ritirato"
|
ITEM "0|Uguale al ritirato"
|
||||||
|
MESSAGE CLEAR,S_CONG
|
||||||
ITEM "1|Conguaglio alla confezione"
|
ITEM "1|Conguaglio alla confezione"
|
||||||
|
MESSAGE ENABLE,S_CONG
|
||||||
FIELD CALCCONS
|
FIELD CALCCONS
|
||||||
END
|
END
|
||||||
|
|
||||||
|
@ -10,10 +10,11 @@
|
|||||||
|
|
||||||
#include "lv2400a.h"
|
#include "lv2400a.h"
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
//////////////////////////////////////
|
||||||
// TGestione_planning maschera
|
//// TGENERA_DOCUMENTI_MASK ////
|
||||||
///////////////////////////////////////////////////////////
|
//////////////////////////////////////
|
||||||
|
|
||||||
|
//classe TGenera_documenti_mask
|
||||||
class TGenera_documenti_mask : public TAutomask
|
class TGenera_documenti_mask : public TAutomask
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -21,16 +22,17 @@ public:
|
|||||||
TGenera_documenti_mask (const char* name) : TAutomask(name) {}
|
TGenera_documenti_mask (const char* name) : TAutomask(name) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
//questa funzione gestisce i vari eenti che si verificano sui campi della maschera
|
//ON_FIELD_EVENT: questo metodo gestisce i vari eventi che si verificano sui campi della maschera
|
||||||
bool TGenera_documenti_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
bool TGenera_documenti_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
//////////////////////////////////////
|
||||||
// TGestione_planning applicazione
|
//// TGENERA_DOCUMENTI_APP ////
|
||||||
///////////////////////////////////////////////////////////
|
//////////////////////////////////////
|
||||||
|
|
||||||
|
//classe TGenera_documenti_app
|
||||||
class TGenera_documenti_app : public TSkeleton_application
|
class TGenera_documenti_app : public TSkeleton_application
|
||||||
{
|
{
|
||||||
TGenera_documenti_mask* _msk;
|
TGenera_documenti_mask* _msk;
|
||||||
@ -67,10 +69,11 @@ public:
|
|||||||
virtual void main_loop();
|
virtual void main_loop();
|
||||||
};
|
};
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
//// Metodi Protected ////
|
//// Metodi Protected ////
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
|
|
||||||
|
//CREATE: metodo costruttore
|
||||||
bool TGenera_documenti_app::create()
|
bool TGenera_documenti_app::create()
|
||||||
{
|
{
|
||||||
_msk = new TGenera_documenti_mask("lv2400a");
|
_msk = new TGenera_documenti_mask("lv2400a");
|
||||||
@ -78,6 +81,8 @@ bool TGenera_documenti_app::create()
|
|||||||
return TSkeleton_application::create();
|
return TSkeleton_application::create();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//ON_CONFIG_CHANGE: metodo che aggiorna la variabile TConfig ogni volta
|
||||||
|
//che faccio un cambiamento al file fisico
|
||||||
void TGenera_documenti_app::on_config_change()
|
void TGenera_documenti_app::on_config_change()
|
||||||
{
|
{
|
||||||
if (_configlv != NULL)
|
if (_configlv != NULL)
|
||||||
@ -85,6 +90,7 @@ void TGenera_documenti_app::on_config_change()
|
|||||||
_configlv = new TConfig(CONFIG_DITTA,"lv");
|
_configlv = new TConfig(CONFIG_DITTA,"lv");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//DESTROY: metodo distruttore
|
||||||
bool TGenera_documenti_app::destroy()
|
bool TGenera_documenti_app::destroy()
|
||||||
{
|
{
|
||||||
delete _configlv;
|
delete _configlv;
|
||||||
@ -92,11 +98,11 @@ bool TGenera_documenti_app::destroy()
|
|||||||
return TApplication::destroy();
|
return TApplication::destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////
|
||||||
//// Metodi per la generazione dei documenti ////
|
//// Metodi per la generazione dei documenti ////
|
||||||
//////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////
|
||||||
|
|
||||||
//CREA_DOCUMENTO: questa funzione crea un nuovo documento di trasporto dai dati salvati
|
//CREA_DOCUMENTO: metodo che crea un nuovo documento di trasporto dai dati salvati
|
||||||
bool TGenera_documenti_app::crea_documento(const TISAM_recordset& plan)
|
bool TGenera_documenti_app::crea_documento(const TISAM_recordset& plan)
|
||||||
{
|
{
|
||||||
//recupero i dati di interesse dalla maschera
|
//recupero i dati di interesse dalla maschera
|
||||||
@ -209,7 +215,12 @@ void TGenera_documenti_app::crea_riga(const TString& codart, const char modpas,
|
|||||||
//instanzio una cache sulla tabella delle righe contratti
|
//instanzio una cache sulla tabella delle righe contratti
|
||||||
const TRectype& rcont = cache().get(LF_LVRCONDV,keyrcont);
|
const TRectype& rcont = cache().get(LF_LVRCONDV,keyrcont);
|
||||||
//recupero i dati di interesse dalla riga del contratto
|
//recupero i dati di interesse dalla riga del contratto
|
||||||
const bool arrot = rcont.get_bool(LVRCONDV_ARROT);
|
bool arrot;
|
||||||
|
if (rcont.get_int(LVRCONDV_CALCCONS) == 1)
|
||||||
|
arrot = true;
|
||||||
|
else
|
||||||
|
arrot = false;
|
||||||
|
|
||||||
const real conguaglio = rcont.get_real(LVRCONDV_QTACONG);
|
const real conguaglio = rcont.get_real(LVRCONDV_QTACONG);
|
||||||
const real& qta = *(real*)_quantita.objptr(codart);
|
const real& qta = *(real*)_quantita.objptr(codart);
|
||||||
const real& qta1 = *(real*)_quantita_ritirata.objptr(codart);
|
const real& qta1 = *(real*)_quantita_ritirata.objptr(codart);
|
||||||
|
@ -304,7 +304,7 @@ void TGestione_bolle_msk::arrotonda(const TMask& msk, real& quantita)
|
|||||||
//leggo la riga del contratto per l'articolo corrente
|
//leggo la riga del contratto per l'articolo corrente
|
||||||
const TRectype& rcont = cont.row(codart);
|
const TRectype& rcont = cont.row(codart);
|
||||||
//recupero i dati di interesse dalla riga del contratto
|
//recupero i dati di interesse dalla riga del contratto
|
||||||
if (rcont.get_bool(LVRCONDV_ARROT))
|
if (rcont.get_int(LVRCONDV_CALCCONS) == 1)
|
||||||
{
|
{
|
||||||
//calcolo di quanti pezzi sforo
|
//calcolo di quanti pezzi sforo
|
||||||
long arr = quantita.integer() % ppconf;
|
long arr = quantita.integer() % ppconf;
|
||||||
@ -619,7 +619,7 @@ bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k)
|
|||||||
//e il campo "dotazione temporanea" (se la causale è giusta)
|
//e il campo "dotazione temporanea" (se la causale è giusta)
|
||||||
bool TGestione_bolle_msk::lv_ritirato_handler(TMask_field& f, KEY k)
|
bool TGestione_bolle_msk::lv_ritirato_handler(TMask_field& f, KEY k)
|
||||||
{
|
{
|
||||||
if (f.to_check(k) && !f.empty())
|
if (f.to_check(k) && !f.empty())
|
||||||
{
|
{
|
||||||
TMask& msk = f.mask();
|
TMask& msk = f.mask();
|
||||||
real ritirato = f.get();
|
real ritirato = f.get();
|
||||||
@ -636,8 +636,7 @@ bool TGestione_bolle_msk::lv_ritirato_handler(TMask_field& f, KEY k)
|
|||||||
|
|
||||||
rdoc.put(RDOC_QTAGG1,ritirato);
|
rdoc.put(RDOC_QTAGG1,ritirato);
|
||||||
|
|
||||||
|
if (msk.field(FR_QTA).enabled() && msk.field(FR_QTA).empty())
|
||||||
if (msk.field(FR_QTA).enabled() && rdoc.get(RDOC_QTA).empty())
|
|
||||||
{
|
{
|
||||||
real consegnato = ritirato;
|
real consegnato = ritirato;
|
||||||
arrotonda(msk, consegnato);
|
arrotonda(msk, consegnato);
|
||||||
@ -760,7 +759,7 @@ bool TGestione_bolle_msk::lv_codart_handler(TMask_field& f, KEY k)
|
|||||||
if (rdoc.get(RDOC_CODAGG1).empty())
|
if (rdoc.get(RDOC_CODAGG1).empty())
|
||||||
msk.set(FR_CODAGG1, causale);
|
msk.set(FR_CODAGG1, causale);
|
||||||
|
|
||||||
if (k == K_ENTER && rcont.get_bool(LVRCONDV_ARROT))
|
if (k == K_ENTER && rcont.get_int(LVRCONDV_CALCCONS) == 1)
|
||||||
{
|
{
|
||||||
TSheet_field* sheet = msk.get_sheet();
|
TSheet_field* sheet = msk.get_sheet();
|
||||||
TRiga_documento rdoc = dmsk.doc()[sheet->selected()+1];
|
TRiga_documento rdoc = dmsk.doc()[sheet->selected()+1];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user