Corretta gestione valuta in prima nota e gestione dare/avere nelle causali
git-svn-id: svn://10.65.10.50/trunk@546 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
d87826888b
commit
ab9480626f
694
cg/cg0500.cpp
694
cg/cg0500.cpp
File diff suppressed because it is too large
Load Diff
@ -45,6 +45,7 @@ BEGIN
|
|||||||
DISPLAY "Registro" REG
|
DISPLAY "Registro" REG
|
||||||
DISPLAY "Movimento" TIPOMOV
|
DISPLAY "Movimento" TIPOMOV
|
||||||
COPY OUTPUT F_COD_CAUS
|
COPY OUTPUT F_COD_CAUS
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
KEY 2
|
KEY 2
|
||||||
HELP "Descrizione della causale"
|
HELP "Descrizione della causale"
|
||||||
MESSAGE COPY, F_DESCR2
|
MESSAGE COPY, F_DESCR2
|
||||||
@ -127,12 +128,12 @@ BEGIN
|
|||||||
FIELD LF_CAUSALI->M770
|
FIELD LF_CAUSALI->M770
|
||||||
HELP "Inserire il tipo di collegamento Mod.770"
|
HELP "Inserire il tipo di collegamento Mod.770"
|
||||||
ITEM " |Nessuno"
|
ITEM " |Nessuno"
|
||||||
ITEM "1|Ricevuta e/o pagamento fattura percipipiente"
|
ITEM "1|Ricevuta e/o pagamento fattura percipiente"
|
||||||
ITEM "2|Versamento ritenute percipiente"
|
ITEM "2|Versamento ritenute percipiente"
|
||||||
ITEM "3|Versamento ritenute dipendente"
|
ITEM "3|Versamento ritenute dipendente"
|
||||||
ITEM "4|Versamento contributi dipendente"
|
ITEM "4|Versamento contributi dipendente"
|
||||||
ITEM "5|Compensi non soggetti"
|
ITEM "5|Compensi non soggetti"
|
||||||
ITEM "6|Ritenute per operazioni occasionali"
|
ITEM "6|Ritenute per prestazioni occasionali"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_ANNOES 4
|
NUMBER F_ANNOES 4
|
||||||
|
@ -138,6 +138,7 @@ BEGIN
|
|||||||
ITEM "A|Avere"
|
ITEM "A|Avere"
|
||||||
FIELD LF_RCAUSALI->SEZIONE
|
FIELD LF_RCAUSALI->SEZIONE
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
// Descrizione normale
|
// Descrizione normale
|
||||||
@ -214,6 +215,7 @@ STRING 109 50
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 8 ""
|
PROMPT 1 8 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_OK 9 2
|
BUTTON DLG_OK 9 2
|
||||||
|
@ -78,6 +78,7 @@ TMask* TPrimanota_application::load_mask(int n)
|
|||||||
ism.set_handler(209, sheet_clifo_handler);
|
ism.set_handler(209, sheet_clifo_handler);
|
||||||
ism.set_handler(309, sheet_clifo_handler);
|
ism.set_handler(309, sheet_clifo_handler);
|
||||||
}
|
}
|
||||||
|
_iva_showed = FALSE;
|
||||||
case 1:
|
case 1:
|
||||||
{
|
{
|
||||||
m->set_handler(F_DATAREG, datareg_handler);
|
m->set_handler(F_DATAREG, datareg_handler);
|
||||||
@ -85,6 +86,7 @@ TMask* TPrimanota_application::load_mask(int n)
|
|||||||
m->set_handler(F_DESCR, descr_handler);
|
m->set_handler(F_DESCR, descr_handler);
|
||||||
m->set_handler(F_CODCAUS, caus_modify_handler);
|
m->set_handler(F_CODCAUS, caus_modify_handler);
|
||||||
m->set_handler(F_SHEETCG, cg_handler);
|
m->set_handler(F_SHEETCG, cg_handler);
|
||||||
|
m->set_handler(F_CAMBIO, cambio_handler);
|
||||||
m->set_handler(F_VISVAL, visval_handler);
|
m->set_handler(F_VISVAL, visval_handler);
|
||||||
|
|
||||||
TSheet_field& cg = (TSheet_field&)m->field(F_SHEETCG);
|
TSheet_field& cg = (TSheet_field&)m->field(F_SHEETCG);
|
||||||
@ -225,13 +227,14 @@ bool TPrimanota_application::changing_mask(int mode)
|
|||||||
{
|
{
|
||||||
const bool flag = _mode != MODE_QUERY;
|
const bool flag = _mode != MODE_QUERY;
|
||||||
|
|
||||||
if (flag && _iva != nessuna_iva)
|
if (flag && _iva != nessuna_iva && !_iva_showed)
|
||||||
{
|
{
|
||||||
WINDOW w = ivas().parent();
|
WINDOW w = ivas().parent();
|
||||||
show_window(w, TRUE);
|
show_window(w, TRUE);
|
||||||
set_front_window(w);
|
set_front_window(w);
|
||||||
process_events();
|
process_events();
|
||||||
show_window(w, FALSE);
|
show_window(w, FALSE);
|
||||||
|
_iva_showed = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return flag;
|
return flag;
|
||||||
@ -290,6 +293,7 @@ void TPrimanota_application::init_mask(TMask& m)
|
|||||||
|
|
||||||
const bool intra = _causale.intra();
|
const bool intra = _causale.intra();
|
||||||
const bool valintra = _causale.valintra();
|
const bool valintra = _causale.valintra();
|
||||||
|
const bool corrisp = _causale.corrispettivi();
|
||||||
|
|
||||||
if (_iva != nessuna_iva)
|
if (_iva != nessuna_iva)
|
||||||
{
|
{
|
||||||
@ -302,24 +306,28 @@ void TPrimanota_application::init_mask(TMask& m)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
forg = 'h';
|
forg = 'h';
|
||||||
clig = causale().corrispettivi() ? 'h' : 's';
|
clig = corrisp ? 'h' : 's';
|
||||||
}
|
}
|
||||||
m.send_key(K_SHIFT+K_CTRL+clig, -1); // group 1 (clienti)
|
m.send_key(K_SHIFT+K_CTRL+clig, -1); // GROUP 1 (clienti)
|
||||||
m.send_key(K_SHIFT+K_CTRL+forg, -2); // group 2 (fornitori)
|
m.send_key(K_SHIFT+K_CTRL+forg, -2); // GROUP 2 (fornitori)
|
||||||
|
if (corrisp) m.hide(F_STATOPAIV);
|
||||||
|
|
||||||
m.show(F_CORRLIRE, intra);
|
m.show(F_CORRLIRE, intra);
|
||||||
|
|
||||||
const bool corrval = intra && _causale.valintra();
|
const bool corrval = intra && valintra;
|
||||||
m.show(F_CORRVALUTA, corrval);
|
m.show(F_CORRVALUTA, corrval);
|
||||||
|
|
||||||
m.show(F_CODIVA, m.mode() == MODE_INS);
|
m.show(F_CODIVA, m.mode() == MODE_INS);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Show/Hide campi valuta: F_VALUTA, F_CAMBIO, F_VISVAL (GROUP 3)
|
// Show/Hide campi valuta: F_VALUTA, F_CAMBIO, F_VISVAL (GROUP 3)
|
||||||
const bool valuta = _causale.valuta() || _causale.valintra();
|
const bool valuta = valintra || (_ges_val && _causale.valuta());
|
||||||
m.send_key(K_SHIFT+K_CTRL+(valuta ? 's' : 'h'), -3);
|
m.send_key(K_SHIFT+K_CTRL+(valuta ? 's' : 'h'), -3);
|
||||||
if (valuta)
|
if (valuta)
|
||||||
m.set(F_VISVAL, "X");
|
{
|
||||||
|
const bool ok = m.get(F_VALUTA).not_empty();
|
||||||
|
m.field(F_VISVAL).set(ok ? "X" : " ");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TPrimanota_application::init_query_mode(TMask& m)
|
void TPrimanota_application::init_query_mode(TMask& m)
|
||||||
@ -384,14 +392,6 @@ void TPrimanota_application::init_insert_mode(TMask& m)
|
|||||||
{
|
{
|
||||||
const long protiva = causale().reg().protocol();
|
const long protiva = causale().reg().protocol();
|
||||||
m.set(F_PROTIVA, protiva+1);
|
m.set(F_PROTIVA, protiva+1);
|
||||||
|
|
||||||
TMask_field& vv = m.field(F_VISVAL);
|
|
||||||
if (vv.active() && m.get(F_VALUTA).empty()) // Se e' un movimento in valuta
|
|
||||||
{
|
|
||||||
const bool ok = m.field(F_VALUTA).on_key(K_F9); // Richiedi valuta
|
|
||||||
vv.set(ok ? "X" : " ");
|
|
||||||
if (ok) vv.on_hit(); // Cambia decimali
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m.get(F_CODCAUS).empty()) return;
|
if (m.get(F_CODCAUS).empty()) return;
|
||||||
@ -475,20 +475,26 @@ int TPrimanota_application::read(TMask& m)
|
|||||||
{
|
{
|
||||||
m.autoload(_rel);
|
m.autoload(_rel);
|
||||||
|
|
||||||
|
cgs().reset();
|
||||||
|
|
||||||
if (_iva != nessuna_iva)
|
if (_iva != nessuna_iva)
|
||||||
{
|
{
|
||||||
|
ivas().reset();
|
||||||
|
|
||||||
const TString16 occode(_rel->lfile().get("OCFPI"));
|
const TString16 occode(_rel->lfile().get("OCFPI"));
|
||||||
occas_mask().set(O_CODICE, occode);
|
occas_mask().set(O_CODICE, occode);
|
||||||
|
|
||||||
const char clifo = toupper(m.get(F_CLIFO)[0]);
|
real cambio(_rel->lfile().get("CAMBIO"));
|
||||||
|
if (cambio < 1.0) cambio = 1.0;
|
||||||
|
m.set_exchange(FALSE, cambio);
|
||||||
|
|
||||||
|
const char clifo = toupper(m.get(F_CLIFO)[0]);
|
||||||
if (_iva == iva_acquisti && clifo == 'C')
|
if (_iva == iva_acquisti && clifo == 'C')
|
||||||
error_box("Registrazione di acquisto attribuita ad un cliente"); else
|
error_box("Registrazione di acquisto attribuita ad un cliente"); else
|
||||||
if (_iva == iva_vendite && clifo == 'F')
|
if (_iva == iva_vendite && clifo == 'F')
|
||||||
error_box("Registrazione di vendita attribuita ad un fornitore");
|
error_box("Registrazione di vendita attribuita ad un fornitore");
|
||||||
}
|
}
|
||||||
|
|
||||||
cgs().reset();
|
|
||||||
|
|
||||||
_saldi.reset(); // Azzera saldi
|
_saldi.reset(); // Azzera saldi
|
||||||
_saldi.set_movprovv(_rel->lfile().get_bool("PROVVIS"));
|
_saldi.set_movprovv(_rel->lfile().get_bool("PROVVIS"));
|
||||||
@ -543,8 +549,6 @@ int TPrimanota_application::read(TMask& m)
|
|||||||
m.set(F_SOLAIVA, solaiva ? "X" : " ");
|
m.set(F_SOLAIVA, solaiva ? "X" : " ");
|
||||||
m.field(F_SOLAIVA).on_hit();
|
m.field(F_SOLAIVA).on_hit();
|
||||||
|
|
||||||
ivas().reset();
|
|
||||||
|
|
||||||
const bool to_swap = test_swap(FALSE);
|
const bool to_swap = test_swap(FALSE);
|
||||||
if (to_swap)
|
if (to_swap)
|
||||||
{
|
{
|
||||||
@ -583,9 +587,6 @@ int TPrimanota_application::read(TMask& m)
|
|||||||
ivas().row(i) = riga;
|
ivas().row(i) = riga;
|
||||||
}
|
}
|
||||||
|
|
||||||
TMask_field& vv = m.field(F_VISVAL);
|
|
||||||
if (vv.active()) vv.on_hit();
|
|
||||||
|
|
||||||
return _rel->status();
|
return _rel->status();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -852,11 +853,13 @@ void TPrimanota_application::genera_incasso(const char* causimm)
|
|||||||
inc.lfile().put("REG", caus.reg().name()); // Registro
|
inc.lfile().put("REG", caus.reg().name()); // Registro
|
||||||
|
|
||||||
const int annoes = m.get_int(F_ANNOES);
|
const int annoes = m.get_int(F_ANNOES);
|
||||||
|
const TString16 datareg = m.get(F_DATAREG);
|
||||||
|
|
||||||
TRectype& r = inc.cg(0);
|
TRectype& r = inc.cg(0);
|
||||||
r.zero();
|
r.zero();
|
||||||
r.put("NUMREG", _lastreg);
|
r.put("NUMREG", _lastreg);
|
||||||
r.put("NUMRIG", 1);
|
r.put("NUMRIG", 1);
|
||||||
|
r.put("DATAREG", datareg);
|
||||||
r.put("ANNOES", annoes);
|
r.put("ANNOES", annoes);
|
||||||
r.put("SEZIONE", m.get(I_SEZIONE1));
|
r.put("SEZIONE", m.get(I_SEZIONE1));
|
||||||
r.put("IMPORTO", m.get(F_TOTALE));
|
r.put("IMPORTO", m.get(F_TOTALE));
|
||||||
@ -891,6 +894,7 @@ void TPrimanota_application::genera_incasso(const char* causimm)
|
|||||||
r.put("IMPORTO", imp);
|
r.put("IMPORTO", imp);
|
||||||
r.put("NUMREG", _lastreg);
|
r.put("NUMREG", _lastreg);
|
||||||
r.put("NUMRIG", i);
|
r.put("NUMRIG", i);
|
||||||
|
r.put("DATAREG", datareg);
|
||||||
r.put("ANNOES", annoes);
|
r.put("ANNOES", annoes);
|
||||||
r.put("SEZIONE", m.get(sid));
|
r.put("SEZIONE", m.get(sid));
|
||||||
r.put("TIPOC", ' ');
|
r.put("TIPOC", ' ');
|
||||||
|
166
cg/cg2100c.uml
166
cg/cg2100c.uml
@ -124,6 +124,7 @@ BEGIN
|
|||||||
OUTPUT F_DESCAGG CODTAB
|
OUTPUT F_DESCAGG CODTAB
|
||||||
OUTPUT F_DESCR S0
|
OUTPUT F_DESCR S0
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
|
WARNING "Descrizione assente"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESCR 50
|
STRING F_DESCR 50
|
||||||
@ -234,7 +235,6 @@ BEGIN
|
|||||||
OUTPUT F_CONTORIC CONTORIC
|
OUTPUT F_CONTORIC CONTORIC
|
||||||
OUTPUT F_SOTTOCONTORIC SOTTOCRIC
|
OUTPUT F_SOTTOCONTORIC SOTTOCRIC
|
||||||
OUTPUT F_CODPAG CODPAG
|
OUTPUT F_CODPAG CODPAG
|
||||||
OUTPUT F_VALUTA CODVAL
|
|
||||||
OUTPUT F_STATOPAIV STATOPAIV
|
OUTPUT F_STATOPAIV STATOPAIV
|
||||||
OUTPUT F_PIVACLIENTE PAIV
|
OUTPUT F_PIVACLIENTE PAIV
|
||||||
OUTPUT F_OCCASIONALE OCCAS
|
OUTPUT F_OCCASIONALE OCCAS
|
||||||
@ -265,7 +265,6 @@ BEGIN
|
|||||||
OUTPUT F_SOTTOCONTORIC SOTTOCRIC
|
OUTPUT F_SOTTOCONTORIC SOTTOCRIC
|
||||||
OUTPUT F_OCCASIONALE OCCAS
|
OUTPUT F_OCCASIONALE OCCAS
|
||||||
OUTPUT F_CODPAG CODPAG
|
OUTPUT F_CODPAG CODPAG
|
||||||
OUTPUT F_VALUTA CODVAL
|
|
||||||
OUTPUT F_STATOPAIV STATOPAIV
|
OUTPUT F_STATOPAIV STATOPAIV
|
||||||
OUTPUT F_PIVAFORNITORE PAIV
|
OUTPUT F_PIVAFORNITORE PAIV
|
||||||
MESSAGE COPY,F_CLIENTE
|
MESSAGE COPY,F_CLIENTE
|
||||||
@ -381,86 +380,9 @@ BEGIN
|
|||||||
WARNING "Codice pagamento assente"
|
WARNING "Codice pagamento assente"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_TOTALE 15
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 12 "Totale documento "
|
|
||||||
FIELD TOTDOC
|
|
||||||
FLAGS "RV"
|
|
||||||
PICTURE "."
|
|
||||||
END
|
|
||||||
|
|
||||||
NUMBER F_RITFIS 15
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 13 "Ritenute fiscali "
|
|
||||||
FIELD RITFIS
|
|
||||||
FLAGS "RV"
|
|
||||||
PICTURE "."
|
|
||||||
END
|
|
||||||
|
|
||||||
NUMBER F_RITSOC 15
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 14 "Ritenute sociali "
|
|
||||||
FIELD LF_MOV->RITSOC
|
|
||||||
FLAGS "RV"
|
|
||||||
PICTURE "."
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING F_CODIVA 4
|
|
||||||
BEGIN
|
|
||||||
PROMPT 60 12 "Codice IVA "
|
|
||||||
FLAGS "U"
|
|
||||||
USE %IVA
|
|
||||||
INPUT CODTAB F_CODIVA
|
|
||||||
DISPLAY "Codice" CODTAB
|
|
||||||
DISPLAY "Descrizione@50" S0
|
|
||||||
DISPLAY "%@6" R0
|
|
||||||
DISPLAY "Tipo" S1
|
|
||||||
OUTPUT F_CODIVA CODTAB
|
|
||||||
CHECKTYPE NORMAL
|
|
||||||
END
|
|
||||||
|
|
||||||
DATE F_DATA74TER
|
|
||||||
BEGIN
|
|
||||||
PROMPT 54 13 "Data 74/ter "
|
|
||||||
CHECKTYPE REQUIRED
|
|
||||||
FIELD DATA74TER
|
|
||||||
END
|
|
||||||
|
|
||||||
NUMBER F_ANNORIF 4
|
|
||||||
BEGIN
|
|
||||||
PROMPT 45 14 "Rif.partita "
|
|
||||||
FLAGS "A"
|
|
||||||
HELP "Anno di riferimento partita"
|
|
||||||
CHECKTYPE REQUIRED
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING F_NUMRIF 7
|
|
||||||
BEGIN
|
|
||||||
PROMPT 68 14 "/ "
|
|
||||||
HELP "Numero documento (o protocollo IVA) di riferimento"
|
|
||||||
CHECKTYPE REQUIRED
|
|
||||||
END
|
|
||||||
|
|
||||||
NUMBER F_CORRLIRE 15
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 15 "Corrispettivo Lire "
|
|
||||||
FIELD LF_MOV->CORRLIRE
|
|
||||||
FLAGS "R"
|
|
||||||
PICTURE "."
|
|
||||||
END
|
|
||||||
|
|
||||||
NUMBER F_CORRVALUTA 15
|
|
||||||
BEGIN
|
|
||||||
PROMPT 45 15 "Corrisp. valuta "
|
|
||||||
FIELD LF_MOV->CORRVALUTA
|
|
||||||
FLAGS "R"
|
|
||||||
PICTURE "."
|
|
||||||
END
|
|
||||||
|
|
||||||
|
|
||||||
STRING F_VALUTA 3
|
STRING F_VALUTA 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 16 "Valuta "
|
PROMPT 1 12 "Valuta "
|
||||||
FIELD LF_MOV->CODVAL
|
FIELD LF_MOV->CODVAL
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
GROUP 3
|
GROUP 3
|
||||||
@ -473,11 +395,12 @@ BEGIN
|
|||||||
OUTPUT F_VALUTA CODTAB
|
OUTPUT F_VALUTA CODTAB
|
||||||
OUTPUT F_CAMBIO R10
|
OUTPUT F_CAMBIO R10
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
|
WARNING "Codice valuta assente"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_CAMBIO 15 5
|
NUMBER F_CAMBIO 12 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 20 16 "Cambio "
|
PROMPT 20 12 "Cambio "
|
||||||
FIELD LF_MOV->CAMBIO
|
FIELD LF_MOV->CAMBIO
|
||||||
FLAGS "RU"
|
FLAGS "RU"
|
||||||
GROUP 3
|
GROUP 3
|
||||||
@ -486,10 +409,87 @@ END
|
|||||||
|
|
||||||
BOOLEAN F_VISVAL
|
BOOLEAN F_VISVAL
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 47 16 "Visualizza importi in valuta"
|
PROMPT 47 12 "Visualizza importi in valuta"
|
||||||
GROUP 3
|
GROUP 3
|
||||||
END
|
END
|
||||||
|
|
||||||
|
NUMBER F_TOTALE 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 13 "Totale documento "
|
||||||
|
FIELD TOTDOC
|
||||||
|
FLAGS "RV"
|
||||||
|
PICTURE "."
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_RITFIS 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 14 "Ritenute fiscali "
|
||||||
|
FIELD RITFIS
|
||||||
|
FLAGS "RV"
|
||||||
|
PICTURE "."
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_RITSOC 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 15 "Ritenute sociali "
|
||||||
|
FIELD LF_MOV->RITSOC
|
||||||
|
FLAGS "RV"
|
||||||
|
PICTURE "."
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_CODIVA 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 60 13 "Codice IVA "
|
||||||
|
FLAGS "U"
|
||||||
|
USE %IVA
|
||||||
|
INPUT CODTAB F_CODIVA
|
||||||
|
DISPLAY "Codice" CODTAB
|
||||||
|
DISPLAY "Descrizione@50" S0
|
||||||
|
DISPLAY "%@6" R0
|
||||||
|
DISPLAY "Tipo" S1
|
||||||
|
OUTPUT F_CODIVA CODTAB
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
WARNING "Codice IVA assente"
|
||||||
|
END
|
||||||
|
|
||||||
|
DATE F_DATA74TER
|
||||||
|
BEGIN
|
||||||
|
PROMPT 54 14 "Data 74/ter "
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
FIELD DATA74TER
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_ANNORIF 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 45 15 "Rif.partita "
|
||||||
|
FLAGS "A"
|
||||||
|
HELP "Anno di riferimento partita"
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_NUMRIF 7
|
||||||
|
BEGIN
|
||||||
|
PROMPT 68 15 "/ "
|
||||||
|
HELP "Numero documento (o protocollo IVA) di riferimento"
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_CORRLIRE 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 16 "Corrispettivo Lire "
|
||||||
|
FIELD LF_MOV->CORRLIRE
|
||||||
|
FLAGS "R"
|
||||||
|
PICTURE "."
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_CORRVALUTA 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 45 16 "Corrisp. valuta "
|
||||||
|
FIELD LF_MOV->CORRVALUTA
|
||||||
|
FLAGS "R"
|
||||||
|
PICTURE "."
|
||||||
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "IVA" -1 -1 77 20
|
PAGE "IVA" -1 -1 77 20
|
||||||
|
@ -653,7 +653,7 @@ bool TPrimanota_application::codiva_handler(TMask_field& f, KEY key)
|
|||||||
|
|
||||||
bool TPrimanota_application::detrazione_handler(TMask_field& f, KEY key)
|
bool TPrimanota_application::detrazione_handler(TMask_field& f, KEY key)
|
||||||
{
|
{
|
||||||
if (key == K_SPACE && app().iva() == iva_acquisti)
|
if (key == K_TAB && f.dirty() && app().iva() == iva_acquisti)
|
||||||
{
|
{
|
||||||
TMask_field& ci = f.mask().field(101);
|
TMask_field& ci = f.mask().field(101);
|
||||||
ci.set_dirty();
|
ci.set_dirty();
|
||||||
@ -1299,12 +1299,29 @@ bool TPrimanota_application::clifo_handler(TMask_field& f, KEY key)
|
|||||||
{
|
{
|
||||||
TMask& m = f.mask();
|
TMask& m = f.mask();
|
||||||
app().add_cgs_tot(m);
|
app().add_cgs_tot(m);
|
||||||
|
|
||||||
TLocalisamfile& clifo = ((TEdit_field&)f).browse()->cursor()->file();
|
TLocalisamfile& clifo = ((TEdit_field&)f).browse()->cursor()->file();
|
||||||
const int alleg = clifo.get_int(CLI_ALLEG);
|
const int alleg = clifo.get_int(CLI_ALLEG);
|
||||||
TEdit_field& upi = m.efield(F_RIEPILOGO);
|
TEdit_field& upi = m.efield(F_RIEPILOGO);
|
||||||
upi.check_type(alleg == 3 ? CHECK_REQUIRED : CHECK_NORMAL);
|
upi.check_type(alleg == 3 ? CHECK_REQUIRED : CHECK_NORMAL);
|
||||||
|
|
||||||
if (clifo.get_bool(CLI_OCCAS))
|
if (clifo.get_bool(CLI_OCCAS))
|
||||||
m.send_key(K_SPACE, F_OCCASEDIT); // Lancia maschera occasionali
|
m.send_key(K_SPACE, F_OCCASEDIT); // Lancia maschera occasionali
|
||||||
|
|
||||||
|
if (m.field(F_VISVAL).active())
|
||||||
|
{
|
||||||
|
const TString16 valuta(clifo.get("CODVAL"));
|
||||||
|
if (valuta.not_empty() && valuta != m.get(F_VALUTA))
|
||||||
|
{
|
||||||
|
TTable val("%val");
|
||||||
|
val.put("CODTAB", valuta);
|
||||||
|
if (val.read() == NOERR)
|
||||||
|
{
|
||||||
|
m.set(F_VALUTA, valuta);
|
||||||
|
m.set(F_CAMBIO, val.get("R0"), TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -1342,19 +1359,22 @@ bool TPrimanota_application::main_codiva_handler(TMask_field& f, KEY key)
|
|||||||
if (key == K_TAB && f.get().not_empty())
|
if (key == K_TAB && f.get().not_empty())
|
||||||
{
|
{
|
||||||
const real imp(app().ivas().row(1).get(0)); // Se il totale non e' stato spezzato
|
const real imp(app().ivas().row(1).get(0)); // Se il totale non e' stato spezzato
|
||||||
if (imp == ZERO)
|
if (imp.is_zero())
|
||||||
{
|
{
|
||||||
|
TToken_string& row = app().ivas().row(0);
|
||||||
|
|
||||||
TMask& m = f.mask();
|
TMask& m = f.mask();
|
||||||
iva_notify(0, K_SPACE);
|
iva_notify(0, K_SPACE);
|
||||||
|
|
||||||
const TCodiceIVA iva(f.get());
|
const TCodiceIVA iva(f.get());
|
||||||
const bool corr = app().causale().corrispettivi();
|
const bool corr = app().causale().corrispettivi();
|
||||||
real tot = app().totale_documento();
|
const bool acq3 = (app().iva() == iva_acquisti) && (row.get_int(2) == 3);
|
||||||
real imposta;
|
|
||||||
if (!corr)
|
real tot = app().totale_documento(); // Calcola totale documento
|
||||||
|
real imposta; // Calcola imposta
|
||||||
|
if (!corr && !acq3)
|
||||||
imposta = app().scorpora(tot, iva.percentuale());
|
imposta = app().scorpora(tot, iva.percentuale());
|
||||||
|
|
||||||
TToken_string& row = app().ivas().row(0);
|
|
||||||
row.add(tot.string(), 0); // imponibile
|
row.add(tot.string(), 0); // imponibile
|
||||||
row.add(imposta.string(), 3); // imposta
|
row.add(imposta.string(), 3); // imposta
|
||||||
|
|
||||||
@ -1440,22 +1460,29 @@ bool TPrimanota_application::ritsoc_handler(TMask_field& f, KEY key)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TPrimanota_application::cambio_handler(TMask_field& f, KEY key)
|
||||||
|
{
|
||||||
|
if (key == K_TAB && f.focusdirty())
|
||||||
|
{
|
||||||
|
if (f.get().empty())
|
||||||
|
f.set(f.mask().exchange().string());
|
||||||
|
else
|
||||||
|
f.mask().field(F_VISVAL).on_hit();
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Handler of F_VISVAL
|
// Handler of F_VISVAL
|
||||||
// Certified 90%
|
// Certified 99%
|
||||||
bool TPrimanota_application::visval_handler(TMask_field& f, KEY key)
|
bool TPrimanota_application::visval_handler(TMask_field& f, KEY key)
|
||||||
{
|
{
|
||||||
if (key == K_SPACE)
|
if (key == K_SPACE)
|
||||||
{
|
{
|
||||||
TMask& m = f.mask();
|
TMask& m = f.mask();
|
||||||
const real e(f.get() == "X" ? m.get(F_CAMBIO) : "1");
|
const bool on = f.get().not_empty();
|
||||||
if (e > ZERO)
|
const real e(f.mask().get(F_CAMBIO));
|
||||||
m.set_exchange(e);
|
m.set_exchange(on, e);
|
||||||
else
|
|
||||||
{
|
|
||||||
error_box("Impostare un valore maggiore di zero per il cambio");
|
|
||||||
f.reset();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -42,6 +42,7 @@ class TPrimanota_application : public TRelation_application
|
|||||||
bool _ges_val, _ges_sal; // Gestione valuta e saldaconto
|
bool _ges_val, _ges_sal; // Gestione valuta e saldaconto
|
||||||
bool _rif_par; // Riferimento parita (NUM_DOC | PROTIVA)
|
bool _rif_par; // Riferimento parita (NUM_DOC | PROTIVA)
|
||||||
bool _savenew; // Registra e nuovo
|
bool _savenew; // Registra e nuovo
|
||||||
|
bool _iva_showed; // Lo sheet IVA e' gia' stato visualizzato una volta?
|
||||||
|
|
||||||
TSaldo_agg _saldi; // Saldi da aggiornare
|
TSaldo_agg _saldi; // Saldi da aggiornare
|
||||||
|
|
||||||
@ -65,6 +66,7 @@ class TPrimanota_application : public TRelation_application
|
|||||||
static bool ritfis_handler(TMask_field& f, KEY key);
|
static bool ritfis_handler(TMask_field& f, KEY key);
|
||||||
static bool ritsoc_handler(TMask_field& f, KEY key);
|
static bool ritsoc_handler(TMask_field& f, KEY key);
|
||||||
static bool main_codiva_handler(TMask_field& f, KEY key);
|
static bool main_codiva_handler(TMask_field& f, KEY key);
|
||||||
|
static bool cambio_handler(TMask_field& f, KEY key);
|
||||||
static bool visval_handler(TMask_field& f, KEY key);
|
static bool visval_handler(TMask_field& f, KEY key);
|
||||||
static bool occas_code_handler(TMask_field& f, KEY key);
|
static bool occas_code_handler(TMask_field& f, KEY key);
|
||||||
static bool occas_handler(TMask_field& f, KEY key);
|
static bool occas_handler(TMask_field& f, KEY key);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user