Rifatte le tabelle e documentato il necessario

Introdotte tabelle PIM PUM PAM POM LAM


git-svn-id: svn://10.65.10.50/trunk@983 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
villa 1995-02-09 11:33:29 +00:00
parent fd85b8a403
commit e74b2efa88
9 changed files with 471 additions and 382 deletions

View File

@ -99,10 +99,13 @@ bool TLiquidazione_app::user_create()
_cur = new TCursor(_rel, "", 2); _cur = new TCursor(_rel, "", 2);
_pim = new TTable("PIM"); _pim = new TTable("PIM");
_pum = new TTable("PUM");
_pam = new TTable("PAM");
_pom = new TTable("POM");
_ppa = new TTable("PPA"); _ppa = new TTable("PPA");
_plm = new TTable("PLM"); _plm = new TTable("PLM");
_ptm = new TTable("PTM");
_lim = new TTable("LIM"); _lim = new TTable("LIM");
_lam = new TTable("LAM");
_pla = new TTable("PLA"); _pla = new TTable("PLA");
_reg = new TTable("REG"); _reg = new TTable("REG");
_iva = new TTable("%IVA"); _iva = new TTable("%IVA");
@ -115,10 +118,13 @@ bool TLiquidazione_app::user_create()
_pim_r = &(_pim->curr()); _pim_r = &(_pim->curr());
_plm_r = &(_plm->curr()); _plm_r = &(_plm->curr());
_ptm_r = &(_ptm->curr()); _pum_r = &(_pum->curr());
_pam_r = &(_pam->curr());
_pom_r = &(_pom->curr());
_iva_r = &(_iva->curr()); _iva_r = &(_iva->curr());
_del_r = &(_del->curr()); _del_r = &(_del->curr());
_lim_r = &(_lim->curr()); _lim_r = &(_lim->curr());
_lam_r = &(_lam->curr());
_pla_r = &(_pla->curr()); _pla_r = &(_pla->curr());
_ppa_r = &(_ppa->curr()); _ppa_r = &(_ppa->curr());
_rmb_r = &(_rmb->curr()); _rmb_r = &(_rmb->curr());
@ -138,6 +144,15 @@ bool TLiquidazione_app::user_create()
_pim_tipocr = new TRecfield(*_pim_r,"CODTAB",15,15); _pim_tipocr = new TRecfield(*_pim_r,"CODTAB",15,15);
_pim_codiva = new TRecfield(*_pim_r,"CODTAB",16,19); _pim_codiva = new TRecfield(*_pim_r,"CODTAB",16,19);
_pim_tipodet = new TRecfield(*_pim_r,"CODTAB",20,20); _pim_tipodet = new TRecfield(*_pim_r,"CODTAB",20,20);
_pum_anno = new TRecfield(*_pum_r,"CODTAB",0,3);
_pum_codatt = new TRecfield(*_pum_r,"CODTAB",4,9);
_pum_mese = new TRecfield(*_pum_r,"CODTAB",10,11);
_pam_anno = new TRecfield(*_pam_r,"CODTAB",0,3);
_pam_codatt = new TRecfield(*_pam_r,"CODTAB",4,9);
_pam_mese = new TRecfield(*_pam_r,"CODTAB",10,11);
_pom_anno = new TRecfield(*_pom_r,"CODTAB",0,3);
_pom_codatt = new TRecfield(*_pom_r,"CODTAB",4,9);
_pom_mese = new TRecfield(*_pom_r,"CODTAB",10,11);
_ppa_year = new TRecfield(*_ppa_r,"CODTAB",0,3); _ppa_year = new TRecfield(*_ppa_r,"CODTAB",0,3);
_ppa_codatt = new TRecfield(*_ppa_r,"CODTAB",4,9); _ppa_codatt = new TRecfield(*_ppa_r,"CODTAB",4,9);
_ppa_month = new TRecfield(*_ppa_r,"CODTAB",10,11); _ppa_month = new TRecfield(*_ppa_r,"CODTAB",10,11);
@ -145,9 +160,6 @@ bool TLiquidazione_app::user_create()
_plm_anno = new TRecfield(*_plm_r,"CODTAB",0,3); _plm_anno = new TRecfield(*_plm_r,"CODTAB",0,3);
_plm_codatt = new TRecfield(*_plm_r,"CODTAB",4,9); _plm_codatt = new TRecfield(*_plm_r,"CODTAB",4,9);
_plm_mese = new TRecfield(*_plm_r,"CODTAB",10,11); _plm_mese = new TRecfield(*_plm_r,"CODTAB",10,11);
_ptm_anno = new TRecfield(*_ptm_r,"CODTAB",0,3);
_ptm_codatt = new TRecfield(*_ptm_r,"CODTAB",4,9);
_ptm_mese = new TRecfield(*_ptm_r,"CODTAB",10,11);
_pla_anno = new TRecfield(*_pla_r,"CODTAB",0,3); _pla_anno = new TRecfield(*_pla_r,"CODTAB",0,3);
_pla_codatt = new TRecfield(*_pla_r,"CODTAB",4,9); _pla_codatt = new TRecfield(*_pla_r,"CODTAB",4,9);
_del_ditta = new TRecfield(*_del_r,"CODTAB",0,4); _del_ditta = new TRecfield(*_del_r,"CODTAB",0,4);
@ -156,6 +168,8 @@ bool TLiquidazione_app::user_create()
_del_tipo = new TRecfield(*_del_r,"CODTAB",11,11); _del_tipo = new TRecfield(*_del_r,"CODTAB",11,11);
_lim_anno = new TRecfield(*_lim_r,"CODTAB",0,3); _lim_anno = new TRecfield(*_lim_r,"CODTAB",0,3);
_lim_mese = new TRecfield(*_lim_r,"CODTAB",4,6); _lim_mese = new TRecfield(*_lim_r,"CODTAB",4,6);
_lam_anno = new TRecfield(*_lam_r,"CODTAB",0,3);
_lam_mese = new TRecfield(*_lam_r,"CODTAB",4,6);
_rmb_anno = new TRecfield(*_rmb_r,"CODTAB",0,3); _rmb_anno = new TRecfield(*_rmb_r,"CODTAB",0,3);
_rmb_mese = new TRecfield(*_rmb_r,"CODTAB",4,6); _rmb_mese = new TRecfield(*_rmb_r,"CODTAB",4,6);
_rmb_codiva = new TRecfield(*_rmb_r,"CODTAB",7,10); _rmb_codiva = new TRecfield(*_rmb_r,"CODTAB",7,10);
@ -234,11 +248,19 @@ bool TLiquidazione_app::user_destroy()
delete _plm_anno; delete _plm_anno;
delete _plm_codatt; delete _plm_codatt;
delete _plm_mese; delete _plm_mese;
delete _ptm_anno; delete _pum_anno;
delete _ptm_codatt; delete _pum_codatt;
delete _ptm_mese; delete _pum_mese;
delete _pam_codatt;
delete _pam_anno;
delete _pam_mese;
delete _pom_codatt;
delete _pom_anno;
delete _pom_mese;
delete _lim_anno; delete _lim_anno;
delete _lim_mese; delete _lim_mese;
delete _lam_anno;
delete _lam_mese;
delete _pla_anno; delete _pla_anno;
delete _pla_codatt; delete _pla_codatt;
delete _pim_codatt; delete _pim_codatt;
@ -248,10 +270,13 @@ bool TLiquidazione_app::user_destroy()
delete _del_tipo; delete _del_tipo;
delete _pim; delete _pim;
delete _pum;
delete _pam;
delete _pom;
delete _ppa; delete _ppa;
delete _plm; delete _plm;
delete _ptm;
delete _lim; delete _lim;
delete _lam;
delete _pla; delete _pla;
delete _del; delete _del;

View File

@ -220,9 +220,12 @@ class TLiquidazione_app : public TPrint_application
TLocalisamfile* _rmoviva; TLocalisamfile* _rmoviva;
TTable* _pim; TTable* _pim;
TTable* _pum;
TTable* _pam;
TTable* _pom;
TTable* _plm; TTable* _plm;
TTable* _ptm;
TTable* _lim; TTable* _lim;
TTable* _lam;
TTable* _pla; TTable* _pla;
TTable* _ppa; TTable* _ppa;
TTable* _reg; TTable* _reg;
@ -236,13 +239,16 @@ class TLiquidazione_app : public TPrint_application
TRectype* _rmoviva_r; TRectype* _rmoviva_r;
TRectype* _iva_r; TRectype* _iva_r;
TRectype* _pim_r; TRectype* _pim_r;
TRectype* _pum_r;
TRectype* _pam_r;
TRectype* _pom_r;
TRectype* _reg_r; TRectype* _reg_r;
TRectype* _nditte_r; TRectype* _nditte_r;
TRectype* _pla_r; TRectype* _pla_r;
TRectype* _plm_r; TRectype* _plm_r;
TRectype* _ptm_r;
TRectype* _ppa_r; TRectype* _ppa_r;
TRectype* _lim_r; TRectype* _lim_r;
TRectype* _lam_r;
TRectype* _del_r; TRectype* _del_r;
TRectype* _att_r; TRectype* _att_r;
TRectype* _rmb_r; TRectype* _rmb_r;
@ -255,6 +261,15 @@ class TLiquidazione_app : public TPrint_application
TRecfield* _pim_tipocr; TRecfield* _pim_tipocr;
TRecfield* _pim_codiva; TRecfield* _pim_codiva;
TRecfield* _pim_tipodet; TRecfield* _pim_tipodet;
TRecfield* _pum_anno;
TRecfield* _pum_codatt;
TRecfield* _pum_mese;
TRecfield* _pam_anno;
TRecfield* _pam_codatt;
TRecfield* _pam_mese;
TRecfield* _pom_anno;
TRecfield* _pom_codatt;
TRecfield* _pom_mese;
TRecfield* _ppa_year; TRecfield* _ppa_year;
TRecfield* _ppa_codatt; TRecfield* _ppa_codatt;
TRecfield* _ppa_month; TRecfield* _ppa_month;
@ -262,9 +277,6 @@ class TLiquidazione_app : public TPrint_application
TRecfield* _plm_anno; TRecfield* _plm_anno;
TRecfield* _plm_codatt; TRecfield* _plm_codatt;
TRecfield* _plm_mese; TRecfield* _plm_mese;
TRecfield* _ptm_anno;
TRecfield* _ptm_codatt;
TRecfield* _ptm_mese;
TRecfield* _pla_anno; TRecfield* _pla_anno;
TRecfield* _pla_codatt; TRecfield* _pla_codatt;
TRecfield* _del_ditta; TRecfield* _del_ditta;
@ -273,6 +285,8 @@ class TLiquidazione_app : public TPrint_application
TRecfield* _del_tipo; TRecfield* _del_tipo;
TRecfield* _lim_anno; TRecfield* _lim_anno;
TRecfield* _lim_mese; TRecfield* _lim_mese;
TRecfield* _lam_anno;
TRecfield* _lam_mese;
TRecfield* _rmb_anno; TRecfield* _rmb_anno;
TRecfield* _rmb_mese; TRecfield* _rmb_mese;
TRecfield* _rmb_codiva; TRecfield* _rmb_codiva;
@ -388,17 +402,20 @@ public:
void set_firm(_DescrItem& d); void set_firm(_DescrItem& d);
void set_att(_DescrItem& d); void set_att(_DescrItem& d);
void set_pim(_DescrItem& d); void set_pim(_DescrItem& d);
void set_pumpam(_DescrItem& d);
void set_plm(_DescrItem& d); void set_plm(_DescrItem& d);
void set_ptm(_DescrItem& d);
bool set_annual(_DescrItem& d); bool set_annual(_DescrItem& d);
void set_grand(_DescrItem& d); void set_grand(_DescrItem& d);
// cercapalle in tabelle con opzione di creazione se serve // cercapalle in tabelle con opzione di creazione se serve
bool look_pim(int m, const char* a, const char* r, const char* cr, bool look_pim(int m, const char* a, const char* r, const char* cr,
const char* i, int tipodet = 0, bool create = FALSE); const char* i, int tipodet = 0, bool create = FALSE);
bool look_pum(int m, const char* a, bool create = FALSE);
bool look_pam(int m, const char* a, bool create = FALSE);
bool look_pom(int m, const char* a, bool create = FALSE);
bool look_plm(int m, const char* a, bool create = FALSE); bool look_plm(int m, const char* a, bool create = FALSE);
bool look_ptm(int m, const char* a, bool create = FALSE);
bool look_lim(int m, bool create = FALSE); bool look_lim(int m, bool create = FALSE);
bool look_lam(int m, bool create = FALSE);
bool look_pla(const char* a, bool create = FALSE); bool look_pla(const char* a, bool create = FALSE);
bool look_ppa(int m, const char* a, int t, bool create = FALSE); bool look_ppa(int m, const char* a, int t, bool create = FALSE);
bool look_del(int month, int type, bool create = FALSE); bool look_del(int month, int type, bool create = FALSE);

View File

@ -900,62 +900,48 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
acquisti_iva = agr_3 - agr_4; acquisti_iva = agr_3 - agr_4;
} }
// COSA MI TOCCA FARE (per campare, of course) _plm->put("R0", vendite_iva);
// due numeri nello stesso campo ma e' sempre meglio _plm->put("R1", acquisti_iva);
// del TIPO RECORD _plm->put("R3", ult_detr);
TToken_string s(40);
_plm->put("R0", vendite_iva);
_plm->put("R1", acquisti_iva);
_plm->put("R3", ult_detr);
// probabilmente R4 serviva per il decalage e non si usera' // probabilmente R4 serviva per il decalage e non si usera'
_plm->put("R12", _prorata); // per comodita' in stampa _plm->put("R12", _prorata); // per comodita' in stampa
_plm->put("B0", "X"); // calcolato (invalidato dalla primanota) _plm->put("B0", "X"); // calcolato (invalidato dalla primanota)
_plm->put("S1", for_rimb.string()); _pom->put("R9", acq_ies);
_pom->put("R10", acq_ies_iva);
// si riempiano le stringhe di coppie di real _pum->put("R8", acq_pint);
s.add(acq_ies.string()); _pum->put("R9", acq_pint_iva);
s.add(acq_ies_iva.string()); _pam->put("R10", spgen);
_plm->put("S2", (const char*)s); _pam->put("R11", spgen_iva);
s = ""; _pom->put("R0", totintra);
s.add(acq_pint.string()); _pom->put("R1", nond19_imp);
s.add(acq_pint_iva.string()); _pom->put("R2", nond19_iva);
_plm->put("S3", (const char*)s); _pom->put("R3", ammort);
s = ""; _pom->put("R4", ammort_iva);
s.add(spgen.string()); _pom->put("R5", acq_riv);
s.add(spgen_iva.string()); _pom->put("R6", acq_riv_iva);
_plm->put("S4", (const char*)s); _pom->put("R7", leasing);
_plm->rewrite(); _pom->put("R8", leasing_iva);
_pum->put("R0", cess_amm);
_pum->put("R1", cess_amm_iva);
_pum->put("R2", ammort_6);
_pum->put("R3", ammort_6_iva);
_pum->put("R4", esenti_b1);
_pum->put("R5", esenti_b2);
_pum->put("R6", esenti_b3);
_pum->put("R7", esenti_b14);
_pam->put("R0", acquisti);
_pam->put("R1", vendite);
// salva gli altri totali para no ponernos locos despues _plm->rewrite();
look_ptm(month, codatt, TRUE); _pam->rewrite();
_ptm->put("R0", totintra); _pum->rewrite();
_ptm->put("R1", nond19_imp); _pom->rewrite();
_ptm->put("R2", nond19_iva);
_ptm->put("R3", ammort);
_ptm->put("R4", ammort_iva);
_ptm->put("R5", ammort_6);
_ptm->put("R6", acq_riv);
_ptm->put("R7", acq_riv_iva);
_ptm->put("R8", leasing);
_ptm->put("R9", leasing_iva);
_ptm->put("R10", cess_amm);
_ptm->put("R11", cess_amm_iva);
_ptm->put("R12", ammort_6_iva);
_ptm->put("R13", esenti_b1);
_ptm->put("R14", esenti_b2);
_ptm->put("S0", esenti_b3.string());
_ptm->put("S1", esenti_b14.string());
_ptm->put("S2", acquisti.string());
_ptm->put("S3", vendite.string());
_ptm->rewrite();
} }
void TLiquidazione_app::write_liq(int month, const char* codatts) void TLiquidazione_app::write_liq(int month, const char* codatts)
// Calcolo liq. mensili e liq. annuali // Calcolo liq. mensili e liq. annuali
{ {
TToken_string atts(codatts); TToken_string atts(codatts);
TToken_string tt(60);
const char* tmpatt; const char* tmpatt;
real risultato = 0.0; real risultato = 0.0;
@ -1015,22 +1001,22 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
{ {
if (attc == 0) if (attc == 0)
{ {
risultato = result_liq(12); risultato = result_liq(12);
deb_mens = _lim->get_real("R3"); deb_mens = _lim->get_real("R3");
detrazioni= _lim->get_real("R6"); detrazioni = _lim->get_real("R6");
perc_r = _lim->get_real("R4"); perc_r = _lim->get_real("R4");
cred_cost = _lim->get_real("R2"); cred_cost = _lim->get_real("R2");
rettifiche= _lim->get_real("R5"); rettifiche = _lim->get_real("R5");
rimborsi = _lim->get_real("R1"); rimborsi = _lim->get_real("R1");
// leggi anche tutti gli altri totali // leggi anche tutti gli altri totali
tt = _lim->get("S2"); acc_dec = _lim->get_real("R11");
iva_vend = tt.get(0); iva_acq = tt.get(1); res_cred = _lim->get_real("R12");
cred_prec = tt.get(2); debt_precd = tt.get(3); res_debt = _lim->get_real("R13");
iva_vend = _lam->get_real("R0");
res_debt = (const char*)_lim->get("S5"); iva_acq = _lam->get_real("R1");
res_cred = (const char*)_lim->get("S4"); cred_prec = _lam->get_real("R2");
acc_dec = (const char*)_lim->get("S3"); debt_precd = _lam->get_real("R3");
_year = format("%d", atoi(_year)+1); _year = format("%d", atoi(_year)+1);
} }
} }
else else
@ -1042,7 +1028,7 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
if (!is_month_ok(m, month)) if (!is_month_ok(m, month))
continue; continue;
look_plm(m, att); look_ptm(m,att); look_plm(m, att);
bool is_lim = look_lim(m); bool is_lim = look_lim(m);
// gia' conteggiato: prorata // gia' conteggiato: prorata
@ -1189,11 +1175,10 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
if (tipoatt == 1) // su PLA l'attivita' e' sempre 1 if (tipoatt == 1) // su PLA l'attivita' e' sempre 1
{ {
look_pla(att); look_pla(att);
TToken_string tt(_pla->get("S1")); real vf1 = _pla->get_real("R14");
real vf1(tt.get(0)); real vf2(_pla->get("S1"));
real vf2(tt.get(1)); real iaq = _pla->get_real("R11"); // IVA acquisti
real iaq(_pla->get("S2")); // IVA acquisti real ppg = _pla->get_real("R12"); // pro-rata pagato
real ppg(_pla->get("S3")); // pro-rata pagato
vol_aff_1 += vf1; vol_aff_1 += vf1;
vol_aff_2 += vf2; vol_aff_2 += vf2;
@ -1239,7 +1224,7 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
_lia->put("R2", vol_aff_1); _lia->put("R2", vol_aff_1);
_lia->put("R3", vol_aff_2); _lia->put("R3", vol_aff_2);
_lia->put("R4", acc_dec); _lia->put("R4", acc_dec);
_lia->put("R5", cred_cost); _lia->put("R5", cred_cost);
_lia->rewrite(); _lia->rewrite();
} }
@ -1252,8 +1237,9 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
// azzeriamo tutto (tranne r1, r5, s7) // azzeriamo tutto (tranne r1, r5, s7)
TString codtab = _lim->get("CODTAB"); TString codtab = _lim->get("CODTAB");
real r5(_lim->get("R5")), r1(_lim->get("R1")); real r5 = _lim->get("R5");
TString s7(_lim->get("S7")); real r1 = _lim->get("R1");
TString s7 = _lim->get("S7");
_lim->zero(); _lim->zero();
_lim->put("CODTAB", codtab); _lim->put("CODTAB", codtab);
@ -1306,7 +1292,7 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
real interesse = interesse_trimestrale(_month); real interesse = interesse_trimestrale(_month);
real ivi = risultato * (interesse / CENTO); real ivi = risultato * (interesse / CENTO);
ivi.ceil(ROUND_LIRA); ivi.ceil(ROUND_LIRA);
_lim->put("R11", ivi); _lim->put("R14", ivi);
_lim->put("R10",interesse_trimestrale(_month)); _lim->put("R10",interesse_trimestrale(_month));
} }
@ -1314,25 +1300,23 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
_lim->put("R7", tot_cong); _lim->put("R7", tot_cong);
_lim->put("R8", versamenti); _lim->put("R8", versamenti);
_lim->put("R9", vers_int); _lim->put("R9", vers_int);
_lam->put("R0", iva_vend);
// scrivi: totali IVA vendite e acquisti, credito prec, _lam->put("R1", iva_acq);
// debito prec, acconto, totale conguaglio prorata _lam->put("R2", cred_prec);
// cosi' si fa una volta sola in stampa _lam->put("R3", debt_precd);
tt = iva_vend.string(); tt.add(iva_acq.string()); _lim->put("R11", acc_dec);
tt.add(cred_prec.string()); tt.add(debt_precd.string()); _lim->put("R12", res_cred);
_lim->put("R13", res_debt);
_lim->put("S2", tt);
_lim->put("S3", acc_dec.string());
_lim->put("S4", res_cred.string());
_lim->put("S5", res_debt.string());
_lim->put("B0","X"); _lim->put("B0","X");
if (_isfinal) if (_isfinal) _lim->put("B1", "X");
_lim->put("B1", "X");
_lim->rewrite(); _lim->rewrite();
_lam->rewrite();
} }
//*
void TLiquidazione_app::recalc_annual(const char* att) void TLiquidazione_app::recalc_annual(const char* att)
{ {
@ -1353,16 +1337,15 @@ void TLiquidazione_app::recalc_annual(const char* att)
TString aaa(att); TString aaa(att);
look_pla(aaa); look_pla(aaa);
TToken_string tt(_pla->get("S1")); volaff1 = _pla->get_real("R14");
volaff1 = tt.get(0); volaff2 = (const char*)_pla->get("S1");
volaff1 = tt.get(1);
vendite = _pla->get_real("R0"); vendite = _pla->get_real("R0");
es_b1 = _pla->get_real("R1"); es_b1 = _pla->get_real("R1");
es_b2 = _pla->get_real("R2"); es_b2 = _pla->get_real("R2");
es_b3 = _pla->get_real("R3"); es_b3 = _pla->get_real("R3");
cess_amm = _pla->get_real("R4"); cess_amm = _pla->get_real("R4");
pro_pag = (const char*)_pla->get("S3"); pro_pag = _pla->get_real("R12");
iva_acq = (const char*)_pla->get("S2"); iva_acq = _pla->get_real("R11");
// 1) Calcola volume di affari dai PIM, controllando il // 1) Calcola volume di affari dai PIM, controllando il
// flag B2 settato da update_att per i progressivi che // flag B2 settato da update_att per i progressivi che
@ -1384,31 +1367,27 @@ void TLiquidazione_app::recalc_annual(const char* att)
for (int i = 1; i <= 13; i++) for (int i = 1; i <= 13; i++)
{ {
if (!look_ptm(i,aaa) || !look_plm(i,aaa)) if (!look_plm(i,aaa))
continue; continue;
// vendite lorde; sa la madonna a cosa servono ven_lrd += _pam->get_real("R1");
real vend(_ptm->get("S3"));
ven_lrd += vend;
iva_acq += _plm->get_real("R1"); iva_acq += _plm->get_real("R1");
real eb3(_ptm->get("S0")); es_b1 += _pum->get_real("R4");
es_b1 += _ptm->get_real("R13"); es_b2 += _pum->get_real("R5");
es_b2 += _ptm->get_real("R14"); es_b3 += _pum->get_real("R6");
es_b3 += eb3; cess_amm += _pum->get_real("R0");
cess_amm += _ptm->get_real("R10");
pro_pag += _plm->get_real("R2"); pro_pag += _plm->get_real("R2");
} }
tt = volaff1.string(); tt.add(volaff2.string());
_pla->put("R0", ven_lrd); _pla->put("R0", ven_lrd);
_pla->put("R1", es_b1); _pla->put("R1", es_b1);
_pla->put("R2", es_b2); _pla->put("R2", es_b2);
_pla->put("R3", es_b3); _pla->put("R3", es_b3);
_pla->put("R4", cess_amm); _pla->put("R4", cess_amm);
_pla->put("S1", tt); _pla->put("R11", iva_acq);
_pla->put("S2", iva_acq.string()); _pla->put("R12", pro_pag);
_pla->put("S3", pro_pag.string()); _pla->put("R14", volaff1);
_pla->put("S1", volaff2.string());
_pla->rewrite(); _pla->rewrite();
} }

View File

@ -10,34 +10,34 @@
#include "cg4300.h" #include "cg4300.h"
bool TLiquidazione_app::is_trim(int x) bool TLiquidazione_app::is_trim(int x)
// TRUE se il mese passato e' un trimestre // TRUE se il mese passato e' un trimestre
{ return x == 3 || x == 6 || x == 9 || x == 12; } { return x == 3 || x == 6 || x == 9 || x == 12; }
bool TLiquidazione_app::is_month_ok_strict(int x, int month) bool TLiquidazione_app::is_month_ok_strict(int x, int month)
// TRUE se il mese passato e' compatibile con il regime // TRUE se il mese passato e' compatibile con il regime
// di liquidazione e (opz) non e' maggiore di quello scelto // di liquidazione e (opz) non e' maggiore di quello scelto
{ {
if (month == -1) month = x; if (month == -1) month = x;
return _freqviva == "M" ? return _freqviva == "M" ?
( x > 0 && x <= month) : ( x > 0 && x <= month) :
( x <= month && is_trim(x)); ( x <= month && is_trim(x));
} }
bool TLiquidazione_app::is_month_ok(int x, int mtocalc) bool TLiquidazione_app::is_month_ok(int x, int mtocalc)
// TRUE se il mese passato e' compatibile con il mese da calcolare // TRUE se il mese passato e' compatibile con il mese da calcolare
// rispetto al regime di liquidazione scelto // rispetto al regime di liquidazione scelto
{ {
bool ret = x == mtocalc; bool ret = x == mtocalc;
if (!ret && _freqviva == "T" && mtocalc != 13) if (!ret && _freqviva == "T" && mtocalc != 13)
{ {
// aggiusta al trimestre il mese da calcolare // aggiusta al trimestre il mese da calcolare
mtocalc += 2 - ((mtocalc-1) % 3); mtocalc += 2 - ((mtocalc-1) % 3);
ret = x > (mtocalc - 3) && x <= mtocalc; ret = x > (mtocalc - 3) && x <= mtocalc;
} }
else if (!ret && mtocalc == 13) else if (!ret && mtocalc == 13)
{ {
// per l'annuale ritorna TRUE per tutti i mesi da liquidare // per l'annuale ritorna TRUE per tutti i mesi da liquidare
ret = x <= 13; ret = x <= 13;
} }
return ret; return ret;
} }
@ -46,9 +46,9 @@ int TLiquidazione_app::liq_month(int x)
// ritorna il mese da liquidare (= LIM presente) // ritorna il mese da liquidare (= LIM presente)
// che corrisponde al mese passato // che corrisponde al mese passato
{ {
if (x == 13 || _freqviva == "M") if (x == 13 || _freqviva == "M")
return x; return x;
else return x + (2 - ((x-1) % 3)); else return x + (2 - ((x-1) % 3));
} }
bool TLiquidazione_app::is_first_month(int m) bool TLiquidazione_app::is_first_month(int m)
@ -66,10 +66,10 @@ int TLiquidazione_app::previous_month(int m)
} }
bool TLiquidazione_app::is_date_ok(TDate& d, int month) bool TLiquidazione_app::is_date_ok(TDate& d, int month)
// TRUE se la data (di mov o pim) passata va considerata nel // TRUE se la data (di mov o pim) passata va considerata nel
// ricalcolo dei progressivi mensili per il mese e anno // ricalcolo dei progressivi mensili per il mese e anno
// selezionati; se month == 13 vanno bene tutte purche' // selezionati; se month == 13 vanno bene tutte purche'
// sia giusto l'anno // sia giusto l'anno
{ {
if (d.month() > month || d.year() != atoi(_year)) if (d.month() > month || d.year() != atoi(_year))
return FALSE; return FALSE;
@ -82,77 +82,77 @@ void TLiquidazione_app::add_ventilation(real iva, real howmuch, const char* cod
{ {
_VentItem* vi = NULL; _VentItem* vi = NULL;
for (int i = 0; i < _vent_arr.items(); i++) for (int i = 0; i < _vent_arr.items(); i++)
{ {
vi = (_VentItem*)&_vent_arr[i]; vi = (_VentItem*)&_vent_arr[i];
if (vi->_codiva == codiva) if (vi->_codiva == codiva)
break; break;
} }
if (i == _vent_arr.items()) if (i == _vent_arr.items())
{ {
_vent_arr.add(vi = new _VentItem); _vent_arr.add(vi = new _VentItem);
vi->_aliquota = iva; vi->_aliquota = iva;
vi->_codiva = codiva; vi->_codiva = codiva;
} }
vi->_totale += howmuch; vi->_totale += howmuch;
} }
void TLiquidazione_app::add_vendite(int month, const char* codreg, void TLiquidazione_app::add_vendite(int month, const char* codreg,
int tipodet, real& r) int tipodet, real& r)
{ {
_VendItem* vi = NULL; _VendItem* vi = NULL;
for (int i = 0; i < _vend_arr.items(); i++) for (int i = 0; i < _vend_arr.items(); i++)
{ {
vi = (_VendItem*)&_vend_arr[i]; vi = (_VendItem*)&_vend_arr[i];
if (vi->_codreg == codreg && vi->_month == month && vi->_tipodet == tipodet) if (vi->_codreg == codreg && vi->_month == month && vi->_tipodet == tipodet)
break; break;
} }
if (i == _vend_arr.items()) if (i == _vend_arr.items())
{ {
_vend_arr.add(vi = new _VendItem); _vend_arr.add(vi = new _VendItem);
vi->_codreg = codreg; vi->_codreg = codreg;
vi->_month = month; vi->_month = month;
vi->_tipodet = tipodet; vi->_tipodet = tipodet;
} }
vi->_totale += r; vi->_totale += r;
} }
void TLiquidazione_app::add_corrisp(int month, const char* codreg, real& r, void TLiquidazione_app::add_corrisp(int month, const char* codreg, real& r,
real& p, int tipodet, const char * codiva) real& p, int tipodet, const char * codiva)
{ {
_CorrItem* ci = NULL; _CorrItem* ci = NULL;
const int nitems = _corr_arr.items(); const int nitems = _corr_arr.items();
for (int i = 0; i < nitems; i++) for (int i = 0; i < nitems; i++)
{ {
ci = (_CorrItem*)&_corr_arr[i]; ci = (_CorrItem*)&_corr_arr[i];
if (ci->_codreg == codreg && ci->_month == month && if (ci->_codreg == codreg && ci->_month == month &&
ci->_codiva == codiva && ci->_tipodet == tipodet) ci->_codiva == codiva && ci->_tipodet == tipodet)
break; break;
} }
if (i == nitems) if (i == nitems)
{ {
_corr_arr.add(ci = new _CorrItem); _corr_arr.add(ci = new _CorrItem);
ci->_codreg = codreg; ci->_codreg = codreg;
ci->_month = month; ci->_month = month;
ci->_codiva = codiva; ci->_codiva = codiva;
ci->_tipodet = tipodet; ci->_tipodet = tipodet;
ci->_aliquota = p; ci->_aliquota = p;
} }
ci->_totale += r; ci->_totale += r;
} }
bool TLiquidazione_app::look_pim(int month, const char* codatt, const char* codreg, bool TLiquidazione_app::look_pim(int month, const char* codatt, const char* codreg,
const char* tipocr, const char* codiva, int tipodet, const char* tipocr, const char* codiva, int tipodet,
bool create) bool create)
// ritorna il PIM corrispondente alla chiave passata; se // ritorna il PIM corrispondente alla chiave passata; se
// create = TRUE lo crea se non lo trova. Ritorna se c'era // create = TRUE lo crea se non lo trova. Ritorna se c'era
{ {
bool ok = FALSE; bool ok = FALSE;
_pim_r->zero(); _pim_r->zero();
(*_pim_anno) = _year; (*_pim_anno) = _year;
(*_pim_mese) = format("%d", month); (*_pim_mese) = format("%02d", month);
(*_pim_codreg) = codreg; (*_pim_codreg) = codreg;
(*_pim_codiva) = codiva; (*_pim_codiva) = codiva;
(*_pim_codatt) = codatt; (*_pim_codatt) = codatt;
@ -165,11 +165,11 @@ bool TLiquidazione_app::look_pim(int month, const char* codatt, const char* codr
ok = _pim->good(); ok = _pim->good();
if (!ok && create) if (!ok && create)
{ {
_pim_r->zero(); _pim_r->zero();
_pim_r->put("CODTAB",s); _pim_r->put("CODTAB",s);
_pim->write(); _pim->write();
} }
return ok; return ok;
} }
@ -178,8 +178,8 @@ bool TLiquidazione_app::look_plm(int m, const char* a, bool create)
bool ok = FALSE; bool ok = FALSE;
_plm_r->zero(); _plm_r->zero();
(*_plm_codatt) = a; (*_plm_codatt) = format("%06ld", atol(a));
(*_plm_mese) = format("%d",m); (*_plm_mese) = format("%02d",m);
(*_plm_anno) = _year; (*_plm_anno) = _year;
TString s = _plm_r->get("CODTAB"); TString s = _plm_r->get("CODTAB");
@ -187,33 +187,81 @@ bool TLiquidazione_app::look_plm(int m, const char* a, bool create)
ok = _plm->good(); ok = _plm->good();
if (!ok && create) if (!ok && create)
{ {
_plm_r->zero(); _plm_r->zero();
_plm_r->put("CODTAB",s); _plm_r->put("CODTAB",s);
_plm->write(); _plm->write();
} }
// crea/posiziona tabelle gemelle PAM, PUM, POM
look_pam(m,a,!ok);
look_pum(m,a,!ok);
look_pom(m,a,!ok);
return ok; return ok;
} }
bool TLiquidazione_app::look_ptm(int m, const char* a, bool create) bool TLiquidazione_app::look_pum(int m, const char* a, bool create)
{ {
bool ok = FALSE; bool ok = FALSE;
_ptm->zero(); _pum->zero();
(*_ptm_codatt) = a; (*_pum_codatt) = format("%06ld", atol(a));
(*_ptm_mese) = format("%d",m); (*_pum_mese) = format("%02d",m);
(*_ptm_anno) = _year; (*_pum_anno) = _year;
TString s = _ptm->get("CODTAB"); TString s = _pum->get("CODTAB");
_ptm->read(); _pum->read();
ok = _ptm->good(); ok = _pum->good();
if (!ok && create) if (!ok && create)
{ {
_ptm->zero(); _pum->zero();
_ptm->put("CODTAB",s); _pum->put("CODTAB",s);
_ptm->write(); _pum->write();
} }
return ok;
}
bool TLiquidazione_app::look_pom(int m, const char* a, bool create)
{
bool ok = FALSE;
_pom->zero();
(*_pom_codatt) = format("%06ld", atol(a));
(*_pom_mese) = format("%02d",m);
(*_pom_anno) = _year;
TString s = _pom->get("CODTAB");
_pom->read();
ok = _pom->good();
if (!ok && create)
{
_pom->zero();
_pom->put("CODTAB",s);
_pom->write();
}
return ok;
}
bool TLiquidazione_app::look_pam(int m, const char* a, bool create)
{
bool ok = FALSE;
_pam->zero();
(*_pam_codatt) = format("%06ld", atol(a));
(*_pam_mese) = format("%02d",m);
(*_pam_anno) = _year;
TString s = _pam->get("CODTAB");
_pam->read();
ok = _pam->good();
if (!ok && create)
{
_pam->zero();
_pam->put("CODTAB",s);
_pam->write();
}
return ok; return ok;
} }
@ -222,7 +270,7 @@ bool TLiquidazione_app::look_lim(int m, bool create)
bool ok = FALSE; bool ok = FALSE;
_lim_r->zero(); _lim_r->zero();
(*_lim_mese) = format("%d",m); (*_lim_mese) = format("%02d",m);
(*_lim_anno) = _year; (*_lim_anno) = _year;
TString s = _lim_r->get("CODTAB"); TString s = _lim_r->get("CODTAB");
@ -230,11 +278,36 @@ bool TLiquidazione_app::look_lim(int m, bool create)
ok = _lim->good(); ok = _lim->good();
if (!ok && create) if (!ok && create)
{ {
_lim_r->zero(); _lim_r->zero();
_lim_r->put("CODTAB",s); _lim_r->put("CODTAB",s);
_lim->write(); _lim->write();
} }
// crea o posiziona la tabella gemella LAM
look_lam(m, !ok);
return ok;
}
bool TLiquidazione_app::look_lam(int m, bool create)
{
bool ok = FALSE;
_lam_r->zero();
(*_lam_mese) = format("%02d",m);
(*_lam_anno) = _year;
TString s = _lam_r->get("CODTAB");
_lam->read();
ok = _lam->good();
if (!ok && create)
{
_lam_r->zero();
_lam_r->put("CODTAB",s);
_lam->write();
}
return ok; return ok;
} }
@ -247,7 +320,7 @@ bool TLiquidazione_app::look_pla(const char* a, bool create)
char buf[10]; strcpy(buf,a); char buf[10]; strcpy(buf,a);
buf[strlen(buf) - 1] = '1'; buf[strlen(buf) - 1] = '1';
(*_pla_codatt) = buf; (*_pla_codatt) = format("%06ld", atol(buf));
(*_pla_anno) = _year; (*_pla_anno) = _year;
TString s = _pla_r->get("CODTAB"); TString s = _pla_r->get("CODTAB");
@ -255,30 +328,28 @@ bool TLiquidazione_app::look_pla(const char* a, bool create)
ok = _pla->good(); ok = _pla->good();
if (!ok && create) if (!ok && create)
{
real es_b1, es_b2, es_b3, prorata;
// alla creazione del PLA
// si prendono i valori di prorata e plafond dall'anno scorso
_pla_r->zero();
(*_pla_codatt) = format("%06ld", atol(buf));
(*_pla_anno) = atoi(_year) - 1;
if (_pla->read() == NOERR)
{ {
real es_b1, es_b2, es_b3, prorata; es_b1 = _pla->get_real("R1");
// alla creazione del PLA es_b2 = _pla->get_real("R2");
// si prendono i valori di prorata e plafond dall'anno scorso es_b3 = _pla->get_real("R3");
// e (TBI) si controllano incompatibilita' con la normativa es_b1 = _pla->get_real("R9");
_pla_r->zero();
(*_pla_codatt) = buf;
(*_pla_anno) = atoi(_year) - 1;
if (_pla->read() == NOERR)
{
es_b1 = _pla->get_real("R1");
es_b2 = _pla->get_real("R2");
es_b3 = _pla->get_real("R3");
es_b1 = _pla->get_real("R9");
}
_pla->zero();
_pla_r->put("CODTAB",s);
_pla->put("R5",es_b1);
_pla->put("R6",es_b2);
_pla->put("R7",es_b3);
_pla->put("R8",prorata);
_pla->write();
} }
_pla->zero();
_pla_r->put("CODTAB",s);
_pla->put("R5",es_b1);
_pla->put("R6",es_b2);
_pla->put("R7",es_b3);
_pla->put("R8",prorata);
_pla->write();
}
return ok; return ok;
} }
@ -303,8 +374,8 @@ bool TLiquidazione_app::look_ppa(int month, const char* codatt, int type, bool c
{ {
_ppa->zero(); _ppa->zero();
(*_ppa_year) = _year; (*_ppa_year) = _year;
(*_ppa_month) = month; (*_ppa_month) = format("%02d",month);
(*_ppa_codatt) = codatt; (*_ppa_codatt) = format("%06ld", atol(codatt));
(*_ppa_kind) = type; (*_ppa_kind) = type;
TString ctab = _ppa_r->get("CODTAB"); TString ctab = _ppa_r->get("CODTAB");
_ppa->read(); _ppa->read();
@ -312,11 +383,11 @@ bool TLiquidazione_app::look_ppa(int month, const char* codatt, int type, bool c
bool ok = _ppa->good(); bool ok = _ppa->good();
if (!ok && create) if (!ok && create)
{ {
_ppa_r->zero(); _ppa_r->zero();
_ppa_r->put("CODTAB",ctab); _ppa_r->put("CODTAB",ctab);
_ppa->write(); _ppa->write();
} }
return ok; return ok;
} }
@ -324,7 +395,7 @@ bool TLiquidazione_app::look_rmb(int month, const char* codiva, tiporeg tr, bool
{ {
_rmb->zero(); _rmb->zero();
(*_rmb_anno) = _year; (*_rmb_anno) = _year;
(*_rmb_mese) = month; (*_rmb_mese) = format("%02d",month);
(*_rmb_codiva) = codiva; (*_rmb_codiva) = codiva;
(*_rmb_tiporeg) = (int)tr; (*_rmb_tiporeg) = (int)tr;
TString ctab = _rmb->get("CODTAB"); TString ctab = _rmb->get("CODTAB");
@ -333,11 +404,11 @@ bool TLiquidazione_app::look_rmb(int month, const char* codiva, tiporeg tr, bool
bool ok = _rmb->good(); bool ok = _rmb->good();
if (!ok && create) if (!ok && create)
{ {
_rmb->zero(); _rmb->zero();
_rmb->put("CODTAB",ctab); _rmb->put("CODTAB",ctab);
_rmb->write(); _rmb->write();
} }
return ok; return ok;
} }
@ -356,26 +427,26 @@ bool TLiquidazione_app::look_del(int month, int type, bool create)
bool ok = _del->good(); bool ok = _del->good();
if (!ok && create) if (!ok && create)
{ {
_del->zero(); _del->zero();
_del->put("CODTAB",ctab); _del->put("CODTAB",ctab);
// TBI infila ufficio concessione in S9 // TBI infila ufficio concessione in S9
// sistema codice tributo // sistema codice tributo
int ctri = 6000; int ctri = 6000;
if (month == 13 && type == 7) if (month == 13 && type == 7)
ctri = 6035; // acconto IVA annuale (trimestrali?) ctri = 6035; // acconto IVA annuale (trimestrali?)
else if (month == 13 && type == 1) else if (month == 13 && type == 1)
ctri = 6099; // IVA annuale ctri = 6099; // IVA annuale
else if (month < 13 && type == 7) else if (month < 13 && type == 7)
ctri = 6013; // acconto mensile ctri = 6013; // acconto mensile
else if (month < 13 && type == 1) // regular else if (month < 13 && type == 1) // regular
ctri = _freqviva == "M" ? 6000 + month : 6030 + (month/3); ctri = _freqviva == "M" ? 6000 + month : 6030 + (month/3);
_del->put("S6", format("%d",ctri)); _del->put("S6", format("%d",ctri));
_del->write(); _del->write();
} }
return ok; return ok;
} }
@ -383,7 +454,7 @@ bool TLiquidazione_app::look_lia(bool create, int year)
{ {
if (year == 0) year = atoi(_year); if (year == 0) year = atoi(_year);
TString16 y; y << year; TString16 y; y << year;
_lia->zero(); _lia->zero();
_lia->put("CODTAB", y); _lia->put("CODTAB", y);
_lia->read(); _lia->read();
@ -393,23 +464,23 @@ bool TLiquidazione_app::look_lia(bool create, int year)
_lia->zero(); _lia->zero();
_lia->put("CODTAB", y); _lia->put("CODTAB", y);
_lia->put("S7", _freqviva); _lia->put("S7", _freqviva);
_lia->write(); _lia->write();
} }
return ok; return ok;
} }
real TLiquidazione_app::result_liq(int month) real TLiquidazione_app::result_liq(int month)
// risultato esatto della liquidazione del mese month, <0 a credito // risultato esatto della liquidazione del mese month, <0 a credito
// > 0 a debito; comprende TUTTI, anche il conguaglio prorata in annuale // > 0 a debito; comprende TUTTI, anche il conguaglio prorata in annuale
{ {
real r(0.0); real r(0.0);
// ulteriori detrazioni, acconti, versamenti, // ulteriori detrazioni, acconti, versamenti,
// rettifiche sono gia' comprese in R0 // rettifiche, conguagli sono gia' compresi in R0
if (look_lim(month)) if (look_lim(month))
r = _lim->get_real("R0"); r = _lim->get_real("R0");
return r; return r;
} }
real TLiquidazione_app::debt_prec(int month) real TLiquidazione_app::debt_prec(int month)
{ {
@ -428,7 +499,7 @@ real TLiquidazione_app::debt_prec(int month)
real TLiquidazione_app::credito_prec(int month) real TLiquidazione_app::credito_prec(int month)
// ritorna l'appropriato credito precedente al mese in corso // ritorna l'appropriato credito precedente al mese in corso
{ {
real c(0.0); real c(0.0);
@ -437,38 +508,38 @@ real TLiquidazione_app::credito_prec(int month)
// credito inizio anno // credito inizio anno
if (look_lia()) if (look_lia())
c = _lia->get_real("R0"); c = _lia->get_real("R0");
// e' positivo o 0 // e' positivo o 0
}
else
{
c = result_liq(previous_month(month));
if (c.sign() < 0) c = abs(c);
else c = real(0.0);
} }
else
{
c = result_liq(previous_month(month));
if (c.sign() < 0) c = abs(c);
else c = real(0.0);
}
return c; return c;
} }
real TLiquidazione_app::credito_costo_prec(int month) real TLiquidazione_app::credito_costo_prec(int month)
// ritorna l'appropriato credito di costo precedente al mese in corso // ritorna l'appropriato credito di costo precedente al mese in corso
// (travel agency only) // (travel agency only)
{ {
real c(0.0); real c(0.0);
if (is_first_month(month)) if (is_first_month(month))
{ {
int yr = atoi(_year)-1; int yr = atoi(_year)-1;
_lim->zero(); _lim->zero();
*_lim_anno = yr; *_lim_anno = yr;
*_lim_mese = 12; *_lim_mese = 12;
if (_lim->read() == NOERR) if (_lim->read() == NOERR)
c = _lim->get_real("R2"); c = _lim->get_real("R2");
} }
else else
{ {
if (look_lim(previous_month(month))) if (look_lim(previous_month(month)))
// qui il rimborso non c'e' // qui il rimborso non c'e'
c = _lim->get_real("R2"); c = _lim->get_real("R2");
} }
look_lim(month); look_lim(month);
return c; return c;
} }
@ -483,7 +554,7 @@ real TLiquidazione_app::versamenti_IVA(int month, const char* types, bool intr)
int tp = typ.get_int(i); int tp = typ.get_int(i);
if (look_del(month,tp)) if (look_del(month,tp))
if (_del->get_bool("B0") || _is_visliq) // solo se stampata, a meno if (_del->get_bool("B0") || _is_visliq) // solo se stampata, a meno
// che non sia per visliq // che non sia per visliq
{ {
ret += _del->get_real("R0"); ret += _del->get_real("R0");
if (intr) ret += _del->get_real("R1"); if (intr) ret += _del->get_real("R1");
@ -507,4 +578,4 @@ real TLiquidazione_app::interesse_trimestrale(int month)
TConfig cnf(CONFIG_STUDIO); TConfig cnf(CONFIG_STUDIO);
real r(cnf.get("InTr", NULL, month)); real r(cnf.get("InTr", NULL, month));
return r; return r;
} }

View File

@ -235,10 +235,12 @@ void TLiquidazione_app::recalc_ventilation(int month, const char* codatt)
} }
} }
// memorizza totali per il prospettino di m. // memorizza totali per il prospettino di m.
look_ptm(month, codatt); look_plm(month, codatt);
_ptm->put("S4",totacq.string());
_ptm->put("S5",totven.string()); // TBI PAM e PUM
_ptm->rewrite(); _pam->put("R2",totacq);
_pam->put("R3",totven);
_pam->rewrite();
} }
@ -276,12 +278,10 @@ _DescrItem* TLiquidazione_app::recalc_rimborso(int month, const char* codatts)
att = tmpatt; att = tmpatt;
for (int m = month - 2; m <= month; m++) for (int m = month - 2; m <= month; m++)
{ {
if (!look_plm(m,att) || !look_ptm(m,att)) continue; if (!look_plm(m,att)) continue;
real tvol(_ptm->get("S3")); vol_aff += _pam->get_real("R1");
vol_aff += tvol; es_ni += _pum->get_real("R6");
real esni(_plm->get("S1"));
es_ni += esni;
} }
} }
@ -416,8 +416,8 @@ _DescrItem* TLiquidazione_app::recalc_rimborso(int month, const char* codatts)
} }
// finalmente // finalmente
alv = vtot/ivav; alv = vtot/ivav; alv.round(2);
ala = atot/ivaa; ala = atot/ivaa; ala.round(2);
if (ala > alv) if (ala > alv)
{ {

View File

@ -39,8 +39,8 @@ void TLiquidazione_app::set_page(int file, int cnt)
case CHG_PARMS: set_att(d); break; case CHG_PARMS: set_att(d); break;
case SET_FIRM: set_firm(d); break; case SET_FIRM: set_firm(d); break;
case PIM_ROW: set_pim(d); break; case PIM_ROW: set_pim(d); break;
case MISC_LIQ: set_pumpam(d); break;
case TOT_ROW: set_plm(d); break; case TOT_ROW: set_plm(d); break;
case MISC_LIQ: set_ptm(d); break;
case PLAFOND: set_plafond(d); break; case PLAFOND: set_plafond(d); break;
case VENTILA: set_ventila(d); break; case VENTILA: set_ventila(d); break;
case REGAGR: set_regagr(d); break; case REGAGR: set_regagr(d); break;
@ -164,9 +164,10 @@ void TLiquidazione_app::describe_ventilation(int month, const char* codatt)
_DescrItem* d = new _DescrItem(VENTILA); _DescrItem* d = new _DescrItem(VENTILA);
TString att(codatt); TString att(codatt);
look_ptm(month, att); look_plm(month, att);
real r0(_ptm->get("S4")); real r0 = _pam->get("R2");
real r1(_ptm->get("S5")); real r1 = _pam->get("R3");
d->_r0 = r0; d->_r1 = r1; d->_r0 = r0; d->_r1 = r1;
for (_pim->first(); !_pim->eof(); _pim->next()) for (_pim->first(); !_pim->eof(); _pim->next())
@ -366,9 +367,9 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt)
{ {
isnew = TRUE; isnew = TRUE;
_DescrItem* dd = new _DescrItem(PIM_ROW); _DescrItem* dd = new _DescrItem(PIM_ROW);
// CiccioPrassi li vuole in ordine crescente // CicciaPrassi li vuole in ordine crescente
_descr_arr.insert(dd,i); _descr_arr.insert(dd,i);
// che cazzo di due marroni: se quello dopo // che Cazzo di due Marroni: se quello dopo
// era il primo, quello prima e' dopo // era il primo, quello prima e' dopo
if (d->_f0) if (d->_f0)
{ {
@ -479,55 +480,43 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt)
while ((tmpatt = atts.get()) != NULL) while ((tmpatt = atts.get()) != NULL)
{ {
TString att(tmpatt); TString att(tmpatt);
look_ptm(m, att);
d->_r6 += _ptm->get_real("R0"); // acq. intracomunitari
d->_r7 += _ptm->get_real("R1"); // inded. art 19
d->_r8 += _ptm->get_real("R2"); // IVA su inded. art. 19
t->_r0 += _ptm->get_real("R3"); // acq. ammortizz.
t->_r1 += _ptm->get_real("R4"); // IVA acq. ammort.
t->_r2 += _ptm->get_real("R5"); // ammort. detr. 6%
t->_r3 += _ptm->get_real("R12"); // IVA ammort detr. 6%
t->_r4 += _ptm->get_real("R6"); // acq. beni rivendita
t->_r5 += _ptm->get_real("R7"); // IVA acq. beni rivendita
t->_r6 += _ptm->get_real("R8"); // acq. leasing
t->_r7 += _ptm->get_real("R9"); // IVA acq. leasing
t->_r8 += _ptm->get_real("R10"); // cessioni beni ammort.
t->_r9 += _ptm->get_real("R11"); // IVA su cessioni ammort.
t->_r10 += _ptm->get_real("R13"); // tot. esenti IVA
look_plm(m, att); look_plm(m, att);
// TBI rifare per pam e pum
d->_r6 += _pom->get_real("R0"); // acq. intracomunitari
d->_r7 += _pom->get_real("R1"); // inded. art 19
d->_r8 += _pom->get_real("R2"); // IVA su inded. art. 19
t->_r0 += _pom->get_real("R3"); // acq. ammortizz.
t->_r1 += _pom->get_real("R4"); // IVA acq. ammort.
t->_r2 += _pum->get_real("R2"); // ammort. detr. 6%
t->_r3 += _pum->get_real("R3"); // IVA ammort detr. 6%
t->_r4 += _pom->get_real("R5"); // acq. beni rivendita
t->_r5 += _pom->get_real("R6"); // IVA acq. beni rivendita
t->_r6 += _pom->get_real("R7"); // acq. leasing
t->_r7 += _pom->get_real("R8"); // IVA acq. leasing
t->_r8 += _pum->get_real("R0"); // cessioni beni ammort.
t->_r9 += _pum->get_real("R1"); // IVA su cessioni ammort.
t->_r10 += _pum->get_real("R4"); // tot. esenti IVA
t->_r11 += _plm->get_real("R2"); // pro-rata indetraibile t->_r11 += _plm->get_real("R2"); // pro-rata indetraibile
t->_s0 = (_plm->get_real("R12")).string(); // % pro-rata t->_s0 = (_plm->get_real("R12")).string(); // % pro-rata
t->_f0 = !_prorata.is_zero(); // flag per segnalare l'esistenza t->_f0 = !_prorata.is_zero(); // flag per segnalare l'esistenza
d->_r9 += _pom->get_real("R9"); // acq. inded. su ricavi esenti
// minchie indeducibili su ricavi esenti d->_r10 += _pom->get_real("R10"); // IVA acq. inded. su ricavi esenti
TToken_string s(_plm->get("S2"));
real aie(s.get(0)); // acq. inded. su ricavi esenti
real aiev(s.get(1)); // IVA acq. inded. su ricavi esenti
d->_r9 += aie;
d->_r10 += aiev;
// passaggi interni // passaggi interni
s = _plm->get("S3");
real aipi(s.get(0)); // acq. inded. per pass. int.
real aipiv(s.get(1)); // IVA acq. inded. per pass. int.
real aipip(d->_s0); // progressivo ... real aipip(d->_s0); // progressivo ...
real aipivp(d->_s1); // ... (che mazzata sulle palle...) real aipivp(d->_s1); // ... (che mazzata sulle palle...)
aipip += aipi; // ricalcolo ... aipip += _pum->get_real("R8"); // acq. inded. per pass. int
aipivp += aipiv; // ... aipivp += _pum->get_real("R9"); // IVA acq. inded. per pass. int
d->_s0 = aipip.string(); // risbatto ... d->_s0 = aipip.string(); // risbatto ...
d->_s1 = aipivp.string(); // .. d->_s1 = aipivp.string(); // ..
// spese generali. // spese generali.
s = _plm->get("S4");
real spgn(s.get(0)); // spese generali.
real spgnv(s.get(1)); // IVA spese generali
real spgnp(t->_s2); // progressivo ... real spgnp(t->_s2); // progressivo ...
real spgnvp(t->_s3); // ... (che doppia mazzata sulle palle...) real spgnvp(t->_s3); // ... (che doppia mazzata sulle palle...)
spgnp += spgn; // ricalcolo ... spgnp += _pam->get_real("R10"); // spese generali.
spgnvp += spgnv; // ... spgnvp += _pam->get_real("R11"); // IVA spese generali.
t->_s2 = spgnp.string(); // risbatto ... t->_s2 = spgnp.string(); // risbatto ...
t->_s3 = spgnvp.string(); // .. t->_s3 = spgnvp.string(); // ..
} // while (attivita') } // while (attivita')
@ -540,8 +529,8 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt)
// calcolo del prorata o del nuovo plafond o .... // calcolo del prorata o del nuovo plafond o ....
if (look_pla(codatt)) if (look_pla(codatt))
{ {
TToken_string tt(_pla->get("S1")); real v1 = _pla->get_real("R14");
real v1 = tt.get(0); real v2 = tt.get(1); real v2(_pla->get("S1"));
real v = v1 + v2; real v = v1 + v2;
real e1 = _pla->get_real("R1"); real e1 = _pla->get_real("R1");
real e2 = _pla->get_real("R2"); real e2 = _pla->get_real("R2");
@ -586,13 +575,20 @@ void TLiquidazione_app::describe_liq(int month, const char* codatts,
d->_r4 = _lim->get_real("R4"); d->_r4 = _lim->get_real("R4");
d->_r5 = _lim->get_real("R5"); d->_r5 = _lim->get_real("R5");
d->_r6 = _lim->get_real("R6"); d->_r6 = _lim->get_real("R6");
d->_r7 = _lim->get_real("R11"); d->_r7 = _lim->get_real("R14");
d->_r9 = _lim->get_real("R9"); d->_r9 = _lim->get_real("R9");
d->_r10 = _lim->get_real("R7"); // totale conguaglio prorata d->_r10 = _lim->get_real("R7"); // totale conguaglio prorata
d->_s0 = _lim->get("S2");
d->_s1 = _lim->get("S3"); TToken_string tt(80);
d->_s2 = _lim->get("S4"); tt.add(_lam->get_real("R0").string());
d->_s3 = _lim->get("S5"); tt.add(_lam->get_real("R1").string());
tt.add(_lam->get_real("R2").string());
tt.add(_lam->get_real("R3").string());
d->_s0 = tt;
d->_s1 = _lim->get_real("R11").string();
d->_s2 = _lim->get_real("R12").string();
d->_s3 = _lim->get_real("R13").string();
d->_r11 = (const char*)_lim->get("R10"); // tasso di interesse d->_r11 = (const char*)_lim->get("R10"); // tasso di interesse
if (_is_visliq) if (_is_visliq)
@ -879,9 +875,8 @@ void TLiquidazione_app::set_plm(_DescrItem& d)
} }
void TLiquidazione_app::set_ptm(_DescrItem& d) void TLiquidazione_app::set_pumpam(_DescrItem& d)
{ {
bool printed = FALSE; bool printed = FALSE;
real spgn(d._s2); real spgn(d._s2);
@ -1081,7 +1076,7 @@ void TLiquidazione_app::set_grand(_DescrItem& d)
if (iva >= IVA_DA_RIPORTARE || _isannual || _isriepilogo) if (iva >= IVA_DA_RIPORTARE || _isannual || _isriepilogo)
set_row(rw++,"@23gIVA DA VERSARE@75g%r",&iva); set_row(rw++,"@23gIVA DA VERSARE@75g%r",&iva);
else else
set_row(rw++,"@23gIVA A DEBITO DA NON VERSARE@75g%r",iva); set_row(rw++,"@23gIVA A DEBITO DA NON VERSARE@75g%r",&iva);
} }
} }
} }

View File

@ -117,7 +117,7 @@ bool TLiquidazione_app::extract_delega(int month)
if (look_lim(month)) if (look_lim(month))
{ {
real topay = result_liq(month); real topay = result_liq(month);
real intr = _lim->get_real("R11"); real intr = _lim->get_real("R14");
if (topay.sign() <= 0) if (topay.sign() <= 0)
return TRUE; return TRUE;

View File

@ -723,7 +723,7 @@ bool Visliq_app::vis_one(int m)
TDate date(TODAY); TDate date(TODAY);
TString cab(5), abi(5), con(5); TString cab(5), abi(5), con(5);
bool is_delega = FALSE; bool is_delega = FALSE, was_delega = FALSE;
if (is_delega = look_del(m,1)) if (is_delega = look_del(m,1))
{ {
@ -859,8 +859,8 @@ bool Visliq_app::vis_one(int m)
{ {
if (!is_delega) if (!is_delega)
{ {
look_del(m,1,TRUE); was_delega = look_del(m,1,TRUE);
is_delega = TRUE; is_delega = TRUE;
} }
_del->put("D0",msk.get(F_DELDATE)); _del->put("D0",msk.get(F_DELDATE));
write_del = TRUE; write_del = TRUE;
@ -925,8 +925,10 @@ bool Visliq_app::vis_one(int m)
_lia->rewrite(); _lia->rewrite();
if (write_del && k == K_SAVE) if (write_del && k == K_SAVE)
_del->rewrite(); {
if (!was_delega) _del->write();
else _del->rewrite();
}
if ((write_lim || write_lia) && k == K_SAVE) if ((write_lim || write_lia) && k == K_SAVE)
{ {
_lim->put("B0", ""); _lim->put("B0", "");

View File

@ -30,7 +30,7 @@ BEGIN
END END
BROWSEFILE F_VISFLQ 80 11 BROWSEFILE F_VISFLQ 0 11
BEGIN BEGIN
PROMPT 0 3 "" PROMPT 0 3 ""
END END