Patch level : 10.0
Files correlati : ef0 Ricompilazione Demo : [ ] Commento : Migliorato caricamento distinte incomplete git-svn-id: svn://10.65.10.50/branches/R_10_00@22572 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
4d581f9409
commit
7d2fcdcfda
@ -45,7 +45,6 @@ protected:
|
||||
bool user_destroy();
|
||||
virtual TMask* get_mask(int mode) {return _msk;}
|
||||
virtual bool changing_mask(int mode) {return FALSE;}
|
||||
void enable_controeuro();
|
||||
virtual void ini2mask(TConfig& ini, TMask& m, bool query);
|
||||
|
||||
|
||||
@ -59,17 +58,6 @@ public:
|
||||
// restituisce un riferimento all' applicazione
|
||||
inline TVariazione_effetti& app() {return (TVariazione_effetti&)main_app();}
|
||||
|
||||
void TVariazione_effetti::enable_controeuro()
|
||||
{
|
||||
static int ce = -1;
|
||||
if (ce < 0)
|
||||
{
|
||||
TConfig ini(CONFIG_DITTA, "ve");
|
||||
ce = ini.get_bool("CONTROEURO");
|
||||
}
|
||||
_msk->enable(F_CONTROEURO, ce != 0);
|
||||
}
|
||||
|
||||
// quando si va in query mode resetta i due campi della maschera
|
||||
// relativi ai totali
|
||||
void TVariazione_effetti::init_query_mode(TMask&)
|
||||
@ -77,7 +65,6 @@ void TVariazione_effetti::init_query_mode(TMask&)
|
||||
_msk->reset(F_TOTIMP);
|
||||
_msk->reset(F_TOTIMPVAL);
|
||||
_msk->enable(F_TIPOCF);
|
||||
enable_controeuro();
|
||||
}
|
||||
|
||||
bool TVariazione_effetti::protected_record(TRectype& rec)
|
||||
@ -94,7 +81,6 @@ void TVariazione_effetti::init_insert_mode(TMask&)
|
||||
righe_sheet().row(0) = riga;
|
||||
righe_sheet().set_dirty();
|
||||
_msk->enable(F_TIPOCF);
|
||||
enable_controeuro();
|
||||
}
|
||||
void TVariazione_effetti::ini2mask(TConfig& ini, TMask& m, bool query)
|
||||
{
|
||||
@ -114,7 +100,6 @@ void TVariazione_effetti::ini2mask(TConfig& ini, TMask& m, bool query)
|
||||
void TVariazione_effetti::init_modify_mode(TMask& m)
|
||||
{
|
||||
m.disable(F_TIPOCF);
|
||||
enable_controeuro();
|
||||
m.efield(F_IBAN_STATO).validate(K_TAB);
|
||||
}
|
||||
|
||||
|
@ -35,7 +35,6 @@
|
||||
#define F_EFFCOMP 229
|
||||
#define F_SHEET_EFF 230
|
||||
#define F_TIPOCF 231
|
||||
#define F_CONTROEURO 232
|
||||
#define F_PROG 233
|
||||
#define F_CUP 234
|
||||
#define F_DCUP 235
|
||||
|
@ -142,7 +142,6 @@ BEGIN
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Nome@50" S0
|
||||
OUTPUT F_CODVAL CODTAB
|
||||
OUTPUT F_CONTROEURO B1
|
||||
OUTPUT F_CAMBIO S4
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
@ -159,7 +158,6 @@ BEGIN
|
||||
DISPLAY "Data@12" D0
|
||||
DISPLAY "Cambio@19" S4
|
||||
OUTPUT F_DATACAM D0
|
||||
OUTPUT F_CONTROEURO B1
|
||||
OUTPUT F_CAMBIO S4
|
||||
CHECKTYPE SEARCH
|
||||
GROUP 1
|
||||
@ -176,12 +174,6 @@ BEGIN
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
BOOLEAN F_CONTROEURO
|
||||
BEGIN
|
||||
PROMPT 40 8 "Controeuro "
|
||||
FIELD CONTROEURO
|
||||
END
|
||||
|
||||
BOOLEAN F_ULTRATA
|
||||
BEGIN
|
||||
PROMPT 56 8 "Ultima rata"
|
||||
|
@ -64,7 +64,7 @@ public:
|
||||
// riscrive l'effetto
|
||||
int rewrite(TLocalisamfile& f) { return write(f, TRUE); }
|
||||
// rimuove l'effetto
|
||||
int remove(TLocalisamfile& f)const;
|
||||
int remove(TLocalisamfile& f) const;
|
||||
// restituisce il numero progressivo dell'effetto estraendolo dal record
|
||||
long numero() const { return get_long(EFF_NPROGTR); }
|
||||
// restituisce il codice del cliente intestatario dell'effetto estraendolo dal record
|
||||
|
@ -272,7 +272,7 @@ int TVariazione_distinte::read(TMask& m)
|
||||
riga.add(TR("Varie"));
|
||||
}
|
||||
//gestisco il controllo sulla presenza o meno di una valuta
|
||||
const TString16 codval(eff.get(EFF_CODVAL));
|
||||
const TString4 codval(eff.get(EFF_CODVAL));
|
||||
if (i == 0)
|
||||
{
|
||||
const bool valuta = ::is_true_value(codval);
|
||||
|
127
ef/ef0301.cpp
127
ef/ef0301.cpp
@ -1,5 +1,8 @@
|
||||
#include "ef0301.h"
|
||||
|
||||
#include <recset.h>
|
||||
#include <relation.h>
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Definizione dei metodi della classe TDistinta //
|
||||
///////////////////////////////////////////////////
|
||||
@ -7,7 +10,7 @@
|
||||
// costruttore distinta utilizzando il record passato
|
||||
TDistinta::TDistinta(const TRectype& rec, word lockop)
|
||||
{
|
||||
read(rec,lockop);
|
||||
read(rec,lockop);
|
||||
}
|
||||
|
||||
// costruisce la distinta del tipo e numero passati
|
||||
@ -18,31 +21,51 @@ TDistinta::TDistinta(const char tipo, const long numero, word lockop)
|
||||
|
||||
TDistinta::~TDistinta()
|
||||
{
|
||||
TLocalisamfile f(LF_EFFETTI);
|
||||
if (_righe_dist.items() > 0) // Se ha letto elementi sblocca eventualmente la prima riga
|
||||
f.read((TRectype&)_righe_dist[0], _isequal,_unlock);
|
||||
{
|
||||
TLocalisamfile f(LF_EFFETTI);
|
||||
f.read(eff(0), _isequal,_unlock);
|
||||
}
|
||||
}
|
||||
|
||||
const TString& TDistinta::query(const char tipo, const long numero, const int riga) const
|
||||
{
|
||||
TString& q = get_tmp_string();
|
||||
q << "USE EFFETTI KEY 4"
|
||||
<< "\nFROM TIPODIST=" << tipo << " NDIST=" << numero;
|
||||
if (riga > 1)
|
||||
q << " NRIGADIST=" << riga;
|
||||
q << "\nTO TIPODIST=" << tipo << " NDIST=" << numero;
|
||||
return q;
|
||||
}
|
||||
|
||||
|
||||
// permette di leggere la distinta del tipo e numero passati
|
||||
int TDistinta::read(const char tipo, const long numero, word lockop)
|
||||
{
|
||||
int err = _iskeynotfound;
|
||||
TLocalisamfile f(LF_EFFETTI); f.setkey(4);
|
||||
if (_righe_dist.items() > 0) // Se ha letto una distinta precedente, sblocca la prima riga
|
||||
if (_righe_dist.items()) // Se ha letto una distinta precedente, sblocca la prima riga
|
||||
{
|
||||
f.read((TRectype&)_righe_dist[0],_isequal,_unlock);
|
||||
TLocalisamfile f(LF_EFFETTI); f.setkey(4);
|
||||
f.read(eff(0),_isequal,_unlock);
|
||||
_righe_dist.destroy(); // Rimuove tutte le righe precedenti
|
||||
}
|
||||
if (tipo >= ' ' && numero > 0)
|
||||
{
|
||||
err = NOERR;
|
||||
for (int i = 1; err == NOERR ; i++)
|
||||
TISAM_recordset reff(query(tipo, numero));
|
||||
TLocalisamfile& f = reff.cursor()->file();
|
||||
int i = 0;
|
||||
for (bool ok = reff.move_first(); ok; ok = reff.move_next())
|
||||
{
|
||||
const word lock = (i == 0 && lockop == _lock) ? _lock : _nolock; // Lock solo sulla prima riga
|
||||
const int n = reff.get(EFF_NRIGADIST).as_int();
|
||||
TEffetto* effetto = new TEffetto;
|
||||
word lock = (i == 1 && lockop == _lock) ? _lock : _nolock; // Lock solo sulla prima riga
|
||||
err = effetto->read(f, tipo, numero, i, lock);//legge un effetto per chiave 4
|
||||
err = effetto->read(f, tipo, numero, n, lock);//legge un effetto per chiave 4
|
||||
if (err == NOERR)
|
||||
_righe_dist.add(effetto);
|
||||
{
|
||||
i = _righe_dist.add(effetto) + 1;
|
||||
effetto->put(EFF_NRIGADIST, i);
|
||||
}
|
||||
else
|
||||
delete effetto;
|
||||
}
|
||||
@ -68,42 +91,36 @@ int TDistinta::write(bool force, TToken_string* dati_dist)
|
||||
{
|
||||
int err = NOERR;
|
||||
//quanti effetti sono nella distinta (nell'array in memoria)
|
||||
const int elem = items();
|
||||
TLocalisamfile f(LF_EFFETTI); f.setkey(4);
|
||||
|
||||
for (int i=0; i<elem && err==NOERR; i++)
|
||||
int nriga = 0;
|
||||
FOR_EACH_ARRAY_ITEM(_righe_dist, i, obj)
|
||||
{
|
||||
TEffetto& effetto = eff(i);
|
||||
TEffetto& effetto = *(TEffetto*)obj;
|
||||
// token string che contiene i dati da registrare sull'effetto
|
||||
if (dati_dist)
|
||||
{
|
||||
dati_dist->restart();
|
||||
effetto.put(EFF_TIPODIST, dati_dist->get());
|
||||
effetto.put(EFF_NDIST, dati_dist->get());
|
||||
effetto.put(EFF_NDIST, dati_dist->get());
|
||||
effetto.put(EFF_DATADIST, dati_dist->get());
|
||||
effetto.put(EFF_CODABIP, dati_dist->get());
|
||||
effetto.put(EFF_CODCABP, dati_dist->get());
|
||||
effetto.put(EFF_PROGBNP, dati_dist->get());
|
||||
|
||||
effetto.put(EFF_NRIGADIST, i+1);
|
||||
effetto.put(EFF_CODABIP, dati_dist->get());
|
||||
effetto.put(EFF_CODCABP, dati_dist->get());
|
||||
effetto.put(EFF_PROGBNP, dati_dist->get());
|
||||
effetto.put(EFF_NRIGADIST, ++nriga);
|
||||
}
|
||||
else
|
||||
nriga = effetto.get_int(EFF_NRIGADIST);
|
||||
//riscrivo l'effetto con i dati della distinta a cui appartiene
|
||||
err = effetto.rewrite(f);
|
||||
err = effetto.rewrite_write(f);
|
||||
if (err != NOERR)
|
||||
break;
|
||||
}
|
||||
|
||||
if (dati_dist)
|
||||
{
|
||||
f.setkey(4);
|
||||
f.put(EFF_TIPODIST, dati_dist->get(0));
|
||||
f.put(EFF_NDIST, dati_dist->get());
|
||||
|
||||
int i = elem;
|
||||
f.put(EFF_NRIGADIST, ++i);
|
||||
for (int e = f.read(); e == NOERR; e = f.read())
|
||||
{
|
||||
e = f.remove();
|
||||
f.put(EFF_NRIGADIST, ++i);
|
||||
}
|
||||
const char td = dati_dist->get_char(0);
|
||||
const long nd = dati_dist->get_long();
|
||||
remove(td, nd, nriga+1);
|
||||
}
|
||||
|
||||
return err;
|
||||
@ -111,24 +128,28 @@ int TDistinta::write(bool force, TToken_string* dati_dist)
|
||||
|
||||
// rimuove la distinta (non si effettua la rimozione del record su file ma si
|
||||
// elimina dal file il collegamento tra gli effetti e la distinta)
|
||||
int TDistinta::remove(char tipodist, long ndist)
|
||||
int TDistinta::remove(char tipodist, long ndist, int nriga)
|
||||
{
|
||||
int err;
|
||||
TLocalisamfile file(LF_EFFETTI);
|
||||
// scandisco tutti gli effetti della distinta (nell'array),
|
||||
// cancello i dati della distinta e riscrivo gli effetti
|
||||
for (int i = 0; i < items(); i++)
|
||||
int err = NOERR;
|
||||
|
||||
TISAM_recordset eff(query(tipodist, ndist, nriga));
|
||||
TLocalisamfile& file = eff.cursor()->file();
|
||||
for (bool ok = eff.move_first(); ok && err == NOERR; ok = eff.move_next())
|
||||
{
|
||||
TEffetto& effetto = (TEffetto&)_righe_dist[i];
|
||||
err = effetto.read(file, tipodist,ndist,i+1);
|
||||
effetto.zero(EFF_TIPODIST);
|
||||
effetto.zero(EFF_NDIST);
|
||||
effetto.zero(EFF_DATADIST);
|
||||
effetto.zero(EFF_NRIGADIST);
|
||||
effetto.zero(EFF_CODABIP);
|
||||
effetto.zero(EFF_CODCABP);
|
||||
effetto.zero(EFF_PROGBNP);
|
||||
err = effetto.rewrite(file);
|
||||
const int i = file.get_int(EFF_NRIGADIST);
|
||||
TEffetto effetto;
|
||||
err = effetto.read(file, tipodist,ndist,i);
|
||||
if (err == NOERR)
|
||||
{
|
||||
effetto.zero(EFF_TIPODIST);
|
||||
effetto.zero(EFF_NDIST);
|
||||
effetto.zero(EFF_DATADIST);
|
||||
effetto.zero(EFF_NRIGADIST);
|
||||
effetto.zero(EFF_CODABIP);
|
||||
effetto.zero(EFF_CODCABP);
|
||||
effetto.zero(EFF_PROGBNP);
|
||||
err = effetto.rewrite(file);
|
||||
}
|
||||
}
|
||||
reset();//elimino gli effetti dalla memoria resettando l'array
|
||||
return err;
|
||||
@ -136,11 +157,5 @@ int TDistinta::remove(char tipodist, long ndist)
|
||||
|
||||
bool TDistinta::contabilizzata() const
|
||||
{
|
||||
bool yes = FALSE;
|
||||
if (_righe_dist.items() > 0)
|
||||
{
|
||||
const TRectype& eff = (const TRectype&)_righe_dist[0];
|
||||
yes = eff.get_bool(EFF_EFFCONT);
|
||||
}
|
||||
return yes;
|
||||
return _righe_dist.items() && eff(0).get_bool(EFF_EFFCONT);
|
||||
}
|
||||
|
@ -17,6 +17,7 @@ class TDistinta : public TObject
|
||||
protected:
|
||||
TEffetto& eff(int n) { return (TEffetto&)_righe_dist[n]; }
|
||||
const TEffetto& eff(int n) const { return (const TEffetto&)_righe_dist[n]; }
|
||||
const TString& query(const char tipo, const long numero, const int riga = 0) const;
|
||||
|
||||
public:
|
||||
//ritorna un riferimento all'array degli effetti nella distinta
|
||||
@ -34,7 +35,7 @@ public:
|
||||
//riscrive la distinta
|
||||
int rewrite(TToken_string* dati_dist = NULL){ return write(TRUE, dati_dist); }
|
||||
//rimuove la distinta del tipo e numero passati
|
||||
int remove(char tipodist, long ndist);
|
||||
int remove(char tipodist, long ndist, int nriga=0);
|
||||
//restituisce il tipo di distinta
|
||||
const char tipodist() const { return eff(0).get_char(EFF_TIPODIST); }
|
||||
//restituisce il tipo degli effetti della distinta (<C>lienti/<F>ornitori)
|
||||
@ -51,8 +52,6 @@ public:
|
||||
TDate data_cam() const { return eff(0).get_date(EFF_DATACAMBIO); }
|
||||
//restituisce il cambio delle distinta
|
||||
real cambio() const { return eff(0).get_real(EFF_CAMBIO); }
|
||||
//restituisce TRUE se il cambio delle distinta e' contro euro
|
||||
bool contro_euro() const { return eff(0).get_bool(EFF_CONTROEURO); }
|
||||
//restituisce il codice abi di presentazione effetti
|
||||
const TString& abip()const { return eff(0).get(EFF_CODABIP); }
|
||||
//restituisce il codice cab di presentazione effetti
|
||||
|
115
ef/ef0800.cpp
115
ef/ef0800.cpp
@ -81,18 +81,7 @@ class TContabilizzazione_effetti_app : public TSkeleton_application
|
||||
_total_mov_val;// Same as above but in valuta
|
||||
TString _desc_inc, _desc_pag; // Descrizioni movimento generato
|
||||
TMask *_msk; // maschera di selezione dati
|
||||
// TLocalisamfile *_attiv, // file delle attivita' (per far funzionare TRegistro)
|
||||
// *_fcaus, // file delle causale (per far funzionare TCausale)
|
||||
// *_frcaus, // file delle righe causali (per far funzionare TCausale)
|
||||
// *_effetti, // file degli effetti (per TDistinta)
|
||||
// *_reffetti, // file delle righe effetti (per TDistinta)
|
||||
// *_cessionari, // file dei cessionari (per TDistinta)
|
||||
// *_part, // file delle partite (per far funzionare TPartita)
|
||||
// *_scad, // file delle scadenze (per far funzionare TPartita)
|
||||
// *_pags, // file dei pagamenti (per far funzionare TPartita)
|
||||
// *_clifo, // file dei clienti
|
||||
// *_doc, // file dei documenti
|
||||
// *_pcon; // file piano dei conti
|
||||
|
||||
TBill _banca, // conto di contropartita della banca
|
||||
_cliente, // conto di contropartita del cliente
|
||||
_trandiffcam; // conto di transizione per differenze cambi
|
||||
@ -871,18 +860,7 @@ void TContabilizzazione_effetti_app::compile_head_mov(const TString & contsep)
|
||||
mov.put(MOV_CODVAL, codval);
|
||||
mov.put(MOV_DATACAM, _distinta->data_cam());
|
||||
|
||||
real cambio = _distinta->cambio();
|
||||
const bool eurocambio = _distinta->contro_euro();
|
||||
const TExchange chg(codval, cambio, eurocambio ? _exchange_contro : _exchange_base);
|
||||
if (eurocambio && mov.curr().exist(MOV_CONTROEURO))
|
||||
{
|
||||
mov.put(MOV_CONTROEURO, eurocambio);
|
||||
cambio = chg.get_contro_change();
|
||||
}
|
||||
else
|
||||
{
|
||||
cambio = chg.get_base_change();
|
||||
}
|
||||
const real cambio = _distinta->cambio();
|
||||
mov.put(MOV_CAMBIO, cambio);
|
||||
}
|
||||
// MOV_TOTDOC e MOV_TOTDOCVAL vengono completati prima della scrittura del movimento
|
||||
@ -909,17 +887,6 @@ void TContabilizzazione_effetti_app::compile_riga_partita(TRiga_partite& riga, c
|
||||
riga.put(PART_DATACAM,effetto.get_date(EFF_DATACAMBIO));
|
||||
real cambio = effetto.get(EFF_CAMBIO);
|
||||
riga.put(PART_CAMBIO, cambio);
|
||||
if (effetto.get_bool(EFF_CONTROEURO))
|
||||
{
|
||||
if (!((TRectype&)riga).exist(PART_CONTROEURO))
|
||||
{
|
||||
const TExchange chg(effetto.get(EFF_CODVAL), cambio, _exchange_contro);
|
||||
const real cc = chg.get_base_change();
|
||||
riga.put(PART_CAMBIO, cc);
|
||||
}
|
||||
else
|
||||
riga.put(PART_CONTROEURO, TRUE);
|
||||
}
|
||||
riga.put(PART_TIPOCF,_cliente.tipo());
|
||||
riga.put(PART_SOTTOCONTO,_cliente.sottoconto());
|
||||
riga.put(PART_IMPTOTDOC,effetto.get(EFF_IMPORTO));
|
||||
@ -1065,18 +1032,7 @@ void TContabilizzazione_effetti_app::compile_saldac(const TEffetto& eff,
|
||||
const TString4 codval = eff.get(EFF_CODVAL);
|
||||
const TDate datacam = eff.get(EFF_DATACAMBIO);
|
||||
real cambio = eff.get(EFF_CAMBIO);
|
||||
exchange_type et = eff.get_bool(EFF_CONTROEURO) ? _exchange_contro : _exchange_base;
|
||||
if (et == _exchange_contro)
|
||||
{
|
||||
if (!((TRectype&)riga_part).exist(PART_CONTROEURO))
|
||||
{
|
||||
const TExchange chg(codval, cambio, et);
|
||||
cambio = chg.get_base_change();
|
||||
et = _exchange_base;
|
||||
riga_part.put(PART_CAMBIO, cambio);
|
||||
}
|
||||
}
|
||||
const TValuta valuta_eff(codval, datacam, cambio, et);
|
||||
const TValuta valuta_eff(codval, datacam, cambio);
|
||||
|
||||
partita->modifica_pagamento(riga_pagamento, valuta_eff,
|
||||
old_ap, old_abb, old_diffcam,
|
||||
@ -1229,33 +1185,33 @@ error_type TContabilizzazione_effetti_app::write_all(bool change_status)
|
||||
|
||||
bool TContabilizzazione_effetti_app::has_diffcam(const TEffetto& eff) const
|
||||
{
|
||||
bool yes = FALSE;
|
||||
bool yes = false;
|
||||
if (eff.in_valuta()) // Considera solo effetti in valuta
|
||||
{
|
||||
const TExchange cambio(eff);
|
||||
|
||||
const bool always_diffcam = ini_get_bool(CONFIG_DITTA, "cg", "DiffCamAlways");
|
||||
TLocalisamfile partite(LF_PARTITE);
|
||||
for (int n = 1; yes == FALSE && n <= eff.rows_r(); n++)
|
||||
for (int n = 1; !yes && n <= eff.rows_r(); n++)
|
||||
{
|
||||
const TRectype& riga = eff.row_r(n);
|
||||
if (riga.get_char(REFF_ACCSAL) != 'S') // Ignora righe non saldanti
|
||||
continue;
|
||||
|
||||
partite.put(PART_TIPOCF, eff.get(EFF_TIPOCF));
|
||||
partite.put(PART_GRUPPO, 0);
|
||||
partite.put(PART_CONTO, 0);
|
||||
partite.put(PART_SOTTOCONTO, eff.get(EFF_CODCF));
|
||||
partite.put(PART_ANNO, riga.get(REFF_ANNO));
|
||||
partite.put(PART_NUMPART, riga.get(REFF_NUMPART));
|
||||
partite.put(PART_NRIGA, riga.get(REFF_NRIGA));
|
||||
int err = partite.read();
|
||||
if (err == NOERR)
|
||||
{
|
||||
const TExchange cambiofatt(partite.curr());
|
||||
yes = cambiofatt != cambio;
|
||||
if (always_diffcam || riga.get_char(REFF_ACCSAL) == 'S') // Ignora righe non saldanti
|
||||
{
|
||||
partite.put(PART_TIPOCF, eff.get(EFF_TIPOCF));
|
||||
partite.put(PART_GRUPPO, 0);
|
||||
partite.put(PART_CONTO, 0);
|
||||
partite.put(PART_SOTTOCONTO, eff.get(EFF_CODCF));
|
||||
partite.put(PART_ANNO, riga.get(REFF_ANNO));
|
||||
partite.put(PART_NUMPART, riga.get(REFF_NUMPART));
|
||||
partite.put(PART_NRIGA, riga.get(REFF_NRIGA));
|
||||
int err = partite.read();
|
||||
if (err == NOERR)
|
||||
{
|
||||
const TExchange cambiofatt(partite.curr());
|
||||
yes = cambiofatt != cambio;
|
||||
}
|
||||
else
|
||||
NFCHECK("Effetto pagante fattura fantasma");
|
||||
}
|
||||
else
|
||||
NFCHECK("Effetto pagante fattura fantasma");
|
||||
}
|
||||
}
|
||||
return yes;
|
||||
@ -1344,8 +1300,21 @@ void TContabilizzazione_effetti_app::contabilize_bill(const char tipo, const lon
|
||||
_total_mov = 0.0;
|
||||
_total_mov_val = 0.0;
|
||||
distinta.read(tipo,numero,_lock); // Sblocca da solo quella precedente
|
||||
|
||||
const int items = distinta.items(); // Perche' sul file effetti il numero riga distinta e' un long ??
|
||||
if (items == 0)
|
||||
{
|
||||
_error = generic_error;
|
||||
error_box(FR("La distinta %c %ld non ha effetti"), tipo, numero);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (_caus != NULL)
|
||||
{
|
||||
delete _caus;
|
||||
_caus = NULL;
|
||||
}
|
||||
|
||||
const TString& cc = distinta.tipocf() == 'F' ? _cod_caus_pag : _cod_caus;
|
||||
_caus = new TCausale(cc, _data_op.year());
|
||||
@ -1392,7 +1361,6 @@ void TContabilizzazione_effetti_app::contabilize_bill(const char tipo, const lon
|
||||
else
|
||||
dettaglio_rate = _dett_rate_att;
|
||||
|
||||
const int items = distinta.items(); // Perche' sul file effetti il numero riga distinta e' un long ??
|
||||
|
||||
// compila la testata
|
||||
compile_head_mov(key);
|
||||
@ -1496,6 +1464,7 @@ void TContabilizzazione_effetti_app::contabilize_bill(const char tipo, const lon
|
||||
|
||||
void TContabilizzazione_effetti_app::contabilize()
|
||||
{
|
||||
const bool cont_sep = ini_get_bool(CONFIG_DITTA, "ef", "ContSep"); // Stramaledetta
|
||||
_total_bills = 0;
|
||||
|
||||
const long cur_items = _dist_sheet->items(); // Quante distinte in totale ?
|
||||
@ -1508,13 +1477,13 @@ void TContabilizzazione_effetti_app::contabilize()
|
||||
TToken_string& t = _dist_sheet->row(j);
|
||||
const char tipo = t.get_char(1);
|
||||
const long numero = t.get_long(2);
|
||||
if (ini_get_bool(CONFIG_DITTA, "ef", "ContSep"))
|
||||
|
||||
if (cont_sep)
|
||||
{
|
||||
_distinta->read(tipo,numero);
|
||||
|
||||
const int items = _distinta->items();
|
||||
TAssoc_array codcs;
|
||||
|
||||
|
||||
TAssoc_array codcs;
|
||||
for (int i = 0; i < items; i++) // scorre le righe della distinta (effetti)
|
||||
{
|
||||
const TEffetto& eff = (*_distinta)[i];
|
||||
@ -1525,7 +1494,9 @@ void TContabilizzazione_effetti_app::contabilize()
|
||||
contabilize_bill(tipo,numero, key);
|
||||
}
|
||||
else
|
||||
{
|
||||
contabilize_bill(tipo,numero);
|
||||
}
|
||||
if (!good())
|
||||
display_error();
|
||||
}
|
||||
|
@ -690,7 +690,6 @@ void TPE_mask::save_rate()
|
||||
|
||||
const TString& codval = get(F_CODVAL);
|
||||
const real cambio = get(F_CAMBIO);
|
||||
const bool eurocambio = get_bool(F_EURO);
|
||||
const int tipopag = get_int(F_TIPOPAG);
|
||||
|
||||
bool zeroes = false; // Esistono righe effetto da cancellare
|
||||
@ -704,7 +703,7 @@ void TPE_mask::save_rate()
|
||||
if (codval.full() && !imp.is_zero())
|
||||
{
|
||||
impval = imp;
|
||||
TCurrency c(impval, codval, cambio, eurocambio ? _exchange_contro : _exchange_base);
|
||||
TCurrency c(impval, codval, cambio);
|
||||
c.change_to_firm_val();
|
||||
imp = c.get_num();
|
||||
}
|
||||
@ -821,7 +820,6 @@ void TPE_mask::save_rate()
|
||||
eff.put(EFF_IMPORTOVAL, totimpval);
|
||||
eff.put(EFF_CODVAL, codval);
|
||||
eff.put(EFF_CAMBIO, cambio);
|
||||
eff.put(EFF_CONTROEURO, eurocambio);
|
||||
eff.put(EFF_DATACAMBIO, get(F_DATACAMBIO));
|
||||
eff.put(EFF_SPESE, get(F_SPESE));
|
||||
}
|
||||
|
@ -8,7 +8,6 @@
|
||||
#define F_DUMMYDIST 208
|
||||
#define F_DATADIST 209
|
||||
#define F_CODVAL 210
|
||||
#define F_EURO 211
|
||||
#define F_CAMBIO 212
|
||||
#define F_DATACAMBIO 213
|
||||
#define F_DESCAB 214
|
||||
|
@ -81,7 +81,6 @@ BEGIN
|
||||
OUTPUT F_CODVAL CODVAL
|
||||
OUTPUT F_CAMBIO CAMBIO
|
||||
OUTPUT F_DATACAMBIO DATACAMBIO
|
||||
OUTPUT F_EURO CONTROEURO
|
||||
OUTPUT F_TIPOCF TIPOCF
|
||||
OUTPUT F_ABI CODABIP
|
||||
OUTPUT F_CAB CODCABP
|
||||
@ -103,19 +102,12 @@ BEGIN
|
||||
DISPLAY "Contro\nEuro@6" B1
|
||||
DISPLAY "Denominazione@50" S0
|
||||
OUTPUT F_CODVAL CODTAB
|
||||
OUTPUT F_EURO B1
|
||||
CHECKTYPE NORMAL
|
||||
GROUP 3
|
||||
MESSAGE EMPTY CLEAR,6@
|
||||
MESSAGE ENABLE,6@
|
||||
END
|
||||
|
||||
BOOLEAN F_EURO
|
||||
BEGIN
|
||||
PROMPT 64 1 "Contro Euro"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
DATE F_DATADIST
|
||||
BEGIN
|
||||
PROMPT 2 2 "Data "
|
||||
|
@ -1,3 +1,3 @@
|
||||
31
|
||||
0
|
||||
$effetti|0|0|249|0|Effetti|||
|
||||
$effetti|0|0|248|0|Effetti|||
|
||||
|
@ -1,5 +1,5 @@
|
||||
31
|
||||
37
|
||||
36
|
||||
NPROGTR|3|7|0|Numero progressivo effetto
|
||||
DATASCAD|5|8|0|Data di scadenza
|
||||
TIPOPAG|2|1|0|Tipo pagamento
|
||||
@ -11,7 +11,6 @@ DATAEMISS|5|8|0|Data emissione
|
||||
CODVAL|1|3|0|Codice valuta
|
||||
DATACAMBIO|5|8|0|Data cambio
|
||||
CAMBIO|4|15|6|Cambio
|
||||
CONTROEURO|8|1|0|Cambio espresso contro Euro
|
||||
CODABI|10|5|0|Codice ABI banca
|
||||
CODCAB|10|5|0|Codice CAB banca
|
||||
ULTRATA|8|1|0|Ultima rata
|
||||
|
Loading…
x
Reference in New Issue
Block a user