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)
{
ini.set_paragraph("17");
TToken_string nonacc(ini.get(CFV_NONACCEFF), ';');
TToken_string nonscd(ini.get(CFV_NONSCADEFF), ';');
set_pnae(m, nonacc, nonscd);
if (ini.exist(CFV_NONACCEFF))
{
TToken_string nonacc(ini.get(CFV_NONACCEFF), ';');
TToken_string nonscd(ini.get(CFV_NONSCADEFF), ';');
set_pnae(m, nonacc, nonscd);
}
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);
// _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;
set_row (_i,"@4g%s@81g%r", TR("Risultato prima delle imposte"), &te);
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++;
_risimp_fatto = FALSE;
}

View File

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

View File

@ -13,11 +13,11 @@
#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
{
pt _pr_type;
@ -25,7 +25,8 @@ class TPrint_effetti_app : public TPrintapp
TPrintrow _pr;
TString _ban, _banp, _cli, _val, _data_stampa, _ban_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;
char _tipo_prec, _tipocf_prec;
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 print_action postprocess_page(int file, int counter);
void header_scadenza();
void header_banca();
void header_banca_app();
void header_banca_pre();
void header_distinta();
void header_cliente();
virtual bool user_create();
@ -48,7 +50,8 @@ public:
virtual void set_page (int file, int counter);
void write_bancapp();
void set_scadenza();
void set_banca();
void set_banca_app();
void set_banca_pre();
void set_distinta();
void set_cliente();
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)
{
case st_scadenza:
header_scadenza();
break;
case st_banca:
header_banca();
break;
case st_distinta:
header_distinta();
break;
case st_cliente:
header_cliente();
break;
default:
break;
case st_scadenza:
header_scadenza();
break;
case st_banca_app:
header_banca_app();
break;
case st_distinta:
header_distinta();
break;
case st_cliente:
header_cliente();
break;
case st_banca_pre:
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
void TPrint_effetti_app::header_banca()
void TPrint_effetti_app::header_banca_app()
{
int j = 2;
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('_')));
}
// 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
void TPrint_effetti_app::header_distinta()
{
@ -424,20 +441,23 @@ void TPrint_effetti_app::set_page(int file, int counter)
{
switch(_pr_type)
{
case st_scadenza:
set_scadenza();
break;
case st_banca:
set_banca();
break;
case st_distinta:
set_distinta();
break;
case st_cliente:
set_cliente();
break;
default:
break;
case st_scadenza:
set_scadenza();
break;
case st_banca_app:
set_banca_app();
break;
case st_distinta:
set_distinta();
break;
case st_cliente:
set_cliente();
break;
case st_banca_pre:
set_banca_pre();
break;
default:
break;
}
}
@ -449,11 +469,11 @@ void TPrint_effetti_app::write_bancapp()
const TRectype& rec = current_cursor()->curr();
const TString8 codabi = rec.get(EFF_CODABI);
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",
FLD(LF_EFFETTI, EFF_CODABI, "@@@@@"),
FLD(LF_EFFETTI, EFF_CODCAB, "@@@@@"),
(const char*)desccab);
FLD(LF_EFFETTI, EFF_CODABI, "@@@@@"),
FLD(LF_EFFETTI, EFF_CODCAB, "@@@@@"),
(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
{
set_row(2,"@81g@pn@100g%s",
FLD(LF_EFFETTI, EFF_IMPORTOVAL, PICTURE_IMPORTO),
(const char *)valuta);
FLD(LF_EFFETTI, EFF_IMPORTOVAL, PICTURE_IMPORTO),
(const char *)valuta);
}
write_bancapp();
for(int i = 0; i < _interline; i++) set_row(i+1," ");
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
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
void TPrint_effetti_app::set_banca()
void TPrint_effetti_app::set_banca_pre()
{
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,"######"));
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 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
{
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,"");
write_bancapp();
for(int i = 0; i < _interline; i++)
set_row(i+1,"");
}
// setta la pagina logica nel caso di stampa per distinta di presentazione
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"
TRectype& rec = current_cursor()->curr();
const TDate scad = rec.get_date (EFF_DATASCAD);
TString ban = rec.get (EFF_CODABI);
long dist = rec.get_long (EFF_NDIST);
char tipodist = rec.get_char(EFF_TIPODIST);
long cliente = rec.get_long (EFF_CODCF);
char tipocf = rec.get_char(EFF_TIPOCF);
real importo = rec.get_real(EFF_IMPORTO);
// elaboro le seguenti stringhe per la stampa
if (ban=="00000")
ban = "";
_ban = get_field(LF_EFFETTI, EFF_CODABI);
if (_ban=="00000")
_ban = "";
s = get_field(LF_EFFETTI, EFF_CODCAB);
if (s=="00000")
s = "";
_ban << " " << s;
if (real::is_null(_ban))
_ban.cut(0);
else
{
s = get_field(LF_EFFETTI, EFF_CODCAB);
if (!real::is_null(s))
_ban << ' ' << s;
}
_banp = get_field(LF_EFFETTI, EFF_CODABIP);
if (_banp=="00000")
_banp = "";
s = get_field(LF_EFFETTI, EFF_CODCABP);
if (s=="00000")
s = "";
_banp << " " << s;
if (real::is_null(_banp))
_banp.cut(0);
else
{
s = get_field(LF_EFFETTI, EFF_CODCABP);
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);
s = _cli.mid(30,50); s.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)
{
_prima_volta = FALSE;
//_rec_prec = &rec;
_scad_prec = scad;
switch(_pr_type)
{
case st_scadenza:
_scad_prec = scad;
st_header_scad(scad);
break;
case st_banca:
_scad_prec = scad;
_ban_prec = ban;
st_header_ban(ban);
break;
case st_distinta:
_scad_prec = scad;
_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;
case st_scadenza:
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);
break;
case st_cliente:
_cliente_prec = cliente;
_tipocf_prec = tipocf;
st_header_cliente(_cli);
break;
default:
break;
}
}
//else
@ -668,7 +723,7 @@ bool TPrint_effetti_app::preprocess_page(int file, int counter)
_pr.reset();
if (_pr_type == st_scadenza || _pr_type == st_cliente )
_pr.put(descfatt, 111);
if (_pr_type == st_banca || _pr_type == st_distinta )
else
_pr.put(descfatt, 114);
//printer().print(_pr);
set_row(j++,_pr);
@ -697,7 +752,8 @@ bool TPrint_effetti_app::preprocess_page(int file, int counter)
_tot_mese += importo;
_tot_stampa += importo ;
break;
case st_banca:
case st_banca_app:
case st_banca_pre:
// è cambiata la data di scadenza, stampo il relativo totale
if (scad != _scad_prec)
st_tot_scad();
@ -829,16 +885,16 @@ bool TPrint_effetti_app::preprocess_print(int file, int counter)
bool TPrint_effetti_app::set_print(int)
{
_tipoord = 'D';
TMask mask("ef0600a.msk");
if (mask.run() == K_QUIT)
return FALSE;
_tipoord = 'D';
disable_links();
set_multiple_link(FALSE);
// richiamo la maschera di scelta del tipo di stampa
TMask mask("ef0600a.msk");
mask.run();
force_setpage(FALSE);
if (mask.last_key() == K_QUIT)
return FALSE;
_pr_type = (pt) mask.get_int(RDB_TIPOST);
_pr_type = (pt)mask.get_int(RDB_TIPOST);
TDate data_stampa (mask.get(F_DATA_STAMPA));
_data_stampa = data_stampa.string();
_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);
to.put(EFF_DATASCAD,cod_to);
tipocf = mask.get(F_TIPOCF)[0];
filter = "";
filter << "(TIPOCF=='" << tipocf << "')";
filter.cut(0) << "(TIPOCF=='" << tipocf << "')";
select_cursor(_cur_1);
}
break;
case st_banca:
case st_banca_app:
{
cod_from = mask.get(F_DA_DATA2);
cod_to = mask.get(F_A_DATA2);
@ -886,6 +941,22 @@ bool TPrint_effetti_app::set_print(int)
select_cursor(_cur_2);
}
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:
{
_tipoord = mask.get(F_TIPOORD)[0];
@ -974,7 +1045,7 @@ bool TPrint_effetti_app::user_create()
_rel->add(LF_CLIFO, "TIPOCF==TIPOCF|CODCF==CODCF");
//STAMPA PER SCADENZA
_cur_1 = add_cursor(new TCursor(_rel,"",3));
//STAMPA PER BANCA
//STAMPA PER BANCA DI APPOGGIO
TString ordine = "CODABI|CODCAB|DATASCAD|NPROGTR";
_cur_2 = add_cursor(new TSorted_cursor(_rel,ordine,"",3));
//STAMPA PER DISTINTA ordinata per data scadenze
@ -989,6 +1060,9 @@ bool TPrint_effetti_app::user_create()
//STAMPA PER DISTINTA ordinata per cliente/fornitore
ordine = "TIPODIST|NDIST|NRIGADIST|TIPOCF|CODCF|DATASCAD|NPROGTR";
_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);
enable_print_menu();

View File

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

View File

@ -417,6 +417,17 @@ TLocalisamfile& TRelation::lfile(const char* name) const
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
// @mfunc Abilita/disabilita la scrittura sul file

View File

@ -66,6 +66,8 @@ public:
// @cmember Aggiorna l'albero delle relazioni
int update(int first = 0)
{ 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
void zero();
//@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);
dep.fill('-');
dati_percipiente();
set_header(i++, "@1g---------------------------------------------------");
set_header(i++, "!@12gCERTIFICAZIONE DEI COMPENSI@52g!");
set_header(i++, "!@9gASSOGGETTATI A RITENUTA D'ACCONTO@52g!");
set_header(i++, "!@3g(Art. 7 bis D.P.R. 29 Settembre 1973, n.600)@52g!");
set_header(i++, "@1g---------------------------------------------------");
set_header(i++, "@1g-----------------------------------------------------------------");
set_header(i++, "!@12gCERTIFICAZIONE DEI COMPENSI@66g!");
set_header(i++, "!@9gASSOGGETTATI A RITENUTA D'ACCONTO@66g!");
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++, "");
set_header(i++, "@59g%s", (const char*) dep);
set_header(i++, "@58g!@84gSOGGETTO PERCIPIENTE@132g!");
@ -795,7 +795,7 @@ void TSt_certif::preprocess_header()
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++, "");
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++, "sono stati corrisposti i seguenti compensi debitamente assoggettati a ritenuta d'acconto e ad eventuale ritenuta previdenziale:");
set_header(i++, "");

View File

@ -312,6 +312,7 @@ bool TDocumento_form::doc_arrange()
return TRUE;
}
void TDocumento_form::print_documento()
{
TPrinter& pr = printer();
@ -324,16 +325,16 @@ void TDocumento_form::print_documento()
const int righe = _doc->rows();
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 :-)
for (int r=1; r<=righe; r++)
{
_rdocfile->set_row(r);
// Questo if non c'era e quindi, a causa della next_match ignorava sempre la prima riga.
// Ora la next_match non viene mai fatta: a cosa serve allora tutto cio'?
//if (cursor()->curr(LF_RIGHEDOC).get_int(RDOC_NRIGA) < r)
// cursor()->next_match(LF_RIGHEDOC);
if (update_relation)
relation()->update(1);
if (!print_on_body(r))
continue;
@ -2062,4 +2063,4 @@ int ve1100(int argc, char* argv[])
const bool riep = argc == 4 && argv[2][0] == 'L'; // Lista documenti
a.run(argc, argv, riep ? TR("Lista documenti") : TR("Stampa documenti"));
return 0;
}
}

View File

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