Patch level : 12.0 1044
Files correlati : ef0.exe ef0100a.msk eftbman.msk f98.trr ef0a00a.msk Commento : Supporto per gli IBAN esteri negli effetti
This commit is contained in:
parent
c351af1642
commit
13190787a0
@ -543,13 +543,15 @@ bool TPE_mask::fill_distinta(bool clear_all)
|
||||
bool partially_unassigned;
|
||||
TSheet_field& sheet = sfield(F_SHEET);
|
||||
TToken_string& row = sheet.row(rows++);
|
||||
|
||||
if (fill_row(rs, row, partially_unassigned, dist_cont, clear_all))
|
||||
{
|
||||
row.add(eff.get(EFF_CUP), sheet.cid2index(F_CUP));
|
||||
row.add(eff.get(EFF_CIG), sheet.cid2index(F_CIG));
|
||||
row.add(eff.get(EFF_CODABI), sheet.cid2index(F_ABIAPP));
|
||||
row.add(eff.get(EFF_CODCAB), sheet.cid2index(F_CABAPP));
|
||||
row.add(eff.get(EFF_IBAN), sheet.cid2index(F_IBANAPP));
|
||||
row.add(eff.get(EFF_CUP), cid2index(F_CUP));
|
||||
row.add(eff.get(EFF_CIG), cid2index(F_CIG));
|
||||
row.add(eff.get(EFF_CODABI), cid2index(F_ABIAPP));
|
||||
row.add(eff.get(EFF_CODCAB), cid2index(F_CABAPP));
|
||||
row.add(eff.get(EFF_IBAN), cid2index(F_IBANAPP));
|
||||
sheet.enable_cell(r - 1, cid2index(F_IBANAPP), row.get_int(cid2index(F_RIGAEFF)) < 2);
|
||||
sheet.check_row(r - 1);
|
||||
if (partially_unassigned)
|
||||
sheet.disable_cell(r - 1, 1); // Non e' possibile mettere saldo
|
||||
@ -659,29 +661,26 @@ bool TPE_mask::check_bank(TEffetto& effetto, TLog_report& log) const
|
||||
TString8 cab = effetto.get(EFF_CODCAB);
|
||||
TString80 iban = effetto.get(EFF_IBAN);
|
||||
|
||||
if (iban.blank())
|
||||
{
|
||||
TToken_string key(8);
|
||||
|
||||
key = effetto.get(EFF_TIPOCF);
|
||||
key.add(effetto.get(EFF_CODCF));
|
||||
const TRectype& clifo = cache().get(LF_CLIFO, key);
|
||||
key.add("V");
|
||||
key.add(1);
|
||||
|
||||
const TRectype& clifo = cache().get(LF_CFBAN, key);
|
||||
|
||||
if (real::is_null(abi) || real::is_null(cab))
|
||||
{
|
||||
abi = clifo.get(CLI_CODABI);
|
||||
cab = clifo.get(CLI_CODCAB);
|
||||
}
|
||||
if (iban.blank())
|
||||
iban = clifo.get(CLI_IBAN);
|
||||
if (iban.starts_with("IT") && iban.len() > 15)
|
||||
{
|
||||
abi = iban.mid(5, 5);
|
||||
cab = iban.mid(10, 5);
|
||||
}
|
||||
|
||||
effetto.put(EFF_CODABI, abi);
|
||||
effetto.put(EFF_CODCAB, cab);
|
||||
effetto.put(EFF_IBAN, iban);
|
||||
|
||||
|
||||
if (tipocf == 'C' && tipopag == 3)
|
||||
if (real::is_null(abi) || real::is_null(cab))
|
||||
{
|
||||
@ -700,6 +699,7 @@ bool TPE_mask::check_bank(TEffetto& effetto, TLog_report& log) const
|
||||
log.log(2, msg);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -709,6 +709,7 @@ void TPE_mask::save_rate()
|
||||
|
||||
const char tipodist = get(F_TIPODIST)[0];
|
||||
long numdist = get_long(F_DIST);
|
||||
|
||||
if (_is_new)
|
||||
{
|
||||
TLocalisamfile f(LF_EFFETTI); f.setkey(4);
|
||||
@ -719,7 +720,9 @@ void TPE_mask::save_rate()
|
||||
f.put(EFF_NRIGADIST, 1);
|
||||
if (f.read(_isgteq) != NOERR || f.get_char(EFF_TIPODIST) != tipodist || f.get_long(EFF_NDIST) != numdist)
|
||||
break;
|
||||
|
||||
const long nd = get_free_num();
|
||||
|
||||
TString msg; msg.format(FR("La distinta %ld è già presente: verrà rinumerata in %ld"), numdist, nd);
|
||||
log.log(1, msg);
|
||||
numdist = nd;
|
||||
@ -728,19 +731,18 @@ void TPE_mask::save_rate()
|
||||
}
|
||||
|
||||
TDistinta distinta(tipodist, numdist, _lock);
|
||||
|
||||
const TString& codval = get(F_CODVAL);
|
||||
const real cambio = get(F_CAMBIO);
|
||||
const int tipopag = get_int(F_TIPOPAG);
|
||||
|
||||
bool zeroes = false; // Esistono righe effetto da cancellare
|
||||
const bool attivo = get(F_TIPOCF) == "C";
|
||||
|
||||
TSheet_field& sheet = sfield(F_SHEET);
|
||||
|
||||
FOR_EACH_SHEET_ROW(sheet, r, row)
|
||||
{
|
||||
real imp = row->get(sheet.cid2index(F_IMPORTO));
|
||||
real imp = row->get(cid2index(F_IMPORTO));
|
||||
real impval;
|
||||
|
||||
if (codval.full() && !imp.is_zero())
|
||||
{
|
||||
impval = imp;
|
||||
@ -748,58 +750,64 @@ void TPE_mask::save_rate()
|
||||
c.change_to_firm_val();
|
||||
imp = c.get_num();
|
||||
}
|
||||
char accsal = row->get_char(sheet.cid2index(F_ACCSAL));
|
||||
int rigadist = row->get_int(sheet.cid2index(F_RIGADIST));
|
||||
int rigaeff = row->get_int(sheet.cid2index(F_RIGAEFF));
|
||||
|
||||
char accsal = row->get_char(cid2index(F_ACCSAL));
|
||||
int rigadist = row->get_int(cid2index(F_RIGADIST));
|
||||
int rigaeff = row->get_int(cid2index(F_RIGAEFF));
|
||||
|
||||
if (rigaeff > 0 || accsal == 'S' || imp > ZERO)
|
||||
{
|
||||
TToken_string key;
|
||||
|
||||
key.add(get(F_TIPOCF));
|
||||
key.add("0|0");
|
||||
key.add(row->get(sheet.cid2index(F_CODCF)));
|
||||
key.add(row->get(sheet.cid2index(F_ANNO)));
|
||||
key.add(row->get(sheet.cid2index(F_PARTITA)));
|
||||
key.add(row->get(sheet.cid2index(F_RIGA)));
|
||||
key.add(row->get(cid2index(F_CODCF)));
|
||||
key.add(row->get(cid2index(F_ANNO)));
|
||||
key.add(row->get(cid2index(F_PARTITA)));
|
||||
key.add(row->get(cid2index(F_RIGA)));
|
||||
|
||||
// Trova partita
|
||||
const TRectype& part = cache().get(LF_PARTITE, key);
|
||||
|
||||
// Trova rata
|
||||
key.add(row->get(sheet.cid2index(F_RATA)));
|
||||
key.add(row->get(cid2index(F_RATA)));
|
||||
|
||||
const TRectype& scad = cache().get(LF_SCADENZE, key);
|
||||
// eff.put(EFF_DATASCAD, scad.get(SCAD_DATASCAD));
|
||||
TDate datapag(row->get(sheet.cid2index(F_DATAPAG)));
|
||||
TDate datapag(row->get(cid2index(F_DATAPAG)));
|
||||
|
||||
if (!datapag.ok())
|
||||
datapag = attivo ? scad.get(SCAD_DATASCAD) : get(F_DATADIST);
|
||||
const TString cup = row->get(sheet.cid2index(F_CUP));
|
||||
|
||||
const TString cup = row->get(cid2index(F_CUP));
|
||||
const TRectype& mov = cache().get(LF_MOV, part.get(PART_NREG));
|
||||
const TString cig = row->get(sheet.cid2index(F_CIG));
|
||||
const TString cig = row->get(cid2index(F_CIG));
|
||||
const TString16 contsep = mov.get(MOV_CONTSEP);
|
||||
TEffetto& eff = distinta[rigadist - 1];
|
||||
|
||||
if (rigaeff <= 0)
|
||||
{
|
||||
const char tipocf = get(F_TIPOCF)[0];
|
||||
const long codcf = row->get_long(sheet.cid2index(F_CODCF));
|
||||
const long codcf = row->get_long(cid2index(F_CODCF));
|
||||
TRectype& reff = new_row_effetto(distinta, tipocf, codcf, cup, cig, contsep, datapag, rigadist, rigaeff);
|
||||
|
||||
reff.put(REFF_ANNO, row->get(sheet.cid2index(F_ANNO)));
|
||||
reff.put(REFF_NUMPART, row->get(sheet.cid2index(F_PARTITA)));
|
||||
reff.put(REFF_NRIGA, row->get(sheet.cid2index(F_RIGA)));
|
||||
reff.put(REFF_NRATA, row->get(sheet.cid2index(F_RATA)));
|
||||
reff.put(REFF_ANNO, row->get(cid2index(F_ANNO)));
|
||||
reff.put(REFF_NUMPART, row->get(cid2index(F_PARTITA)));
|
||||
reff.put(REFF_NRIGA, row->get(cid2index(F_RIGA)));
|
||||
reff.put(REFF_NRATA, row->get(cid2index(F_RATA)));
|
||||
|
||||
reff.put(REFF_NFATT, part.get(PART_NUMDOC));
|
||||
reff.put(REFF_DATAFATT, part.get(PART_DATADOC));
|
||||
reff.put(REFF_IMPFATT, part.get(PART_IMPORTO));
|
||||
|
||||
TEffetto& eff = distinta[rigadist-1];
|
||||
|
||||
eff.put(EFF_DSCVAL, row->get(sheet.cid2index(F_VALBEN)));
|
||||
eff.put(EFF_TIPOPAG, tipopag);
|
||||
eff.put(EFF_CODABI, row->get(sheet.cid2index(F_ABIAPP)));
|
||||
eff.put(EFF_CODCAB, row->get(sheet.cid2index(F_ABIAPP)));
|
||||
eff.put(EFF_IBAN, row->get(sheet.cid2index(F_IBANAPP)));
|
||||
}
|
||||
|
||||
TEffetto& eff = distinta[rigadist-1];
|
||||
|
||||
if (sheet.cell_enabled(r, cid2index(F_IBANAPP)))
|
||||
{
|
||||
eff.put(EFF_CODABI, row->get(cid2index(F_ABIAPP)));
|
||||
eff.put(EFF_CODCAB, row->get(cid2index(F_ABIAPP)));
|
||||
eff.put(EFF_IBAN, row->get(cid2index(F_IBANAPP)));
|
||||
}
|
||||
eff.put(EFF_DATASCAD, datapag);
|
||||
eff.put(EFF_CUP, cup);
|
||||
eff.put(EFF_CIG, cig);
|
||||
@ -807,9 +815,9 @@ void TPE_mask::save_rate()
|
||||
check_bank(eff, log); // Cerca di sistemare ABI/CAB/IBAN
|
||||
|
||||
TRectype& reff = eff.row_r(rigaeff);
|
||||
|
||||
const real oldimp = reff.get(REFF_IMPORTO);
|
||||
const real oldimpval = reff.get(REFF_IMPORTOVAL);
|
||||
|
||||
reff.put(REFF_IMPORTO, imp);
|
||||
reff.put(REFF_IMPORTOVAL, impval);
|
||||
reff.put(REFF_ACCSAL, accsal);
|
||||
@ -823,10 +831,12 @@ void TPE_mask::save_rate()
|
||||
|
||||
// Ricalcola totali righe ed elimina le righe NULLE
|
||||
TLocalisamfile f(LF_EFFETTI); f.setkey(1);
|
||||
|
||||
for (int rd = distinta.items()-1; rd >= 0; rd--)
|
||||
{
|
||||
TEffetto& eff = distinta[rd];
|
||||
real totimp, totimpval;
|
||||
|
||||
for (int i = eff.rows_r(); i > 0; i--)
|
||||
{
|
||||
const TRectype& reff = eff.row_r(i);
|
||||
@ -843,6 +853,7 @@ void TPE_mask::save_rate()
|
||||
if (eff.rows_r() == 0)
|
||||
{
|
||||
int err = eff.read(f, eff, _lock);
|
||||
|
||||
if (err == NOERR)
|
||||
err = eff.remove(f);
|
||||
if (err == NOERR)
|
||||
@ -867,6 +878,7 @@ void TPE_mask::save_rate()
|
||||
}
|
||||
|
||||
TToken_string dati_dist;
|
||||
|
||||
dati_dist.add(tipodist);
|
||||
dati_dist.add(numdist);
|
||||
dati_dist.add(get(F_DATADIST));
|
||||
@ -1157,6 +1169,7 @@ bool TPE_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
if (e == fe_button)
|
||||
{
|
||||
TEdit_field& cab = efield(F_CAB);
|
||||
|
||||
if (!cab.empty())
|
||||
{
|
||||
if (check_fields())
|
||||
|
@ -377,13 +377,13 @@ END
|
||||
|
||||
NUMBER F_CODCF 6
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
PROMPT 1 2 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 9 1 ""
|
||||
PROMPT 9 2 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
@ -504,13 +504,24 @@ END
|
||||
STRING F_ABIAPP 5
|
||||
BEGIN
|
||||
PROMPT 1 10 "Banca di appoggio"
|
||||
USE LF_CFBAN KEY 2
|
||||
FLAGS "DZ"
|
||||
ENDPAGE
|
||||
|
||||
STRING F_CABAPP 5
|
||||
BEGIN
|
||||
PROMPT 18 11 ""
|
||||
FLAGS "DZ"
|
||||
END
|
||||
|
||||
STRING F_IBANAPP 27
|
||||
BEGIN
|
||||
PROMPT 13 12 "IBAN "
|
||||
USE LF_CFBAN KEY 3
|
||||
JOIN %BAN INTO CODTAB[1,5]==ABI CODTAB[6,10]==CAB
|
||||
INPUT TIPOCF -F_TIPOCF SE
|
||||
INPUT CODCF F_CODCF SE
|
||||
INPUT TIPOBAN "V"
|
||||
INPUT ABI F_ABIAPP
|
||||
INPUT CAB F_CABAPP
|
||||
INPUT IBAN F_IBANAPP
|
||||
DISPLAY "Cod. Istit." ABI
|
||||
DISPLAY "Cod. Fil." CAB
|
||||
DISPLAY "IBAN@27" IBAN
|
||||
@ -519,21 +530,6 @@ BEGIN
|
||||
OUTPUT F_CABAPP CAB
|
||||
OUTPUT F_IBANAPP IBAN
|
||||
CHECTYPE NORMAL
|
||||
FLAGS "Z"
|
||||
ENDPAGE
|
||||
|
||||
STRING F_CABAPP 5
|
||||
BEGIN
|
||||
PROMPT 18 11 ""
|
||||
COPY ALL F_ABIAPP
|
||||
CHECTYPE NORMAL
|
||||
FLAGS "Z"
|
||||
END
|
||||
|
||||
STRING F_IBANAPP 27
|
||||
BEGIN
|
||||
PROMPT 13 12 "IBAN "
|
||||
FLAGS "D"
|
||||
END
|
||||
ENDPAGE
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user