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
|
||||
0
|
||||
$lvrcondv|0|0|219|0|Righe del contratto|||
|
||||
$lvrcondv|0|0|218|0|Righe del contratto|||
|
||||
|
@ -1,5 +1,5 @@
|
||||
169
|
||||
26
|
||||
25
|
||||
CODCF|3|6|0|Codice cliente
|
||||
CODCONT|3|6|0|Codice contratto
|
||||
CODART|1|20|0|Codice articolo
|
||||
@ -14,7 +14,6 @@ UM|1|3|0|Unit
|
||||
PREZDAN|4|18|3|Prezzo danneggiati
|
||||
TIPOFORF|2|1|0|Tipo forfait
|
||||
RITAUDTTMP|8|1|0|Ritiro automatico dotazione temporanea
|
||||
ARROT|8|1|0|Arrotondamento
|
||||
CAUSLAV|1|3|0|Causale di lavanderie
|
||||
VALCONV|4|18|3|Valore convenzionale
|
||||
FORFPERCL|4|6|2|Percentuale di forfait cliente
|
||||
|
@ -157,23 +157,15 @@ bool TContratti_msk::on_art_select()
|
||||
|
||||
if (field(F_PPCONF).empty())
|
||||
{
|
||||
set(F_CALCCONS, "0");
|
||||
set(F_ARROT, "");
|
||||
disable(F_CALCCONS);
|
||||
disable(F_ARROT);
|
||||
rowmask.field(S_CALCCONS).disable();
|
||||
rowmask.field(S_ARROT).disable();
|
||||
set(F_CALCCONS, "0");
|
||||
disable(F_CALCCONS);
|
||||
rowmask.field(S_CALCCONS).disable();
|
||||
}
|
||||
else
|
||||
{
|
||||
enable(F_CALCCONS);
|
||||
enable(F_ARROT);
|
||||
rowmask.field(S_CALCCONS).enable();
|
||||
rowmask.field(S_ARROT).enable();
|
||||
set(F_ARROT, "X");
|
||||
|
||||
TToken_string row = ss.row(ss.selected());
|
||||
row.add("X", ss.cid2index(S_ARROT));
|
||||
enable(F_CALCCONS);
|
||||
rowmask.field(S_CALCCONS).enable();
|
||||
TToken_string row = ss.row(ss.selected());
|
||||
}
|
||||
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())
|
||||
{
|
||||
set(F_CALCCONS, "0");
|
||||
set(F_ARROT, "");
|
||||
disable(F_CALCCONS);
|
||||
disable(F_ARROT);
|
||||
disable(F_CALCCONS);
|
||||
}
|
||||
else
|
||||
{
|
||||
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
|
||||
}
|
||||
//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;
|
||||
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:
|
||||
if (!o.empty()) //se il campo risulta pieno
|
||||
{
|
||||
|
@ -67,8 +67,7 @@
|
||||
#define F_CAUSLAVRIG 526
|
||||
#define F_RITAUDTTMPRIG 527
|
||||
#define F_FATTKG 528
|
||||
#define F_ARROT 529
|
||||
#define F_PPCONF 531
|
||||
#define F_PPCONF 530
|
||||
|
||||
#define S_CODART 101
|
||||
#define S_DESCR 102
|
||||
@ -98,9 +97,8 @@
|
||||
#define S_CAUSLAV 126
|
||||
#define S_RITAUDTTMP 127
|
||||
#define S_FATTKG 128
|
||||
#define S_ARROT 129
|
||||
#define S_UM 130
|
||||
#define S_PPCONF 131
|
||||
#define S_UM 129
|
||||
#define S_PPCONF 130
|
||||
|
||||
#define S_CODCF 301
|
||||
#define S_RAGSOC 302
|
||||
|
@ -140,7 +140,6 @@ BEGIN
|
||||
ITEM "Causale\ndefault@7"
|
||||
ITEM "Ritiro\naut.Dot.Temp.@12"
|
||||
ITEM "Fatturazione\na kg"
|
||||
ITEM "Arrotond."
|
||||
ITEM "UM@3"
|
||||
ITEM "Pezzi per\nPacco"
|
||||
END
|
||||
@ -169,8 +168,8 @@ END
|
||||
LISTBOX F_CALCCONS 1 28
|
||||
BEGIN
|
||||
PROMPT 40 13 "Consegnato"
|
||||
ITEM "0|Uguale al ritirato"
|
||||
ITEM "1|Conguaglio alla confezione"
|
||||
ITEM "0|Uguale al ritirato"
|
||||
ITEM "1|Conguaglio alla confezione"
|
||||
END
|
||||
|
||||
LISTBOX F_TIPOFORF 1 25
|
||||
@ -309,12 +308,6 @@ BEGIN
|
||||
PROMPT 35 20 "Fatturazione a Kg."
|
||||
END
|
||||
|
||||
BOOLEAN F_ARROT
|
||||
BEGIN
|
||||
PROMPT 65 20 "Arrotondamento "
|
||||
FLAGS "G"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Dati Testata" 0 2 0 0
|
||||
@ -667,15 +660,6 @@ BEGIN
|
||||
FIELD ARTBLOC
|
||||
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
|
||||
BEGIN
|
||||
PROMPT 58 4 "Conguaglio"
|
||||
@ -848,7 +832,9 @@ LISTBOX S_CALCCONS 1 34
|
||||
BEGIN
|
||||
PROMPT 2 19 "Calcolo"
|
||||
ITEM "0|Uguale al ritirato"
|
||||
MESSAGE CLEAR,S_CONG
|
||||
ITEM "1|Conguaglio alla confezione"
|
||||
MESSAGE ENABLE,S_CONG
|
||||
FIELD CALCCONS
|
||||
END
|
||||
|
||||
|
@ -10,10 +10,11 @@
|
||||
|
||||
#include "lv2400a.h"
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TGestione_planning maschera
|
||||
///////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////
|
||||
//// TGENERA_DOCUMENTI_MASK ////
|
||||
//////////////////////////////////////
|
||||
|
||||
//classe TGenera_documenti_mask
|
||||
class TGenera_documenti_mask : public TAutomask
|
||||
{
|
||||
public:
|
||||
@ -21,16 +22,17 @@ public:
|
||||
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)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TGestione_planning applicazione
|
||||
///////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////
|
||||
//// TGENERA_DOCUMENTI_APP ////
|
||||
//////////////////////////////////////
|
||||
|
||||
//classe TGenera_documenti_app
|
||||
class TGenera_documenti_app : public TSkeleton_application
|
||||
{
|
||||
TGenera_documenti_mask* _msk;
|
||||
@ -67,10 +69,11 @@ public:
|
||||
virtual void main_loop();
|
||||
};
|
||||
|
||||
////////////////////////////////
|
||||
//// Metodi Protected ////
|
||||
////////////////////////////////
|
||||
////////////////////////////////
|
||||
//// Metodi Protected ////
|
||||
////////////////////////////////
|
||||
|
||||
//CREATE: metodo costruttore
|
||||
bool TGenera_documenti_app::create()
|
||||
{
|
||||
_msk = new TGenera_documenti_mask("lv2400a");
|
||||
@ -78,6 +81,8 @@ bool TGenera_documenti_app::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()
|
||||
{
|
||||
if (_configlv != NULL)
|
||||
@ -85,6 +90,7 @@ void TGenera_documenti_app::on_config_change()
|
||||
_configlv = new TConfig(CONFIG_DITTA,"lv");
|
||||
}
|
||||
|
||||
//DESTROY: metodo distruttore
|
||||
bool TGenera_documenti_app::destroy()
|
||||
{
|
||||
delete _configlv;
|
||||
@ -92,11 +98,11 @@ bool TGenera_documenti_app::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)
|
||||
{
|
||||
//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
|
||||
const TRectype& rcont = cache().get(LF_LVRCONDV,keyrcont);
|
||||
//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& qta = *(real*)_quantita.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
|
||||
const TRectype& rcont = cont.row(codart);
|
||||
//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
|
||||
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)
|
||||
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();
|
||||
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);
|
||||
|
||||
|
||||
if (msk.field(FR_QTA).enabled() && rdoc.get(RDOC_QTA).empty())
|
||||
if (msk.field(FR_QTA).enabled() && msk.field(FR_QTA).empty())
|
||||
{
|
||||
real consegnato = ritirato;
|
||||
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())
|
||||
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();
|
||||
TRiga_documento rdoc = dmsk.doc()[sheet->selected()+1];
|
||||
|
Loading…
x
Reference in New Issue
Block a user