Gestione flag studio per ricalcolare imposte acquisti beni per rivendita
Stampa intestazione colonne progressivi anche senza progressivi git-svn-id: svn://10.65.10.50/trunk@1530 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
24e754e785
commit
14f60c894d
@ -87,6 +87,7 @@ enum tbc { precedente = 1, incorso = 2};
|
||||
#define DELDEB 15 // righe tabulato deleghe ditte a debito
|
||||
#define DELCRED 16 // header tabulato deleghe ditte a credito
|
||||
#define DELEGA 17 // descrizione versamenti
|
||||
#define PIM_HEAD 18 // bytes sprecati per far vedere l'intestazione pim
|
||||
|
||||
// ...............................................................
|
||||
// support structs
|
||||
@ -429,6 +430,7 @@ public:
|
||||
void set_plm(_DescrItem& d);
|
||||
bool set_annual(_DescrItem& d);
|
||||
void set_grand(_DescrItem& d);
|
||||
void set_pim_head();
|
||||
|
||||
// cercapalle in tabelle con opzione di creazione se serve
|
||||
bool look_pim(int m, const char* a, const char* r, const char* cr,
|
||||
|
109
cg/cg4301.cpp
109
cg/cg4301.cpp
@ -450,7 +450,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
real esenti_b2 = 0.0;
|
||||
real esenti_b3 = 0.0;
|
||||
real esenti_b14 = 0.0;
|
||||
real nonimp = 0.0; // ci sommo tutti esenti e ni validi per rimborso
|
||||
real esni_rimb = 0.0; // ci sommo tutti esenti e ni validi per rimborso
|
||||
real corr_CEE = 0.0;
|
||||
real corr_noCEE = 0.0;
|
||||
real acq_CEE = 0.0;
|
||||
@ -496,10 +496,10 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
/*
|
||||
* check register present, rmoviva present and date OK
|
||||
*/
|
||||
const bool dok = !is_date_ok(date, month);
|
||||
const bool sreg = !isreg;
|
||||
const bool rs8 = _reg->get("S8") != trueatt;
|
||||
const bool cmt = !_cur->is_first_match(LF_RMOVIVA);
|
||||
const bool dok = !is_date_ok(date, month);
|
||||
const bool sreg = !isreg;
|
||||
const bool rs8 = _reg->get("S8") != trueatt;
|
||||
const bool cmt = !_cur->is_first_match(LF_RMOVIVA);
|
||||
const bool sosp_imp = _reg->get_bool("B1");
|
||||
const TRectype& rcs = _cur->curr(LF_CAUSALI);
|
||||
const bool fattrit = rcs.get_bool("RITFATT");
|
||||
@ -558,7 +558,10 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
// autofatture art. 17 per non residenti, con trattamento
|
||||
// speciale in liquidazione annuale
|
||||
bool autodafe = (tipodoc == "AF" && tipocr == 4);
|
||||
|
||||
// indica acquisti per rivendita; viene messo in B4 di PIM per
|
||||
// indicare che e' soggetto al ricalcolo IVA (se voluto) in modo
|
||||
// da evitare di dover controllare mese e anno sul PIM
|
||||
bool was_riv = FALSE;
|
||||
/*
|
||||
* puo' capitare per motivi brutalmente prassici
|
||||
* SENSU Sergio 1995, Guido
|
||||
@ -631,14 +634,12 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
// Altre cose di cui tener conto
|
||||
if (tipomov == acquisto && (tipocr == 1 || tipocr == 5))
|
||||
/*
|
||||
* Acquisto beni per rivendita: sono comunque sommati, ma
|
||||
* vengono considerati in ventilazione solo se l'apposito
|
||||
* parametro ditta e' settato, piu' altre condizioni (vedi
|
||||
* recalc_ventilation() for spulcing)
|
||||
* Acquisto beni per rivendita
|
||||
*/
|
||||
{
|
||||
acq_riv += imponibile;
|
||||
acq_riv_iva += imposta;
|
||||
was_riv = TRUE;
|
||||
}
|
||||
|
||||
else if (tipomov == acquisto && tipocr == 2 && tipodet == 0)
|
||||
@ -685,6 +686,10 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
|
||||
// operazioni per calcolo rimborso infracazzuale
|
||||
// Scudler 1995
|
||||
// La breve estate vissuta dal metodo del 51% renderebbe
|
||||
// ora superflua la tabella rimborsi, ma, come diceva
|
||||
// Garcia Lorca, me ne sbatto il culo e se non ti piace
|
||||
// vatti a far chiavare da un coyote
|
||||
if (ivarimb)
|
||||
{
|
||||
bool ok = _isagricolo ? tipoagr == 2 : FALSE;
|
||||
@ -730,7 +735,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
}
|
||||
// se e' il caso sommare esenti per rimborso
|
||||
if (isrimbinfr)
|
||||
nonimp += imponibile;
|
||||
esni_rimb += imponibile;
|
||||
}
|
||||
else if (tipoes_a == 14)
|
||||
esenti_b14 += imponibile;
|
||||
@ -738,7 +743,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
|
||||
// non imponibili per rimborso
|
||||
if (tipoiva == "NI" && tipomov == vendita && isrimbinfr)
|
||||
nonimp += imponibile;
|
||||
esni_rimb += imponibile;
|
||||
|
||||
// bolle doganali
|
||||
if (tipodoc == "BD")
|
||||
@ -865,6 +870,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
real imp = _pim->get_real("R0"); // imponibile
|
||||
real ivp = _pim->get_real("R1"); // IVA su imp.
|
||||
real lor = _pim->get_real("R2"); // lordo
|
||||
|
||||
/*
|
||||
* le maledette fatture con scontrino sono sul registro dei
|
||||
* corrispettivi, ma vanno riportate nelle vendite in stampa;
|
||||
@ -874,6 +880,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
*/
|
||||
real ifs = _pim->get_real("R5"); // imponibile fatture con scontrino
|
||||
real vfs = _pim->get_real("R6"); // IVA fatt. con scontrino
|
||||
|
||||
/*
|
||||
* le maledette autofatture non residenti art. 17
|
||||
* vedi al calcolo if (autodafe) si tengono da parte
|
||||
@ -891,7 +898,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
real bdi = _pim->get_real("R9");
|
||||
real bdv = _pim->get_real("R10");
|
||||
|
||||
/* i falsi corrispettivi */
|
||||
/* i luridi falsi corrispettivi */
|
||||
real fci = _pim->get_real("R13");
|
||||
real fcv = _pim->get_real("R14");
|
||||
|
||||
@ -900,8 +907,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
real rti(fr.get(0));
|
||||
real rtv(fr.get(1));
|
||||
|
||||
/* le stramadonne delle cazzate di corrispettivi gia' scorporati
|
||||
che servono all'Enrica e non a me */
|
||||
/* la stramadonna dei corrispettivi gia' scorporati */
|
||||
TToken_string cs(_pim->get("S2"));
|
||||
real csi(cs.get(0));
|
||||
real csv(cs.get(1));
|
||||
@ -946,7 +952,8 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
* non sono corrispettivi. Ci si potrebbe domandare
|
||||
* se gli altri corrispettivi sono corrispettivi o
|
||||
* no; ebbene, gli altri corrispettivi risultano
|
||||
* fortunatamente essere corrispettivi.
|
||||
* fortunatamente essere corrispettivi, a meno di
|
||||
* indicazioni contrarie.
|
||||
*/
|
||||
if (tipodoc == "CR" || tipodoc == "RF" || tipodoc == "SC")
|
||||
{
|
||||
@ -980,11 +987,6 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
vendite += rr;
|
||||
add_vendite(month, reg, tipodet, rr);
|
||||
}
|
||||
if (liq)
|
||||
{
|
||||
// vendite -= imponibile;
|
||||
// vendite_iva -= imposta;
|
||||
}
|
||||
imp -= imponibile;
|
||||
ivp -= imposta;
|
||||
lor -= imponibile + imposta;
|
||||
@ -1000,12 +1002,12 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
vendite += imponibile;
|
||||
vendite_iva += imposta;
|
||||
}
|
||||
imp += imponibile;
|
||||
ivp += imposta;
|
||||
fci += imponibile;
|
||||
fcv += imposta;
|
||||
csi += imponibile;
|
||||
csv += imposta;
|
||||
imp += imponibile;
|
||||
ivp += imposta;
|
||||
fci += imponibile;
|
||||
fcv += imposta;
|
||||
csi += imponibile;
|
||||
csv += imposta;
|
||||
_pim->put("I0",NETTO);
|
||||
}
|
||||
} // if corrisp
|
||||
@ -1052,12 +1054,13 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
_pim->put("R14",fcv);
|
||||
}
|
||||
|
||||
// questi servono per i ricalcoli altrui (classify_pim)
|
||||
// questi servono per i ricalcoli altrui (classify_pim) o
|
||||
// per trucchetti di ricalcolo successivi
|
||||
_pim->put("R11",fsi);
|
||||
_pim->put("R12",fsv);
|
||||
_pim->put("I1", (long)tipomov);
|
||||
_pim->put("B3", ivarimb ? "X" : "");
|
||||
_pim->put("B4", _isricacq ? "X" : "");
|
||||
_pim->put("B4", _isricacq && was_riv? "X" : "");
|
||||
_pim->put("S5", tipoiva);
|
||||
|
||||
// fatture in ritardo
|
||||
@ -1065,16 +1068,52 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
fr.add(rtv.string(), 1);
|
||||
_pim->put("S1",fr);
|
||||
|
||||
// corrispettivi gia' scorporati
|
||||
// corrispettivi gia' scorporati; anche questi servono per
|
||||
// non cannare la stampa dei registri
|
||||
cs.add(csi.string(), 0);
|
||||
cs.add(csv.string(), 0);
|
||||
cs.add(csv.string(), 1);
|
||||
_pim->put("S2",cs);
|
||||
_pim->rewrite();
|
||||
}
|
||||
while (_cur->next_match(LF_RMOVIVA));
|
||||
}
|
||||
|
||||
// calcolati tutti i movimenti e aggiornati i pim
|
||||
} // fine calcolo progressivi IVA
|
||||
|
||||
/*
|
||||
* calcolati tutti i movimenti e aggiornati i pim
|
||||
* se necessario risistema le imposte acquisti beni
|
||||
* per rivendita
|
||||
*/
|
||||
|
||||
if (_isricacq) // flag settato parametri studio
|
||||
{
|
||||
for (_pim->first(); !_pim->eof(); _pim->next())
|
||||
{
|
||||
// this is much furber than doing all of the checks
|
||||
if (_pim->get_bool("B4"))
|
||||
{
|
||||
// ricalcola l'imposta a partire dal codice IVA
|
||||
look_iva(*_pim_codiva);
|
||||
real old_iva = _pim->get_real("R1");
|
||||
real perc = _iva->get_real("R0");
|
||||
|
||||
real new_iva = (_pim->get_real("R0") * perc)/CENTO;
|
||||
new_iva.round(ROUND_LIRA);
|
||||
|
||||
if (new_iva != old_iva)
|
||||
{
|
||||
// ricalcola: acquisti_iva, acq_riv_iva
|
||||
acquisti_iva -= old_iva;
|
||||
acquisti_iva += new_iva;
|
||||
acq_riv_iva -= old_iva;
|
||||
acq_riv_iva += new_iva;
|
||||
_pim->put("R1", new_iva);
|
||||
// resetta in modo da non vederlo il mese dopo
|
||||
_pim->put("B4", "");
|
||||
_pim->rewrite();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* calcola il lercio prorata
|
||||
@ -1174,7 +1213,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
_pum->put("R5", esenti_b2);
|
||||
_pum->put("R6", esenti_b3);
|
||||
_pum->put("R7", esenti_b14);
|
||||
_pum->put("R12", nonimp);
|
||||
_pum->put("R12", esni_rimb);
|
||||
_pam->put("R0", acquisti);
|
||||
_pam->put("R1", vendite);
|
||||
_pam->put("R6", assp_imp);
|
||||
|
@ -11,6 +11,7 @@
|
||||
// flags per annuale
|
||||
#define IS_PRORATA 0x0001
|
||||
|
||||
|
||||
// minchietta per prospetto ventilazione
|
||||
class _vDesc : public TObject
|
||||
{
|
||||
@ -45,6 +46,9 @@ void TLiquidazione_app::set_page(int file, int cnt)
|
||||
case PIM_ROW:
|
||||
set_pim(d);
|
||||
break;
|
||||
case PIM_HEAD:
|
||||
set_pim_head();
|
||||
break;
|
||||
case MISC_LIQ:
|
||||
set_pumpam(d);
|
||||
break;
|
||||
@ -362,10 +366,17 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt)
|
||||
|
||||
// descrittore riga autodafe'
|
||||
_DescrItem* ads = NULL;
|
||||
// questa cazzata serve per far apparire l'intestazione delle colonne
|
||||
// anche se le colonne non ci sono; in tal modo si ottiene una peggior
|
||||
// chiarezza, una peggiore efficienza, una gran rottura di coglioni,
|
||||
// ma risulta identico al dio Sistema.
|
||||
_DescrItem* hea = new _DescrItem(PIM_HEAD);
|
||||
_descr_arr.add(hea);
|
||||
|
||||
while ((tmpatt = atts.get()) != NULL)
|
||||
{
|
||||
TString att(tmpatt);
|
||||
TString att(tmpatt);
|
||||
|
||||
for (_pim->first(); !_pim->eof(); _pim->next())
|
||||
{
|
||||
_DescrItem* d = NULL;
|
||||
@ -981,6 +992,15 @@ void TLiquidazione_app::set_plafond(_DescrItem& d)
|
||||
set_auto_ff();
|
||||
}
|
||||
|
||||
void TLiquidazione_app::set_pim_head()
|
||||
{
|
||||
set_bookmark("Riepilogo progressivi", _att_bookmark);
|
||||
set_row(1," Cod.@41gVENDITE@71gCORRISPETTIVI@106gACQUISTI");
|
||||
set_row(2," IVA Descrizione@30gImponibile@49gImposta@63gImponibile"
|
||||
"@82gImposta@96gImponibile@115gImposta");
|
||||
set_row(3,"");
|
||||
}
|
||||
|
||||
void TLiquidazione_app::set_pim(_DescrItem& d)
|
||||
{
|
||||
int rw = 1;
|
||||
@ -994,16 +1014,10 @@ void TLiquidazione_app::set_pim(_DescrItem& d)
|
||||
d._s2 = _iva->get("S0");
|
||||
}
|
||||
|
||||
if (d._f0) // e' il primo
|
||||
{
|
||||
// intestazioncina
|
||||
set_bookmark("Riepilogo progressivi", _att_bookmark);
|
||||
|
||||
set_row(rw++," Cod.@41gVENDITE@71gCORRISPETTIVI@106gACQUISTI");
|
||||
set_row(rw++," IVA Descrizione@30gImponibile@49gImposta@63gImponibile"
|
||||
"@82gImposta@96gImponibile@115gImposta");
|
||||
set_row(rw++,"");
|
||||
}
|
||||
if (d._f0) // e' il primo: non fa piu' nulla perche' l'intestazione
|
||||
// viene fatta comunque da set_pim_head
|
||||
{}
|
||||
|
||||
set_row(rw++,"%4s %-20s@25g%r@41g%r@58g%r@74g%r@91g%r@107g%r",
|
||||
(const char*)d._s1,
|
||||
(const char*)d._s2,
|
||||
@ -1061,13 +1075,6 @@ void TLiquidazione_app::set_plm(_DescrItem& d)
|
||||
&acq_pint_iva);
|
||||
}
|
||||
|
||||
// real iva74ter(d._s2);
|
||||
// if (!iva74ter.is_zero())
|
||||
// {
|
||||
// set_row(rw++, "Iva dovuta - 74ter@41g%r", &iva74ter);
|
||||
// d._r1 += iva74ter;
|
||||
// }
|
||||
|
||||
real tot1 = d._r7 + d._r4 + d._r9 + acq_pint;
|
||||
real tot2 = d._r8 + d._r5 + d._r10 + acq_pint_iva;
|
||||
|
||||
@ -1202,11 +1209,11 @@ void TLiquidazione_app::set_pumpam(_DescrItem& d)
|
||||
"@77gimposta@91gdetrazione");
|
||||
set_row(4,"");
|
||||
}
|
||||
else if (!d._f1)
|
||||
else /* if (!d._f1) */
|
||||
set_row(1,"");
|
||||
|
||||
// form feed
|
||||
if (printed || !d._f1) set_auto_ff(TRUE);
|
||||
/* if (printed || !d._f1) */ set_auto_ff(TRUE);
|
||||
}
|
||||
|
||||
void TLiquidazione_app::set_grand(_DescrItem& d)
|
||||
@ -1344,11 +1351,12 @@ void TLiquidazione_app::set_grand(_DescrItem& d)
|
||||
|
||||
if (di._flags == RIMBORSO)
|
||||
{
|
||||
set_bookmark("Prospetto di rimborso", _firm_bookmark);
|
||||
|
||||
set_print_zero(TRUE);
|
||||
set_row(rw++,"");
|
||||
set_row(rw++,"");
|
||||
|
||||
set_bookmark("Prospetto di rimborso", _firm_bookmark);
|
||||
|
||||
set_row(rw++, " PROSPETTO DI RIMBORSO");
|
||||
set_row(rw++,"");
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user