Patch level : 2.1 021

Files correlati   : Quelli dalle Patch 2.0
Ricompilazione Demo : [ ]
Commento            :
Riportata la Versione 2.0 patch 720


git-svn-id: svn://10.65.10.50/trunk@11897 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2004-03-23 15:38:19 +00:00
parent 0f320dc0f2
commit 01cd8cfe92
10 changed files with 262 additions and 183 deletions

View File

@ -531,9 +531,13 @@ void TClifo_application::ini2mask(TConfig& ini, TMask& m, bool query)
if (!query) if (!query)
{ {
ini.set_paragraph("17"); ini.set_paragraph("17");
TToken_string nonacc(ini.get(CFV_NONACCEFF), ';');
TToken_string nonscd(ini.get(CFV_NONSCADEFF), ';'); if (ini.exist(CFV_NONACCEFF))
set_pnae(m, nonacc, nonscd); {
TToken_string nonacc(ini.get(CFV_NONACCEFF), ';');
TToken_string nonscd(ini.get(CFV_NONSCADEFF), ';');
set_pnae(m, nonacc, nonscd);
}
if (_gesven) if (_gesven)
{ {

View File

@ -2173,12 +2173,16 @@ void TStampa_IVdirettiva::stampa_risultato_prima_delle_imposte()
// set_row (_i,"@4g%s@81g%r", TR("Risultato prima delle imposte"), &_totale_economico); // set_row (_i,"@4g%s@81g%r", TR("Risultato prima delle imposte"), &_totale_economico);
// _totale_economico += _sale; // Guy was here 18/02/2004: Altrimenti ignora la prima imposta // _totale_economico += _sale; // Guy was here 18/02/2004: Altrimenti ignora la prima imposta
// Guy was here 05/03/2004: Altrimenti ignora la prima imposta // Guy was here 05/03/2004: La prima imposta e' gia' stata sommata
const real te = _totale_economico-_sale; const real te = _totale_economico-_sale;
set_row (_i,"@4g%s@81g%r", TR("Risultato prima delle imposte"), &te); set_row (_i,"@4g%s@81g%r", TR("Risultato prima delle imposte"), &te);
if (raff) if (raff)
set_row (_i,"@111g%r", &_totale_economico_raf); {
// Guy was here 10/03/2004: La prima imposta e' gia' stata sommata anche qui
const real te = _totale_economico_raf-_salerafr;
set_row (_i,"@111g%r", &te);
}
_i++; _i++;
_risimp_fatto = FALSE; _risimp_fatto = FALSE;
} }

View File

@ -120,7 +120,7 @@ class TMastrini_application : public TPrintapp
TDate _dataregrmov; TDate _dataregrmov;
int _gruppof,_contof; int _gruppof,_contof;
long _sottocf; long _sottocf;
TString _dataregrmovstring,_importo_str,_saldo_movimenti_str,_saldo_progressivi_str; TString _dataregrmovstring,_importo_str,_saldo_movimenti_str;
int _rw, _conta_mastrini, _indice_array, _item, _item_lista, _indice_lista; int _rw, _conta_mastrini, _indice_array, _item, _item_lista, _indice_lista;
int _ddociva_len; int _ddociva_len;
@ -1453,6 +1453,11 @@ bool TMastrini_application::preprocess_page(int file, int counter)
_saldo_progressivi += _saldo_progre_prec; _saldo_progressivi += _saldo_progre_prec;
_rw = stampa_progre_riporto(_rw); _rw = stampa_progre_riporto(_rw);
} }
else
{
calcola_progressivi();
_saldo_progressivi += _saldo_progre_prec; // Se trovo quel cazzone che ha scritto sto programma...
}
} }
else else
{ {
@ -2000,7 +2005,6 @@ bool TMastrini_application::preprocess_page(int file, int counter)
const int righe_rimaste = printer().rows_left(); const int righe_rimaste = printer().rows_left();
_stampato = righe_rimaste >= 1; _stampato = righe_rimaste >= 1;
_saldo_progressivi_str=real2str(_saldo_progressivi);
_saldo_movimenti_str=real2str(_saldo_movimenti); _saldo_movimenti_str=real2str(_saldo_movimenti);
if (_numcarat == 2) if (_numcarat == 2)
{ {
@ -2036,26 +2040,8 @@ bool TMastrini_application::preprocess_page(int file, int counter)
} }
if (print_sald) if (print_sald)
{ {
/* new 32 bit mode // Nuovo mpode semplificato
if (_flag_del_cazzo) set_row (_rw,"@135g%r", &_saldo_progressivi);
{
calcola_progressivi();
_saldo_progressivi += _saldo_progre_prec;
set_row (_rw,"@135g%r", &_saldo_progressivi);
_saldo_progressivi -= _saldo_progre_prec;
_flag_del_cazzo = FALSE;
}
else
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);
} }
} }
} }
@ -2881,7 +2867,7 @@ void TMastrini_application::crea_intestazione()
} }
calcola_progressivi(); calcola_progressivi();
_saldo_progressivi += _saldo_progre_prec; // _saldo_progressivi += _saldo_progre_prec; // Se trovo quel cazzone che ha scritto sto programma...
if (_stampa_progressivi_si) if (_stampa_progressivi_si)
{ {

View File

@ -13,11 +13,11 @@
#define PICTURE_IMPORTO "###.###.###.##@,@@" #define PICTURE_IMPORTO "###.###.###.##@,@@"
enum pt { st_undefined = 0, st_banca = 1, st_cliente = 2, st_distinta = 3, st_scadenza = 4}; enum pt { st_undefined, st_banca_app, st_cliente, st_distinta, st_scadenza, st_banca_pre };
////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// Classe per le stampe di controllo degli effetti in portafoglio // // Classe per le stampe di controllo degli effetti in portafoglio //
///////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
class TPrint_effetti_app : public TPrintapp class TPrint_effetti_app : public TPrintapp
{ {
pt _pr_type; pt _pr_type;
@ -25,7 +25,8 @@ class TPrint_effetti_app : public TPrintapp
TPrintrow _pr; TPrintrow _pr;
TString _ban, _banp, _cli, _val, _data_stampa, _ban_prec; TString _ban, _banp, _cli, _val, _data_stampa, _ban_prec;
TDate _scad_prec; TDate _scad_prec;
int _cur_1, _cur_2, _cur_3, _cur_4, _cur_5, _cur_6, _interline, _colonne; int _cur_1, _cur_2, _cur_3, _cur_4, _cur_5, _cur_6, _cur_7;
int _interline, _colonne;
long _dist_prec, _cliente_prec; long _dist_prec, _cliente_prec;
char _tipo_prec, _tipocf_prec; char _tipo_prec, _tipocf_prec;
real _tot_data, _tot_mese, _tot_banca, _tot_distinta, _tot_tip_dist, _tot_cliente, _tot_stampa; real _tot_data, _tot_mese, _tot_banca, _tot_distinta, _tot_tip_dist, _tot_cliente, _tot_stampa;
@ -39,7 +40,8 @@ public:
virtual void preprocess_header(); virtual void preprocess_header();
virtual print_action postprocess_page(int file, int counter); virtual print_action postprocess_page(int file, int counter);
void header_scadenza(); void header_scadenza();
void header_banca(); void header_banca_app();
void header_banca_pre();
void header_distinta(); void header_distinta();
void header_cliente(); void header_cliente();
virtual bool user_create(); virtual bool user_create();
@ -48,7 +50,8 @@ public:
virtual void set_page (int file, int counter); virtual void set_page (int file, int counter);
void write_bancapp(); void write_bancapp();
void set_scadenza(); void set_scadenza();
void set_banca(); void set_banca_app();
void set_banca_pre();
void set_distinta(); void set_distinta();
void set_cliente(); void set_cliente();
const char* get_field(int ln, const char* fn) {return current_cursor()->curr(ln).get(fn);} const char* get_field(int ln, const char* fn) {return current_cursor()->curr(ln).get(fn);}
@ -295,20 +298,22 @@ void TPrint_effetti_app::preprocess_header()
switch(_pr_type) switch(_pr_type)
{ {
case st_scadenza: case st_scadenza:
header_scadenza(); header_scadenza();
break; break;
case st_banca: case st_banca_app:
header_banca(); header_banca_app();
break; break;
case st_distinta: case st_distinta:
header_distinta(); header_distinta();
break; break;
case st_cliente: case st_cliente:
header_cliente(); header_cliente();
break; break;
default: case st_banca_pre:
break; header_banca_pre();
default:
break;
} }
} }
@ -326,7 +331,7 @@ void TPrint_effetti_app::header_scadenza()
} }
// setta l'header per la stampa per banca di appoggio // setta l'header per la stampa per banca di appoggio
void TPrint_effetti_app::header_banca() void TPrint_effetti_app::header_banca_app()
{ {
int j = 2; int j = 2;
set_header(j, FR("@45g@bSTAMPA RI.BA. PER BANCA D'APPOGGIO")); j++; set_header(j, FR("@45g@bSTAMPA RI.BA. PER BANCA D'APPOGGIO")); j++;
@ -338,6 +343,18 @@ void TPrint_effetti_app::header_banca()
set_header(j, (const char *)(TString(_colonne).fill('_'))); set_header(j, (const char *)(TString(_colonne).fill('_')));
} }
// setta l'header per la stampa per banca di presentazione
void TPrint_effetti_app::header_banca_pre()
{
int j = 2;
set_header(j, FR("@45g@bSTAMPA RI.BA. PER BANCA DI PRESENTAZIONE")); j++;
set_header(j++, (const char *)(TString(_colonne).fill('_')));
TString head = FR("@b Banca Scadenza Cliente N.Riba N.Dist Importo Imp. in valuta Val Rata Data fattura N.");
set_header(j++, head);
set_header(j, (const char *)(TString(_colonne).fill('_')));
}
// setta l'header per la stampa per distinta di presentazione // setta l'header per la stampa per distinta di presentazione
void TPrint_effetti_app::header_distinta() void TPrint_effetti_app::header_distinta()
{ {
@ -424,20 +441,23 @@ void TPrint_effetti_app::set_page(int file, int counter)
{ {
switch(_pr_type) switch(_pr_type)
{ {
case st_scadenza: case st_scadenza:
set_scadenza(); set_scadenza();
break; break;
case st_banca: case st_banca_app:
set_banca(); set_banca_app();
break; break;
case st_distinta: case st_distinta:
set_distinta(); set_distinta();
break; break;
case st_cliente: case st_cliente:
set_cliente(); set_cliente();
break; break;
default: case st_banca_pre:
break; set_banca_pre();
break;
default:
break;
} }
} }
@ -449,11 +469,11 @@ void TPrint_effetti_app::write_bancapp()
const TRectype& rec = current_cursor()->curr(); const TRectype& rec = current_cursor()->curr();
const TString8 codabi = rec.get(EFF_CODABI); const TString8 codabi = rec.get(EFF_CODABI);
TString16 codcab; codcab << codabi << rec.get(EFF_CODCAB); TString16 codcab; codcab << codabi << rec.get(EFF_CODCAB);
TString desccab = look_tab("%BAN", codcab); TString80 desccab = look_tab("%BAN", codcab);
set_row(2,"@133g@pn @pn %s", set_row(2,"@133g@pn @pn %s",
FLD(LF_EFFETTI, EFF_CODABI, "@@@@@"), FLD(LF_EFFETTI, EFF_CODABI, "@@@@@"),
FLD(LF_EFFETTI, EFF_CODCAB, "@@@@@"), FLD(LF_EFFETTI, EFF_CODCAB, "@@@@@"),
(const char*)desccab); (const char*)desccab);
} }
} }
@ -477,40 +497,69 @@ void TPrint_effetti_app::set_scadenza()
if (!is_firm_value(valuta)) //effetto in valuta diversa da quella di conto if (!is_firm_value(valuta)) //effetto in valuta diversa da quella di conto
{ {
set_row(2,"@81g@pn@100g%s", set_row(2,"@81g@pn@100g%s",
FLD(LF_EFFETTI, EFF_IMPORTOVAL, PICTURE_IMPORTO), FLD(LF_EFFETTI, EFF_IMPORTOVAL, PICTURE_IMPORTO),
(const char *)valuta); (const char *)valuta);
} }
write_bancapp(); write_bancapp();
for(int i = 0; i < _interline; i++) set_row(i+1," "); for(int i = 0; i < _interline; i++)
set_row(i+1," ");
} }
// setta la pagina logica nel caso di stampa per banca di appoggio
void TPrint_effetti_app::set_banca_app()
{
set_row(1," ");
set_row(2,"@1g#t@14g@s@26g#t@49g@pn@55g@pn@63g@pn@105g@pn@111g@s@125g@pn",
&_banp,
FLD(LF_EFFETTI, EFF_DATASCAD),
&_cli,
FLD(LF_EFFETTI, EFF_NPROGTR, "#####@"),
FLD(LF_EFFETTI, EFF_NDIST, "#######@"),
FLD(LF_EFFETTI, EFF_IMPORTO, PICTURE_IMPORTO),
FLD(LF_REFFETTI, REFF_NRATA,"##@"),
FLD(LF_REFFETTI, REFF_DATAFATT),
FLD(LF_REFFETTI, REFF_NFATT,"######"));
const TString& valuta = current_cursor()->curr().get(EFF_CODVAL);
if (!is_firm_value(valuta)) //effetto in valuta diversa da quella di conto
{
set_row(2,"@81g@pn@100g%s",
FLD(LF_EFFETTI, EFF_IMPORTOVAL, PICTURE_IMPORTO),
(const char *)valuta);
}
write_bancapp();
for(int i = 0; i < _interline; i++)
set_row(i+1,"");
}
// setta la pagina logica nel caso di stampa per banca di appoggio // setta la pagina logica nel caso di stampa per banca di appoggio
void TPrint_effetti_app::set_banca() void TPrint_effetti_app::set_banca_pre()
{ {
set_row(1," "); set_row(1," ");
set_row(2,"@1g#t@14g@s@26g#t@49g@pn@55g@pn@63g@pn@105g@pn@111g@s@125g@pn", set_row(2,"@1g#t@14g@s@26g#t@49g@pn@55g@pn@63g@pn@105g@pn@111g@s@125g@pn",
&_banp, &_banp,
FLD(LF_EFFETTI, EFF_DATASCAD), FLD(LF_EFFETTI, EFF_DATASCAD),
&_cli, &_cli,
FLD(LF_EFFETTI, EFF_NPROGTR, "#####@"), FLD(LF_EFFETTI, EFF_NPROGTR, "#####@"),
FLD(LF_EFFETTI, EFF_NDIST, "#######@"), FLD(LF_EFFETTI, EFF_NDIST, "#######@"),
FLD(LF_EFFETTI, EFF_IMPORTO, PICTURE_IMPORTO), FLD(LF_EFFETTI, EFF_IMPORTO, PICTURE_IMPORTO),
FLD(LF_REFFETTI, REFF_NRATA,"##@"), FLD(LF_REFFETTI, REFF_NRATA,"##@"),
FLD(LF_REFFETTI, REFF_DATAFATT), FLD(LF_REFFETTI, REFF_DATAFATT),
FLD(LF_REFFETTI, REFF_NFATT,"######")); FLD(LF_REFFETTI, REFF_NFATT,"######"));
const TString8 valuta = current_cursor()->curr().get(EFF_CODVAL); const TString& valuta = current_cursor()->curr().get(EFF_CODVAL);
if (!is_firm_value(valuta)) //effetto in valuta diversa da quella di conto if (!is_firm_value(valuta)) //effetto in valuta diversa da quella di conto
{ {
set_row(2,"@81g@pn@100g%s", set_row(2,"@81g@pn@100g%s",
FLD(LF_EFFETTI, EFF_IMPORTOVAL, PICTURE_IMPORTO), FLD(LF_EFFETTI, EFF_IMPORTOVAL, PICTURE_IMPORTO),
(const char *)valuta); (const char *)valuta);
} }
write_bancapp(); write_bancapp();
for(int i = 0; i < _interline; i++) set_row(i+1,""); for(int i = 0; i < _interline; i++)
set_row(i+1,"");
} }
// setta la pagina logica nel caso di stampa per distinta di presentazione // setta la pagina logica nel caso di stampa per distinta di presentazione
void TPrint_effetti_app::set_distinta() void TPrint_effetti_app::set_distinta()
{ {
@ -572,30 +621,39 @@ bool TPrint_effetti_app::preprocess_page(int file, int counter)
// necessitano per effettuare la "rorrura della stampa" // necessitano per effettuare la "rorrura della stampa"
TRectype& rec = current_cursor()->curr(); TRectype& rec = current_cursor()->curr();
const TDate scad = rec.get_date (EFF_DATASCAD); const TDate scad = rec.get_date (EFF_DATASCAD);
TString ban = rec.get (EFF_CODABI);
long dist = rec.get_long (EFF_NDIST); long dist = rec.get_long (EFF_NDIST);
char tipodist = rec.get_char(EFF_TIPODIST); char tipodist = rec.get_char(EFF_TIPODIST);
long cliente = rec.get_long (EFF_CODCF); long cliente = rec.get_long (EFF_CODCF);
char tipocf = rec.get_char(EFF_TIPOCF); char tipocf = rec.get_char(EFF_TIPOCF);
real importo = rec.get_real(EFF_IMPORTO); real importo = rec.get_real(EFF_IMPORTO);
// elaboro le seguenti stringhe per la stampa // elaboro le seguenti stringhe per la stampa
if (ban=="00000")
ban = "";
_ban = get_field(LF_EFFETTI, EFF_CODABI); _ban = get_field(LF_EFFETTI, EFF_CODABI);
if (_ban=="00000") if (real::is_null(_ban))
_ban = ""; _ban.cut(0);
s = get_field(LF_EFFETTI, EFF_CODCAB); else
if (s=="00000") {
s = ""; s = get_field(LF_EFFETTI, EFF_CODCAB);
_ban << " " << s; if (!real::is_null(s))
_ban << ' ' << s;
}
_banp = get_field(LF_EFFETTI, EFF_CODABIP); _banp = get_field(LF_EFFETTI, EFF_CODABIP);
if (_banp=="00000") if (real::is_null(_banp))
_banp = ""; _banp.cut(0);
s = get_field(LF_EFFETTI, EFF_CODCABP); else
if (s=="00000") {
s = ""; s = get_field(LF_EFFETTI, EFF_CODCABP);
_banp << " " << s; if (!real::is_null(s))
_banp << ' ' << s;
}
TString16 ban;
if (_pr_type == st_banca_pre)
ban = _banp;
else
ban = _ban;
ban.strip(" "); // Toglie lo spazio tra ABI e CAB
_cli = get_field(LF_CLIFO, CLI_RAGSOC); _cli = get_field(LF_CLIFO, CLI_RAGSOC);
s = _cli.mid(30,50); s.trim(); s = _cli.mid(30,50); s.trim();
_cli = _cli.mid(0,30); _cli.trim(); _cli = _cli.mid(0,30); _cli.trim();
@ -612,36 +670,33 @@ bool TPrint_effetti_app::preprocess_page(int file, int counter)
if (_prima_volta) if (_prima_volta)
{ {
_prima_volta = FALSE; _prima_volta = FALSE;
//_rec_prec = &rec; _scad_prec = scad;
switch(_pr_type) switch(_pr_type)
{ {
case st_scadenza: case st_scadenza:
_scad_prec = scad; st_header_scad(scad);
break;
case st_banca_app:
case st_banca_pre:
_ban_prec = ban; // ban vale automaticamente appoggio o presentazione
st_header_ban(ban);
break;
case st_distinta:
_dist_prec = dist;
_tipo_prec = tipodist;
_cliente_prec = cliente;
_tipocf_prec = tipocf;
st_header_dist(tipodist);
if (_tipoord == 'D')
st_header_scad(scad); st_header_scad(scad);
break; break;
case st_banca: case st_cliente:
_scad_prec = scad; _cliente_prec = cliente;
_ban_prec = ban; _tipocf_prec = tipocf;
st_header_ban(ban); st_header_cliente(_cli);
break; break;
case st_distinta: default:
_scad_prec = scad; break;
_dist_prec = dist;
_tipo_prec = tipodist;
_cliente_prec = cliente;
_tipocf_prec = tipocf;
st_header_dist(tipodist);
if (_tipoord == 'D')
st_header_scad(scad);
break;
case st_cliente:
_scad_prec = scad;
_cliente_prec = cliente;
_tipocf_prec = tipocf;
st_header_cliente(_cli);
break;
default:
break;
} }
} }
//else //else
@ -668,7 +723,7 @@ bool TPrint_effetti_app::preprocess_page(int file, int counter)
_pr.reset(); _pr.reset();
if (_pr_type == st_scadenza || _pr_type == st_cliente ) if (_pr_type == st_scadenza || _pr_type == st_cliente )
_pr.put(descfatt, 111); _pr.put(descfatt, 111);
if (_pr_type == st_banca || _pr_type == st_distinta ) else
_pr.put(descfatt, 114); _pr.put(descfatt, 114);
//printer().print(_pr); //printer().print(_pr);
set_row(j++,_pr); set_row(j++,_pr);
@ -697,7 +752,8 @@ bool TPrint_effetti_app::preprocess_page(int file, int counter)
_tot_mese += importo; _tot_mese += importo;
_tot_stampa += importo ; _tot_stampa += importo ;
break; break;
case st_banca: case st_banca_app:
case st_banca_pre:
// è cambiata la data di scadenza, stampo il relativo totale // è cambiata la data di scadenza, stampo il relativo totale
if (scad != _scad_prec) if (scad != _scad_prec)
st_tot_scad(); st_tot_scad();
@ -829,16 +885,16 @@ bool TPrint_effetti_app::preprocess_print(int file, int counter)
bool TPrint_effetti_app::set_print(int) bool TPrint_effetti_app::set_print(int)
{ {
_tipoord = 'D'; TMask mask("ef0600a.msk");
if (mask.run() == K_QUIT)
return FALSE;
_tipoord = 'D';
disable_links(); disable_links();
set_multiple_link(FALSE); set_multiple_link(FALSE);
// richiamo la maschera di scelta del tipo di stampa // richiamo la maschera di scelta del tipo di stampa
TMask mask("ef0600a.msk");
mask.run();
force_setpage(FALSE); force_setpage(FALSE);
if (mask.last_key() == K_QUIT) _pr_type = (pt)mask.get_int(RDB_TIPOST);
return FALSE;
_pr_type = (pt) mask.get_int(RDB_TIPOST);
TDate data_stampa (mask.get(F_DATA_STAMPA)); TDate data_stampa (mask.get(F_DATA_STAMPA));
_data_stampa = data_stampa.string(); _data_stampa = data_stampa.string();
_stampa_bancapp = mask.get_bool(F_BANCA_APP); _stampa_bancapp = mask.get_bool(F_BANCA_APP);
@ -862,12 +918,11 @@ bool TPrint_effetti_app::set_print(int)
from.put(EFF_DATASCAD,cod_from); from.put(EFF_DATASCAD,cod_from);
to.put(EFF_DATASCAD,cod_to); to.put(EFF_DATASCAD,cod_to);
tipocf = mask.get(F_TIPOCF)[0]; tipocf = mask.get(F_TIPOCF)[0];
filter = ""; filter.cut(0) << "(TIPOCF=='" << tipocf << "')";
filter << "(TIPOCF=='" << tipocf << "')";
select_cursor(_cur_1); select_cursor(_cur_1);
} }
break; break;
case st_banca: case st_banca_app:
{ {
cod_from = mask.get(F_DA_DATA2); cod_from = mask.get(F_DA_DATA2);
cod_to = mask.get(F_A_DATA2); cod_to = mask.get(F_A_DATA2);
@ -886,6 +941,22 @@ bool TPrint_effetti_app::set_print(int)
select_cursor(_cur_2); select_cursor(_cur_2);
} }
break; break;
case st_banca_pre:
{
from.put(EFF_DATASCAD,mask.get(F_DA_DATA2));
to.put(EFF_DATASCAD,mask.get(F_A_DATA2));
cod_from = mask.get(F_DABAN);
cod_to = mask.get(F_ABAN);
filter = "(NDIST!='')";
if (cod_from.not_empty())
filter << "&&(CODABIP>='" << cod_from << "')";
if (cod_to.not_empty())
filter << "&&(CODABIP<='" << cod_to << "')";
tipocf = mask.get(F_TIPOCF2)[0];
filter << "&&(TIPOCF=='" << tipocf << "')";
select_cursor(_cur_7);
}
break;
case st_distinta: case st_distinta:
{ {
_tipoord = mask.get(F_TIPOORD)[0]; _tipoord = mask.get(F_TIPOORD)[0];
@ -974,7 +1045,7 @@ bool TPrint_effetti_app::user_create()
_rel->add(LF_CLIFO, "TIPOCF==TIPOCF|CODCF==CODCF"); _rel->add(LF_CLIFO, "TIPOCF==TIPOCF|CODCF==CODCF");
//STAMPA PER SCADENZA //STAMPA PER SCADENZA
_cur_1 = add_cursor(new TCursor(_rel,"",3)); _cur_1 = add_cursor(new TCursor(_rel,"",3));
//STAMPA PER BANCA //STAMPA PER BANCA DI APPOGGIO
TString ordine = "CODABI|CODCAB|DATASCAD|NPROGTR"; TString ordine = "CODABI|CODCAB|DATASCAD|NPROGTR";
_cur_2 = add_cursor(new TSorted_cursor(_rel,ordine,"",3)); _cur_2 = add_cursor(new TSorted_cursor(_rel,ordine,"",3));
//STAMPA PER DISTINTA ordinata per data scadenze //STAMPA PER DISTINTA ordinata per data scadenze
@ -989,6 +1060,9 @@ bool TPrint_effetti_app::user_create()
//STAMPA PER DISTINTA ordinata per cliente/fornitore //STAMPA PER DISTINTA ordinata per cliente/fornitore
ordine = "TIPODIST|NDIST|NRIGADIST|TIPOCF|CODCF|DATASCAD|NPROGTR"; ordine = "TIPODIST|NDIST|NRIGADIST|TIPOCF|CODCF|DATASCAD|NPROGTR";
_cur_6 = add_cursor(new TSorted_cursor(_rel,ordine,"",3)); _cur_6 = add_cursor(new TSorted_cursor(_rel,ordine,"",3));
//STAMPA PER BANCA DI PRESENTAZIONE
ordine = "CODABIP|CODCABP|DATASCAD|NPROGTR";
_cur_7 = add_cursor(new TSorted_cursor(_rel,ordine,"",3));
add_file(LF_EFFETTI); add_file(LF_EFFETTI);
enable_print_menu(); enable_print_menu();

View File

@ -20,10 +20,10 @@ BEGIN
PROMPT 52 4 "(richieste 198 colonne)" PROMPT 52 4 "(richieste 198 colonne)"
END END
RADIOBUTTON RDB_TIPOST 25 RADIOBUTTON RDB_TIPOST 32
BEGIN BEGIN
PROMPT 1 1 "Stampa per " PROMPT 1 0 "Stampa per "
ITEM "1|Banca" ITEM "1|Banca di appoggio"
MESSAGE SHOW,2@|HIDE,1@|HIDE,3@|HIDE,4@ MESSAGE SHOW,2@|HIDE,1@|HIDE,3@|HIDE,4@
ITEM "2|Cliente/Fornitore" ITEM "2|Cliente/Fornitore"
MESSAGE SHOW,4@|HIDE,1@|HIDE,2@|HIDE,3@ MESSAGE SHOW,4@|HIDE,1@|HIDE,2@|HIDE,3@
@ -31,6 +31,8 @@ BEGIN
MESSAGE SHOW,3@|HIDE,1@|HIDE,2@|HIDE,4@ MESSAGE SHOW,3@|HIDE,1@|HIDE,2@|HIDE,4@
ITEM "4|Scadenza" ITEM "4|Scadenza"
MESSAGE SHOW,1@|HIDE,2@|HIDE,3@|HIDE,4@ MESSAGE SHOW,1@|HIDE,2@|HIDE,3@|HIDE,4@
ITEM "5|Banca di presentazione"
MESSAGE SHOW,2@|HIDE,1@|HIDE,3@|HIDE,4@
END END
//---------data----------------------------------------------------------------------------------------------------------// //---------data----------------------------------------------------------------------------------------------------------//
@ -65,19 +67,18 @@ END
//---------banca----------------------------------------------------------------------------------------------------------// //---------banca----------------------------------------------------------------------------------------------------------//
GROUPBOX DLG_NULL 75 6 GROUPBOX DLG_NULL 75 6
BEGIN BEGIN
PROMPT 1 7 "Stampa effetti per Banca di appoggio" PROMPT 1 7 "Stampa effetti per Banca"
GROUP 2 GROUP 2
END END
NUMBER F_DABAN 5 NUMBER F_DABAN 5
BEGIN BEGIN
PROMPT 2 8 "Dalla Banca " PROMPT 2 8 "Dalla Banca "
FLAGS "RZ" FLAGS "Z"
GROUP 2 GROUP 2
USE %BAN KEY 1 SELECT CODTAB ?= "??????????" USE %BAN KEY 1 SELECT CODTAB?="?????"
INPUT CODTAB F_DABAN INPUT CODTAB F_DABAN
DISPLAY "ABI@5" CODTAB[1,5] DISPLAY "ABI@5" CODTAB[1,5]
DISPLAY "CAB@5" CODTAB[6,10]
DISPLAY "Denominazione@50" S0 DISPLAY "Denominazione@50" S0
OUTPUT F_DABAN CODTAB[1,5] OUTPUT F_DABAN CODTAB[1,5]
OUTPUT F_DABAN_DESCR S0 OUTPUT F_DABAN_DESCR S0
@ -88,11 +89,10 @@ STRING F_DABAN_DESCR 50
BEGIN BEGIN
PROMPT 23 8 "" PROMPT 23 8 ""
GROUP 2 GROUP 2
USE %BAN KEY 2 SELECT CODTAB?="??????????" USE %BAN KEY 2 SELECT CODTAB?="?????"
INPUT S0 F_DABAN_DESCR INPUT S0 F_DABAN_DESCR
DISPLAY "Denominazione@50" S0 DISPLAY "Denominazione@50" S0
DISPLAY "ABI@5" CODTAB[1,5] DISPLAY "ABI@5" CODTAB[1,5]
DISPLAY "CAB@5" CODTAB[6,10]
COPY OUTPUT F_DABAN COPY OUTPUT F_DABAN
CHECKTYPE SEARCH CHECKTYPE SEARCH
END END
@ -100,12 +100,11 @@ END
NUMBER F_ABAN 5 NUMBER F_ABAN 5
BEGIN BEGIN
PROMPT 2 9 "Alla Banca " PROMPT 2 9 "Alla Banca "
FLAGS "RZ" FLAGS "Z"
GROUP 2 GROUP 2
USE %BAN KEY 1 SELECT CODTAB ?= "??????????" USE %BAN KEY 1 SELECT CODTAB?="?????"
INPUT CODTAB F_ABAN INPUT CODTAB F_ABAN
DISPLAY "ABI@5" CODTAB[1,5] DISPLAY "ABI@5" CODTAB[1,5]
DISPLAY "CAB@5" CODTAB[6,10]
DISPLAY "Denominazione@50" S0 DISPLAY "Denominazione@50" S0
OUTPUT F_ABAN CODTAB[1,5] OUTPUT F_ABAN CODTAB[1,5]
OUTPUT F_ABAN_DESCR S0 OUTPUT F_ABAN_DESCR S0
@ -116,11 +115,10 @@ STRING F_ABAN_DESCR 50
BEGIN BEGIN
PROMPT 23 9 "" PROMPT 23 9 ""
GROUP 2 GROUP 2
USE %BAN KEY 2 SELECT CODTAB?="??????????" USE %BAN KEY 2 SELECT CODTAB?="?????"
INPUT S0 F_ABAN_DESCR INPUT S0 F_ABAN_DESCR
DISPLAY "Denominazione@50" S0 DISPLAY "Denominazione@50" S0
DISPLAY "ABI@5" CODTAB[1,5] DISPLAY "ABI@5" CODTAB[1,5]
DISPLAY "CAB@5" CODTAB[6,10]
COPY OUTPUT F_ABAN COPY OUTPUT F_ABAN
CHECKTYPE SEARCH CHECKTYPE SEARCH
END END

View File

@ -417,6 +417,17 @@ TLocalisamfile& TRelation::lfile(const char* name) const
return (TLocalisamfile&)_files[idx]; return (TLocalisamfile&)_files[idx];
} }
bool TRelation::has_children(int first) const
{
for (int i = first; i < _reldefs.items(); i++)
{
const TRelationdef& ref = reldef(i);
if (ref._numto == first)
return true;
}
return false;
}
// @doc EXTERNAL // @doc EXTERNAL
// @mfunc Abilita/disabilita la scrittura sul file // @mfunc Abilita/disabilita la scrittura sul file

View File

@ -66,6 +66,8 @@ public:
// @cmember Aggiorna l'albero delle relazioni // @cmember Aggiorna l'albero delle relazioni
int update(int first = 0) int update(int first = 0)
{ return position_rels(_isequal, _nolock, first); } { return position_rels(_isequal, _nolock, first); }
// @cmember Controlla se il nodo della relazione ha figli
bool has_children(int first = 0) const;
// @cmember Azzera l'albero delle relazioni // @cmember Azzera l'albero delle relazioni
void zero(); void zero();
//@cmember Sposta la relazione sul record successivo del file principale (chiama <mf TRelation::position_rels>) //@cmember Sposta la relazione sul record successivo del file principale (chiama <mf TRelation::position_rels>)

View File

@ -761,11 +761,11 @@ void TSt_certif::preprocess_header()
TString dep(73); TString dep(73);
dep.fill('-'); dep.fill('-');
dati_percipiente(); dati_percipiente();
set_header(i++, "@1g---------------------------------------------------"); set_header(i++, "@1g-----------------------------------------------------------------");
set_header(i++, "!@12gCERTIFICAZIONE DEI COMPENSI@52g!"); set_header(i++, "!@12gCERTIFICAZIONE DEI COMPENSI@66g!");
set_header(i++, "!@9gASSOGGETTATI A RITENUTA D'ACCONTO@52g!"); set_header(i++, "!@9gASSOGGETTATI A RITENUTA D'ACCONTO@66g!");
set_header(i++, "!@3g(Art. 7 bis D.P.R. 29 Settembre 1973, n.600)@52g!"); set_header(i++, "!@3g(Art.4 commi 6-ter e 6-quater D.P.R. 22 Luglio 1998, n.332)@66g!");
set_header(i++, "@1g---------------------------------------------------"); set_header(i++, "@1g-----------------------------------------------------------------");
set_header(i++, ""); set_header(i++, "");
set_header(i++, "@59g%s", (const char*) dep); set_header(i++, "@59g%s", (const char*) dep);
set_header(i++, "@58g!@84gSOGGETTO PERCIPIENTE@132g!"); set_header(i++, "@58g!@84gSOGGETTO PERCIPIENTE@132g!");
@ -795,7 +795,7 @@ void TSt_certif::preprocess_header()
set_header(i++, ""); set_header(i++, "");
set_header(i++, "@50g%s,li %d %s %d", (const char*)_luogo, _data.day(), itom(_data.month()), _data.year()); set_header(i++, "@50g%s,li %d %s %d", (const char*)_luogo, _data.day(), itom(_data.month()), _data.year());
set_header(i++, ""); set_header(i++, "");
set_header(i++, "@7gPer gli adempimenti previsti dall'art.7 bis del D.P.R. 29 Settembre 1973,n. 600 e successive modificazioni"); set_header(i++, "@7gPer gli adempimenti previsti dall'Art.4 commi 6-ter e 6-quater D.P.R. 22 Luglio 1998, n.332 e successive modificazioni");
set_header(i++, "si attesta che nel corso del periodo dal 01/01/%d al 31/12/%d al percipiente evidenziato in riquadro", _anno_dic, _anno_dic); set_header(i++, "si attesta che nel corso del periodo dal 01/01/%d al 31/12/%d al percipiente evidenziato in riquadro", _anno_dic, _anno_dic);
set_header(i++, "sono stati corrisposti i seguenti compensi debitamente assoggettati a ritenuta d'acconto e ad eventuale ritenuta previdenziale:"); set_header(i++, "sono stati corrisposti i seguenti compensi debitamente assoggettati a ritenuta d'acconto e ad eventuale ritenuta previdenziale:");
set_header(i++, ""); set_header(i++, "");

View File

@ -312,6 +312,7 @@ bool TDocumento_form::doc_arrange()
return TRUE; return TRUE;
} }
void TDocumento_form::print_documento() void TDocumento_form::print_documento()
{ {
TPrinter& pr = printer(); TPrinter& pr = printer();
@ -325,15 +326,15 @@ void TDocumento_form::print_documento()
const int righe = _doc->rows(); const int righe = _doc->rows();
bool one_row_printed = FALSE; bool one_row_printed = FALSE;
const bool update_relation = relation()->has_children(1);
set_last_page(FALSE); // E' importante settare questo flag, per evitare "Falli di Piede" eheh :-) set_last_page(FALSE); // E' importante settare questo flag, per evitare "Falli di Piede" eheh :-)
for (int r=1; r<=righe; r++) for (int r=1; r<=righe; r++)
{ {
_rdocfile->set_row(r); _rdocfile->set_row(r);
// Questo if non c'era e quindi, a causa della next_match ignorava sempre la prima riga. if (update_relation)
// Ora la next_match non viene mai fatta: a cosa serve allora tutto cio'? relation()->update(1);
//if (cursor()->curr(LF_RIGHEDOC).get_int(RDOC_NRIGA) < r)
// cursor()->next_match(LF_RIGHEDOC);
if (!print_on_body(r)) if (!print_on_body(r))
continue; continue;

View File

@ -110,20 +110,19 @@ void TDocumentoEsteso::summary_set_next()
const char * TDocumentoEsteso::summary_get(const TString& w) const char * TDocumentoEsteso::summary_get(const TString& w)
{ {
if (w == "COD") if (w == "COD") // Ritorna il codice IVA
return _sum_current.cod_iva().codice(); // Ritorna il codice IVA return _sum_current.cod_iva().codice(); else
else if (w == "IMP") // Ritorna l'imponibile
if (w == "IMP") return _sum_current.imp().string(); else
return _sum_current.imp().string(); // Ritorna l'imponibile if (w == "IVA") // Ritorna l'imposta
else return _sum_current.iva().string(); else
if (w == "IVA") if (w == "ALI") // Ritorna l'aliquota %
return _sum_current.iva().string(); // Ritorna l'imposta return _sum_current.cod_iva().percentuale().string(); else
else if (w == "DES") // Ritorna la descrizione ( se il codice e' regime normale la descr. e' vuota)
if (w == "ALI") {
return _sum_current.cod_iva().percentuale().string(); // Ritorna l'aliquota % if (_sum_current.cod_iva().tipo().not_empty())
else return _sum_current.cod_iva().descrizione();
if (w == "DES") }
return _sum_current.cod_iva().descrizione(); // Ritorna la descrizione ( se il codice e' regime normale la descr. e' vuota)
return ""; return "";
} }