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;
|
TDate printdate;
|
||||||
TString filename;
|
TString filename;
|
||||||
long ditta;
|
long ditta;
|
||||||
|
bool nocalc = FALSE;
|
||||||
|
|
||||||
_prind = NULL;
|
_prind = NULL;
|
||||||
|
|
||||||
@ -83,9 +84,15 @@ bool TLiquidazione_app::user_create()
|
|||||||
char rcl = *(subj.get(3));
|
char rcl = *(subj.get(3));
|
||||||
_recalc_only = rcl == 'C';
|
_recalc_only = rcl == 'C';
|
||||||
_is_visliq = rcl == 'V';
|
_is_visliq = rcl == 'V';
|
||||||
_isregis = (rcl == 'l' || rcl == 'L'); // stampa per registri
|
// S/s = stampa senza ricalcolo (minuscolo = definitivo)
|
||||||
// TBI usare S s per stampa senza ricalcolo
|
// L/l = stampa con ricalcolo se necessario (minuscolo = definitivo)
|
||||||
_isfinal = rcl == 'l'; // se l 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);
|
printdate = subj.get(4);
|
||||||
filename = subj.get(5);
|
filename = subj.get(5);
|
||||||
is_header = subj.items() == 6;
|
is_header = subj.items() == 6;
|
||||||
@ -208,10 +215,11 @@ bool TLiquidazione_app::user_create()
|
|||||||
|
|
||||||
// calcola liquidazione
|
// calcola liquidazione
|
||||||
printer().setdate(printdate);
|
printer().setdate(printdate);
|
||||||
_recalc = needed;
|
_recalc = nocalc ? never : needed;
|
||||||
TApplication::set_firm(ditta);
|
TApplication::set_firm(ditta);
|
||||||
|
|
||||||
if (!look_lia()) { end_wait(); return FALSE; }
|
if (!look_lia())
|
||||||
|
{ end_wait(); return FALSE; }
|
||||||
|
|
||||||
_nditte->zero();
|
_nditte->zero();
|
||||||
_nditte_r->put("CODDITTA", ditta);
|
_nditte_r->put("CODDITTA", ditta);
|
||||||
@ -663,7 +671,20 @@ bool TLiquidazione_app::set_liquidazione()
|
|||||||
int cg4300(int argc, char* argv[])
|
int cg4300(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
TLiquidazione_app main_app;
|
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;
|
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 cmt = !_cur->is_first_match(LF_RMOVIVA);
|
||||||
const bool sosp_imp = _reg->get_bool("B1");
|
const bool sosp_imp = _reg->get_bool("B1");
|
||||||
const TRectype& rcs = _cur->curr(LF_CAUSALI);
|
const TRectype& rcs = _cur->curr(LF_CAUSALI);
|
||||||
|
const bool fattrit = rcs.get_bool("RITFATT");
|
||||||
|
|
||||||
if (dok || sreg || rs8 || cmt) continue;
|
if (dok || sreg || rs8 || cmt) continue;
|
||||||
|
|
||||||
@ -434,13 +435,6 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
tipodoc == "IN" || tipodoc == "PG")
|
tipodoc == "IN" || tipodoc == "PG")
|
||||||
continue;
|
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
|
* 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 asimp_iva = 0.0; // imposta acquisti sosp. imposta
|
||||||
real vsimp_imp = 0.0; // imponibile vendite sosp. imposta
|
real vsimp_imp = 0.0; // imponibile vendite sosp. imposta
|
||||||
real vsimp_iva = 0.0; // imposta 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 codiva = _iva->get("CODTAB");
|
||||||
TString tipoiva = _iva->get("S1");
|
TString tipoiva = _iva->get("S1");
|
||||||
@ -507,7 +503,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
* In liq. annuale si totalizzano
|
* In liq. annuale si totalizzano
|
||||||
* solo le stranezze che seguono
|
* solo le stranezze che seguono
|
||||||
*/
|
*/
|
||||||
if (month == 13)
|
if (_month == 13)
|
||||||
{
|
{
|
||||||
// si contano soltanto le vendite.
|
// si contano soltanto le vendite.
|
||||||
bool okc = tipomov == vendita;
|
bool okc = tipomov == vendita;
|
||||||
@ -516,7 +512,11 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
// oppure ...
|
// oppure ...
|
||||||
bool cond2 = (rcs.get_bool("AUTOFATT") && tipoiva == "NS" && tipodoc != "AF" &&
|
bool cond2 = (rcs.get_bool("AUTOFATT") && tipoiva == "NS" && tipodoc != "AF" &&
|
||||||
rcs.get_bool("INTRACOM") && rcs.get_bool("VALINTRA"));
|
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;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -525,15 +525,20 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
{
|
{
|
||||||
if (tipomov == vendita)
|
if (tipomov == vendita)
|
||||||
{
|
{
|
||||||
vsimp_imp = imponibile;
|
vsimp_imp = imponibile;
|
||||||
vsimp_iva = imposta;
|
vsimp_iva = imposta;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
asimp_imp = imponibile;
|
asimp_imp = imponibile;
|
||||||
asimp_iva = imposta;
|
asimp_iva = imposta;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (fattrit && _month != 13)
|
||||||
|
{
|
||||||
|
rit_imp = imponibile;
|
||||||
|
rit_iva = imposta;
|
||||||
|
}
|
||||||
else // normale
|
else // normale
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -778,6 +783,14 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
real fci = _pim_r->get_real("R13");
|
real fci = _pim_r->get_real("R13");
|
||||||
real fcv = _pim_r->get_real("R14");
|
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)
|
if (tipomov == vendita)
|
||||||
{
|
{
|
||||||
fsi += vsimp_imp;
|
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("B3", ivarimb ? "X" : "");
|
||||||
_pim_r->put("B4", _isricacq ? "X" : "");
|
_pim_r->put("B4", _isricacq ? "X" : "");
|
||||||
_pim_r->put("S5", tipoiva);
|
_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();
|
_pim->rewrite();
|
||||||
}
|
}
|
||||||
while (_cur->next_match(LF_RMOVIVA));
|
while (_cur->next_match(LF_RMOVIVA));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user