Corretta decodifica registri nelle causali
Allineato uso dei file isam temporanei nelle stampe Zerofillato mese nell'accesso a PIM e PLM in prima nota git-svn-id: svn://10.65.10.50/trunk@989 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
093b311205
commit
3d7dd11af5
@ -43,7 +43,8 @@ typedef enum { no_descr, acquisto, vendita, incasso_pagamento,
|
||||
protected:
|
||||
|
||||
static bool filtra_reg(const TRelation * r);
|
||||
void set_reg_filter();
|
||||
int calc_filter(const TString& tpd);
|
||||
void set_reg_filter(int filtro);
|
||||
|
||||
static bool tipocf_hndl (TMask_field& f, KEY k);
|
||||
static bool cod_reg_hndl (TMask_field& f, KEY k);
|
||||
@ -91,11 +92,11 @@ protected:
|
||||
// int cancella(long items);
|
||||
|
||||
public:
|
||||
tipo_descr _tipo_des; // Il tipo di causale corrente
|
||||
tipo_descr _tipo_des; // Il tipo di causale corrente
|
||||
|
||||
void compila_array (const TString&, int, int, int);
|
||||
|
||||
TSheet_field& ss() const { return *_sheet; }
|
||||
TSheet_field& ss() const { return *_sheet; }
|
||||
TMask& ss_mask() const { return _sheet->sheet_mask(); }
|
||||
|
||||
void add_riga (int numrig, char sz, TConto& tc, const TString& d, const TString& da);
|
||||
@ -112,26 +113,26 @@ HIDDEN TCaus_app& app() { return (TCaus_app&) main_app(); }
|
||||
|
||||
bool TCaus_app::filtra_reg(const TRelation * r)
|
||||
{
|
||||
bool ok = FALSE;
|
||||
bool ok = TRUE;
|
||||
|
||||
const TRectype& rec = r->lfile().curr();
|
||||
const int anno = atoi(rec.get("CODTAB").left(4));
|
||||
|
||||
if (anno == app().anno_iva())
|
||||
{
|
||||
const int tiporeg = rec.get_int("I0");
|
||||
const TipoIVA tiporeg = (TipoIVA)rec.get_int("I0");
|
||||
const bool corrisp = rec.get_bool("B0");
|
||||
|
||||
switch (app()._filtro)
|
||||
{
|
||||
case 1:
|
||||
ok = tiporeg == 1; break;
|
||||
ok = tiporeg == iva_vendite; break;
|
||||
case 2:
|
||||
ok = (tiporeg == 1 && corrisp); break;
|
||||
ok = (tiporeg == iva_vendite && corrisp); break;
|
||||
case 3:
|
||||
ok = tiporeg == 2; break;
|
||||
ok = tiporeg == iva_acquisti; break;
|
||||
case 4: // tiporeg 1 senza corrisp OPPURE 2 (NC ST ND AF)
|
||||
ok = tiporeg == 2 || (tiporeg == 1 && !corrisp) ; break;
|
||||
ok = tiporeg == iva_acquisti || (tiporeg == iva_vendite && !corrisp) ; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -276,8 +277,10 @@ bool TCaus_app::m770_hndl (TMask_field& f, KEY k)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void TCaus_app::set_reg_filter()
|
||||
{
|
||||
void TCaus_app::set_reg_filter(int f)
|
||||
{
|
||||
_filtro = f;
|
||||
|
||||
TEdit_field& reg = _msk->efield(F_COD_REG);
|
||||
reg.browse()->cursor()->set_filterfunction(filtra_reg);
|
||||
|
||||
@ -285,6 +288,39 @@ void TCaus_app::set_reg_filter()
|
||||
des.browse()->cursor()->set_filterfunction(filtra_reg);
|
||||
}
|
||||
|
||||
|
||||
int TCaus_app::calc_filter(const TString& tpd)
|
||||
{
|
||||
TTable tabtpd("%TPD");
|
||||
tabtpd.put("CODTAB", tpd);
|
||||
|
||||
int filtro = 0;
|
||||
|
||||
if (tabtpd.read() == NOERR)
|
||||
{
|
||||
const TipoIVA i = (TipoIVA)tabtpd.get_int("I0"); // IVA acquisti, vendite, generica
|
||||
const bool corrisp = tabtpd.get_bool("B0");
|
||||
|
||||
if (i == iva_vendite) // vendite
|
||||
{
|
||||
if (corrisp) // vendite con corrispettivi
|
||||
filtro = 2;
|
||||
else // vendite senza corrispettivi
|
||||
filtro = 1;
|
||||
} else
|
||||
if ( i == iva_acquisti ) // acquisti
|
||||
filtro = 3;
|
||||
else
|
||||
if ( i == 9 ) // sia acquisti che vendite
|
||||
filtro = 4;
|
||||
}
|
||||
|
||||
set_reg_filter(filtro);
|
||||
|
||||
return filtro;
|
||||
}
|
||||
|
||||
|
||||
bool TCaus_app::tipodoc_hndl (TMask_field& f, KEY k)
|
||||
{
|
||||
// Testo K_TAB perche' il controllo deve scattare anche all'inizio
|
||||
@ -302,39 +338,7 @@ bool TCaus_app::tipodoc_hndl (TMask_field& f, KEY k)
|
||||
|
||||
field_reg.enable();
|
||||
m.enable(F_DES_REG);
|
||||
|
||||
TTable tabtpd("%TPD");
|
||||
tabtpd.put("CODTAB", val);
|
||||
|
||||
if (tabtpd.read() == NOERR)
|
||||
{
|
||||
const TipoIVA i = (TipoIVA)tabtpd.get_int("I0"); // IVA acquisti, vendite, generica
|
||||
const bool corrisp = tabtpd.get_bool("B0");
|
||||
|
||||
if (i == 1) // vendite
|
||||
{
|
||||
if (corrisp) // vendite con corrispettivi
|
||||
{
|
||||
app()._filtro = 2;
|
||||
app().set_reg_filter();
|
||||
}
|
||||
else // vendite senza corrispettivi
|
||||
{
|
||||
app()._filtro = 1;
|
||||
app().set_reg_filter();
|
||||
}
|
||||
} else
|
||||
if ( i == 2 ) // acquisti
|
||||
{
|
||||
app()._filtro = 3;
|
||||
app().set_reg_filter();
|
||||
} else
|
||||
if ( i == 9 ) // sia acquisti che vendite
|
||||
{
|
||||
app()._filtro = 4;
|
||||
app().set_reg_filter();
|
||||
}
|
||||
}
|
||||
app().calc_filter(val);
|
||||
}
|
||||
else // TIPODOC vuoto || IN || PG || AN
|
||||
{
|
||||
@ -667,6 +671,10 @@ int TCaus_app::read(TMask& m)
|
||||
m.autoload(_rel);
|
||||
read_rcaus(m);
|
||||
fill_sheet(m);
|
||||
|
||||
const TString16 tpd = m.get(F_TIPO_DOC);
|
||||
calc_filter(tpd);
|
||||
|
||||
return NOERR;
|
||||
}
|
||||
|
||||
|
@ -651,7 +651,7 @@ void CG1500_application::scrivic_file_temp()
|
||||
void CG1500_application::scrivis_file_temp(int g, int c, long s, real saldo)
|
||||
{
|
||||
TIsamtempfile* tmp = NULL;
|
||||
TString nome_campo(12);
|
||||
TString16 nome_campo;
|
||||
|
||||
if (_indbil==1)
|
||||
{
|
||||
@ -778,17 +778,18 @@ bool CG1500_application::bil_sez_contr()
|
||||
bool esiste_conto=FALSE, esiste_sc = FALSE;
|
||||
bool movimentato = FALSE;
|
||||
|
||||
_tmp_saldi_att->open("cg01");
|
||||
CHECK(_tmp_saldi_att == NULL, "La minchia che riapro cg01");
|
||||
_tmp_saldi_att = new TIsamtempfile(LF_SALDI, "cg01", 2);
|
||||
_prog->addstatus(1);
|
||||
_tmp_saldi_pass->open("cg02");
|
||||
_tmp_saldi_pass = new TIsamtempfile(LF_SALDI, "cg02", 2);
|
||||
_prog->addstatus(1);
|
||||
_tmp_saldi_costi->open("cg03");
|
||||
_tmp_saldi_costi = new TIsamtempfile(LF_SALDI, "cg03", 2);
|
||||
_prog->addstatus(1);
|
||||
_tmp_saldi_ricavi->open("cg04");
|
||||
_tmp_saldi_ricavi = new TIsamtempfile(LF_SALDI, "cg04", 2);
|
||||
_prog->addstatus(1);
|
||||
_tmp_saldi_conti_uno->open("cg05");
|
||||
_tmp_saldi_conti_uno = new TIsamtempfile(LF_SALDI, "cg05", 2);
|
||||
_prog->addstatus(1);
|
||||
_tmp_saldi_conti_due->open("cg06");
|
||||
_tmp_saldi_conti_due = new TIsamtempfile(LF_SALDI, "cg06", 2);
|
||||
_prog->addstatus(1);
|
||||
|
||||
_gp=-1;
|
||||
@ -1120,7 +1121,8 @@ bool CG1500_application::bil_verifica()
|
||||
real mov_gruppo_dare, mov_gruppo_avere, prg_gruppo_dare, prg_gruppo_avere;
|
||||
bool esiste_conto = FALSE, esiste_sc = FALSE, movimentato = FALSE;
|
||||
|
||||
_tmp_saldi_att->open("cg01");
|
||||
CHECK(_tmp_saldi_att == NULL, "La minchia che riapro cg01");
|
||||
_tmp_saldi_att = new TIsamtempfile(LF_SALDI, "cg01", 2);
|
||||
|
||||
_gp=-1;
|
||||
_cp=-1;
|
||||
@ -2234,19 +2236,21 @@ void CG1500_application::postclose_print()
|
||||
{
|
||||
if (_bilancio == 1)
|
||||
{
|
||||
_tmp_saldi_att->close();
|
||||
_tmp_saldi_pass->close();
|
||||
_tmp_saldi_costi->close();
|
||||
_tmp_saldi_ricavi->close();
|
||||
_tmp_saldi_conti_uno->close();
|
||||
_tmp_saldi_conti_due->close();
|
||||
delete _tmp_saldi_att; _tmp_saldi_att = NULL;
|
||||
delete _tmp_saldi_pass; _tmp_saldi_pass = NULL;
|
||||
delete _tmp_saldi_costi; _tmp_saldi_costi = NULL;
|
||||
delete _tmp_saldi_ricavi; _tmp_saldi_ricavi = NULL;
|
||||
delete _tmp_saldi_conti_uno; _tmp_saldi_conti_uno = NULL;
|
||||
delete _tmp_saldi_conti_due; _tmp_saldi_conti_due = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_verifica == 3)
|
||||
delete _sort;
|
||||
else
|
||||
_tmp_saldi_att->close();
|
||||
{
|
||||
delete _tmp_saldi_att; _tmp_saldi_att = NULL;
|
||||
}
|
||||
}
|
||||
//return NEXT_PAGE;
|
||||
}
|
||||
@ -2913,12 +2917,12 @@ bool CG1500_application::user_create()
|
||||
_nditte = new TLocalisamfile(LF_NDITTE);
|
||||
_anag = new TLocalisamfile(LF_ANAG);
|
||||
_esc = new TTable("ESC");
|
||||
_tmp_saldi_att = new TIsamtempfile(LF_SALDI);
|
||||
_tmp_saldi_pass = new TIsamtempfile(LF_SALDI);
|
||||
_tmp_saldi_costi = new TIsamtempfile(LF_SALDI);
|
||||
_tmp_saldi_ricavi = new TIsamtempfile(LF_SALDI);
|
||||
_tmp_saldi_conti_uno = new TIsamtempfile(LF_SALDI);
|
||||
_tmp_saldi_conti_due = new TIsamtempfile(LF_SALDI);
|
||||
_tmp_saldi_att = NULL;
|
||||
_tmp_saldi_pass = NULL;
|
||||
_tmp_saldi_costi = NULL;
|
||||
_tmp_saldi_ricavi = NULL;
|
||||
_tmp_saldi_conti_uno = NULL;
|
||||
_tmp_saldi_conti_due = NULL;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -2935,12 +2939,13 @@ bool CG1500_application::user_destroy()
|
||||
delete _nditte;
|
||||
delete _anag;
|
||||
delete _esc;
|
||||
delete _tmp_saldi_att;
|
||||
delete _tmp_saldi_pass;
|
||||
delete _tmp_saldi_costi;
|
||||
delete _tmp_saldi_ricavi;
|
||||
delete _tmp_saldi_conti_uno;
|
||||
delete _tmp_saldi_conti_due;
|
||||
|
||||
if (_tmp_saldi_att) delete _tmp_saldi_att;
|
||||
if (_tmp_saldi_pass) delete _tmp_saldi_pass;
|
||||
if (_tmp_saldi_costi) delete _tmp_saldi_costi;
|
||||
if (_tmp_saldi_ricavi) delete _tmp_saldi_ricavi;
|
||||
if (_tmp_saldi_conti_uno) delete _tmp_saldi_conti_uno;
|
||||
if (_tmp_saldi_conti_due) delete _tmp_saldi_conti_due;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -189,8 +189,7 @@ bool TMovimentoPN::controlla_liquidazione(const TDate& data, bool reset) const
|
||||
const int mese = date2liq(data);
|
||||
|
||||
// Chiave di LIM: Anno (1-4), Mese (5-6)
|
||||
TString16 key;
|
||||
key << anno << mese;
|
||||
TString16 key; key.format("%04d%02d", anno, mese);
|
||||
TTable lim("LIM");
|
||||
lim.setkey(1);
|
||||
lim.put("CODTAB", key);
|
||||
@ -285,7 +284,8 @@ int TMovimentoPN::registra(bool re, bool force)
|
||||
for (int a = 1; a <= att; a++)
|
||||
{
|
||||
TString16 chiave;
|
||||
chiave << annoiva << registro.attivita() << a << date2liq(datareg);
|
||||
chiave << annoiva << registro.attivita() << a
|
||||
<< format("%02d", date2liq(datareg));
|
||||
plm.put("CODTAB", chiave);
|
||||
if (plm.read() == NOERR)
|
||||
{
|
||||
|
@ -4,7 +4,6 @@
|
||||
#include <mask.h>
|
||||
#include <printapp.h>
|
||||
#include <progind.h>
|
||||
#include <relation.h>
|
||||
#include <tabutil.h>
|
||||
#include <utility.h>
|
||||
|
||||
@ -74,9 +73,10 @@ bool CG3500_application::riepilogo()
|
||||
char tipo_conto = ' ';
|
||||
bool esiste_conto = FALSE, esiste_sc = FALSE;
|
||||
real saldo_conto,prg_conto_dare,prg_conto_avere,saldo_gruppo,prg_gruppo_dare,prg_gruppo_avere,prg_dare,prg_avere,saldo;
|
||||
|
||||
_tmp_saldi->open("cg01");
|
||||
|
||||
CHECK(_tmp_saldi == NULL, "La minchia che riapro cg01!");
|
||||
_tmp_saldi = new TIsamtempfile(LF_SALDI, "cg01", 2);
|
||||
|
||||
gp=-1;
|
||||
cp=-1;
|
||||
_udata_max = 0l;
|
||||
@ -637,8 +637,9 @@ bool CG3500_application::preprocess_page(int file, int counter)
|
||||
}
|
||||
|
||||
void CG3500_application::postclose_print()
|
||||
{
|
||||
_tmp_saldi->close();
|
||||
{
|
||||
if (_tmp_saldi)
|
||||
{ delete _tmp_saldi; _tmp_saldi = NULL; }
|
||||
|
||||
//return NEXT_PAGE;
|
||||
}
|
||||
@ -761,7 +762,7 @@ bool CG3500_application::user_create()
|
||||
_saldi = new TLocalisamfile(LF_SALDI);
|
||||
_nditte = new TLocalisamfile(LF_NDITTE);
|
||||
_anag = new TLocalisamfile(LF_ANAG);
|
||||
_tmp_saldi = new TIsamtempfile (LF_SALDI);
|
||||
_tmp_saldi = NULL;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user