Correzione errori
git-svn-id: svn://10.65.10.50/trunk@2495 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
34765dc516
commit
fa9dfaa9d0
@ -401,9 +401,6 @@ BEGIN
|
|||||||
OUTPUT SK_VALUTA CODTAB
|
OUTPUT SK_VALUTA CODTAB
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
WARNING "Codice valuta assente"
|
WARNING "Codice valuta assente"
|
||||||
MESSAGE EMPTY CLEAR,SK_CAMBIO|CLEAR,SK_TOTDOCVAL
|
|
||||||
MESSAGE ENABLE,SK_CAMBIO|ENABLE,SK_TOTDOCVAL
|
|
||||||
MESSAGE DIRTY,SK_DATACAMBIO|K_TAB,SK_DATACAMBIO
|
|
||||||
END
|
END
|
||||||
|
|
||||||
DATE SK_DATACAMBIO
|
DATE SK_DATACAMBIO
|
||||||
|
@ -258,7 +258,7 @@ BEGIN
|
|||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT S_CODDESC CODTAB
|
OUTPUT S_CODDESC CODTAB
|
||||||
OUTPUT S_DESCAGG S0
|
OUTPUT S_DESCAGG S0
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE SEARCH
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING S_DESCAGG 50
|
STRING S_DESCAGG 50
|
||||||
|
@ -525,7 +525,8 @@ bool TPrimanota_application::cg_handler(TMask_field& f, KEY k)
|
|||||||
TMask& m = f.mask();
|
TMask& m = f.mask();
|
||||||
const long numreg = m.get_long(F_NUMREG);
|
const long numreg = m.get_long(F_NUMREG);
|
||||||
|
|
||||||
TImporto saldaconto;
|
const bool in_valuta = m.get(SK_VALUTA).not_empty();
|
||||||
|
TImporto saldaconto, saldaconto_val;
|
||||||
|
|
||||||
TSheet_field& cg = app().cgs();
|
TSheet_field& cg = app().cgs();
|
||||||
bool empty = TRUE;
|
bool empty = TRUE;
|
||||||
@ -559,7 +560,11 @@ bool TPrimanota_application::cg_handler(TMask_field& f, KEY k)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (strchr("ACGKP", tipo) != NULL)
|
if (strchr("ACGKP", tipo) != NULL)
|
||||||
|
{
|
||||||
saldaconto += importo;
|
saldaconto += importo;
|
||||||
|
if (in_valuta)
|
||||||
|
saldaconto_val += app().partite().importo_speso(numreg, i+1, TRUE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -582,6 +587,25 @@ bool TPrimanota_application::cg_handler(TMask_field& f, KEY k)
|
|||||||
(const char*)ss, saldaconto.sezione(),
|
(const char*)ss, saldaconto.sezione(),
|
||||||
(const char*)sr);
|
(const char*)sr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (in_valuta)
|
||||||
|
{
|
||||||
|
const real t(f.mask().get(SK_TOTDOCVAL));
|
||||||
|
const TImporto totdoc(s, t);
|
||||||
|
TImporto residuo(totdoc); residuo += saldaconto_val; residuo.normalize();
|
||||||
|
if (!residuo.is_zero())
|
||||||
|
{
|
||||||
|
const TString st(totdoc.valore().string(".3"));
|
||||||
|
const TString ss(saldaconto_val.valore().string(".3"));
|
||||||
|
const TString sr(residuo.valore().string(".3"));
|
||||||
|
return f.error_box("Il totale documento in valuta e' %s %c,\n"
|
||||||
|
"i pagamenti e le spese ammontano a %s %c,\n"
|
||||||
|
"per cui il residuo e' %s.",
|
||||||
|
(const char*)st, totdoc.sezione(),
|
||||||
|
(const char*)ss, saldaconto.sezione(),
|
||||||
|
(const char*)sr);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (app().is_fattura())
|
if (app().is_fattura())
|
||||||
@ -1679,7 +1703,7 @@ bool TPrimanota_application::datadoc_handler(TMask_field& f, KEY key)
|
|||||||
|
|
||||||
if (key == K_TAB && f.to_check(key, TRUE) && app().is_saldaconto())
|
if (key == K_TAB && f.to_check(key, TRUE) && app().is_saldaconto())
|
||||||
{
|
{
|
||||||
const TDate dd(f.get()); // Fattura o nota credito
|
const TDate dd(f.get()); // Fattura o nota credito
|
||||||
if (dd.ok())
|
if (dd.ok())
|
||||||
{
|
{
|
||||||
if (m.get(F_ANNORIF).empty() && m.insert_mode())
|
if (m.get(F_ANNORIF).empty() && m.insert_mode())
|
||||||
@ -1848,7 +1872,7 @@ bool TPrimanota_application::clifo_handler(TMask_field& f, KEY key)
|
|||||||
m.set(F_CODPAG, s, s.not_empty());
|
m.set(F_CODPAG, s, s.not_empty());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (app().is_fattura() && f.focusdirty())
|
if (f.focusdirty() && app().is_saldaconto())
|
||||||
{
|
{
|
||||||
if (m.field(SK_VALUTA).active() && m.get(SK_VALUTA).empty())
|
if (m.field(SK_VALUTA).active() && m.get(SK_VALUTA).empty())
|
||||||
{
|
{
|
||||||
@ -1857,18 +1881,21 @@ bool TPrimanota_application::clifo_handler(TMask_field& f, KEY key)
|
|||||||
m.set(SK_VALUTA, valuta, TRUE);
|
m.set(SK_VALUTA, valuta, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (clifo.get(CLI_CODCAB).not_empty())
|
if (app().is_fattura())
|
||||||
{
|
{
|
||||||
m.set(FS_VSABI, clifo.get(CLI_CODABI));
|
if (clifo.get(CLI_CODCAB).not_empty())
|
||||||
m.set(FS_VSCAB, clifo.get(CLI_CODCAB));
|
{
|
||||||
m.send_key(K_TAB, FS_VSCAB);
|
m.set(FS_VSABI, clifo.get(CLI_CODABI));
|
||||||
}
|
m.set(FS_VSCAB, clifo.get(CLI_CODCAB));
|
||||||
|
m.send_key(K_TAB, FS_VSCAB);
|
||||||
const TString& agente = cliforel.curr(LF_CFVEN).get(CLI_CODAG);
|
}
|
||||||
if (agente.not_empty())
|
|
||||||
{
|
const TString& agente = cliforel.curr(LF_CFVEN).get(CLI_CODAG);
|
||||||
m.set(FS_AGENTE, agente, TRUE);
|
if (agente.not_empty())
|
||||||
m.send_key(K_TAB, FS_AGENTE);
|
{
|
||||||
|
m.set(FS_AGENTE, agente, TRUE);
|
||||||
|
m.send_key(K_TAB, FS_AGENTE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1948,7 +1975,7 @@ bool TPrimanota_application::main_codiva_handler(TMask_field& f, KEY key)
|
|||||||
void TPrimanota_application::gioca_cambi(int force)
|
void TPrimanota_application::gioca_cambi(int force)
|
||||||
{
|
{
|
||||||
TMask& m = curr_mask();
|
TMask& m = curr_mask();
|
||||||
if (!m.field(SK_CAMBIO).enabled())
|
if (m.get(SK_VALUTA).empty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const real totale = m.get(F_TOTALE);
|
const real totale = m.get(F_TOTALE);
|
||||||
@ -2216,17 +2243,15 @@ bool TPrimanota_application::solaiva_handler(TMask_field& f, KEY key)
|
|||||||
if (key == K_SPACE)
|
if (key == K_SPACE)
|
||||||
{
|
{
|
||||||
TMask& m = f.mask();
|
TMask& m = f.mask();
|
||||||
bool anchecg = !m.get_bool(F_SOLAIVA);
|
bool anchecg = f.get().empty();
|
||||||
|
bool recalcg = anchecg;
|
||||||
|
|
||||||
if (m.is_running() && app().is_fattura() && app()._scad_free)
|
if (m.is_running() && app().is_fattura())
|
||||||
{
|
{
|
||||||
const TPartita* game = app().partite().first();
|
const TPartita* game = app().partite().first();
|
||||||
|
|
||||||
if (anchecg)
|
if (anchecg)
|
||||||
{
|
{
|
||||||
m.enable(F_NUMRIF);
|
|
||||||
m.enable(F_ANNORIF);
|
|
||||||
|
|
||||||
if (game != NULL)
|
if (game != NULL)
|
||||||
{
|
{
|
||||||
m.set(F_ANNORIF, game->anno());
|
m.set(F_ANNORIF, game->anno());
|
||||||
@ -2240,22 +2265,26 @@ bool TPrimanota_application::solaiva_handler(TMask_field& f, KEY key)
|
|||||||
del = f.yesno_box("Si desidera cancellare il saldaconto?");
|
del = f.yesno_box("Si desidera cancellare il saldaconto?");
|
||||||
if (del)
|
if (del)
|
||||||
{
|
{
|
||||||
m.set(F_NUMRIF, "", TRUE); m.disable(F_NUMRIF);
|
m.set(F_NUMRIF, "", TRUE);
|
||||||
m.reset(F_ANNORIF); m.disable(F_ANNORIF);
|
m.reset(F_ANNORIF);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
anchecg = TRUE;
|
|
||||||
f.reset();
|
f.reset();
|
||||||
|
anchecg = TRUE;
|
||||||
|
recalcg = FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m.show(F_SHEETCG, anchecg);
|
m.enable(F_ANNORIF, anchecg);
|
||||||
m.show(F_DARE, anchecg);
|
m.enable(F_NUMRIF, anchecg);
|
||||||
m.show(F_AVERE, anchecg);
|
|
||||||
|
|
||||||
if (m.is_running() && anchecg)
|
m.show(F_SHEETCG, anchecg);
|
||||||
|
m.show(F_DARE, anchecg);
|
||||||
|
m.show(F_AVERE, anchecg);
|
||||||
|
|
||||||
|
if (m.is_running() && recalcg)
|
||||||
{
|
{
|
||||||
TSheet_field& iva = app().ivas();
|
TSheet_field& iva = app().ivas();
|
||||||
const int righe = iva.items();
|
const int righe = iva.items();
|
||||||
|
@ -294,7 +294,8 @@ bool TPrimanota_application::codpag_handler(TMask_field& f, KEY key)
|
|||||||
|
|
||||||
if (key == K_ENTER)
|
if (key == K_ENTER)
|
||||||
{
|
{
|
||||||
const bool required = m.insert_mode() || !m.get(F_NUMRIF).blank();
|
const bool required = (m.insert_mode() && !m.get_bool(F_SOLAIVA)) ||
|
||||||
|
!m.get(F_NUMRIF).blank();
|
||||||
if (required && f.get().empty())
|
if (required && f.get().empty())
|
||||||
{
|
{
|
||||||
error_box("Il codice di pagamento e' obbligatorio!\n"
|
error_box("Il codice di pagamento e' obbligatorio!\n"
|
||||||
@ -351,12 +352,11 @@ bool TPrimanota_application::numrif_handler(TMask_field& f, KEY key)
|
|||||||
if (f.to_check(key, TRUE))
|
if (f.to_check(key, TRUE))
|
||||||
{
|
{
|
||||||
TMask& m = f.mask();
|
TMask& m = f.mask();
|
||||||
const bool empty = f.get().blank() && !m.get_bool(F_SOLAIVA);
|
const bool empty = f.get().blank();
|
||||||
const TString16 numprot(m.get(app()._npart_is_prot ? F_PROTIVA : F_NUMDOC));
|
|
||||||
|
|
||||||
if (empty && numprot.not_empty() && f.focusdirty() && m.insert_mode())
|
if (empty && f.focusdirty() && m.insert_mode() && !m.get_bool(F_SOLAIVA))
|
||||||
{
|
{
|
||||||
f.set(numprot);
|
f.set(m.get(app()._npart_is_prot ? F_PROTIVA : F_NUMDOC));
|
||||||
if (m.get(F_CODPAG).empty())
|
if (m.get(F_CODPAG).empty())
|
||||||
{
|
{
|
||||||
TMask_field& clifo = m.field(app().iva() == iva_vendite ? F_CLIENTE : F_FORNITORE);
|
TMask_field& clifo = m.field(app().iva() == iva_vendite ? F_CLIENTE : F_FORNITORE);
|
||||||
@ -371,7 +371,7 @@ bool TPrimanota_application::numrif_handler(TMask_field& f, KEY key)
|
|||||||
if (key == K_ENTER && m.edit_mode())
|
if (key == K_ENTER && m.edit_mode())
|
||||||
{
|
{
|
||||||
const TPartita* old = app().partite().first();
|
const TPartita* old = app().partite().first();
|
||||||
if (old && old->anno() > 0 && empty) // Se esisteva una partita ma ora non piu'
|
if (old && old->ok() && empty) // Se esisteva una partita ma ora non piu'
|
||||||
{
|
{
|
||||||
const KEY k = yesnocancel_box("Attenzione la fattura della partita %d %s verra' eliminata.\n"
|
const KEY k = yesnocancel_box("Attenzione la fattura della partita %d %s verra' eliminata.\n"
|
||||||
"Premere SI per cancellarla, NO per ripristinarla, ANNULLA per modificarla",
|
"Premere SI per cancellarla, NO per ripristinarla, ANNULLA per modificarla",
|
||||||
@ -400,13 +400,28 @@ bool TPrimanota_application::valuta_handler(TMask_field& f, KEY key)
|
|||||||
if (key == K_TAB && f.to_check(key, TRUE))
|
if (key == K_TAB && f.to_check(key, TRUE))
|
||||||
{
|
{
|
||||||
TMask& m = f.mask();
|
TMask& m = f.mask();
|
||||||
const TString16 val(f.get());
|
const TString val = f.get();
|
||||||
|
const bool full = val.not_empty();
|
||||||
|
|
||||||
if (val.not_empty())
|
if (full)
|
||||||
{
|
{
|
||||||
if (m.get(SK_DATACAMBIO).empty()) // Inizializza data cambio se assente
|
TMask_field& dc = m.field(SK_DATACAMBIO);
|
||||||
|
if (dc.get().empty()) // Inizializza data cambio se assente
|
||||||
m.set(SK_DATACAMBIO, m.get(F_DATADOC), TRUE);
|
m.set(SK_DATACAMBIO, m.get(F_DATADOC), TRUE);
|
||||||
|
else if (f.focusdirty())
|
||||||
|
{
|
||||||
|
dc.set_dirty();
|
||||||
|
dc.check(RUNNING_CHECK); // Forza ricerca cambio
|
||||||
|
dc.on_hit(); // Forza messaggi (eventuale copia a pag. 3)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m.set(SK_CAMBIO, "", TRUE);
|
||||||
|
m.set(SK_TOTDOCVAL, "", TRUE);
|
||||||
|
}
|
||||||
|
m.enable(SK_CAMBIO, full);
|
||||||
|
m.enable(SK_TOTDOCVAL, full);
|
||||||
|
|
||||||
if (app().is_fattura())
|
if (app().is_fattura())
|
||||||
m.set(FS_VALUTA, val); // Copia a pagina 3
|
m.set(FS_VALUTA, val); // Copia a pagina 3
|
||||||
@ -480,8 +495,6 @@ bool TPrimanota_application::recalc_handler(TMask_field& f, KEY key)
|
|||||||
const bool on = pag.tipo_prima_rata() < 4 || !recalc_aut;
|
const bool on = pag.tipo_prima_rata() < 4 || !recalc_aut;
|
||||||
ps.enable_cell(0, 1, on);
|
ps.enable_cell(0, 1, on);
|
||||||
ps.enable_cell(0, 2, on);
|
ps.enable_cell(0, 2, on);
|
||||||
// if (recalc_aut)
|
|
||||||
// ps.disable_cell(0, 3, );
|
|
||||||
ps.enable_cell(0, 3, on);
|
ps.enable_cell(0, 3, on);
|
||||||
ps.force_update();
|
ps.force_update();
|
||||||
}
|
}
|
||||||
@ -643,25 +656,28 @@ void TPrimanota_application::set_scadenze(TMask& m)
|
|||||||
|
|
||||||
bool TPrimanota_application::read_scadenze(TMask& m)
|
bool TPrimanota_application::read_scadenze(TMask& m)
|
||||||
{
|
{
|
||||||
const TRectype& testa = _rel->curr();
|
|
||||||
const long nreg = testa.get_long(MOV_NUMREG);
|
|
||||||
const TDate datadoc = testa.get_date(MOV_DATADOC);
|
|
||||||
|
|
||||||
const TRectype& prima = _rel->cg(0);
|
|
||||||
|
|
||||||
TBill clifo; clifo.get(prima);
|
|
||||||
const int anno = m.get_int(F_ANNORIF);
|
const int anno = m.get_int(F_ANNORIF);
|
||||||
const TString16 numpart(m.get(F_NUMRIF));
|
const TString16 numpart(m.get(F_NUMRIF));
|
||||||
|
|
||||||
partite().destroy();
|
if (anno <= 0 || numpart.blank()) // Partita vuota
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
TBill clifo; cerca_conto_cf(clifo);
|
||||||
const TPartita& part = partite().partita(clifo, anno, numpart);
|
const TPartita& part = partite().partita(clifo, anno, numpart);
|
||||||
|
|
||||||
|
const TRectype& testa = _rel->curr();
|
||||||
|
const long nreg = testa.get_long(MOV_NUMREG);
|
||||||
|
const TDate datadoc = testa.get_date(MOV_DATADOC);
|
||||||
|
TString codpag = testa.get(MOV_CODPAG); // Puo' variare!
|
||||||
|
|
||||||
const int npart = part.prima_fattura(nreg);
|
const int npart = part.prima_fattura(nreg);
|
||||||
if (npart <= 0) // la gh'e' no!
|
if (npart <= 0) // Non esiste una riga per questo movimento
|
||||||
return FALSE;
|
{
|
||||||
|
partite().destroy();
|
||||||
const TRiga_partite& partita = part.riga(npart);
|
return FALSE; // Non dovrebbe succedere mai!
|
||||||
TString codpag = testa.get(MOV_CODPAG);
|
}
|
||||||
|
|
||||||
|
const TRiga_partite& partita = part.riga(npart);
|
||||||
if (partita.rate() > 0)
|
if (partita.rate() > 0)
|
||||||
{
|
{
|
||||||
const TRiga_scadenze& primarata = partita.rata(1);
|
const TRiga_scadenze& primarata = partita.rata(1);
|
||||||
@ -1137,6 +1153,7 @@ bool TPrimanota_application::notify_cgline_deletion(int numrig)
|
|||||||
{
|
{
|
||||||
bool found = FALSE;
|
bool found = FALSE;
|
||||||
const long nreg = curr_mask().get_long(F_NUMREG);
|
const long nreg = curr_mask().get_long(F_NUMREG);
|
||||||
|
partite().add_numreg(nreg);
|
||||||
for (TPartita* game = partite().first(); game; game = partite().next())
|
for (TPartita* game = partite().first(); game; game = partite().next())
|
||||||
found |= notify_cgline_deletion(*game, nreg, numrig);
|
found |= notify_cgline_deletion(*game, nreg, numrig);
|
||||||
return found;
|
return found;
|
||||||
|
@ -66,10 +66,11 @@ void TPay_mask::set_pag(const TRectype& oldpag, const TRiga_scadenze& scad,
|
|||||||
set(S_NUMDOC, fatt.get(PART_NUMDOC)); // Numero documento
|
set(S_NUMDOC, fatt.get(PART_NUMDOC)); // Numero documento
|
||||||
set(S_DATADOC, fatt.get(PART_DATADOC)); // Data documento
|
set(S_DATADOC, fatt.get(PART_DATADOC)); // Data documento
|
||||||
set(S_NUMPROT, fatt.get(PART_PROTIVA)); // Protocollo IVA
|
set(S_NUMPROT, fatt.get(PART_PROTIVA)); // Protocollo IVA
|
||||||
|
set(S_DESCR, fatt.get(PART_DESCR)); // Descrizione fattura
|
||||||
set(S_DESCR, sum.get(PART_DESCR)); // Descrizione documento
|
|
||||||
set(S_DATAPAG, sum.get(PART_DATAPAG)); // Data pagamento
|
set(S_DATAPAG, sum.get(PART_DATAPAG)); // Data pagamento
|
||||||
set(S_TIPOPAG, sum.get(PART_TIPOPAG)); // Tipo pagamento
|
set(S_TIPOPAG, sum.get(PART_TIPOPAG)); // Tipo pagamento
|
||||||
|
set(S_DESCAGG, sum.get(PART_DESCR)); // Descrizione documento
|
||||||
|
|
||||||
set(S_SEZIONE_SCAD, scad.riga().sezione()); // Sezione della rata
|
set(S_SEZIONE_SCAD, scad.riga().sezione()); // Sezione della rata
|
||||||
set(S_IMPORTO_SCAD, scad.get(SCAD_IMPORTO)); // Importo della rata
|
set(S_IMPORTO_SCAD, scad.get(SCAD_IMPORTO)); // Importo della rata
|
||||||
@ -495,9 +496,9 @@ bool TGame_mask::numpart_handler(TMask_field& f, KEY k)
|
|||||||
|
|
||||||
bool TGame_mask::show_all_handler(TMask_field& f, KEY k)
|
bool TGame_mask::show_all_handler(TMask_field& f, KEY k)
|
||||||
{
|
{
|
||||||
if (k == K_SPACE && f.focusdirty())
|
TGame_mask& gm = (TGame_mask&)f.mask();
|
||||||
|
if (k == K_SPACE && gm.is_running())
|
||||||
{
|
{
|
||||||
TGame_mask& gm = (TGame_mask&)f.mask();
|
|
||||||
gm.fill_partite();
|
gm.fill_partite();
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -614,6 +615,9 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k)
|
|||||||
const bool changing_row = gm._riga_partite != r;
|
const bool changing_row = gm._riga_partite != r;
|
||||||
if (!changing_row)
|
if (!changing_row)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
|
main_app().begin_wait();
|
||||||
|
|
||||||
gm._riga_partite = r;
|
gm._riga_partite = r;
|
||||||
|
|
||||||
TSheet_field& sheet = gm.scadenze();
|
TSheet_field& sheet = gm.scadenze();
|
||||||
@ -830,7 +834,10 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k)
|
|||||||
sheet.force_update();
|
sheet.force_update();
|
||||||
if (sheet.items() > 0 && sheet.selected() > 0)
|
if (sheet.items() > 0 && sheet.selected() > 0)
|
||||||
sheet.select(0, TRUE);
|
sheet.select(0, TRUE);
|
||||||
|
|
||||||
|
main_app().end_wait();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (k == K_INS)
|
if (k == K_INS)
|
||||||
{
|
{
|
||||||
gm.send_key(K_CTRL + 'N', 0, &partite); // Simula la pressione del tasto nuovo
|
gm.send_key(K_CTRL + 'N', 0, &partite); // Simula la pressione del tasto nuovo
|
||||||
@ -1075,7 +1082,9 @@ bool TGame_mask::edit_scadenza_handler(TMask_field& f, KEY k)
|
|||||||
if (game.ok())
|
if (game.ok())
|
||||||
{
|
{
|
||||||
gm.update_partita(game, gm._riga_partite);
|
gm.update_partita(game, gm._riga_partite);
|
||||||
partite_notify(gm.partite(), gm._riga_partite, K_TAB);
|
const int r = gm._riga_partite;
|
||||||
|
gm._riga_partite = -1; // Forza aggiornamento sheet
|
||||||
|
partite_notify(gm.partite(), r, K_TAB);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1231,11 +1240,10 @@ int TGame_mask::update_partita(const TPartita& game, int prow)
|
|||||||
TImporto saldo, doc, pag, imp;
|
TImporto saldo, doc, pag, imp;
|
||||||
game.calcola_saldo(saldo, doc, pag, imp);
|
game.calcola_saldo(saldo, doc, pag, imp);
|
||||||
|
|
||||||
TSheet_field& games = partite();
|
|
||||||
|
|
||||||
int riga_fatt = game.prima_fattura();
|
int riga_fatt = game.prima_fattura();
|
||||||
if (riga_fatt <= 0) riga_fatt = game.first(); // E' un anticipo
|
if (riga_fatt <= 0) riga_fatt = game.first(); // E' un anticipo
|
||||||
|
|
||||||
|
TSheet_field& games = partite();
|
||||||
TToken_string &r = games.row(prow); // Stringa di lavoro per lo sheet
|
TToken_string &r = games.row(prow); // Stringa di lavoro per lo sheet
|
||||||
if (game.esiste(riga_fatt)) // Esiste veramente
|
if (game.esiste(riga_fatt)) // Esiste veramente
|
||||||
{
|
{
|
||||||
@ -1425,7 +1433,6 @@ bool TGame_mask::edit_pagamento(TPartita& p, int nriga, int nrata, int nrigp) co
|
|||||||
const TRiga_scadenze& scaden = p.rata(nriga, nrata);
|
const TRiga_scadenze& scaden = p.rata(nriga, nrata);
|
||||||
m.set_pag(oldpag, scaden, _residuo);
|
m.set_pag(oldpag, scaden, _residuo);
|
||||||
}
|
}
|
||||||
m.set(S_DESCAGG, somma.get(PART_DESCR));
|
|
||||||
|
|
||||||
const bool nuovo = oldpag.get(PAGSCA_ACCSAL) != "S" &&
|
const bool nuovo = oldpag.get(PAGSCA_ACCSAL) != "S" &&
|
||||||
oldpag.get_real(PAGSCA_IMPORTO).is_zero() &&
|
oldpag.get_real(PAGSCA_IMPORTO).is_zero() &&
|
||||||
|
@ -11,6 +11,7 @@ BEGIN
|
|||||||
PROMPT 1 3 "Importo "
|
PROMPT 1 3 "Importo "
|
||||||
PICTURE "."
|
PICTURE "."
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
|
WARNING "L'importo della rata non puo' essere nullo"
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN 112
|
BOOLEAN 112
|
||||||
@ -32,6 +33,7 @@ NUMBER 104 6 2
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 2 "Percentuale "
|
PROMPT 1 2 "Percentuale "
|
||||||
PICTURE ".2"
|
PICTURE ".2"
|
||||||
|
FLAGS "U"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER 105 1
|
NUMBER 105 1
|
||||||
|
@ -1102,7 +1102,7 @@ bool TPartita::esiste(int nriga, int nrata, int nrigp) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Ritorna l'importo in lire speso su di una riga contabile
|
// Ritorna l'importo in lire speso su di una riga contabile
|
||||||
TImporto TPartita::importo_speso(long nreg, int numrig) const
|
TImporto TPartita::importo_speso(long nreg, int numrig, bool valuta) const
|
||||||
{
|
{
|
||||||
TImporto imp;
|
TImporto imp;
|
||||||
|
|
||||||
@ -1110,7 +1110,7 @@ TImporto TPartita::importo_speso(long nreg, int numrig) const
|
|||||||
{
|
{
|
||||||
const TRiga_partite& row = riga(r);
|
const TRiga_partite& row = riga(r);
|
||||||
if (nreg == row.get_long(PART_NREG) && numrig == row.get_int(PART_NUMRIG))
|
if (nreg == row.get_long(PART_NREG) && numrig == row.get_int(PART_NUMRIG))
|
||||||
imp += row.importo(FALSE); // Importo in lire
|
imp += row.importo(valuta);
|
||||||
}
|
}
|
||||||
|
|
||||||
return imp;
|
return imp;
|
||||||
@ -1533,7 +1533,6 @@ int TPartita::tipopag2causale(int tipo) const
|
|||||||
switch (tipo)
|
switch (tipo)
|
||||||
{
|
{
|
||||||
case 2: // Tratta
|
case 2: // Tratta
|
||||||
case 7: // Tratta accettata
|
|
||||||
caus = 3; break;
|
caus = 3; break;
|
||||||
case 3: // Ricevuta bancaria
|
case 3: // Ricevuta bancaria
|
||||||
caus = 4; break;
|
caus = 4; break;
|
||||||
@ -1543,6 +1542,8 @@ int TPartita::tipopag2causale(int tipo) const
|
|||||||
caus = 6; break;
|
caus = 6; break;
|
||||||
case 6: // Fattura di credito
|
case 6: // Fattura di credito
|
||||||
caus = 7; break;
|
caus = 7; break;
|
||||||
|
case 7: // Tratta accettata
|
||||||
|
caus = 8; break;
|
||||||
case 1: // Rimessa
|
case 1: // Rimessa
|
||||||
case 8: // Rapporti interbancari diretti
|
case 8: // Rapporti interbancari diretti
|
||||||
case 9: // Bonifico
|
case 9: // Bonifico
|
||||||
@ -1678,12 +1679,12 @@ bool TPartite_array::utilizzata(long numreg, int numrig)
|
|||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
TImporto TPartite_array::importo_speso(long nreg, int numrig)
|
TImporto TPartite_array::importo_speso(long nreg, int numrig, bool valuta)
|
||||||
{
|
{
|
||||||
TImporto imp;
|
TImporto imp;
|
||||||
add_numreg(nreg);
|
add_numreg(nreg);
|
||||||
for (TPartita* game = first(); game; game = next())
|
for (TPartita* game = first(); game; game = next())
|
||||||
imp += game->importo_speso(nreg, numrig);
|
imp += game->importo_speso(nreg, numrig, valuta);
|
||||||
imp.normalize();
|
imp.normalize();
|
||||||
return imp;
|
return imp;
|
||||||
}
|
}
|
||||||
|
@ -280,7 +280,7 @@ public:
|
|||||||
const TString& numero() const { return _num; }
|
const TString& numero() const { return _num; }
|
||||||
const TString& descrizione() const;
|
const TString& descrizione() const;
|
||||||
|
|
||||||
TImporto importo_speso(long numreg, int numrig) const;
|
TImporto importo_speso(long numreg, int numrig, bool valuta) const;
|
||||||
void update_reg(long nreg, const TRectype& mov, const TRecord_array& cg);
|
void update_reg(long nreg, const TRectype& mov, const TRecord_array& cg);
|
||||||
void calcola_saldo(TImporto& saldo, TImporto& doc, TImporto& pag, TImporto& imp) const;
|
void calcola_saldo(TImporto& saldo, TImporto& doc, TImporto& pag, TImporto& imp) const;
|
||||||
TImporto calcola_saldo(bool valuta) const;
|
TImporto calcola_saldo(bool valuta) const;
|
||||||
@ -331,7 +331,7 @@ public:
|
|||||||
bool rewrite() { return write(TRUE); }
|
bool rewrite() { return write(TRUE); }
|
||||||
|
|
||||||
int add_numreg(long numreg); // Carica tutte le partite relative alla registrazione numreg
|
int add_numreg(long numreg); // Carica tutte le partite relative alla registrazione numreg
|
||||||
TImporto importo_speso(long numreg, int numrig);
|
TImporto importo_speso(long numreg, int numrig, bool valuta = FALSE);
|
||||||
void update_reg(const TRectype& mov, const TRecord_array& cg, long old_reg = 0);
|
void update_reg(const TRectype& mov, const TRecord_array& cg, long old_reg = 0);
|
||||||
|
|
||||||
// Controlla se esistono righe di pagamento relative alla riga numrig
|
// Controlla se esistono righe di pagamento relative alla riga numrig
|
||||||
|
Loading…
x
Reference in New Issue
Block a user