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); m->set_handler(O_PAIV, occas_cfpi_handler);
break; break;
default: default:
CHECKD(0, "Che ca$$o di maschera e' la ", n); CHECKD(0, "Che ca$$o di maschera è la ", n);
break; break;
} }
@ -371,7 +371,7 @@ bool TPrimanota_application::read_caus(const char* cod, int year)
if (err) 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")); i, err == 1 ? TR("sconosciuto") : TR("sospeso"));
} }
@ -849,7 +849,7 @@ void TPrimanota_application::init_insert_mode(TMask& m)
TConfig ini(tmp, "23"); TConfig ini(tmp, "23");
ini2mask(ini, m, false); 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) if (m.id2pos(F_CODIVA) > 0)
{ {
const TString& codiva = ini.get("CODIVA", "23"); const TString& codiva = ini.get("CODIVA", "23");
@ -880,7 +880,7 @@ void TPrimanota_application::init_modify_mode(TMask& m)
TSheet_field& cg = cgs(); 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. // praticamente controlla che non ci sia nessun tipo movimento sulle righe contabili.
_as400 = false; _as400 = false;
if (is_saldaconto() || iva() != nessuna_iva) if (is_saldaconto() || iva() != nessuna_iva)
@ -917,7 +917,7 @@ void TPrimanota_application::init_modify_mode(TMask& m)
m.show(F_ADJUST_PRORATA); m.show(F_ADJUST_PRORATA);
m.set_handler(F_ADJUST_PRORATA, prorata_handler); 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" "prorata non compatibile con quella corrente:\n"
"Premere il bottone di correzione automatica delle righe.")); "Premere il bottone di correzione automatica delle righe."));
} }
@ -940,11 +940,11 @@ void TPrimanota_application::init_modify_mode(TMask& m)
{ {
TString msg; TString msg;
if (mov.get_bool(MOV_STAMPATO)) 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)) 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)) 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()) if (msg.not_empty())
{ {
msg.insert(TR("ATTENZIONE!")); 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) // 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) bool TPrimanota_application::test_swap(bool ritsoc)
{ {
const char sez = ritsoc ? causale().sezione_ritsoc() : causale().sezione_clifo(); 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 void TPrimanota_application::add_cup_or_cig(short id, const TRectype& rec, TToken_string& riga) const
{ {
const bool cup = id == CG_CUP; 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()) if (cod.full())
{ {
riga.add(cod, id-FIRST_FIELD); // Tipo di riga 115 o 117 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 void TPrimanota_application::add_cup_or_cig(short id, TConfig& ini, TToken_string& riga) const
{ {
const bool cup = id == CG_CUP; 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()) if (cod.full())
{ {
riga.add(cod, id-FIRST_FIELD); // Tipo di riga 115 o 117 riga.add(cod, id-FIRST_FIELD); // Tipo di riga 115 o 117
@ -1158,12 +1158,12 @@ void TPrimanota_application::mask2rel(const TMask& m)
} }
else else
s[0] = '\0'; 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 _rel->destroy_rows(numreg); // Destroy all records
cgs_pack(); // Destroy all null rows 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)) if (iva() == nessuna_iva || !m.get_bool(F_SOLAIVA))
{ {
TString_array& rows = cgs().rows_array(); TString_array& rows = cgs().rows_array();
@ -1233,7 +1233,7 @@ void TPrimanota_application::mask2rel(const TMask& m)
{ {
rec.put(MOV_TIPO, clifo()); 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(); const TMask& om = occas_mask();
TRelation occas(LF_OCCAS); TRelation occas(LF_OCCAS);
@ -1653,17 +1653,17 @@ long TPrimanota_application::calcola_m770(int tipo_coll, real& spese, real& comp
imp = row; imp = row;
const char cf = row.get_char(2); 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); const long cod = row.get_long(5);
char tipper; char tipper;
long codper; long codper;
if (!is_percipient(cod, tipper, codper)) if (!is_percipient(cod, tipper, codper))
continue; // Se non e' percipente ignoralo continue; // Se non è percipente ignoralo
if (forn == 0 && tipo_coll == 3) if (forn == 0 && tipo_coll == 3)
{ {
forn = cod; // E' il primo che trovo! forn = cod; // è il primo che trovo!
} }
else // Fine ricerca. 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 if (numrig != i) // Controllo se ho un numero riga valido
{ {
numrig = -1; // Normalmente aggiungi la riga in fondo 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) if (strchr(" DINT", tipo) != NULL)
{ {
int nr = -1; int nr = -1;
@ -2349,13 +2349,13 @@ bool TPrimanota_application::link_anal(const TMask& msk, const char* action)
if (action[0] == 'I') if (action[0] == 'I')
{ {
// Se non ci sono conti analitici e' inutile inserire // Se non ci sono conti analitici è inutile inserire
if (!bAnalBill) if (!bAnalBill)
return false; return false;
} }
// Controllo se esiste gia' il movimento // Controllo se esiste già il movimento
long nExist = 0L; long nExist = 0L;
TLocalisamfile movana(LF_MOVANA); TLocalisamfile movana(LF_MOVANA);
movana.setkey(3); 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 if (!bAnalBill) // Non c'erano e non ci sono tuttora conti analitici
return false; return false;
action = "Insert"; // Il movimento e' andato perduto! action = "Insert"; // Il movimento è andato perduto!
} }
else else
{ {
if (action[0] == 'I') if (action[0] == 'I')
action = "Modify"; // Il movimento e' stato inserito preventivamente action = "Modify"; // Il movimento è stato inserito preventivamente
} }
TFilename ini; ini.tempdir(); TFilename ini; ini.tempdir();
@ -2413,17 +2413,17 @@ bool TPrimanota_application::protected_record(TRectype& mov)
{ {
if (mov.get_bool(MOV_STAMPATO)) 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); "si desidera eliminarlo ugualmente?"), numreg);
} }
if (ok && mov.get_bool(MOV_REGST)) 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); "si desidera eliminarlo ugualmente?"), numreg);
} }
if (ok && mov.get_bool(MOV_INVIATO)) 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); "si desidera eliminarlo ugualmente?"), numreg);
} }
if (ok) if (ok)

View File

@ -13,7 +13,7 @@ int main(int argc,char** argv)
case 4: cg4500(argc,argv); break; // Apertura nuovo esercizio case 4: cg4500(argc,argv); break; // Apertura nuovo esercizio
case 5: cg4600(argc,argv); break; // Chiusura /Apertura case 5: cg4600(argc,argv); break; // Chiusura /Apertura
case 6: cg4700(argc,argv); break; // Gestione acconti 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 8: cg4900(argc,argv); break; // Visualizzazione liquidazione acconti
case 9: cg4a00(argc,argv); break; // Gestione Autotrasportatori case 9: cg4a00(argc,argv); break; // Gestione Autotrasportatori
default: cg4100(argc,argv); break; // Ricalcolo saldi 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!")); warning_box(TR("Nessuna ditta selezionata!"));
} }
break; break;
/*
case 2: // estrazione deleghe case 2: // estrazione deleghe
_isprint = FALSE; _isprint = FALSE;
_selected.reset(); _selected.reset();
@ -546,25 +547,30 @@ bool TLiquidazione_app::set_print(int)
else warning_box(TR("Nessuna ditta selezionata!")); else warning_box(TR("Nessuna ditta selezionata!"));
} }
break; break;
*/
case 3: // calcolo acconto case 3: // calcolo acconto
_isprint = TRUE; {
_month = 12; _isprint = TRUE;
_selected.reset(); _month = 12;
_ditte->check(-1, FALSE); _selected.reset();
build_ditte_sheet(all); _ditte->check(-1, FALSE);
real inf; real ina; // cotale obbrobrio non fu da me cercato, ne' mai condiviso build_ditte_sheet(all);
while (set_acconto(inf, ina)) real inf; real ina; // cotale obbrobrio non fu da me cercato, ne' mai condiviso
{ while (set_acconto(inf, ina))
if (_calcall || _selected.ones() > 0l) {
{ if (_calcall || _selected.ones() > 0l)
recalc_acconti(inf, ina); {
return _isprint; recalc_acconti(inf, ina);
} return _isprint;
else warning_box(TR("Nessuna ditta selezionata!")); }
else warning_box(TR("Nessuna ditta selezionata!"));
}
} }
break; break;
default:
break;
} }
return FALSE; return false;
} }
long TLiquidazione_app::select_firm_range(long from, long to, wht freq) long TLiquidazione_app::select_firm_range(long from, long to, wht freq)

View File

@ -592,10 +592,13 @@ public:
void set_plm(_DescrItem& d); void set_plm(_DescrItem& d);
bool set_annual(_DescrItem& d); bool set_annual(_DescrItem& d);
void set_grand(_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_grand_2000(_DescrItem& d, int &rw);
void set_pim_head(_DescrItem& d); 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); void set_liqacc_2000(_DescrItem& d);
// Utility per stampare nella colonna debito o credito // Utility per stampare nella colonna debito o credito
@ -658,13 +661,15 @@ public:
bool is_first_month (int m); bool is_first_month (int m);
int liq_month(int x); 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 set_deleghe();
bool extract_deleghe(); bool extract_deleghe();
bool extract_delega(int m, TArray& desc); bool extract_delega(int m, TArray& desc);
bool video_conferma(const real&, const real&, const real&, bool to_del = FALSE); bool video_conferma(const real&, const real&, const real&, bool to_del = FALSE);
*/
// stampa // stampa
void set_deltab(_DescrItem& d, bool iscred); 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; 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) // vale per LIM (mese o trimestre precedente)
if (_freqviva == "M") if (_freqviva == "M")

View File

@ -4,7 +4,7 @@
// fv 21-1-94 // fv 21-1-94
// ------------------------------------------------------------ // ------------------------------------------------------------
#include <currency.h> #include <modaut.h>
#include <recarray.h> #include <recarray.h>
#include <recset.h> #include <recset.h>
#include <utility.h> #include <utility.h>
@ -91,10 +91,14 @@ void TLiquidazione_app::set_page(int file, int cnt)
set_grand(d); set_grand(d);
break; break;
case LIQACC: case LIQACC:
/* Obsoleto
if (atoi(_year) >= 2000) if (atoi(_year) >= 2000)
set_liqacc_2000(d); set_liqacc_2000(d);
else else
set_liqacc_1999(d); set_liqacc_1999(d);
*/
set_liqacc_2000(d);
break; break;
case ACCONTO: case ACCONTO:
set_acconto_p(d); 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) void TLiquidazione_app::describe_error(const char* err, const char* codatt)
{ {
if (!_isprint || !_canprint || (_isregis && _isfinal)) if (!_isprint || !_canprint || (_isregis && _isfinal))
@ -1418,14 +1421,13 @@ void TLiquidazione_app::set_firm(_DescrItem& d)
tim_title << TR("Liquidazione IVA"); tim_title << TR("Liquidazione IVA");
if (d._f1 == 13) 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 else
{ {
if (d._s2 == "T") 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 else
tim_title << format(FR(" del mese di %s %s"), itom(d._f1), tim_title << format(FR(" del mese di %s %s"), itom(d._f1), (const char*)_year);
(const char*)_year);
} }
reset_header(); reset_header();
@ -1438,15 +1440,13 @@ void TLiquidazione_app::set_firm(_DescrItem& d)
} }
set_header(soh++,sep); set_header(soh++,sep);
set_header(soh++,FR("%s@102gFrequenza %s"), set_header(soh++,FR("%s@102gFrequenza %s"),
(const char*)tim_title, (const char*)tim_title, d._s2 == "T" ? TR("Trimestrale") : TR("Mensile"));
d._s2 == "T" ? TR("Trimestrale") : TR("Mensile"));
set_header(soh++,sep); set_header(soh++,sep);
set_header(soh++,""); set_header(soh++,"");
// notify errors if any // notify errors if any
int j = 0; int j = 0;
int i; int i = 0;
for (i = 0; i < _errors.items(); i++) for (i = 0; i < _errors.items(); i++)
{ {
_ErrItem& s = (_ErrItem&)_errors[i]; _ErrItem& s = (_ErrItem&)_errors[i];
@ -1489,10 +1489,9 @@ void TLiquidazione_app::set_att(_DescrItem& d)
else else
{ {
if (d._s4 == "T") 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 else
tim_title << format(FR(" del mese di %s %s"), itom(d._f1), tim_title << format(FR(" del mese di %s %s"), itom(d._f1), (const char*)_year);
(const char*)_year);
} }
const char* tipatt = ""; const char* tipatt = "";
@ -1528,10 +1527,10 @@ void TLiquidazione_app::set_att(_DescrItem& d)
if (d._s2 == s._att && s._firm == d._s0) if (d._s2 == s._att && s._firm == d._s0)
{ j++; set_row(i+10, "@5g@b*** %s ***@r", (const char*)s._err); } { 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) void TLiquidazione_app::set_plafond(_DescrItem& d)
{ {
// In caso di stampa liquidazione da stampa registri, il prospetto plafond // 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_print_zero(TRUE);
set_row(1,TR("QUADRO RELATIVO ALLA DISPONIBILITA' ED ALL'UTILIZZO " set_row(1,TR("QUADRO RELATIVO ALLA DISPONIBILITA' ED ALL'UTILIZZO MENSILE DEI PLAFONDS"));
"MENSILE DEI PLAFONDS"));
set_row(2,""); set_row(2,"");
set_row(3,FR("@31gDisponibile@48g%r"), &(disponibile)); set_row(3,FR("@31gDisponibile@48g%r"), &(disponibile));
@ -1574,6 +1572,8 @@ void TLiquidazione_app::set_plafond(_DescrItem& d)
set_auto_ff(); set_auto_ff();
} }
/* Obsoleto
void TLiquidazione_app::set_liqacc_1999(_DescrItem& d) void TLiquidazione_app::set_liqacc_1999(_DescrItem& d)
{ {
real r1 = d._r0 + d._r1 + d._r2 + d._r4; 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(); 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) void TLiquidazione_app::set_liqacc_2000(_DescrItem& d)
{ {
@ -1645,23 +1730,9 @@ void TLiquidazione_app::set_liqacc_2000(_DescrItem& d)
if (d._r3 > ZERO) if (d._r3 > ZERO)
d._r0 += d._r3; // Aggiungi rettifiche a debito d._r0 += d._r3; // Aggiungi rettifiche a debito
int i = 9;
if (!_isdiffacc) int i = print_acc_diff_xcassa(d);
{
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);
}
if (!_isdiffacc) if (!_isdiffacc)
{ {
set_row(i++,FR("@11gIva esigibile fino al 20/12 di cui non fatturata@81g%r"), &d._r1); 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(); set_auto_ff();
} }
/*
bool TLiquidazione_app::print_dainc_diff_log(int& rw, int tipoatt, int tipoiva) bool TLiquidazione_app::print_dainc_diff_log(int& rw, int tipoatt, int tipoiva)
{ {
TString limit; limit << "ANNOLIQ=" << _year; 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; return rpag > 0;
} }
*/
void TLiquidazione_app::set_pim_head(_DescrItem& d) 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_row(r++, TR("Movimenti a liquidazione differita o per cassa registrati nel periodo"));
set_bookmark(TR("Riepilogo progressivi a liquidazione differita"), _att_bookmark); 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 else
if (d._flags == PIM_HEAD_DI) if (d._flags == PIM_HEAD_DI)
@ -2220,6 +2292,7 @@ void TLiquidazione_app::set_pumpam(_DescrItem& d)
set_auto_ff(TRUE); set_auto_ff(TRUE);
} }
/*
void TLiquidazione_app::set_grand_1999(_DescrItem& d, int& rw) void TLiquidazione_app::set_grand_1999(_DescrItem& d, int& rw)
{ {
real& risultato = d._r0; 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) 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& interessi = d._r7;
const real& versamenti = d._r8; const real& versamenti = d._r8;
const real& vers_int = d._r9; 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); TToken_string tt(d._s0);
real iva_vend(tt.get(0)); 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); set_row(rw++,FR("@11gIVA esigibile per il periodo@75g%r"), &iva_vend);
if (!diffinc_iva.is_zero()) if (!diffinc_iva.is_zero())
set_row(rw++,FR("@11gIVA a liquidazione differita incassata@75g%r"), &diffinc_iva); 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) if (_is_visliq)
set_row(rw++,FR("@11g$[r]Rettifiche IVA a debito$[n]@75g%r"), &rett_debt); // Rettifiche modificabili 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,""); set_row(6,"");
int rw = 7; int rw = 7;
/*
const bool new_print = atoi(_year) >= 2000; const bool new_print = atoi(_year) >= 2000;
if (new_print) if (new_print)
set_grand_2000(d, rw); set_grand_2000(d, rw);
else else
set_grand_1999(d, rw); set_grand_1999(d, rw);
*/
set_grand_2000(d, rw);
// rapportini per rimborso infraannuale // rapportini per rimborso infraannuale
// non si stampano se la stampa serve per la visualizz. // non si stampano se la stampa serve per la visualizz.
// solo in st.di prova in coda ai registri deve scendere // solo in st.di prova in coda ai registri deve scendere

View File

@ -17,6 +17,7 @@
#include "cg4300c.h" #include "cg4300c.h"
#include "cg4800b.h" #include "cg4800b.h"
/*
// -------------------------------------------------- estrazione deleghe // -------------------------------------------------- estrazione deleghe
bool TLiquidazione_app::set_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; return k == K_YES;
} }
*/
// -------------------------------------------- calcolo acconto dicembre // -------------------------------------------- calcolo acconto dicembre
bool TLiquidazione_app::set_acconto(real& inf, real& ina) bool TLiquidazione_app::set_acconto(real& inf, real& ina)
{ {

View File

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

View File

@ -152,6 +152,7 @@ public: // TObject
const TString& tipo() const { return get("S1"); } const TString& tipo() const { return get("S1"); }
int detraibilita() const { return get_int("I1"); } int detraibilita() const { return get_int("I1"); }
int allegato(char tipocf) const { return get_int(tipocf == 'F' ? "S8" : "S7"); } 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 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 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 } else
if (name == PAGSCA_ABBUONI) 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 } else
if (name == PAGSCA_DIFFCAM) if (name == PAGSCA_DIFFCAM)
{ {
if (_codval.full() && !show_val()) 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 } else
if (name == PAGSCA_RITENUTE) if (name == PAGSCA_RITENUTE)
{ {
if (_codval.empty()) if (_codval.empty())
set_var_real(var, rpag.get_real(name), false); set_var_real(var, pag.get_real(name), false);
} else } else
if (name == PAGSCA_RITSOC) if (name == PAGSCA_RITSOC)
{ {