Correzioni alla stampa registri IVA
git-svn-id: svn://10.65.10.50/trunk@1005 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
9b6ce7f444
commit
9bce813359
@ -672,7 +672,7 @@ bool CG4400_application::user_create()
|
||||
_tablia = new TTable("%LIA");
|
||||
_tabpla = new TTable("%PLA");
|
||||
_tabppa = new TTable("PPA");
|
||||
_tabvid = new TTable("VID");
|
||||
_tabvid = new TTable("%VID");
|
||||
_clifo = new TLocalisamfile(LF_CLIFO);
|
||||
_occas = new TLocalisamfile(LF_OCCAS);
|
||||
|
||||
@ -2028,17 +2028,11 @@ bool CG4400_application::preprocess_page(int file, int counter)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void CG4400_application::aggiorna_reg()
|
||||
void CG4400_application::aggiorna_reg(const bool aggiorna_vidi)
|
||||
{
|
||||
TString16 codtab;
|
||||
TTable Tabreg ("REG");
|
||||
TLocalisamfile IndBil (LF_INDLIB);
|
||||
int mese;
|
||||
|
||||
word ultimast = get_page_number();
|
||||
|
||||
//if (_stampa_tutti_i_registri)
|
||||
// --ultimast;
|
||||
|
||||
codtab << _annoes << _codreg;
|
||||
Tabreg.zero();
|
||||
@ -2068,40 +2062,43 @@ void CG4400_application::aggiorna_reg()
|
||||
|
||||
Tabreg.rewrite();
|
||||
}
|
||||
|
||||
if (_tipo_stampa == 3) //stampa su libro unico
|
||||
//sul file indlib (indice libro unico) devo generare una riga per ogni registro stampato (ricordarsi che la stampa su libro unico deve avvenire mese per mese!
|
||||
//inoltre non posso stampare due volte lo stesso mese perche' la stampa avviene a fine mese
|
||||
//if (!_mov_empty || _ok_vidi) //se ho stampato almeno un movimento oppure ho stampato la vidimazione
|
||||
if (!_ok_vidi)
|
||||
|
||||
// sul file indlib (indice libro unico) devo generare una riga per ogni
|
||||
// registro stampato (ricordarsi che la stampa su libro unico deve
|
||||
// avvenire mese per mese!)
|
||||
// inoltre non posso stampare due volte lo stesso mese perche' la stampa
|
||||
// avviene a fine mese
|
||||
|
||||
{
|
||||
long numero_riga = 1L;
|
||||
if (!aggiorna_vidi)
|
||||
{
|
||||
bool trovato = FALSE;
|
||||
|
||||
IndBil.zero();
|
||||
|
||||
TRectype nuovo (IndBil.curr());
|
||||
TRectype recprec (IndBil.curr());
|
||||
|
||||
IndBil.put("ANNO", _annoes);
|
||||
IndBil.put("CODLIB", _codlib);
|
||||
TRectype rec (IndBil.curr());
|
||||
|
||||
for (IndBil.read(_isgteq); !IndBil.eof(); IndBil.next())
|
||||
{
|
||||
if (IndBil.curr() != rec) break;
|
||||
|
||||
mese = IndBil.get_int("MESEREG");
|
||||
trovato = TRUE;
|
||||
recprec = IndBil.curr();
|
||||
if (mese == _fino_a_mese) break; //cosi' mi posiziono su quel mese (altrimenti rischio di generare due righe per lo stesso mese e registro => la stampa di vidimazione mi sballa tutta!!!
|
||||
numero_riga = IndBil.get_long("NUMREG") + 1;
|
||||
// cosi' mi posiziono su quel mese (altrimenti rischio di generare
|
||||
// due righe per lo stesso mese e registro => la stampa di vidimazione
|
||||
// mi sballa tutta!!!
|
||||
}
|
||||
if (trovato && mese != _fino_a_mese)
|
||||
{
|
||||
long numero_riga = recprec.get_long("NUMREG") + 1;
|
||||
nuovo = recprec;
|
||||
nuovo.put("ANNO", _annoes);
|
||||
nuovo.put("CODLIB", _codlib);
|
||||
nuovo.put("NUMREG", numero_riga);
|
||||
}
|
||||
else if (trovato) nuovo = rec;
|
||||
else //trovato e' rimasto FALSE
|
||||
{
|
||||
nuovo = rec;
|
||||
nuovo.put("NUMREG", 1L);
|
||||
}
|
||||
|
||||
nuovo.put("ANNOREG", _annoes);
|
||||
nuovo.put("MESEREG", _fino_a_mese); // su libro unico ho un solo mese in gioco!
|
||||
nuovo.put("PAGINI", _primast + 1); // numero iniziale pagina libro unico
|
||||
@ -2112,15 +2109,14 @@ void CG4400_application::aggiorna_reg()
|
||||
nuovo.put("PAGINIUT", _numini + 1);
|
||||
nuovo.put("PAGFINUT", _pagine_stampate);
|
||||
|
||||
if (mese == _fino_a_mese)
|
||||
IndBil.rewrite(nuovo);
|
||||
else
|
||||
IndBil.write(nuovo);
|
||||
|
||||
_primast = _u_stampata; //per la numerazione dei registri successivi
|
||||
// _primast = _u_stampata; //per la numerazione dei registri successivi
|
||||
}
|
||||
_primast = _u_stampata; //per la numerazione dei registri successivi
|
||||
aggiorna_lib();
|
||||
}
|
||||
}
|
||||
|
||||
void CG4400_application::aggiorna_lib()
|
||||
{
|
||||
@ -2161,21 +2157,21 @@ bool CG4400_application::stampo_liquidazione(int mese)
|
||||
void CG4400_application::stampa_vidi()
|
||||
{
|
||||
TLocalisamfile IndBil (LF_INDLIB);
|
||||
TTable TabVid ("VID");
|
||||
TTable TabVid ("%VID");
|
||||
TString16 codreg;
|
||||
TString16 vid;
|
||||
long ditta;
|
||||
long ditta, pagfin, pagfinut;
|
||||
int mese;
|
||||
_ok_vidi = FALSE;
|
||||
TPrintrow row;
|
||||
|
||||
_ok_vidi = FALSE;
|
||||
|
||||
if (!printer().isopen())
|
||||
printer().open();
|
||||
|
||||
IndBil.zero();
|
||||
IndBil.put("ANNO", _annoes);
|
||||
IndBil.put("CODLIB", _codlib);
|
||||
|
||||
TRectype rec (IndBil.curr());
|
||||
IndBil.read (_isgteq);
|
||||
for (; !IndBil.eof(); IndBil.next())
|
||||
@ -2192,12 +2188,23 @@ void CG4400_application::stampa_vidi()
|
||||
_ok_vidi = TRUE;
|
||||
}
|
||||
mese = IndBil.get_int("MESEREG");
|
||||
pagfin = IndBil.get_long("PAGFIN");
|
||||
pagfinut = IndBil.get_long("PAGFINUT");
|
||||
if (mese == 12)
|
||||
{
|
||||
++pagfin;
|
||||
++pagfinut;
|
||||
TRectype nuovo (IndBil.curr());
|
||||
nuovo.put("PAGFIN", pagfin);
|
||||
nuovo.put("PAGFINUT", pagfinut);
|
||||
IndBil.rewrite(nuovo);
|
||||
}
|
||||
row.reset();
|
||||
row.put(format("%s", itom(mese)), 0);
|
||||
row.put(format("%5ld", IndBil.get_long("PAGINI")), 10);
|
||||
row.put(format("%5ld", _u_stampata), 17);
|
||||
row.put(format("%5ld", pagfin), 17);
|
||||
row.put(format("%5ld", IndBil.get_long("PAGINIUT")), 25);
|
||||
row.put(format("%5ld", _pagine_stampate), 32);
|
||||
row.put(format("%5ld", pagfinut), 32);
|
||||
vid = IndBil.get("CODVID");
|
||||
TabVid.zero();
|
||||
TabVid.put("CODTAB", vid);
|
||||
@ -2905,7 +2912,8 @@ void CG4400_application::preprocess_header()
|
||||
if (_stampa_ind_ditta)
|
||||
r = stampa_intestazione();
|
||||
}
|
||||
else //se stampa di prova o su libro unico l'intestazione della ditta va sempre stampata
|
||||
else // se stampa di prova o su libro unico l'intestazione della ditta
|
||||
// va sempre stampata
|
||||
r = stampa_intestazione();
|
||||
|
||||
if (_tipo_stampa == 3 && !_intesta_vidi)
|
||||
@ -2921,7 +2929,9 @@ void CG4400_application::preprocess_header()
|
||||
//set_header(r, "@94gProgr.Studio %ld@114gProgr.Utente @#", _u_stampata);
|
||||
set_header(r, "@94gProgr.Studio %ld@114gProgr.Utente %ld", _u_stampata, _pagine_stampate);
|
||||
|
||||
if (_tipo_stampa != 1) aggiorna_reg(); //cosi' sono sicura che l'aggiornamento viene fatto ad ogni salto pagina (cioe' a rottura di mese)
|
||||
// cosi' sono sicura che l'aggiornamento viene fatto ad ogni salto pagina
|
||||
// (cioe' a rottura di mese)
|
||||
if (_tipo_stampa != 1) aggiorna_reg(_ok_vidi);
|
||||
|
||||
r++;
|
||||
|
||||
|
@ -90,7 +90,7 @@ protected:
|
||||
void cerca_reg(const TString&, byte*);
|
||||
void set_page_tot_reg();
|
||||
void send_message(char, const TFilename&,int);
|
||||
void aggiorna_reg();
|
||||
void aggiorna_reg(const bool aggiorna_vidi);
|
||||
void aggiorna_lib();
|
||||
void calcola_progressivi();
|
||||
void stampa_liq_mesi_succ();
|
||||
|
Loading…
x
Reference in New Issue
Block a user