Suppporto statistiche di vendita
git-svn-id: svn://10.65.10.50/trunk@5290 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
eb223fa499
commit
3a358709f1
@ -450,7 +450,7 @@ public:
|
|||||||
TRiepilogo_iva() : _tipo(0) {}
|
TRiepilogo_iva() : _tipo(0) {}
|
||||||
~TRiepilogo_iva() {};
|
~TRiepilogo_iva() {};
|
||||||
};
|
};
|
||||||
|
|
||||||
class TDocumento : public TMultiple_rectype // velib03
|
class TDocumento : public TMultiple_rectype // velib03
|
||||||
{
|
{
|
||||||
TRecfield *_tipocf;
|
TRecfield *_tipocf;
|
||||||
@ -462,7 +462,9 @@ class TDocumento : public TMultiple_rectype // velib03
|
|||||||
static TString16 _codiva_spese;
|
static TString16 _codiva_spese;
|
||||||
static TString16 _codiva_bolli;
|
static TString16 _codiva_bolli;
|
||||||
char _stato_originale;
|
char _stato_originale;
|
||||||
|
static bool _has_mag;
|
||||||
|
static bool _has_stat_ven;
|
||||||
|
static bool _has_provv;
|
||||||
int _liv_len[4];
|
int _liv_len[4];
|
||||||
|
|
||||||
// TRecord_array _rows; // Array di TRectype per le righe documenti di vendita.
|
// TRecord_array _rows; // Array di TRectype per le righe documenti di vendita.
|
||||||
@ -495,6 +497,7 @@ protected:
|
|||||||
static void test_firm();
|
static void test_firm();
|
||||||
const TString16 & codiva_spese() const { ((TDocumento *)this)->test_firm(); return _codiva_spese;}
|
const TString16 & codiva_spese() const { ((TDocumento *)this)->test_firm(); return _codiva_spese;}
|
||||||
const TString16 & codiva_bolli() const { ((TDocumento *)this)->test_firm(); return _codiva_bolli;}
|
const TString16 & codiva_bolli() const { ((TDocumento *)this)->test_firm(); return _codiva_bolli;}
|
||||||
|
void check_modules();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void dirty_fields();
|
void dirty_fields();
|
||||||
|
@ -38,6 +38,10 @@
|
|||||||
#include <modaut.h>
|
#include <modaut.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef __SVLIB01_H
|
||||||
|
#include "../sv/svlib01.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "../mg/movmag.h"
|
#include "../mg/movmag.h"
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// Movimento di magazzino
|
// Movimento di magazzino
|
||||||
@ -230,6 +234,11 @@ TAssoc_array TDocumento::_tipi;
|
|||||||
TAssoc_array TDocumento::_numerazioni;
|
TAssoc_array TDocumento::_numerazioni;
|
||||||
TString16 TDocumento::_codiva_spese;
|
TString16 TDocumento::_codiva_spese;
|
||||||
TString16 TDocumento::_codiva_bolli;
|
TString16 TDocumento::_codiva_bolli;
|
||||||
|
HIDDEN TStats_agg _st_agg;
|
||||||
|
HIDDEN TAssoc_array _docs_to_agg;
|
||||||
|
bool TDocumento::_has_mag = 3;
|
||||||
|
bool TDocumento::_has_stat_ven = 3;
|
||||||
|
bool TDocumento::_has_provv = 3;
|
||||||
|
|
||||||
TDocumento::TDocumento()
|
TDocumento::TDocumento()
|
||||||
: TMultiple_rectype(LF_DOC), _condv(NULL),
|
: TMultiple_rectype(LF_DOC), _condv(NULL),
|
||||||
@ -241,8 +250,9 @@ TDocumento::TDocumento()
|
|||||||
_cod_occas = new TRecfield(*this, "OCFPI");
|
_cod_occas = new TRecfield(*this, "OCFPI");
|
||||||
set_memo_fld("G1");
|
set_memo_fld("G1");
|
||||||
for (int i = 3 ; i >= 0; i--)
|
for (int i = 3 ; i >= 0; i--)
|
||||||
_liv_len[i] = 0;
|
_liv_len[i] = 0;
|
||||||
}
|
check_modules();
|
||||||
|
}
|
||||||
|
|
||||||
TDocumento::TDocumento(const TDocumento & d)
|
TDocumento::TDocumento(const TDocumento & d)
|
||||||
: TMultiple_rectype(LF_DOC), _condv(NULL),
|
: TMultiple_rectype(LF_DOC), _condv(NULL),
|
||||||
@ -250,6 +260,7 @@ TDocumento::TDocumento(const TDocumento & d)
|
|||||||
{
|
{
|
||||||
add_file(LF_RIGHEDOC, "NRIGA");
|
add_file(LF_RIGHEDOC, "NRIGA");
|
||||||
copy(d);
|
copy(d);
|
||||||
|
check_modules();
|
||||||
}
|
}
|
||||||
|
|
||||||
TDocumento::TDocumento(char provv, int anno, const char* codnum, long numdoc,
|
TDocumento::TDocumento(char provv, int anno, const char* codnum, long numdoc,
|
||||||
@ -262,6 +273,7 @@ TDocumento::TDocumento(char provv, int anno, const char* codnum, long numdoc,
|
|||||||
_codcf = new TRecfield(*this, "CODCF");
|
_codcf = new TRecfield(*this, "CODCF");
|
||||||
_cod_occas = new TRecfield(*this, "OCFPI");
|
_cod_occas = new TRecfield(*this, "OCFPI");
|
||||||
set_memo_fld("G1");
|
set_memo_fld("G1");
|
||||||
|
check_modules();
|
||||||
if (numdoc <= 0)
|
if (numdoc <= 0)
|
||||||
{
|
{
|
||||||
numdoc = 0;
|
numdoc = 0;
|
||||||
@ -285,6 +297,7 @@ TDocumento::TDocumento(const TRectype& rec, TCond_vendita * condv)
|
|||||||
read(rec);
|
read(rec);
|
||||||
for (int i = 3 ; i >= 0; i--)
|
for (int i = 3 ; i >= 0; i--)
|
||||||
_liv_len[i] = 0;
|
_liv_len[i] = 0;
|
||||||
|
check_modules();
|
||||||
}
|
}
|
||||||
|
|
||||||
TDocumento::~TDocumento()
|
TDocumento::~TDocumento()
|
||||||
@ -297,6 +310,16 @@ TDocumento::~TDocumento()
|
|||||||
if (_esenzione != NULL) delete _esenzione;
|
if (_esenzione != NULL) delete _esenzione;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TDocumento::check_modules()
|
||||||
|
{
|
||||||
|
if (_has_mag == 3)
|
||||||
|
{
|
||||||
|
_has_mag = main_app().has_module(MGAUT, CHK_DONGLE);
|
||||||
|
_has_stat_ven = main_app().has_module(SVAUT, CHK_DONGLE);
|
||||||
|
_has_provv = main_app().has_module(PRAUT, CHK_DONGLE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void TDocumento::test_firm()
|
void TDocumento::test_firm()
|
||||||
{
|
{
|
||||||
const long new_firm = prefix().get_codditta();
|
const long new_firm = prefix().get_codditta();
|
||||||
@ -583,6 +606,27 @@ int TDocumento::read(TBaseisamfile& f, word op, word lockop)
|
|||||||
if (is_fattura())
|
if (is_fattura())
|
||||||
set_riga_esenzione();
|
set_riga_esenzione();
|
||||||
_stato_originale = stato();
|
_stato_originale = stato();
|
||||||
|
if (tipo().statistiche() && _has_stat_ven)
|
||||||
|
{
|
||||||
|
TString80 key(get(DOC_PROVV)); key << get(DOC_ANNO); key << get(DOC_CODNUM); key << get(DOC_NDOC);
|
||||||
|
TObject * o = _docs_to_agg.objptr(key);
|
||||||
|
|
||||||
|
if ( lockop >= _lock && o == NULL)
|
||||||
|
{
|
||||||
|
_docs_to_agg.add(key, key);
|
||||||
|
for (int i = physical_rows(); i > 0; i--)
|
||||||
|
_st_agg.sub(row(i));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if (lockop == _unlock && o != NULL)
|
||||||
|
{
|
||||||
|
_docs_to_agg.remove(key);
|
||||||
|
for (int i = physical_rows(); i > 0; i--)
|
||||||
|
_st_agg.add(row(i));
|
||||||
|
}
|
||||||
|
if (_docs_to_agg.items() == 0)
|
||||||
|
_st_agg.update();
|
||||||
|
}
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -890,7 +934,19 @@ int TDocumento::write_rewrite(TBaseisamfile & f, bool re) const
|
|||||||
if (err == _isreinsert)
|
if (err == _isreinsert)
|
||||||
err = occ.rewrite(o);
|
err = occ.rewrite(o);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (tipo().statistiche() && _has_stat_ven)
|
||||||
|
{
|
||||||
|
TString80 key(get(DOC_PROVV)); key << get(DOC_ANNO); key << get(DOC_CODNUM); key << get(DOC_NDOC);
|
||||||
|
TObject * o = _docs_to_agg.objptr(key);
|
||||||
|
|
||||||
|
if (o != NULL)
|
||||||
|
_docs_to_agg.remove(key);
|
||||||
|
for (int i = physical_rows(); i > 0; i--)
|
||||||
|
_st_agg.add(myself.row(i));
|
||||||
|
if (_docs_to_agg.items() == 0)
|
||||||
|
_st_agg.update();
|
||||||
|
}
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
// eliminare anche il mov di mag. ??????
|
// eliminare anche il mov di mag. ??????
|
||||||
@ -914,7 +970,17 @@ int TDocumento::remove(TBaseisamfile& f) const
|
|||||||
mov.remove(m);
|
mov.remove(m);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return TMultiple_rectype::remove(f);
|
if (tipo().statistiche() && _has_stat_ven)
|
||||||
|
{
|
||||||
|
TString80 key(get(DOC_PROVV)); key << get(DOC_ANNO); key << get(DOC_CODNUM); key << get(DOC_NDOC);
|
||||||
|
TObject * o = _docs_to_agg.objptr(key);
|
||||||
|
|
||||||
|
if (o != NULL)
|
||||||
|
_docs_to_agg.remove(key);
|
||||||
|
if (_docs_to_agg.items() == 0)
|
||||||
|
_st_agg.update();
|
||||||
|
}
|
||||||
|
return TMultiple_rectype::remove(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TDocumento::in_valuta() const
|
bool TDocumento::in_valuta() const
|
||||||
|
Loading…
x
Reference in New Issue
Block a user