Aggiornamento automatico protocollo IVA e riferimento partita anche quando

si cambia la causale o la data di registrazione


git-svn-id: svn://10.65.10.50/trunk@672 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1994-11-21 11:11:52 +00:00
parent 2fd3e79e44
commit 85c3d2d34e
6 changed files with 67 additions and 48 deletions

View File

@ -43,8 +43,8 @@ protected:
virtual void init_query_mode(TMask& m);
virtual void init_query_insert_mode(TMask& m) {init_query_mode(m);}
virtual void init_insert_mode(TMask& m) {init_query_mode(m);}
virtual void init_modify_mode(TMask& m) {init_pages(m);}
virtual bool change_config(const char* val, const char* old, const char* nuo);
////////////
static bool indsp_notify(int r, KEY key);
static bool indsp_handler(TMask_field& f, KEY key) ;
@ -349,13 +349,31 @@ HIDDEN bool codalleg_handler(TMask_field& f, KEY key)
return TRUE;
}
bool TClifo_application::change_config(const char* val, const char* old, const char* nuo)
{
bool init = FALSE;
const TFixed_string var(val);
if (var == "GesVen")
{
_gesven = *nuo > ' ';
init = TRUE;
}
else
if (var == "GsLbCn")
{
_lbcn = *nuo > ' ';
init = TRUE;
}
if (init) init_pages(*_msk);
return TRUE;
}
void TClifo_application::init_pages(TMask& m)
{
TConfig conf(CONFIG_DITTA, "cg");
_lbcn = conf.get_bool("GsLbCn");
_gesven = conf.get_bool("GesVen");
_rel->gestione_vendite(_gesven);
m.send_key(K_SHIFT + K_CTRL + (_lbcn ? 's' : 'h'), -5);
@ -369,7 +387,6 @@ void TClifo_application::init_pages(TMask& m)
void TClifo_application::init_query_mode(TMask& m)
{
init_pages(m);
if (_gesven)
reset_sheet();
@ -600,6 +617,11 @@ bool TClifo_application::user_create() // initvar e arrmask
TConfig config(CONFIG_STUDIO);
_savenew = !config.get_bool("Cg02SN");
TConfig conf(CONFIG_DITTA, "cg");
_lbcn = conf.get_bool("GsLbCn");
_gesven = conf.get_bool("GesVen");
init_pages(*_msk);
return TRUE;
}

View File

@ -34,7 +34,6 @@ int TClifoVI::read_indirizzi()
if (_gesven)
{
const TLocalisamfile& rind = lfile(LF_INDSP);
position_rels();
for (bool ok=is_first_match(LF_INDSP); ok; ok=next_match(LF_INDSP))
{
const int nriga=rind.get_int(IND_CODIND) -1;
@ -47,8 +46,11 @@ int TClifoVI::read_indirizzi()
int TClifoVI::read(TIsamop op, TReclock lockop, TDate& atdate)
{
int err=file().read(op,lockop,atdate);
if (err==NOERR) read_indirizzi();
int err = file().read(op,lockop,atdate);
position_rels();
if (err == NOERR)
read_indirizzi();
return err;
}
@ -89,8 +91,8 @@ int TClifoVI::registra(bool re, bool force)
// Put here gest_vend() discrimination
if (_gesven)
{
TLocalisamfile& v=lfile(LF_CFVEN);
err=write_rec(TRUE,v.curr(),v);
TLocalisamfile& v = lfile(LF_CFVEN);
err = write_rec(TRUE,v.curr(),v);
if (err!=NOERR) return err;
TLocalisamfile& rind=lfile(LF_INDSP);

View File

@ -48,6 +48,7 @@ BEGIN
COPY OUTPUT F_COD_CAUS
CHECKTYPE REQUIRED
KEY 2
WARNING "Descrizione assente"
HELP "Descrizione della causale"
MESSAGE COPY, F_DESCR2
END
@ -63,6 +64,7 @@ BEGIN
DISPLAY "Descrizione @50 " S0
OUTPUT F_TIPO_DOC CODTAB
HELP "Tipo documento"
WARNING "Tipo documento errato"
CHECKTYPE NORMAL
FLAGS "U"
ADD NONE

View File

@ -55,7 +55,6 @@ TMask* TPrimanota_application::load_mask(int n)
break;
case 2:
{
m->set_handler(F_CODREG, reg_handler);
m->set_handler(F_DATA74TER, data74ter_handler);
m->set_handler(F_PROTIVA, protiva_handler);
m->set_handler(F_CLIENTE, clifo_handler);
@ -198,18 +197,28 @@ bool TPrimanota_application::read_caus(const char* cod, int year)
if (iva != nessuna_iva)
{
const CheckType ct = sal ? CHECK_REQUIRED : CHECK_NORMAL;
m->efield(F_CODPAG).check_type(ct); // Cod. pag. obbligatorio
m->show(F_ANNORIF, sal);
m->efield(F_CODPAG).check_type(sal ? CHECK_REQUIRED : CHECK_NORMAL);// Cod. pag. obbligatorio
m->show(F_ANNORIF, sal); // Mostra/nasconde anno e riferimento partita
m->show(F_NUMRIF, sal);
if (sal)
const bool av = _causale.reg().agenzia_viaggi();
m->show(F_DATA74TER, av);
if (!av) m->reset(F_DATA74TER);
if (m->insert_mode())
{
TString16 val;
if (riferimento_partita())
val = m->get(F_NUMDOC);
else
val.format("%ld", _causale.reg().protocol());
m->set(F_NUMRIF, val);
const long protiva = _causale.reg().protocol() + 1;
m->set(F_PROTIVA, protiva); // Aggiorna protocollo IVA
if (sal)
{
TString16 val;
if (riferimento_partita())
val = m->get(F_NUMDOC);
else
val << protiva;
m->set(F_NUMRIF, val);
}
}
}
@ -411,9 +420,13 @@ const char* TPrimanota_application::get_next_key()
k.add(F_DATAREG); k.add(m.get(F_DATAREG)); // data operazione
k.add(F_DATACOMP); k.add(m.get(F_DATACOMP)); // competenza
k.add(F_DATADOC); k.add(m.get(F_DATADOC)); // documento
const long n = m.get_long(F_NUMDOC);
if (n > 0)
{ k.add(F_NUMDOC); k.add(n+1); } // incrementa numero documento
if (iva() == iva_vendite)
{
const long n = m.get_long(F_NUMDOC);
if (n > 0)
{ k.add(F_NUMDOC); k.add(n+1); } // incrementa numero documento
}
}
return strcpy(__tmp_string, k);
@ -432,12 +445,6 @@ void TPrimanota_application::init_insert_mode(TMask& m)
_saldi.set_anno_es(m.get_int(F_ANNOES));
_saldi.set_num_ulmov(m.get_long(F_NUMREG));
_saldi.set_data_ulmov((TDate)m.get(F_DATAREG));
if (_iva != nessuna_iva)
{
const long protiva = causale().reg().protocol();
m.set(F_PROTIVA, protiva+1);
}
}

View File

@ -1184,7 +1184,7 @@ bool TPrimanota_application::datareg_handler(TMask_field& f, KEY key)
if (m.query_mode())
{
const long numreg = m.get_long(F_NUMREG);
if (numreg > 0)
if (numreg > 0 && numreg <= app()._lastreg)
{
TLocalisamfile& mov = app().get_relation()->lfile();
mov.put(MOV_NUMREG, numreg);
@ -1201,6 +1201,7 @@ bool TPrimanota_application::datareg_handler(TMask_field& f, KEY key)
{
const bool ok = reg.read(codreg, dr.year());
if (!ok) return FALSE;
app().read_caus(NULL, 0);
if (app().iva() != nessuna_iva)
m.field(F_CODREG).on_hit();
}
@ -1284,20 +1285,6 @@ bool TPrimanota_application::data74ter_handler(TMask_field& f, KEY key)
return ok;
}
// Handler of the F_CODREG field on the modify mask
// Certified 99%
bool TPrimanota_application::reg_handler(TMask_field& f, KEY key)
{
if (key == K_TAB)
{
TRegistro& reg = app().causale().reg();
const bool av = reg.agenzia_viaggi();
f.mask().show(F_DATA74TER, av);
if (!av) f.mask().reset(F_DATA74TER);
}
return TRUE;
}
bool TPrimanota_application::occas_code_handler(TMask_field& f, KEY key)
{
if (key == K_TAB)

View File

@ -59,7 +59,6 @@ class TPrimanota_application : public TRelation_application
static bool datareg_handler(TMask_field& f, KEY key);
static bool datacomp_handler(TMask_field& f, KEY key);
static bool data74ter_handler(TMask_field& f, KEY key);
static bool reg_handler(TMask_field& f, KEY key);
static bool protiva_handler(TMask_field& f, KEY key);
static bool clifo_handler(TMask_field& f, KEY key);
static bool totale_handler(TMask_field& f, KEY key);