Corretta gestione saldaconto in prima nota
git-svn-id: svn://10.65.10.50/trunk@2611 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
b41f83ac9d
commit
054348d896
@ -623,6 +623,7 @@ bool TPrimanota_application::test_swap(bool ritsoc)
|
|||||||
|
|
||||||
int TPrimanota_application::read(TMask& m)
|
int TPrimanota_application::read(TMask& m)
|
||||||
{
|
{
|
||||||
|
m.reset(); // Azzera campi e relativi dirty = 3
|
||||||
m.autoload(_rel); // Carica testata
|
m.autoload(_rel); // Carica testata
|
||||||
|
|
||||||
const long numreg = _rel->curr().get_long(MOV_NUMREG);
|
const long numreg = _rel->curr().get_long(MOV_NUMREG);
|
||||||
|
@ -371,7 +371,7 @@ STRING F_CODPAG 4
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 12 "Codice Pagamento "
|
PROMPT 1 12 "Codice Pagamento "
|
||||||
FIELD CODPAG
|
FIELD CODPAG
|
||||||
FLAGS "UZ"
|
FLAGS "U#"
|
||||||
USE %CPG
|
USE %CPG
|
||||||
INPUT CODTAB F_CODPAG
|
INPUT CODTAB F_CODPAG
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
|
@ -180,7 +180,6 @@ bool TPrimanota_application::pag_notify(TSheet_field& ps, int r, KEY k)
|
|||||||
ps.row(r).add(p.string(), 3);
|
ps.row(r).add(p.string(), 3);
|
||||||
}
|
}
|
||||||
ps.force_update(r);
|
ps.force_update(r);
|
||||||
|
|
||||||
}
|
}
|
||||||
if (m_impv)
|
if (m_impv)
|
||||||
{
|
{
|
||||||
@ -278,7 +277,7 @@ bool TPrimanota_application::pag_sheet_handler(TMask_field& f, KEY key)
|
|||||||
ok = yesno_box("Il totale in lire delle rate e' %s mentre\n"
|
ok = yesno_box("Il totale in lire delle rate e' %s mentre\n"
|
||||||
"il totale del documento e' %s.\n"
|
"il totale del documento e' %s.\n"
|
||||||
"Si desidera registrare ugualmente?",
|
"Si desidera registrare ugualmente?",
|
||||||
(const char *)is, (const char *)ts);
|
(const char*)is, (const char*)ts);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -858,7 +857,7 @@ void TPrimanota_application::write_scadenze(const TMask& m)
|
|||||||
|
|
||||||
int nuova_riga = 0;
|
int nuova_riga = 0;
|
||||||
|
|
||||||
if (m.page_enabled(2))
|
if (anno > 0 && !numpart.blank() && m.page_enabled(2))
|
||||||
{
|
{
|
||||||
const int tmov = causale().tipomov();
|
const int tmov = causale().tipomov();
|
||||||
const TString desc(m.get(F_DESCR));
|
const TString desc(m.get(F_DESCR));
|
||||||
@ -989,9 +988,10 @@ bool TPrimanota_application::showpartite_handler(TMask_field& f, KEY k)
|
|||||||
bool ok = TRUE;
|
bool ok = TRUE;
|
||||||
TMask& m = f.mask();
|
TMask& m = f.mask();
|
||||||
TPrimanota_application& a = app();
|
TPrimanota_application& a = app();
|
||||||
|
TMask& cm = a.curr_mask();
|
||||||
|
|
||||||
const char tipo = m.get(CG_ROWTYPE)[0];
|
const char tipo = m.get(CG_ROWTYPE)[0];
|
||||||
const bool is_nota = tipo == 'T' && a.causale().tipomov() == 2 && m.field(F_NUMRIF).active();
|
const bool is_nota = tipo == 'T' && a.causale().tipomov() == 2 && cm.field(F_NUMRIF).active();
|
||||||
if (tipo == 'K' || is_nota)
|
if (tipo == 'K' || is_nota)
|
||||||
{
|
{
|
||||||
TSheet_field& s = *m.get_sheet();
|
TSheet_field& s = *m.get_sheet();
|
||||||
@ -1006,7 +1006,7 @@ bool TPrimanota_application::showpartite_handler(TMask_field& f, KEY k)
|
|||||||
|
|
||||||
if (k == K_ENTER)
|
if (k == K_ENTER)
|
||||||
{
|
{
|
||||||
const long curreg = a.curr_mask().get_long(F_NUMREG);
|
const long curreg = cm.get_long(F_NUMREG);
|
||||||
const TImporto importo(a.get_cgs_imp(riga));
|
const TImporto importo(a.get_cgs_imp(riga));
|
||||||
const TImporto speso(a.partite().importo_speso(curreg, riga+1));
|
const TImporto speso(a.partite().importo_speso(curreg, riga+1));
|
||||||
|
|
||||||
|
112
cg/cg2105.cpp
112
cg/cg2105.cpp
@ -784,7 +784,7 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k)
|
|||||||
|
|
||||||
const int lastrow = game->last();
|
const int lastrow = game->last();
|
||||||
|
|
||||||
if (lastrow > 0 && prima_valuta.in_lire())
|
if (lastrow > 0)
|
||||||
prima_valuta.get(game->riga(lastrow));
|
prima_valuta.get(game->riga(lastrow));
|
||||||
const bool in_valuta = prima_valuta.in_valuta();
|
const bool in_valuta = prima_valuta.in_valuta();
|
||||||
|
|
||||||
@ -843,7 +843,7 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k)
|
|||||||
row.add(sum.get(PART_DATADOC));
|
row.add(sum.get(PART_DATADOC));
|
||||||
row.add(sum.get(PART_DATAPAG));
|
row.add(sum.get(PART_DATAPAG));
|
||||||
gm.add_descrizione(row, sum);
|
gm.add_descrizione(row, sum);
|
||||||
TImporto imp(sez, pag.get_real(PAGSCA_IMPORTO));
|
const TImporto imp(sez, pag.get_real(PAGSCA_IMPORTO));
|
||||||
if (in_valuta)
|
if (in_valuta)
|
||||||
{
|
{
|
||||||
gm.add_importo(row, imp);
|
gm.add_importo(row, imp);
|
||||||
@ -860,46 +860,57 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k)
|
|||||||
row.add("");
|
row.add("");
|
||||||
row.add(sum.get(PART_TIPOMOV));
|
row.add(sum.get(PART_TIPOMOV));
|
||||||
row.add(pa);
|
row.add(pa);
|
||||||
}
|
|
||||||
|
|
||||||
const TImporto rit(scad.importo_pagato(FALSE, 0x8));
|
// Le ritenute non possono esistere in valuta
|
||||||
if (!rit.is_zero())
|
if (!in_valuta)
|
||||||
{
|
|
||||||
TToken_string& rrit = scadenze.row(scadenze.add(""));
|
|
||||||
rrit.add("Ritenute professionali", 4);
|
|
||||||
gm.add_importo(rrit, rit, FALSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
TImporto abb(scad.importo_pagato(TRUE, 0x2));
|
|
||||||
if (!abb.is_zero())
|
|
||||||
{
|
|
||||||
TToken_string& rabb = scadenze.row(scadenze.add(""));
|
|
||||||
rabb.add("Abbuoni ", 4);
|
|
||||||
abb.normalize();
|
|
||||||
rabb << (abb.sezione() == 'D' ? "attivi" : "passivi");
|
|
||||||
|
|
||||||
if (in_valuta)
|
|
||||||
{
|
{
|
||||||
gm.add_importo(rabb, scad.importo_pagato(FALSE, 0x2), FALSE);
|
const TImporto rit(sez, pag.get_real(PAGSCA_RITENUTE));
|
||||||
gm.add_importo(rabb, abb, TRUE);
|
if (!rit.is_zero())
|
||||||
|
{
|
||||||
|
TToken_string& rrit = scadenze.row(scadenze.add(""));
|
||||||
|
rrit.add("Ritenute professionali", 4);
|
||||||
|
gm.add_importo(rrit, rit, FALSE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
gm.add_importo(rabb, abb, FALSE);
|
|
||||||
rabb.add("");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (in_valuta)
|
// Gli abbuoni e le differenze cambio esistono solo se e' a saldo
|
||||||
{
|
if (pag.get_char(PAGSCA_ACCSAL) == 'S')
|
||||||
TImporto diff(scad.importo_pagato(FALSE, 0x4));
|
|
||||||
if (!diff.is_zero())
|
|
||||||
{
|
{
|
||||||
TToken_string& rdiff = scadenze.row(scadenze.add(""));
|
const TImporto abb(sez, pag.get_real(PAGSCA_ABBUONI));
|
||||||
rdiff.add("Differenza cambio", 4);
|
if (!abb.is_zero())
|
||||||
gm.add_importo(rdiff, diff);
|
{
|
||||||
}
|
TToken_string& rabb = scadenze.row(scadenze.add(""));
|
||||||
}
|
const char tipo_abb = pag.get_char(PAGSCA_PASSATT);
|
||||||
|
rabb.add("Abbuoni ", 4);
|
||||||
|
rabb << (tipo_abb == 'A' ? "attivi" : "passivi");
|
||||||
|
if (in_valuta)
|
||||||
|
{
|
||||||
|
TImporto abb_lit = abb;
|
||||||
|
prima_valuta.val2lit(abb_lit);
|
||||||
|
gm.add_importo(rabb, abb_lit, FALSE);
|
||||||
|
gm.add_importo(rabb, abb, TRUE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gm.add_importo(rabb, abb, FALSE);
|
||||||
|
rabb.add("");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Le differenze cambio possono esistere solo in valuta
|
||||||
|
if (in_valuta)
|
||||||
|
{
|
||||||
|
const TImporto diff(sez, pag.get_real(PAGSCA_DIFFCAM));
|
||||||
|
if (!diff.is_zero())
|
||||||
|
{
|
||||||
|
TToken_string& rdiff = scadenze.row(scadenze.add(""));
|
||||||
|
rdiff.add("Differenza cambio", 4);
|
||||||
|
gm.add_importo(rdiff, diff);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} // Il pagamento era a saldo
|
||||||
|
} // Fine ciclo sui pagamenti della rata
|
||||||
|
|
||||||
TToken_string& rsal = scadenze.row(scadenze.add(""));
|
TToken_string& rsal = scadenze.row(scadenze.add(""));
|
||||||
rsal.add("Saldo rata ", 4); rsal << ra;
|
rsal.add("Saldo rata ", 4); rsal << ra;
|
||||||
@ -925,7 +936,7 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k)
|
|||||||
{
|
{
|
||||||
const TRectype& pag = unas.row(pa);
|
const TRectype& pag = unas.row(pa);
|
||||||
const TRiga_partite& sum = game->riga(pa);
|
const TRiga_partite& sum = game->riga(pa);
|
||||||
TImporto imp(sum.sezione(), ZERO);
|
const char sez = sum.sezione();
|
||||||
|
|
||||||
TToken_string& row = scadenze.row(scadenze.add(""));
|
TToken_string& row = scadenze.row(scadenze.add(""));
|
||||||
row.add(pag.get(PAGSCA_NRIGA));
|
row.add(pag.get(PAGSCA_NRIGA));
|
||||||
@ -933,19 +944,18 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k)
|
|||||||
row.add(sum.get(PART_DATADOC));
|
row.add(sum.get(PART_DATADOC));
|
||||||
row.add(sum.get(PART_DATAPAG));
|
row.add(sum.get(PART_DATAPAG));
|
||||||
gm.add_descrizione(row, sum);
|
gm.add_descrizione(row, sum);
|
||||||
TImporto i(sum.sezione(), pag.get_real(PAGSCA_IMPORTO));
|
|
||||||
i.valore() += pag.get_real(PAGSCA_RITENUTE);
|
TImporto imp(sez, pag.get_real(PAGSCA_IMPORTO));
|
||||||
i.normalize();
|
gm.add_importo(row, imp);
|
||||||
gm.add_importo(row, i);
|
tot_lit += imp;
|
||||||
tot_lit += i;
|
|
||||||
|
|
||||||
const real& impval = pag.get_real(PAGSCA_IMPORTOVAL);
|
const real& impval = pag.get_real(PAGSCA_IMPORTOVAL);
|
||||||
if (!impval.is_zero())
|
if (!impval.is_zero())
|
||||||
{
|
{
|
||||||
i.set(sum.sezione(), impval);
|
imp.set(sum.sezione(), impval);
|
||||||
i.normalize();
|
imp.normalize();
|
||||||
gm.add_importo(row, i, TRUE);
|
gm.add_importo(row, imp, TRUE);
|
||||||
tot_val += i;
|
tot_val += imp;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
row.add("");
|
row.add("");
|
||||||
@ -955,6 +965,14 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k)
|
|||||||
row.add("");
|
row.add("");
|
||||||
row.add(sum.get(PART_TIPOMOV));
|
row.add(sum.get(PART_TIPOMOV));
|
||||||
row.add(pa);
|
row.add(pa);
|
||||||
|
|
||||||
|
const TImporto rit(sez, pag.get_real(PAGSCA_RITENUTE));
|
||||||
|
if (!rit.is_zero())
|
||||||
|
{
|
||||||
|
TToken_string& row = scadenze.row(scadenze.add(""));
|
||||||
|
row.add("Ritenute professionali", 4);
|
||||||
|
tot_lit += rit;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lastrow > 0)
|
if (lastrow > 0)
|
||||||
|
@ -1500,15 +1500,11 @@ bool TPartita::chiusa(bool update)
|
|||||||
if (update)
|
if (update)
|
||||||
{
|
{
|
||||||
const TImporto saldo = calcola_saldo(TRUE); // Saldo in valuta
|
const TImporto saldo = calcola_saldo(TRUE); // Saldo in valuta
|
||||||
const bool ora_chiusa = saldo.is_zero();
|
chiusa = saldo.is_zero();
|
||||||
if (chiusa != ora_chiusa)
|
for (int p = last(); p > 0; p = pred(p))
|
||||||
{
|
{
|
||||||
chiusa = ora_chiusa;
|
TRiga_partite& part = riga(p);
|
||||||
for (int p = last(); p > 0; p = pred(p))
|
part.put(PART_CHIUSA, chiusa);
|
||||||
{
|
|
||||||
TRiga_partite& part = riga(p);
|
|
||||||
part.put(PART_CHIUSA, chiusa);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user