Patch level : 10.1004

Files correlati     :  ef0.exe
Ricompilazione Demo : [ ]
Commento            :

Bug 0001475: 0001837: Aggiungere selezione banca di appoggio su Disp. Incassi e pagamenti

Nel programma di disposizioni incasso e pagamento non è possibile selezionare su quale banca bonificare il fornitore tra quelle presenti in anagrafica.
Inoltre anche dal programma aggiornamento effetti se vado nella pagina dei parametri, non posso selezionare dalla tabella dalle banche del fornitore ma dall'anagrafica delle banche.


git-svn-id: svn://10.65.10.50/branches/R_10_00@22152 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2011-05-23 14:31:31 +00:00
parent 4e27c19bfc
commit 0fe6774d4c
3 changed files with 103 additions and 57 deletions

View File

@ -268,6 +268,24 @@ bool TPE_mask::fill_row(const TRiga_scadenze& rs, TToken_string& row, bool& part
row.add("");
row.add(cig);
row.add("");
TToken_string key;
key.add(get(F_TIPOCF));
key.add(rs.get_long(SCAD_SOTTOCONTO));
key.add("V");
key.add(1);
const TRectype & ns_ban = cache().get(LF_CFBAN, key);
if (ns_ban.empty())
{
row.add("");
row.add("");
}
else
{
row.add(rs.get(SCAD_CODABI));
row.add(rs.get(SCAD_CODCAB));
}
row.add("");
}
return ok;
}
@ -484,6 +502,9 @@ bool TPE_mask::fill_distinta(bool 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));
sheet.check_row(r - 1);
if (partially_unassigned)
sheet.disable_cell(r - 1, 1); // Non e' possibile mettere saldo
@ -584,51 +605,48 @@ bool TPE_mask::check_bank(TEffetto& effetto, TLog_report& log) const
const int tipocf = effetto.get_char(EFF_TIPOCF);
// Controllo solo ri.ba. clienti e bonifici fornitori
if ((tipocf=='F') ? (tipopag==9) : (tipopag==3))
TString8 abi = effetto.get(EFF_CODABI);
TString8 cab = effetto.get(EFF_CODCAB);
TString80 iban = effetto.get(EFF_IBAN);
TToken_string key(8);
key = effetto.get(EFF_TIPOCF);
key.add(effetto.get(EFF_CODCF));
const TRectype& clifo = cache().get(LF_CLIFO, key);
if (real::is_null(abi) || real::is_null(cab))
{
TString8 abi = effetto.get(EFF_CODABI);
TString8 cab = effetto.get(EFF_CODCAB);
TString80 iban = effetto.get(EFF_IBAN);
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);
}
TToken_string key(8);
key = effetto.get(EFF_TIPOCF);
key.add(effetto.get(EFF_CODCF));
const TRectype& clifo = cache().get(LF_CLIFO, key);
effetto.put(EFF_CODABI, abi);
effetto.put(EFF_CODCAB, cab);
effetto.put(EFF_IBAN, iban);
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);
}
if ((tipocf == 'C' || tipopag != 9) && (real::is_null(abi) || real::is_null(cab)))
{
TString msg;
msg.format(FR("Impossibile determinare ABI/CAB del %s sull'effetto %ld"),
(const char*)key, effetto.get_long(EFF_NPROGTR));
log.log(2, msg);
return false;
}
effetto.put(EFF_CODABI, abi);
effetto.put(EFF_CODCAB, cab);
effetto.put(EFF_IBAN, iban);
if (tipopag == 3 && (real::is_null(abi) || real::is_null(cab)))
{
TString msg;
msg.format(FR("Impossibile determinare ABI/CAB del %s sull'effetto %ld"),
(const char*)key, effetto.get_long(EFF_NPROGTR));
log.log(2, msg);
return false;
}
if (tipopag == 9 && iban.blank())
{
TString msg;
msg.format(FR("Impossibile determinare IBAN del %s sull'effetto %ld"),
(const char*)key, effetto.get_long(EFF_NPROGTR));
log.log(2, msg);
return false;
}
if ((tipocf == 'F' && tipopag == 9) && iban.blank())
{
TString msg;
msg.format(FR("Impossibile determinare IBAN del %s sull'effetto %ld"),
(const char*)key, effetto.get_long(EFF_NPROGTR));
log.log(2, msg);
return false;
}
return true;
}
@ -717,26 +735,14 @@ void TPE_mask::save_rate()
reff.put(REFF_NFATT, part.get(PART_NUMDOC));
reff.put(REFF_DATAFATT, part.get(PART_DATADOC));
reff.put(REFF_IMPFATT, part.get(PART_IMPORTO));
TString8 abi = scad.get(SCAD_CODABI);
TString8 cab = scad.get(SCAD_CODCAB);
key.format("%c|%ld", tipocf, codcf);
const TRectype& clifo = cache().get(LF_CLIFO, key);
TString80 iban = clifo.get(CLI_IBAN);
if (iban.starts_with("IT") || real::is_null(abi) || real::is_null(cab))
{
abi = clifo.get(CLI_CODABI);
cab = clifo.get(CLI_CODCAB);
}
TEffetto& eff = distinta[rigadist-1];
eff.put(EFF_DSCVAL, row->get(sheet.cid2index(F_VALBEN)));
eff.put(EFF_TIPOPAG, tipopag);
eff.put(EFF_CODABI, abi);
eff.put(EFF_CODCAB, cab);
eff.put(EFF_IBAN, iban);
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];

View File

@ -48,3 +48,6 @@
#define F_DCUP 117
#define F_CIG 118
#define F_DCIG 119
#define F_ABIAPP 120
#define F_CABAPP 121
#define F_IBANAPP 122

View File

@ -341,6 +341,9 @@ BEGIN
ITEM "Descrizione CUP@50"
ITEM "CIG@10"
ITEM "Descrizione CIG@50"
ITEM "ABI@5"
ITEM "CAB@5"
ITEM "IBAN@27"
END
CURRENCY F_TOTAL 18
@ -499,6 +502,40 @@ BEGIN
COPY OUTPUT F_CIG
END
STRING F_ABIAPP 5
BEGIN
PROMPT 1 10 "Banca di appoggio"
USE LF_CFBAN KEY 2
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
DISPLAY "Cod. Istit." ABI
DISPLAY "Cod. Fil." CAB
DISPLAY "IBAN@27" IBAN
DISPLAY "Denominazione@50" %BAN->S0
OUTPUT F_ABIAPP ABI
OUTPUT F_CABAPP CAB
OUTPUT F_IBANAPP IBAN
CHECTYPE NORMAL
FLAGS "Z"
ENDPAGE
STRING F_CABAPP 5
BEGIN
PROMPT 20 10 ""
COPY ALL F_ABIAPP
CHECTYPE NORMAL
FLAGS "Z"
END
STRING F_IBANAPP 27
BEGIN
PROMPT 30 10 "IBAN "
FLAGS "D"
END
ENDPAGE
TOOLBAR "" 0 0 0 2