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:
parent
847a4bb9c5
commit
dcacf87142
@ -11,6 +11,10 @@
|
|||||||
class TRicalcolo_stats : public TSkeleton_application
|
class TRicalcolo_stats : public TSkeleton_application
|
||||||
{
|
{
|
||||||
TStats_agg _agg;
|
TStats_agg _agg;
|
||||||
|
static TDate _datamin;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void calcola_data_minima();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void main_loop();
|
virtual void main_loop();
|
||||||
@ -23,6 +27,8 @@ public:
|
|||||||
void calc_stats(const TDate& dfr, const TDate& dto);
|
void calc_stats(const TDate& dfr, const TDate& dto);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
TDate TRicalcolo_stats::_datamin;
|
||||||
|
|
||||||
bool TRicalcolo_stats::create()
|
bool TRicalcolo_stats::create()
|
||||||
{
|
{
|
||||||
open_files(LF_TABCOM, 0); // File comuni
|
open_files(LF_TABCOM, 0); // File comuni
|
||||||
@ -74,6 +80,40 @@ bool TRicalcolo_stats::kill_stats(const TDate& dfr, const TDate& dto)
|
|||||||
return TRUE;
|
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)
|
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();
|
const long items = cur.items();
|
||||||
cur.freeze();
|
cur.freeze();
|
||||||
|
|
||||||
TProgind pi(items, "Ricalcolo statistiche", FALSE, TRUE);
|
TProgind pi(items, TR("Ricalcolo statistiche"), FALSE, TRUE);
|
||||||
|
|
||||||
TDocumento* curr = new TDocumento;
|
TDocumento* curr = new TDocumento;
|
||||||
cur.file().set_curr(curr);
|
cur.file().set_curr(curr);
|
||||||
@ -134,19 +174,21 @@ bool TRicalcolo_stats::datein_handler(TMask_field& f, KEY k)
|
|||||||
{
|
{
|
||||||
if (f.to_check(k))
|
if (f.to_check(k))
|
||||||
{
|
{
|
||||||
TConfig prassid(CONFIG_DITTA, "Euro");
|
const TDate inizio = f.get();
|
||||||
TDate adozione = prassid.get("DataAdozione");
|
if (inizio < _datamin)
|
||||||
TDate inizio(f.get());
|
return f.error_box(FR("Impossibile effettuare la ricostruzione statistiche\nad una data antecedente il %s"), _datamin.string());
|
||||||
if (adozione.ok() && inizio < adozione)
|
|
||||||
return f.error_box("Impossibile effettuare la ricostruzione statistiche \n a una data inferiore alla data adozione Euro") ;
|
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TRicalcolo_stats::main_loop()
|
void TRicalcolo_stats::main_loop()
|
||||||
{
|
{
|
||||||
|
calcola_data_minima();
|
||||||
|
|
||||||
TMask m("sv2100a");
|
TMask m("sv2100a");
|
||||||
m.set_handler(F_FROMDATE, datein_handler);
|
m.set_handler(F_FROMDATE, datein_handler);
|
||||||
|
m.set(F_FROMDATE, _datamin);
|
||||||
|
|
||||||
while (m.run() == K_ENTER)
|
while (m.run() == K_ENTER)
|
||||||
{
|
{
|
||||||
const TDate dfr(m.get(F_FROMDATE));
|
const TDate dfr(m.get(F_FROMDATE));
|
||||||
|
@ -5,6 +5,7 @@ PAGE "Ricalcolo statistiche" -1 -1 30 6
|
|||||||
DATE F_FROMDATE
|
DATE F_FROMDATE
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "Dalla data "
|
PROMPT 1 1 "Dalla data "
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
END
|
END
|
||||||
|
|
||||||
DATE F_TODATE
|
DATE F_TODATE
|
||||||
|
@ -506,7 +506,7 @@ bool TStats_agg::algebric_sum(const TRiga_documento& rdoc, int sign)
|
|||||||
if (_valfield.empty())
|
if (_valfield.empty())
|
||||||
{
|
{
|
||||||
if (_omaggi_valore && rdoc.is_omaggio())
|
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
|
else
|
||||||
val_riga = rdoc.imponibile();
|
val_riga = rdoc.imponibile();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user