Patch level : 10.0 196

Files correlati     : lv3.exe
Ricompilazione Demo : [ ]
Commento            :

Bug 0001078: Campi che rimangono impostati in documenti lavanderia

Inserire una nuova bolla che prevede ad esempio 3 articoli, associare una causale che prevede consegnma e ritiro ai primi due articoli e all'ultimo articolo una causale che prevede solo ritiro...correttamente la colonna consegnato dell'ultimo articolo risulta non imputabile, ma se si preme registra anche la colonna consegnato dei 2 articoli precedenti diviene non imputabile.
Se si preme annulla e si richiama un nuovo documento rimangono impostate le configurazioni dell'ultima causale inserita.

impostati anche o decimali sul consegnato e ritirato


git-svn-id: svn://10.65.10.50/trunk@17914 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2008-12-16 12:51:47 +00:00
parent 71605dca0f
commit e1d6319b05
6 changed files with 52 additions and 22 deletions

View File

@ -61,10 +61,10 @@ void TGestione_bolle_msk::arrotonda(const TMask& msk, real& quantita)
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, false) && !f.empty()) if (f.to_check(k) && !f.empty())
{ {
TMask& msk = f.mask(); TMask& msk = f.mask();
if (msk.field(FR_QTA).empty()) if (msk.field(FR_QTA).enabled() && msk.field(FR_QTA).empty())
{ {
real ritirato = f.get(); real ritirato = f.get();
arrotonda(msk,ritirato); arrotonda(msk,ritirato);
@ -77,15 +77,16 @@ bool TGestione_bolle_msk::lv_ritirato_handler(TMask_field& f, KEY k)
bool TGestione_bolle_msk::lv_consegnato_handler(TMask_field& f, KEY k) bool TGestione_bolle_msk::lv_consegnato_handler(TMask_field& f, KEY k)
{ {
bool ok = true; bool ok = true;
switch(f.dlg()) TMask& msk = f.mask();
switch(f.dlg())
{ {
case FR_QTA: ok = qta_handler( f, k ); break; case FR_QTA: ok = qta_handler( f, k ); break;
default: break; default: break;
} }
if (ok && f.to_check(k) && !f.empty()) if (ok && f.to_check(k) && msk.field(FR_QTAGG1).enabled() && !f.empty())
{ {
TMask& msk = f.mask();
real ritirato = msk.get_real(FR_QTAGG1); real ritirato = msk.get_real(FR_QTAGG1);
real consegnato = f.get(); real consegnato = f.get();
arrotonda(msk, consegnato); arrotonda(msk, consegnato);
@ -113,22 +114,25 @@ bool TGestione_bolle_msk::lv_codart_handler(TMask_field& f, KEY k)
TMask& msk = f.mask(); TMask& msk = f.mask();
const TString& codart = msk.get(FR_CODART); const TString& codart = msk.get(FR_CODART);
TDocumento_mask& dmsk = (TDocumento_mask&) msk.get_sheet()->mask(); if (codart.full())
{
TDocumento_mask& dmsk = (TDocumento_mask&) msk.get_sheet()->mask();
//recupero dal documento i dati di interesse per recuperare... //recupero dal documento i dati di interesse per recuperare...
//...i dati dalla riga contratto //...i dati dalla riga contratto
const long codcf = dmsk.get_long(F_CODCF); const long codcf = dmsk.get_long(F_CODCF);
const int indsped = dmsk.get_int(F_CODINDSP); const int indsped = dmsk.get_int(F_CODINDSP);
TDate datadoc = dmsk.get_date(F_DATADOC); TDate datadoc = dmsk.get_date(F_DATADOC);
if (!datadoc.ok()) if (!datadoc.ok())
datadoc = TODAY; datadoc = TODAY;
const TLaundry_contract cont(codcf, indsped, datadoc); const TLaundry_contract cont(codcf, indsped, datadoc);
if (cont.row(codart).empty() && if (cont.row(codart).empty() &&
yesno_box(TR("L'articolo in esame non fa parte della dotazione standard di questo cliente." yesno_box(TR("L'articolo in esame non fa parte della dotazione standard di questo cliente."
"Si desidera aggiungerla ai contratti?"))) "Si desidera aggiungerla ai contratti?")))
cont.edit(); cont.edit();
}
} }
return ok; return ok;
} }

View File

@ -17,6 +17,7 @@ DEFINE_FIELD(DESCRART)
DEFINE_FIELD(UMQTA) DEFINE_FIELD(UMQTA)
DEFINE_FIELD(QTA) DEFINE_FIELD(QTA)
F_POS(QTA, 21, 9,"Consegnato " ) F_POS(QTA, 21, 9,"Consegnato " )
F_DEC(QTA, 0)
DEFINE_FIELD(PREZZO) DEFINE_FIELD(PREZZO)
F_POS(PREZZO, 47, 9,"Prezzo " ) F_POS(PREZZO, 47, 9,"Prezzo " )
DEFINE_FIELD(SCONTO) DEFINE_FIELD(SCONTO)
@ -29,6 +30,7 @@ DEFINE_FIELD(CAULAV)
F_POS(CAULAV, 47, 10,"Causale Lavanderie " ) F_POS(CAULAV, 47, 10,"Causale Lavanderie " )
DEFINE_FIELD(RITIRO) DEFINE_FIELD(RITIRO)
F_POS(RITIRO, 21, 10,"Ritirato " ) F_POS(RITIRO, 21, 10,"Ritirato " )
F_DEC(RITIRO, 0)
DEFINE_FIELD(NCOLLI) DEFINE_FIELD(NCOLLI)
DEFINE_FIELD(PNETTO) DEFINE_FIELD(PNETTO)
DEFINE_FIELD(TARA) DEFINE_FIELD(TARA)

View File

@ -987,7 +987,7 @@ void TDocumento_mask::doc2mask(bool reload_clifo)
s.insert(-1, FALSE); s.insert(-1, FALSE);
s.row(i); // qui verificare s.row(i); // qui verificare
doc()[i+1].autoload(s); doc()[i+1].autoload(s);
s.check_row(i, 0x2); s.check_row(i, 0x3);
if (r.tipo().tipo() == RIGA_PRESTAZIONI) if (r.tipo().tipo() == RIGA_PRESTAZIONI)
{ {
const TSpesa_prest & spesa = r.spesa(); const TSpesa_prest & spesa = r.spesa();

View File

@ -991,7 +991,17 @@ END
ENDIF ENDIF
IF(defined(FLD_QTA) || defined(FLD_PERCSP)) IF(defined(FLD_QTA) || defined(FLD_PERCSP))
NUMBER FR_QTA 13 5 NUMBER FR_QTA
IFDEF(LN_QTA)
LN_QTA
ELSEIF
13
ENDIF
IFDEF(DE_QTA)
DE_QTA
ELSEIF
5
ENDIF
BEGIN BEGIN
IFDEF(X_QTA) IFDEF(X_QTA)
PROMPT X_QTA Y_QTA PR_QTA PROMPT X_QTA Y_QTA PR_QTA
@ -1434,7 +1444,17 @@ ENDIF
ENDIF ENDIF
IFDEF(FLD_RITIRO) IFDEF(FLD_RITIRO)
NUMBER FR_RITIRO 13 5 NUMBER FR_RITIRO
IFDEF(LN_RITIRO)
LN_RITIRO
ELSEIF
13
ENDIF
IFDEF(DE_RITIRO)
DE_RITIRO
ELSEIF
5
ENDIF
BEGIN BEGIN
IFDEF(X_RITIRO) IFDEF(X_RITIRO)
PROMPT X_RITIRO Y_RITIRO PR_RITIRO PROMPT X_RITIRO Y_RITIRO PR_RITIRO
@ -1478,6 +1498,7 @@ IFDEF(NC_CAULAV)
NUM_CALC NC_CAULAV NUM_CALC NC_CAULAV
ENDIF ENDIF
FIELD CODAGG1 FIELD CODAGG1
MESSAGE K_SPACE,FR_FLCONS|K_SPACE,FR_FLRIT
END END
BOOLEAN FR_FLCONS BOOLEAN FR_FLCONS
BEGIN BEGIN

View File

@ -1,5 +1,6 @@
#include "verigdef.h" #include "verigdef.h"
#define FULL_SCREEN
#define PAGE_2 #define PAGE_2
DEFINE_FIELD(CODMAG) DEFINE_FIELD(CODMAG)

View File

@ -11,6 +11,8 @@
!!define PR_##name prompt ; !!define PR_##name prompt ;
#define F_TYPE(name, type) !!define TY_##name type ; #define F_TYPE(name, type) !!define TY_##name type ;
#define F_LEN(name, len) !!define LN_##name len ;
#define F_DEC(name, dec) !!define DE_##name dec ;
#define F_FLG(name, flags) !!define FL_##name flags ; #define F_FLG(name, flags) !!define FL_##name flags ;