Patch level : 10.0

Files correlati     : ve0
Ricompilazione Demo : [ ]
Commento            :
Rivisto calcolo peso CONAI con esenzione


git-svn-id: svn://10.65.10.50/trunk@19917 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2010-01-13 15:59:05 +00:00
parent 72118456d3
commit 6fce3bbff9
4 changed files with 35 additions and 25 deletions

View File

@ -563,8 +563,8 @@ public:
bool sola_descrizione() const;
void forza_sola_descrizione();
const TToken_string & get_rdoc_key() const ;
const TToken_string & get_original_rdoc_key();
const TToken_string& get_rdoc_key() const;
const TToken_string& get_original_rdoc_key() const;
void set_original_rdoc_key(const TRectype& orig, int depth = 0);
void reset_original_rdoc_key();
const TRectype* find_original_rdoc() const;

View File

@ -1372,10 +1372,9 @@ TArticolo_giacenza & TRiga_documento::articolo_giacenza() const
return cached_article_balances(get(RDOC_CODARTMAG));
}
const TToken_string & TRiga_documento::get_original_rdoc_key()
const TToken_string & TRiga_documento::get_original_rdoc_key() const
{
TToken_string & key = get_tmp_string(32);
key.add(get(RDOC_DACODNUM));
key.add(get(RDOC_DAANNO));
key.add(get(RDOC_DAPROVV));

View File

@ -2757,14 +2757,21 @@ void TDocumento::update_spese_aut(TString_array & spese_aut, bool preserve_old,
put(DOC_SPESEUPD, true);
}
// Calcola il peso in Kg degli imballaggi di una data categoria CONAI
real TDocumento::calc_conai_qta(TCONAI_class type)
{
ofstream conaicaz("conai.txt");
real qta;
FOR_EACH_PHYSICAL_RDOC(*this, i, r) if (r->is_merce() || r->is_omaggio())
{
const real row_qta = r->calc_conai_qta(type);
if (!row_qta.is_zero())
{
conaicaz << "Riga(" << i << ")=" << row_qta << endl;
qta += row_qta;
}
}
return qta;
}
@ -2840,8 +2847,14 @@ void TDocumento::update_conai()
const real perc_esenz = cfven.get_real(__conai_cf_names[ct]);
const bool cli_esente = (esponi_esenti) && (perc_esenz == CENTO);
real qta = calc_conai_qta(ct);
ofstream conaicaz("conai.txt", ios::app);
conaicaz << "Lordo=" << qta << endl;
conaicaz << "Esenzione=" << perc_esenz << endl;
if (!cli_esente && !qta.is_zero() && !perc_esenz.is_zero())
qta = qta * (CENTO - perc_esenz) / CENTO; // More precise
conaicaz << "Netto=" << qta << endl;
if (qta > ZERO)
{
const TString& s = conai_sp.row(ct);

View File

@ -1,4 +1,4 @@
#include <tabutil.h>
#include <recset.h>
#include <utility.h>
#include "velib.h"
@ -186,8 +186,8 @@ const TString_array& TTipo_documento::keys_descrs() const
{
if (_keys_descrs.empty())
{
TFilename pn; profile_name(pn);
TConfig prof(pn, "RIGHE");
TFilename name; profile_name(name);
TConfig prof(name, "RIGHE");
TTipo_riga_documento tr;
TToken_string k, d;
@ -196,27 +196,26 @@ const TString_array& TTipo_documento::keys_descrs() const
const TString& tiporiga = prof.get("Tipo", NULL, i);
if (tiporiga.full())
{
tr.read(tiporiga);
if (tr.read(tiporiga) == NOERR)
{
k.add(tr.codice());
d.add(tr.descrizione());
}
}
else
break; //esce da un eventuale ciclo infinito
}
if (k.blank())
{
TTable tri("%TRI");
TFilename name;
for (int err = tri.first(); err == NOERR; err = tri.next())
TISAM_recordset tri("USE %TRI");
for (bool ok = tri.move_first(); ok; ok = tri.move_next())
{
name.format("verig%s.msk", (const char *) tri.get("CODTAB"));
name.custom_path();
if (fexist(name))
name.format("verig%s.msk", (const char*)tri.get("CODTAB").as_string());
if (name.custom_path())
{
k.add(tri.get("CODTAB"));
d.add(tri.get("S0"));
k.add(tri.get("CODTAB").as_string());
d.add(tri.get("S0").as_string());
}
}
}
@ -232,8 +231,7 @@ const TString_array& TTipo_documento::sheet_columns() const
{
if (_sheet_columns.empty())
{
TFilename pn;
profile_name(pn);
TFilename pn; profile_name(pn);
TConfig prof(pn, "SHEET");
for (int i = 0; i < MAX_COLUMNS; i++)
{