Patch level : 4.0 649
Ricompilazione Demo : [ ] Commento : Riportata la versione 3.1 patch 848 git-svn-id: svn://10.65.10.50/trunk@14992 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
4fe5bd2d5b
commit
e9c990f6f4
127
ab/ab0400.cpp
127
ab/ab0400.cpp
@ -99,14 +99,14 @@ class TRiga_calcolo : public TObject
|
||||
real _saldo_iniziale;
|
||||
real _prog_dare;
|
||||
real _prog_avere;
|
||||
real _prog_dare_mese[12];
|
||||
real _prog_avere_mese[12];
|
||||
|
||||
virtual TObject* dup() const { return new TRiga_calcolo(*this);}
|
||||
|
||||
public:
|
||||
void set_conto(int g, int c, long s, int i) { _gruppo = g; _conto = c; _sottoconto = s; _indbil = i;}
|
||||
void set_saldi(const real & si, const real & pd, const real & pa) { _saldo_iniziale = si;
|
||||
_prog_dare = pd;
|
||||
_prog_avere = pa;}
|
||||
void set_saldi(const TSaldo & sal);
|
||||
const int gruppo() const { return _gruppo;}
|
||||
const int conto() const { return _conto;}
|
||||
const long sottoconto() const { return _sottoconto;}
|
||||
@ -114,6 +114,8 @@ public:
|
||||
real saldo_iniziale() const { return _saldo_iniziale;}
|
||||
real prog_dare() const { return _prog_dare;}
|
||||
real prog_avere() const { return _prog_avere;}
|
||||
real prog_dare(int month) const { return _prog_dare_mese[month - 1];}
|
||||
real prog_avere(int month) const { return _prog_avere_mese[month - 1];}
|
||||
real saldo() const { return _saldo_iniziale + _prog_dare - _prog_avere;}
|
||||
bool sezione_opposta() const;
|
||||
const bool is_zero() const { return _saldo_iniziale == ZERO && _prog_dare == ZERO && _prog_avere == ZERO;}
|
||||
@ -124,6 +126,19 @@ public:
|
||||
virtual ~TRiga_calcolo() {}
|
||||
};
|
||||
|
||||
void TRiga_calcolo::set_saldi(const TSaldo & sal)
|
||||
|
||||
{
|
||||
_saldo_iniziale = sal.saldoini();
|
||||
_prog_dare = sal.prgdare();
|
||||
_prog_avere = sal.prgavere();
|
||||
for (int i = 0 ; i < 12; i++)
|
||||
{
|
||||
_prog_dare_mese[i] = sal.prgdare(i + 1);
|
||||
_prog_avere_mese[i] = sal.prgavere(i + 1);
|
||||
}
|
||||
}
|
||||
|
||||
bool TRiga_calcolo::sezione_opposta() const
|
||||
{
|
||||
bool reverse = FALSE;
|
||||
@ -151,6 +166,12 @@ TRiga_calcolo & TRiga_calcolo::copy(const TRiga_calcolo & c)
|
||||
_saldo_iniziale = c._saldo_iniziale;
|
||||
_prog_dare = c._prog_dare;
|
||||
_prog_avere = c._prog_avere;
|
||||
|
||||
for (int i = 0; i < 12; i++)
|
||||
{
|
||||
_prog_dare_mese[i] += c._prog_dare_mese[i];
|
||||
_prog_avere_mese[i] += c._prog_avere_mese[i];
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
@ -167,6 +188,8 @@ class TRiga_output : public TObject
|
||||
real _saldo_iniziale;
|
||||
real _prog_dare;
|
||||
real _prog_avere;
|
||||
real _prog_dare_mese[12];
|
||||
real _prog_avere_mese[12];
|
||||
|
||||
virtual TObject* dup() const { return new TRiga_output(*this);}
|
||||
|
||||
@ -176,6 +199,8 @@ public:
|
||||
real saldo_iniziale() const { return _saldo_iniziale;}
|
||||
real prog_dare() const { return _prog_dare;}
|
||||
real prog_avere() const { return _prog_avere;}
|
||||
real prog_dare(int month) const { return _prog_dare_mese[month - 1];}
|
||||
real prog_avere(int month) const { return _prog_avere_mese[month - 1];}
|
||||
real saldo() const { return _saldo_iniziale + _prog_dare - _prog_avere;}
|
||||
char sezione_saldo() const { return saldo() > 0 ? 'D' : 'A';}
|
||||
TRiga_output& copy(const TRiga_output& o);
|
||||
@ -190,6 +215,12 @@ TRiga_output & TRiga_output::operator += (const TRiga_calcolo & c)
|
||||
_saldo_iniziale += c.saldo_iniziale();
|
||||
_prog_dare += c.prog_dare();
|
||||
_prog_avere += c.prog_avere();
|
||||
|
||||
for (int i = 0; i < 12; i++)
|
||||
{
|
||||
_prog_dare_mese[i] = c.prog_dare(i + 1);
|
||||
_prog_avere_mese[i] = c.prog_avere(i + 1);
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
@ -201,6 +232,12 @@ TRiga_output & TRiga_output::copy(const TRiga_output & o)
|
||||
_prog_dare = o._prog_dare;
|
||||
_prog_avere = o._prog_avere;
|
||||
|
||||
for (int i = 0; i < 12; i++)
|
||||
{
|
||||
_prog_dare_mese[i] = o._prog_dare_mese[i];
|
||||
_prog_avere_mese[i] = o._prog_avere_mese[i];
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
@ -220,6 +257,7 @@ class TRicl_saldi : public TSkeleton_application
|
||||
TDate _dal;
|
||||
TDate _al;
|
||||
bool _all_recs;
|
||||
bool _months;
|
||||
bool _provv;
|
||||
TString _codpdb;
|
||||
TString _codcms;
|
||||
@ -250,6 +288,7 @@ public:
|
||||
void output();
|
||||
virtual void main_loop();
|
||||
TFile_type open_output();
|
||||
void output_header(const bool is_commessa);
|
||||
void output_line(TFile_type t, const char * key, TRiga_output & r, const bool is_commessa, TString & codcms);
|
||||
void close_output(TFile_type t);
|
||||
|
||||
@ -281,7 +320,7 @@ void TRicl_saldi::close_log()
|
||||
bool TRicl_saldi::create()
|
||||
{
|
||||
|
||||
open_files(LF_TAB, LF_TABCOM, LF_ABPCON, LF_ABSALDI, LF_SALDI, LF_RMOV, LF_MOV,
|
||||
open_files(LF_TAB, LF_TABCOM, LF_ABPCON, LF_ABSALDI, LF_SALDI, LF_RMOV, LF_MOV,
|
||||
LF_PCON, 0);
|
||||
_mask = new TRicl_mask();
|
||||
|
||||
@ -314,7 +353,8 @@ void TRicl_saldi::mask2parms(const TMask & m)
|
||||
if (_codes == 0)
|
||||
_codes = es.date2esc(_al);
|
||||
}
|
||||
_all_recs = m.get_bool(F_STRUCT);
|
||||
_all_recs = m.get_bool(F_STRUCT);
|
||||
_months = m.get_bool(F_MONTH);
|
||||
_provv = m.get_bool(F_PROVV);
|
||||
_codcms = m.get(F_COMM);
|
||||
_output_file = m.get(F_OUTPUT);
|
||||
@ -350,6 +390,8 @@ void TRicl_saldi::mask2parms(const TMask & m)
|
||||
write_log(line);
|
||||
line = TR("Intera struttura: "); line << (_all_recs ? "Si" : "No");
|
||||
write_log(line);
|
||||
line = TR("Suddiviso in mesi:"); line << (_months ? "Si" : "No");
|
||||
write_log(line);
|
||||
line = TR("Commessa : "); line << _codcms;
|
||||
write_log(line);
|
||||
line = TR("Output : "); line << ((const char *) _output_file);
|
||||
@ -378,7 +420,8 @@ void TRicl_saldi::ini2parms(const char * filename)
|
||||
if (_codes == 0)
|
||||
_codes = es.date2esc(_al);
|
||||
}
|
||||
_all_recs = c.get_bool("Struttura");
|
||||
_all_recs = c.get_bool("Struttura");
|
||||
_months = c.get_bool("Mesi");
|
||||
_provv = c.get_bool("Provvisori");
|
||||
_codcms = c.get("Commessa");
|
||||
_output_file = c.get("Output");
|
||||
@ -414,6 +457,8 @@ void TRicl_saldi::ini2parms(const char * filename)
|
||||
write_log(line);
|
||||
line = TR("Intera struttura: "); line << (_all_recs ? "Si" : "No");
|
||||
write_log(line);
|
||||
line = TR("Suddiviso in mesi:"); line << (_months ? "Si" : "No");
|
||||
write_log(line);
|
||||
line = TR("Commessa : "); line << _codcms;
|
||||
write_log(line);
|
||||
line = TR("Output : "); line << ((const char *) _output_file);
|
||||
@ -421,6 +466,7 @@ void TRicl_saldi::ini2parms(const char * filename)
|
||||
write_log("");
|
||||
#endif
|
||||
}
|
||||
|
||||
void TRicl_saldi::calculate_clifo(const char tipo, const int gruppo, const int conto, const int indbil, const bool saldi_attuali, const TString & codcom)
|
||||
{
|
||||
TRelation relcf(LF_CLIFO);
|
||||
@ -446,7 +492,7 @@ void TRicl_saldi::calculate_clifo(const char tipo, const int gruppo, const int c
|
||||
else
|
||||
sal.saldo_periodo(gruppo, conto, sottoconto, _dal, _al, indbil, _provv);
|
||||
r.set_conto(gruppo, conto, sottoconto, indbil);
|
||||
r.set_saldi(sal.saldoini(), sal.prgdare(), sal.prgavere());
|
||||
r.set_saldi(sal);
|
||||
#ifdef DBG
|
||||
TString line ;
|
||||
line.format(FR("Conto %03d.%03d.%06ld - "), gruppo, conto, sottoconto);
|
||||
@ -473,7 +519,7 @@ void TRicl_saldi::calculate()
|
||||
TEsercizi_contabili es;
|
||||
const TEsercizio & e = es.esercizio(_codes);
|
||||
const bool is_commessa = _codcms.not_empty();
|
||||
const bool saldi_attuali = (!is_commessa) && ((!_dal.ok() && !_al.ok()) || (_dal == e.inizio() && _al == e.fine()));
|
||||
const bool saldi_attuali = (!is_commessa) && (!_months) && ((!_dal.ok() && !_al.ok()) || (_dal == e.inizio() && _al == e.fine()));
|
||||
const TRecnotype items = cur.items();
|
||||
|
||||
cur.freeze();
|
||||
@ -500,7 +546,7 @@ void TRicl_saldi::calculate()
|
||||
else
|
||||
sal.saldo_periodo(gruppo, conto, sottoconto, _dal, _al, indbil, _provv);
|
||||
r.set_conto(gruppo, conto, sottoconto, indbil);
|
||||
r.set_saldi(sal.saldoini(), sal.prgdare(), sal.prgavere());
|
||||
r.set_saldi(sal);
|
||||
#ifdef DBG
|
||||
TString line ;
|
||||
line.format(FR("Conto %03d.%03d.%06ld - "), gruppo, conto, sottoconto);
|
||||
@ -613,7 +659,7 @@ void TRicl_saldi::transform()
|
||||
|
||||
TFile_type TRicl_saldi::open_output()
|
||||
{
|
||||
TString16 ext = _output_file.ext();
|
||||
TString16 ext = _output_file.ext(); ext.lower();
|
||||
TFile_type t;
|
||||
|
||||
if (ext == "dbf")
|
||||
@ -704,8 +750,19 @@ void TRicl_saldi::output_line(TFile_type t, const char * key, TRiga_output & r,
|
||||
tmp = abs(si);
|
||||
*_file << tmp.stringa() << ";";
|
||||
*_file << fsi << ";";
|
||||
*_file << pd.stringa() << ";";
|
||||
*_file << pa.stringa() << ";";
|
||||
if (_months)
|
||||
{
|
||||
for (int i = 1; i <= 12; i++)
|
||||
{
|
||||
*_file << r.prog_dare(i).stringa() << ";";
|
||||
*_file << r.prog_avere(i).stringa() << ";";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
*_file << pd.stringa() << ";";
|
||||
*_file << pa.stringa() << ";";
|
||||
}
|
||||
tmp = abs(s);
|
||||
*_file << tmp.stringa() << ";";
|
||||
*_file << fs << ";";
|
||||
@ -724,8 +781,19 @@ void TRicl_saldi::output_line(TFile_type t, const char * key, TRiga_output & r,
|
||||
tmp = abs(si);
|
||||
*_file << tmp.stringa() << "\t";
|
||||
*_file << fsi << "\t";
|
||||
*_file << pd.stringa() << "\t";
|
||||
*_file << pa.stringa() << "\t";
|
||||
if (_months)
|
||||
{
|
||||
for (int i = 1; i <= 12; i++)
|
||||
{
|
||||
*_file << r.prog_dare(i).stringa() << "\t";
|
||||
*_file << r.prog_avere(i).stringa() << "\t";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
*_file << pd.stringa() << "\t";
|
||||
*_file << pa.stringa() << "\t";
|
||||
}
|
||||
tmp = abs(s);
|
||||
*_file << tmp.stringa() << "\t";
|
||||
*_file << fs << "\t";
|
||||
@ -736,6 +804,35 @@ void TRicl_saldi::output_line(TFile_type t, const char * key, TRiga_output & r,
|
||||
}
|
||||
}
|
||||
|
||||
void TRicl_saldi::output_header(const bool is_commessa)
|
||||
{
|
||||
*_file << "Esercizio;";
|
||||
if (_calc_type == _saldi)
|
||||
*_file << "Gruppo;Conto;Sottoconto;";
|
||||
else
|
||||
*_file << "Esercizio;Codice;";
|
||||
if (is_commessa)
|
||||
*_file << "Commessa;";
|
||||
*_file << "Descrizione;Saldo Iniziale;Sezione;";
|
||||
if (_months)
|
||||
{
|
||||
for (int i = 1; i <= 12; i++)
|
||||
{
|
||||
*_file << itom(i) << " Dare;";
|
||||
*_file << itom(i) << " Avere;";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
*_file << "Progressivo Dare;";
|
||||
*_file << "Progressivo Avere;";
|
||||
}
|
||||
*_file << "Saldo Finale;Sezione;";
|
||||
*_file << "Dal ;";
|
||||
*_file << "Al ;";
|
||||
*_file << "Periodo di Bilancio\n";
|
||||
}
|
||||
|
||||
void TRicl_saldi::close_output(TFile_type t)
|
||||
{
|
||||
if (t == _dbffile)
|
||||
@ -760,6 +857,8 @@ void TRicl_saldi::output()
|
||||
const bool analisi = _calc_type == _analisi;
|
||||
const bool is_commessa = _codcms.not_empty();
|
||||
|
||||
if (t == _csvfile)
|
||||
output_header(is_commessa);
|
||||
if (analisi && !is_commessa)
|
||||
{
|
||||
TRelation relana(LF_ABSALDI);
|
||||
|
@ -10,4 +10,5 @@
|
||||
#define F_OUTPUT 108
|
||||
#define F_COMM 109
|
||||
#define F_DCOMM 110
|
||||
#define F_MONTH 111
|
||||
|
||||
|
@ -60,6 +60,11 @@ BEGIN
|
||||
PROMPT 2 11 "Intera struttura"
|
||||
END
|
||||
|
||||
BOOLEAN F_MONTH
|
||||
BEGIN
|
||||
PROMPT 42 11 "Suddiviso per mesi"
|
||||
END
|
||||
|
||||
BOOLEAN F_PROVV
|
||||
BEGIN
|
||||
PROMPT 2 13 "Anche i movimenti provvisori"
|
||||
|
@ -1,3 +1,3 @@
|
||||
79
|
||||
1
|
||||
%absaldi|0|0|123|0|Saldi analisi di bilancio|||
|
||||
%absaldi|0|0|143|0|Saldi analisi di bilancio|||
|
||||
|
@ -1,10 +1,11 @@
|
||||
79
|
||||
12
|
||||
13
|
||||
CODDITTA|3|5|0|Codice ditta
|
||||
ANNO|2|4|0|Anno
|
||||
CODPDB|1|2|0|Codice periodo
|
||||
TIPOBIL|1|2|0|Codice tipo di bilancio
|
||||
CODCBL|1|12|0|Codice piano conti
|
||||
CODCMS|1|20|0|Codice Commessa
|
||||
FLDA|1|1|0|Flag <D>are o <A>vere
|
||||
SALDO|4|18|3|Saldo iniziale
|
||||
PDARE|4|18|3|Progressivi dare
|
||||
@ -13,4 +14,4 @@ RDARE|4|18|3|Riclassificazione dare
|
||||
RAVERE|4|18|3|Riclassificazione avere
|
||||
IDMOVDETT|1|6|0|Identificatore eventuale primo dettaglio o movimento
|
||||
1
|
||||
CODDITTA+ANNO+CODPDB+TIPOBIL+CODCBL|
|
||||
CODDITTA+ANNO+CODPDB+TIPOBIL+CODCBL+CODCMS|
|
||||
|
Loading…
x
Reference in New Issue
Block a user