Patch level : 10.0 704

Files correlati     : cg2.exe
Ricompilazione Demo : [ ]
Commento            :

Dump Saldaconto


git-svn-id: svn://10.65.10.50/trunk@20321 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2010-04-12 08:26:46 +00:00
parent 01e4cf8912
commit 193e2e33db
3 changed files with 104 additions and 40 deletions

View File

@ -1852,68 +1852,130 @@ bool TPrimanota_application::save(bool check_dirty)
return TRelation_application::save(check_dirty);
}
void TPrimanota_application::dump_rec(TConfig & ini, const TRectype & rec, int row)
{
if (row > 0)
ini.set_paragraph(format("%d,%d", rec.num(), row));
else
ini.set_paragraph(format("%d", rec.num()));
for (int f = rec.items()-1; f >= 0; f--)
{
const char* name = rec.fieldname(f);
ini.set(name, rec.get(name));
}
}
void TPrimanota_application::dump_fatt(TConfig& ini, TPartita & game, int rigafatt)
{
if (rigafatt > 0)
{
const TRiga_partite& riga = game.riga(rigafatt);
int r;
for (r = 1; r <= riga.rate(); r++)
{
TRiga_scadenze& rec = riga.rata(r);
rec.fill_array();
const int lastrow = rec.last();
dump_rec(ini, rec, r);
for (int rp = rec.first(); rp <= lastrow; rp = rec.succ(rp))
{
const TRectype & recpag = rec.row(rp);
dump_rec(ini, recpag, rp);
}
}
for ( ; ; r++)
{
if (ini.set_paragraph(format("%d,%d", LF_SCADENZE, r+1)))
ini.remove_all();
else
break;
}
}
}
void TPrimanota_application::mask2ini(const TMask& msk, TConfig& ini)
{
TRelation_application::mask2ini(msk, ini);
int i, f;
int i;
for (i = 0; i < _rel->cg_items(); i++)
{
ini.set_paragraph(format("%d,%d", LF_RMOV, i+1));
const TRectype& rec = _rel->cg(i);
for (f = rec.items()-1; f >= 0; f--)
{
const char* name = rec.fieldname(f);
ini.set(name, rec.get(name));
}
dump_rec(ini, rec, i + 1);
}
for ( ; ini.set_paragraph(format("%d,%d", LF_RMOV, i+1)); i++)
ini.remove_all();
for (i = 0; i < _rel->iva_items(); i++)
{
ini.set_paragraph(format("%d,%d", LF_RMOVIVA, i+1));
const TRectype& rec = _rel->iva(i);
for (f = rec.items()-1; f >= 0; f--)
{
const char* name = rec.fieldname(f);
ini.set(name, rec.get(name));
}
dump_rec(ini, rec, i + 1);
}
for ( ; ini.set_paragraph(format("%d,%d", LF_RMOVIVA, i+1)); i++)
ini.remove_all();
if (is_fattura())
TPartite_array p;
const long numreg = _rel->lfile().get_long(MOV_NUMREG);
p.add_numreg(numreg);
if (is_fattura())
{
const long numreg = _rel->lfile().get_long(MOV_NUMREG);
TPartita* game = partite().first();
if (game)
TPartita* game = p.first();
if (game)
{
const int rigafatt = game->prima_fattura(numreg);
if (rigafatt > 0)
{
const TRiga_partite& riga = game->riga(rigafatt);
for (int r = 1; r <= riga.rate(); r++)
{
ini.set_paragraph(format("%d,%d", LF_SCADENZE, r));
const TRectype& rec = riga.rata(r);
for (f = rec.items()-1; f >= 0; f--)
{
const char* name = rec.fieldname(i);
ini.set(name, rec.get(name));
}
}
for ( ; ; i++)
{
if (ini.set_paragraph(format("%d,%d", LF_SCADENZE, i+1)))
ini.remove_all();
else
break;
}
}
dump_fatt(ini, *game, rigafatt);
}
}
else
{
TBit_array dumped;
for (TPartita* game = p.first(); game != NULL; game = p.next())
{
const int rigapag = game->primo_pagamento(numreg);
if (rigapag > 0)
{
TRiga_partite & riga = game->riga(rigapag);
TCursor pag(new TRelation(LF_PAGSCA));
TRectype filter(pag.curr());
filter.put(PAGSCA_TIPOC, riga.get(PART_TIPOCF));
filter.put(PAGSCA_GRUPPO, riga.get(PART_GRUPPO));
filter.put(PAGSCA_CONTO, riga.get(PART_CONTO));
filter.put(PAGSCA_SOTTOCONTO, riga.get(PART_SOTTOCONTO));
filter.put(PAGSCA_ANNO, riga.get(PART_ANNO));
filter.put(PAGSCA_NUMPART, riga.get(PART_NUMPART));
pag.setregion(filter, filter);
const int items = pag.items();
for (pag = 0L; pag.pos() < items; ++pag)
{
const TRectype & recpag = pag.curr();
if (rigapag == recpag.get_int(PAGSCA_NRIGP))
{
const int rigafatt = recpag.get_int(PAGSCA_NRIGA);
if (rigafatt >= 0 && !dumped[rigafatt])
{
dump_fatt(ini, *game, rigafatt);
dumped.set(rigafatt);
}
}
}
}
}
}
}
bool TPrimanota_application::link_cesp(const TMask& msk, const char* action)

View File

@ -164,6 +164,8 @@ protected: // TApplication
virtual void on_firm_change();
virtual void on_config_change();
virtual void print();
void dump_rec(TConfig & ini, const TRectype & rec, int row = 0);
void dump_fatt(TConfig& ini, TPartita & game, int rigafatt);
virtual void ini2mask(TConfig& ini, TMask& msk, bool query);
virtual void mask2ini(const TMask& msk, TConfig& ini);
virtual bool save(bool check_dirty);

View File

@ -26,7 +26,6 @@ class TTree_rectype : public TRectype
{
protected:
TRecord_array _recarr;
int fill_array();
protected: // TRectype
virtual TObject* dup() const;
@ -41,6 +40,7 @@ protected: // TRectype
TRecord_array& rows_array() { return _recarr; }
public:
int fill_array();
const TRectype& row(int r) const { return _recarr.row(r); }
TRectype& row(int r) { return _recarr.row(r, true); }
TRectype& new_row(int r = 0);