Patch level : 10.0 978

Files correlati     : ef0.exe ef0300a.msk ef0300b.msk ef0300c.msk
Ricompilazione Demo : [ ]
Commento            :
0001828: 207043 - Eliwork selezione effetti
Il cliente in oggetto mi segnala che la creazione manuale effetti, oltre agli effetti spuntati ne estrae altri a random.


git-svn-id: svn://10.65.10.50/branches/R_10_00@21943 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2011-04-13 13:54:17 +00:00
parent 8c83d9664e
commit 56498e8cc7
6 changed files with 262 additions and 257 deletions

View File

@ -6,36 +6,38 @@ int main(int argc, char** argv)
const char op = argc < 2 ? '0' : argv[1][1]; const char op = argc < 2 ? '0' : argv[1][1];
switch (op) switch (op)
{ {
case '1': /*
ef0200(argc,argv);// GENERAZIONE EFFETTI DA E/C (OBSOLETO NON USARE PIU") case '1':
break; ef0200(argc,argv);// GENERAZIONE EFFETTI DA E/C (OBSOLETO NON USARE PIU")
case '2': break;
ef0300(argc,argv);// AGGIORNAMENTO DISTINTE (DISTINTE DI PRESENTAZIONE) */
break; case '2':
case '3': ef0300(argc,argv);// AGGIORNAMENTO DISTINTE (DISTINTE DI PRESENTAZIONE)
ef0400(argc,argv);// ELIMINAZIONE EFFETTI break;
break; case '3':
case '4': ef0400(argc,argv);// ELIMINAZIONE EFFETTI
ef0500(argc,argv);// EMISSIONE EFFETTI/DISTINTE break;
break; case '4':
case '5': ef0500(argc,argv);// EMISSIONE EFFETTI/DISTINTE
ef0600(argc,argv);// STAMPE DI CONTROLLO EFFETTI break;
break; case '5':
case '6': ef0600(argc,argv);// STAMPE DI CONTROLLO EFFETTI
ef0700(argc,argv);// GESTIONE TABELLA BANCHE DI PRESENTAZIONE break;
break; case '6':
case '7': ef0700(argc,argv);// GESTIONE TABELLA BANCHE DI PRESENTAZIONE
ef0800(argc,argv);// CONTABILIZZAZIONE EFFETTI break;
break; case '7':
case '8': ef0800(argc,argv);// CONTABILIZZAZIONE EFFETTI
ef0900(argc,argv);// PARAMETRI EFFETTI break;
break; case '8':
case '9': ef0900(argc,argv);// PARAMETRI EFFETTI
ef0A00(argc,argv);// GENERAZIONE DISTINTE DA SCADENZE break;
break; case '9':
default: ef0A00(argc,argv);// GENERAZIONE DISTINTE DA SCADENZE
ef0100(argc,argv);// GESTIONE EFFETTI break;
break; default:
ef0100(argc,argv);// GESTIONE EFFETTI
break;
} }
return 0; return 0;
} }

View File

@ -28,7 +28,7 @@ protected:
virtual int write(const TMask& m); virtual int write(const TMask& m);
virtual bool remove(); virtual bool remove();
virtual TMask* get_mask(int mode) {return _msk;} virtual TMask* get_mask(int mode) {return _msk;}
virtual bool changing_mask(int mode) {return FALSE;} virtual bool changing_mask(int mode) {return false;}
virtual bool has_filtered_cursor() const { return true; } virtual bool has_filtered_cursor() const { return true; }
static bool tipodist_handler(TMask_field& f, KEY k); static bool tipodist_handler(TMask_field& f, KEY k);
static bool importo_handler(TMask_field& f, KEY k); static bool importo_handler(TMask_field& f, KEY k);
@ -46,9 +46,10 @@ protected:
static void calcola(); static void calcola();
static void aggiungi(); static void aggiungi();
static bool effetto_aggiunto(const long numero); static bool effetto_aggiunto(const long numero);
static void carica_riba(int tipopag, const bool reset = TRUE); static void carica_riba(int tipopag, const bool reset = true);
static void ord_data(); static void ordina(COMPARE_FUNCTION cf);
static void ord_fatt(); static const TString& get_ban_desc(const TRectype& eff);
// ritorna un riferimento allo sheet degli effetti (righe) nella // ritorna un riferimento allo sheet degli effetti (righe) nella
// distinta // distinta
TSheet_field& righe_sheet() const { return _msk->sfield(F_SHEET_RIBA); } TSheet_field& righe_sheet() const { return _msk->sfield(F_SHEET_RIBA); }
@ -129,7 +130,7 @@ const char* TVariazione_distinte::get_next_key()
return format("%d|%ld",F_NUMBER,ndist); return format("%d|%ld",F_NUMBER,ndist);
} }
// ritorna TRUE se trovo nell'array delle righe distinta l'effetto // ritorna true se trovo nell'array delle righe distinta l'effetto
// passato // passato
bool TVariazione_distinte::cerca(long num) bool TVariazione_distinte::cerca(long num)
{ {
@ -140,9 +141,9 @@ bool TVariazione_distinte::cerca(long num)
TEffetto& eff = (TEffetto&)righedist[i]; TEffetto& eff = (TEffetto&)righedist[i];
if (num == eff.get_long(EFF_NPROGTR)) if (num == eff.get_long(EFF_NPROGTR))
return TRUE; return true;
} }
return FALSE; return false;
} }
// metodo che permette di scivere sull'array (in memoria) gli // metodo che permette di scivere sull'array (in memoria) gli
@ -194,6 +195,22 @@ TToken_string* TVariazione_distinte::common_f(const TMask& m, TToken_string& dat
return &datidist; return &datidist;
} }
const TString& TVariazione_distinte::get_ban_desc(const TRectype& eff)
{
TString16 codice = eff.get(EFF_CODABI);
const TString& des_abi = cache().get("%BAN", codice, "S0");
codice << eff.get(EFF_CODCAB);
const TString& des_cab = cache().get("%BAN", codice, "S0");
if (des_cab.starts_with(des_abi))
return des_cab;
TString& tmp = get_tmp_string();
tmp << des_abi << ' ' << des_cab;
tmp.strip_double_spaces();
return tmp.cut(50);
}
// carica nella maschera i dati dai files // carica nella maschera i dati dai files
int TVariazione_distinte::read(TMask& m) int TVariazione_distinte::read(TMask& m)
{ {
@ -235,14 +252,8 @@ int TVariazione_distinte::read(TMask& m)
codice.cut(0); codice.cut(0);
codice << eff.get_tipo(); codice << '|' << eff.get(EFF_CODCF); codice << eff.get_tipo(); codice << '|' << eff.get(EFF_CODCF);
riga.add(cache().get(LF_CLIFO, codice, CLI_RAGSOC)); riga.add(cache().get(LF_CLIFO, codice, CLI_RAGSOC));
riga.add(get_ban_desc(eff));
codice = eff.get(EFF_CODABI);
TString desc = cache().get("%BAN", codice, "S0");
codice << eff.get(EFF_CODCAB);
desc << ' ' << cache().get("%BAN", codice, "S0");
desc.cut(50);
riga.add(desc);
if (eff.fatt(numero))// se l'effetto contiene solo una fattura if (eff.fatt(numero))// se l'effetto contiene solo una fattura
{ // metto i riferimenti al documento ed al numero di rata { // metto i riferimenti al documento ed al numero di rata
@ -325,7 +336,7 @@ int TVariazione_distinte::rewrite(const TMask& m)
if (num == eff.get_long(EFF_NPROGTR)) if (num == eff.get_long(EFF_NPROGTR))
{ {
// tolgo l'effetto dall'array // tolgo l'effetto dall'array
righedist.destroy(j,TRUE); righedist.destroy(j,true);
break; break;
} }
} }
@ -371,7 +382,7 @@ int TVariazione_distinte::write(const TMask& m)
aggiorna(); aggiorna();
TToken_string datidist; TToken_string datidist;
err = _distinta->write(TRUE, common_f(m, datidist)); err = _distinta->write(true, common_f(m, datidist));
if (err == NOERR) if (err == NOERR)
{ //riposiziono la relazione { //riposiziono la relazione
_rel->lfile().setkey(4); _rel->lfile().setkey(4);
@ -423,7 +434,7 @@ bool TVariazione_distinte::user_create()
_m2->set_handler(F_TIPORD, ordina_handler); _m2->set_handler(F_TIPORD, ordina_handler);
righe_sel_sheet().set_notify(imp_notify); righe_sel_sheet().set_notify(imp_notify);
righe_sel_sheet().sheet_mask().set_handler(FIRST_FIELD, check_handler); righe_sel_sheet().sheet_mask().set_handler(FIRST_FIELD, check_handler);
return TRUE; return true;
} }
// distruggo la relap // distruggo la relap
@ -433,7 +444,7 @@ bool TVariazione_distinte::user_destroy()
delete _m2; delete _m2;
delete _rel; delete _rel;
delete _distinta; delete _distinta;
return TRUE; return true;
} }
// Cerca se la riba indicata da <numero> e' gia stato inserita nello spreadsheet principale // Cerca se la riba indicata da <numero> e' gia stato inserita nello spreadsheet principale
@ -441,13 +452,13 @@ bool TVariazione_distinte::effetto_aggiunto(const long numero)
{ {
TMask* m = app()._msk; TMask* m = app()._msk;
TSheet_field& sf_riba = (TSheet_field&)m->field(F_SHEET_RIBA); TSheet_field& sf_riba = (TSheet_field&)m->field(F_SHEET_RIBA);
bool rt = FALSE; bool rt = false;
const int items = sf_riba.items(); const int items = sf_riba.items();
for (int i=0; i<items && !rt; i++) for (int i=0; i<items && !rt; i++)
{ {
TToken_string& row = sf_riba.row(i); TToken_string& row = sf_riba.row(i);
if (row.get_long(1) == numero) if (row.get_long(1) == numero)
rt = TRUE; rt = true;
} }
return rt; return rt;
@ -460,6 +471,8 @@ bool TVariazione_distinte::effetto_aggiunto(const long numero)
// tipo di pagamento. // tipo di pagamento.
void TVariazione_distinte::carica_riba(int tipopag, const bool reset) void TVariazione_distinte::carica_riba(int tipopag, const bool reset)
{ {
TWait_cursor hourglass;
// deve caricare solo quegli effetti che non hanno riferimento alla // deve caricare solo quegli effetti che non hanno riferimento alla
// distinta quindi setta i campi ad essa relativi a zero // distinta quindi setta i campi ad essa relativi a zero
char tipodist = 0; char tipodist = 0;
@ -472,11 +485,11 @@ void TVariazione_distinte::carica_riba(int tipopag, const bool reset)
TMask* m2 = app()._m2; TMask* m2 = app()._m2;
if (reset) if (reset)
m2->reset(); m2->reset();
TSheet_field& sf = (TSheet_field&)m2->field(F_SHEET); TSheet_field& sf = m2->sfield(F_SHEET);
if (reset) if (reset)
sf.reset(); sf.reset();
TString16 codval = app()._msk->get(F_CODVAL); TString4 codval = app()._msk->get(F_CODVAL);
TString16 codtab; TString16 codtab;
int err, i = 0; int err, i = 0;
@ -509,13 +522,7 @@ void TVariazione_distinte::carica_riba(int tipopag, const bool reset)
TString16 codice; TString16 codice;
codice << tipo << '|' << eff.get(EFF_CODCF); codice << tipo << '|' << eff.get(EFF_CODCF);
riga.add(cache().get(LF_CLIFO, codice, CLI_RAGSOC)); riga.add(cache().get(LF_CLIFO, codice, CLI_RAGSOC));
riga.add(get_ban_desc(eff));
codice = eff.get(EFF_CODABI);
TString desc(cache().get("%BAN", codice, "S0"));
codice << eff.get(EFF_CODCAB);
desc << " " << cache().get("%BAN", codice, "S0");
desc.cut(50);
riga.add(desc);
if (eff.fatt(numero))// se l'effetto contiene solo una fattura if (eff.fatt(numero))// se l'effetto contiene solo una fattura
{ // metto i riferimenti al documento ed al numero di rata { // metto i riferimenti al documento ed al numero di rata
@ -565,7 +572,7 @@ bool TVariazione_distinte::tipodist_handler(TMask_field& f, KEY k)
if (allo_sconto) if (allo_sconto)
m.set(F_TIPOPAG,2); m.set(F_TIPOPAG,2);
} }
return TRUE; return true;
} }
// Handler per gestire il caricamento degli effetti nella distinta // Handler per gestire il caricamento degli effetti nella distinta
@ -579,11 +586,11 @@ bool TVariazione_distinte::importo_handler(TMask_field& f, KEY k)
if (k == K_SPACE) if (k == K_SPACE)
{ {
aggiungi(); aggiungi();
TSheet_field& sf_riba = (TSheet_field&)f.mask().field(F_SHEET_RIBA); TSheet_field& sf_riba = f.mask().sfield(F_SHEET_RIBA);
sf_riba.force_update(); sf_riba.force_update();
} }
return TRUE; return true;
} }
// Handler per gestire il caricamento degli effetti nella distinta in // Handler per gestire il caricamento degli effetti nella distinta in
@ -595,11 +602,11 @@ bool TVariazione_distinte::imp_sel_handler(TMask_field& f, KEY k)
// se quando si entra nell maschera il campo contiene un valore // se quando si entra nell maschera il campo contiene un valore
// significa che si deve procedere con il caricamento automatico // significa che si deve procedere con il caricamento automatico
// di effetti per l'importo iscritto nel campo // di effetti per l'importo iscritto nel campo
if (k == K_TAB && f.to_check(k, TRUE)) if (k == K_TAB && f.to_check(k, true))
{ {
TMask* m = app()._msk; TMask* m = app()._msk;
TSheet_field& sf = (TSheet_field&)m2.field(F_SHEET); TSheet_field& sf = m2.sfield(F_SHEET);
TSheet_field& sf_riba = (TSheet_field&)m->field(F_SHEET_RIBA); TSheet_field& sf_riba = m->sfield(F_SHEET_RIBA);
real res = m2.get_real(F_IMPSEL); real res = m2.get_real(F_IMPSEL);
if (res > ZERO) if (res > ZERO)
{ // se i due importi sono diversi da zero { // se i due importi sono diversi da zero
@ -628,7 +635,7 @@ bool TVariazione_distinte::imp_sel_handler(TMask_field& f, KEY k)
for (i = 0; res > ZERO && i < items; i++) for (i = 0; res > ZERO && i < items; i++)
{ {
TToken_string& row = sf.row(i); TToken_string& row = sf.row(i);
TString16 codval = row.get(sf.cid2index(F_VALUTA)); TString4 codval = row.get(sf.cid2index(F_VALUTA));
codval.trim(); codval.trim();
const bool valuta = ::is_true_value(codval) ; const bool valuta = ::is_true_value(codval) ;
const real imp(row.get(sf.cid2index(valuta ? F_IMPORTOVAL : F_IMPORTO))); const real imp(row.get(sf.cid2index(valuta ? F_IMPORTOVAL : F_IMPORTO)));
@ -655,26 +662,21 @@ bool TVariazione_distinte::conferma_handler(TMask_field& f, KEY k)
{ {
if (k == K_ENTER) if (k == K_ENTER)
{ {
TMask * msk = app()._msk; TMask* msk = app()._msk;
TSheet_field & sf_riba = (TSheet_field&)msk->field(F_SHEET_RIBA); TSheet_field& sf_riba = msk->sfield(F_SHEET_RIBA);
TMask& m = f.mask(); TMask& m = f.mask();
m.close(); // chiudo la maschera secondaria m.close(); // chiudo la maschera secondaria
// scarico tutte le righe, selezionate, dello sheet della maschera // scarico tutte le righe, selezionate, dello sheet della maschera
// secondaria nello sheet della maschera primaria della relap (ef0300a) // secondaria nello sheet della maschera primaria della relap (ef0300a)
TSheet_field& sf = (TSheet_field&)m.field(F_SHEET); TSheet_field& sf = m.sfield(F_SHEET);
int items = sf.items(); FOR_EACH_SHEET_ROW(sf, i, row) if ((*row)[0] == 'X') // selected
for (int i = 0; i < items; i++)
{ {
TToken_string& row = sf.row(i); row->add(" ", 0);
if (*row.get(0) == 'X') // selected sf_riba.row(-1) = *row;
{
row.add(" ", 0);
sf_riba.row(-1) = row;
}
} }
} }
return TRUE; return true;
} }
// Handler per gestire la pressione del bottone annulla della maschera // Handler per gestire la pressione del bottone annulla della maschera
@ -683,7 +685,7 @@ bool TVariazione_distinte::annulla_handler(TMask_field& f, KEY k)
{ {
TMask& m = f.mask(); TMask& m = f.mask();
m.close(); m.close();
return TRUE; return true;
} }
// Handler per gestire la scelta per data, nella maschera di scelta // Handler per gestire la scelta per data, nella maschera di scelta
@ -695,13 +697,10 @@ bool TVariazione_distinte::data_handler(TMask_field& f, KEY k)
// Carica prima tutte le ri.ba e poi toglie quelle che non servono in base alla selzione // Carica prima tutte le ri.ba e poi toglie quelle che non servono in base alla selzione
int tipopag = app()._msk->get_int(F_TIPOPAG); int tipopag = app()._msk->get_int(F_TIPOPAG);
if (tipopag != 0) if (tipopag != 0)
{ carica_riba(tipopag, false);
TWait_cursor hourglass;
carica_riba(tipopag, FALSE);
}
TMask& m = f.mask(); TMask& m = f.mask();
bool deleted = FALSE; bool deleted = false;
TDate datad = m.get_date(F_DADATA); TDate datad = m.get_date(F_DADATA);
TDate dataa = m.get_date(F_ADATA); TDate dataa = m.get_date(F_ADATA);
@ -710,7 +709,7 @@ bool TVariazione_distinte::data_handler(TMask_field& f, KEY k)
if (!dataa.ok()) if (!dataa.ok())
dataa = eotime; dataa = eotime;
TDate data_sh; TDate data_sh;
TSheet_field& sf = (TSheet_field&)m.field(F_SHEET); TSheet_field& sf = m.sfield(F_SHEET);
TString_array& sa = sf.rows_array(); TString_array& sa = sf.rows_array();
const int field = m.get(F_TIPORD) == "F" ? 6 : 2; const int field = m.get(F_TIPORD) == "F" ? 6 : 2;
// tolgo dallo sheet gli effetti che hanno la data non compresa nel range // tolgo dallo sheet gli effetti che hanno la data non compresa nel range
@ -724,36 +723,33 @@ bool TVariazione_distinte::data_handler(TMask_field& f, KEY k)
sa.pack(); sa.pack();
sf.force_update(); sf.force_update();
} }
return TRUE; return true;
} }
// COMPARE FUNCTION per l'ordinamento per data degli effetti presenti
// nello sheet, nella maschera di scelta delle riba (ef0300c)
HIDDEN int confronta_numero(const TObject** o1, const TObject** o2)
{
TToken_string* s1 = (TToken_string*) *o1;
TToken_string* s2 = (TToken_string*) *o2;
const long eff1 = s1->get_long(1);
const long eff2 = s2->get_long(1);
return eff1-eff2;
}
// COMPARE FUNCTION per l'ordinamento per data degli effetti presenti // COMPARE FUNCTION per l'ordinamento per data degli effetti presenti
// nello sheet, nella maschera di scelta delle riba (ef0300c) // nello sheet, nella maschera di scelta delle riba (ef0300c)
HIDDEN int confronta_data(const TObject** o1, const TObject** o2) HIDDEN int confronta_data(const TObject** o1, const TObject** o2)
{ {
TToken_string* s1 = (TToken_string*) *o1; TToken_string* s1 = (TToken_string*) *o1;
TToken_string* s2 = (TToken_string*) *o2; TToken_string* s2 = (TToken_string*) *o2;
TDate data1 = s1->get(2); const TDate data1 = s1->get(2);
TDate data2 = s2->get(2); const TDate data2 = s2->get(2);
if (data1 == data2) if (data1 != data2)
return 0; return (data1 > data2) ? +1 : -1;
else
return (data1 > data2) ? +1 : -1; return confronta_numero(o1, o2);
}
// Handler per gestire l'ordinamento per data degli effetti presenti
// nello sheet, nella maschera di scelta delle riba (ef0300c)
void TVariazione_distinte::ord_data()
{
TWait_cursor hourglass;
TMask* m = app()._m2;
TSheet_field& sf = (TSheet_field&)m->field(F_SHEET);
// scarico tutte le righe dello sheet in un array
TArray& effetti = sf.rows_array();
// faccio l'ordinamento degli elementi dell'array
effetti.sort(confronta_data);
sf.force_update();
} }
// COMPARE FUNCTION per l'ordinamento per numero e data fattura degli // COMPARE FUNCTION per l'ordinamento per numero e data fattura degli
@ -762,42 +758,41 @@ HIDDEN int confronta_fatt(const TObject** o1, const TObject** o2)
{ {
TToken_string* s1 = (TToken_string*) *o1; TToken_string* s1 = (TToken_string*) *o1;
TToken_string* s2 = (TToken_string*) *o2; TToken_string* s2 = (TToken_string*) *o2;
TDate data1 = s1->get(6); const TDate data1 = s1->get(6);
TDate data2 = s2->get(6); const TDate data2 = s2->get(6);
// ordinamento sulla data fattura // ordinamento sulla data fattura
if (data1 == data2) if (data1 != data2)
return 0;
else
return (data1 > data2) ? +1 : -1; return (data1 > data2) ? +1 : -1;
return confronta_data(o1, o2);
} }
// Handler per gestire l'ordinamento per numero e data fattura degli void TVariazione_distinte::ordina(COMPARE_FUNCTION cf)
// effetti presenti nello sheet, nella maschera di scelta delle riba
void TVariazione_distinte::ord_fatt()
{ {
TWait_cursor hourglass; TWait_cursor hourglass;
TMask* m = app()._m2; TSheet_field& sf = app()._m2->sfield(F_SHEET);
TSheet_field& sf = (TSheet_field&)m->field(F_SHEET);
// scarico le righe dello sheet in un array // scarico le righe dello sheet in un array
TArray& effetti = sf.rows_array(); TArray& effetti = sf.rows_array();
effetti.sort(confronta_fatt);// ordino gli elementi dell'array effetti.sort(cf);// ordino gli elementi dell'array
sf.force_update(); sf.force_update();
} }
// Handler per gestire i diversi ordinamenti, nella maschera di scelta // Handler per gestire i diversi ordinamenti, nella maschera di scelta
// delle riba (ef0300c) // delle riba (ef0300c)
bool TVariazione_distinte::ordina_handler(TMask_field& f, KEY k) bool TVariazione_distinte::ordina_handler(TMask_field& f, KEY k)
{ {
if (f.to_check(k, TRUE)) if (k == K_SPACE && f.mask().is_running())
{ {
char ord = f.get()[0]; switch(f.get()[0])
if (ord == 'S')//ordino gli effetti nello sheet per data {
ord_data(); case 'S': ordina(confronta_data); break; //ordino gli effetti nello sheet per data
if (ord == 'F') case 'F': ordina(confronta_fatt); break; //ordino gli effetti nello sheet per fattura
ord_fatt();//ordino gli effetti nello sheet per fattura default : ordina(confronta_numero); break; //ordino gli effetti nello sheet per numero
}
} }
return TRUE; return true;
} }
bool TVariazione_distinte::uncontabilize_handler(TMask_field& f, KEY k) bool TVariazione_distinte::uncontabilize_handler(TMask_field& f, KEY k)
@ -837,7 +832,7 @@ bool TVariazione_distinte::uncontabilize_handler(TMask_field& f, KEY k)
m.stop_run(K_ESC); m.stop_run(K_ESC);
} }
} }
return TRUE; return true;
} }
// Metodo che calcola i totali relativi alla distinta (totale in // Metodo che calcola i totali relativi alla distinta (totale in
@ -845,10 +840,10 @@ bool TVariazione_distinte::uncontabilize_handler(TMask_field& f, KEY k)
void TVariazione_distinte::calcola_totale() void TVariazione_distinte::calcola_totale()
{ {
TMask* m = app()._msk; TMask* m = app()._msk;
TSheet_field& sf = (TSheet_field&)m->field(F_SHEET_RIBA); TSheet_field& sf = m->sfield(F_SHEET_RIBA);
const int items = sf.items(); const int items = sf.items();
real impdist; real impdist;
const TString16 codval = m->get(F_CODVAL); const TString& codval = m->get(F_CODVAL);
const bool valuta = ::is_true_value(codval); const bool valuta = ::is_true_value(codval);
for (int i = 0; i < items; i++) for (int i = 0; i < items; i++)
@ -877,7 +872,7 @@ bool TVariazione_distinte::dist_check_handler(TMask_field& f, KEY key)
row.add(checked ? "X" : "", 0); row.add(checked ? "X" : "", 0);
app().calcola_totale(); app().calcola_totale();
} }
return TRUE; return true;
} }
@ -890,15 +885,11 @@ void TVariazione_distinte::calcola()
const bool valuta = ::is_true_value(m2.get(F_CODVALS)); const bool valuta = ::is_true_value(m2.get(F_CODVALS));
const int imp_col = sf.cid2index(valuta ? F_IMPORTOVAL : F_IMPORTO); // Colonna con importo const int imp_col = sf.cid2index(valuta ? F_IMPORTOVAL : F_IMPORTO); // Colonna con importo
real impsel; real impsel;
for (int i = 0; i < sf.items(); i++) FOR_EACH_SHEET_ROW(sf, i, row)
{ {
TToken_string& row = sf.row(i);
// se l'effetto è selezionato aggiungo il suo importo al totale importo selezionato // se l'effetto è selezionato aggiungo il suo importo al totale importo selezionato
if (row.get_char(0) == 'X') if (row->get_char(0) == 'X')
{ impsel += real(row->get(imp_col));
const real imp = row.get(imp_col);
impsel += imp;
}
} }
m2.set(F_IMPSEL, impsel); m2.set(F_IMPSEL, impsel);
@ -918,7 +909,7 @@ bool TVariazione_distinte::check_handler(TMask_field& f, KEY key)
row.add(checked ? "X" : "", 0); row.add(checked ? "X" : "", 0);
app().calcola(); app().calcola();
} }
return TRUE; return true;
} }
// Metodo che permette di aggiungere effetti alla distinta caricandoli // Metodo che permette di aggiungere effetti alla distinta caricandoli
@ -930,10 +921,7 @@ void TVariazione_distinte::aggiungi()
TMask* m2 = app()._m2; TMask* m2 = app()._m2;
int tipopag = m->get_int(F_TIPOPAG); int tipopag = m->get_int(F_TIPOPAG);
if (tipopag != 0) if (tipopag != 0)
{
TWait_cursor hourglass;
carica_riba(tipopag); carica_riba(tipopag);
}
m2->set(F_CODVALS, m->get(F_CODVAL)); m2->set(F_CODVALS, m->get(F_CODVAL));
calcola(); calcola();
m2->run(); m2->run();
@ -948,9 +936,9 @@ bool TVariazione_distinte::impdist_notify(TSheet_field& s, int r, KEY key)
{ {
aggiungi(); aggiungi();
s.force_update(); s.force_update();
return FALSE; return false;
} }
return TRUE; return true;
} }
bool TVariazione_distinte::imp_notify(TSheet_field& s, int r, KEY key) bool TVariazione_distinte::imp_notify(TSheet_field& s, int r, KEY key)

View File

@ -4,22 +4,22 @@
// DEFINIZIONE CAMPI MASCHERE PER LA GESTIONE DISTINTE // DEFINIZIONE CAMPI MASCHERE PER LA GESTIONE DISTINTE
// campi maschera ef0300a.uml // campi maschera ef0300a.uml
#define F_TIPODIST 101 #define F_TIPODIST 151
#define F_NUMBER 102 #define F_NUMBER 152
#define F_NUMBERRIGA 103 #define F_NUMBERRIGA 153
#define F_DATA 104 #define F_DATA 154
#define F_DENBANP 105 #define F_DENBANP 155
#define F_CODABIP 106 #define F_CODABIP 156
#define F_CODCABP 107 #define F_CODCABP 157
#define F_TOTIMP 108 #define F_TOTIMP 158
#define F_IMPBUTTON 109 #define F_IMPBUTTON 159
#define F_CODVAL 111 #define F_CODVAL 161
#define F_TIPOPAG 112 #define F_TIPOPAG 162
#define F_SHEET_RIBA 113 #define F_SHEET_RIBA 163
#define F_NPROGTR 114 #define F_NPROGTR 164
#define F_TIPOCF 115 #define F_TIPOCF 165
#define F_UNCONTABIL 116 #define F_UNCONTABIL 166
#define F_PROG 117 #define F_PROG 167
// Identificatori campi per lo spreadsheet di selezione RiBa da aggiungere // Identificatori campi per lo spreadsheet di selezione RiBa da aggiungere
// alla distinta (ef0300c.uml) // alla distinta (ef0300c.uml)

View File

@ -5,16 +5,6 @@ TOOLBAR "topbar" 0 0 0 2
#include <relapbar.h> #include <relapbar.h>
ENDPAGE ENDPAGE
TOOLBAR "" 0 -2 0 2
BUTTON F_UNCONTABIL 30 2
BEGIN
PROMPT -11 0 "~Annulla contabilizzazione"
FLAGS "H"
END
ENDPAGE
PAGE "Distinta" 0 2 0 0 PAGE "Distinta" 0 2 0 0
GROUPBOX DLG_NULL 78 10 GROUPBOX DLG_NULL 78 10
@ -92,7 +82,7 @@ END
NUMBER F_CODABIP 5 NUMBER F_CODABIP 5
BEGIN BEGIN
PROMPT 15 3 "Codice ABI " PROMPT 2 3 "Banca di Presentazione "
FIELD LF_EFFETTI->CODABIP FIELD LF_EFFETTI->CODABIP
FLAGS "Z" FLAGS "Z"
USE BNP USE BNP
@ -114,7 +104,7 @@ END
NUMBER F_CODCABP 5 NUMBER F_CODCABP 5
BEGIN BEGIN
PROMPT 15 4 "Codice CAB " PROMPT 35 3 ""
FIELD LF_EFFETTI->CODCABP FIELD LF_EFFETTI->CODCABP
FLAGS "Z" FLAGS "Z"
COPY ALL F_CODABIP COPY ALL F_CODABIP
@ -123,15 +113,15 @@ END
NUMBER F_PROG 2 NUMBER F_PROG 2
BEGIN BEGIN
PROMPT 35 4 "" PROMPT 44 3 ""
FLAGS "Z" FLAGS "Z"
COPY ALL F_CODABIP COPY ALL F_CODABIP
CHECKTYPE SEARCH CHECKTYPE NORMAL
END END
STRING F_DENBANP 50 STRING F_DENBANP 50
BEGIN BEGIN
PROMPT 2 5 "Banca di Presentazione " PROMPT 26 4 ""
USE %BAN KEY 2 SELECT 100@->CODTAB!="" USE %BAN KEY 2 SELECT 100@->CODTAB!=""
JOIN BNP ALIAS 100 INTO CODTAB==CODTAB JOIN BNP ALIAS 100 INTO CODTAB==CODTAB
INPUT S0 F_DENBANP INPUT S0 F_DENBANP
@ -146,7 +136,7 @@ END
LIST F_TIPOPAG 24 LIST F_TIPOPAG 24
BEGIN BEGIN
PROMPT 2 6 "Tipo Pagamento " PROMPT 2 5 "Tipo Pagamento "
FIELD LF_EFFETTI->TIPOPAG FIELD LF_EFFETTI->TIPOPAG
ITEM "2|Tratta" ITEM "2|Tratta"
ITEM "3|Ricevuta Bancaria" ITEM "3|Ricevuta Bancaria"
@ -158,44 +148,51 @@ BEGIN
ITEM "9|Bonifico" ITEM "9|Bonifico"
END END
CURRENCY F_TOTIMP 18
BEGIN
PROMPT 2 6 "Valore di presentazione "
FLAGS "D"
DRIVENBY F_CODVAL
END
STRING F_CODVAL 3 STRING F_CODVAL 3
BEGIN BEGIN
PROMPT 2 7 "Codice Valuta " PROMPT 47 6 "Valuta "
FLAGS "UZ" FLAGS "UZ"
USE %VAL USE %VAL
INPUT CODTAB F_CODVAL INPUT CODTAB F_CODVAL
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
DISPLAY "Nome@50" S0 DISPLAY "Nome@50" S0
OUTPUT F_CODVAL CODTAB OUTPUT F_CODVAL CODTAB
END CHECKTYPE NORMAL
CURRENCY F_TOTIMP 18
BEGIN
PROMPT 2 8 "Valore di presentazione "
FLAGS "D"
DRIVENBY F_CODVAL
END END
BUTTON F_IMPBUTTON 10 2 BUTTON F_IMPBUTTON 10 2
BEGIN BEGIN
PROMPT 50 7 "~Selezione" PROMPT 65 5 "~Selezione"
PICTURE BMP_SELECT PICTURE BMP_SELECT
END END
BUTTON F_UNCONTABIL 30 2
BEGIN
PROMPT 2 7 "~Annulla contabilizzazione"
FLAGS "H"
END
SPREADSHEET F_SHEET_RIBA SPREADSHEET F_SHEET_RIBA
BEGIN BEGIN
PROMPT 0 10 "RIGHE DISTINTA" PROMPT 0 10 "RIGHE DISTINTA"
ITEM "Da elim." ITEM "Da\nelim.@4F"
ITEM "Nr. Ri.Ba." ITEM "Numero\nRi.Ba.@7F"
ITEM "Scadenza" ITEM "Data\nScadenza@10F"
ITEM "Cliente/Fornitore@50" ITEM "Cliente/Fornitore@50"
ITEM "Banca d'appoggio@40" ITEM "Banca d'appoggio@40"
ITEM "Nr. Fattura" ITEM "Numero\nFattura@7"
ITEM "Data Fattura" ITEM "Data\nFattura@10"
ITEM "Nr. Rata" ITEM "Rata"
ITEM "Valuta" ITEM "Valuta"
ITEM "Importo" ITEM "Importo@18"
ITEM "Importo Val." ITEM "Importo\nValuta@18"
END END
ENDPAGE ENDPAGE

View File

@ -34,7 +34,7 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
STRING F_NFATT 7 NUMBER F_NFATT 7
BEGIN BEGIN
PROMPT 2 6 "Numero Fattura " PROMPT 2 6 "Numero Fattura "
FIELD LF_REFFETTI->NFATT FIELD LF_REFFETTI->NFATT
@ -71,7 +71,7 @@ END
CURRENCY F_IMPORTOVAL 18 CURRENCY F_IMPORTOVAL 18
BEGIN BEGIN
PROMPT 2 11 "Importo Val. " PROMPT 2 11 "Importo Valuta "
FIELD LF_EFFETTI->IMPORTOVAL FIELD LF_EFFETTI->IMPORTOVAL
FLAGS "DR" FLAGS "DR"
DRIVENBY F_VALUTA DRIVENBY F_VALUTA

View File

@ -1,68 +1,6 @@
// DEFINIZIONE MASCHERA, DI AGGIUNTA EFFETTI, PER LA GESTIONE DISTINTE // DEFINIZIONE MASCHERA, DI AGGIUNTA EFFETTI, PER LA GESTIONE DISTINTE
#include "ef0300.h" #include "ef0300.h"
PAGE "Aggiungi Effetti alla Distinta" -1 -1 78 20
GROUPBOX DLG_NULL 60 3
BEGIN
PROMPT 1 1 "Visualizza effetti per data"
END
DATE F_DADATA
BEGIN
PROMPT 2 2 "Dalla Data "
END
DATE F_ADATA
BEGIN
PROMPT 30 2 "Alla Data "
END
LIST F_TIPORD 14
BEGIN
PROMPT 2 4 "Tipo Ordinamento "
ITEM " | "
ITEM "S|Scadenza "
ITEM "F|Fattura "
END
SPREADSHEET F_SHEET 74 10
BEGIN
PROMPT 2 6 "EFFETTI SELEZIONABILI"
ITEM "Sel."
ITEM "Nr. Ri.Ba."
ITEM "Scadenza"
ITEM "Cliente@50"
ITEM "Banca d'appoggio@50"
ITEM "Nr. Fattura"
ITEM "Data Fattura"
ITEM "Nr. Rata"
ITEM "Valuta"
ITEM "Importo"
ITEM "Importo Val."
END
STRING F_CODVALS 3
BEGIN
PROMPT 2 17 ""
FLAGS "H"
END
CURRENCY F_IMPSEL 18
BEGIN
PROMPT 2 17 "Imp. selezionato "
DRIVENBY F_CODVALS
END
CURRENCY F_TOTIMPDIST 18
BEGIN
PROMPT 39 17 "Imp. presentazione "
DRIVENBY F_CODVALS
FLAGS "D"
END
ENDPAGE
TOOLBAR "topbar" 0 0 0 2 TOOLBAR "topbar" 0 0 0 2
BUTTON DLG_OK 10 2 BUTTON DLG_OK 10 2
@ -70,9 +8,89 @@ BEGIN
PROMPT -12 -1 "" PROMPT -12 -1 ""
END END
BUTTON DLG_CANCEL 10 2 BUTTON DLG_NULL 2 2
BEGIN BEGIN
PROMPT -22 -1 "" PROMPT -1 1 ""
PICTURE 0
END
BUTTON DLG_INFO 2 2
BEGIN
PROMPT 1 1 "Info"
MESSAGE EXIT,K_F2
PICTURE TOOL_INFO
END
BUTTON DLG_HELP 2 2
BEGIN
PROMPT 2 1 "Help"
MESSAGE EXIT,K_F1
PICTURE TOOL_HELP
END
BUTTON DLG_CANCEL 2 2
BEGIN
PROMPT 3 1 "Annulla"
MESSAGE EXIT,K_ESC
PICTURE TOOL_CANCEL
END
ENDPAGE
PAGE "Aggiungi Effetti alla Distinta" -1 -1 78 20
DATE F_DADATA
BEGIN
PROMPT 1 0 "Selezione effetti dalla data "
END
DATE F_ADATA
BEGIN
PROMPT 44 0 "alla data "
END
RADIOBUTTON F_TIPORD 1 76
BEGIN
PROMPT 1 1 "Ordinamento effetti"
ITEM " |Numero"
ITEM "S|Scadenza"
ITEM "F|Fattura"
FLAGS "Z"
END
STRING F_CODVALS 3
BEGIN
PROMPT 2 4 ""
FLAGS "H"
END
CURRENCY F_IMPSEL 18
BEGIN
PROMPT 2 4 "Imp. selezionato "
DRIVENBY F_CODVALS
END
CURRENCY F_TOTIMPDIST 18
BEGIN
PROMPT 39 4 "Imp. presentazione "
DRIVENBY F_CODVALS
FLAGS "D"
END
SPREADSHEET F_SHEET
BEGIN
PROMPT 0 5 "EFFETTI SELEZIONABILI"
ITEM "Sel.@3F"
ITEM "Numero\nRi.Ba.@7F"
ITEM "Scadenza@10"
ITEM "Cliente/Fornitore@50"
ITEM "Banca d'appoggio@50"
ITEM "Numero\nFattura@7"
ITEM "Data\nFattura@10"
ITEM "Rata"
ITEM "Val."
ITEM "Importo@18"
ITEM "Importo Val.@18"
END END
ENDPAGE ENDPAGE