Gestione scadenze in valuta
git-svn-id: svn://10.65.10.50/trunk@1880 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
32fbac862b
commit
0a0939e127
@ -178,7 +178,7 @@ END
|
|||||||
|
|
||||||
NUMBER F_STATOCF 3
|
NUMBER F_STATOCF 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 8 "Comune:Stato "
|
PROMPT 2 8 "Comune: Stato "
|
||||||
FIELD LF_CLIFO->STATOCF
|
FIELD LF_CLIFO->STATOCF
|
||||||
FLAGS "Z"
|
FLAGS "Z"
|
||||||
USE %STA
|
USE %STA
|
||||||
|
@ -96,7 +96,9 @@ TMask* TPrimanota_application::load_mask(int n)
|
|||||||
TSheet_field& ps = (TSheet_field&)m->field(FS_RATESHEET);
|
TSheet_field& ps = (TSheet_field&)m->field(FS_RATESHEET);
|
||||||
ps.set_notify(pag_notify);
|
ps.set_notify(pag_notify);
|
||||||
m->set_handler(FS_RESET, reset_handler);
|
m->set_handler(FS_RESET, reset_handler);
|
||||||
m->set_handler(FS_NRATE, nrate_handler);
|
m->set_handler(FS_NRATE, nrate_handler);
|
||||||
|
m->set_handler(FS_NSCAB, codcab_handler);
|
||||||
|
m->set_handler(FS_VSCAB, codcab_handler);
|
||||||
}
|
}
|
||||||
case 1:
|
case 1:
|
||||||
if (m)
|
if (m)
|
||||||
|
@ -15,7 +15,7 @@ END
|
|||||||
|
|
||||||
BOOLEAN F_STAMPATO
|
BOOLEAN F_STAMPATO
|
||||||
BEGIN
|
BEGIN
|
||||||
FIELD STAMPATO
|
FIELD STAMPATO
|
||||||
FLAGS "H"
|
FLAGS "H"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
@ -1644,18 +1644,14 @@ bool TPrimanota_application::clifo_handler(TMask_field& f, KEY key)
|
|||||||
if (key == K_TAB && f.active())
|
if (key == K_TAB && f.active())
|
||||||
{
|
{
|
||||||
TMask& m = f.mask();
|
TMask& m = f.mask();
|
||||||
|
|
||||||
const char cf = app().clifo();
|
|
||||||
TLocalisamfile& clifo = ((TEdit_field&)f).browse()->cursor()->file();
|
|
||||||
|
|
||||||
if (clifo.get_char(CLI_TIPOCF) != cf || clifo.get(CLI_CODCF) != f.get())
|
const char cf = app().clifo();
|
||||||
{
|
TRelation cliforel(LF_CLIFO); cliforel.add(LF_CFVEN, "TIPOCF=TIPOCF|CODCF=CODCF");
|
||||||
clifo.setkey(1);
|
TRectype& clifo = cliforel.curr();
|
||||||
clifo.put(CLI_TIPOCF, cf);
|
clifo.put(CLI_TIPOCF, cf);
|
||||||
clifo.put(CLI_CODCF, f.get());
|
clifo.put(CLI_CODCF, f.get());
|
||||||
clifo.read();
|
cliforel.read();
|
||||||
CHECK(clifo.good(), "Impossibile ritrovare il clifo");
|
|
||||||
}
|
|
||||||
if (!suspended_handler(f, key))
|
if (!suspended_handler(f, key))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
@ -1671,6 +1667,21 @@ bool TPrimanota_application::clifo_handler(TMask_field& f, KEY key)
|
|||||||
|
|
||||||
const TString& s = clifo.get(CLI_CODPAG);
|
const TString& s = clifo.get(CLI_CODPAG);
|
||||||
if (s.not_empty()) m.set(F_CODPAG, s, TRUE);
|
if (s.not_empty()) m.set(F_CODPAG, s, TRUE);
|
||||||
|
|
||||||
|
if (app().is_saldaconto())
|
||||||
|
{
|
||||||
|
if (m.field(S_VALUTA).active())
|
||||||
|
{
|
||||||
|
const TString& valuta = clifo.get(CLI_CODVAL);
|
||||||
|
if (valuta.not_empty())
|
||||||
|
m.set(S_VALUTA, valuta, TRUE);
|
||||||
|
}
|
||||||
|
m.set(FS_VSABI, clifo.get(CLI_CODABI));
|
||||||
|
m.set(FS_VSCAB, clifo.get(CLI_CODCAB));
|
||||||
|
m.send_key(K_TAB, FS_VSCAB);
|
||||||
|
m.set(FS_AGENTE, cliforel.curr(LF_CFVEN).get(CLI_CODAG), TRUE);
|
||||||
|
m.send_key(K_TAB, FS_AGENTE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool occas = clifo.get_bool(CLI_OCCAS);
|
const bool occas = clifo.get_bool(CLI_OCCAS);
|
||||||
@ -1682,18 +1693,6 @@ bool TPrimanota_application::clifo_handler(TMask_field& f, KEY key)
|
|||||||
if (f.focusdirty())
|
if (f.focusdirty())
|
||||||
{
|
{
|
||||||
app().add_cgs_tot(m);
|
app().add_cgs_tot(m);
|
||||||
|
|
||||||
if (m.field(S_VALUTA).active())
|
|
||||||
{
|
|
||||||
const TString16 valuta(clifo.get("CODVAL"));
|
|
||||||
if (valuta.not_empty() && valuta != m.get(S_VALUTA))
|
|
||||||
{
|
|
||||||
TTable val("%val");
|
|
||||||
val.put("CODTAB", valuta);
|
|
||||||
if (val.read() == NOERR)
|
|
||||||
m.set(S_VALUTA, valuta);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (occas && app().occas_mask().get(O_CODICE).empty())
|
if (occas && app().occas_mask().get(O_CODICE).empty())
|
||||||
m.send_key(K_SPACE, F_OCCASEDIT); // Lancia maschera occasionali
|
m.send_key(K_SPACE, F_OCCASEDIT); // Lancia maschera occasionali
|
||||||
}
|
}
|
||||||
|
@ -113,6 +113,7 @@ class TPrimanota_application : public TRelation_application
|
|||||||
static bool codpag_handler(TMask_field& f, KEY key);
|
static bool codpag_handler(TMask_field& f, KEY key);
|
||||||
static bool reset_handler(TMask_field& f, KEY key);
|
static bool reset_handler(TMask_field& f, KEY key);
|
||||||
static bool nrate_handler(TMask_field& f, KEY key);
|
static bool nrate_handler(TMask_field& f, KEY key);
|
||||||
|
static bool codcab_handler(TMask_field& f, KEY key);
|
||||||
|
|
||||||
static bool iva_notify(TSheet_field& s, int r, KEY key);
|
static bool iva_notify(TSheet_field& s, int r, KEY key);
|
||||||
static bool iva_handler(TMask_field& f, KEY key);
|
static bool iva_handler(TMask_field& f, KEY key);
|
||||||
|
111
cg/cg2104.cpp
111
cg/cg2104.cpp
@ -27,6 +27,7 @@ bool TPrimanota_application::pag_notify(TSheet_field&, int r, KEY k)
|
|||||||
|
|
||||||
// ts contiene la vecchia riga, ns la nuova
|
// ts contiene la vecchia riga, ns la nuova
|
||||||
TToken_string ts(36), ns(36);
|
TToken_string ts(36), ns(36);
|
||||||
|
TString16 banca;
|
||||||
|
|
||||||
bool doit = TRUE, m_imp = FALSE, m_perc = FALSE, m_pag = FALSE;
|
bool doit = TRUE, m_imp = FALSE, m_perc = FALSE, m_pag = FALSE;
|
||||||
bool m_scad = FALSE, m_tipo = FALSE, mod = FALSE;
|
bool m_scad = FALSE, m_tipo = FALSE, mod = FALSE;
|
||||||
@ -39,16 +40,14 @@ bool TPrimanota_application::pag_notify(TSheet_field&, int r, KEY k)
|
|||||||
|
|
||||||
switch (k)
|
switch (k)
|
||||||
{
|
{
|
||||||
case K_SPACE:
|
|
||||||
break;
|
|
||||||
case K_ENTER:
|
case K_ENTER:
|
||||||
ns = ps.row(r);
|
ns = ps.row(r);
|
||||||
ts = rws.row(r);
|
ts = rws.row(r);
|
||||||
|
|
||||||
news = ns.get(0);
|
news = ns.get(0);
|
||||||
newp = ns.get(2);
|
newi = ns.get();
|
||||||
newi = ns.get(1);
|
newp = ns.get();
|
||||||
newt = ns.get(3);
|
newt = ns.get();
|
||||||
|
|
||||||
// qui viene il bello, si fa per dire
|
// qui viene il bello, si fa per dire
|
||||||
if (news != ts.get(0)) // modificata data scadenza
|
if (news != ts.get(0)) // modificata data scadenza
|
||||||
@ -71,6 +70,11 @@ bool TPrimanota_application::pag_notify(TSheet_field&, int r, KEY k)
|
|||||||
{
|
{
|
||||||
mod = m_tipo = TRUE;
|
mod = m_tipo = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
banca = ns.get(5); ts.add(banca, 6);
|
||||||
|
banca = ns.get(6); ts.add(banca, 7);
|
||||||
|
banca = ns.get(7); ts.add(banca, 8);
|
||||||
|
banca = ns.get(8); ts.add(banca, 9);
|
||||||
break;
|
break;
|
||||||
case K_DEL:
|
case K_DEL:
|
||||||
case K_INS:
|
case K_INS:
|
||||||
@ -99,7 +103,7 @@ bool TPrimanota_application::pag_notify(TSheet_field&, int r, KEY k)
|
|||||||
rdiff, mcomm, need_recalc);
|
rdiff, mcomm, need_recalc);
|
||||||
// see if rdiff changed
|
// see if rdiff changed
|
||||||
msk->set(FS_RDIFFER, pag.rate_differenziate() ? "1" : "2");
|
msk->set(FS_RDIFFER, pag.rate_differenziate() ? "1" : "2");
|
||||||
msk->set(FS_NRATE, format("%d", pag.n_rate()));
|
msk->set(FS_NRATE, pag.n_rate());
|
||||||
}
|
}
|
||||||
if (!recalc)
|
if (!recalc)
|
||||||
{
|
{
|
||||||
@ -107,10 +111,10 @@ bool TPrimanota_application::pag_notify(TSheet_field&, int r, KEY k)
|
|||||||
// put data as they are
|
// put data as they are
|
||||||
TToken_string& trw = pag.rata(r);
|
TToken_string& trw = pag.rata(r);
|
||||||
TToken_string srw = trw;
|
TToken_string srw = trw;
|
||||||
if (m_scad) trw.add(news,3);
|
|
||||||
if (m_perc) trw.add(newp,1);
|
if (m_perc) trw.add(newp,1);
|
||||||
if (m_imp) trw.add(newi,4);
|
|
||||||
if (m_tipo) trw.add(newt,2);
|
if (m_tipo) trw.add(newt,2);
|
||||||
|
if (m_scad) trw.add(news,3);
|
||||||
|
if (m_imp) trw.add(newi,4);
|
||||||
// validate the payment
|
// validate the payment
|
||||||
if ((ahiahi = pag.validate()) != P_OK)
|
if ((ahiahi = pag.validate()) != P_OK)
|
||||||
pag.rata(r) = srw;
|
pag.rata(r) = srw;
|
||||||
@ -130,7 +134,6 @@ bool TPrimanota_application::pag_notify(TSheet_field&, int r, KEY k)
|
|||||||
ps.row(r) = rws.row(r);
|
ps.row(r) = rws.row(r);
|
||||||
ps.force_update(r);
|
ps.force_update(r);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (recalc && mod && need_recalc)
|
else if (recalc && mod && need_recalc)
|
||||||
{
|
{
|
||||||
// ridefinisci lo sheet sulla base delle nuove rate
|
// ridefinisci lo sheet sulla base delle nuove rate
|
||||||
@ -171,10 +174,10 @@ bool TPrimanota_application::reset_handler(TMask_field& f, KEY key)
|
|||||||
bool TPrimanota_application::nrate_handler(TMask_field& f, KEY key)
|
bool TPrimanota_application::nrate_handler(TMask_field& f, KEY key)
|
||||||
{
|
{
|
||||||
TMask& m = f.mask();
|
TMask& m = f.mask();
|
||||||
TSheet_field& ps = (TSheet_field&)m.field(FS_RATESHEET);
|
|
||||||
|
|
||||||
if (key == K_TAB && m.is_running() && app().is_saldaconto())
|
if (key == K_TAB && m.is_running() && app().is_saldaconto())
|
||||||
{
|
{
|
||||||
|
TSheet_field& ps = (TSheet_field&)m.field(FS_RATESHEET);
|
||||||
if (app().pagamento() != NULL)
|
if (app().pagamento() != NULL)
|
||||||
{
|
{
|
||||||
app().pagamento()->set_numero_rate(atoi(f.get()), /*TBI*/-1);
|
app().pagamento()->set_numero_rate(atoi(f.get()), /*TBI*/-1);
|
||||||
@ -186,6 +189,28 @@ bool TPrimanota_application::nrate_handler(TMask_field& f, KEY key)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TPrimanota_application::codcab_handler(TMask_field& f, KEY key)
|
||||||
|
{
|
||||||
|
if (key == K_TAB && f.focusdirty())
|
||||||
|
{
|
||||||
|
const TMask& m = f.mask();
|
||||||
|
const short id = f.dlg() == FS_NSCAB ? FS_NSABI : FS_VSABI;
|
||||||
|
const int pos = id == FS_NSABI ? 5 : 7;
|
||||||
|
const TString16 abi = m.get(id);
|
||||||
|
const TString16 cab = m.get(id+1);
|
||||||
|
|
||||||
|
TSheet_field& ps = (TSheet_field&)m.field(FS_RATESHEET);
|
||||||
|
for (int i = ps.items()-1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
TToken_string& row = ps.row(i);
|
||||||
|
row.add(abi, pos);
|
||||||
|
row.add(cab, pos+1);
|
||||||
|
}
|
||||||
|
ps.force_update();
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
void TPrimanota_application::reset_pagamento()
|
void TPrimanota_application::reset_pagamento()
|
||||||
{
|
{
|
||||||
@ -208,8 +233,10 @@ void TPrimanota_application::set_scadenze(TMask& m)
|
|||||||
const real imponibile(m.get(F_IMPONIBILI));
|
const real imponibile(m.get(F_IMPONIBILI));
|
||||||
const real imposta(m.get(F_IMPOSTE));
|
const real imposta(m.get(F_IMPOSTE));
|
||||||
const real spese(0.0);
|
const real spese(0.0);
|
||||||
|
const real cambio(m.get(S_CAMBIO));
|
||||||
|
|
||||||
TPagamento& pag = *pagamento();
|
TPagamento& pag = *pagamento();
|
||||||
|
pag.set_cambio(cambio);
|
||||||
|
|
||||||
m.set(FS_RDIFFER, pag.rate_differenziate() ? "1" : "2");
|
m.set(FS_RDIFFER, pag.rate_differenziate() ? "1" : "2");
|
||||||
m.set(FS_NAMEPAG, pag.name());
|
m.set(FS_NAMEPAG, pag.name());
|
||||||
@ -226,6 +253,7 @@ void TPrimanota_application::set_scadenze(TMask& m)
|
|||||||
|
|
||||||
// prepara lo sheet
|
// prepara lo sheet
|
||||||
pag.set_sheet(ps);
|
pag.set_sheet(ps);
|
||||||
|
|
||||||
_pag_rows = ps.rows_array();
|
_pag_rows = ps.rows_array();
|
||||||
m.set(FS_NRATE, pag.n_rate());
|
m.set(FS_NRATE, pag.n_rate());
|
||||||
|
|
||||||
@ -267,7 +295,6 @@ bool TPrimanota_application::read_scadenze(TMask& m)
|
|||||||
const TString16 codval (testa.get("CODVAL"));
|
const TString16 codval (testa.get("CODVAL"));
|
||||||
const real cambio(testa.get("CAMBIO"));
|
const real cambio(testa.get("CAMBIO"));
|
||||||
|
|
||||||
|
|
||||||
const TRectype& prima = _rel->cg(0);
|
const TRectype& prima = _rel->cg(0);
|
||||||
const char sezione = prima.get_char("SEZIONE"); // Dare/Avere
|
const char sezione = prima.get_char("SEZIONE"); // Dare/Avere
|
||||||
const int nriga = 1;
|
const int nriga = 1;
|
||||||
@ -282,7 +309,7 @@ bool TPrimanota_application::read_scadenze(TMask& m)
|
|||||||
int npart = part.prima_fattura(nreg);
|
int npart = part.prima_fattura(nreg);
|
||||||
bool fromscratch = FALSE;
|
bool fromscratch = FALSE;
|
||||||
|
|
||||||
if (npart != -1) // la gh'e'
|
if (npart > 0) // la gh'e'
|
||||||
{
|
{
|
||||||
|
|
||||||
const TRiga_partite& partita = part.riga(npart);
|
const TRiga_partite& partita = part.riga(npart);
|
||||||
@ -308,7 +335,9 @@ bool TPrimanota_application::read_scadenze(TMask& m)
|
|||||||
if(!fromscratch) m.field(FS_RECALC).set("");
|
if(!fromscratch) m.field(FS_RECALC).set("");
|
||||||
}
|
}
|
||||||
if (fromscratch)
|
if (fromscratch)
|
||||||
|
{
|
||||||
pag.set_rate_auto();
|
pag.set_rate_auto();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pag.zap_rate();
|
pag.zap_rate();
|
||||||
@ -319,8 +348,28 @@ bool TPrimanota_application::read_scadenze(TMask& m)
|
|||||||
const TDate scad = scadenza.get(SCAD_DATASCAD);
|
const TDate scad = scadenza.get(SCAD_DATASCAD);
|
||||||
const int tipop = scadenza.get_int(SCAD_TIPOPAG);
|
const int tipop = scadenza.get_int(SCAD_TIPOPAG);
|
||||||
const bool paid = scadenza.get_bool(SCAD_PAGATA);
|
const bool paid = scadenza.get_bool(SCAD_PAGATA);
|
||||||
const TString16 ulc = scadenza.get(SCAD_ULTCLASS);
|
const TString16 ulc = scadenza.get(SCAD_ULTCLASS);
|
||||||
pag.set_rata(i-1, importo, scad, tipop, ulc, paid);
|
if (scadenza.in_valuta())
|
||||||
|
{
|
||||||
|
const real impval(scadenza.get(SCAD_IMPORTOVAL));
|
||||||
|
pag.set_rata(i-1, impval, importo, scad, tipop, ulc, paid);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
pag.set_rata(i-1, importo, ZERO, scad, tipop, ulc, paid);
|
||||||
|
|
||||||
|
TToken_string& str = ps.row(i-1);
|
||||||
|
str.add(scadenza.get(SCAD_CODABIPR), 6);
|
||||||
|
str.add(scadenza.get(SCAD_CODCABPR), 7);
|
||||||
|
str.add(scadenza.get(SCAD_CODABI), 8);
|
||||||
|
str.add(scadenza.get(SCAD_CODCAB), 9);
|
||||||
|
if (i == 1)
|
||||||
|
{
|
||||||
|
m.set(FS_NSABI, str.get(6));
|
||||||
|
m.set(FS_NSCAB, str.get(7));
|
||||||
|
m.set(FS_VSABI, str.get(8));
|
||||||
|
m.set(FS_VSCAB, str.get(9));
|
||||||
|
m.set(FS_AGENTE, scadenza.get(SCAD_CODAG));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} //else
|
} //else
|
||||||
}
|
}
|
||||||
@ -360,10 +409,10 @@ void TPrimanota_application::write_scadenze(const TMask& m)
|
|||||||
const TString16 codcaus(causale().codice());
|
const TString16 codcaus(causale().codice());
|
||||||
const TString16 codval (m.get(S_VALUTA));
|
const TString16 codval (m.get(S_VALUTA));
|
||||||
const real cambio (m.get(S_CAMBIO));
|
const real cambio (m.get(S_CAMBIO));
|
||||||
|
const TString16 agente (m.get(FS_AGENTE));
|
||||||
const char sezione = get_cgs_imp(0).sezione(); // Dare/Avere
|
const char sezione = get_cgs_imp(0).sezione(); // Dare/Avere
|
||||||
CHECK(sezione > ' ', "Invalid section in row 0");
|
|
||||||
|
const TBill clifo(cgs().row(0), 2, 0x3);
|
||||||
const TBill clifo(cgs().row(0), 2, 0x3);
|
|
||||||
newgame = new TPartita(clifo, anno, numpart);
|
newgame = new TPartita(clifo, anno, numpart);
|
||||||
|
|
||||||
const int row = newgame->prima_fattura(nreg);
|
const int row = newgame->prima_fattura(nreg);
|
||||||
@ -377,10 +426,10 @@ void TPrimanota_application::write_scadenze(const TMask& m)
|
|||||||
partita.put(PART_DATAREG, dreg);
|
partita.put(PART_DATAREG, dreg);
|
||||||
partita.put(PART_DATADOC, ddoc);
|
partita.put(PART_DATADOC, ddoc);
|
||||||
partita.put(PART_NUMDOC, ndoc);
|
partita.put(PART_NUMDOC, ndoc);
|
||||||
partita.put(PART_REG, reg);
|
|
||||||
partita.put(PART_DESCR, desc);
|
partita.put(PART_DESCR, desc);
|
||||||
partita.put(PART_PROTIVA, protiva);
|
|
||||||
partita.put(PART_CODCAUS, codcaus);
|
partita.put(PART_CODCAUS, codcaus);
|
||||||
|
partita.put(PART_REG, reg);
|
||||||
|
partita.put(PART_PROTIVA, protiva);
|
||||||
partita.put(PART_SEZ, sezione);
|
partita.put(PART_SEZ, sezione);
|
||||||
partita.put(PART_CODVAL, codval);
|
partita.put(PART_CODVAL, codval);
|
||||||
partita.put(PART_CAMBIO, cambio);
|
partita.put(PART_CAMBIO, cambio);
|
||||||
@ -388,19 +437,33 @@ void TPrimanota_application::write_scadenze(const TMask& m)
|
|||||||
partita.put(PART_IMPOSTA, pag.imposta());
|
partita.put(PART_IMPOSTA, pag.imposta());
|
||||||
partita.put(PART_SPESE, pag.spese());
|
partita.put(PART_SPESE, pag.spese());
|
||||||
|
|
||||||
|
TSheet_field& ps = (TSheet_field&)m.field(FS_RATESHEET);
|
||||||
partita.elimina_rate();
|
partita.elimina_rate();
|
||||||
for (int i = 0; i < pag.n_rate(); i++)
|
for (int i = 0; i < pag.n_rate(); i++)
|
||||||
{
|
{
|
||||||
|
TToken_string& row = ps.row(i);
|
||||||
|
|
||||||
TRiga_scadenze& scadenza = partita.new_row();
|
TRiga_scadenze& scadenza = partita.new_row();
|
||||||
|
|
||||||
scadenza.put(SCAD_CODPAG, pag.code());
|
scadenza.put(SCAD_CODPAG, pag.code());
|
||||||
scadenza.put(SCAD_TIPOPAG, pag.tipo_rata(i));
|
scadenza.put(SCAD_TIPOPAG, pag.tipo_rata(i));
|
||||||
scadenza.put(SCAD_ULTCLASS, pag.ulc_rata(i));
|
scadenza.put(SCAD_ULTCLASS, pag.ulc_rata(i));
|
||||||
scadenza.put(SCAD_IMPORTO, pag.tpay_rata(i));
|
if (partita.in_valuta())
|
||||||
|
{
|
||||||
|
scadenza.put(SCAD_IMPORTO, pag.tlit_rata(i));
|
||||||
|
scadenza.put(SCAD_IMPORTOVAL, pag.tpay_rata(i));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
scadenza.put(SCAD_IMPORTO, pag.tpay_rata(i));
|
||||||
|
scadenza.zero(SCAD_IMPORTOVAL);
|
||||||
|
}
|
||||||
scadenza.put(SCAD_DATASCAD, pag.data_rata(i));
|
scadenza.put(SCAD_DATASCAD, pag.data_rata(i));
|
||||||
|
scadenza.put(SCAD_CODABIPR, row.get(5));
|
||||||
|
scadenza.put(SCAD_CODCABPR, row.get(6));
|
||||||
|
scadenza.put(SCAD_CODABI, row.get(7));
|
||||||
|
scadenza.put(SCAD_CODCAB, row.get(8));
|
||||||
scadenza.put(SCAD_PAGATA, pag.ratapagata(i));
|
scadenza.put(SCAD_PAGATA, pag.ratapagata(i));
|
||||||
// scadenza.put(SCAD_CODABIPR, pag.codabipr(i)); // TBI
|
scadenza.put(SCAD_CODAG, agente);
|
||||||
// scadenza.put(SCAD_CODCABPR, pag.codcabpr(i)); // TBI
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -970,23 +970,6 @@ int TPrimanota_application::nuovo_pagamento(TPartita& partita, int nriga, int ra
|
|||||||
causale().bill(caus = 1, contro); // ... prende il primo
|
causale().bill(caus = 1, contro); // ... prende il primo
|
||||||
contro.put(pagamento, TRUE); // Scrive conto contropartita
|
contro.put(pagamento, TRUE); // Scrive conto contropartita
|
||||||
|
|
||||||
/* TBG Da regalare a Ferdinando
|
|
||||||
if (conto.tipo() > ' ') // Se cliente o fornitore cerca sua banca
|
|
||||||
{
|
|
||||||
TRelation cliforel(LF_CLIFO);
|
|
||||||
cliforel.add(LF_CFVEN, "TIPOCF=TIPOCF|CODCF=CODCF");
|
|
||||||
TRectype& clifo = cliforel.curr();
|
|
||||||
|
|
||||||
clifo.put(CLI_TIPOCF, conto.tipo());
|
|
||||||
clifo.put(CLI_CODCF, conto.codclifo());
|
|
||||||
const int err = cliforel.read();
|
|
||||||
CHECK(err == NOERR, "Chiss'e' fregato il clifo");
|
|
||||||
|
|
||||||
pagamento.put(PAGSCA_CODABI, clifo.get(CLI_CODABI));
|
|
||||||
pagamento.put(PAGSCA_CODCAB, clifo.get(CLI_CODCAB));
|
|
||||||
pagamento.put(PAGSCA_CODAG, cliforel.lfile(LF_CFVEN).get(CLI_CODAG));
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
return nrigp;
|
return nrigp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
100
cg/cg21rata.uml
100
cg/cg21rata.uml
@ -1,4 +1,4 @@
|
|||||||
PAGE "Rata pagamento" -1 -1 50 8
|
PAGE "Rata pagamento" -1 -1 50 13
|
||||||
|
|
||||||
DATE 101
|
DATE 101
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -12,18 +12,31 @@ BEGIN
|
|||||||
FLAGS "R"
|
FLAGS "R"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER 103 8 3
|
BOOLEAN 111
|
||||||
|
BEGIN
|
||||||
|
PROMPT 41 3 "Pagata"
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER 103 15 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 4 "Importo valuta "
|
||||||
|
PICTURE ".2"
|
||||||
|
FLAGS "R"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER 104 8 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 2 "Percentuale "
|
PROMPT 1 2 "Percentuale "
|
||||||
PICTURE ".3"
|
PICTURE ".3"
|
||||||
FLAGS "R"
|
FLAGS "R"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER 104 2 0
|
NUMBER 105 2 0
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 4 "Tipo pagamento "
|
PROMPT 1 5 "Tipo pagamento "
|
||||||
SHEET "Codice|Tipo pagamento@32"
|
SHEET "Codice|Tipo pagamento@32"
|
||||||
INPUT 104
|
INPUT 105
|
||||||
ITEM "1|Rimessa diretta o contanti"
|
ITEM "1|Rimessa diretta o contanti"
|
||||||
ITEM "2|Tratta"
|
ITEM "2|Tratta"
|
||||||
ITEM "3|Ricevuta Bancaria"
|
ITEM "3|Ricevuta Bancaria"
|
||||||
@ -32,16 +45,84 @@ BEGIN
|
|||||||
ITEM "6|Lettera di credito"
|
ITEM "6|Lettera di credito"
|
||||||
ITEM "7|Tratta accettata"
|
ITEM "7|Tratta accettata"
|
||||||
ITEM "8|Altro pagamento"
|
ITEM "8|Altro pagamento"
|
||||||
OUTPUT 104
|
|
||||||
OUTPUT 105
|
OUTPUT 105
|
||||||
|
OUTPUT 106
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING 105 32
|
STRING 106 32
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 5 "Descrizione "
|
PROMPT 1 6 "Descrizione "
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
NUMBER 107 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 7 "Ns. Banca ABI "
|
||||||
|
FLAGS "Z"
|
||||||
|
USE %BAN
|
||||||
|
INPUT CODTAB[1,5] 107
|
||||||
|
INPUT CODTAB[6,10] 108
|
||||||
|
DISPLAY "ABI@5" CODTAB[1,5]
|
||||||
|
DISPLAY "CAB@5" CODTAB[6,10]
|
||||||
|
DISPLAY "Denominazione@50" S0
|
||||||
|
OUTPUT 107 CODTAB[1,5]
|
||||||
|
OUTPUT 108 CODTAB[6,10]
|
||||||
|
OUTPUT 126 S0
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER 108 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 27 8 "Ns. Banca CAB "
|
||||||
|
FLAGS "Z"
|
||||||
|
COPY ALL 107
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING 126 50 45
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 8 ""
|
||||||
|
USE %BAN KEY 2
|
||||||
|
INPUT S0 126
|
||||||
|
DISPLAY "Denominazione@50" S0
|
||||||
|
DISPLAY "ABI@5" CODTAB[1,5]
|
||||||
|
DISPLAY "CAB@5" CODTAB[6,10]
|
||||||
|
COPY OUTPUT 107
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER 109 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 9 "Vs. Banca ABI "
|
||||||
|
FLAGS "Z"
|
||||||
|
COPY USE 107
|
||||||
|
INPUT CODTAB[1,5] 109
|
||||||
|
INPUT CODTAB[6,10] 110
|
||||||
|
COPY DISPLAY 107
|
||||||
|
OUTPUT 108 CODTAB[1,5]
|
||||||
|
OUTPUT 109 CODTAB[6,10]
|
||||||
|
OUTPUT 128 S0
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER 110 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 27 9 "Vs. Banca CAB "
|
||||||
|
FLAGS "Z"
|
||||||
|
COPY ALL 109
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING 128 50 45
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 10 ""
|
||||||
|
COPY USE 109
|
||||||
|
INPUT S0 128
|
||||||
|
COPY DISPLAY 126
|
||||||
|
COPY OUTPUT 109
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
BUTTON DLG_CANCEL 10 2
|
BUTTON DLG_CANCEL 10 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -12 -1 ""
|
PROMPT -12 -1 ""
|
||||||
@ -53,4 +134,5 @@ BEGIN
|
|||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
@ -10,3 +10,12 @@
|
|||||||
#define FS_MCOMM 510
|
#define FS_MCOMM 510
|
||||||
#define FS_RESET 511
|
#define FS_RESET 511
|
||||||
#define FS_NRATE 512
|
#define FS_NRATE 512
|
||||||
|
#define FS_NSABI 513
|
||||||
|
#define FS_NSCAB 514
|
||||||
|
#define FS_DESCNSABI 515
|
||||||
|
#define FS_VSABI 516
|
||||||
|
#define FS_VSCAB 517
|
||||||
|
#define FS_DESCVSABI 518
|
||||||
|
#define FS_AGENTE 519
|
||||||
|
#define FS_DESCAGENTE 520
|
||||||
|
|
||||||
|
170
cg/cg21sld.uml
170
cg/cg21sld.uml
@ -1,85 +1,183 @@
|
|||||||
PAGE "Registrazione Scadenze" -1 -1 77 20
|
PAGE "Registrazione Scadenze" -1 -1 77 20
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 79 3
|
TEXT DLG_NULL
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 0 1 "@bScadenzario"
|
PROMPT 1 0 "@bGestione scadenzario"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER FS_IMPONIBILI 15
|
NUMBER FS_IMPONIBILI 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 2 "Imponibili "
|
PROMPT 1 1 "Imponibili "
|
||||||
PICTURE "."
|
PICTURE "."
|
||||||
FLAGS "DR"
|
FLAGS "DR"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER FS_IMPOSTE 15
|
NUMBER FS_IMPOSTE 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 29 2 "Imposte "
|
PROMPT 29 1 "Imposte "
|
||||||
PICTURE "."
|
PICTURE "."
|
||||||
FLAGS "DR"
|
FLAGS "DR"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER FS_SPESE 15
|
NUMBER FS_SPESE 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 54 2 "Spese "
|
PROMPT 54 1 "Spese "
|
||||||
PICTURE "."
|
PICTURE "."
|
||||||
FLAGS "DR"
|
FLAGS "DR"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
RADIOBUTTON FS_RDIFFER 31
|
RADIOBUTTON FS_RDIFFER 31
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 4 "Opzioni ricalcolo rate"
|
PROMPT 1 2 "Opzioni ricalcolo rate"
|
||||||
ITEM "1|Differenziate" MESSAGE DISABLE,FS_NRATE
|
ITEM "1|Differenziate" MESSAGE DISABLE,FS_NRATE
|
||||||
ITEM "2|Uguali (obbligate dalla 2a)" MESSAGE ENABLE,FS_NRATE
|
ITEM "2|Uguali (obbligate dalla 2a)" MESSAGE ENABLE,FS_NRATE
|
||||||
ITEM "3|Uguali dall'ultima modificata" MESSAGE DISABLE,FS_NRATE
|
ITEM "3|Uguali dall'ultima modificata" MESSAGE DISABLE,FS_NRATE
|
||||||
ITEM "4|Uguali finche' possibile" MESSAGE DISABLE,FS_NRATE
|
ITEM "4|Uguali finche' possibile" MESSAGE DISABLE,FS_NRATE
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER FS_NRATE 3 0
|
NUMBER FS_NRATE 3 0
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 36 8 "Numero di rate "
|
PROMPT 36 6 "Numero di rate "
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN FS_RECALC
|
BOOLEAN FS_RECALC
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 58 7 "Ricalcolo automatico"
|
PROMPT 58 5 "Ricalcolo automatico"
|
||||||
MESSAGE TRUE ENABLE,FS_RDIFFER|ENABLE,FS_MCOMM|K_SPACE,FS_RDIFFER
|
MESSAGE TRUE ENABLE,FS_RDIFFER|ENABLE,FS_MCOMM|K_SPACE,FS_RDIFFER
|
||||||
MESSAGE FALSE DISABLE,FS_RDIFFER|DISABLE,FS_MCOMM|DISABLE,FS_NRATE
|
MESSAGE FALSE DISABLE,FS_RDIFFER|DISABLE,FS_MCOMM|DISABLE,FS_NRATE
|
||||||
HELP "Attiva/disattiva il ricalcolo automatico delle scadenze"
|
HELP "Attiva/disattiva il ricalcolo automatico delle scadenze"
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN FS_MCOMM
|
BOOLEAN FS_MCOMM
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 36 7 "Mese commerciale"
|
PROMPT 36 5 "Mese commerciale"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
STRING FS_NAMEPAG 27
|
STRING FS_NAMEPAG 27
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 36 5 "Pagamento "
|
PROMPT 36 3 "Pagamento "
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING FS_TIPOPR 27
|
STRING FS_TIPOPR 27
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 36 6 "Tipo prima rata "
|
PROMPT 36 4 "Tipo prima rata "
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER FS_NSABI 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 8 "Ns. Banca ABI "
|
||||||
|
FLAGS "Z"
|
||||||
|
USE %BAN
|
||||||
|
INPUT CODTAB[1,5] FS_NSABI
|
||||||
|
INPUT CODTAB[6,10] FS_NSCAB
|
||||||
|
DISPLAY "ABI@5" CODTAB[1,5]
|
||||||
|
DISPLAY "CAB@5" CODTAB[6,10]
|
||||||
|
DISPLAY "Denominazione@50" S0
|
||||||
|
OUTPUT FS_NSABI CODTAB[1,5]
|
||||||
|
OUTPUT FS_NSCAB CODTAB[6,10]
|
||||||
|
OUTPUT FS_DESCNSABI S0
|
||||||
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
SPREADSHEET FS_RATESHEET 0 8
|
NUMBER FS_NSCAB 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 25 8 "CAB "
|
||||||
|
FLAGS "Z"
|
||||||
|
COPY ALL FS_NSABI
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING FS_DESCNSABI 50 37
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 8 ""
|
||||||
|
USE %BAN KEY 2
|
||||||
|
INPUT S0 FS_DESCNSABI
|
||||||
|
DISPLAY "Denominazione@50" S0
|
||||||
|
DISPLAY "ABI@5" CODTAB[1,5]
|
||||||
|
DISPLAY "CAB@5" CODTAB[6,10]
|
||||||
|
COPY OUTPUT FS_NSABI
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER FS_VSABI 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 9 "Vs. Banca ABI "
|
||||||
|
FLAGS "Z"
|
||||||
|
COPY USE FS_NSABI
|
||||||
|
INPUT CODTAB[1,5] FS_VSABI
|
||||||
|
INPUT CODTAB[6,10] FS_VSCAB
|
||||||
|
COPY DISPLAY FS_NSABI
|
||||||
|
OUTPUT FS_VSABI CODTAB[1,5]
|
||||||
|
OUTPUT FS_VSCAB CODTAB[6,10]
|
||||||
|
OUTPUT FS_DESCVSABI S0
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER FS_VSCAB 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 25 9 "CAB "
|
||||||
|
FLAGS "Z"
|
||||||
|
COPY ALL FS_VSABI
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING FS_DESCVSABI 50 37
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 9 ""
|
||||||
|
COPY USE FS_DESCNSABI
|
||||||
|
INPUT S0 FS_DESCVSABI
|
||||||
|
COPY DISPLAY FS_DESCNSABI
|
||||||
|
COPY OUTPUT FS_VSABI
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING FS_AGENTE 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 10 "Agente "
|
||||||
|
FLAGS "UZ"
|
||||||
|
USE AGE
|
||||||
|
INPUT CODTAB FS_AGENTE
|
||||||
|
DISPLAY "Codice" CODTAB
|
||||||
|
DISPLAY "Descrizione @50" S0
|
||||||
|
OUTPUT FS_AGENTE CODTAB
|
||||||
|
OUTPUT FS_DESCAGENTE S0
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING FS_DESCAGENTE 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 27 10 ""
|
||||||
|
USE AGE KEY 2
|
||||||
|
INPUT S0 FS_DESCAGENTE
|
||||||
|
DISPLAY "Descrizione @50" S0
|
||||||
|
DISPLAY "Codice" CODTAB
|
||||||
|
COPY OUTPUT FS_AGENTE
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
SPREADSHEET FS_RATESHEET
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 10 "Rate"
|
PROMPT 0 11 "Rate"
|
||||||
ITEM "Scadenza@10"
|
ITEM "Scadenza@10"
|
||||||
ITEM "Importo@15"
|
ITEM "Importo@15"
|
||||||
ITEM "Percentuale@12"
|
ITEM "In Valuta@15"
|
||||||
ITEM "Tipo"
|
ITEM "Percentuale@12"
|
||||||
ITEM "Pagamento@32"
|
ITEM "Tipo"
|
||||||
|
ITEM "Pagamento@32"
|
||||||
|
ITEM "Ns.ABI"
|
||||||
|
ITEM "Ns.CAB"
|
||||||
|
ITEM "Vs.ABI"
|
||||||
|
ITEM "Vs.CAB"
|
||||||
|
ITEM "Pagata"
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON FS_RESET 7 1
|
BUTTON FS_RESET 7 1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 -1 "Reset"
|
PROMPT 1 -1 "Reset"
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
2682
cg/pagament.cpp
2682
cg/pagament.cpp
File diff suppressed because it is too large
Load Diff
@ -29,9 +29,10 @@ class TPagamento : public TObject
|
|||||||
real _imponibile; // imponibile da affettare
|
real _imponibile; // imponibile da affettare
|
||||||
real _imposta; // imposta da affettare
|
real _imposta; // imposta da affettare
|
||||||
real _spese; // spese da affettare
|
real _spese; // spese da affettare
|
||||||
|
real _cambio; // cambio valuta
|
||||||
TDistrib _slicer; // affettatrice
|
TDistrib _slicer; // affettatrice
|
||||||
bool _new; // non letto da database
|
bool _new; // non letto da database
|
||||||
TArray _rate; // rate medesime
|
TString_array _rate; // rate medesime
|
||||||
char _inscad; // inizio scadenze: S1
|
char _inscad; // inizio scadenze: S1
|
||||||
bool _mcomm; // mese commerciale: B0
|
bool _mcomm; // mese commerciale: B0
|
||||||
bool _rdiff; // rate differenziate: B1
|
bool _rdiff; // rate differenziate: B1
|
||||||
@ -47,6 +48,7 @@ class TPagamento : public TObject
|
|||||||
int _int_rate;
|
int _int_rate;
|
||||||
|
|
||||||
int _rata_ifield(int n, int f) const;
|
int _rata_ifield(int n, int f) const;
|
||||||
|
long _rata_lfield(int n, int f) const;
|
||||||
real _rata_rfield(int n, int f) const;
|
real _rata_rfield(int n, int f) const;
|
||||||
TDate _rata_dfield(int n, int f) const;
|
TDate _rata_dfield(int n, int f) const;
|
||||||
const char* _rata_sfield(int n, int f) const;
|
const char* _rata_sfield(int n, int f) const;
|
||||||
@ -65,21 +67,21 @@ public:
|
|||||||
real imposta() const { return _imposta; }
|
real imposta() const { return _imposta; }
|
||||||
real spese() const { return _spese; }
|
real spese() const { return _spese; }
|
||||||
|
|
||||||
int tipo_rata(int n) const { return _rata_ifield(n,2);}
|
int scad_rata(int n) const { return _rata_ifield(n,0);}
|
||||||
real perc_rata(int n) const { return _rata_rfield(n,1);}
|
real perc_rata(int n) const { return _rata_rfield(n,1);}
|
||||||
int scad_rata(int n) const { return _rata_ifield(n,0);}
|
int tipo_rata(int n) const { return _rata_ifield(n,2);}
|
||||||
TDate data_rata(int n) const { return _rata_dfield(n,3);}
|
TDate data_rata(int n) const { return _rata_dfield(n,3);}
|
||||||
real tpay_rata(int n) const { return _rata_rfield(n,4);}
|
real tpay_rata(int n) const { return _rata_rfield(n,4);}
|
||||||
const char* ulc_rata(int n) const { return _rata_sfield(n,5);}
|
const char* ulc_rata(int n) const { return _rata_sfield(n,5);}
|
||||||
|
bool ratapagata(int n) const { return _rata_sfield(n,6)[0] > ' ';}
|
||||||
|
real tlit_rata(int n) const { return _rata_rfield(n,7);}
|
||||||
|
|
||||||
char inizio_scadenza() const { return _inscad; }
|
char inizio_scadenza() const { return _inscad; }
|
||||||
bool mese_commerciale() const { return _mcomm; }
|
bool mese_commerciale() const { return _mcomm; }
|
||||||
bool rate_differenziate() const { return _rdiff; }
|
bool rate_differenziate() const { return _rdiff; }
|
||||||
int tipo_prima_rata() const { return _tpr; }
|
int tipo_prima_rata() const { return _tpr; }
|
||||||
int decs() const { return _round; }
|
int decs() const { return _round; }
|
||||||
|
|
||||||
// mi scuso per la mancanza di underscore, ma mi piaceva cosi'
|
|
||||||
bool ratapagata(int n);
|
|
||||||
|
|
||||||
const TString& name() const { return _name; }
|
const TString& name() const { return _name; }
|
||||||
const TString& code() const { return _code; }
|
const TString& code() const { return _code; }
|
||||||
const char* desc_tpr() const;
|
const char* desc_tpr() const;
|
||||||
@ -101,6 +103,7 @@ public:
|
|||||||
void set_inizio_scadenza(char v) { _inscad = v; }
|
void set_inizio_scadenza(char v) { _inscad = v; }
|
||||||
void set_code(const char* c) { _code = c; }
|
void set_code(const char* c) { _code = c; }
|
||||||
void set_round(int n) { _round = n; }
|
void set_round(int n) { _round = n; }
|
||||||
|
void set_cambio(const real& ex);
|
||||||
|
|
||||||
// check consistency: returns word with errors flagged, 0 if ok
|
// check consistency: returns word with errors flagged, 0 if ok
|
||||||
word validate() const;
|
word validate() const;
|
||||||
@ -121,9 +124,10 @@ public:
|
|||||||
TToken_string& set_rata (int index, real perc, int day, int type,
|
TToken_string& set_rata (int index, real perc, int day, int type,
|
||||||
const char* ulc = NULL, const char* imp = NULL,
|
const char* ulc = NULL, const char* imp = NULL,
|
||||||
const char* data = NULL);
|
const char* data = NULL);
|
||||||
|
|
||||||
// questa calcola percentuali e scadenze a partire dagli importi
|
// questa calcola percentuali e scadenze a partire dagli importi
|
||||||
TToken_string& set_rata (int index, real& howmuch, const TDate& date, int type,
|
TToken_string& set_rata(int index, const real& howmuch, const real& quanto,
|
||||||
const char* ulc, bool pagato);
|
const TDate& date, int type, const char* ulc, bool pagata);
|
||||||
|
|
||||||
// settano tipo rata e ult. class default per le rate; se bool = TRUE
|
// settano tipo rata e ult. class default per le rate; se bool = TRUE
|
||||||
// modificano anche le eventuali rate esistenti
|
// modificano anche le eventuali rate esistenti
|
||||||
|
@ -229,11 +229,20 @@ bool TRiga_scadenze::in_valuta() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Controlla se la rata e' stata completamente pagata
|
// Controlla se la rata e' stata completamente pagata
|
||||||
bool TRiga_scadenze::chiusa() const
|
bool TRiga_scadenze::chiusa(bool update) const
|
||||||
{
|
{
|
||||||
TImporto imp(importo_da_pagare(TRUE));
|
bool chiusa;
|
||||||
imp += importo_pagato(TRUE, 0x3);
|
if (update)
|
||||||
return imp.is_zero();
|
{
|
||||||
|
TImporto imp(importo_da_pagare(TRUE));
|
||||||
|
imp += importo_pagato(TRUE, 0x3);
|
||||||
|
chiusa = imp.is_zero();
|
||||||
|
((TRectype*)this)->put(SCAD_PAGATA, chiusa ? "X" : "");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
chiusa = get_bool(SCAD_PAGATA);
|
||||||
|
|
||||||
|
return chiusa;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calcola il totale dei pagamenti (eventualmente in valuta)
|
// Calcola il totale dei pagamenti (eventualmente in valuta)
|
||||||
@ -877,7 +886,7 @@ bool TPartita::chiusa(bool update)
|
|||||||
for (int r = part.last(); r > 0; r--)
|
for (int r = part.last(); r > 0; r--)
|
||||||
{
|
{
|
||||||
const TRiga_scadenze& scad = part.rata(r);
|
const TRiga_scadenze& scad = part.rata(r);
|
||||||
if (!scad.chiusa())
|
if (!scad.chiusa(update))
|
||||||
{
|
{
|
||||||
forse_chiusa = FALSE;
|
forse_chiusa = FALSE;
|
||||||
break;
|
break;
|
||||||
|
@ -125,7 +125,7 @@ protected: // TRecord_tree
|
|||||||
virtual TObject* dup() const { return new TRiga_scadenze(*this); }
|
virtual TObject* dup() const { return new TRiga_scadenze(*this); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool chiusa() const;
|
bool chiusa(bool update = FALSE) const;
|
||||||
|
|
||||||
bool in_valuta() const;
|
bool in_valuta() const;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user