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:
parent
2fd3e79e44
commit
85c3d2d34e
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user