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

@ -564,7 +564,7 @@ public:
void forza_sola_descrizione(); void forza_sola_descrizione();
const TToken_string& get_rdoc_key() const; const TToken_string& get_rdoc_key() const;
const TToken_string & get_original_rdoc_key(); const TToken_string& get_original_rdoc_key() const;
void set_original_rdoc_key(const TRectype& orig, int depth = 0); void set_original_rdoc_key(const TRectype& orig, int depth = 0);
void reset_original_rdoc_key(); void reset_original_rdoc_key();
const TRectype* find_original_rdoc() const; 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)); 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); TToken_string & key = get_tmp_string(32);
key.add(get(RDOC_DACODNUM)); key.add(get(RDOC_DACODNUM));
key.add(get(RDOC_DAANNO)); key.add(get(RDOC_DAANNO));
key.add(get(RDOC_DAPROVV)); 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); put(DOC_SPESEUPD, true);
} }
// Calcola il peso in Kg degli imballaggi di una data categoria CONAI
real TDocumento::calc_conai_qta(TCONAI_class type) real TDocumento::calc_conai_qta(TCONAI_class type)
{ {
ofstream conaicaz("conai.txt");
real qta; real qta;
FOR_EACH_PHYSICAL_RDOC(*this, i, r) if (r->is_merce() || r->is_omaggio()) FOR_EACH_PHYSICAL_RDOC(*this, i, r) if (r->is_merce() || r->is_omaggio())
{ {
const real row_qta = r->calc_conai_qta(type); const real row_qta = r->calc_conai_qta(type);
if (!row_qta.is_zero())
{
conaicaz << "Riga(" << i << ")=" << row_qta << endl;
qta += row_qta; qta += row_qta;
} }
}
return qta; return qta;
} }
@ -2840,8 +2847,14 @@ void TDocumento::update_conai()
const real perc_esenz = cfven.get_real(__conai_cf_names[ct]); const real perc_esenz = cfven.get_real(__conai_cf_names[ct]);
const bool cli_esente = (esponi_esenti) && (perc_esenz == CENTO); const bool cli_esente = (esponi_esenti) && (perc_esenz == CENTO);
real qta = calc_conai_qta(ct); 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()) if (!cli_esente && !qta.is_zero() && !perc_esenz.is_zero())
qta = qta * (CENTO - perc_esenz) / CENTO; // More precise qta = qta * (CENTO - perc_esenz) / CENTO; // More precise
conaicaz << "Netto=" << qta << endl;
if (qta > ZERO) if (qta > ZERO)
{ {
const TString& s = conai_sp.row(ct); const TString& s = conai_sp.row(ct);

View File

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