Nuove cazzopzioni per ricalcolo da stampa registri, perche' sia proprio
uguale identico preciso al frigorifero di merda anche negli errori git-svn-id: svn://10.65.10.50/trunk@1043 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
0e94893908
commit
c0c5742d3a
@ -48,6 +48,7 @@ bool TLiquidazione_app::user_create()
|
||||
TDate printdate;
|
||||
TString filename;
|
||||
long ditta;
|
||||
bool nocalc = FALSE;
|
||||
|
||||
_prind = NULL;
|
||||
|
||||
@ -83,9 +84,15 @@ bool TLiquidazione_app::user_create()
|
||||
char rcl = *(subj.get(3));
|
||||
_recalc_only = rcl == 'C';
|
||||
_is_visliq = rcl == 'V';
|
||||
_isregis = (rcl == 'l' || rcl == 'L'); // stampa per registri
|
||||
// TBI usare S s per stampa senza ricalcolo
|
||||
_isfinal = rcl == 'l'; // se l minuscolo, definitivo
|
||||
// S/s = stampa senza ricalcolo (minuscolo = definitivo)
|
||||
// L/l = stampa con ricalcolo se necessario (minuscolo = definitivo)
|
||||
// C = solo ricalcolo
|
||||
// V = stampa ed ev. ricalcolo per visualizzazione
|
||||
// s o l minuscoli = registro bollato (setta B1)
|
||||
_isregis = (rcl == 'l' || rcl == 'L' ||
|
||||
rcl == 'S' || rcl == 's'); // stampa per registri
|
||||
_isfinal = rcl == 'l' || rcl == 's'; // se l minuscolo, definitivo
|
||||
nocalc = rcl == 'S' || rcl == 's';
|
||||
printdate = subj.get(4);
|
||||
filename = subj.get(5);
|
||||
is_header = subj.items() == 6;
|
||||
@ -208,10 +215,11 @@ bool TLiquidazione_app::user_create()
|
||||
|
||||
// calcola liquidazione
|
||||
printer().setdate(printdate);
|
||||
_recalc = needed;
|
||||
_recalc = nocalc ? never : needed;
|
||||
TApplication::set_firm(ditta);
|
||||
|
||||
if (!look_lia()) { end_wait(); return FALSE; }
|
||||
if (!look_lia())
|
||||
{ end_wait(); return FALSE; }
|
||||
|
||||
_nditte->zero();
|
||||
_nditte_r->put("CODDITTA", ditta);
|
||||
@ -663,7 +671,20 @@ bool TLiquidazione_app::set_liquidazione()
|
||||
int cg4300(int argc, char* argv[])
|
||||
{
|
||||
TLiquidazione_app main_app;
|
||||
main_app.run(argc, argv, "Liquidazione IVA");
|
||||
|
||||
TApplication::check_parameters(argc, argv);
|
||||
|
||||
const char* title = "Liquidazione IVA";
|
||||
|
||||
if (argc > 2)
|
||||
{
|
||||
if (strcmp(argv[2], "-S") == 0)
|
||||
title = "Stampa liquidazione";
|
||||
else if (strcmp(argv[2], "-C") == 0)
|
||||
title = "Ricalcolo corrispettivi";
|
||||
}
|
||||
|
||||
main_app.run(argc, argv, title);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -423,6 +423,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
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");
|
||||
|
||||
if (dok || sreg || rs8 || cmt) continue;
|
||||
|
||||
@ -434,13 +435,6 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
tipodoc == "IN" || tipodoc == "PG")
|
||||
continue;
|
||||
|
||||
/*
|
||||
* Fatture in ritardo vengono considerate solo in dichiarazione
|
||||
* annuale
|
||||
*/
|
||||
if (_month != 13 && rcs.get_bool("RITFATT"))
|
||||
continue;
|
||||
|
||||
/*
|
||||
* check date: se si calcola l'acconto, solo da 1/12 a 20/12
|
||||
*/
|
||||
@ -461,6 +455,8 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
real asimp_iva = 0.0; // imposta acquisti sosp. imposta
|
||||
real vsimp_imp = 0.0; // imponibile vendite sosp. imposta
|
||||
real vsimp_iva = 0.0; // imposta vendite sosp. imposta
|
||||
real rit_imp = 0.0; // imponibile fatture in ritardo
|
||||
real rit_iva = 0.0; // IVA fatture in ritardo
|
||||
|
||||
TString codiva = _iva->get("CODTAB");
|
||||
TString tipoiva = _iva->get("S1");
|
||||
@ -507,7 +503,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
* In liq. annuale si totalizzano
|
||||
* solo le stranezze che seguono
|
||||
*/
|
||||
if (month == 13)
|
||||
if (_month == 13)
|
||||
{
|
||||
// si contano soltanto le vendite.
|
||||
bool okc = tipomov == vendita;
|
||||
@ -516,7 +512,11 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
// oppure ...
|
||||
bool cond2 = (rcs.get_bool("AUTOFATT") && tipoiva == "NS" && tipodoc != "AF" &&
|
||||
rcs.get_bool("INTRACOM") && rcs.get_bool("VALINTRA"));
|
||||
if (!(okc && (cond1 || cond2)))
|
||||
/*
|
||||
* Fatture in ritardo vengono considerate solo in dichiarazione
|
||||
* annuale, ma vanno comunque sommate per i porci registri
|
||||
*/
|
||||
if (!(okc && (cond1 || cond2)) && !fattrit)
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -525,15 +525,20 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
{
|
||||
if (tipomov == vendita)
|
||||
{
|
||||
vsimp_imp = imponibile;
|
||||
vsimp_iva = imposta;
|
||||
vsimp_imp = imponibile;
|
||||
vsimp_iva = imposta;
|
||||
}
|
||||
else
|
||||
{
|
||||
asimp_imp = imponibile;
|
||||
asimp_iva = imposta;
|
||||
asimp_imp = imponibile;
|
||||
asimp_iva = imposta;
|
||||
}
|
||||
}
|
||||
else if (fattrit && _month != 13)
|
||||
{
|
||||
rit_imp = imponibile;
|
||||
rit_iva = imposta;
|
||||
}
|
||||
else // normale
|
||||
{
|
||||
|
||||
@ -778,6 +783,14 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
real fci = _pim_r->get_real("R13");
|
||||
real fcv = _pim_r->get_real("R14");
|
||||
|
||||
/* le porche fatture in ritardo */
|
||||
TToken_string fr(_pim_r->get("S1"));
|
||||
real rti(fr.get(0));
|
||||
real rtv(fr.get(1));
|
||||
|
||||
rti += rit_imp;
|
||||
rtv += rit_iva;
|
||||
|
||||
if (tipomov == vendita)
|
||||
{
|
||||
fsi += vsimp_imp;
|
||||
@ -928,6 +941,12 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
_pim_r->put("B3", ivarimb ? "X" : "");
|
||||
_pim_r->put("B4", _isricacq ? "X" : "");
|
||||
_pim_r->put("S5", tipoiva);
|
||||
|
||||
// fatture in ritardo
|
||||
fr.add(rti.string(), 0);
|
||||
fr.add(rtv.string(), 1);
|
||||
_pim_r->put("S1",fr);
|
||||
|
||||
_pim->rewrite();
|
||||
}
|
||||
while (_cur->next_match(LF_RMOVIVA));
|
||||
|
Loading…
x
Reference in New Issue
Block a user