Corretti errori sul codice allegato dei clifo

Aggiunte descrizioni nella maschera causali


git-svn-id: svn://10.65.10.50/trunk@809 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1995-01-02 09:31:23 +00:00
parent f62c380327
commit 6256d39aa6
7 changed files with 140 additions and 83 deletions

View File

@ -225,10 +225,9 @@ HIDDEN bool autoexit_handler(TMask_field& f, KEY key)
bool TClifo_application::tipo_handler(TMask_field& f, KEY key)
{
TMask& m = f.mask();
const bool fis = f.get() == "F";
m.send_key(K_SHIFT + K_CTRL + (app()._lbcn && fis ? 's' : 'h'), -5);
m.show(-5, app()._lbcn && fis);
return TRUE;
}
@ -259,7 +258,7 @@ bool TClifo_application::percip_handler(TMask_field& f, KEY key)
if (p.empty()) m.set(F_PAIV, anag.get(ANA_PAIV));
if (m.get(F_TIPOAPER) == "F")
{
m.send_key(K_SHIFT + K_CTRL + (app()._lbcn ? 's' : 'h'), -5);
m.show(-5, app()._lbcn);
if (app()._lbcn)
{
TLocalisamfile fis(LF_ANAGFIS);
@ -288,10 +287,11 @@ HIDDEN bool alleg_handler(TMask_field& f, KEY key)
{
if (f.to_check(key))
{
const int tipoall = atoi(f.get());
TMask& m = f.mask();
const int tipoall = atoi(f.get());
if (tipoall == 0 || tipoall == 4) m.enable(F_CODALLEG);
if (tipoall == 0 || tipoall == 1 || tipoall == 4)
m.enable(F_CODALLEG);
else
{
m.disable(F_CODALLEG);
@ -304,16 +304,17 @@ HIDDEN bool alleg_handler(TMask_field& f, KEY key)
}
HIDDEN bool occas_handler(TMask_field& f, KEY key)
{
if (f.to_check(key))
{
const bool occas = f.get().not_empty();
TMask& m = f.mask();
if (occas) m.set(F_ALLEG, "2");
if (occas)
m.set(F_ALLEG, "2");
else
if (m.get_int(F_ALLEG) == 2) m.set(F_ALLEG, " ");
if (m.get_int(F_ALLEG) == 2)
m.reset(F_ALLEG);
}
return TRUE;
}
@ -346,7 +347,7 @@ HIDDEN bool codalleg_handler(TMask_field& f, KEY key)
return error_box("Codice non utilizzabile: privo di partita IVA");
const TString& tipoall = clifo.get(CLI_ALLEG);
if (tipoall.not_empty() && tipoall != "4")
if (tipoall.not_empty() && tipoall != "1" && tipoall != "4")
return error_box("Codice non utilizzabile: codice inserimento allegato non corretto");
}
}
@ -366,7 +367,7 @@ void TClifo_application::init_pages(TMask& m)
{
_rel->gestione_vendite(_gesven);
m.send_key(K_SHIFT + K_CTRL + (_lbcn ? 's' : 'h'), -5);
m.show(-5, _lbcn);
// Se non e' abilitata la gestione delle vendite disabilita le
// maschere dalla 4 in poi

View File

@ -270,13 +270,8 @@ void TCaus_app::causale_inc_pag()
************/
bool TCaus_app::m770_hndl (TMask_field& f, KEY k)
{
if (k == K_TAB)
{
TMask& m = f.mask();
const int m770 = m.get_int(F_M_770);
if (m770 == 6)
app().fill_sheet(m);
}
if (k == K_TAB && f.focusdirty())
app().fill_sheet(f.mask());
return TRUE;
}
@ -287,14 +282,16 @@ bool TCaus_app::tipodoc_hndl (TMask_field& f, KEY k)
if (k == K_TAB)
{
const TString16 val(f.get());
TEdit_field& field_reg = f.mask().efield(F_COD_REG);
TMask& m = f.mask();
TEdit_field& field_reg = m.efield(F_COD_REG);
if (val.not_empty() && val != "IN" && val != "PG" && val != "AN")
{
f.mask().hide(F_TIPO_MOV_2);
if (app().saldaconto()) f.mask().show(F_TIPO_MOV_1);
m.hide(F_TIPO_MOV_2);
if (app().saldaconto()) m.show(F_TIPO_MOV_1);
field_reg.enable();
m.enable(F_DES_REG);
field_reg.check_type(CHECK_REQUIRED);
TTable tabtpd("%TPD");
@ -334,9 +331,12 @@ bool TCaus_app::tipodoc_hndl (TMask_field& f, KEY k)
{
field_reg.reset();
field_reg.disable();
f.mask().hide(F_TIPO_MOV_1);
m.reset(F_DES_REG);
m.disable(F_DES_REG);
m.hide(F_TIPO_MOV_1);
if (app().saldaconto())
f.mask().show(F_TIPO_MOV_2);
m.show(F_TIPO_MOV_2);
}
// Ma davvero esiste il registro ?
@ -350,7 +350,7 @@ bool TCaus_app::tipodoc_hndl (TMask_field& f, KEY k)
}
app().mostra_campi(f);
app().fill_sheet(f.mask());
app().fill_sheet(m);
}
return TRUE;
}
@ -717,23 +717,21 @@ void TCaus_app::read_rcaus(TMask& m)
bool TCaus_app::fill_sheet(TMask& m)
{
TLocalisamfile& caus = _rel->lfile();
TString16 tpd, codreg;
int tpm, m770, tpr;
const TString16 codreg = m.get(F_COD_REG);
const TString16 tpd = m.get(F_TIPO_DOC);
const int tpm = m.get_int(F_TIPO_MOV);
const int m770 = m.get_int(F_M_770);
int tpr = m.get_int(F_TIPO_REG);
if (!m.running())
{
TString16 chiave; chiave << anno_iva() << codreg;
TTable reg("REG");
reg.put("CODTAB", chiave);
if (reg.read() == NOERR)
tpr = reg.get_int("I0");
}
codreg = m.field(F_COD_REG).get();
tpd = m.field(F_TIPO_DOC).get();
tpm = m.get_int(F_TIPO_MOV);
m770 = m.get_int(F_M_770);
TString16 chiave; chiave << anno_iva() << codreg;
TTable reg("REG");
reg.put("CODTAB", chiave);
if (reg.read() == NOERR)
tpr = reg.get_int("I0");
else
tpr = 0;
// carico le descrizioni fisse nell'array Righe_rcaus
compila_array(tpd,tpm,tpr,m770);

View File

@ -28,6 +28,8 @@
#define F_CORRISP 125
#define F_COD_CAUS2 126
#define F_DESCR2 127
#define F_DES_DOC 128
#define F_DES_REG 129
#define SS_SEZIONE 102
#define SS_TIPOCF 103

View File

@ -39,7 +39,7 @@ END
STRING F_DESCR 50
BEGIN
PROMPT 15 1 "Descriz. "
PROMPT 16 1 "Descriz."
FIELD LF_CAUSALI->DESCR
USE LF_CAUSALI KEY 2
INPUT DESCR F_DESCR
@ -61,14 +61,15 @@ END
STRING F_TIPO_DOC 2
BEGIN
PROMPT 2 4 "Tipo doc. "
PROMPT 2 3 "Tipo documento "
HELP "Tipo di documento collegato alla causale"
FIELD LF_CAUSALI->TIPODOC
USE %TPD
INPUT CODTAB F_TIPO_DOC
DISPLAY "Tipo " CODTAB
DISPLAY "Descrizione @50 " S0
DISPLAY "Descrizione @50" S0
OUTPUT F_TIPO_DOC CODTAB
OUTPUT F_DES_DOC S0
HELP "Tipo documento"
WARNING "Tipo documento errato"
CHECKTYPE NORMAL
@ -76,9 +77,24 @@ BEGIN
ADD NONE
END
STRING F_DES_DOC 50
BEGIN
PROMPT 24 3 ""
HELP "Tipo di documento collegato alla causale"
USE %TPD KEY 2
INPUT S0 F_DES_DOC
DISPLAY "Descrizione @50" S0
DISPLAY "Tipo " CODTAB
COPY OUTPUT F_TIPO_DOC
HELP "Tipo documento"
WARNING "Tipo documento errato"
CHECKTYPE NORMAL
ADD NONE
END
STRING F_COD_REG 3
BEGIN
PROMPT 23 4 "Cod. reg. "
PROMPT 2 4 "Cod. registro "
HELP "Codice registro collegato alla causale"
FIELD LF_CAUSALI->REG
USE REG
@ -92,15 +108,33 @@ BEGIN
OUTPUT F_COD_REG CODTAB[5,7]
OUTPUT F_TIPO_REG I0
OUTPUT F_CORRISP B0
OUTPUT F_DES_REG S0
WARNING "Registro assente o non compatibile col tipo documento"
CHECKTYPE NORMAL
FLAGS "DUZ"
END
STRING F_DES_REG 50
BEGIN
PROMPT 24 4 ""
HELP "Codice registro collegato alla causale"
USE REG KEY 2
INPUT S0 F_DES_REG
DISPLAY "Descrizione @50" S0
DISPLAY "Anno" CODTAB[1,4]
DISPLAY "Codice registro " CODTAB[5,7]
DISPLAY "Tipo" I0
DISPLAY "Corrispettivi" B0
COPY OUTPUT F_COD_REG
CHECKTYPE NORMAL
FLAGS "D"
END
// Questo rimane quasi sempre nascosto
STRING F_TIPO_MOV 2
BEGIN
PROMPT 68 4 ""
PROMPT 2 5 ""
FIELD TIPOMOV
FLAGS "H"
END
@ -108,7 +142,7 @@ END
// Viene mostrato questo se TPD non vuoto e diverso da IN AN PG
LISTBOX F_TIPO_MOV_1 1 20
BEGIN
PROMPT 44 4 "Tipo mov. "
PROMPT 2 5 "Tipo movimento "
HELP "Tipo di movimento generato dalla causale"
FIELD TIPOMOV
HELP "Tipo movimento"
@ -121,7 +155,7 @@ END
// Viene mostrato questo se TPD vuoto o uguale a IN AN PG
LISTBOX F_TIPO_MOV_2 1 20
BEGIN
PROMPT 44 4 "Tipo mov. "
PROMPT 2 5 "Tipo movimento "
FIELD LF_CAUSALI->TIPOMOV
HELP "Tipo di movimento generato dalla causale"
ITEM " |Nessuno" MESSAGE COPY,F_TIPO_MOV
@ -133,7 +167,7 @@ END
LISTBOX F_M_770 1 48
BEGIN
PROMPT 2 5 "Collegamento Mod.770 "
PROMPT 2 6 "Collegamento Mod.770 "
FIELD LF_CAUSALI->M770
HELP "Tipo di collegamento Mod.770"
ITEM " |Nessuno"

View File

@ -40,7 +40,6 @@
#define CHK_RRMECO 139
#define FLD_RRCCRA 140
#define FLD_RRCCRI 141
#define CHK_GESVEN 142
#define FLD_DCOCAAP 143
#define FLD_DCOCACH 144
@ -53,3 +52,4 @@
#define FLD_DCSPECP 151
#define FLD_DCSUECE 152
#define FLD_DCSPECE 153
#define FLD_DESLIN 154

View File

@ -156,16 +156,30 @@ END
STRING FLD_CODLIN 1
BEGIN
PROMPT 1 3 "Codice lingua "
HELP "Indicare la lingua utilizzata"
HELP "Lingua utilizzata"
USE %LNG
INPUT CODTAB FLD_CODLIN
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT FLD_CODLIN CODTAB
INPUT CODTAB FLD_CODLIN
OUTPUT FLD_DESLIN S0
CHECKTYPE NORMAL
FIELD CodLin
END
STRING FLD_DESLIN 50 35
BEGIN
PROMPT 40 3 ""
HELP "Lingua utilizzata"
USE %LNG KEY 2
INPUT S0 FLD_DESLIN
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT FLD_CODLIN
CHECKTYPE NORMAL
END
STRING FLD_COCACH 3
BEGIN
PROMPT 1 4 "Codice causale chiusura "
@ -191,7 +205,7 @@ BEGIN
DISPLAY "Descrizione@50" DESCR
DISPLAY "Codice" CODCAUS
COPY OUTPUT FLD_COCACH
CHECKTYPE NORMAL
CHECKTYPE NORMAL
ADD RUN cg0 -4
END
@ -218,7 +232,7 @@ BEGIN
INPUT DESCR FLD_DCOCAAP
COPY DISPLAY FLD_DCOCACH
COPY OUTPUT FLD_COCAAP
CHECKTYPE NORMAL
CHECKTYPE NORMAL
ADD RUN cg0 -4
END
@ -656,7 +670,7 @@ BEGIN
INPUT DESCR FLD_DRRCCRA
COPY DISPLAY FLD_DCOCACH
COPY OUTPUT FLD_RRCCRA
CHECKTYPE NORMAL
CHECKTYPE NORMAL
ADD RUN cg0 -4
END
@ -683,7 +697,7 @@ BEGIN
INPUT DESCR FLD_DRRCCRI
COPY DISPLAY FLD_DCOCACH
COPY OUTPUT FLD_RRCCRI
CHECKTYPE NORMAL
CHECKTYPE NORMAL
ADD RUN cg0 -4
END

View File

@ -212,9 +212,11 @@ bool TSaldibrowse_application::fai_filtro()
bool TSaldibrowse_application::sottoc_handler(TMask_field& f, KEY key)
{
bool ok = TRUE;
if (key == K_TAB)
{
bool stop = FALSE;
TMask& m = f.mask();
int gruppo = m.get_int(F_GRUPPO);
int conto = m.get_int(F_CONTO);
@ -223,17 +225,19 @@ bool TSaldibrowse_application::sottoc_handler(TMask_field& f, KEY key)
const short id = f.dlg();
TLocalisamfile& pconti = app().get_relation()->lfile();
if (sottoconto > 0)
if (sottoconto != 0)
{
if (id == F_SOTTOCONTO)
{
if (gruppo == 0 || conto == 0)
return TRUE;
pconti.setkey(1);
pconti.put(PCN_GRUPPO, gruppo) ;
pconti.put(PCN_CONTO, conto);
pconti.put(PCN_SOTTOCONTO, sottoconto);
ok = pconti.read(_isequal, _nolock) == NOERR;
if (gruppo != 0 && conto != 0)
{
pconti.setkey(1);
pconti.put(PCN_GRUPPO, gruppo) ;
pconti.put(PCN_CONTO, conto);
pconti.put(PCN_SOTTOCONTO, sottoconto);
ok = stop = pconti.read(_isequal, _nolock) == NOERR;
}
else ok = FALSE;
}
else
{
@ -242,30 +246,32 @@ bool TSaldibrowse_application::sottoc_handler(TMask_field& f, KEY key)
clifo.setkey(1);
clifo.put(CLI_TIPOCF,tipo);
clifo.put(CLI_CODCF, sottoconto) ;
ok = clifo.read(_isequal, _nolock) == NOERR;
ok = stop = clifo.read(_isequal, _nolock) == NOERR;
if (ok && (gruppo == 0 || conto == 0))
{
m.set(F_GRUPPO, gruppo = clifo.get_int("GRUPPO"));
m.set(F_CONTO, conto = clifo.get_int("CONTO"));
ok = gruppo != 0 && conto != 0;
ok = stop = gruppo != 0 && conto != 0;
}
}
}
else
{
pconti.setkey(1);
pconti.zero();
pconti.put(PCN_GRUPPO, gruppo) ;
pconti.put(PCN_CONTO, conto);
ok = pconti.read(_isequal, _nolock) == NOERR;
if (ok)
if (gruppo != 0 && conto != 0)
{
m.set(id, pconti.get(PCN_DESCR));
m.disable(id);
}
else m.reset(id);
}
if (ok) m.stop_run(K_AUTO_ENTER);
pconti.setkey(1);
pconti.zero();
pconti.put(PCN_GRUPPO, gruppo) ;
pconti.put(PCN_CONTO, conto);
ok = stop= pconti.read(_isequal, _nolock) == NOERR;
if (ok)
{
m.set(id, pconti.get(PCN_DESCR));
m.disable(id);
}
else m.reset(id);
}
if (stop) m.stop_run(K_AUTO_ENTER);
if (!ok) error_box("Conto errato o incompleto");
}
return ok;
@ -273,15 +279,17 @@ bool TSaldibrowse_application::sottoc_handler(TMask_field& f, KEY key)
bool TSaldibrowse_application::user_create()
{
_clifo = new TLocalisamfile(LF_CLIFO);
_rel = new TRelation(LF_PCON);
_rel1 = new TRelation(LF_SALDI);
_cur = new TCursor(_rel1, "", 2);
_msk = new TMask("cg5200a");
_msk->set_handler(F_SOTTOCONTO, sottoc_handler);
_msk->set_handler(F_SOTTOC_CLIENTE, sottoc_handler);
_msk->set_handler(F_SOTTOC_FORN, sottoc_handler);
ss().disable();
_clifo = new TLocalisamfile(LF_CLIFO);
_rel = new TRelation(LF_PCON);
_rel1 = new TRelation(LF_SALDI);
_cur = new TCursor(_rel1, "", 2);
set_search_field(F_GRUPPO);
return TRUE;