Patch level : 2.0 564

Files correlati     : sv2.exe sv2100a.msk
Ricompilazione Demo : [ ]
Commento            :

GF20071
La statistica per articoli omaggio non funziona ne se la configurazione
dice RAGGRUPPA OMAGGI CON MERCE e neanche nel caso contrario


git-svn-id: svn://10.65.10.50/trunk@11415 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2003-09-12 14:31:37 +00:00
parent 847a4bb9c5
commit dcacf87142
3 changed files with 50 additions and 7 deletions

View File

@ -11,6 +11,10 @@
class TRicalcolo_stats : public TSkeleton_application
{
TStats_agg _agg;
static TDate _datamin;
protected:
void calcola_data_minima();
protected:
virtual void main_loop();
@ -23,6 +27,8 @@ public:
void calc_stats(const TDate& dfr, const TDate& dto);
};
TDate TRicalcolo_stats::_datamin;
bool TRicalcolo_stats::create()
{
open_files(LF_TABCOM, 0); // File comuni
@ -74,6 +80,40 @@ bool TRicalcolo_stats::kill_stats(const TDate& dfr, const TDate& dto)
return TRUE;
}
void TRicalcolo_stats::calcola_data_minima()
{
TWait_cursor hourglass;
TAssoc_array tipi_doc;
TRelation rel_tip("%TIP");
TCursor cur_tip(&rel_tip);
const TRecnotype items_tip = cur_tip.items();
cur_tip.freeze();
for (cur_tip = 0L; cur_tip.pos() < items_tip; ++cur_tip)
{
const TRectype& rec_tip = rel_tip.curr();
if (rec_tip.get_bool("B2")) // E' un tipo per le statistiche
tipi_doc.add(rec_tip.get("CODTAB"), NULL);
}
TRelation rel_doc(LF_DOC);
TCursor cur_doc(&rel_doc, "", 3);
const TRectype& rec_doc = rel_doc.curr();
const TRecnotype items_doc = cur_doc.items();
cur_doc.freeze();
for (cur_doc = 0L; cur_doc.pos() < items_doc; ++cur_doc)
{
const TString& tipodoc = rec_doc.get(DOC_TIPODOC);
if (tipi_doc.is_key(tipodoc))
{
_datamin = rec_doc.get(DOC_DATADOC);
_datamin.set_day(1);
break;
}
}
}
void TRicalcolo_stats::calc_stats(const TDate& dfr, const TDate& dto)
{
@ -94,7 +134,7 @@ void TRicalcolo_stats::calc_stats(const TDate& dfr, const TDate& dto)
const long items = cur.items();
cur.freeze();
TProgind pi(items, "Ricalcolo statistiche", FALSE, TRUE);
TProgind pi(items, TR("Ricalcolo statistiche"), FALSE, TRUE);
TDocumento* curr = new TDocumento;
cur.file().set_curr(curr);
@ -134,19 +174,21 @@ bool TRicalcolo_stats::datein_handler(TMask_field& f, KEY k)
{
if (f.to_check(k))
{
TConfig prassid(CONFIG_DITTA, "Euro");
TDate adozione = prassid.get("DataAdozione");
TDate inizio(f.get());
if (adozione.ok() && inizio < adozione)
return f.error_box("Impossibile effettuare la ricostruzione statistiche \n a una data inferiore alla data adozione Euro") ;
const TDate inizio = f.get();
if (inizio < _datamin)
return f.error_box(FR("Impossibile effettuare la ricostruzione statistiche\nad una data antecedente il %s"), _datamin.string());
}
return TRUE;
}
void TRicalcolo_stats::main_loop()
{
calcola_data_minima();
TMask m("sv2100a");
m.set_handler(F_FROMDATE, datein_handler);
m.set(F_FROMDATE, _datamin);
while (m.run() == K_ENTER)
{
const TDate dfr(m.get(F_FROMDATE));

View File

@ -5,6 +5,7 @@ PAGE "Ricalcolo statistiche" -1 -1 30 6
DATE F_FROMDATE
BEGIN
PROMPT 1 1 "Dalla data "
CHECKTYPE REQUIRED
END
DATE F_TODATE

View File

@ -506,7 +506,7 @@ bool TStats_agg::algebric_sum(const TRiga_documento& rdoc, int sign)
if (_valfield.empty())
{
if (_omaggi_valore && rdoc.is_omaggio())
val_riga = rdoc.imponibile_omaggio();
val_riga = rdoc.imponibile_omaggio(2); // Considera il valore indipendentemente dall'addebito IVA
else
val_riga = rdoc.imponibile();
}