Corretti errori Gabri

git-svn-id: svn://10.65.10.50/trunk@2681 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1996-03-15 09:38:11 +00:00
parent 1a859406ee
commit 1e0dcad4b8
6 changed files with 132 additions and 61 deletions

View File

@ -537,12 +537,12 @@ BEGIN
GROUP 4 GROUP 4
END END
NUMBER F_CORRVALUTA 15 3 NUMBER F_CORRVALUTA 15 2
BEGIN BEGIN
PROMPT 41 18 "Corrispettivo valuta " PROMPT 41 18 "Corrispettivo valuta "
FIELD CORRVALUTA FIELD CORRVALUTA
FLAGS "R" FLAGS "R"
PICTURE ".3" PICTURE ".2"
GROUP 4 GROUP 4
VALIDATE REQIF_FUNC 1 F_VALUTAINTRA VALIDATE REQIF_FUNC 1 F_VALUTAINTRA
END END

View File

@ -230,6 +230,7 @@ END
LIST 112 1 20 LIST 112 1 20
BEGIN BEGIN
PROMPT 1 5 "Tipo movimento " PROMPT 1 5 "Tipo movimento "
ITEM " |Nessuno"
ITEM "1|Fattura" ITEM "1|Fattura"
ITEM "2|Nota credito" ITEM "2|Nota credito"
ITEM "3|Incasso/Pagamento" ITEM "3|Incasso/Pagamento"

View File

@ -100,6 +100,8 @@ class TPay_mask : public TMask
real _da_pagare, _pagabile; real _da_pagare, _pagabile;
const TGame_mask& _parent; const TGame_mask& _parent;
tipo_movimento _tipomov;
TDecoder _causale; TDecoder _causale;
bool _assigned; bool _assigned;
bool _can_solder; bool _can_solder;
@ -125,11 +127,12 @@ public:
bool assigned() const { return _assigned; } bool assigned() const { return _assigned; }
bool unassigned() const { return !_assigned; } bool unassigned() const { return !_assigned; }
tipo_movimento tipo() const { return _tipomov; }
void attiva_valuta(bool on); void attiva_valuta(bool on);
TPay_mask(const TGame_mask& parent, int mode); TPay_mask(const TGame_mask& parent, int mode);
virtual ~TPay_mask() {} virtual ~TPay_mask();
}; };
#ifdef __EXTRA__ #ifdef __EXTRA__
@ -146,6 +149,8 @@ TPay_mask::TPay_mask(const TGame_mask& parent, int mod)
enable(DLG_DELREC, edit_mode()); enable(DLG_DELREC, edit_mode());
#ifdef __EXTRA__ #ifdef __EXTRA__
xvt_statbar_set(mod == MODE_MOD ? "Modifica" : "Inserimento", TRUE);
hide(E_CODPAG); hide(E_DESPAG); hide(E_CODPAG); hide(E_DESPAG);
set_handler(E_DATAREG, datareg_handler); set_handler(E_DATAREG, datareg_handler);
set_handler(E_DATADOC, datadoc_handler); set_handler(E_DATADOC, datadoc_handler);
@ -176,6 +181,13 @@ TPay_mask::TPay_mask(const TGame_mask& parent, int mod)
disable(E_ANNORIF); disable(E_ANNORIF);
disable(E_NUMRIF); disable(E_NUMRIF);
#endif #endif
}
TPay_mask::~TPay_mask()
{
#ifdef __EXTRA__
xvt_statbar_set("Estratto conto", TRUE);
#endif
} }
void TPay_mask::attiva_valuta(bool in_valuta) void TPay_mask::attiva_valuta(bool in_valuta)
@ -209,6 +221,8 @@ void TPay_mask::set_pag(const TRectype& oldpag, const TRiga_scadenze& scad,
const int nrigp = oldpag.get_int(PAGSCA_NRIGP); const int nrigp = oldpag.get_int(PAGSCA_NRIGP);
const TRiga_partite& sum = p.riga(nrigp); const TRiga_partite& sum = p.riga(nrigp);
_assigned = oldpag.get_int(PAGSCA_NRIGA) != TPartita::UNASSIGNED; _assigned = oldpag.get_int(PAGSCA_NRIGA) != TPartita::UNASSIGNED;
_tipomov = (tipo_movimento)sum.get_int(PART_TIPOMOV);
const TRiga_partite& fatt = _assigned ? scad.riga() : sum; const TRiga_partite& fatt = _assigned ? scad.riga() : sum;
TRelation rel(LF_PAGSCA); // Working relation TRelation rel(LF_PAGSCA); // Working relation
@ -318,12 +332,13 @@ void TPay_mask::set_pag(const TRectype& oldpag, const TRiga_scadenze& scad,
// La valuta puo' essere cambiata solo su partite nuove // La valuta puo' essere cambiata solo su partite nuove
const bool on = p.first() == p.last(); const bool on = p.first() == p.last();
enable(E_VALUTA, on); enable(E_VALUTA, on);
show(-3, on || in_valuta); // Attiva campi relativi alla valuta
#else #else
show(-3, in_valuta); // Attiva campi relativi alla valuta
set_handler(S_GRUPPO, conto_handler); set_handler(S_GRUPPO, conto_handler);
set_handler(S_CONTO, conto_handler); set_handler(S_CONTO, conto_handler);
const bool mostra_conto = !sum.is_nota_credito(); const bool mostra_conto = !sum.is_nota_credito();
show(-2, mostra_conto); // mostra/nasconde conto contropartita show(-2, mostra_conto); // mostra/nasconde conto contropartita
show(-3, in_valuta); // Attiva campi relativi alla valuta
#endif #endif
// Gestione data-pagamento: non puo' precedere la data del documento // Gestione data-pagamento: non puo' precedere la data del documento
@ -433,7 +448,11 @@ bool TPay_mask::importo_handler(TMask_field& f, KEY k)
if (sa.get()[0] != 'S') if (sa.get()[0] != 'S')
{ {
const real residuo(m._da_pagare - i); real residuo = m._da_pagare;
if (m.tipo() == tm_insoluto)
residuo += i;
else
residuo -= i;
m.set(S_RESIDUORATA, residuo); m.set(S_RESIDUORATA, residuo);
} }
else else
@ -586,6 +605,8 @@ TGame_mask::TGame_mask(const TBill& bill, long numreg, int riga)
set(P_DESCR, descr); set(P_DESCR, descr);
#ifdef __EXTRA__ #ifdef __EXTRA__
xvt_statbar_set("Estratto conto", TRUE);
disable(-3); // Disabilita gestione valuta disable(-3); // Disabilita gestione valuta
hide(P_RESIDUO); hide(P_RESIDUO);
hide(P_RESIDUOVAL); hide(P_RESIDUOVAL);
@ -926,6 +947,7 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k)
TToken_string& rrit = scadenze.row(scadenze.add("")); TToken_string& rrit = scadenze.row(scadenze.add(""));
rrit.add("Ritenute professionali", 4); rrit.add("Ritenute professionali", 4);
gm.add_importo(rrit, rit, FALSE); gm.add_importo(rrit, rit, FALSE);
rrit.add(sum.get(PART_TIPOMOV), 11);
} }
} }
@ -951,6 +973,7 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k)
gm.add_importo(rabb, abb, FALSE); gm.add_importo(rabb, abb, FALSE);
rabb.add(""); rabb.add("");
} }
rabb.add(sum.get(PART_TIPOMOV), 11);
} }
// Le differenze cambio possono esistere solo in valuta // Le differenze cambio possono esistere solo in valuta
@ -962,6 +985,7 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k)
TToken_string& rdiff = scadenze.row(scadenze.add("")); TToken_string& rdiff = scadenze.row(scadenze.add(""));
rdiff.add("Differenza cambio", 4); rdiff.add("Differenza cambio", 4);
gm.add_importo(rdiff, diff); gm.add_importo(rdiff, diff);
rdiff.add(sum.get(PART_TIPOMOV), 11);
} }
} }
@ -1028,6 +1052,7 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k)
TToken_string& row = scadenze.row(scadenze.add("")); TToken_string& row = scadenze.row(scadenze.add(""));
row.add("Ritenute professionali", 4); row.add("Ritenute professionali", 4);
gm.add_importo(row, rit, FALSE); gm.add_importo(row, rit, FALSE);
row.add(sum.get(PART_TIPOMOV), 11);
tot_lit += rit; tot_lit += rit;
} }
} }
@ -1200,14 +1225,17 @@ int TGame_mask::nuovo_pagamento(TPartita& partita, int nriga, int rata, tipo_mov
// Calcola riga causale per la contropartita in base al tipo pagamento // Calcola riga causale per la contropartita in base al tipo pagamento
int caus = 2; int caus = 2;
if (rata != TPartita::UNASSIGNED)
{ if (nriga != TPartita::UNASSIGNED)
const TRiga_scadenze& scad = partita.rata(nriga, rata); {
const TRiga_partite& fatt = partita.riga(nriga);
const TRiga_scadenze& scad = fatt.rata(rata);
const int tp = scad.get_int(SCAD_TIPOPAG); const int tp = scad.get_int(SCAD_TIPOPAG);
caus = partita.tipopag2causale(tp); caus = partita.tipopag2causale(tp);
TRiga_partite& somma = partita.riga(nrigp); TRiga_partite& somma = partita.riga(nrigp);
somma.put(PART_TIPOPAG, tp); somma.put(PART_TIPOPAG, tp);
somma.put(PART_CODVAL, fatt.get(PART_CODVAL));
pagamento.put(PAGSCA_CODABIPR, scad.get(SCAD_CODABIPR)); pagamento.put(PAGSCA_CODABIPR, scad.get(SCAD_CODABIPR));
pagamento.put(PAGSCA_CODCABPR, scad.get(SCAD_CODCABPR)); pagamento.put(PAGSCA_CODCABPR, scad.get(SCAD_CODCABPR));
@ -1232,15 +1260,15 @@ bool TGame_mask::edit_scadenza_handler(TMask_field& f, KEY k)
if (k == K_SPACE) if (k == K_SPACE)
{ {
TMask& m = f.mask(); TMask& m = f.mask();
const int nriga = m.get_int(101); const int nriga = m.get_int(101); // Numero riga fattura
if (nriga == 0) if (nriga == 0)
return FALSE; // Ho cliccato su di un saldo (per sbaglio!) return FALSE; // Ho cliccato su di un saldo (per sbaglio!)
TGame_mask& gm = (TGame_mask&)(m.get_sheet()->mask()); TGame_mask& gm = (TGame_mask&)(m.get_sheet()->mask());
const TBill& bill = gm.conto(); const TBill& bill = gm.conto(); // Clifo
const int anno = gm.get_int(P_ANNO); const int anno = gm.get_int(P_ANNO); // Anno
const TString16 numero = gm.get(P_NUMERO); const TString numero = gm.get(P_NUMERO); // Numero
TPartite_array& giochi = app().partite(); TPartite_array& giochi = app().partite();
TPartita* was = giochi.exist(bill, anno, numero); // Controlla esistenza nell'array TPartita* was = giochi.exist(bill, anno, numero); // Controlla esistenza nell'array
@ -1257,7 +1285,8 @@ bool TGame_mask::edit_scadenza_handler(TMask_field& f, KEY k)
if (was == NULL) giochi.destroy(game); if (was == NULL) giochi.destroy(game);
return f.error_box("La rata %d e' bloccata.", nrata); return f.error_box("La rata %d e' bloccata.", nrata);
} }
#ifndef __EXTRA__
const TValuta parval(game.riga(nriga)); const TValuta parval(game.riga(nriga));
const TValuta curval(gm, P_VALUTA, P_DATACAMBIO, P_CAMBIO); const TValuta curval(gm, P_VALUTA, P_DATACAMBIO, P_CAMBIO);
if (parval != curval) if (parval != curval)
@ -1268,6 +1297,7 @@ bool TGame_mask::edit_scadenza_handler(TMask_field& f, KEY k)
if (was == NULL) giochi.destroy(game); if (was == NULL) giochi.destroy(game);
return f.error_box("La fattura deve essere pagata in %s.", (const char*)c); return f.error_box("La fattura deve essere pagata in %s.", (const char*)c);
} }
#endif
tipo_movimento tm; tipo_movimento tm;
@ -1302,9 +1332,6 @@ bool TGame_mask::edit_scadenza_handler(TMask_field& f, KEY k)
cambiato = gm.edit_pagamento(game, nriga, nrata, nrigp); cambiato = gm.edit_pagamento(game, nriga, nrata, nrigp);
if (cambiato) if (cambiato)
{ {
// Se ho cancellato il pagamento chiudo la maschera
if (m.is_running() && !game.esiste(nriga, nrata, nrigp))
m.stop_run(K_FORCE_CLOSE);
#ifdef __EXTRA__ #ifdef __EXTRA__
game.rewrite(); // In extra-contabile salvo subito! game.rewrite(); // In extra-contabile salvo subito!
#endif #endif
@ -1342,6 +1369,9 @@ bool TGame_mask::edit_scadenza_handler(TMask_field& f, KEY k)
if (cambiato) if (cambiato)
{ {
if (m.is_running()) // Se la maschera e' aperta la chiudo
m.stop_run(K_FORCE_CLOSE);
TSheet_field& ss = gm.scadenze(); TSheet_field& ss = gm.scadenze();
const int rs = ss.selected(); // Memorizza la riga corrente const int rs = ss.selected(); // Memorizza la riga corrente
gm.fill_partite(); // Aggiorna elenco partite gm.fill_partite(); // Aggiorna elenco partite
@ -1467,7 +1497,6 @@ void TGame_mask::add_descrizione(TToken_string& s, const TRiga_partite& riga, in
s.add(desc, pos); s.add(desc, pos);
} }
TImporto TGame_mask::get_importo(TToken_string& s, int pos) const TImporto TGame_mask::get_importo(TToken_string& s, int pos) const
{ {
const TFixed_string imp(s.get(pos)); const TFixed_string imp(s.get(pos));

View File

@ -362,7 +362,7 @@ TImporto TRiga_scadenze::importo_pagato(bool val, int mode) const
if (mode & 0x1) if (mode & 0x1)
totale += TImporto(sez, pag.get_real(imp_field)); totale += TImporto(sez, pag.get_real(imp_field));
if (!in_val && (mode & 0x8)) // Le ritenute non esistono nei pagamenti in valuta if (!in_val && (mode & 0x8)) // Le ritenute non esistono nei pagamenti in valuta
totale += TImporto(sez, pag.get_real(PAGSCA_RITENUTE)); totale += TImporto(sez, pag.get_real(PAGSCA_RITENUTE));
if (mode & 0x2) // Voglio anche gli abbuoni if (mode & 0x2) // Voglio anche gli abbuoni
@ -622,8 +622,8 @@ void TRiga_partite::elimina_rata(int r)
{ // il metodo rate() funzioni sempre correttamente { // il metodo rate() funzioni sempre correttamente
TRiga_scadenze& scad = rata(r); TRiga_scadenze& scad = rata(r);
for (int p = scad.last(); p > 0; p = scad.pred(p)) for (int p = scad.last(); p > 0; p = scad.pred(p))
scad.elimina_pagamento(p); scad.elimina_pagamento(p); // Elimina pagamento
rows_array().destroy_row(r); rows_array().destroy_row(r); // Elimina rata
} }
} }
@ -643,7 +643,7 @@ tipo_movimento TRiga_partite::tipo() const
const tipo_movimento tm = (tipo_movimento)(get_char(PART_TIPOMOV)-'0'); const tipo_movimento tm = (tipo_movimento)(get_char(PART_TIPOMOV)-'0');
#ifdef DBG #ifdef DBG
if (tm == tm_nessuno && get_int(PART_NRIGA) != TPartita::UNASSIGNED) if (tm == tm_nessuno && get_int(PART_NRIGA) != TPartita::UNASSIGNED)
fatal_box("Riga partite con un tipo losco."); yesnofatal_box("Riga partite con un tipo losco.");
#endif #endif
return tm; return tm;
} }
@ -947,11 +947,7 @@ bool TPartita::read(const TBill& clifo, int year, const char* num)
if (_conto.tipo() > ' ' && allineamento_corrente() > ' ') if (_conto.tipo() > ' ' && allineamento_corrente() > ' ')
{ {
// Cerca la partita usando l'allineamento richiesto dall'utente // Cerca la partita usando l'allineamento richiesto dall'utente
if (is_on_file()) if (!is_on_file())
{
// Trovata!
}
else
{ {
// Se non la trova inverte l'allineamento // Se non la trova inverte l'allineamento
if (allineamento_corrente() == 'R') if (allineamento_corrente() == 'R')
@ -960,14 +956,8 @@ bool TPartita::read(const TBill& clifo, int year, const char* num)
_num.right_just(NUMLEN); _num.right_just(NUMLEN);
// Riprova a cercarla col nuovo allineamento // Riprova a cercarla col nuovo allineamento
if (is_on_file()) if (!is_on_file())
{
// Esiste: memorizzo l'allineamento
}
else
{
allinea(); // Non esite: e' una nuova partita! allinea(); // Non esite: e' una nuova partita!
}
} }
} }
else else
@ -1678,7 +1668,7 @@ void TPartita::sposta_riga(int from_row, TPartita& part, int to_row)
if (address[j] == 0) if (address[j] == 0)
{ {
const TRiga_partite& vecchia = riga(j); const TRiga_partite& vecchia = riga(j);
TRiga_partite& nuova = part.new_row(part.esiste(j) ? 0 :j); TRiga_partite& nuova = part.new_row(part.esiste(j) ? 0 : j);
for (int n = vecchia.items()-1; n >= 0; n--) // Copia tutti i campi non chiave for (int n = vecchia.items()-1; n >= 0; n--) // Copia tutti i campi non chiave
{ {
@ -1690,6 +1680,7 @@ void TPartita::sposta_riga(int from_row, TPartita& part, int to_row)
nuova.zero(PART_IMPORTOVAL); nuova.zero(PART_IMPORTOVAL);
nuova.zero(PART_ABBUONI); nuova.zero(PART_ABBUONI);
nuova.zero(PART_DIFFCAM); nuova.zero(PART_DIFFCAM);
nuova.zero(PART_RITENUTE);
address[j] = nuova.get_int(PART_NRIGA); address[j] = nuova.get_int(PART_NRIGA);
} }

View File

@ -76,11 +76,18 @@ void TSaldaconto_app::on_config_change()
bool TSaldaconto_app::menu(MENU_TAG) bool TSaldaconto_app::menu(MENU_TAG)
{ {
TMask& m = curr_mask(); TMask& m = curr_mask();
while (m.run() == K_ENTER)
{ bool ok = TRUE;
_allow_firm = FALSE; while (ok)
edit_partite(m); {
_allow_firm = TRUE; xvt_statbar_set("Ricerca", TRUE);
ok = m.run() == K_ENTER;
if (ok)
{
_allow_firm = FALSE;
edit_partite(m);
_allow_firm = TRUE;
}
} }
return 0; return 0;
} }

View File

@ -26,6 +26,7 @@ class TFattura_mask : public TMask
protected: protected:
static bool clifo_handler(TMask_field& f, KEY key); static bool clifo_handler(TMask_field& f, KEY key);
static bool datadoc_handler(TMask_field& f, KEY key); static bool datadoc_handler(TMask_field& f, KEY key);
static bool codpag_handler(TMask_field& f, KEY key);
static bool nrate_handler(TMask_field& f, KEY key); static bool nrate_handler(TMask_field& f, KEY key);
static bool recalc_handler(TMask_field& f, KEY key); static bool recalc_handler(TMask_field& f, KEY key);
static bool codcab_handler(TMask_field& f, KEY key); static bool codcab_handler(TMask_field& f, KEY key);
@ -54,9 +55,12 @@ public:
TFattura_mask::TFattura_mask(TRiga_partite& fattura) TFattura_mask::TFattura_mask(TRiga_partite& fattura)
: TMask("sc0100c"), _fattura(fattura), _pag(NULL) : TMask("sc0100c"), _fattura(fattura), _pag(NULL)
{ {
set_mode(_fattura.rate() > 0 ? MODE_MOD : MODE_INS); const bool edit = _fattura.rate() > 0;
enable(DLG_DELREC, edit_mode()); set_mode(edit ? MODE_MOD : MODE_INS);
xvt_statbar_set(edit ? "Modifica" : "Inserimento", TRUE);
enable(DLG_DELREC, edit);
set_handler(E_TOTALE, TSaldaconto_app::totale_handler); set_handler(E_TOTALE, TSaldaconto_app::totale_handler);
set_handler(E_IMPOSTE, TSaldaconto_app::imposte_handler); set_handler(E_IMPOSTE, TSaldaconto_app::imposte_handler);
@ -75,11 +79,12 @@ TFattura_mask::TFattura_mask(TRiga_partite& fattura)
set_handler(clifo, clifo_handler); set_handler(clifo, clifo_handler);
set_handler(E_DATADOC, datadoc_handler); set_handler(E_DATADOC, datadoc_handler);
set_handler(FS_NRATE, nrate_handler); set_handler(E_CODPAG, codpag_handler);
set_handler(FS_NRATE, nrate_handler);
set_handler(FS_RECALC, recalc_handler); set_handler(FS_RECALC, recalc_handler);
set_handler(FS_NSCAB, codcab_handler); set_handler(FS_NSCAB, codcab_handler);
set_handler(FS_VSCAB, codcab_handler); set_handler(FS_VSCAB, codcab_handler);
set_handler(FS_RESET, reset_handler); set_handler(FS_RESET, reset_handler);
TSheet_field& sf = pag_sheet(); TSheet_field& sf = pag_sheet();
sf.set_notify(pag_notify); sf.set_notify(pag_notify);
@ -89,7 +94,7 @@ TFattura_mask::TFattura_mask(TRiga_partite& fattura)
sm.set_handler(105, tipopag_handler); sm.set_handler(105, tipopag_handler);
sm.set_handler(106, tipopag_handler); sm.set_handler(106, tipopag_handler);
const bool ad = _fattura.ultima_rata_con_abbuoni_diffcam() > 0; const bool ad = edit && _fattura.ultima_rata_con_abbuoni_diffcam() > 0;
if (ad) // Esistono abbuoni o differenze cambio sulla fattura if (ad) // Esistono abbuoni o differenze cambio sulla fattura
{ {
disable(E_SEZIONE); // Non posso cambiare sezione disable(E_SEZIONE); // Non posso cambiare sezione
@ -103,7 +108,8 @@ TFattura_mask::TFattura_mask(TRiga_partite& fattura)
TFattura_mask::~TFattura_mask() TFattura_mask::~TFattura_mask()
{ {
delete _pag; delete _pag;
xvt_statbar_set("Estratto conto", TRUE);
} }
real TFattura_mask::totale_rate(bool val) const real TFattura_mask::totale_rate(bool val) const
@ -401,6 +407,44 @@ bool TFattura_mask::datadoc_handler(TMask_field& f, KEY key)
} }
bool TFattura_mask::codpag_handler(TMask_field& f, KEY key)
{
bool ok = TRUE;
TFattura_mask& m = (TFattura_mask&)f.mask();
if (key == K_ENTER)
{
if (f.get().empty())
{
f.error_box("Il codice di pagamento e' obbligatorio!\n"
"Se possibile esso verra' proposto, ma potra'\n"
"essere modificato prima di registrare il movimento.");
const char typ = m.get(E_CLIFO)[0];
const long cod = m.get_long(typ == 'C' ? E_CLIENTE : E_FORNITORE);
TLocalisamfile clifo(LF_CLIFO);
clifo.put(CLI_TIPOCF, typ);
clifo.put(CLI_CODCF, cod);
if (clifo.read() == NOERR)
{
const TString& cp = clifo.get(CLI_CODPAG);
if (cp.not_empty())
{
f.set(cp);
key = K_TAB;
}
}
ok = FALSE;
}
}
if (key == K_TAB && f.focusdirty() && m.insert_mode())
m.set_scadenze();
return ok;
}
bool TFattura_mask::clifo_handler(TMask_field& f, KEY key) bool TFattura_mask::clifo_handler(TMask_field& f, KEY key)
{ {
if (key == K_TAB) if (key == K_TAB)
@ -857,9 +901,13 @@ bool TPay_mask::sezione_handler(TMask_field& f, KEY k)
bool TPay_mask::descr_handler(TMask_field& f, KEY k) bool TPay_mask::descr_handler(TMask_field& f, KEY k)
{ {
if (k == K_TAB && f.focusdirty()) if (k == K_TAB && f.focusdirty())
{ {
TPay_mask& pm = (TPay_mask&)f.mask();
const short id = f.dlg() == E_DESCR ? S_DESCAGG : E_DESCR; const short id = f.dlg() == E_DESCR ? S_DESCAGG : E_DESCR;
f.mask().set(id, f.get()); const char* d = f.get();
pm.set(id, d);
if (pm.unassigned())
pm.set(S_DESCR, d);
} }
return TRUE; return TRUE;
} }
@ -978,11 +1026,6 @@ bool TSaldaconto_app::totale_handler(TMask_field& f, KEY k)
} }
else else
{ {
if (dirty)
{
if (m.insert_mode() && m.get(S_IMPORTO).empty())
m.set(S_IMPORTO, f.get(), TRUE);
}
if (dirty || !m.is_running()) if (dirty || !m.is_running())
{ {
TPay_mask& pm = (TPay_mask&)m; TPay_mask& pm = (TPay_mask&)m;
@ -1070,8 +1113,6 @@ bool TSaldaconto_app::totval_handler(TMask_field& f, KEY key)
} }
else else
{ {
if (dirty && m.insert_mode() && m.get(S_IMPORTOVAL).empty())
m.set(S_IMPORTOVAL, f.get(), TRUE);
if (dirty || !m.is_running()) if (dirty || !m.is_running())
{ {
TPay_mask& pm = (TPay_mask&)m; TPay_mask& pm = (TPay_mask&)m;
@ -1127,13 +1168,15 @@ bool TSaldaconto_app::valuta_handler(TMask_field& f, KEY k)
m.enable(E_TOTDOCVAL, full); m.enable(E_TOTDOCVAL, full);
if (is_fattura(m)) if (is_fattura(m))
{ {
m.set(FS_VALUTA, val); // Copia a pagina 2 TFattura_mask& fm = (TFattura_mask&)m;
fm.set(FS_VALUTA, val); // Copia codice valuta a pagina 2
fm.set_totale_pagamento(TRUE); // Aggiorna colonne sheet
} }
else else
{ {
TPay_mask& pm = (TPay_mask&)m; TPay_mask& pm = (TPay_mask&)m;
pm.attiva_valuta(full); pm.attiva_valuta(full); // Dis/abilita campi gestione valuta
} }
} }
return TRUE; return TRUE;