Patch level : 10.0 patch 250

Files correlati     : lv3
Ricompilazione Demo : [ ]
Commento            :
Corretta gestione codici dei magazzini del circolante


git-svn-id: svn://10.65.10.50/trunk@18322 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca83 2009-02-23 11:51:11 +00:00
parent 82dc31cfa4
commit 720fea210e

View File

@ -21,8 +21,8 @@
//Definizione della classe della maschera
class TGestione_bolle_msk : public TDocumento_mask
{
long _stcodcf;
long _stcodcont;
long _stcodcf;
long _stcodcont;
protected:
static void arrotonda(const TMask& msk, real& quantita);
@ -291,8 +291,9 @@ inline TGestione_bolle_app& gbapp() { return (TGestione_bolle_app &)main_app();
//ARROTONDA: metodo che arrotonda la quantità che gli passo se è previsto sul contratto
void TGestione_bolle_msk::arrotonda(const TMask& msk, real& quantita)
{
TConfig* configlv = new TConfig(CONFIG_DITTA,"lv");
int perarr = configlv->get_int("Perarr");
TConfig* configlv = new TConfig(CONFIG_DITTA,"lv");
int perarr = configlv->get_int("Perarr");
const TString& codart = msk.get(FR_CODART);
//instanzio una cache sulla tabella del magazzino
@ -688,6 +689,10 @@ bool TGestione_bolle_msk::lv_causale_handler(TMask_field& f, KEY k)
{
if (f.to_check(k, true))
{
TConfig* configlv = new TConfig(CONFIG_DITTA,"lv");
TString4 codmagdef = configlv->get("CODMAG");
TString4 coddepdef = configlv->get("CODMAGC"); //magazzino del circolante
//leggo la causale che ho scritto nella riga corrente dello sheet
TString4 causale = f.get();
@ -698,14 +703,20 @@ bool TGestione_bolle_msk::lv_causale_handler(TMask_field& f, KEY k)
//leggo il codart che ho scritto nella riga corrente delle sheet
const TString& codart = msk.get(FR_CODART);
TDocumento_mask& dmsk = (TDocumento_mask&) msk.get_sheet()->mask();
//srcrivo nel documento la causale
TSheet_field* sheet = msk.get_sheet();
TRiga_documento& rdoc = dmsk.doc()[sheet->selected()+1];
rdoc.put(RDOC_CODAGG1, causale);
TGestione_bolle_msk& dmsk = (TGestione_bolle_msk&) msk.get_sheet()->mask();
TDocumento& doc = dmsk.doc();
TRiga_documento& rdoc = doc[sheet->selected()+1];
TString4 codmag(doc.clifor().vendite().get(CFV_CODMAG));
TString4 coddep(doc.clifor().vendite().get(CFV_CODDEP));
TString4 codmagcoll(codmag);
TString4 coddepcoll(coddep);
//recupero i dati di interesse dalla testata per poter trovare il contratto
rdoc.put(RDOC_CODAGG1, causale);
//recupero i dati di interesse dalla testata per poter trovare il contratto
const long codcf = dmsk.get_long(F_CODCF);
const int indsped = dmsk.get_int(F_CODINDSP);
TDate datadoc = dmsk.get_date(F_DATADOC);
@ -724,11 +735,21 @@ bool TGestione_bolle_msk::lv_causale_handler(TMask_field& f, KEY k)
if (cau.get_bool("B0"))
{
const TCausale_magazzino& rit = cached_causale_magazzino(cau.get("S1"));
if (codmagcoll.blank() && rit.has_default_mag())
{
codmagcoll = rit.default_mag();
coddepcoll = rit.default_dep();
}
sgn_rit = rit.sgn(s_dottm);
}
if (cau.get_bool("B1"))
{
const TCausale_magazzino& con = cached_causale_magazzino(cau.get("S2"));
if (codmag.blank() && con.has_default_mag())
{
codmag = con.default_mag();
coddep = con.default_dep();
}
sgn_con = con.sgn(s_dottm);
}
@ -782,20 +803,38 @@ bool TGestione_bolle_msk::lv_causale_handler(TMask_field& f, KEY k)
//abilito o disabilito azzerandolo il campo "Ritirato" a seconda di cosa prevede la causale
if (cau.get_bool("B0"))
{
msk.field(FR_QTAGG1).enable(true);
if (codmagcoll.blank())
{
codmagcoll = codmagdef;
coddepcoll = coddepdef; //magazzino del circolante
}
msk.field(FR_CODMAGC).set(codmagcoll);
msk.field(FR_CODDEPC).set(coddepcoll);
}
else
{
msk.field(FR_QTAGG1).set((long)0);
msk.field(FR_QTAGG1).set("");
msk.field(FR_QTAGG1).disable();
}
//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())
{
msk.field(FR_QTA).enable(true);
if (codmag.blank())
{
codmag = codmagdef;
coddep = coddepdef;
}
msk.field(FR_CODMAG).set(codmag);
msk.field(FR_CODDEP).set( coddep);
}
else
{
msk.field(FR_QTA).set((long)0);
msk.field(FR_QTA).set("");
msk.field(FR_QTA).disable();
}
}