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:
parent
8c83d9664e
commit
56498e8cc7
62
ef/ef0.cpp
62
ef/ef0.cpp
@ -6,36 +6,38 @@ int main(int argc, char** argv)
|
||||
const char op = argc < 2 ? '0' : argv[1][1];
|
||||
switch (op)
|
||||
{
|
||||
case '1':
|
||||
ef0200(argc,argv);// GENERAZIONE EFFETTI DA E/C (OBSOLETO NON USARE PIU")
|
||||
break;
|
||||
case '2':
|
||||
ef0300(argc,argv);// AGGIORNAMENTO DISTINTE (DISTINTE DI PRESENTAZIONE)
|
||||
break;
|
||||
case '3':
|
||||
ef0400(argc,argv);// ELIMINAZIONE EFFETTI
|
||||
break;
|
||||
case '4':
|
||||
ef0500(argc,argv);// EMISSIONE EFFETTI/DISTINTE
|
||||
break;
|
||||
case '5':
|
||||
ef0600(argc,argv);// STAMPE DI CONTROLLO EFFETTI
|
||||
break;
|
||||
case '6':
|
||||
ef0700(argc,argv);// GESTIONE TABELLA BANCHE DI PRESENTAZIONE
|
||||
break;
|
||||
case '7':
|
||||
ef0800(argc,argv);// CONTABILIZZAZIONE EFFETTI
|
||||
break;
|
||||
case '8':
|
||||
ef0900(argc,argv);// PARAMETRI EFFETTI
|
||||
break;
|
||||
case '9':
|
||||
ef0A00(argc,argv);// GENERAZIONE DISTINTE DA SCADENZE
|
||||
break;
|
||||
default:
|
||||
ef0100(argc,argv);// GESTIONE EFFETTI
|
||||
break;
|
||||
/*
|
||||
case '1':
|
||||
ef0200(argc,argv);// GENERAZIONE EFFETTI DA E/C (OBSOLETO NON USARE PIU")
|
||||
break;
|
||||
*/
|
||||
case '2':
|
||||
ef0300(argc,argv);// AGGIORNAMENTO DISTINTE (DISTINTE DI PRESENTAZIONE)
|
||||
break;
|
||||
case '3':
|
||||
ef0400(argc,argv);// ELIMINAZIONE EFFETTI
|
||||
break;
|
||||
case '4':
|
||||
ef0500(argc,argv);// EMISSIONE EFFETTI/DISTINTE
|
||||
break;
|
||||
case '5':
|
||||
ef0600(argc,argv);// STAMPE DI CONTROLLO EFFETTI
|
||||
break;
|
||||
case '6':
|
||||
ef0700(argc,argv);// GESTIONE TABELLA BANCHE DI PRESENTAZIONE
|
||||
break;
|
||||
case '7':
|
||||
ef0800(argc,argv);// CONTABILIZZAZIONE EFFETTI
|
||||
break;
|
||||
case '8':
|
||||
ef0900(argc,argv);// PARAMETRI EFFETTI
|
||||
break;
|
||||
case '9':
|
||||
ef0A00(argc,argv);// GENERAZIONE DISTINTE DA SCADENZE
|
||||
break;
|
||||
default:
|
||||
ef0100(argc,argv);// GESTIONE EFFETTI
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
212
ef/ef0300.cpp
212
ef/ef0300.cpp
@ -28,7 +28,7 @@ protected:
|
||||
virtual int write(const TMask& m);
|
||||
virtual bool remove();
|
||||
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; }
|
||||
static bool tipodist_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 aggiungi();
|
||||
static bool effetto_aggiunto(const long numero);
|
||||
static void carica_riba(int tipopag, const bool reset = TRUE);
|
||||
static void ord_data();
|
||||
static void ord_fatt();
|
||||
static void carica_riba(int tipopag, const bool reset = true);
|
||||
static void ordina(COMPARE_FUNCTION cf);
|
||||
static const TString& get_ban_desc(const TRectype& eff);
|
||||
|
||||
// ritorna un riferimento allo sheet degli effetti (righe) nella
|
||||
// distinta
|
||||
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);
|
||||
}
|
||||
|
||||
// ritorna TRUE se trovo nell'array delle righe distinta l'effetto
|
||||
// ritorna true se trovo nell'array delle righe distinta l'effetto
|
||||
// passato
|
||||
bool TVariazione_distinte::cerca(long num)
|
||||
{
|
||||
@ -140,9 +141,9 @@ bool TVariazione_distinte::cerca(long num)
|
||||
TEffetto& eff = (TEffetto&)righedist[i];
|
||||
|
||||
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
|
||||
@ -194,6 +195,22 @@ TToken_string* TVariazione_distinte::common_f(const TMask& m, TToken_string& dat
|
||||
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
|
||||
int TVariazione_distinte::read(TMask& m)
|
||||
{
|
||||
@ -235,14 +252,8 @@ int TVariazione_distinte::read(TMask& m)
|
||||
|
||||
codice.cut(0);
|
||||
codice << eff.get_tipo(); codice << '|' << eff.get(EFF_CODCF);
|
||||
riga.add(cache().get(LF_CLIFO, codice, CLI_RAGSOC));
|
||||
|
||||
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);
|
||||
riga.add(cache().get(LF_CLIFO, codice, CLI_RAGSOC));
|
||||
riga.add(get_ban_desc(eff));
|
||||
|
||||
if (eff.fatt(numero))// se l'effetto contiene solo una fattura
|
||||
{ // 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))
|
||||
{
|
||||
// tolgo l'effetto dall'array
|
||||
righedist.destroy(j,TRUE);
|
||||
righedist.destroy(j,true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -371,7 +382,7 @@ int TVariazione_distinte::write(const TMask& m)
|
||||
aggiorna();
|
||||
|
||||
TToken_string datidist;
|
||||
err = _distinta->write(TRUE, common_f(m, datidist));
|
||||
err = _distinta->write(true, common_f(m, datidist));
|
||||
if (err == NOERR)
|
||||
{ //riposiziono la relazione
|
||||
_rel->lfile().setkey(4);
|
||||
@ -423,7 +434,7 @@ bool TVariazione_distinte::user_create()
|
||||
_m2->set_handler(F_TIPORD, ordina_handler);
|
||||
righe_sel_sheet().set_notify(imp_notify);
|
||||
righe_sel_sheet().sheet_mask().set_handler(FIRST_FIELD, check_handler);
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
// distruggo la relap
|
||||
@ -433,7 +444,7 @@ bool TVariazione_distinte::user_destroy()
|
||||
delete _m2;
|
||||
delete _rel;
|
||||
delete _distinta;
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
// 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;
|
||||
TSheet_field& sf_riba = (TSheet_field&)m->field(F_SHEET_RIBA);
|
||||
bool rt = FALSE;
|
||||
bool rt = false;
|
||||
const int items = sf_riba.items();
|
||||
for (int i=0; i<items && !rt; i++)
|
||||
{
|
||||
TToken_string& row = sf_riba.row(i);
|
||||
if (row.get_long(1) == numero)
|
||||
rt = TRUE;
|
||||
rt = true;
|
||||
}
|
||||
|
||||
return rt;
|
||||
@ -460,6 +471,8 @@ bool TVariazione_distinte::effetto_aggiunto(const long numero)
|
||||
// tipo di pagamento.
|
||||
void TVariazione_distinte::carica_riba(int tipopag, const bool reset)
|
||||
{
|
||||
TWait_cursor hourglass;
|
||||
|
||||
// deve caricare solo quegli effetti che non hanno riferimento alla
|
||||
// distinta quindi setta i campi ad essa relativi a zero
|
||||
char tipodist = 0;
|
||||
@ -472,11 +485,11 @@ void TVariazione_distinte::carica_riba(int tipopag, const bool reset)
|
||||
TMask* m2 = app()._m2;
|
||||
if (reset)
|
||||
m2->reset();
|
||||
TSheet_field& sf = (TSheet_field&)m2->field(F_SHEET);
|
||||
TSheet_field& sf = m2->sfield(F_SHEET);
|
||||
if (reset)
|
||||
sf.reset();
|
||||
|
||||
TString16 codval = app()._msk->get(F_CODVAL);
|
||||
TString4 codval = app()._msk->get(F_CODVAL);
|
||||
TString16 codtab;
|
||||
|
||||
int err, i = 0;
|
||||
@ -509,13 +522,7 @@ void TVariazione_distinte::carica_riba(int tipopag, const bool reset)
|
||||
TString16 codice;
|
||||
codice << tipo << '|' << eff.get(EFF_CODCF);
|
||||
riga.add(cache().get(LF_CLIFO, codice, CLI_RAGSOC));
|
||||
|
||||
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);
|
||||
riga.add(get_ban_desc(eff));
|
||||
|
||||
if (eff.fatt(numero))// se l'effetto contiene solo una fattura
|
||||
{ // 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)
|
||||
m.set(F_TIPOPAG,2);
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
// 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)
|
||||
{
|
||||
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();
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
// 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
|
||||
// significa che si deve procedere con il caricamento automatico
|
||||
// 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;
|
||||
TSheet_field& sf = (TSheet_field&)m2.field(F_SHEET);
|
||||
TSheet_field& sf_riba = (TSheet_field&)m->field(F_SHEET_RIBA);
|
||||
TSheet_field& sf = m2.sfield(F_SHEET);
|
||||
TSheet_field& sf_riba = m->sfield(F_SHEET_RIBA);
|
||||
real res = m2.get_real(F_IMPSEL);
|
||||
if (res > 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++)
|
||||
{
|
||||
TToken_string& row = sf.row(i);
|
||||
TString16 codval = row.get(sf.cid2index(F_VALUTA));
|
||||
TString4 codval = row.get(sf.cid2index(F_VALUTA));
|
||||
codval.trim();
|
||||
const bool valuta = ::is_true_value(codval) ;
|
||||
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)
|
||||
{
|
||||
TMask * msk = app()._msk;
|
||||
TSheet_field & sf_riba = (TSheet_field&)msk->field(F_SHEET_RIBA);
|
||||
TMask* msk = app()._msk;
|
||||
TSheet_field& sf_riba = msk->sfield(F_SHEET_RIBA);
|
||||
TMask& m = f.mask();
|
||||
|
||||
m.close(); // chiudo la maschera secondaria
|
||||
// scarico tutte le righe, selezionate, dello sheet della maschera
|
||||
// secondaria nello sheet della maschera primaria della relap (ef0300a)
|
||||
TSheet_field& sf = (TSheet_field&)m.field(F_SHEET);
|
||||
int items = sf.items();
|
||||
for (int i = 0; i < items; i++)
|
||||
TSheet_field& sf = m.sfield(F_SHEET);
|
||||
FOR_EACH_SHEET_ROW(sf, i, row) if ((*row)[0] == 'X') // selected
|
||||
{
|
||||
TToken_string& row = sf.row(i);
|
||||
if (*row.get(0) == 'X') // selected
|
||||
{
|
||||
row.add(" ", 0);
|
||||
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
|
||||
@ -683,7 +685,7 @@ bool TVariazione_distinte::annulla_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
TMask& m = f.mask();
|
||||
m.close();
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
// 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
|
||||
int tipopag = app()._msk->get_int(F_TIPOPAG);
|
||||
if (tipopag != 0)
|
||||
{
|
||||
TWait_cursor hourglass;
|
||||
carica_riba(tipopag, FALSE);
|
||||
}
|
||||
carica_riba(tipopag, false);
|
||||
|
||||
TMask& m = f.mask();
|
||||
bool deleted = FALSE;
|
||||
bool deleted = false;
|
||||
TDate datad = m.get_date(F_DADATA);
|
||||
TDate dataa = m.get_date(F_ADATA);
|
||||
|
||||
@ -710,7 +709,7 @@ bool TVariazione_distinte::data_handler(TMask_field& f, KEY k)
|
||||
if (!dataa.ok())
|
||||
dataa = eotime;
|
||||
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();
|
||||
const int field = m.get(F_TIPORD) == "F" ? 6 : 2;
|
||||
// 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();
|
||||
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
|
||||
// nello sheet, nella maschera di scelta delle riba (ef0300c)
|
||||
HIDDEN int confronta_data(const TObject** o1, const TObject** o2)
|
||||
{
|
||||
TToken_string* s1 = (TToken_string*) *o1;
|
||||
TToken_string* s2 = (TToken_string*) *o2;
|
||||
TDate data1 = s1->get(2);
|
||||
TDate data2 = s2->get(2);
|
||||
const TDate data1 = s1->get(2);
|
||||
const TDate data2 = s2->get(2);
|
||||
|
||||
if (data1 == data2)
|
||||
return 0;
|
||||
else
|
||||
return (data1 > data2) ? +1 : -1;
|
||||
}
|
||||
|
||||
// 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();
|
||||
if (data1 != data2)
|
||||
return (data1 > data2) ? +1 : -1;
|
||||
|
||||
return confronta_numero(o1, o2);
|
||||
}
|
||||
|
||||
// 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* s2 = (TToken_string*) *o2;
|
||||
TDate data1 = s1->get(6);
|
||||
TDate data2 = s2->get(6);
|
||||
const TDate data1 = s1->get(6);
|
||||
const TDate data2 = s2->get(6);
|
||||
|
||||
// ordinamento sulla data fattura
|
||||
if (data1 == data2)
|
||||
return 0;
|
||||
else
|
||||
if (data1 != data2)
|
||||
return (data1 > data2) ? +1 : -1;
|
||||
|
||||
return confronta_data(o1, o2);
|
||||
}
|
||||
|
||||
// Handler per gestire l'ordinamento per numero e data fattura degli
|
||||
// effetti presenti nello sheet, nella maschera di scelta delle riba
|
||||
void TVariazione_distinte::ord_fatt()
|
||||
void TVariazione_distinte::ordina(COMPARE_FUNCTION cf)
|
||||
{
|
||||
TWait_cursor hourglass;
|
||||
TMask* m = app()._m2;
|
||||
TSheet_field& sf = (TSheet_field&)m->field(F_SHEET);
|
||||
TSheet_field& sf = app()._m2->sfield(F_SHEET);
|
||||
// scarico le righe dello sheet in un 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();
|
||||
}
|
||||
|
||||
|
||||
// Handler per gestire i diversi ordinamenti, nella maschera di scelta
|
||||
// delle riba (ef0300c)
|
||||
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];
|
||||
if (ord == 'S')//ordino gli effetti nello sheet per data
|
||||
ord_data();
|
||||
if (ord == 'F')
|
||||
ord_fatt();//ordino gli effetti nello sheet per fattura
|
||||
switch(f.get()[0])
|
||||
{
|
||||
case 'S': ordina(confronta_data); break; //ordino gli effetti nello sheet per data
|
||||
case 'F': ordina(confronta_fatt); break; //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)
|
||||
@ -837,7 +832,7 @@ bool TVariazione_distinte::uncontabilize_handler(TMask_field& f, KEY k)
|
||||
m.stop_run(K_ESC);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
// 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()
|
||||
{
|
||||
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();
|
||||
real impdist;
|
||||
const TString16 codval = m->get(F_CODVAL);
|
||||
const TString& codval = m->get(F_CODVAL);
|
||||
const bool valuta = ::is_true_value(codval);
|
||||
|
||||
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);
|
||||
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 int imp_col = sf.cid2index(valuta ? F_IMPORTOVAL : F_IMPORTO); // Colonna con importo
|
||||
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
|
||||
if (row.get_char(0) == 'X')
|
||||
{
|
||||
const real imp = row.get(imp_col);
|
||||
impsel += imp;
|
||||
}
|
||||
if (row->get_char(0) == 'X')
|
||||
impsel += real(row->get(imp_col));
|
||||
}
|
||||
m2.set(F_IMPSEL, impsel);
|
||||
|
||||
@ -918,7 +909,7 @@ bool TVariazione_distinte::check_handler(TMask_field& f, KEY key)
|
||||
row.add(checked ? "X" : "", 0);
|
||||
app().calcola();
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
// Metodo che permette di aggiungere effetti alla distinta caricandoli
|
||||
@ -930,10 +921,7 @@ void TVariazione_distinte::aggiungi()
|
||||
TMask* m2 = app()._m2;
|
||||
int tipopag = m->get_int(F_TIPOPAG);
|
||||
if (tipopag != 0)
|
||||
{
|
||||
TWait_cursor hourglass;
|
||||
carica_riba(tipopag);
|
||||
}
|
||||
m2->set(F_CODVALS, m->get(F_CODVAL));
|
||||
calcola();
|
||||
m2->run();
|
||||
@ -948,9 +936,9 @@ bool TVariazione_distinte::impdist_notify(TSheet_field& s, int r, KEY key)
|
||||
{
|
||||
aggiungi();
|
||||
s.force_update();
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TVariazione_distinte::imp_notify(TSheet_field& s, int r, KEY key)
|
||||
|
32
ef/ef0300.h
32
ef/ef0300.h
@ -4,22 +4,22 @@
|
||||
// DEFINIZIONE CAMPI MASCHERE PER LA GESTIONE DISTINTE
|
||||
// campi maschera ef0300a.uml
|
||||
|
||||
#define F_TIPODIST 101
|
||||
#define F_NUMBER 102
|
||||
#define F_NUMBERRIGA 103
|
||||
#define F_DATA 104
|
||||
#define F_DENBANP 105
|
||||
#define F_CODABIP 106
|
||||
#define F_CODCABP 107
|
||||
#define F_TOTIMP 108
|
||||
#define F_IMPBUTTON 109
|
||||
#define F_CODVAL 111
|
||||
#define F_TIPOPAG 112
|
||||
#define F_SHEET_RIBA 113
|
||||
#define F_NPROGTR 114
|
||||
#define F_TIPOCF 115
|
||||
#define F_UNCONTABIL 116
|
||||
#define F_PROG 117
|
||||
#define F_TIPODIST 151
|
||||
#define F_NUMBER 152
|
||||
#define F_NUMBERRIGA 153
|
||||
#define F_DATA 154
|
||||
#define F_DENBANP 155
|
||||
#define F_CODABIP 156
|
||||
#define F_CODCABP 157
|
||||
#define F_TOTIMP 158
|
||||
#define F_IMPBUTTON 159
|
||||
#define F_CODVAL 161
|
||||
#define F_TIPOPAG 162
|
||||
#define F_SHEET_RIBA 163
|
||||
#define F_NPROGTR 164
|
||||
#define F_TIPOCF 165
|
||||
#define F_UNCONTABIL 166
|
||||
#define F_PROG 167
|
||||
|
||||
// Identificatori campi per lo spreadsheet di selezione RiBa da aggiungere
|
||||
// alla distinta (ef0300c.uml)
|
||||
|
@ -5,16 +5,6 @@ TOOLBAR "topbar" 0 0 0 2
|
||||
#include <relapbar.h>
|
||||
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
|
||||
|
||||
GROUPBOX DLG_NULL 78 10
|
||||
@ -92,7 +82,7 @@ END
|
||||
|
||||
NUMBER F_CODABIP 5
|
||||
BEGIN
|
||||
PROMPT 15 3 "Codice ABI "
|
||||
PROMPT 2 3 "Banca di Presentazione "
|
||||
FIELD LF_EFFETTI->CODABIP
|
||||
FLAGS "Z"
|
||||
USE BNP
|
||||
@ -114,7 +104,7 @@ END
|
||||
|
||||
NUMBER F_CODCABP 5
|
||||
BEGIN
|
||||
PROMPT 15 4 "Codice CAB "
|
||||
PROMPT 35 3 ""
|
||||
FIELD LF_EFFETTI->CODCABP
|
||||
FLAGS "Z"
|
||||
COPY ALL F_CODABIP
|
||||
@ -123,15 +113,15 @@ END
|
||||
|
||||
NUMBER F_PROG 2
|
||||
BEGIN
|
||||
PROMPT 35 4 ""
|
||||
PROMPT 44 3 ""
|
||||
FLAGS "Z"
|
||||
COPY ALL F_CODABIP
|
||||
CHECKTYPE SEARCH
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DENBANP 50
|
||||
BEGIN
|
||||
PROMPT 2 5 "Banca di Presentazione "
|
||||
PROMPT 26 4 ""
|
||||
USE %BAN KEY 2 SELECT 100@->CODTAB!=""
|
||||
JOIN BNP ALIAS 100 INTO CODTAB==CODTAB
|
||||
INPUT S0 F_DENBANP
|
||||
@ -146,7 +136,7 @@ END
|
||||
|
||||
LIST F_TIPOPAG 24
|
||||
BEGIN
|
||||
PROMPT 2 6 "Tipo Pagamento "
|
||||
PROMPT 2 5 "Tipo Pagamento "
|
||||
FIELD LF_EFFETTI->TIPOPAG
|
||||
ITEM "2|Tratta"
|
||||
ITEM "3|Ricevuta Bancaria"
|
||||
@ -158,44 +148,51 @@ BEGIN
|
||||
ITEM "9|Bonifico"
|
||||
END
|
||||
|
||||
CURRENCY F_TOTIMP 18
|
||||
BEGIN
|
||||
PROMPT 2 6 "Valore di presentazione "
|
||||
FLAGS "D"
|
||||
DRIVENBY F_CODVAL
|
||||
END
|
||||
|
||||
STRING F_CODVAL 3
|
||||
BEGIN
|
||||
PROMPT 2 7 "Codice Valuta "
|
||||
PROMPT 47 6 "Valuta "
|
||||
FLAGS "UZ"
|
||||
USE %VAL
|
||||
INPUT CODTAB F_CODVAL
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Nome@50" S0
|
||||
OUTPUT F_CODVAL CODTAB
|
||||
END
|
||||
|
||||
CURRENCY F_TOTIMP 18
|
||||
BEGIN
|
||||
PROMPT 2 8 "Valore di presentazione "
|
||||
FLAGS "D"
|
||||
DRIVENBY F_CODVAL
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
BUTTON F_IMPBUTTON 10 2
|
||||
BEGIN
|
||||
PROMPT 50 7 "~Selezione"
|
||||
PROMPT 65 5 "~Selezione"
|
||||
PICTURE BMP_SELECT
|
||||
END
|
||||
|
||||
BUTTON F_UNCONTABIL 30 2
|
||||
BEGIN
|
||||
PROMPT 2 7 "~Annulla contabilizzazione"
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
SPREADSHEET F_SHEET_RIBA
|
||||
BEGIN
|
||||
PROMPT 0 10 "RIGHE DISTINTA"
|
||||
ITEM "Da elim."
|
||||
ITEM "Nr. Ri.Ba."
|
||||
ITEM "Scadenza"
|
||||
ITEM "Da\nelim.@4F"
|
||||
ITEM "Numero\nRi.Ba.@7F"
|
||||
ITEM "Data\nScadenza@10F"
|
||||
ITEM "Cliente/Fornitore@50"
|
||||
ITEM "Banca d'appoggio@40"
|
||||
ITEM "Nr. Fattura"
|
||||
ITEM "Data Fattura"
|
||||
ITEM "Nr. Rata"
|
||||
ITEM "Numero\nFattura@7"
|
||||
ITEM "Data\nFattura@10"
|
||||
ITEM "Rata"
|
||||
ITEM "Valuta"
|
||||
ITEM "Importo"
|
||||
ITEM "Importo Val."
|
||||
ITEM "Importo@18"
|
||||
ITEM "Importo\nValuta@18"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
@ -34,7 +34,7 @@ BEGIN
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_NFATT 7
|
||||
NUMBER F_NFATT 7
|
||||
BEGIN
|
||||
PROMPT 2 6 "Numero Fattura "
|
||||
FIELD LF_REFFETTI->NFATT
|
||||
@ -71,7 +71,7 @@ END
|
||||
|
||||
CURRENCY F_IMPORTOVAL 18
|
||||
BEGIN
|
||||
PROMPT 2 11 "Importo Val. "
|
||||
PROMPT 2 11 "Importo Valuta "
|
||||
FIELD LF_EFFETTI->IMPORTOVAL
|
||||
FLAGS "DR"
|
||||
DRIVENBY F_VALUTA
|
||||
|
146
ef/ef0300c.uml
146
ef/ef0300c.uml
@ -1,68 +1,6 @@
|
||||
// DEFINIZIONE MASCHERA, DI AGGIUNTA EFFETTI, PER LA GESTIONE DISTINTE
|
||||
#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
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
@ -70,9 +8,89 @@ BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 10 2
|
||||
BUTTON DLG_NULL 2 2
|
||||
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
|
||||
|
||||
ENDPAGE
|
||||
|
Loading…
x
Reference in New Issue
Block a user