Corretti errori in bilancio IV direttiva e registri iva

git-svn-id: svn://10.65.10.50/trunk@778 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
nik 1994-12-20 12:19:20 +00:00
parent 6bb9550c77
commit 82a019707e
5 changed files with 2386 additions and 1286 deletions

View File

@ -260,24 +260,25 @@ class CG1600_application : public TPrintapp
bool conto_dettagliato;
};
bil_ivd* _bil;
TMask* _msk;
TTable* _tabesc;
TTable* _tabivd;
TLocalisamfile* _nditte;
TLocalisamfile* _comuni;
TLocalisamfile* _unloc;
TLocalisamfile* _anag;
TLocalisamfile* _pconti;
TLocalisamfile* _clifo;
TLocalisamfile* _saldi;
const char* _buff;
TSort* _sort;
Anni_es _anni_es;
Righe_sez_opp _sezopps;
TSaldi_list* _listasld;
TProgind* _prog;
TParagraph_string * _descr;
bil_ivd* _bil;
TMask* _msk;
TTable* _tabesc;
TTable* _tabivd;
TLocalisamfile* _nditte;
TLocalisamfile* _comuni;
TLocalisamfile* _unloc;
TLocalisamfile* _anag;
TLocalisamfile* _pconti;
TLocalisamfile* _clifo;
TLocalisamfile* _saldi;
const char* _buff;
TSort* _sort;
Anni_es* _anni_es;
Righe_sez_opp _sezopps;
TSaldi_list* _listasld;
TProgind* _prog;
TParagraph_string* _descr;
Saldo* _sld;
TDate _data_fine_ese,_data_fine_ese_prec,_data_fine_raf,_data_fine_raf_prec;
TDate _datastampa,_datalimite,_databilrafr,_datai,_datairaf;
@ -291,7 +292,6 @@ class CG1600_application : public TPrintapp
TString _numr_da_stamp,_num_da_stamp,_numr_stamp,_num_stamp,_descr_sez;
int _tipo_bilancio, _tipo_stampa;
int _cont_let,_cont_numr,_cont_num,_cont_gcs,_num;
Saldo _sld;
real _sale,_salerafr,_totale_ordine,_totale_economico;
real _totale_ordine_raf,_totale_economico_raf;
real _totale_numero,_totale_numr,_totale_lettera,_totale_sezione;
@ -324,7 +324,7 @@ public:
bool menu (MENU_TAG m) { return TPrintapp::menu(m) ; }
virtual bool user_create() ;
virtual bool user_destroy();
bool set_print(int);
bool set_print(int);
virtual bool preprocess_page (int,int);
virtual print_action postprocess_page (int,int);
@ -479,7 +479,7 @@ bool data_limite (TMask_field& f, KEY key)
if (annoese != 0)
{
a()._anni_es.aggiungi_anno(annoese, in, fin);
a()._anni_es->aggiungi_anno(annoese, in, fin);
a()._data_fine_ese = fin;
a()._data_ini_ese = in;
@ -558,7 +558,7 @@ bool data_bil_raff (TMask_field& f, KEY key)
in = a()._inizioEs;
}
else
a()._anni_es.aggiungi_anno(annoese, in, fin);
a()._anni_es->aggiungi_anno(annoese, in, fin);
TString instr = in.string();
if (dataraf != botime)
@ -599,7 +599,7 @@ bool data_bil_raff (TMask_field& f, KEY key)
else
if (annoraf != 0)
{
a()._anni_es.aggiungi_anno(annoraf, in_raf, fin_raf);
a()._anni_es->aggiungi_anno(annoraf, in_raf, fin_raf);
a()._data_fine_raf = fin_raf;
a()._data_ini_raf = in_raf;
@ -641,7 +641,7 @@ bool anno_ese_raff (TMask_field& f, KEY key)
{
if (annoese != 0)
{
if (annoraf > annoese)
if (annoraf >= annoese)
{
f.error_box("L' anno esercizio da raffrontare deve essere inferiore all' anno esercizio in corso");
return FALSE;
@ -779,7 +779,7 @@ bool data_inizio(TMask_field& f, KEY k)
{
if (anno != 0)
{
a()._anni_es.aggiungi_anno(anno, in, fin);
a()._anni_es->aggiungi_anno(anno, in, fin);
a()._data_ini_ese = in;
a()._data_fine_ese = fin;
a()._anno_esercizio = anno;
@ -837,7 +837,7 @@ bool data_fine(TMask_field& f, KEY k)
{
if (annoes != 0)
{
a()._anni_es.aggiungi_anno(annoes, in, fin);
a()._anni_es->aggiungi_anno(annoes, in, fin);
a()._data_ini_ese = in;
a()._data_fine_ese = fin;
@ -1399,7 +1399,7 @@ void CG1600_application::crea_sort_piano_conti_verifica()
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;
_sld.set_annoes(_anno_esercizio);
_sld->set_annoes(_anno_esercizio);
saldo_conto = ZERO;
sld_prg_dare_conto = ZERO;
@ -1539,9 +1539,9 @@ void CG1600_application::crea_sort_piano_conti_verifica()
else
if (_tipo_stampa == 2)
{
if (!_sld.ultima_immissione_verifica(_anno_esercizio,g,c,s,indbil))
if (!_sld->ultima_immissione_verifica(_anno_esercizio,g,c,s,indbil))
continue;
app = _sld.saldoini();
app = _sld->saldoini();
if (app < ZERO)
{
app = -app;
@ -1553,8 +1553,8 @@ void CG1600_application::crea_sort_piano_conti_verifica()
sld_prg_dare = app;
sld_prg_avere = ZERO;
}
mov_dare = _sld.prgdare();
mov_avere = _sld.prgavere();
mov_dare = _sld->prgdare();
mov_avere = _sld->prgavere();
saldo = sld_prg_dare-sld_prg_avere+mov_dare-mov_avere;
}
@ -1667,9 +1667,9 @@ void CG1600_application::sottoc_clifo_verifica(int g,int c,int anno,char tipocf,
else
if (_tipo_stampa == 2)
{
if (!_sld.ultima_immissione_bilancio(_anno_esercizio,g,c,s,indbil))
if (!_sld->ultima_immissione_bilancio(_anno_esercizio,g,c,s,indbil))
continue;
app = _sld.saldoini();
app = _sld->saldoini();
if (app < ZERO)
{
app = -app;
@ -1681,8 +1681,8 @@ void CG1600_application::sottoc_clifo_verifica(int g,int c,int anno,char tipocf,
sld_prg_dare = app;
sld_prg_avere = ZERO;
}
mov_dare = _sld.prgdare();
mov_avere = _sld.prgavere();
mov_dare = _sld->prgdare();
mov_avere = _sld->prgavere();
saldo = sld_prg_dare-sld_prg_avere+mov_dare-mov_avere;
}
@ -1748,23 +1748,23 @@ bool CG1600_application::calcola_saldo(real& saldo, real& saldo_raf,int g,int c,
bool esiste = FALSE;
TString saldostr,saldo_rafstr;
_sld.set_annoes(_anno_esercizio);
_sld->set_annoes(_anno_esercizio);
if (_tipo_bilancio == 1)
{
if (_tipo_stampa == 1) //bilancio per data limite
{
esiste = _sld.data_limite_bilancio(_tipo_stampa,g,c,s,_datai,_datalimite,indbil,_stampa_mov_prov);
saldo = _sld.saldo();
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()))
if (!esiste && (!_sld->esiste_saldo() || !_sld->significativo()))
no_movimentato = TRUE;
else
if (!_stampamov)
{
if (saldo == ZERO)
{
if (!_sld.esiste_saldo() || !_sld.significativo())
if (!_sld->esiste_saldo() || !_sld->significativo())
no_movimentato = TRUE;
else
no_movimentato = FALSE;
@ -1782,9 +1782,9 @@ bool CG1600_application::calcola_saldo(real& saldo, real& saldo_raf,int g,int c,
}
else if (_tipo_stampa == 2)
{
if (!_sld.ultima_immissione_bilancio(_anno_esercizio,g,c,s,indbil))
if (!_sld->ultima_immissione_bilancio(_anno_esercizio,g,c,s,indbil))
{
if (!_sld.esiste_saldo() || !_sld.significativo())
if (!_sld->esiste_saldo() || !_sld->significativo())
no_movimentato = TRUE;
else
no_movimentato = FALSE;
@ -1792,13 +1792,13 @@ bool CG1600_application::calcola_saldo(real& saldo, real& saldo_raf,int g,int c,
else
no_movimentato = FALSE;
saldo = _sld.saldo();
saldo = _sld->saldo();
}
saldostr = saldo.string();
if (_annoeserafr != 0 || _databilrafr != botime)
{
_sld.set_annoes(_anno_esercizio_raf);
_sld->set_annoes(_anno_esercizio_raf);
if (_databilrafr != _data_fine_raf) //(_tipo_stampa == 1) bilancio per data limite
{
@ -1806,17 +1806,17 @@ bool CG1600_application::calcola_saldo(real& saldo, real& saldo_raf,int g,int c,
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();
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()))
if (!esiste && (!_sld->esiste_saldo() || !_sld->significativo()))
no_movimentato_raf = TRUE;
else
if (!_stampamov)
{
if (saldo_raf == ZERO)
{
if (!_sld.esiste_saldo() || !_sld.significativo())
if (!_sld->esiste_saldo() || !_sld->significativo())
no_movimentato_raf = TRUE;
else
no_movimentato_raf = FALSE;
@ -1834,9 +1834,9 @@ bool CG1600_application::calcola_saldo(real& saldo, real& saldo_raf,int g,int c,
}
else if (_databilrafr == _data_fine_raf) //(_tipo_stampa == 2)
{
if (!_sld.ultima_immissione_bilancio(_anno_esercizio_raf,g,c,s,indbil))
if (!_sld->ultima_immissione_bilancio(_anno_esercizio_raf,g,c,s,indbil))
{
if (!_sld.esiste_saldo() || !_sld.significativo())
if (!_sld->esiste_saldo() || !_sld->significativo())
no_movimentato_raf = TRUE;
else
no_movimentato_raf = FALSE;
@ -1844,7 +1844,7 @@ bool CG1600_application::calcola_saldo(real& saldo, real& saldo_raf,int g,int c,
else
no_movimentato_raf = FALSE;
saldo_raf = _sld.saldo();
saldo_raf = _sld->saldo();
}
saldo_rafstr = saldo_raf.string();
}
@ -2089,6 +2089,9 @@ void CG1600_application::stampa_totali()
diff_prod.format("%c%c",'9','B');
ris_imp.format ("%c%c%8s%2s",'9','E',"","21");
TString16 classe;
classe.format("%c%c%8s%2s", _sez_da_stamp,_let_da_stamp,(const char*)_numr_da_stamp,(const char*)_num_da_stamp);
_num = atoi(_num_tot);
_numr = _numr_tot;
_let = _let_tot;
@ -2120,11 +2123,7 @@ void CG1600_application::stampa_totali()
}
}
if (_sez_stamp == '9')
{
TString16 classe;
classe.format("%c%c%8s%2s", _sez_da_stamp,_let_da_stamp,(const char*)_numr_da_stamp,(const char*)_num_da_stamp);
{
if (classe > ris_imp && _risimp_fatto)
{
if (_num_tot == "20" || _num_tot == "21")
@ -2501,10 +2500,16 @@ void CG1600_application::stampa_totali()
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);
if (_risimp_fatto)
{
if (_let_da_stamp == 'E' && (_num_da_stamp == "20" || _num_da_stamp == "21"))
{
set_row (_i,"@4gTotale delle partite straordinarie");
set_row (_i++,"@86g%r", &_totale_parziale);
set_row (_i,"@4gRisultato prima delle imposte");
set_row (_i++,"@86g%r", &_totale_economico);
_risimp_fatto = FALSE;
}
}
}
@ -2535,6 +2540,10 @@ void CG1600_application::stampa_totali_con_raffronto()
diff_prod.format("%c%c",'9','B');
ris_imp.format ("%c%c%8s%2s",'9','E',"","21");
TString16 classe;
classe.format("%c%c%8s%2s", _sez_da_stamp,_let_da_stamp,(const char*)_numr_da_stamp,(const char*)_num_da_stamp);
_num = atoi(_num_tot);
_numr = _numr_tot;
_let = _let_tot;
@ -2568,11 +2577,7 @@ void CG1600_application::stampa_totali_con_raffronto()
}
}
if (_sez_stamp == '9')
{
TString16 classe;
classe.format("%c%c%8s%2s", _sez_da_stamp,_let_da_stamp,(const char*)_numr_da_stamp,(const char*)_num_da_stamp);
{
if (classe > ris_imp && _risimp_fatto)
{
if (_num_tot == "20" || _num_tot == "21")
@ -3012,11 +3017,18 @@ void CG1600_application::stampa_totali_con_raffronto()
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);
if (_risimp_fatto)
{
if (_let_da_stamp == 'E' && (_num_da_stamp == "20" || _num_da_stamp == "21"))
{
set_row (_i,"@4gTotale delle partite straordinarie");
set_row (_i,"@86g%r", &_totale_parziale);
set_row (_i++,"@112g%r", &_totale_parziale_raf);
set_row (_i,"@4gRisultato prima delle imposte");
set_row (_i,"@86g%r", &_totale_economico);
set_row (_i++,"@112g%r", &_totale_economico_raf);
_risimp_fatto = FALSE;
}
}
}
char app = ' ';
@ -3661,6 +3673,20 @@ bool CG1600_application::preprocess_stampa_scalare(int counter)
saldostr = _sale.string();
saldo_rafstr = _salerafr.string();
// Faccio passare solo i sottoconti o i conti non dettagliati (che non hanno sottoconti)
// perchè l' importo dei conti dettagliati non è altri che il totale degli importi di
// tutti i suoi sottoconti; dunque se li sommassi anche loro, sommerei l'importo due volte.
// Pero' devo ricordarmi di cambiare ugualmente segno ai conti che vanno dettagliati.
if (g != 0 && c != 0 && s == 0 && conto_dettagliato)
if (_sez_da_stamp == '9')
{
_sale = -_sale;
if (_annoeserafr != 0 || _databilrafr != botime)
_salerafr = -_salerafr;
}
if ((g != 0 && c != 0 && s != 0)||(g != 0 && c != 0 && s == 0 && !conto_dettagliato))
{
// if (_sez_da_stamp == '5')
@ -4896,19 +4922,23 @@ void CG1600_application::init_sort()
bool CG1600_application::user_create()
{
_nditte = new TLocalisamfile (LF_NDITTE);
_comuni = new TLocalisamfile (LF_COMUNI);
_unloc = new TLocalisamfile (LF_UNLOC);
_anag = new TLocalisamfile (LF_ANAG);
_pconti = new TLocalisamfile (LF_PCON);
_clifo = new TLocalisamfile (LF_CLIFO);
_saldi = new TLocalisamfile (LF_SALDI);
_descr = new TParagraph_string ("",40);
_nditte = new TLocalisamfile (LF_NDITTE);
_comuni = new TLocalisamfile (LF_COMUNI);
_unloc = new TLocalisamfile (LF_UNLOC);
_anag = new TLocalisamfile (LF_ANAG);
_pconti = new TLocalisamfile (LF_PCON);
_clifo = new TLocalisamfile (LF_CLIFO);
_saldi = new TLocalisamfile (LF_SALDI);
_descr = new TParagraph_string ("",40);
_tabivd = new TTable (TAB_IVD);
_tabesc = new TTable (TAB_ESC);
_tabivd = new TTable (TAB_IVD);
_tabesc = new TTable (TAB_ESC);
_anni_es = new Anni_es();
_sld = new Saldo();
_msk = new TMask("cg1600a");
_msk = new TMask("cg1600a");
return TRUE;
}
@ -4926,6 +4956,9 @@ bool CG1600_application::user_destroy()
delete _clifo;
delete _saldi;
delete _descr;
delete _anni_es;
delete _sld;
return TRUE;
}

File diff suppressed because it is too large Load Diff

View File

@ -1,104 +1,127 @@
//
// cg4400.h
//
#include <isam.h>
#include <printapp.h>
#include <mask.h>
#include <tabutil.h>
#include <utility.h>
#include <urldefid.h>
#include <sheet.h>
#include <config.h>
#include <nditte.h>
#include <anagr.h>
#include <comuni.h>
#include <mov.h>
#include <rmoviva.h>
#include <clifo.h>
#include <occas.h>
#include <causali.h>
#include "cglib03.h"
const int TABREG = (int)TTable::name2log("REG");
class CG4400_application : public TPrintapp
{
TCursor * _cur;
TRelation *_rel;
TLocalisamfile *_clifo, *_nditte, *_occas, *_tab, *_tabcom, *_com, *_anag;
TTable *_tabreg, *_tablbu, *_tabinl, *_tablim, *_tabpim, *_tablia, *_tabiva;
TRigaiva_array _iva_array, _riga_rmi;
TTipodoc_array _doc_array;
TRiga_array _tot_iva_array;
TBit_array _selected;
TArray_sheet *_ditte;
TRecnotype _nrec;
bool _mov_empty, _stampa_ind_ditta, _stampa_tutti_i_registri, _auto_intraf;
bool _corrispettivi, _esiste_riga_iva;
char _frequiva;
TDate _data_da, _data_a, _data_stampa, _dataregp, _dataregs, _datareg;
long _n_ditte, _u_stampata, _primast;
int _fino_a_mese, _tipo_reg, _tipo_stampa, _pagine_stampate;
int _annoes, _r, _stampa_width; // riga corrente di stampa
real _totale_doc;
TString _codreg, _desc_lib, _codatt, _attivita;
TString _tipodoc, _descr_doc, _codlib;
TString _cofi,_cap,_paiva,_ragsoc,_comunefis,_provfis,_viafis;
protected:
const char* desc_attivita (const char * codatt);
const char* descr_doc (const char * tipo);
const char* descr_iva (const char * cod);
const char* ricerca_cf (char tipocf, long codcf);
const char* ricerca_occ(const char * occ);
int setta_riga (int, const TRigaiva&, real&, real&, real&, real&);
int riga_rmoviva();
bool set_print(int);
bool set_ditte(TMask&);
bool compila_reg(const TMask&);
bool compila_lib();
bool controlla_liquidazione();
bool controlla_mov();
bool ventilazione(const char*);
void cerca_reg(const TString&, byte&, TDate&);
//void leggi_movimenti(const TDate&, const TString&, bool&);
void stampa_registri_IVA(const TMask&);
void set_page_tot_reg();
void aggiorna_reg();
void aggiorna_lib();
void calcola_progressivi(real&, real&, const char*, const int);
bool user_create();
bool user_destroy();
bool preprocess_page(int, int);
int stampa_intestazione();
int stampa_prospetto();
void get_dati_ditta();
void stampa_acquisti(int);
bool preprocess_print(int, int);
print_action postprocess_print(int, int);
print_action postprocess_page (int, int);
void preprocess_header();
static bool filter_func (const TRelation * r);
static bool mask_firm_to (TMask_field&, KEY);
static bool mask_cod (TMask_field&, KEY);
static bool mask_data (TMask_field&, KEY);
static bool mask_mese (TMask_field&, KEY);
static bool mask_fino_a_mese (TMask_field&, KEY);
static bool mask_select (TMask_field&, KEY);
static bool mask_azzera (TMask_field&, KEY);
public:
CG4400_application() : TPrintapp(), _ditte(NULL) {}
virtual ~CG4400_application() {}
};
//
// cg4400.h
//
#include <isam.h>
#include <printapp.h>
#include <mask.h>
#include <tabutil.h>
#include <utility.h>
#include <urldefid.h>
#include <text.h>
#include <mailbox.h>
#include <execp.h>
#include <sheet.h>
#include <config.h>
#include <prefix.h>
#include <conto.h>
#include <nditte.h>
#include <anagr.h>
#include <comuni.h>
#include <unloc.h>
#include <mov.h>
#include <rmoviva.h>
#include <clifo.h>
#include <occas.h>
#include <causali.h>
#include "cglib03.h"
const int TABREG = (int)TTable::name2log("REG");
class CG4400_application : public TPrintapp
{
TCursor * _cur;
TRelation *_rel;
TLocalisamfile *_clifo, *_nditte, *_occas, *_tab, *_tabcom, *_com, *_anag, *_unloc, *_attiv;
TTable *_tabreg, *_tablbu, *_tabinl, *_tablim, *_tabpim, *_tablia, *_tabiva;
TTable *_tabpla, *_tabppa, *_tabvid;
TRigaiva_array _iva_array, _riga_rmi;
TTipodoc_array _doc_array;
TRiga_array _tot_iva_array;
TBit_array _selected;
TArray_sheet *_ditte;
bool _st_liq[12];
TRecnotype _nrec;
bool _mov_empty, _stampa_ind_ditta, _stampa_tutti_i_registri, _auto_intraf, _stampa;
bool _corrispettivi, _liquidazione, _riep_liq, _stampa_ind_comp, _esiste_riga_iva, _stampa_cred_pre;
bool _rif_vid, _intesta_vidi, _intesta_liq, _stampa_data_reg, _ok_vidi;
char _frequiva, _tipo_riepilogativo;
TDate _data_da, _data_a, _data_stampa, _dataregp, _dataregs, _datareg;
TDate _u_data;
long _n_ditte, _u_stampata, _primast, __firm, _uprotivap;
long _numini, _pagine_stampate;
int _fino_a_mese, _tipo_reg, _tipo_stampa, _cod_un_loc;
int _annoes, _r, _stampa_width, _mese_ultima_liq, _mese_credito;
int _stampa_len, _stampa_mese;
real _totale_doc, _credito;
TString _codreg, _desc_lib, _codatt, _attivita, _tipoatt;
TString _tipodoc, _descr_doc, _codlib, _codice_vidi;
TString _cofi,_cap,_paiva,_ragsoc,_comunefis,_provfis,_viafis;
protected:
const char* desc_attivita ();
const char* tipo_attivita ();
const char* descr_doc ();
const char* descr_iva (const char *);
TRectype& ricerca_occ(const char*);
TRectype& ricerca_cf (char, long);
TRectype& look_comuni(const char*);
int setta_riga (int, const TRigaiva&, real&, real&, real&, real&);
int riga_rmoviva();
bool set_print(int);
bool set_ditte(TMask&);
bool compila_reg(const TMask&);
bool compila_lib();
bool controlla_liquidazione();
bool controlla_mov();
bool stampo_liquidazione(int);
bool ventilazione(const char*);
bool cerca_libro_gio(TString&);
bool look_reg (long, int, TString&, int, const char*, int*);
bool look_regs(int, TString&, int, int*);
bool stampa_totali_finali();
bool stampa_datareg();
bool stampa_registri_IVA(const TMask&);
void cerca_reg(const TString&, byte*);
void set_page_tot_reg();
void send_message(char, const TFilename&,int);
void aggiorna_reg();
void aggiorna_lib();
void calcola_progressivi();
bool user_create();
bool user_destroy();
bool preprocess_page(int, int);
int stampa_intestazione();
int stampa_prospetto();
void stampa_plafonds(int);
void get_dati_ditta();
void stampa_vidi();
int stampa_acquisti(int);
real stampa_valori_plafonds(const real&, const int, TTable&);
bool preprocess_print(int, int);
//print_action postprocess_print(int, int);
print_action postprocess_page (int, int);
void preprocess_header();
static bool filter_func (const TRelation * r);
static bool mask_tipo_stampa (TMask_field&, KEY);
static bool mask_firm_to (TMask_field&, KEY);
static bool mask_cod (TMask_field&, KEY);
static bool mask_libun (TMask_field&, KEY);
static bool mask_data (TMask_field&, KEY);
static bool mask_mese (TMask_field&, KEY);
static bool mask_fino_a_mese (TMask_field&, KEY);
static bool mask_select (TMask_field&, KEY);
static bool mask_azzera (TMask_field&, KEY);
public:
CG4400_application() : TPrintapp(), _ditte(NULL) {}
virtual ~CG4400_application() {}
};

View File

@ -1,27 +1,29 @@
// cg4400a.h
// Maschera stampa tabella registri
#define TIPO_STAMPA 101
#define DATA_STAMPA 102
#define CODICE_LIBRO 103
#define DA_DATA 104
#define A_DATA 105
#define FINO_A_MESE 106
#define ULTIMA_PAGINA 107
#define CODICE_LIBRO_IVA 108
#define ULTIMO_MESE 109
#define TIPO_RIEPILOGATIVO 110
#define ANNO 111
#define DA_CODICE 112
#define A_CODICE 113
#define F_SELECT 114
#define F_ANNULLA 115
#define F_VERIFICA 116
#define CODICE_LIB_UN 117
#define MESE 118
#define CODICE_LIBRO_PROVA 119
#define RIF_VID 120
// cg4400a.h
// Maschera stampa tabella registri
#define TIPO_STAMPA 101
#define DATA_STAMPA 102
#define CODICE_LIBRO 103
#define DA_DATA 104
#define A_DATA 105
#define FINO_A_MESE 106
#define ULTIMA_PAGINA 107
#define CODICE_LIBRO_IVA 108
#define ULTIMO_MESE 109
#define TIPO_RIEPILOGATIVO 110
#define ANNO 111
#define DA_CODICE 112
#define A_CODICE 113
#define F_SELECT 114
#define F_ANNULLA 115
#define F_VERIFICA 116
#define CODICE_LIB_UN 117
#define MESE 118
#define CODICE_LIBRO_PROVA 119
#define RIF_VID 120
#define STAMPA_WIDTH 121
#define STAMPA_LEN 122

View File

@ -1,255 +1,270 @@
// cg4400a.uml
// Stampa tabella registri
#include "cg4400a.h"
PAGE "Stampa registri IVA" -1 -1 56 18
LISTBOX TIPO_STAMPA 1 48
BEGIN
PROMPT 2 1 "Tipo "
HELP "Indicare il tipo di stampa da eseguire"
ITEM "3|Stampa di prova"
MESSAGE SHOW,3@|SHOW,CODICE_LIBRO_PROVA|SHOW,DATA_STAMPA|HIDE,1@|RESET,1@|HIDE,2@|RESET,2@
ITEM "1|Libri bollati della ditta"
MESSAGE SHOW,1@|HIDE,CODICE_LIBRO_PROVA|RESET,CODICE_LIBRO_PROVA|HIDE,2@|RESET,2@|HIDE,3@|RESET,3@|HIDE,DATA_STAMPA
ITEM "2|Libri unici dello studio"
MESSAGE SHOW,2@|HIDE,1@|RESET,1@|HIDE,3@|RESET,3@|HIDE,DATA_STAMPA|HIDE,CODICE_LIBRO_PROVA|RESET,CODICE_LIBRO_PROVA
ITEM "4|Libri con riferimenti al libro giornale"
MESSAGE SHOW,1@|HIDE,CODICE_LIBRO_PROVA|RESET,CODICE_LIBRO_PROVA|HIDE,2@|RESET,2@|HIDE,3@|RESET,3@|HIDE,DATA_STAMPA
END
GROUPBOX DLG_NULL 35 5
BEGIN
PROMPT 20 2 "Scelta ditte"
END
NUMBER DA_CODICE 5
BEGIN
PROMPT 21 3 "Da codice "
HELP "Codice ditta di partenza per la selezione"
USE LF_NDITTE KEY 1
CHECKTYPE NORMAL
INPUT CODDITTA DA_CODICE
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT DA_CODICE CODDITTA
END
NUMBER A_CODICE 5
BEGIN
PROMPT 21 4 "A codice "
HELP "Codice ditta di fine selezione"
COPY USE DA_CODICE
CHECKTYPE NORMAL
INPUT CODDITTA A_CODICE
COPY DISPLAY DA_CODICE
OUTPUT A_CODICE CODDITTA
END
STRING F_SELECT 5
BEGIN
PROMPT 21 5 "Scelte n. "
FLAGS "D"
END
BUTTON DLG_SELECT 9 2
BEGIN
PROMPT 42 3 "~Selezione"
HELP "Indicare le ditta da selezionare per la stampa"
END
BUTTON F_ANNULLA 9
BEGIN
PROMPT 42 5 "A~zzera"
HELP "Togliere la selezione alle ditte"
MESSAGE RESET,DA_CODICE|RESET,A_CODICE
END
DATE DATA_STAMPA
BEGIN
PROMPT 28 7 "Data stampa "
<<<<<<< cg4400a.uml
FLAGS "A"
CHECKTYPE REQUIRED
WARNING "Inserire la data di stampa"
=======
HELP "Data in cui viene stampato il registro"
FLAG "AH"
GROUP 3
>>>>>>> 1.14
END
NUMBER ANNO 4
BEGIN
PROMPT 2 3 "Anno "
HELP "Anno di cui si vuole stampare il registro"
FLAGS "A"
WARNING "Inserire l'anno"
CHECKTYPE REQUIRED
END
STRING CODICE_LIBRO 3
BEGIN
PROMPT 2 7 "Codice libro "
HELP "Codice libro di cui si chiede la stampa; nel caso in cui non si indichi nessun codice verranno stampati tutti i libri delle ditte selezionate"
USE REG SELECT (I0<"3") && (S6=="") && (CODTAB[1,4]==#111)
INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIBRO
DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIBRO CODTAB[5,7]
//CHECKTYPE NORMAL
FLAGS "UZ"
GROUP 1
END
STRING CODICE_LIBRO_PROVA 3
BEGIN
PROMPT 2 7 "Codice libro "
HELP "Codice libro di cui si chiede la stampa; nel caso in cui non si indichi nessun codice verranno stampati tutti i libri delle ditte selezionate"
USE REG SELECT (I0<"3") && (CODTAB[1,4]==#111)
INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIBRO_PROVA
DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIBRO_PROVA CODTAB[5,7]
<<<<<<< cg4400a.uml
FLAGS "UR"
=======
//CHECKTYPE NORMAL
FLAGS "UZ"
GROUP 1
>>>>>>> 1.15
END
STRING CODICE_LIB_UN 3
BEGIN
PROMPT 2 7 "Libro unico "
HELP "Codice del libro unico su cui deve essere effettuata la stampa"
USE %LBU SELECT CODTAB[1,4]==#111
INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIB_UN
DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIB_UN CODTAB[5,7]
FLAGS "UR"
CHECKTYPE REQUIRED
WARNING "Inserire il codice del libro unico"
GROUP 2
END
GROUPBOX DLG_NULL 52 3
BEGIN
PROMPT 2 8 "Stampa movimenti"
END
DATE DA_DATA
BEGIN
PROMPT 5 9 "Dalla data "
HELP "Data di partenza per la stampa del registro"
GROUP 3
END
DATE A_DATA
BEGIN
PROMPT 30 9 "Alla data "
HELP "Data di fine per la stampa del registro"
VALIDATE DATE_CMP_FUNC >= DA_DATA
WARNING "Inserire una data non inferiore alla data limite inferiore"
GROUP 3
END
LISTBOX FINO_A_MESE 10
BEGIN
PROMPT 5 9 "Fino al mese "
HELP "Mese fino al quale eseguire la stampa"
FLAGS "M"
GROUP 1
END
LISTBOX MESE 10
BEGIN
PROMPT 5 9 "Mese "
HELP "Mese di cui eseguire la stampa"
FLAGS "M"
GROUP 2
END
LISTBOX TIPO_RIEPILOGATIVO 11
BEGIN
PROMPT 2 11 "Tipo riepilogativo "
HELP "Indicare il periodo di cui si vuole stampare il registro"
ITEM "P|Del periodo"
ITEM "A|Annuale"
GROUP 1
END
LISTBOX ULTIMO_MESE 10
BEGIN
PROMPT 2 12 "Ultimo mese stampa su libro unico "
FLAGS "MD"
GROUP 2
END
NUMBER ULTIMA_PAGINA 4
BEGIN
<<<<<<< cg4400a.uml
PROMPT 2 13 "Ultimo numero di pagina stampata libro unico "
=======
PROMPT 2 12 "Ultimo numero di pagina stampata libro unico "
HELP "Numero dell'ultima pagina del libro unico stampata"
>>>>>>> 1.14
FLAGS "R"
GROUP 2
END
STRING CODICE_LIBRO_IVA 3
BEGIN
<<<<<<< cg4400a.uml
PROMPT 2 14 "Eventuale codice libro IVA "
HELP "Se non viene indicato nessun cod. libro IVA, vengono stampati tutti i registri delle ditte selezionate"
=======
PROMPT 2 13 "Eventuale codice libro IVA "
HELP "Libro IVA da stampare. Vuoto = tutti"
>>>>>>> 1.14
USE REG SELECT (I0<"3") && (S6=="") && (CODTAB[1,4]==#111)
INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIBRO_IVA
DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIBRO_IVA CODTAB[5,7]
//CHECKTYPE NORMAL
FLAGS "UZ"
GROUP 2
END
BOOLEAN RIF_VID
BEGIN
PROMPT 2 15 "Stampa riferimenti vidimazione"
GROUP 2
END
BUTTON DLG_PRINT 10 2
BEGIN
PROMPT -12 -1 "~Stampa"
MESSAGE EXIT,K_ENTER
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK
// cg4400a.uml
// Stampa tabella registri
#include "cg4400a.h"
PAGE "Stampa registri IVA" -1 -1 56 18
LISTBOX TIPO_STAMPA 1 48
BEGIN
PROMPT 2 1 "Tipo "
HELP "Indicare il tipo di stampa da eseguire"
ITEM "1|Stampa di prova"
MESSAGE SHOW,3@|SHOW,CODICE_LIBRO_PROVA|SHOW,DATA_STAMPA|HIDE,1@|RESET,1@|HIDE,2@|RESET,2@|HIDE,4@|RESET,4@
ITEM "2|Libri bollati della ditta"
MESSAGE SHOW,1@|HIDE,CODICE_LIBRO_PROVA|RESET,CODICE_LIBRO_PROVA|HIDE,2@|RESET,2@|HIDE,3@|RESET,3@|HIDE,DATA_STAMPA|HIDE,4@|RESET,4@
ITEM "3|Libri unici dello studio"
MESSAGE SHOW,2@|HIDE,1@|RESET,1@|HIDE,3@|RESET,3@|HIDE,DATA_STAMPA|HIDE,CODICE_LIBRO_PROVA|RESET,CODICE_LIBRO_PROVA|HIDE,4@|RESET,4@
ITEM "4|Libri con riferimenti al libro giornale"
MESSAGE SHOW,1@|HIDE,CODICE_LIBRO_PROVA|RESET,CODICE_LIBRO_PROVA|HIDE,2@|RESET,2@|HIDE,3@|RESET,3@|HIDE,DATA_STAMPA|HIDE,4@|RESET,4@
END
GROUPBOX DLG_NULL 35 5
BEGIN
PROMPT 20 2 "Scelta ditte"
END
NUMBER DA_CODICE 6
BEGIN
PROMPT 21 3 "Da codice "
FLAGS "UR"
HELP "Codice ditta di inizio selezione"
USE LF_NDITTE KEY 1
//CHECKTYPE NORMAL
INPUT CODDITTA DA_CODICE
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT DA_CODICE CODDITTA
END
NUMBER A_CODICE 6
BEGIN
PROMPT 21 4 "A codice "
FLAGS "UR"
HELP "Codice ditta di fine selezione"
COPY USE DA_CODICE
//CHECKTYPE NORMAL
INPUT CODDITTA A_CODICE
COPY DISPLAY DA_CODICE
OUTPUT A_CODICE CODDITTA
END
STRING F_SELECT 6
BEGIN
PROMPT 21 5 "Scelte n. "
FLAGS "DR"
END
BUTTON DLG_SELECT 9 2
BEGIN
PROMPT 42 3 "~Selezione"
HELP "Indicare le ditte da selezionare per la stampa"
END
BUTTON F_ANNULLA 9
BEGIN
PROMPT 42 5 "A~zzera"
HELP "Annullare la selezione delle ditte"
MESSAGE RESET,DA_CODICE|RESET,A_CODICE
END
DATE DATA_STAMPA
BEGIN
PROMPT 28 7 "Data stampa "
FLAGS "A"
CHECKTYPE REQUIRED
WARNING "Inserire la data di stampa"
END
NUMBER ANNO 4
BEGIN
PROMPT 2 3 "Anno "
HELP "Anno di cui si vuole stampare il registro"
FLAGS "A"
WARNING "Inserire l'anno"
CHECKTYPE REQUIRED
END
STRING CODICE_LIBRO 3
BEGIN
PROMPT 2 7 "Codice libro "
HELP "Codice libro di cui si chiede la stampa; nel caso in cui non si indichi nessun codice verranno stampati tutti i libri delle ditte selezionate"
USE REG SELECT (I0<"3") && (S6=="") && (CODTAB[1,4]==#111)
INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIBRO
DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIBRO CODTAB[5,7]
//CHECKTYPE NORMAL
FLAGS "UR"
GROUP 1
END
STRING CODICE_LIBRO_PROVA 3
BEGIN
PROMPT 2 7 "Codice libro "
HELP "Codice libro di cui si chiede la stampa; nel caso in cui non si indichi nessun codice verranno stampati tutti i libri delle ditte selezionate"
USE REG SELECT (I0<"3") && (CODTAB[1,4]==#111)
INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIBRO_PROVA
DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIBRO_PROVA CODTAB[5,7]
FLAGS "UR"
END
STRING CODICE_LIB_UN 3
BEGIN
PROMPT 2 7 "Libro unico "
HELP "Codice del libro unico su cui deve essere effettuata la stampa"
USE %LBU SELECT CODTAB[1,4]==#111
INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIB_UN
DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIB_UN CODTAB[5,7]
FLAGS "UR"
CHECKTYPE REQUIRED
WARNING "Inserire il codice del libro unico"
GROUP 2
END
GROUPBOX DLG_NULL 52 3
BEGIN
PROMPT 2 8 "Stampa movimenti"
END
DATE DA_DATA
BEGIN
PROMPT 3 9 "Dalla data "
HELP "Data di inizio stampa registro"
GROUP 3
END
DATE A_DATA
BEGIN
PROMPT 30 9 "Alla data "
HELP "Data di fine stampa registro"
VALIDATE DATE_CMP_FUNC >= DA_DATA
WARNING "Inserire una data non inferiore alla data limite inferiore"
GROUP 3
END
LISTBOX FINO_A_MESE 10
BEGIN
PROMPT 4 9 "Fino al mese "
HELP "Mese fino al quale eseguire la stampa"
FLAGS "M"
GROUP 1
END
LISTBOX MESE 10
BEGIN
PROMPT 4 9 "Mese "
HELP "Mese di cui eseguire la stampa"
FLAGS "M"
GROUP 2
END
LISTBOX TIPO_RIEPILOGATIVO 11
BEGIN
PROMPT 2 11 "Tipo riepilogativo "
HELP "Indicare il tipo stampa di liquidazione sul registro"
ITEM "P|Del periodo"
ITEM "A|Annuale"
GROUP 4
END
GROUPBOX DLG_NULL 35 4
BEGIN
PROMPT 2 12 "Formato pagina"
END
LISTBOX STAMPA_WIDTH 4
BEGIN
PROMPT 3 13 "Numero di colonne "
HELP "Numero di colonne per pagina del modulo di stampa."
ITEM "1|132"
ITEM "2|198"
END
NUMBER STAMPA_LEN 3
BEGIN
PROMPT 3 14 "Numero di righe "
HELP "Numero di righe per pagina del modulo di stampa. Se non specificato assume 66 righe"
END
BUTTON DLG_PRINT 10 2
BEGIN
PROMPT -12 -1 "~Stampa"
MESSAGE EXIT,K_ENTER
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
PAGE "Stampa registri IVA" -1 -1 56 18
NUMBER ULTIMA_PAGINA 4
BEGIN
PROMPT 2 2 "Ultimo numero di pagina stampata libro unico "
HELP "Numero dell'ultima pagina del libro unico stampata"
FLAGS "R"
GROUP 2
END
STRING CODICE_LIBRO_IVA 3
BEGIN
PROMPT 2 3 "Eventuale codice libro IVA "
HELP "Libro IVA da stampare. Vuoto = tutti"
USE REG SELECT (I0<"3") && (CODTAB[1,4]==#111)
INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIBRO_IVA
DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIBRO_IVA CODTAB[5,7]
//CHECKTYPE NORMAL
FLAGS "UR"
GROUP 2
END
LISTBOX ULTIMO_MESE 10
BEGIN
PROMPT 2 4 "Ultimo mese stampa su libro unico "
FLAGS "MD"
GROUP 2
END
BOOLEAN RIF_VID
BEGIN
PROMPT 2 5 "Stampa riferimenti vidimazione"
GROUP 4
END
BUTTON DLG_PRINT 10 2
BEGIN
PROMPT -12 -1 "~Stampa"
MESSAGE EXIT,K_ENTER
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK