Modifiche da Parma:
Bilanci, Lista Causali , Mastrini, Libro Giornale, Libreria di cg (occhio!!!!) Aggiunto il; programma di Visualizzazione Saldi git-svn-id: svn://10.65.10.50/trunk@391 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
12edd290f6
commit
b3bb46aff7
179
cg/cg1500.cpp
179
cg/cg1500.cpp
@ -94,7 +94,7 @@ class CG1500_application : public TPrintapp
|
|||||||
real _saldo_dare_tot, _saldo_avere_tot, _mov_dare_tot, _mov_avere_tot;
|
real _saldo_dare_tot, _saldo_avere_tot, _mov_dare_tot, _mov_avere_tot;
|
||||||
real _saldo_finale_tot, _saldo_ini_gruppo_dare, _saldo_ini_gruppo_avere;
|
real _saldo_finale_tot, _saldo_ini_gruppo_dare, _saldo_ini_gruppo_avere;
|
||||||
real _gruppo_da_ordine, _gruppo_a_ordine;
|
real _gruppo_da_ordine, _gruppo_a_ordine;
|
||||||
real _prg_saldoini_dare, _prg_saldoini_avere;
|
real _prg_saldoini_dare, _prg_saldoini_avere, _prg_inidare_ord, _prg_iniavere_ord;
|
||||||
|
|
||||||
TDate _datalim, _data, _datada, _dataa, _dataini, _ultima_data, _u_max;
|
TDate _datalim, _data, _datada, _dataa, _dataini, _ultima_data, _u_max;
|
||||||
bool _cambiato_conto_1, _cambiato_conto_2, _add_file_avere;
|
bool _cambiato_conto_1, _cambiato_conto_2, _add_file_avere;
|
||||||
@ -113,6 +113,7 @@ public:
|
|||||||
void user_destroy();
|
void user_destroy();
|
||||||
bool set_print(int);
|
bool set_print(int);
|
||||||
|
|
||||||
|
void next_c();
|
||||||
virtual bool preprocess_print(int,int);
|
virtual bool preprocess_print(int,int);
|
||||||
virtual void preprocess_header();
|
virtual void preprocess_header();
|
||||||
virtual bool preprocess_page(int,int);
|
virtual bool preprocess_page(int,int);
|
||||||
@ -153,7 +154,7 @@ public:
|
|||||||
void stampa_prima_colonna(int,int,long,const char*,const real&);
|
void stampa_prima_colonna(int,int,long,const char*,const real&);
|
||||||
void stampa_seconda_colonna(int,int,long,const char*,const real&);
|
void stampa_seconda_colonna(int,int,long,const char*,const real&);
|
||||||
void stampa_totali();
|
void stampa_totali();
|
||||||
void stampa_totali_uno();
|
void stampa_totali_uno(const real&, const real&);
|
||||||
void controlla_conto(int,int);
|
void controlla_conto(int,int);
|
||||||
const char* DescrizioneConto(int,int,long,char); //chiama quella di TConto
|
const char* DescrizioneConto(int,int,long,char); //chiama quella di TConto
|
||||||
TDate UltimaData(int,int,long,int);
|
TDate UltimaData(int,int,long,int);
|
||||||
@ -513,6 +514,8 @@ void CG1500_application::scrivig_file_temp()
|
|||||||
TString nome_campo(12);
|
TString nome_campo(12);
|
||||||
real valore;
|
real valore;
|
||||||
|
|
||||||
|
if (!_totali)
|
||||||
|
{
|
||||||
if (_add_dare)
|
if (_add_dare)
|
||||||
{
|
{
|
||||||
nome_campo = SLD_PDARE;
|
nome_campo = SLD_PDARE;
|
||||||
@ -551,9 +554,6 @@ void CG1500_application::scrivig_file_temp()
|
|||||||
tmp->put(nome_campo, valore);
|
tmp->put(nome_campo, valore);
|
||||||
tmp->write();
|
tmp->write();
|
||||||
}
|
}
|
||||||
|
|
||||||
//if (_indbil == 5)
|
|
||||||
// _gruppo_da_ordine = ZERO;
|
|
||||||
}
|
}
|
||||||
if (_add_avere)
|
if (_add_avere)
|
||||||
{
|
{
|
||||||
@ -593,9 +593,7 @@ void CG1500_application::scrivig_file_temp()
|
|||||||
tmp->put(nome_campo, valore);
|
tmp->put(nome_campo, valore);
|
||||||
tmp->write();
|
tmp->write();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
//if (_indbil == 5)
|
|
||||||
// _gruppo_a_ordine = ZERO;
|
|
||||||
}
|
}
|
||||||
_add_dare = _add_avere = FALSE;
|
_add_dare = _add_avere = FALSE;
|
||||||
}
|
}
|
||||||
@ -758,6 +756,18 @@ real CG1500_application::compensazione(bool compensa, int indbil_conto, real& sl
|
|||||||
return saldo;
|
return saldo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CG1500_application::next_c()
|
||||||
|
{
|
||||||
|
TRecnotype recnum = _pcn->recno();
|
||||||
|
_pcn->next();
|
||||||
|
if (_pcn->eof())
|
||||||
|
{
|
||||||
|
scrivic_file_temp();
|
||||||
|
scrivig_file_temp();
|
||||||
|
}
|
||||||
|
_pcn->readat(recnum);
|
||||||
|
}
|
||||||
|
|
||||||
bool CG1500_application::bil_sez_contr()
|
bool CG1500_application::bil_sez_contr()
|
||||||
{
|
{
|
||||||
Saldo sld;
|
Saldo sld;
|
||||||
@ -768,7 +778,7 @@ bool CG1500_application::bil_sez_contr()
|
|||||||
real saldo;
|
real saldo;
|
||||||
bool compensa=FALSE, dettaglio=FALSE, cambiato=FALSE;
|
bool compensa=FALSE, dettaglio=FALSE, cambiato=FALSE;
|
||||||
bool esiste_conto=FALSE, esiste_sc = FALSE;
|
bool esiste_conto=FALSE, esiste_sc = FALSE;
|
||||||
bool da_considerare = FALSE;
|
bool movimentato = FALSE;
|
||||||
|
|
||||||
_tmp_saldi_att->open("cg01");
|
_tmp_saldi_att->open("cg01");
|
||||||
_prog->addstatus(1);
|
_prog->addstatus(1);
|
||||||
@ -791,6 +801,8 @@ bool CG1500_application::bil_sez_contr()
|
|||||||
_gruppo_a_ordine = ZERO;
|
_gruppo_a_ordine = ZERO;
|
||||||
_prg_saldoini_dare = ZERO;
|
_prg_saldoini_dare = ZERO;
|
||||||
_prg_saldoini_avere = ZERO;
|
_prg_saldoini_avere = ZERO;
|
||||||
|
_prg_inidare_ord = ZERO;
|
||||||
|
_prg_iniavere_ord = ZERO;
|
||||||
_conto_a = ZERO;
|
_conto_a = ZERO;
|
||||||
_conto_da = ZERO;
|
_conto_da = ZERO;
|
||||||
_add_dare = FALSE;
|
_add_dare = FALSE;
|
||||||
@ -878,33 +890,24 @@ bool CG1500_application::bil_sez_contr()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (_tipo_stampa == 1) //bil. a sez. contrapposte per data limite
|
if (_tipo_stampa == 1) //bil. a sez. contrapposte per data limite
|
||||||
//if (!sld.data_limite_bilancio(_bilancio,g,c,s,_dataini,_datalim,indbil_conto,_stampa_mov_prov))
|
movimentato = sld.data_limite_bilancio(_bilancio,g,c,s,_dataini,_datalim,indbil_conto,_stampa_mov_prov);
|
||||||
//continue;
|
|
||||||
//else saldo = sld.saldo();
|
|
||||||
da_considerare = sld.data_limite_bilancio(_bilancio,g,c,s,_dataini,_datalim,indbil_conto,_stampa_mov_prov);
|
|
||||||
else
|
else
|
||||||
if (_tipo_stampa == 2) //bil. a sez. contrapposte all'ultima immissione es. in corso
|
if (_tipo_stampa == 2) //bil. a sez. contrapposte all'ultima immissione es. in corso
|
||||||
//if (!sld.ultima_immissione_bilancio(_annoes,g,c,s,indbil_conto))
|
movimentato = sld.ultima_immissione_bilancio(_annoes,g,c,s,indbil_conto);
|
||||||
// continue;
|
|
||||||
//else
|
|
||||||
// saldo = sld.saldo();
|
|
||||||
da_considerare = sld.ultima_immissione_bilancio(_annoes,g,c,s,indbil_conto);
|
|
||||||
|
|
||||||
if (da_considerare)
|
if (!movimentato)
|
||||||
|
if (!sld.esiste_saldo() || !sld.significativo())
|
||||||
{
|
{
|
||||||
|
next_c();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
saldo = sld.saldo();
|
saldo = sld.saldo();
|
||||||
|
|
||||||
if (_saldo) //se richiesto di NON stampare i conti con saldo a zero
|
if (_saldo) //se richiesto di NON stampare i conti con saldo a zero
|
||||||
// if (saldo == ZERO && !sld.significativo())
|
|
||||||
if (saldo == ZERO)
|
if (saldo == ZERO)
|
||||||
{
|
{
|
||||||
TRecnotype recnum = _pcn->recno();
|
next_c();
|
||||||
_pcn->next();
|
|
||||||
if (_pcn->eof())
|
|
||||||
{
|
|
||||||
scrivic_file_temp();
|
|
||||||
scrivig_file_temp();
|
|
||||||
}
|
|
||||||
_pcn->readat(recnum);
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -932,6 +935,18 @@ bool CG1500_application::bil_sez_contr()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (_indbil == 5)
|
||||||
|
{
|
||||||
|
real app = sld.saldoini();
|
||||||
|
if (app > ZERO)
|
||||||
|
_prg_inidare_ord += app;
|
||||||
|
else if (app < ZERO)
|
||||||
|
{
|
||||||
|
app = -app;
|
||||||
|
_prg_iniavere_ord += app;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ( _indbil==1 || _indbil==3 )
|
if ( _indbil==1 || _indbil==3 )
|
||||||
{
|
{
|
||||||
_gruppo_da += saldo;
|
_gruppo_da += saldo;
|
||||||
@ -970,7 +985,7 @@ bool CG1500_application::bil_sez_contr()
|
|||||||
|
|
||||||
_gp = g;
|
_gp = g;
|
||||||
_cp = c;
|
_cp = c;
|
||||||
}
|
// } // da_considerare
|
||||||
|
|
||||||
TRecnotype recnum = _pcn->recno();
|
TRecnotype recnum = _pcn->recno();
|
||||||
_pcn->next();
|
_pcn->next();
|
||||||
@ -987,28 +1002,36 @@ bool CG1500_application::bil_sez_contr()
|
|||||||
|
|
||||||
bool CG1500_application::ricerca_sottoc_clifo(int g,int c, bool compensa, int indbil_conto,real& saldo)
|
bool CG1500_application::ricerca_sottoc_clifo(int g,int c, bool compensa, int indbil_conto,real& saldo)
|
||||||
{
|
{
|
||||||
Saldo sld;
|
TSaldo sld;
|
||||||
sld.set_annoes(_annoes);
|
int aep=0;
|
||||||
_listacf = new TSaldi_list(g, c, _annoes);
|
long s, items;
|
||||||
long s;
|
|
||||||
TRecnotype items = _listacf->items();
|
|
||||||
bool esiste_sc = FALSE;
|
bool esiste_sc = FALSE;
|
||||||
|
bool movimentato = FALSE;
|
||||||
|
|
||||||
|
if (_annoes) aep = _annoes-1;
|
||||||
|
sld.set_annoes(_annoes);
|
||||||
|
_listacf = new TSaldi_list(g, c, _annoes, aep);
|
||||||
|
|
||||||
|
items = _listacf->items();
|
||||||
|
|
||||||
for (int i = 0; i < items; i++)
|
for (int i = 0; i < items; i++)
|
||||||
{
|
{
|
||||||
const TRectype& r = _listacf->saldi(i);
|
const TRectype* r = _listacf->saldi();
|
||||||
s = r.get_long(SLD_SOTTOCONTO);
|
|
||||||
|
if (r == NULL) break;
|
||||||
|
|
||||||
|
s = r->get_long(SLD_SOTTOCONTO);
|
||||||
|
|
||||||
if (_tipo_stampa == 1) //bil. a sez. contrapposte per data limite
|
if (_tipo_stampa == 1) //bil. a sez. contrapposte per data limite
|
||||||
{
|
movimentato = sld.data_limite_bilancio(_bilancio,g,c,s,_dataini,_datalim,indbil_conto,_stampa_mov_prov);
|
||||||
if (!sld.data_limite_bilancio(_bilancio,g,c,s,_dataini,_datalim,indbil_conto,_stampa_mov_prov)) continue;
|
|
||||||
else saldo = sld.saldo();
|
|
||||||
}
|
|
||||||
else if (_tipo_stampa == 2) //bil. a sez. contrapposte all'ultima immissione es. in corso
|
else if (_tipo_stampa == 2) //bil. a sez. contrapposte all'ultima immissione es. in corso
|
||||||
{
|
movimentato = sld.ultima_immissione_bilancio(_annoes,g,c,s,indbil_conto);
|
||||||
if (!sld.ultima_immissione_bilancio(_annoes,g,c,s,indbil_conto)) continue;
|
|
||||||
else saldo = sld.saldo();
|
if (!movimentato)
|
||||||
}
|
if (!sld.esiste_saldo() || !sld.significativo())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
saldo = sld.saldo();
|
||||||
|
|
||||||
if (_saldo) //se richiesto di non stampare i conti con saldo a zero
|
if (_saldo) //se richiesto di non stampare i conti con saldo a zero
|
||||||
if (saldo == 0)
|
if (saldo == 0)
|
||||||
@ -1038,6 +1061,18 @@ bool CG1500_application::ricerca_sottoc_clifo(int g,int c, bool compensa, int in
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (_indbil == 5)
|
||||||
|
{
|
||||||
|
real app = sld.saldoini();
|
||||||
|
if (app > ZERO)
|
||||||
|
_prg_inidare_ord += app;
|
||||||
|
else if (app < ZERO)
|
||||||
|
{
|
||||||
|
app = -app;
|
||||||
|
_prg_iniavere_ord += app;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ( (_indbil==1) || (_indbil==3) )
|
if ( (_indbil==1) || (_indbil==3) )
|
||||||
{
|
{
|
||||||
_gruppo_da += saldo;
|
_gruppo_da += saldo;
|
||||||
@ -1257,7 +1292,7 @@ bool CG1500_application::bil_verifica()
|
|||||||
//if (!sld.ultima_immissione_bilancio(_annoes,g,c,s,indbil_conto))
|
//if (!sld.ultima_immissione_bilancio(_annoes,g,c,s,indbil_conto))
|
||||||
// if (_stampav == 1)
|
// if (_stampav == 1)
|
||||||
// continue;
|
// continue;
|
||||||
movimentato = sld.ultima_immissione_bilancio(_annoes,g,c,s,indbil_conto);
|
movimentato = sld.ultima_immissione_verifica(_annoes,g,c,s,indbil_conto);
|
||||||
|
|
||||||
if (movimentato || _stampav != 1)
|
if (movimentato || _stampav != 1)
|
||||||
{
|
{
|
||||||
@ -1477,8 +1512,10 @@ bool CG1500_application::ricerca_cf(int g,int c,char tipocf,real& saldo_finale,r
|
|||||||
|
|
||||||
for (int i = 0; i < items; i++)
|
for (int i = 0; i < items; i++)
|
||||||
{
|
{
|
||||||
const TRectype& r = _lista->saldi(i);
|
const TRectype* r = _lista->saldi();
|
||||||
s = r.get_long(SLD_SOTTOCONTO);
|
if (r == NULL) break;
|
||||||
|
|
||||||
|
s = r->get_long(SLD_SOTTOCONTO);
|
||||||
|
|
||||||
saldo_finale = ZERO; //saldo finale relativo a ciascun sottoconto
|
saldo_finale = ZERO; //saldo finale relativo a ciascun sottoconto
|
||||||
|
|
||||||
@ -1503,7 +1540,7 @@ bool CG1500_application::ricerca_cf(int g,int c,char tipocf,real& saldo_finale,r
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!sld.ultima_immissione_bilancio(_annoes,g,c,s,_indbil))
|
if (!sld.ultima_immissione_verifica(_annoes,g,c,s,_indbil))
|
||||||
if (_stampav == 1)
|
if (_stampav == 1)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -1802,7 +1839,7 @@ void CG1500_application::crea_sort_clifo()
|
|||||||
//if (!sld.ultima_immissione_bilancio(_annoes,g,c,codcf,_indbil))
|
//if (!sld.ultima_immissione_bilancio(_annoes,g,c,codcf,_indbil))
|
||||||
// if (_stampac == 1)
|
// if (_stampac == 1)
|
||||||
// continue;
|
// continue;
|
||||||
movimentato = sld.ultima_immissione_bilancio(_annoes,g,c,codcf,_indbil);
|
movimentato = sld.ultima_immissione_verifica(_annoes,g,c,codcf,_indbil);
|
||||||
if (movimentato || _stampac != 1)
|
if (movimentato || _stampac != 1)
|
||||||
{
|
{
|
||||||
saldo_iniziale = sld.saldoini();
|
saldo_iniziale = sld.saldoini();
|
||||||
@ -2027,7 +2064,7 @@ bool CG1500_application::preprocess_page(int file, int counter)
|
|||||||
{
|
{
|
||||||
if (_prima_volta)
|
if (_prima_volta)
|
||||||
{
|
{
|
||||||
stampa_totali_uno();
|
stampa_totali_uno(_prg_saldoini_dare,_prg_saldoini_avere);
|
||||||
_eof3 = _tmp_saldi_costi->first();
|
_eof3 = _tmp_saldi_costi->first();
|
||||||
_eof4 = _tmp_saldi_ricavi->first();
|
_eof4 = _tmp_saldi_ricavi->first();
|
||||||
}
|
}
|
||||||
@ -2149,7 +2186,6 @@ void CG1500_application::controlla_conto(int file1,int file2)
|
|||||||
if (!file1)
|
if (!file1)
|
||||||
if (_cambiato_conto_1)
|
if (_cambiato_conto_1)
|
||||||
{
|
{
|
||||||
if (!(_totali && _conto_dare==0 && _sottoconto_dare == 0l))
|
|
||||||
set_row(_i,"@66g%c", dep);
|
set_row(_i,"@66g%c", dep);
|
||||||
_cambiato_conto_1 = FALSE;
|
_cambiato_conto_1 = FALSE;
|
||||||
}
|
}
|
||||||
@ -2158,29 +2194,31 @@ void CG1500_application::controlla_conto(int file1,int file2)
|
|||||||
stampa_prima_colonna(_gruppo_dare, _conto_dare, _sottoconto_dare,
|
stampa_prima_colonna(_gruppo_dare, _conto_dare, _sottoconto_dare,
|
||||||
_descr_dare,_saldo_dare);
|
_descr_dare,_saldo_dare);
|
||||||
_cambiato_conto_1 = TRUE;
|
_cambiato_conto_1 = TRUE;
|
||||||
|
if (!_totali)
|
||||||
if ( (_conto_dare == 0) && (_sottoconto_dare == 0) )
|
if ( (_conto_dare == 0) && (_sottoconto_dare == 0) )
|
||||||
_tot_dare += _saldo_dare;
|
_tot_dare += _saldo_dare;
|
||||||
|
if (_totali)
|
||||||
|
if (_sottoconto_dare == 0)
|
||||||
|
_tot_dare += _saldo_dare;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!file2)
|
if (!file2)
|
||||||
if (_cambiato_conto_2)
|
if (_cambiato_conto_2)
|
||||||
{
|
|
||||||
//if (!(_totali && _conto_avere==0 && _sottoconto_avere == 0l))
|
|
||||||
if (_totali && _conto_avere==0 && _sottoconto_avere==0l)
|
|
||||||
_cambiato_conto_2 = FALSE;
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
set_row(_i,"@66g%c", dep);
|
set_row(_i,"@66g%c", dep);
|
||||||
_cambiato_conto_2 = FALSE;
|
_cambiato_conto_2 = FALSE;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
stampa_seconda_colonna(_gruppo_avere, _conto_avere, _sottoconto_avere,
|
stampa_seconda_colonna(_gruppo_avere, _conto_avere, _sottoconto_avere,
|
||||||
_descr_avere, _saldo_avere);
|
_descr_avere, _saldo_avere);
|
||||||
_cambiato_conto_2 = TRUE;
|
_cambiato_conto_2 = TRUE;
|
||||||
|
if (!_totali)
|
||||||
if ( (_conto_avere == 0) && (_sottoconto_avere == 0) )
|
if ( (_conto_avere == 0) && (_sottoconto_avere == 0) )
|
||||||
_tot_avere += _saldo_avere;
|
_tot_avere += _saldo_avere;
|
||||||
|
if (_totali)
|
||||||
|
if (_sottoconto_avere == 0)
|
||||||
|
_tot_avere += _saldo_avere;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2249,7 +2287,8 @@ void CG1500_application::set_page(int file, int counter)
|
|||||||
if (_eof5 && _eof6)
|
if (_eof5 && _eof6)
|
||||||
{
|
{
|
||||||
_stampato = TRUE;
|
_stampato = TRUE;
|
||||||
stampa_totali();
|
//stampa_totali();
|
||||||
|
stampa_totali_uno(_prg_inidare_ord,_prg_iniavere_ord);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_salto_pagina1 = TRUE;
|
_salto_pagina1 = TRUE;
|
||||||
@ -2261,7 +2300,9 @@ void CG1500_application::set_page(int file, int counter)
|
|||||||
{
|
{
|
||||||
controlla_conto(_eof5,_eof6);
|
controlla_conto(_eof5,_eof6);
|
||||||
if (_eof5 && _eof6)
|
if (_eof5 && _eof6)
|
||||||
if (!_stampato) stampa_totali();
|
if (!_stampato)
|
||||||
|
//stampa_totali();
|
||||||
|
stampa_totali_uno(_prg_inidare_ord,_prg_iniavere_ord);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2606,12 +2647,13 @@ void CG1500_application::stampa_totali()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//per Attivita'/Passivita' stampo anche lo sbilancio es. precedente
|
//per Attivita'/Passivita' stampo anche lo sbilancio es. precedente
|
||||||
void CG1500_application::stampa_totali_uno()
|
void CG1500_application::stampa_totali_uno(const real& r1,const real& r2)
|
||||||
{
|
{
|
||||||
TString dep = "";
|
TString dep = "";
|
||||||
real pareggio;
|
real pareggio;
|
||||||
real sbilancio = _tot_dare - _prg_saldoini_dare - (_tot_avere - _prg_saldoini_avere);
|
real sbilancio = _tot_dare - r1 - (_tot_avere - r2);
|
||||||
real sbilprec = _prg_saldoini_avere - _prg_saldoini_dare;
|
real sbilprec = r2 - r1;
|
||||||
|
/*
|
||||||
if (sbilancio > ZERO) //ho un utile => va stampato tra le passivita'
|
if (sbilancio > ZERO) //ho un utile => va stampato tra le passivita'
|
||||||
{
|
{
|
||||||
sbilprec = -sbilprec;
|
sbilprec = -sbilprec;
|
||||||
@ -2622,6 +2664,7 @@ else if (sbilancio < ZERO) //ho una perdita => va stampato tra le attivita' camb
|
|||||||
sbilancio = -sbilancio;
|
sbilancio = -sbilancio;
|
||||||
pareggio = _tot_dare + sbilancio + sbilprec;
|
pareggio = _tot_dare + sbilancio + sbilprec;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
if (_prima_volta) //ho finito di stampare le attivita'/passivita'
|
if (_prima_volta) //ho finito di stampare le attivita'/passivita'
|
||||||
_prima_volta = FALSE;
|
_prima_volta = FALSE;
|
||||||
else
|
else
|
||||||
@ -2636,8 +2679,10 @@ set_row(_i++, (const char*)dep);
|
|||||||
set_row(_i++, (const char*)dep);
|
set_row(_i++, (const char*)dep);
|
||||||
set_row(_i++, "@35gTOTALE@45g%r@103gTOTALE@113g%r",
|
set_row(_i++, "@35gTOTALE@45g%r@103gTOTALE@113g%r",
|
||||||
&_tot_dare, &_tot_avere);
|
&_tot_dare, &_tot_avere);
|
||||||
if (sbilancio > ZERO)
|
if (sbilancio > ZERO) //ho un utile => va stampato tra le passivita'
|
||||||
{
|
{
|
||||||
|
sbilprec = -sbilprec;
|
||||||
|
pareggio = _tot_avere + sbilancio + sbilprec;
|
||||||
if (sbilprec != ZERO)
|
if (sbilprec != ZERO)
|
||||||
set_row(_i++, "@79gSBILANCIO ESERCIZIO PRECEDENTE@113g%r",
|
set_row(_i++, "@79gSBILANCIO ESERCIZIO PRECEDENTE@113g%r",
|
||||||
&sbilprec);
|
&sbilprec);
|
||||||
@ -2645,8 +2690,10 @@ set_row(_i++, "@35gTOTALE@45g%r@103gTOTALE@113g%r",
|
|||||||
&sbilancio);
|
&sbilancio);
|
||||||
set_row(_i++, "@92gTOTALE A PAREGGIO@113g%r",&pareggio);
|
set_row(_i++, "@92gTOTALE A PAREGGIO@113g%r",&pareggio);
|
||||||
}
|
}
|
||||||
else if (sbilancio < ZERO)
|
else if (sbilancio < ZERO) //ho una perdita => va stampato tra le attivita'
|
||||||
{
|
{
|
||||||
|
sbilancio = -sbilancio;
|
||||||
|
pareggio = _tot_dare + sbilancio + sbilprec;
|
||||||
if (sbilprec != ZERO)
|
if (sbilprec != ZERO)
|
||||||
set_row(_i++, "@11gSBILANCIO ESERCIZIO PRECEDENTE@45g%r",
|
set_row(_i++, "@11gSBILANCIO ESERCIZIO PRECEDENTE@45g%r",
|
||||||
&sbilprec);
|
&sbilprec);
|
||||||
@ -2668,9 +2715,9 @@ else if (sbilprec < ZERO)
|
|||||||
{
|
{
|
||||||
sbilprec = -sbilprec;
|
sbilprec = -sbilprec;
|
||||||
pareggio = _tot_dare + sbilprec;
|
pareggio = _tot_dare + sbilprec;
|
||||||
set_row(_i++, "@79gSBILANCIO ESERCIZIO PRECEDENTE@113g%r",
|
set_row(_i++, "@11gSBILANCIO ESERCIZIO PRECEDENTE@45g%r",
|
||||||
&sbilprec);
|
&sbilprec);
|
||||||
set_row(_i++, "@92gTOTALE A PAREGGIO@113g%r",&pareggio);
|
set_row(_i++, "@24gTOTALE A PAREGGIO@45g%r",&pareggio);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_tot_dare = ZERO;
|
_tot_dare = ZERO;
|
||||||
|
390
cg/cg1600.cpp
390
cg/cg1600.cpp
@ -257,6 +257,7 @@ class CG1600_application : public TPrintapp
|
|||||||
real mov_dare;
|
real mov_dare;
|
||||||
real mov_avere;
|
real mov_avere;
|
||||||
char tipocf;
|
char tipocf;
|
||||||
|
bool conto_dettagliato;
|
||||||
};
|
};
|
||||||
|
|
||||||
bil_ivd* _bil;
|
bil_ivd* _bil;
|
||||||
@ -279,7 +280,7 @@ class CG1600_application : public TPrintapp
|
|||||||
TDate _data_fine_ese,_data_fine_ese_prec,_data_fine_raf,_data_fine_raf_prec;
|
TDate _data_fine_ese,_data_fine_ese_prec,_data_fine_raf,_data_fine_raf_prec;
|
||||||
TDate _datastampa,_datalimite,_databilrafr,_datai,_datairaf;
|
TDate _datastampa,_datalimite,_databilrafr,_datai,_datairaf;
|
||||||
TDate _dataini,_datafine,_data_ini_ese,_data_ini_raf;
|
TDate _dataini,_datafine,_data_ini_ese,_data_ini_raf;
|
||||||
int _annoese,_annoeserafr,_anno_esercizio;
|
int _annoese,_annoeserafr,_anno_esercizio,_anno_esercizio_raf;
|
||||||
bool _competenza,_intera_struttura,_stampamov,_stampacod,_stampa_modulo;
|
bool _competenza,_intera_struttura,_stampamov,_stampacod,_stampa_modulo;
|
||||||
bool _stampa_mov_prov,_diffprod_fatto,_risimp_fatto;
|
bool _stampa_mov_prov,_diffprod_fatto,_risimp_fatto;
|
||||||
TString _classe_stampata, _classe_da_stampare,_numr_tot,_num_tot,_numr;
|
TString _classe_stampata, _classe_da_stampare,_numr_tot,_num_tot,_numr;
|
||||||
@ -323,7 +324,7 @@ public:
|
|||||||
|
|
||||||
virtual bool preprocess_page (int,int);
|
virtual bool preprocess_page (int,int);
|
||||||
virtual print_action postprocess_page (int,int);
|
virtual print_action postprocess_page (int,int);
|
||||||
virtual print_action postprocess_print (int,int);
|
virtual void postclose_print ();
|
||||||
|
|
||||||
virtual void preprocess_header();
|
virtual void preprocess_header();
|
||||||
virtual void set_page(int,int);
|
virtual void set_page(int,int);
|
||||||
@ -338,8 +339,8 @@ public:
|
|||||||
void crea_sort_tabella();
|
void crea_sort_tabella();
|
||||||
void crea_sort_piano_conti_scalare();
|
void crea_sort_piano_conti_scalare();
|
||||||
void crea_sort_piano_conti_verifica();
|
void crea_sort_piano_conti_verifica();
|
||||||
void scrivi_record(const TString&,const TString&,const TString&,int,int,int,long,const real&,const real&,const real&,const real&,const real&,const real&,char);
|
void scrivi_record(const TString&,const TString&,const TString&,int,int,int,long,const real&,const real&,const real&,const real&,const real&,const real&,char,bool conto_dettagliato = TRUE);
|
||||||
void riempi_record(const TString&,const TString&,const TString&,int,int,int,long,const real&,const real&,const real&,const real&,const real&,const real&,char);
|
void riempi_record(const TString&,const TString&,const TString&,int,int,int,long,const real&,const real&,const real&,const real&,const real&,const real&,char,bool conto_dettagliato = TRUE);
|
||||||
const char* descrizione_sezione(char);
|
const char* descrizione_sezione(char);
|
||||||
const char* descrizione_lettera(char, char);
|
const char* descrizione_lettera(char, char);
|
||||||
const char* descrizione_numeroromano(char, char, int);
|
const char* descrizione_numeroromano(char, char, int);
|
||||||
@ -353,7 +354,7 @@ public:
|
|||||||
void stampa_totali_verifica();
|
void stampa_totali_verifica();
|
||||||
bool calcola_saldo(real&, real&,int,int,long,int);
|
bool calcola_saldo(real&, real&,int,int,long,int);
|
||||||
bool calcola(int,int,long,const TDate&,const TDate&);
|
bool calcola(int,int,long,const TDate&,const TDate&);
|
||||||
real sottoc_clifo_scalare (int,int,int,int);
|
bool sottoc_clifo_scalare (int,int,int,int,real&,real&);
|
||||||
void sottoc_clifo_verifica(int,int,int,char,TString&,TString&,TString&,int,int,bool);
|
void sottoc_clifo_verifica(int,int,int,char,TString&,TString&,TString&,int,int,bool);
|
||||||
const char* causale_apertura() { return _causale_ap;}
|
const char* causale_apertura() { return _causale_ap;}
|
||||||
const char* causale_chiusura() { return _causale_chi;}
|
const char* causale_chiusura() { return _causale_chi;}
|
||||||
@ -368,18 +369,15 @@ public:
|
|||||||
const real& sld_prg_dare = ZERO,
|
const real& sld_prg_dare = ZERO,
|
||||||
const real& sld_prg_avere = ZERO,
|
const real& sld_prg_avere = ZERO,
|
||||||
const real& mov_dare = ZERO,
|
const real& mov_dare = ZERO,
|
||||||
const real& mov_avere = ZERO);
|
const real& mov_avere = ZERO,bool conto_dettagliato = TRUE);
|
||||||
CG1600_application() {}
|
CG1600_application() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
HIDDEN CG1600_application * a() {return (CG1600_application*) MainApp(); }
|
HIDDEN CG1600_application * a() {return (CG1600_application*) MainApp(); }
|
||||||
|
|
||||||
print_action CG1600_application::postprocess_print(int file, int counter)
|
void CG1600_application::postclose_print()
|
||||||
{
|
{
|
||||||
delete _sort;
|
delete _sort;
|
||||||
|
|
||||||
|
|
||||||
return NEXT_PAGE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CG1600_application::set_bil_key(bil_ivd* b, char sezione, char lettera,
|
void CG1600_application::set_bil_key(bil_ivd* b, char sezione, char lettera,
|
||||||
@ -426,7 +424,7 @@ void CG1600_application::set_bil_val(bil_ivd* b, const real& saldo,
|
|||||||
const real& sld_prg_dare,
|
const real& sld_prg_dare,
|
||||||
const real& sld_prg_avere,
|
const real& sld_prg_avere,
|
||||||
const real& mov_dare,
|
const real& mov_dare,
|
||||||
const real& mov_avere)
|
const real& mov_avere,bool conto_dettagliato)
|
||||||
{
|
{
|
||||||
b->saldo = saldo;
|
b->saldo = saldo;
|
||||||
b->saldorafr = saldorafr;
|
b->saldorafr = saldorafr;
|
||||||
@ -434,6 +432,7 @@ void CG1600_application::set_bil_val(bil_ivd* b, const real& saldo,
|
|||||||
b->sld_prg_avere = sld_prg_avere;
|
b->sld_prg_avere = sld_prg_avere;
|
||||||
b->mov_dare = mov_dare;
|
b->mov_dare = mov_dare;
|
||||||
b->mov_avere = mov_avere;
|
b->mov_avere = mov_avere;
|
||||||
|
b->conto_dettagliato = conto_dettagliato;
|
||||||
}
|
}
|
||||||
|
|
||||||
HIDDEN int date2esc(const TDate& d, int* prevesc)
|
HIDDEN int date2esc(const TDate& d, int* prevesc)
|
||||||
@ -528,7 +527,7 @@ bool data_bil_raff (TMask_field& f, KEY key)
|
|||||||
TMask& m = f.mask();
|
TMask& m = f.mask();
|
||||||
int tipobil,tipostampa;
|
int tipobil,tipostampa;
|
||||||
TDate datalim, dataraf;
|
TDate datalim, dataraf;
|
||||||
TDate in = "", in_raf = "", fin_raf = "";
|
TDate in = "", fin = "", in_raf = "", fin_raf = "";
|
||||||
|
|
||||||
if (key == K_ENTER)
|
if (key == K_ENTER)
|
||||||
{
|
{
|
||||||
@ -554,13 +553,15 @@ bool data_bil_raff (TMask_field& f, KEY key)
|
|||||||
in = a()->_inizioEs;
|
in = a()->_inizioEs;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
in = a()->_data_ini_ese;
|
a()->_anni_es.aggiungi_anno(annoese, in, fin);
|
||||||
|
|
||||||
|
TString instr = in.string();
|
||||||
if (dataraf != botime)
|
if (dataraf != botime)
|
||||||
{
|
{
|
||||||
anno = date2esc(dataraf);
|
anno = date2esc(dataraf);
|
||||||
in_raf = a()->_inizioEs;
|
in_raf = a()->_inizioEs;
|
||||||
fin_raf = a()->_fineEs;
|
fin_raf = a()->_fineEs;
|
||||||
|
a()->_anno_esercizio_raf = anno;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
anno == 1;
|
anno == 1;
|
||||||
@ -608,6 +609,7 @@ bool data_bil_raff (TMask_field& f, KEY key)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
a()->_databilrafr = dataraf;
|
a()->_databilrafr = dataraf;
|
||||||
|
a()->_anno_esercizio_raf = annoraf;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} // IF (key == K_ENTER)
|
} // IF (key == K_ENTER)
|
||||||
@ -766,7 +768,7 @@ bool data_inizio(TMask_field& f, KEY k)
|
|||||||
|
|
||||||
anno = f.mask().get_int(F_ANNOESE);
|
anno = f.mask().get_int(F_ANNOESE);
|
||||||
data = f.mask().get (F_DATAINI);
|
data = f.mask().get (F_DATAINI);
|
||||||
a()->_annoese = anno;
|
a()->_anno_esercizio = anno;
|
||||||
|
|
||||||
if (k == K_ENTER)
|
if (k == K_ENTER)
|
||||||
{
|
{
|
||||||
@ -824,7 +826,7 @@ bool data_fine(TMask_field& f, KEY k)
|
|||||||
annoes = f.mask().get_int(F_ANNOESE);
|
annoes = f.mask().get_int(F_ANNOESE);
|
||||||
data = f.mask().get (F_DATAFINE);
|
data = f.mask().get (F_DATAFINE);
|
||||||
data_ini = f.mask().get (F_DATAINI);
|
data_ini = f.mask().get (F_DATAINI);
|
||||||
a()->_annoese = annoes;
|
a()->_anno_esercizio = annoes;
|
||||||
|
|
||||||
if (k == K_ENTER)
|
if (k == K_ENTER)
|
||||||
{
|
{
|
||||||
@ -885,7 +887,7 @@ void CG1600_application::scrivi_record(const TString& sez,
|
|||||||
const TString& let, const TString& numerorom,int numero,
|
const TString& let, const TString& numerorom,int numero,
|
||||||
int g,int c,long s,const real& saldo,const real& saldorafr,
|
int g,int c,long s,const real& saldo,const real& saldorafr,
|
||||||
const real& sld_dare,const real& sld_avere,
|
const real& sld_dare,const real& sld_avere,
|
||||||
const real& mov_dare,const real& mov_avere,char tipocf)
|
const real& mov_dare,const real& mov_avere,char tipocf,bool conto_dettagliato)
|
||||||
{
|
{
|
||||||
|
|
||||||
//Se esiste solamente la sezione,significa che e' un conto d'ordine
|
//Se esiste solamente la sezione,significa che e' un conto d'ordine
|
||||||
@ -893,7 +895,7 @@ void CG1600_application::scrivi_record(const TString& sez,
|
|||||||
//all'ordinamento del sort, i record dei conti d'ordine per ultimi
|
//all'ordinamento del sort, i record dei conti d'ordine per ultimi
|
||||||
|
|
||||||
set_bil_key(_bil, sez[0], let[0], numerorom, numero, TRUE, g, c, s, tipocf);
|
set_bil_key(_bil, sez[0], let[0], numerorom, numero, TRUE, g, c, s, tipocf);
|
||||||
set_bil_val(_bil, saldo, saldorafr, sld_dare, sld_avere, mov_dare, mov_avere);
|
set_bil_val(_bil, saldo, saldorafr, sld_dare, sld_avere, mov_dare, mov_avere,conto_dettagliato);
|
||||||
_sort->sort ((const char*) _bil);
|
_sort->sort ((const char*) _bil);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -901,10 +903,10 @@ void CG1600_application::riempi_record(const TString& sez,
|
|||||||
const TString& let, const TString& numerorom,int numero,
|
const TString& let, const TString& numerorom,int numero,
|
||||||
int g,int c,long s,const real& saldo,const real& saldorafr,
|
int g,int c,long s,const real& saldo,const real& saldorafr,
|
||||||
const real& sld_dare,const real& sld_avere,
|
const real& sld_dare,const real& sld_avere,
|
||||||
const real& mov_dare,const real& mov_avere,char tipocf)
|
const real& mov_dare,const real& mov_avere,char tipocf,bool conto_dettagliato)
|
||||||
{
|
{
|
||||||
set_bil_key(_bil, sez[0], let[0], numerorom, numero, FALSE, g, c, s, tipocf);
|
set_bil_key(_bil, sez[0], let[0], numerorom, numero, FALSE, g, c, s, tipocf);
|
||||||
set_bil_val(_bil, saldo, saldorafr, sld_dare, sld_avere, mov_dare, mov_avere);
|
set_bil_val(_bil, saldo, saldorafr, sld_dare, sld_avere, mov_dare, mov_avere,conto_dettagliato);
|
||||||
_sort->sort ((const char*) _bil);
|
_sort->sort ((const char*) _bil);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1022,7 +1024,7 @@ void CG1600_application::crea_sort_piano_conti_scalare()
|
|||||||
|
|
||||||
saldo_contostr = saldo_conto.string();
|
saldo_contostr = saldo_conto.string();
|
||||||
saldo_conto_rafstr = saldo_conto_raf.string();
|
saldo_conto_rafstr = saldo_conto_raf.string();
|
||||||
riempi_record(sez_conto,let_conto,numr_conto,num_conto,gruppo_prec,conto_prec,0,saldo_conto,saldo_conto_raf,ZERO,ZERO,ZERO,ZERO,tmcf);
|
riempi_record(sez_conto,let_conto,numr_conto,num_conto,gruppo_prec,conto_prec,0,saldo_conto,saldo_conto_raf,ZERO,ZERO,ZERO,ZERO,tmcf,conto_dettagliato);
|
||||||
saldo_conto = ZERO;
|
saldo_conto = ZERO;
|
||||||
saldo_conto_raf = ZERO;
|
saldo_conto_raf = ZERO;
|
||||||
classe_conto = FALSE;
|
classe_conto = FALSE;
|
||||||
@ -1045,7 +1047,7 @@ void CG1600_application::crea_sort_piano_conti_scalare()
|
|||||||
int num_opp = lriga->numero();
|
int num_opp = lriga->numero();
|
||||||
real saldo_conto = lriga->saldo_conto();
|
real saldo_conto = lriga->saldo_conto();
|
||||||
real saldo_conto_raf = lriga->saldo_conto_raf();
|
real saldo_conto_raf = lriga->saldo_conto_raf();
|
||||||
riempi_record(sez_opp,let_opp,numr_opp,num_opp,gruppo_prec,conto_prec,0,saldo_conto,saldo_conto_raf,ZERO,ZERO,ZERO,ZERO,tmcf);
|
riempi_record(sez_opp,let_opp,numr_opp,num_opp,gruppo_prec,conto_prec,0,saldo_conto,saldo_conto_raf,ZERO,ZERO,ZERO,ZERO,tmcf,conto_dettagliato);
|
||||||
}
|
}
|
||||||
sez_opposta = FALSE;
|
sez_opposta = FALSE;
|
||||||
|
|
||||||
@ -1078,7 +1080,7 @@ void CG1600_application::crea_sort_piano_conti_scalare()
|
|||||||
//analizzato, e se questi contiene la classe IV dir. CEE,
|
//analizzato, e se questi contiene la classe IV dir. CEE,
|
||||||
//allore devo controllare se va dettagliato (STSOTTBIL)
|
//allore devo controllare se va dettagliato (STSOTTBIL)
|
||||||
|
|
||||||
if (sez != "")
|
if (sez != "0")
|
||||||
{
|
{
|
||||||
if (!stsottbil || tmcf == 'C' || tmcf == 'F')
|
if (!stsottbil || tmcf == 'C' || tmcf == 'F')
|
||||||
conto_dettagliato = FALSE;
|
conto_dettagliato = FALSE;
|
||||||
@ -1100,7 +1102,19 @@ void CG1600_application::crea_sort_piano_conti_scalare()
|
|||||||
classe_conto = TRUE;
|
classe_conto = TRUE;
|
||||||
|
|
||||||
if (tmcf == 'C' || tmcf == 'F')
|
if (tmcf == 'C' || tmcf == 'F')
|
||||||
saldo_conto = sottoc_clifo_scalare(g, c,_anno_esercizio,indbil);
|
{
|
||||||
|
if (sottoc_clifo_scalare(g, c,_anno_esercizio,indbil,saldo_conto,saldo_conto_raf))
|
||||||
|
{
|
||||||
|
if (sez == "2") //Se la sezione e 2 cambio segno comunque
|
||||||
|
{
|
||||||
|
//if (saldo_conto < ZERO)
|
||||||
|
saldo_conto = -saldo_conto;
|
||||||
|
//if (saldo_conto_raf < ZERO)
|
||||||
|
saldo_conto_raf = -saldo_conto_raf;
|
||||||
|
}
|
||||||
|
no_sez_opposta = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1130,7 +1144,7 @@ void CG1600_application::crea_sort_piano_conti_scalare()
|
|||||||
if (classe_conto)
|
if (classe_conto)
|
||||||
{
|
{
|
||||||
sez_opp = pconti.get(PCN_SEZIVDOPP);
|
sez_opp = pconti.get(PCN_SEZIVDOPP);
|
||||||
if (sez_opp != "")
|
if (sez_opp != "0")
|
||||||
{
|
{
|
||||||
let_opp = pconti.get(PCN_LETTIVDOPP);
|
let_opp = pconti.get(PCN_LETTIVDOPP);
|
||||||
numr_opp = pconti.get(PCN_NUMRIVDOPP);
|
numr_opp = pconti.get(PCN_NUMRIVDOPP);
|
||||||
@ -1247,7 +1261,7 @@ void CG1600_application::crea_sort_piano_conti_scalare()
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
sez_opp = pconti.get(PCN_SEZIVDOPP);
|
sez_opp = pconti.get(PCN_SEZIVDOPP);
|
||||||
if (sez_opp != "")
|
if (sez_opp != "0")
|
||||||
{
|
{
|
||||||
let_opp = pconti.get(PCN_LETTIVDOPP);
|
let_opp = pconti.get(PCN_LETTIVDOPP);
|
||||||
numr_opp = pconti.get(PCN_NUMRIVDOPP);
|
numr_opp = pconti.get(PCN_NUMRIVDOPP);
|
||||||
@ -1299,7 +1313,7 @@ void CG1600_application::crea_sort_piano_conti_scalare()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (sez != "")
|
if (sez != "0")
|
||||||
{
|
{
|
||||||
if (sez == "2")
|
if (sez == "2")
|
||||||
{
|
{
|
||||||
@ -1312,7 +1326,7 @@ void CG1600_application::crea_sort_piano_conti_scalare()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (sez != "")
|
if (sez != "0")
|
||||||
{
|
{
|
||||||
if (sez == "2")
|
if (sez == "2")
|
||||||
{
|
{
|
||||||
@ -1333,7 +1347,7 @@ void CG1600_application::crea_sort_piano_conti_scalare()
|
|||||||
{
|
{
|
||||||
if (no_sez_opposta)
|
if (no_sez_opposta)
|
||||||
{
|
{
|
||||||
riempi_record(sez_conto,let_conto,numr_conto,num_conto,gruppo_prec,c,0,saldo_conto,saldo_conto_raf,ZERO,ZERO,ZERO,ZERO,tmcf);
|
riempi_record(sez_conto,let_conto,numr_conto,num_conto,gruppo_prec,c,0,saldo_conto,saldo_conto_raf,ZERO,ZERO,ZERO,ZERO,tmcf,conto_dettagliato);
|
||||||
saldo_conto = ZERO;
|
saldo_conto = ZERO;
|
||||||
saldo_conto_raf = ZERO;
|
saldo_conto_raf = ZERO;
|
||||||
classe_conto = FALSE;
|
classe_conto = FALSE;
|
||||||
@ -1354,7 +1368,7 @@ void CG1600_application::crea_sort_piano_conti_scalare()
|
|||||||
int num_opp = lriga->numero();
|
int num_opp = lriga->numero();
|
||||||
real saldo_conto = lriga->saldo_conto();
|
real saldo_conto = lriga->saldo_conto();
|
||||||
real saldo_conto_raf = lriga->saldo_conto_raf();
|
real saldo_conto_raf = lriga->saldo_conto_raf();
|
||||||
riempi_record(sez_opp,let_opp,numr_opp,num_opp,gruppo_prec,conto_prec,0,saldo_conto,saldo_conto_raf,ZERO,ZERO,ZERO,ZERO,tmcf);
|
riempi_record(sez_opp,let_opp,numr_opp,num_opp,gruppo_prec,conto_prec,0,saldo_conto,saldo_conto_raf,ZERO,ZERO,ZERO,ZERO,tmcf,conto_dettagliato);
|
||||||
}
|
}
|
||||||
sez_opposta = FALSE;
|
sez_opposta = FALSE;
|
||||||
|
|
||||||
@ -1380,7 +1394,7 @@ void CG1600_application::crea_sort_piano_conti_verifica()
|
|||||||
real saldo,sld_prg_dare,sld_prg_avere,mov_dare,mov_avere;
|
real saldo,sld_prg_dare,sld_prg_avere,mov_dare,mov_avere;
|
||||||
real saldo_conto,sld_prg_dare_conto,sld_prg_avere_conto,mov_dare_conto,mov_avere_conto;
|
real saldo_conto,sld_prg_dare_conto,sld_prg_avere_conto,mov_dare_conto,mov_avere_conto;
|
||||||
|
|
||||||
_sld.set_annoes(_annoese);
|
_sld.set_annoes(_anno_esercizio);
|
||||||
|
|
||||||
saldo_conto = ZERO;
|
saldo_conto = ZERO;
|
||||||
sld_prg_dare_conto = ZERO;
|
sld_prg_dare_conto = ZERO;
|
||||||
@ -1420,7 +1434,7 @@ void CG1600_application::crea_sort_piano_conti_verifica()
|
|||||||
{
|
{
|
||||||
if (c != conto_prec && conto_prec != -1)
|
if (c != conto_prec && conto_prec != -1)
|
||||||
{
|
{
|
||||||
riempi_record(sez_conto,let_conto,numr_conto,num_conto,gruppo_prec,conto_prec,0,saldo_conto,ZERO,sld_prg_dare_conto,sld_prg_avere_conto,mov_dare_conto,mov_avere_conto,tmcf);
|
riempi_record(sez_conto,let_conto,numr_conto,num_conto,gruppo_prec,conto_prec,0,saldo_conto,ZERO,sld_prg_dare_conto,sld_prg_avere_conto,mov_dare_conto,mov_avere_conto,tmcf,conto_dettagliato);
|
||||||
saldo_conto = ZERO;
|
saldo_conto = ZERO;
|
||||||
sld_prg_dare_conto = ZERO;
|
sld_prg_dare_conto = ZERO;
|
||||||
sld_prg_avere_conto = ZERO;
|
sld_prg_avere_conto = ZERO;
|
||||||
@ -1454,7 +1468,7 @@ void CG1600_application::crea_sort_piano_conti_verifica()
|
|||||||
//analizzato , se contiene la classe IV dir. CEE
|
//analizzato , se contiene la classe IV dir. CEE
|
||||||
//allora devo controllare se va dettagliato (STSOTTBIL)
|
//allora devo controllare se va dettagliato (STSOTTBIL)
|
||||||
|
|
||||||
if (sez != "")
|
if (sez != "0")
|
||||||
{
|
{
|
||||||
if ((tmcf == 'C') || (tmcf == 'F'))
|
if ((tmcf == 'C') || (tmcf == 'F'))
|
||||||
{
|
{
|
||||||
@ -1520,7 +1534,7 @@ void CG1600_application::crea_sort_piano_conti_verifica()
|
|||||||
else
|
else
|
||||||
if (_tipo_stampa == 2)
|
if (_tipo_stampa == 2)
|
||||||
{
|
{
|
||||||
if (!_sld.ultima_immissione_bilancio(_annoese,g,c,s,indbil))
|
if (!_sld.ultima_immissione_verifica(_anno_esercizio,g,c,s,indbil))
|
||||||
continue;
|
continue;
|
||||||
app = _sld.saldoini();
|
app = _sld.saldoini();
|
||||||
if (app < ZERO)
|
if (app < ZERO)
|
||||||
@ -1552,7 +1566,7 @@ void CG1600_application::crea_sort_piano_conti_verifica()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (sez != "")
|
if (sez != "0")
|
||||||
scrivi_record(sez,let,numerorom,numero,g,c,s,saldo,ZERO,sld_prg_dare,sld_prg_avere,mov_dare,mov_avere,tmcf);
|
scrivi_record(sez,let,numerorom,numero,g,c,s,saldo,ZERO,sld_prg_dare,sld_prg_avere,mov_dare,mov_avere,tmcf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1564,7 +1578,7 @@ void CG1600_application::crea_sort_piano_conti_verifica()
|
|||||||
{
|
{
|
||||||
if (c != conto_prec && conto_prec != -1)
|
if (c != conto_prec && conto_prec != -1)
|
||||||
{
|
{
|
||||||
riempi_record(sez_conto,let_conto,numr_conto,num_conto,gruppo_prec,c,0,saldo_conto,ZERO,sld_prg_dare_conto,sld_prg_avere_conto,mov_dare_conto,mov_avere_conto,tmcf);
|
riempi_record(sez_conto,let_conto,numr_conto,num_conto,gruppo_prec,c,0,saldo_conto,ZERO,sld_prg_dare_conto,sld_prg_avere_conto,mov_dare_conto,mov_avere_conto,tmcf,conto_dettagliato);
|
||||||
saldo_conto = ZERO;
|
saldo_conto = ZERO;
|
||||||
sld_prg_dare_conto = ZERO;
|
sld_prg_dare_conto = ZERO;
|
||||||
sld_prg_avere_conto = ZERO;
|
sld_prg_avere_conto = ZERO;
|
||||||
@ -1607,10 +1621,14 @@ void CG1600_application::sottoc_clifo_verifica(int g,int c,int anno,char tipocf,
|
|||||||
numr_conto = numerorom;
|
numr_conto = numerorom;
|
||||||
num_conto = numero;
|
num_conto = numero;
|
||||||
|
|
||||||
|
_listasld->restart();
|
||||||
|
|
||||||
for (int i=0 ; i < items; i++)
|
for (int i=0 ; i < items; i++)
|
||||||
{
|
{
|
||||||
const TRectype& r=_listasld->saldi(i);
|
const TRectype* r=_listasld->saldi();
|
||||||
s = r.get_long(SLD_SOTTOCONTO);
|
if (r == NULL) break;
|
||||||
|
|
||||||
|
s = r->get_long(SLD_SOTTOCONTO);
|
||||||
|
|
||||||
saldo = ZERO;
|
saldo = ZERO;
|
||||||
sld_prg_dare = ZERO;
|
sld_prg_dare = ZERO;
|
||||||
@ -1644,7 +1662,7 @@ void CG1600_application::sottoc_clifo_verifica(int g,int c,int anno,char tipocf,
|
|||||||
else
|
else
|
||||||
if (_tipo_stampa == 2)
|
if (_tipo_stampa == 2)
|
||||||
{
|
{
|
||||||
if (!_sld.ultima_immissione_bilancio(_annoese,g,c,s,indbil))
|
if (!_sld.ultima_immissione_bilancio(_anno_esercizio,g,c,s,indbil))
|
||||||
continue;
|
continue;
|
||||||
app = _sld.saldoini();
|
app = _sld.saldoini();
|
||||||
if (app < ZERO)
|
if (app < ZERO)
|
||||||
@ -1671,7 +1689,8 @@ void CG1600_application::sottoc_clifo_verifica(int g,int c,int anno,char tipocf,
|
|||||||
mov_dare_conto += mov_dare;
|
mov_dare_conto += mov_dare;
|
||||||
mov_avere_conto += mov_avere;
|
mov_avere_conto += mov_avere;
|
||||||
}
|
}
|
||||||
riempi_record(sez_conto,let_conto,numr_conto,num_conto,g,c,0,saldo_conto,ZERO,sld_prg_dare_conto,sld_prg_avere_conto,mov_dare_conto,mov_avere_conto,tipocf);
|
if (items > 0)
|
||||||
|
riempi_record(sez_conto,let_conto,numr_conto,num_conto,g,c,0,saldo_conto,ZERO,sld_prg_dare_conto,sld_prg_avere_conto,mov_dare_conto,mov_avere_conto,tipocf,stsottbil);
|
||||||
saldo_conto = ZERO;
|
saldo_conto = ZERO;
|
||||||
sld_prg_dare_conto = ZERO;
|
sld_prg_dare_conto = ZERO;
|
||||||
sld_prg_avere_conto = ZERO;
|
sld_prg_avere_conto = ZERO;
|
||||||
@ -1681,30 +1700,36 @@ void CG1600_application::sottoc_clifo_verifica(int g,int c,int anno,char tipocf,
|
|||||||
delete _listasld;
|
delete _listasld;
|
||||||
}
|
}
|
||||||
|
|
||||||
real CG1600_application::sottoc_clifo_scalare(int g,int c,int anno,int indbil)
|
bool CG1600_application::sottoc_clifo_scalare(int g,int c,int anno,int indbil,real& saldo_conto,real& saldo_conto_raf)
|
||||||
{
|
{
|
||||||
long s;
|
long s;
|
||||||
_listasld = new TSaldi_list (g,c,anno);
|
int aep = 0;
|
||||||
real saldo,saldo_conto,saldo_raf;
|
if (anno) aep = anno-1;
|
||||||
|
_listasld = new TSaldi_list (g,c,anno,aep);
|
||||||
saldo_conto = ZERO;
|
real saldo,saldo_raf;
|
||||||
|
bool trovato = FALSE;
|
||||||
|
|
||||||
int items = _listasld->items();
|
int items = _listasld->items();
|
||||||
|
|
||||||
for (int i=0 ; i < items; i++)
|
for (int i=0 ; i < items; i++)
|
||||||
{
|
{
|
||||||
const TRectype& r=_listasld->saldi(i);
|
const TRectype* r=_listasld->saldi();
|
||||||
s = r.get_long(SLD_SOTTOCONTO);
|
if (r == NULL) break;
|
||||||
|
|
||||||
|
s = r->get_long(SLD_SOTTOCONTO);
|
||||||
|
|
||||||
saldo = ZERO;
|
saldo = ZERO;
|
||||||
|
saldo_raf = ZERO;
|
||||||
|
|
||||||
if (!calcola_saldo(saldo,saldo_raf,g,c,s,indbil))
|
if (!calcola_saldo(saldo,saldo_raf,g,c,s,indbil))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
saldo_conto += saldo;
|
saldo_conto += saldo;
|
||||||
|
saldo_conto_raf += saldo_raf;
|
||||||
|
trovato = TRUE;
|
||||||
}
|
}
|
||||||
delete _listasld;
|
delete _listasld;
|
||||||
return saldo_conto;
|
return trovato;
|
||||||
}
|
}
|
||||||
|
|
||||||
//La funzione calcola_saldo calcola il saldo dell'esercizio in corso e di
|
//La funzione calcola_saldo calcola il saldo dell'esercizio in corso e di
|
||||||
@ -1715,50 +1740,107 @@ bool CG1600_application::calcola_saldo(real& saldo, real& saldo_raf,int g,int c,
|
|||||||
{
|
{
|
||||||
bool no_movimentato = TRUE;
|
bool no_movimentato = TRUE;
|
||||||
bool no_movimentato_raf = TRUE;
|
bool no_movimentato_raf = TRUE;
|
||||||
|
bool esiste = FALSE;
|
||||||
TString saldostr,saldo_rafstr;
|
TString saldostr,saldo_rafstr;
|
||||||
|
|
||||||
_sld.set_annoes(_annoese);
|
_sld.set_annoes(_anno_esercizio);
|
||||||
|
|
||||||
if (_tipo_bilancio == 1)
|
if (_tipo_bilancio == 1)
|
||||||
{
|
{
|
||||||
if (_tipo_stampa == 1) //bilancio per data limite
|
if (_tipo_stampa == 1) //bilancio per data limite
|
||||||
{
|
{
|
||||||
if (!_sld.data_limite_bilancio(_tipo_stampa,g,c,s,_datai,_datalimite,indbil,_stampa_mov_prov))
|
esiste = _sld.data_limite_bilancio(_tipo_stampa,g,c,s,_datai,_datalimite,indbil,_stampa_mov_prov);
|
||||||
|
saldo = _sld.saldo();
|
||||||
|
|
||||||
|
if (!esiste && (!_sld.esiste_saldo() || !_sld.significativo()))
|
||||||
|
no_movimentato = TRUE;
|
||||||
|
else
|
||||||
|
if (!_stampamov)
|
||||||
|
{
|
||||||
|
if (saldo == ZERO)
|
||||||
|
{
|
||||||
|
if (!_sld.esiste_saldo() || !_sld.significativo())
|
||||||
no_movimentato = TRUE;
|
no_movimentato = TRUE;
|
||||||
else
|
else
|
||||||
no_movimentato = FALSE;
|
no_movimentato = FALSE;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
no_movimentato = FALSE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (saldo == ZERO)
|
||||||
|
no_movimentato = TRUE;
|
||||||
|
else
|
||||||
|
no_movimentato = FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (_tipo_stampa == 2)
|
else if (_tipo_stampa == 2)
|
||||||
{
|
{
|
||||||
if (!_sld.ultima_immissione_bilancio(_annoese,g,c,s,indbil))
|
if (!_sld.ultima_immissione_bilancio(_anno_esercizio,g,c,s,indbil))
|
||||||
|
{
|
||||||
|
if (!_sld.esiste_saldo() || !_sld.significativo())
|
||||||
no_movimentato = TRUE;
|
no_movimentato = TRUE;
|
||||||
else
|
else
|
||||||
no_movimentato = FALSE;
|
no_movimentato = FALSE;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
no_movimentato = FALSE;
|
||||||
|
|
||||||
saldo = _sld.saldo();
|
saldo = _sld.saldo();
|
||||||
|
}
|
||||||
saldostr = saldo.string();
|
saldostr = saldo.string();
|
||||||
|
|
||||||
if (_annoeserafr != 0 || _databilrafr != botime)
|
if (_annoeserafr != 0 || _databilrafr != botime)
|
||||||
{
|
{
|
||||||
_sld.set_annoes(_annoeserafr);
|
_sld.set_annoes(_anno_esercizio_raf);
|
||||||
|
|
||||||
if (_tipo_stampa == 1) //bilancio per data limite
|
if (_databilrafr != _data_fine_raf) //(_tipo_stampa == 1) bilancio per data limite
|
||||||
{
|
{
|
||||||
if (!_sld.data_limite_bilancio(_tipo_stampa,g,c,s,_datairaf,_databilrafr,indbil,_stampa_mov_prov))
|
#ifdef DBG
|
||||||
|
TString16 datadep (_databilrafr.string());
|
||||||
|
TString16 datadep2 (_datairaf.string());
|
||||||
|
#endif
|
||||||
|
esiste = _sld.data_limite_bilancio(DataLimite,g,c,s,_datairaf,_databilrafr,indbil,_stampa_mov_prov);
|
||||||
|
saldo_raf = _sld.saldo();
|
||||||
|
|
||||||
|
if (!esiste && (!_sld.esiste_saldo() || !_sld.significativo()))
|
||||||
|
no_movimentato_raf = TRUE;
|
||||||
|
else
|
||||||
|
if (!_stampamov)
|
||||||
|
{
|
||||||
|
if (saldo_raf == ZERO)
|
||||||
|
{
|
||||||
|
if (!_sld.esiste_saldo() || !_sld.significativo())
|
||||||
no_movimentato_raf = TRUE;
|
no_movimentato_raf = TRUE;
|
||||||
else
|
else
|
||||||
no_movimentato_raf = FALSE;
|
no_movimentato_raf = FALSE;
|
||||||
}
|
}
|
||||||
else if (_tipo_stampa == 2)
|
else
|
||||||
|
no_movimentato_raf = FALSE;
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
if (!_sld.ultima_immissione_bilancio(_annoeserafr,g,c,s,indbil))
|
if (saldo_raf == ZERO)
|
||||||
no_movimentato_raf = TRUE;
|
no_movimentato_raf = TRUE;
|
||||||
else
|
else
|
||||||
no_movimentato_raf = FALSE;
|
no_movimentato_raf = FALSE;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else if (_databilrafr == _data_fine_raf) //(_tipo_stampa == 2)
|
||||||
|
{
|
||||||
|
if (!_sld.ultima_immissione_bilancio(_anno_esercizio_raf,g,c,s,indbil))
|
||||||
|
{
|
||||||
|
if (!_sld.esiste_saldo() || !_sld.significativo())
|
||||||
|
no_movimentato_raf = TRUE;
|
||||||
|
else
|
||||||
|
no_movimentato_raf = FALSE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
no_movimentato_raf = FALSE;
|
||||||
|
|
||||||
saldo_raf = _sld.saldo();
|
saldo_raf = _sld.saldo();
|
||||||
|
}
|
||||||
saldo_rafstr = saldo_raf.string();
|
saldo_rafstr = saldo_raf.string();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1920,9 +2002,9 @@ if (tasto == K_ENTER)
|
|||||||
_reset_righe_stampa = TRUE;
|
_reset_righe_stampa = TRUE;
|
||||||
|
|
||||||
set_real_picture("###.###.###.###");
|
set_real_picture("###.###.###.###");
|
||||||
if (_stampamov)
|
// if (_stampamov)
|
||||||
set_print_zero(FALSE);
|
// set_print_zero(FALSE);
|
||||||
else
|
// else
|
||||||
set_print_zero(TRUE);
|
set_print_zero(TRUE);
|
||||||
|
|
||||||
_totale_attivita_gia_stampato = FALSE;
|
_totale_attivita_gia_stampato = FALSE;
|
||||||
@ -1940,6 +2022,29 @@ if (tasto == K_ENTER)
|
|||||||
_numr_tot = "";
|
_numr_tot = "";
|
||||||
_num_tot = "";
|
_num_tot = "";
|
||||||
|
|
||||||
|
_sale = _salerafr = _totale_ordine = _totale_economico = ZERO;
|
||||||
|
_totale_ordine_raf = _totale_economico_raf = _totale_numero = ZERO;
|
||||||
|
_totale_numr = _totale_lettera = _totale_sezione = ZERO;
|
||||||
|
_totale_patrimoniale = _totale_attivita = _totale_passivita = ZERO;
|
||||||
|
_totale_num_raf = _totale_numr_raf = _totale_let_raf = ZERO;
|
||||||
|
_totale_sez_raf = _totale_patrim_raf = _totale_attiv_raf = ZERO;
|
||||||
|
_totale_passiv_raf = _totale_ordine_attivo = _totale_ordine_passivo = ZERO;
|
||||||
|
_totale_ordine_attivo_raf = _totale_ordine_passivo_raf = ZERO;
|
||||||
|
_mov_periodo_dare = _mov_periodo_avere = _prg_prec_dare = ZERO;
|
||||||
|
_prg_prec_avere = _saldo_ini_dare = _saldo_ini_avere = ZERO;
|
||||||
|
_sld_prg_dare = _sld_prg_avere = _mov_dare = _mov_avere = ZERO;
|
||||||
|
_tot_num_saldo = _tot_numr_saldo = _tot_let_saldo = _tot_gen_saldo = ZERO;
|
||||||
|
_tot_num_prg_d = _tot_numr_prg_d = _tot_let_prg_d = _tot_gen_prg_d = ZERO;
|
||||||
|
_tot_num_prg_a = _tot_numr_prg_a = _tot_let_prg_a = _tot_gen_prg_a = ZERO;
|
||||||
|
_tot_num_mov_d = _tot_numr_mov_d = _tot_let_mov_d = _tot_gen_mov_d = ZERO;
|
||||||
|
_tot_num_mov_a = _tot_numr_mov_a = _tot_let_mov_a = _tot_gen_mov_a = ZERO;
|
||||||
|
_tot_num_saldo_d = _tot_numr_saldo_d = _tot_let_saldo_d = ZERO;
|
||||||
|
_tot_gen_saldo_d = _tot_num_saldo_a = _tot_numr_saldo_a = ZERO;
|
||||||
|
_tot_let_saldo_a = _tot_gen_saldo_a = _totale_parziale = ZERO;
|
||||||
|
_totale_parziale_raf = _tot_parz_sld = _tot_parz_sld_d = ZERO;
|
||||||
|
_tot_parz_sld_a = _tot_parz_prg_d = _tot_parz_prg_a = ZERO;
|
||||||
|
_tot_parz_mov_d = _tot_parz_mov_a = ZERO;
|
||||||
|
|
||||||
_datai = _data_ini_ese;
|
_datai = _data_ini_ese;
|
||||||
_datairaf = _data_ini_raf;
|
_datairaf = _data_ini_raf;
|
||||||
TString data1 = _data_ini_ese.string();
|
TString data1 = _data_ini_ese.string();
|
||||||
@ -2011,7 +2116,7 @@ void CG1600_application::stampa_totali()
|
|||||||
|
|
||||||
if (classe > ris_imp && _risimp_fatto)
|
if (classe > ris_imp && _risimp_fatto)
|
||||||
{
|
{
|
||||||
if (_num_tot == "21" || _num_tot == "22")
|
if (_num_tot == "20" || _num_tot == "21")
|
||||||
{
|
{
|
||||||
set_row (_i,"@4gTotale delle partite straordinarie");
|
set_row (_i,"@4gTotale delle partite straordinarie");
|
||||||
set_row (_i++,"@86g%r", &_totale_parziale);
|
set_row (_i++,"@86g%r", &_totale_parziale);
|
||||||
@ -2195,9 +2300,12 @@ void CG1600_application::stampa_totali()
|
|||||||
set_row (_i++,"@86g%r", &_totale_ordine_passivo);
|
set_row (_i++,"@86g%r", &_totale_ordine_passivo);
|
||||||
_i++;
|
_i++;
|
||||||
real totale = _totale_ordine_attivo - _totale_ordine_passivo;
|
real totale = _totale_ordine_attivo - _totale_ordine_passivo;
|
||||||
|
if (totale != ZERO)
|
||||||
|
{
|
||||||
set_row (_i++,"@0gSALDO CONTI D' ORDINE");
|
set_row (_i++,"@0gSALDO CONTI D' ORDINE");
|
||||||
set_row (_i,"@0gSBILANCIO");
|
set_row (_i,"@0gSBILANCIO");
|
||||||
set_row (_i++,"@86g%r", &totale);
|
set_row (_i++,"@86g%r", &totale);
|
||||||
|
}
|
||||||
_totale_ordine_attivo = ZERO;
|
_totale_ordine_attivo = ZERO;
|
||||||
_totale_ordine_passivo = ZERO;
|
_totale_ordine_passivo = ZERO;
|
||||||
gia_stampato_conto_ord = TRUE;
|
gia_stampato_conto_ord = TRUE;
|
||||||
@ -2298,9 +2406,12 @@ void CG1600_application::stampa_totali()
|
|||||||
set_row (_i++,"@86g%r", &_totale_ordine_passivo);
|
set_row (_i++,"@86g%r", &_totale_ordine_passivo);
|
||||||
_i++;
|
_i++;
|
||||||
real totale = _totale_ordine_attivo - _totale_ordine_passivo;
|
real totale = _totale_ordine_attivo - _totale_ordine_passivo;
|
||||||
|
if (totale != ZERO)
|
||||||
|
{
|
||||||
set_row (_i++,"@0gSALDO CONTI D' ORDINE");
|
set_row (_i++,"@0gSALDO CONTI D' ORDINE");
|
||||||
set_row (_i,"@0gSBILANCIO");
|
set_row (_i,"@0gSBILANCIO");
|
||||||
set_row (_i++,"@86g%r", &totale);
|
set_row (_i++,"@86g%r", &totale);
|
||||||
|
}
|
||||||
_totale_ordine_passivo = ZERO;
|
_totale_ordine_passivo = ZERO;
|
||||||
_totale_ordine_attivo = ZERO;
|
_totale_ordine_attivo = ZERO;
|
||||||
}
|
}
|
||||||
@ -2326,6 +2437,20 @@ void CG1600_application::stampa_totali()
|
|||||||
}
|
}
|
||||||
if (_sez_stamp == '9')
|
if (_sez_stamp == '9')
|
||||||
{
|
{
|
||||||
|
if (_buff == NULL)
|
||||||
|
{
|
||||||
|
if ((_let_stamp == 'A' || _let_stamp == 'B') && _diffprod_fatto)//Solo se esiste una delle due lettere
|
||||||
|
{
|
||||||
|
set_row (_i++,"@4gDifferenza tra valore e costi della produzione@86g%r", &_totale_economico);
|
||||||
|
_diffprod_fatto = FALSE;
|
||||||
|
}
|
||||||
|
if (_risimp_fatto)
|
||||||
|
{
|
||||||
|
set_row (_i,"@4gRisultato prima delle imposte");
|
||||||
|
set_row (_i++,"@86g%r", &_totale_economico);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
char app = ' ';
|
char app = ' ';
|
||||||
set_row (_i++,"@0g%c", app);
|
set_row (_i++,"@0g%c", app);
|
||||||
set_row (_i,"@0gRISULTATO CONTO ECONOMICO");
|
set_row (_i,"@0gRISULTATO CONTO ECONOMICO");
|
||||||
@ -2387,7 +2512,7 @@ void CG1600_application::stampa_totali_con_raffronto()
|
|||||||
|
|
||||||
if (classe > ris_imp && _risimp_fatto)
|
if (classe > ris_imp && _risimp_fatto)
|
||||||
{
|
{
|
||||||
if (_num_tot == "21" || _num_tot == "22")
|
if (_num_tot == "20" || _num_tot == "21")
|
||||||
{
|
{
|
||||||
set_row (_i,"@4gTotale delle partite straordinarie");
|
set_row (_i,"@4gTotale delle partite straordinarie");
|
||||||
set_row (_i,"@86g%r", &_totale_parziale);
|
set_row (_i,"@86g%r", &_totale_parziale);
|
||||||
@ -2596,10 +2721,13 @@ void CG1600_application::stampa_totali_con_raffronto()
|
|||||||
_i++;
|
_i++;
|
||||||
real totale = _totale_ordine_attivo - _totale_ordine_passivo;
|
real totale = _totale_ordine_attivo - _totale_ordine_passivo;
|
||||||
real tot_raf = _totale_ordine_attivo_raf - _totale_ordine_passivo_raf;
|
real tot_raf = _totale_ordine_attivo_raf - _totale_ordine_passivo_raf;
|
||||||
|
if (totale != ZERO || tot_raf != ZERO)
|
||||||
|
{
|
||||||
set_row (_i++,"@0gSALDO CONTI D' ORDINE");
|
set_row (_i++,"@0gSALDO CONTI D' ORDINE");
|
||||||
set_row (_i,"@0gSBILANCIO");
|
set_row (_i,"@0gSBILANCIO");
|
||||||
set_row (_i,"@86g%r", &totale);
|
set_row (_i,"@86g%r", &totale);
|
||||||
set_row (_i++,"@112g%r", &tot_raf);
|
set_row (_i++,"@112g%r", &tot_raf);
|
||||||
|
}
|
||||||
_totale_ordine_attivo = ZERO;
|
_totale_ordine_attivo = ZERO;
|
||||||
_totale_ordine_attivo_raf = ZERO;
|
_totale_ordine_attivo_raf = ZERO;
|
||||||
_totale_ordine_passivo = ZERO;
|
_totale_ordine_passivo = ZERO;
|
||||||
@ -2721,10 +2849,13 @@ void CG1600_application::stampa_totali_con_raffronto()
|
|||||||
_i++;
|
_i++;
|
||||||
real totale = _totale_ordine_attivo - _totale_ordine_passivo;
|
real totale = _totale_ordine_attivo - _totale_ordine_passivo;
|
||||||
real tot_raf = _totale_ordine_attivo_raf - _totale_ordine_passivo_raf;
|
real tot_raf = _totale_ordine_attivo_raf - _totale_ordine_passivo_raf;
|
||||||
|
if (totale != ZERO || tot_raf != ZERO)
|
||||||
|
{
|
||||||
set_row (_i++,"@0gSALDO CONTI D' ORDINE");
|
set_row (_i++,"@0gSALDO CONTI D' ORDINE");
|
||||||
set_row (_i,"@0gSBILANCIO");
|
set_row (_i,"@0gSBILANCIO");
|
||||||
set_row (_i,"@86g%r", &totale);
|
set_row (_i,"@86g%r", &totale);
|
||||||
set_row (_i++,"@112g%r", &tot_raf);
|
set_row (_i++,"@112g%r", &tot_raf);
|
||||||
|
}
|
||||||
_totale_ordine_attivo = ZERO;
|
_totale_ordine_attivo = ZERO;
|
||||||
_totale_ordine_attivo_raf = ZERO;
|
_totale_ordine_attivo_raf = ZERO;
|
||||||
_totale_ordine_passivo = ZERO;
|
_totale_ordine_passivo = ZERO;
|
||||||
@ -2757,6 +2888,20 @@ void CG1600_application::stampa_totali_con_raffronto()
|
|||||||
}
|
}
|
||||||
if (_sez_stamp == '9')
|
if (_sez_stamp == '9')
|
||||||
{
|
{
|
||||||
|
if (_buff == NULL)
|
||||||
|
{
|
||||||
|
if ((_let_stamp == 'A' || _let_stamp == 'B') && _diffprod_fatto)
|
||||||
|
{
|
||||||
|
set_row (_i++,"@4gDifferenza tra valore e costi della produzione@86g%r@112g%r", &_totale_economico,&_totale_economico_raf);
|
||||||
|
_diffprod_fatto = FALSE;
|
||||||
|
}
|
||||||
|
if (_risimp_fatto)
|
||||||
|
{
|
||||||
|
set_row (_i,"@4gRisultato prima delle imposte");
|
||||||
|
set_row (_i,"@86g%r", &_totale_economico);
|
||||||
|
set_row (_i++,"@112g%r", &_totale_economico_raf);
|
||||||
|
}
|
||||||
|
}
|
||||||
char app = ' ';
|
char app = ' ';
|
||||||
set_row (_i++,"@0g%c", app);
|
set_row (_i++,"@0g%c", app);
|
||||||
set_row (_i,"@0gRISULTATO CONTO ECONOMICO");
|
set_row (_i,"@0gRISULTATO CONTO ECONOMICO");
|
||||||
@ -2847,7 +2992,7 @@ void CG1600_application::stampa_totali_verifica()
|
|||||||
|
|
||||||
if (classe > ris_imp && _risimp_fatto)
|
if (classe > ris_imp && _risimp_fatto)
|
||||||
{
|
{
|
||||||
if (_num_tot == "21" || _num_tot == "22")
|
if (_num_tot == "20" || _num_tot == "21")
|
||||||
{
|
{
|
||||||
set_row (_i,"@4gTotale delle partite straordinarie");
|
set_row (_i,"@4gTotale delle partite straordinarie");
|
||||||
set_row (_i,"@49g%r", &_tot_parz_prg_d);
|
set_row (_i,"@49g%r", &_tot_parz_prg_d);
|
||||||
@ -3234,6 +3379,7 @@ bool CG1600_application::preprocess_stampa_scalare(int counter)
|
|||||||
long s;
|
long s;
|
||||||
bool fai = TRUE;
|
bool fai = TRUE;
|
||||||
TString saldostr,saldo_rafstr;
|
TString saldostr,saldo_rafstr;
|
||||||
|
bool conto_dettagliato = TRUE;
|
||||||
|
|
||||||
if (!counter)
|
if (!counter)
|
||||||
{
|
{
|
||||||
@ -3313,6 +3459,7 @@ bool CG1600_application::preprocess_stampa_scalare(int counter)
|
|||||||
g = atoi(bil->gruppo);
|
g = atoi(bil->gruppo);
|
||||||
c = atoi(bil->conto);
|
c = atoi(bil->conto);
|
||||||
s = atol(bil->sottoc);
|
s = atol(bil->sottoc);
|
||||||
|
conto_dettagliato = bil->conto_dettagliato;
|
||||||
|
|
||||||
if (_intera_struttura)
|
if (_intera_struttura)
|
||||||
fai = TRUE;
|
fai = TRUE;
|
||||||
@ -3343,7 +3490,7 @@ bool CG1600_application::preprocess_stampa_scalare(int counter)
|
|||||||
_sale = bil->saldo;
|
_sale = bil->saldo;
|
||||||
if (_annoeserafr != 0 || _databilrafr != botime)
|
if (_annoeserafr != 0 || _databilrafr != botime)
|
||||||
_salerafr = bil->saldorafr;
|
_salerafr = bil->saldorafr;
|
||||||
|
/***
|
||||||
if (_stampamov)
|
if (_stampamov)
|
||||||
{
|
{
|
||||||
if (_annoeserafr != 0 || _databilrafr != botime)
|
if (_annoeserafr != 0 || _databilrafr != botime)
|
||||||
@ -3355,25 +3502,26 @@ bool CG1600_application::preprocess_stampa_scalare(int counter)
|
|||||||
if (_sale.is_zero())
|
if (_sale.is_zero())
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
***/
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (bil->gruppo[0]=='Z')
|
if (bil->gruppo[0]=='Z')
|
||||||
{
|
// {
|
||||||
if (_classe_da_stampare != _classe_stampata)
|
if (_classe_da_stampare == _classe_stampata)
|
||||||
{
|
// {
|
||||||
sprintf (bil->gruppo,"%s", " ");
|
// sprintf (bil->gruppo,"%s", " ");
|
||||||
sprintf (bil->conto ,"%s", " ");
|
// sprintf (bil->conto ,"%s", " ");
|
||||||
sprintf (bil->sottoc,"%s", " ");
|
// sprintf (bil->sottoc,"%s", " ");
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
// }
|
||||||
|
|
||||||
_sale = bil->saldo;
|
_sale = bil->saldo;
|
||||||
if (_annoeserafr != 0 || _databilrafr != botime)
|
if (_annoeserafr != 0 || _databilrafr != botime)
|
||||||
_salerafr = bil->saldorafr;
|
_salerafr = bil->saldorafr;
|
||||||
|
/***
|
||||||
if (_stampamov)
|
if (_stampamov)
|
||||||
{
|
{
|
||||||
if (_annoeserafr != 0 || _databilrafr != botime)
|
if (_annoeserafr != 0 || _databilrafr != botime)
|
||||||
@ -3387,12 +3535,13 @@ bool CG1600_application::preprocess_stampa_scalare(int counter)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
***/
|
||||||
}
|
}
|
||||||
|
|
||||||
saldostr = _sale.string();
|
saldostr = _sale.string();
|
||||||
saldo_rafstr = _salerafr.string();
|
saldo_rafstr = _salerafr.string();
|
||||||
|
|
||||||
if ((g != 0) && (c != 0) && (s != 0))
|
if ((g != 0 && c != 0 && s != 0)||(g != 0 && c != 0 && s == 0 && !conto_dettagliato))
|
||||||
{
|
{
|
||||||
// if (_sez_da_stamp == '5')
|
// if (_sez_da_stamp == '5')
|
||||||
// if (_sale < ZERO)
|
// if (_sale < ZERO)
|
||||||
@ -3478,6 +3627,7 @@ bool CG1600_application::preprocess_stampa_verifica(int counter)
|
|||||||
int g,c;
|
int g,c;
|
||||||
long s;
|
long s;
|
||||||
bool fai = TRUE;
|
bool fai = TRUE;
|
||||||
|
bool conto_dettagliato = TRUE;
|
||||||
|
|
||||||
if (!counter)
|
if (!counter)
|
||||||
{
|
{
|
||||||
@ -3574,6 +3724,7 @@ bool CG1600_application::preprocess_stampa_verifica(int counter)
|
|||||||
g = atoi(bil->gruppo);
|
g = atoi(bil->gruppo);
|
||||||
c = atoi(bil->conto);
|
c = atoi(bil->conto);
|
||||||
s = atol(bil->sottoc);
|
s = atol(bil->sottoc);
|
||||||
|
conto_dettagliato = bil->conto_dettagliato;
|
||||||
|
|
||||||
if (_intera_struttura)
|
if (_intera_struttura)
|
||||||
fai = TRUE;
|
fai = TRUE;
|
||||||
@ -3611,16 +3762,16 @@ bool CG1600_application::preprocess_stampa_verifica(int counter)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (bil->gruppo[0]=='Z')
|
if (bil->gruppo[0]=='Z')
|
||||||
{
|
// {
|
||||||
if (_classe_da_stampare != _classe_stampata)
|
if (_classe_da_stampare == _classe_stampata)
|
||||||
{
|
// {
|
||||||
sprintf (bil->gruppo,"%s", " ");
|
// sprintf (bil->gruppo,"%s", " ");
|
||||||
sprintf (bil->conto ,"%s", " ");
|
// sprintf (bil->conto ,"%s", " ");
|
||||||
sprintf (bil->sottoc,"%s", " ");
|
// sprintf (bil->sottoc,"%s", " ");
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (_stampamov)
|
if (_stampamov)
|
||||||
{
|
{
|
||||||
@ -3629,13 +3780,13 @@ bool CG1600_application::preprocess_stampa_verifica(int counter)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((g != 0) && (c != 0) && (s == 0))
|
if ((g != 0) && (c != 0) && (s == 0) && (conto_dettagliato))
|
||||||
{
|
{
|
||||||
if (_sld_prg_avere < ZERO)
|
//if (_sld_prg_avere < ZERO)
|
||||||
_sld_prg_avere = -_sld_prg_avere;
|
// _sld_prg_avere = -_sld_prg_avere;
|
||||||
|
|
||||||
if (_mov_avere < ZERO)
|
//if (_mov_avere < ZERO)
|
||||||
_mov_avere = -_mov_avere;
|
// _mov_avere = -_mov_avere;
|
||||||
|
|
||||||
if (_sale < ZERO)
|
if (_sale < ZERO)
|
||||||
{
|
{
|
||||||
@ -3646,7 +3797,7 @@ bool CG1600_application::preprocess_stampa_verifica(int counter)
|
|||||||
_sez_saldo = 'D';
|
_sez_saldo = 'D';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((g != 0) && (c != 0) && (s != 0))
|
if ((g != 0 && c != 0 && s != 0)||(g != 0 && c != 0 && s == 0 && !conto_dettagliato))
|
||||||
{
|
{
|
||||||
_tot_num_saldo += _sale;
|
_tot_num_saldo += _sale;
|
||||||
_tot_numr_saldo += _sale;
|
_tot_numr_saldo += _sale;
|
||||||
@ -3829,10 +3980,13 @@ void CG1600_application::setta_righe(const char * titolo)
|
|||||||
if ((_sez_da_stamp=='1')||(_sez_da_stamp=='2')||(_sez_da_stamp== '9'))
|
if ((_sez_da_stamp=='1')||(_sez_da_stamp=='2')||(_sez_da_stamp== '9'))
|
||||||
{
|
{
|
||||||
//set_row(_i++,"@0g%s", (const char*) _descr_sez);
|
//set_row(_i++,"@0g%s", (const char*) _descr_sez);
|
||||||
|
if (!_intera_struttura || (_intera_struttura && bil->gruppo[0] != 'Z'))
|
||||||
|
{
|
||||||
_cont_let = 1;
|
_cont_let = 1;
|
||||||
_cont_numr = 1;
|
_cont_numr = 1;
|
||||||
_cont_num = 1;
|
_cont_num = 1;
|
||||||
_cont_gcs = 0;
|
_cont_gcs = 0;
|
||||||
|
}
|
||||||
if (lettera != ' ')
|
if (lettera != ' ')
|
||||||
{
|
{
|
||||||
set_row(_i,"@0g%c", bil->let);
|
set_row(_i,"@0g%c", bil->let);
|
||||||
@ -3877,9 +4031,12 @@ void CG1600_application::setta_righe(const char * titolo)
|
|||||||
set_row(_i,"@0g%c", bil->let);
|
set_row(_i,"@0g%c", bil->let);
|
||||||
set_row(_i++,"@1g)@3g%s", (const char*) descr_let);
|
set_row(_i++,"@1g)@3g%s", (const char*) descr_let);
|
||||||
//_cont_let += 1;
|
//_cont_let += 1;
|
||||||
|
if (!_intera_struttura || (_intera_struttura && bil->gruppo[0] != 'Z'))
|
||||||
|
{
|
||||||
_cont_numr = 1;
|
_cont_numr = 1;
|
||||||
_cont_num = 1;
|
_cont_num = 1;
|
||||||
_cont_gcs = 0;
|
_cont_gcs = 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (numrom != "")
|
if (numrom != "")
|
||||||
{
|
{
|
||||||
@ -3903,8 +4060,11 @@ void CG1600_application::setta_righe(const char * titolo)
|
|||||||
set_row(_i++,"@12g-@14g%s", (const char*) descr_numr);
|
set_row(_i++,"@12g-@14g%s", (const char*) descr_numr);
|
||||||
//_cont_numr += 1;
|
//_cont_numr += 1;
|
||||||
//_cont_numr = 1;
|
//_cont_numr = 1;
|
||||||
|
if (!_intera_struttura || (_intera_struttura && bil->gruppo[0] != 'Z'))
|
||||||
|
{
|
||||||
_cont_num = 1;
|
_cont_num = 1;
|
||||||
_cont_gcs = 0;
|
_cont_gcs = 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (numero != 0)
|
if (numero != 0)
|
||||||
{
|
{
|
||||||
@ -3921,14 +4081,17 @@ void CG1600_application::setta_righe(const char * titolo)
|
|||||||
set_row(_i,"@13g%s", bil->num);
|
set_row(_i,"@13g%s", bil->num);
|
||||||
set_row(_i++,"@15g)@18g%s", (const char*) descr_num);
|
set_row(_i++,"@15g)@18g%s", (const char*) descr_num);
|
||||||
//_cont_num += 1;
|
//_cont_num += 1;
|
||||||
|
if (!_intera_struttura || (_intera_struttura && bil->gruppo[0] != 'Z'))
|
||||||
_cont_gcs = 0;
|
_cont_gcs = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (bil->gruppo[0] != 'A')
|
if (bil->gruppo[0] != 'A')
|
||||||
{
|
{
|
||||||
_cont_gcs += 1;
|
|
||||||
if (!_stampacod)
|
if (!_stampacod)
|
||||||
{
|
{
|
||||||
|
if (!_intera_struttura || (_intera_struttura && bil->gruppo[0] != 'Z'))
|
||||||
|
{
|
||||||
|
_cont_gcs += 1;
|
||||||
set_row (_i,"@18g%s", bil->gruppo);
|
set_row (_i,"@18g%s", bil->gruppo);
|
||||||
set_row (_i,"@22g%s", bil->conto);
|
set_row (_i,"@22g%s", bil->conto);
|
||||||
set_row (_i,"@26g%s", bil->sottoc);
|
set_row (_i,"@26g%s", bil->sottoc);
|
||||||
@ -3938,19 +4101,23 @@ void CG1600_application::setta_righe(const char * titolo)
|
|||||||
set_row (_i,"@112g%r", &_salerafr);
|
set_row (_i,"@112g%r", &_salerafr);
|
||||||
_i++;
|
_i++;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ((sezione != ' ')&&(lettera == ' ')&&(numrom == "")&&(numero == 0))
|
if (!_intera_struttura || (_intera_struttura && bil->gruppo[0] != 'Z'))
|
||||||
|
{
|
||||||
|
_cont_gcs += 1;
|
||||||
|
if ((sezione != '0')&&(lettera == ' ')&&(numrom == "")&&(numero == 0))
|
||||||
descr_classe = _descr_sez;
|
descr_classe = _descr_sez;
|
||||||
if ((sezione != ' ')&&(lettera != ' ')&&(numrom == "")&&(numero == 0))
|
if ((sezione != '0')&&(lettera != ' ')&&(numrom == "")&&(numero == 0))
|
||||||
descr_classe = descr_let;
|
descr_classe = descr_let;
|
||||||
if ((sezione != ' ')&&(lettera != ' ')&&(numrom != "")&&(numero == 0))
|
if ((sezione != '0')&&(lettera != ' ')&&(numrom != "")&&(numero == 0))
|
||||||
descr_classe = descr_numr;
|
descr_classe = descr_numr;
|
||||||
if ((sezione != ' ')&&(lettera != ' ')&&(numrom != "")&&(numero != 0))
|
if ((sezione != '0')&&(lettera != ' ')&&(numrom != "")&&(numero != 0))
|
||||||
descr_classe = descr_num;
|
descr_classe = descr_num;
|
||||||
if (descr_classe != descr_sottoc)
|
if (descr_classe != descr_sottoc)
|
||||||
{
|
{
|
||||||
set_row (_i,"@33g%s", (const char*) descr_sottoc);
|
set_row (_i,"@20g%s", (const char*) descr_sottoc);
|
||||||
set_row (_i,"@86g%r", &_sale);
|
set_row (_i,"@86g%r", &_sale);
|
||||||
if (_annoeserafr != 0 || _databilrafr != botime)
|
if (_annoeserafr != 0 || _databilrafr != botime)
|
||||||
set_row (_i,"@112g%r", &_salerafr);
|
set_row (_i,"@112g%r", &_salerafr);
|
||||||
@ -3959,6 +4126,7 @@ void CG1600_application::setta_righe(const char * titolo)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void CG1600_application::setta_righe_verifica()
|
void CG1600_application::setta_righe_verifica()
|
||||||
{
|
{
|
||||||
@ -4001,11 +4169,14 @@ void CG1600_application::setta_righe_verifica()
|
|||||||
if ((_sez_da_stamp=='1')||(_sez_da_stamp=='2')||(_sez_da_stamp== '9'))
|
if ((_sez_da_stamp=='1')||(_sez_da_stamp=='2')||(_sez_da_stamp== '9'))
|
||||||
{
|
{
|
||||||
if (_let_da_stamp != 'Z')
|
if (_let_da_stamp != 'Z')
|
||||||
|
{
|
||||||
|
if (!_intera_struttura || (_intera_struttura && bil->gruppo[0] != 'Z'))
|
||||||
{
|
{
|
||||||
_cont_let = 1;
|
_cont_let = 1;
|
||||||
_cont_numr = 1;
|
_cont_numr = 1;
|
||||||
_cont_num = 1;
|
_cont_num = 1;
|
||||||
_cont_gcs = 0;
|
_cont_gcs = 0;
|
||||||
|
}
|
||||||
if (lettera != '\0')
|
if (lettera != '\0')
|
||||||
{
|
{
|
||||||
set_row(_i,"@0g%c", bil->let);
|
set_row(_i,"@0g%c", bil->let);
|
||||||
@ -4041,9 +4212,12 @@ void CG1600_application::setta_righe_verifica()
|
|||||||
set_row(_i,"@1g)@3g%s", (const char*) descr_let);
|
set_row(_i,"@1g)@3g%s", (const char*) descr_let);
|
||||||
set_row (_i++,"@48g!@81g!@114g!");
|
set_row (_i++,"@48g!@81g!@114g!");
|
||||||
//_cont_let += 1;
|
//_cont_let += 1;
|
||||||
|
if (!_intera_struttura || (_intera_struttura && bil->gruppo[0] != 'Z'))
|
||||||
|
{
|
||||||
_cont_numr = 1;
|
_cont_numr = 1;
|
||||||
_cont_num = 1;
|
_cont_num = 1;
|
||||||
_cont_gcs = 0;
|
_cont_gcs = 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (numrom != "")
|
if (numrom != "")
|
||||||
{
|
{
|
||||||
@ -4075,8 +4249,11 @@ void CG1600_application::setta_righe_verifica()
|
|||||||
set_row (_i++,"@48g!@81g!@114g!");
|
set_row (_i++,"@48g!@81g!@114g!");
|
||||||
//_cont_numr += 1;
|
//_cont_numr += 1;
|
||||||
//_cont_numr = 1;
|
//_cont_numr = 1;
|
||||||
|
if (!_intera_struttura || (_intera_struttura && bil->gruppo[0] != 'Z'))
|
||||||
|
{
|
||||||
_cont_num = 1;
|
_cont_num = 1;
|
||||||
_cont_gcs = 0;
|
_cont_gcs = 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (numero != 0)
|
if (numero != 0)
|
||||||
{
|
{
|
||||||
@ -4107,9 +4284,11 @@ void CG1600_application::setta_righe_verifica()
|
|||||||
}
|
}
|
||||||
if (bil->gruppo[0] != 'A')
|
if (bil->gruppo[0] != 'A')
|
||||||
{
|
{
|
||||||
_cont_gcs += 1;
|
|
||||||
if (!_stampacod)
|
if (!_stampacod)
|
||||||
{
|
{
|
||||||
|
if (!_intera_struttura || (_intera_struttura && bil->gruppo[0] != 'Z'))
|
||||||
|
{
|
||||||
|
_cont_gcs += 1;
|
||||||
set_row (_i,"@0g%s", bil->gruppo);
|
set_row (_i,"@0g%s", bil->gruppo);
|
||||||
set_row (_i,"@4g%s", bil->conto);
|
set_row (_i,"@4g%s", bil->conto);
|
||||||
set_row (_i,"@8g%s", bil->sottoc);
|
set_row (_i,"@8g%s", bil->sottoc);
|
||||||
@ -4139,19 +4318,23 @@ void CG1600_application::setta_righe_verifica()
|
|||||||
set_row (_i,"@48g!@81g!@114g!");
|
set_row (_i,"@48g!@81g!@114g!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ((sezione != ' ')&&(lettera == ' ')&&(numrom == "")&&(numero == 0))
|
if (!_intera_struttura || (_intera_struttura && bil->gruppo[0] != 'Z'))
|
||||||
|
{
|
||||||
|
_cont_gcs += 1;
|
||||||
|
if ((sezione != '0')&&(lettera == ' ')&&(numrom == "")&&(numero == 0))
|
||||||
descr_classe = _descr_sez;
|
descr_classe = _descr_sez;
|
||||||
if ((sezione != ' ')&&(lettera != ' ')&&(numrom == "")&&(numero == 0))
|
if ((sezione != '0')&&(lettera != ' ')&&(numrom == "")&&(numero == 0))
|
||||||
descr_classe = descr_let;
|
descr_classe = descr_let;
|
||||||
if ((sezione != ' ')&&(lettera != ' ')&&(numrom != "")&&(numero == 0))
|
if ((sezione != '0')&&(lettera != ' ')&&(numrom != "")&&(numero == 0))
|
||||||
descr_classe = descr_numr;
|
descr_classe = descr_numr;
|
||||||
if ((sezione != ' ')&&(lettera != ' ')&&(numrom != "")&&(numero != 0))
|
if ((sezione != '0')&&(lettera != ' ')&&(numrom != "")&&(numero != 0))
|
||||||
descr_classe = descr_num;
|
descr_classe = descr_num;
|
||||||
if (descr_classe != descr_sottoc)
|
if (descr_classe != descr_sottoc)
|
||||||
{
|
{
|
||||||
set_row (_i,"@33g%s", (const char*) descr_sottoc);
|
set_row (_i,"@2g%s", (const char*) descr_sottoc);
|
||||||
set_row (_i,"@49g%r", &_sld_prg_dare);
|
set_row (_i,"@49g%r", &_sld_prg_dare);
|
||||||
set_row (_i,"@66g%r", &_sld_prg_avere);
|
set_row (_i,"@66g%r", &_sld_prg_avere);
|
||||||
set_row (_i,"@82g%r", &_mov_dare);
|
set_row (_i,"@82g%r", &_mov_dare);
|
||||||
@ -4180,6 +4363,7 @@ void CG1600_application::setta_righe_verifica()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const char* CG1600_application::descrizione_sezione(char sezione)
|
const char* CG1600_application::descrizione_sezione(char sezione)
|
||||||
{
|
{
|
||||||
@ -4243,7 +4427,7 @@ const char* CG1600_application::descrizione_numero(char sezione, char lettera, i
|
|||||||
|
|
||||||
tabivd.zero();
|
tabivd.zero();
|
||||||
if (numr != 0)
|
if (numr != 0)
|
||||||
dep = format("%1c%1c%4d%02d",sezione, lettera, numr, numero);
|
dep = format("%1c%1c%04d%02d",sezione, lettera, numr, numero);
|
||||||
else
|
else
|
||||||
dep = format("%c%c %02d",sezione,lettera,numero);
|
dep = format("%c%c %02d",sezione,lettera,numero);
|
||||||
tabivd.put("CODTAB", dep);
|
tabivd.put("CODTAB", dep);
|
||||||
@ -4434,10 +4618,10 @@ void CG1600_application::intesta_scalare()
|
|||||||
TString sep(132);
|
TString sep(132);
|
||||||
|
|
||||||
set_header (3,"@0gSTAMPA BILANCIO CONFORME ALLA IV DIRETTIVA");
|
set_header (3,"@0gSTAMPA BILANCIO CONFORME ALLA IV DIRETTIVA");
|
||||||
set_header (3,"@89gEsercizio@99g%d", _annoese);
|
set_header (3,"@89gEsercizio@99g%d", _anno_esercizio);
|
||||||
if (_annoeserafr != 0 || _databilrafr != botime)
|
if (_annoeserafr != 0 || _databilrafr != botime)
|
||||||
{
|
{
|
||||||
set_header (3,"@115gEsercizio@125g%d", _annoeserafr);
|
set_header (3,"@115gEsercizio@125g%d", _anno_esercizio_raf);
|
||||||
databilrafrstr = _databilrafr.string();
|
databilrafrstr = _databilrafr.string();
|
||||||
set_header (4,"@112galla data@122g%s", (const char*) databilrafrstr);
|
set_header (4,"@112galla data@122g%s", (const char*) databilrafrstr);
|
||||||
}
|
}
|
||||||
|
@ -173,26 +173,40 @@ bool CG1700_application::preprocess_print(int file, int counter)
|
|||||||
bool CG1700_application::preprocess_page(int file,int count)
|
bool CG1700_application::preprocess_page(int file,int count)
|
||||||
{
|
{
|
||||||
TString cau_descr, rcau_descr;
|
TString cau_descr, rcau_descr;
|
||||||
|
TString cau_reg (3);
|
||||||
|
bool cau_alleg, cau_rfatt, cau_intra, cau_val;
|
||||||
|
|
||||||
reset_print();
|
reset_print();
|
||||||
switch (file)
|
switch (file)
|
||||||
{
|
{
|
||||||
case LF_CAUSALI:
|
case LF_CAUSALI:
|
||||||
cau_descr = current_cursor()->file(LF_CAUSALI).get(CAU_DESCR);
|
cau_descr = current_cursor()->file(LF_CAUSALI).get(CAU_DESCR);
|
||||||
|
cau_reg = current_cursor()->file(LF_CAUSALI).get(CAU_REG);
|
||||||
|
cau_alleg = current_cursor()->file(LF_CAUSALI).get_bool(CAU_ALLEG);
|
||||||
|
cau_rfatt = current_cursor()->file(LF_CAUSALI).get_bool(CAU_RITFATT);
|
||||||
|
cau_intra = current_cursor()->file(LF_CAUSALI).get_bool(CAU_INTRACOM);
|
||||||
|
cau_val = current_cursor()->file(LF_CAUSALI).get_bool(CAU_MOVVAL);
|
||||||
*_descr_causale = (const char*) cau_descr;
|
*_descr_causale = (const char*) cau_descr;
|
||||||
setta_righe_descr(_descr_causale,causale);
|
setta_righe_descr(_descr_causale,causale);
|
||||||
set_row(1, "@0g@3s", FLD(LF_CAUSALI,CAU_CODCAUS));
|
set_row(1, "@0g@3s", FLD(LF_CAUSALI,CAU_CODCAUS));
|
||||||
set_row(1, "@30g@2s", FLD(LF_CAUSALI,CAU_TIPODOC));
|
set_row(1, "@30g@2s", FLD(LF_CAUSALI,CAU_TIPODOC));
|
||||||
set_row(1, "@84g@3s", FLD(LF_CAUSALI,CAU_REG));
|
set_row(1, "@84g@3s", FLD(LF_CAUSALI,CAU_REG));
|
||||||
set_row(1, "@89g@f", FLD(LF_CAUSALI,CAU_ALLEG));
|
if (cau_reg.not_empty())
|
||||||
|
//set_row(1, "@89g@f", FLD(LF_CAUSALI,CAU_ALLEG));
|
||||||
|
if (cau_alleg)
|
||||||
|
set_row(1, "@89gNo");
|
||||||
|
else set_row(1, "@89gSi");
|
||||||
set_row(1, "@95g@1s", FLD(LF_CAUSALI,CAU_M770));
|
set_row(1, "@95g@1s", FLD(LF_CAUSALI,CAU_M770));
|
||||||
set_row(1, "@99g@1s", FLD(LF_CAUSALI,CAU_COLLCESP));
|
set_row(1, "@99g@1s", FLD(LF_CAUSALI,CAU_COLLCESP));
|
||||||
set_row(1, "@104g@1n", FLD(LF_CAUSALI,CAU_TIPOMOV));
|
set_row(1, "@104g@1n", FLD(LF_CAUSALI,CAU_TIPOMOV));
|
||||||
set_row(1, "@108g@f", FLD(LF_CAUSALI,CAU_NUMDOC));
|
set_row(1, "@108g@f", FLD(LF_CAUSALI,CAU_NUMDOC));
|
||||||
set_row(1, "@113g@f", FLD(LF_CAUSALI,CAU_DATADOC));
|
set_row(1, "@113g@f", FLD(LF_CAUSALI,CAU_DATADOC));
|
||||||
set_row(1, "@118g@3s", FLD(LF_CAUSALI,CAU_CODCAUSIM));
|
set_row(1, "@118g@3s", FLD(LF_CAUSALI,CAU_CODCAUSIM));
|
||||||
|
if (cau_intra)
|
||||||
set_row(1, "@123g@f", FLD(LF_CAUSALI,CAU_INTRACOM));
|
set_row(1, "@123g@f", FLD(LF_CAUSALI,CAU_INTRACOM));
|
||||||
|
if (cau_val)
|
||||||
set_row(1, "@126g@f", FLD(LF_CAUSALI,CAU_MOVVAL));
|
set_row(1, "@126g@f", FLD(LF_CAUSALI,CAU_MOVVAL));
|
||||||
|
if (cau_rfatt)
|
||||||
set_row(1, "@130g@f", FLD(LF_CAUSALI,CAU_RITFATT));
|
set_row(1, "@130g@f", FLD(LF_CAUSALI,CAU_RITFATT));
|
||||||
break;
|
break;
|
||||||
case LF_RCAUSALI:
|
case LF_RCAUSALI:
|
||||||
@ -251,7 +265,7 @@ void CG1700_application::user_create()
|
|||||||
{
|
{
|
||||||
_msk = new TMask("cg1700a");
|
_msk = new TMask("cg1700a");
|
||||||
_rel = new TRelation (LF_CAUSALI);
|
_rel = new TRelation (LF_CAUSALI);
|
||||||
_rel->add(LF_RCAUSALI,"CODCAUS=CODCAUS",1);
|
_rel->add(LF_RCAUSALI,"CODCAUS==CODCAUS",1);
|
||||||
|
|
||||||
_cur = new TCursor (_rel,"", 1);
|
_cur = new TCursor (_rel,"", 1);
|
||||||
add_cursor(_cur);
|
add_cursor(_cur);
|
||||||
|
127
cg/cg3200.cpp
127
cg/cg3200.cpp
@ -96,6 +96,7 @@ public:
|
|||||||
void calcola_progressivi();
|
void calcola_progressivi();
|
||||||
void calcola_progressivi_al();
|
void calcola_progressivi_al();
|
||||||
void stampa_progressivi();
|
void stampa_progressivi();
|
||||||
|
void stampa_progre_riporto();
|
||||||
void documenti_iva();
|
void documenti_iva();
|
||||||
void ricerca_regiva();
|
void ricerca_regiva();
|
||||||
void descrizione_causale();
|
void descrizione_causale();
|
||||||
@ -482,6 +483,7 @@ bool CG3200_application::preprocess_page(int file, int counter)
|
|||||||
_conto = atoi(current_cursor()->curr(LF_SALDI).get(SLD_CONTO));
|
_conto = atoi(current_cursor()->curr(LF_SALDI).get(SLD_CONTO));
|
||||||
_sottoc = atol(current_cursor()->curr(LF_SALDI).get(SLD_SOTTOCONTO));
|
_sottoc = atol(current_cursor()->curr(LF_SALDI).get(SLD_SOTTOCONTO));
|
||||||
annoes = atoi(current_cursor()->curr(LF_SALDI).get(SLD_ANNOES));
|
annoes = atoi(current_cursor()->curr(LF_SALDI).get(SLD_ANNOES));
|
||||||
|
conto();
|
||||||
|
|
||||||
if (annoes != _anno_corrente && annoes != _anno_precedente)
|
if (annoes != _anno_corrente && annoes != _anno_precedente)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -493,22 +495,22 @@ bool CG3200_application::preprocess_page(int file, int counter)
|
|||||||
_c_prec = _conto;
|
_c_prec = _conto;
|
||||||
_s_prec = _sottoc;
|
_s_prec = _sottoc;
|
||||||
|
|
||||||
_saldo_periodo =0;
|
_saldo_periodo = ZERO;
|
||||||
_totale_periodo_dare =0;
|
_totale_periodo_dare = ZERO;
|
||||||
_totale_periodo_avere =0;
|
_totale_periodo_avere = ZERO;
|
||||||
_saldo_progre =0;
|
_saldo_progre = ZERO;
|
||||||
_totprogre_dare =0;
|
_totprogre_dare = ZERO;
|
||||||
_totprogre_avere =0;
|
_totprogre_avere = ZERO;
|
||||||
_saldo_progre_al =0;
|
_saldo_progre_al = ZERO;
|
||||||
_totprogre_dare_al =0;
|
_totprogre_dare_al = ZERO;
|
||||||
_totprogre_avere_al =0;
|
_totprogre_avere_al = ZERO;
|
||||||
_progredare =0;
|
_progredare = ZERO;
|
||||||
_progreavere =0;
|
_progreavere = ZERO;
|
||||||
_totale_prima_dare =0;
|
_totale_prima_dare = ZERO;
|
||||||
_totale_prima_avere =0;
|
_totale_prima_avere = ZERO;
|
||||||
_saldo_movimenti =0;
|
_saldo_movimenti = ZERO;
|
||||||
_saldo_progressivi =0;
|
_saldo_progressivi = ZERO;
|
||||||
_saldo_progre_prec =0;
|
_saldo_progre_prec = ZERO;
|
||||||
if (_tipostampa == 2)
|
if (_tipostampa == 2)
|
||||||
saldi_zero();
|
saldi_zero();
|
||||||
else
|
else
|
||||||
@ -520,6 +522,7 @@ bool CG3200_application::preprocess_page(int file, int counter)
|
|||||||
{
|
{
|
||||||
_puoi_stampare = TRUE;
|
_puoi_stampare = TRUE;
|
||||||
calcola_progressivi();
|
calcola_progressivi();
|
||||||
|
stampa_progre_riporto();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -537,7 +540,10 @@ bool CG3200_application::preprocess_page(int file, int counter)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
_puoi_stampare = TRUE;
|
_puoi_stampare = TRUE;
|
||||||
|
stampa_progre_riporto();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -906,6 +912,23 @@ bool CG3200_application::set_print(int)
|
|||||||
|
|
||||||
_anno_precedente = _anno_corrente - 1;
|
_anno_precedente = _anno_corrente - 1;
|
||||||
|
|
||||||
|
_saldo_periodo = ZERO;
|
||||||
|
_totale_periodo_dare = ZERO;
|
||||||
|
_totale_periodo_avere = ZERO;
|
||||||
|
_saldo_progre = ZERO;
|
||||||
|
_totprogre_dare = ZERO;
|
||||||
|
_totprogre_avere = ZERO;
|
||||||
|
_saldo_progre_al = ZERO;
|
||||||
|
_totprogre_dare_al = ZERO;
|
||||||
|
_totprogre_avere_al = ZERO;
|
||||||
|
_progredare = ZERO;
|
||||||
|
_progreavere = ZERO;
|
||||||
|
_totale_prima_dare = ZERO;
|
||||||
|
_totale_prima_avere = ZERO;
|
||||||
|
_saldo_movimenti = ZERO;
|
||||||
|
_saldo_progressivi = ZERO;
|
||||||
|
_saldo_progre_prec = ZERO;
|
||||||
|
|
||||||
// Scelta del formato e del numero di mastrini per pagina 1 o 2
|
// Scelta del formato e del numero di mastrini per pagina 1 o 2
|
||||||
|
|
||||||
if (nummast == 1)
|
if (nummast == 1)
|
||||||
@ -1075,7 +1098,7 @@ void CG3200_application::crea_intestazione()
|
|||||||
set_header (3, "@16g%d", _conto);
|
set_header (3, "@16g%d", _conto);
|
||||||
set_header (3, "@20g%d", _sottoc);
|
set_header (3, "@20g%d", _sottoc);
|
||||||
|
|
||||||
conto();
|
// conto();
|
||||||
|
|
||||||
if (_tmcf == 'C')
|
if (_tmcf == 'C')
|
||||||
_tipo_mask = 1;
|
_tipo_mask = 1;
|
||||||
@ -1112,6 +1135,7 @@ void CG3200_application::crea_intestazione()
|
|||||||
sep1.fill('-');
|
sep1.fill('-');
|
||||||
set_header (9,"@1g%s", (const char *) sep1);
|
set_header (9,"@1g%s", (const char *) sep1);
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
if (_stampa_progressivi_si)
|
if (_stampa_progressivi_si)
|
||||||
{
|
{
|
||||||
stampa_progressivi();
|
stampa_progressivi();
|
||||||
@ -1150,6 +1174,51 @@ void CG3200_application::crea_intestazione()
|
|||||||
sep1 ="";
|
sep1 ="";
|
||||||
set_header(11,"@1g%s",(const char*) sep1);
|
set_header(11,"@1g%s",(const char*) sep1);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
void CG3200_application::stampa_progre_riporto()
|
||||||
|
{
|
||||||
|
TString sep(132),sep1(198);
|
||||||
|
|
||||||
|
if (_stampa_progressivi_si)
|
||||||
|
{
|
||||||
|
stampa_progressivi();
|
||||||
|
_riporto_dare = _progredare;
|
||||||
|
_riporto_avere = _progreavere;
|
||||||
|
_stampa_progressivi_si = FALSE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_riporto_dare += _riporto_parziale_dare;
|
||||||
|
_riporto_avere += _riporto_parziale_avere;
|
||||||
|
if (_numcarat == 1)
|
||||||
|
{
|
||||||
|
TString string = _riporto_dare.string("###############");
|
||||||
|
set_row (1,"@32gA RIPORTO@85g%15s",(const char*) string);
|
||||||
|
string = _riporto_avere.string("###############");
|
||||||
|
set_row (1,"@101g%15s",(const char*) string);
|
||||||
|
}
|
||||||
|
if (_numcarat == 2)
|
||||||
|
{
|
||||||
|
TString string = _riporto_dare.string("###############");
|
||||||
|
set_row (1,"@32gA RIPORTO@102g%15s",(const char*) string);
|
||||||
|
string = _riporto_avere.string("###############");
|
||||||
|
set_row (1,"@119g%15s",(const char*) string);
|
||||||
|
}
|
||||||
|
_riporto_parziale_dare = 0;
|
||||||
|
_riporto_parziale_avere = 0;
|
||||||
|
}
|
||||||
|
if (_numcarat == 1)
|
||||||
|
{
|
||||||
|
sep ="";
|
||||||
|
set_row(2,"@1g%s",(const char*) sep);
|
||||||
|
}
|
||||||
|
else if (_numcarat == 2)
|
||||||
|
{
|
||||||
|
sep1 ="";
|
||||||
|
set_row(2,"@1g%s",(const char*) sep1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CG3200_application::calcola_progressivi_al()
|
void CG3200_application::calcola_progressivi_al()
|
||||||
@ -1220,13 +1289,13 @@ void CG3200_application::calcola_progressivi()
|
|||||||
char salini;
|
char salini;
|
||||||
// TRectype record(saldi.curr());
|
// TRectype record(saldi.curr());
|
||||||
|
|
||||||
saldo = 0.00;
|
saldo = ZERO;
|
||||||
pdarep = 0.00;
|
pdarep = ZERO;
|
||||||
paverep = 0.00;
|
paverep = ZERO;
|
||||||
pdaresca = 0.00;
|
pdaresca = ZERO;
|
||||||
paveresca = 0.00;
|
paveresca = ZERO;
|
||||||
pdarescap = 0.00;
|
pdarescap = ZERO;
|
||||||
paverescap = 0.00;
|
paverescap = ZERO;
|
||||||
|
|
||||||
// Ricerca sull'archivio saldi dei record con gruppo,conto,sottoconto
|
// Ricerca sull'archivio saldi dei record con gruppo,conto,sottoconto
|
||||||
// uguali a quelli di rmov per il calcolo dei progressivi precedenti
|
// uguali a quelli di rmov per il calcolo dei progressivi precedenti
|
||||||
@ -1366,19 +1435,19 @@ void CG3200_application::stampa_progressivi()
|
|||||||
if (_numcarat == 1)
|
if (_numcarat == 1)
|
||||||
{
|
{
|
||||||
TString string = _saldo_progre_prec.string("###############");
|
TString string = _saldo_progre_prec.string("###############");
|
||||||
set_header (10,"@32gPROGRESSIVI PRECEDENTI@69g%15s",(const char*) string);
|
set_row (1,"@32gPROGRESSIVI PRECEDENTI@69g%15s",(const char*) string);
|
||||||
string = _progredare.string("###############");
|
string = _progredare.string("###############");
|
||||||
set_header (10,"@85g%15s",(const char*) string);
|
set_row (1,"@85g%15s",(const char*) string);
|
||||||
string = _progreavere.string("###############");
|
string = _progreavere.string("###############");
|
||||||
set_header (10,"@101g%15s",(const char*) string);
|
set_row (1,"@101g%15s",(const char*) string);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_numcarat == 2)
|
if (_numcarat == 2)
|
||||||
{
|
{
|
||||||
TString string = _progredare.string("###############");
|
TString string = _progredare.string("###############");
|
||||||
set_header (10,"@32gPROGRESSIVI PRECEDENTI@102g%15s",(const char*)string);
|
set_row (1,"@32gPROGRESSIVI PRECEDENTI@102g%15s",(const char*)string);
|
||||||
string = _progreavere.string("###############");
|
string = _progreavere.string("###############");
|
||||||
set_header (10,"@119g%15s",(const char*) string);
|
set_row (1,"@119g%15s",(const char*) string);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Se la ricerca selezionata nella maschera e' per clienti, oppure fornitori, // allora ricerco su CLIFO i relativi dati, e su PCON il relativo gruppo,conto,// sottoconto e IV direttiva CEE
|
// Se la ricerca selezionata nella maschera e' per clienti, oppure fornitori, // allora ricerco su CLIFO i relativi dati, e su PCON il relativo gruppo,conto,// sottoconto e IV direttiva CEE
|
||||||
|
@ -126,6 +126,75 @@ BEGIN
|
|||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
|
NUMBER F_SOTTOCINI_CLIENTE 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 48 5 ""
|
||||||
|
USE LF_CLIFO
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
INPUT TIPOCF "C"
|
||||||
|
INPUT CODCF F_SOTTOCINI_CLIENTE
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
OUTPUT F_SOTTOCINI_CLIENTE CODCF
|
||||||
|
OUTPUT F_DESCRINI_CLIENTE RAGSOC
|
||||||
|
MESSAGE COPY,F_SOTTOCINI_CONTO
|
||||||
|
FLAGS "R"
|
||||||
|
GROUP 2
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DESCRINI_CLIENTE 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 4 6 "Ragione sociale C "
|
||||||
|
FIELD LF_CLIFO->RAGSOC
|
||||||
|
USE LF_CLIFO KEY 2
|
||||||
|
INPUT TIPOCF "C"
|
||||||
|
INPUT RAGSOC F_DESCRINI_CLIENTE
|
||||||
|
DISPLAY "Ragione Sociale Cliente@50" RAGSOC
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
COPY OUTPUT F_SOTTOCINI_CLIENTE
|
||||||
|
MESSAGE COPY,F_DESCRINI_CONTO
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
GROUP 2
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_SOTTOCINI_FORN 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 48 5 ""
|
||||||
|
USE LF_CLIFO
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
INPUT TIPOCF "F"
|
||||||
|
INPUT CODCF F_SOTTOCINI_FORN
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
OUTPUT F_SOTTOCINI_FORN CODCF
|
||||||
|
OUTPUT F_DESCRINI_FORN RAGSOC
|
||||||
|
FLAGS "R"
|
||||||
|
GROUP 3
|
||||||
|
MESSAGE COPY,F_SOTTOCINI_CONTO
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DESCRINI_FORN 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 4 6 "Ragione Sociale F "
|
||||||
|
USE LF_CLIFO KEY 2
|
||||||
|
INPUT TIPOCF "F"
|
||||||
|
INPUT RAGSOC F_DESCRINI_FORN
|
||||||
|
DISPLAY "Ragione Sociale Fornitore@50" RAGSOC
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
COPY OUTPUT F_DESCRINI_CONTO
|
||||||
|
MESSAGE COPY,F_DESCRINI_CONTO
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
GROUP 3
|
||||||
|
END
|
||||||
|
|
||||||
NUMBER F_GRUPPOFINE 3
|
NUMBER F_GRUPPOFINE 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 4 7 "A Gruppo - Conto - Sottoconto "
|
PROMPT 4 7 "A Gruppo - Conto - Sottoconto "
|
||||||
@ -351,7 +420,7 @@ END
|
|||||||
LIST F_STAMPANUM 15
|
LIST F_STAMPANUM 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 4 15 "Stampa numerazione "
|
PROMPT 4 15 "Stampa numerazione "
|
||||||
ITEM "1|Registrazione"
|
ITEM "1|Operazione"
|
||||||
ITEM "2|Riga giornale"
|
ITEM "2|Riga giornale"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
@ -29,7 +29,8 @@
|
|||||||
#include "cg3400b.h"
|
#include "cg3400b.h"
|
||||||
|
|
||||||
HIDDEN const char* REAL_PICTURE = "###.###.###.###";
|
HIDDEN const char* REAL_PICTURE = "###.###.###.###";
|
||||||
HIDDEN const char* REAL_TOT_PIC = "##.###.###.###.###.###";
|
HIDDEN const char* REAL_TOT_PIC = "#.###.###.###.###";
|
||||||
|
HIDDEN const char* RIP_TOT_PIC = "##.###.###.###.###.###";
|
||||||
HIDDEN const int RIGHE_MODULO = 66;
|
HIDDEN const int RIGHE_MODULO = 66;
|
||||||
HIDDEN const int RIGHE_FOOTER = 10;
|
HIDDEN const int RIGHE_FOOTER = 10;
|
||||||
|
|
||||||
@ -425,12 +426,10 @@ void CG3400_application::set_page_132 (int file, int counter)
|
|||||||
set_row (r, "#-3ld", &_nprog_mov);
|
set_row (r, "#-3ld", &_nprog_mov);
|
||||||
else
|
else
|
||||||
set_row (r, "@3,rn", FLD(LF_RMOV, RMV_NUMREG));
|
set_row (r, "@3,rn", FLD(LF_RMOV, RMV_NUMREG));
|
||||||
set_row (r, "@4g@d@13g@pn@pn@pn",
|
set_row (r, "@4g@d", FLD(LF_RMOV, RMV_DATAREG));
|
||||||
FLD(LF_RMOV, RMV_DATAREG),
|
set_row (r, "@13g@pn", FLD(LF_RMOV, RMV_GRUPPO, "@@."));
|
||||||
FLD(LF_RMOV, RMV_GRUPPO, "@@."),
|
set_row (r, "@pn", FLD(LF_RMOV, RMV_CONTO , "@@."));
|
||||||
FLD(LF_RMOV, RMV_CONTO , "@@."),
|
set_row (r, "@pn", FLD(LF_RMOV, RMV_SOTTOCONTO, "@@@@@@"));
|
||||||
FLD(LF_RMOV, RMV_SOTTOCONTO, "@@@@@@")
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -516,10 +515,10 @@ void CG3400_application::postclose_print()
|
|||||||
{
|
{
|
||||||
_pagina_da = -1;
|
_pagina_da = -1;
|
||||||
aggiorna_mov ();
|
aggiorna_mov ();
|
||||||
}
|
|
||||||
aggiorna_tabreg (_pagina_da, stampate);
|
aggiorna_tabreg (_pagina_da, stampate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void CG3400_application::preprocess_footer()
|
void CG3400_application::preprocess_footer()
|
||||||
{
|
{
|
||||||
@ -624,7 +623,8 @@ int CG3400_application::set_header_198()
|
|||||||
|
|
||||||
if (_stampa_intesta) r = stampa_intestazione_ditta();
|
if (_stampa_intesta) r = stampa_intestazione_ditta();
|
||||||
|
|
||||||
set_header(r, "@bCodice libro:@r %s %s @bdalla data:@r %s @balla data:@r %s @bEsercizio:@r %04d",
|
// set_header(r, "@bCodice libro:@r %s %s @bdalla data:@r %s @balla data:@r %s @bEsercizio:@r %04d",
|
||||||
|
set_header(r, "Codice libro: %s %s dalla data: %s alla data: %s Esercizio: %04d",
|
||||||
(const char *) _reg_cod, (const char *) _reg_descr,
|
(const char *) _reg_cod, (const char *) _reg_descr,
|
||||||
(const char *) data_da, (const char *) data_a, _ae);
|
(const char *) data_da, (const char *) data_a, _ae);
|
||||||
r++;
|
r++;
|
||||||
@ -687,7 +687,8 @@ int CG3400_application::set_header_132()
|
|||||||
set_header(r, riga);
|
set_header(r, riga);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
set_header(r++, "@bCodice libro:@r %s %s @50g@bdalla data:@r %s @balla data:@r %s @bEsercizio:@r %04d",
|
// set_header(r++, "@bCodice libro:@r %s %s @bdalla data:@r %s @balla data:@r %s @bEsercizio:@r %04d",
|
||||||
|
set_header(r++, "Codice libro: %s %s @69gdalla data: %s alla data: %s Esercizio: %04d",
|
||||||
(const char *) _reg_cod, (const char *) _reg_descr,
|
(const char *) _reg_cod, (const char *) _reg_descr,
|
||||||
(const char *) data_da, (const char *) data_a, _ae);
|
(const char *) data_da, (const char *) data_a, _ae);
|
||||||
|
|
||||||
@ -746,11 +747,11 @@ void CG3400_application::preprocess_header()
|
|||||||
riporto_dare = _tot_dare_progr + _tot_dare_progr_ap;
|
riporto_dare = _tot_dare_progr + _tot_dare_progr_ap;
|
||||||
riporto_avere = _tot_avere_progr + _tot_avere_progr_ap;
|
riporto_avere = _tot_avere_progr + _tot_avere_progr_ap;
|
||||||
|
|
||||||
TString dare(riporto_dare.string(REAL_TOT_PIC));
|
TString dare (riporto_dare.string(RIP_TOT_PIC));
|
||||||
TString avere(riporto_avere.string(REAL_TOT_PIC));
|
TString avere(riporto_avere.string(RIP_TOT_PIC));
|
||||||
|
|
||||||
if (_stampa_width == 132)
|
if (_stampa_width == 132)
|
||||||
frm = "@b@78g";
|
frm = "@b@84g";
|
||||||
else
|
else
|
||||||
frm = "@b@100g";
|
frm = "@b@100g";
|
||||||
|
|
||||||
@ -1072,21 +1073,21 @@ void CG3400_application::setta_righe_descr(TParagraph_string* str, enum descr de
|
|||||||
{
|
{
|
||||||
case causale: // lunga 20
|
case causale: // lunga 20
|
||||||
if (_libro_giornale_iva_unico)
|
if (_libro_giornale_iva_unico)
|
||||||
frm = "@i@10g%.20s@r";
|
frm = "@10g%.20s";
|
||||||
else
|
else
|
||||||
frm = "@i@48g%.20s@r";
|
frm = "@48g%.20s";
|
||||||
break;
|
break;
|
||||||
case conto: // lunga 21
|
case conto: // lunga 21
|
||||||
if (_libro_giornale_iva_unico)
|
if (_libro_giornale_iva_unico)
|
||||||
frm = "@i@69g%s@r";
|
frm = "@69g%s";
|
||||||
else
|
else
|
||||||
frm = "@i@26g%s@r";
|
frm = "@26g%s";
|
||||||
break;
|
break;
|
||||||
case operazione: // lunga 28
|
case operazione: // lunga 28
|
||||||
if (_libro_giornale_iva_unico)
|
if (_libro_giornale_iva_unico)
|
||||||
frm = "@i@31g%s@r";
|
frm = "@31g%s";
|
||||||
else
|
else
|
||||||
frm = "@i@69g%s@r";
|
frm = "@69g%s";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -19,6 +19,7 @@ BEGIN
|
|||||||
// OUTPUT DATA_DA D0
|
// OUTPUT DATA_DA D0
|
||||||
// OUTPUT DATA_A D1
|
// OUTPUT DATA_A D1
|
||||||
// CHECKTYPE NORMAL
|
// CHECKTYPE NORMAL
|
||||||
|
FLAGS "U"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER ANNO_ESER 4
|
NUMBER ANNO_ESER 4
|
||||||
|
467
cg/cg5200.cpp
Executable file
467
cg/cg5200.cpp
Executable file
@ -0,0 +1,467 @@
|
|||||||
|
// cg5200.cpp - Visualizzazione saldi
|
||||||
|
|
||||||
|
#include <applicat.h>
|
||||||
|
#include <msksheet.h>
|
||||||
|
#include <relapp.h>
|
||||||
|
#include <brwapp.h>
|
||||||
|
#include <tabutil.h>
|
||||||
|
#include <config.h>
|
||||||
|
#include <utility.h>
|
||||||
|
#include <urldefid.h>
|
||||||
|
#include <cglib.h>
|
||||||
|
#include <saldi.h>
|
||||||
|
#include <clifo.h>
|
||||||
|
#include <pconti.h>
|
||||||
|
#include "cg5200.h"
|
||||||
|
|
||||||
|
HIDDEN const char* REAL_PICTURE = "###.###.###.###";
|
||||||
|
|
||||||
|
class TRiga_array : public TArray
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
bool add_riga(const TRectype& rec_saldi);
|
||||||
|
};
|
||||||
|
|
||||||
|
bool TRiga_array::add_riga(const TRectype& rec_saldi)
|
||||||
|
{
|
||||||
|
bool found = FALSE;
|
||||||
|
int annoes, annoesr;
|
||||||
|
char flag, flagr;
|
||||||
|
TDate udata, udatar;
|
||||||
|
long unum, unumr;
|
||||||
|
real pdaresca,paveresca,pdare,pavere,saldoini,pdarepro,paverepro;
|
||||||
|
real pdarescar,paverescar,pdarer,paverer,saldoinir,pdarepror,paverepror;
|
||||||
|
|
||||||
|
for (int i = 0; i < items(); i++)
|
||||||
|
{
|
||||||
|
TRectype& r = (TRectype&)(*this)[i];
|
||||||
|
annoes = r.get_int(SLD_ANNOES);
|
||||||
|
annoesr = rec_saldi.get_int(SLD_ANNOES);
|
||||||
|
if ( annoes == annoesr )
|
||||||
|
{
|
||||||
|
pdaresca = r.get_real(SLD_PDARESCA);
|
||||||
|
paveresca = r.get_real(SLD_PAVERESCA);
|
||||||
|
flag = r.get_char(SLD_FLAGSALINI);
|
||||||
|
pdare = r.get_real(SLD_PDARE);
|
||||||
|
pavere = r.get_real(SLD_PAVERE);
|
||||||
|
saldoini = r.get_real(SLD_SALDO);
|
||||||
|
pdarepro = r.get_real(SLD_PDAREPRO);
|
||||||
|
paverepro = r.get_real(SLD_PAVEREPRO);
|
||||||
|
udata = r.get(SLD_DATAULMOV);
|
||||||
|
unum = r.get_long(SLD_NUMULTMOV);
|
||||||
|
pdarescar = rec_saldi.get_real(SLD_PDARESCA);
|
||||||
|
pdarescar += pdaresca;
|
||||||
|
paverescar = rec_saldi.get_real(SLD_PAVERESCA);
|
||||||
|
paverescar+= paveresca;
|
||||||
|
flagr = rec_saldi.get_char(SLD_FLAGSALINI);
|
||||||
|
pdarer = rec_saldi.get_real(SLD_PDARE);
|
||||||
|
pdarer += pdare;
|
||||||
|
paverer = rec_saldi.get_real(SLD_PAVERE);
|
||||||
|
paverer += pavere;
|
||||||
|
saldoinir = rec_saldi.get_real(SLD_SALDO);
|
||||||
|
udatar = rec_saldi.get(SLD_DATAULMOV);
|
||||||
|
unumr = rec_saldi.get_long(SLD_NUMULTMOV);
|
||||||
|
udatar = fnc_max(udatar,udata);
|
||||||
|
unumr = (unum > unumr) ? unum : unumr;
|
||||||
|
if (flagr == 'D')
|
||||||
|
saldoinir += saldoini;
|
||||||
|
else if (flagr == 'A')
|
||||||
|
saldoinir -= saldoini;
|
||||||
|
pdarepror = rec_saldi.get_real(SLD_PDAREPRO);
|
||||||
|
pdarepror += pdarepro;
|
||||||
|
paverepror = rec_saldi.get_real(SLD_PAVEREPRO);
|
||||||
|
paverepror += paverepro;
|
||||||
|
found = TRUE;
|
||||||
|
r.put(SLD_ANNOES, annoes);
|
||||||
|
r.put(SLD_PDARESCA, pdarescar);
|
||||||
|
r.put(SLD_PAVERESCA,paverescar);
|
||||||
|
r.put(SLD_PDARE, pdarer);
|
||||||
|
r.put(SLD_PAVERE,paverer);
|
||||||
|
r.put(SLD_SALDO, saldoinir);
|
||||||
|
r.put(SLD_PDAREPRO, pdarepror);
|
||||||
|
r.put(SLD_PAVEREPRO,paverepro);
|
||||||
|
r.put(SLD_DATAULMOV, udatar);
|
||||||
|
r.put(SLD_NUMULTMOV, unumr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!found)
|
||||||
|
{
|
||||||
|
TRectype* r = new TRectype(rec_saldi);//ci copia anche i valori di rec_saldi
|
||||||
|
add(r);
|
||||||
|
}
|
||||||
|
return found;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool gruppo_handler (TMask_field& f, KEY k);
|
||||||
|
bool sottoc_handler (TMask_field& f, KEY k);
|
||||||
|
|
||||||
|
class CG5200_application : public TBrowse_application
|
||||||
|
{
|
||||||
|
friend bool gruppo_handler (TMask_field& f, KEY k);
|
||||||
|
friend bool sottoc_handler (TMask_field& f, KEY k);
|
||||||
|
|
||||||
|
TMask* _msk;
|
||||||
|
TLocalisamfile* _pcon,* _clifo;
|
||||||
|
TCursor * _cur;
|
||||||
|
TRelation * _rel,* _rel1;
|
||||||
|
TRiga_array _riga;
|
||||||
|
int _items, _anno, _g, _c;
|
||||||
|
long _s;
|
||||||
|
bool _saldo_conto, _saldo_gruppo, _saldo_sottoc;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual bool user_create();
|
||||||
|
virtual bool user_destroy();
|
||||||
|
virtual TRelation* get_relation() const { return _rel; }
|
||||||
|
virtual TMask* get_mask(int mode) { return _msk; }
|
||||||
|
virtual bool changing_mask(int mode) {return FALSE; }
|
||||||
|
virtual int read(TMask& m);
|
||||||
|
|
||||||
|
public:
|
||||||
|
void add_r(int,int,real&,real&,real&,char,real&,real&,
|
||||||
|
real&,real&,TDate&,long,real&,real&,real&);
|
||||||
|
void compilasheet();
|
||||||
|
bool fai_filtro();
|
||||||
|
TMask* main_mask() const {return _msk;}
|
||||||
|
TSheet_field& ss() const { return (TSheet_field&)_msk->field(F_SHEET_SALDI);}
|
||||||
|
|
||||||
|
CG5200_application() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
HIDDEN CG5200_application * app() { return (CG5200_application*) MainApp(); }
|
||||||
|
|
||||||
|
bool CG5200_application::fai_filtro()
|
||||||
|
{
|
||||||
|
TSaldo sld;
|
||||||
|
int annop = 0;
|
||||||
|
char tipo;
|
||||||
|
|
||||||
|
_saldo_gruppo = _saldo_conto = _saldo_sottoc = FALSE;
|
||||||
|
TMask* m = app()->main_mask();
|
||||||
|
tipo = m->get(F_TIPOCF)[0];
|
||||||
|
_anno = m->get_int(F_ANNO);
|
||||||
|
_g = m->get_int(F_GRUPPO);
|
||||||
|
_c = m->get_int(F_CONTO);
|
||||||
|
if (tipo == ' ')
|
||||||
|
_s = m->get_long(F_SOTTOCONTO);
|
||||||
|
else if (tipo == 'C')
|
||||||
|
_s = m->get_long(F_SOTTOC_CLIENTE);
|
||||||
|
else _s = m->get_long(F_SOTTOC_FORN);
|
||||||
|
if (_c == 0)
|
||||||
|
_saldo_gruppo = TRUE;
|
||||||
|
else if (_s == 0l)
|
||||||
|
_saldo_conto = TRUE;
|
||||||
|
else _saldo_sottoc = TRUE;
|
||||||
|
|
||||||
|
TLocalisamfile& saldi = _rel1->lfile();
|
||||||
|
TRectype from (saldi.curr());
|
||||||
|
TRectype to (saldi.curr());
|
||||||
|
from.zero();
|
||||||
|
to.zero();
|
||||||
|
|
||||||
|
if (_anno != 0)
|
||||||
|
annop = sld.EsePre(_anno);
|
||||||
|
|
||||||
|
if (annop != 0)
|
||||||
|
from.put(SLD_ANNOES,annop);
|
||||||
|
else if (_anno != 0)
|
||||||
|
from.put(SLD_ANNOES,_anno);
|
||||||
|
else from.put(SLD_ANNOES,0);
|
||||||
|
from.put(SLD_GRUPPO,_g);
|
||||||
|
if (_c != 0)
|
||||||
|
from.put(SLD_CONTO, _c);
|
||||||
|
if (_s != 0l)
|
||||||
|
from.put(SLD_SOTTOCONTO, _s);
|
||||||
|
|
||||||
|
if (_anno != 0)
|
||||||
|
to.put(SLD_ANNOES,_anno);
|
||||||
|
else to.put(SLD_ANNOES, 9999);
|
||||||
|
to.put(SLD_GRUPPO,_g);
|
||||||
|
if (_c != 0)
|
||||||
|
to.put(SLD_CONTO,_c);
|
||||||
|
if (_s != 0l)
|
||||||
|
to.put(SLD_SOTTOCONTO,_s);
|
||||||
|
|
||||||
|
if ( _saldo_gruppo || _saldo_conto )
|
||||||
|
_cur->setkey(1);
|
||||||
|
|
||||||
|
if (_saldo_sottoc)
|
||||||
|
_cur->setkey(2);
|
||||||
|
|
||||||
|
_cur->setregion(from,to);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool gruppo_handler(TMask_field& f, KEY key)
|
||||||
|
{
|
||||||
|
if ( key == K_TAB && f.mask().is_running() )
|
||||||
|
{
|
||||||
|
const TMask& m = f.mask();
|
||||||
|
const int gruppo = m.get_int(F_GRUPPO);
|
||||||
|
const int conto = m.get_int(F_CONTO);
|
||||||
|
const long sottoc = m.get_long(F_SOTTOCONTO);
|
||||||
|
TLocalisamfile& pconti = app()->get_relation()->lfile();
|
||||||
|
|
||||||
|
if (gruppo == 0)
|
||||||
|
{
|
||||||
|
if (conto != 0 || sottoc != 0)
|
||||||
|
return f.warning_box("Codice conto impossibile!");
|
||||||
|
else
|
||||||
|
return f.error_box("E' obbligatorio l'inserimento del gruppo");
|
||||||
|
}
|
||||||
|
if (conto > 0 && sottoc == 0) // conto => ricerca gruppo
|
||||||
|
{
|
||||||
|
pconti.zero() ;
|
||||||
|
pconti.put(PCN_GRUPPO, gruppo) ;
|
||||||
|
pconti.setkey(1) ;
|
||||||
|
pconti.read(_isequal, _nolock );
|
||||||
|
if (pconti.bad())
|
||||||
|
return f.warning_box ("Non esiste il gruppo relativo a questo conto");
|
||||||
|
}
|
||||||
|
if (sottoc > 0) // sottoconto => ricerca conto
|
||||||
|
{
|
||||||
|
pconti.zero() ;
|
||||||
|
pconti.put(PCN_GRUPPO, gruppo) ;
|
||||||
|
pconti.put(PCN_CONTO, conto) ;
|
||||||
|
pconti.setkey(1) ;
|
||||||
|
pconti.read(_isequal, _nolock );
|
||||||
|
if (pconti.bad())
|
||||||
|
return f.warning_box ("Non esiste il conto relativo a questo sottoconto");
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TString tmcf = pconti.get(PCN_TMCF);
|
||||||
|
if (tmcf.not_empty())
|
||||||
|
return f.warning_box ("Non puoi inserire un sottoconto di un conto relativo ad un cliente/fornitore");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool sottoc_handler(TMask_field& f, KEY key)
|
||||||
|
{
|
||||||
|
if (key == K_TAB)
|
||||||
|
{
|
||||||
|
const short id = f.dlg();
|
||||||
|
TLocalisamfile clifo (LF_CLIFO);
|
||||||
|
int gruppo = f.mask().get_int(F_GRUPPO);
|
||||||
|
if (gruppo == 0) return TRUE;
|
||||||
|
int conto = f.mask().get_int(F_CONTO);
|
||||||
|
long sottoconto = f.mask().get_long(id);
|
||||||
|
if (sottoconto != 0 && conto == 0) return f.error_box("Manca il CONTO");
|
||||||
|
if (id == F_SOTTOC_CLIENTE || id == F_SOTTOC_FORN)
|
||||||
|
{
|
||||||
|
char tmcf = f.mask().get(F_TIPOCF)[0];
|
||||||
|
clifo.zero() ;
|
||||||
|
clifo.put(CLI_TIPOCF,tmcf);
|
||||||
|
clifo.put(CLI_CODCF,sottoconto);
|
||||||
|
clifo.setkey(1) ;
|
||||||
|
clifo.read(_isequal, _nolock );
|
||||||
|
if (clifo.bad())
|
||||||
|
return f.warning_box ("Registrazione assente");
|
||||||
|
}
|
||||||
|
f.mask().stop_run(K_AUTO_ENTER);
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CG5200_application::user_create()
|
||||||
|
{
|
||||||
|
_msk = new TMask("cg5200a");
|
||||||
|
_msk->set_handler(F_GRUPPO, gruppo_handler);
|
||||||
|
_msk->set_handler(F_SOTTOCONTO, sottoc_handler);
|
||||||
|
_msk->set_handler(F_SOTTOC_CLIENTE, sottoc_handler);
|
||||||
|
_msk->set_handler(F_SOTTOC_FORN, sottoc_handler);
|
||||||
|
_pcon = new TLocalisamfile(LF_PCON);
|
||||||
|
_clifo = new TLocalisamfile(LF_CLIFO);
|
||||||
|
_rel = new TRelation(LF_PCON);
|
||||||
|
_rel1 = new TRelation(LF_SALDI);
|
||||||
|
_cur = new TCursor(_rel1, "", 2);
|
||||||
|
set_search_field(F_GRUPPO);
|
||||||
|
TSheet_field& cs = ss();
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CG5200_application::user_destroy()
|
||||||
|
{
|
||||||
|
delete _msk;
|
||||||
|
delete _pcon;
|
||||||
|
delete _clifo;
|
||||||
|
delete _rel;
|
||||||
|
delete _rel1;
|
||||||
|
delete _cur;
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CG5200_application::read(TMask& m)
|
||||||
|
{
|
||||||
|
m.autoload(_rel);
|
||||||
|
fai_filtro();
|
||||||
|
compilasheet();
|
||||||
|
ss().force_update();
|
||||||
|
|
||||||
|
return NOERR;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CG5200_application::add_r(int numrig,int a,real& pds,real& pas,real& sc,char f,real& si,real& pd,
|
||||||
|
real& pa,real& s,TDate& d,long n,real& pdp,real& pap,real& sp)
|
||||||
|
{
|
||||||
|
TSheet_field& cs = ss();
|
||||||
|
TString dep (18);
|
||||||
|
if (sc > ZERO)
|
||||||
|
dep << sc.string(REAL_PICTURE) << " D";
|
||||||
|
else if (sc < ZERO)
|
||||||
|
{
|
||||||
|
sc = -sc;
|
||||||
|
dep << sc.string(REAL_PICTURE) << " A";
|
||||||
|
}
|
||||||
|
TToken_string& riga = cs.row(numrig);
|
||||||
|
riga.add(a, 0);
|
||||||
|
riga.add(pds.string(),1);
|
||||||
|
riga.add(pas.string(),2);
|
||||||
|
riga.add(dep,3);
|
||||||
|
dep = "";
|
||||||
|
if (si != ZERO)
|
||||||
|
dep << si.string(REAL_PICTURE) << " " << f;
|
||||||
|
riga.add(dep,4);
|
||||||
|
riga.add(pd.string(),5);
|
||||||
|
riga.add(pa.string(),6);
|
||||||
|
dep = "";
|
||||||
|
if (s > ZERO)
|
||||||
|
dep << s.string(REAL_PICTURE) << " D";
|
||||||
|
else if (s < ZERO)
|
||||||
|
{
|
||||||
|
s = -s;
|
||||||
|
dep << s.string(REAL_PICTURE) << " A";
|
||||||
|
}
|
||||||
|
riga.add(dep,7);
|
||||||
|
riga.add(d.string(),8);
|
||||||
|
riga.add(n,9);
|
||||||
|
riga.add(pdp.string(),10);
|
||||||
|
riga.add(pap.string(),11);
|
||||||
|
dep = "";
|
||||||
|
if (sp > ZERO)
|
||||||
|
dep << sp.string(REAL_PICTURE) << " D";
|
||||||
|
else if (sp < ZERO)
|
||||||
|
{
|
||||||
|
sp = -sp;
|
||||||
|
dep << sp.string(REAL_PICTURE) << " A";
|
||||||
|
}
|
||||||
|
riga.add(dep,12);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CG5200_application::compilasheet()
|
||||||
|
{
|
||||||
|
char flagsal = ' ';
|
||||||
|
real saldo = ZERO;
|
||||||
|
real saldosca = ZERO;
|
||||||
|
real saldopro = ZERO;
|
||||||
|
real saldo_gc = ZERO;
|
||||||
|
real saldoini_gc = ZERO;
|
||||||
|
real saldosca_gc = ZERO;
|
||||||
|
real saldopro_gc = ZERO;
|
||||||
|
real prg_dare_gc = ZERO;
|
||||||
|
real prg_avere_gc = ZERO;
|
||||||
|
real prg_daresca_gc = ZERO;
|
||||||
|
real prg_averesca_gc = ZERO;
|
||||||
|
real prg_darepro_gc = ZERO;
|
||||||
|
real prg_averepro_gc = ZERO;
|
||||||
|
real saldoini = ZERO;
|
||||||
|
real pdare = ZERO;
|
||||||
|
real pavere = ZERO;
|
||||||
|
real pdaresca = ZERO;
|
||||||
|
real paveresca = ZERO;
|
||||||
|
real pdarepro = ZERO;
|
||||||
|
real paverepro = ZERO;
|
||||||
|
int gruppo, conto, anno;
|
||||||
|
long sottoconto;
|
||||||
|
long ultimo_num = 0l;
|
||||||
|
TDate ultima_data = 0;
|
||||||
|
|
||||||
|
ss().reset();
|
||||||
|
_riga.destroy();
|
||||||
|
|
||||||
|
TRecnotype items = _cur->items();
|
||||||
|
*_cur = 0l;
|
||||||
|
|
||||||
|
for (int i = 0; i < items; i++,++(*_cur))
|
||||||
|
{
|
||||||
|
anno = _cur->curr().get_int(SLD_ANNOES);
|
||||||
|
gruppo = _cur->curr().get_int(SLD_GRUPPO);
|
||||||
|
conto = _cur->curr().get_int(SLD_CONTO);
|
||||||
|
sottoconto = _cur->curr().get_long(SLD_SOTTOCONTO);
|
||||||
|
|
||||||
|
if (gruppo != _g) continue;
|
||||||
|
|
||||||
|
if (_saldo_conto && conto != _c) continue;
|
||||||
|
|
||||||
|
if (_saldo_conto || _saldo_gruppo)
|
||||||
|
_riga.add_riga(_cur->curr());
|
||||||
|
|
||||||
|
if (_saldo_sottoc)
|
||||||
|
{
|
||||||
|
flagsal = _cur->curr().get_char(SLD_FLAGSALINI);
|
||||||
|
saldoini = _cur->curr().get_real(SLD_SALDO);
|
||||||
|
pdare = _cur->curr().get_real(SLD_PDARE);
|
||||||
|
pavere = _cur->curr().get_real(SLD_PAVERE);
|
||||||
|
pdaresca = _cur->curr().get_real(SLD_PDARESCA);
|
||||||
|
paveresca = _cur->curr().get_real(SLD_PAVERESCA);
|
||||||
|
pdarepro = _cur->curr().get_real(SLD_PDAREPRO);
|
||||||
|
paverepro = _cur->curr().get_real(SLD_PAVEREPRO);
|
||||||
|
ultima_data = _cur->curr().get(SLD_DATAULMOV);
|
||||||
|
ultimo_num = _cur->curr().get_long(SLD_NUMULTMOV);
|
||||||
|
if (flagsal == 'D')
|
||||||
|
saldo = pdare + saldoini - pavere;
|
||||||
|
else
|
||||||
|
saldo = pdare - saldoini - pavere;
|
||||||
|
saldosca = pdaresca - paveresca;
|
||||||
|
saldopro = pdarepro - paverepro;
|
||||||
|
|
||||||
|
add_r(i,anno,pdaresca,paveresca,saldosca,flagsal,saldoini,pdare,pavere,saldo,ultima_data,ultimo_num,pdarepro,paverepro,saldopro);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (_saldo_gruppo || _saldo_conto)
|
||||||
|
{
|
||||||
|
for (int j = 0; j < _riga.items(); j++)
|
||||||
|
{
|
||||||
|
TRectype& riga = (TRectype&)_riga[j];
|
||||||
|
anno = riga.get_int(SLD_ANNOES);
|
||||||
|
pdaresca = riga.get_real(SLD_PDARESCA);
|
||||||
|
paveresca = riga.get_real(SLD_PAVERESCA);
|
||||||
|
saldosca = pdaresca - paveresca;
|
||||||
|
saldoini = riga.get_real(SLD_SALDO);
|
||||||
|
pdare = riga.get_real(SLD_PDARE);
|
||||||
|
pavere = riga.get_real(SLD_PAVERE);
|
||||||
|
saldo = pdare - pavere + saldoini;
|
||||||
|
if (saldoini > ZERO)
|
||||||
|
flagsal = 'D';
|
||||||
|
else if (saldoini < ZERO)
|
||||||
|
{
|
||||||
|
flagsal = 'A';
|
||||||
|
saldoini = -saldoini;
|
||||||
|
}
|
||||||
|
pdarepro = riga.get_real(SLD_PDAREPRO);
|
||||||
|
paverepro = riga.get_real(SLD_PAVEREPRO);
|
||||||
|
saldopro = pdarepro - paverepro;
|
||||||
|
ultima_data = riga.get(SLD_DATAULMOV);
|
||||||
|
ultimo_num = riga.get_long(SLD_NUMULTMOV);
|
||||||
|
add_r(j,anno,pdaresca,paveresca,saldosca,flagsal,saldoini,pdare,pavere,saldo,ultima_data,ultimo_num,pdarepro,paverepro,saldopro);
|
||||||
|
}
|
||||||
|
_riga.destroy();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int cg5200(int argc, char* argv[])
|
||||||
|
{
|
||||||
|
CG5200_application a;
|
||||||
|
a.run(argc, argv, "Visualizzazione saldi");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
11
cg/cg5200.h
Executable file
11
cg/cg5200.h
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#define F_ANNO 101
|
||||||
|
#define F_TIPOCF 102
|
||||||
|
#define F_GRUPPO 103
|
||||||
|
#define F_CONTO 104
|
||||||
|
#define F_SOTTOCONTO 105
|
||||||
|
#define F_DESCR_CONTO 106
|
||||||
|
#define F_SOTTOC_CLIENTE 107
|
||||||
|
#define F_DESCR_CLIENTE 108
|
||||||
|
#define F_SOTTOC_FORN 109
|
||||||
|
#define F_DESCR_FORN 110
|
||||||
|
#define F_SHEET_SALDI 111
|
340
cg/cg5200a.uml
Executable file
340
cg/cg5200a.uml
Executable file
@ -0,0 +1,340 @@
|
|||||||
|
#include "cg5200.h"
|
||||||
|
|
||||||
|
TOOLBAR "" 0 20 0 2
|
||||||
|
|
||||||
|
#include <browbar.h>
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
PAGE "Visualizzazione saldi" -1 -1 78 18
|
||||||
|
|
||||||
|
NUMBER F_ANNO 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 4 1 "Anno esercizio "
|
||||||
|
KEY 1
|
||||||
|
USE ESC
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
INPUT CODTAB[1,4] F_ANNO
|
||||||
|
DISPLAY "Anno" CODTAB[1,4]
|
||||||
|
DISPLAY "Data inizio esercizio" D0
|
||||||
|
DISPLAY "Data fine esercizio" D1
|
||||||
|
OUTPUT F_ANNO CODTAB[1,4]
|
||||||
|
FLAGS "RZ"
|
||||||
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 73 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 3 2 ""
|
||||||
|
//FLAGS "R"
|
||||||
|
END
|
||||||
|
|
||||||
|
LIST F_TIPOCF 9
|
||||||
|
BEGIN
|
||||||
|
PROMPT 4 3 "Tipo "
|
||||||
|
FLAGS "U"
|
||||||
|
ITEM " |Conto" MESSAGE HIDE,2@|HIDE,3@|SHOW,1@
|
||||||
|
ITEM "C|Cliente" MESSAGE HIDE,1@|HIDE,3@|SHOW,2@
|
||||||
|
ITEM "F|Fornitore" MESSAGE HIDE,1@|HIDE,2@|SHOW,3@
|
||||||
|
KEY 1
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_GRUPPO 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 26 3 "Gruppo "
|
||||||
|
USE LF_PCON KEY 1 SELECT CONTO=""
|
||||||
|
FIELD LF_PCON->GRUPPO
|
||||||
|
KEY 1
|
||||||
|
INPUT GRUPPO F_GRUPPO
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Descrizione@50" DESCR
|
||||||
|
OUTPUT F_GRUPPO GRUPPO
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
FLAGS "R"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_CONTO 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 3 "Conto "
|
||||||
|
USE LF_PCON SELECT (CONTO!="") && (SOTTOCONTO="")
|
||||||
|
FIELD LF_PCON->CONTO
|
||||||
|
KEY 1
|
||||||
|
INPUT GRUPPO F_GRUPPO
|
||||||
|
INPUT CONTO F_CONTO
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Descrizione@50" DESCR
|
||||||
|
OUTPUT F_TIPOCF TMCF
|
||||||
|
OUTPUT F_GRUPPO GRUPPO
|
||||||
|
OUTPUT F_CONTO CONTO
|
||||||
|
OUTPUT F_DESCR_CONTO DESCR
|
||||||
|
FLAGS "R"
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
WARNING "Conto inesistente o mancante"
|
||||||
|
//MESSAGE DIRTY,F_SOTTOCONTO|DIRTY,F_SOTTOC_CLIENTE|DIRTY,F_SOTTOC_FORN
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_SOTTOCONTO 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 54 3 "Sottoconto "
|
||||||
|
USE LF_PCON SELECT SOTTOCONTO!=""
|
||||||
|
FIELD LF_PCON->SOTTOCONTO
|
||||||
|
KEY 1
|
||||||
|
INPUT GRUPPO F_GRUPPO
|
||||||
|
INPUT CONTO F_CONTO
|
||||||
|
INPUT SOTTOCONTO F_SOTTOCONTO
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Sottoconto" SOTTOCONTO
|
||||||
|
DISPLAY "Descrizione@50" DESCR
|
||||||
|
OUTPUT F_GRUPPO GRUPPO
|
||||||
|
OUTPUT F_CONTO CONTO
|
||||||
|
OUTPUT F_SOTTOCONTO SOTTOCONTO
|
||||||
|
OUTPUT F_DESCR_CONTO DESCR
|
||||||
|
//MESSAGE COPY,F_SOTTOC_FORN //li gestisco da programma senno' fanno casino
|
||||||
|
//MESSAGE COPY,F_SOTTOC_CLIENTE
|
||||||
|
FLAGS "R"
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
GROUP 1
|
||||||
|
VALIDATE AUTOEXIT_FUNC 3 F_GRUPPO F_CONTO F_SOTTOCONTO
|
||||||
|
WARNING "Conto inesistente"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_SOTTOC_CLIENTE 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 54 3 "Cliente "
|
||||||
|
USE LF_CLIFO
|
||||||
|
//FIELD LF_CLIFO->CODCF
|
||||||
|
INPUT TIPOCF "C"
|
||||||
|
INPUT CODCF F_SOTTOC_CLIENTE
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
OUTPUT F_SOTTOC_CLIENTE CODCF
|
||||||
|
OUTPUT F_DESCR_CLIENTE RAGSOC
|
||||||
|
//MESSAGE COPY,F_SOTTOCONTO
|
||||||
|
//MESSAGE COPY,F_SOTTOC_FORN
|
||||||
|
FLAGS "R"
|
||||||
|
KEY 1
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
GROUP 2
|
||||||
|
VALIDATE AUTOEXIT_FUNC 3 F_GRUPPO F_CONTO F_SOTTOC_CLIENTE
|
||||||
|
WARNING "Conto inesistente"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_SOTTOC_FORN 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 54 3 "Fornitore "
|
||||||
|
USE LF_CLIFO
|
||||||
|
//FIELD LF_CLIFO->CODCF
|
||||||
|
INPUT TIPOCF "F"
|
||||||
|
INPUT CODCF F_SOTTOC_FORN
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
OUTPUT F_SOTTOC_FORN CODCF
|
||||||
|
OUTPUT F_DESCR_FORN RAGSOC
|
||||||
|
FLAGS "R"
|
||||||
|
KEY 1 //serve per l'autopremimento
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
//MESSAGE COPY,F_SOTTOCONTO
|
||||||
|
//MESSAGE COPY,F_SOTTOC_CLIENTE
|
||||||
|
GROUP 3
|
||||||
|
VALIDATE AUTOEXIT_FUNC 3 F_GRUPPO F_CONTO F_SOTTOC_FORN
|
||||||
|
WARNING "Conto inesistente"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DESCR_CONTO 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 4 4 "Descrizione "
|
||||||
|
USE LF_PCON KEY 2
|
||||||
|
INPUT DESCR F_DESCR_CONTO
|
||||||
|
DISPLAY "Descrizione@50" DESCR
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Sottoconto" SOTTOCONTO
|
||||||
|
COPY OUTPUT F_SOTTOCONTO
|
||||||
|
MESSAGE COPY,F_DESCR_CLIENTE
|
||||||
|
MESSAGE COPY,F_DESCR_FORN
|
||||||
|
KEY 1
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
GROUP 1
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DESCR_CLIENTE 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 4 4 "Cliente "
|
||||||
|
USE LF_CLIFO KEY 2
|
||||||
|
INPUT TIPOCF "C"
|
||||||
|
INPUT RAGSOC F_DESCR_CLIENTE
|
||||||
|
DISPLAY "Ragione Sociale Cliente@50" RAGSOC
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
COPY OUTPUT F_SOTTOC_CLIENTE
|
||||||
|
MESSAGE COPY,F_DESCR_CONTO
|
||||||
|
MESSAGE COPY,F_DESCR_FORN
|
||||||
|
KEY 1
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
GROUP 2
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DESCR_FORN 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 4 4 "Fornitore "
|
||||||
|
USE LF_CLIFO KEY 2
|
||||||
|
INPUT TIPOCF "F"
|
||||||
|
INPUT RAGSOC F_DESCR_FORN
|
||||||
|
DISPLAY "Ragione Sociale Fornitore@50" RAGSOC
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
COPY OUTPUT F_SOTTOC_FORN
|
||||||
|
MESSAGE COPY,F_DESCR_CONTO
|
||||||
|
MESSAGE COPY,F_DESCR_CLIENTE
|
||||||
|
KEY 1
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
GROUP 3
|
||||||
|
END
|
||||||
|
|
||||||
|
SPREADSHEET F_SHEET_SALDI
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 6 ""
|
||||||
|
ITEM "Es."
|
||||||
|
ITEM "Progr.Mov.Elim.: Dare"
|
||||||
|
ITEM " Avere"
|
||||||
|
ITEM " Saldo"
|
||||||
|
ITEM " Saldo iniziale"
|
||||||
|
ITEM "Progr.Att.: Dare"
|
||||||
|
ITEM " Avere"
|
||||||
|
ITEM " Saldo"
|
||||||
|
ITEM "Ult.Op.: Data"
|
||||||
|
ITEM " Numero"
|
||||||
|
ITEM "Progr.Mov.Prov.: Dare"
|
||||||
|
ITEM " Avere"
|
||||||
|
ITEM " Saldo"
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
ENDMASK
|
||||||
|
|
||||||
|
PAGE "" -1 -1 71 20
|
||||||
|
|
||||||
|
NUMBER 101 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "Anno esercizio "
|
||||||
|
FLAGS "R"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER 102 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 4 "Progr.Mov.Eliminati: Dare "
|
||||||
|
FLAGS "R"
|
||||||
|
PICTURE "."
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER 103 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 42 4 "Avere "
|
||||||
|
FLAGS "R"
|
||||||
|
PICTURE "."
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING 104 17
|
||||||
|
BEGIN
|
||||||
|
PROMPT 60 4 "Saldo "
|
||||||
|
FLAGS "R"
|
||||||
|
END
|
||||||
|
|
||||||
|
/*
|
||||||
|
NUMBER 105 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 5 "Progr.Attuali: Saldo Iniziale "
|
||||||
|
FLAGS "R"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING 105 1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 5 "Segno "
|
||||||
|
END
|
||||||
|
*/
|
||||||
|
|
||||||
|
STRING 105 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 5 "Saldo Iniziale "
|
||||||
|
FLAGS "R"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER 106 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 42 5 "Progr.Attuali: Dare "
|
||||||
|
FLAGS "R"
|
||||||
|
PICTURE "."
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER 107 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 60 5 "Avere "
|
||||||
|
FLAGS "R"
|
||||||
|
PICTURE "."
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING 108 17
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 6 "Saldo "
|
||||||
|
FLAGS "R"
|
||||||
|
END
|
||||||
|
|
||||||
|
DATE 109
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 8 "Ultima data operazione "
|
||||||
|
FLAGS "R"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER 110 7
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 9 "Ultimo numero operazione "
|
||||||
|
FLAGS "R"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER 111 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 6 "Progr.Mov.Provvisori: Dare "
|
||||||
|
FLAGS "R"
|
||||||
|
PICTURE "."
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER 112 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 42 6 "Avere "
|
||||||
|
FLAGS "R"
|
||||||
|
PICTURE "."
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING 113 17
|
||||||
|
BEGIN
|
||||||
|
PROMPT 60 6 "Saldo "
|
||||||
|
FLAGS "R"
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_OK 9 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -13 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_CANCEL 9 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -23 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_NULL 9 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -33 -1 "Azzera"
|
||||||
|
MESSAGE RESET,1@
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
ENDMASK
|
50
cg/cglib.h
50
cg/cglib.h
@ -14,52 +14,66 @@
|
|||||||
#include <assoc.h>
|
#include <assoc.h>
|
||||||
#include "conto.h"
|
#include "conto.h"
|
||||||
|
|
||||||
TLocalisamfile * get_descr_cf(TLocalisamfile * pconti,
|
//TLocalisamfile * get_descr_cf(TLocalisamfile * pconti,TLocalisamfile * clifo , int g, int c, long s);
|
||||||
TLocalisamfile * clifo , int g, int c, long s);
|
|
||||||
|
|
||||||
class TSaldi_list : public TArray
|
class TSaldi_list : public TAssoc_array
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
TSaldi_list(int g, int c, int anno);
|
TSaldi_list (int g, int c, int aec, int aep=0);
|
||||||
TRectype& saldi(int i)const { return(TRectype&)this->operator[](i); }
|
TRectype* saldi() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define Saldo TSaldo
|
||||||
|
|
||||||
class Saldo
|
enum tipobil { DataLimite=1, UltimaImmissione };
|
||||||
|
|
||||||
|
class TSaldo
|
||||||
{
|
{
|
||||||
real _saldo, _saldo_iniziale, _prg_dare, _prg_avere;
|
real _saldo, _saldo_iniziale;
|
||||||
|
real _prg_dare, _prg_avere, _prg_daresca, _prg_averesca;
|
||||||
int _indbil;
|
int _indbil;
|
||||||
TRectype* _rec;
|
TRectype* _saldo_ep;
|
||||||
int _annoes;
|
int _annoes;
|
||||||
TDate _inizioEs, _fineEs;
|
TDate _inizioEs, _fineEs;
|
||||||
TString16 _codcaus;
|
TString16 _codcaus;
|
||||||
TDate _datareg;
|
TDate _datareg;
|
||||||
TDate _datacomp;
|
TDate _datacomp;
|
||||||
TString _provv;
|
TString _provv;
|
||||||
bool _significativo;
|
|
||||||
bool _movimentato;
|
bool _movimentato;
|
||||||
|
bool _significativo;
|
||||||
|
bool _rec_presente_ec;
|
||||||
|
bool _rec_presente_ep;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void InFinEs(int);
|
void InFinEs(int);
|
||||||
|
void leggi_mov(long numreg); // Leggi testata
|
||||||
|
real calcola_saldo_iniziale(int g, int c, long s, int indbil);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool movimentato() const { return _movimentato==TRUE; }
|
|
||||||
bool significativo() const { return _significativo==TRUE; }
|
bool movimentato() const { return _movimentato; }
|
||||||
const int EsePre (const int annocorr);
|
bool significativo() const { return _significativo; }
|
||||||
|
bool esiste_saldo() const { return _rec_presente_ec || _rec_presente_ep;}
|
||||||
|
|
||||||
|
const int EsePre (const int annocorr); // Determina esercizio precedente
|
||||||
int annoes () const { return _annoes; }
|
int annoes () const { return _annoes; }
|
||||||
void set_annoes (int anno) { _annoes = anno; }
|
void set_annoes (int anno) { _annoes = anno; }
|
||||||
void leggi_mov(long);
|
|
||||||
bool causale_mov(long, const TDate&, const TDate&, TString&);
|
bool causale_mov(long, const TDate&, const TDate&, TString&);
|
||||||
const char* causale_chiusura_es();
|
const char* causale_chiusura_es();
|
||||||
const char* causale_apertura_es();
|
const char* causale_apertura_es();
|
||||||
bool calcola_data_limite(int,int,int,long,const TDate&,const TDate&,int,bool,
|
|
||||||
const TDate&,const TDate&,const TDate&,bool);
|
|
||||||
bool calcola_ultima_immissione(int, int, int, int, long, int);
|
|
||||||
bool ultima_immissione_bilancio(int anno,int g,int c,long s,int indbil);
|
bool ultima_immissione_bilancio(int anno,int g,int c,long s,int indbil);
|
||||||
|
bool ultima_immissione_verifica(int anno,int g,int c,long s,int indbil);
|
||||||
bool data_limite_bilancio(int,int,int,long,const TDate&,const TDate&,int,bool);
|
bool data_limite_bilancio(int,int,int,long,const TDate&,const TDate&,int,bool);
|
||||||
real calcola_saldo_iniziale(int, int, long, int);
|
|
||||||
bool calcola_clifo(int, int, int, int, int);
|
|
||||||
TRectype& ricerca_progr_prec(int, int, int, long);
|
TRectype& ricerca_progr_prec(int, int, int, long);
|
||||||
|
|
||||||
real saldofin_esprec(int,int,int,long);
|
real saldofin_esprec(int,int,int,long);
|
||||||
|
bool prg_attuali(int,TConto&,real&,real&);
|
||||||
|
bool prg_mov_eliminati(int,TConto&,real&,real&);
|
||||||
|
|
||||||
real saldo() const {return _saldo;}
|
real saldo() const {return _saldo;}
|
||||||
real saldoini() const {return _saldo_iniziale;}
|
real saldoini() const {return _saldo_iniziale;}
|
||||||
real prgdare() const {return _prg_dare;}
|
real prgdare() const {return _prg_dare;}
|
||||||
|
333
cg/cglib01.cpp
333
cg/cglib01.cpp
@ -17,30 +17,68 @@
|
|||||||
|
|
||||||
#include "cglib.h"
|
#include "cglib.h"
|
||||||
|
|
||||||
const MAXSTR = 128;
|
HIDDEN TString256 tmp;
|
||||||
static char __tmp [MAXSTR];
|
|
||||||
static TFixed_string tmp (__tmp, MAXSTR);
|
|
||||||
|
|
||||||
TSaldi_list::TSaldi_list(int g, int c, int anno)
|
// aep e' l'esercizio precedente
|
||||||
|
TSaldi_list::TSaldi_list(int gr, int co, int aec, int aep)
|
||||||
{
|
{
|
||||||
TLocalisamfile cf(LF_SALDI);
|
TLocalisamfile cf(LF_SALDI, FALSE);
|
||||||
|
bool force;
|
||||||
|
TString16 key;
|
||||||
|
|
||||||
destroy();
|
destroy();
|
||||||
cf.setkey(1);
|
|
||||||
cf.zero();
|
cf.zero();
|
||||||
cf.put(SLD_ANNOES,anno);
|
|
||||||
cf.put(SLD_GRUPPO,g);
|
if (aep)
|
||||||
cf.put(SLD_CONTO,c);
|
cf.setkey(2);
|
||||||
TRectype rec(cf.curr());
|
else
|
||||||
cf.read(_isgteq);
|
|
||||||
for ( ;!cf.eof();cf.next())
|
|
||||||
{
|
{
|
||||||
if (cf.curr() > rec) break;
|
cf.setkey(1);
|
||||||
|
cf.put(SLD_ANNOES,aec);
|
||||||
|
}
|
||||||
|
|
||||||
|
cf.put(SLD_GRUPPO,gr);
|
||||||
|
cf.put(SLD_CONTO,co);
|
||||||
|
// TRectype rec(cf.curr());
|
||||||
|
|
||||||
|
for (cf.read(_isgteq);!cf.eof();cf.next())
|
||||||
|
{
|
||||||
|
// if (cf.curr() > rec) break;
|
||||||
|
const int ae = cf.get_int(SLD_ANNOES);
|
||||||
|
const int g = cf.get_int(SLD_GRUPPO);
|
||||||
|
const int c = cf.get_int(SLD_CONTO);
|
||||||
|
const long s = cf.get_long(SLD_SOTTOCONTO);
|
||||||
|
|
||||||
|
if (g != gr || c != co) break;
|
||||||
|
|
||||||
|
if (aep)
|
||||||
|
{
|
||||||
|
if (ae != aec && ae != aep) continue;
|
||||||
|
}
|
||||||
|
|
||||||
TRectype r(cf.curr());
|
TRectype r(cf.curr());
|
||||||
add(r);
|
key.format("%3d%3d%6ld", g, c, s);
|
||||||
|
|
||||||
|
// Se avevo chiesto anche l'es. prec. puo' darsi che l'abbia gia' trovato
|
||||||
|
if (aep)
|
||||||
|
force = FALSE;
|
||||||
|
else
|
||||||
|
force = TRUE;
|
||||||
|
|
||||||
|
add((const char*) key, r, force);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Saldo::Saldo()
|
TRectype* TSaldi_list::saldi() const
|
||||||
|
{
|
||||||
|
TObject* o = ((TAssoc_array*)this)->get();
|
||||||
|
if (o == NULL)
|
||||||
|
return (TRectype*)NULL;
|
||||||
|
else
|
||||||
|
return (TRectype*)o;
|
||||||
|
}
|
||||||
|
|
||||||
|
TSaldo::TSaldo()
|
||||||
{
|
{
|
||||||
_saldo_iniziale = ZERO;
|
_saldo_iniziale = ZERO;
|
||||||
_prg_dare = ZERO;
|
_prg_dare = ZERO;
|
||||||
@ -48,11 +86,14 @@ Saldo::Saldo()
|
|||||||
_saldo = ZERO;
|
_saldo = ZERO;
|
||||||
_annoes = 0;
|
_annoes = 0;
|
||||||
_indbil = 0;
|
_indbil = 0;
|
||||||
_rec = new TRectype(LF_SALDI);
|
_saldo_ep = new TRectype(LF_SALDI);
|
||||||
|
_movimentato = _significativo = FALSE;
|
||||||
|
_rec_presente_ec = _rec_presente_ep = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
Saldo::~Saldo()
|
TSaldo::~TSaldo()
|
||||||
{
|
{
|
||||||
|
delete _saldo_ep;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -60,7 +101,7 @@ Saldo::~Saldo()
|
|||||||
// Se EseCorr e' gia' il primo ritorna 0
|
// Se EseCorr e' gia' il primo ritorna 0
|
||||||
// senno' ritorna, astutamente, EseCorr - 1
|
// senno' ritorna, astutamente, EseCorr - 1
|
||||||
//
|
//
|
||||||
const int Saldo::EsePre(const int EseCorr)
|
const int TSaldo::EsePre(const int EseCorr)
|
||||||
{
|
{
|
||||||
TTable ese("ESC");
|
TTable ese("ESC");
|
||||||
TString16 first;
|
TString16 first;
|
||||||
@ -78,7 +119,7 @@ const int Saldo::EsePre(const int EseCorr)
|
|||||||
return EseCorr - 1;
|
return EseCorr - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
real Saldo::saldofin_esprec(int annoes, int g, int c, long s)
|
real TSaldo::saldofin_esprec(int annoes, int g, int c, long s)
|
||||||
{
|
{
|
||||||
real saldo,pdare,pavere,pdaresca,paveresca;
|
real saldo,pdare,pavere,pdaresca,paveresca;
|
||||||
char flag;
|
char flag;
|
||||||
@ -92,40 +133,49 @@ real Saldo::saldofin_esprec(int annoes, int g, int c, long s)
|
|||||||
saldo = app.get_real(SLD_SALDO);
|
saldo = app.get_real(SLD_SALDO);
|
||||||
pdare = app.get_real(SLD_PDARE);
|
pdare = app.get_real(SLD_PDARE);
|
||||||
pavere = app.get_real(SLD_PAVERE);
|
pavere = app.get_real(SLD_PAVERE);
|
||||||
pdaresca = app.get_real(SLD_PDARE);
|
pdaresca = app.get_real(SLD_PDARESCA);
|
||||||
paveresca = app.get_real(SLD_PAVERE);
|
paveresca = app.get_real(SLD_PAVERESCA);
|
||||||
|
|
||||||
_significativo = (saldo != ZERO || pdare != ZERO || pavere != ZERO);
|
_significativo = (saldo != ZERO || pdare != ZERO || pavere != ZERO
|
||||||
|
|| pdaresca != ZERO || paveresca != ZERO);
|
||||||
|
|
||||||
if (flag == 'D')
|
if (flag == 'D')
|
||||||
return pdare-pavere+saldo;
|
return pdare-pavere+saldo+pdaresca-paveresca;
|
||||||
else
|
else
|
||||||
return pdare-pavere-saldo;
|
return pdare-pavere-saldo+pdaresca-paveresca;
|
||||||
}
|
}
|
||||||
|
|
||||||
real Saldo::calcola_saldo_iniziale(int g,int c,long s,int indbil)
|
real TSaldo::calcola_saldo_iniziale(int g,int c,long s,int indbil)
|
||||||
{
|
{
|
||||||
real saldoini, pdaresca, paveresca;
|
real saldoini, pdaresca, paveresca, pdare, pavere;
|
||||||
char flag;
|
char flag;
|
||||||
TLocalisamfile saldi(LF_SALDI, FALSE);
|
TLocalisamfile saldi(LF_SALDI, FALSE);
|
||||||
|
|
||||||
|
_significativo = TRUE;
|
||||||
|
|
||||||
saldi.zero();
|
saldi.zero();
|
||||||
saldi.put(SLD_GRUPPO,g);
|
saldi.put(SLD_GRUPPO,g);
|
||||||
if (c != 0)
|
|
||||||
saldi.put(SLD_CONTO,c);
|
saldi.put(SLD_CONTO,c);
|
||||||
if (s != 0)
|
|
||||||
saldi.put(SLD_SOTTOCONTO,s);
|
saldi.put(SLD_SOTTOCONTO,s);
|
||||||
saldi.put(SLD_ANNOES,_annoes);
|
saldi.put(SLD_ANNOES,_annoes);
|
||||||
|
|
||||||
saldi.read();
|
if (saldi.read() == NOERR)
|
||||||
|
_rec_presente_ec = TRUE;
|
||||||
if (saldi.bad()) saldi.zero();
|
else
|
||||||
|
{
|
||||||
|
saldi.zero();
|
||||||
|
_rec_presente_ec = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
flag = saldi.get_char(SLD_FLAGSALINI);
|
flag = saldi.get_char(SLD_FLAGSALINI);
|
||||||
saldoini = saldi.get_real(SLD_SALDO);
|
saldoini = saldi.get_real(SLD_SALDO);
|
||||||
|
//pdare = saldi.get_real(SLD_PDARE);
|
||||||
|
//pavere = saldi.get_real(SLD_PAVERE);
|
||||||
pdaresca = saldi.get_real(SLD_PDARESCA);
|
pdaresca = saldi.get_real(SLD_PDARESCA);
|
||||||
paveresca = saldi.get_real(SLD_PAVERESCA);
|
paveresca = saldi.get_real(SLD_PAVERESCA);
|
||||||
|
|
||||||
|
_significativo = (saldoini != ZERO || pdaresca != ZERO || paveresca != ZERO);
|
||||||
|
|
||||||
if (saldoini != ZERO)
|
if (saldoini != ZERO)
|
||||||
if (flag == 'A') saldoini = -saldoini;
|
if (flag == 'A') saldoini = -saldoini;
|
||||||
|
|
||||||
@ -148,23 +198,23 @@ real Saldo::calcola_saldo_iniziale(int g,int c,long s,int indbil)
|
|||||||
return pdaresca-paveresca-saldoini;
|
return pdaresca-paveresca-saldoini;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* Saldo::causale_chiusura_es()
|
const char* TSaldo::causale_chiusura_es()
|
||||||
{
|
{
|
||||||
TConfig conf(CONFIG_DITTA);
|
TConfig conf(CONFIG_DITTA);
|
||||||
tmp = conf.get("CoCaCh");
|
tmp = conf.get("CoCaCh");
|
||||||
|
|
||||||
return __tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* Saldo::causale_apertura_es()
|
const char* TSaldo::causale_apertura_es()
|
||||||
{
|
{
|
||||||
TConfig conf(CONFIG_DITTA);
|
TConfig conf(CONFIG_DITTA);
|
||||||
tmp = conf.get("CoCaAp");
|
tmp = conf.get("CoCaAp");
|
||||||
|
|
||||||
return __tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Saldo::leggi_mov(long nr)
|
void TSaldo::leggi_mov(long nr)
|
||||||
{
|
{
|
||||||
TLocalisamfile mov(LF_MOV, FALSE);
|
TLocalisamfile mov(LF_MOV, FALSE);
|
||||||
|
|
||||||
@ -180,6 +230,7 @@ void Saldo::leggi_mov(long nr)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/********************************************
|
||||||
bool Saldo::calcola_data_limite(int annoes, int g, int c, long s, const TDate& data_inf, const TDate& data_sup, int indbil, bool controllo_competenza, const TDate& inizio_es, const TDate& fine_es, const TDate& fine_es_prec,bool stp_prov)
|
bool Saldo::calcola_data_limite(int annoes, int g, int c, long s, const TDate& data_inf, const TDate& data_sup, int indbil, bool controllo_competenza, const TDate& inizio_es, const TDate& fine_es, const TDate& fine_es_prec,bool stp_prov)
|
||||||
{
|
{
|
||||||
TString sezione, gcs_corr, gcs_prec="", provv = "";
|
TString sezione, gcs_corr, gcs_prec="", provv = "";
|
||||||
@ -258,20 +309,28 @@ bool Saldo::calcola_data_limite(int annoes, int g, int c, long s, const TDate& d
|
|||||||
_saldo = dep;
|
_saldo = dep;
|
||||||
return esito;
|
return esito;
|
||||||
}
|
}
|
||||||
|
***************************************************/
|
||||||
|
|
||||||
bool Saldo::data_limite_bilancio(int bilancio, int g, int c, long s, const TDate& data_inf,
|
bool TSaldo::data_limite_bilancio(int bilancio, int g, int c, long s, const TDate& data_inf,
|
||||||
const TDate& data_sup, int indbil, bool stp_prov)
|
const TDate& data_sup, int indbil, bool stp_prov)
|
||||||
{
|
{
|
||||||
TString16 gcs_corr, gcs_prec;
|
TString16 gcs_corr, gcs_prec;
|
||||||
real importo, dep = ZERO;
|
|
||||||
int gruppo, conto, annoe;
|
int gruppo, conto, annoe;
|
||||||
long sottoconto, num_reg;
|
long sottoconto, num_reg;
|
||||||
|
real importo;
|
||||||
TDate data_mov;
|
TDate data_mov;
|
||||||
char sezione;
|
char sezione;
|
||||||
bool buono = FALSE;
|
|
||||||
_saldo_iniziale = ZERO;
|
|
||||||
TLocalisamfile rmov(LF_RMOV, FALSE);
|
TLocalisamfile rmov(LF_RMOV, FALSE);
|
||||||
|
|
||||||
|
_saldo_iniziale = ZERO;
|
||||||
|
_saldo = ZERO;
|
||||||
|
_movimentato = FALSE;
|
||||||
|
_rec_presente_ep = FALSE;
|
||||||
|
_rec_presente_ec = FALSE;
|
||||||
|
|
||||||
|
gcs_prec = "";
|
||||||
|
|
||||||
rmov.setkey(2);
|
rmov.setkey(2);
|
||||||
rmov.zero();
|
rmov.zero();
|
||||||
rmov.put(RMV_GRUPPO,g);
|
rmov.put(RMV_GRUPPO,g);
|
||||||
@ -279,9 +338,7 @@ bool Saldo::data_limite_bilancio(int bilancio, int g, int c, long s, const TDate
|
|||||||
rmov.put(RMV_SOTTOCONTO,s);
|
rmov.put(RMV_SOTTOCONTO,s);
|
||||||
TRectype rec(rmov.curr());
|
TRectype rec(rmov.curr());
|
||||||
|
|
||||||
rmov.read(_isgteq);
|
for (rmov.read(_isgteq); !rmov.eof(); rmov.next())
|
||||||
|
|
||||||
for ( ; !rmov.eof(); rmov.next())
|
|
||||||
{
|
{
|
||||||
if (rmov.curr() != rec) break;
|
if (rmov.curr() != rec) break;
|
||||||
|
|
||||||
@ -290,10 +347,13 @@ bool Saldo::data_limite_bilancio(int bilancio, int g, int c, long s, const TDate
|
|||||||
conto = rmov.get_int(RMV_CONTO);
|
conto = rmov.get_int(RMV_CONTO);
|
||||||
sottoconto = rmov.get_long(RMV_SOTTOCONTO);
|
sottoconto = rmov.get_long(RMV_SOTTOCONTO);
|
||||||
num_reg = rmov.get_long(RMV_NUMREG);
|
num_reg = rmov.get_long(RMV_NUMREG);
|
||||||
|
sezione = rmov.get_char(RMV_SEZIONE);
|
||||||
|
importo = rmov.get_real(RMV_IMPORTO);
|
||||||
|
|
||||||
|
// Leggo la testata
|
||||||
leggi_mov(num_reg);
|
leggi_mov(num_reg);
|
||||||
|
|
||||||
if (bilancio == 1)
|
if (bilancio == DataLimite)
|
||||||
data_mov = _datacomp;
|
data_mov = _datacomp;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -305,46 +365,52 @@ bool Saldo::data_limite_bilancio(int bilancio, int g, int c, long s, const TDate
|
|||||||
if (data_mov < data_inf || data_mov > data_sup)
|
if (data_mov < data_inf || data_mov > data_sup)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// se la causale del movimento e' uguale a quella di chiusura,
|
// "Se la causale del movimento e' uguale a quella di chiusura,
|
||||||
// il movimento non va considerato
|
// o di apertura il movimento non va considerato"
|
||||||
|
|
||||||
if (_codcaus.not_empty())
|
if (_codcaus.not_empty())
|
||||||
if (_codcaus == causale_chiusura_es()) continue;
|
if (_codcaus == causale_chiusura_es() ||
|
||||||
|
_codcaus == causale_apertura_es())
|
||||||
|
continue;
|
||||||
|
|
||||||
if (!stp_prov && _provv.trim().not_empty()) //se non e' richiesta stampa
|
//se non e' richiesta stampa mov. provvisori li scarto
|
||||||
continue; //mov. provvisori li scarto
|
if (!stp_prov && _provv.trim().not_empty())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// "I mov. di puro riferimento (= con importo = 0) vanno scartati"
|
||||||
|
if (importo == ZERO) continue;
|
||||||
|
|
||||||
gcs_corr = format ("%3d%3d%6ld", gruppo, conto, sottoconto);
|
gcs_corr = format ("%3d%3d%6ld", gruppo, conto, sottoconto);
|
||||||
|
|
||||||
if (gcs_corr != gcs_prec)
|
if (gcs_corr != gcs_prec)
|
||||||
{
|
{
|
||||||
gcs_prec = gcs_corr;
|
gcs_prec = gcs_corr;
|
||||||
dep += calcola_saldo_iniziale(gruppo,conto,sottoconto,indbil);
|
_saldo = calcola_saldo_iniziale(gruppo,conto,sottoconto,indbil);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
TString dep1(dep.string());
|
TString dep1(_saldo.string());
|
||||||
#endif
|
#endif
|
||||||
sezione = rmov.get_char(RMV_SEZIONE);
|
|
||||||
importo = rmov.get_real(RMV_IMPORTO);
|
|
||||||
|
|
||||||
if (importo == ZERO)
|
_movimentato = TRUE;
|
||||||
continue;
|
|
||||||
|
|
||||||
buono = TRUE;
|
|
||||||
|
|
||||||
if (sezione == 'D')
|
if (sezione == 'D')
|
||||||
dep += importo;
|
_saldo += importo;
|
||||||
else
|
else
|
||||||
dep -= importo;
|
_saldo -= importo;
|
||||||
|
|
||||||
}
|
}
|
||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
TString dep2(dep.string());
|
TString dep2(_saldo.string());
|
||||||
#endif
|
#endif
|
||||||
_saldo = dep;
|
|
||||||
return buono;
|
// Se non movimentato vado a vedere il saldo
|
||||||
|
if (!_movimentato)
|
||||||
|
_saldo = calcola_saldo_iniziale(g,c,s,indbil);
|
||||||
|
|
||||||
|
return _movimentato;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**************************************************************
|
||||||
bool Saldo::calcola_ultima_immissione(int annoes, int annoesprec, int g, int c,
|
bool Saldo::calcola_ultima_immissione(int annoes, int annoesprec, int g, int c,
|
||||||
long s, int indbil)
|
long s, int indbil)
|
||||||
{
|
{
|
||||||
@ -406,8 +472,9 @@ long s, int indbil)
|
|||||||
}
|
}
|
||||||
return esito;
|
return esito;
|
||||||
}
|
}
|
||||||
|
*****************************************************/
|
||||||
|
|
||||||
bool Saldo::ultima_immissione_bilancio(int annoes,int g,int c,long s,int indbil)
|
bool TSaldo::ultima_immissione_verifica(int annoes,int g,int c,long s,int indbil)
|
||||||
{
|
{
|
||||||
//Si considerano i saldi e non piu' i movimenti
|
//Si considerano i saldi e non piu' i movimenti
|
||||||
char sezione;
|
char sezione;
|
||||||
@ -419,6 +486,8 @@ bool Saldo::ultima_immissione_bilancio(int annoes,int g,int c,long s,int indbil)
|
|||||||
_saldo_iniziale = ZERO;
|
_saldo_iniziale = ZERO;
|
||||||
_prg_dare = ZERO;
|
_prg_dare = ZERO;
|
||||||
_prg_avere = ZERO;
|
_prg_avere = ZERO;
|
||||||
|
_prg_daresca = ZERO;
|
||||||
|
_prg_averesca = ZERO;
|
||||||
_saldo = ZERO;
|
_saldo = ZERO;
|
||||||
|
|
||||||
saldi.zero();
|
saldi.zero();
|
||||||
@ -439,27 +508,78 @@ bool Saldo::ultima_immissione_bilancio(int annoes,int g,int c,long s,int indbil)
|
|||||||
_prg_avere = saldi.get_real(SLD_PAVERE);
|
_prg_avere = saldi.get_real(SLD_PAVERE);
|
||||||
sezione = saldi.get_char(SLD_FLAGSALINI);
|
sezione = saldi.get_char(SLD_FLAGSALINI);
|
||||||
|
|
||||||
if (_prg_dare == 0 && _prg_avere == 0)
|
if (_prg_dare == ZERO && _prg_avere == ZERO)
|
||||||
return esito;
|
return esito;
|
||||||
|
|
||||||
if (sezione == 'A') _saldo_iniziale = -_saldo_iniziale;
|
if (sezione == 'A') _saldo_iniziale = -_saldo_iniziale;
|
||||||
|
|
||||||
// if (indbil == 3 || indbil == 4)
|
|
||||||
// return esito;
|
|
||||||
|
|
||||||
if (indbil == 1 || indbil == 2 || indbil == 5)
|
if (indbil == 1 || indbil == 2 || indbil == 5)
|
||||||
if (_saldo_iniziale == ZERO)
|
if (_saldo_iniziale == ZERO)
|
||||||
_saldo_iniziale += saldofin_esprec(annoes,gruppo,conto,sottoconto);
|
_saldo_iniziale += saldofin_esprec(annoes,gruppo,conto,sottoconto);
|
||||||
|
|
||||||
// i tre valori precedenti vengono utilizzati per la stampa bilancio
|
|
||||||
// di verifica
|
|
||||||
esito = TRUE;
|
esito = TRUE;
|
||||||
_saldo = _saldo_iniziale + _prg_dare - _prg_avere;
|
_saldo = _saldo_iniziale + _prg_dare - _prg_avere + _prg_daresca - _prg_averesca;
|
||||||
}
|
}
|
||||||
|
|
||||||
return esito;
|
return esito;
|
||||||
}
|
}
|
||||||
|
|
||||||
TRectype& Saldo::ricerca_progr_prec (int annoesprec, int g, int c, long s)
|
bool TSaldo::ultima_immissione_bilancio(int annoes,int g,int c,long s,int indbil)
|
||||||
|
{
|
||||||
|
//Si considerano i saldi e non piu' i movimenti
|
||||||
|
char sezione;
|
||||||
|
int gruppo, conto, annoe;
|
||||||
|
long sottoconto;
|
||||||
|
bool esito = FALSE;
|
||||||
|
TLocalisamfile saldi(LF_SALDI, FALSE);
|
||||||
|
|
||||||
|
_saldo_iniziale = ZERO;
|
||||||
|
_prg_dare = ZERO;
|
||||||
|
_prg_avere = ZERO;
|
||||||
|
_prg_daresca = ZERO;
|
||||||
|
_prg_averesca = ZERO;
|
||||||
|
_saldo = ZERO;
|
||||||
|
_rec_presente_ec = FALSE;
|
||||||
|
_rec_presente_ep = FALSE;
|
||||||
|
|
||||||
|
saldi.zero();
|
||||||
|
|
||||||
|
saldi.put(SLD_ANNOES,annoes);
|
||||||
|
saldi.put(SLD_GRUPPO,g);
|
||||||
|
saldi.put(SLD_CONTO,c);
|
||||||
|
saldi.put(SLD_SOTTOCONTO,s);
|
||||||
|
|
||||||
|
if (saldi.read() == NOERR)
|
||||||
|
{
|
||||||
|
annoe = saldi.get_int(SLD_ANNOES);
|
||||||
|
gruppo = saldi.get_int(SLD_GRUPPO);
|
||||||
|
conto = saldi.get_int(SLD_CONTO);
|
||||||
|
sottoconto = saldi.get_long(SLD_SOTTOCONTO);
|
||||||
|
_saldo_iniziale = saldi.get_real(SLD_SALDO);
|
||||||
|
_prg_dare = saldi.get_real(SLD_PDARE);
|
||||||
|
_prg_avere = saldi.get_real(SLD_PAVERE);
|
||||||
|
_prg_daresca = saldi.get_real(SLD_PDARESCA);
|
||||||
|
_prg_averesca = saldi.get_real(SLD_PAVERESCA);
|
||||||
|
sezione = saldi.get_char(SLD_FLAGSALINI);
|
||||||
|
|
||||||
|
esito = (_saldo_iniziale != ZERO || _prg_dare != ZERO || _prg_avere != ZERO
|
||||||
|
|| _prg_daresca != ZERO || _prg_averesca != ZERO);
|
||||||
|
|
||||||
|
if (sezione == 'A') _saldo_iniziale = -_saldo_iniziale;
|
||||||
|
|
||||||
|
_rec_presente_ec = esito;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (indbil == 1 || indbil == 2 || indbil == 5)
|
||||||
|
if (_saldo_iniziale == ZERO)
|
||||||
|
_saldo_iniziale += saldofin_esprec(annoes,g,c,s);
|
||||||
|
|
||||||
|
_saldo = _saldo_iniziale + _prg_dare - _prg_avere + _prg_daresca - _prg_averesca;
|
||||||
|
|
||||||
|
return esito;
|
||||||
|
}
|
||||||
|
|
||||||
|
TRectype& TSaldo::ricerca_progr_prec (int annoesprec, int g, int c, long s)
|
||||||
{
|
{
|
||||||
TLocalisamfile saldi(LF_SALDI, FALSE);
|
TLocalisamfile saldi(LF_SALDI, FALSE);
|
||||||
// TRectype rec(LF_SALDI);
|
// TRectype rec(LF_SALDI);
|
||||||
@ -469,22 +589,32 @@ TRectype& Saldo::ricerca_progr_prec (int annoesprec, int g, int c, long s)
|
|||||||
saldi.zero();
|
saldi.zero();
|
||||||
|
|
||||||
saldi.put(SLD_ANNOES,annoesprec);
|
saldi.put(SLD_ANNOES,annoesprec);
|
||||||
if (g != 0) saldi.put(SLD_GRUPPO,g);
|
saldi.put(SLD_GRUPPO,g);
|
||||||
if (c != 0) saldi.put(SLD_CONTO,c);
|
saldi.put(SLD_CONTO,c);
|
||||||
if (s != 0) saldi.put(SLD_SOTTOCONTO,s);
|
saldi.put(SLD_SOTTOCONTO,s);
|
||||||
|
|
||||||
if (saldi.read() != NOERR) saldi.zero();
|
if (saldi.read() == NOERR)
|
||||||
|
_rec_presente_ep = TRUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
saldi.zero();
|
||||||
|
_rec_presente_ep = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
*_rec = saldi.curr();
|
*_saldo_ep = saldi.curr();
|
||||||
saldi.setkey(oldkey);
|
saldi.setkey(oldkey);
|
||||||
|
|
||||||
return *_rec;
|
return *_saldo_ep;
|
||||||
}
|
}
|
||||||
|
|
||||||
//calcolo dei progressivi attuali
|
//calcolo dei progressivi attuali
|
||||||
bool Saldo::prg_attuali(int annoes,TConto& conto,int indbil,real& prgdare,real& prgavere)
|
bool TSaldo::prg_attuali(int annoes,TConto& conto,real& prgdare,real& prgavere)
|
||||||
{
|
{
|
||||||
real saldoini, pdare, pavere, pdaresca, paveresca;
|
real saldoini = ZERO;
|
||||||
|
real pdare = ZERO;
|
||||||
|
real pavere = ZERO;
|
||||||
|
real pdaresca = ZERO;
|
||||||
|
real paveresca = ZERO;
|
||||||
char flagsalini;
|
char flagsalini;
|
||||||
int g = conto.gruppo();
|
int g = conto.gruppo();
|
||||||
int c = conto.conto();
|
int c = conto.conto();
|
||||||
@ -493,29 +623,19 @@ bool Saldo::prg_attuali(int annoes,TConto& conto,int indbil,real& prgdare,real&
|
|||||||
|
|
||||||
saldi.zero();
|
saldi.zero();
|
||||||
saldi.put(SLD_GRUPPO,g);
|
saldi.put(SLD_GRUPPO,g);
|
||||||
if (conto.conto() != 0)
|
|
||||||
saldi.put(SLD_CONTO,c);
|
saldi.put(SLD_CONTO,c);
|
||||||
if (conto.sottoconto() != 0)
|
|
||||||
saldi.put(SLD_SOTTOCONTO,s);
|
saldi.put(SLD_SOTTOCONTO,s);
|
||||||
saldi.put(SLD_ANNOES,annoes);
|
saldi.put(SLD_ANNOES,annoes);
|
||||||
|
|
||||||
if (saldi.read() == NOERR)
|
if (saldi.read() == NOERR)
|
||||||
{
|
{
|
||||||
flagsalini = saldi.get(SLD_FLAGSALINI)[0];
|
flagsalini = saldi.get_char(SLD_FLAGSALINI);
|
||||||
saldoini = saldi.get_real(SLD_SALDO);
|
saldoini = saldi.get_real(SLD_SALDO);
|
||||||
|
|
||||||
if ( (indbil == 1) || (indbil == 2) || (indbil == 5) )
|
|
||||||
if (saldoini == 0)
|
|
||||||
{
|
|
||||||
saldoini = saldofin_esprec(annoes,conto.gruppo(),conto.conto(),conto.sottoconto());
|
|
||||||
if (saldoini > 0.00)
|
|
||||||
flagsalini = 'D';
|
|
||||||
else flagsalini = 'A';
|
|
||||||
}
|
|
||||||
pdare = saldi.get_real(SLD_PDARE);
|
pdare = saldi.get_real(SLD_PDARE);
|
||||||
pavere = saldi.get_real(SLD_PAVERE);
|
pavere = saldi.get_real(SLD_PAVERE);
|
||||||
pdaresca = saldi.get_real(SLD_PDARESCA);
|
pdaresca = saldi.get_real(SLD_PDARESCA);
|
||||||
paveresca = saldi.get_real(SLD_PAVERESCA);
|
paveresca = saldi.get_real(SLD_PAVERESCA);
|
||||||
|
|
||||||
if (flagsalini == 'D')
|
if (flagsalini == 'D')
|
||||||
{
|
{
|
||||||
prgdare = saldoini + pdare + pdaresca;
|
prgdare = saldoini + pdare + pdaresca;
|
||||||
@ -530,33 +650,27 @@ bool Saldo::prg_attuali(int annoes,TConto& conto,int indbil,real& prgdare,real&
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Saldo::prg_mov_eliminati(int annoes,TConto& conto,int indbil,real& prgdare,real& prgavere)
|
bool TSaldo::prg_mov_eliminati(int annoes,TConto& conto,real& prgdare,real& prgavere)
|
||||||
{
|
{
|
||||||
real saldoini, pdaresca, paveresca;
|
real saldoini = ZERO;
|
||||||
|
real pdaresca = ZERO;
|
||||||
|
real paveresca = ZERO;
|
||||||
char flagsalini;
|
char flagsalini;
|
||||||
|
int g = conto.gruppo();
|
||||||
|
int c = conto.conto();
|
||||||
|
long s = conto.sottoconto();
|
||||||
TLocalisamfile saldi(LF_SALDI, FALSE);
|
TLocalisamfile saldi(LF_SALDI, FALSE);
|
||||||
|
|
||||||
saldi.zero();
|
saldi.zero();
|
||||||
saldi.put(SLD_GRUPPO,conto.gruppo());
|
saldi.put(SLD_GRUPPO,g);
|
||||||
if (conto.conto() != 0)
|
saldi.put(SLD_CONTO,c);
|
||||||
saldi.put(SLD_CONTO,conto.conto());
|
saldi.put(SLD_SOTTOCONTO,s);
|
||||||
if (conto.sottoconto() != 0)
|
|
||||||
saldi.put(SLD_SOTTOCONTO,conto.sottoconto());
|
|
||||||
saldi.put(SLD_ANNOES,annoes);
|
saldi.put(SLD_ANNOES,annoes);
|
||||||
|
|
||||||
if (saldi.read() == NOERR)
|
if (saldi.read() == NOERR)
|
||||||
{
|
{
|
||||||
flagsalini = saldi.get(SLD_FLAGSALINI)[0];
|
flagsalini = saldi.get(SLD_FLAGSALINI)[0];
|
||||||
saldoini = saldi.get_real(SLD_SALDO);
|
saldoini = saldi.get_real(SLD_SALDO);
|
||||||
|
|
||||||
if ( (indbil == 1) || (indbil == 2) || (indbil == 5) )
|
|
||||||
if (saldoini == ZERO)
|
|
||||||
{
|
|
||||||
saldoini = saldofin_esprec(annoes,conto.gruppo(),conto.conto(),conto.sottoconto());
|
|
||||||
if (saldoini > ZERO)
|
|
||||||
flagsalini = 'D';
|
|
||||||
else flagsalini = 'A';
|
|
||||||
}
|
|
||||||
pdaresca = saldi.get_real(SLD_PDARESCA);
|
pdaresca = saldi.get_real(SLD_PDARESCA);
|
||||||
paveresca = saldi.get_real(SLD_PAVERESCA);
|
paveresca = saldi.get_real(SLD_PAVERESCA);
|
||||||
if (flagsalini == 'D')
|
if (flagsalini == 'D')
|
||||||
@ -573,6 +687,7 @@ bool Saldo::prg_mov_eliminati(int annoes,TConto& conto,int indbil,real& prgdare,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/************************************
|
||||||
TLocalisamfile * get_descr_cf (TLocalisamfile * pconti,
|
TLocalisamfile * get_descr_cf (TLocalisamfile * pconti,
|
||||||
TLocalisamfile * clifo, int g, int c, long s)
|
TLocalisamfile * clifo, int g, int c, long s)
|
||||||
{
|
{
|
||||||
@ -600,7 +715,7 @@ TLocalisamfile * get_descr_cf (TLocalisamfile * pconti,
|
|||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
**********************************************/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user