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:
alex 2011-06-23 23:30:39 +00:00
parent cbc1777e20
commit 8d6359c591

View File

@ -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";