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
0
$lvrcondv|0|0|219|0|Righe del contratto|||
$lvrcondv|0|0|218|0|Righe del contratto|||

View File

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

View File

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

View File

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

View File

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

View File

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

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