Patch level : 2.0 678
Files correlati : 772.exe Ricompilazione Demo : [ ] Commento : CM20091 Immettendo in questo caso specifico di Medicasa da Persona fisica F/60014 a Persona fisica F/60460 e controllando il percipiente Porta Gianluigi i si accorge che per lo steso percipiente vengono stampate 3 certificazioni per valori diversi (la n° 1,la 10, la 12). Se al contrario richiedo la sola persona fisica F/60316 la certificazione è correttamente una sola, di cui il totale è la somma delle tre stampate in precedenza. git-svn-id: svn://10.65.10.50/trunk@11736 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
e15b71e0e0
commit
028a37ab42
113
m770/772200.cpp
113
m770/772200.cpp
@ -1,11 +1,9 @@
|
|||||||
// 772200.cpp - Stampa certificazioni
|
// 772200.cpp - Stampa certificazioni
|
||||||
#include <config.h>
|
|
||||||
#include <mask.h>
|
|
||||||
#include <printapp.h>
|
#include <printapp.h>
|
||||||
#include <progind.h>
|
#include <progind.h>
|
||||||
#include <relation.h>
|
#include <recarray.h>
|
||||||
#include <sort.h>
|
#include <sort.h>
|
||||||
#include <tabutil.h>
|
|
||||||
|
|
||||||
#include <comuni.h>
|
#include <comuni.h>
|
||||||
#include <nditte.h>
|
#include <nditte.h>
|
||||||
@ -44,10 +42,8 @@ class TSt_certif : public TPrintapp
|
|||||||
real netto;
|
real netto;
|
||||||
real inps;
|
real inps;
|
||||||
};
|
};
|
||||||
righe_pag* _rig;
|
|
||||||
TRelation* _rel;
|
TRelation* _rel;
|
||||||
TCursor* _cur;
|
TCursor* _cur;
|
||||||
TProgind* _prog;
|
|
||||||
TSort* _sort;
|
TSort* _sort;
|
||||||
const char* _buf;
|
const char* _buf;
|
||||||
TLocalisamfile* _nditte;
|
TLocalisamfile* _nditte;
|
||||||
@ -55,7 +51,6 @@ class TSt_certif : public TPrintapp
|
|||||||
TLocalisamfile* _rpag;
|
TLocalisamfile* _rpag;
|
||||||
TLocalisamfile* _scperc;
|
TLocalisamfile* _scperc;
|
||||||
TLocalisamfile* _comuni;
|
TLocalisamfile* _comuni;
|
||||||
TTable* _ca7;
|
|
||||||
TString80 _ragsocER, _indER, _civER, _capER, _dencomER, _provER, _cofiER;
|
TString80 _ragsocER, _indER, _civER, _capER, _dencomER, _provER, _cofiER;
|
||||||
TString80 _ragsocPE, _indPE, _civPE, _capPE, _dencomPE, _provPE, _cofiPE;
|
TString80 _ragsocPE, _indPE, _civPE, _capPE, _dencomPE, _provPE, _cofiPE;
|
||||||
TString80 _dencomnscER, _provnscER, _dencomnscPE, _provnscPE;
|
TString80 _dencomnscER, _provnscER, _dencomnscPE, _provnscPE;
|
||||||
@ -90,7 +85,7 @@ protected:
|
|||||||
bool init_print();
|
bool init_print();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TRectype& look_causali();
|
const TRectype& look_causali();
|
||||||
TRectype& look_schperc(long,char,long,int);
|
TRectype& look_schperc(long,char,long,int);
|
||||||
void crea_sort();
|
void crea_sort();
|
||||||
void init_sort();
|
void init_sort();
|
||||||
@ -167,33 +162,24 @@ TRectype& TSt_certif::look_schperc (long cod, char t, long codan, int np)
|
|||||||
return schede.curr();
|
return schede.curr();
|
||||||
}
|
}
|
||||||
|
|
||||||
TRectype& TSt_certif::look_causali()
|
const TRectype& TSt_certif::look_causali()
|
||||||
{
|
{
|
||||||
TString16 dep;
|
TString4 dep; dep.format("%02d", _codc_p);
|
||||||
|
return cache().get("%CA7", dep);
|
||||||
_ca7->zero();
|
|
||||||
dep.format("%02d", _codc_p);
|
|
||||||
_ca7->put("CODTAB", dep);
|
|
||||||
_ca7->read();
|
|
||||||
if (_ca7->bad())
|
|
||||||
_ca7->zero();
|
|
||||||
|
|
||||||
return _ca7->curr();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TSt_certif::init_sort()
|
void TSt_certif::init_sort()
|
||||||
{
|
{
|
||||||
_rig = new righe_pag;
|
|
||||||
_sort = new TSort(sizeof(righe_pag));
|
_sort = new TSort(sizeof(righe_pag));
|
||||||
|
|
||||||
/*
|
// _sort->addsortkey (0, 23); // Non si puo': la sort usa strncmp!
|
||||||
_sort->addsortkey ((char*)&(_rig->ditta) - (char*)&(_rig->ditta),5);
|
righe_pag rig;
|
||||||
_sort->addsortkey ((char*)&(_rig->tipoa) - (char*)&(_rig->ditta),1);
|
_sort->addsortkey((char*)&(rig.ditta) - (char*)&(rig.ditta),5);
|
||||||
_sort->addsortkey ((char*)&(_rig->codan) - (char*)&(_rig->ditta),5);
|
_sort->addsortkey((char*)&(rig.tipoa) - (char*)&(rig.ditta),1);
|
||||||
_sort->addsortkey ((char*)&(_rig->perc) - (char*)&(_rig->ditta),6);
|
_sort->addsortkey((char*)&(rig.codan) - (char*)&(rig.ditta),5);
|
||||||
_sort->addsortkey ((char*)&(_rig->codc) - (char*)&(_rig->ditta),2);
|
_sort->addsortkey((char*)&(rig.perc) - (char*)&(rig.ditta),6);
|
||||||
*/
|
_sort->addsortkey((char*)&(rig.codc) - (char*)&(rig.ditta),2);
|
||||||
_sort->addsortkey (0, 23);
|
|
||||||
_sort->init();
|
_sort->init();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -210,10 +196,15 @@ void TSt_certif::crea_sort()
|
|||||||
nprogc = -1;
|
nprogc = -1;
|
||||||
|
|
||||||
init_sort();
|
init_sort();
|
||||||
*_cur = 0l;
|
|
||||||
for (int i = 0; i < _cur->items(); i++, ++(*_cur))
|
const TRecnotype totrec = _cur->items();
|
||||||
|
_cur->freeze();
|
||||||
|
|
||||||
|
TProgind prog(totrec, TR("Elaborazione in corso..."), FALSE);
|
||||||
|
|
||||||
|
for (*_cur = 0; _cur->pos() < totrec; ++(*_cur))
|
||||||
{
|
{
|
||||||
_prog->addstatus(1);
|
prog.addstatus(1);
|
||||||
ditta = _cur->curr().get_long(PAG_CODDITTA);
|
ditta = _cur->curr().get_long(PAG_CODDITTA);
|
||||||
tipoa = _cur->curr().get(PAG_TIPOA)[0];
|
tipoa = _cur->curr().get(PAG_TIPOA)[0];
|
||||||
codan = _cur->curr().get_long(PAG_CODANAGR);
|
codan = _cur->curr().get_long(PAG_CODANAGR);
|
||||||
@ -256,6 +247,8 @@ void TSt_certif::crea_sort()
|
|||||||
|
|
||||||
riempi_record(ditta,tipoa,codan,perc,codc,corrisp,somme,quote,impo,rite,netto,inps);
|
riempi_record(ditta,tipoa,codan,perc,codc,corrisp,somme,quote,impo,rite,netto,inps);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_cur->freeze(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TSt_certif::riempi_record(long d,char t,long ca,const real& p,int c,
|
void TSt_certif::riempi_record(long d,char t,long ca,const real& p,int c,
|
||||||
@ -263,22 +256,23 @@ void TSt_certif::riempi_record(long d,char t,long ca,const real& p,int c,
|
|||||||
const real& qu,const real& im,const real& ri,
|
const real& qu,const real& im,const real& ri,
|
||||||
const real& ne, const real& inps)
|
const real& ne, const real& inps)
|
||||||
{
|
{
|
||||||
sprintf(_rig->ditta, "%5ld", d);
|
righe_pag rig;
|
||||||
_rig->tipoa = t;
|
|
||||||
sprintf(_rig->codan, "%5ld", ca);
|
|
||||||
//sprintf(_rig->perc, "%2d", p);
|
|
||||||
TString16 pp(p.string("###,@@"));
|
|
||||||
sprintf(_rig->perc, "%s", (const char*)pp);
|
|
||||||
sprintf(_rig->codc, "%02d", c);
|
|
||||||
_rig->corr = co;
|
|
||||||
_rig->somme = so;
|
|
||||||
_rig->quote = qu;
|
|
||||||
_rig->impo = im;
|
|
||||||
_rig->rite = ri;
|
|
||||||
_rig->netto = ne;
|
|
||||||
_rig->inps = inps;
|
|
||||||
|
|
||||||
_sort->sort((const char*)_rig);
|
sprintf(rig.ditta, "%5ld", d);
|
||||||
|
rig.tipoa = t;
|
||||||
|
sprintf(rig.codan, "%5ld", ca);
|
||||||
|
TString8 pp(p.string("##@,@@"));
|
||||||
|
sprintf(rig.perc, "%s", (const char*)pp);
|
||||||
|
sprintf(rig.codc, "%02d", c);
|
||||||
|
rig.corr = co;
|
||||||
|
rig.somme = so;
|
||||||
|
rig.quote = qu;
|
||||||
|
rig.impo = im;
|
||||||
|
rig.rite = ri;
|
||||||
|
rig.netto = ne;
|
||||||
|
rig.inps = inps;
|
||||||
|
|
||||||
|
_sort->sort((const char*)&rig);
|
||||||
}
|
}
|
||||||
|
|
||||||
int TSt_certif::stampa_riga(int i, int ct, const char* d)
|
int TSt_certif::stampa_riga(int i, int ct, const char* d)
|
||||||
@ -369,9 +363,9 @@ void TSt_certif::leggi_sort()
|
|||||||
|
|
||||||
if (key1 != _key1p && _key1p != "") //e' cambiato il percipiente
|
if (key1 != _key1p && _key1p != "") //e' cambiato il percipiente
|
||||||
{
|
{
|
||||||
TRectype cau = look_causali();
|
const TRectype& cau = look_causali();
|
||||||
TString descr = cau.get("S0");
|
const TString& descr = cau.get("S0");
|
||||||
int codtrib = cau.get_int("I0");
|
const int codtrib = cau.get_int("I0");
|
||||||
|
|
||||||
i = stampa_riga(i, codtrib, descr);
|
i = stampa_riga(i, codtrib, descr);
|
||||||
|
|
||||||
@ -398,9 +392,9 @@ void TSt_certif::leggi_sort()
|
|||||||
}
|
}
|
||||||
else if (key2 != _key2p && _key2p != "")
|
else if (key2 != _key2p && _key2p != "")
|
||||||
{
|
{
|
||||||
TRectype cau = look_causali();
|
const TRectype& cau = look_causali();
|
||||||
TString descr = cau.get("S0");
|
const TString& descr = cau.get("S0");
|
||||||
int codtrib = cau.get_int("I0");
|
const int codtrib = cau.get_int("I0");
|
||||||
|
|
||||||
stampa_riga(i, codtrib, descr);
|
stampa_riga(i, codtrib, descr);
|
||||||
|
|
||||||
@ -437,9 +431,9 @@ void TSt_certif::leggi_sort()
|
|||||||
}
|
}
|
||||||
else if (_stampa) //sono finiti i record ma c'e' ancora un record da stampare
|
else if (_stampa) //sono finiti i record ma c'e' ancora un record da stampare
|
||||||
{
|
{
|
||||||
TRectype cau = look_causali();
|
const TRectype& cau = look_causali();
|
||||||
TString descr = cau.get("S0");
|
const TString& descr = cau.get("S0");
|
||||||
int codtrib = cau.get_int("I0");
|
const int codtrib = cau.get_int("I0");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
_tipoa_p = _tipoa;
|
_tipoa_p = _tipoa;
|
||||||
@ -685,14 +679,9 @@ bool TSt_certif::init_print()
|
|||||||
set_print_zero(FALSE);
|
set_print_zero(FALSE);
|
||||||
set_magic_currency(TRUE);
|
set_magic_currency(TRUE);
|
||||||
|
|
||||||
_prog = new TProgind(_cur->items(),"Elaborazione in corso...",FALSE);
|
|
||||||
|
|
||||||
crea_sort();
|
crea_sort();
|
||||||
_sort->endsort();
|
_sort->endsort();
|
||||||
|
|
||||||
delete _rig;
|
|
||||||
delete _prog;
|
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1007,8 +996,6 @@ bool TSt_certif::user_create()
|
|||||||
_anag = new TLocalisamfile (LF_ANAG);
|
_anag = new TLocalisamfile (LF_ANAG);
|
||||||
_rpag = new TLocalisamfile (LF_RPAG);
|
_rpag = new TLocalisamfile (LF_RPAG);
|
||||||
_scperc = new TLocalisamfile (LF_SCPERC);
|
_scperc = new TLocalisamfile (LF_SCPERC);
|
||||||
_ca7 = new TTable ("%CA7");
|
|
||||||
_rig = new righe_pag;
|
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -1022,8 +1009,6 @@ bool TSt_certif::user_destroy()
|
|||||||
delete _comuni;
|
delete _comuni;
|
||||||
delete _rpag;
|
delete _rpag;
|
||||||
delete _scperc;
|
delete _scperc;
|
||||||
delete _ca7;
|
|
||||||
delete _rig;
|
|
||||||
delete _cnf;
|
delete _cnf;
|
||||||
delete _cns;
|
delete _cns;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user