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_mode(TMask& m);
|
||||||
virtual void init_query_insert_mode(TMask& m) {init_query_mode(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_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_notify(int r, KEY key);
|
||||||
static bool indsp_handler(TMask_field& f, 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;
|
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)
|
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);
|
_rel->gestione_vendite(_gesven);
|
||||||
|
|
||||||
m.send_key(K_SHIFT + K_CTRL + (_lbcn ? 's' : 'h'), -5);
|
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)
|
void TClifo_application::init_query_mode(TMask& m)
|
||||||
|
|
||||||
{
|
{
|
||||||
init_pages(m);
|
|
||||||
if (_gesven)
|
if (_gesven)
|
||||||
reset_sheet();
|
reset_sheet();
|
||||||
|
|
||||||
@ -600,6 +617,11 @@ bool TClifo_application::user_create() // initvar e arrmask
|
|||||||
|
|
||||||
TConfig config(CONFIG_STUDIO);
|
TConfig config(CONFIG_STUDIO);
|
||||||
_savenew = !config.get_bool("Cg02SN");
|
_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;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,6 @@ int TClifoVI::read_indirizzi()
|
|||||||
if (_gesven)
|
if (_gesven)
|
||||||
{
|
{
|
||||||
const TLocalisamfile& rind = lfile(LF_INDSP);
|
const TLocalisamfile& rind = lfile(LF_INDSP);
|
||||||
position_rels();
|
|
||||||
for (bool ok=is_first_match(LF_INDSP); ok; ok=next_match(LF_INDSP))
|
for (bool ok=is_first_match(LF_INDSP); ok; ok=next_match(LF_INDSP))
|
||||||
{
|
{
|
||||||
const int nriga=rind.get_int(IND_CODIND) -1;
|
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 TClifoVI::read(TIsamop op, TReclock lockop, TDate& atdate)
|
||||||
{
|
{
|
||||||
int err=file().read(op,lockop,atdate);
|
int err = file().read(op,lockop,atdate);
|
||||||
if (err==NOERR) read_indirizzi();
|
position_rels();
|
||||||
|
|
||||||
|
if (err == NOERR)
|
||||||
|
read_indirizzi();
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,8 +91,8 @@ int TClifoVI::registra(bool re, bool force)
|
|||||||
// Put here gest_vend() discrimination
|
// Put here gest_vend() discrimination
|
||||||
if (_gesven)
|
if (_gesven)
|
||||||
{
|
{
|
||||||
TLocalisamfile& v=lfile(LF_CFVEN);
|
TLocalisamfile& v = lfile(LF_CFVEN);
|
||||||
err=write_rec(TRUE,v.curr(),v);
|
err = write_rec(TRUE,v.curr(),v);
|
||||||
if (err!=NOERR) return err;
|
if (err!=NOERR) return err;
|
||||||
|
|
||||||
TLocalisamfile& rind=lfile(LF_INDSP);
|
TLocalisamfile& rind=lfile(LF_INDSP);
|
||||||
|
@ -48,6 +48,7 @@ BEGIN
|
|||||||
COPY OUTPUT F_COD_CAUS
|
COPY OUTPUT F_COD_CAUS
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
KEY 2
|
KEY 2
|
||||||
|
WARNING "Descrizione assente"
|
||||||
HELP "Descrizione della causale"
|
HELP "Descrizione della causale"
|
||||||
MESSAGE COPY, F_DESCR2
|
MESSAGE COPY, F_DESCR2
|
||||||
END
|
END
|
||||||
@ -63,6 +64,7 @@ BEGIN
|
|||||||
DISPLAY "Descrizione @50 " S0
|
DISPLAY "Descrizione @50 " S0
|
||||||
OUTPUT F_TIPO_DOC CODTAB
|
OUTPUT F_TIPO_DOC CODTAB
|
||||||
HELP "Tipo documento"
|
HELP "Tipo documento"
|
||||||
|
WARNING "Tipo documento errato"
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
ADD NONE
|
ADD NONE
|
||||||
|
@ -55,7 +55,6 @@ TMask* TPrimanota_application::load_mask(int n)
|
|||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
{
|
{
|
||||||
m->set_handler(F_CODREG, reg_handler);
|
|
||||||
m->set_handler(F_DATA74TER, data74ter_handler);
|
m->set_handler(F_DATA74TER, data74ter_handler);
|
||||||
m->set_handler(F_PROTIVA, protiva_handler);
|
m->set_handler(F_PROTIVA, protiva_handler);
|
||||||
m->set_handler(F_CLIENTE, clifo_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)
|
if (iva != nessuna_iva)
|
||||||
{
|
{
|
||||||
const CheckType ct = sal ? CHECK_REQUIRED : CHECK_NORMAL;
|
m->efield(F_CODPAG).check_type(sal ? CHECK_REQUIRED : CHECK_NORMAL);// Cod. pag. obbligatorio
|
||||||
m->efield(F_CODPAG).check_type(ct); // Cod. pag. obbligatorio
|
m->show(F_ANNORIF, sal); // Mostra/nasconde anno e riferimento partita
|
||||||
m->show(F_ANNORIF, sal);
|
|
||||||
m->show(F_NUMRIF, sal);
|
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;
|
const long protiva = _causale.reg().protocol() + 1;
|
||||||
if (riferimento_partita())
|
m->set(F_PROTIVA, protiva); // Aggiorna protocollo IVA
|
||||||
val = m->get(F_NUMDOC);
|
|
||||||
else
|
if (sal)
|
||||||
val.format("%ld", _causale.reg().protocol());
|
{
|
||||||
m->set(F_NUMRIF, val);
|
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_DATAREG); k.add(m.get(F_DATAREG)); // data operazione
|
||||||
k.add(F_DATACOMP); k.add(m.get(F_DATACOMP)); // competenza
|
k.add(F_DATACOMP); k.add(m.get(F_DATACOMP)); // competenza
|
||||||
k.add(F_DATADOC); k.add(m.get(F_DATADOC)); // documento
|
k.add(F_DATADOC); k.add(m.get(F_DATADOC)); // documento
|
||||||
const long n = m.get_long(F_NUMDOC);
|
|
||||||
if (n > 0)
|
if (iva() == iva_vendite)
|
||||||
{ k.add(F_NUMDOC); k.add(n+1); } // incrementa numero documento
|
{
|
||||||
|
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);
|
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_anno_es(m.get_int(F_ANNOES));
|
||||||
_saldi.set_num_ulmov(m.get_long(F_NUMREG));
|
_saldi.set_num_ulmov(m.get_long(F_NUMREG));
|
||||||
_saldi.set_data_ulmov((TDate)m.get(F_DATAREG));
|
_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())
|
if (m.query_mode())
|
||||||
{
|
{
|
||||||
const long numreg = m.get_long(F_NUMREG);
|
const long numreg = m.get_long(F_NUMREG);
|
||||||
if (numreg > 0)
|
if (numreg > 0 && numreg <= app()._lastreg)
|
||||||
{
|
{
|
||||||
TLocalisamfile& mov = app().get_relation()->lfile();
|
TLocalisamfile& mov = app().get_relation()->lfile();
|
||||||
mov.put(MOV_NUMREG, numreg);
|
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());
|
const bool ok = reg.read(codreg, dr.year());
|
||||||
if (!ok) return FALSE;
|
if (!ok) return FALSE;
|
||||||
|
app().read_caus(NULL, 0);
|
||||||
if (app().iva() != nessuna_iva)
|
if (app().iva() != nessuna_iva)
|
||||||
m.field(F_CODREG).on_hit();
|
m.field(F_CODREG).on_hit();
|
||||||
}
|
}
|
||||||
@ -1284,20 +1285,6 @@ bool TPrimanota_application::data74ter_handler(TMask_field& f, KEY key)
|
|||||||
return ok;
|
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)
|
bool TPrimanota_application::occas_code_handler(TMask_field& f, KEY key)
|
||||||
{
|
{
|
||||||
if (key == K_TAB)
|
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 datareg_handler(TMask_field& f, KEY key);
|
||||||
static bool datacomp_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 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 protiva_handler(TMask_field& f, KEY key);
|
||||||
static bool clifo_handler(TMask_field& f, KEY key);
|
static bool clifo_handler(TMask_field& f, KEY key);
|
||||||
static bool totale_handler(TMask_field& f, KEY key);
|
static bool totale_handler(TMask_field& f, KEY key);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user