Patch level : 10.0 patch 314
Files correlati : lv3.exe, lvtbcau.msk Ricompilazione Demo : [ ] Commento : Corrette le chiamate alla nuova classe TCausale_lavanderie 0001320: gestione conguaglio sulle causali lavanderie Descrizione: Sulla tabella delle causali lavanderia bisogna aggiungere un campo per la gestione del conguaglio uguale a quello delle quantità consegnato mese (e gli altri) perchè le causali tipo la 003 non devono movimentarlo. I documenti di trasporto devono gestirlo git-svn-id: svn://10.65.10.50/trunk@18919 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
76ef3f8faa
commit
0e580e607f
@ -79,7 +79,6 @@ public:
|
||||
bool reset(const TDocumento& doc); //svuota i TAssoc_array e carica cli e cont
|
||||
bool load_row(const TRiga_documento& rdoc); //popola i TAssoc_array
|
||||
real giac_att(TRiga_documento& rdoc, bool odierna); //restituisce le quantità attuali di dotazione
|
||||
int write_giac(const TMask& m); //scrive i valori corretti sul file 166
|
||||
TGiac_per_cli(); //costruttore
|
||||
};
|
||||
|
||||
@ -116,11 +115,12 @@ long TGiac_per_cli::giac_in_mag(const TString& codart, bool odierna) const
|
||||
{
|
||||
//recupero i valori delle dotazioni odierne e temporanee dal magazzino del cliente
|
||||
TLocalisamfile magcli(LF_CLIFOGIAC);
|
||||
magcli.put(CLIFOGIAC_ANNOES, _year);
|
||||
magcli.put(CLIFOGIAC_TIPOCF, 'C');
|
||||
magcli.put(CLIFOGIAC_CODCF, _clifo);
|
||||
magcli.put(CLIFOGIAC_ANNOES, _year);
|
||||
magcli.put(CLIFOGIAC_TIPOCF, 'C');
|
||||
magcli.put(CLIFOGIAC_CODCF, _clifo);
|
||||
magcli.put(CLIFOGIAC_INDSPED, _indsped);
|
||||
magcli.put(CLIFOGIAC_CODART, codart);
|
||||
magcli.put(CLIFOGIAC_CODART, codart);
|
||||
magcli.put(CLIFOGIAC_NRIGA, 1);
|
||||
|
||||
//leggo il record corrispondente
|
||||
if (magcli.read() == NOERR)
|
||||
@ -170,13 +170,13 @@ bool TGiac_per_cli::load_row(const TRiga_documento& rdoc)
|
||||
real& dotmp = giacart_tmp(rdoc.get(RDOC_CODART));
|
||||
|
||||
//instanzio una cache sulla tabella delle causali
|
||||
TString4 causale = rdoc.get(RDOC_CODAGG1);
|
||||
const TRectype& cau = cache().get("&CAU", causale);
|
||||
const TString4 causale = rdoc.get(RDOC_CODAGG1);
|
||||
const TCausale_lavanderie cau(causale);
|
||||
|
||||
//movimento o meno la dotazione temporanea a seconda di cosa prevede la causale
|
||||
if (cau.get_bool("B0"))
|
||||
if (cau.is_ritiro())
|
||||
{
|
||||
const TCausale_magazzino & rit = cached_causale_magazzino(cau.get("S1"));
|
||||
const TCausale_magazzino& rit = cau.causale_ritiro();
|
||||
const real & ritirato = rdoc.get_real(RDOC_QTAGG1);
|
||||
int st = rit.sgn(s_dottm);
|
||||
int so = rit.sgn(s_dotod);
|
||||
@ -184,9 +184,9 @@ bool TGiac_per_cli::load_row(const TRiga_documento& rdoc)
|
||||
vartmp += real(st) * ritirato;
|
||||
vardot += real(so) * ritirato;
|
||||
}
|
||||
if (cau.get_bool("B1"))
|
||||
if (cau.is_consegna())
|
||||
{
|
||||
const TCausale_magazzino & con = cached_causale_magazzino(cau.get("S2"));
|
||||
const TCausale_magazzino& con = cau.causale_consegna();
|
||||
const real & consegnato = rdoc.get_real(RDOC_QTA);
|
||||
int st = con.sgn(s_dottm);
|
||||
int so = con.sgn(s_dotod);
|
||||
@ -215,19 +215,19 @@ real TGiac_per_cli::giac_att(TRiga_documento& rdoc, bool odierna)
|
||||
|
||||
//instanzio una cache sulla tabella delle causali
|
||||
TString4 causale = rdoc.get(RDOC_CODAGG1);
|
||||
const TRectype& cau = cache().get("&CAU", causale);
|
||||
const TCausale_lavanderie cau(causale);
|
||||
|
||||
//movimento o meno la dotazione temporanea/odierna a seconda di cosa prevede la causale
|
||||
if (cau.get_bool("B0"))
|
||||
if (cau.is_ritiro())
|
||||
{
|
||||
const TCausale_magazzino& rit = cached_causale_magazzino(cau.get("S1"));
|
||||
const TCausale_magazzino& rit = cau.causale_ritiro();
|
||||
const int s = rit.sgn(odierna ? s_dotod : s_dottm);
|
||||
|
||||
saldo += real(s) * rdoc.get_real(RDOC_QTAGG1);
|
||||
}
|
||||
if (cau.get_bool("B1"))
|
||||
if (cau.is_consegna())
|
||||
{
|
||||
const TCausale_magazzino& con = cached_causale_magazzino(cau.get("S2"));
|
||||
const TCausale_magazzino& con = cau.causale_consegna();
|
||||
const int s = con.sgn(odierna ? s_dotod : s_dottm);
|
||||
|
||||
saldo += real(s) * rdoc.get_real(RDOC_QTA);
|
||||
@ -237,31 +237,6 @@ real TGiac_per_cli::giac_att(TRiga_documento& rdoc, bool odierna)
|
||||
return giac;
|
||||
}
|
||||
|
||||
int TGiac_per_cli::write_giac(const TMask& m)
|
||||
{
|
||||
int err = NOERR;
|
||||
|
||||
TGestione_bolle_msk& mask = (TGestione_bolle_msk&) m;
|
||||
TDocumento& d = mask.doc();
|
||||
|
||||
TLocalisamfile magcli(LF_CLIFOGIAC);
|
||||
FOR_EACH_DOC_ROW_BACK(d, r, row)
|
||||
{
|
||||
if (row->is_articolo())
|
||||
{
|
||||
magcli.put(CLIFOGIAC_ANNOES, _year);
|
||||
magcli.put(CLIFOGIAC_TIPOCF, 'C');
|
||||
magcli.put(CLIFOGIAC_CODCF, _clifo);
|
||||
magcli.put(CLIFOGIAC_INDSPED, _indsped);
|
||||
magcli.put(CLIFOGIAC_CODART, row->get(RDOC_CODART));
|
||||
magcli.put(CLIFOGIAC_DOTOD, row->get_real("DOTOD"));
|
||||
magcli.put(CLIFOGIAC_DOTTM, row->get_real("DOTMP"));
|
||||
err = magcli.rewrite_write();
|
||||
}
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
//costruttore
|
||||
TGiac_per_cli::TGiac_per_cli()
|
||||
{
|
||||
@ -352,10 +327,10 @@ void TGestione_bolle_msk::dettaglio_causale(TSheet_field& ss)
|
||||
TString4 causale = ss.cell(ss.selected(),ss.cid2index(FR_CODAGG1));
|
||||
|
||||
//instanzio una cache sulle causali
|
||||
const TRectype& cau = cache().get("&CAU", causale);
|
||||
const TCausale_lavanderie cau(causale);
|
||||
//esplodo la causale
|
||||
dmsk.set(F_LVCODCAU, causale);
|
||||
dmsk.set(F_LVDESCAU, cau.get("S0"));
|
||||
dmsk.set(F_LVCODCAU, cau.codice());
|
||||
dmsk.set(F_LVDESCAU, cau.descr());
|
||||
}
|
||||
|
||||
////////////////////////////
|
||||
@ -731,7 +706,7 @@ bool TGestione_bolle_msk::lv_codart_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
TConfig* configlv = new TConfig(CONFIG_DITTA,"lv");
|
||||
causale = configlv->get("CAUSLAV");
|
||||
}
|
||||
}
|
||||
|
||||
if (rdoc.get("DOTOD").empty())
|
||||
{
|
||||
@ -758,9 +733,13 @@ bool TGestione_bolle_msk::lv_codart_handler(TMask_field& f, KEY k)
|
||||
const real conor = rdoc.get_real(RDOC_QTAGG3);
|
||||
|
||||
const real ritat = msk.get_real(FR_QTAGG1);
|
||||
const real conat = msk.get_real(FR_QTA);
|
||||
const real conat = msk.get_real(FR_QTA);
|
||||
|
||||
if (ritor != ritat || conor != conat)
|
||||
//instanzio una cache sulle causali
|
||||
causale = sheet->cell(sheet->selected(),sheet->cid2index(FR_CODAGG1));
|
||||
const TCausale_lavanderie cau(causale);
|
||||
|
||||
if (cau.movcong() && (ritor != ritat || conor != conat))
|
||||
{
|
||||
const real congor = rcont.get_real(LVRCONDV_QTACONG);
|
||||
|
||||
@ -837,14 +816,13 @@ bool TGestione_bolle_msk::lv_causale_handler(TMask_field& f, KEY k)
|
||||
const TLaundry_contract cont(codcf, indsped, datadoc);
|
||||
const TRectype& rcont = cont.row(codart);
|
||||
|
||||
//instanzio una cache sulle causali
|
||||
const TRectype& cau = cache().get("&CAU", causale);
|
||||
TCausale_lavanderie cau(causale);
|
||||
//movimento o meno la dotazione temporanea/odierna a seconda di cosa prevede la causale
|
||||
int sgn_rit = 0;
|
||||
int sgn_con = 0;
|
||||
if (cau.get_bool("B0"))
|
||||
if (cau.is_ritiro())
|
||||
{
|
||||
const TCausale_magazzino& rit = cached_causale_magazzino(cau.get("S1"));
|
||||
const TCausale_magazzino& rit = cau.causale_ritiro();
|
||||
if (codmagcoll.blank() && rit.has_default_mag())
|
||||
{
|
||||
codmagcoll = rit.default_mag();
|
||||
@ -852,9 +830,9 @@ bool TGestione_bolle_msk::lv_causale_handler(TMask_field& f, KEY k)
|
||||
}
|
||||
sgn_rit = rit.sgn(s_dottm);
|
||||
}
|
||||
if (cau.get_bool("B1"))
|
||||
if (cau.is_consegna())
|
||||
{
|
||||
const TCausale_magazzino& con = cached_causale_magazzino(cau.get("S2"));
|
||||
const TCausale_magazzino& con = cau.causale_consegna();
|
||||
if (codmag.blank() && con.has_default_mag())
|
||||
{
|
||||
codmag = con.default_mag();
|
||||
@ -935,13 +913,13 @@ bool TGestione_bolle_msk::lv_causale_handler(TMask_field& f, KEY k)
|
||||
rcondv.put(LVRCONDV_FIDTTMP, giri.get(LVRCONSPLAN_DTCONS).as_date());
|
||||
rcondv.rewrite();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//abilito o disabilito azzerandolo il campo "Ritirato" a seconda di cosa prevede la causale
|
||||
if (cau.get_bool("B0"))
|
||||
if (cau.is_ritiro())
|
||||
{
|
||||
msk.field(FR_QTAGG1).enable(true);
|
||||
|
||||
@ -962,7 +940,7 @@ bool TGestione_bolle_msk::lv_causale_handler(TMask_field& f, KEY k)
|
||||
|
||||
//abilito o disabilito azzerandolo il campo "Consegnato" a seconda di cosa prevede la causale
|
||||
//ATTENZIONE: questo campo risulta sempre disabilitato se l'articolo è bloccato
|
||||
if (cau.get_bool("B1") && rcont.get(LVRCONDV_ARTBLOC).empty())
|
||||
if (cau.is_consegna() && rcont.get(LVRCONDV_ARTBLOC).empty())
|
||||
{
|
||||
msk.field(FR_QTA).enable(true);
|
||||
if (codmag.blank())
|
||||
@ -1138,7 +1116,6 @@ int TGestione_bolle_app::write( const TMask& m )
|
||||
|
||||
TGestione_bolle_msk& mask = (TGestione_bolle_msk&) m;
|
||||
|
||||
//_giac.write_giac(m);
|
||||
return TMotore_application::write(m);
|
||||
}
|
||||
|
||||
@ -1149,7 +1126,6 @@ int TGestione_bolle_app::rewrite( const TMask& m )
|
||||
|
||||
TGestione_bolle_msk& mask = (TGestione_bolle_msk&) m;
|
||||
|
||||
//_giac.write_giac(m);
|
||||
return TMotore_application::rewrite(m);
|
||||
}
|
||||
|
||||
|
@ -20,6 +20,7 @@
|
||||
#define F_SGNCONMN_C 119
|
||||
#define F_CAUSALE_RESO 120
|
||||
#define F_CAUSALE_ROTTO 121
|
||||
#define F_MOV_CONGUAGLIO 122
|
||||
//#define F_STAMPA_BOLLA 117
|
||||
//#define F_CALC_IMPORTO 118
|
||||
//#define F_CONTR_DOTAZIONE 119
|
@ -260,6 +260,13 @@ BEGIN
|
||||
PROMPT 25 16 "Causale di rotto"
|
||||
END
|
||||
|
||||
BOOLEAN F_MOV_CONGUAGLIO
|
||||
BEGIN
|
||||
FIELD B4
|
||||
PROMPT 45 16 "Non movimentare conguaglio"
|
||||
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
Loading…
x
Reference in New Issue
Block a user