Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : Stampa cartellini git-svn-id: svn://10.65.10.50/branches/R_10_00@22318 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
cbc1777e20
commit
8d6359c591
@ -252,6 +252,8 @@ public:
|
||||
const char * contr_field_nor() const;
|
||||
const char * field_nor() const;
|
||||
void prec2rec(TRectype & rec) const;
|
||||
static const real pezzixpacco(const char *codart);
|
||||
const real pezzixpacco() const { return pezzixpacco(_codart);}
|
||||
|
||||
virtual void print_on(ostream& out) const;
|
||||
|
||||
@ -267,6 +269,16 @@ const char * TPrecedenza::key_carrello(int num) const
|
||||
return key;
|
||||
}
|
||||
|
||||
const real TPrecedenza::pezzixpacco(const char * codart)
|
||||
{
|
||||
real pppacco = cached_article(codart).get_real(ANAMAG_PPCOLLO);
|
||||
|
||||
if (pppacco == ZERO)
|
||||
pppacco = cached_article(codart).get_real(ANAMAG_PPCONF);
|
||||
|
||||
return pppacco == ZERO ? UNO : pppacco;
|
||||
}
|
||||
|
||||
TPrecedenza::TPrecedenza(const char * codart, int anno, char provv, const char * codnum, long ndoc, int idriga, int nrow, real & qta, real & pacchi, char tipocf, long codcf) :
|
||||
_codart(codart), _anno(anno), _provv(provv), _codnum(codnum), _ndoc(ndoc), _idriga(idriga), _nrow(nrow), _qta(qta), _pacchi(pacchi), _tipocf(tipocf), _codcf(codcf)
|
||||
{
|
||||
@ -394,13 +406,10 @@ real TPrecedenza::get_qta_max() const
|
||||
real TPrecedenza::get_pacchi_max() const
|
||||
{
|
||||
real pacchi = get_qta_max();
|
||||
real pppacco = cached_article(_codart).get(ANAMAG_PPCONF);
|
||||
real pppacco = pezzixpacco();
|
||||
|
||||
if (pppacco > 0)
|
||||
{
|
||||
pacchi /= pppacco;
|
||||
pacchi.floor();
|
||||
}
|
||||
pacchi /= pppacco;
|
||||
pacchi.floor();
|
||||
return pacchi;
|
||||
}
|
||||
|
||||
@ -418,13 +427,10 @@ real TPrecedenza::get_qta_nor() const
|
||||
real TPrecedenza::get_pacchi_nor() const
|
||||
{
|
||||
real pacchi = get_qta_nor();
|
||||
real pppacco = cached_article(_codart).get(ANAMAG_PPCONF);
|
||||
real pppacco = pezzixpacco();
|
||||
|
||||
if (pppacco > 0)
|
||||
{
|
||||
pacchi /= pppacco;
|
||||
pacchi.floor();
|
||||
}
|
||||
pacchi /= pppacco;
|
||||
pacchi.floor();
|
||||
return pacchi;
|
||||
}
|
||||
|
||||
@ -495,11 +501,12 @@ void TCrea_cartellini::crea_precedenze(ofstream & outfile, TArray & precs)
|
||||
const TString codart = row.get(RDOC_CODART);
|
||||
const TString caus = row.get(RDOC_CODAGG1);
|
||||
real pacchi = qta; // se non
|
||||
real pppacco = cached_article(codart).get(ANAMAG_PPCONF);
|
||||
real pppacco = TPrecedenza::pezzixpacco(codart);
|
||||
|
||||
if (pppacco > 0)
|
||||
pacchi /= pppacco;
|
||||
pppacco.floor();
|
||||
pacchi /= pppacco;
|
||||
real intpacchi = pacchi;
|
||||
if (intpacchi.floor() != pacchi)
|
||||
pacchi.ceil();
|
||||
int nrow = row.get_int(RDOC_NRIGA);
|
||||
int idriga = row.get_int(RDOC_IDRIGA);
|
||||
|
||||
@ -678,6 +685,15 @@ void TCrea_cartellini::riempi_normale(TArray & carrelli, TArray & precs, int lev
|
||||
c->destroy_rows();
|
||||
}
|
||||
|
||||
const real pppacco = p.pezzixpacco();
|
||||
real resto = ZERO;
|
||||
|
||||
if (p.pacchi() > UNO && p.qta() != p.pacchi() * pppacco)
|
||||
{
|
||||
p.pacchi() -= UNO;
|
||||
resto = p.qta() - p.pacchi() * pppacco;
|
||||
p.qta() = p.pacchi() * pppacco;
|
||||
}
|
||||
TRectype & rec = c->row(c->rows() + 1, true);
|
||||
|
||||
p.prec2rec(rec);
|
||||
@ -689,6 +705,16 @@ void TCrea_cartellini::riempi_normale(TArray & carrelli, TArray & precs, int lev
|
||||
rec.put(PACKLIST_PERCOCC, pr);
|
||||
p.qta() = ZERO;
|
||||
p.pacchi() = ZERO;
|
||||
if (resto != ZERO)
|
||||
{
|
||||
TRectype & rec = c->row(c->rows() + 1, true);
|
||||
|
||||
p.prec2rec(rec);
|
||||
rec.put(PACKLIST_QTA, resto);
|
||||
rec.put(PACKLIST_CONF, UNO);
|
||||
real pr = CENTO / max_pacchi ; pr.round(2);
|
||||
rec.put(PACKLIST_PERCOCC, pr);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -741,18 +767,26 @@ void TCrea_cartellini::riempi_resti(TArray & carrelli, TArray & precs)
|
||||
carrelli.add(c);
|
||||
}
|
||||
|
||||
if (UNO - c->perc() < perc)
|
||||
const real pppacco = p.pezzixpacco();
|
||||
real resto = ZERO;
|
||||
|
||||
if (UNO - c->perc() < perc)
|
||||
{
|
||||
perc = UNO - c->perc();
|
||||
pacchi = perc * max_pacchi; pacchi.floor();
|
||||
perc = pacchi / max_pacchi;
|
||||
perc.round(4);
|
||||
qta = pacchi;
|
||||
real pppacco = cached_article(p.codart()).get(ANAMAG_PPCONF);
|
||||
|
||||
if (pppacco > 0)
|
||||
qta *= pppacco;
|
||||
qta *= pppacco;
|
||||
}
|
||||
else
|
||||
if (pacchi > UNO && qta != pacchi * pppacco)
|
||||
{
|
||||
pacchi -= UNO;
|
||||
resto = qta - pacchi * pppacco;
|
||||
qta = pacchi * pppacco;
|
||||
}
|
||||
TRectype & rec = c->row(c->rows() + 1, true);
|
||||
|
||||
p.prec2rec(rec);
|
||||
@ -763,6 +797,18 @@ void TCrea_cartellini::riempi_resti(TArray & carrelli, TArray & precs)
|
||||
c->perc() += perc;
|
||||
p.qta() -= qta;
|
||||
p.pacchi() -= pacchi;
|
||||
if (resto != ZERO)
|
||||
{
|
||||
TRectype & rec = c->row(c->rows() + 1, true);
|
||||
|
||||
p.prec2rec(rec);
|
||||
rec.put(PACKLIST_QTA, resto);
|
||||
rec.put(PACKLIST_CONF, UNO);
|
||||
real pr = CENTO / max_pacchi ; pr.round(2);
|
||||
rec.put(PACKLIST_PERCOCC, pr);
|
||||
p.qta() = ZERO;
|
||||
p.pacchi() = ZERO;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -814,7 +860,7 @@ void TCrea_cartellini::stampa()
|
||||
{
|
||||
TString key; key << _doc->get(DOC_TIPOCF) << _doc->get_long(DOC_CODCF);
|
||||
const TString4 tpimballo = cache().get("&LV020", key, TPIMBALLO);
|
||||
TFilename name("pl1048100"); name << tpimballo; name.ext("rep");
|
||||
TFilename name("pl1048100"); name << tpimballo; name.trim(); name.ext("rep");
|
||||
|
||||
if (!name.custom_path())
|
||||
name = "pl1048100";
|
||||
|
Loading…
x
Reference in New Issue
Block a user