Patch level : 12.0 854
Files correlati : ef0.exe Commento : Modifica effetti per banca appoggio presentazione
This commit is contained in:
parent
96c3948cd6
commit
bd61635e79
@ -22,6 +22,7 @@ class TVariazione_effetti: public TRelation_application
|
||||
TMask *_msk;
|
||||
TEffetto *_effetto;
|
||||
TRelation *_rel;
|
||||
TCli_for * _cli;
|
||||
|
||||
protected:
|
||||
virtual void init_query_mode(TMask&);
|
||||
@ -57,8 +58,11 @@ protected:
|
||||
public:
|
||||
virtual bool protected_record(TRectype&);
|
||||
virtual TRelation* get_relation() const {return _rel;}
|
||||
TVariazione_effetti() {};
|
||||
virtual ~TVariazione_effetti() {};
|
||||
TVariazione_effetti(): _msk(nullptr), _effetto(nullptr), _rel(nullptr), _cli(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~TVariazione_effetti() = default;
|
||||
};
|
||||
|
||||
// restituisce un riferimento all' applicazione
|
||||
@ -366,8 +370,15 @@ bool TVariazione_effetti::clifo_handler(TMask_field& f, KEY k)
|
||||
if (k == K_TAB && f.to_check(k))
|
||||
{
|
||||
TMask& m = f.mask();
|
||||
TString iban; iban << get_iban(m.get(F_CODCF));
|
||||
if (iban.not_empty())
|
||||
const char tipocf = m.get(F_TIPOCF)[0];
|
||||
const long codcf = m.get_long(F_CODCF);
|
||||
if (app()._cli == nullptr)
|
||||
app()._cli = new TCli_for();
|
||||
if (app()._cli->tipo() != tipocf || app()._cli->codice() != codcf)
|
||||
app()._cli->read(tipocf, codcf);
|
||||
const TString & iban = app()._cli->get_iban();
|
||||
|
||||
if (iban.full())
|
||||
{
|
||||
m.set(F_IBAN, iban);
|
||||
m.set(F_IBAN_STATO, iban.left(2));
|
||||
@ -379,7 +390,15 @@ bool TVariazione_effetti::clifo_handler(TMask_field& f, KEY k)
|
||||
m.set(F_BBAN_CONTO, iban.mid(15));
|
||||
m.efield(F_IBAN_STATO).validate(K_TAB);
|
||||
}
|
||||
}
|
||||
TToken_string& banp = app()._cli->get_ban_pres();
|
||||
if (banp.full())
|
||||
{
|
||||
m.set(F_CODABIP, banp.get());
|
||||
m.set(F_CODCABP, banp.get());
|
||||
m.set(F_PROG, banp.get());
|
||||
m.efield(F_PROG).validate(K_TAB);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -721,45 +721,4 @@ TString& to_tstring(long n)
|
||||
TString& to_tstring(int n)
|
||||
{
|
||||
return to_tstring(static_cast<long>(n));
|
||||
}
|
||||
|
||||
bool get_bnp_iban(const TString& abi, const TString& cab, int nprog, TString& iban)
|
||||
{
|
||||
TTable bnp("BNP");
|
||||
TString16 key;
|
||||
key << abi << cab;
|
||||
if (nprog > 0)
|
||||
{
|
||||
TString4 sprog;
|
||||
sprog.format("%02d", nprog);
|
||||
key << sprog;
|
||||
}
|
||||
bnp.put("CODTAB", key);
|
||||
int err = bnp.read(_isgteq);
|
||||
if (err == NOERR && !bnp.get("CODTAB").starts_with(abi))
|
||||
err = _iskeynotfound;
|
||||
if (err == NOERR)
|
||||
iban = bnp.get("S3");
|
||||
return err == NOERR;
|
||||
}
|
||||
|
||||
TString get_iban(const TString& codcf)
|
||||
{
|
||||
TString iban;
|
||||
TToken_string key;
|
||||
key.add("C");
|
||||
key.add(codcf);
|
||||
key.add("V");
|
||||
key.add(1);
|
||||
const TRectype& cfban = cache().get(LF_CFBAN, key);
|
||||
if (!cfban.empty())
|
||||
{
|
||||
const TString& abi_cf = cfban.get(CFBAN_ABI);
|
||||
const TString& cab_cf = cfban.get(CFBAN_CAB);
|
||||
const bool found_cf = abi_cf.full() && cab_cf.full();
|
||||
iban = cfban.get(CFBAN_IBAN);
|
||||
if (found_cf && iban.blank())
|
||||
get_bnp_iban(abi_cf, cab_cf, -1, iban);
|
||||
}
|
||||
return iban;
|
||||
}
|
@ -81,7 +81,4 @@ TString& to_tstring(int n);
|
||||
|
||||
inline bool is_multi_table(const int file) { return file == LF_TAB || file == LF_TABGEN || file == LF_TABCOM || file == LF_TABMOD; }
|
||||
|
||||
TString get_iban(const TString& codcf);
|
||||
|
||||
|
||||
#endif /* __UTILITY_H */
|
||||
|
@ -295,7 +295,47 @@ void TCli_for::cli2doc(TDocumento& doc)
|
||||
//aggiungere gestione spese e bolli???
|
||||
}
|
||||
|
||||
|
||||
const TString& TCli_for::get_iban()
|
||||
{
|
||||
TString & iban = get_tmp_string(30);
|
||||
TToken_string key;
|
||||
|
||||
key.add(tipo());
|
||||
key.add(codice());
|
||||
key.add("V");
|
||||
key.add(1);
|
||||
|
||||
const TRectype& cfban = cache().get(LF_CFBAN, key);
|
||||
|
||||
if (!cfban.empty())
|
||||
{
|
||||
const TString& abi_cf = cfban.get(CFBAN_ABI);
|
||||
const TString& cab_cf = cfban.get(CFBAN_CAB);
|
||||
iban = cfban.get(CFBAN_IBAN);
|
||||
}
|
||||
return iban;
|
||||
}
|
||||
|
||||
TToken_string& TCli_for::get_ban_pres(int nprog)
|
||||
{
|
||||
TToken_string & ban = get_tmp_string(30);
|
||||
TToken_string key;
|
||||
|
||||
key.add(tipo());
|
||||
key.add(codice());
|
||||
key.add("N");
|
||||
key.add(nprog);
|
||||
|
||||
const TRectype& cfban = cache().get(LF_CFBAN, key);
|
||||
|
||||
if (!cfban.empty())
|
||||
{
|
||||
ban.add(cfban.get(CFBAN_ABI));
|
||||
ban.add(cfban.get(CFBAN_CAB));
|
||||
ban.add(cfban.get(CFBAN_PROGPR));
|
||||
}
|
||||
return ban;
|
||||
}
|
||||
TCli_for::TCli_for(char tipo, long codice) : TMultiple_rectype( LF_CLIFO ), _ven_rec(LF_CFVEN),
|
||||
_letint(LF_LETINT), _use_lettere(false), _lettera_found(false), _extended(false)
|
||||
{
|
||||
|
@ -66,6 +66,9 @@ public:
|
||||
void cli2doc(TDocumento& doc);
|
||||
const TString& find_listino_al(const TDate& datadoc) const;
|
||||
|
||||
const TString & get_iban();
|
||||
TToken_string & get_ban_pres(int nprog = 1);
|
||||
|
||||
TCli_for(char tipo = ' ', long codice = 0L);
|
||||
TCli_for(const TRectype & rec);
|
||||
TCli_for(const TCli_for & c);
|
||||
|
Loading…
x
Reference in New Issue
Block a user