Patch level : 10.0 patch 413

Files correlati     : lv2 lv3
Ricompilazione Demo : [ ]
Commento            :
7) Quando inserisco un articolo fuori contratto in bolla (sia una bolla manuale che la generazione buoni di consegna da buoni di ritiro) il programma dovrebbe prendere il prezzo nello stesso modo in cui lo prende il programma dei contratti con un articolo nuovo


git-svn-id: svn://10.65.10.50/trunk@19203 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca83 2009-08-11 14:30:18 +00:00
parent 879ef7ba98
commit aeb78aded9

View File

@ -10,6 +10,7 @@
#include "lvrcondv.h"
#include "lvrconsplan.h"
#include "../mg/clifogiac.h"
#include "../ve/rcondv.h"
#define FOR_EACH_DOC_ROW_BACK(d, r, row) const TRiga_documento* row = NULL; for (int r = d.rows(); r > 0 && (row = &d[r]) != NULL; r--)
@ -668,6 +669,7 @@ bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k)
rdoc.put(RDOC_SCONTO, sconto);
//controllo da dove devo prendere il prezzo
real prezzo;
if (tplis == 0)
prezzo = rcont.get(LVRCONDV_PREZZO).as_real();
else
@ -871,6 +873,64 @@ bool TGestione_bolle_msk::lv_codart_handler(TMask_field& f, KEY k)
}
}
if (rcont.empty())
{
real prezzo;
//PROPONI PREZZO
TToken_string key;
key.add('C');
key.add(codcf);
const TRectype& cfven = cache().get(LF_CFVEN, key);
bool trvlst = false;
if (!cfven.empty())
{
//se è settata la categoria merceologica, leggo sia il listino che la cat merc, altrimenti solo il listino
TString8 codlis = cfven.get(CFV_CODLIST);
TString8 catven;
TConfig* configve = new TConfig(CONFIG_DITTA,"ve");
const char gesliscv = configve->get_char("GESLISCV");
if (gesliscv != 'X')
catven = "";
else
catven = cfven.get(CFV_CATVEN);
//cerco il prezzo sul listino
key.cut(0);
key.add('L'); //tipo
key.add(catven); //catven
key.add(""); //tipocf
key.add(""); //codcf
key.add(codlis); //codlis
key.add('A'); //tiporiga
key.add(codart); //codriga
key.add(""); //um
key.add(""); //nscagl
const TRectype& rcondv = cache().get(LF_RCONDV, key);
if (!rcondv.empty())
{
prezzo = rcondv.get_real(RCONDV_PREZZO);
trvlst = true;
}
}
//se non ho trovato un listino, o se non c'è un listino impostato
//propongo come prezzo il valore convenzionale
if (!trvlst)
{
key.cut(0);
key.add(codart);
key.add(1);
const TRectype& umart = cache().get(LF_UMART, key);
prezzo = umart.get_real(UMART_PREZZO);
if (umart.get(UMART_PREZZO).full())
trvlst = true;
}
rdoc.put(RDOC_PREZZO, prezzo);
}
//controllo se si vuole aggiungere un eventuale nuovo articolo al contratto
if (cont.get_int(LVCONDV_CODCONT) <= 0)
warning_box(TR("ATTENZIONE: stai generando una bolla per un clinete che non ha nessun contratto in essere"));