Stampa distinta di IVA differita e per cassa in liquidazione

git-svn-id: svn://10.65.10.50/branches/R_10_00@22821 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2013-03-15 10:58:42 +00:00
parent f7330b37c5
commit 9a787f7761
10 changed files with 209 additions and 90 deletions

View File

@ -183,7 +183,7 @@ TMask* TPrimanota_application::load_mask(int n)
m->set_handler(O_PAIV, occas_cfpi_handler);
break;
default:
CHECKD(0, "Che ca$$o di maschera e' la ", n);
CHECKD(0, "Che ca$$o di maschera è la ", n);
break;
}
@ -371,7 +371,7 @@ bool TPrimanota_application::read_caus(const char* cod, int year)
if (err)
{
error_box(FR("Il conto della riga %d della causale e' %s"),
error_box(FR("Il conto della riga %d della causale è %s"),
i, err == 1 ? TR("sconosciuto") : TR("sospeso"));
}
@ -849,7 +849,7 @@ void TPrimanota_application::init_insert_mode(TMask& m)
TConfig ini(tmp, "23");
ini2mask(ini, m, false);
// Controllo se e' stato salvato il campo virtuale col codice IVA
// Controllo se è stato salvato il campo virtuale col codice IVA
if (m.id2pos(F_CODIVA) > 0)
{
const TString& codiva = ini.get("CODIVA", "23");
@ -880,7 +880,7 @@ void TPrimanota_application::init_modify_mode(TMask& m)
TSheet_field& cg = cgs();
// Determina se il movimento e' stato trasferito da AS/400:
// Determina se il movimento è stato trasferito da AS/400:
// praticamente controlla che non ci sia nessun tipo movimento sulle righe contabili.
_as400 = false;
if (is_saldaconto() || iva() != nessuna_iva)
@ -917,7 +917,7 @@ void TPrimanota_application::init_modify_mode(TMask& m)
m.show(F_ADJUST_PRORATA);
m.set_handler(F_ADJUST_PRORATA, prorata_handler);
warning_box(TR("Questo movimento e' stato registrato con una percentuale\n"
warning_box(TR("Questo movimento è stato registrato con una percentuale\n"
"prorata non compatibile con quella corrente:\n"
"Premere il bottone di correzione automatica delle righe."));
}
@ -940,11 +940,11 @@ void TPrimanota_application::init_modify_mode(TMask& m)
{
TString msg;
if (mov.get_bool(MOV_STAMPATO))
msg << '\n' << TR("Il movimento e' gia' stato stampato sul libro giornale.");
msg << '\n' << TR("Il movimento è già stato stampato sul libro giornale.");
if (mov.get_bool(MOV_REGST))
msg << '\n' << TR("Il movimento e' gia' stato stampato sul bollato.");
msg << '\n' << TR("Il movimento è già stato stampato sul bollato.");
if (mov.get_bool(MOV_INVIATO))
msg << '\n' << TR("Il movimento e' stato inviato ad un'altra contabilita'.");
msg << '\n' << TR("Il movimento è stato inviato ad un'altra contabilità.");
if (msg.not_empty())
{
msg.insert(TR("ATTENZIONE!"));
@ -959,7 +959,7 @@ void TPrimanota_application::init_modify_mode(TMask& m)
}
// Controlla sulla causale se il segno del totale documento (ritsoc=false)
// o quello delle ritenute sociali (ritsoc=true) e' invertito rispetto al normale
// o quello delle ritenute sociali (ritsoc=true) è invertito rispetto al normale
bool TPrimanota_application::test_swap(bool ritsoc)
{
const char sez = ritsoc ? causale().sezione_ritsoc() : causale().sezione_clifo();
@ -970,7 +970,7 @@ bool TPrimanota_application::test_swap(bool ritsoc)
void TPrimanota_application::add_cup_or_cig(short id, const TRectype& rec, TToken_string& riga) const
{
const bool cup = id == CG_CUP;
const TString80 cod = rec.get(cup ? RMV_CUP : RMV_CIG);
const TString& cod = rec.get(cup ? RMV_CUP : RMV_CIG);
if (cod.full())
{
riga.add(cod, id-FIRST_FIELD); // Tipo di riga 115 o 117
@ -982,7 +982,7 @@ void TPrimanota_application::add_cup_or_cig(short id, const TRectype& rec, TToke
void TPrimanota_application::add_cup_or_cig(short id, TConfig& ini, TToken_string& riga) const
{
const bool cup = id == CG_CUP;
const TString80 cod = ini.get(cup ? RMV_CUP : RMV_CIG);
const TString& cod = ini.get(cup ? RMV_CUP : RMV_CIG);
if (cod.full())
{
riga.add(cod, id-FIRST_FIELD); // Tipo di riga 115 o 117
@ -1158,12 +1158,12 @@ void TPrimanota_application::mask2rel(const TMask& m)
}
else
s[0] = '\0';
rec.put(MOV_TIPOMOV, s); // Tolto dalla maschera (su file e' alfanumerico)!
rec.put(MOV_TIPOMOV, s); // Tolto dalla maschera (su file è alfanumerico)!
_rel->destroy_rows(numreg); // Destroy all records
cgs_pack(); // Destroy all null rows
// Controlla se e' un movimento con righe contabili
// Controlla se è un movimento con righe contabili
if (iva() == nessuna_iva || !m.get_bool(F_SOLAIVA))
{
TString_array& rows = cgs().rows_array();
@ -1233,7 +1233,7 @@ void TPrimanota_application::mask2rel(const TMask& m)
{
rec.put(MOV_TIPO, clifo());
if (m.field(F_OCCASEDIT).active()) // Se e' un occasionale
if (m.field(F_OCCASEDIT).active()) // Se è un occasionale
{
const TMask& om = occas_mask();
TRelation occas(LF_OCCAS);
@ -1653,17 +1653,17 @@ long TPrimanota_application::calcola_m770(int tipo_coll, real& spese, real& comp
imp = row;
const char cf = row.get_char(2);
if (cf == 'F') // Evviva, e' un fornitore!
if (cf == 'F') // Evviva, è un fornitore!
{
const long cod = row.get_long(5);
char tipper;
long codper;
if (!is_percipient(cod, tipper, codper))
continue; // Se non e' percipente ignoralo
continue; // Se non è percipente ignoralo
if (forn == 0 && tipo_coll == 3)
{
forn = cod; // E' il primo che trovo!
forn = cod; // è il primo che trovo!
}
else // Fine ricerca.
{
@ -1894,7 +1894,7 @@ void TPrimanota_application::ini2mask(TConfig& ini, TMask& msk, bool query)
if (numrig != i) // Controllo se ho un numero riga valido
{
numrig = -1; // Normalmente aggiungi la riga in fondo
// Cerca una riga che abbia gia' il tipo ed il conto richiesto
// Cerca una riga che abbia già il tipo ed il conto richiesto
if (strchr(" DINT", tipo) != NULL)
{
int nr = -1;
@ -2349,13 +2349,13 @@ bool TPrimanota_application::link_anal(const TMask& msk, const char* action)
if (action[0] == 'I')
{
// Se non ci sono conti analitici e' inutile inserire
// Se non ci sono conti analitici è inutile inserire
if (!bAnalBill)
return false;
}
// Controllo se esiste gia' il movimento
// Controllo se esiste già il movimento
long nExist = 0L;
TLocalisamfile movana(LF_MOVANA);
movana.setkey(3);
@ -2370,12 +2370,12 @@ bool TPrimanota_application::link_anal(const TMask& msk, const char* action)
if (!bAnalBill) // Non c'erano e non ci sono tuttora conti analitici
return false;
action = "Insert"; // Il movimento e' andato perduto!
action = "Insert"; // Il movimento è andato perduto!
}
else
{
if (action[0] == 'I')
action = "Modify"; // Il movimento e' stato inserito preventivamente
action = "Modify"; // Il movimento è stato inserito preventivamente
}
TFilename ini; ini.tempdir();
@ -2413,17 +2413,17 @@ bool TPrimanota_application::protected_record(TRectype& mov)
{
if (mov.get_bool(MOV_STAMPATO))
{
ok = yesno_box(FR("Il movimento %ld e' gia' stato stampato sul libro giornale:\n"
ok = yesno_box(FR("Il movimento %ld è già stato stampato sul libro giornale:\n"
"si desidera eliminarlo ugualmente?"), numreg);
}
if (ok && mov.get_bool(MOV_REGST))
{
ok = yesno_box(FR("Il movimento %ld e' gia' stato stampato sul bollato:\n"
ok = yesno_box(FR("Il movimento %ld è già stato stampato sul bollato:\n"
"si desidera eliminarlo ugualmente?"), numreg);
}
if (ok && mov.get_bool(MOV_INVIATO))
{
ok = yesno_box(FR("Il movimento %ld e' stato inviato ad un'altra contabilita':\n"
ok = yesno_box(FR("Il movimento %ld è stato inviato ad un'altra contabilità:\n"
"si desidera eliminarlo ugualmente?"), numreg);
}
if (ok)

View File

@ -13,7 +13,7 @@ int main(int argc,char** argv)
case 4: cg4500(argc,argv); break; // Apertura nuovo esercizio
case 5: cg4600(argc,argv); break; // Chiusura /Apertura
case 6: cg4700(argc,argv); break; // Gestione acconti
case 7: cg4800(argc,argv); break; // Creazione versamenti per acconto
//case 7: cg4800(argc,argv); break; // Creazione versamenti per acconto
case 8: cg4900(argc,argv); break; // Visualizzazione liquidazione acconti
case 9: cg4a00(argc,argv); break; // Gestione Autotrasportatori
default: cg4100(argc,argv); break; // Ricalcolo saldi

View File

@ -531,6 +531,7 @@ bool TLiquidazione_app::set_print(int)
warning_box(TR("Nessuna ditta selezionata!"));
}
break;
/*
case 2: // estrazione deleghe
_isprint = FALSE;
_selected.reset();
@ -546,25 +547,30 @@ bool TLiquidazione_app::set_print(int)
else warning_box(TR("Nessuna ditta selezionata!"));
}
break;
*/
case 3: // calcolo acconto
_isprint = TRUE;
_month = 12;
_selected.reset();
_ditte->check(-1, FALSE);
build_ditte_sheet(all);
real inf; real ina; // cotale obbrobrio non fu da me cercato, ne' mai condiviso
while (set_acconto(inf, ina))
{
if (_calcall || _selected.ones() > 0l)
{
recalc_acconti(inf, ina);
return _isprint;
}
else warning_box(TR("Nessuna ditta selezionata!"));
{
_isprint = TRUE;
_month = 12;
_selected.reset();
_ditte->check(-1, FALSE);
build_ditte_sheet(all);
real inf; real ina; // cotale obbrobrio non fu da me cercato, ne' mai condiviso
while (set_acconto(inf, ina))
{
if (_calcall || _selected.ones() > 0l)
{
recalc_acconti(inf, ina);
return _isprint;
}
else warning_box(TR("Nessuna ditta selezionata!"));
}
}
break;
default:
break;
}
return FALSE;
return false;
}
long TLiquidazione_app::select_firm_range(long from, long to, wht freq)

View File

@ -592,10 +592,13 @@ public:
void set_plm(_DescrItem& d);
bool set_annual(_DescrItem& d);
void set_grand(_DescrItem& d);
void set_grand_1999(_DescrItem& d, int &rw);
// void set_grand_1999(_DescrItem& d, int &rw);
void set_grand_2000(_DescrItem& d, int &rw);
void set_pim_head(_DescrItem& d);
void set_liqacc_1999(_DescrItem& d);
// void set_liqacc_1999(_DescrItem& d);
int calc_inc_diff(int tipoiva, real& imponibile_diff, real& imposta_diff, real& imponibile_xcas, real& imposta_xcas) const;
int print_acc_diff_xcassa(const _DescrItem& d);
void set_liqacc_2000(_DescrItem& d);
// Utility per stampare nella colonna debito o credito
@ -658,13 +661,15 @@ public:
bool is_first_month (int m);
int liq_month(int x);
int previous_month (int m);
int previous_month (int m) const;
// Funzioni accessorie: estrazione deleghe
/* Funzioni accessorie: estrazione deleghe
bool set_deleghe();
bool extract_deleghe();
bool extract_delega(int m, TArray& desc);
bool video_conferma(const real&, const real&, const real&, bool to_del = FALSE);
*/
// stampa
void set_deltab(_DescrItem& d, bool iscred);

View File

@ -98,7 +98,7 @@ bool TLiquidazione_app::is_first_month(int m)
return _freqviva == "M" ? m == 1 : m == 3;
}
int TLiquidazione_app::previous_month(int m)
int TLiquidazione_app::previous_month(int m) const
{
// vale per LIM (mese o trimestre precedente)
if (_freqviva == "M")

View File

@ -4,7 +4,7 @@
// fv 21-1-94
// ------------------------------------------------------------
#include <currency.h>
#include <modaut.h>
#include <recarray.h>
#include <recset.h>
#include <utility.h>
@ -91,10 +91,14 @@ void TLiquidazione_app::set_page(int file, int cnt)
set_grand(d);
break;
case LIQACC:
/* Obsoleto
if (atoi(_year) >= 2000)
set_liqacc_2000(d);
else
set_liqacc_1999(d);
*/
set_liqacc_2000(d);
break;
case ACCONTO:
set_acconto_p(d);
@ -1400,7 +1404,6 @@ void TLiquidazione_app::describe_consistence(const char* codatt)
}
}
void TLiquidazione_app::describe_error(const char* err, const char* codatt)
{
if (!_isprint || !_canprint || (_isregis && _isfinal))
@ -1418,14 +1421,13 @@ void TLiquidazione_app::set_firm(_DescrItem& d)
tim_title << TR("Liquidazione IVA");
if (d._f1 == 13)
tim_title << format(FR(": Riepilogo Annuale %s"),(const char*)_year);
tim_title << format(FR(": Riepilogo Annuale %s"), (const char*)_year);
else
{
if (d._s2 == "T")
tim_title << format(FR(" del %d° Trimestre %s"), d._f1/3, (const char *) _year);
tim_title << format(FR(" del %d° Trimestre %s"), d._f1/3, (const char*) _year);
else
tim_title << format(FR(" del mese di %s %s"), itom(d._f1),
(const char*)_year);
tim_title << format(FR(" del mese di %s %s"), itom(d._f1), (const char*)_year);
}
reset_header();
@ -1438,15 +1440,13 @@ void TLiquidazione_app::set_firm(_DescrItem& d)
}
set_header(soh++,sep);
set_header(soh++,FR("%s@102gFrequenza %s"),
(const char*)tim_title,
d._s2 == "T" ? TR("Trimestrale") : TR("Mensile"));
(const char*)tim_title, d._s2 == "T" ? TR("Trimestrale") : TR("Mensile"));
set_header(soh++,sep);
set_header(soh++,"");
// notify errors if any
int j = 0;
int i;
int i = 0;
for (i = 0; i < _errors.items(); i++)
{
_ErrItem& s = (_ErrItem&)_errors[i];
@ -1489,10 +1489,9 @@ void TLiquidazione_app::set_att(_DescrItem& d)
else
{
if (d._s4 == "T")
tim_title << format(FR(" del %d° Trimestre %s"), d._f1/3, (const char *) _year);
tim_title << format(FR(" del %d° Trimestre %s"), d._f1/3, (const char*)_year);
else
tim_title << format(FR(" del mese di %s %s"), itom(d._f1),
(const char*)_year);
tim_title << format(FR(" del mese di %s %s"), itom(d._f1), (const char*)_year);
}
const char* tipatt = "";
@ -1528,10 +1527,10 @@ void TLiquidazione_app::set_att(_DescrItem& d)
if (d._s2 == s._att && s._firm == d._s0)
{ j++; set_row(i+10, "@5g@b*** %s ***@r", (const char*)s._err); }
}
if (j) set_auto_ff(TRUE);
if (j)
set_auto_ff(TRUE);
}
void TLiquidazione_app::set_plafond(_DescrItem& d)
{
// In caso di stampa liquidazione da stampa registri, il prospetto plafond
@ -1550,8 +1549,7 @@ void TLiquidazione_app::set_plafond(_DescrItem& d)
set_print_zero(TRUE);
set_row(1,TR("QUADRO RELATIVO ALLA DISPONIBILITA' ED ALL'UTILIZZO "
"MENSILE DEI PLAFONDS"));
set_row(1,TR("QUADRO RELATIVO ALLA DISPONIBILITA' ED ALL'UTILIZZO MENSILE DEI PLAFONDS"));
set_row(2,"");
set_row(3,FR("@31gDisponibile@48g%r"), &(disponibile));
@ -1574,6 +1572,8 @@ void TLiquidazione_app::set_plafond(_DescrItem& d)
set_auto_ff();
}
/* Obsoleto
void TLiquidazione_app::set_liqacc_1999(_DescrItem& d)
{
real r1 = d._r0 + d._r1 + d._r2 + d._r4;
@ -1632,6 +1632,91 @@ void TLiquidazione_app::set_liqacc_1999(_DescrItem& d)
set_auto_ff();
}
*/
int TLiquidazione_app::calc_inc_diff(int tipoiva, real& imponibile_diff, real& imposta_diff, real& imponibile_xcas, real& imposta_xcas) const
{
int flag = 0;
imponibile_diff = imposta_diff = imponibile_xcas = imposta_xcas = ZERO;
TString limit; limit << "ANNOLIQ=" << _year;
if (_month < 13) limit << " MESELIQ=" << _month;
TString query;
query << "USE IVADIFF KEY 2 SELECT (TIPOMOV>2)&&(TIPOIVA=" << tipoiva << ')';
query << "\nFROM " << limit << "\nTO " << limit;
TISAM_recordset id(query);
const TRectype& rec = id.cursor()->curr();
for (bool ok = id.move_first(); ok; ok = id.move_next())
{
const real iva = rec.get_real(RMI_IMPOSTA);
if (iva > ZERO)
{
const real imp = rec.get_real(RMI_IMPONIBILE);
const int tipodiff = rec.get_int("TIPODIFF");
if (tipodiff == 1)
{
imponibile_diff += imp;
imposta_diff += iva;
} else
if (tipodiff == 2)
{
imponibile_xcas += imp;
imposta_xcas += iva;
}
flag |= tipodiff;
}
}
return flag;
}
int TLiquidazione_app::print_acc_diff_xcassa(const _DescrItem& d)
{
int i = 9;
const real& totiva = d._r0;
real ivadiff_inc = d._r29;
real ivadiff_pag = d._r33;
real ivaxcas_inc, ivaxcas_pag;
if (has_module(ICAUT))
{
// Calcolare qui la quota per cassa e toglierla a quella differita gloable
}
if (!_isdiffacc)
{
set_row(i++,FR("@11gIva esigibile fino al 20/12@81g%r"), &totiva);
if (ivadiff_inc > ZERO)
set_row(i++,FR("@11gIVA a liquidazione differita incassata fino al 20/12@75g%r"), &ivadiff_inc);
if (ivadiff_pag > ZERO)
set_row(i++,FR("@11gIVA a liquidazione differita pagata fino al 20/12@64g%r"), &ivadiff_pag);
if (ivaxcas_inc > ZERO)
set_row(i++,FR("@11gIVA per cassa incassata fino al 20/12@75g%r"), &ivaxcas_inc);
if (ivaxcas_pag > ZERO)
set_row(i++,FR("@11gIVA per cassa pagata fino al 20/12@64g%r"), &ivaxcas_pag);
}
else
{
set_row(i++,FR("@11gIva sulle operazioni di vendita@81g%r"), &totiva);
if (ivadiff_inc > ZERO)
set_row(i++,FR("@11gIVA a liquidazione differita incassata@75g%r"), &ivadiff_inc);
if (ivadiff_pag > ZERO)
set_row(i++,FR("@11gIVA a liquidazione differita pagata@64g%r"), &ivadiff_pag);
if (ivadiff_inc > ZERO)
set_row(i++,FR("@11gIVA per cassa incassata@75g%r"), &ivadiff_inc);
if (ivadiff_pag > ZERO)
set_row(i++,FR("@11gIVA per cassa pagata@64g%r"), &ivadiff_pag);
}
return i;
}
void TLiquidazione_app::set_liqacc_2000(_DescrItem& d)
{
@ -1645,23 +1730,9 @@ void TLiquidazione_app::set_liqacc_2000(_DescrItem& d)
if (d._r3 > ZERO)
d._r0 += d._r3; // Aggiungi rettifiche a debito
int i = 9;
if (!_isdiffacc)
{
set_row(i++,FR("@11gIva esigibile fino al 20/12@81g%r"), &d._r0);
if (d._r29 > ZERO)
set_row(i++,FR("@11gIVA a liquidazione differita incassata fino al 20/12@75g%r"), &d._r29);
if (d._r33 > ZERO)
set_row(i++,FR("@11gIVA a liquidazione differita pagata fino al 20/12@64g%r"), &d._r33);
}
else
{
set_row(i++,FR("@11gIva sulle operazioni di vendita@81g%r"), &d._r0);
if (d._r29 > ZERO)
set_row(i++,FR("@11gIVA a liquidazione differita incassata@75g%r"), &d._r29);
if (d._r33 > ZERO)
set_row(i++,FR("@11gIVA a liquidazione differita pagata@64g%r"), &d._r33);
}
int i = print_acc_diff_xcassa(d);
if (!_isdiffacc)
{
set_row(i++,FR("@11gIva esigibile fino al 20/12 di cui non fatturata@81g%r"), &d._r1);
@ -1714,6 +1785,8 @@ void TLiquidazione_app::set_liqacc_2000(_DescrItem& d)
set_auto_ff();
}
/*
bool TLiquidazione_app::print_dainc_diff_log(int& rw, int tipoatt, int tipoiva)
{
TString limit; limit << "ANNOLIQ=" << _year;
@ -1833,8 +1906,7 @@ bool TLiquidazione_app::print_inc_diff_log(int& rw, int tipoatt, int tipoiva)
return rpag > 0;
}
*/
void TLiquidazione_app::set_pim_head(_DescrItem& d)
{
@ -1849,7 +1921,7 @@ void TLiquidazione_app::set_pim_head(_DescrItem& d)
{
set_row(r++, TR("Movimenti a liquidazione differita o per cassa registrati nel periodo"));
set_bookmark(TR("Riepilogo progressivi a liquidazione differita"), _att_bookmark);
print_dainc_diff_log(r, d._f2, d._f3);
// print_dainc_diff_log(r, d._f2, d._f3); // 15-03-2013 obosleto in quanto stampato su registri?
}
else
if (d._flags == PIM_HEAD_DI)
@ -2220,6 +2292,7 @@ void TLiquidazione_app::set_pumpam(_DescrItem& d)
set_auto_ff(TRUE);
}
/*
void TLiquidazione_app::set_grand_1999(_DescrItem& d, int& rw)
{
real& risultato = d._r0;
@ -2373,6 +2446,7 @@ void TLiquidazione_app::set_grand_1999(_DescrItem& d, int& rw)
}
}
}
*/
void TLiquidazione_app::print_importo(int rw, const char* prompt, real imp, bool red)
{
@ -2399,8 +2473,28 @@ void TLiquidazione_app::set_grand_2000(_DescrItem& d, int &rw)
const real& interessi = d._r7;
const real& versamenti = d._r8;
const real& vers_int = d._r9;
const real& diffinc_iva = d._r29;
const real& diffinc_iva_acq = d._r33;
real diffinc_iva = d._r29;
real diffinc_iva_acq = d._r33;
real xcasinc_iva = ZERO;
real xcasinc_iva_acq = ZERO;
if (has_module(ICAUT) && (!diffinc_iva.is_zero() || !diffinc_iva_acq.is_zero()))
{
real dimp, diva, ximp, xiva;
if (!diffinc_iva.is_zero() && calc_inc_diff(1, dimp, diva, ximp, xiva) & 0x2)
{
diffinc_iva = diva;
xcasinc_iva = xiva;
}
if (!diffinc_iva_acq.is_zero() && calc_inc_diff(2, dimp, diva, ximp, xiva) & 0x2)
{
diffinc_iva_acq = diva;
xcasinc_iva_acq = xiva;
}
}
TToken_string tt(d._s0);
real iva_vend(tt.get(0));
@ -2433,6 +2527,8 @@ void TLiquidazione_app::set_grand_2000(_DescrItem& d, int &rw)
set_row(rw++,FR("@11gIVA esigibile per il periodo@75g%r"), &iva_vend);
if (!diffinc_iva.is_zero())
set_row(rw++,FR("@11gIVA a liquidazione differita incassata@75g%r"), &diffinc_iva);
if (!xcasinc_iva.is_zero())
set_row(rw++,FR("@11gIVA per cassa incassata@75g%r"), &xcasinc_iva);
if (_is_visliq)
set_row(rw++,FR("@11g$[r]Rettifiche IVA a debito$[n]@75g%r"), &rett_debt); // Rettifiche modificabili
@ -2581,12 +2677,16 @@ void TLiquidazione_app::set_grand(_DescrItem& d)
set_row(6,"");
int rw = 7;
/*
const bool new_print = atoi(_year) >= 2000;
if (new_print)
set_grand_2000(d, rw);
else
set_grand_1999(d, rw);
*/
set_grand_2000(d, rw);
// rapportini per rimborso infraannuale
// non si stampano se la stampa serve per la visualizz.
// solo in st.di prova in coda ai registri deve scendere

View File

@ -17,6 +17,7 @@
#include "cg4300c.h"
#include "cg4800b.h"
/*
// -------------------------------------------------- estrazione deleghe
bool TLiquidazione_app::set_deleghe()
@ -418,6 +419,9 @@ bool TLiquidazione_app::video_conferma(const real& newimp, const real& intr,
return k == K_YES;
}
*/
// -------------------------------------------- calcolo acconto dicembre
bool TLiquidazione_app::set_acconto(real& inf, real& ina)
{

View File

@ -16,7 +16,6 @@
#include <progind.h>
#include <recarray.h>
#include <recset.h>
#include <sheet.h>
#include <utility.h>
#include <anagr.h>
@ -26,8 +25,8 @@
#include <comuni.h>
#include <mov.h>
#include <nditte.h>
#include <occas.h>
#include <rmoviva.h>
#include <occas.h>
#include <unloc.h>
static enum tipo_sospensione { nessuna, normale, vol_affari, liquidazione };

View File

@ -152,6 +152,7 @@ public: // TObject
const TString& tipo() const { return get("S1"); }
int detraibilita() const { return get_int("I1"); }
int allegato(char tipocf) const { return get_int(tipocf == 'F' ? "S8" : "S7"); }
bool has_plafond() const { return get_int("S3") > 0; }
real imposta(const real& imponibile, int ndec = AUTO_DECIMALS, const char * codval = "") const; // Calcola l'imposta sull'imponibile l'imposta e la ritorna
real scorpora(real& imponibile, int ndec = AUTO_DECIMALS, const char * codval = "") const; // Scorpora dall'imponibile l'imposta e la ritorna

View File

@ -666,17 +666,21 @@ TFieldtypes TSolder_tree::get_var(const TString& name, TVariant& var) const
} else
if (name == PAGSCA_ABBUONI)
{
set_var_real(var, rpag.get_real(name), show_val());
const real a = pag.get_real(name);
set_var_real(var, a, show_val());
} else
if (name == PAGSCA_DIFFCAM)
{
if (_codval.full() && !show_val())
set_var_real(var, rpag.get_real(name), false);
{
const real d = pag.get_real(name);
set_var_real(var, d, false);
}
} else
if (name == PAGSCA_RITENUTE)
{
if (_codval.empty())
set_var_real(var, rpag.get_real(name), false);
set_var_real(var, pag.get_real(name), false);
} else
if (name == PAGSCA_RITSOC)
{