77qd1.frm Aggiunte due X per le ritenute nella testata

77stq.cpp        Sistemata separazione tra diverse ritenute del quadro D1
77stqab.cpp      Tolta riga inutile nella calcola firma


git-svn-id: svn://10.65.10.50/trunk@3745 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1996-10-10 10:40:50 +00:00
parent bc3439e40f
commit 4232961968
3 changed files with 98 additions and 50 deletions

View File

@ -170,6 +170,18 @@ BEGIN
PROMPT 125 22 ""
END
STRINGA 21
BEGIN
KEY "Ritenuta d'acconto"
PROMPT 110 21 ""
END
STRINGA 22
BEGIN
KEY "Ritenuta d'imposta"
PROMPT 110 22 ""
END
END
SECTION BODY ODD 6

View File

@ -589,7 +589,7 @@ void TDicForm::jump_to_line(TPrinter& pr, const int lin)
void TDicForm::stampa_totali(TPrinter& pr)
{
TPrint_section& totali = section('F', last_page);
totali.update();
totali.update();
for (int i = 0; i < totali.items(); i++)
{
pr.print(totali.row(i));
@ -702,7 +702,7 @@ class TQuadroG : public TDicForm
void stampa_prospetti3_4(TPrinter& pr);
protected:
virtual bool ultima_pagina() const { return _PaginaCorrente==SECONDA; }
virtual bool ultima_pagina() const { return _PaginaCorrente==SECONDA; }
virtual void inc_curr_page();
virtual void next_page(TPrinter& pr);
virtual void stampa_totali(TPrinter& pr) {}
@ -2223,14 +2223,14 @@ bool TQuadroD1::controlla_percentuale(TCursor* cur, const real& perc_p)
void TQuadroD1::leggi_importi()
{
TCursor* cur = cursor();
TRectype& cur = cursor()->curr();
_totale = cur->curr().get_real(QD1_TOTALE);
_quotapro = cur->curr().get_real(QD1_QUOTAPRO);
_speseant = cur->curr().get_real(QD1_SPESEANT);
_imponibile = cur->curr().get_real(QD1_IMPONIBILE);
_importo = cur->curr().get_real(QD1_IMPORTO);
_netto = cur->curr().get_real(QD1_NETTO);
_totale = cur.get_real(QD1_TOTALE);
_quotapro = cur.get_real(QD1_QUOTAPRO);
_speseant = cur.get_real(QD1_SPESEANT);
_imponibile = cur.get_real(QD1_IMPONIBILE);
_importo = cur.get_real(QD1_IMPORTO);
_netto = cur.get_real(QD1_NETTO);
}
void TQuadroD1::setta_importi(TPrint_section& body)
@ -2315,6 +2315,8 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi
{
bool StabilitaInesistenzaNoFis = FALSE;
bool StabilitaInesistenzaFis = FALSE;
bool StampatoRitenutaImposta = FALSE;
long CtrFis = NumFis;
long CtrNoFis = NumNoFis;
long PtrFis = -1L, PtrNoFis=-1L;
@ -2338,22 +2340,35 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi
{
for (int pagina=1; pagina <= QD_PAGINE; pagina++, next_page(pr))
{
pr.formlen(QD_FORMLEN);
pr.formlen(dic_form_len());
if (_PaginaCorrente == PRIMA)
{
if (_modulaser) ClearFlagModulaser();
bool testata = TRUE;
for (int righe=0; righe < QD1_RIGHE_PRIMA; righe++)
{
stampa = TRUE;
// Stampa intestazione, solo sul primo foglio.
if (testata)
if (righe == 0)
{
(*cur) = PtrFis >= 0L ? PtrFis : 0L;
const char tipo = cur->curr().get(QD1_TIPOA)[0];
TPrint_section& head = section('H', first_page);
if (tipo == 'F')
{
const bool rit_acc = cur->curr(-14).get_bool("B0");
head.find_field(21).set(rit_acc ? "X" : "");
head.find_field(22).set(rit_acc ? "" : "X");
}
else
{
head.find_field(21).set("");
head.find_field(22).set("");
}
stampa_testata(pr);
testata = FALSE;
}
if (_finite_fis || StabilitaInesistenzaFis)
@ -2388,17 +2403,23 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi
(*cur) = PtrFis;
const char tipo = cur->curr().get(QD1_TIPOA)[0];
if (tipo != 'F')
break;
else
{
if (tipo == 'F')
{
const bool rit_imp = !cur->curr(-14).get_bool("B0");
if (righe > 0 && rit_imp && !StampatoRitenutaImposta)
break;
CtrFis--;
if (CtrFis == 0L) _finite_fis = TRUE;
real perc_p = cur->curr().get_real(QD1_PERC);
stampa = controlla_percentuale(cur,perc_p);
if (stampa)
{
set_body(pr, 'F');
if (rit_imp)
StampatoRitenutaImposta = TRUE;
}
else
{
leggi_importi();
@ -2414,6 +2435,8 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi
LastRecord = cur->pos() >= _Items-1;
}
}
else
break;
} // for righe..
PtrFis = cur->pos();
}
@ -2439,17 +2462,23 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi
(*cur) = PtrFis;
const char tipo = cur->curr().get(QD1_TIPOA)[0];
if (tipo != 'F')
break;
else
if (tipo == 'F')
{
const bool rit_imp = !cur->curr(-14).get_bool("B0");
if (rit_imp && !StampatoRitenutaImposta)
break;
CtrFis--;
if (CtrFis == 0L) _finite_fis = TRUE;
real perc_p = cur->curr().get_real(QD1_PERC);
stampa = controlla_percentuale(cur,perc_p);
if (stampa)
{
set_body(pr, 'F');
if (rit_imp)
StampatoRitenutaImposta = TRUE;
}
else
{
leggi_importi();
@ -2464,6 +2493,8 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi
LastRecord = cur->pos() >= _Items-1;
}
}
else
break;
}
PtrFis = cur->pos();
}
@ -2487,17 +2518,22 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi
(*cur) = PtrFis;
const char tipo = cur->curr().get(QD1_TIPOA)[0];
if (tipo != 'F')
break;
else
if (tipo == 'F')
{
const bool rit_imp = !cur->curr(-14).get_bool("B0");
if (rit_imp && !StampatoRitenutaImposta)
break;
CtrFis--;
if (CtrFis == 0L) _finite_fis = TRUE;
real perc_p = cur->curr().get_real(QD1_PERC);
stampa = controlla_percentuale(cur,perc_p);
if (stampa)
{
set_body(pr, 'F');
if (rit_imp)
StampatoRitenutaImposta = TRUE;
}
else
{
leggi_importi();
@ -2513,6 +2549,8 @@ bool TQuadroD1::print(const long codditta, const long NumFis, const long NumNoFi
LastRecord = cur->pos() >= _Items-1;
}
}
else
break;
}
PtrFis = cur->pos();
}
@ -2629,7 +2667,7 @@ bool TStampaQuadroD1::user_create()
_form = new TQuadroD1("77QD1", quadro());
TString sortkey(80);
sortkey.format("CODDITTA|TIPOA|216@->RAGSOC|CODANAGR|CODCAUS|PERC", LF_QUAD1, LF_QUAD1);
sortkey.format("CODDITTA|TIPOA|14@->B0-|216@->RAGSOC|CODANAGR|CODCAUS|PERC");
_cur = new TSorted_cursor(_form->TForm::relation(), sortkey);
return TRUE;
@ -3170,7 +3208,7 @@ class TQuadroF : public TDicForm
void azzera_contatori();
void aggiorna_totali(char tipoprosp, TRectype& r);
void stampa_totali(char tipoprosp, TPrinter& pr);
virtual bool ultima_pagina() const { return _PaginaCorrente==SECONDA; }
virtual bool ultima_pagina() const { return _PaginaCorrente==SECONDA; }
public:
virtual bool print(const long codditta, const long numfis=0L, const long numnofis=0L);
@ -3736,9 +3774,9 @@ bool get_alleg_730(const long codditta)
base.put("CODDITTA",(long)codditta);
if (base.read()==NOERR)
{
const long allegA=base.get_long("N730ALLA");
const long allegA2=base.get_long("N730ALLA2");
return allegA || allegA2;
const long allegA=base.get_long("N730ALLA");
const long allegA2=base.get_long("N730ALLA2");
return allegA || allegA2;
}
else
return FALSE;
@ -3767,29 +3805,29 @@ bool TBusta::print(const long codditta, const long, const long)
all730.set(bAlleg730 ? "X" : "");
TPrinter& pr=printer();
TPrint_section& body = section('B', odd_page);
const int body_righe = body.height();
TPrint_section& body = section('B', odd_page);
const int body_righe = body.height();
TCursor* cur=cursor();
bool finito=FALSE;
bool finito=FALSE;
(*cur)=0L;
pr.formlen(BUSTA_CON_POSIZ);
if (!_PaginaPosizionamento)
jump_to_line(pr,prima_riga(PRIMA));
while (!finito)
{
body.reset();
body.update();
for (int i=0; i < body_righe; i++)
{
pr.print(body.row(i));
_RigaCorr++;
}
if (usa_progind())
progind()->addstatus(1);
++(*cur);
finito= cur->pos() >= cur->items()-1;
while (!finito)
{
body.reset();
body.update();
for (int i=0; i < body_righe; i++)
{
pr.print(body.row(i));
_RigaCorr++;
}
if (usa_progind())
progind()->addstatus(1);
++(*cur);
finito= cur->pos() >= cur->items()-1;
pr.formlen(BUSTA_SENZA_POSIZ);
_PaginaPosizionamento=FALSE;
_PaginaPosizionamento=FALSE;
}
// TForm::print(0);
}

View File

@ -170,11 +170,9 @@ int TQuadroA::calcola_firma()
TString nome = cognome.mid(30, -1);
cognome.cut(30); cognome.trim();
cognome << ' ' << nome;
signature.set(cognome);
totali.row(y).reset();
totali.row(y).put(cognome, signature.x()-1);
}
totali.row(y).reset();
totali.row(y).put(cognome, signature.x()-1);
return y;
}