Patch level : 2.0 686

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

GF20130
La stampa mastrini estesa a 198 caratteri  dà un errore di calcolo
del primo progressivo di fine giornata.


git-svn-id: svn://10.65.10.50/trunk@11763 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2004-02-17 13:51:36 +00:00
parent caaddad3d2
commit aaab003fff
3 changed files with 76 additions and 69 deletions

View File

@ -27,15 +27,15 @@ class TRiga_sez_opp : public TObject
TToken_string* _str; TToken_string* _str;
public: public:
int gruppo() { return atoi(_str->get(0)); } int gruppo() const { return _str->get_int(0); }
int conto() { return atoi(_str->get(1)); } int conto() const { return _str->get_int(1); }
long sottoc() { return atol(_str->get(2)); } long sottoc() const { return _str->get_long(2); }
const char * sezione () { return _str->get(3); } const char * sezione () { return _str->get(3); }
const char * lettera () { return _str->get(4); } const char * lettera () { return _str->get(4); }
const char * num_rom () { return _str->get(5); } const char * num_rom () { return _str->get(5); }
int numero () { return atoi(_str->get(6)); } int numero () const { return _str->get_int(6); }
real saldo_conto (); real saldo_conto () const;
real saldo_conto_raf(); real saldo_conto_raf() const;
void incrementa_saldo(real& nuovo_saldo,real& nuovo_saldo_raf); void incrementa_saldo(real& nuovo_saldo,real& nuovo_saldo_raf);
TRiga_sez_opp(int g, int c, long s, TRiga_sez_opp(int g, int c, long s,
const char * sezione, const char * lettera, const char * sezione, const char * lettera,
@ -43,13 +43,13 @@ public:
virtual ~TRiga_sez_opp(); virtual ~TRiga_sez_opp();
}; };
real TRiga_sez_opp::saldo_conto () real TRiga_sez_opp::saldo_conto () const
{ {
real r(_str->get(7)); real r(_str->get(7));
return r; return r;
} }
real TRiga_sez_opp::saldo_conto_raf () real TRiga_sez_opp::saldo_conto_raf () const
{ {
real r(_str->get(8)); real r(_str->get(8));
return r; return r;
@ -70,13 +70,13 @@ TRiga_sez_opp::TRiga_sez_opp(int g, int c, long s,
const char * num_rom, int num, real& saldo, real& saldo_raf) const char * num_rom, int num, real& saldo, real& saldo_raf)
{ {
_str = new TToken_string(30); _str = new TToken_string(30);
_str->add(format("%d",g)); _str->add(g);
_str->add(format("%d",c)); _str->add(c);
_str->add(format("%ld",s)); _str->add(s);
_str->add(sezione); _str->add(sezione);
_str->add(lettera); _str->add(lettera);
_str->add(num_rom); _str->add(num_rom);
_str->add(format("%d",num)); _str->add(num);
_str->add(saldo.string()); _str->add(saldo.string());
_str->add(saldo_raf.string()); _str->add(saldo_raf.string());
} }
@ -2162,15 +2162,14 @@ void TStampa_IVdirettiva::stampa_risultato_prima_delle_imposte()
if (_let_da_stamp == 'E' && atoi(_num_da_stamp) > 21 && // questa prima parte e' sempre TRUE! if (_let_da_stamp == 'E' && atoi(_num_da_stamp) > 21 && // questa prima parte e' sempre TRUE!
!_totale_parziale.is_zero() && !_totale_parziale_raf.is_zero()) !_totale_parziale.is_zero() && !_totale_parziale_raf.is_zero())
{ {
set_row (_i,FR("@4gTotale delle partite straordinarie")); set_row (_i,"@4g%s@81g%r", TR("Totale delle partite straordinarie"), &_totale_parziale);
set_row (_i,"@81g%r", &_totale_parziale);
if (raff) if (raff)
set_row (_i,"@111g%r", &_totale_parziale_raf); set_row (_i,"@111g%r", &_totale_parziale_raf);
_i++; _i++;
} }
set_row (_i,FR("@4gRisultato prima delle imposte")); set_row (_i,"@4g%s@81g%r", TR("Risultato prima delle imposte"), &_totale_economico);
set_row (_i,"@81g%r", &_totale_economico);
if (raff) if (raff)
set_row (_i,"@111g%r", &_totale_economico_raf); set_row (_i,"@111g%r", &_totale_economico_raf);
_i++; _i++;
@ -3089,8 +3088,8 @@ void TStampa_IVdirettiva::stampa_totali_con_raffronto()
set_row (_i,TR("RISULTATO CONTO ECONOMICO")); set_row (_i,TR("RISULTATO CONTO ECONOMICO"));
set_row (_i,"@81g%r", &_totale_economico); set_row (_i,"@81g%r", &_totale_economico);
set_row (_i++,"@111g%r", &_totale_economico_raf); set_row (_i++,"@111g%r", &_totale_economico_raf);
_totale_economico = 0; _totale_economico = ZERO;
_totale_economico_raf = 0; _totale_economico_raf = ZERO;
} }
} }
_cont_gcs = 0; _cont_gcs = 0;

View File

@ -1378,19 +1378,10 @@ bool TMastrini_application::preprocess_page(int file, int counter)
if (counter) if (counter)
return TRUE; return TRUE;
TLocalisamfile & rmov = current_cursor()->file(LF_RMOV);
long rec;
TDate datasucc;
TString datasuccstring,dataregrmovstring;
int gruppof,contof;
long sottocf;
TString provvis = "";
int annoes;
switch (file) switch (file)
{ {
case LF_SALDI: case LF_SALDI:
{
// Usati in crea_intestazione() // Usati in crea_intestazione()
_devi_stampare_footer = TRUE; _devi_stampare_footer = TRUE;
@ -1400,14 +1391,15 @@ bool TMastrini_application::preprocess_page(int file, int counter)
_rw = 0; _rw = 0;
_rw++; _rw++;
} }
_gruppo = atoi(current_cursor()->curr(LF_SALDI).get(SLD_GRUPPO)); const TRectype& saldi = current_cursor()->curr(LF_SALDI);
_conto = atoi(current_cursor()->curr(LF_SALDI).get(SLD_CONTO)); _gruppo = saldi.get_int(SLD_GRUPPO);
_sottoc = atol(current_cursor()->curr(LF_SALDI).get(SLD_SOTTOCONTO)); _conto = saldi.get_int(SLD_CONTO);
_sottoc = saldi.get_long(SLD_SOTTOCONTO);
_cambia_mastrino = TRUE; _cambia_mastrino = TRUE;
annoes = atoi(current_cursor()->curr(LF_SALDI).get(SLD_ANNOES)); const int annoes = saldi.get_int(SLD_ANNOES);
conto(_gruppo,_conto,TRUE); conto(_gruppo,_conto,TRUE);
if (annoes != _anno_corrente && annoes != _anno_precedente) if (annoes != _anno_corrente && annoes != _anno_precedente)
@ -1494,7 +1486,8 @@ bool TMastrini_application::preprocess_page(int file, int counter)
} }
} }
} }
break; }
break;
case LF_RMOV: case LF_RMOV:
{ {
@ -1560,12 +1553,12 @@ bool TMastrini_application::preprocess_page(int file, int counter)
} }
provvis = mov.get(MOV_PROVVIS); const TString4 provvis = mov.get(MOV_PROVVIS);
_dataregs = _datareg_stampa.string(); _dataregs = _datareg_stampa.string();
if ((_stampa_mov_prov)||((!_stampa_mov_prov)&&(provvis.trim().empty()))) if ((_stampa_mov_prov)||((!_stampa_mov_prov)&&(provvis.blank())))
{ {
if ((_datareg >= _data_ini) && (_datareg <= _data_fine)) if ((_datareg >= _data_ini) && (_datareg <= _data_fine))
{ {
@ -1577,7 +1570,7 @@ bool TMastrini_application::preprocess_page(int file, int counter)
else else
set_row (_rw, "@197g*"); set_row (_rw, "@197g*");
if (_stampa_mov_prov && provvis.trim().not_empty()) if (_stampa_mov_prov && !provvis.blank())
if (_numcarat == 1) if (_numcarat == 1)
set_row(_rw, "@130gP"); set_row(_rw, "@130gP");
else else
@ -1987,22 +1980,22 @@ bool TMastrini_application::preprocess_page(int file, int counter)
set_row (_rw,"@100g%s", (const char*) _importo_str); set_row (_rw,"@100g%s", (const char*) _importo_str);
} }
} }
else if (_sezione == "A") else
{ {
_totale_periodo_avere += _importo; _totale_periodo_avere += _importo;
_riporto_parziale_avere += _importo; _riporto_parziale_avere += _importo;
_totale_commessa_avere += _importo; _totale_commessa_avere += _importo;
if (_numcarat == 1) // Stampa 132 caratteri if (_numcarat == 1) // Stampa 132 caratteri
set_row (_rw,"@100g%s", (const char*) _importo_str); set_row (_rw,"@100g%s", (const char*) _importo_str);
else // Stampa 198 caratteri else // Stampa 198 caratteri
{ {
_saldo_progressivi -= _importo; _saldo_progressivi -= _importo;
_saldo_movimenti -= _importo; _saldo_movimenti -= _importo;
set_row (_rw,"@117g%s", (const char*) _importo_str); set_row (_rw,"@117g%s", (const char*) _importo_str);
} }
} }
const int righe_rimaste = printer().rows_left(); const int righe_rimaste = printer().rows_left();
_stampato = righe_rimaste >= 1; _stampato = righe_rimaste >= 1;
@ -2019,23 +2012,31 @@ bool TMastrini_application::preprocess_page(int file, int counter)
if (_tipo < 3) if (_tipo < 3)
set_row (_rw,"@183g#t" , &_regiva); set_row (_rw,"@183g#t" , &_regiva);
_dataregrmov = current_cursor()->curr(LF_RMOV).get_date(RMV_DATAREG); _dataregrmov = current_cursor()->curr(LF_RMOV).get_date(RMV_DATAREG);
dataregrmovstring=_dataregrmov.string();
//Gestire la stampa di saldo_progressivi nella postprocess_page di RMOV //Gestire la stampa di saldo_progressivi nella postprocess_page di RMOV
if (_stampa_saldo_des < 3) // Stampa saldo (non descrizioni) if (_stampa_saldo_des < 3) // Stampa saldo (non descrizioni)
{ {
rec = rmov.recno(); bool print_sald = true;
rmov.next(); if (_stampa_saldo_des != 2) // come dire == 1
gruppof = rmov.get_int(RMV_GRUPPO);
contof = rmov.get_int(RMV_CONTO);
sottocf = rmov.get_int(RMV_SOTTOCONTO);
datasucc = rmov.get_date(RMV_DATAREG);
datasuccstring=datasucc.string();
if (((gruppof!=_gruppo)||(contof!=_conto)||(sottocf!=_sottoc))||(rmov.eof()))
datasucc = ("");
if (datasucc != _dataregrmov || _stampa_saldo_des == 2)
{ {
const TRecnotype rec = rmov.recno();
if (rmov.next() == NOERR)
{
const int gruppof = rmov.get_int(RMV_GRUPPO);
const int contof = rmov.get_int(RMV_CONTO);
const long sottocf = rmov.get_long(RMV_SOTTOCONTO);
if (gruppof==_gruppo && contof==_conto && sottocf==_sottoc)
{
const TDate datasucc = rmov.get(RMV_DATAREG);
print_sald = datasucc != _dataregrmov;
}
rmov.readat(rec);
}
}
if (print_sald)
{
/* new 32 bit mode
if (_flag_del_cazzo) if (_flag_del_cazzo)
{ {
calcola_progressivi(); calcola_progressivi();
@ -2046,8 +2047,16 @@ bool TMastrini_application::preprocess_page(int file, int counter)
} }
else else
set_row (_rw,"@135g%r", &_saldo_progressivi); set_row (_rw,"@135g%r", &_saldo_progressivi);
*/
/* old 16 bit mode */
real saldo_prog = _saldo_progressivi;
if (_stampa_progressivi_si)
{
calcola_progressivi();
saldo_prog += _saldo_progre_prec;
}
set_row(_rw,"@135g%r", &saldo_prog);
} }
rmov.readat(rec);
} }
} }
else else
@ -3198,7 +3207,7 @@ void TMastrini_application::calcola_progressivi(bool finali)
real saldo,progredare_eseprec,progreavere_eseprec,saldoini_attuale,saldofine_attuale; real saldo,progredare_eseprec,progreavere_eseprec,saldoini_attuale,saldofine_attuale;
char salini,salini_attuale,salfine_attuale; char salini,salini_attuale,salfine_attuale;
saldo = ZERO; // Saldo iniziale (Guy: Ovvio no?) saldo = ZERO; // saldo = Saldo iniziale (Guy: Ovvio no?)
if (_cdc.empty()) if (_cdc.empty())
{ {

View File

@ -1793,7 +1793,7 @@ const char* TTransfer_file::scrivi_occasionali(const TString& record)
cfpi = ""; cfpi = "";
civ = ""; civ = "";
if (ragsoc.trim().empty()) return cfpi; if (ragsoc.blank()) return cfpi;
_npoccas++; _npoccas++;
@ -1805,8 +1805,7 @@ const char* TTransfer_file::scrivi_occasionali(const TString& record)
if (ind != "") if (ind != "")
civ = numero_civico(ind); civ = numero_civico(ind);
app = "RIC"; cfpi.format("RIC%13ld", _npoccas);
cfpi.format("%3s%13ld", (const char*)app,_npoccas);
//ricerca_comune(com); //ricerca_comune(com);
_cod_com = ""; _cod_com = "";