Patch level : 2.0 670

Files correlati     : cg1.exe cg1500a.msk
Ricompilazione Demo : [ ]
Commento            :

CM20076
Stampa bilancio di verifica. Ditta con esercizio 2003 ancora aperto e 2004
in corso. Nel 2003 ho dei movimenti provvisori. Se richiedo la stampa del
bilancio di verifica con esercizio 2004 in forma globale, nella colonna dei
progressivi precedenti mi deve dare la somma dei valori del 2003 compresi i
valori provvisori gestiti nello stesso esercizio.

CM20077
Stampa bilancio sezioni contrapposte Ditta con esercizio 2003 ancora aperto
e 2004 in corso. Nel 2003 ho dei movimenti provvisori. Se richiedo la
stampa del bilancio sezioni contrapposte con esercizio 2004 in forma
globale, deve dare la somma dei valori del 2003 compresi i valori provvisori
gestiti nello stesso esercizio.


git-svn-id: svn://10.65.10.50/trunk@11712 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2004-01-20 11:09:30 +00:00
parent 29c81ccebc
commit b549435a00
8 changed files with 84 additions and 110 deletions

View File

@ -12,7 +12,7 @@ int main(int argc,char** argv)
case 2:
cg1300(argc,argv); break; // Aggiornamenti
case 3:
cg1400(argc,argv); break; // Stampa deleghe iva
cg1400(argc,argv); break; // Stampa deleghe iva
case 4:
cg1500(argc,argv); break; // Stampa bilanci
case 5:
@ -20,7 +20,7 @@ int main(int argc,char** argv)
case 6:
cg1700(argc,argv); break; // Stampa causali
default:
cg1100(argc,argv); break; // Stampa Piano dei conti
cg1100(argc,argv); break; // Stampa Piano dei conti
}
exit(0); // Altrimenti non esce mai!
return 0;

View File

@ -392,8 +392,8 @@ bool TStampa_bilanci::mask_bilancio(TMask_field& f, KEY k)
f.mask().set (F_QUADRATURA,"");
f.mask().hide(F_QUADRATURA);
}
}
return TRUE;
}
return TRUE;
}
bool TStampa_bilanci::mask_datalim (TMask_field& f, KEY k)
@ -1477,7 +1477,7 @@ bool TStampa_bilanci::bil_verifica()
{
if (_annoes != 0 && (indbil_conto == 1 || indbil_conto == 2 || indbil_conto == 5))
{
saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s);
saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov == 2);
//modifica del 21/11/95
if (saldo_iniziale > ZERO)
_saldo_ini_dare = saldo_iniziale;
@ -1507,7 +1507,7 @@ bool TStampa_bilanci::bil_verifica()
{
if (_annoes != 0 && (indbil_conto == 1 || indbil_conto == 2 || indbil_conto == 5))
{
saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s);
saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov == 2);
//modifica del 21/11/95
if (saldo_iniziale > ZERO)
_saldo_ini_dare = saldo_iniziale;
@ -1535,8 +1535,7 @@ bool TStampa_bilanci::bil_verifica()
if (saldo_iniziale > 0)
_prg_prec_dare += saldo_iniziale;
else _prg_prec_avere -= saldo_iniziale;
saldo_finale = _prg_prec_dare-_prg_prec_avere+_mov_periodo_dare-
_mov_periodo_avere;
saldo_finale = _prg_prec_dare-_prg_prec_avere+_mov_periodo_dare-_mov_periodo_avere;
}
//if (saldo_finale == ZERO)
@ -1557,7 +1556,7 @@ bool TStampa_bilanci::bil_verifica()
{
if (indbil_conto == 1 || indbil_conto == 2 || indbil_conto == 5)
{
saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,FALSE);
saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,FALSE,_stampa_mov_prov == 2);
if (_stampav == 1 && sld.significativo())
movimentato = TRUE;
}
@ -1893,7 +1892,7 @@ bool TStampa_bilanci::ricerca_cf(int g,int c,char tipocf,int ib, real& saldo_fin
{
if (_annoes != 0 && (ib == 1 || ib == 2 || ib == 5))
{
saldo_iniziale += sld.saldofin_esprec(_annoes,g,c,s);
saldo_iniziale += sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov==2);
//modifica del 21/11/1995
if (saldo_iniziale > ZERO)
_saldo_ini_dare = saldo_iniziale;
@ -1923,7 +1922,7 @@ bool TStampa_bilanci::ricerca_cf(int g,int c,char tipocf,int ib, real& saldo_fin
{
if (_annoes != 0 && (ib == 1 || ib == 2 || ib == 5))
{
saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s);
saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov==2);
//modifica del 21/11/1995
if (saldo_iniziale > ZERO)
_saldo_ini_dare = saldo_iniziale;
@ -1981,7 +1980,7 @@ bool TStampa_bilanci::ricerca_cf(int g,int c,char tipocf,int ib, real& saldo_fin
//solo se e' un conto patrimoniale
if (ib == 1 || ib == 2 || ib == 5)
{
saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,FALSE);
saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov==2);
movimentato = sld.significativo();
}
}
@ -2349,7 +2348,7 @@ void TStampa_bilanci::leggi_clifo(const TArray& gccf)
if (_indbil == 1 || _indbil == 2 || _indbil == 5)
if (_annoes != 0) //cioe' se sto ragionando per competenza
{
saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,codcf);
saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,codcf,false,_stampa_mov_prov==2);
if (saldo_iniziale > ZERO)
_saldo_ini_dare = saldo_iniziale;
else _saldo_ini_avere = -saldo_iniziale;
@ -2376,7 +2375,7 @@ void TStampa_bilanci::leggi_clifo(const TArray& gccf)
if (_indbil == 1 || _indbil == 2 || _indbil == 5)
if (s.is_zero() && _annoes != 0) //competenza!!!
{
saldo_iniziale += sld.saldofin_esprec(_annoes,g,c,codcf);
saldo_iniziale += sld.saldofin_esprec(_annoes,g,c,codcf,false,_stampa_mov_prov==2);
//modifica del 21/11/1995
if (saldo_iniziale > ZERO)
_saldo_ini_dare = saldo_iniziale;
@ -2414,7 +2413,7 @@ void TStampa_bilanci::leggi_clifo(const TArray& gccf)
if (_stampa_mov_prov != 3)
if (!movimentato /* && _stampac!=1 */ )
if (_indbil == 1 || _indbil == 2 || _indbil == 5)
saldo_iniziale = sld.saldofin_esprec(anno,g,c,codcf,FALSE);
saldo_iniziale = sld.saldofin_esprec(anno,g,c,codcf,false,_stampa_mov_prov==2);
if (movimentato)
saldo_iniziale = sld.saldoini();
@ -3982,10 +3981,9 @@ void TStampa_bilanci::preprocess_header()
//modifica del 20/04/1995
if (_print_exercise)
{
TString d1(InizioEsercizio(_annoes).string());
TString d2(FineEsercizio(_annoes).string());
const TString16 d1(InizioEsercizio(_annoes).string());
const TString16 d2(FineEsercizio(_annoes).string());
set_header(r, "@84g%s %s %s", TR("Esercizio"), (const char*)d1, (const char*)d2); /**/
}
r++;
header_cdc(r);

View File

@ -160,20 +160,12 @@ BEGIN
PROMPT 60 10 ""
END
/*
BOOLEAN F_STAMPAMPROV
BEGIN
PROMPT 2 11 "Stampa movimenti provvisori "
HELP "Indicare se stampare i movimenti provvisori"
END
*/
LIST F_STAMPAMPROV 15
BEGIN
PROMPT 2 11 "Bilancio "
ITEM "1|Normale"
ITEM "2|Globale"
ITEM "3|Solo provvisori"
PROMPT 2 11 "Bilancio "
ITEM "1|Normale"
ITEM "2|Globale"
ITEM "3|Solo provvisori"
END
LIST F_MODULO 1 12

View File

@ -1613,7 +1613,7 @@ void TPrimanota_application::ini2mask(TConfig& ini, TMask& msk, bool query)
add_not_empty(riga, 14, ini, RMV_CODCMS); // Commessa 115
add_not_empty(riga, 15, ini, RMV_FASCMS); // Fase 116
riga.add(tipo, 16); // Tipo di riga 116
riga.add(tipo, cg.cid2index(CG_ROWTYPE)); // Tipo di riga 119
}
if (is_fattura())

View File

@ -1340,13 +1340,13 @@ void TGrid_control::update_selection(XI_EVENT* xiev)
{
const bool is_curr = xiev->v.rec_request.data_rec == _cur_rec;
if (_read_only)
{
/*
{
/*
if (is_curr)
xiev->v.rec_request.attrib |= XI_ATR_SELECTED;
else
xiev->v.rec_request.attrib &= ~XI_ATR_SELECTED;
*/
*/
}
else
xiev->v.rec_request.has_focus = is_curr;
@ -1425,9 +1425,10 @@ bool TGrid_control::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
{
if (xiev->v.select.column == 0)
{
_cur_rec = rec; // Assegno subito il record corrente
_grid->on_record_button(rec);
if (_read_only)
// _cur_rec = rec; // A 16 bit era condizionato a XI_R4
if (rec == _cur_rec) // Aggiunto a 32 bit
_grid->on_record_button(rec);
if (_read_only)
refused = TRUE;
}
else
@ -1441,7 +1442,7 @@ bool TGrid_control::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
_cur_rec = rec; // Assegno solo ora il record corrente
}
}
else
else
refused = TRUE;
}
}
@ -2324,9 +2325,7 @@ void TMastrini_grid::on_grid_button()
void TMastrini_grid::on_record_button(long rec)
{
TWait_cursor hourglass;
const TRectype& testata = _mastrino.testata(rec);
bool refresh = testata.edit();
if (refresh && yesno_box(TR("Si desidera aggiornare il mastrino?")))
reread();

View File

@ -93,7 +93,7 @@ void TParametri_ditta::check_registers(int year)
if (flags < R_ALL)
{
TString wrn(TR("I seguenti registri non esistono per l'attivita' "));
wrn << att << "(" << year << "):";
wrn << att << " (" << year << "):";
if ((flags & R_VEN) == 0x00) wrn << TR("\n\tregistro vendite");
if ((flags & R_ACQ) == 0x00) wrn << TR("\n\tregistro acquisti");
warning_box(wrn);
@ -102,8 +102,7 @@ void TParametri_ditta::check_registers(int year)
// libro giornale non si controlla per attivita'
if(!is_giornale)
warning_box(FR("Non esiste probabilmente nessun "
"libro giornale per l'anno %d"), year);
warning_box(FR("Non esiste probabilmente nessun libro giornale per l'anno %d"), year);
}

View File

@ -93,9 +93,9 @@ TSaldo::TSaldo() : _saldi(LF_SALDI), _saldoiniziale(ZERO), _saldo_iniziale(ZERO)
real TSaldo::saldofin_esprec(int annoes, int g, int c, long s, bool saldo_chiusura, bool provvis)
{
const int annoesprec = EsePre(annoes);
_significativo = FALSE;
const int annoesprec = EsePre(annoes);
if (!ricerca_progr_prec(annoesprec, g, c, s)) // non ci sono esercizi prima del primo
return ZERO;
@ -127,13 +127,13 @@ real TSaldo::saldofin_esprec(int annoes, int g, int c, long s, bool saldo_chiusu
tot -= paverepro;
}
_significativo = (tot != 0);
_significativo = !tot.is_zero();
return tot;
}
//richiamata nel bilancio a sez.contr per data limite
//in realta' calcola il saldo finale es.prec
real TSaldo::calcola_saldo_iniziale(int g,int c,long s,int indbil)
real TSaldo::calcola_saldo_iniziale(int g,int c,long s,int indbil, bool provvis)
{
real saldoini;
_significativo = TRUE;
@ -146,7 +146,7 @@ real TSaldo::calcola_saldo_iniziale(int g,int c,long s,int indbil)
_saldi.put(SLD_FLSCA,"");
if (_rec_presente_ec = (_saldi.read() == NOERR))
saldoini = _saldi.get_real(SLD_SALDO);
saldoini = _saldi.get_real(SLD_SALDO);
_significativo = _rec_presente_ec && saldoini != ZERO;
@ -158,31 +158,13 @@ real TSaldo::calcola_saldo_iniziale(int g,int c,long s,int indbil)
if (indbil == 1 || indbil == 2 || indbil == 5)
{
_prec = TRUE;
saldoini = saldofin_esprec(_annoes, g, c, s);
saldoini = saldofin_esprec(_annoes, g, c, s, false, provvis);
}
_saldo_iniziale = saldoini;
}
return _saldo_iniziale;
}
/*
const TString& TSaldo::causale_chiusura_es() const
{
TConfig conf(CONFIG_DITTA, "cg");
TString& tmp = get_tmp_string();
tmp = conf.get("CoCaCh");
return tmp;
}
const TString& TSaldo::causale_apertura_es() const
{
TConfig conf(CONFIG_DITTA, "cg");
TString& tmp = get_tmp_string();
tmp = conf.get("CoCaAp");
return tmp;
}
*/
bool TSaldo::leggi_mov(long nr)
{
const TRectype& mov = cache().get(LF_MOV, nr);
@ -223,7 +205,7 @@ bool TSaldo::data_limite_bilancio(int bilancio, int g, int c, long s, const TDat
// Anche se non movimentato vado a vedere il saldo
if (stp_prov != 3 && (filter == NULL || *filter == '\0'))
_saldo = calcola_saldo_iniziale(g,c,s,indbil);
_saldo = calcola_saldo_iniziale(g,c,s,indbil,stp_prov == 2);
for (cur = 0L; cur.pos() < items; ++cur)
{
@ -294,8 +276,6 @@ bool TSaldo::ultima_immissione_verifica(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;
real pdarepro, paverepro;
bool esito = FALSE;
@ -313,13 +293,13 @@ bool TSaldo::ultima_immissione_verifica(int annoes,int g,int c,long s,int indbil
_saldi.put(SLD_CONTO,c);
_saldi.put(SLD_SOTTOCONTO,s);
_saldi.put(SLD_FLSCA, "");
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);
// int annoe = _saldi.get_int(SLD_ANNOES);
// int gruppo = _saldi.get_int(SLD_GRUPPO);
// int conto = _saldi.get_int(SLD_CONTO);
// long 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);
@ -330,26 +310,27 @@ bool TSaldo::ultima_immissione_verifica(int annoes,int g,int c,long s,int indbil
_saldofin = _saldi.get_real(SLD_SALDOFIN); // da PATRIZIA
if (stp_prov == 1) //bilancio normale (senza provvisori)
if (_saldo_iniziale == ZERO && _prg_dare == ZERO && _prg_avere == ZERO)
if (_saldo_iniziale.is_zero() && _prg_dare.is_zero() && _prg_avere.is_zero())
return esito;
// if (stp_prov == 0 && paverepro == ZERO)
if (stp_prov == 3 && paverepro == ZERO && pdarepro == ZERO) // Modifica del 24-09-96 errore MI0890.
if (stp_prov == 3 && paverepro.is_zero() && pdarepro.is_zero()) // Modifica del 24-09-96 errore MI0890.
{
_saldo = _prg_dare = _prg_avere = ZERO; // N.B. Non e' detto che funzioni sempre!!!!!!
return esito;
}
if (sezione == 'A') _saldo_iniziale = -_saldo_iniziale;
if (_sezsf == 'A') _saldofin = -_saldofin; // W96SALDI del 19-06-96
}
if (sezione == 'A')
_saldo_iniziale = -_saldo_iniziale;
if (_sezsf == 'A')
_saldofin = -_saldofin; // W96SALDI del 19-06-96
_saldoiniziale = _saldo_iniziale; //saldo iniziale presente sul record saldi
//non comprensivo del saldo finale es.precedente
if (stp_prov != 3)
if (_saldo_iniziale.is_zero() && stp_prov != 3)
{
if (indbil == 1 || indbil == 2 || indbil == 5)
if (_saldo_iniziale == ZERO)
_saldo_iniziale += saldofin_esprec(annoes,gruppo,conto,sottoconto);
_saldo_iniziale += saldofin_esprec(annoes,g,c,s, false, stp_prov == 2);
}
esito = TRUE;
@ -388,8 +369,8 @@ 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;
// int gruppo, conto, annoe;
// long sottoconto;
real pdarepro, paverepro;
bool esito = FALSE;
@ -412,10 +393,10 @@ bool TSaldo::ultima_immissione_bilancio(int annoes,int g,int c,long s,int indbil
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);
// 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);
@ -435,7 +416,8 @@ bool TSaldo::ultima_immissione_bilancio(int annoes,int g,int c,long s,int indbil
if (stp_prov == 3) //bilancio dei soli mov. provvisori
esito = (pdarepro != ZERO || paverepro != ZERO);
if (sezione == 'A') _saldo_iniziale = -_saldo_iniziale;
if (sezione == 'A')
_saldo_iniziale = -_saldo_iniziale;
if (saldo_chiusura) // W96SALDI modifica inserita per il discorso di inclusione oppure
if (_sezsf == 'A') // no del saldo di chiusura inserita il 09-07-96
@ -444,13 +426,12 @@ bool TSaldo::ultima_immissione_bilancio(int annoes,int g,int c,long s,int indbil
_rec_presente_ec = esito;
}
if (stp_prov != 3)
if (_saldo_iniziale.is_zero() && stp_prov != 3)
if (indbil == 1 || indbil == 2 || indbil == 5)
if (_saldo_iniziale == ZERO)
{
_prec = TRUE;
_saldo_iniziale += saldofin_esprec(annoes,g,c,s);
}
{
_prec = TRUE;
_saldo_iniziale += saldofin_esprec(annoes,g,c,s,false,stp_prov==2);
}
if (stp_prov == 1)
_saldo = _saldo_iniziale + _prg_dare - _prg_avere;
@ -623,10 +604,10 @@ bool TSaldo::prg_saldo(int annoes, TConto& conto, real& prgdare, real& prgavere,
// TContoExt
///////////////////////////////////////////////////////////
class TContoExt : public TConto
class TContoExt : public TConto
{
bool _scaricato;
public:
bool scaricato() const { return _scaricato; }
@ -637,12 +618,17 @@ public:
: TConto(tgcsd, from, mode), _scaricato(sc) {}
virtual ~TContoExt() {}
};
const TString& TTab_conti::build_key(const TBill& c, int anno, bool scar) const
{
static TString80 key;
key.format("%4d%3d%3d%6ld%c", anno, c.gruppo(), c.conto(), c.sottoconto(), scar ? 'X' : '\0');
return key;
}
TConto* TTab_conti::add(const TBill& c, int anno, bool scar)
{
TString80 key;
key.format("%4d%3d%3d%6ld", anno, c.gruppo(), c.conto(), c.sottoconto());
if (scar) key << "X";
const TString& key = build_key(c, anno, scar);
TContoExt* tc = new TContoExt(c.gruppo(), c.conto(), c.sottoconto(),
c.tipo(), NULL, scar);
TAssoc_array::add(key, tc);
@ -651,18 +637,14 @@ TConto* TTab_conti::add(const TBill& c, int anno, bool scar)
TConto* TTab_conti::find(const TBill& c, int anno, bool scar)
{
TString80 key;
key.format("%4d%3d%3d%6ld", anno, c.gruppo(), c.conto(), c.sottoconto());
if (scar) key << "X";
const TString& key = build_key(c, anno, scar);
TContoExt* tc = (TContoExt*)objptr(key);
return tc;
}
void TTab_conti::remove(const TBill& c, int anno, bool scar)
{
TString80 key;
key.format("%4d%3d%3d%6ld", anno, c.gruppo(), c.conto(), c.sottoconto());
if (scar) key << "X";
const TString& key = build_key(c, anno, scar);
TAssoc_array::remove(key);
}
@ -736,8 +718,9 @@ void TSaldo_agg::aggiorna(const TBill& tc, const TImporto& imp, bool somma, bool
void TSaldo_agg::aggiorna(int gruppo, int conto, long sottoconto, const real& importo, char sezione,
bool somma, bool scaricato)
{
const TBill bill(gruppo, conto, sottoconto);
const TImporto imp(sezione, importo);
_tab_conti.aggiorna_conto(TBill(gruppo, conto, sottoconto), _anno_es, imp, _movap,
_tab_conti.aggiorna_conto(bill, _anno_es, imp, _movap,
_provv, somma, _movimentato, scaricato);
}

View File

@ -88,7 +88,7 @@ class TSaldo : public TObject
protected:
void InFinEs(int);
bool leggi_mov(long numreg); // Leggi testata
real calcola_saldo_iniziale(int g, int c, long s, int indbil);
real calcola_saldo_iniziale(int g, int c, long s, int indbil, bool provvis);
bool prg_saldo(int, TConto&, real&, real&, bool);
const real& iniziale() const { return _saldo_iniziale;}
void set_iniziale(const real& val) { _saldo_iniziale = val; }
@ -136,6 +136,9 @@ public:
class TTab_conti : public TAssoc_array
{
protected:
const TString& build_key(const TBill& c, int anno, bool scar) const;
public:
void aggiorna_conto(const TBill& tc, int anno_es, const TImporto& importo,
tiposal movap, bool provv, bool somma, bool movimentato, bool scaricato);