Patch level : 12.0 394
Files correlati : cg4.exe Corretto in funzionamento per fatture per cassa Corretta stampa registri per l'ultima registrazione stampata 2 volte in certe condizioni git-svn-id: svn://10.65.10.50/branches/R_10_00@23832 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
8cb639765b
commit
25dbb8e2d4
@ -1639,8 +1639,12 @@ void TStampa_registri_app::set_page_tot_reg()
|
|||||||
}
|
}
|
||||||
} // for
|
} // for
|
||||||
}
|
}
|
||||||
|
|
||||||
if (printed)
|
if (printed)
|
||||||
|
{
|
||||||
flush();
|
flush();
|
||||||
|
fine_mese();
|
||||||
|
}
|
||||||
if (_stampa_plafonds)
|
if (_stampa_plafonds)
|
||||||
stampa_plafonds(rr);
|
stampa_plafonds(rr);
|
||||||
}
|
}
|
||||||
@ -2651,134 +2655,129 @@ bool TStampa_registri_app::preprocess_page(int file, int counter)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TStampa_registri_app::fine_mese()
|
||||||
|
{
|
||||||
|
const TRecnotype pos = _cur->pos();
|
||||||
|
const TRecnotype items = _cur->items();
|
||||||
|
const bool last_mov = pos == items-1;
|
||||||
|
|
||||||
|
if (_stampa_plafonds && !last_mov)
|
||||||
|
{
|
||||||
|
// Nel caso sia richiesta la stampa prospetto mensile plafond e vi siano mesi
|
||||||
|
// senza movimenti, è necessario forzarne la stampa
|
||||||
|
const TDate save_date(_datareg);
|
||||||
|
|
||||||
|
// Caso speciale, in cui non vi siano movimenti sull'ultimo mese indicato in stampa
|
||||||
|
//const bool print_over = last_mov && _dataregp == _dataregs && _dataregp.month() < _data_a.month();
|
||||||
|
|
||||||
|
const int m1 = _dataregp.month()+1;
|
||||||
|
const int m2 = _dataregs.month();
|
||||||
|
for (int kk = m1; kk < m2; kk++)
|
||||||
|
{
|
||||||
|
_datareg = TDate(1, kk, _annoes);
|
||||||
|
if (stampa_plafonds(-1, true))
|
||||||
|
{
|
||||||
|
printer().formfeed();
|
||||||
|
stampa_plafonds(-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_datareg = save_date;
|
||||||
|
}
|
||||||
|
|
||||||
|
const int a_mese = _datareg.month();
|
||||||
|
int da_mese = 0;
|
||||||
|
if (_frequiva == 'T')
|
||||||
|
{
|
||||||
|
if (a_mese % 3 == 0)
|
||||||
|
da_mese = a_mese-2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
da_mese = a_mese;
|
||||||
|
if (da_mese > 0)
|
||||||
|
{
|
||||||
|
if (some_IVAxCassa(da_mese, a_mese))
|
||||||
|
{
|
||||||
|
printer().formfeed();
|
||||||
|
print_IVAxCassa(da_mese, a_mese);
|
||||||
|
da_mese = 0; // vieta ristampa!
|
||||||
|
}
|
||||||
|
_riga_prospettoXcassa.destroy(); // Elimina comunque tracking movimenti
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_liquidazione)
|
||||||
|
{
|
||||||
|
if (!_st_liq[a_mese] && stampo_liquidazione(a_mese))
|
||||||
|
{
|
||||||
|
_st_liq[a_mese] = true;
|
||||||
|
if (_scelta == B0_settato)
|
||||||
|
liq_b0_settato();
|
||||||
|
|
||||||
|
|
||||||
|
if (_scelta == prosegui_stampa || _scelta == prosegui_cal_stampa)
|
||||||
|
{
|
||||||
|
if (_t.exist())
|
||||||
|
{
|
||||||
|
printer().formfeed();
|
||||||
|
_intesta_liq = true;
|
||||||
|
merge_export_file(_t,false,true);
|
||||||
|
_intesta_liq = false;
|
||||||
|
remove(_t);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (last_mov)
|
||||||
|
{
|
||||||
|
if (_stampa_plafonds || (_tipo_stampa != libro_unico && _liquidazione))
|
||||||
|
stampa_liq_mesi_succ();
|
||||||
|
if (_tipo_stampa != prova)
|
||||||
|
{
|
||||||
|
int da = _datareg.month() + 1;
|
||||||
|
int a = _data_a.month();
|
||||||
|
for (int m=da; m<=a; m++)
|
||||||
|
{
|
||||||
|
TDate data(1, m, _annoes);
|
||||||
|
data.set_end_month();
|
||||||
|
scrivi_reg(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
print_action TStampa_registri_app::postprocess_page (int file, int counter)
|
print_action TStampa_registri_app::postprocess_page (int file, int counter)
|
||||||
{
|
{
|
||||||
if (file == LF_MOV)
|
if (file == LF_MOV)
|
||||||
{
|
{
|
||||||
if (counter) //dopo aver fatto un REPEAT_PAGE (cioe' dopo aver stampato
|
const TRectype& mov = _cur->curr(LF_MOV);
|
||||||
//le righe settate in set_page_tot_reg()), in pratica a rottura di mese o alla fine
|
const TRecnotype pos = _cur->pos();
|
||||||
|
const long items = _cur->items();
|
||||||
|
const bool FINITO = (pos == items-1);
|
||||||
|
if ( FINITO )
|
||||||
{
|
{
|
||||||
reset_print();
|
liq_other_case();
|
||||||
|
if (_tipo_stampa != prova)
|
||||||
const TRecnotype pos = _cur->pos();
|
calcola_progressivi();
|
||||||
const TRecnotype items = _cur->items();
|
set_page_tot_reg();
|
||||||
const bool last_mov = pos == items-1;
|
return NEXT_PAGE;
|
||||||
|
}
|
||||||
if (_stampa_plafonds && !last_mov)
|
else
|
||||||
{
|
|
||||||
// Nel caso sia richiesta la stampa prospetto mensile plafond e vi siano mesi
|
|
||||||
// senza movimenti, è necessario forzarne la stampa
|
|
||||||
const TDate save_date(_datareg);
|
|
||||||
|
|
||||||
// Caso speciale, in cui non vi siano movimenti sull'ultimo mese indicato in stampa
|
|
||||||
//const bool print_over = last_mov && _dataregp == _dataregs && _dataregp.month() < _data_a.month();
|
|
||||||
|
|
||||||
const int m1 = _dataregp.month()+1;
|
|
||||||
const int m2 = _dataregs.month();
|
|
||||||
for (int kk = m1; kk < m2; kk++)
|
|
||||||
{
|
|
||||||
_datareg = TDate(1, kk, _annoes);
|
|
||||||
if (stampa_plafonds(-1, true))
|
|
||||||
{
|
|
||||||
printer().formfeed();
|
|
||||||
stampa_plafonds(-1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_datareg = save_date;
|
|
||||||
}
|
|
||||||
|
|
||||||
const int a_mese = _datareg.month();
|
|
||||||
int da_mese = 0;
|
|
||||||
if (_frequiva == 'T')
|
|
||||||
{
|
|
||||||
if (a_mese % 3 == 0)
|
|
||||||
da_mese = a_mese-2;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
da_mese = a_mese;
|
|
||||||
if (da_mese > 0)
|
|
||||||
{
|
|
||||||
if (some_IVAxCassa(da_mese, a_mese))
|
|
||||||
{
|
|
||||||
printer().formfeed();
|
|
||||||
print_IVAxCassa(da_mese, a_mese);
|
|
||||||
da_mese = 0; // vieta ristampa!
|
|
||||||
}
|
|
||||||
_riga_prospettoXcassa.destroy(); // Elimina comunque tracking movimenti
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_liquidazione)
|
|
||||||
{
|
|
||||||
if (!_st_liq[a_mese] && stampo_liquidazione(a_mese))
|
|
||||||
{
|
|
||||||
_st_liq[a_mese] = true;
|
|
||||||
if (_scelta == B0_settato)
|
|
||||||
liq_b0_settato();
|
|
||||||
|
|
||||||
|
|
||||||
if (_scelta == prosegui_stampa || _scelta == prosegui_cal_stampa)
|
|
||||||
{
|
|
||||||
if (_t.exist())
|
|
||||||
{
|
|
||||||
printer().formfeed();
|
|
||||||
_intesta_liq = true;
|
|
||||||
merge_export_file(_t,false,true);
|
|
||||||
_intesta_liq = false;
|
|
||||||
remove(_t);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (last_mov)
|
|
||||||
{
|
|
||||||
if (_stampa_plafonds || (_tipo_stampa != libro_unico && _liquidazione))
|
|
||||||
stampa_liq_mesi_succ();
|
|
||||||
if (_tipo_stampa != prova)
|
|
||||||
{
|
|
||||||
int da = _datareg.month() + 1;
|
|
||||||
int a = _data_a.month();
|
|
||||||
for (int m=da; m<=a; m++)
|
|
||||||
{
|
|
||||||
TDate data(1, m, _annoes);
|
|
||||||
data.set_end_month();
|
|
||||||
scrivi_reg(data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
const TRectype& mov = _cur->curr(LF_MOV);
|
_cur->save_status();
|
||||||
const TRecnotype pos = _cur->pos();
|
++(*_cur);
|
||||||
const long items = _cur->items();
|
_dataregs = mov.get_date(MOV_DATAREG);
|
||||||
const bool FINITO = (pos == items-1);
|
--(*_cur);
|
||||||
if ( FINITO )
|
_cur->restore_status();
|
||||||
|
|
||||||
|
if (_dataregs.month() != _dataregp.month())
|
||||||
{
|
{
|
||||||
liq_other_case();
|
liq_other_case();
|
||||||
if (_tipo_stampa != prova)
|
if (_tipo_stampa != prova)
|
||||||
calcola_progressivi();
|
calcola_progressivi();
|
||||||
set_page_tot_reg();
|
set_page_tot_reg();
|
||||||
return NEXT_PAGE;
|
return NEXT_PAGE;
|
||||||
}
|
}
|
||||||
else
|
}
|
||||||
{
|
|
||||||
_cur->save_status();
|
|
||||||
++(*_cur);
|
|
||||||
_dataregs = mov.get_date(MOV_DATAREG);
|
|
||||||
--(*_cur);
|
|
||||||
_cur->restore_status();
|
|
||||||
|
|
||||||
if (_dataregs.month() != _dataregp.month())
|
|
||||||
{
|
|
||||||
liq_other_case();
|
|
||||||
if (_tipo_stampa != prova)
|
|
||||||
calcola_progressivi();
|
|
||||||
set_page_tot_reg();
|
|
||||||
return NEXT_PAGE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return NEXT_PAGE;
|
return NEXT_PAGE;
|
||||||
}
|
}
|
||||||
|
@ -124,7 +124,8 @@ public:
|
|||||||
void set_choice_limits(TMask&);
|
void set_choice_limits(TMask&);
|
||||||
void build_ditte_sheet(int flags);
|
void build_ditte_sheet(int flags);
|
||||||
tiporeg cerca_reg(const TString&);
|
tiporeg cerca_reg(const TString&);
|
||||||
void set_page_tot_reg();
|
void fine_mese();
|
||||||
|
void set_page_tot_reg();
|
||||||
void send_message(char,const TFilename&,int);
|
void send_message(char,const TFilename&,int);
|
||||||
void aggiorna_reg(const bool aggiorna_vidi);
|
void aggiorna_reg(const bool aggiorna_vidi);
|
||||||
void aggiorna_lib();
|
void aggiorna_lib();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user