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:
luca83 2009-06-11 16:20:51 +00:00
parent d5ebb229cf
commit fbd07a61df
7 changed files with 63 additions and 69 deletions

View File

@ -1,3 +1,3 @@
69 69
0 0
$lvrcondv|0|0|219|0|Righe del contratto||| $lvrcondv|0|0|218|0|Righe del contratto|||

View File

@ -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

View File

@ -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
{ {

View File

@ -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

View File

@ -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

View File

@ -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);

View File

@ -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];