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:
alex 2007-03-06 16:20:20 +00:00
parent 4fe5bd2d5b
commit e9c990f6f4
5 changed files with 123 additions and 17 deletions

View File

@ -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);

View File

@ -10,4 +10,5 @@
#define F_OUTPUT 108
#define F_COMM 109
#define F_DCOMM 110
#define F_MONTH 111

View File

@ -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"

View File

@ -1,3 +1,3 @@
79
1
%absaldi|0|0|123|0|Saldi analisi di bilancio|||
%absaldi|0|0|143|0|Saldi analisi di bilancio|||

View File

@ -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|