From 3a17a5a00eaf48fc97016c3e9ab46f3c9172d325 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 26 Feb 2002 16:20:19 +0000 Subject: [PATCH] Patch level : XX.218 Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la versione AGA patch 218 sul main trunk git-svn-id: svn://10.65.10.50/trunk@10087 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ba/ba0.cpp | 13 +- ba/ba1800.cpp | 2 +- ba/ba3100.cpp | 24 +- ba/baeur.cpp | 11 +- ba/baeur.h | 5 +- ba/baeur01.cpp | 2 +- ba/baeur02.cpp | 39 +- ba/baeur03.cpp | 1 + ba/baeur04.cpp | 2 +- ba/baeur06.cpp | 12 +- ba/baeur0a.cpp | 535 +++++++++++ ba/baeura0.h | 16 + ba/baeura0.uml | 131 +++ ba/bainst.cpp | 2 + ba/bainst.h | 1 + ba/bainst11.cpp | 59 ++ ba/bainst11.h | 3 + ba/bainst11.uml | 30 + ba/batbcms.h | 11 + ba/batbcms.uml | 125 +++ ba/batbfsc.h | 2 + ba/batbfsc.uml | 42 + ba/batbsce.txt | 2 +- ba/batbval.uml | 2 + ba/cgarea.men | 2 +- ce/cac.txt | 2116 ++++++++++++++++++++++++++++++++++++++++++ ce/cat.txt | 192 ++++ ce/ce0500.cpp | 21 +- ce/ce0900.cpp | 5 + ce/ce1100.cpp | 2 +- ce/ce1200.cpp | 80 +- ce/ce1201a.h | 40 +- ce/ce1201b.uml | 20 +- ce/ce1300.cpp | 809 +++++++++++----- ce/ce1301a.h | 45 +- ce/ce1301a.uml | 4 +- ce/ce1301b.uml | 24 +- ce/ce1301c.uml | 22 +- ce/ce1301d.uml | 29 +- ce/ce1400.cpp | 19 +- ce/ce1400b.uml | 2 +- ce/ce1400c.uml | 4 +- ce/ce1400d.uml | 4 +- ce/ce1500.cpp | 498 +++++++--- ce/ce1500a.h | 85 +- ce/ce1500a.uml | 82 +- ce/ce1500b.uml | 34 + ce/ce2100.cpp | 6 +- ce/ce2101.cpp | 66 +- ce/ce2200.cpp | 67 +- ce/ce2300a.uml | 4 +- ce/ce3.cpp | 14 +- ce/ce3.h | 5 + ce/ce3100.cpp | 349 +++++-- ce/ce3100.h | 9 + ce/ce3100a.frm | 507 +++++++--- ce/ce3100a.uml | 21 +- ce/ce3300.cpp | 25 +- ce/ce3300a.frm | 76 +- ce/ce3400.cpp | 467 ++++++++++ ce/ce3400.h | 21 + ce/ce3400a.frm | 239 +++++ ce/ce3400a.h | 25 + ce/ce3400a.uml | 221 +++++ ce/ce3500.cpp | 288 ++++++ ce/ce3500a.frm | 261 ++++++ ce/ce3500a.h | 26 + ce/ce3500a.uml | 226 +++++ ce/ce3500b.frm | 636 +++++++++++++ ce/ce3600.cpp | 190 ++++ ce/ce3600a.frm | 398 ++++++++ ce/ce3600a.h | 23 + ce/ce3600a.uml | 199 ++++ ce/ce3700.cpp | 149 +++ ce/ce3700a.frm | 214 +++++ ce/ce3700a.h | 7 + ce/ce3700a.uml | 142 +++ ce/ce3800.cpp | 274 ++++++ ce/ce3800a.frm | 378 ++++++++ ce/ceprassi.men | 16 +- ce/cetbcce.uml | 31 +- ce/cgr.txt | 34 + ce/clm.txt | 12 + ce/clm_lire.txt | 12 + ce/f142.trr | 2 +- ce/tmc.txt | 20 + cg/cg0500a.uml | 6 + cg/cg1200.cpp | 2 + cg/cg1500.cpp | 2 +- cg/cg2100.cpp | 46 +- cg/cg2100a.uml | 75 +- cg/cg2100o.uml | 1 + cg/cg2102.cpp | 44 +- cg/cg2103.cpp | 28 +- cg/cg2103.h | 1 + cg/cg2104.cpp | 22 +- cg/cg2105.cpp | 6 +- cg/cg21sld.uml | 2 - cg/cg3.cpp | 6 +- cg/cg3200.cpp | 173 ++-- cg/cg3200.h | 1 + cg/cg3200a.uml | 15 +- cg/cg4300.cpp | 8 +- cg/cg4300.h | 2 +- cg/cg4301.cpp | 90 +- cg/cg4302.cpp | 43 +- cg/cg4303.cpp | 18 +- cg/cg4304.cpp | 118 +-- cg/cg4305.cpp | 29 +- cg/cg4400.cpp | 38 +- cg/cg4700.cpp | 32 +- cg/cg4800.cpp | 56 +- cg/cg4900.cpp | 24 +- cg/cg5100a.uml | 49 +- cg/cg5300.cpp | 15 +- cg/cg5300a.h | 45 +- cg/cg5300a.uml | 91 +- cg/cg5500.cpp | 59 +- cg/cg5500d.uml | 4 +- cg/cg5700.cpp | 34 +- cg/cg6400.cpp | 4 +- cg/cg6600.cpp | 40 +- cg/cg6900.cpp | 23 +- cg/cglib01.cpp | 2 +- cg/cglib01.h | 2 +- cg/cglib03.cpp | 65 +- cg/cglib03.h | 27 + cg/cglib04.cpp | 32 +- cg/cglib04.h | 2 +- cg/cgp0.url | 11 +- cg/cgp2.url | 11 +- cg/cgpagame.h | 4 - cg/f17.dir | 2 +- cg/f17.trr | 4 +- cg/f24.dir | 2 +- cg/f24.trr | 4 +- cg/f25.dir | 2 +- cg/f25.trr | 4 +- cg/f26.dir | 2 +- cg/f26.trr | 3 +- db/db0100.cpp | 11 +- db/db0500.cpp | 15 +- db/db0500b.uml | 4 +- db/db1100.cpp | 15 +- db/db1300.cpp | 4 +- db/db2400.cpp | 12 +- db/dblib.cpp | 40 +- db/dblib.h | 12 +- db/dbtblav.uml | 120 +-- db/f112.trr | 2 +- ef/ef0600.cpp | 90 +- ef/ef0600.h | 3 +- ef/ef0600a.uml | 14 +- in/batbicc.uml | 1 + in/batbimt.uml | 1 + in/batbint.uml | 1 + in/batbird.rpt | 4 +- in/in0500a.uml | 2 +- in/in0600a.uml | 2 +- in/intabcom.txt | 2 +- include/automask.cpp | 6 +- include/causali.h | 23 +- include/clifo.h | 1 - include/doc.h | 2 + include/execp.cpp | 9 +- include/form.cpp | 9 +- include/isam.cpp | 22 +- include/mask.cpp | 16 +- include/maskfld.cpp | 44 +- include/maskfld.h | 2 + include/msksheet.cpp | 17 +- include/rdoc.h | 2 + include/real.cpp | 11 +- include/real.h | 3 +- include/relapp.h | 3 + include/relation.h | 12 +- include/validate.cpp | 10 +- m770/772400.cpp | 14 +- mg/f111.dir | 2 +- mg/f111.trr | 2 +- mg/f114.dir | 2 +- mg/f114.trr | 6 +- mg/mg1200.cpp | 2 +- mg/mg3300.cpp | 62 +- mg/mg3300a.frm | 8 +- mg/mg3300b.frm | 8 +- mg/mg4100.cpp | 16 +- mg/mg4200.cpp | 5 +- mr/mr2100a.uml | 3 +- mr/mr2100b.uml | 3 +- sc/pec.frm | 7 +- sc/sc2100.cpp | 354 ++++++- sc/sc2100a.h | 7 +- sc/sc2100a.uml | 107 ++- sc/sc21pec.h | 1 + sc/sc2200.cpp | 261 +++++- sc/sc2200.h | 12 +- sc/sc2200a.uml | 157 +++- sc/sc2300a.uml | 10 +- sc/sc2400a.uml | 6 +- sc/sc2401.cpp | 7 +- sc/sc2500.cpp | 27 +- sc/sc2500.h | 1 + sc/sc2500.uml | 50 +- sc/scprassi.men | 3 +- sc/scselect.cpp | 10 +- sv/sv1100a.uml | 2 +- sv/sv1200.cpp | 6 +- sv/svlib01.cpp | 38 +- sv/svlib09.cpp | 21 +- ve/batbeld.h | 4 + ve/batbeld.uml | 27 +- ve/batbspp.h | 1 + ve/batbspp.uml | 9 + ve/bolacq.src | 11 +- ve/bollac.src | 13 +- ve/bollaf.src | 13 +- ve/bolle.trr | 105 +++ ve/f33.dir | 2 +- ve/f33.trr | 4 +- ve/f34.dir | 2 +- ve/f34.trr | 6 +- ve/f49.trr | 2 +- ve/f53.trr | 4 +- ve/fatacq.src | 14 +- ve/fatturaa.src | 14 +- ve/fatturac.src | 14 +- ve/fatture.trr | 105 +++ ve/movc.trr | 104 +++ ve/ordinec.src | 13 +- ve/ordinef.src | 11 +- ve/rbolle.trr | 71 ++ ve/rfatture.trr | 71 ++ ve/rmovc.trr | 104 +++ ve/sconti.cpp | 17 +- ve/ve0100.cpp | 10 +- ve/ve0100b.cpp | 37 +- ve/ve0100b.uml | 2 +- ve/ve0200f.uml | 10 +- ve/ve0300a.src | 68 +- ve/ve1100.cpp | 173 +++- ve/ve2200.cpp | 10 +- ve/ve2300x.uml | 6 +- ve/ve2400.cpp | 40 +- ve/ve2400.uml | 23 + ve/ve2400a.uml | 4 +- ve/ve2400d.h | 35 +- ve/ve2400d.uml | 19 +- ve/ve4100.cpp | 11 +- ve/ve5200.cpp | 24 +- ve/ve7.cpp | 18 + ve/ve7.h | 6 + ve/ve7.url | 6 + ve/ve7100.cpp | 629 +++++++++++++ ve/ve7100a.h | 12 + ve/ve7100a.uml | 92 ++ ve/veacc.frm | 25 - ve/veaccbmp.frm | 1392 +++++++++++++++++++++++++++ ve/vebolbmp.frm | 601 ++++++++---- ve/veconf.h | 1 + ve/vefat.frm | 25 - ve/vefatbmp.frm | 761 ++++++++------- ve/velib.h | 57 +- ve/velib02.cpp | 19 +- ve/velib03.cpp | 189 ++-- ve/velib04a.cpp | 12 +- ve/velib04b.cpp | 201 ++-- ve/velib04c.cpp | 2 +- ve/velib05.cpp | 2 +- ve/vepriv.h | 4 +- ve/verig.h | 6 +- ve/verig.uml | 81 +- ve/verig00.uml | 1 + ve/verig01.uml | 3 +- ve/verig02.uml | 3 + ve/verig03.uml | 2 + ve/verig04.uml | 2 + ve/verig06.uml | 2 + ve/verig13.uml | 2 +- ve/verig14.uml | 2 +- ve/vesirio.cpp | 19 + ve/vesirio.h | 10 + ve/vesirio1.cpp | 711 ++++++++++++++ ve/vesirioa.h | 4 + ve/vesirioa.uml | 47 + ve/veuml.h | 4 + 286 files changed, 17387 insertions(+), 2848 deletions(-) create mode 100755 ba/baeur0a.cpp create mode 100755 ba/baeura0.h create mode 100755 ba/baeura0.uml create mode 100755 ba/bainst11.cpp create mode 100755 ba/bainst11.h create mode 100755 ba/bainst11.uml create mode 100755 ba/batbcms.h create mode 100755 ba/batbcms.uml create mode 100755 ba/batbfsc.h create mode 100755 ba/batbfsc.uml create mode 100755 ce/cac.txt create mode 100755 ce/cat.txt create mode 100755 ce/ce3400.cpp create mode 100755 ce/ce3400.h create mode 100755 ce/ce3400a.frm create mode 100755 ce/ce3400a.h create mode 100755 ce/ce3400a.uml create mode 100755 ce/ce3500.cpp create mode 100755 ce/ce3500a.frm create mode 100755 ce/ce3500a.h create mode 100755 ce/ce3500a.uml create mode 100755 ce/ce3500b.frm create mode 100755 ce/ce3600.cpp create mode 100755 ce/ce3600a.frm create mode 100755 ce/ce3600a.h create mode 100755 ce/ce3600a.uml create mode 100755 ce/ce3700.cpp create mode 100755 ce/ce3700a.frm create mode 100755 ce/ce3700a.h create mode 100755 ce/ce3700a.uml create mode 100755 ce/ce3800.cpp create mode 100755 ce/ce3800a.frm create mode 100755 ce/cgr.txt create mode 100755 ce/clm.txt create mode 100755 ce/clm_lire.txt create mode 100755 ce/tmc.txt create mode 100755 ve/bolle.trr create mode 100755 ve/fatture.trr create mode 100755 ve/movc.trr create mode 100755 ve/rbolle.trr create mode 100755 ve/rfatture.trr create mode 100755 ve/rmovc.trr create mode 100755 ve/ve7.cpp create mode 100755 ve/ve7.h create mode 100755 ve/ve7.url create mode 100755 ve/ve7100.cpp create mode 100755 ve/ve7100a.h create mode 100755 ve/ve7100a.uml create mode 100755 ve/veaccbmp.frm create mode 100755 ve/vesirio.cpp create mode 100755 ve/vesirio.h create mode 100755 ve/vesirio1.cpp create mode 100755 ve/vesirioa.h create mode 100755 ve/vesirioa.uml diff --git a/ba/ba0.cpp b/ba/ba0.cpp index ee5c0452e..b55dabf4a 100755 --- a/ba/ba0.cpp +++ b/ba/ba0.cpp @@ -1634,13 +1634,12 @@ bool TMenu_application::create() #ifdef _DEMO_ { - TMask w("Attenzione", 1, 78, 14); - w.add_static(DLG_NULL, 0 ,"@bAttenzione" , 35 , 1); - w.add_static(DLG_NULL, 0 ,"@bQuesto programma e' in versione dimostrativa." , 1 , 3); - w.add_static(DLG_NULL, 0 ,"@bNon si possono memorizzare date posteriori al 1992" , 1 , 5); - w.add_static(DLG_NULL, 0 ,"@bcon mese successivo a Marzo." , 1 , 7); - w.add_static(DLG_NULL, 0 ,"@bIl programma funziona per due ore ogni giorno." , 1 , 9); - w.add_static(DLG_NULL, 0 ,"@bIl numero di registrazioni e' stato limitato a circa 1000." , 1 , 11); + TMask w("ATTENZIONE", 1, 68, 12); + w.add_static(DLG_NULL, 0 ,"@bATTENZIONE" , 30 , 1); + w.add_static(DLG_NULL, 0 ,"Questo programma č in versione dimostrativa." , 1 , 3); + w.add_static(DLG_NULL, 0 ,"Non si possono memorizzare date con mese successivo a Marzo." , 1 , 5); + w.add_static(DLG_NULL, 0 ,"Il programma funziona circa per due ore ogni giorno." , 1 , 7); + w.add_static(DLG_NULL, 0 ,"Il numero di registrazioni č stato limitato ad un migliaio." , 1 , 9); w.add_button(DLG_OK, 0, "", -11, -1, 10, 2); w.run(); } diff --git a/ba/ba1800.cpp b/ba/ba1800.cpp index 03dc21ced..2ec97e81d 100755 --- a/ba/ba1800.cpp +++ b/ba/ba1800.cpp @@ -295,7 +295,7 @@ void TColumnizer_win::recalc_layout(int dx, int dy) long maxy = _rows.items() - rows()/2 + 1; long maxx = dx; if (maxx <= 0) - maxx = _column.get_long(_column.items()-1) + 70; + maxx = _column.get_long(_column.items()-1) + 384; maxx -= columns()/2 + NUM_WIDTH; if (maxx < 0) maxx = 0; if (maxy < 0) maxy = 0; diff --git a/ba/ba3100.cpp b/ba/ba3100.cpp index cd543085c..eec8842c9 100755 --- a/ba/ba3100.cpp +++ b/ba/ba3100.cpp @@ -6,6 +6,7 @@ #include #include "../cg/cglib03.h" + #include "batbreg.h" #include "batbcam.h" #include "batbdel.h" @@ -171,8 +172,10 @@ void TGeneric_table_app::init_modify_mode(TMask& m) { m.disable(-3); // Disabilita scelta decimali e contro-euro } else - if (n == TAB_VERSAMENTI) + if (n == TAB_VERSAMENTI) + { load_rec_in_disabled_fields(m); + } } void TGeneric_table_app::init_query_mode(TMask& m) @@ -272,7 +275,8 @@ HIDDEN bool ditta_handler(TMask_field& f, KEY k) { if (f.to_check(k)) { - TFirm firm(atol(f.get())); + const long ditta = atol(f.get()); + TFirm firm(ditta); f.mask().set(F_CODVAL, firm.codice_valuta()); } return TRUE; @@ -366,12 +370,15 @@ HIDDEN bool impdel_handler(TMask_field& f, KEY k) { const TMask& m = f.mask(); - if (f.to_check(k)) - { - real r(f.get()); - TCurrency cur(r, f.mask().get(F_CODVAL)); - const int ndec = cur.decimals(); - r.round(ndec == 0 ? -3 : ndec); + if (!m.query_mode() && f.to_check(k)) + { + const int anno = m.get_int(F_ANNODEL); + const int tipo_del = m.get_int(F_TIPODEL); + const long ditta = m.get_long(F_DITTA); + TIva_round ir; ir.set_default_iva_mode(anno, tipo_del == 2, ditta); + + real r = f.get(); + ir.round(r); f.set(r.string()); } @@ -412,6 +419,7 @@ HIDDEN bool mese_handler(TMask_field& f, KEY k) const int mese = m.get_int(F_MESEDEL); const long firm = m.get_long(F_DITTA); const int anno = m.get_int(F_ANNODEL); + if (app().frequenza_versamenti(firm, anno) == 'T') { TLocalisamfile nditte(LF_NDITTE); diff --git a/ba/baeur.cpp b/ba/baeur.cpp index dd7ebc5d0..b75fe830e 100755 --- a/ba/baeur.cpp +++ b/ba/baeur.cpp @@ -432,7 +432,15 @@ int main(int argc, char** argv) { TApplication::check_parameters(argc, argv); - int a = argc > 1 ? argv[1][1]-'0' : 0; + int a = 0; + if (argc > 1) + { + a = toupper(argv[1][1]); + if (isdigit(a)) + a -= '0'; + else + a -= 'A'-10; + } switch (a) { case 1: baeur01(argc, argv); break; // Conversione ditte @@ -444,6 +452,7 @@ int main(int argc, char** argv) case 7: baeur07(argc, argv); break; case 8: baeur08(argc, argv); break; case 9: baeur09(argc, argv); break; // Ricalcolo saldi Lire/Euro + case 10: baeur0A(argc, argv); break; // Copia movimenti contabili da Euro a Lire default: baeur00(argc, argv); break; // Creazioe area dati euro } return 0; diff --git a/ba/baeur.h b/ba/baeur.h index 671ecb5f7..7b80e3972 100755 --- a/ba/baeur.h +++ b/ba/baeur.h @@ -71,8 +71,8 @@ protected: void update_saldo(const TRectype& mov, const TRectype& rmov, TLocalisamfile& saldi); public: - void add(int g, int c, long s, char sez, const real& imp); - void add(const TBill& bill, const TImporto& imp); + bool add(int g, int c, long s, char sez, const real& imp); + bool add(const TBill& bill, const TImporto& imp); TImporto save(const TDate& datareg, const TString& caus, const TString& desc, const TBill& contro, bool adeuro, bool convert, bool invert); TImporto calc_bil(bool convert, bool invert); // Sommatoria delle righe @@ -107,5 +107,6 @@ int baeur06(int argc, char* argv[]); int baeur07(int argc, char* argv[]); int baeur08(int argc, char* argv[]); int baeur09(int argc, char* argv[]); +int baeur0A(int argc, char* argv[]); #endif diff --git a/ba/baeur01.cpp b/ba/baeur01.cpp index b9cef23fc..edb37af20 100755 --- a/ba/baeur01.cpp +++ b/ba/baeur01.cpp @@ -727,7 +727,7 @@ void TEuro01_app::convert_saldi(const TDate& adozione, const TBill& arrotino) convert_file(LF_SALDI, NULL, NULL, NULL, saldi_handler, &sld); TImporto& saldo = sld._sld; - saldo.valore().round(-2); + saldo.valore().round(2); if (!saldo.is_zero()) { TLocalisamfile saldi_lire(LF_SALDI); // Open trc diff --git a/ba/baeur02.cpp b/ba/baeur02.cpp index 7c0fd42d9..63a66704b 100755 --- a/ba/baeur02.cpp +++ b/ba/baeur02.cpp @@ -29,24 +29,33 @@ inline TEuro02_app& app() { return (TEuro02_app&)main_app(); } // Gestione movimenti di apertura e chiusura /////////////////////////////////////////////////////////// -void TCG_mov::add(int g, int c, long s, char sez, const real& imp) -{ - TCG_rmov* rmov = new TCG_rmov; - rmov->_gruppo = g; - rmov->_conto = c; - rmov->_sottoconto = s; - rmov->_importo.set(sez, imp); - TArray::add(rmov); +bool TCG_mov::add(int g, int c, long s, char sez, const real& imp) +{ + bool ok = s > 0; + if (ok) + { + TCG_rmov* rmov = new TCG_rmov; + rmov->_gruppo = g; + rmov->_conto = c; + rmov->_sottoconto = s; + rmov->_importo.set(sez, imp); + TArray::add(rmov); + } +#ifdef DBG + else + error_box("Conto non valido: %d %d %ld", g, c, s); +#endif + return ok; } -void TCG_mov::add(const TBill& bill, const TImporto& imp) +bool TCG_mov::add(const TBill& bill, const TImporto& imp) { int g = bill.gruppo(); int c = bill.conto(); long s = bill.sottoconto(); char sez = imp.sezione(); real val = imp.valore(); - add(g, c, s, sez, val); + return add(g, c, s, sez, val); } void TCG_mov::crea_testata(TLocalisamfile& mov, const TString& caus, @@ -153,9 +162,9 @@ TImporto TCG_mov::save(const TDate& datareg, const TString& caus, const TString& TProgind pi(items(), desc, FALSE, TRUE); // Apro comunque i file in lire per avere i tracciati - TLocalisamfile lmov(LF_MOV, adeuro); - TLocalisamfile lrmov(LF_RMOV, adeuro); - TLocalisamfile lsaldi(LF_SALDI, adeuro); + TLocalisamfile lmov(LF_MOV); + TLocalisamfile lrmov(LF_RMOV); + TLocalisamfile lsaldi(LF_SALDI); TLocalisamfile *pmov, *prmov, *psaldi; // Apro quelli in euro se necessario @@ -211,7 +220,7 @@ TImporto TCG_mov::save(const TDate& datareg, const TString& caus, const TString& TBill conto(riga._gruppo, riga._conto, riga._sottoconto); if (!conto.find()) - error_box("Nella riga %d movimento %ld sarebbe utile anche il conto %d %d %ld", + error_box("Nella riga %d del movimento %ld sarebbe utile anche il conto %d %d %ld", written, mov.get_long(MOV_NUMREG), riga._gruppo, riga._conto, riga._sottoconto); conto.put(rmov.curr(), FALSE); contro.put(rmov.curr(), TRUE); @@ -449,7 +458,7 @@ void TEuro02_app::main_loop() goto_lire(f); if (f <= 0L) set_firm(); - + TEuro20_mask msk; msk.on_firm_change(); // Preimposta data adozione euro ed altro diff --git a/ba/baeur03.cpp b/ba/baeur03.cpp index bf4dd7bba..5e7c0546a 100755 --- a/ba/baeur03.cpp +++ b/ba/baeur03.cpp @@ -391,6 +391,7 @@ void TEuro03_app::main_loop() data._proper.get(msk, F30_PROPER_G, F30_PROPER_C, F30_PROPER_S); data._bilape.get(msk, F30_BILAPE_G, F30_BILAPE_C, F30_BILAPE_S); data._utipat.get(msk, F30_UTIPAT_G, F30_UTIPAT_C, F30_UTIPAT_S); + data._perpat.get(msk, F30_PERPAT_G, F30_PERPAT_C, F30_PERPAT_S); data._utieco.get(msk, F30_UTIECO_G, F30_UTIECO_C, F30_UTIECO_S); data._pereco.get(msk, F30_PERECO_G, F30_PERECO_C, F30_PERECO_S); data._difarr.get(msk, F30_DIFARR_G, F30_DIFARR_C, F30_DIFARR_S); diff --git a/ba/baeur04.cpp b/ba/baeur04.cpp index c1b1f8605..b4049bcfe 100755 --- a/ba/baeur04.cpp +++ b/ba/baeur04.cpp @@ -182,7 +182,7 @@ static bool rdoc_handler(TRectype& rec, void* jolly) key << "|" << rec.get(RDOC_ANNO); key << "|" << rec.get(RDOC_CODNUM); key << "|" << rec.get(RDOC_NDOC); - TRectype & doc = (TRectype &) cache().get(LF_DOC, key); + TRectype doc((TRectype &) cache().get(LF_DOC, key)); bool ok = doc_handler(doc, jolly); if (doc.get(DOC_MOVMAG).empty()) diff --git a/ba/baeur06.cpp b/ba/baeur06.cpp index 1f3c3d0a5..17cbb640e 100755 --- a/ba/baeur06.cpp +++ b/ba/baeur06.cpp @@ -23,14 +23,12 @@ public: }; bool TArticolo_euro::adjust_storico(const int anno) - { bool updated = FALSE; TAssoc_array values; TString16 annoes; annoes << anno; TRecord_array & s = storico(annoes); const int sto_items = s.rows(); - for (int i = 1; i <= sto_items; i++) { TRectype & rec = s[i]; @@ -47,16 +45,15 @@ bool TArticolo_euro::adjust_storico(const int anno) *tot += val; } - TRecord_array & m = mag(annoes); + TRecord_array& m = mag(annoes); const int mag_items = m.rows(); - for (i = 1; i <= mag_items; i++) { TRectype & rec = m[i]; TString16 codmag(rec.get(MAG_CODMAG)); const real val = rec.get_real(MAG_VALRIM); real * tot = (real *)values.objptr(codmag); - + if (tot == NULL) { tot = new real; @@ -72,7 +69,7 @@ bool TArticolo_euro::adjust_storico(const int anno) real val = rec.get_real(MAG_VALRIM); real * corr = (real *)values.objptr(codmag); - if (corr != NULL & *corr != ZERO) + if (corr != NULL && *corr != ZERO) { corr->round(TCurrency::get_firm_dec(FALSE)); val += *corr; @@ -135,8 +132,7 @@ void TEuro06_app::update_stomag() for (c = 0L; c.pos() < items; ++c) { pi.addstatus(1); - TArticolo_euro & curr_art = (TArticolo_euro &) c.curr(); - + TArticolo_euro& curr_art = (TArticolo_euro &) c.curr(); for (int codes = e.first(); codes > 0; codes = e.next(codes)) { if (curr_art.adjust_storico(codes)) diff --git a/ba/baeur0a.cpp b/ba/baeur0a.cpp new file mode 100755 index 000000000..18ef9748e --- /dev/null +++ b/ba/baeur0a.cpp @@ -0,0 +1,535 @@ +#include +#include +#include +#include +#include +#include + +#include "baeur.h" +#include "baeura0.h" + +#include "../cg/cg2103.h" +#include "../cg/cglib01.h" + +#include "mov.h" +#include "partite.h" +#include "rmov.h" +#include "rmoviva.h" +#include "saldi.h" +#include "scadenze.h" + +class TPirogano_mask : public TAutomask +{ + TViswin* _log_win; + +protected: + virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); + +public: + void convert_movs(long fr, long to); + TViswin& log_win() { return *_log_win; } + + TPirogano_mask(); +}; + +bool TPirogano_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) +{ + switch (o.dlg()) + { + case DLG_PRINT: + if (e == fe_button) + { + _log_win->text().print(); + return FALSE; // Don't close + } + break; + default: + break; + } + + return TRUE; +} + +TPirogano_mask::TPirogano_mask() : TAutomask("baeura0") +{ + TBrowsefile_field& bf = (TBrowsefile_field&)field(F_LOG); + _log_win = &bf.vis_win(); +} + +class TPirogano_app : public TEuro_app +{ + TPirogano_mask* _msk; + +protected: + virtual void main_loop(); + +public: + void log_msg(TString& str); + void log_war(TString& str); + void log_err(TString& str); + + void scadenze_handler(TRectype& rec, const TRectype& part, real& totrate); + void convert_scad(const TRectype& part); + bool partite_handler(TRectype& rec); + void convert_part(long num_reg); + + void update_saldo(const TRectype& rmov, int segno); + void save_row(TEuroisamfile& rmov); + void convert_rmovs(long num_reg, long num_rege); + void convert_movs(long fr, long to); +}; + +void TPirogano_app::log_msg(TString& str) +{ + str.insert("- "); + _msk->log_win().add_line(str); +} + +void TPirogano_app::log_war(TString& str) +{ + str.insert("$[b,w]! "); + _msk->log_win().add_line(str); +} + +void TPirogano_app::log_err(TString& str) +{ + str.insert("$[r,w]* "); + _msk->log_win().add_line(str); +} + +void TPirogano_app::update_saldo(const TRectype& rmov, int segno) +{ + // File saldi in euro + TEuroisamfile saldi(LF_SALDI, TRUE); + TRectype& curr = saldi.curr(); + + TBill zio; zio.get(rmov); + curr.zero(); + curr.put(SLD_ANNOES, rmov.get(RMV_ANNOES)); + curr.put(SLD_GRUPPO, zio.gruppo()); + curr.put(SLD_CONTO, zio.conto()); + curr.put(SLD_SOTTOCONTO, zio.sottoconto()); + curr.put(SLD_FLSCA, ""); + + const bool found = saldi.read(_isequal, _lock) == NOERR; + if (!found) + { + curr.zero(); + curr.put(SLD_ANNOES, rmov.get(RMV_ANNOES)); + curr.put(SLD_GRUPPO, zio.gruppo()); + curr.put(SLD_CONTO, zio.conto()); + curr.put(SLD_SOTTOCONTO, zio.sottoconto()); + curr.put(SLD_FLSCA, ""); + } + + const TImporto importo(rmov.get_char(RMV_SEZIONE), rmov.get_real(RMV_IMPORTO)); + const char* field = importo.sezione() == 'D' ? SLD_PDARE : SLD_PAVERE; + real saldo = curr.get(field); + if (segno < 0) + saldo -= importo.valore(); + else + saldo += importo.valore(); + curr.put(field, saldo); + + const int err = found ? saldi.rewrite() : saldi.write(); + if (err != NOERR) + { + TString str; + str << "Errore " << err << " durante l'aggiornamento dei saldi"; + log_err(str); + } +} + +void TPirogano_app::save_row(TEuroisamfile& rmov) +{ + const TRectype newrow = rmov.curr(); + TRectype oldrow(LF_RMOV); + const bool found = rmov.read() == NOERR; + if (found) + oldrow = rmov.curr(); + rmov.curr() = newrow; + const int err = found ? rmov.rewrite() : rmov.write(); + if (err != NOERR) + { + TString str; + str << "Errore " << err << " durante la scrittura della riga " << rmov.get(RMV_NUMRIG); + log_err(str); + } + else + { + if (found) + update_saldo(oldrow, -1); + update_saldo(newrow, +1); + } +} + +void TPirogano_app::convert_rmovs(long numreg, long numrege) +{ + // File righe movimento in euro + TEuroisamfile fileur(LF_RMOV, TRUE); + TRectype& receur = fileur.curr(); + + TRelation rel(LF_RMOV); + TRectype& curr = rel.curr(); + curr.put(MOV_NUMREG, numreg); + TCursor cur(&rel, "", 1, &curr, &curr); + const long items = cur.items(); + cur.freeze(); + + TImporto saldo; + int last_rowe = 0; + + for (cur = 0L; cur.pos() < items; ++cur) + { + receur = curr; + convert_import(receur, RMV_IMPORTO); + saldo += TImporto(receur.get_char(RMV_SEZIONE), receur.get_real(RMV_IMPORTO)); + + last_rowe = receur.get_int(RMV_NUMRIG); + receur.put(RMV_NUMREG, numrege); + save_row(fileur); + } + + if (!saldo.is_zero()) + { + receur.zero(); + receur.put(RMV_NUMREG, numrege); + receur.put(RMV_NUMRIG, ++last_rowe); + + TBill billy; load_round_bill(billy); + billy.put(receur, FALSE); + + saldo.swap_section(); + saldo.normalize(); + receur.put(RMV_SEZIONE, saldo.sezione()); + receur.put(RMV_IMPORTO, saldo.valore()); + + save_row(fileur); + } +} + +void TPirogano_app::scadenze_handler(TRectype& rec, const TRectype& parte, real& totrate) +{ + convert_import(rec, SCAD_IMPORTO); + + if (!rec.get_real(SCAD_IMPORTOVAL).is_zero()) + { + const TString& codval = parte.get(PART_CODVAL); + if (codval.empty()) + rec.zero(SCAD_IMPORTOVAL); + } + + const int nrata = rec.get_int(SCAD_NRATA); + if (nrata == 1) + totrate = ZERO; + totrate += rec.get_real(SCAD_IMPORTO); + + // I problemi di arrotondamento dovrei averli solo con tante rate + if (nrata > 1) + { + TLocalisamfile scad(LF_SCADENZE); + scad.curr() = rec; + scad.curr().put(SCAD_NRATA, nrata+1); + if (scad.read() != NOERR) // Sono l'ultima rata + { + const real toteur = parte.get(PART_IMPTOTDOC); + const real diff = toteur - totrate; + if (diff != ZERO) + { + real rata = rec.get(SCAD_IMPORTO); + rata += diff; + rec.put(SCAD_IMPORTO, rata); + } + } + } +} + +void TPirogano_app::convert_scad(const TRectype& part) +{ + // File destinazione in euro + TEuroisamfile fileur(LF_SCADENZE, TRUE); + TRectype& receur = fileur.curr(); + + TRelation rel(LF_SCADENZE); + TRectype& curr = rel.curr(); + curr.put(SCAD_TIPOCF, part.get(PART_TIPOCF)); + curr.put(SCAD_GRUPPO, part.get(PART_GRUPPO)); + curr.put(SCAD_CONTO, part.get(PART_CONTO)); + curr.put(SCAD_SOTTOCONTO, part.get(PART_SOTTOCONTO)); + curr.put(SCAD_ANNO, part.get(PART_ANNO)); + curr.put(SCAD_NUMPART, part.get(PART_NUMPART)); + curr.put(SCAD_NRIGA, part.get(PART_NRIGA)); + + TCursor cur(&rel, "", 1, &curr, &curr); // Seleziona solo le rate interessate + + const long items = cur.items(); + cur.freeze(); + real totrate; + for (cur = 0L; cur.pos() < items; ++cur) + { + receur = curr; + scadenze_handler(receur, part, totrate); + int err = fileur.write(); + if (err != NOERR) + err = fileur.rewrite(); + if (err != NOERR) + { + TString str; + str << "Errore " << err << " durante la scrittura della rata " << receur.get(SCAD_NRIGA); + log_err(str); + } + } +} + +bool TPirogano_app::partite_handler(TRectype& rec) +{ + if (rec.get_bool(PART_CHIUSA) || rec.get_int(PART_NRIGA) == 9999) + return FALSE; + + zero_import(rec, PART_NREG); // Creo solo partite extra-contabili + convert_import(rec, "IMPTOTDOC|IMPORTO|IMPOSTA|SPESE|RITENUTE|DIFFCAM"); + + const TString16 codval = rec.get(PART_CODVAL); + if (::is_firm_value(codval)) + { + convert_import(rec, PART_ABBUONI); + zero_import(rec, "CODVAL|IMPORTOVAL|DIFFCAM"); + } else + if (::is_euro_value(codval)) + { + zero_import(rec, "CODVAL|IMPORTOVAL|DIFFCAM"); + } else + if (::is_true_value(codval)) + { + const real impval = rec.get(PART_IMPORTOVAL); + if (impval != ZERO) + { + const real impeur = rec.get(PART_IMPORTO); + const real old_cambio = rec.get(PART_CAMBIO); + real new_cambio = impval / impeur; + new_cambio.round(5); + if (abs(old_cambio - new_cambio) > 0.001) // Non era gią contro euro + rec.put(PART_CAMBIO, new_cambio); + } + } + + if (rec.get_int(PART_TIPOMOV) > 1) + { + // Riempe il campo totale documento per i pagamenti (In contabilitą viene lasciato vuoto) + rec.put(PART_IMPTOTDOC, rec.get(PART_IMPORTO)); + } + + rec.put(PART_INVIATA, "X"); + + return TRUE; +} + +void TPirogano_app::convert_part(long num_reg) +{ + // File destinazione in euro + TEuroisamfile fileur(LF_PARTITE, TRUE); + TRectype& receur = fileur.curr(); + + TRelation rel(LF_PARTITE); + TRectype& curr = rel.curr(); + curr.put(PART_NREG, num_reg); + TCursor cur(&rel, "", 2, &curr, &curr); // Seleziona solo le partite interessate + + const long items = cur.items(); + cur.freeze(); + TString str; + + bool one_saved = FALSE; + if (items > 0) + { + str << "Conversione della partita extracontabile " << curr.get(PART_ANNO); + str << '/' << curr.get(PART_NUMPART); + log_msg(str); + for (cur = 0L; cur.pos() < items; ++cur) + { + receur = curr; + if (partite_handler(receur)) + { + int err = fileur.write(); + if (err != NOERR) + err = fileur.rewrite(); + if (err != NOERR) + { + str.cut(0) << "Errore " << err << " durante la scrittura della riga " << receur.get(PART_NRIGA); + log_err(str); + } + else + { + convert_scad(receur); + one_saved = TRUE; + } + } + } + } + if (!one_saved) + { + str = "Non sono state rilevate scadenze aperte"; + log_war(str); + } +} + +void TPirogano_app::convert_movs(long fr, long to) +{ + _msk->log_win().destroy_lines(); + + // File destinazione in euro + TEuroisamfile fileur(LF_MOV, TRUE); + TRectype& receur = fileur.curr(); + + long next_rege = 1; + if (fileur.last() == NOERR) + next_rege = receur.get_long(MOV_NUMREG)+1; + + TRelation rel(LF_MOV); + TRectype& curr = rel.curr(); + + TRectype fr_mov(curr); if (fr > 0) fr_mov.put(MOV_NUMREG, fr); + TRectype to_mov(curr); if (to > 0) to_mov.put(MOV_NUMREG, to); + TCursor cur(&rel, "", 1, &fr_mov, &to_mov); + + TString str; + str << "Conversione " << rel.lfile().description() << " ..."; + + const long items = cur.items(); + cur.freeze(); + TProgind pi(items, str, FALSE, TRUE); + for (cur = 0L; cur.pos() < items; ++cur) + { + pi.addstatus(1); + + const long num_reg = curr.get_long(MOV_NUMREG); + const TDate datareg = curr.get(MOV_DATAREG); + const int yearreg = datareg.year(); + const long clifo = curr.get_long(MOV_CODCF); + + const TString8 caus = curr.get(MOV_CODCAUS); + TipoIVA iva = nessuna_iva; + int tipomov = 0; + if (caus.not_empty()) + { + TCausale causale(caus, yearreg); + iva = causale.iva(); + tipomov = causale.tipomov(); + } + + bool converted = FALSE; + if (yearreg == 2002 && iva == nessuna_iva && tipomov == 0) + { + receur = curr; + convert_import(receur, MOV_TOTDOC); // Forse inutile + + int err = 0; + long num_rege = curr.get_long("TNUMREG"); + if (num_rege <= 0) + { + num_rege = next_rege++; + curr.put("TNUMREG", num_rege); + rel.rewrite(); + } + receur.put(MOV_NUMREG, num_rege); + + str.cut(0) << "Conversione del movimento " << num_reg << " -> " << num_rege; + log_msg(str); + + err = fileur.write(); + if (err != NOERR) + err = fileur.rewrite(); + + if (err != NOERR) + { + str.cut(0) << "Errore " << err << " durante la scrittura della testata"; + log_err(str); + } + convert_rmovs(num_reg, num_rege); + converted = TRUE; + } + if (yearreg == 2001 && iva != nessuna_iva && tipomov == 1) + { + str.cut(0) << "Elaborazione della partita del movimento " << num_reg; + log_msg(str); + convert_part(num_reg); + converted = TRUE; + } + + if (!converted) + { + str.cut(0) << "Ignorato movimento " << num_reg << " del " << datareg; + if (caus.not_empty()) str << " con causale " << caus; + log_war(str); + continue; + } + } + + _msk->log_win().goto_end(); +} + +void TPirogano_app::main_loop() +{ + open_files(LF_TABCOM, LF_TAB, LF_MOV, LF_RMOV, LF_CAUSALI, LF_SALDI, LF_PARTITE, LF_SCADENZE, 0); + + TFilename dati, datie; + get_aree_dati(dati, datie); + + _msk = new TPirogano_mask; + TMask& m = *_msk; + m.set(F_DATI, dati); + m.set(F_DATIE, datie); + + const long firm = get_firm(); + TString8 ditta; + ditta.format("%05ldA", firm); + TFilename inie = datie; + inie.add(ditta); + inie.add("prassid.ini"); + + KEY k = K_ENTER; + while (k == K_ENTER) + { + if (inie.exist()) + { + TConfig config(inie, "Euro"); + m.set(F_ADOZIONE, config.get("Adozione")); + m.set(F_LAST_DATE, config.get("InvDate")); + m.set(F_LAST_FROM, config.get("InvFirst")); + m.set(F_LAST_TO, config.get("InvLast")); + } + else + { + error_box("Non esiste la ditta %ld nell'area dati in Euro %s", firm, (const char*)datie); + m.disable(DLG_OK); + } + + k = m.run(); + if (k == K_ENTER) + { + const long fr_mov = m.get_long(F_MOV_FROM); + const long to_mov = m.get_long(F_MOV_TO); + + convert_movs(fr_mov, to_mov); + + TConfig config(inie, "Euro"); + config.set("InvDate", TDate(TODAY)); + config.set("InvFirst", fr_mov); + config.set("InvLast", to_mov); + } + } + + delete _msk; + _msk = NULL; +} + +/////////////////////////////////////////////////////////// +// main +/////////////////////////////////////////////////////////// + +int baeur0A(int argc, char* argv[]) +{ + TPirogano_app app; + app.run(argc, argv, "Trasferimento movimenti 2002"); + return 0; +} diff --git a/ba/baeura0.h b/ba/baeura0.h new file mode 100755 index 000000000..9ff964630 --- /dev/null +++ b/ba/baeura0.h @@ -0,0 +1,16 @@ +#define F_DITTA 101 +#define F_RAGSOC 102 +#define F_DATI 103 +#define F_DATIE 104 +#define F_ADOZIONE 105 + +#define F_LAST_DATE 111 +#define F_LAST_FROM 112 +#define F_LAST_TO 113 + +#define F_MOV_FROM 121 +#define F_DES_FROM 122 +#define F_MOV_TO 123 +#define F_DES_TO 124 + +#define F_LOG 130 diff --git a/ba/baeura0.uml b/ba/baeura0.uml new file mode 100755 index 000000000..c2f49cab4 --- /dev/null +++ b/ba/baeura0.uml @@ -0,0 +1,131 @@ +#include "baeura0.h" + +TOOLBAR "" 0 -2 0 2 + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -13 -11 "" +END + +BUTTON DLG_PRINT 10 2 +BEGIN + PROMPT -23 -11 "" + PICTURE BMP_PRINT +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -33 -11 "" +END + +ENDPAGE + +PAGE "Trasferimento movimenti 2002" 0 0 80 18 + +GROUPBOX DLG_NULL 78 6 +BEGIN + PROMPT 1 1 "@bDitta da convertire" +END + +NUMBER F_DITTA 5 +BEGIN + PROMPT 2 2 "Ditta " + USE LF_NDITTE + INPUT CODDITTA F_DITTA + OUTPUT F_RAGSOC RAGSOC + CHECKTYPE NORMAL + FLAGS "DF" +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 21 2 "" + FLAGS "D" +END + +STRING F_DATI 50 +BEGIN + PROMPT 2 3 "Area dati in Lire " + FLAGS "D" +END + +STRING F_DATIE 50 +BEGIN + PROMPT 2 4 "Area dati in Euro " + FLAGS "D" +END + +DATE F_ADOZIONE +BEGIN + PROMPT 2 5 "Data adozione Euro " + FLAGS "D" +END + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 7 "@bUltimo trasferimento " +END + +DATE F_LAST_DATE +BEGIN + PROMPT 2 8 "Data " + FLAGS "D" +END + +NUMBER F_LAST_FROM 5 +BEGIN + PROMPT 25 8 "Dal " + FLAGS "D" +END + +NUMBER F_LAST_TO 5 +BEGIN + PROMPT 50 8 "al " + FLAGS "D" +END + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 10 "@bProssimo trasferimento" +END + +DATE DLG_NULL +BEGIN + PROMPT 2 11 "Data " + FLAGS "AD" +END + +NUMBER F_MOV_FROM 5 +BEGIN + PROMPT 25 11 "Dal " + USE LF_MOV + INPUT NUMREG F_MOV_FROM + DISPLAY "Num. Lire" NUMREG + DISPLAY "Num. Euro" TNUMREG + DISPLAY "Registrazione" DATAREG + DISPLAY "Causale" CODCAUS + DISPLAY "Descrizione@50" DESCR + OUTPUT F_MOV_FROM NUMREG + CHECKTYPE REQUIRED + WARNING "Inserire un movimento valido" + ADD RUN cg2 -0 +END + +NUMBER F_MOV_TO 5 +BEGIN + PROMPT 50 11 "al " + COPY USE F_MOV_FROM + INPUT NUMREG F_MOV_TO + COPY DISPLAY F_MOV_FROM + OUTPUT F_MOV_TO NUMREG + CHECKTYPE REQUIRED + WARNING "Inserire un movimento valido" + ADD RUN cg2 -0 +END + +BROWSEFILE F_LOG 75 -1 +BEGIN + PROMPT 1 12 "" +END + +ENDMASK diff --git a/ba/bainst.cpp b/ba/bainst.cpp index dc9aa38cb..3b3ec7af5 100755 --- a/ba/bainst.cpp +++ b/ba/bainst.cpp @@ -557,6 +557,8 @@ int main(int argc,char** argv) if (mod == "cg") r=bainst07(argc,argv); // pre/post installazione contabilitą generale: + else if (mod == "ce") + r=bainst11(argc, argv);// pre/post installazione cespiti else if (mod == "at") r=bainst17(argc, argv);// pre/post installazione avis else if (mod == "in") diff --git a/ba/bainst.h b/ba/bainst.h index 5fdf1f15c..768cd1104 100755 --- a/ba/bainst.h +++ b/ba/bainst.h @@ -5,6 +5,7 @@ #define G_PREINST 1 int bainst00(int argc, char** argv); int bainst07(int argc, char** argv); +int bainst11(int argc, char** argv); int bainst17(int argc, char** argv); int bainst18(int argc, char** argv); int bainst31(int argc, char** argv); diff --git a/ba/bainst11.cpp b/ba/bainst11.cpp new file mode 100755 index 000000000..246f7d12f --- /dev/null +++ b/ba/bainst11.cpp @@ -0,0 +1,59 @@ +#include +#include +#include +#include +#include +#include + +#include "bainst.h" +#include "bainst11.h" + +class TInstall_CE : public TSkeleton_application +{ +protected: + virtual void main_loop() ; + virtual bool install_com(bool in_lire) ; // setta i dati comuni + +public: + virtual ~TInstall_CE () {} +}; + +bool TInstall_CE ::install_com(bool in_lire) +{ + const char* tab[5] = {"cac","cat","cgr","tmc","clm"}; + if (in_lire) + tab[4] = "clm_lire"; + + TSystemisamfile tabcom(LF_TABCOM); + TStd_filename txtfile; + TString16 str; + for (int i=0; i<5; i++) + { + str = tab[i]; str << ".txt"; + txtfile.check(FALSE, str); + tabcom.load(txtfile); + } + return TRUE; +} + +void TInstall_CE::main_loop() +{ + TConfig ini("install.ini","ce"); + const bool primainst=ini.get("Versione").blank(); + + TMask m("bainst11.msk"); + if (primainst) + m.set(F_LOADTAB,"X"); + if (m.run()!=K_QUIT && m.get_bool(F_LOADTAB)) + { + bool in_lire = m.get_bool(F_LIMITI); + install_com(in_lire); + } +} + +int bainst11(int argc, char** argv) +{ + TInstall_CE app; + app.run(argc, argv, "Installazione Cespiti"); + return 0; +} \ No newline at end of file diff --git a/ba/bainst11.h b/ba/bainst11.h new file mode 100755 index 000000000..e4917e95a --- /dev/null +++ b/ba/bainst11.h @@ -0,0 +1,3 @@ +#include "bainsta.h" +#define F_LOADTAB 101 +#define F_LIMITI 102 diff --git a/ba/bainst11.uml b/ba/bainst11.uml new file mode 100755 index 000000000..2f02e73aa --- /dev/null +++ b/ba/bainst11.uml @@ -0,0 +1,30 @@ +#include "bainst11.h" + +PAGE "Installazione CE" -1 -1 50 8 +// GROUP 1 = PRE-INSTALLATION +// GROUP 2 = POST-INSTALLATION + +BOOL F_LOADTAB +BEGIN + PROMPT 2 2 "Carica le tabelle Ministeriali" + MESSAGE FALSE,CLEAR F_LIMITI + MESSAGE TRUE,ENABLE F_LIMITI + GROUP 2 +END + +RADIOBUTTON F_LIMITI 1 46 +BEGIN + PROMPT 2 4 "Valuta tabella limiti" + FLAGS "Z" + ITEM "|EURO" + ITEM "X|Lire" + GROUP 2 +END + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -11 -1 "" +END + +ENDPAGE +ENDMASK diff --git a/ba/batbcms.h b/ba/batbcms.h new file mode 100755 index 000000000..20eb337cf --- /dev/null +++ b/ba/batbcms.h @@ -0,0 +1,11 @@ +#define F_CODICE 101 +#define F_DESCR 102 +#define F_CODCF 103 +#define F_IVA 104 +#define F_REND 105 +#define F_PUBB 106 +#define F_INIZIO 107 +#define F_FINE 108 +#define F_PROR 109 +#define F_RESP 110 +#define F_CHIUSA 111 diff --git a/ba/batbcms.uml b/ba/batbcms.uml new file mode 100755 index 000000000..e6d2d297b --- /dev/null +++ b/ba/batbcms.uml @@ -0,0 +1,125 @@ +#include "batbcms.h" + +TOOLBAR "" 0 20 0 2 + +#include + +ENDPAGE + +PAGE "Commesse" -1 -1 78 8 + +STRING F_CODICE 20 +BEGIN + PROMPT 4 2 "Codice Commessa " + FIELD CODTAB + FLAGS "UZ" + KEY 1 + USE CMS + INPUT CODTAB F_CODICE + DISPLAY "Codice@10" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_CODICE CODTAB + OUTPUT F_DESCR S0 + CHECKTYPE REQUIRED +END + +STRING F_DESCR 50 +BEGIN + PROMPT 4 4 "Descrizione " + FIELD S0 + KEY 2 + USE CMS KEY 2 + INPUT S0 F_DESCR + DISPLAY "Descrizione@60" S0 + DISPLAY "Codice@10" CODTAB + COPY OUTPUT F_CODICE + CHECKTYPE REQUIRED + WARNING "Manca la descrizione" +END + +NUMBER F_CODCF 6 +BEGIN + PROMPT 4 6 "Codice cliente " + FIELD I0 + USE LF_CLIFO + INPUT TIPOCF "C" + INPUT CODCF F_CODCF + DISPLAY "Codice@6R" CODCF + DISPLAY "Sospeso" SOSPESO + DISPLAY "Ragione sociale@50" RAGSOC + DISPLAY "Codice fiscale@16" COFI + DISPLAY "Partita IVA@11" PAIV + OUTPUT F_CODCF CODCF + CHECKTYPE REQUIRED + WARNING "Cliente assente" + ADD RUN cg0 -1 +END + +LIST F_IVA 20 +BEGIN + PROMPT 4 8 "Regime IVA " + FIELD S7 + HELP "Indicare il tipo di regime IVA" + ITEM " |IVA normale" + ITEM "NR|Non rilevante" + ITEM "ES|Operazioni esenti" + ITEM "NI|Non imponibili" + ITEM "NS|Non soggetti" + ITEM "FC|Fuori campo" +END + +BOOLEAN F_PUBB +BEGIN + PROMPT 4 10 "Pubblico" + FIELD B0 + MESSAGE FALSE CLEAR,F_REND + MESSAGE TRUE ENABLE,F_REND +END + +BOOLEAN F_REND +BEGIN + PROMPT 4 12 "Da rendicontare" + FIELD B1 +END + +DATE F_INIZIO +BEGIN + PROMPT 4 14 "Data inizio " + FIELD D0 +END + +DATE F_FINE +BEGIN + PROMPT 44 14 "Data fine " + FIELD D1 +END + +BOOLEAN F_PROR +BEGIN + PROMPT 4 16 "Prorogata" + FIELD B2 +END + +BOOLEAN F_CHIUSA +BEGIN + PROMPT 4 18 "Chiusa" + FIELD B3 +END + +STRING F_RESP 8 +BEGIN + PROMPT 4 20 "Responsabile " + FLAGS "U" + USE LF_USER SELECT ISGROUP!="X" + INPUT USERNAME F_RESP + DISPLAY "Utente@8" USERNAME + DISPLAY "Gruppo@8" GROUPNAME + DISPLAY "Descrizione@50" USERDESC + OUTPUT F_RESP USERNAME + CHECKTYPE SEARCH + FIELD S4 +END + +ENDPAGE + +ENDMASK diff --git a/ba/batbfsc.h b/ba/batbfsc.h new file mode 100755 index 000000000..29950d779 --- /dev/null +++ b/ba/batbfsc.h @@ -0,0 +1,2 @@ +#define F_CODICE 101 +#define F_DESCR 102 diff --git a/ba/batbfsc.uml b/ba/batbfsc.uml new file mode 100755 index 000000000..6d3832661 --- /dev/null +++ b/ba/batbfsc.uml @@ -0,0 +1,42 @@ +#include "batbfsc.h" + +TOOLBAR "" 0 20 0 2 + +#include + +ENDPAGE + +PAGE "Fasi Commesse" -1 -1 78 8 + +STRING F_CODICE 10 +BEGIN + PROMPT 4 2 "Codice Fase " + FIELD CODTAB + FLAGS "UZ" + KEY 1 + USE FSC + INPUT CODTAB F_CODICE + DISPLAY "Codice@10" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_CODICE CODTAB + OUTPUT F_DESCR S0 + CHECKTYPE REQUIRED +END + +STRING F_DESCR 50 +BEGIN + PROMPT 4 4 "Descrizione " + FIELD S0 + KEY 2 + USE FSC KEY 2 + INPUT S0 F_DESCR + DISPLAY "Descrizione@60" S0 + DISPLAY "Codice@10" CODTAB + COPY OUTPUT F_CODICE + CHECKTYPE REQUIRED + WARNING "Manca la descrizione" +END + +ENDPAGE + +ENDMASK diff --git a/ba/batbsce.txt b/ba/batbsce.txt index e7c67a88b..7d14db1f5 100755 --- a/ba/batbsce.txt +++ b/ba/batbsce.txt @@ -1,5 +1,5 @@ [Header] -Version=199518 +Version=199517 Fields=COD,3|CODTAB,25|S0,70|S1,70|S2,70|S3,70|S4,20|S5,20|S6,5|S7,5 Fields=S8,5|S9,5|S10,5|S11,5|I0,7|I1,7|I2,7|I3,7|I4,7|I5,7 Fields=I6,7|I7,7|I8,7|I9,7|I10,7|I11,7|I12,7|I13,7|I14,7|R0,18 diff --git a/ba/batbval.uml b/ba/batbval.uml index 3b6db07d3..77e87f760 100755 --- a/ba/batbval.uml +++ b/ba/batbval.uml @@ -76,6 +76,8 @@ BEGIN ITEM "1|1 decimale" ITEM "2|2 decimali" ITEM "3|3 decimali" + ITEM "4|4 decimali" + ITEM "5|5 decimali" FIELD I1 NUM_EXPR #THIS_FIELD>=#VAL_DECIMALS WARNING "Si devono specificare almeno tanti decimali quanti quelli degli importi" diff --git a/ba/cgarea.men b/ba/cgarea.men index 1443648ba..d7231419a 100755 --- a/ba/cgarea.men +++ b/ba/cgarea.men @@ -3,7 +3,7 @@ Caption = "Amministrazione" Picture = Module = 0 Item_01 = "Contabilita' generale", -Item_02 = "Gestione cespiti", "cesp -t /cPRAWIN.INI", "" +Item_02 = "Gestione cespiti", Item_03 = "Gestione percipienti", <77prassi.men> Item_04 = "Contabilita analitica", Item_05 = "Bilanci e Analisi", diff --git a/ce/cac.txt b/ce/cac.txt new file mode 100755 index 000000000..0b5a73ce6 --- /dev/null +++ b/ce/cac.txt @@ -0,0 +1,2116 @@ +[Header] +Version=199517 +Fields=COD,3|CODTAB,25|S0,70|S1,70|S2,70|S3,70|S4,20|S5,20|S6,5|S7,5 +Fields=S8,5|S9,5|S10,5|S11,5|I0,7|I1,7|I2,7|I3,7|I4,7|I5,7 +Fields=I6,7|I7,7|I8,7|I9,7|I10,7|I11,7|I12,7|I13,7|I14,7|R0,18 +Fields=R1,18|R2,18|R3,18|R4,18|R5,18|R6,18|R7,18|R8,18|R9,18|R10,18 +Fields=R11,18|R12,18|R13,18|R14,18|R15,18|R16,18|R17,18|R18,18|R19,18|D0,10 +Fields=D1,10|D2,10|D3,10|D4,10|B0,1|B1,1|B2,1|B3,1|B4,1|B5,1 +Fields=B6,1|B7,1|B8,1|B9,1|FPC,1 + +[Data] +CAC| 41|Registr.Cassa costo netto imposta > £ 1.500.000|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC| 42|Cespiti costo unitario non superiore a £ 50.000 DPR 597/73|||||||||||||2|1|||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||||||X| |X|X|||||||X +CAC| 44|Registr. Cassa costo netto imposta <= 1.500.000|||||||||||||2|1|||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||||||X| |X|X|||||||X +CAC| 45|Terreni Strumentali|||||||||||||2|1|||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||||||X| |X|X|||||||X +CAC| 46|Terreni non Strumentali|||||||||||||2|1|||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||||||X| |X|X|||||||X +CAC| 47|Fabbricati non Strumentali|||||||||||||2|1|||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||||||X| |X|X|||||||X +CAC| 48|Cespiti Forfettizzati|||||||||||||2|1|||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||||||X| |X|X|||||||X +CAC| 51|Brevetti Industriali DPR 597/73||||||||||||1|2|1|||||||||||||||||||||||0.00000|0.00000|0.00000|1.00000|0.00000|0.00000||||||||||X| |X|X|||||||X +CAC| 52|Diritti di Utilizzo di Opere dell'Ingegno DPR 597/73||||||||||||1|2|1|||||||||||||||||||||||0.01000|0.00000|0.00000|20.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC| 53|Diritti Utilizzo Marchi di Fabbrica e Commercio DPR 597/73||||||||||||1|2|1|||||||||||||||||||||||0.00000|0.00000|0.00000|20.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC| 54|Diritti Utilizzo di Processi, Formule e simili DPR 597/73||||||||||||1|2|1|||||||||||||||||||||||0.00000|0.00000|0.00000|20.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC| 55|Diritti Util.Informazioni su Esperienze Acquisite DPR 597/73||||||||||||1|2|1|||||||||||||||||||||||0.00000|0.00000|0.00000|20.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC| 56|Avviamento DPR 597/73||||||||||||1|2|1|||||||||||||||||||||||0.00000|0.00000|0.00000|20.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC| 57|Diritti di utilizzo (Art. 68/1 T.U.)||||||||||||1|2|1|||||||||||||||||||||||0.00000|0.00000|0.00000|33.34000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC| 58|Diritti di concessione (Art 68/2 T.U.)||||||||||||1|1|1|||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC| 59|Avviamento (Art. 68/3 T.U.)||||||||||||1|2|1|||||||||||||||||||||||0.00000|0.00000|0.00000|20.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC| 61|Costi Studi e Ricerche Imprese non di nuova costit. DPR 597||||||||||||2|2|3|5||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC| 62|Spese Pubblicita' in imprese non di nuova costit. DPR 597||||||||||||2|2|3|||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|||||||||| | |X|X| ||||||X +CAC| 63|Altri Costi Pluriennali imprese non di nuova costit. DPR 597||||||||||||2|2|3|5||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|||||||||| | |X|X| ||||||X +CAC| 64|Spese Manutenz./Riparaz. Straordinarie beni di terzi DPR 597||||||||||||2|2|3|5||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC| 65|Costi Pluriennali Forfettizzati||||||||||||2|2|1|||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||||||X| |X|X|||||||X +CAC| 66|Spese relative a studi e ricerche (Art. 74/1 T.U.)||||||||||||2|2|3|5||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC| 67|Spese di pubblicitą (Art. 74/2 T.U.)||||||||||||2|2|3|3||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||31-12-1995|||| | |X|X|||||||X +CAC| 68|Altre spese relative a piu' esercizi (Art. 74/3 T.U.)||||||||||||2|2|3|5||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC| 69|Spese di impianto||||||||||||2|2|3|5||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|||||||||| | | |X| ||||||X +CAC| 71|Costi Studi e Ricerche imprese nuova costit.sost.pre ricavi||||||||||||2|2|2|5||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|1.00000|50.00000|||||||||| | |X|X|||||||X +CAC| 72|Spese Pubblicita'imprese nuova costit.sost.prima cons.ricavi||||||||||||2|2|2|5||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|1.00000|50.00000|||||||||| | |X|X|||||||X +CAC| 73|Altri costi Plur. imprese nuova costit.sost.pre cons. ricavi||||||||||||2|2|2|5||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|1.00000|50.00000|||||||||| | |X|X|||||||X +CAC| 74|Spese Impianto imprese nuova costit.sosten.pre cons. ricavi||||||||||||2|2|2|5||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|1.00000|50.00000|||||||||| | |X|X|||||||X +CAC| 75|Interessi Passivi imprese nuova costit.sost.pre cons.ricavi||||||||||||2|2|3|5||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC| 80|Cespiti in costruzione|||||||||||||2|1|||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||||||X| |X|X|||||||X +CAC| 91|Spese di Manutenzione e Riparazione da Ammortizzare||||||||||||2|2|3|5||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|||||||||| |X|X|X|||||||X +CAC| 92|Spese di Manutenz.e Riparaz. Automezzi trasporto c.to terzi||||||||||||2|2|3|3||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|||||||||| |X|X|X|||||||X +CAC|01 1 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|01 1 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|01 1 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|01 1 08|Macchine agricole (compresi i trattori)|||||||||||||2|1|||||||||||||||||||||||0.00000|9.00000|9.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|01 1 12|Imp.ti mobili di irrigaz.-Carri agric.e botte-Att. di stalla|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|01 1 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|01 1 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|01 2 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|01 2 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|01 2 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|01 2 04|Fabbricati destinati all'industria (edifici)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|01 2 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|01 2 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|01 2 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|9.00000|9.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|01 2 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|01 2 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|01 4 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|01 4 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|01 4 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|01 4 06|Attrezzature e impianti (comprese le teleferiche)|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|01 4 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|01 4 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|01 5 01|Automezzi e mezzi aerei per sola difesa fitosanitaria|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|01 5 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|01 5 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|01 5 04|Fabbricati destinati all'industria (edifici)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|01 5 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|01 5 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|01 5 08|Macchine destinate al noleggio|||||||||||||2|1|||||||||||||||||||||||0.00000|9.00000|9.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|01 5 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|01 5 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|01 5 20|Mietitrebbiatrici ed altre macchine operatrici|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|01 5 21|Trattrici e macchine per movimento terra in agricoltura|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|01 5 22|Officina di manutenzione|||||||||||||2|1|||||||||||||||||||||||0.00000|6.50000|6.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|02 1 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|02 1 02|Macchine d'ufficio elettroniche ed elettromeccaniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|02 1 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|02 1 05|Costruzione leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|02 1 16|Edifici(compresi quelli x il ricovero degli animali e silos)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|02 1 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|02 1 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|02 1 20|Macchine per la prep. alimenti,macchinari gen., att.stalla|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|02 1 21|Macchine ed attrezzature di stalla altamente automatizzata|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|02 1 33|Silos in materiale ferroso|||||||||||||2|1|||||||||||||||||||||||0.00000|8.00000|8.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|02 1 34|Silos in materiale plastico|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|03 1 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|03 1 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|03 1 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|03 1 06|Attrezzatura particolare di pesca a bordo e a terra|||||||||||||2|1|||||||||||||||||||||||0.00000|31.50000|31.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|03 1 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|03 1 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|03 1 20|Motopescherecci (completi di equipaggiamento)|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|03 2 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|03 2 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|03 2 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|03 2 04|Fabbricati industriali|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|03 2 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|03 2 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|03 2 12|Impianti e macchinari generici|||||||||||||2|1|||||||||||||||||||||||0.00000|6.00000|6.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|03 2 13|Impianti e macchinari specifici (bacini d'allev.,forni,....)|||||||||||||2|1|||||||||||||||||||||||0.00000|8.00000|8.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|03 2 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|03 2 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|04 1 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|04 1 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 1 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 1 04|Fabbricati destinati all'industria (edifici,silos,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.00000|5.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 1 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 1 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|30.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 1 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|04 1 12|Impianti generici del soprasuolo|||||||||||||2|1|||||||||||||||||||||||0.00000|8.00000|8.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 1 13|Impianti specifici del soprasuolo|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 1 14|Impianti specifici del sottosuolo|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 1 15|Forni e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 1 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|04 1 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|04 1 20|Gallerie e pozzi (escluse le armature mobili)|||||||||||||2|1|||||||||||||||||||||||0.00000|6.00000|6.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 2 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|04 2 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 2 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 2 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.50000|5.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 2 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 2 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|30.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 2 11|Impianti per trattamento/depuramento acqua,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|04 2 12|Impianti generici del soprasuolo (come specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|8.00000|8.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 2 13|Impianti specifici del soprasuolo|||||||||||||2|1|||||||||||||||||||||||0.00000|11.00000|11.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 2 14|Impianti specifici del sottosuolo|||||||||||||2|1|||||||||||||||||||||||0.00000|16.00000|16.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 2 15|Forni e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 2 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|04 2 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|04 2 20|Gallerie e pozzi (escluse le armature mobili)|||||||||||||2|1|||||||||||||||||||||||0.00000|6.00000|6.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 3 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|04 3 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 3 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 3 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.00000|5.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 3 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 3 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|30.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 3 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|04 3 12|Impianti generici del soprasuolo (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|8.00000|8.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 3 13|Impianti specifici del soprasuolo|||||||||||||2|1|||||||||||||||||||||||0.00000|9.00000|9.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 3 14|Impianti specifici del sottosuolo|||||||||||||2|1|||||||||||||||||||||||0.00000|14.00000|14.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 3 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|04 3 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|04 3 20|Gallerie e pozzi (escluse le armature mobili)|||||||||||||2|1|||||||||||||||||||||||0.00000|6.00000|6.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 4 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|04 4 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 4 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 4 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.50000|5.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 4 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 4 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|35.00000|35.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 4 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|04 4 12|Impianti generici (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|8.00000|8.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 4 13|Impianti specifici (compresi i pozzi)|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 4 14|Impianti specifici industria per sfruttamento forze endogene|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 4 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|04 4 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|04 4 20|Autosonde,autoregistratori per rilievi geofisici e diversi|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 5 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 5 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|04 5 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 5 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 5 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 5 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|30.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 5 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 5 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|04 5 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|04 5 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|04 5 20|Escavatrici e pale meccaniche|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 6 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|04 6 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 6 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 6 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 6 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 6 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|30.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 6 08|Macchinari operatori ed impianti (compresi gli escavatori)|||||||||||||2|1|||||||||||||||||||||||0.00000|8.00000|8.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 6 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|04 6 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|04 6 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|04 7 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|04 7 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 7 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 7 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.50000|5.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 7 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 7 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|30.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 7 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|04 7 12|Impianti generici del soprasuolo (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|8.00000|8.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 7 13|Impianti specifici del soprasuolo|||||||||||||2|1|||||||||||||||||||||||0.00000|11.00000|11.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 7 14|Impianti specifici del sottosuolo|||||||||||||2|1|||||||||||||||||||||||0.00000|16.00000|16.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 7 15|Forni e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|04 7 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|04 7 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|04 7 20|Gallerie e pozzi (escluse le armature mobili)|||||||||||||2|1|||||||||||||||||||||||0.00000|6.00000|6.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 1 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|05 1 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 1 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 1 04|Fabbricati destinati all'industria (edifici,silos,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 1 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 1 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 1 08|Macchinari operatori e impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 1 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|05 1 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|05 1 20|Silos in materiale plastico|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 1 21|Silos in materiale ferroso|||||||||||||2|1|||||||||||||||||||||||0.00000|8.00000|8.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 1 35|Macchine per la preparazione degli alimenti|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|05 2 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|05 2 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 2 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 2 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 2 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 2 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 2 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 2 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|05 2 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|05 3 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|05 3 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 3 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 3 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 3 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 3 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 3 08|Macchinari operatori e impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|9.00000|9.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 3 15|Forni e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|14.00000|14.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 3 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|05 3 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|05 3 36|Impianti specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|05 3 37|Macchinari con rilevante componente elettronica|||||||||||||2|1|||||||||||||||||||||||0.00000|18.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|05 4 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|05 4 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 4 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 4 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 4 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 4 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 4 08|Macchinari operatori e impianti specifici(forni,imp.condiz.)|||||||||||||2|1|||||||||||||||||||||||0.00000|14.00000|14.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 4 12|Impianti generici (Servizio vapore-officina manutenz. ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|7.50000|7.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 4 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|05 4 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|05 5/a01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|05 5/a02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 5/a03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 5/a04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 5/a05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 5/a06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 5/a08|Macchinari operatori e impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 5/a18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|05 5/a19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|05 5/b01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|05 5/b02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 5/b03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 5/b04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 5/b05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 5/b06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 5/b08|Macchinari operatori e impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 5/b18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|05 5/b19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|05 6 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|05 6 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 6 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 6 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 6 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 6 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 6 08|Macchinari e impianti generici (come nella specie 4)|||||||||||||2|1|||||||||||||||||||||||0.00000|7.50000|7.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 6 09|Macchinari e impianti specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 6 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|05 6 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|05 7 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|05 7 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 7 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 7 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 7 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 7 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 7 08|Macchinari e impianti generici (come nella specie 4)|||||||||||||2|1|||||||||||||||||||||||0.00000|9.00000|9.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 7 09|Macchinari e impianti specifici (forni, impianti di condiz.)|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 7 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|05 7 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|05 8 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|05 8 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 8 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 8 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 8 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 8 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 8 08|Macchinari operatori e impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 8 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|05 8 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|05 9 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|05 9 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 9 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 9 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 9 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 9 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 9 08|Macchinari e impianti generici (come nella specie 4)|||||||||||||2|1|||||||||||||||||||||||0.00000|7.50000|7.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 9 09|Macchinari e impianti specifici (compresi imp. condizionam.)|||||||||||||2|1|||||||||||||||||||||||0.00000|14.00000|14.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|05 9 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|05 9 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0510 01|Autocarri,autoveicoli pesanti e mezzi trasporto interno,auto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0510 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0510 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0510 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0510 05|Costruzioni leggere|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0510 06|Attrezzatura varia e minuta di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0510 08|Macchinari e impianti generici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|7.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0510 09|Macchinari e impianti specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|16.00000|14.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0510 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0510 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0510 20|Automezzi dei depositi periferici per consegna ai clienti|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|30.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0511 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0511 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0511 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0511 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0511 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0511 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0511 08|Macchinari operatori e impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0511 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0511 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0512 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0512 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0512 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0512 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0512 05|Costruzioni leggere (tettoie,baracche,ecc)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0512 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0512 08|Macchinari operatori e impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0512 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0512 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0513 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0513 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0513 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0513 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0513 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0513 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0513 08|Macchinari operatori e impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0513 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0513 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0514 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0514 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0514 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0514 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0514 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0514 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0514 08|Macchinari operatori e impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0514 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0514 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0515 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0515 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0515 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0515 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0515 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0515 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0515 08|Macchinari operatori e impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0515 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0515 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0516 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0516 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0516 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0516 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0516 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0516 06|Attrezzatura varia e minuta e di laboratorio( casse e fusti)|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0516 08|Macchinari e impianti generici (come nella specie 4)|||||||||||||2|1|||||||||||||||||||||||0.00000|7.50000|7.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0516 09|Macchinari e impianti specifici (compresi imp. condizionam.)|||||||||||||2|1|||||||||||||||||||||||0.00000|14.00000|14.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0516 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0516 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0517 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0517 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0517 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0517 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0517 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0517 06|Attrezzatura varia e minuta e di laboratorio (frigorif.,ecc)|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0517 08|Macchinari operatori e impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0517 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0517 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0518 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0518 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0518 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0518 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0518 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0518 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0518 08|Macchinari operatori e impianti (compresi imp. condizionam.)|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0518 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0518 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|06 1 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|06 1 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 1 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 1 04|Fabbricati destinati all'industria (edifici,strade,acqu.ecc)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 1 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 1 06|Attrezzatura varia e minuta (attrezzi,scali di alaggio,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 1 12|Impianti generici e specifici (off. manutenz.-serv. vapore)|||||||||||||2|1|||||||||||||||||||||||0.00000|11.50000|11.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 1 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|06 1 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|06 2 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|06 2 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 2 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 2 04|Fabbricati destinati all'industria (edifici,strade,acq.,ecc)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 2 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 2 06|Attrezzatura varia e minuta (attrezzi,scali di alaggio,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 2 12|Impianti generici e specifici (off. manutenz.-serv. vapore)|||||||||||||2|1|||||||||||||||||||||||0.00000|11.50000|11.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 2 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|06 2 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|06 3 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|06 3 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 3 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 3 04|Fabbricati destinati all'industria (edifici,strade,acq.,ecc)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 3 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 3 06|Attrezzatura varia e minuta (attrezzi, scali di alaggio,ecc)|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 3 12|Impianti generici e specifici (off.manutenz.-serviz. vapore)|||||||||||||2|1|||||||||||||||||||||||0.00000|11.50000|11.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 3 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|06 3 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|06 4 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|06 4 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 4 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 4 04|Fabbricati destinati all'industria (edifici,strade,acq.,ecc)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 4 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 4 06|Attrezzatura varia e minuta (attrezzi,scali di alaggio,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 4 12|Impianti generici e specifici (off.manutenz.,serviz. vapore)|||||||||||||2|1|||||||||||||||||||||||0.00000|11.50000|11.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 4 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|06 4 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|06 5 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|06 5 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 5 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 5 04|Fabbricati destinati all'industria (edifici,strade,acq.,ecc)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 5 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 5 06|Attrezzatura varia e minuta (attrezzi,scali di alaggio,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 5 12|Impianti generici e specifici(off.manutenz.,serviz. vapore)|||||||||||||2|1|||||||||||||||||||||||0.00000|11.50000|11.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 5 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|06 5 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|06 6 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|06 6 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 6 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 6 04|Fabbricati destinati all'industria (edifici,strade,acq.,ecc)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 6 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 6 06|Attrezzatura varia e minuta (attrezzi,scali di alaggio,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 6 12|Impianti generici e specifici (off.manutenz.,serviz.vapore)|||||||||||||2|1|||||||||||||||||||||||0.00000|11.50000|11.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 6 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|06 6 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|06 7 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|06 7 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 7 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 7 04|Fabbricati destinati all'industria (edifici,strade,acq.,ecc)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 7 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 7 06|Attrezzatura varia e minuta (attrezzi e superfici attive)|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 7 09|Impianti e macchinari specifici (forni di cottura)|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 7 12|Impianti generici e specifici non compresi nella categoria 9|||||||||||||2|1|||||||||||||||||||||||0.00000|7.50000|7.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 7 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|06 7 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|06 8 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|06 8 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 8 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 8 04|Fabbricati destinati all'industria (edifici,strade,acq.,ecc)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 8 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 8 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 8 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|06 8 12|Impianti generici e specifici non compresi nella categ. 13|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 8 13|Impianti e macchinari specifici con interv. reagenti chimici|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 8 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|06 8 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|06 9 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|06 9 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 9 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 9 04|Fabbricati destinati all'industria (edifici,strade,acq.)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.00000|5.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 9 05|Costruzioni leggere (tettoie,baracche,ecc)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 9 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 9 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|06 9 13|Impianti generici e specifici non compresi nella voce seg.|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 9 14|Impianti/macchinari specif.(cromatura,ecc.)con int.rea.chim.|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|06 9 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|06 9 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|07 1/a01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|07 1/a02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/a03|Mobili e macchine ordinarie di ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/a04|Fabbricati destinati all'industria (edifici-op.idrauliche)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.00000|5.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/a05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/a06|Attrezzatura varia e minuta (stampi,attrezzi,laboratorio)|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/a09|Grandi impianti specifici macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/a11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|07 1/a12|Impianti generici (di produz.,di trasp. ecc.) e specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/a15|Forni e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/a18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|07 1/a19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|07 1/a38|Attrezzatura dei mezzi di produzione|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|07 1/a39|Attezzatura dei sistemi flessibili di produzione|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|30.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|07 1/b01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|07 1/b02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/b03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/b04|Fabbricati destinati all'industria (come specie1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.00000|5.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/b05|Costruzioni leggere (tettoie, baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/b06|Attrezzatura varia e minuta (stampi,modelli,attr.e laborat.)|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/b09|Grandi impianti specifici macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/b11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|07 1/b12|Impianti generici (come nella specie 1/a) e specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/b15|Forni e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/b18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|07 1/b19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|07 1/b20|Celle elettrolit. Impianti con intervento di reag.chimici|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/c01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|07 1/c02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/c03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/c04|Fabbricati destinati all'industria (come specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.00000|5.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/c05|Costruzioni leggere (tettoie,baracche, ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/c06|Attrezzatura varia e minuta (stampi, modelli e attrezzi)|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/c09|Macchinari specifici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/c11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|07 1/c12|Impianti generici (come nella specie 1/a) e specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/c15|Forni e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/c18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|07 1/c19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|07 1/d01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|07 1/d02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/d03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/d04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.00000|5.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/d05|Costruzioni leggere (tettoie, baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/d06|Attrezzatura varia e minuta (stampi, modelli ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/d11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|07 1/d12|Impianti generici (come nella specie 1/a) e specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/d15|Forni e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 1/d18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|07 1/d19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|07 1/d20|Celle elettrolit. Impianti con interv.di reagenti chim.ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 2 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|07 2 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 2 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 2 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 2 05|Costruzioni leggere (tettoie, baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 2 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 2 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|07 2 12|Impianti generici (come nella specie 1/a) e specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 2 13|Grandi impianti specifici e macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|15.50000|15.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 2 15|Forni di trattamento|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 2 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|07 2 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|07 3 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|07 3 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 3 03|Mobili e macchine ordinarie e d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 3 04|Fabbricati destinati all'industria (come specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 3 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 3 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 3 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|07 3 12|Impianti generici (come nella specie 1/a) e specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 3 13|Grandi impianti specifici e macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|15.50000|15.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 3 15|Forni di trattamento|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 3 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|07 3 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|07 4 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|07 4 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 4 03|Mobili e macchine ordinarie e d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 4 04|Fabbricati destinati all'industria (come specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 4 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 4 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 4 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|07 4 12|Impianti generici (come specie 1/a) e specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 4 13|Grandi Impianti specifici e macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|15.50000|15.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 4 15|Forni di trattamento|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 4 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|07 4 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|07 5 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|07 5 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 5 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 5 04|Fabbricati destinati all'industria (come specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 5 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 5 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 5 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|07 5 12|Impianti generici (come specie 1/a) e specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 5 13|Grandi impianti specifici e macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|15.50000|15.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 5 15|Forni di trattamento|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 5 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|07 5 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|07 6 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|07 6 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 6 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 6 04|Fabbricati destinati all'industria (come specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 6 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 6 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 6 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|07 6 12|Impianti generici(come nella specie 1/a) e specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 6 13|Impianti specifici e macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|15.50000|15.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 6 15|Forni e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 6 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|07 6 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|07 7 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|07 7 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 7 03|Mobili e macchine ordinarie e d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 7 04|Fabbricati destinati all'industria (come specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 7 05|Costruzioni leggere (tettoie, baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 7 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 7 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|07 7 12|Impianti generici (come nella specie 1/a) e specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 7 13|Grandi impianti specifici e macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|15.50000|15.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 7 15|Forni di trattamento|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 7 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|07 7 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|07 8 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|07 8 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 8 03|Mobili e macchine ordinarie e d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 8 04|Fabbricati destinati all'industria (come specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 8 05|Costruzioni leggere (tettoie, baracche, ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 8 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 8 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|07 8 12|Impianti generici (come specie 1/a) e specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 8 13|Grandi impianti specifici e macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|15.50000|15.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 8 15|Forni di trattamento|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 8 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|07 8 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|07 9 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|07 9 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 9 03|Mobili e macchine ordinarie e d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 9 04|Fabbricati destinati all'industria (come specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 9 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 9 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 9 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|07 9 12|Impianti generici (come specie 1/a) e specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 9 13|Grandi impianti specifici e macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|15.50000|15.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 9 15|Forni di trattamento|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|07 9 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|07 9 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0710 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0710 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0710 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0710 04|Fabbricati destinati all'industria (come specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0710 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0710 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0710 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0710 12|Impianti generici (come specie 1/a) e specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0710 13|Grandi impianti specifici e macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|15.50000|15.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0710 15|Forni di trattamento|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0710 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0710 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0711 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0711 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0711 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0711 04|Fabbricati destinati all'industria (come specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0711 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0711 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0711 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0711 12|Impianti generici (come specie 1/a) e specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0711 13|Grandi impianti specifici e macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|15.50000|15.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0711 15|Forni di trattamento|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0711 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0711 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0712 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0712 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0712 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0712 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0712 05|Costruzioni leggere (tettoie, baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0712 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0712 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0712 12|Impianti generici (come nella specie 1/a) e specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0712 13|Impianti specifici e macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|15.50000|15.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0712 15|Forni e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0712 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0712 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0713 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0713 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0713 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0713 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0713 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0713 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|35.00000|35.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0713 08|Macchinari|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0713 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0713 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0713 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0714 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0714 02|Macchine d'ufficio elettromeccaniche e elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0714 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0714 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0714 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0714 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|35.00000|35.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0714 08|Macchinari|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0714 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0714 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0714 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0715 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0715 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0715 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0715 04|Fabbricati destinati all'industria (come specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0715 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0715 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|35.00000|35.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0715 08|Macchinari|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0715 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0715 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0715 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0716/a01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0716/a02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0716/a03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0716/a04|Fabbricati destinati all'industria (come specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0716/a05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0716/a06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0716/a11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0716/a12|Imp.gener.(come nella specie 1/a) specif.e macch.non automat|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0716/a13|Impianti specifici e macchine operatrici automatiche|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0716/a15|Forni e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0716/a16|Centri di lavoro robotizzati|||||||||||||2|1|||||||||||||||||||||||0.00000|22.00000|22.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0716/a17|Strumenti di collaudo e controllo|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|30.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0716/a18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0716/a19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0716/a20|Celle elettrolit. e impianti con interv.di reag.chimici|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|17.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0716/b01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0716/b02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0716/b03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0716/b04|Fabbricati destinati all'industria (come specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0716/b05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0716/b06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0716/b11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0716/b12|Imp.gener.(come specie 1/a) specifici e macch.oper.non autom|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0716/b13|Impianti specifici e macchine operatrici automatiche|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0716/b15|Forni e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0716/b16|Centri di lavoro robottizzati|||||||||||||2|1|||||||||||||||||||||||0.00000|22.00000|22.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0716/b17|Strumenti di collaudo e controllo|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|30.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0716/b18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0716/b19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0716/b20|Celle elettrolit. e impianti con interv.di reagenti chimici|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|17.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0717 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0717 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0717 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0717 04|Fabbricati destinati all'industria (come specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0717 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0717 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0717 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0717 12|Imp.generici(come specie 1/a)specif.e macch.oper.non autom.|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0717 13|Impianti specifici e macchine operatrici automatiche|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0717 15|Forni e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0717 16|Centri di lavoro robotizzati|||||||||||||2|1|||||||||||||||||||||||0.00000|22.00000|22.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0717 17|Strumenti di collaudo e controllo|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|30.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0717 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0717 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0717 20|Celle elettrolitiche e impianti con interv.di reag.chimici|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|17.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0718 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0718 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0718 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0718 04|Fabbricati destinati all'industria (come specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0718 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0718 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0718 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0718 12|Impianti generici (come specie 1/a) e specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0718 15|Forni,loro pertinenze e impianti con interv.di reag.chimici|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0718 16|Centri di lavoro robotizzati|||||||||||||2|1|||||||||||||||||||||||0.00000|22.00000|22.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0718 17|Strumenti di collaudo e controllo|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|30.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0718 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0718 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0719 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0719 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0719 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0719 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0719 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0719 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0719 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0719 12|Imp. generici(v.specie 1/a),specifici- macch.oper. non autom|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0719 13|Impianti specifici e macchine operatrici automatiche|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0719 15|Forni e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0719 16|Centri di lavoro robotizzati|||||||||||||2|1|||||||||||||||||||||||0.00000|22.00000|22.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0719 17|Strumenti di collaudo e di controllo|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|30.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0719 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0719 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0719 20|Celle elettrolitiche e imp. con intervento reagenti chimici|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|17.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0720 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0720 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0720 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0720 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0720 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0720 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0720 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0720 12|Imp. generici(v.specie 1/a),specifici-macch.oper.non autom.|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0720 13|Impianti specifici e macchine operatrici automatiche|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0720 15|Forni e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0720 16|Centri di lavoro robotizzati|||||||||||||2|1|||||||||||||||||||||||0.00000|22.00000|22.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0720 17|Strumenti di collaudo e controllo|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|30.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0720 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0720 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0720 20|Celle elettrolitiche e imp. con intervento reagenti chimici|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|17.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0721 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0721 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0721 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0721 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0721 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0721 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0721 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0721 12|Impianti generici (come nella specie 1/a) e specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0721 15|Forni,loro pertinenze e imp. con intervento reagenti chimici|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0721 16|Centri di lavoro robotizzati|||||||||||||2|1|||||||||||||||||||||||0.00000|22.00000|22.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0721 17|Strumenti di collaudo e controllo|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|30.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0721 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0721 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0722 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0722 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0722 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0722 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0722 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0722 06|Attrezz.varia e minuta compresi imp. e strument.elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0722 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0722 12|Impianti generici (come nella specie 1/a) e specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0722 13|Impianti specifici e macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|15.50000|15.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0722 15|Forni e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0722 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0722 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0722 20|Celle elettrolitiche e imp. con intervento reagenti chimici|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|15.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0723 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0723 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0723 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0723 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0723 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0723 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|35.00000|35.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0723 08|Macchinari|||||||||||||2|1|||||||||||||||||||||||0.00000|15.50000|15.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0723 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0723 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0723 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0724 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0724 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0724 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0724 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0724 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0724 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|35.00000|35.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0724 08|Macchinari|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0724 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0724 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0724 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0725 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0725 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0725 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0725 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0725 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0725 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|35.00000|35.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0725 08|Macchinari|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0725 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0725 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0725 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0726 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0726 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0726 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0726 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0726 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0726 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|35.00000|35.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0726 08|Macchinari|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0726 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0726 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0726 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0727 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0727 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0727 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0727 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0727 05|Costruzioni leggere (tettoie,Baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0727 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|35.00000|35.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0727 08|Macchinari|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0727 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0727 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0727 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0728 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0728 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0728 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0728 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0728 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0728 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|35.00000|35.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0728 08|Macchinari|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0728 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0728 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0728 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0729 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0729 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0729 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0729 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0729 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0729 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|35.00000|35.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0729 08|Macchinari|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0729 11|Impianto per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0729 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0729 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|08 1 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|08 1 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 1 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 1 04|Fabbricati destinati all'industria (edifici,strade,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 1 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 1 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 1 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 1 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|08 1 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|08 1 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|08 2 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|08 2 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 2 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 2 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 2 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 2 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 2 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 2 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|08 2 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|08 2 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|08 3 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|08 3 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 3 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 3 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 3 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 3 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 3 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 3 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|08 3 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|08 3 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|08 4/a01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|08 4/a02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 4/a03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 4/a04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.50000|5.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 4/a05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 4/a06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 4/a09|Macchinari operatori ed impianti specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 4/a11|Ipianti per trattamentoi/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|08 4/a12|Impianti generici (off. manutenz.,mezzi sollev./carico/ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 4/a15|Forni e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|9.00000|9.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 4/a18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|08 4/a19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|08 4/b01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|08 4/b02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 4/b03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 4/b04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.50000|5.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 4/b05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 4/b06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 4/b11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|08 4/b12|Impianti generici(come specie 4/a) e specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 4/b15|Forni e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|15.50000|15.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 4/b18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|08 4/b19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|08 4/b20|Cave|||||||||||||2|1|||||||||||||||||||||||0.00000|8.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/a01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|08 5/a02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/a03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/a04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.50000|5.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/a05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/a06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/a09|Macchinari operatori ed impianti specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/a11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|08 5/a12|Impianti generici (come nella specie 4/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/a15|Forni e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|9.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/a18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|08 5/a19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|08 5/b01|Automezzi e mezzi di trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|08 5/b02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/b03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/b04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/b05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/b06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/b09|Macchinari operatori ed impianti specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/b11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|08 5/b12|Impianti generici (come nella specie 4/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/b15|Forni e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|14.00000|14.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/b18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|08 5/b19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|08 5/c01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|08 5/c02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/c03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/c04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/c05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/c06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/c09|Macchinari operatori ed impianti specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/c11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|08 5/c12|Impianti generici (come nella specie 4/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/c15|Forni e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|14.00000|14.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 5/c18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|08 5/c19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|08 6 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|08 6 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 6 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 6 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 6 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 6 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 6 09|Macchine operatori ed impianti specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 6 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|08 6 12|Impianti generici(come nella specie 4/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 6 15|Forni e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|14.00000|14.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 6 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|08 6 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|08 7 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|08 7 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 7 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 7 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 7 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 7 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 7 09|Macchinari operatori, impianti specifici e stampi|||||||||||||2|1|||||||||||||||||||||||0.00000|15.50000|15.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 7 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|08 7 12|Impianti generici (come nella specie 4/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 7 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|08 7 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|08 8 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|08 8 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 8 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 8 04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.50000|5.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 8 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 8 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 8 09|Macchinari operatori ed impianti specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 8 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|08 8 12|Impianti generici (come nella specie 4/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 8 15|Forni e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|22.00000|19.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|08 8 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|08 8 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|09 1/a01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|09 1/a02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 1/a03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 1/a04|Fabbricati destinati all'industria(edifici,strade,acq..ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|7.00000|7.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 1/a05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 1/a06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 1/a09|Macchinari operatori-impianti specif. lav. chimiche no corr.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.50000|15.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 1/a10|Macch.operat.-impianti specif.x lav.corrosive,celle,forni,ec|||||||||||||2|1|||||||||||||||||||||||0.00000|22.50000|22.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 1/a11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|09 1/a12|Impianti generici(officina manutenz.-servizi vapore-ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 1/a18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|09 1/a19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|09 1/b01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|09 1/b02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 1/b03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 1/b04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|7.00000|7.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 1/b05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 1/b06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 1/b09|Macchinari operatori e imp. specif. lav. chimiche no corros.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 1/b10|Macchinari operatori e imp. specif. lav. chimiche corrosive|||||||||||||2|1|||||||||||||||||||||||0.00000|19.00000|19.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 1/b11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|09 1/b12|Impianti generici (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 1/b18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|09 1/b19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|09 2 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|09 2 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 2 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 2 04|Fabbricati destinati all'industria (come specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.50000|5.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 2 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 2 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 2 09|Macchinari operatori e imp. specif. lav. chimiche no corros.|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 2 10|Macchinari operatori e imp. specif. lav. corrosive-forni-ecc|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 2 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|09 2 12|Impianti generici (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 2 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|09 2 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|09 2 20|Oleodotti,serbatoi,imp.stradali distribuzione(chioschi,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 2 21|Bombole gas di petrolio liquefatti|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 3/a01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|09 3/a02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 3/a03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 3/a04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 3/a05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 3/a06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 3/a09|Macchinari operatori ed impianti specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 3/a11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|09 3/a12|Impianti generici (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|9.00000|9.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 3/a15|Forni e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|14.00000|14.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 3/a18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|09 3/a19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|09 3/b01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|09 3/b02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 3/b03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 3/b04|Fabbricati ordinari|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 3/b05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 3/b06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 3/b08|Macchinari|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 3/b11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|09 3/b12|Impianti generici|||||||||||||2|1|||||||||||||||||||||||0.00000|8.00000|8.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 3/b15|Forni cottura e grafitazione|||||||||||||2|1|||||||||||||||||||||||0.00000|14.00000|14.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 3/b18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|09 3/b19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|09 4 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|09 4 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 4 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 4 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.50000|5.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 4 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 4 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 4 09|Macchinari operatori e imp. specif. lav. chimiche no corros.|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 4 10|Macchinari operatori e imp. specif. lav. chimiche corrosive|||||||||||||2|1|||||||||||||||||||||||0.00000|15.50000|15.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 4 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|09 4 12|Impianti generici (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 4 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|09 4 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|09 5 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|09 5 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 5 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 5 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 5 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 5 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 5 09|Macchinari operatori e impianti specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 5 10|Apparecchiature ed imp. specif. distribuz.(comprese bombole)|||||||||||||2|1|||||||||||||||||||||||0.00000|9.00000|9.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 5 11|Impianti per trattamento/depuramento acqu,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|09 5 12|Impianti generici (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|7.50000|7.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 5 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|09 5 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|09 6 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|09 6 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 6 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 6 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|7.00000|7.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 6 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 6 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 6 09|Macchinari operatori e impianti specifici x lav. meccaniche|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 6 10|Macchinari operatori e imp. specifici lavorazioni chimiche|||||||||||||2|1|||||||||||||||||||||||0.00000|15.50000|15.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 6 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|09 6 12|Impianti generici (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 6 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|09 6 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|09 7 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|09 7 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 7 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 7 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.50000|5.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 7 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 7 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 7 09|Macchinari operatori e impianti specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 7 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|09 7 12|Impianti generici (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 7 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|09 7 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|09 8 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|09 8 02|Maccchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 8 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 8 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.50000|5.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 8 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 8 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|35.00000|35.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 8 09|Macchinari operatori e imp. specif. lav. chimiche no corros.|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 8 10|Macchinari operatori e imp. specif. lav. chimiche corrosive|||||||||||||2|1|||||||||||||||||||||||0.00000|15.50000|15.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 8 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|09 8 12|Impianti generici (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 8 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|09 8 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|09 9 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|09 9 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 9 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 9 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.50000|5.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 9 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 9 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 9 09|Macchinari operatori e imp. specif. lav. chimiche no corros.|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 9 10|Macchinari operatori e imp.specif. lav. chimiche corrosive|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 9 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|09 9 12|Impianti generici (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|09 9 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|09 9 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0910/a01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0910/a02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0910/a03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0910/a04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|7.00000|7.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0910/a05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0910/a06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0910/a09|Macchinari operatori e imp. specif. lav. chimiche no corros.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0910/a10|Macchinari operatori e imp. specif. lav. chimiche corrosive|||||||||||||2|1|||||||||||||||||||||||0.00000|19.00000|19.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0910/a11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0910/a12|Impianti generici (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0910/a18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0910/a19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0910/b01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0910/b02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0910/b03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0910/b04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0910/b05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0910/b06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0910/b08|Macchinari operatori e impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|11.50000|11.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0910/b11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0910/b18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0910/b19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0911/a01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0911/a02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0911/a03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0911/a04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|6.00000|6.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0911/a05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0911/a06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|30.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0911/a09|Macchinari operatori e imp. specif. lav. chimiche no corros.|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0911/a10|Macchinari operatori e imp. specif. lav. chimiche corrosive|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0911/a11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0911/a12|Impianti generici (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0911/a18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0911/a19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0911/b01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0911/b02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0911/b03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0911/b04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|6.00000|6.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0911/b05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0911/b06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0911/b09|Macchinari operatori e impianti specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|14.00000|14.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0911/b11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0911/b12|Impianti generici (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0911/b18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0911/b19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0912 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0912 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0912 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0912 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|6.00000|6.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0912 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0912 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|30.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0912 09|Macchinari operatori e imp. specif. lav. chimiche no corros.|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0912 10|Macchinari operatori e imp. specif. lav. chimiche corrosive|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0912 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0912 12|Impianti generici (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0912 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0912 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0913 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0913 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0913 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0913 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.50000|5.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0913 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0913 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0913 09|Macchinari operatori e impianti specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|14.00000|14.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0913 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0913 12|Impianti generici (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|9.00000|9.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0913 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0913 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0914 01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|0914 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0914 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0914 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.50000|5.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0914 05|Costruzioni leggere (tettoie,baracche,ecc)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0914 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0914 09|Macchinari operatori e impianti specifici (compresi i forni)|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0914 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|0914 12|Impianti generici (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0914 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|0914 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|10 1/a01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|10 1/a02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|10 1/a03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|10 1/a04|Fabbricati destinati all'industria (edifici,strade,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.50000|5.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|10 1/a05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|10 1/a06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|10 1/a09|Macchinari operatori ed imp. specif. preparazione pasta, ecc|||||||||||||2|1|||||||||||||||||||||||0.00000|11.50000|11.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|10 1/a11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|10 1/a12|Impianti generici (imp. produz.,presa e distrib.energia,ecc)|||||||||||||2|1|||||||||||||||||||||||0.00000|9.00000|9.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|10 1/a13|Impianti preparazione liscivi e sbianche e per liscivazione|||||||||||||2|1|||||||||||||||||||||||0.00000|19.00000|19.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|10 1/a18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|10 1/a19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|10 1/b01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|10 1/b02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|10 1/b03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|10 1/b04|Fabbricati destinati all'industria (edifici,strade,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.50000|5.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|10 1/b05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|10 1/b06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|10 1/b09|Macchinari operatori ed imp. specif. preparazione pasta|||||||||||||2|1|||||||||||||||||||||||0.00000|11.50000|11.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|10 1/b11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|10 1/b12|Impianti generici (imp. produz.,presa e distrib.energia,ecc)|||||||||||||2|1|||||||||||||||||||||||0.00000|9.00000|9.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|10 1/b13|Impianti preparazione liscivi e sbianche e per liscivazione|||||||||||||2|1|||||||||||||||||||||||0.00000|19.00000|19.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|10 1/b18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|10 1/b19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|11 1 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|11 1 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|11 1 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|11 1 04|Fabbricati destinati all'industria(edifici,strade,pozzi,ecc)|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|11 1 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|11 1 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|11 1 08|Macchinari operatori e impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|11.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|11 1 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|11 1 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|11 1 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|11 2 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|11 2 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|11 2 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|11 2 04|Fabbricati destinati all'industria(edifici,strade,acq.,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|11 2 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|11 2 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|11 2 08|Macchinari operatori e impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|11.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|11 2 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|11 2 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|11 2 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|12 1 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|12 1 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 1 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 1 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 1 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 1 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 1 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 1 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|12 1 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|12 1 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|12 2 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|12 2 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 2 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 2 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 2 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 2 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 2 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 2 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|12 2 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|12 2 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|12 3 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|12 3 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 3 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 3 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 3 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 3 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 3 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 3 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|12 3 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|12 3 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|12 4 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|12 4 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 4 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 4 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 4 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 4 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 4 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 4 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|12 4 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|12 4 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|12 5/a01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|12 5/a02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 5/a03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 5/a04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 5/a05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 5/a06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 5/a08|Macchinari operatori e impianti(escl.quelli in amb. corros.)|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 5/a09|Macchinari operatori di finissaggio ed imp. in amb. normale|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 5/a10|Macchinari operatori di finissaggio ed imp. in amb. corros.|||||||||||||2|1|||||||||||||||||||||||0.00000|18.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 5/a11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|12 5/a18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|12 5/a19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|12 5/b01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|12 5/b02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 5/b03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 5/b04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 5/b05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 5/b06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 5/b08|Macchinari operatori e impianti (escl.quelli in amb.corros.)|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 5/b09|Macchinari operatori di finissaggio ed imp. in amb. normale|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 5/b10|Macchinari operatori di finissaggio ed imp. in amb. corros.|||||||||||||2|1|||||||||||||||||||||||0.00000|18.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 5/b11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|12 5/b18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|12 5/b19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|12 5/c01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|12 5/c02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 5/c03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 5/c04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 5/c05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 5/c06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 5/c08|Macchinari operatori e impianti(escl.quelli in amb. corros.)|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 5/c09|Macchinari operatori di finissaggio ed imp. in amb. normale|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 5/c10|Macchinari operatori di finissaggio ed imp. in amb. corros.|||||||||||||2|1|||||||||||||||||||||||0.00000|18.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 5/c11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|12 5/c18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|12 5/c19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|12 6 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|12 6 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 6 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 6 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 6 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 6 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 6 08|Macchinari operatori e Impianti(esc.quelli ambiente corr.)|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 6 09|Macchinari operatori finissaggio ed imp. in ambiente normale|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 6 10|Macchinari operatori finissaggio ed imp. ambiente corrosivo|||||||||||||2|1|||||||||||||||||||||||0.00000|18.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 6 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|12 6 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|12 6 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|12 7 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|12 7 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 7 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 7 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 7 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 7 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 7 08|Macchinari operatori ed Impianti(esc.quelli ambiente corr.)|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 7 09|Macchinari operatori finissaggio ed imp. in ambiente normale|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 7 10|Macchinari operatori finissaggio ed imp. ambiente corrosivo|||||||||||||2|1|||||||||||||||||||||||0.00000|18.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 7 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|12 7 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|12 7 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|12 8 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|12 8 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 8 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 8 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 8 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 8 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 8 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 8 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|12 8 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|12 8 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|12 9 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|12 9 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 9 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 9 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 9 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 9 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 9 08|Macchinari operatori e impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|12 9 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|12 9 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|12 9 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|1210 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|1210 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1210 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1210 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1210 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1210 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1210 08|Macchinari operatori ed Impianti(esc.quelli amb. corrosivo)|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1210 09|Macchinari operatori finissaggio ed imp. ambiente normale|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1210 10|Macchinari operatori finissaggio ed imp. ambiente corrosivo|||||||||||||2|1|||||||||||||||||||||||0.00000|18.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1210 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|1210 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|1210 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|1211 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|1211 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1211 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1211 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1211 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1211 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1211 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1211 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|1211 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|1211 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|1212 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|1212 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1212 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1212 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1212 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1212 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1212 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1212 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|1212 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|1212 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|13 1 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|13 1 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 1 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 1 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 1 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 1 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 1 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 1 09|Grandi impianti e macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|13 1 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|13 1 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|13 2 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|13 2 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 2 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 2 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 2 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 2 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 2 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 2 09|Grandi impianti e macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|13 2 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|13 2 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|13 3 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|13 3 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 3 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 3 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 3 05|Costruzioni leggere (tettoie, baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 3 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 3 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 3 09|Grandi impianti e macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|13 3 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|13 3 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|13 4 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|13 4 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 4 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 4 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 4 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 4 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 4 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 4 09|Grandi impianti e macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|13 4 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|13 4 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|13 5 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|13 5 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 5 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 5 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 5 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 5 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 5 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 5 09|Grandi impianti e macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|13 5 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|13 5 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|13 6 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|13 6 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 6 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 6 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 6 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 6 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 6 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 6 09|Grandi impianti e macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|13 6 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|13 6 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|13 7 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|13 7 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 7 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 7 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 7 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 7 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 7 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 7 09|Grandi impianti e macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|13 7 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|13 7 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|13 8 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|13 8 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 8 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 8 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 8 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 8 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 8 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 8 09|Grandi impianti e macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|13 8 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|13 8 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|13 9 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|13 9 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 9 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 9 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 9 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 9 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 9 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|13 9 09|Grandi impianti e macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|13 9 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|13 9 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|1310 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|1310 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1310 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1310 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1310 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1310 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1310 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1310 09|Macchinari operatori e imp. per stampaggio resine sintetiche|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1310 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|1310 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|1311 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|1311 02|Macchine d'ufficio elettroniche ed elettromeccaniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1311 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1311 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1311 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1311 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1311 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1311 09|Grandi impianti e macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|1311 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|1311 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|1312 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|1312 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1312 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1312 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1312 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1312 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1312 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1312 09|Grandi impianti e macchine operatrici automatici|||||||||||||2|1|||||||||||||||||||||||0.00000|17.50000|17.50000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|1312 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|1312 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|1313 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|1313 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1313 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1313 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1313 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1313 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1313 08|Macchinari operatori e impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1313 09|Macchinari operatori e imp. per stampaggio resine sintetiche|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1313 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|1313 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|14 1/a01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|14 1/a02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/a03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/a04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/a05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/a06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/a09|Macchinari operatori ed impianti specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/a11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|14 1/a12|Impianti generici (servizio vapore e acqua calda, ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/a18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|14 1/a19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|14 1/b01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|14 1/b02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/b03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/b04|Fabbricati destinati all'industria (come nella specie 1)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/b05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/b06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/b09|Macchinari operatori ed impianti specifici|||||||||||||2|1|||||||||||||||||||||||0.00000|11.50000|11.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/b11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|14 1/b12|Impianti generici (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/b18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|14 1/b19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|14 1/c01|Automezzi e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|14 1/c02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/c03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/c04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/c05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/c06|Attrezzature varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/c09|Macchinari operatori,impianti specif.,forni/stampi compresi|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/c11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|14 1/c12|Impianti generici (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|7.50000|7.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/c18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|14 1/c19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|14 1/d01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|14 1/d02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/d03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/d04|Fabbricati ordinari ed altri manufatti|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/d05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/d06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/d11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|14 1/d12|Impianti generici|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/d13|Impianti specifici(registrazioni,incisioni,prod. dischi,ecc)|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|30.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 1/d18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|14 1/d19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|14 2 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|14 2 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 2 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 2 04|Fabbricati destinati all'industria (come nella specie 1/a)|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 2 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 2 06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 2 08|Macchinari operatori ed impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|14 2 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|14 2 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|14 2 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|15 1 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|15 1 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|15 1 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|15 1 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|15 1 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|15 1 06|Attrezzatura varia e minuta (comprese fustelle e tipi)|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|15 1 07|Impianti di acclimazione|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|15 1 08|Macchinari operatori non automatici ed impianti generici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|15 1 09|Macchinari operatori automatici e per operazioni di finitura|||||||||||||2|1|||||||||||||||||||||||0.00000|15.50000|15.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|15 1 10|Rotative da stampa per carta in bobine|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|15 1 11|Sistemi elettronici di fotoriproduzione,fotocompos. e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|15 1 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|15 1 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|15 2 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|15 2 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|15 2 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|15 2 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|15 2 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|15 2 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|15 2 08|Macchinari operatori e impianti|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|15 2 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|15 2 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|15 3 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|15 3 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|15 3 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|15 3 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|15 3 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|15 3 06|Attrezzatura varia e minuta (comprese fustelle e tipi)|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|15 3 07|Impianti di acclimazione|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|15 3 08|Macchinari operatori non automatici ed impianti generici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|15 3 09|Macchinari operatori automatici e per operazioni di finitura|||||||||||||2|1|||||||||||||||||||||||0.00000|15.50000|15.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|15 3 10|Rotative da stampa per carta in bobine|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|15 3 11|Sistemi elettronici di fotoriproduzione,fotocompos. e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|15 3 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|15 3 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|16 1 01|Automezzi escavatori e pale meccaniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|16 1 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|16 1 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|16 1 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|16 1 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|16 1 06|Attrezzatura varia e minuta compresi i ponteggi in legno|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|16 1 09|Macch.operatori ed impianti specifici(x costruz. edili ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|16 1 10|Casseformi metalliche e palancole metalliche|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|16 1 12|Impianti generici (elementi per tettoie e baracche ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|16 1 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|16 1 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|16 1 20|Escavatori e pale meccaniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|16 1/a01|Automezzi, escavatori e pale meccaniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | | |X|||||||X +CAC|16 1/a02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|16 1/a03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|16 1/a04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|16 1/a05|Costruzioni leggere (tettoie, baracche, ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|10.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|16 1/a06|Attrezzatura varia e minuta compresi i ponteggi in legno|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|16 1/a09|Macch.operatori/impianti specifici(x costr.-compressori,ecc)|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|12.50000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|16 1/a10|Casseformi metalliche e palancole metalliche|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|16 1/a12|Impianti generici (elementi per tettoie, baracche, ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|16 1/a18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|16 1/a19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|16 1/a20|Escavatori e pale meccaniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|16 1/b01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|16 1/b02|Macchine ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|16 1/b03|Mobili e macchine ordinarie d'ufficio e arredi|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|16 1/b04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|16 1/b06|Attrez.varia(strumenti misura elettrici/elettronici e scale)|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|16 1/b18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|16 1/b19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|16 1/b20|Compressori,martelli pneumatici,motopompe,scavatori,pale mec|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|16 1/c01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|16 1/c02|Macchine ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|16 1/c03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|16 1/c04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|16 1/c05|Costruzioni leggere|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|16 1/c06|Attrezzatura varia|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|16 1/c09|Macchinari operatori e impianti specifici e stampi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|16 1/c12|Impianti generici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|16 1/c18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|16 1/c19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|17 1/a01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|17 1/a02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 1/a03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 1/a04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 1/a05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 1/a06|Attrezzatura varia e minuta-Apparecchi di misura e controllo|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 1/a11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|17 1/a18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|17 1/a19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|17 1/a20|Opere idrauliche fisse|||||||||||||2|1|||||||||||||||||||||||0.00000|1.00000|1.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 1/a21|Condotte forzate|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 1/a22|Centrali idroelettriche (esclusi i fabbricati)|||||||||||||2|1|||||||||||||||||||||||0.00000|7.00000|7.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 1/a23|Linee di trasporto A.T.|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 1/a24|Sottostazioni di trasformazione (esclusi i fabbricati)|||||||||||||2|1|||||||||||||||||||||||0.00000|7.00000|7.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 1/a25|Rete di distribuzione B.T.|||||||||||||2|1|||||||||||||||||||||||0.00000|8.00000|8.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 1/b01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|17 1/b02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 1/b03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 1/b04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 1/b05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 1/b06|Attrezzatura varia e minuta-Apparecchi di misura e controllo|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 1/b11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|17 1/b18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|17 1/b19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|17 1/b20|Centrali termoelettriche (esclusi i fabbricati)|||||||||||||2|1|||||||||||||||||||||||0.00000|9.00000|9.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 1/b21|Linee di trasporto A.T.|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 1/b22|Sottostazioni di Trasformazione (esclusi i fabbricati)|||||||||||||2|1|||||||||||||||||||||||0.00000|7.00000|7.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 1/b23|Rete di distribuzione B.T.|||||||||||||2|1|||||||||||||||||||||||0.00000|8.00000|8.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 2/a01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|17 2/a02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 2/a03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 2/a04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 2/a05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 2/a06|Attrezzatura varia e minuta-Apparecchi di misura e controllo|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 2/a11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|17 2/a12|Impianti generici (compresi quelli di miscelazione metano)|||||||||||||2|1|||||||||||||||||||||||0.00000|8.00000|8.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 2/a13|Impianti di produzione e filtrazione|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 2/a18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|17 2/a19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|17 2/a20|Gasometri|||||||||||||2|1|||||||||||||||||||||||0.00000|5.00000|5.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 2/a21|Condutture|||||||||||||2|1|||||||||||||||||||||||0.00000|5.00000|5.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 2/b01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|17 2/b02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 2/b03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 2/b04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|5.50000|5.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 2/b05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 2/b06|Attrezz.varia e minuta-Apparecchi misura/controllo e bombole|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 2/b11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|17 2/b18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|17 2/b19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|17 2/b20|Pozzi di estrazione e pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 2/b21|Serbatoi (vasche di contenimento)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.00000|5.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 2/b22|Metanodotti:condotte dorsali trasp. da centri produzione|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 2/b23|Metanodotti:condotte dorsali trasp. dai giacimenti gassosi|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 2/b24|Metanodotti:condotte per usi civili (reti urbane)|||||||||||||2|1|||||||||||||||||||||||0.00000|8.00000|8.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 2/b25|Stazioni di compressione e pompaggio|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 3 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|17 3 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 3 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 3 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.50000|3.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 3 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 3 06|Attrezzatura varia e minuta-App. misura e controllo laborat.|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 3 12|Impianti di filtrazione|||||||||||||2|1|||||||||||||||||||||||0.00000|8.00000|8.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 3 13|Impianti di sollevamento|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|8.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 3 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|17 3 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|17 3 20|Opere idrauliche fisse|||||||||||||2|1|||||||||||||||||||||||0.00000|2.50000|1.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 3 21|Serbatoi|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 3 22|Condutture|||||||||||||2|1|||||||||||||||||||||||0.00000|5.00000|5.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 4/a01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|17 4/a02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 4/a03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 4/a07|Attrezzatura da spiaggia (ombrelloni, sedie,tende)|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|30.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 4/a18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|17 4/a19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|17 4/a20|Stabilimenti in muratura|||||||||||||2|1|||||||||||||||||||||||0.00000|6.00000|6.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 4/a21|Stabilimenti in legno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 4/a22|Natanti e galleggianti|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 4/b01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|17 4/b02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 4/b03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 4/b04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 4/b05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 4/b06|Attrezzatura varia e minuta e di laboratorio|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 4/b12|Impianti di filtrazione e di imbottigliamento|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 4/b13|Impianti di sollevamento e macchinari in genere|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 4/b18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|17 4/b19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|17 4/b20|Opere idrauliche fisse e pozzi estrazione e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|2.00000|2.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 4/b21|Serbatoi|||||||||||||2|1|||||||||||||||||||||||0.00000|5.00000|5.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 4/b22|Condutture|||||||||||||2|1|||||||||||||||||||||||0.00000|8.00000|8.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|17 4/b23|Biancheria|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 1 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|18 1 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 1 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 1 04|Fabbricati destinati all'industria (edifici d'aeroporto)|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 1 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 1 12|Impianti e mezzi di carico,scarico,sollevamento e trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 1 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|18 1 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|18 1 20|Piste, moli e terreni ad esse adibiti|||||||||||||2|1|||||||||||||||||||||||0.00000|1.00000|1.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 1 21|Opere d'arte fisse|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 1 22|Aereo completo di equipaggiamento (compreso motore a terra)|||||||||||||2|1|||||||||||||||||||||||0.00000|14.00000|14.00000|0.00000|0.00000|0.00000||||||31-12-1993|||| | |X|X|||||||X +CAC|18 1 23|Nave passeggeri|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 1 24|Nave da carico cisterna e frigorifera|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 1 25|Nave da carico per carico secco|||||||||||||2|1|||||||||||||||||||||||0.00000|9.00000|9.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 1 26|Nave per navigaz. interna in acciaio o ferro,Ferry-boat,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|7.50000|7.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 1 27|Nave per navigazione interna in legno - Barconi,chiatte,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|9.00000|9.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 1 28|Navi gią in esercizio per almeno due quadrienni di classe...|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 1 29|Apparecchi segnalaz. in genere,attrezz.di pista-serv.carbur.|||||||||||||2|1|||||||||||||||||||||||0.00000|31.50000|31.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 1 30|Contenitori grandi dimensioni in metallo o materiale plast.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 1 31|Aliscafi|||||||||||||2|1|||||||||||||||||||||||0.00000|13.00000|13.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 2 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|18 2 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 2 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 2 04|Fabbricati destinati all'industria (edifici aeroportuali)|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 2 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 2 12|Impianti e mezzi di carico,scarico,sollevamento e trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 2 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|18 2 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|18 2 20|Moli e terreni ad essi adibiti|||||||||||||2|1|||||||||||||||||||||||0.00000|1.00000|1.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 2 21|Opere d'arte fisse|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 2 22|Aereo completo di equipaggiamento (compreso motore a terra)|||||||||||||2|1|||||||||||||||||||||||0.00000|14.00000|14.00000|0.00000|0.00000|0.00000||||||31-12-1993|||| | |X|X|||||||X +CAC|18 2 23|Nave passeggeri|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 2 24|Nave da carico cisterna o frigorifera|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 2 25|Nave da carico per carico secco|||||||||||||2|1|||||||||||||||||||||||0.00000|9.00000|9.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 2 26|Nave per navigaz. interna in acciaio o ferro,Ferry-boat,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|7.50000|7.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 2 27|Nave per navigazione interna in legno - Barconi,chiatte,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|9.00000|9.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 2 28|Navi gią in esercizio per almeno due quadrienni di classe...|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 2 29|Apparecchi di Segnalazione in genere,servizio carburanti|||||||||||||2|1|||||||||||||||||||||||0.00000|31.50000|31.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 2 30|Contenitori grandi dimensioni in metallo o materiale plast.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 2 31|Aliscafi|||||||||||||2|1|||||||||||||||||||||||0.00000|13.00000|13.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 3 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|18 3 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 3 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 3 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 3 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 3 12|Impianti e mezzi di carico,scarico,sollevamento e trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 3 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|18 3 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|18 3 20|Moli e terreni ad essi adibiti|||||||||||||2|1|||||||||||||||||||||||0.00000|1.00000|1.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 3 21|Opere d'arte fisse|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 3 22|Aereo completo di equipaggiamento (compreso motore a terra)|||||||||||||2|1|||||||||||||||||||||||0.00000|14.00000|14.00000|0.00000|0.00000|0.00000||||||31-12-1993|||| | |X|X|||||||X +CAC|18 3 23|Nave passeggeri|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 3 24|Nave da carico cisterna o frigorifera|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 3 25|Nave da carico per carico secco|||||||||||||2|1|||||||||||||||||||||||0.00000|9.00000|9.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 3 26|Nave per navigaz. interna in acciaio o ferro,Ferry-boat,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|7.50000|7.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 3 27|Nave per navigazione interna in legno - Barconi,chiatte,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|9.00000|9.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 3 28|Navi gią in esercizio per almeno due quadrienni di classe...|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 3 29|Apparecchi di segnalazione in genere,servizio carburanti|||||||||||||2|1|||||||||||||||||||||||0.00000|31.50000|31.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 3 30|Contenitori grandi dimensioni in metallo o materiale plast.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 3 31|Aliscafi|||||||||||||2|1|||||||||||||||||||||||0.00000|13.00000|13.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 4 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|18 4 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 4 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 4 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 4 06|Attrez. varia e minuta-Mobili e macch. ord. d'uff.,stazione|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 4 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|18 4 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|18 4 20|Terreni adibiti alle linee e servizi ferroviari|||||||||||||2|1|||||||||||||||||||||||0.00000|1.00000|1.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 4 21|Opere d'arte fisse (ponti,viadotti,gallerie)|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 4 22|Altre opere d'arte|||||||||||||2|1|||||||||||||||||||||||0.00000|11.50000|11.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 4 23|Pali metallici|||||||||||||2|1|||||||||||||||||||||||0.00000|5.00000|5.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 4 24|Binari (rotaie,traverse,morsetterie)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 4 25|Motrici in genere|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 4 26|Materiale rotabile,ferroviario e tramviario(motrici escluse)|||||||||||||2|1|||||||||||||||||||||||0.00000|7.50000|7.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 4 27|Materiale mobile-Imp. a cavo e filoviario(filobus,funivie..)|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 4 28|Officina meccanica|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 4 29|Contenitori grandi dimens. in metallo o materiale plastico|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 5 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|18 5 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 5 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 5 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 5 06|Attrez. varia e minuta-Mobili e macch. ord. d'uff.,stazione|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 5 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|18 5 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|18 5 20|Terreni adibiti alle linee e servizi ferroviari|||||||||||||2|1|||||||||||||||||||||||0.00000|1.00000|1.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 5 21|Opere d'arte fisse (ponti,viadotti,gallerie)|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 5 22|Altre opere d'arte|||||||||||||2|1|||||||||||||||||||||||0.00000|11.50000|11.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 5 23|Pali metallici|||||||||||||2|1|||||||||||||||||||||||0.00000|5.00000|5.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 5 24|Binari (rotaie,traverse,morsetterie)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 5 25|Motrici in genere|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 5 26|Materiale rotabile,ferroviario e tramviario(motrici escluse)|||||||||||||2|1|||||||||||||||||||||||0.00000|7.50000|7.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 5 27|Materiale mobile-Imp. a cavo e filoviario(filobus,funivie..)|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 5 28|Officina meccanica|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 5 29|Contenitori grandi dimens. in metallo o materiale plastico|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 6 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | | |X|||||||X +CAC|18 6 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 6 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 6 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 6 06|Attrezzatura varia e minuta-Mobili e macchine ord. d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 6 07|Attrezzatura varia e minuta-Accumulatori per carri elettrici|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 6 19|Autovetture, motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | |X|||||||X +CAC|18 6 20|Autobus di linea adibiti servizi pubblici di linea e extra.|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 6 21|Autocarri e rimorchi per trasporto di cose|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1991|||| | |X|X|||||||X +CAC|18 6 22|Autovetture in genere (servizio pubblico)|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 6 23|Autofurgoni e motofurgoni|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 6 24|Trattori - Carri attrezzi - Carrelli elettrici|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 6 25|Veicoli a traino animale|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 6 26|Offic. meccanica-Mezzi sollevam. peso-Imp. carica batterie|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 6 27|Contenitori grandi dimens. in metallo o materiale plastico|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 6 28|Contenitori e bottiglie trasp. esafluoruro di uranio, ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|50.00000|50.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 7 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | | |X|||||||X +CAC|18 7 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 7 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 7 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 7 06|Attrezzatura varia e minuta-Mobili e macchine ord. d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 7 07|Attrezzatura varia e minuta-Finimenti per traino animali|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 7 19|Autovetture, motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | |X|||||||X +CAC|18 7 20|Autobus di linea adibiti servizi pubblici di linea e extra.|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 7 23|Autofurgoni e motofurgoni|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 7 24|Trattori - Carri attrezzi - Carrelli elettrici|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 7 25|Veicoli a traino animale|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 7 26|Offic. meccanica-Mezzi sollevam. peso-Imp. carica batterie|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 7 27|Contenitori grandi dimens. in metallo o materiale plastico|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 7 28|Contenitori e bottiglie trasp. esafluoruro di uranio, ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|50.00000|50.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 8 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | | |X|||||||X +CAC|18 8 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 8 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 8 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 8 06|Attrezzatura varia e minuta-Mobili e macchine ord. d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 8 07|Attrezzatura varia e minuta-Accumulatori per carri elettrici|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 8 19|Autovetture, motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | |X|||||||X +CAC|18 8 20|Autobus di linea adibiti servizi pubblici di linea e extra.|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 8 21|Autocarri e rimorchi per trasporto di cose|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1991|||| | |X|X|||||||X +CAC|18 8 22|Autovetture in genere (servizio pubblico)|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 8 23|Autofurgoni e motofurgoni|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 8 24|Trattori - Carri attrezzi - Carrelli elettrici|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 8 25|Veicoli a traino animale|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 8 26|Offic. meccanica-Mezzi sollevam. peso-Imp. carica batterie|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 8 27|Contenitori grandi dimens. in metallo o materiale plastico|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 8 28|Contenitori e bottiglie trasp. esafluoruro di uranio, ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|50.00000|50.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 9 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | | |X|||||||X +CAC|18 9 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 9 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 9 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 9 06|Attrezzatura varia e minuta-Mobili e macchine ord. d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 9 07|Attrezzatura varia e minuta-Parati per pompe funebri|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 9 19|Autovetture, motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | |X|||||||X +CAC|18 9 20|Autobus di linea adibiti servizi pubblici di linea e extra.|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 9 21|Autocarri e rimorchi per trasporto di cose|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1991|||| | |X|X|||||||X +CAC|18 9 22|Autovetture in genere (servizio pubblico)|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 9 23|Autofurgoni e motofurgoni|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 9 24|Trattori - Carri attrezzi - Carrelli elettrici|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 9 25|Veicoli a traino animale|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 9 26|Offic. meccanica-Mezzi sollevam. peso-Imp. carica batterie|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 9 27|Contenitori grandi dimens. in metallo o materiale plastico|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|18 9 28|Contenitori e bottiglie trasp. esafluoruro di uranio, ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|50.00000|50.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1810/a01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|1810/a02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1810/a03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1810/a04|Fabbricati ordinari ed altri manufatti|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1810/a05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1810/a06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1810/a07|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|6.00000|6.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|1810/a08|Centrali e impianti elettronici|||||||||||||2|1|||||||||||||||||||||||0.00000|18.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|1810/a18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|1810/a19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|1810/a20|Centrali manuali ed elettromeccaniche|||||||||||||2|1|||||||||||||||||||||||0.00000|8.00000|8.00000|0.00000|0.00000|0.00000||||||31-12-1995|||| | |X|X|||||||X +CAC|1810/a21|Ponti radio,circuiti(apparecchiature) A.F. ed amplificazioni|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1810/a22|Rete aerea e pali di sostegno|||||||||||||2|1|||||||||||||||||||||||0.00000|8.00000|8.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1810/a23|Cavi sotterranei|||||||||||||2|1|||||||||||||||||||||||0.00000|5.00000|5.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1810/a24|Cavi sottomarini|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1810/a25|Poste pubbliche e di abbonato,cabine,impianti interni,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1810/b01|Automezzi non attrezzati|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|1810/b02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1810/b03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1810/b04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|6.00000|6.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1810/b05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1810/b18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|1810/b19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|1810/b20|Impianti radiofonici|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1810/b21|Impianti di sincronizzazione e centri di controllo|||||||||||||2|1|||||||||||||||||||||||0.00000|15.50000|15.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1810/b22|Impianti di telediffusione e di televisione|||||||||||||2|1|||||||||||||||||||||||0.00000|19.00000|19.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1810/b23|Impianti di registrazione e ponti radio|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1810/b24|Cavi sottomarini|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1810/b25|Dotazioni varie ed attrezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|19.00000|19.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1810/b26|Automezzi attrezzati|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1811 20|Serie satelliti Intelsat I|||||||||||||2|1|||||||||||||||||||||||0.00000|45.00000|45.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|1811 21|Centro di controllo tecnico Intelsat I|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|1811 22|Serie satelliti Intelsat II|||||||||||||2|1|||||||||||||||||||||||0.00000|34.00000|34.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|1811 23|Apparecchiatura di telemetria e telecomando Intelsat I e II|||||||||||||2|1|||||||||||||||||||||||0.00000|29.00000|29.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|1811 24|Serie satelliti Intelsat III|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|1811 25|Apparecchiatura di telemetria e telecomando Intelsat III|||||||||||||2|1|||||||||||||||||||||||0.00000|18.00000|18.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|1811 26|Costi di sviluppo|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|1811 27|Serie satelliti Intelsat IV|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|1811 28|Apparecchiatura di telemetria e telecomando Intelsat IV|||||||||||||2|1|||||||||||||||||||||||0.00000|11.00000|11.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|1811 29|Struttura antenna parabolica orientabile|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1811 30|Servosistema,sistema illuminazione,ricevitore inseguimento|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1811 31|Imp. ricetrasmit. e imp./strumentaz. centrali misura e contr|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1811 32|Impianto di alimentazione|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1811 33|Satelliti commerciali di telecom. e loro centri di controllo|||||||||||||2|1|||||||||||||||||||||||0.00000|18.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|1811 34|Trasponditori|||||||||||||2|1|||||||||||||||||||||||0.00000|36.00000|36.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|1811 35|Terminali parabolici rice-trasmissivi di limitate dimensioni|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|1811 36|Stazioni terrene mobili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|1812 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|1812 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1812 03|Mobili e macchine d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1812 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1812 05|Costruzioni leggere|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1812 06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1812 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|1812 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|1812 20|Terreni adibiti ad autostrada|||||||||||||2|1|||||||||||||||||||||||0.00000|1.00000|1.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1812 21|Opere d'arte fisse (viadotti,ponti,gallerie,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1812 22|Altre opere d'arte (app. segnalazione,compressori,semoventi)|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|1812 23|Officine meccaniche|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|19 1 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|19 1 02|Macchine d'Ufficio Elettromeccaniche ed Elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|19 1 03|Mobili ed arredamento|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|19 1 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|19 1 06|Attrezzatura (stoviglie,posate,attrezzatura di cucina,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|19 1 12|Impianti Generici (riscaldamento, condizionamento)|||||||||||||2|1|||||||||||||||||||||||0.00000|8.00000|8.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|19 1 13|Impianti specifici (igienici,cucina frigo,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|19 1 16|Edifici|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|19 1 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|19 1 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|19 1 20|Biancheria|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|20 1 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | | |X|||||||X +CAC|20 1 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|20 1 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|20 1 05|Costruzioni leggere (tettoie, baracche, ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|20 1 06|Attrezzature (poltrone, ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|15.50000|15.50000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|20 1 08|Impianti termotecnici ed elettrici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|20 1 09|Macchinari di proiezione ed impianto sonoro|||||||||||||2|1|||||||||||||||||||||||0.00000|19.00000|19.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|20 1 16|Edifici|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|20 1 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|20 1 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|20 2 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | | |X|||||||X +CAC|20 2 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|20 2 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|20 2 04|Fabbricati destinati all'industria (teatri,piazzali,strade)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.50000|5.50000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|20 2 05|Costruzioni leggere (Tettoie, baracche, ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|20 2 06|Attrezzatura generica (officina, falegnameria, ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|7.50000|7.50000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|20 2 07|Attrezzatura specifica(macch.da ripresa,gruppi elettrogeni)|||||||||||||2|1|||||||||||||||||||||||0.00000|19.00000|19.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|20 2 12|Impianti generici, produzione e trasporto energia|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|20 2 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|20 2 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|20 3 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|20 3 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|20 3 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|20 3 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|20 3 06|Attrezzatura (poltrone,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|15.50000|15.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|20 3 08|Impianti termotecnici ed elettrici|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|20 3 09|Macchinari di proiezione ed impianto sonoro|||||||||||||2|1|||||||||||||||||||||||0.00000|19.00000|19.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|20 3 16|Edifici|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|20 3 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|20 3 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|20 4 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|20 4 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|20 4 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|20 4 04|Fabbricati destinati all'industria (teatri,piazzali,strade)|||||||||||||2|1|||||||||||||||||||||||0.00000|5.50000|5.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|20 4 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|20 4 06|Attrezzatura generica (officina,falegnameria,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|7.50000|7.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|20 4 07|Attrezzatura specifica(macch. da ripresa,gruppi elettrogeni)|||||||||||||2|1|||||||||||||||||||||||0.00000|19.00000|19.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|20 4 12|Impianti generici produzione e trasporto energia|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|20 4 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|20 4 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|21 1 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|21 1 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|21 1 03|Mobili ed arredamento|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|21 1 04|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|21 1 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|21 1 06|Attrezzatura specifica|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|21 1 07|Attrezzatura generica (stoviglie,posate,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|21 1 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|21 1 16|Edifici|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|21 1 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|21 1 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|21 1 20|Biancheria|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|21 1 21|Ambulanze|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|22 1 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|22 1 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|22 1 03|Mobili ed arredamento|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|22 1 04|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|22 1 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|22 1 06|Attrezzatura generica|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|22 1 13|Impianti specifici (igienici,riscaldamento,condizionam.,ecc)|||||||||||||2|1|||||||||||||||||||||||0.00000|8.00000|8.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|22 1 16|Edifici|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|22 1 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|22 1 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|22 1 20|Biancheria|||||||||||||2|1|||||||||||||||||||||||0.00000|40.00000|40.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|22 2 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|22 2 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|22 2 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|22 2 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|22 2 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|22 2 13|Impianti specifici di utilizzazione|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|22 2 16|Edifici|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|22 2 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|22 2 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|22 3 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|22 3 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|22 3 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|22 3 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|22 3 06|Attrezzatura specifica|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|22 3 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|22 3 16|Edifici|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|22 3 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|22 3 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|99 1 01|Automezzi|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|99 1 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|99 1 03|Mobili comuni ed arredamento|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|99 1 04|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|99 1 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|99 1 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|99 1 20|Fabbricati in muratura destinati a padiglioni per esposiz.|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|99 1 21|Costruzioni in legno o in strutture mobili|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|99 1 22|Arredamento fiere (transenne,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|27.00000|27.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|99 2 01|Autoveicoli pesanti e mezzi di trasporto interno|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000||||||31-12-1988|||| | |X|X|||||||X +CAC|99 2 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|99 2 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|99 2 05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|99 2 08|Macchinari,apparecchi e attrezzature vari(compr. frigo,ecc)|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|99 2 11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|99 2 12|Imp.allarme,ripresa fotografica,cinematografica e televisiva|||||||||||||2|1|||||||||||||||||||||||0.00000|30.00000|30.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|99 2 13|Imp. interni speciali di comunicazione e telesegnalazione|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||||||| | |X|X| ||||||X +CAC|99 2 14|Impianti per trattam. e depuraz. di acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|99 2 16|Edifici|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|99 2 17|Fabbricati destinati alla grande distribuzione|||||||||||||2|1|||||||||||||||||||||||0.00000|6.00000|6.00000|0.00000|0.00000|0.00000|||||||||| | | |X|||||||X +CAC|99 2 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|99 2 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | |X|||||||X +CAC|99 2 20|Impianti e mezzi sollevamento,carico e scarico,pesatura,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|7.50000|7.50000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|99 2 21|Stigliatura|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|99 2 22|Arredamento|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|99 2 23|Banconi blindati o con cristalli blindati|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||||||| | |X|X|||||||X +CAC|0519 04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|4.00000|4.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|0519 05|Costruzioni leggere (tettoie, baracche, ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|0519 06|Attrezzatura varia e minuta e di laboratorio (come spec. 17)|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|0519 03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|0519 02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|0519 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|0519 19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|0519 07|Opere idrauliche fisse e pozzi di estraz. e loro pertinenze|||||||||||||2|1|||||||||||||||||||||||0.00000|2.00000|2.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|0519 09|Serbatoi|||||||||||||2|1|||||||||||||||||||||||0.00000|5.00000|5.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|0519 10|Impianti di filtrazione e di imbottigliamento|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|0519 15|Condutture|||||||||||||2|1|||||||||||||||||||||||0.00000|8.00000|8.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|0519 24|Impianti di sollevamento e macchinari in genere|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|0716/a24|Piste di prova|||||||||||||2|1|||||||||||||||||||||||0.00000|7.00000|7.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|12 7/b02|Macchine d'ufficio elettromeccaniche ed elettroniche|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|18.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|12 7/b03|Mobili e macchine ordinarie d'ufficio|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|12 7/b04|Fabbricati destinati all'industria|||||||||||||2|1|||||||||||||||||||||||0.00000|3.00000|3.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|12 7/b05|Costruzioni leggere (tettoie,baracche,ecc.)|||||||||||||2|1|||||||||||||||||||||||0.00000|10.00000|10.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|12 7/b06|Attrezzatura varia e minuta|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|12 7/b08|Macchinari operatori e impianti(escl.quelli in amb. corros.)|||||||||||||2|1|||||||||||||||||||||||0.00000|12.50000|12.50000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|12 7/b09|Macchinari operatori di finissaggio ed imp. in amb. normale|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|12 7/b10|Macchinari operatori di finissaggio ed imp. in amb. corros.|||||||||||||2|1|||||||||||||||||||||||0.00000|18.00000|18.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|12 7/b11|Impianti per trattamento/depuramento acque,fumi nocivi,ecc.|||||||||||||2|1|||||||||||||||||||||||0.00000|15.00000|15.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|12 7/b18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | | ||||||| +CAC|12 7/b19|Autovetture, Motoveicoli e simili|||||||||||||2|1|||||||||||||||||||||||0.00000|25.00000|25.00000|0.00000|0.00000|0.00000|||||01-01-1989||||| | | | ||||||| +CAC|18 6 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|18 7 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|18 8 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|18 9 18|Autoveicoli da trasporto|||||||||||||2|1|||||||||||||||||||||||0.00000|20.00000|20.00000|0.00000|0.00000|0.00000|||||01-01-1992||||| | | | ||||||| +CAC|18 1 32|Aereo completo di equipaggiamento (compreso motore a terra)|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||01-01-1993||||| | |X|X|||||||X +CAC|18 2 32|Aereo completo di equipaggiamento (compreso motore a terra)|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||01-01-1993||||| | |X|X|||||||X +CAC|18 3 32|Aereo completo di equipaggiamento (compreso motore a terra)|||||||||||||2|1|||||||||||||||||||||||0.00000|12.00000|12.00000|0.00000|0.00000|0.00000|||||01-01-1993||||| | |X|X|||||||X +CAC|1810/a26|Centrali manuali ed elettromeccaniche (D.M. 19/10/95 )|||||||||||||2|1|||||||||||||||||||||||0.00000|13.00000|13.00000|0.00000|0.00000|0.00000|||||01-01-1995||||| | |X|X|||||||X +CAC| 70|Spese di pubblicitą (Art. 74/2 T.U.)||||||||||||2||3|5||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|||||01-01-1996||||| | | | ||||||| +CAC|04 4 07|Prova||||||||||||2||1|||||||||||||||||||||||0.00000|0.00000|0.00000|0.00000|1.00000|1.00000|||||||||| | | | ||||||| diff --git a/ce/cat.txt b/ce/cat.txt new file mode 100755 index 000000000..5f0416c27 --- /dev/null +++ b/ce/cat.txt @@ -0,0 +1,192 @@ +[Header] +Version=199517 +Fields=COD,3|CODTAB,25|S0,70|S1,70|S2,70|S3,70|S4,20|S5,20|S6,5|S7,5 +Fields=S8,5|S9,5|S10,5|S11,5|I0,7|I1,7|I2,7|I3,7|I4,7|I5,7 +Fields=I6,7|I7,7|I8,7|I9,7|I10,7|I11,7|I12,7|I13,7|I14,7|R0,18 +Fields=R1,18|R2,18|R3,18|R4,18|R5,18|R6,18|R7,18|R8,18|R9,18|R10,18 +Fields=R11,18|R12,18|R13,18|R14,18|R15,18|R16,18|R17,18|R18,18|R19,18|D0,10 +Fields=D1,10|D2,10|D3,10|D4,10|B0,1|B1,1|B2,1|B3,1|B4,1|B5,1 +Fields=B6,1|B7,1|B8,1|B9,1|FPC,1 + +[Data] +CAT|01 1|Affittuari di Fondi Rustici, Condotti a Mezzadria|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|01 2|Industrie Agrarie Diverse,all'infuori della Cat.degli Affit.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|01 3|Industrie Agrarie da Proprietari di Fondi|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|01 4|Aziende di Utilizzazione del Bosco(abbattimento e carboniz.)|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|01 5|Esercizio di Macchine Agricole per c/terzi (incluso noleggi)|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|02 1|Armentizia,Allev. Cavalli,Malghe,Monta Taurina-Equina,ecc.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|03 1|Industria della Pesca,compresa quella di Spugne e diCorallo|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|03 2|Allevamento di Pesci e Molluschi in Acque Marine e Interne|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|04 1|Miniere di Minerali di Ferro e di Minerali Metallif.non Ferr|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|04 2|Miniere di Zolfo|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|04 3|Miniere di Combustibili Fossili|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|04 4|Miniere di Combustibili Liquidi e Gassosi|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|04 5|Cave di Marmo e Aff.,Pietre da Costruzione,Calcari,Marne,ecc|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|04 6|Cave di Sabbia, Ghiaia e Pietrisco|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|04 7|Miniere Salgemma,Sorgenti Salate Naturali,Produz.Sale Marino|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|05 1|Brillatura Riso,Pilatura e altre Lavoraz.Cereali e Legumi|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|05 2|Molitura di Cereali|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|05 3|Panificazione,Produzione di Biscotti e di Pasticcerie|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|05 4|Pastificazione|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|05 5/a|Lavorazione Cacao,Produz.Cioccolata,Torrefaz.Caffč e Surrog.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|05 5/b|Produzione di Gelati|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|05 6|Produzione e Raffinazione dello Zucchero|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|05 7|Lavorazione e Conservazione delle Carni|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|05 8|Lavorazione e Conservazione Prodotti Alimentari della Pesca|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|05 9|Conservazione e Trasformazione Frutta,Ortaggi,Funghi,ecc.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0510|Lavorazione e Conservazione Latte (Caseifici,lav.burro,ecc.)|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0511|Produz. Olio d'Oliva/Semi,x Spremitura,Olii Vegetali,c/Solv.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0512|Raffinazione degli Olii Vegetali|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0513|Industria dei Vini,Mosti Concentrati ed Aceti|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0514|Distillerie di Alcole|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0515|Produzione di Liquori e Affini|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0516|Produzione di Malto,Birra ed Estratti di Malto|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0517|Produzione di Bevande Analcoliche Gassate e non|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0518|Fabbricazione Ghiaccio ed Esercizio Frigoriferi c/terzi|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|06 1|Prime Lavorazioni del Legno (segherie)|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|06 2|Laboratori Falegnameria,Carpenteria in Legno. Fabbr. Oggetti|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|06 3|Costruzione e Riparazione di Veicoli in Legno|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|06 4|Cantieri Navali per Costruz.,Riparaz.,Demoliz. Navi in Legno|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|06 5|Fabbricaz.Mobili/Arredam.in Legno.Lucidatura,Laccatura|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|06 6|Preparaz. Crine Vegetal.,Trebbia,ecc.Lavoraz. Canne Palustri|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|06 7|Lavorazione del Sughero|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|06 8|Industr.Produz.Compensati,Pannelli in Legno o con Sost.Miste|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|06 9|Industrie Produz. di Pannelli di Legno Sfibrato e Affini|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|07 1/a|Siderurgia in Genere|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|07 1/b|Metallurgia dei Metalli non Ferrosi (piombo alluminio ecc.)|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|07 1/c|Fonderie II Fusione|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|07 1/d|Industria Metallurgica del Magnesio|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|07 2|Fabbriche di Macchine Industr.ed Agric. e di Utensil.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|07 3|Costruzione di Pompe,Compress. Ventilat. ecc|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|07 4|Costruzioni di Mobili, Arredi metallici, Casseforti, ecc.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|07 5|Costruzione Appar.Igienico-Sanitari e termici-uso domestico|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|07 6|Fabbricazione di Serrature Comuni e di Minuterie, ecc.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|07 7|Fabbricaz.di Scatol.Fustame Metall.e Prod.Affini di Lam.Sott|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|07 8|Fabb. di Stoviglie,Vasell. Accessori Casalinghi, ecc.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|07 9|Fabbricaz. Coltell.,Armi Bianche ed Attr. x Arti e Mestieri|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0710|Fabb.Strum.ed Appar.x Chirurgia,Medicina,Odontotec.e Ortoped|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0711|Fabbricazione di Armi da Fuoco e Materiale Bellico in Genere|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0712|Fabbricazione di bilance, orologeria ecc.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0713|Fabbricazione di Giocattoli di Metallo|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0714|Fabbricazione Medaglie,Argenterie,Oreficerie,Gioiellerie,ecc|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0715|Costr.e Montatura Biciclette,Fabbr.Parti,Ricambi e Accessori|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0716/a|Costruz.e Montat.di Motov.e Fabbr.di Parti di Motov.e Access|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0716/b|Costruzione e Montaggio Motori per Aviazione|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0717|Costruz.di Autov.ed Autotel.Fabbr.di Parti di Ric. e Access.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0718|Costruz.Carrozz.per Auto,per Motov.Costruz. di Rimorchi ecc.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0719|Costruzione di Materiale Rotabile Ferroviario e Filoviario|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0720|Costruzione e Riparazione di Aeromobili|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0721|Cantieri Navali per Costruzioni,Riparazioni e Demolizioni|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0722|Costruzione Macchine,Apparecchi e Strumenti Elettrici, ecc.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0723|Officine per Fucinatura,Stampatura,Imbutitura,Saldatura,ecc.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0724|Officine da Ramaio,Lattoniere,Stagnino,Fabbro Ferraio,ecc.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0725|Officine Meccaniche Riparazione Auto,Motoveicoli,Bici,ecc.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0726|Officine Inst. e Riparaz. Imp.,Macchinari ed Appar. Elettr.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0727|Impr.Specializzate,non Costruttrici x Installaz.Imp.Termici|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0728|Lavorazione Artistica dei Metalli non Preziosi|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0729|Fabbricazione e Riparazione Strumenti ed Apparecchi Musicali|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|08 1|Macinaz./Lavag.Minerali Non Metallif.,Lavoraz.marmo e pietra|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|08 2|Lavoraz. Pietre Dure e Preziose per Gioiellerie e Uso Indus.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|08 3|Lavorazione Artistica dei Marmi e delle Pietre|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|08 4/a|Fabbricazione di Calce e Gesso|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|08 4/b|Fabbricazione di Cemento|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|08 5/a|Fabbricazione di Laterizi|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|08 5/b|Fabbricazione di Oggetti in Gres e Materiali Refrattari|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|08 5/c|Fabbricazione di Abrasivi Granulari,Rigidi e Flessibili|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|08 6|Industria della Ceramica|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|08 7|Fabbricazione Manufatti di Cemento/Gesso/Stucco|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|08 8|Fabbricaz.e Lavoraz.del Vetro(escl.Lavoraz.Lenti x Occhiali)|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|09 1/a|Produzione di Acido Solforico,Cloro,Soda Elettrolitica,ecc.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|09 1/b|Produz.Ammoniaca Sintetica,Acido Nitrico,Nitrato Calcio,ecc.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|09 2|Raffinerie Petrolio,Produzione e Distribuzione Benzina,ecc.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|09 3/a|Produzione Derivati Distillaz. Carbon Fossile,Escl.Offic.Gas|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|09 3/b|Produz. Elettrodi x Forni Elettrici x Fabbr. Acciaio e Anodi|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|09 4|Produz. Carburanti Artific. Liquidi,compresa Prod. Alcole|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|09 5|Produzione di Gas Compressi|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|09 6|Produzione di Esplosivi|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|09 7|Idrogenazione Olii/Grassi Vegetali ed Animali e Lav. Grassi|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|09 8|Produz. Saponi,Glicerine,Profumerie,Essenze,Aromi,Candele...|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|09 9|Produzioni Farmaceutiche,Chimico-Farmaceutiche ed Affini|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0910/a|Produz. Colori Organici e Sintetici e Relativi Prod. Interm.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0910/b|Produz. Estratti Concianti,Vernici,Pitture,Inchiostri,ecc.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0911/a|Produzione di Cellulosa (compresa quella per la carta)|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0911/b|Produz. del Trasparente di Cellulosa,Fibre Tessili Artif.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0912|Produz. Mat. Plastiche e Resine Sintetiche.Prod.Ind.Petrol.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0913|Produz. Materiali Sensibili per Fotografia e Cinematografia|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0914|Raffinerie di Zolfo|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|10 1/a|Fabbricaz. e Lavoraz. Carta e Cartone-Fabbr.Carte da Parato|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|10 1/b|Fabbricaz.Manufatti Carta e Cartone Compr. Produz. Imballag.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|11 1|Concia,Tintura delle Pelli. Produz. di Succedanei e Imitaz.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|11 2|Fabbricaz.Art.Cuoio,Pelle e Succed.,esclusi Guanti e Calzat.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|12 1|Produz. ed Allevam. del Seme Bachi.Essicaz. di Bozzoli|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|12 2|Filatura (trattura) della Seta|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|12 3|Tessitura della Seta e delle Fibre Tessili Artificiali|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|12 4|Produzione di Fibre Rigenerate|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|12 5/a|Lavorazione del Cotone Puro o Misto con Altre Fibre|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|12 5/b|Lavorazione dei Cascami di Seta, Puri o Misti ad Altre Fibre|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|12 5/c|Lavorazione delle Fibre Sintetiche|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|12 6|Lavorazione della Lana Pura o Mista con Altre Fibre|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|12 7|Lavorazione Lino,Canapa,Juta,Ramič e Simili,Puri o Misti|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|12 8|Fabbricazione Cordami,Spaghi,Reti da Pesca e da Caccia|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|12 9|Fabbricazione Passamanerie,Tulli,Merletti,Nastri,Tess.Elast.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|1210|Tintura,Candeggio,Stampatura,Mercerizzazione,Rifinitura,ecc.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|1211|Lavoraz. Setole,Crine Animale,Pelo,Penne,Piume,Capok e Sim.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|1212|Fabbricazione Tappeti da Terra(escl. quelli di cocco e sim.)|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|13 1|Industria del Cappello|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|13 2|Laboratori di Modisteria|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|13 3|Laboratori per la Confezione di Vestiario|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|13 4|Laboratori per la Confezione di Pellicce|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|13 5|Laboratori per la Confezione di Biancheria|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|13 6|Laboratori Fabbricazione Maglieria,Guanti in Maglia e Calze|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|13 7|Calzaturifici|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|13 8|Laboratori di Confezione e Riparazione di Calzature|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|13 9|Laboratori Fabbricaz. Guanti Pelle,Stoffa o Tessuto Maglia|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|1310|Laboratori per Confezioni Varie e Accessori del Vestiario|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|1311|Fabbricazione e Lavorazione Oggetti di Ornamento|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|1312|Laboratori di Materassaio e Tapezziere,per Confez. Vele,ecc.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|1313|Fabbricaz. Giocattoli in Genere (esclusi in metallo e gomma)|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|14 1/a|Produzione di Manufatti di Gomma|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|14 1/b|Produzione di Cavi Elettrici|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|14 1/c|Lavorazione di Materie Plastiche|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|14 1/d|Produzione di Dischi Fonografici,Incisioni,Edizione e Stampa|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|14 2|Laboratori di Vulcanizzazione degli Oggetti di Gomma|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|15 1|Tipografie, Litografie ed Affini|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|15 2|Legatorie|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|15 3|Editori di Libri e Giornali ed Agenzie di Stampa|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|16 1|Imprese di Costruzioni Edilizie,Lavori di Terra ecc.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|16 1/a|Imprese di Costruz.Edilizie,Lavori di Terra e Opere Stradali|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|16 1/b|Imprese Costruzioni Reti di Trasporto e Distr.Elettr.e Telef|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|16 1/c|Edilizia Prefabbricata|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|17 1/a|Produzione e Distribuzione di Energia Idroelettrica|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|17 1/b|Produzione e Distribuzione di Energia Termoelettrica|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|17 2/a|Produzione e Distribuzione di Gas Illuminante|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|17 2/b|Produzione e Distribuzione di Gas Naturale|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|17 3|Distribuzione di Acqua Potabile e non Potabile|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|17 4/a|Stabilimenti Balneari Marini|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|17 4/b|Stabilimenti Termali, Idrotermali|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|18 1|Trasporti Aerei|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|18 2|Trasporti Marittimi|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|18 3|Trasporti Lacuali,Fluviali e Lagunari|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|18 4|Ferrovie,Compresi Binari Raccordo c/terzi,Eser. Vagoni Letto|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|18 5|Tramvie Interurb.,Urbane, Metropolitane, Filovie, Funivie|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|18 6|Autoservizi per Viaggiatori,Urbani,Extraurbani e di Linea.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|18 7|Servizi Trasp. Persone c/vetture-Autovett. da Piazza/Rimessa|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|18 8|Servizi di Trasporto Merci su Vie Ordinarie|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|18 9|Imprese di Trasporti e Pompe Funebri|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|1810/a|Servizi Telegrafici,Telefonici,Telecomunicaz. Tramite Satell|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|1810/b|Servizi Radiotelegrafonici,Radiofonici,Televisivi e Telecom.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|1811|Impianti per le telecomunicazioni a Mezzo Satelliti|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|1812|Autostrade,Strade e Superstrade in Concessione|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|19 1|Alberghi-Ristoranti-Bar e Attivitą Affini|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|20 1|Teatri,cinematografi,sale ballo e simili,campi sportivi,ecc.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|20 2|Compagnie/Agenzie Teatrali.Produz.,doppiaggio,sviluppo films|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|20 3|Teatri,Cinematografi,Sale Ballo e Simili,Campi Sportivi,ecc.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|20 4|Compagnie ed Agenzie Teatrali,Produzione,Doppiaggio,Svilup.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|21 1|Ospedali,Cliniche,Sanatori,Case Cura ed Ist. Similari Priv.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|22 1|Serv. Igienici e Estetica Persona.Alb. Diurni,Barbieri,ecc.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|22 2|Imprese di Smaltimento Rifiuti|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|22 3|Lavanderie,Stiratorie,Smacchiatorie,Tintorie e Servizi Aff.|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|99 1|Fiere e Rassegne|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|99 2|Altre Attivitą|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|0519|Imbottigliamento di Acque Minerali Naturali|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| +CAT|12 7/b|Fabbricazione di tessuti a maglia|||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||| diff --git a/ce/ce0500.cpp b/ce/ce0500.cpp index c4fa2656c..3547464ef 100755 --- a/ce/ce0500.cpp +++ b/ce/ce0500.cpp @@ -23,6 +23,7 @@ class TQuery_mask : public TAutomask protected: virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); void on_search_event(TOperable_field& o); + virtual void on_firm_change(); int calcola_stato_attivita(); bool cespite_ok() const; @@ -207,6 +208,12 @@ bool TQuery_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) return TRUE; } +void TQuery_mask::on_firm_change() +{ + TAutomask::on_firm_change(); + ditta_cespiti().init_mask(*this); +} + TQuery_mask::TQuery_mask() : TAutomask("ce0500a") { first_focus(F_IDCESPITE); @@ -728,7 +735,7 @@ void TAnacespi::init_mask(TMask& m) dc.init_mask(m); const bool can_edit = !dc.bollato_stampato() && m.field(F_DTALIEN).empty(); m.enable(DLG_SAVEREC, can_edit); - m.enable(DLG_DELREC, can_edit); + m.enable(DLG_DELREC, can_edit && m.edit_mode()); m.disable(DLG_NEWREC); _emask->set_stato_attivita(_qmask->stato_attivita()); @@ -893,12 +900,18 @@ void TAnacespi::kill_cespite(const TString& idcespite, int lfile, int key) TCursor cur(&rel, "", key, &filter, &filter); const long items = cur.items(); cur.freeze(); + const TRectype& curr = rel.curr(); for (cur = 0L; cur.pos() < items; ++cur) - rel.remove(); + { + int err = curr.remove(rel.lfile()); + if (err != NOERR) + error_box("Errore %d di cancellazione sul file %d", err, lfile); + } } bool TAnacespi::remove() { + const int staat = _qmask->stato_attivita(); bool yes = FALSE; if (staat == 3) @@ -911,12 +924,12 @@ bool TAnacespi::remove() if (yes) { const TString16 idcespite = get_relation()->curr().get(CESPI_IDCESPITE); - TRelation_application::remove(); + kill_cespite(idcespite, LF_SALCE); kill_cespite(idcespite, LF_MOVCE, 2); kill_cespite(idcespite, LF_MOVAM); kill_cespite(idcespite, LF_AMMMV); - kill_cespite(idcespite, LF_SALCE); kill_cespite(idcespite, LF_AMMCE); + TRelation_application::remove(); } return yes; } diff --git a/ce/ce0900.cpp b/ce/ce0900.cpp index 0606a50be..3ba131ab3 100755 --- a/ce/ce0900.cpp +++ b/ce/ce0900.cpp @@ -177,6 +177,11 @@ void TConversione_cespiti::main_loop() if (msk.run() == K_ENTER && yesno_box("Confermare la conversione dei cespiti?")) { msk.lista_ditte(_ditte); + if (_ditte.items() == 0) + { + warning_box("Nessuna ditta selezionata"); + return; + } open_log(); TString80 s; write_log(""); diff --git a/ce/ce1100.cpp b/ce/ce1100.cpp index ed352d65c..9c87c9a41 100755 --- a/ce/ce1100.cpp +++ b/ce/ce1100.cpp @@ -127,7 +127,7 @@ void TQuery_mask::calc_res(bool prec) const TRectype& ammce2=ces.amm_pro(); // determinazione del residuo fiscale _residuof = ZERO; - _residuof = salce2.get_real(SALCE_CSTO)-salce2.get_real(SALCE_VNONAMM)+salce2.get_real(SALCE_RIV75)+salce2.get_real(SALCE_RIV83)+salce2.get_real(SALCE_RIV90)+salce2.get_real(SALCE_RIV91)+salce2.get_real(SALCE_RIVGF); + _residuof = salce2.get_real(SALCE_CSTO)-salce2.get_real(SALCE_VNONAMM)-salce2.get_real(SALCE_PLUSREIN)+salce2.get_real(SALCE_RIV75)+salce2.get_real(SALCE_RIV83)+salce2.get_real(SALCE_RIV90)+salce2.get_real(SALCE_RIV91)+salce2.get_real(SALCE_RIVGF); _residuof -= ammce2.get_real(AMMCE_QNORP)+ammce2.get_real(AMMCE_QACCP)+ammce2.get_real(AMMCE_QANTP)+ammce2.get_real(AMMCE_QPERSEP)+ammce2.get_real(AMMCE_FPRIVATOP)+ammce2.get_real(AMMCE_QPPRIVATEP); if (!prec) _residuof -= ammce2.get_real(AMMCE_QNOR)+ammce2.get_real(AMMCE_QACC)+ammce2.get_real(AMMCE_QANT)+ammce2.get_real(AMMCE_QPERSE)+ammce2.get_real(AMMCE_FPRIVATO)+ammce2.get_real(AMMCE_QPPRIVATE); diff --git a/ce/ce1200.cpp b/ce/ce1200.cpp index 0140e43d1..5b57e40cb 100755 --- a/ce/ce1200.cpp +++ b/ce/ce1200.cpp @@ -9,7 +9,6 @@ #include "celib.h" #include "ce1201a.h" -#include "ce1201b.h" #include "../cg/cglib01.h" #include "movce.h" @@ -43,7 +42,7 @@ public: real get_residuoc() const { return _residuoc; } real get_plusminusf() const { return _difff; } real get_plusminusc() const { return _diffc; } - void calc_res_mov(TCespite& ces, const TRectype& movce, const TRectype& movam); + void calc_res_mov(TCespite& ces, const TRectype& movce, TRectype& ammmv); TForce_mov_qmask(); }; @@ -81,33 +80,33 @@ int TForce_mov_qmask::calcola_ammo_eliminate() return _ammoelim; } -void TForce_mov_qmask::calc_res_mov(TCespite& ces, const TRectype& movce, const TRectype& movam) +void TForce_mov_qmask::calc_res_mov(TCespite& ces, const TRectype& movce, TRectype& ammmv) { // calcolo ammortamento sul cespite (per sit. fiscale(tpamm=1) o civilistica(tpamm=2)) const TDate dtmov = movce.get_date(MOVCE_DTMOV); - const int tpamm = movam.get_int(MOVAM_TPAMM); //in base al movam passato prendo il tpamm corrispondente + const int tpamm = ammmv.get_int(AMMMV_TPAMM); + ces.calc_amm(tpamm, dtmov); + TLocalisamfile f_ammmv (LF_AMMMV); + ammmv.read(f_ammmv); //il record di movam si rilegge in versione aggiornata dal calc_amm + + const real impven = movce.get_real(MOVCE_IMPVEN); + real plus = ammmv.get_real(AMMMV_PLUS); + if (plus == ZERO) + plus = - ammmv.get_real(AMMMV_MINUS); - ces.calc_amm(tpamm, FALSE, dtmov); - + const real residuo = impven - plus; // determinazione del residuo fiscale if (tpamm == 1) { - _residuof = ZERO; - _residuof = movce.get_real(MOVCE_CSTO)-movce.get_real(MOVCE_VNONAMM)+movce.get_real(MOVCE_RIV75)+movce.get_real(MOVCE_RIV83)+movce.get_real(MOVCE_RIV90)+movce.get_real(MOVCE_RIV91)+movce.get_real(MOVCE_RIVGF); - _residuof -= movam.get_real(MOVAM_QNOR)+movam.get_real(MOVAM_QACC)+movam.get_real(MOVAM_QANT)+movam.get_real(MOVAM_QPERSE)+movam.get_real(MOVAM_FPRIVATO)+movam.get_real(MOVAM_QPPRIVATE); -//calcolo di plus/minus valenze sparse - _difff = movce.get_real(MOVCE_IMPVEN) - _residuof; + _residuof = residuo; + _difff = plus; } // determinazione del residuo civilistico if (tpamm == 2) { - _residuoc = ZERO; - _residuoc = movce.get_real(MOVCE_CSTO)+movce.get_real(MOVCE_RIV75)+movce.get_real(MOVCE_RIV83)+movce.get_real(MOVCE_RIV90)+movce.get_real(MOVCE_RIV91)+movce.get_real(MOVCE_RIVGC); - _residuoc -= movam.get_real(MOVAM_QNOR)+movam.get_real(MOVAM_QACC)+movam.get_real(MOVAM_QANT); - _diffc = movce.get_real(MOVCE_IMPVEN) - _residuoc; - } - - + _residuoc = residuo; + _diffc = plus; + } } bool TForce_mov_qmask::on_field_event(TOperable_field& o, TField_event e, long jolly) @@ -196,14 +195,14 @@ bool TForce_mov_qmask::on_field_event(TOperable_field& o, TField_event e, long j movam.put(MOVAM_TPAMM, 1); if (movam.read() != NOERR) return error_box("Movimenti dei fondi fiscali incoerenti per il movimento selezionato"); - const TRectype movam1 = movam.curr(); + TRectype movam1 = movam.curr(); movam.put(MOVAM_IDCESPITE, idcespite); movam.put(MOVAM_IDMOV, get(F_IDMOV)); movam.put(MOVAM_TPAMM, 2); if (movam.read() != NOERR) return error_box("Movimenti dei fondi civilistici incoerenti per il movimento selezionato"); - const TRectype movam2 = movam.curr(); + TRectype movam2 = movam.curr(); TLocalisamfile ammmv(LF_AMMMV); // controlla la consistenza degli ammortamenti sui movimenti ammmv.put(AMMMV_IDCESPITE, idcespite); @@ -211,18 +210,16 @@ bool TForce_mov_qmask::on_field_event(TOperable_field& o, TField_event e, long j ammmv.put(AMMMV_TPAMM, 1); if (ammmv.read() != NOERR) return error_box("Ammortamenti fiscali sui movimenti incoerenti per il movimento selezionato"); + calc_res_mov(ces, curr_movce, ammmv.curr()); //calcolo del residuo fiscale in uscita maschera di selezione + if (_residuof==ZERO) + return error_box("Impossibile forzare ammortamento perché non esiste residuo fiscale\nda ammortizzare per le parti eliminate del cespite"); + ammmv.put(AMMMV_IDCESPITE, idcespite); ammmv.put(AMMMV_IDMOV, get(F_IDMOV)); ammmv.put(AMMMV_TPAMM, 2); if (ammmv.read() != NOERR) - return error_box("Ammortamenti civilistici sui movimenti incoerenti per il movimento selezionato"); - - - calc_res_mov(ces, curr_movce, movam1); //calcolo del residuo fiscale in uscita maschera di selezione - if (_residuof==ZERO) - return error_box("Impossibile forzare ammortamento perché non esiste residuo fiscale\nda ammortizzare per le parti eliminate del cespite"); - - calc_res_mov(ces, curr_movce, movam2); //calcolo del residuo civilistico in uscita maschera di selezione + return error_box("Ammortamenti civilistici sui movimenti incoerenti per il movimento selezionato"); + calc_res_mov(ces, curr_movce, ammmv.curr()); //calcolo del residuo civilistico in uscita maschera di selezione if (_residuoc==ZERO) return error_box("Impossibile forzare ammortamento perché non esiste residuo civilistico\nda ammortizzare per le parti eliminate del cespite"); @@ -362,7 +359,7 @@ TMask* TForza_amm_movce::get_mask(int mode) return mode == MODE_QUERY ? (TMask*)_qmask : (TMask*)_fmask; } -void TForza_amm_movce::init_mask(TMask& m) //funzione per settare i dati ditta in uscita +void TForza_amm_movce::init_mask(TMask& m) //funzione per settare i dati ditta in ingresso { const int ese = _qmask->get_int(F_ESERCIZIO); const int gru = _qmask->get_int(F_GRUPPO); @@ -377,20 +374,18 @@ void TForza_amm_movce::init_mask(TMask& m) //funzione per settare i dati dit _fmask->set_stato_attivita(_qmask->stato_attivita()); //copia lo stato attivitį della precedente - TCespite ces(_fmask->get(F_IDCESPI)); + TCespite ces(_fmask->get(F_IDCESPITE)); const TRectype& movce = get_relation()->curr(); - const TRectype& movam1 = get_relation()->curr(-69); + TRectype ammmv1 = get_relation()->curr(-69); - _qmask->calc_res_mov(ces, movce, movam1); // ricalcola il residuo fiscale in forzatura + _qmask->calc_res_mov(ces, movce, ammmv1); // ricalcola il residuo fiscale in forzatura _fmask->set(F_RESIDUO_F, _qmask->get_residuof()); //prende il residuo fiscale del cespite calcolato in Qmask e lo mette in Fmask -// _fmask->set_residuof_ini(_qmask->get_residuof()); //mette il valore del residuo precedente la forzatura nella var _rediduof_ini _fmask->set(F_PLUSMINUS_F, _qmask->get_plusminusf()); - const TRectype& movam2 = get_relation()->curr(-77); + TRectype ammmv2 = get_relation()->curr(-77); - _qmask->calc_res_mov(ces, movce, movam2); // ricalcola il residuo civilistico in forzatura + _qmask->calc_res_mov(ces, movce, ammmv2); // ricalcola il residuo civilistico in forzatura _fmask->set(F_RESIDUO_C, _qmask->get_residuoc()); //prende il residuo civilistico del cespite calcolato in Qmask e lo mette in Fmask - // _fmask->set_residuoc_ini(_qmask->get_residuoc()); //mette il valore del residuo precedente la forzatura nella var _rediduoc_ini _fmask->set(F_PLUSMINUS_C, _qmask->get_plusminusc()); } @@ -455,11 +450,12 @@ void TForza_amm_movce::init_modify_mode(TMask& m) // funzione per il ricalcolo degli ammortamenti dopo la forzatura void TForza_amm_movce::update_amm(const TMask& m) -{ - TCespite ces(m.get(F_IDCESPITE)); +{ + const TString16 idces = m.get(F_IDCESPITE); + TCespite ces(idces); TDate dtmov = m.get_date(F_DTMOV); - ces.calc_amm(1, FALSE, dtmov); - ces.calc_amm(2, FALSE, dtmov); + ces.calc_amm(1, dtmov); + ces.calc_amm(2, dtmov); } //funzione per l'aggiornamento dei campi plus-minusvalenza sul file AMMMV @@ -508,10 +504,12 @@ bool TForza_amm_movce::user_create() expr69 << "IDCESPITE==IDCESPITE|IDMOV==IDMOV|TPAMM==1"; _rel->add(LF_AMMMV, expr69, 1, 0, 69); // prima relazione su AMMMV (alias 69): TPAMM=1 _rel->write_enable(-69); + _rel->add(LF_MOVAM, expr69, 1, 0, 691); // prima relazione su MOVAM (alias 691): TPAMM=1 TString expr77; expr77 << "IDCESPITE==IDCESPITE|IDMOV==IDMOV|TPAMM==2"; _rel->add(LF_AMMMV, expr77, 1, 0, 77); // seconda relazione su AMMMV (alias 77): TPAMM=2 - _rel->write_enable(-77); + _rel->write_enable(-77); + _rel->add(LF_MOVAM, expr77, 1, 0, 771); // seconda relazione su MOVAM (alias 771): TPAMM=2 _qmask = new TForce_mov_qmask; _fmask = new TForce_mov_fmask; diff --git a/ce/ce1201a.h b/ce/ce1201a.h index 14cc0b046..12f4041d8 100755 --- a/ce/ce1201a.h +++ b/ce/ce1201a.h @@ -1,4 +1,4 @@ -// per ce1201a.uml +// per ce1201a.uml e ce1201b.uml #define F_DITTA 101 #define F_RAGSOC 102 #define F_ESERCIZIO 103 @@ -8,13 +8,45 @@ #define F_GRUPPO 107 #define F_SPECIE 108 #define F_DESC_GRSP 109 - +#define F_SITUAZIONE 110 #define F_IDCESPITE 111 #define F_DESC_CES 112 #define F_IDMOV 113 #define F_DESC_MOV 123 +#define F_CODMOV 124 +#define F_DTMOV 125 +#define F_FORZATURA_Q_F 126 +#define F_FORZATURA_P_F 127 +#define F_FORZATURA_Q_C 128 +#define F_FORZATURA_P_C 129 +#define F_AMMNOR_F 130 +#define F_AMMACC_F 131 +#define F_AMMANT_F 132 +#define F_AMMNOR_C 133 +#define F_AMMACC_C 134 +#define F_AMMANT_C 135 +#define F_QUOTE_PERSE 136 +#define F_PRIVATO 137 +#define F_QUOTE_PRIV 138 +#define F_P_AMMNOR_F 139 +#define F_P_AMMACC_F 140 +#define F_P_AMMANT_F 141 +#define F_P_AMMNOR_C 142 +#define F_P_AMMACC_C 143 +#define F_P_AMMANT_C 144 - - +#define F_RIS_AMMNOR_F 145 +#define F_RIS_AMMACC_F 146 +#define F_RIS_AMMANT_F 147 +#define F_RIS_AMMNOR_C 148 +#define F_RIS_AMMACC_C 149 +#define F_RIS_AMMANT_C 150 +#define F_RIS_QUOTE_PERSE 151 +#define F_RIS_PRIVATO 152 +#define F_RIS_QUOTE_PRIV 153 +#define F_RESIDUO_F 154 +#define F_RESIDUO_C 155 +#define F_PLUSMINUS_F 156 +#define F_PLUSMINUS_C 157 \ No newline at end of file diff --git a/ce/ce1201b.uml b/ce/ce1201b.uml index 4e3f26793..33501eaa9 100755 --- a/ce/ce1201b.uml +++ b/ce/ce1201b.uml @@ -1,4 +1,4 @@ -#include "ce1201b.h" +#include "ce1201a.h" TOOLBAR "Toolbar" 0 -2 0 2 @@ -104,7 +104,7 @@ BEGIN FLAGS "D" END -NUMBER F_IDCESPI 10 +NUMBER F_IDCESPITE 10 BEGIN PROMPT 1 5 "Cespite " FLAGS "DZ" @@ -112,13 +112,13 @@ BEGIN KEY 1 END -STRING F_DESC 53 +STRING F_DESC_CES 53 BEGIN PROMPT 23 5 "" FLAGS "D" USE LF_CESPI - INPUT IDCESPITE F_IDCESPI - OUTPUT F_DESC DESC + INPUT IDCESPITE F_IDCESPITE + OUTPUT F_DESC_CES DESC CHECKTYPE REQUIRED END @@ -129,7 +129,7 @@ BEGIN FIELD DTMOV END -NUMBER F_IDMOVIM 11 +NUMBER F_IDMOV 11 BEGIN PROMPT 33 6 "N. Mov. " FLAGS "DZ" @@ -143,7 +143,7 @@ BEGIN FIELD CODMOV END -STRING F_DESCMOV 63 +STRING F_DESC_MOV 63 BEGIN PROMPT 1 7 "Descrizione " FLAGS "D" @@ -281,7 +281,7 @@ BEGIN GROUP 5 END -NUMBER F_QUOTE_PERSE 15 +CURRENCY F_QUOTE_PERSE 15 BEGIN PROMPT 1 15 "Quote perse " FIELD 69@->QPERSE @@ -289,7 +289,7 @@ BEGIN GROUP 3 END -NUMBER F_PRIVATO 15 +CURRENCY F_PRIVATO 15 BEGIN PROMPT 1 16 "Privato " FIELD 69@->FPRIVATO @@ -297,7 +297,7 @@ BEGIN GROUP 3 END -NUMBER F_QUOTE_PRIV 15 +CURRENCY F_QUOTE_PRIV 15 BEGIN PROMPT 1 17 "Quote per priv. " FIELD 69@->QPPRIVATE diff --git a/ce/ce1300.cpp b/ce/ce1300.cpp index f0563ffa6..343ecb80b 100755 --- a/ce/ce1300.cpp +++ b/ce/ce1300.cpp @@ -9,20 +9,53 @@ #include "celib.h" #include "ce1301a.h" -//#include "ce1301b.h" #include "../cg/cglib01.h" #include "cespi.h" #include "salce.h" #include "ammce.h" +#include "catdi.h" +///////////////////////////////////////////////////////// +//Applicazione principale: prima puntata... +///////////////////////////////////////////////////////// +class TSelect_ammoces : public TRelation_application +{ + TRelation* _rel; + TAutomask* _msk[4]; + int _tipo; + real _aliqmax, _aliqmin, _aliqant; + +private: + +protected: + virtual bool user_create(); + virtual bool user_destroy(); + virtual TRelation* get_relation() const { return _rel; }; + virtual bool changing_mask(int mode) { return TRUE; } + virtual TMask* get_mask(int mode); + + void init_mask(TMask& m); + virtual void init_query_mode(TMask& m); + virtual void init_insert_mode(TMask& m); + virtual void init_modify_mode(TMask& m); + +public: + void set_tipo_beni(int t) { _tipo = t; } +}; + +inline TSelect_ammoces& app() { return (TSelect_ammoces&)main_app(); } +//Continua piś avanti... //-----------------------------------------------------------------------------------------------------------------------// -//Maschera di selezione -class TSelect_ammoces_qmask : public TAutomask +///////////////////////////////////// +//Maschera di query +///////////////////////////////////// +class TSelam_qmask : public TAutomask { int _staat; - real _residuof, _residuoc; + real _residuof, _residuoc, _uniprice; + bool _ammo100; protected: virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); @@ -37,10 +70,11 @@ public: real get_residuoc() const { return _residuoc; } void calc_res(bool prec); - TSelect_ammoces_qmask(); + TSelam_qmask(); }; -void TSelect_ammoces_qmask::on_search_event(TOperable_field& o) +//scelta tipo ordinamento +void TSelam_qmask::on_search_event(TOperable_field& o) { TToken_string order, fields, header; if (o.dlg() >= F_SEARCH3) @@ -80,7 +114,7 @@ void TSelect_ammoces_qmask::on_search_event(TOperable_field& o) } } -int TSelect_ammoces_qmask::calcola_stato_attivita() +int TSelam_qmask::calcola_stato_attivita() { const int ese = get_int(F_ESERCIZIO); const int gru = get_int(F_GRUPPO); @@ -99,7 +133,7 @@ int TSelect_ammoces_qmask::calcola_stato_attivita() return _staat; } -bool TSelect_ammoces_qmask::cespite_ok() const +bool TSelam_qmask::cespite_ok() const { TLocalisamfile cespi(LF_CESPI); cespi.put(CESPI_IDCESPITE, get(F_IDCESPITE)); @@ -107,12 +141,12 @@ bool TSelect_ammoces_qmask::cespite_ok() const return ok; } -void TSelect_ammoces_qmask::calc_res(bool prec) +void TSelam_qmask::calc_res(bool prec) { TCespite ces (get(F_IDCESPITE)); // calcolo ammortamento sul cespite (per sit. fiscale(1) e civilistica(2)) TDate fine_es = get(F_FINE_ES); - ces.calc_amm(1, FALSE, fine_es); + ces.calc_amm(1, fine_es); const TRectype& salce2=ces.sal_pro(); //rectype giį di "tipo fiscale" const TRectype& ammce2=ces.amm_pro(); // determinazione del residuo fiscale @@ -122,7 +156,7 @@ void TSelect_ammoces_qmask::calc_res(bool prec) if (!prec) _residuof -= ammce2.get_real(AMMCE_QNOR)+ammce2.get_real(AMMCE_QACC)+ammce2.get_real(AMMCE_QANT)+ammce2.get_real(AMMCE_QPERSE)+ammce2.get_real(AMMCE_FPRIVATO)+ammce2.get_real(AMMCE_QPPRIVATE); - ces.calc_amm(2, FALSE, fine_es); + ces.calc_amm(2, fine_es); //rectype giį di "tipo civilistico" // determinazione del residuo civilistico _residuoc = ZERO; @@ -133,7 +167,7 @@ void TSelect_ammoces_qmask::calc_res(bool prec) } -bool TSelect_ammoces_qmask::on_field_event(TOperable_field& o, TField_event e, long jolly) +bool TSelam_qmask::on_field_event(TOperable_field& o, TField_event e, long jolly) { switch (o.dlg()) { @@ -156,39 +190,83 @@ bool TSelect_ammoces_qmask::on_field_event(TOperable_field& o, TField_event e, l if (!cespite_ok()) return error_box("Inserire un cespite valido"); //controlla che esista il cespite if (stato_attivita() == 1) - warning_box("E' stato stampato il bollato dell'anno:\nnon sono permesse forzature"); //il bollato é stato stampato - - - TLocalisamfile salce(LF_SALCE); // controlla che esista almeno un saldo - salce.put(SALCE_IDCESPITE, get(F_IDCESPITE)); - salce.put(SALCE_CODES, get(F_ESERCIZIO)); - salce.put(SALCE_TPSALDO, 1); - if (salce.read() != NOERR) - return error_box("Non esistono saldi per l'anno selezionato"); - - TLocalisamfile ammce(LF_AMMCE); // controlla che esista almeno un ammortamento (sennó che forzamo?) - ammce.put(AMMCE_IDCESPITE, get(F_IDCESPITE)); - ammce.put(AMMCE_CODES, get(F_ESERCIZIO)); - ammce.put(AMMCE_TPSALDO, 1); - ammce.put(AMMCE_TPAMM, 1); - if (ammce.read() != NOERR) - return error_box("Non esistono ammortamenti per l'anno selezionato"); + warning_box("E' stato stampato il bollato dell'anno:\nnon sono permesse modifiche"); //il bollato é stato stampato TCespite ces (get(F_IDCESPITE)); // controlla che la categoria del cespite sia ammortizzabile const TRectype& categoria = ces.categoria(); bool non_ammortizzabile = categoria.get_bool("B0"); if (non_ammortizzabile) - return error_box("La categoria del cespite selezionato non é ammortizzabile"); + return error_box("Impossibile effettuare ammortamenti perché il cespite\nappartiene ad una categoria di beni non ammortizzabili"); - calc_res(TRUE); // controllo dei residui fiscale e civilistico in ingresso (prec=TRUE) - if (_residuof==ZERO) - return error_box("Impossibile forzare ammortamento perché non esiste residuo fiscale da ammortizzare per il cespite"); + int materiale = categoria.get_int("I0"); + app().set_tipo_beni(materiale); //inizializza la variabile tipo + + if (materiale == 0) // controlla che il cespite non sia per caso in leasing + { // solo i cespiti materiali possono essere in leasing.. + if (ces.get_bool(CESPI_LEASING) == TRUE) + return error_box("Impossibile impostare le scelte per cespiti ceduti in leasing"); + } - if (_residuoc==ZERO) - return error_box("Impossibile forzare ammortamento perché non esiste residuo civilistico da ammortizzare per il cespite"); + const TDate& datafunz = ces.get_date("DTFUNZ"); // se la data di entrata in funzione non é nulla.... + if (datafunz.ok()) + { + calc_res(TRUE); // controllo dei residui fiscale e civilistico in ingresso (prec=TRUE) + if (_residuof==ZERO) + { + message_box("Il valore fiscale del cespite risulta giį completamente ammortizzato"); + return TRUE; + } + + if (_residuoc==ZERO) + { + message_box("Il valore civilistico del cespite risulta giį completamente ammortizzato"); + return TRUE; + } + } + + TLocalisamfile ammce(LF_AMMCE); // controlla eventuali forzature precedenti + ammce.put(AMMCE_IDCESPITE, get(F_IDCESPITE)); + ammce.put(AMMCE_CODES, get(F_ESERCIZIO)); + ammce.put(AMMCE_TPSALDO, 2); + ammce.put(AMMCE_TPAMM, 1); + if (ammce.read() == NOERR) + { + if (ammce.get_bool(AMMCE_FZPER) == TRUE) + return error_box("Sul cespite sono state forzate le Percentuali:\nprocedere dalla forzatura ammortamenti su cespite"); + if (ammce.get_bool(AMMCE_FZQUO) == TRUE) + return error_box("Sul cespite sono state forzate le Quote:\nprocedere dalla forzatura ammortamenti su cespite"); + } + + TLocalisamfile salce(LF_SALCE); // controlla se ammesso ammortamento 100% per beni inferiori a 516.46 Euro + salce.put(SALCE_IDCESPITE, get(F_IDCESPITE)); + salce.put(SALCE_CODES, get(F_ESERCIZIO)); + salce.put(SALCE_TPSALDO, 1); + _ammo100 = FALSE; + _uniprice = 516.46; + if (! salce.get_date(SALCE_DTSTBOLL).ok()) + { + if (datafunz.ok() && (datafunz > get_date(F_INIZIO_ES) && datafunz < get_date(F_FINE_ES)) && salce.get_int(SALCE_ANNIAMM) == 0) + { + if (ces.get_bool(CESPI_TUIR) == TRUE) + { + const TDate& data_fine_es = get_date(F_FINE_ES); + ces.calc_amm(2, data_fine_es); + real valore = salce.get_real(SALCE_CSTO)-salce.get_real(SALCE_VNONAMM)+salce.get_real(SALCE_RIV75)+salce.get_real(SALCE_RIV83)+salce.get_real(SALCE_RIV90)+salce.get_real(SALCE_RIV91)+salce.get_real(SALCE_RIVGF); + real valoreuni = valore / salce.get_int(SALCE_NUMELE); + if (valoreuni <= _uniprice) + _ammo100 = TRUE; + } + } + } + else + { + real valore = salce.get_real(SALCE_CSTO)-salce.get_real(SALCE_VNONAMM)+salce.get_real(SALCE_RIV75)+salce.get_real(SALCE_RIV83)+salce.get_real(SALCE_RIV90)+salce.get_real(SALCE_RIV91)+salce.get_real(SALCE_RIVGF); + real valoreuni = valore / salce.get_int(SALCE_NUMELE); + if (valoreuni <= _uniprice) + _ammo100 = TRUE; + } - - } + } break; default: @@ -197,140 +275,323 @@ bool TSelect_ammoces_qmask::on_field_event(TOperable_field& o, TField_event e, l return TRUE; } -TSelect_ammoces_qmask::TSelect_ammoces_qmask() : TAutomask("ce1301a") +TSelam_qmask::TSelam_qmask() : TAutomask("ce1301a") { first_focus(F_IDCESPITE); } -/* + //-----------------------------------------------------------------------------------------------------------------------// -//Maschera di selezione ammortamento sul cespite -class TSelect_ammoces_smask : public TAutomask -{ - TTipo_cespite _tipo; +////////////////////////////////////////////////////////////////// +//Maschera BENI MATERIALI +////////////////////////////////////////////////////////////////// +class TSelam_mmask : public TAutomask +{ int _staat; - real _residuof_ini,_residuoc_ini; protected: virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); - + + bool test_min(short quota, short minimo) const; + bool test_max(short nor, short ant, short acc) const; + public: void set_stato_attivita(int sa) { _staat = sa; } int stato_attivita() const { return _staat; } - void set_tipo_cespite(TTipo_cespite tc) { _tipo = tc; } - TTipo_cespite tipo_cespite() const { return _tipo; } - - void set_residuof_ini(const real& rfini) { _residuof_ini = rfini; } - void set_residuoc_ini(const real& rcini) { _residuoc_ini = rcini; } - - TSelect_ammoces_smask() : TAutomask("ce1301b") { } + TSelam_mmask() : TAutomask("ce1301b") { } }; +bool TSelam_mmask::test_min(short quota, short minimo) const +{ + bool warning = FALSE; + const bool ammrit = get_bool(F_AMMRIT_CE); + if (!ammrit) + { + const real perq = get(quota); + const real minq = get(minimo); + warning = perq < minq; + } + return warning; +} -bool TForce_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) -{ - bool ok = TRUE; +bool TSelam_mmask::test_max(short nor, short ant, short acc) const +{ + real tot; + tot += get_real(nor); + tot += get_real(ant); + tot += get_real(acc); + return tot > 100.0; +} + +bool TSelam_mmask::on_field_event(TOperable_field& o, TField_event e, long jolly) +{ switch (o.dlg()) { case F_CATEGORIA: - ditta_cespiti().on_category_event(o, e, jolly); - break; - - case F_FORZATURA_Q_F: //gestione reset dei vari checkbox di forzatura - if (e==fe_modify && o.get()=="X" && get(F_FORZATURA_P_F)=="X") - reset(F_FORZATURA_P_F); - break; - - case F_FORZATURA_P_F: - if (e==fe_modify && o.get()=="X" && get(F_FORZATURA_Q_F)=="X") - reset(F_FORZATURA_Q_F); - break; - - case F_FORZATURA_Q_C: - if (e==fe_modify && o.get()=="X" && get(F_FORZATURA_P_C)=="X") - reset(F_FORZATURA_P_C); - break; - - case F_FORZATURA_P_C: - if (e==fe_modify && o.get()=="X" && get(F_FORZATURA_Q_C)=="X") - reset(F_FORZATURA_Q_C); - break; - - case F_AMMNOR_F: // controlla che residuof sia < della somma dei campi quota fiscali (al variare di - case F_AMMACC_F: // ognuno dei campi quota componenti, in modo che in caso di errore il campo sia - case F_AMMANT_F: // subito identificato - case F_QUOTE_PERSE: - case F_PRIVATO: - case F_QUOTE_PRIV: - if (e==fe_close||e==fe_modify) { - real sumf = get_real(F_AMMNOR_F)+get_real(F_AMMACC_F)+get_real(F_AMMANT_F)+get_real(F_QUOTE_PERSE)+get_real(F_PRIVATO)+get_real(F_QUOTE_PRIV); - if (sumf > _residuof_ini) - return error_box("Attenzione: l'ammortamento richiesto supera il residuo fiscale del cespite"); + TDitta_cespiti& dc = ditta_cespiti(); + dc.on_category_event(o, e, jolly); } break; - case F_AMMNOR_C: // controlla che residuoc sia < della somma dei campi quota civilistici - case F_AMMACC_C: - case F_AMMANT_C: - if (e==fe_close||e==fe_modify) + + case F_AMMFISC_NOR_CE: + if (e == fe_modify || e == fe_close) + { + if (get_bool(F_AMM100_CE) == FALSE) + { + if (test_min(F_AMMFISC_NOR_CE, F_NORMIN)) // controlla se si producono quote perse fiscali + warning_box("L'ammortamento normale č inferiore al minimo della tabella ministeriale:\n" + "Se non si seleziona l'ammortamento ritardato verranno generate delle quote perse"); + if (test_max(F_AMMFISC_NOR_CE, F_AMMFISC_ANT_CE, F_AMMFISC_ACC_CE)) // controlla totale percentuali impostate fiscali + return error_box("Il totale delle percentuali di ammortamento fiscale supera il 100%"); + } + } + break; + + case F_AMMFISC_ACC_CE: + if (e == fe_modify || e == fe_close) { - real sumc = get_real(F_AMMNOR_C)+get_real(F_AMMACC_C)+get_real(F_AMMANT_C); - if (sumc > _residuoc_ini) - return error_box("Attenzione: l'ammortamento richiesto supera il residuo civilistico del cespite"); + if (test_max(F_AMMFISC_NOR_CE, F_AMMFISC_ANT_CE, F_AMMFISC_ACC_CE)) // controlla totale percentuali impostate fiscali + return error_box("Il totale delle percentuali di ammortamento fiscale supera il 100%"); } break; + + case F_AMMFISC_ANT_CE: + if (e == fe_modify || e == fe_close) + { + if (test_max(F_AMMFISC_NOR_CE, F_AMMFISC_ANT_CE, F_AMMFISC_ACC_CE)) // controlla totale percentuali impostate fiscali + return error_box("Il totale delle percentuali di ammortamento fiscale supera il 100%"); + + if (!o.empty() && test_min(F_AMMFISC_NOR_CE, F_NORMAX)) + return error_box("E' necessario completare l'ammortamento normale fiscale prima di calcolare quello anticipato fiscale"); + } + break; + + case F_AMMCIV_NOR_CE: + if (e == fe_modify || e == fe_close) + { + if (test_max(F_AMMCIV_NOR_CE, F_AMMCIV_ANT_CE, F_AMMCIV_ACC_CE)) // controlla totale percentuali impostate civilistiche + return error_box("Il totale delle percentuali di ammortamento civilistico supera il 100%"); + } + break; + + case F_AMMCIV_ANT_CE: + if (e == fe_modify || e == fe_close) + { + if (test_max(F_AMMCIV_NOR_CE, F_AMMCIV_ANT_CE, F_AMMCIV_ACC_CE)) // controlla totale percentuali impostate civilistiche + return error_box("Il totale delle percentuali di ammortamento civilistico supera il 100%"); + + if (!o.empty() && test_min(F_AMMCIV_NOR_CE, F_NORMAX)) + return error_box("E' necessario completare l'ammortamento normale civilistico prima di calcolare quello anticipato civilistico"); + } + break; + + case F_AMMCIV_ACC_CE: + if (e == fe_modify || e == fe_close) + { + if (test_max(F_AMMCIV_NOR_CE, F_AMMCIV_ANT_CE, F_AMMCIV_ACC_CE)) // controlla totale percentuali impostate civilistiche + return error_box("Il totale delle percentuali di ammortamento civilistico supera il 100%"); + } + break; + + case F_AMMRIT_CE: + if (e == fe_modify || e == fe_close) + { + if (get_bool(F_AMMRIT_CE) == TRUE) + { + if ((get_real(F_AMMFISC_NOR_CE) >= get_real(F_NORMIN)) || (get_real(F_AMMCIV_NOR_CE) >= get_real(F_NORMIN))) + return error_box("Indicata la scelta di ammortamento ritardato ma il Normale supera il Minimo ministeriale"); + if (get_real(F_AMMFISC_ACC_CE) != 0 || get_real(F_AMMCIV_ACC_CE) != 0) + return error_box("Impossibile scegliere contemporaneamente ammortamento Accelerato e Ritardato"); + } + } + break; + + case F_ANTMIN: + case F_SCELTA: + if (e == fe_modify || e == fe_init) + { + if (((get_int(F_SCELTA) == 1) && (get_real(F_ANTMIN) == 0)) || get_int(F_SCELTA) != 1) + { + disable(F_AMMFISC_ANT_CE); + reset(F_AMMFISC_ANT_CE); + } + else + enable(F_AMMFISC_ANT_CE); + } + break; + default: - break; + break; } - return ok; -} */ + return TRUE; +} //-----------------------------------------------------------------------------------------------------------------------// -//Applicazione -class TSelect_ammoces : public TRelation_application -{ - TRelation* _ammce; - - TSelect_ammoces_qmask* _qmask; -// TSelect_ammoces_smask* _smask; - -private: - void protect_fields(TMask& m, TToken_string& enabling) const; - void init_mask(TMask& m); - void update_amm(const TMask& m); - +//////////////////////////////////////////////////////////////////// +//Maschera BENI IMMATERIALI +//////////////////////////////////////////////////////////////////// +class TSelam_imask : public TAutomask +{ protected: - // @cmember Inizializzazione dei dati dell'utente - virtual bool user_create(); - // @cmember Distruzione dei dati dell'utente - virtual bool user_destroy(); - virtual bool changing_mask(int mode); - // @cmember Richiede la maschera da usare - virtual TMask* get_mask(int mode); - // @cmember Ritorna la relazione da modificare - virtual TRelation* get_relation() const; - - virtual void init_query_mode(TMask& m); - virtual void init_modify_mode(TMask& m); - virtual int write(const TMask& m); - virtual int rewrite(const TMask& m); + virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); +public: + TSelam_imask() : TAutomask("ce1301c") { } }; -bool TSelect_ammoces::changing_mask(int) +bool TSelam_imask::on_field_event(TOperable_field& o, TField_event e, long jolly) { + switch (o.dlg()) + { + case F_CATEGORIA: + case F_DESC_CAT: + { + TDitta_cespiti& dc = ditta_cespiti(); + return dc.on_category_event(o, e, jolly); + } + break; + + case F_AMMFISC_CE: + case F_AMMCIV_CE: + if (e == fe_modify || e == fe_close) + { + TCespite ces = get(F_IDCESPITE); + if ( (ces.get_int(CESPI_VINCOLO) != 2) && ( (get(F_AMMFISC_CE) > get(F_ALIQMAX)) || (get(F_AMMCIV_CE) > get(F_ALIQMAX)) ) ) + return error_box("L' ammortamento richiesto supera il limite della categoria"); + } + break; + + default: + break; + } return TRUE; } -TMask* TSelect_ammoces::get_mask(int mode) +//-----------------------------------------------------------------------------------------------------------------------// +/////////////////////////////////////////////////////////// +// Maschera di costi pluriennali +/////////////////////////////////////////////////////////// + +class TSelam_pmask : public TAutomask +{ +protected: + virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); + +public: + TSelam_pmask() : TAutomask("ce1301d") { } +}; + +bool TSelam_pmask::on_field_event(TOperable_field& o, TField_event e, long jolly) { -// return mode == MODE_QUERY ? (TMask*)_qmask : (TMask*)_smask; - return mode == MODE_QUERY ? (TMask*)_qmask : (TMask*)_qmask; + switch (o.dlg()) + { + case F_CATEGORIA: + case F_DESC_CAT: + { + TDitta_cespiti& dc = ditta_cespiti(); + return dc.on_category_event(o, e, jolly); + } + break; + + case F_AMMFISC_CE: + case F_AMMCIV_CE: + if (e == fe_modify || e == fe_close) + { + TCespite ces = get(F_IDCESPITE); + if (ces.get_int(CESPI_VINCOLO) == 1) + { + if (ces.get_int(CESPI_ANNIRIC) == 0) + { + real amm_fisc = o.get(); + if (amm_fisc == ZERO) //controlla l'obbligatorietį e la validitį dei campi (fiscale) + return error_box("Compilare l'ammortamento scelto"); + else + { + if (amm_fisc < get_real(F_ALIQMIN)) + return error_box("L'ammortamento scelto é inferiore al minimo da Tabella"); + if (amm_fisc > get_real(F_ALIQMAX)) + return error_box("L'ammortamento scelto é superiore al minimo da Tabella"); + } + } + } + else + { + real anni_ammo = get_real(F_ANNIAMMOREQ); + if ((anni_ammo == 0) && ces.get_bool(CESPI_LEASING) == TRUE) + return error_box("Compilare gli anni ammortamento richiesti"); + else if (anni_ammo > get_int(F_ENTROANNI)) + return error_box("Il numero di anni di ammortamento scelti supera il limite da tabella"); + } + } + break; + + default: + break; + } + return TRUE; } -TRelation* TSelect_ammoces::get_relation() const -{ - return _ammce; +//---------------------------------------------------------------------------------------------------------// +/////////////////////////////////////////////////////////// +// Applicazione principale: seconda puntata +/////////////////////////////////////////////////////////// + +TMask* TSelect_ammoces::get_mask(int mode) +{ + TMask* m = NULL; + if (mode == MODE_QUERY || mode == MODE_QUERYINS) + { + if (_msk[0] == NULL) + _msk[0] = new TSelam_qmask; + m = _msk[0]; + } + else + { + switch(_tipo) + { + case 1: + if (_msk[2] == NULL) + _msk[2] = new TSelam_imask; + break; + case 2: + if (_msk[3] == NULL) + _msk[3] = new TSelam_pmask; + break; + default: + if (_msk[1] == NULL) + _msk[1] = new TSelam_mmask; + break; + } + m = _msk[_tipo+1]; + } + return m; +} + +bool TSelect_ammoces::user_create() +{ + open_files(LF_TABCOM, LF_TAB, LF_CESPI, LF_SALCE, LF_AMMCE, LF_CATDI, 0); + _rel = new TRelation (LF_AMMCE); // relazione principale su AMMCE + TString expr69, expr77; + expr69 << "IDCESPITE==IDCESPITE|CODES==CODES|TPSALDO==TPSALDO|TPAMM==2"; //seconda relazione su AMMCE (quella con i TPAMM=2) + _rel->add(LF_AMMCE, expr69, 1, 0, 69); //69 é l'alias di AMMCE + _rel->write_enable(-69); //abilita la scrittura su secondo AMMCE + expr77 << "IDCESPITE==IDCESPITE|CODES==CODES|TPSALDO==TPSALDO|TPAMM==3"; //terza relazione su AMMCE (quella con i TPAMM=3) + _rel->add(LF_AMMCE, expr77, 1, 0, 77); //77 é l'alias di AMMCE + _rel->write_enable(-77); //abilita la scrittura su terzo AMMCE + _rel->add(LF_CESPI, "IDCESPITE==IDCESPITE"); //estende la relazione con CESPI + _rel->add(LF_SALCE, "IDCESPITE==IDCESPITE|CODES==CODES|TPSALDO==TPSALDO"); + memset(_msk, 0, sizeof(_msk)); + + return TRUE; +} + +bool TSelect_ammoces::user_destroy() +{ + for (int m = 3; m >= 0; m--) + if (_msk[m]) delete _msk[m]; + delete _rel; + return TRUE; } void TSelect_ammoces::init_query_mode(TMask& m) @@ -341,135 +602,183 @@ void TSelect_ammoces::init_query_mode(TMask& m) void TSelect_ammoces::init_mask(TMask& m) { TDitta_cespiti& dc = ditta_cespiti(); //se il bollato dell'esercizio é stato stampato inibisce il REGISTRA + const int ese = _msk[0]->get_int(F_ESERCIZIO); //prende i dati attivitį dalla maschera di selezione + const int gru = _msk[0]->get_int(F_GRUPPO); + const char* spe = _msk[0]->get(F_SPECIE); + dc.set_attivita(ese, gru, spe); dc.init_mask(m); - const bool can_edit = !dc.bollato_stampato() ; - m.enable(DLG_SAVEREC, can_edit); + const bool can_edit = !dc.bollato_stampato(); + m.enable(DLG_SAVEREC, can_edit); // inibisce la registrazione se bollato stampato m.enable(DLG_DELREC, can_edit); + const TString16 idcespite = m.get(F_IDCESPITE); + const TCespite ces (idcespite); -/* _smask->set_stato_attivita(_qmask->stato_attivita()); //copia lo stato attivitį della precedente - - _qmask->calc_res(TRUE); //calcola residuo precedente (prec=TRUE) - _smask->set_residuof_ini(_qmask->get_residuof()); //memorizza i residui precedenti nella maschera (non a video) - _smask->set_residuoc_ini(_qmask->get_residuoc()); + TLocalisamfile catdi(LF_CATDI); //legge i valori dal file CATDI e li mette nei campi solo output delle msk + catdi.put(CATDI_CODES, m.get_int(F_ESERCIZIO)); + catdi.put(CATDI_CODCGRA, m.get_int(F_GRUPPO)); + catdi.put(CATDI_CODSPA, m.get(F_SPECIE)); + catdi.put(CATDI_CODCAT, m.get_int(F_CATEGORIA)); + if (catdi.read() != NOERR) + catdi.zero(); + const int annofunz = m.get_date(F_DTFUNZ).year(); //getta l'anno di entrata in funzione del cespite - _qmask->calc_res(FALSE); // ricalcola il residuo fiscale e civilistico in forzatura (prec=FALSE) - _smask->set(F_RESIDUO_F, _qmask->get_residuof()); //prende il residuo fiscale (civilistico) del cespite calcolato - _smask->set(F_RESIDUO_C, _qmask->get_residuoc()); //nella maschera di selezione e lo mette nella maschera di forzatura -*/} - - -void TSelect_ammoces::protect_fields(TMask& m, TToken_string& enabling) const -{ - for (int f = m.fields()-1; f >= 0; f--) + TLocalisamfile salce1(LF_SALCE); + salce1.put(SALCE_IDCESPITE, m.get(F_IDCESPITE)); + salce1.put(SALCE_CODES, m.get_int(F_ESERCIZIO)); + salce1.put(SALCE_TPSALDO, 1); + + switch (_tipo) { - TMask_field& fld = m.fld(f); - const short id = fld.dlg(); - if (id > 100 && id < 1000 && fld.is_editable() && fld.enabled_default()) - { - const bool on = enabling.empty() || enabling.get_pos(fld.dlg()) >= 0; - fld.enable(on); + case 1: //immateriali + if (ces.get_int(CESPI_VINCOLO) == 2) //Controllo tipo ammortamento da categoria + { + m.clear(F_ALIQMAX); + m.clear(F_AMMFISC_CE); + m.clear(F_AMMCIV_CE); + m.set(F_ANNIAMMOREQ, ces.get_int(CESPI_ANNIRIC)); + } + else + { + m.set(F_ALIQMAX, ces.get_real(CESPI_PIMM)); + m.set(F_AMMFISC_CE, _rel->curr().get_real(AMMCE_PNOR)); + m.set(F_AMMCIV_CE, _rel->curr(-69).get_real(AMMCE_PNOR)); + m.clear(F_ANNIAMMOREQ); + } + + if (annofunz < 1988) //mette i valori di categoria nei campi solo output + { + m.set(F_AMMFISC_CT, catdi.get(CATDI_PFNORVN)); + m.set(F_AMMCIV_CT, catdi.get(CATDI_PCNORVN)); + } + else if (annofunz == 1988) + { + m.set(F_AMMFISC_CT, catdi.get(CATDI_PFNORVT)); + m.set(F_AMMCIV_CT, catdi.get(CATDI_PCNORVT)); + } + else + { + m.set(F_AMMFISC_CT, catdi.get(CATDI_PFNORNT)); + m.set(F_AMMCIV_CT, catdi.get(CATDI_PCNORNT)); + } + + break; + + case 2: //pluriennali + m.set(F_ENTROANNI, ces.categoria().get("I3")); //scrive sulla maschera il numero di anni per l'ammortamento + + if (annofunz < 1988) //mette i valori di categoria nei campi solo output + { + m.set(F_AMMFISC_CT, catdi.get(CATDI_PFNORVN)); + m.set(F_AMMCIV_CT, catdi.get(CATDI_PCNORVN)); + } + else if (annofunz == 1988) + { + m.set(F_AMMFISC_CT, catdi.get(CATDI_PFNORVT)); + m.set(F_AMMCIV_CT, catdi.get(CATDI_PCNORVT)); + } + else + { + m.set(F_AMMFISC_CT, catdi.get(CATDI_PFNORNT)); + m.set(F_AMMCIV_CT, catdi.get(CATDI_PCNORNT)); + } + + if (ces.get_int(CESPI_VINCOLO) == 3) //se il cespite é a quote costanti... + { + if (salce1.read() == NOERR) + { + if (salce1.get_int(SALCE_ANNIAMM) != 0) //controlla la modificabilitį delle scelte dopo il primo anno + { + m.disable(DLG_SAVEREC); + error_box("Ammortamento in quote costanti:\nimpossibile modificare le scelte dopo il primo esercizio di ammortamento"); + } + else + { + m.disable(F_AMMFISC_CE); + m.disable(F_AMMCIV_CE); + } + } + } + else + { + if (m.get_int(F_ENTROANNI) <= m.get_int(F_NUMESERAMM)) + { + m.disable(DLG_SAVEREC); + error_box("Impossibile proseguire:\nammortamento oltre il limite di anni della Tabella"); + } + } + break; + + default: //materiali + { + _aliqmax = ces.get_real(CESPI_PMAT); // calcola i valori predefiniti delle aliquote limite per cespiti materiali + _aliqmin = _aliqmax * 0.5; + if (salce1.read() == NOERR) + { + if (ces.get_bool(CESPI_USATO) == FALSE) + { + if (salce1.get_int(SALCE_ANNIAMM) <= 2) + { + if (ces.get_bool(CESPI_TUIR) == TRUE) + _aliqant = _aliqmax; + else + _aliqant = 15.0; + } + else + _aliqant = 0.0; + } + else + { + if (salce1.get_int(SALCE_ANNIAMM) != 0) + _aliqant = 0.0; + else + _aliqant = _aliqmax; + } + } } - } + m.set(F_NORMIN, _aliqmin); + m.set(F_NORMAX, _aliqmax); + m.set(F_ANTMIN, _aliqant); + + if (annofunz < 1988) //mette i valori di categoria nei campi solo output + { + m.set(F_AMMFISC_NOR_CT, catdi.get(CATDI_PFNORVN)); + m.set(F_AMMFISC_ANT_CT, catdi.get(CATDI_PFANTVN)); + m.set(F_AMMCIV_NOR_CT, catdi.get(CATDI_PCNORVN)); + m.set(F_AMMCIV_ANT_CT, catdi.get(CATDI_PCANTVN)); + } + else if (annofunz == 1988) + { + m.set(F_AMMFISC_NOR_CT, catdi.get(CATDI_PFNORVT)); + m.set(F_AMMFISC_ANT_CT, catdi.get(CATDI_PFANTVT)); + m.set(F_AMMCIV_NOR_CT, catdi.get(CATDI_PCNORVT)); + m.set(F_AMMCIV_ANT_CT, catdi.get(CATDI_PCANTVT)); + } + else + { + m.set(F_AMMFISC_NOR_CT, catdi.get(CATDI_PFNORNT)); + m.set(F_AMMFISC_ANT_CT, catdi.get(CATDI_PFANTNT)); + m.set(F_AMMCIV_NOR_CT, catdi.get(CATDI_PCNORNT)); + m.set(F_AMMCIV_ANT_CT, catdi.get(CATDI_PCANTNT)); + } + + m.set(F_AMMFISC_ACC_CT, catdi.get(CATDI_PFACC)); + m.set(F_AMMCIV_ACC_CT, catdi.get(CATDI_PCACC)); + m.set(F_AMMRIT_CT, catdi.get(CATDI_AMMRIT)); + m.set(F_AMM100_CT, catdi.get(CATDI_CSCEN)); + break; + } //chiude lo switch + + +} + +void TSelect_ammoces::init_insert_mode(TMask& m) +{ + init_mask(m); } void TSelect_ammoces::init_modify_mode(TMask& m) { init_mask(m); - -/* const bool accendiforzatura=_smask->stato_attivita()!=1; - m.enable(F_FORZATURA_Q_F, accendiforzatura); //abilita i checks della forzatura quando il bollato NON é stampato - m.enable(F_FORZATURA_P_F, accendiforzatura); - m.enable(F_FORZATURA_Q_C, accendiforzatura); - m.enable(F_FORZATURA_P_C, accendiforzatura); - - if (accendiforzatura) //se lo stato attivitį lascia liberi di forzare, controlla se il tipocespite fa altrettanto... - { - TCespite ces(m.get(F_IDCESPITE)); - const TRectype& cac = ces.categoria(); - switch (ces.tipo()) - { - case tc_immateriale: - if (cac.get_int("I1")!=0) - { - m.disable(F_FORZATURA_P_F); - m.disable(F_FORZATURA_P_C); - } - break; - - case tc_pluriennale: - if (cac.get_int("I2")==3) - { - m.disable(F_FORZATURA_P_F); - m.disable(F_FORZATURA_P_C); - } - break; - - default: - break; - } - } -// aggiornamento della colonna dei valori risultanti - m.set(F_RIS_AMMNOR_F, m.get_real(F_AMMNOR_F)); - m.set(F_RIS_AMMACC_F, m.get_real(F_AMMACC_F)); - m.set(F_RIS_AMMANT_F, m.get_real(F_AMMANT_F)); - m.set(F_RIS_QUOTE_PERSE, m.get_real(F_QUOTE_PERSE)); - m.set(F_RIS_PRIVATO, m.get_real(F_PRIVATO)); - m.set(F_RIS_QUOTE_PRIV, m.get_real(F_QUOTE_PRIV)); - - m.set(F_RIS_AMMNOR_C, m.get_real(F_AMMNOR_C)); - m.set(F_RIS_AMMACC_C, m.get_real(F_AMMACC_C)); - m.set(F_RIS_AMMANT_C, m.get_real(F_AMMANT_C)); */ -} - -// funzione per il ricalcolo degli ammortamenti dopo la forzatura -void TSelect_ammoces::update_amm(const TMask& m) -{ - TCespite ces(m.get(F_IDCESPITE)); - TDate fine_es = m.get_date(F_FINE_ES); - ces.calc_amm(1, FALSE, fine_es); - ces.calc_amm(2, FALSE, fine_es); -} - - -//funzione per il ricalcolo automatico dei valori degli ammortamenti dopo la forzatura (in caso di prima forzatura) -int TSelect_ammoces::write(const TMask& m) -{ - int err = TRelation_application::write(m); - if (err==NOERR) - update_amm(m); - return err; -} - -//funzione per il ricalcolo automatico dei valori degli ammortamenti dopo la forzatura -int TSelect_ammoces::rewrite(const TMask& m) -{ - int err = TRelation_application::rewrite(m); - if (err==NOERR) - update_amm(m); - return err; -} - -bool TSelect_ammoces::user_create() -{ - open_files(LF_TABCOM, LF_TAB, LF_CESPI, LF_SALCE, LF_AMMCE, 0); - _ammce = new TRelation (LF_AMMCE); // relazione principale su AMMCE - TString expr; - expr << "IDCESPITE==IDCESPITE|CODES==CODES|TPSALDO==TPSALDO|TPAMM==2"; //seconda relazione su AMMCE - _ammce->add(LF_AMMCE, expr, 1, 0, 69); //69 é l'alias di AMMCE - _ammce->write_enable(-69); //abilita la scrittura su secondo AMMCE - _ammce->add(LF_CESPI, "IDCESPITE==IDCESPITE"); //estende la relazione con CESPI - - _qmask = new TSelect_ammoces_qmask; -// _smask = new TForce_mask; - return TRUE; -} - -bool TSelect_ammoces::user_destroy() -{ -// delete _smask; - delete _qmask; - delete _ammce; - return TRUE; } int ce1300(int argc, char* argv[]) diff --git a/ce/ce1301a.h b/ce/ce1301a.h index db7850d83..f8a041cbf 100755 --- a/ce/ce1301a.h +++ b/ce/ce1301a.h @@ -20,4 +20,47 @@ #define F_DESC 121 #define F_IDCESPITE_I 122 #define F_DESC_I 123 - \ No newline at end of file + +#define F_SITUAZIONE 200 +#define F_CATEGORIA 201 +#define F_DESC_CAT 202 +#define F_DTFUNZ 203 +#define F_NUMESERAMM 204 +#define F_NORMIN 205 +#define F_ANTMIN 206 +#define F_NORMAX 207 +#define F_SCELTA 208 +#define F_SCELTA2 209 +#define F_SCELTA3 210 + +#define F_AMMFISC_NOR_CT 230 +#define F_AMMFISC_ACC_CT 231 +#define F_AMMFISC_ANT_CT 232 +#define F_AMMCIV_NOR_CT 233 +#define F_AMMCIV_ACC_CT 234 +#define F_AMMCIV_ANT_CT 235 +#define F_AMMRIT_CT 236 +#define F_AMM100_CT 237 + +#define F_AMMFISC_NOR_CE 240 +#define F_AMMFISC_ACC_CE 241 +#define F_AMMFISC_ANT_CE 242 +#define F_AMMCIV_NOR_CE 243 +#define F_AMMCIV_ACC_CE 244 +#define F_AMMCIV_ANT_CE 245 +#define F_AMMRIT_CE 246 +#define F_AMMRIT_CE2 247 +#define F_AMMRIT_CE3 248 +#define F_AMM100_CE 249 +#define F_AMM1002_CE 250 +#define F_AMM1003_CE 251 + +#define F_ALIQMAX 301 +#define F_AMMFISC_CT 302 +#define F_AMMFISC_CE 303 +#define F_AMMCIV_CT 304 +#define F_AMMCIV_CE 305 +#define F_ANNIAMMOREQ 306 + +#define F_ALIQMIN 401 +#define F_ENTROANNI 402 \ No newline at end of file diff --git a/ce/ce1301a.uml b/ce/ce1301a.uml index 6f8163c7e..3d89682c1 100755 --- a/ce/ce1301a.uml +++ b/ce/ce1301a.uml @@ -174,7 +174,6 @@ BEGIN DISPLAY "Data Ali.@10" DTALIEN COPY OUTPUT F_IDCESPITE CHECKTYPE REQUIRED - FIELD DESC GROUP 1 END @@ -203,7 +202,6 @@ BEGIN COPY OUTPUT F_IDCESPITE_I CHECKTYPE REQUIRED MESSAGE COPY,F_DESC - FIELD DESC GROUP 2 END @@ -211,7 +209,7 @@ LIST DLG_NULL 1 BEGIN PROMPT 1 90 "" FLAGS "D" - ITEM "2|2" + ITEM "1|1" FIELD TPSALDO KEY 1 END diff --git a/ce/ce1301b.uml b/ce/ce1301b.uml index 1d431ea78..c1c949bb9 100755 --- a/ce/ce1301b.uml +++ b/ce/ce1301b.uml @@ -194,14 +194,28 @@ BEGIN FLAGS "Z" PROMPT 15 9 "" ITEM "0|Tab. Ministeriale" - MESSAGE DISABLE,1@ + MESSAGE DISABLE,1@|COPY,F_SCELTA2|COPY,F_SCELTA3 ITEM "1|Cespite" - MESSAGE ENABLE,1@ + MESSAGE ENABLE,1@|COPY,F_SCELTA2|COPY,F_SCELTA3 ITEM "2|Categoria" - MESSAGE DISABLE,1@ + MESSAGE DISABLE,1@|COPY,F_SCELTA2|COPY,F_SCELTA3 FIELD SCELTE END +NUMBER F_SCELTA2 1 +BEGIN + PROMPT 15 100 "" + FLAGS "D" + FIELD 69@->SCELTE +END + +NUMBER F_SCELTA3 1 +BEGIN + PROMPT 15 100 "" + FLAGS "D" + FIELD 77@->SCELTE +END + GROUPBOX DLG_NULL 78 6 BEGIN PROMPT 0 11 "@bScelta su categoria" @@ -311,7 +325,7 @@ BEGIN PROMPT 67 18 "" FLAGS "U" FIELD PANT - NUM_EXPR (#THIS_FIELD>=#F_ANTMIN)&&(#THIS_FIELD<=100) + NUM_EXPR (#THIS_FIELD<=#F_ANTMIN)&&(#THIS_FIELD<=100) WARNING "L'ammortamento fiscale anticipato scelto supera il limite ministeriale" END @@ -345,7 +359,7 @@ BEGIN PROMPT 67 19 "" FLAGS "U" FIELD 69@->PANT - NUM_EXPR (#THIS_FIELD>=#F_ANTMIN)&&(#THIS_FIELD<=100) + NUM_EXPR (#THIS_FIELD<=#F_ANTMIN)&&(#THIS_FIELD<=100) WARNING "L'ammortamento civilistico anticipato scelto supera il limite ministeriale" GROUP 1 END diff --git a/ce/ce1301c.uml b/ce/ce1301c.uml index afb547615..b0e0b54ac 100755 --- a/ce/ce1301c.uml +++ b/ce/ce1301c.uml @@ -156,19 +156,33 @@ BEGIN PROMPT 1 11 "Tipo Scelta" END -RADIOBUTTON F_SCELTA 1 72 +RADIOBUTTON F_SCELTA 1 70 BEGIN FLAGS "Z" PROMPT 15 10 "" ITEM "0|Tab. Ministeriale" - MESSAGE DISABLE,1@ + MESSAGE DISABLE,1@|COPY,F_SCELTA2|COPY,F_SCELTA2 ITEM "1|Cespite" - MESSAGE ENABLE,1@ + MESSAGE ENABLE,1@|COPY,F_SCELTA2|COPY,F_SCELTA2 ITEM "2|Categoria" - MESSAGE DISABLE,1@ + MESSAGE DISABLE,1@|COPY,F_SCELTA2|COPY,F_SCELTA2 FIELD SCELTE END +NUMBER F_SCELTA2 1 +BEGIN + PROMPT 15 100 "" + FLAGS "D" + FIELD 69@->SCELTE +END + +NUMBER F_SCELTA3 1 +BEGIN + PROMPT 15 100 "" + FLAGS "D" + FIELD 77@->SCELTE +END + GROUPBOX DLG_NULL 78 3 BEGIN PROMPT 0 13 "@bTabelle ministeriali" diff --git a/ce/ce1301d.uml b/ce/ce1301d.uml index f7a9eebc4..711e77d52 100755 --- a/ce/ce1301d.uml +++ b/ce/ce1301d.uml @@ -161,14 +161,28 @@ BEGIN FLAGS "Z" PROMPT 15 10 "" ITEM "0|Tab. Ministeriale" - MESSAGE DISABLE,1@ + MESSAGE DISABLE,1@|COPY,F_SCELTA2|COPY,F_SCELTA3 ITEM "1|Cespite" - MESSAGE ENABLE,1@ + MESSAGE ENABLE,1@|COPY,F_SCELTA2|COPY,F_SCELTA3 ITEM "2|Categoria" - MESSAGE DISABLE,1@ + MESSAGE DISABLE,1@|COPY,F_SCELTA2|COPY,F_SCELTA3 FIELD SCELTE END +NUMBER F_SCELTA2 1 +BEGIN + PROMPT 15 100 "" + FLAGS "D" + FIELD 69@->SCELTE +END + +NUMBER F_SCELTA3 1 +BEGIN + PROMPT 15 100 "" + FLAGS "D" + FIELD 77@->SCELTE +END + GROUPBOX DLG_NULL 78 5 BEGIN PROMPT 0 12 "@bTabelle ministeriali" @@ -252,14 +266,7 @@ END NUMBER F_ANNIAMMOREQ 8 BEGIN PROMPT 65 20 "" - FIELD AMMRIC - GROUP 1 -END - -NUMBER F_ANNIAMMOREQ2 8 -BEGIN - PROMPT 65 20 "" - FIELD 69@->AMMRIC + FIELD LF_CESPI->ANNIRIC GROUP 1 END diff --git a/ce/ce1400.cpp b/ce/ce1400.cpp index ef4cf0ea7..bd2a5bd68 100755 --- a/ce/ce1400.cpp +++ b/ce/ce1400.cpp @@ -76,7 +76,9 @@ bool TSac_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) { TDitta_cespiti& dc = ditta_cespiti(); bool ok = dc.on_category_event(o, e, jolly); - if (!ok) + if (ok) + set(F_CATEGORIA2, get(F_CATEGORIA)); + else return FALSE; } case F_CATEGORIA2: @@ -86,7 +88,7 @@ bool TSac_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) TDitta_cespiti& dc = ditta_cespiti(); const int gr = get_int(F_GRUPPO); const char* sp = get(F_SPECIE); - const int ca = get_int(F_CATEGORIA); + const int ca = get_int(F_CATEGORIA2); const TRectype& cac = dc.categoria(gr, sp, ca); bool ok = !cac.empty(); if (ok && (o.dlg() == F_CATEGORIA || o.dlg() == F_CATEGORIA2)) @@ -120,7 +122,7 @@ bool TSac_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) break; } } - if (!ok && o.dlg() == F_CATEGORIA2) + if (!ok && !o.empty() && o.dlg() == F_CATEGORIA2) return error_box("E' neccessario specificare una categoria valida"); if (ok && e == fe_button && o.dlg() == F_CATEGORIA) send_key(K_ENTER, 0); @@ -311,7 +313,7 @@ public: bool TPlu_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) { switch (o.dlg()) - { + { case F_CATEGORIA: { TDitta_cespiti& dc = ditta_cespiti(); @@ -352,6 +354,7 @@ TMask* TScelta_amm_cat::get_mask(int mode) default: if (_msk[1] == NULL) _msk[1] = new TMat_mask; + _tipo = 0; break; } m = _msk[_tipo+1]; @@ -415,9 +418,10 @@ void TScelta_amm_cat::init_mask(TMask& m) const int ese = _msk[0]->get_int(F_ESERCIZIO); const int gru = _msk[0]->get_int(F_GRUPPO); const char* spe = _msk[0]->get(F_SPECIE); - const int cat = _msk[0]->get_int(F_CATEGORIA); + const int cat = _msk[0]->get_int(F_CATEGORIA2); dc.set_attivita(ese, gru, spe); dc.init_mask(m); + m.set(F_CATEGORIA, cat); const TRectype& cac = dc.categoria(gru, spe, cat); switch (_tipo) @@ -446,6 +450,11 @@ void TScelta_amm_cat::init_mask(TMask& m) } break; } + + const bool can_edit = !dc.bollato_stampato(); + m.enable(DLG_SAVEREC, can_edit); + m.enable(DLG_NEWREC, can_edit); + m.enable(DLG_DELREC, can_edit); } void TScelta_amm_cat::init_insert_mode(TMask& m) diff --git a/ce/ce1400b.uml b/ce/ce1400b.uml index d0722ecd6..34a800bfd 100755 --- a/ce/ce1400b.uml +++ b/ce/ce1400b.uml @@ -32,7 +32,7 @@ END NUMBER F_ESERCIZIO 4 BEGIN PROMPT 1 3 "Esercizio " - FLAGS "AZD" + FLAGS "DGZ" USE ESC INPUT CODTAB F_ESERCIZIO DISPLAY "Codice esercizio" CODTAB diff --git a/ce/ce1400c.uml b/ce/ce1400c.uml index ddbb39c90..3ecbfd7c4 100755 --- a/ce/ce1400c.uml +++ b/ce/ce1400c.uml @@ -32,7 +32,7 @@ END NUMBER F_ESERCIZIO 4 BEGIN PROMPT 1 3 "Esercizio " - FLAGS "DZ" + FLAGS "DGZ" USE ESC INPUT CODTAB F_ESERCIZIO DISPLAY "Codice esercizio" CODTAB @@ -161,6 +161,7 @@ BEGIN PROMPT 32 14 "" NUM_EXPR #THIS_FIELD<=#F_MAX_AMM WARNING "La quota di ammortamento supera il limite della tabella ministeriale" + FIELD PFNORVN END NUMBER F_NORCIV 6 2 @@ -168,6 +169,7 @@ BEGIN PROMPT 56 14 "" FLAGS "U" NUM_EXPR #THIS_FIELD<=100 + FIELD PCNORVN END ENDPAGE diff --git a/ce/ce1400d.uml b/ce/ce1400d.uml index ee122dd82..1e15963c7 100755 --- a/ce/ce1400d.uml +++ b/ce/ce1400d.uml @@ -32,7 +32,7 @@ END NUMBER F_ESERCIZIO 4 BEGIN PROMPT 1 3 "Esercizio " - FLAGS "DZ" + FLAGS "DGZ" USE ESC INPUT CODTAB F_ESERCIZIO DISPLAY "Codice esercizio" CODTAB @@ -168,6 +168,7 @@ BEGIN PROMPT 32 15 "" NUM_EXPR (#THIS_FIELD>=#F_MIN_AMM)&&(#THIS_FIELD<=#F_MAX_AMM) WARNING "La quota di ammortamento deve essere compresa tra i limiti della tabella ministeriale" + FIELD PFNORVN END NUMBER F_NORCIV 6 2 @@ -175,6 +176,7 @@ BEGIN PROMPT 56 15 "" FLAGS "U" NUM_EXPR #THIS_FIELD<=100 + FIELD PCNORVN END ENDPAGE diff --git a/ce/ce1500.cpp b/ce/ce1500.cpp index 963c7af55..2e506483e 100755 --- a/ce/ce1500.cpp +++ b/ce/ce1500.cpp @@ -35,16 +35,17 @@ class TMovicespi : public TRelation_application TMov_qmask* _qmask; TMov_emask* _emask; TFilename _prima_nota; - int _cg_line; private: void kill_mov(const TString& idcespite, const TString& idmov, int lfile); void kill_rett(const TString& id, const TString& idmov); + void set_prompt(TMask_field& fld, bool plus); + void show_plus_minus(TMask& m); + protected: virtual bool changing_mask(int mode) { return TRUE; } virtual TMask* get_mask(int mode); - virtual TRelation* get_relation() const { return _rel; } virtual const char* get_next_key(); virtual bool protected_record(TRelation &r); virtual bool user_create(); @@ -52,16 +53,18 @@ protected: virtual void init_query_mode(TMask& m); virtual void init_insert_mode(TMask& m); virtual void init_modify_mode(TMask& m); - + virtual int write(const TMask& m); + virtual int rewrite(const TMask& m); virtual bool remove(); public: - int tipo_cr(int gruppo, int conto, long sottoconto) const; + virtual TRelation* get_relation() const { return _rel; } + + void calc_residuo(long numreg); void cg_mode(); - bool select_mov(long numreg, TString& idmov) const; int init_mask(TMask& m); - void save_if_dirty() { save(TRUE); } + void save_if_dirty(); }; TMovicespi& app() { return (TMovicespi&)main_app(); } @@ -76,7 +79,9 @@ class TMov_qmask : public TAutomask int _staat; protected: + virtual bool can_be_closed() const; virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); + virtual void on_firm_change(); int calcola_stato_attivita(); public: @@ -144,12 +149,45 @@ bool TMov_qmask::on_field_event(TOperable_field& o, TField_event e, long jolly) m.browse()->set_filter(filter); } break; + case F_NUMREG: + if (e == fe_modify) + { + TEdit_field& m = efield(F_IDMOV); + if (!m.empty()) + m.on_key(K_TAB); + } + break; + case F_CGROWS: + if (e == se_query_add || e == se_query_del) + return FALSE; + break; + case DLG_QUIT: + if (e == fe_button) + { + TMask_field& f = efield(F_TOTRES); + if (f.shown() && !f.empty()) + return yesno_box("Attenzione: la registrazione contabile non č ancora del tutto evasa:\n" + "Si desidera uscire ugualmente?"); + } + break; default: break; } return TRUE; } +bool TMov_qmask::can_be_closed() const +{ + TButton_field& f = (TButton_field&)field(DLG_QUIT); + return ((TMov_qmask*)this)->on_field_event(f, fe_button, 0); +} + +void TMov_qmask::on_firm_change() +{ + TAutomask::on_firm_change(); + ditta_cespiti().init_mask(*this); +} + TMov_qmask::TMov_qmask() : TAutomask("ce1500a") { first_focus(F_IDMOV); @@ -172,10 +210,12 @@ private: void set_fondi_inputability(); real calc_riv(const TRectype& salpro, int tipo) const; - void calc_amm(int tipo); + bool calc_amm(int tipo); + void calc_plus_minus(int tipo, real& plus, real& minus) const; bool cespite_nuovo() const; TCurrency sum_fields(const short* f) const; + void super_polish(); protected: virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); @@ -183,6 +223,8 @@ protected: public: void set_stato_attivita(int s) { _staat = s; } + void recalc_amm(); + TMov_emask(); }; @@ -208,6 +250,16 @@ TCurrency TMov_emask::sum_fields(const short* f) const return sum; } +// Toglie tutti i dirty +void TMov_emask::super_polish() +{ + for (int f = fields()-1; f >= 0; f--) + { + TMask_field& c = fld(f); + c.set_dirty(FALSE); + } +} + void TMov_emask::set_inputability(short id, char flag) { TMask_field& f = field(id); @@ -458,7 +510,7 @@ bool TMov_emask::on_field_event(TOperable_field& o, TField_event e, long jolly) } break; case S_TIPO: - if (e == fe_modify) + if (e == fe_init || e == fe_modify) calc_amm(atoi(o.get())); break; default: @@ -473,17 +525,53 @@ real TMov_emask::calc_riv(const TRectype& salpro, int tipo) const real riv; for (int i = 0; riv_ids[i]; i++) riv += salpro.get_real(riv_ids[i]); + if (tipo == 1) + riv += salpro.get_real(SALCE_RIVGF); if (tipo == 2) riv += salpro.get_real(SALCE_RIVGC); - else - riv += salpro.get_real(SALCE_RIVGF); return riv; -} - -void TMov_emask::calc_amm(int tipo) +} + +void TMov_emask::calc_plus_minus(int tipo, real& plus, real& minus) const { + TDitta_cespiti& cce = ditta_cespiti(); + TDate inies, fines; + const int esercizio = cce.esercizio_corrente(inies, fines); const TDate dtlim = get(F_DTMOV); - _cespite.calc_amm(tipo, FALSE, dtlim); + + TRelation rel(LF_MOVCE); + TString expr; expr << "IDCESPITE==IDCESPITE|IDMOV==IDMOV|TPAMM==\"" << tipo << '"'; + rel.add(LF_AMMMV, expr); + + TRectype& movsem = rel.curr(); + TRectype& ammmv = rel.curr(LF_AMMMV); + const TString idcespite = get(F_IDCESPITE); + movsem.put(MOVCE_IDCESPITE, idcespite); + TString filtro; + filtro << "(ANSI(DTMOV)>=\"" << inies.string(ANSI) << "\")"; + filtro << "&&(ANSI(DTMOV)<=\"" << dtlim.string(ANSI) << "\")"; + TCursor cur(&rel, filtro, 2, &movsem, &movsem); + const long items = cur.items(); + plus = minus = ZERO; + if (items > 0) // Continua solo se esistono movimenti + { + cur.freeze(); + for (cur = 0L; cur.pos() < items; ++cur) + { + plus += ammmv.get_real(AMMMV_PLUS); + minus += ammmv.get_real(AMMMV_MINUS); + } + } +} + +bool TMov_emask::calc_amm(int tipo) +{ + const TString& idcespite = _cespite.get(CESPI_IDCESPITE); + if (idcespite.empty()) + return FALSE; + + const TDate dtlim = get(F_DTMOV); + _cespite.calc_amm(tipo, dtlim); set(S_DATAMOV, dtlim); const TRectype& s = _cespite.sal_pro(); @@ -498,12 +586,12 @@ void TMov_emask::calc_amm(int tipo) set(S_TOTVAL, tot_val); const TRectype& a = _cespite.amm_pro(); - set(S_NORMALE, a.get(AMMCE_QNOR)); - set(S_ACCELERATO, a.get(AMMCE_QACC)); - set(S_ANTICIPATO, a.get(AMMCE_QANT)); - set(S_QPERSE, a.get(AMMCE_QPERSE)); - set(S_FPRIVATO, a.get(AMMCE_FPRIVATO)); - set(S_QPERSEP, a.get(AMMCE_QPERSEP)); + set(S_NORMALE, a.get(AMMCE_QNORP)); + set(S_ACCELERATO, a.get(AMMCE_QACCP)); + set(S_ANTICIPATO, a.get(AMMCE_QANTP)); + set(S_QPERSE, a.get(AMMCE_QPERSEP)); + set(S_FPRIVATO, a.get(AMMCE_FPRIVATOP)); + set(S_QPERSEP, a.get(AMMCE_QPPRIVATEP)); real tot_fon; tot_fon += get_real(S_NORMALE); tot_fon += get_real(S_ACCELERATO); tot_fon += get_real(S_ANTICIPATO); tot_fon += get_real(S_QPERSE); @@ -513,11 +601,12 @@ void TMov_emask::calc_amm(int tipo) const real tot_res = tot_val-tot_fon; set(S_RESIDUO, tot_res); - TString key; - key << get(F_IDCESPITE) << '|' << get(F_IDMOV) << '|' << tipo; - const TRectype& ammmv = cache().get(LF_AMMMV, key); - set(S_PLUS, ammmv.get(AMMMV_PLUS)); - set(S_MINUS, ammmv.get(AMMMV_MINUS)); + real plus, minus; + calc_plus_minus(tipo, plus, minus); + set(S_PLUS, plus); + set(S_MINUS, minus); + + return TRUE; } void TMov_emask::set_fondi_inputability() @@ -543,6 +632,13 @@ void TMov_emask::set_fondi_inputability() } } +void TMov_emask::recalc_amm() +{ + const TDate dtlim = get(F_FINE_ES); + for (int tipo = 1; tipo <= 3; tipo++) + _cespite.calc_amm(tipo, dtlim); +} + bool TMov_emask::on_key(KEY k) { // Try to predict next page! @@ -560,24 +656,33 @@ bool TMov_emask::on_key(KEY k) } // If page will change ... - if (old_page != new_page) switch(new_page) + if (old_page != new_page) { - case 3: - set_fondi_inputability(); - break; - case 4: - if (dirty() < S_TIPO) + switch(new_page) { - app().save_if_dirty(); - for (int f = fields()-1; f >= 0; f--) + case 3: + set_fondi_inputability(); + break; + case 4: + if (dirty() < S_TIPO) { - TMask_field& c = fld(f); - c.set_dirty(FALSE); + app().save_if_dirty(); + super_polish(); + } + set(S_TIPO, 1, TRUE); + break; + default: break; + } + if (old_page == 4) + { + recalc_amm(); + TRelation& rel = *app().get_relation(); + if (rel.read() == NOERR) + { + autoload(rel); + super_polish(); } } - set(S_TIPO, 1, TRUE); - break; - default: break; } return TAutomask::on_key(k); } @@ -597,7 +702,8 @@ TMask* TMovicespi::get_mask(int mode) bool TMovicespi::user_create() { - open_files(LF_TAB, LF_TABCOM, LF_CESPI, LF_AMMCE, LF_SALCE, LF_MOVCE, LF_MOVAM, LF_AMMMV, 0); + open_files(LF_TAB, LF_TABCOM, LF_PCON, LF_CLIFO, 0); + open_files(LF_CESPI, LF_AMMCE, LF_SALCE, LF_MOVCE, LF_MOVAM, LF_AMMMV, 0); _rel = new TRelation(LF_MOVCE); _rel->add(LF_MOVAM, "IDCESPITE==IDCESPITE|IDMOV==IDMOV|TPAMM==1"); @@ -613,12 +719,10 @@ bool TMovicespi::user_create() { _prima_nota = argv(2); _prima_nota.ltrim(2); - _cg_line = 1; } else { _prima_nota.cut(0); - _cg_line = 0; } return TRUE; @@ -635,7 +739,7 @@ bool TMovicespi::user_destroy() const char* TMovicespi::get_next_key() { real num = 1; - TLocalisamfile& cespi = _rel->lfile(LF_MOVCE); + TLocalisamfile cespi(LF_MOVCE); if (cespi.last() == NOERR) num = cespi.get_real(MOVCE_IDMOV) + 1; return format("%d|%s", F_IDMOV, num.string()); @@ -647,105 +751,179 @@ bool TMovicespi::protected_record(TRelation &r) return stampato; } -int TMovicespi::tipo_cr(int gruppo, int conto, long sottoconto) const -{ - TString16 str; - str.format("%d|%d|%ld", gruppo, conto, sottoconto); - const TRectype& pcon = cache().get(LF_PCON, str); - const int t = pcon.get_int(PCN_TIPOSPRIC); - return t; -} +void TMovicespi::calc_residuo(long numreg) +{ + TSheet_field& s = _qmask->sfield(F_CGROWS); + + // Mette tutti i residui uguali importi + real tot_imp = ZERO; + for (int r = s.items()-1; r >= 0; r--) + { + TToken_string& row = s.row(r); + real imp = row.get(0); + row.add(imp.string(), 1); + tot_imp += imp; + } + real tot_res = tot_imp; -bool TMovicespi::select_mov(long numreg, TString& idmov) const -{ TRelation rel(LF_MOVCE); TString filter; filter << MOV_NUMREG << "==" << numreg; TCursor cur(&rel, filter, 3); - long items = cur.items(); - if (items == 0L) - { - cur.setkey(1); - cur.setfilter(""); - items = cur.items(); - } - bool ok = items > 0; - if (ok) + const long items = cur.items(); + if (items > 0) { - long selected = 0; - if (items > 1) - { - TCursor_sheet sheet(&cur, "NUMREG|IDMOV|DTMOV|DESC", "Movimenti cespiti", - "Registazione|Movimento@11|Data@10|Descrizione Movimento@50", 0, 1); - ok = sheet.run() == K_ENTER; - if (ok) - selected = sheet.selected(); + cur.freeze(); + TRectype& movce = cur.curr(); + + TAssoc_array ignore; + // Prima cerca movimenti con importo identico ... + for (cur = 0L; cur.pos() < items; ++cur) + { + const char segno = movce.get_char(MOVCE_SEGNO); + real imp = movce.get(segno == '-' ? MOVCE_IMPVEN : MOVCE_CSTO); + if (imp > ZERO) // Cerca una riga con lo stesso importo + { + for (int r = 0; r < s.items(); r++) + { + TToken_string& row = s.row(r); + const real res = row.get(1); + if (imp == res) + { + imp = ZERO; + row.add(" ", 1); + tot_res -= res; + ignore.add(movce.get(MOVCE_IDMOV)); + break; + } + } + } } - if (ok) - { - cur = selected; - idmov = cur.curr().get(MOVCE_IDMOV); + // ... poi scala dalle varie righe l'importo fino ad esaurimento + for (cur = 0L; cur.pos() < items && tot_res > ZERO; ++cur) + { + if (ignore.is_key(movce.get(MOVCE_IDMOV))) + continue; + const char segno = movce.get_char(MOVCE_SEGNO); + real imp = movce.get(segno == '-' ? MOVCE_IMPVEN : MOVCE_CSTO); + for (int r = 0; r < s.items() && imp > ZERO; r++) + { + TToken_string& row = s.row(r); + real res = row.get(1); + if (res > ZERO) + { + const real quota = (res > imp) ? imp : res; + res -= quota; + imp -= quota; + row.add(res.string(), 1); + tot_res -= quota; + } + } } } - return ok; + // s.force_update(); + _qmask->set(F_TOTIMP, tot_imp); + _qmask->set(F_TOTRES, tot_res); +} + +void TMovicespi::set_prompt(TMask_field& fld, bool plus) +{ + TString str = fld.prompt(); + if (plus) + { + if (str[0] != 'P') + { + str.ltrim(3); + str.insert("Pl"); + } + } + else + { + if (str[0] != 'M') + { + str.ltrim(2); + str.insert("Min"); + } + } + fld.set_prompt(str); +} + +void TMovicespi::show_plus_minus(TMask& m) +{ + TToken_string key; + short id_txt = F_PLUSMIN_FIS_TXT; + short id_fld = F_PLUSMIN_FIS; + for (int tipo = 1; tipo <= 3; tipo++, id_txt+= 2, id_fld+=2) + { + key = m.get(F_IDCESPITE); + key.add(m.get(F_IDMOV)); + key.add(tipo); + const TRectype& ammmv = cache().get(LF_AMMMV, key); + const real plus = ammmv.get(AMMMV_PLUS); + const real minus = ammmv.get(AMMMV_MINUS); + const bool on = !plus.is_zero() || !minus.is_zero(); + if (on) + { + if (!plus.is_zero()) + { + set_prompt(m.field(id_txt), TRUE); + m.set(id_fld, plus); + } + else + { + set_prompt(m.field(id_txt), FALSE); + m.set(id_fld, minus); + } + } + m.show(id_txt, on); + m.show(id_fld, on); + } } void TMovicespi::cg_mode() { TConfig ini(_prima_nota, "Transaction"); - char action = ini.get("Action")[0]; - + const char action = ini.get("Action")[0]; + TString8 para; para.format("%d", LF_MOV); - ini.set_paragraph(para); - - // Al primo inserimento devo impostare anche l'anno e l'attivitą - if (_cg_line == 1 && action == 'I') - { - _qmask->set(F_ESERCIZIO, ini.get(MOV_ANNOES), TRUE); - if (!_qmask->efield(F_SPECIE).on_key(K_F9)) - action = ' '; - } + ini.set_paragraph(para); + const long numreg = ini.get_long(MOV_NUMREG); + _qmask->set(F_NUMREG, numreg); + + // Al primo inserimento devo impostare anche l'anno + _qmask->set(F_ESERCIZIO, ini.get(MOV_ANNOES), TRUE); - if (action == 'I') - { - for (int i = _cg_line; ; i++) - { - para.format("%d,%d", LF_RMOV, i); - if (ini.set_paragraph(para)) - { - const int gruppo = ini.get_int(RMV_GRUPPO); - const int conto = ini.get_int(RMV_CONTO); - const int sottoconto = ini.get_int(RMV_SOTTOCONTO); - const int tipo = tipo_cr(gruppo, conto, sottoconto); - if (tipo == 2 || tipo == 3 || tipo == 4 || tipo == 8) - { - _cg_line = i; - _qmask->send_key(K_SPACE, DLG_NEWREC); - break; - } - } - else + if (action != 'I' && action != 'M') + { + _qmask->hide(-8); + return; + } + else + _qmask->show(-8); + + TSheet_field& s = _qmask->sfield(F_CGROWS); + for (int i = 1; ; i++) + { + para.format("%d,%d", LF_RMOV, i); + if (ini.set_paragraph(para)) + { + const int gruppo = ini.get_int(RMV_GRUPPO); + const int conto = ini.get_int(RMV_CONTO); + const long sottoconto = ini.get_long(RMV_SOTTOCONTO); + const TBill zio(gruppo, conto, sottoconto); + const int tipo = zio.tipo_cr(); + if (tipo == 2 || tipo == 3 || tipo == 4 || tipo == 8) { - action = ' '; - break; + TToken_string& row = s.row(-1); + row = ini.get(RMV_IMPORTO); + row.add(""); + row.add(zio.string(0x2)); } } - } else - if (action == 'M' || action == 'D') - { - const long numreg = ini.get_long(MOV_NUMREG); - TString16 idmov; - if (select_mov(numreg, idmov)) - { - _qmask->set(F_IDMOV, idmov, TRUE); - _qmask->send_key(K_AUTO_ENTER, 0); - } else - action = ' '; + break; } - // Caso artificiale per terminare la transazione - if (action == ' ') - stop_run(); + calc_residuo(numreg); } void TMovicespi::init_query_mode(TMask& m) @@ -754,8 +932,10 @@ void TMovicespi::init_query_mode(TMask& m) dc.init_mask(m); // Collegamento da prima nota - if (_cg_line > 0) + if (_prima_nota.not_empty()) cg_mode(); + else + m.hide(-8); // Nascondi campi collegamento prima nota } int TMovicespi::init_mask(TMask& m) @@ -777,8 +957,10 @@ void TMovicespi::init_insert_mode(TMask& m) m.enable(F_DESC_CES); m.enable(DLG_SAVEREC, staat != 3); - if (_cg_line > 0) + if (_prima_nota.not_empty()) { + m.disable(DLG_QUIT); // Altrimenti non riesco a controllare il residuo + TString16 para; para.format("%d", LF_MOV); TConfig ini(_prima_nota, para); @@ -793,17 +975,29 @@ void TMovicespi::init_insert_mode(TMask& m) m.set(F_DTDOC, ini.get(MOV_DATADOC), TRUE); TString desc = ini.get(MOV_DESCR); + desc.strip("\""); if (desc.empty()) desc = cau.get(CAU_DESCR); m.set(F_DESC_MOV, desc, TRUE); - - if (m.field(F_COSTO).enabled()) + + TString16 codreg = ini.get(MOV_REG); + if (codreg.not_empty()) { - para.format("%d,%d", LF_RMOV, _cg_line); - m.set(F_COSTO, ini.get(RMV_IMPORTO, para)); + codreg.insert(format("%04d", ini.get_int(MOV_ANNOIVA))); + const int iva = atoi(cache().get("REG", codreg, "I0")); + TSheet_field& s = _qmask->sfield(F_CGROWS); + for (int r = 0; r < s.items(); r++) + { + const real res = s.row(r).get(1); + if (res > 0) + { + m.set(iva==1 ? F_IMPVEN : F_COSTO, res); + break; + } + } } - _cg_line++; } + show_plus_minus(m); } void TMovicespi::init_modify_mode(TMask& m) @@ -832,20 +1026,35 @@ void TMovicespi::init_modify_mode(TMask& m) msg << esc.date2esc(dtmov); xvt_statbar_set(msg); } + if (_prima_nota.not_empty()) + m.disable(DLG_QUIT); // Altrimenti non riesco a controllare il residuo + + show_plus_minus(m); } void TMovicespi::kill_mov(const TString& idcespite, const TString& idmov, int lfile) { CHECKD(lfile == LF_MOVAM || lfile == LF_AMMMV, "Invalid file ", lfile); TRelation rel(lfile); - TRectype& filter = rel.curr(); + TRectype filter(rel.curr()); + filter.zero(); filter.put("IDCESPITE", idcespite); filter.put("IDMOV", idmov); TCursor cur(&rel, "", 1, &filter, &filter); const long items = cur.items(); - cur.freeze(); - for (cur = 0L; cur.pos() < items; ++cur) - rel.remove(); + if (items > 0) + { + cur.freeze(); + for (cur = 0L; cur.pos() < items; ++cur) + { + int err = rel.remove(); + if (err != NOERR) + { + const int tpamm = rel.curr().get_int("TPAMM"); + error_box("Errore %d nella cancellazione dell'ammortamento (%d) del movimento %s", err, tpamm, (const char*)idmov); + } + } + } } void TMovicespi::kill_rett(const TString& id, const TString& idmov) @@ -882,16 +1091,41 @@ void TMovicespi::kill_rett(const TString& id, const TString& idmov) } } +int TMovicespi::write(const TMask& m) +{ + int err = TRelation_application::write(m); + if (err == NOERR) + _emask->recalc_amm(); + return err; +} + +int TMovicespi::rewrite(const TMask& m) +{ + int err = TRelation_application::rewrite(m); + if (err == NOERR) + _emask->recalc_amm(); + return err; +} + +void TMovicespi::save_if_dirty() +{ + if (save(TRUE)) + set_mode(MODE_MOD); +} + bool TMovicespi::remove() { const TRectype& curr = get_relation()->curr(); const TString16 idcespite = curr.get(MOVCE_IDCESPITE); const TString16 idmov = curr.get(MOVCE_IDMOV); - TRelation_application::remove(); kill_mov(idcespite, idmov, LF_MOVAM); kill_mov(idcespite, idmov, LF_AMMMV); kill_rett(idcespite, idmov); + TRelation_application::remove(); + + _emask->recalc_amm(); + return TRUE; } diff --git a/ce/ce1500a.h b/ce/ce1500a.h index 5512ce77b..f8cd81ec6 100755 --- a/ce/ce1500a.h +++ b/ce/ce1500a.h @@ -1,39 +1,44 @@ -#define F_DITTA 101 -#define F_RAGSOC 102 -#define F_ESERCIZIO 103 -#define F_INIZIO_ES 104 -#define F_FINE_ES 105 -#define F_SELECT 106 -#define F_GRUPPO 107 -#define F_SPECIE 108 -#define F_DESC_GRSP 109 -#define F_DESC_IMP 111 +#define F_DITTA 151 +#define F_RAGSOC 152 +#define F_ESERCIZIO 153 +#define F_INIZIO_ES 154 +#define F_FINE_ES 155 +#define F_SELECT 156 +#define F_GRUPPO 157 +#define F_SPECIE 158 +#define F_DESC_GRSP 159 +#define F_DESC_IMP 160 -#define F_IDMOV 122 -#define F_DESC_MOV 123 -#define F_CODMOV 126 -#define F_CODMOV_DES 127 -#define F_TPDOC 128 -#define F_TPDOC_DES 129 -#define F_DTMOV 130 -#define F_DTDOC 131 -#define F_NDOC 132 -#define F_NUMREG 133 +#define F_IDMOV 162 +#define F_DESC_MOV 163 +#define F_CODMOV 166 +#define F_CODMOV_DES 167 +#define F_TPDOC 168 +#define F_TPDOC_DES 169 +#define F_DTMOV 170 +#define F_DTDOC 171 +#define F_NDOC 172 +#define F_NUMREG 173 -#define F_IDRET 140 -#define F_DESC_RET 141 -#define F_CODMOV_RET 142 -#define F_CODMOV_DES_RET 143 -#define F_DTMOV_RET 144 -#define F_TPDOC_RET 145 -#define F_DTDOC_RET 146 -#define F_NDOC_RET 147 +// GROUP 8 +#define F_CGROWS 175 +#define F_TOTIMP 176 +#define F_TOTRES 177 -#define F_IDCESPITE 150 -#define F_DESC_CES 151 -#define F_CATEGORIA 152 -#define F_DESC_CAT 153 -#define F_IMPIANTO 154 +#define F_IDRET 180 +#define F_DESC_RET 181 +#define F_CODMOV_RET 182 +#define F_CODMOV_DES_RET 183 +#define F_DTMOV_RET 184 +#define F_TPDOC_RET 185 +#define F_DTDOC_RET 186 +#define F_NDOC_RET 187 + +#define F_IDCESPITE 190 +#define F_DESC_CES 191 +#define F_CATEGORIA 192 +#define F_DESC_CAT 193 +#define F_IMPIANTO 194 #define F_SEGNO 201 #define F_ELEMENTI 202 @@ -48,6 +53,13 @@ #define F_RIVGC 211 #define F_IMPVEN 212 +#define F_PLUSMIN_FIS_TXT 221 +#define F_PLUSMIN_FIS 222 +#define F_PLUSMIN_CIV_TXT 223 +#define F_PLUSMIN_CIV 224 +#define F_PLUSMIN_GES_TXT 225 +#define F_PLUSMIN_GES 226 + #define F_IDMOVAM 251 #define F_IDCESAM 252 #define F_IDMOVAM2 253 @@ -88,3 +100,10 @@ #define S_RESIDUO 422 #define S_PLUS 423 #define S_MINUS 424 + +#define S_IMPORTO 101 +#define S_RESIMP 102 +#define S_GRUPPO 103 +#define S_CONTO 104 +#define S_SOTTOCONTO 105 +#define S_DESCR 106 diff --git a/ce/ce1500a.uml b/ce/ce1500a.uml index d4bee01fe..36d3c9d6b 100755 --- a/ce/ce1500a.uml +++ b/ce/ce1500a.uml @@ -173,7 +173,6 @@ BEGIN DISPLAY "Descrizione Cespite@50" LF_CESPI->DESC DISPLAY "Impianto@10" LF_CESPI->CODIMP OUTPUT F_IDMOV IDMOV - OUTPUT F_IDRET IDRET OUTPUT F_DESC_MOV DESC CHECKTYPE REQUIRED FIELD IDMOV @@ -188,7 +187,7 @@ END NUMBER F_NUMREG 7 BEGIN - PROMPT 1 12 "Selezione per numero di registrazione di prima nota " + PROMPT 1 11 "Selezione per numero di registrazione di prima nota " USE LF_MOVCE KEY 3 JOIN LF_CESPI INTO IDCESPITE==IDCESPITE INPUT NUMREG F_NUMREG @@ -198,17 +197,86 @@ BEGIN DISPLAY "Descrizione Movimento@50" DESC DISPLAY "Cespite@10" IDCESPITE DISPLAY "Descrizione Cespite@50" LF_CESPI->DESC + DISPLAY "Costo storico@18" CSTO + DISPLAY "Importo vendita@18" IMPVEN OUTPUT F_NUMREG NUMREG OUTPUT F_IDMOV IDMOV CHECKTYPE NORMAL END -NUMBER F_IDRET 11 +SPREADSHEET F_CGROWS 0 -2 BEGIN - PROMPT 1 11 "Rettifica " - FIELD IDRET - FLAGS "DZ" - KEY 1 + PROMPT 0 12 "" + ITEM "Importo@18" + ITEM "Residuo@18" + ITEM "Gruppo" + ITEM "Conto" + ITEM "Sottoconto" + ITEM "Descrizione" + GROUP 8 +END + +CURRENCY F_TOTIMP 18 +BEGIN + PROMPT 1 -1 "@bTotale Importi " + FLAGS "D" + GROUP 8 +END + +CURRENCY F_TOTRES 18 +BEGIN + PROMPT 41 -1 "@bTotale Residuo " + FLAGS "D" + GROUP 8 +END + + +ENDPAGE + +ENDMASK + +PAGE "Riga" -1 -1 60 6 + +CURRENCY S_IMPORTO 18 +BEGIN + PROMPT 1 1 "Importo " + FLAGS "D" +END + +CURRENCY S_RESIMP 18 +BEGIN + PROMPT 1 2 "Residuo " + FLAGS "D" +END + +NUMBER S_GRUPPO 3 +BEGIN + PROMPT 1 3 "Gruppo " +END + +NUMBER S_CONTO 3 +BEGIN + PROMPT 21 3 "Conto " +END + +NUMBER S_SOTTOCONTO 6 +BEGIN + PROMPT 41 3 "Sottoconto " +END + +STRING S_DESCR 50 +BEGIN + PROMPT 1 4 "Descr. " +END + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -12 -1 "" +END + +BUTTON DLG_CANCEL 10 2 +BEGIN + PROMPT -22 -1 "" END ENDPAGE diff --git a/ce/ce1500b.uml b/ce/ce1500b.uml index 988f9311a..eb4a3ff83 100755 --- a/ce/ce1500b.uml +++ b/ce/ce1500b.uml @@ -114,6 +114,7 @@ BEGIN PROMPT 26 6 "" FIELD DESC CHECKTYPE REQUIRED + WARNING "Č necessario inserire una descrizione" END STRING F_CODMOV 1 @@ -506,6 +507,39 @@ BEGIN FIELD IMPVEN END +TEXT F_PLUSMIN_FIS_TXT +BEGIN + PROMPT 54 12 "Minusvalenza fiscale" +END + +CURRENCY F_PLUSMIN_FIS 15 +BEGIN + PROMPT 61 13 "" + FLAGS "D" +END + +TEXT F_PLUSMIN_CIV_TXT +BEGIN + PROMPT 54 15 "Minusvalenza civilistica" +END + +CURRENCY F_PLUSMIN_CIV 15 +BEGIN + PROMPT 61 16 "" + FLAGS "D" +END + +TEXT F_PLUSMIN_GES_TXT +BEGIN + PROMPT 54 18 "Minusvalenza gestionale" +END + +CURRENCY F_PLUSMIN_GES 15 +BEGIN + PROMPT 61 19 "" + FLAGS "D" +END + ENDPAGE PAGE "Fondi" -1 -1 78 18 diff --git a/ce/ce2100.cpp b/ce/ce2100.cpp index 65bf5872e..701b26718 100755 --- a/ce/ce2100.cpp +++ b/ce/ce2100.cpp @@ -92,7 +92,9 @@ bool TCalcamm::calcola_ammortamenti() const long items = cur.items(); cur.freeze(); - TProgind pi(items, "Calcolo ammortamenti...", TRUE, TRUE); + TString msg; + msg << "Calcolo ammortamenti di " << items << " cespiti..."; + TProgind pi(items, msg, TRUE, TRUE); for (cur = 0L; cur.pos() < items; ++cur) { @@ -115,7 +117,7 @@ bool TCalcamm::calcola_ammortamenti() bool TCalcamm::create() { - open_files(LF_TABCOM, LF_TAB, LF_CESPI, LF_AMMCE, LF_AMMMV, LF_SALCE, LF_MOVCE, 0); + open_files(LF_TABCOM, LF_TAB, LF_CESPI, LF_SALCE, LF_AMMCE, LF_MOVCE, LF_MOVAM, LF_AMMMV, 0); _mask = new TCalcamm_mask; return TSkeleton_application::create(); } diff --git a/ce/ce2101.cpp b/ce/ce2101.cpp index ba07f21d8..80c30039d 100755 --- a/ce/ce2101.cpp +++ b/ce/ce2101.cpp @@ -23,7 +23,7 @@ HIDDEN void log(const char* fmt, ...) { -/* +#ifdef DBG char msg[256]; va_list argptr; va_start(argptr,fmt); @@ -35,7 +35,7 @@ HIDDEN void log(const char* fmt, ...) fprintf(f, "%s\n", msg); fclose(f); } -*/ +#endif } @@ -188,8 +188,12 @@ void TCespite::read_amm(int esercizio) void TCespite::save_sal() const { TLocalisamfile salce(LF_SALCE); - if (_salpro.rewrite(salce) != NOERR) - _salpro.write(salce); + int err = _salpro.rewrite(salce); + if (err != NOERR) + err = _salpro.write(salce); + if (err != NOERR) + error_box("Errore %d durante la scrittura sui saldi del cespite %s", (const char*)get(CESPI_IDCESPITE)); + log("- Scrittura salpro %d: errore %d", _tipo_sit, err); } // Salva AMMPRO @@ -197,8 +201,12 @@ void TCespite::save_sal() const void TCespite::save_amm() const { TLocalisamfile ammce(LF_AMMCE); - if (_ammpro.rewrite(ammce) != NOERR) - _ammpro.write(ammce); + int err = _ammpro.rewrite(ammce); + if (err != NOERR) + err = _ammpro.write(ammce); + if (err != NOERR) + error_box("Errore %d durante la scrittura sugli ammortamenti del cespite %s", (const char*)get(CESPI_IDCESPITE)); + log("- Scrittura ammpro %d: errore %d", _tipo_sit, err); } // Ritorna il record della categoria del cespite @@ -337,14 +345,14 @@ real TCespite::val_amm() const real TCespite::res_amm() const { const real valamm = val_amm(); // Valore ammortizzabile - real fondo; // Fondo ammortamento + real fondo; // Fondo ammortamento fondo += _ammpro.get_real(AMMCE_QNORP); fondo += _ammpro.get_real(AMMCE_QANTP); fondo += _ammpro.get_real(AMMCE_QACCP); fondo += _ammpro.get_real(AMMCE_QPERSEP); fondo += _ammpro.get_real(AMMCE_QPPRIVATEP); fondo += _ammpro.get_real(AMMCE_FPRIVATOP); - const real resamm = valamm - fondo; // Residuo da ammortizzare + const real resamm = valamm - fondo; // Residuo da ammortizzare return resamm; } @@ -605,10 +613,10 @@ real TCespite::mov_val_amm(const TRectype& tmv) const // Certified 50% real TCespite::mov_res_amm(const TRectype& tmv, const TRectype& tmvam) const { - real resamm = mov_val_amm(tmv); - resamm -= tmvam.get_real(MOVAM_QNOR); - resamm -= tmvam.get_real(MOVAM_QANT); - resamm -= tmvam.get_real(MOVAM_QACC); + const real valamm = mov_val_amm(tmv); + const real fondam = sum_fields(tmvam, MOVAM_QNOR, MOVAM_QANT, MOVAM_QACC, + MOVAM_QPERSE, MOVAM_FPRIVATO, MOVAM_QPPRIVATE); + const real resamm = valamm - fondam; return resamm; } @@ -976,9 +984,9 @@ TString& TCespite::ammini_get(const char* pstar) const } const int anno_funz = dtfunz.year(); if (anno_funz < 1988) - _val = catdi_get(pcatdi, CATDI_PFNORVN, _tipo_sit); + _val = catdi_get(pcatdi, CATDI_PFANTVN, _tipo_sit); else - _val = catdi_get(pcatdi, anno_funz < 1989 ? CATDI_PFNORVT : CATDI_PFNORNT, _tipo_sit); + _val = catdi_get(pcatdi, anno_funz < 1989 ? CATDI_PFANTVT : CATDI_PFANTNT, _tipo_sit); } break; default: @@ -1009,14 +1017,14 @@ void TCespite::calc_perc(TRelation& rel, const TRectype& tmv, const TRectype& tm TRectype& ammmv = rel.curr(LF_AMMMV); - if (ammmv.get_bool(AMMMV_FZQUO)) // Forztura per quote + if (ammmv.get_bool(AMMMV_FZQUO)) // Forzatura per quote { // Leggo comunque le percentuali teoriche ammmv.put(AMMMV_PNOR, ammini_get(AMMCE_PNOR)); ammmv.put(AMMMV_PACC, ammini_get(AMMCE_PACC)); ammmv.put(AMMMV_PANT, ammini_get(AMMCE_PANT)); - real resamm = mov_res_amm(tmv, tmvam); + real resamm = mov_res_amm(tmv, tmvam) - ammmv.get_real(AMMMV_FPRIVATO); if (resamm > ZERO) { real penor; @@ -1031,7 +1039,7 @@ void TCespite::calc_perc(TRelation& rel, const TRectype& tmv, const TRectype& tm } ammmv.put(AMMMV_PENOR, penor); ammmv.put(AMMMV_PNOR, penor); // Per chiarezza di stampa - resamm -= ammmv.get_real(AMMMV_QNOR) + ammmv.get_real(AMMMV_FPRIVATO); + resamm -= ammmv.get_real(AMMMV_QNOR); if (resamm > ZERO) { real peacc; @@ -1085,7 +1093,7 @@ void TCespite::calc_perc(TRelation& rel, const TRectype& tmv, const TRectype& tm ammmv.put(AMMMV_PEANT, ammmv.get(AMMMV_PANT)); ammmv.put(AMMMV_PEACC, ammmv.get(AMMMV_PACC)); - real resamm = mov_res_amm(tmv, tmvam); + real resamm = mov_res_amm(tmv, tmvam) - ammmv.get_real(AMMMV_FPRIVATO); if (resamm > ZERO) { const real penor = ammmv.get(AMMMV_PENOR); @@ -1094,7 +1102,7 @@ void TCespite::calc_perc(TRelation& rel, const TRectype& tmv, const TRectype& tm ammmv.put(AMMMV_QNOR, qnor); ammmv.put(AMMMV_PENOR, per_eff); - resamm -= qnor + ammmv.get_real(AMMMV_FPRIVATO); + resamm -= qnor; const real peacc = ammmv.get(AMMMV_PEACC); if (resamm > ZERO && peacc > ZERO) { @@ -1150,7 +1158,7 @@ void TCespite::calc_perc(TRelation& rel, const TRectype& tmv, const TRectype& tm { // Calcolare quota ammortamento normale const real valamm = mov_val_amm(tmv); - const real penor = ammmv.get_real(AMMMV_PENOR); + const real penor = ammmv.get_real(AMMMV_PENOR); // Attenzione: usare PENOR, non PNOR! real per_eff; const real qnor = calc_quota(valamm, penor, resamm, per_eff, &rel); ammmv.put(AMMMV_QNOR, qnor); @@ -1169,8 +1177,10 @@ void TCespite::calc_perc(TRelation& rel, const TRectype& tmv, const TRectype& tm ammmv.zero(AMMMV_QPPRIVATE); } - // Calcolare quota ammortamento accelerato + // Togliere FPRIVATO solo ora, in quanto ricalcolato da calc_quota resamm -= ammmv.get_real(AMMMV_QNOR) + ammmv.get_real(AMMMV_FPRIVATO); + + // Calcolare quota ammortamento accelerato if (resamm > ZERO && ammmv.get_real(AMMMV_PEACC) > ZERO && ammmv.get_real(AMMMV_QPERSE) == ZERO) { const real peacc = ammmv.get_real(AMMMV_PEACC); @@ -1487,7 +1497,7 @@ void TCespite::calc_amm_residui(bool is_valid) const real coeff_durata = cce.coefficiente_durata_esercizio(); if (fzquo) // Forzatura quota { - real resamm = res_amm(); + real resamm = res_amm() - _ammpro.get_real(AMMCE_FPRIVATO); if (resamm > ZERO) { real qnor = _ammpro.get(AMMCE_QNOR); @@ -1497,7 +1507,7 @@ void TCespite::calc_amm_residui(bool is_valid) const real pnor = qnor / coeff_durata * 100.0 / val_amm(); _ammpro.put(AMMCE_PNOR, pnor); - resamm -= qnor + _ammpro.get_real(AMMCE_FPRIVATO); + resamm -= qnor; if (resamm > ZERO) { real qacc = _ammpro.get(AMMCE_QACC); @@ -1533,16 +1543,16 @@ void TCespite::calc_amm_residui(bool is_valid) } else if (fzper) // Forzatura percentuale { - real resamm = res_amm(); + real resamm = res_amm() - _ammpro.get_real(AMMCE_FPRIVATO); if (resamm > ZERO) - { + { const real valamm = val_amm(); const real pnor = _ammpro.get_real(AMMCE_PNOR); real per_eff; const real qnor = calc_quota(valamm, pnor, resamm, per_eff); _ammpro.put(AMMCE_QNOR, qnor); _ammpro.put(AMMCE_PNOR, per_eff); - resamm -= qnor + _ammpro.get_real(AMMCE_FPRIVATO); + resamm -= qnor; } else { @@ -1787,8 +1797,10 @@ bool TCespite::calc_amm(int tipo_sit, const TDate& data_limite, bool recalc_spe_ log("* Inizio calcolo situazione %d cespite %s", tipo_sit, (const char*)idcespite); #ifdef DBG - if (tipo_sit == 1 && atol(idcespite) == 33L) + if (tipo_sit == 1 && atol(idcespite) == 25L) + { tipo_sit = 1; // Put your breakpoint here + } #endif const bool is_valid = valido(); diff --git a/ce/ce2200.cpp b/ce/ce2200.cpp index 6a2b91308..7c38cbc3a 100755 --- a/ce/ce2200.cpp +++ b/ce/ce2200.cpp @@ -38,7 +38,8 @@ TOpenesc_mask::TOpenesc_mask() // Controlla che siano stati stampati i bollati e chiuse le attivita bool TOpenesc_mask::check_oldes() -{ +{ + bool ok = TRUE; TRelation rel("CCB"); TRectype& ccb = rel.curr(); ccb.put("CODTAB", get(F_OLDES)); @@ -59,10 +60,11 @@ bool TOpenesc_mask::check_oldes() msg << "č gią stata effettuata la chiusura"; const TString8 codatt = ccb.get("CODTAB").mid(4); msg << "\ndell'attivitą " << cache().get("%CAT", codatt, "S0"); - return error_box(msg); + ok = error_box(msg); + break; } } - return TRUE; + return ok; } bool TOpenesc_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) @@ -165,18 +167,25 @@ real TOpenesc::calc_coeff(const TDate& ies, const TDate& fes) const void TOpenesc::crea_esercizio(int oldes, int newes, const TDate& ies, const TDate& fes) const { // Crea l'esercizio contabile se necessario - if (!has_module(CGAUT)) + TTable esc("ESC"); + esc.put("CODTAB", newes); + if (esc.read() != NOERR) { - TTable esc("ESC"); - esc.put("CODTAB", newes); - if (esc.read() != NOERR) + if (!has_module(CGAUT)) { - esc.zero(); + TTable esc("ESC"); esc.put("CODTAB", newes); - esc.put("D0", ies); - esc.put("D1", fes); - esc.write(); + if (esc.read() != NOERR) + { + esc.zero(); + esc.put("CODTAB", newes); + esc.put("D0", ies); + esc.put("D1", fes); + esc.write(); + } } + else + warning_box("Attenzione: non esiste ancora l'esercizio contabile %04d", newes); } // Crea l'esercizio cespiti se necessario @@ -184,21 +193,26 @@ void TOpenesc::crea_esercizio(int oldes, int newes, const TDate& ies, const TDat TString8 key; key.format("%04d", oldes); const TRectype& oldrec = cache().get("CCE", key); cce.put("CODTAB", newes); - if (cce.read() != NOERR) + const bool found = cce.read() == NOERR; + if (!found) { cce.zero(); cce.put("CODTAB", newes); - cce.put("S5", calc_coeff(ies, fes)); // Calcola coefficiente durata esercizio - cce.put("S6", oldrec.get("S6")); // Copia tipo arrotondamento - cce.put("I0", oldrec.get("I0")); // Copia tipo contabilitą - cce.put("I1", oldrec.get("I1")); // Copia tipo riproporzionamento - cce.put("I2", oldrec.get("I2")); // Copia assoggettamento art.14 C.2 legge 449/97 - cce.put("I3", fes - ies + 1); // Calcola durata esercizio - cce.put("B0", oldrec.get("B0")); // Copia ditta relativa a professionista - cce.put("B3", oldrec.get("B3")); // Copia ammortamento parti vendute - if (cce.write() != NOERR) - error_box("Errore di creazione dell'esercizio cespiti %d", newes); } + cce.put("S5", calc_coeff(ies, fes)); // Calcola coefficiente durata esercizio + cce.put("S6", oldrec.get("S6")); // Copia tipo arrotondamento + cce.put("I0", oldrec.get("I0")); // Copia tipo contabilitą + cce.put("I1", oldrec.get("I1")); // Copia tipo riproporzionamento + cce.put("I2", oldrec.get("I2")); // Copia assoggettamento art.14 C.2 legge 449/97 + cce.put("I3", fes - ies + 1); // Calcola durata esercizio + cce.put("B0", oldrec.get("B0")); // Copia ditta relativa a professionista + cce.put("B3", oldrec.get("B3")); // Copia ammortamento parti vendute + cce.put("B4", oldrec.get("B4")); // Ragguaglio parti vendute + cce.put("B5", oldrec.get("B5")); // Esposizione su libro cespiti + if (found) + cce.rewrite(); + else + cce.write(); } void TOpenesc::crea_attivita(int oldes, int newes) const @@ -345,7 +359,9 @@ void TOpenesc::incr_zero(TRectype& rec, const char* val, const char* valp) const void TOpenesc::crea_ammortamenti(int oldes, int newes) const { TRelation rel(LF_AMMCE); + rel.add(LF_AMMCE, "IDCESPITE==IDCESPITE|CODES==CODES|TPSALDO==1|TPAMM==TPAMM", 1, 0, 883); TRectype& rec = rel.curr(); + const TRectype& ammce1 = rel.curr(-883); TString str; str << '(' << SALCE_CODES << "==" << oldes << ")&&(" << SALCE_TPSALDO << "==2)"; TCursor cur(&rel, str); @@ -359,13 +375,18 @@ void TOpenesc::crea_ammortamenti(int oldes, int newes) const rec.put(AMMCE_CODES, newes); // Aggiorna anno di esercizio rec.put(AMMCE_TPSALDO, 1); // Aggiorna tipo saldo ad "iniziale" rec.zero(AMMCE_CSCEN); - rec.zero(AMMCE_PNOR); + rec.zero(AMMCE_FZPER); + rec.zero(AMMCE_FZQUO); + rec.put(AMMCE_PNOR, ammce1.get(AMMCE_PNOR)); + rec.put(AMMCE_PACC, ammce1.get(AMMCE_PACC)); + rec.put(AMMCE_PANT, ammce1.get(AMMCE_PANT)); incr_zero(rec, AMMCE_QNOR, AMMCE_QNORP); incr_zero(rec, AMMCE_QACC, AMMCE_QACCP); incr_zero(rec, AMMCE_QANT, AMMCE_QANTP); incr_zero(rec, AMMCE_QPERSE, AMMCE_QPERSEP); incr_zero(rec, AMMCE_FPRIVATO, AMMCE_FPRIVATOP); incr_zero(rec, AMMCE_QPPRIVATE, AMMCE_QPPRIVATEP); + const int err = rel.write(); if (err != NOERR) // Should never happen! rel.rewrite(); diff --git a/ce/ce2300a.uml b/ce/ce2300a.uml index 3ff586dd2..8cb3dce77 100755 --- a/ce/ce2300a.uml +++ b/ce/ce2300a.uml @@ -4,12 +4,12 @@ TOOLBAR "Toolbar" 0 -3 0 3 BUTTON DLG_OK 10 2 BEGIN - PROMPT -12 -1 "" + PROMPT -12 -11 "" END BUTTON DLG_QUIT 10 2 BEGIN - PROMPT -22 -1 "" + PROMPT -22 -11 "" END ENDPAGE diff --git a/ce/ce3.cpp b/ce/ce3.cpp index ca7f12b8a..c0628c408 100755 --- a/ce/ce3.cpp +++ b/ce/ce3.cpp @@ -7,12 +7,14 @@ int main(int argc,char** argv) const int r = (argc > 1) ? (argv[1][1]-'0') : 0; switch (r) { - case 1: - ce3200(argc,argv) ; break; - case 2: - ce3300(argc,argv) ; break; - default: - ce3100(argc,argv) ; break; + case 1: ce3200(argc,argv) ; break; // Stampa schede cespiti + case 2: ce3300(argc,argv) ; break; // Stampa prospetto cespiti + case 3: ce3400(argc,argv) ; break; // Stampa prospetto rivalutazioni cespiti + case 4: ce3500(argc,argv) ; break; // Stampa lista cespiti + case 5: ce3600(argc,argv) ; break; // Stampa lista movimenti cespiti + case 6: ce3700(argc,argv) ; break; // Stampa elenco cespiti promisqui :-) + case 7: ce3800(argc,argv) ; break; // Stampa elenco cespiti etero :-) + default: ce3100(argc,argv) ; break; // Stampa registro cespiti } return 0; } diff --git a/ce/ce3.h b/ce/ce3.h index f77acc21a..8b4bbcbda 100755 --- a/ce/ce3.h +++ b/ce/ce3.h @@ -4,6 +4,11 @@ int ce3100(int argc, char* argv[]); int ce3200(int argc, char* argv[]); int ce3300(int argc, char* argv[]); +int ce3400(int argc, char* argv[]); +int ce3500(int argc, char* argv[]); +int ce3600(int argc, char* argv[]); +int ce3700(int argc, char* argv[]); +int ce3800(int argc, char* argv[]); #endif // __CE3_H diff --git a/ce/ce3100.cpp b/ce/ce3100.cpp index e69d236c9..f1b301b66 100755 --- a/ce/ce3100.cpp +++ b/ce/ce3100.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include #include "ce3.h" @@ -13,6 +14,7 @@ #include "movam.h" #include "movce.h" #include "salce.h" +#include "ce2101.h" #include "ce3100a.h" #include "ce3100.h" @@ -28,19 +30,19 @@ public: virtual bool validate(TForm_item& fld, TToken_string& val); TForm_registroce(const char *name); virtual ~TForm_registroce(); - void set_testata() { set_header(1, TRUE); }; - void set_piede() { set_footer(0,FALSE); set_footer(0, TRUE);}; - void set_pagina() { set_footer(0, TRUE);}; - TPrint_section& get_testata_cespite() { return section('H', odd_page); }; - TPrint_section& get_testata_categoria() { return section('H', even_page); }; - TPrint_section& get_piede_categoria() { return section('F', even_page); }; - TPrint_section& get_piede_registro() { return section('F', odd_page); }; - TPrint_section& get_saldiiniziali() { return section('H', last_page); }; - TPrint_section& get_movimenti() { return section('B', first_page); }; - TPrint_section& get_valorifinali() { return section('B', even_page); }; - TPrint_section& get_totali() { return section('B', odd_page); }; - virtual TCursor* cursor() const {return _newcursor; }; - virtual TRelation* relation() const {return _newrelation; }; + void set_testata() { set_header(1, TRUE); set_background(1, TRUE); } + void set_piede() { set_footer(0,FALSE); set_footer(0, TRUE);} + void set_pagina() { set_footer(0, TRUE);} + TPrint_section& get_testata_cespite() { return section('H', odd_page); } + TPrint_section& get_testata_categoria() { return section('H', even_page); } + TPrint_section& get_piede_categoria() { return section('F', even_page); } + TPrint_section& get_piede_registro() { return section('F', odd_page); } + TPrint_section& get_saldiiniziali() { return section('H', last_page); } + TPrint_section& get_movimenti() { return section('B', first_page); } + TPrint_section& get_valorifinali() { return section('B', even_page); } + TPrint_section& get_totali() { return section('B', odd_page); } + virtual TCursor* cursor() const {return _newcursor; } + virtual TRelation* relation() const {return _newrelation; } }; TForm_registroce::TForm_registroce(const char *name): @@ -82,6 +84,7 @@ class TRegistro_cespiti : public TSkeleton_application int _tipoamm; bool _bollato; TEsercizi_contabili _esc; + TString _idspese5, _idspese25; protected: virtual bool create(); @@ -100,6 +103,9 @@ public: void print_movimenti(); void print_valorifinali(); void aggiorna_bollato(); + void crea_cespite_man(); + void distruggi_cespite_man(); + void costruisci_cespite(int cat, const real& spese); void stampa_movimento(TRectype& removce, TRectype& removam, TRectype& recammmv); void stampa_sezione(TPrint_section& section); TRegistro_cespiti() {} @@ -110,6 +116,7 @@ bool TRegistro_cespiti::create() { open_files(LF_CESPI,0); _mask = new TMask("ce3100a"); + _mask->set_handler(F_ESERCIZIO,attivita_handler); _mask->set_handler(F_SPECIE,attivita_handler); _dittace = new TDitta_cespiti(); _dittace->init_mask(*_mask); @@ -135,28 +142,40 @@ bool TRegistro_cespiti::attivita_handler(TMask_field& f, KEY k) const TString16 specie = m.get(F_SPECIE); TString80 key; key.format("%4d%02d%s",esercizio, gruppo, (const char*) specie); const TRectype& ccb = cache().get("CCB", key); - TDate dataultcalc = ccb.get_date("D0"); + const TDate dataultcalc = ccb.get_date("D0"); m.set(F_DATAULTCALC, dataultcalc); - if (ccb.get_bool("B2")) - { - if (m.is_running()) - return f.error_box("Attenzione! Esercizio chiuso. \nNon é possibile stampare il registro."); + + bool calc_on = TRUE, reg_on = TRUE; + if (dataultcalc.empty()) + { + calc_on = FALSE; + m.set(F_CALCOLO,"X"); } - else - { - if (dataultcalc.empty()) - { - m.set(F_CALCOLO, "X"); - m.disable(F_CALCOLO); - m.set(F_TIPOREGISTRO,"B"); - m.disable(F_TIPOREGISTRO); - } + if (ccb.get_bool("B2")) + { + calc_on = reg_on = FALSE; + m.reset(F_CALCOLO); + xvt_statbar_set("L'esercizio é stato chiuso"); + } + else if (ccb.get_bool("B1")) { - m.set(F_TIPOREGISTRO,"B"); - m.disable(F_TIPOREGISTRO); - m.disable(F_CALCOLO); + calc_on = reg_on = FALSE; + m.set(F_CALCOLO,"X"); + xvt_statbar_set("Il bollato dell'esercizio é stato stampato"); } + else + xvt_statbar_set(""); + + m.enable(F_TIPOREGISTRO, reg_on); + m.enable(F_CALCOLO, calc_on); + if (!reg_on) + m.set(F_TIPOREGISTRO,"1"); + + if (m.get_int(F_TIPOREGISTRO) == 2 && ccb.get_bool("B2")) + { + if (k == K_ENTER) + return f.error_box("Attenzione! Esercizio chiuso. \nNon č possibile stampare il registro bollato."); } } return TRUE; @@ -166,7 +185,7 @@ void TRegistro_cespiti::main_loop() { while (_mask->run() == K_ENTER) { - // Aggiunto da Guy + // Esecuzione calcolo globale if (_mask->get_bool(F_CALCOLO)) { const int es = _mask->get_int(F_ESERCIZIO); @@ -175,7 +194,12 @@ void TRegistro_cespiti::main_loop() ditta_cespiti().set_attivita(es, gr, sp); // Fissa attivitą per calcolo TExternal_app cal("ce2 -0 A"); cal.run(); // Esegue programma di calcolo in batch - } + } + + // flag bollato per aggiornamenti + _bollato = (_mask->get_int(F_TIPOREGISTRO)==2); + if (_bollato) + crea_cespite_man(); //crea il cespite della manutenzione per cespiti materiali nell'esercizio selezionato TRectype darec(LF_CESPI),arec(LF_CESPI); TString filtro; @@ -210,17 +234,25 @@ void TRegistro_cespiti::main_loop() _form->find_field('B', first_page, FR_MV_RIVGC).hide(); _form->find_field('B', even_page, FR_FE_RIVGF).hide(); _form->find_field('B', even_page, FR_FE_RIVGC).hide(); - // flag bollato per aggiornamenti - _bollato = (_mask->get_int(F_TIPOREGISTRO)==1); - _form->cursor()->setregion(darec,arec); - _form->cursor()->setfilter(filtro,TRUE); - long num = _form->cursor()->items(); - _form->cursor()->freeze(); + // scrive sull'intestazione del form il tipo di situazione da stampare + if (_tipoamm == 1) + _form->find_field('H', first_page, FR_SITUAZIONE).set("@bSituazione Fiscale@r"); + if (_tipoamm == 2) + _form->find_field('H', first_page, FR_SITUAZIONE).set("@bSituazione Civilistica@r"); + + TCursor& cur = *_form->cursor(); + cur.setregion(darec,arec); + cur.setfilter(filtro,TRUE); + + const long num = cur.items(); + cur.freeze(); + printer().open(); header_registro(); - TRectype& reccesp = _form->cursor()->curr(); - int catatt = -1; - for (*_form->cursor()=0; _form->cursor()->pos()cursor())) + + const TRectype& reccesp = cur.curr(); + int catatt = -1; // Memorizza ultima categoria stampata (inizialmente nessuna) + for (cur=0; cur.pos()set_pagina(); footer_registro(); + _form->set_pagina(); } - _form->cursor()->freeze(FALSE); - printer().close(); - if (_bollato) - aggiorna_bollato(); + cur.freeze(FALSE); + printer().close(); + //trattazione del bollato: aggiorna i campi su files e tab solo dopo conferma, in caso contrario distrugge il cespite + //della manutenzione creato precedentemente + if (_bollato) + { + if (yesno_box("Bollato stampato in modo corretto ?")) + aggiorna_bollato(); + else + distruggi_cespite_man(); + } } - return ; + return; +} + +void TRegistro_cespiti::costruisci_cespite(int cat, const real& spese) +{ + int es; + TString4 gr, sp; + ditta_cespiti().get_attivita(es, gr, sp); + const TDate datafine = _mask->get(F_DATAFINE); + + TString& idcespite = (cat == 91) ? _idspese5 : _idspese25; + + { // Scrittura anagrafica cespite + TLocalisamfile cespi(LF_CESPI); + cespi.last(); + const real num = cespi.get_real(CESPI_IDCESPITE) + 1; + idcespite = num.string("@@@@@@@@@@"); + + cespi.zero(); + cespi.put(CESPI_IDCESPITE, idcespite); //zero filled field! + cespi.put(CESPI_CODCGRA, gr); + cespi.put(CESPI_CODSPA, sp); + cespi.put(CESPI_CODCAT, cat); + cespi.put(CESPI_DTCOMP, datafine); + cespi.put(CESPI_DTFUNZ, datafine); + cespi.put(CESPI_AMMPROP, "X"); + cespi.put(CESPI_TUIR, "X"); + cespi.put(CESPI_USOPROM, 1); + cespi.put(CESPI_FLGTPVEI, 1); + cespi.put(CESPI_TPSPEMAN, 1); + + TString desc = "Importo spese di manutenzione sostenute - beni materiali "; + desc << (cat == 91 ? 5 : 25) << '%'; + cespi.put(CESPI_DESC, desc); + + const TRectype& cac = ditta_cespiti().categoria(0, NULL, cat); + cespi.put(CESPI_VINCOLO, cac.get("I2")); + cespi.put(CESPI_ANNIRIC, cac.get("I3")); + cespi.put(CESPI_PMINP, cac.get("R14")); + cespi.put(CESPI_PMAXP, cac.get("R15")); + + cespi.write(); //abbiamo creato il cespite su CESPI! + } + + { // Scrittura saldo iniziale + TLocalisamfile salce(LF_SALCE); + salce.put(SALCE_IDCESPITE, idcespite); + salce.put(SALCE_CODES, es); + salce.put(SALCE_TPSALDO, 1); + salce.put(SALCE_NUMELE, 1); + salce.put(SALCE_CSTO, spese); + salce.write(); //abbiamo creato il cespite su SALCE! + } + + // Calcola ammortamenti per cespite (creando anche salce 2 e i 6 ammce) + TCespite ces(idcespite); + for (int i = 1; i <= 3; i++) + ces.calc_amm(i, datafine); +} + +void TRegistro_cespiti::crea_cespite_man() +{ + _idspese5 = _idspese25 = ""; + const TRectype& ccb = ditta_cespiti().get_attivita(); + const real speseman_5 = ccb.get_real("R2"); + if (speseman_5 != ZERO) + costruisci_cespite(91, speseman_5); + + const real speseman_25 = ccb.get_real("R3"); + if (speseman_25 != ZERO) + costruisci_cespite(92, speseman_25); +} + +HIDDEN void kill_rec(TLocalisamfile& f) +{ + int err = f.read(); + if (err == NOERR) + { + err = f.remove(); + if (err == NOERR && f.read() == NOERR) + err = _iskeyerr; + } + if (err != NOERR) + error_box("Errore %d durante la cancellazione del cespite %s dal file: %d", + err, (const char*)f.get("IDCESPITE"), f.num()); +} + +void TRegistro_cespiti::distruggi_cespite_man() +{ + TLocalisamfile cespi(LF_CESPI); + TLocalisamfile salce(LF_SALCE); + TLocalisamfile ammce(LF_AMMCE); + const int es = _mask->get_int(F_ESERCIZIO); + + for (int cat = 91; cat <= 92; cat++) + { + TString& idcespite = (cat == 91) ? _idspese5 : _idspese25; + if (idcespite.not_empty()) + { + cespi.zero(); + cespi.put(CESPI_IDCESPITE, idcespite); + kill_rec(cespi); + + for (int tpsaldo = 1; tpsaldo <= 2; tpsaldo++) + { + salce.zero(); + salce.put(SALCE_IDCESPITE, idcespite); + salce.put(SALCE_CODES, es); + salce.put(SALCE_TPSALDO, tpsaldo); + kill_rec(salce); + for (int tpamm = 1; tpamm <= 3; tpamm++) + { + ammce.zero(); + ammce.put(AMMCE_IDCESPITE, idcespite); + ammce.put(AMMCE_CODES, es); + ammce.put(AMMCE_TPSALDO, tpsaldo); + ammce.put(AMMCE_TPAMM, tpamm); + kill_rec(ammce); + } + } + } + idcespite.cut(0); + } } void TRegistro_cespiti::aggiorna_bollato() -{ - return; +{ + { //aggiorna la tabella CCB + TTable ccb("CCB"); + ccb.curr() = ditta_cespiti().get_attivita(); + ccb.put("B1", "X"); //bollato stampato + ccb.rewrite(); + } + + const TDate oggi(TODAY); + + { //aggiorna il file SALCE + TRelation rel (LF_SALCE); + TString expr = "CODES="; + expr << _mask->get(F_ESERCIZIO); + TCursor cursor(&rel, expr); + const long items = cursor.items(); + cursor.freeze(); + + TRectype& curr = cursor.curr(); + for (cursor = 0; cursor.pos() < items; ++cursor) + { + const TString16 idcespite = curr.get(SALCE_IDCESPITE); //controlla che il cespite appartenga all'attivitį selezionata + const TRectype& ces = cache().get(LF_CESPI, idcespite); + if (ces.get_int(CESPI_CODCGRA) != _mask->get_int(F_GRUPPO)) + continue; + if (ces.get(CESPI_CODSPA) != _mask->get(F_SPECIE)) + continue; + + curr.put(SALCE_DTSTBOLL, oggi); + rel.rewrite(); + } + } + + { //aggiorna il file MOVCE + TRelation rel (LF_MOVCE); + TString expr; + expr << "(ANSI(DTMOV)>=\""<<_mask->get_date(F_DATAINIZIO).string(ANSI)<<"\")&&"; + expr << "(ANSI(DTMOV)<=\""<<_mask->get_date(F_DATAFINE).string(ANSI)<<"\")"; + TCursor cursor(&rel, expr); + TRectype& curr = cursor.curr(); + const long items = cursor.items(); + cursor.freeze(); + for (cursor = 0; cursor.pos() < items; ++cursor) + { + const TString16 idcespite = curr.get(MOVCE_IDCESPITE); //controlla che il cespite appartenga all'attivitį selezionata + const TRectype& ces = cache().get(LF_CESPI, idcespite); + if (ces.get_int(CESPI_CODCGRA) != _mask->get_int(F_GRUPPO)) + continue; + if (ces.get(CESPI_CODSPA) != _mask->get(F_SPECIE)) + continue; + curr.put(MOVCE_STAMPATO, "X"); + rel.rewrite(); + } + } } void TRegistro_cespiti::header_registro() @@ -259,16 +474,19 @@ void TRegistro_cespiti::header_registro() _form->find_field('H', first_page, FR_D_SPECIE).set(_mask->get(F_D_SPECIE)); _form->find_field('H', first_page, FR_DATAINIZIO).set(_mask->get(F_DATAINIZIO)); _form->find_field('H', first_page, FR_DATAFINE).set(_mask->get(F_DATAFINE)); - TString80 key; key.format("%04d",_mask->get_int(F_ESERCIZIO)); + TString key; key.format("%04d",_mask->get_int(F_ESERCIZIO)); const TRectype& cce = cache().get("CCE", key); _form->find_field('H', first_page, FR_NUMGIOSOL).set(cce.get("I3")); - long giorni = (_mask->get_date(F_DATAFINE) - _mask->get_date(F_DATAINIZIO) + 1); + const int giorni = int(_mask->get_date(F_DATAFINE) - _mask->get_date(F_DATAINIZIO) + 1); key.format("%3d",giorni); _form->find_field('H', first_page, FR_NUMGIORNI).set(key); - _form->find_field('H', first_page, FR_LIBROCESPITI).enable(_bollato); + _form->find_field('H', first_page, FR_LIBROCESPITI); // .enable(_bollato); _form->set_testata(); + + //se stampa bollato -> nascondi data stampa + _form->find_field('F', last_page, FR_DATASTAMPA).show(_mask->get_int(F_TIPOREGISTRO) != 2); _form->set_piede(); } @@ -333,11 +551,11 @@ void TRegistro_cespiti::stampa_sezione(TPrint_section& section) word y2 = section.find_field(FR_MV_QANT).y(); for (word i = 0; i < section.height(); i++) { - if (i+1>=y1 && i+1<= y2) + if (i>=y1-1 && i<= y2-1) { TPrintrow& row = section.row(i); TString rowstr = row.row(); - if (!rowstr.blank()) + if (!rowstr.blank()) //se almeno 1 valore della riga č <> 0 allora la riga viene stampata, in caso contrario viene saltata printer().print(section.row(i)); } else @@ -353,7 +571,6 @@ void TRegistro_cespiti::stampa_movimento(TRectype& recmovce, TRectype& recmovam, _form->cursor()->curr(LF_MOVAM) = recmovam; //copia il record del cursore che scannerizza movimenti e rettifiche nel _form->cursor()->curr(LF_AMMMV) = recammmv; //cursore principale del form - if (recmovce.get_char(MOVCE_SEGNO)=='-') { section.find_field(FR_MV_SEGNO).set("-1"); @@ -363,16 +580,16 @@ void TRegistro_cespiti::stampa_movimento(TRectype& recmovce, TRectype& recmovam, section.find_field(FR_MV_SEGNO).set("1"); } - section.update(); - _form->set_pagina(); + section.update(); + _form->set_pagina(); - for (word i = 0; i < section.height(); i++) - { - TPrintrow& row = section.row(i); - TString rowstr = row.row(); - if (!rowstr.blank()) - printer().print(row); - } + for (word i = 0; i < section.height(); i++) + { + TPrintrow& row = section.row(i); + TString rowstr = row.row(); + if (!rowstr.blank()) + printer().print(row); + } } void TRegistro_cespiti::print_movimenti() @@ -424,15 +641,19 @@ void TRegistro_cespiti::print_movimenti() toret.put(MOVCE_IDCESPITE, id); TString filtro; - filtro << MOVCE_IDRET << "==" << recmovce.get(MOVCE_IDMOV); //confronta numericamente IDRET e IDMOV + filtro << MOVCE_IDRET << "==\"" << recmovce.get(MOVCE_IDMOV) << '"'; //confronta numericamente IDRET e IDMOV //ed ecco il cursore! TCursor rettcur(&rel_rettif, filtro, 2, &fromret, &toret); const long items = rettcur.items(); if (items > 0) { + _form->cursor()->relation()->save_status(); //salva posizione di tutti i files del cursore + //(serve per rettifiche "staccate" dai loro movimenti) rettcur.freeze(); for (rettcur = 0l ; rettcur.pos()cursor()->relation()->restore_status(); //ripristina la posizione di tutti i files del cursore } stampa_sezione(totali); diff --git a/ce/ce3100.h b/ce/ce3100.h index b7067c406..088326d20 100755 --- a/ce/ce3100.h +++ b/ce/ce3100.h @@ -13,6 +13,8 @@ #define FR_NUMGIORNI 9 #define FR_NUMGIOSOL 10 #define FR_LIBROCESPITI 11 +#define FR_SITUAZIONE 12 +#define FR_DATASTAMPA 13 #define FR_CAT 21 #define FR_D_CAT 22 @@ -29,6 +31,7 @@ #define FR_MV_CSTO 43 #define FR_MV_VNONAMM 44 #define FR_MV_IMPVEN 45 +#define FR_MV_IMPVEN_S 64 #define FR_MV_RIVGF 46 #define FR_MV_RIVGC 47 #define FR_MV_TOTRIV 48 @@ -40,6 +43,8 @@ #define FR_MV_QNOR 54 #define FR_MV_QACC 55 #define FR_MV_QANT 56 +#define FR_MV_QNONAMM4 64 +#define FR_MV_QNONAMM4_SEGNO 65 #define FR_MV_TOTFONDOAMM 57 #define FR_MV_QNOR_SEGNO 58 #define FR_MV_QACC_SEGNO 59 @@ -90,6 +95,8 @@ #define FR_TC_TOTRIV 114 #define FR_TC_VALAMM 115 #define FR_TC_RESAMM 116 +#define FR_TC_MINUSVALENZA 127 +#define FR_TC_PLUSVALENZA 128 #define FR_TC_PLUSREIN 117 #define FR_TC_FONDOAMM 118 #define FR_TC_QNONAMM 119 @@ -107,6 +114,8 @@ #define FR_TG_TOTRIV 154 #define FR_TG_VALAMM 155 #define FR_TG_RESAMM 156 +#define FR_TG_MINUSVALENZA 167 +#define FR_TG_PLUSVALENZA 168 #define FR_TG_PLUSREIN 157 #define FR_TG_FONDOAMM 158 #define FR_TG_QNONAMM 159 diff --git a/ce/ce3100a.frm b/ce/ce3100a.frm index 983b9c98c..e861e406b 100755 --- a/ce/ce3100a.frm +++ b/ce/ce3100a.frm @@ -1,4 +1,5 @@ #include "ce3100.h" + USE LF_CESPI JOIN %CAC ALIAS 101 INTO CODTAB[1,2]==CODCGRA CODTAB[3,6]==CODSPA CODTAB[7,8]==CODCAT JOIN LF_SALCE TO LF_CESPI ALIAS 102 INTO IDCESPITE==IDCESPITE @@ -10,23 +11,24 @@ JOIN LF_AMMMV TO LF_MOVCE ALIAS 107 INTO IDCESPITE==IDCESPITE IDMOV==IDMOV JOIN %TMC TO LF_MOVCE ALIAS 108 INTO CODTAB==CODMOV END -DESCRIPTION -BEGIN -END // description +SECTION GRAPHICS ODD + LINEA -1 147 1 + BEGIN + PROMPT 1 5 "B" + END -GENERAL -BEGIN -// OFFSET 0 0 -// FONT "Courier New" -// SIZE 10 -END // general + LINEA -1 147 1 + BEGIN + PROMPT 1 9 "B" + END +END SECTION HEADER FIRST 9 STRINGA FR_CODDITTA BEGIN KEY "Codice ditta" - PROMPT 1 1 "Ditta " + PROMPT 1 1 "@bDitta@r " PICTURE "#####" MESSAGE RESET,F0->FR_TG_ELEM MESSAGE RESET,F0->FR_TG_CSTO @@ -55,7 +57,7 @@ SECTION HEADER FIRST 9 STRINGA FR_GRUPPO BEGIN KEY "Gruppo" - PROMPT 1 2 "Gruppo " + PROMPT 1 2 "@bGruppo@r " PICTURE "#####" END @@ -68,7 +70,7 @@ SECTION HEADER FIRST 9 STRINGA FR_SPECIE BEGIN KEY "Specie" - PROMPT 1 3 "Specie " + PROMPT 1 3 "@bSpecie@r " PICTURE "#####" END @@ -81,179 +83,175 @@ SECTION HEADER FIRST 9 DATA FR_DATAINIZIO BEGIN KEY "Data inizio esercizio" - PROMPT 1 4 "Esercizio " + PROMPT 1 4 "@bEsercizio@r " END DATA FR_DATAFINE BEGIN KEY "Data fine esercizio" - PROMPT 25 4 " - " + PROMPT 25 4 " @b-@r " END STRINGA FR_NUMGIORNI BEGIN KEY "Numero giorni" - PROMPT 45 4 "Giorni " + PROMPT 45 4 "@bGiorni@r " END STRINGA FR_NUMGIOSOL BEGIN KEY "giorni solari" - PROMPT 56 4 "su " + PROMPT 56 4 "@bsu@r " END STRINGA -1 BEGIN KEY "giorni solari" - PROMPT 63 4 "solari " + PROMPT 63 4 "@bsolari@r " END - + + STRINGA FR_SITUAZIONE + BEGIN + KEY "tipo situaz. da stampare" + PROMPT 70 4 "" + END + STRINGA FR_LIBROCESPITI BEGIN KEY "Libro cespiti" - PROMPT 96 4 "LIBRO CESPITI " - END - - STRINGA -1 - BEGIN - KEY "riga" - PROMPT 1 5 "===================================================================================================================================================" - END - - STRINGA -1 - BEGIN - KEY "Intestazione stampa" - PROMPT 1 6 "Data mov." + PROMPT 96 4 "@bLIBRO CESPITI@r " END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 13 6 "Tipo movimento" + PROMPT 1 6 "@bData mov.@r" + END + + STRINGA -1 + BEGIN + KEY "Intestazione stampa" + PROMPT 13 6 "@bTipo movimento@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 40 6 "Descrizione movimento" + PROMPT 40 6 "@bDescrizione movimento@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 100 6 "Elem" + PROMPT 100 6 "@bElem@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 110 6 "Costo stor.cesp" + PROMPT 110 6 "@bCosto stor.cesp@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 130 6 "Parte n.amm costo" + PROMPT 130 6 "@bParte n.amm costo@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 13 7 "Tp" + PROMPT 13 7 "@bTp@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 16 7 "Num.doc" + PROMPT 16 7 "@bNum.doc@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 26 7 "Data doc" + PROMPT 26 7 "@bData doc@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 45 7 "Importo movimento" + PROMPT 45 7 "@bImporto movimento@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 65 7 "xCalc.deduc.man." + PROMPT 65 7 "@bxCalc.deduc.man.@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 85 7 "Tot.rivalutazioni" + PROMPT 85 7 "@bTot.rivalutazioni@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 108 7 "Valore da ammort" + PROMPT 108 7 "@bValore da ammort@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 130 7 "Residuo da amm." + PROMPT 130 7 "@bResiduo da amm.@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 16 8 "Minusv.patrimon." + PROMPT 16 8 "@bMinusv.patrimon.@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 35 8 "Plusval.patrimon." + PROMPT 35 8 "@bPlusval.patrimon.@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 80 8 "Plusval.reinvestita" + PROMPT 80 8 "@bPlusval.reinvestita@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 106 8 "Fondo ammort." + PROMPT 106 8 "@bFondo ammort.@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 128 8 "Quota non + amm." - END - - STRINGA -1 - BEGIN - KEY "riga" - PROMPT 1 9 "===================================================================================================================================================" + PROMPT 128 8 "@bQuota non + amm.@r" END END // end section header first (INTESTAZIONE REGISTRO VERA E PROPRIA) -////---------------------------------------------------------------------------------------------------------------------//// -SECTION HEADER EVEN 2 +//// + +SECTION HEADER EVEN 2 STRINGA -1 BEGIN KEY "riga" - PROMPT 1 1 "---------------------------------------------------------------------------------------------------------------------------------------------------" + PROMPT 1 1 "@b___________________________________________________________________________________________________________________________________________________@r" END - NUMERO FR_CAT 12 + NUMERO FR_CAT BEGIN KEY "Codice categoria" - PROMPT 1 2 "CATEGORIA " + PROMPT 1 2 "@bCATEGORIA@r " + PICTURE "@@" FIELD LF_CESPI->CODCAT MESSAGE RESET,F1->FR_TC_ELEM MESSAGE RESET,F1->FR_TC_CSTO @@ -281,19 +279,21 @@ SECTION HEADER EVEN 2 END END // section header even (INTESTAZIONE CATEGORIA) -////----------------------------------------------------------------------------------------------------------//// + +//// + SECTION HEADER ODD 3 STRINGA -1 BEGIN KEY "riga" - PROMPT 1 1 "---------------------------------------------------------------------------------------------------------------------------------------------------" + PROMPT 1 1 "@b___________________________________________________________________________________________________________________________________________________@r" END - STRINGA -1 10 + STRINGA -1 BEGIN KEY "Id. cespite" - PROMPT 1 2 "CESPITE " + PROMPT 1 2 "@bCESPITE@r " FIELD LF_CESPI->IDCESPITE MESSAGE RESET,B1->FR_AE_NORMALE|RESET,B1->FR_AE_ACCELERATO|RESET,B1->FR_AE_ANTICIPATO MESSAGE RESET,B1->FR_AR_NORMALE|RESET,B1->FR_AR_ACCELERATO|RESET,B1->FR_AR_ANTICIPATO @@ -309,19 +309,21 @@ SECTION HEADER ODD 3 DATA -1 BEGIN KEY "Data acquisizione" - PROMPT 85 2 "Data acq. " + PROMPT 85 2 "@bData acq.@r " FIELD LF_CESPI->DTCOMP END DATA -1 BEGIN KEY "Data entrata in funzione" - PROMPT 107 2 "Entr. in funz. " + PROMPT 107 2 "@bEntr. in funz.@r " FIELD LF_CESPI->DTFUNZ END END // section header odd (INTESTAZIONE CESPITE) -////----------------------------------------------------------------------------------------------------------//// + +//// + SECTION HEADER LAST 3 DATA -1 @@ -340,7 +342,7 @@ SECTION HEADER LAST 3 NUMERO -1 3 BEGIN KEY "Elementi" - PROMPT 100 1 "" + PROMPT 101 1 "" PICTURE "###" FIELD 102@->NUMELE END @@ -350,6 +352,7 @@ SECTION HEADER LAST 3 KEY "Costo stor." PROMPT 110 1 "" FIELD 102@->CSTO + PICTURE "##.###.###.###.@@@" END VALUTA FR_SI_VNONAMM 18 @@ -357,6 +360,7 @@ SECTION HEADER LAST 3 KEY "Parte n.amm" PROMPT 130 1 "" FIELD 102@->VNONAMM + PICTURE "##.###.###.###.@@@" END VALUTA FR_SI_RIVGF 18 @@ -365,7 +369,7 @@ SECTION HEADER LAST 3 PROMPT 0 0 "" FLAGS "H" FIELD 102@->RIVGF - MESSAGE RESET,FR_SI_RIVGC + PICTURE "##.###.###.###.@@@" END VALUTA FR_SI_RIVGC 18 @@ -374,14 +378,29 @@ SECTION HEADER LAST 3 PROMPT 0 0 "" FLAGS "H" FIELD 102@->RIVGC - MESSAGE RESET,FR_SI_RIVGF + PICTURE "##.###.###.###.@@@" END + + LISTA -1 + BEGIN + KEY "TPAMM" + FLAGS "H" + PROMPT 0 0 "" + ITEM "1|1" + MESSAGE RESET,FR_SI_RIVGC + ITEM "2|2" + MESSAGE RESET,FR_SI_RIVGF + ITEM "3|3" + MESSAGE RESET,FR_SI_RIVGF + FIELD 104@->TPAMM + END VALUTA FR_SI_TOTRIV 18 BEGIN KEY "Totale rivalutazioni" - PROMPT 85 2 "" + PROMPT 84 2 "" MESSAGE _NUMEXPR,102@->RIV75+102@->RIV83+102@->RIV90+102@->RIV91+#FR_SI_RIVGF+#FR_SI_RIVGC + PICTURE "##.###.###.###.@@@" END VALUTA FR_SI_VALAMM 18 @@ -389,6 +408,7 @@ SECTION HEADER LAST 3 KEY "Valore da ammortizzare" PROMPT 108 2 "" MESSAGE _NUMEXPR,#FR_SI_CSTO-#FR_SI_VNONAMM+#FR_SI_TOTRIV + PICTURE "##.###.###.###.@@@" END VALUTA -1 18 @@ -396,13 +416,15 @@ SECTION HEADER LAST 3 KEY "Residuo da ammortizzare" PROMPT 128 2 "" MESSAGE _NUMEXPR,#FR_SI_VALAMM-(104@->QNOR+104@->QACC+104@->QANT+104@->QPERSE+104@->FPRIVATO+104@->QPPRIVATE) + PICTURE "##.###.###.###.@@@" END VALUTA -1 18 BEGIN KEY "Plusvalenza reinvestita" - PROMPT 80 3 "" + PROMPT 82 3 "" FIELD 102@->PLUSREIN + PICTURE "##.###.###.###.@@@" END VALUTA -1 18 @@ -410,6 +432,7 @@ SECTION HEADER LAST 3 KEY "Fondo ammortamento" PROMPT 106 3 "" MESSAGE _NUMEXPR,104@->QNOR+104@->QACC+104@->QANT + PICTURE "##.###.###.###.@@@" END VALUTA -1 18 @@ -417,10 +440,13 @@ SECTION HEADER LAST 3 KEY "Quota non + amm." PROMPT 126 3 "" MESSAGE _NUMEXPR,104@->QPERSE+104@->FPRIVATO+104@->QPPRIVATE + PICTURE "##.###.###.###.@@@" END END // end section header last (SALDI INIZIALI) -////----------------------------------------------------------------------------------------------------------//// + +//// + SECTION BODY FIRST 9 NUMERO FR_MV_SEGNO 2 @@ -461,7 +487,7 @@ SECTION BODY FIRST 9 NUMERO FR_MV_NUMELE 3 BEGIN KEY "Numero elementi" - PROMPT 100 1 "" + PROMPT 101 1 "" PICTURE "###" MESSAGE _NUMEXPR,105@->NUMELE*#FR_MV_SEGNO MESSAGE ADD,BO->FR_MV_NUMELE @@ -473,6 +499,7 @@ SECTION BODY FIRST 9 PROMPT 110 1 "" MESSAGE _NUMEXPR,105@->CSTO*#FR_MV_SEGNO MESSAGE ADD,BO->FR_MV_CSTO + PICTURE "##.###.###.###.@@@" END VALUTA FR_MV_VNONAMM 18 @@ -481,6 +508,7 @@ SECTION BODY FIRST 9 PROMPT 130 1 "" MESSAGE _NUMEXPR,105@->VNONAMM*#FR_MV_SEGNO MESSAGE ADD,BO->FR_MV_VNONAMM + PICTURE "##.###.###.###.@@@" END STRINGA -1 2 @@ -509,33 +537,59 @@ SECTION BODY FIRST 9 KEY "Importo mov." PROMPT 45 2 "" FIELD 105@->IMPVEN - MESSAGE ADD,BO->FR_MV_IMPVEN + PICTURE "##.###.###.###.@@@" END - VALUTA FR_MV_RIVGF + VALUTA FR_MV_IMPVEN_S 18 + BEGIN + KEY "Importo mov. (con segno !)" + FLAGS "H" + PROMPT 45 2 "" + MESSAGE _NUMEXPR,#FR_MV_IMPVEN*#FR_MV_SEGNO + MESSAGE ADD,BO->FR_MV_IMPVEN + PICTURE "##.###.###.###.@@@" + END + + VALUTA FR_MV_RIVGF 18 BEGIN KEY "RIVGF" PROMPT 0 0 "" FLAGS "H" FIELD 105@->RIVGF - MESSAGE RESET,FR_MV_RIVGC + PICTURE "##.###.###.###.@@@" END - VALUTA FR_MV_RIVGC + VALUTA FR_MV_RIVGC 18 BEGIN KEY "RIVGC" PROMPT 0 0 "" FLAGS "H" FIELD 105@->RIVGC - MESSAGE RESET,FR_MV_RIVGF + PICTURE "##.###.###.###.@@@" END + + LISTA -1 + BEGIN + KEY "TPAMM" + FLAGS "H" + PROMPT 0 0 "" + ITEM " | " + ITEM "1|1" + MESSAGE RESET,FR_MV_RIVGC + ITEM "2|2" + MESSAGE RESET,FR_MV_RIVGF + ITEM "3|3" + MESSAGE RESET,FR_MV_RIVGF + FIELD 106@->TPAMM + END VALUTA FR_MV_TOTRIV 18 BEGIN KEY "Totale rivalutazioni" - PROMPT 85 2 "" - MESSAGE _NUMEXPR, (105@->RIV75+105@->RIV83+105@->RIV90+105@->RIV91+105@->RIVGF+105@->RIVGC)*#FR_MV_SEGNO + PROMPT 84 2 "" + MESSAGE _NUMEXPR, (105@->RIV75+105@->RIV83+105@->RIV90+105@->RIV91+#FR_MV_RIVGF+#FR_MV_RIVGC)*#FR_MV_SEGNO MESSAGE ADD,BO->FR_MV_TOTRIV + PICTURE "##.###.###.###.@@@" END VALUTA FR_MV_VALAMM 18 @@ -544,6 +598,7 @@ SECTION BODY FIRST 9 PROMPT 108 2 "" MESSAGE _NUMEXPR, #FR_MV_CSTO-#FR_MV_VNONAMM+#FR_MV_TOTRIV MESSAGE ADD,BO->FR_MV_VALAMM + PICTURE "##.###.###.###.@@@" END VALUTA FR_MV_RESAMM 18 @@ -551,14 +606,16 @@ SECTION BODY FIRST 9 KEY "Residuo da ammortizzare (con segno!!!)" PROMPT 128 2 "" MESSAGE _NUMEXPR, #FR_MV_VALAMM-(106@->QNOR+106@->QACC+106@->QANT+106@->QPERSE+106@->FPRIVATO+106@->QPPRIVATE)*#FR_MV_SEGNO + PICTURE "##.###.###.###.@@@" END VALUTA FR_MV_PLUSREIN 18 BEGIN KEY "Plusvalenza reinvestita" - PROMPT 80 3 "" + PROMPT 82 3 "" MESSAGE _NUMEXPR,#FR_MV_SEGNO*105@->PLUSREIN MESSAGE ADD,BO->FR_MV_PLUSREIN + PICTURE "##.###.###.###.@@@" END VALUTA FR_MV_FONDOAMM 18 @@ -567,6 +624,7 @@ SECTION BODY FIRST 9 PROMPT 106 3 "" MESSAGE _NUMEXPR, (106@->QNOR+106@->QACC+106@->QANT)*#FR_MV_SEGNO MESSAGE ADD,BO->FR_MV_FONDOAMM + PICTURE "##.###.###.###.@@@" END VALUTA FR_MV_QNONAMM 18 @@ -575,6 +633,7 @@ SECTION BODY FIRST 9 PROMPT 126 3 "" MESSAGE _NUMEXPR, (106@->QPERSE+106@->FPRIVATO+106@->QPPRIVATE)*#FR_MV_SEGNO MESSAGE ADD,BO->FR_MV_QNONAMM + PICTURE "##.###.###.###.@@@" END // ammortamenti da ammmv @@ -609,6 +668,7 @@ SECTION BODY FIRST 9 PROMPT 106 4 "" FIELD 107@->QNOR MESSAGE ADD,BE->FR_AE_NORMALE + PICTURE "##.###.###.###.@@@" GROUP 1 END @@ -619,6 +679,26 @@ SECTION BODY FIRST 9 FLAGS "H" MESSAGE _NUMEXPR,107@->QNOR*#FR_MV_SEGNO MESSAGE ADD,BO->FR_MV_QNOR + PICTURE "##.###.###.###.@@@" + END + + VALUTA FR_MV_QNONAMM4 18 + BEGIN + KEY "Quote non + ammortizzabili riga 4" + PROMPT 126 4 "" + MESSAGE _NUMEXPR,107@->QPERSE+107@->FPRIVATO+107@->QPPRIVATE + PICTURE "##.###.###.###.@@@" + GROUP 1 + END + + VALUTA FR_MV_QNONAMM4_SEGNO 18 + BEGIN + KEY "Quote non + ammortizzabili riga 4" + PROMPT 126 4 "" + FLAGS "H" + MESSAGE _NUMEXPR, (107@->QPERSE+107@->FPRIVATO+107@->QPPRIVATE)*#FR_MV_SEGNO + MESSAGE ADD,BO->FR_MV_QNONAMM + PICTURE "##.###.###.###.@@@" END NUMERO -1 7 @@ -651,6 +731,7 @@ SECTION BODY FIRST 9 PROMPT 106 5 "" FIELD 107@->QACC MESSAGE ADD,BE->FR_AE_ACCELERATO + PICTURE "##.###.###.###.@@@" GROUP 2 END @@ -661,6 +742,7 @@ SECTION BODY FIRST 9 FLAGS "H" MESSAGE _NUMEXPR,107@->QACC*#FR_MV_SEGNO MESSAGE ADD,BO->FR_MV_QACC + PICTURE "##.###.###.###.@@@" END NUMERO -1 7 @@ -693,6 +775,7 @@ SECTION BODY FIRST 9 PROMPT 106 6 "" FIELD 107@->QANT MESSAGE ADD,BE->FR_AE_ANTICIPATO + PICTURE "##.###.###.###.@@@" GROUP 3 END @@ -703,10 +786,13 @@ SECTION BODY FIRST 9 FLAGS "H" MESSAGE _NUMEXPR,107@->QANT*#FR_MV_SEGNO MESSAGE ADD,BO->FR_MV_QANT + PICTURE "##.###.###.###.@@@" END END // section body first (MOVIMENTI) -////----------------------------------------------------------------------------------------------------------//// + +//// + SECTION BODY ODD 3 STRINGA -1 @@ -718,7 +804,7 @@ SECTION BODY ODD 3 NUMERO FR_MV_NUMELE BEGIN KEY "Totale Numero elementi" - PROMPT 100 1 "" + PROMPT 101 1 "" PICTURE "###" END @@ -726,30 +812,36 @@ SECTION BODY ODD 3 BEGIN KEY "Costo" PROMPT 110 1 "" + PICTURE "##.###.###.###.@@@" END VALUTA FR_MV_VNONAMM 18 BEGIN KEY "Parte n.amm" PROMPT 130 1 "" + PICTURE "##.###.###.###.@@@" END VALUTA FR_MV_IMPVEN 18 BEGIN KEY "Importo mov." PROMPT 45 2 "" + MESSAGE _NUMEXPR,IF(#FR_MV_IMPVEN>=0,#FR_MV_IMPVEN,-#FR_MV_IMPVEN) + PICTURE "##.###.###.###.@@@" END VALUTA FR_MV_TOTRIV 18 BEGIN KEY "Totale rivalutazioni" - PROMPT 85 2 "" + PROMPT 84 2 "" + PICTURE "##.###.###.###.@@@" END VALUTA FR_MV_VALAMM 18 BEGIN KEY "Valore da ammortizzare" PROMPT 108 2 "" + PICTURE "##.###.###.###.@@@" END VALUTA FR_MV_QNOR 18 @@ -757,6 +849,7 @@ SECTION BODY ODD 3 KEY "Quota amm. normale totale (con segno!!)" FLAGS "H" PROMPT 106 3 "" + PICTURE "##.###.###.###.@@@" END VALUTA FR_MV_QACC 18 @@ -764,6 +857,7 @@ SECTION BODY ODD 3 KEY "Quota amm. accelerata totale (con segno!!)" FLAGS "H" PROMPT 106 3 "" + PICTURE "##.###.###.###.@@@" END VALUTA FR_MV_QANT 18 @@ -771,13 +865,23 @@ SECTION BODY ODD 3 KEY "Quota amm. anticipata totale (con segno!!)" FLAGS "H" PROMPT 106 3 "" + PICTURE "##.###.###.###.@@@" END +/* VALUTA FR_MV_QNONAMM4 + BEGIN + KEY "Quota non + amm. (con segno!!); viene dalla riga 4 dei movimenti" + FLAGS "H" + PROMPT 126 3 "" + PICTURE "##.###.###.###.@@@" + END */ + VALUTA FR_MV_FONDOAMM 18 BEGIN KEY "Fondo ammortamento (con segno!!)" FLAGS "H" PROMPT 106 3 "" + PICTURE "##.###.###.###.@@@" END VALUTA FR_MV_TOTFONDOAMM 18 @@ -785,48 +889,58 @@ SECTION BODY ODD 3 KEY "Fondo ammortamento" PROMPT 106 3 "" MESSAGE _NUMEXPR,#FR_MV_FONDOAMM+#FR_MV_QNOR+#FR_MV_QACC+#FR_MV_QANT + PICTURE "##.###.###.###.@@@" END - VALUTA -1 18 - BEGIN - KEY "Residuo da ammortizzare" - PROMPT 128 2 "" - MESSAGE _NUMEXPR, #FR_MV_VALAMM-#FR_MV_TOTFONDOAMM - MESSAGE RESET,FR_MV_MINUSVALENZA|RESET,FR_MV_PLUSVALENZA - END +///!!!! VALUTA FR_MV_MINUSVALENZA 18 BEGIN KEY "Minusvalenza" - PROMPT 16 3 "" -// MESSAGE _NUMEXPR, #FR_MV_IMPVEN+(#FR_MV_VALAMM-#FR_MV_TOTFONDOAMM) + PROMPT 8 3 "" FIELD LF_AMMMV->MINUS + MESSAGE ADD,FE->FR_TC_MINUSVALENZA + PICTURE "##.###.###.###.@@@" END VALUTA FR_MV_PLUSVALENZA 18 BEGIN KEY "Plusvalenza" - PROMPT 35 3 "" -// MESSAGE _NUMEXPR, #FR_MV_IMPVEN+(#FR_MV_VALAMM-#FR_MV_TOTFONDOAMM) + PROMPT 28 3 "" FIELD LF_AMMMV->PLUS + MESSAGE ADD,FE->FR_TC_PLUSVALENZA + PICTURE "##.###.###.###.@@@" END VALUTA FR_MV_PLUSREIN 18 BEGIN KEY "Totale plusvalenza reinvestita" - PROMPT 80 3 "" - MESSAGE _NUMEXPR,#FR_MV_PLUSREIN + PROMPT 82 3 "" +// MESSAGE _NUMEXPR,#FR_MV_PLUSREIN + PICTURE "##.###.###.###.@@@" END VALUTA FR_MV_QNONAMM 18 BEGIN KEY "Totale quote non + ammortizzabili" PROMPT 126 3 "" - MESSAGE _NUMEXPR,#FR_MV_QNONAMM +// MESSAGE _NUMEXPR,#FR_MV_QNONAMM + PICTURE "##.###.###.###.@@@" END + VALUTA -1 18 + BEGIN + KEY "Residuo da ammortizzare" + PROMPT 128 2 "" + MESSAGE _NUMEXPR, #FR_MV_VALAMM-#FR_MV_TOTFONDOAMM-#FR_MV_QNONAMM + MESSAGE RESET,FR_MV_MINUSVALENZA|RESET,FR_MV_PLUSVALENZA + PICTURE "##.###.###.###.@@@" + END + END // section body odd (TOTALE MOVIMENTO) -////----------------------------------------------------------------------------------------------------------//// + +//// + //Body che stampa ogni movimento/rettifica// SECTION BODY EVEN 17 @@ -847,7 +961,7 @@ SECTION BODY EVEN 17 NUMERO FR_FE_NUMELE 3 BEGIN KEY "Elementi" - PROMPT 100 1 "" + PROMPT 101 1 "" PICTURE "###" FIELD 102@->NUMELE END @@ -857,6 +971,7 @@ SECTION BODY EVEN 17 KEY "Costo stor." PROMPT 110 1 "" FIELD 102@->CSTO + PICTURE "##.###.###.###.@@@" END VALUTA FR_FE_VNONAMM 18 @@ -864,6 +979,7 @@ SECTION BODY EVEN 17 KEY "Parte n.amm" PROMPT 130 1 "" FIELD 102@->VNONAMM + PICTURE "##.###.###.###.@@@" END VALUTA FR_FE_RIVGF 18 @@ -872,7 +988,7 @@ SECTION BODY EVEN 17 PROMPT 0 0 "" FLAGS "H" FIELD 102@->RIVGF - MESSAGE RESET,FR_FE_RIVGC + PICTURE "##.###.###.###.@@@" END VALUTA FR_FE_RIVGC 18 @@ -881,14 +997,29 @@ SECTION BODY EVEN 17 PROMPT 0 0 "" FLAGS "H" FIELD 102@->RIVGC - MESSAGE RESET,FR_FE_RIVGF + PICTURE "##.###.###.###.@@@" END + + LISTA -1 + BEGIN + KEY "TPAMM" + FLAGS "H" + PROMPT 0 0 "" + ITEM "1|1" + MESSAGE RESET,FR_FE_RIVGC + ITEM "2|2" + MESSAGE RESET,FR_FE_RIVGF + ITEM "3|3" + MESSAGE RESET,FR_FE_RIVGF + FIELD 104@->TPAMM + END VALUTA FR_FE_TOTRIV 18 BEGIN KEY "Totale rivalutazioni" - PROMPT 85 2 "" + PROMPT 84 2 "" MESSAGE _NUMEXPR,102@->RIV75+102@->RIV83+102@->RIV90+102@->RIV91+#FR_FE_RIVGF+#FR_FE_RIVGC + PICTURE "##.###.###.###.@@@" END VALUTA FR_FE_VALAMM 18 @@ -896,6 +1027,7 @@ SECTION BODY EVEN 17 KEY "Valore da ammortizzare" PROMPT 108 2 "" MESSAGE _NUMEXPR,#FR_FE_CSTO-#FR_FE_VNONAMM+#FR_FE_TOTRIV + PICTURE "##.###.###.###.@@@" END VALUTA FR_FE_RESAMM 18 @@ -903,13 +1035,15 @@ SECTION BODY EVEN 17 KEY "Residuo da ammortizzare" PROMPT 128 2 "" MESSAGE _NUMEXPR,#FR_FE_VALAMM-(104@->QNORP+104@->QACCP+104@->QANTP+104@->QPERSEP+104@->FPRIVATOP+104@->QPPRIVATEP) + PICTURE "##.###.###.###.@@@" END VALUTA FR_FE_PLUSREIN 18 BEGIN KEY "Plusvalenza reinvestita" - PROMPT 80 3 "" + PROMPT 82 3 "" FIELD 102@->PLUSREIN + PICTURE "##.###.###.###.@@@" END VALUTA FR_FE_FONDOAMM 18 @@ -917,6 +1051,7 @@ SECTION BODY EVEN 17 KEY "Fondo ammortamento" PROMPT 106 3 "" MESSAGE _NUMEXPR,104@->QNORP+104@->QACCP+104@->QANTP + PICTURE "##.###.###.###.@@@" END VALUTA FR_FE_QNONAMM 18 @@ -924,6 +1059,7 @@ SECTION BODY EVEN 17 KEY "Quota non + amm." PROMPT 126 3 "" MESSAGE _NUMEXPR,104@->QPERSEP+104@->FPRIVATOP+104@->QPPRIVATEP + PICTURE "##.###.###.###.@@@" END VALUTA FR_FE_VSPMANU 18 @@ -931,6 +1067,7 @@ SECTION BODY EVEN 17 KEY "xCalc.deduc.man." PROMPT 65 2 "" FIELD 102@->VSPMANU + PICTURE "##.###.###.###.@@@" END // ammortamenti da ammce @@ -998,6 +1135,7 @@ SECTION BODY EVEN 17 KEY "Quota amm. normale" PROMPT 106 4 "" FIELD 104@->QNOR + PICTURE "##.###.###.###.@@@" GROUP 1 END @@ -1006,6 +1144,7 @@ SECTION BODY EVEN 17 KEY "" PROMPT 126 4 "" FIELD 104@->FPRIVATO + PICTURE "##.###.###.###.@@@" GROUP 1 END @@ -1021,6 +1160,7 @@ SECTION BODY EVEN 17 KEY "Quota amm. accelerato" PROMPT 106 5 "" FIELD 104@->QACC + PICTURE "##.###.###.###.@@@" GROUP 2 END @@ -1029,6 +1169,7 @@ SECTION BODY EVEN 17 KEY "" PROMPT 126 5 "" FIELD 104@->FPRIVATO + PICTURE "##.###.###.###.@@@" GROUP 2 END @@ -1044,6 +1185,7 @@ SECTION BODY EVEN 17 KEY "Quota amm. anticipato" PROMPT 106 6 "" FIELD 104@->QANT + PICTURE "##.###.###.###.@@@" GROUP 3 END @@ -1052,6 +1194,7 @@ SECTION BODY EVEN 17 KEY "" PROMPT 126 6 "" FIELD 104@->FPRIVATO + PICTURE "##.###.###.###.@@@" GROUP 3 END @@ -1076,7 +1219,7 @@ SECTION BODY EVEN 17 STRINGA FR_FE_MSG4 BEGIN KEY "Messaggio 4" - PROMPT 16 10 "Ammortamento al 100% per beni inferiori al milione" + PROMPT 16 10 "Ammortamento al 100% per beni inferiori a 516.46 euro" END STRINGA FR_FE_MSG5 @@ -1101,7 +1244,7 @@ SECTION BODY EVEN 17 NUMERO -1 3 BEGIN KEY "Elementi" - PROMPT 100 13 "" + PROMPT 101 13 "" PICTURE "###" MESSAGE _NUMEXPR, #FR_FE_NUMELE MESSAGE ADD,FE->FR_TC_ELEM @@ -1113,6 +1256,7 @@ SECTION BODY EVEN 17 PROMPT 110 13 "" MESSAGE _NUMEXPR, #FR_FE_CSTO MESSAGE ADD,FE->FR_TC_CSTO + PICTURE "##.###.###.###.@@@" END VALUTA -1 18 @@ -1120,15 +1264,17 @@ SECTION BODY EVEN 17 KEY "Parte n.amm" PROMPT 130 13 "" MESSAGE _NUMEXPR, #FR_FE_VNONAMM - MESSAGE ADD,FE->FR_TC_VNONAMM + MESSAGE ADD,FE->FR_TC_VNONAMM + PICTURE "##.###.###.###.@@@" END VALUTA -1 18 BEGIN KEY "Totale rivalutazioni" - PROMPT 85 14 "" + PROMPT 84 14 "" MESSAGE _NUMEXPR,#FR_FE_TOTRIV MESSAGE ADD,FE->FR_TC_TOTRIV + PICTURE "##.###.###.###.@@@" END VALUTA -1 18 @@ -1137,14 +1283,16 @@ SECTION BODY EVEN 17 PROMPT 108 14 "" MESSAGE _NUMEXPR,#FR_FE_VALAMM MESSAGE ADD,FE->FR_TC_VALAMM + PICTURE "##.###.###.###.@@@" END VALUTA -1 18 BEGIN KEY "Plusvalenza reinvestita" - PROMPT 80 15 "" + PROMPT 82 15 "" MESSAGE _NUMEXPR,#FR_FE_PLUSREIN MESSAGE ADD,FE->FR_TC_PLUSREIN + PICTURE "##.###.###.###.@@@" END VALUTA FR_VB_FONDOAMM 18 @@ -1153,6 +1301,7 @@ SECTION BODY EVEN 17 PROMPT 106 15 "" MESSAGE _NUMEXPR,#FR_FE_FONDOAMM+#FR_FE_QNOR+#FR_FE_QACC+#FR_FE_QANT MESSAGE ADD,FE->FR_TC_FONDOAMM + PICTURE "##.###.###.###.@@@" END VALUTA FR_VB_QNONAMM 18 @@ -1161,6 +1310,7 @@ SECTION BODY EVEN 17 PROMPT 126 15 "" MESSAGE _NUMEXPR,#FR_FE_QNONAMM+#FR_FE_FPRIVATO1+#FR_FE_FPRIVATO2+#FR_FE_FPRIVATO3 MESSAGE ADD,FE->FR_TC_QNONAMM + PICTURE "##.###.###.###.@@@" END VALUTA -1 18 @@ -1169,6 +1319,7 @@ SECTION BODY EVEN 17 PROMPT 128 14 "" MESSAGE _NUMEXPR,#FR_FE_VALAMM-#FR_VB_FONDOAMM-#FR_VB_QNONAMM MESSAGE ADD,FE->FR_TC_RESAMM + PICTURE "##.###.###.###.@@@" END VALUTA -1 18 @@ -1177,6 +1328,7 @@ SECTION BODY EVEN 17 PROMPT 65 14 "" MESSAGE _NUMEXPR,#FR_FE_VSPMANU MESSAGE ADD,FE->FR_TC_VSPMANU + PICTURE "##.###.###.###.@@@" END STRINGA -1 @@ -1191,6 +1343,7 @@ SECTION BODY EVEN 17 PROMPT 22 16 "" PICTURE "###.###.###.##@" MESSAGE ADD,FE->FR_TC_AE_NORMALE + PICTURE "##.###.###.###.@@@" END STRINGA -1 @@ -1202,8 +1355,8 @@ SECTION BODY EVEN 17 BEGIN KEY "accelerato" PROMPT 52 16 "" - PICTURE "###.###.###.##@" - MESSAGE ADD,FE->FR_TC_AE_ACCELERATO + MESSAGE ADD,FE->FR_TC_AE_ACCELERATO + PICTURE "##.###.###.###.@@@" END STRINGA -1 @@ -1215,8 +1368,8 @@ SECTION BODY EVEN 17 BEGIN KEY "anticipato" PROMPT 88 16 "" - PICTURE "###.###.###.##@" MESSAGE ADD,FE->FR_TC_AE_ANTICIPATO + PICTURE "##.###.###.###.@@@" END STRINGA -1 @@ -1228,8 +1381,8 @@ SECTION BODY EVEN 17 BEGIN KEY "totale" PROMPT 122 16 "" - PICTURE "###.###.###.##@" MESSAGE _NUMEXPR,#FR_AE_NORMALE+#FR_AE_ACCELERATO+#FR_AE_ANTICIPATO + PICTURE "##.###.###.###.@@@" END STRINGA -1 @@ -1247,9 +1400,9 @@ SECTION BODY EVEN 17 BEGIN KEY "normale" PROMPT 22 17 "" - PICTURE "###.###.###.##@" MESSAGE _NUMEXPR,#FR_FE_QNOR MESSAGE ADD,FE->FR_TC_AR_NORMALE + PICTURE "##.###.###.###.@@@" END STRINGA -1 @@ -1261,9 +1414,9 @@ SECTION BODY EVEN 17 BEGIN KEY "accelerato" PROMPT 52 17 "" - PICTURE "###.###.###.##@" MESSAGE _NUMEXPR,#FR_FE_QACC MESSAGE ADD,FE->FR_TC_AR_ACCELERATO + PICTURE "##.###.###.###.@@@" END STRINGA -1 @@ -1275,9 +1428,9 @@ SECTION BODY EVEN 17 BEGIN KEY "anticipato" PROMPT 88 17 "" - PICTURE "###.###.###.##@" MESSAGE _NUMEXPR,#FR_FE_QANT MESSAGE ADD,FE->FR_TC_AR_ANTICIPATO + PICTURE "##.###.###.###.@@@" END STRINGA -1 @@ -1289,8 +1442,8 @@ SECTION BODY EVEN 17 BEGIN KEY "totale" PROMPT 122 17 "" - PICTURE "###.###.###.##@" MESSAGE _NUMEXPR,#FR_AR_NORMALE+#FR_AR_ACCELERATO+#FR_AR_ANTICIPATO + PICTURE "##.###.###.###.@@@" END STRINGA -1 @@ -1299,19 +1452,21 @@ SECTION BODY EVEN 17 END END // section body even (VALORI A FINE ESERCIZIO) -////----------------------------------------------------------------------------------------------------------//// + +//// + SECTION FOOTER EVEN 6 STRINGA -1 BEGIN KEY "riga" - PROMPT 1 1 "---------------------------------------------------------------------------------------------------------------------------------------------------" + PROMPT 1 1 "@b___________________________________________________________________________________________________________________________________________________@r" END STRINGA -1 BEGIN KEY "Descrizione" - PROMPT 16 2 "TOTALI CATEGORIA" + PROMPT 16 2 "@bTOTALI CATEGORIA@r" END NUMERO FR_TC_ELEM 4 @@ -1328,6 +1483,7 @@ SECTION FOOTER EVEN 6 KEY "Costo stor." PROMPT 110 2 "" MESSAGE ADD,F0->FR_TG_CSTO + PICTURE "##.###.###.###.@@@" GROUP 1 END @@ -1336,14 +1492,16 @@ SECTION FOOTER EVEN 6 KEY "Parte n.amm" PROMPT 130 2 "" MESSAGE ADD,F0->FR_TG_VNONAMM + PICTURE "##.###.###.###.@@@" GROUP 1 END VALUTA FR_TC_TOTRIV 18 BEGIN KEY "Totale rivalutazioni" - PROMPT 85 3 "" + PROMPT 84 3 "" MESSAGE ADD,F0->FR_TG_TOTRIV + PICTURE "##.###.###.###.@@@" GROUP 1 END @@ -1352,6 +1510,7 @@ SECTION FOOTER EVEN 6 KEY "Valore da ammortizzare" PROMPT 108 3 "" MESSAGE ADD,F0->FR_TG_VALAMM + PICTURE "##.###.###.###.@@@" GROUP 1 END @@ -1360,14 +1519,32 @@ SECTION FOOTER EVEN 6 KEY "Residuo da ammortizzare" PROMPT 128 3 "" MESSAGE ADD,F0->FR_TG_RESAMM + PICTURE "##.###.###.###.@@@" GROUP 1 END - + + VALUTA FR_TC_MINUSVALENZA 18 + BEGIN + KEY "Minusvalenza" + PROMPT 8 4 "" + MESSAGE ADD,FO->FR_TG_MINUSVALENZA + PICTURE "##.###.###.###.@@@" + END + + VALUTA FR_TC_PLUSVALENZA 18 + BEGIN + KEY "Plusvalenza" + PROMPT 28 4 "" + MESSAGE ADD,FO->FR_TG_PLUSVALENZA + PICTURE "##.###.###.###.@@@" + END + VALUTA FR_TC_PLUSREIN 18 BEGIN KEY "Plusvalenza reinvestita" - PROMPT 80 4 "" + PROMPT 82 4 "" MESSAGE ADD,F0->FR_TG_PLUSREIN + PICTURE "##.###.###.###.@@@" GROUP 1 END @@ -1376,6 +1553,7 @@ SECTION FOOTER EVEN 6 KEY "Fondo ammortamento" PROMPT 106 4 "" MESSAGE ADD,F0->FR_TG_FONDOAMM + PICTURE "##.###.###.###.@@@" GROUP 1 END @@ -1384,6 +1562,7 @@ SECTION FOOTER EVEN 6 KEY "Quota non + amm." PROMPT 126 4 "" MESSAGE ADD,F0->FR_TG_QNONAMM + PICTURE "##.###.###.###.@@@" GROUP 1 END @@ -1392,6 +1571,7 @@ SECTION FOOTER EVEN 6 KEY "xCalc.deduc.man." PROMPT 65 3 "" MESSAGE ADD,F0->FR_TG_VSPMANU + PICTURE "##.###.###.###.@@@" GROUP 1 END @@ -1406,8 +1586,8 @@ SECTION FOOTER EVEN 6 BEGIN KEY "normale" PROMPT 22 5 "" - PICTURE "###.###.###.##@" MESSAGE ADD,F0->FR_TG_AE_NORMALE + PICTURE "##.###.###.###.@@@" GROUP 1 END @@ -1421,8 +1601,8 @@ SECTION FOOTER EVEN 6 BEGIN KEY "accelerato" PROMPT 52 5 "" - PICTURE "###.###.###.##@" MESSAGE ADD,F0->FR_TG_AE_ACCELERATO + PICTURE "##.###.###.###.@@@" GROUP 1 END @@ -1436,8 +1616,8 @@ SECTION FOOTER EVEN 6 BEGIN KEY "anticipato" PROMPT 88 5 "" - PICTURE "###.###.###.##@" MESSAGE ADD,F0->FR_TG_AE_ANTICIPATO + PICTURE "##.###.###.###.@@@" GROUP 1 END @@ -1451,8 +1631,8 @@ SECTION FOOTER EVEN 6 BEGIN KEY "totale" PROMPT 122 5 "" - PICTURE "###.###.###.##@" MESSAGE _NUMEXPR,#FR_TC_AE_NORMALE+#FR_TC_AE_ACCELERATO+#FR_TC_AE_ANTICIPATO + PICTURE "##.###.###.###.@@@" GROUP 1 END @@ -1473,8 +1653,8 @@ SECTION FOOTER EVEN 6 BEGIN KEY "normale" PROMPT 22 6 "" - PICTURE "###.###.###.##@" MESSAGE ADD,F0->FR_TG_AR_NORMALE + PICTURE "##.###.###.###.@@@" GROUP 1 END @@ -1488,8 +1668,8 @@ SECTION FOOTER EVEN 6 BEGIN KEY "accelerato" PROMPT 52 6 "" - PICTURE "###.###.###.##@" MESSAGE ADD,F0->FR_TG_AR_ACCELERATO + PICTURE "##.###.###.###.@@@" GROUP 1 END @@ -1503,8 +1683,8 @@ SECTION FOOTER EVEN 6 BEGIN KEY "anticipato" PROMPT 88 6 "" - PICTURE "###.###.###.##@" MESSAGE ADD,F0->FR_TG_AR_ANTICIPATO + PICTURE "##.###.###.###.@@@" GROUP 1 END @@ -1518,8 +1698,8 @@ SECTION FOOTER EVEN 6 BEGIN KEY "totale" PROMPT 122 6 "" - PICTURE "###.###.###.##@" MESSAGE _NUMEXPR,#FR_TC_AR_NORMALE+#FR_TC_AR_ACCELERATO+#FR_TC_AR_ANTICIPATO + PICTURE "##.###.###.###.@@@" GROUP 1 END @@ -1530,19 +1710,19 @@ SECTION FOOTER EVEN 6 END END // section footer even -//---------------------------------------------------------------------------------------------------------------// +//______________________________________________________________________________________________________________-// SECTION FOOTER ODD 6 STRINGA -1 BEGIN KEY "riga" - PROMPT 1 1 "---------------------------------------------------------------------------------------------------------------------------------------------------" + PROMPT 1 1 "@b___________________________________________________________________________________________________________________________________________________@r" END STRINGA -1 BEGIN KEY "Descrizione" - PROMPT 16 2 "TOTALI GENERALI" + PROMPT 16 2 "@bTOTALI GENERALI@r" END NUMERO FR_TG_ELEM 4 @@ -1556,54 +1736,77 @@ SECTION FOOTER ODD 6 BEGIN KEY "Costo stor." PROMPT 110 2 "" + PICTURE "##.###.###.###.@@@" END VALUTA FR_TG_VNONAMM 18 BEGIN KEY "Parte n.amm" PROMPT 130 2 "" + PICTURE "##.###.###.###.@@@" END VALUTA FR_TG_TOTRIV 18 BEGIN KEY "Totale rivalutazioni" - PROMPT 85 3 "" + PROMPT 84 3 "" + PICTURE "##.###.###.###.@@@" END VALUTA FR_TG_VALAMM 18 BEGIN KEY "Valore da ammortizzare" PROMPT 108 3 "" + PICTURE "##.###.###.###.@@@" END VALUTA FR_TG_RESAMM 18 BEGIN KEY "Residuo da ammortizzare" PROMPT 128 3 "" + PICTURE "##.###.###.###.@@@" + END + + VALUTA FR_TG_MINUSVALENZA 18 + BEGIN + KEY "Minusvalenza" + PROMPT 8 4 "" + PICTURE "##.###.###.###.@@@" + END + + VALUTA FR_TG_PLUSVALENZA 18 + BEGIN + KEY "Plusvalenza" + PROMPT 28 4 "" + PICTURE "##.###.###.###.@@@" END VALUTA FR_TG_PLUSREIN 18 BEGIN KEY "Plusvalenza reinvestita" - PROMPT 80 4 "" + PROMPT 82 4 "" + PICTURE "##.###.###.###.@@@" END VALUTA FR_TG_FONDOAMM 18 BEGIN KEY "Fondo ammortamento" PROMPT 106 4 "" + PICTURE "##.###.###.###.@@@" END VALUTA FR_TG_QNONAMM 18 BEGIN KEY "Quota non + amm." PROMPT 126 4 "" + PICTURE "##.###.###.###.@@@" END VALUTA FR_TG_VSPMANU 18 BEGIN KEY "xCalc.deduc.man." PROMPT 65 3 "" + PICTURE "##.###.###.###.@@@" END STRINGA -1 @@ -1616,7 +1819,7 @@ SECTION FOOTER ODD 6 BEGIN KEY "normale" PROMPT 22 5 "" - PICTURE "###.###.###.##@" + PICTURE "##.###.###.###.@@@" END STRINGA -1 @@ -1628,7 +1831,7 @@ SECTION FOOTER ODD 6 BEGIN KEY "accelerato" PROMPT 52 5 "" - PICTURE "###.###.###.##@" + PICTURE "##.###.###.###.@@@" END STRINGA -1 @@ -1640,7 +1843,7 @@ SECTION FOOTER ODD 6 BEGIN KEY "anticipato" PROMPT 88 5 "" - PICTURE "###.###.###.##@" + PICTURE "##.###.###.###.@@@" END STRINGA -1 @@ -1652,8 +1855,8 @@ SECTION FOOTER ODD 6 BEGIN KEY "totale" PROMPT 122 5 "" - PICTURE "###.###.###.##@" MESSAGE _NUMEXPR,#FR_TG_AE_NORMALE+#FR_TG_AE_ACCELERATO+#FR_TG_AE_ANTICIPATO + PICTURE "##.###.###.###.@@@" END STRINGA -1 @@ -1671,7 +1874,7 @@ SECTION FOOTER ODD 6 BEGIN KEY "normale" PROMPT 22 6 "" - PICTURE "###.###.###.##@" + PICTURE "##.###.###.###.@@@" END STRINGA -1 @@ -1683,7 +1886,7 @@ SECTION FOOTER ODD 6 BEGIN KEY "accelerato" PROMPT 52 6 "" - PICTURE "###.###.###.##@" + PICTURE "##.###.###.###.@@@" END STRINGA -1 @@ -1695,7 +1898,7 @@ SECTION FOOTER ODD 6 BEGIN KEY "anticipato" PROMPT 88 6 "" - PICTURE "###.###.###.##@" + PICTURE "##.###.###.###.@@@" END STRINGA -1 @@ -1707,8 +1910,8 @@ SECTION FOOTER ODD 6 BEGIN KEY "totale" PROMPT 122 6 "" - PICTURE "###.###.###.##@" MESSAGE _NUMEXPR,#FR_TG_AR_NORMALE+#FR_TG_AR_ACCELERATO+#FR_TG_AR_ANTICIPATO + PICTURE "##.###.###.###.@@@" END STRINGA -1 @@ -1717,27 +1920,29 @@ SECTION FOOTER ODD 6 END END // section footer odd -//-------------------------------------------------------------------------------------------------------------------// + +//// + //vero footer di pagina!// SECTION FOOTER LAST 4 STRINGA -1 BEGIN KEY "riga" - PROMPT 1 1 "---------------------------------------------------------------------------------------------------------------------------------------------------" + PROMPT 1 1 "@b___________________________________________________________________________________________________________________________________________________@r" END - STRINGA -1 + STRINGA FR_DATASTAMPA BEGIN KEY "Data" - PROMPT 1 2 "Data Stampa " + PROMPT 1 2 "@bData Stampa@r " MESSAGE _TODAY END - NUMERO -1 7 + NUMERO -1 BEGIN KEY "Nr. pagina" - PROMPT 130 2 "Pagina n. " + PROMPT 130 2 "@bPagina n.@r " MESSAGE _PAGENO END diff --git a/ce/ce3100a.uml b/ce/ce3100a.uml index ee7ca1916..e7e831ede 100755 --- a/ce/ce3100a.uml +++ b/ce/ce3100a.uml @@ -1,15 +1,16 @@ #include "ce3100a.h" -TOOLBAR "" 0 -2 0 2 +TOOLBAR "" 0 -3 0 3 -BUTTON DLG_OK 10 2 +BUTTON DLG_PRINT 10 2 BEGIN - PROMPT -12 -1 "" + PROMPT -12 -11 "" + PICTURE BMP_PRINT END BUTTON DLG_QUIT 10 2 BEGIN - PROMPT -22 -1 "" + PROMPT -22 -11 "" END ENDPAGE @@ -46,8 +47,8 @@ BEGIN JOIN ESC ALIAS 105 INTO CODTAB==CODTAB INPUT CODTAB F_ESERCIZIO DISPLAY "Codice esercizio" CODTAB - DISPLAY "Data inizio" 105@->D0 - DISPLAY "Data fine@10" 105@->D1 + DISPLAY "Data inizio esercizio" 105@->D0 + DISPLAY "Data fine esercizio" 105@->D1 OUTPUT F_ESERCIZIO CODTAB OUTPUT F_DATAINIZIO 105@->D0 OUTPUT F_DATAFINE 105@->D1 @@ -131,6 +132,7 @@ BEGIN OUTPUT F_CATINI CODTAB[7,8] OUTPUT F_D_CATINI S0 CHECKTYPE SEARCH + GROUP 1 END STRING F_D_CATINI 60 50 @@ -144,6 +146,7 @@ BEGIN DISPLAY "Specie" CODTAB[3,6] COPY OUTPUT F_CATINI CHECKTYPE SEARCH + GROUP 1 END STRING F_CATFIN 2 @@ -160,6 +163,7 @@ BEGIN OUTPUT F_CATFIN CODTAB[7,8] OUTPUT F_D_CATFIN S0 CHECKTYPE SEARCH + GROUP 1 END STRING F_D_CATFIN 60 50 @@ -173,6 +177,7 @@ BEGIN DISPLAY "Specie" CODTAB[3,6] COPY OUTPUT F_CATFIN CHECKTYPE SEARCH + GROUP 1 END RADIOBUTTON F_TIPOREGISTRO 30 @@ -180,9 +185,9 @@ BEGIN PROMPT 2 9 "Stampa registro" ITEM "1|di Prova" MESSAGE CLEAR,F_CODREG|DISABLE,F_CODREG - MESSAGE ENABLE, F_AMMORTAMENTI + MESSAGE ENABLE, F_AMMORTAMENTI|ENABLE,1@ ITEM "2|Bollato" - MESSAGE ENABLE,F_CODREG + MESSAGE ENABLE,F_CODREG|"X",F_CALCOLO|CLEAR,1@ MESSAGE "1",F_AMMORTAMENTI|DISABLE,F_AMMORTAMENTI FLAGS "Z" END diff --git a/ce/ce3300.cpp b/ce/ce3300.cpp index 63e8cbc40..abd86218a 100755 --- a/ce/ce3300.cpp +++ b/ce/ce3300.cpp @@ -204,8 +204,8 @@ void TStampa_prospetto::set_intestazione( const int tipo, const int ordinamento) // in base all'ordinamento (per categoria o per impianto) scrive la riga con codice e descrizione if (ordinamento == 0) { - _form->find_field('H', first_page, FR_INT_COD).set("Cat."); - _form->find_field('H', first_page, FR_INT_DESC).set("Descrizione categoria"); + _form->find_field('H', first_page, FR_INT_COD).set("@bCat.@r"); + _form->find_field('H', first_page, FR_INT_DESC).set("@bDescrizione categoria@r"); } else { @@ -394,7 +394,8 @@ void TStampa_prospetto::aggiorna_totali(TCursor& cur, const int tipo, TTipo_cesp { const TString8 codmov = mov.get(MOVCE_CODMOV); const char tmc = cache().get("%TMC", codmov, "S6")[0]; //prende il valore del campo S6 nella tabella tipi movimento - const char segno = mov.get_char(MOVCE_SEGNO); + const char segno = mov.get_char(MOVCE_SEGNO); + const real signum = segno == '-' ? -1.0 : +1.0; //serve per sommare i movimenti con il loro segno effettivo riv75 = mov.get_real(MOVCE_RIV75); riv83 = mov.get_real(MOVCE_RIV83); riv90 = mov.get_real(MOVCE_RIV90); @@ -408,28 +409,28 @@ void TStampa_prospetto::aggiorna_totali(TCursor& cur, const int tipo, TTipo_cesp real qant = amm.get_real(MOVAM_QANT); if (tmc == 'R') - _cat._tot_riveser += riv75 + riv83 + riv90 + riv91 + rivg; + _cat._tot_riveser += (riv75 + riv83 + riv90 + riv91 + rivg) * signum; if (tmc == 'I' || (tmc <= ' ' && segno == '+')) { - _cat._tot_acqincr += csto - vnonamm2 + riv75 + riv83 + riv90 + riv91 + rivg; - _cat._tot_incr += qnor + qacc + qant; + _cat._tot_acqincr += (csto - vnonamm2 + riv75 + riv83 + riv90 + riv91 + rivg) * signum; + _cat._tot_incr += (qnor + qacc + qant) * signum; } if (tmc == 'E' || (tmc <= ' ' && segno == '-')) { - _cat._tot_cesselim2 += csto - vnonamm2 + riv75 + riv83 + riv90 + riv91 + rivg; - _cat._tot_cesselim3 += qnor + qant + qacc; + _cat._tot_cesselim2 += (csto - vnonamm2 + riv75 + riv83 + riv90 + riv91 + rivg) * (-signum); + _cat._tot_cesselim3 += (qnor + qant + qacc) * (-signum); } if (tmc == 'P') - _cat._tot_reinplus += mov.get_real(MOVCE_PLUSREIN); + _cat._tot_reinplus += (mov.get_real(MOVCE_PLUSREIN)) * signum; // solo nei casi con tipo =2 e/o 3 viene preso l'ammortamento da ammmv (che verrį poi sommato nella riga 4, piś sotto, a quello // preso da ammce); l'ammortamento viene preso qui in quanto é relativo ai movimenti che vengono qui scanditi if (tipo != 1) { - amv_ammnor += amv.get_real(AMMMV_QNOR); - amv_ammacc += amv.get_real(AMMMV_QACC); - amv_ammant += amv.get_real(AMMMV_QANT); + amv_ammnor += (amv.get_real(AMMMV_QNOR)) * signum; + amv_ammacc += (amv.get_real(AMMMV_QACC)) * signum; + amv_ammant += (amv.get_real(AMMMV_QANT)) * signum; } } //fine controllo sulle date diff --git a/ce/ce3300a.frm b/ce/ce3300a.frm index 38adc0837..50ee6a40b 100755 --- a/ce/ce3300a.frm +++ b/ce/ce3300a.frm @@ -13,13 +13,13 @@ SECTION HEADER FIRST 12 STRINGA -1 BEGIN KEY "titolo" - PROMPT 36 1 "ALLEGATO AL BILANCIO FISCALE" + PROMPT 36 1 "@bALLEGATO AL BILANCIO FISCALE@r" END STRINGA FR_CODDITTA BEGIN KEY "Codice ditta" - PROMPT 1 2 "Ditta " + PROMPT 1 2 "@bDitta@r " PICTURE "#####" END @@ -32,7 +32,7 @@ STRINGA FR_CODDITTA STRINGA FR_GRUPPO BEGIN KEY "Gruppo" - PROMPT 1 3 "Gruppo " + PROMPT 1 3 "@bGruppo@r " PICTURE "#####" END @@ -45,7 +45,7 @@ STRINGA FR_CODDITTA STRINGA FR_SPECIE BEGIN KEY "Specie" - PROMPT 1 4 "Specie " + PROMPT 1 4 "@bSpecie@r " PICTURE "#####" END @@ -58,19 +58,19 @@ STRINGA FR_CODDITTA DATA FR_DATAINIZIO BEGIN KEY "Data inizio esercizio" - PROMPT 1 5 "Esercizio " + PROMPT 1 5 "@bEsercizio@r " END DATA FR_DATAFINE BEGIN KEY "Data fine esercizio" - PROMPT 25 5 " - " + PROMPT 25 5 " @b-@r " END STRINGA -1 BEGIN KEY "tipo situaz. da stampare" - PROMPT 1 6 "Situazione " + PROMPT 1 6 "@bSituazione@r " END STRINGA FR_SITUAZIONE @@ -81,7 +81,7 @@ STRINGA FR_CODDITTA STRINGA -1 BEGIN - PROMPT 1 7 "===================================================================================================================================================" + PROMPT 1 7 "@b===================================================================================================================================================@r" END STRINGA FR_INT_COD @@ -99,103 +99,103 @@ STRINGA FR_CODDITTA STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 64 8 "Costo storico" + PROMPT 64 8 "@bCosto storico@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 106 8 "Tot. rivalutazioni" + PROMPT 106 8 "@bTot. rivalutazioni@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 130 8 "Val. inizio eser." + PROMPT 130 8 "@bVal. inizio eser.@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 59 9 "Rival. esercizio" + PROMPT 59 9 "@bRival. esercizio@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 82 9 "Acq/incrementi" + PROMPT 82 9 "@bAcq/incrementi@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 106 9 "Cessioni/Elimin." + PROMPT 106 9 "@bCessioni/Elimin.@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 128 9 "Valore a bilancio" + PROMPT 128 9 "@bValore a bilancio@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 55 10 "Fondo inizio eser." + PROMPT 55 10 "@bFondo inizio eser.@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 84 10 "Incrementi" + PROMPT 84 10 "@bIncrementi@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 104 10 "Cessioni/Elimin." + PROMPT 104 10 "@bCessioni/Elimin.@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 127 10 "Reinvest. Plusv." + PROMPT 127 10 "@bReinvest. Plusv.@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 34 11 "Amm. normale" + PROMPT 34 11 "@bAmm. normale@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 56 11 "Amm. accelerato" + PROMPT 56 11 "@bAmm. accelerato@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 77 11 "Amm. anticipato" + PROMPT 77 11 "@bAmm. anticipato@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 102 11 "Fondo a bilancio" + PROMPT 102 11 "@bFondo a bilancio@r" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 123 11 "Residuo a bilancio" + PROMPT 123 11 "@bResiduo a bilancio@r" END STRINGA -1 BEGIN KEY "riga" - PROMPT 1 12 "===================================================================================================================================================" + PROMPT 1 12 "@b===================================================================================================================================================@r" END END //section header first @@ -218,102 +218,118 @@ SECTION BODY ODD 5 BEGIN KEY "costo storico" PROMPT 62 1 "" + PICTURE "###.###.###.@@@" END VALUTA FR_TC_TOTRIV 15 BEGIN KEY "totale rivalutazioni" PROMPT 109 1 "" + PICTURE "###.###.###.@@@" END VALUTA FR_TC_VALINIES 15 BEGIN KEY "valore inizio esercizio" PROMPT 132 1 "" + PICTURE "###.###.###.@@@" END VALUTA FR_TC_RIVALES 15 BEGIN KEY "rivalutazione esercizio" PROMPT 60 2 "" + PICTURE "###.###.###.@@@" END VALUTA FR_TC_ACQINCR 15 BEGIN KEY "acquisti/incrementi" PROMPT 81 2 "" + PICTURE "###.###.###.@@@" END VALUTA FR_TC_CESSELIM2 15 BEGIN KEY "cessioni/elimin. riga 2" PROMPT 107 2 "" + PICTURE "###.###.###.@@@" END VALUTA FR_TC_VALBIL 15 BEGIN KEY "valore a bilancio" PROMPT 130 2 "" + PICTURE "###.###.###.@@@" END VALUTA FR_TC_FONDINIES 15 BEGIN KEY "fondo inizio esercizio" PROMPT 58 3 "" + PICTURE "###.###.###.@@@" END VALUTA FR_TC_INCR 15 BEGIN KEY "incrementi" PROMPT 79 3 "" + PICTURE "###.###.###.@@@" END VALUTA FR_TC_CESSELIM3 15 BEGIN KEY "cessioni/elimin. riga 3" PROMPT 105 3 "" + PICTURE "###.###.###.@@@" END VALUTA FR_TC_REINPLUS 15 BEGIN KEY "reinvest. plusv." PROMPT 128 3 "" + PICTURE "###.###.###.@@@" END VALUTA FR_TC_AMMNOR 15 BEGIN KEY "ammortamento normale" PROMPT 31 4 "" + PICTURE "###.###.###.@@@" END VALUTA FR_TC_AMMACC 15 BEGIN KEY "ammortamento accelerato" PROMPT 56 4 "" + PICTURE "###.###.###.@@@" END VALUTA FR_TC_AMMANT 15 BEGIN KEY "ammortamento anticipato" PROMPT 77 4 "" + PICTURE "###.###.###.@@@" END VALUTA FR_TC_FONDBIL 15 BEGIN KEY "fondo a bilancio" PROMPT 103 4 "" + PICTURE "###.###.###.@@@" END VALUTA FR_TC_RESBIL 15 BEGIN KEY "residuo a bilancio" PROMPT 126 4 "" + PICTURE "###.###.###.@@@" END STRINGA -1 BEGIN KEY "riga" - PROMPT 1 5 "---------------------------------------------------------------------------------------------------------------------------------------------------" + PROMPT 1 5 "@b---------------------------------------------------------------------------------------------------------------------------------------------------@r" END END //section body odd @@ -324,20 +340,20 @@ SECTION FOOTER FIRST 4 STRINGA -1 BEGIN KEY "riga" - PROMPT 1 1 "---------------------------------------------------------------------------------------------------------------------------------------------------" + PROMPT 1 1 "@b---------------------------------------------------------------------------------------------------------------------------------------------------@r" END STRINGA -1 BEGIN KEY "Data" - PROMPT 1 2 "Data Stampa " + PROMPT 1 2 "@bData Stampa@r " MESSAGE _TODAY END - NUMERO -1 7 + NUMERO -1 BEGIN KEY "Nr. pagina" - PROMPT 130 2 "Pagina n. " + PROMPT 130 2 "@bPagina n.@r " MESSAGE _PAGENO END diff --git a/ce/ce3400.cpp b/ce/ce3400.cpp new file mode 100755 index 000000000..17aa41058 --- /dev/null +++ b/ce/ce3400.cpp @@ -0,0 +1,467 @@ +#include +#include +#include +#include + +#include "celib.h" +#include "ce3400.h" +#include "ce3400a.h" + +#include "../cg/cglib01.h" + +#include "cespi.h" +#include "movce.h" +#include "salce.h" + +/////////////////////////////////////////////////////////// +// Generic Form +/////////////////////////////////////////////////////////// + +void TCespi_list_form::print_section(TPrint_section& sec) +{ + TPrinter& pr = printer(); + sec.update(); + const unsigned int h = sec.height(); + if (h > pr.rows_left()) + pr.formfeed(); + for (unsigned int r = 0; r < h; r++) + pr.print(sec.row(r)); + sec.reset(); +} + +void TCespi_list_form::print_row(char filler) +{ + TPrintrow row; + if (filler > ' ') + { + TString256 spc; + spc.fill(filler, 132); + row.put(spc); + } + printer().print(row); +} + +void TCespi_list_form::print_separator() +{ + print_row('_'); +} + +void TCespi_list_form::set_testata(const TMask& m) +{ + TPrint_section& header = section('H', odd_page); + header.find_field(F_CODDITTA).set(m.get(F_CODDITTA)); + header.find_field(F_RAGSOC).set(m.get(F_RAGSOC)); + + header.find_field(F_ESERCIZIO).set(m.get(F_ESERCIZIO)); + header.find_field(F_DATAINIZIO).set(m.get(F_DATAINIZIO)); + header.find_field(F_DATAFINE).set(m.get(F_DATAFINE)); + + header.find_field(F_GRUPPO).set(m.get(F_GRUPPO)); + header.find_field(F_D_GRUPPO).set(m.get(F_D_GRUPPO)); + + header.find_field(F_SPECIE).set(m.get(F_SPECIE)); + header.find_field(F_D_SPECIE).set(m.get(F_D_SPECIE)); + + if (m.id2pos(F_SITUAZIONE) > 0) + header.find_field(F_SITUAZIONE).set(m.get(F_SITUAZIONE)); +} + +TCespi_list_form::TCespi_list_form(const char* name) : TForm(name) +{ + _cur_form = this; + printer().setheaderhandler(TForm::header_handler); + printer().setfooterhandler(TForm::footer_handler); +} + +TCespi_list_form::~TCespi_list_form() +{ + _cur_form = NULL; + printer().setheaderhandler(NULL); + printer().setfooterhandler(NULL); +} + +/////////////////////////////////////////////////////////// +// Main Form +/////////////////////////////////////////////////////////// + +class TPR_form : public TCespi_list_form +{ +public: + TPrint_section& categoria() { return section('H', even_page); } + TPrint_section& cespite() { return section('B', first_page); } + TPrint_section& saldo() { return section('B', even_page); } + TPrint_section& movimento() { return section('B', odd_page); } + TPrint_section& totale() { return section('B', odd_page); } + + TPR_form() : TCespi_list_form("ce3400a") { } +}; + +/////////////////////////////////////////////////////////// +// Main Mask +/////////////////////////////////////////////////////////// + +class TPR_mask : public TAutomask +{ +protected: + virtual bool on_field_event(TOperable_field& f, TField_event e, long jolly); + +public: + TPR_mask() : TAutomask("ce3400a") { } +}; + +bool TPR_mask::on_field_event(TOperable_field& f, TField_event e, long jolly) +{ + bool ok = TRUE; + switch (f.dlg()) + { + case F_FROM_CAT: + case F_D_FROM_CAT: + case F_TO_CAT: + case F_D_TO_CAT: + { + TDitta_cespiti& dc = ditta_cespiti(); + ok = dc.on_category_event(f, e, jolly); + } + break; + default: break; + } + return ok; +} + +/////////////////////////////////////////////////////////// +// Totalizer +/////////////////////////////////////////////////////////// + +class TTotalizer : public TAssoc_array +{ +protected: + void add_num(const TRectype& rec, const char* name, char segno); + +public: + void add_rec(const TRectype& rec, char segno = '+'); + TTotalizer& operator+=(TTotalizer& tot); + real get_num(const char* name); + const TString& get(const char* name) { return get_num(name).string(); } +}; + +void TTotalizer::add_num(const TRectype& rec, const char* name, char segno) +{ + real num = rec.get(name); + if (!num.is_zero()) + { + if (segno == '-') + num = -num; + real* val = (real*)objptr(name); + if (val) + *val += num; + else + add(name, num); + } +} + +void TTotalizer::add_rec(const TRectype& rec, char segno) +{ + add_num(rec, SALCE_CSTO, segno); + add_num(rec, SALCE_RIV75, segno); + add_num(rec, SALCE_RIV83, segno); + add_num(rec, SALCE_RIV90, segno); + add_num(rec, SALCE_RIV91, segno); + add_num(rec, SALCE_RIVGF, segno); + add_num(rec, SALCE_RIVGC, segno); +} + +TTotalizer& TTotalizer::operator+=(TTotalizer& tot) +{ + FOR_EACH_ASSOC_OBJECT(tot, obj, name, itm) + { + real* val = (real*)objptr(name); + if (val) + *val += *(real*)itm; + else + add(name, *(real*)itm); + } + return *this; +} + +real TTotalizer::get_num(const char* name) +{ + real* val = (real*)objptr(name); + return val ? *val : ZERO; +} + +/////////////////////////////////////////////////////////// +// Main Application +/////////////////////////////////////////////////////////// + +class TPR_app : public TSkeleton_application +{ + int _tipo_sit, _order; + TTotalizer _tot_grp, _tot_gen; + TPR_form* _form; + +protected: + virtual void main_loop(); + +public: + bool has_rivalutation(const TRectype& rec) const; + + void print_categoria(const TString& codtab); + void print_cespite(const TRectype& cespi, const TRectype& salini); + void print_movimenti(const TRectype& salini); + void print_saldo(const real& valore); + void print_total(TTotalizer& tot, const char* prompt = NULL); +}; + +bool TPR_app::has_rivalutation(const TRectype& rec) const +{ + if (rec.get_real(_tipo_sit == 1 ? SALCE_RIVGF : SALCE_RIVGC) > ZERO) + return TRUE; + if (rec.get_real(SALCE_RIV91) > ZERO) + return TRUE; + if (rec.get_real(SALCE_RIV90) > ZERO) + return TRUE; + if (rec.get_real(SALCE_RIV83) > ZERO) + return TRUE; + if (rec.get_real(SALCE_RIV75) > ZERO) + return TRUE; + return FALSE; +} + +void TPR_app::print_categoria(const TString& codtab) +{ + TPrint_section& header = _form->categoria(); + + header.find_field(F_CODTAB).set_prompt(_order == 1 ? "@bCategoria@r " : "@bImpianto@r "); + header.find_field(F_CODTAB).set(codtab); + TString80 descr; + if (_order == 1) + { + const TRectype& cat = ditta_cespiti().categoria(0, NULL, atoi(codtab)); + descr = cat.get("S0"); + } + else + descr = cache().get("CIM", codtab, "S0"); + header.find_field(F_D_CODTAB).set(descr); + _form->print_separator(); + _form->print_row(); + _form->print_section(header); + _form->print_separator(); + _tot_grp.destroy(); +} + +void TPR_app::print_cespite(const TRectype& cespi, const TRectype& salini) +{ + TPrint_section& ces = _form->cespite(); + ces.find_field(1).set(cespi.get(CESPI_IDCESPITE)); + ces.find_field(2).set(cespi.get(CESPI_DESC)); + ces.find_field(3).set(cespi.get(CESPI_DTCOMP)); + _form->print_section(ces); + + TTotalizer tot; + tot.add_rec(salini); + print_total(tot, "@bSaldi@r"); + _tot_grp += tot; +} + +void TPR_app::print_movimenti(const TRectype& salini) +{ + const TString16 idcespite = salini.get(SALCE_IDCESPITE); + const int codes = salini.get_int(SALCE_CODES); + + TEsercizi_contabili esc; + const TDate inies = esc[codes].inizio(); + const TDate fines = esc[codes].fine(); + + TRelation rel(LF_MOVCE); + TRectype& movsem = rel.curr(); + movsem.put(MOVCE_IDCESPITE, idcespite); + + TString filtro; + filtro << "(ANSI(DTMOV)>=\"" << inies.string(ANSI) << "\")"; + filtro << "&&(ANSI(DTMOV)<=\"" << fines.string(ANSI) << "\")"; + + TCursor cur(&rel, filtro, 2, &movsem, &movsem); + const long items = cur.items(); + + TTotalizer totces; + totces.add_rec(salini); + + if (items > 0) + { + cur.freeze(); + TTotalizer tot; + for (cur = 0L; cur.pos() < items; ++cur) + { + const TString4 codmov = movsem.get(MOVCE_CODMOV); + const char tmv = cache().get("%TMC", codmov, "S6")[0]; + if (tmv == 'R') + { + const char segno = movsem.get_char(MOVCE_SEGNO); + tot.add_rec(movsem, segno); + } + } + print_total(tot, "@bRivalutazioni nell'esercizio@r"); + totces += tot; + _tot_grp += tot; + } + + real valore = salini.get(SALCE_CSTO); + valore += totces.get_num(SALCE_RIV75); + valore += totces.get_num(SALCE_RIV83); + valore += totces.get_num(SALCE_RIV90); + valore += totces.get_num(SALCE_RIV91); + valore += totces.get_num(_tipo_sit == 1 ? SALCE_RIVGF : SALCE_RIVGC); + print_saldo(valore); +} + +void TPR_app::print_saldo(const real& valore) +{ + TPrint_section& sal = _form->saldo(); + sal.find_field(1).set(valore.string()); + _form->print_section(sal); +} + +void TPR_app::print_total(TTotalizer& tot, const char* prompt) +{ + if (prompt == NULL) + { + _form->print_separator(); + prompt = _order == 1 ? "@bTotale categoria@r " : "@bTotale impianto@r "; + } + + TPrint_section& body = _form->totale(); + body.find_field(1).set_prompt(prompt); + + TForm_item& field = body.find_field(2); + const real costo = tot.get(SALCE_CSTO); + if (!costo.is_zero()) + { + field.show(); + field.set(costo.string()); + } + else + field.hide(); + + body.find_field(3).set(tot.get(_tipo_sit == 1 ? SALCE_RIVGF : SALCE_RIVGC)); + body.find_field(4).set(tot.get(SALCE_RIV75)); + body.find_field(5).set(tot.get(SALCE_RIV83)); + body.find_field(6).set(tot.get(SALCE_RIV90)); + body.find_field(7).set(tot.get(SALCE_RIV91)); + _form->print_section(body); +} + +void TPR_app::main_loop() +{ + TPR_mask m; + ditta_cespiti().init_mask(m); + while (m.run() != K_QUIT) + { + const int ese = m.get_int(F_ESERCIZIO); + const int gruppo = m.get_int(F_GRUPPO); + const TString4 specie = m.get(F_SPECIE); + ditta_cespiti().set_attivita(ese, gruppo, specie); + + TPR_form form; + _form = &form; + + TRelation rel(LF_CESPI); + TString expr; + expr << "IDCESPITE==IDCESPITE|CODES==" << m.get(F_ESERCIZIO) << "|TPSALDO==1"; + rel.add(LF_SALCE, expr, 1, LF_CESPI, 1); + expr.rtrim(1); expr << '2'; + rel.add(LF_SALCE, expr, 1, LF_CESPI, 2); + + const TRectype& cespi = rel.curr(); + const TRectype& salini = rel.curr(-1); + const TRectype& salpro = rel.curr(-2); + + _tipo_sit = m.get_int(F_SITUAZIONE); + _order = m.get_int(F_ORDINAMENTO); + + TString filter; + if (_order == 1) + { + const int fc = m.get_int(F_FROM_CAT); + const int tc = m.get_int(F_TO_CAT); + if (fc != 0) + { + if (filter.not_empty()) filter << "&&"; + filter << '(' << CESPI_CODCAT << ">=" << fc << ')'; + } + if (tc != 0) + { + if (filter.not_empty()) filter << "&&"; + filter << '(' << CESPI_CODCAT << "<=" << tc << ')' ; + } + } + else + { + const TString& fi = m.get(F_FROM_IMP); + const TString& ti = m.get(F_TO_IMP); + if (!fi.blank()) + { + if (filter.not_empty()) filter << "&&"; + filter << '(' << CESPI_CODIMP << ">=" << fi << ')'; + } + if (!fi.blank()) + { + if (filter.not_empty()) filter << "&&"; + filter << '(' << CESPI_CODIMP << "<=" << ti << ')'; + } + } + + const char* orderby = _order == 1 ? "CODCAT|IDCESPITE" : "CODIMP|IDCESPITE"; + TSorted_cursor cur(&rel, orderby, filter); + + const long items = cur.items(); + cur.freeze(); + + printer().open(); + form.set_testata(m); + + TString16 last_group = "@"; // Simbolo speciale per indicare nessuna stampa! + _tot_gen.destroy(); + + for (cur = 0L; cur.pos() < items; ++cur) + { + // Controllo qui la validitą per non incasinare il valutatore con stringhe e numeri + if (cespi.get_int(CESPI_CODCGRA) != gruppo || cespi.get(CESPI_CODSPA) != specie) + continue; + if (has_rivalutation(salpro)) + { + const TString16 curr_group = cespi.get(_order == 1 ? CESPI_CODCAT : CESPI_CODIMP); + if (curr_group != last_group) + { + if (last_group != "@") + { + print_total(_tot_grp); + _tot_gen += _tot_grp; + } + last_group = curr_group; + print_categoria(curr_group); + } + form.print_row(); + print_cespite(cespi, salini); + print_movimenti(salini); + } + } + if (last_group != "@") + { + print_total(_tot_grp); + _tot_gen += _tot_grp; + _form->print_separator(); + print_total(_tot_gen, "@bTOTALE GENERALE@r"); + printer().formfeed(); + } + + printer().close(); + xvt_statbar_set(""); + } +} + +int ce3400(int argc, char* argv[]) +{ + TPR_app app; + app.run(argc, argv, "Prospetto rivalutazioni"); + return 0; +} diff --git a/ce/ce3400.h b/ce/ce3400.h new file mode 100755 index 000000000..e2dfc8071 --- /dev/null +++ b/ce/ce3400.h @@ -0,0 +1,21 @@ +#ifndef __CE3400_H +#define __CE3400_H + +#ifndef __FORM_H +#include +#endif + +class TCespi_list_form : public TForm +{ +public: + void print_section(TPrint_section& sec); + void print_row(char spc = ' '); + void print_separator(); + + void set_testata(const TMask& m); + + TCespi_list_form(const char* name); + virtual ~TCespi_list_form(); +}; + +#endif diff --git a/ce/ce3400a.frm b/ce/ce3400a.frm new file mode 100755 index 000000000..2f4951f7d --- /dev/null +++ b/ce/ce3400a.frm @@ -0,0 +1,239 @@ +#include "ce3400a.h" + +// Linee di sfondo + +SECTION GRAPHICS ODD + + LINEA -1 132 1 + BEGIN + PROMPT 1 6 "B" + END + + LINEA -1 132 1 + BEGIN + PROMPT 1 -3 "B" + END + +END + +// Testata + +SECTION HEADER ODD 7 + STRINGA -1 + BEGIN + KEY "Titolo" + PROMPT 1 1 "@bPROSPETTO RIVALUTAZIONI" + END + + LISTA F_SITUAZIONE + BEGIN + KEY "Situazione" + PROMPT 80 1 "" + ITEM "1|Situazione Fiscale" + ITEM "2|Situazione Civilistica" + ITEM "3|Situazione Gestionale" + END + + STRINGA F_CODDITTA + BEGIN + KEY "Codice ditta" + PROMPT 1 2 "@bDitta@r " + PICTURE "#####" + END + + STRINGA F_RAGSOC + BEGIN + KEY "Ragione sociale" + PROMPT 20 2 "" + END + + STRINGA F_ESERCIZIO + BEGIN + KEY "Esercizio" + PROMPT 1 3 "@bEsercizio@r " + END + + STRINGA F_DATAINIZIO + BEGIN + KEY "Inizio Esercizio" + PROMPT 20 3 "" + END + + STRINGA F_DATAFINE + BEGIN + KEY "Fine Esercizio" + PROMPT 33 3 "" + END + + STRINGA F_GRUPPO + BEGIN + KEY "Gruppo" + PROMPT 1 4 "@bGruppo@r " + PICTURE "#####" + END + + STRINGA F_D_GRUPPO + BEGIN + KEY "Descrizione Gruppo" + PROMPT 20 4 "" + END + + STRINGA F_SPECIE + BEGIN + KEY "Specie" + PROMPT 1 5 "@bSpecie@r " + END + + STRINGA F_D_SPECIE + BEGIN + KEY "Descrizione Specie" + PROMPT 20 5 "" + END + + STRINGA 2 + BEGIN + PROMPT 22 7 "@bCosto Storico@r" + END + + STRINGA 3 + BEGIN + PROMPT 37 7 "@bRival. generica@r" + END + + STRINGA 4 + BEGIN + PROMPT 56 7 "@bRival. 576/75@r" + END + + STRINGA 5 + BEGIN + PROMPT 74 7 "@bRival. 72/83@r" + END + + STRINGA 6 + BEGIN + PROMPT 90 7 "@bRival. 413/90@r" + END + + STRINGA 7 + BEGIN + PROMPT 107 7 "@bRival. 413/91@r" + END +END + +SECTION HEADER EVEN 1 + STRINGA F_CODTAB + BEGIN + KEY "categoria o impianto" + PROMPT 1 1 "@bCategoria@r " + END + + STRINGA F_D_CODTAB + BEGIN + KEY "Descrizione" + PROMPT 25 1 "@bDescrizione@r " + END +END + +SECTION BODY FIRST 1 + +STRING 1 +BEGIN + PROMPT 1 1 "@bCespite@r " +END + +STRING 2 +BEGIN + PROMPT 25 1 "@bDescrizione@r " +END + +STRING 3 +BEGIN + PROMPT 100 1 "@bData acquisizione@r " +END + +END + +SECTION BODY ODD 1 + +STRINGA 1 +BEGIN + PROMPT 1 1 "@bTotale@r" +END + +VALUTA 2 15 +BEGIN + KEY "Costo storico" + PROMPT 20 1 "" + PICTURE "###.###.###.##@" +END + +VALUTA 3 15 +BEGIN + KEY "Rivalutazione generica" + PROMPT 37 1 "" + PICTURE "###.###.###.##@" +END + +VALUTA 4 15 +BEGIN + KEY "Rivalutazione 75" + PROMPT 54 1 "" + PICTURE "###.###.###.##@" +END + +VALUTA 5 15 +BEGIN + KEY "Rivalutazione 83" + PROMPT 71 1 "" + PICTURE "###.###.###.##@" +END + +VALUTA 6 15 +BEGIN + KEY "Rivalutazione 90" + PROMPT 88 1 "" + PICTURE "###.###.###.##@" +END + +VALUTA 7 15 +BEGIN + KEY "Rivalutazione 91" + PROMPT 105 1 "" + PICTURE "###.###.###.##@" +END + +END + +SECTION BODY EVEN 1 + +STRINGA -1 +BEGIN + PROMPT 1 1 "@bValore a bilancio@r" +END + +VALUTA 1 15 +BEGIN + KEY "Totale a bilancio" + PROMPT 20 1 "" + PICTURE "###.###.###.##@" +END + +END + +SECTION FOOTER ODD 3 + +DATA -1 +BEGIN + PROMPT 1 2 "@bData@r " + MESSAGE _TODAY +END + +NUMERO -1 +BEGIN + PROMPT 120 2 "@bPagina@r " + MESSAGE _PAGENO +END + +END + diff --git a/ce/ce3400a.h b/ce/ce3400a.h new file mode 100755 index 000000000..f8e2301e0 --- /dev/null +++ b/ce/ce3400a.h @@ -0,0 +1,25 @@ +#define F_CODDITTA 101 +#define F_RAGSOC 102 +#define F_ESERCIZIO 103 +#define F_DATAINIZIO 104 +#define F_DATAFINE 105 +#define F_GRUPPO 106 +#define F_SPECIE 107 +#define F_D_GRUPPO 108 +#define F_D_SPECIE 109 +#define F_CODTAB 110 +#define F_D_CODTAB 111 + +#define F_FROM_CAT 112 +#define F_D_FROM_CAT 113 +#define F_TO_CAT 114 +#define F_D_TO_CAT 115 + +#define F_FROM_IMP 116 +#define F_D_FROM_IMP 117 +#define F_TO_IMP 118 +#define F_D_TO_IMP 119 + +#define F_SITUAZIONE 120 +#define F_ORDINAMENTO 121 + \ No newline at end of file diff --git a/ce/ce3400a.uml b/ce/ce3400a.uml new file mode 100755 index 000000000..e95777c65 --- /dev/null +++ b/ce/ce3400a.uml @@ -0,0 +1,221 @@ +#include "ce3400a.h" + +TOOLBAR "" 0 -3 0 3 + +BUTTON DLG_PRINT 10 2 +BEGIN + PROMPT -12 -11 "~Stampa" +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -11 "" +END + +ENDPAGE + +PAGE "Prospetto rivalutazioni" -1 -1 78 6 + +GROUPBOX DLG_NULL 78 6 +BEGIN + PROMPT 1 0 "" + FLAGS "R" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 2 1 "Ditta " + FLAGS "DF" + USE LF_NDITTE + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGSOC RAGSOC + CHECKTYPE REQUIRED +END + +STRING F_RAGSOC 55 +BEGIN + PROMPT 20 1 "" + FLAGS "D" +END + +NUMBER F_ESERCIZIO 4 +BEGIN + PROMPT 2 2 "Esercizio " + FLAGS "Z" + USE CCE + JOIN ESC ALIAS 105 INTO CODTAB==CODTAB + INPUT CODTAB F_ESERCIZIO + DISPLAY "Codice esercizio" CODTAB + DISPLAY "Data inizio" 105@->D0 + DISPLAY "Data fine@10" 105@->D1 + OUTPUT F_ESERCIZIO CODTAB + OUTPUT F_DATAINIZIO 105@->D0 + OUTPUT F_DATAFINE 105@->D1 + CHECKTYPE REQUIRED +END + +DATE F_DATAINIZIO +BEGIN + PROMPT 20 2 "Data inizio " + FLAGS "D" +END + +DATE F_DATAFINE +BEGIN + PROMPT 45 2 "Data fine " + FLAGS "D" +END + +NUMBER F_GRUPPO 2 +BEGIN + PROMPT 2 3 "Gruppo " + FLAGS "Z" + USE CCB KEY 1 + JOIN %CGR ALIAS 106 INTO CODTAB==CODTAB[5,6] + INPUT CODTAB[1,4] F_ESERCIZIO SELECT + INPUT CODTAB[5,6] F_GRUPPO + INPUT CODTAB[7,10] F_SPECIE + DISPLAY "Codice" CODTAB[5,6] + DISPLAY "Descrizione@60" 106@->S0 + OUTPUT F_GRUPPO CODTAB[5,6] + OUTPUT F_D_GRUPPO 106@->S0 + CHECKTYPE NORMAL +END + +STRING F_SPECIE 4 +BEGIN + PROMPT 2 4 "Specie " + FLAGS "_" + USE CCB KEY 1 + JOIN %CAT ALIAS 107 INTO CODTAB[1,2]==CODTAB[5,6] CODTAB[3,6]==CODTAB[7,10] + INPUT CODTAB[1,4] F_ESERCIZIO SELECT + INPUT CODTAB[5,6] F_GRUPPO SELECT + INPUT CODTAB[7,10] F_SPECIE + DISPLAY "Gruppo" CODTAB[5,6] + DISPLAY "Specie" CODTAB[7,10] + DISPLAY "Descrizione@60" 107@->S0 + OUTPUT F_SPECIE CODTAB[7,10] + OUTPUT F_D_SPECIE 107@->S0 + CHECKTYPE NORMAL +END + +STRING F_D_GRUPPO 60 55 +BEGIN + PROMPT 20 3 "" + FLAGS "D" +END + +STRING F_D_SPECIE 60 55 +BEGIN + PROMPT 20 4 "" + FLAGS "D" +END + +RADIOBUTTON F_SITUAZIONE 78 +BEGIN + PROMPT 1 7 "@bSituazione" + ITEM "1|Fiscale" + ITEM "2|Civilistica" + ITEM "3|Gestionale" +END + +RADIOBUTTON F_ORDINAMENTO 78 +BEGIN + PROMPT 1 12 "@bOrdinamento" + ITEM "1|Per categoria" + MESSAGE HIDE,2@|SHOW,1@ + ITEM "2|Per Impianto" + MESSAGE HIDE,1@|SHOW,2@ +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 16 "@bSelezione categoria" + GROUP 1 +END + +NUMBER F_FROM_CAT 2 +BEGIN + PROMPT 2 17 "Dalla " + FLAGS "BZ" + GROUP 1 +END + +STRING F_D_FROM_CAT 60 50 +BEGIN + PROMPT 25 17 "" + FLAGS "B" + GROUP 1 +END + +NUMBER F_TO_CAT 2 +BEGIN + PROMPT 2 18 "Alla " + FLAGS "BZ" + GROUP 1 +END + +STRING F_D_TO_CAT 60 50 +BEGIN + PROMPT 25 18 "" + FLAGS "B" + GROUP 1 +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 16 "@bSelezione impianto" + GROUP 2 +END + +NUMBER F_FROM_IMP 10 +BEGIN + PROMPT 2 17 "Dal " + FLAGS "Z" + USE CIM + INPUT CODTAB F_FROM_IMP + DISPLAY "Codice Impianto" CODTAB + DISPLAY "Descrizione@60" S0 + OUTPUT F_FROM_IMP CODTAB + OUTPUT F_D_FROM_IMP S0 + CHECKTYPE NORMAL + GROUP 2 +END + +STRING F_D_FROM_IMP 50 +BEGIN + PROMPT 25 17 "" + USE CIM KEY 2 + INPUT S0 F_D_FROM_IMP + DISPLAY "Descrizione@60" S0 + DISPLAY "Codice Impianto" CODTAB + COPY OUTPUT F_FROM_IMP + CHECKTYPE NORMAL + GROUP 2 +END + +NUMBER F_TO_IMP 10 +BEGIN + PROMPT 2 18 "Al " + FLAGS "Z" + COPY USE F_FROM_IMP + INPUT CODTAB F_TO_IMP + COPY DISPLAY F_FROM_IMP + OUTPUT F_TO_IMP CODTAB + OUTPUT F_D_TO_IMP S0 + CHECKTYPE NORMAL + GROUP 2 +END + +STRING F_D_TO_IMP 50 +BEGIN + PROMPT 25 18 "" + COPY USE F_D_FROM_IMP + INPUT S0 F_D_TO_IMP + COPY DISPLAY F_D_FROM_IMP + COPY OUTPUT F_TO_IMP + CHECKTYPE NORMAL + GROUP 2 +END + +ENDPAGE diff --git a/ce/ce3500.cpp b/ce/ce3500.cpp new file mode 100755 index 000000000..85f00036e --- /dev/null +++ b/ce/ce3500.cpp @@ -0,0 +1,288 @@ +#include +#include +#include +#include + +#include "celib.h" +#include "ce3400.h" +#include "ce3500a.h" + +#include "../cg/cglib01.h" + +#include "ammce.h" +#include "cespi.h" +#include "salce.h" + +/////////////////////////////////////////////////////////// +// Main Form +/////////////////////////////////////////////////////////// + +class TLC_form : public TCespi_list_form +{ + TCursor* _cur; + int _tiposit, _order; + TString _str; // Jolly string + +protected: + virtual TRelation* relation() const { return _cur->relation(); } + virtual TCursor* cursor() const { return _cur; } + virtual bool validate(TForm_item& fld, TToken_string& val); + +public: + void set_cursor(TCursor& cur) { _cur = &cur; } + void set_testata(const TMask& m, const TString& codtab); + + TPrint_section& cespite() { return section('B', odd_page); } + TPrint_section& totcat() { return section('B', even_page); } + TPrint_section& totgen() { return section('B', last_page); } + + const TString& decode_group(const char* cod, int sit=0); + + TLC_form(bool extended) : TCespi_list_form(extended ? "ce3500b" : "ce3500a") { } +}; + +const TString& TLC_form::decode_group(const char* codtab, int mode) +{ + const int order = mode > 0 ? mode : _order; + _str = "@b"; + _str << (order==1 ? "Categoria" : "Impianto") << "@r " << codtab << ' '; + if (order == 1) + { + const TRectype& cat = ditta_cespiti().categoria(0, NULL, atoi(codtab)); + _str << cat.get("S0"); + } + else + _str << cache().get("CIM", codtab, "S0"); + return _str; +} + +void TLC_form::set_testata(const TMask& m, const TString& codtab) +{ + TCespi_list_form::set_testata(m); + + _tiposit = m.get_int(F_SITUAZIONE); + _order = m.get_int(F_ORDINAMENTO); + + TPrint_section& header = section('H', odd_page); + header.find_field(F_CODTAB).set(decode_group(codtab)); +} + +bool TLC_form::validate(TForm_item& fld, TToken_string& val) +{ + const TRectype& cespi = relation()->curr(); + const char* cmd = val.get(0); + if (stricmp(cmd, "_INVCODTAB") == 0) + { + // Se la stampa č ordinata per categoria allora stampo l'impianto e viceversa + const TString16 codtab = cespi.get(_order == 1 ? CESPI_CODIMP : CESPI_CODCAT); + if (codtab.not_empty()) + fld.set(decode_group(codtab, 3-_order)); + else + fld.set(""); + return TRUE; + } + if (stricmp(cmd, "_USOPROM") == 0) + { + bool yes = cespi.get_bool(CESPI_VEIDIP); + if (!yes) + yes = cespi.get_int(CESPI_USOPROM) > 1; + fld.set(yes ? "Si" : "No"); + return TRUE; + } + if (stricmp(cmd, "_TPSPEMAN") == 0) + { + switch(cespi.get_int(CESPI_TPSPEMAN)) + { + case 2: fld.set("Incluso 5%"); break; + case 3: fld.set("Incluso 24%"); break; + case 4: fld.set("Art.14 L.449/97"); break; + default: fld.set("Escluso"); break; + } + return TRUE; + } + if (stricmp(cmd, "_RIVGEN") == 0) + { + const TRectype& salce = relation()->curr(LF_SALCE); + fld.set(salce.get(_tiposit == 1 ? SALCE_RIVGF : SALCE_RIVGC)); + return TRUE; + } + return TCespi_list_form::validate(fld, val); +} + +/////////////////////////////////////////////////////////// +// Main Mask +/////////////////////////////////////////////////////////// + +class TLC_mask : public TAutomask +{ +protected: + virtual bool on_field_event(TOperable_field& f, TField_event e, long jolly); + +public: + TLC_mask() : TAutomask("ce3500a") { } +}; + +bool TLC_mask::on_field_event(TOperable_field& f, TField_event e, long jolly) +{ + bool ok = TRUE; + switch (f.dlg()) + { + case F_FROM_CAT: + case F_D_FROM_CAT: + case F_TO_CAT: + case F_D_TO_CAT: + { + TDitta_cespiti& dc = ditta_cespiti(); + ok = dc.on_category_event(f, e, jolly); + } + break; + default: break; + } + return ok; +} + +/////////////////////////////////////////////////////////// +// Main Application +/////////////////////////////////////////////////////////// + +class TLC_app : public TSkeleton_application +{ + int _tipo_sit, _order; + TLC_form* _form; + +protected: + virtual void main_loop(); + +public: + void print_cespite(); + void print_total(int level, const char* prompt); +}; + +void TLC_app::print_cespite() +{ + TPrint_section& ces = _form->cespite(); + _form->print_section(ces); +} + +void TLC_app::print_total(int level, const char* prompt) +{ + TPrint_section& body = level == 0 ? _form->totcat() : _form->totgen(); + if (level == 0) + body.find_field(F_CODTAB).set(_form->decode_group(prompt)); + else + body.find_field(F_CODTAB).set(prompt); + _form->print_separator(); + _form->print_section(body); + for (unsigned int i = 0; i < body.fields(); i++) + body.field(i).set(""); +} + +void TLC_app::main_loop() +{ + TLC_mask m; + ditta_cespiti().init_mask(m); + while (m.run() != K_QUIT) + { + const int ese = m.get_int(F_ESERCIZIO); + const int gruppo = m.get_int(F_GRUPPO); + const TString4 specie = m.get(F_SPECIE); + ditta_cespiti().set_attivita(ese, gruppo, specie); + const bool extra = m.get_bool(F_SALDINI); + TLC_form form(extra); + _form = &form; + _tipo_sit = m.get_int(F_SITUAZIONE); + _order = m.get_int(F_ORDINAMENTO); + + TRelation rel(LF_CESPI); + TString expr; + expr << "IDCESPITE==IDCESPITE|CODES==" << m.get(F_ESERCIZIO) << "|TPSALDO==1"; + rel.add(LF_SALCE, expr); + + expr << "|TPAMM=" << _tipo_sit; + rel.add(LF_AMMCE, expr); + + const TRectype& cespi = rel.curr(); + + TString filter; + if (_order == 1) + { + const int fc = m.get_int(F_FROM_CAT); + const int tc = m.get_int(F_TO_CAT); + if (fc != 0) + { + if (filter.not_empty()) filter << "&&"; + filter << '(' << CESPI_CODCAT << ">=" << fc << ')'; + } + if (tc != 0) + { + if (filter.not_empty()) filter << "&&"; + filter << '(' << CESPI_CODCAT << "<=" << tc << ')' ; + } + } + else + { + const TString& fi = m.get(F_FROM_IMP); + const TString& ti = m.get(F_TO_IMP); + if (!fi.blank()) + { + if (filter.not_empty()) filter << "&&"; + filter << '(' << CESPI_CODIMP << ">=" << fi << ')'; + } + if (!fi.blank()) + { + if (filter.not_empty()) filter << "&&"; + filter << '(' << CESPI_CODIMP << "<=" << ti << ')'; + } + } + + const char* orderby = _order == 1 ? "CODCAT|DTCOMP|IDCESPITE" : "CODIMP|DTCOMP|IDCESPITE"; + TSorted_cursor cur(&rel, orderby, filter); + form.set_cursor(cur); + + const long items = cur.items(); + cur.freeze(); + + printer().open(); + + TString16 last_group = "@"; // Simbolo speciale per indicare nessuna stampa! + + for (cur = 0L; cur.pos() < items; ++cur) + { + // Controllo qui la validitą per non incasinare il valutatore con stringhe e numeri + if (cespi.get_int(CESPI_CODCGRA) != gruppo || cespi.get(CESPI_CODSPA) != specie) + continue; + + const TString16 curr_group = cespi.get(_order == 1 ? CESPI_CODCAT : CESPI_CODIMP); + if (curr_group != last_group) + { + if (last_group != "@") + { + if (extra) + print_total(0, last_group); + printer().formfeed(); + } + last_group = curr_group; + form.set_testata(m, last_group); + } + print_cespite(); + } + if (last_group != "@") + { + if (extra) + { + print_total(0, last_group); + print_total(1, "GENERALE"); + } + } + + printer().close(); + xvt_statbar_set(""); + } +} + +int ce3500(int argc, char* argv[]) +{ + TLC_app app; + app.run(argc, argv, "Lista Cespiti"); + return 0; +} diff --git a/ce/ce3500a.frm b/ce/ce3500a.frm new file mode 100755 index 000000000..f57b5cddb --- /dev/null +++ b/ce/ce3500a.frm @@ -0,0 +1,261 @@ +#include "ce3500a.h" + +SECTION GRAPHICS ODD + LINEA -1 132 1 + BEGIN + PROMPT 1 7 "B" + END + + LINEA -1 132 1 + BEGIN + PROMPT 1 10 "" + END + + LINEA -1 132 1 + BEGIN + PROMPT 1 -3 "B" + END + +END + +SECTION HEADER ODD 10 + + STRINGA -1 + BEGIN + KEY "Titolo" + PROMPT 1 1 "@bLISTA CESPITI" + END + + LISTA F_SITUAZIONE + BEGIN + KEY "Situazione" + PROMPT 80 1 "" + ITEM "1|Situazione Fiscale" + ITEM "2|Situazione Civilistica" + ITEM "3|Situazione Gestionale" + END + + STRINGA F_CODDITTA + BEGIN + KEY "Codice ditta" + PROMPT 1 2 "@bDitta@r " + PICTURE "#####" + END + + STRINGA F_RAGSOC + BEGIN + KEY "Ragione sociale" + PROMPT 25 2 "" + END + + STRINGA F_ESERCIZIO + BEGIN + KEY "Esercizio" + PROMPT 1 3 "@bEsercizio@r " + END + + STRINGA F_DATAINIZIO + BEGIN + KEY "Inizio Esercizio" + PROMPT 25 3 "" + END + + STRINGA F_DATAFINE + BEGIN + KEY "Fine Esercizio" + PROMPT 41 3 "" + END + + STRINGA F_GRUPPO + BEGIN + KEY "Gruppo" + PROMPT 1 4 "@bGruppo@r " + PICTURE "#####" + END + + STRINGA F_D_GRUPPO + BEGIN + KEY "Descrizione Gruppo" + PROMPT 25 4 "" + END + + STRINGA F_SPECIE + BEGIN + KEY "Specie" + PROMPT 1 5 "@bSpecie@r " + END + + STRINGA F_D_SPECIE + BEGIN + KEY "Descrizione Specie" + PROMPT 25 5 "" + END + + STRINGA F_CODTAB + BEGIN + KEY "categoria o impianto" + PROMPT 1 6 "" + END + + STRINGA -1 + BEGIN + PROMPT 1 8 "@bCespite" + END + + STRINGA -1 + BEGIN + PROMPT 17 8 "Descrizione" + END + + STRINGA -1 + BEGIN + PROMPT 1 9 "@bData acq." + END + + STRINGA -1 + BEGIN + PROMPT 17 9 "Data util." + END + + STRINGA -1 + BEGIN + PROMPT 33 9 "Elementi" + END + + STRINGA -1 + BEGIN + PROMPT 49 9 "Prop. da funz." + END + + STRINGA -1 + BEGIN + PROMPT 65 9 "Rinvio a ricavi" + END + + STRINGA -1 + BEGIN + PROMPT 81 9 "Tipo" + END + + STRINGA -1 + BEGIN + PROMPT 97 9 "Uso prom." + END + + STRINGA -1 + BEGIN + PROMPT 113 9 "Leasing" + END + + STRINGA -1 + BEGIN + PROMPT 126 9 "Usato" + END + +END + +/////////////////////////////////////////////////////////// +// Valori cespite +/////////////////////////////////////////////////////////// + +SECTION BODY ODD 3 + +STRING -1 +BEGIN + PROMPT 1 1 "@b" + FIELD IDCESPITE +END + +STRING -1 +BEGIN + PROMPT 17 1 "" + FIELD DESC +END + +STRINGA -1 65 +BEGIN + PROMPT 65 1 "" + MESSAGE _INVCODTAB +END + +STRING -1 +BEGIN + PROMPT 1 2 "" + FIELD DTCOMP +END + +STRING -1 +BEGIN + PROMPT 17 2 "" + FIELD DTFUNZ +END + +NUMERO -1 +BEGIN + KEY "Numero elementi" + PROMPT 33 2 "" + FIELD LF_SALCE->NUMELE +END + +LIST -1 +BEGIN + PROMPT 49 2 "" + ITEM "|No" + ITEM "X|Si" + FIELD AMMPROP +END + +LIST -1 +BEGIN + PROMPT 65 2 "" + ITEM "|No" + ITEM "X|Si" + FIELD ESCLPR +END + +STRINGA -1 +BEGIN + PROMPT 81 2 "" + MESSAGE _TPSPEMAN +END + +STRINGA -1 +BEGIN + PROMPT 97 2 "" + MESSAGE _USOPROM +END + +LIST -1 +BEGIN + PROMPT 113 2 "" + ITEM "|No" + ITEM "X|Si" + FIELD LEASING +END + +LIST -1 +BEGIN + PROMPT 129 2 "" + ITEM "|No" + ITEM "X|Si" + FIELD USATO +END + +END + +SECTION FOOTER ODD 3 + +DATA -1 +BEGIN + PROMPT 1 2 "@bData@r " + MESSAGE _TODAY +END + +NUMERO -1 +BEGIN + PROMPT 120 2 "@bPagina@r " + MESSAGE _PAGENO +END + +END + diff --git a/ce/ce3500a.h b/ce/ce3500a.h new file mode 100755 index 000000000..755ac92e3 --- /dev/null +++ b/ce/ce3500a.h @@ -0,0 +1,26 @@ +#define F_CODDITTA 101 +#define F_RAGSOC 102 +#define F_ESERCIZIO 103 +#define F_DATAINIZIO 104 +#define F_DATAFINE 105 +#define F_GRUPPO 106 +#define F_SPECIE 107 +#define F_D_GRUPPO 108 +#define F_D_SPECIE 109 +#define F_CODTAB 110 + +#define F_FROM_CAT 112 +#define F_D_FROM_CAT 113 +#define F_TO_CAT 114 +#define F_D_TO_CAT 115 + +#define F_FROM_IMP 116 +#define F_D_FROM_IMP 117 +#define F_TO_IMP 118 +#define F_D_TO_IMP 119 + +#define F_SITUAZIONE 120 +#define F_ORDINAMENTO 121 +#define F_SALDINI 122 + + \ No newline at end of file diff --git a/ce/ce3500a.uml b/ce/ce3500a.uml new file mode 100755 index 000000000..5e5dd2418 --- /dev/null +++ b/ce/ce3500a.uml @@ -0,0 +1,226 @@ +#include "ce3500a.h" + +TOOLBAR "" 0 -3 0 3 + +BUTTON DLG_PRINT 10 2 +BEGIN + PROMPT -12 -11 "~Stampa" +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -11 "" +END + +ENDPAGE + +PAGE "Lista Cespiti" -1 -1 78 6 + +GROUPBOX DLG_NULL 78 6 +BEGIN + PROMPT 1 0 "" + FLAGS "R" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 2 1 "Ditta " + FLAGS "DF" + USE LF_NDITTE + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGSOC RAGSOC + CHECKTYPE REQUIRED +END + +STRING F_RAGSOC 55 +BEGIN + PROMPT 20 1 "" + FLAGS "D" +END + +NUMBER F_ESERCIZIO 4 +BEGIN + PROMPT 2 2 "Esercizio " + FLAGS "Z" + USE CCE + JOIN ESC ALIAS 105 INTO CODTAB==CODTAB + INPUT CODTAB F_ESERCIZIO + DISPLAY "Codice esercizio" CODTAB + DISPLAY "Data inizio" 105@->D0 + DISPLAY "Data fine@10" 105@->D1 + OUTPUT F_ESERCIZIO CODTAB + OUTPUT F_DATAINIZIO 105@->D0 + OUTPUT F_DATAFINE 105@->D1 + CHECKTYPE REQUIRED +END + +DATE F_DATAINIZIO +BEGIN + PROMPT 20 2 "Data inizio " + FLAGS "D" +END + +DATE F_DATAFINE +BEGIN + PROMPT 45 2 "Data fine " + FLAGS "D" +END + +NUMBER F_GRUPPO 2 +BEGIN + PROMPT 2 3 "Gruppo " + FLAGS "Z" + USE CCB KEY 1 + JOIN %CGR ALIAS 106 INTO CODTAB==CODTAB[5,6] + INPUT CODTAB[1,4] F_ESERCIZIO SELECT + INPUT CODTAB[5,6] F_GRUPPO + INPUT CODTAB[7,10] F_SPECIE + DISPLAY "Codice" CODTAB[5,6] + DISPLAY "Descrizione@60" 106@->S0 + OUTPUT F_GRUPPO CODTAB[5,6] + OUTPUT F_D_GRUPPO 106@->S0 + CHECKTYPE NORMAL +END + +STRING F_SPECIE 4 +BEGIN + PROMPT 2 4 "Specie " + FLAGS "_" + USE CCB KEY 1 + JOIN %CAT ALIAS 107 INTO CODTAB[1,2]==CODTAB[5,6] CODTAB[3,6]==CODTAB[7,10] + INPUT CODTAB[1,4] F_ESERCIZIO SELECT + INPUT CODTAB[5,6] F_GRUPPO SELECT + INPUT CODTAB[7,10] F_SPECIE + DISPLAY "Gruppo" CODTAB[5,6] + DISPLAY "Specie" CODTAB[7,10] + DISPLAY "Descrizione@60" 107@->S0 + OUTPUT F_SPECIE CODTAB[7,10] + OUTPUT F_D_SPECIE 107@->S0 + CHECKTYPE NORMAL +END + +STRING F_D_GRUPPO 60 55 +BEGIN + PROMPT 20 3 "" + FLAGS "D" +END + +STRING F_D_SPECIE 60 55 +BEGIN + PROMPT 20 4 "" + FLAGS "D" +END + +RADIOBUTTON F_SITUAZIONE 78 +BEGIN + PROMPT 1 6 "@bSituazione" + ITEM "1|Fiscale" + ITEM "2|Civilistica" + ITEM "3|Gestionale" +END + +BOOLEAN F_SALDINI +BEGIN + PROMPT 2 11 "Mostra anche i valori dei saldi iniziali" +END + +RADIOBUTTON F_ORDINAMENTO 78 +BEGIN + PROMPT 1 12 "@bOrdinamento" + ITEM "1|Per categoria" + MESSAGE HIDE,2@|SHOW,1@ + ITEM "2|Per Impianto" + MESSAGE HIDE,1@|SHOW,2@ +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 16 "@bSelezione categoria" + GROUP 1 +END + +NUMBER F_FROM_CAT 2 +BEGIN + PROMPT 2 17 "Dalla " + FLAGS "BZ" + GROUP 1 +END + +STRING F_D_FROM_CAT 60 50 +BEGIN + PROMPT 25 17 "" + FLAGS "B" + GROUP 1 +END + +NUMBER F_TO_CAT 2 +BEGIN + PROMPT 2 18 "Alla " + FLAGS "BZ" + GROUP 1 +END + +STRING F_D_TO_CAT 60 50 +BEGIN + PROMPT 25 18 "" + FLAGS "B" + GROUP 1 +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 16 "@bSelezione impianto" + GROUP 2 +END + +NUMBER F_FROM_IMP 10 +BEGIN + PROMPT 2 17 "Dal " + FLAGS "Z" + USE CIM + INPUT CODTAB F_FROM_IMP + DISPLAY "Codice Impianto" CODTAB + DISPLAY "Descrizione@60" S0 + OUTPUT F_FROM_IMP CODTAB + OUTPUT F_D_FROM_IMP S0 + CHECKTYPE NORMAL + GROUP 2 +END + +STRING F_D_FROM_IMP 50 +BEGIN + PROMPT 25 17 "" + USE CIM KEY 2 + INPUT S0 F_D_FROM_IMP + DISPLAY "Descrizione@60" S0 + DISPLAY "Codice Impianto" CODTAB + COPY OUTPUT F_FROM_IMP + CHECKTYPE NORMAL + GROUP 2 +END + +NUMBER F_TO_IMP 10 +BEGIN + PROMPT 2 18 "Al " + FLAGS "Z" + COPY USE F_FROM_IMP + INPUT CODTAB F_TO_IMP + COPY DISPLAY F_FROM_IMP + OUTPUT F_TO_IMP CODTAB + OUTPUT F_D_TO_IMP S0 + CHECKTYPE NORMAL + GROUP 2 +END + +STRING F_D_TO_IMP 50 +BEGIN + PROMPT 25 18 "" + COPY USE F_D_FROM_IMP + INPUT S0 F_D_TO_IMP + COPY DISPLAY F_D_FROM_IMP + COPY OUTPUT F_TO_IMP + CHECKTYPE NORMAL + GROUP 2 +END + +ENDPAGE diff --git a/ce/ce3500b.frm b/ce/ce3500b.frm new file mode 100755 index 000000000..5a3579ef5 --- /dev/null +++ b/ce/ce3500b.frm @@ -0,0 +1,636 @@ +#include "ce3500a.h" + +SECTION GRAPHICS ODD + LINEA -1 132 1 + BEGIN + PROMPT 1 7 "B" + END + + LINEA -1 132 1 + BEGIN + PROMPT 1 12 "" + END + + LINEA -1 132 1 + BEGIN + PROMPT 1 -3 "B" + END +END + +/////////////////////////////////////////////////////////// +// Testata +/////////////////////////////////////////////////////////// + +SECTION HEADER ODD 12 + + STRINGA -1 + BEGIN + KEY "Titolo" + PROMPT 1 1 "@bLISTA CESPITI" + END + + LISTA F_SITUAZIONE + BEGIN + KEY "Situazione" + PROMPT 80 1 "" + ITEM "1|Situazione Fiscale" + ITEM "2|Situazione Civilistica" + ITEM "3|Situazione Gestionale" + END + + STRINGA F_CODDITTA + BEGIN + KEY "Codice ditta" + PROMPT 1 2 "@bDitta@r " + PICTURE "#####" + END + + STRINGA F_RAGSOC + BEGIN + KEY "Ragione sociale" + PROMPT 25 2 "" + END + + STRINGA F_ESERCIZIO + BEGIN + KEY "Esercizio" + PROMPT 1 3 "@bEsercizio@r " + END + + STRINGA F_DATAINIZIO + BEGIN + KEY "Inizio Esercizio" + PROMPT 25 3 "" + END + + STRINGA F_DATAFINE + BEGIN + KEY "Fine Esercizio" + PROMPT 38 3 "" + END + + STRINGA F_GRUPPO + BEGIN + KEY "Gruppo" + PROMPT 1 4 "@bGruppo@r " + PICTURE "#####" + END + + STRINGA F_D_GRUPPO + BEGIN + KEY "Descrizione Gruppo" + PROMPT 25 4 "" + END + + STRINGA F_SPECIE + BEGIN + KEY "Specie" + PROMPT 1 5 "@bSpecie@r " + END + + STRINGA F_D_SPECIE + BEGIN + KEY "Descrizione Specie" + PROMPT 25 5 "" + END + + STRINGA F_CODTAB + BEGIN + KEY "categoria o impianto" + PROMPT 1 6 "" + END + + STRINGA -1 + BEGIN + PROMPT 1 8 "@bCespite" + END + + STRINGA -1 + BEGIN + PROMPT 17 8 "Descrizione" + END + + STRINGA -1 + BEGIN + PROMPT 1 9 "@bData acq." + END + + STRINGA -1 + BEGIN + PROMPT 17 9 "Data util." + END + + STRINGA -1 + BEGIN + PROMPT 33 9 "Elementi" + END + + STRINGA -1 + BEGIN + PROMPT 49 9 "Prop. da funz." + END + + STRINGA -1 + BEGIN + PROMPT 65 9 "Rinvio a ricavi" + END + + STRINGA -1 + BEGIN + PROMPT 81 9 "Spese manut." + END + + STRINGA -1 + BEGIN + PROMPT 97 9 "Uso prom." + END + + STRINGA -1 + BEGIN + PROMPT 113 9 "Leasing" + END + + STRINGA -1 + BEGIN + PROMPT 126 9 "Usato" + END + + STRINGA -1 + BEGIN + PROMPT 1 10 "@bCosto storico" + END + + STRINGA -1 + BEGIN + PROMPT 17 10 "Parte non amm." + END + + STRINGA -1 + BEGIN + PROMPT 33 10 "Plusv. reinv." + END + + STRINGA -1 + BEGIN + PROMPT 49 10 "Rival. gen." + END + + STRINGA -1 + BEGIN + PROMPT 65 10 "Rival. 576/75" + END + + STRINGA -1 + BEGIN + PROMPT 81 10 "Rival. 72/83" + END + + STRINGA -1 + BEGIN + PROMPT 97 10 "Rival. 413/90" + END + + STRINGA -1 + BEGIN + PROMPT 113 10 "Rival. 413/91" + END + + STRINGA -1 + BEGIN + PROMPT 1 11 "@bFondo amm." + END + + STRINGA -1 + BEGIN + PROMPT 17 11 "Quota non amm." + END + + STRINGA -1 + BEGIN + PROMPT 49 11 "PRIVATO:" + END + + STRINGA -1 + BEGIN + PROMPT 65 11 "@bFondo amm." + END + + STRINGA -1 + BEGIN + PROMPT 81 11 "Quota non amm." + END +END + +/////////////////////////////////////////////////////////// +// Valori cespite +/////////////////////////////////////////////////////////// + +SECTION BODY ODD 5 + +STRING -1 +BEGIN + PROMPT 1 1 "@b" + FIELD IDCESPITE +END + +STRING -1 +BEGIN + PROMPT 17 1 "" + FIELD DESC +END + +STRINGA -1 65 +BEGIN + PROMPT 65 1 "" + MESSAGE _INVCODTAB +END + +STRING -1 +BEGIN + PROMPT 1 2 "" + FIELD DTCOMP +END + +STRING -1 +BEGIN + PROMPT 17 2 "" + FIELD DTFUNZ +END + +NUMERO -1 +BEGIN + KEY "Numero elementi" + PROMPT 33 2 "" + FIELD LF_SALCE->NUMELE +END + +LIST -1 +BEGIN + PROMPT 49 2 "" + ITEM "|No" + ITEM "X|Si" + FIELD AMMPROP +END + +LIST -1 +BEGIN + PROMPT 65 2 "" + ITEM "|No" + ITEM "X|Si" + FIELD ESCLPR +END + +STRINGA -1 +BEGIN + PROMPT 81 2 "" + MESSAGE _TPSPEMAN +END + +STRINGA -1 +BEGIN + PROMPT 97 2 "" + MESSAGE _USOPROM +END + +LIST -1 +BEGIN + PROMPT 113 2 "" + ITEM "|No" + ITEM "X|Si" + FIELD LEASING +END + +LIST -1 +BEGIN + PROMPT 129 2 "" + ITEM "|No" + ITEM "X|Si" + FIELD USATO +END + +VALUTA 11 15 +BEGIN + PROMPT 1 3 "" + FIELD LF_SALCE->CSTO + PICTURE "###.###.###.@@@" + MESSAGE ADD,BE->11 +END + +VALUTA 12 15 +BEGIN + PROMPT 17 3 "" + FIELD LF_SALCE->VNONAMM + PICTURE "###.###.###.@@@" + MESSAGE ADD,BE->12 +END + +VALUTA 13 15 +BEGIN + PROMPT 33 3 "" + FIELD LF_SALCE->PLUSREIN + PICTURE "###.###.###.@@@" + MESSAGE ADD,BE->13 +END + +VALUTA 14 15 +BEGIN + PROMPT 49 3 "" + MESSAGE _RIVGEN + PICTURE "###.###.###.@@@" + MESSAGE ADD,BE->14 +END + +VALUTA 15 15 +BEGIN + PROMPT 65 3 "" + FIELD LF_SALCE->RIV75 + PICTURE "###.###.###.@@@" + MESSAGE ADD,BE->15 +END + +VALUTA 16 15 +BEGIN + PROMPT 81 3 "" + FIELD LF_SALCE->RIV83 + PICTURE "###.###.###.@@@" + MESSAGE ADD,BE->16 +END + +VALUTA 17 15 +BEGIN + PROMPT 97 3 "" + FIELD LF_SALCE->RIV90 + PICTURE "###.###.###.@@@" + MESSAGE ADD,BE->17 +END + +VALUTA 18 15 +BEGIN + PROMPT 113 3 "" + FIELD LF_SALCE->RIV91 + PICTURE "###.###.###.@@@" + MESSAGE ADD,BE->18 +END + +VALUTA 21 15 +BEGIN + KEY "Fondo ammortamento" + PROMPT 1 4 "" + MESSAGE _NUMEXPR,LF_AMMCE->QNOR+LF_AMMCE->QACC+LF_AMMCE->QANT + PICTURE "###.###.###.@@@" + MESSAGE ADD,BE->21 +END + +VALUTA 22 15 +BEGIN + KEY "Quote perse" + PROMPT 17 4 "" + FIELD LF_AMMCE->QPERSE + PICTURE "###.###.###.@@@" + MESSAGE ADD,BE->22 +END + +VALUTA 23 15 +BEGIN + KEY "Fondo ammortamento privato" + PROMPT 65 4 "" + FIELD LF_AMMCE->FPRIVATO + PICTURE "###.###.###.@@@" + MESSAGE ADD,BE->23 +END + +VALUTA 24 15 +BEGIN + KEY "Quote perse private" + PROMPT 81 4 "" + FIELD LF_AMMCE->QPPRIVATE + PICTURE "###.###.###.@@@" + MESSAGE ADD,BE->24 +END + +END + +/////////////////////////////////////////////////////////// +// Totale di categoria +/////////////////////////////////////////////////////////// + +SECTION BODY EVEN 3 + +STRINGA F_CODTAB +BEGIN + KEY "Totale di categoria o impianto" + PROMPT 1 1 "@bTOTALE " +END + +VALUTA 11 15 +BEGIN + KEY "CSTO" + PROMPT 1 2 "" + PICTURE "###.###.###.@@@" + MESSAGE ADD,BL->11 +END + +VALUTA 12 15 +BEGIN + KEY "VNONAMM" + PROMPT 17 2 "" + PICTURE "###.###.###.@@@" + MESSAGE ADD,BL->12 +END + +VALUTA 13 15 +BEGIN + KEY "PLUSREIN" + PROMPT 33 2 "" + PICTURE "###.###.###.@@@" + MESSAGE ADD,BL->13 +END + +VALUTA 14 15 +BEGIN + KEY "Rivalutazione generica" + PROMPT 49 2 "" + PICTURE "###.###.###.@@@" + MESSAGE ADD,BL->14 +END + +VALUTA 15 15 +BEGIN + KEY "RIV75" + PROMPT 65 2 "" + PICTURE "###.###.###.@@@" + MESSAGE ADD,BL->15 +END + +VALUTA 16 15 +BEGIN + KEY "RIV83" + PROMPT 81 2 "" + PICTURE "###.###.###.@@@" + MESSAGE ADD,BL->16 +END + +VALUTA 17 15 +BEGIN + KEY "RIV90" + PROMPT 97 2 "" + PICTURE "###.###.###.@@@" + MESSAGE ADD,BL->17 +END + +VALUTA 18 15 +BEGIN + KEY "RIV91" + PROMPT 113 2 "" + PICTURE "###.###.###.@@@" + MESSAGE ADD,BL->18 +END + +VALUTA 21 15 +BEGIN + KEY "Fondo ammortamento" + PROMPT 1 3 "" + PICTURE "###.###.###.@@@" + MESSAGE ADD,BL->21 +END + +VALUTA 22 15 +BEGIN + KEY "Quote perse" + PROMPT 17 3 "" + PICTURE "###.###.###.@@@" + MESSAGE ADD,BL->22 +END + +VALUTA 23 15 +BEGIN + KEY "Fondo ammortamento privato" + PROMPT 65 3 "" + PICTURE "###.###.###.@@@" + MESSAGE ADD,BL->23 +END + +VALUTA 24 15 +BEGIN + KEY "Quote perse private" + PROMPT 81 3 "" + PICTURE "###.###.###.@@@" + MESSAGE ADD,BL->24 +END + +END + +/////////////////////////////////////////////////////////// +// Totale generale +/////////////////////////////////////////////////////////// + +SECTION BODY LAST 3 + +STRINGA F_CODTAB +BEGIN + KEY "Totale di categoria o impianto" + PROMPT 1 1 "@bTOTALE " +END + +VALUTA 11 15 +BEGIN + KEY "CSTO" + PROMPT 1 2 "" + PICTURE "###.###.###.@@@" +END + +VALUTA 12 15 +BEGIN + KEY "VNONAMM" + PROMPT 17 2 "" + PICTURE "###.###.###.@@@" +END + +VALUTA 13 15 +BEGIN + KEY "PLUSREIN" + PROMPT 33 2 "" + PICTURE "###.###.###.@@@" +END + +VALUTA 14 15 +BEGIN + KEY "Rivalutazione generica" + PROMPT 49 2 "" + PICTURE "###.###.###.@@@" +END + +VALUTA 15 15 +BEGIN + KEY "RIV75" + PROMPT 65 2 "" + PICTURE "###.###.###.@@@" +END + +VALUTA 16 15 +BEGIN + KEY "RIV83" + PROMPT 81 2 "" + PICTURE "###.###.###.@@@" +END + +VALUTA 17 15 +BEGIN + KEY "RIV90" + PROMPT 97 2 "" + PICTURE "###.###.###.@@@" +END + +VALUTA 18 15 +BEGIN + KEY "RIV91" + PROMPT 113 2 "" + PICTURE "###.###.###.@@@" +END + +VALUTA 21 15 +BEGIN + KEY "Fondo ammortamento" + PROMPT 1 3 "" + PICTURE "###.###.###.@@@" +END + +VALUTA 22 15 +BEGIN + KEY "Quote perse" + PROMPT 17 3 "" + PICTURE "###.###.###.@@@" +END + +VALUTA 23 15 +BEGIN + KEY "Fondo ammortamento privato" + PROMPT 65 3 "" + PICTURE "###.###.###.@@@" +END + +VALUTA 24 15 +BEGIN + KEY "Quote perse private" + PROMPT 81 3 "" + PICTURE "###.###.###.@@@" +END + +END + +SECTION FOOTER ODD 3 + +DATA -1 +BEGIN + PROMPT 1 2 "@bData@r " + MESSAGE _TODAY +END + +NUMERO -1 +BEGIN + PROMPT 120 2 "@bPagina@r " + MESSAGE _PAGENO +END + +END + diff --git a/ce/ce3600.cpp b/ce/ce3600.cpp new file mode 100755 index 000000000..201fc5607 --- /dev/null +++ b/ce/ce3600.cpp @@ -0,0 +1,190 @@ +#include +#include +#include +#include +#include + +#include "celib.h" +#include "ce3400.h" +#include "ce3600a.h" + +#include "../cg/cglib01.h" + +#include "ammce.h" +#include "ammmv.h" +#include "cespi.h" +#include "movce.h" + +/////////////////////////////////////////////////////////// +// Main Form +/////////////////////////////////////////////////////////// + +class TLM_form : public TCespi_list_form +{ + TCursor* _cur; + int _tiposit; + +protected: + virtual TRelation* relation() const { return _cur->relation(); } + virtual TCursor* cursor() const { return _cur; } + virtual bool validate(TForm_item& fld, TToken_string& val); + +public: + void set_cursor(TCursor& cur) { _cur = &cur; } + void set_testata(const TMask& m); + + TPrint_section& corpo() { return section('B', odd_page); } + + TLM_form(); +}; + +void TLM_form::set_testata(const TMask& m) +{ + TCespi_list_form::set_testata(m); + _tiposit = m.get_int(F_SITUAZIONE); +} + +bool TLM_form::validate(TForm_item& fld, TToken_string& val) +{ + const char* cmd = val.get(0); + if (stricmp(cmd, "_RIVGEN") == 0) + { + const TRectype& mov = relation()->curr(); + fld.set(mov.get(_tiposit == 1 ? MOVCE_RIVGF : MOVCE_RIVGC)); + return TRUE; + } + return TCespi_list_form::validate(fld, val); +} + +TLM_form::TLM_form() : TCespi_list_form("ce3600a") +{ } + +/////////////////////////////////////////////////////////// +// Main Mask +/////////////////////////////////////////////////////////// + +class TLM_mask : public TAutomask +{ +protected: + virtual bool on_field_event(TOperable_field& f, TField_event e, long jolly); + +public: + TLM_mask() : TAutomask("ce3600a") { } +}; + +bool TLM_mask::on_field_event(TOperable_field& f, TField_event e, long jolly) +{ + bool ok = TRUE; + switch (f.dlg()) + { + case F_CODCAT: + case F_D_CODCAT: + { + TDitta_cespiti& dc = ditta_cespiti(); + ok = dc.on_category_event(f, e, jolly); + } + break; + default: break; + } + return ok; +} + +/////////////////////////////////////////////////////////// +// Main Application +/////////////////////////////////////////////////////////// + +class TLM_app : public TSkeleton_application +{ + TLM_form* _form; + +protected: + virtual void main_loop(); + +public: + void print_mov(); +}; + +void TLM_app::print_mov() +{ + TPrint_section& corpo = _form->corpo(); + _form->print_section(corpo); +} + +void TLM_app::main_loop() +{ + TLM_mask m; + ditta_cespiti().init_mask(m); + while (m.run() != K_QUIT) + { + const int ese = m.get_int(F_ESERCIZIO); + const int gruppo = m.get_int(F_GRUPPO); + const TString4 specie = m.get(F_SPECIE); + ditta_cespiti().set_attivita(ese, gruppo, specie); + + const int tiposit = m.get_int(F_SITUAZIONE); + const int order = m.get_int(F_ORDINAMENTO); + const int codcat = m.get_int(F_CODCAT); + const TString& codmov = m.get(F_TIPOMOV); + const TString& codimp = m.get(F_CODIMP); + + TLM_form form; _form = &form; + + TRelation rel(LF_MOVCE); + + TString expr; + expr << "IDCESPITE==IDCESPITE"; + rel.add(LF_CESPI, expr); + expr << "|IDMOV==IDMOV|TPAMM==" << tiposit; + rel.add(LF_MOVAM, expr); + + const TRectype& cespi = rel.curr(LF_CESPI); + + TDate fromdate = m.get(F_FROM_DATE), todate = m.get(F_TO_DATE); + TString filter; + if (fromdate.ok()) + filter << "(ANSI(" << MOVCE_DTMOV << ")>=" << fromdate.string(ANSI) << ')'; + if (todate.ok()) + { + if (filter.not_empty()) filter << "&&"; + filter << "(ANSI(" << MOVCE_DTMOV << ")<=" << todate.string(ANSI) << ')'; + } + if (codmov.not_empty()) + { + if (filter.not_empty()) filter << "&&"; + filter << '(' << MOVCE_CODMOV << "==\"" << codmov << "\")"; + } + + const char* orderby = order == 1 ? "DTMOV|IDMOV" : "IDMOV"; + TSorted_cursor cur(&rel, orderby, filter); + + const long items = cur.items(); + if (items > 0) + { + cur.freeze(); + form.set_cursor(cur); + form.set_testata(m); + printer().open(); + for (cur = 0L; cur.pos() < items; ++cur) + { + // Controllo qui la validitą per non incasinare il valutatore con stringhe e numeri + if (cespi.get_int(CESPI_CODCGRA) != gruppo || cespi.get(CESPI_CODSPA) != specie) + continue; + if (codcat > 0 && cespi.get_int(CESPI_CODCAT) != codcat) + continue; + if (codimp.not_empty() && cespi.get(CESPI_CODIMP) != codimp) + continue; + + print_mov(); + } + printer().close(); + } + xvt_statbar_set(""); + } +} + +int ce3600(int argc, char* argv[]) +{ + TLM_app app; + app.run(argc, argv, "Lista Movimenti"); + return 0; +} diff --git a/ce/ce3600a.frm b/ce/ce3600a.frm new file mode 100755 index 000000000..893b338c7 --- /dev/null +++ b/ce/ce3600a.frm @@ -0,0 +1,398 @@ +#include "ce3600a.h" + +SECTION GRAPHICS ODD + LINEA -1 132 1 + BEGIN + PROMPT 1 6 "B" + END + + LINEA -1 132 1 + BEGIN + PROMPT 1 11 "" + END + + LINEA -1 132 1 + BEGIN + PROMPT 1 -3 "" + END +END + +/////////////////////////////////////////////////////////// +// Testata +/////////////////////////////////////////////////////////// + +SECTION HEADER ODD 11 + + STRINGA -1 + BEGIN + KEY "Titolo" + PROMPT 1 1 "@bLISTA MOVIMENTI" + END + + LISTA F_SITUAZIONE + BEGIN + KEY "Situazione" + PROMPT 80 1 "" + ITEM "1|Situazione Fiscale" + ITEM "2|Situazione Civilistica" + ITEM "3|Situazione Gestionale" + END + + STRINGA F_CODDITTA + BEGIN + KEY "Codice ditta" + PROMPT 1 2 "@bDitta@r " + PICTURE "#####" + END + + STRINGA F_RAGSOC + BEGIN + KEY "Ragione sociale" + PROMPT 25 2 "" + END + + STRINGA F_ESERCIZIO + BEGIN + KEY "Esercizio" + PROMPT 1 3 "@bEsercizio@r " + END + + STRINGA F_DATAINIZIO + BEGIN + KEY "Inizio Esercizio" + PROMPT 25 3 "" + END + + STRINGA F_DATAFINE + BEGIN + KEY "Fine Esercizio" + PROMPT 41 3 "" + END + + STRINGA F_GRUPPO + BEGIN + KEY "Gruppo" + PROMPT 1 4 "@bGruppo@r " + PICTURE "#####" + END + + STRINGA F_D_GRUPPO + BEGIN + KEY "Descrizione Gruppo" + PROMPT 25 4 "" + END + + STRINGA F_SPECIE + BEGIN + KEY "Specie" + PROMPT 1 5 "@bSpecie@r " + END + + STRINGA F_D_SPECIE + BEGIN + KEY "Descrizione Specie" + PROMPT 25 5 "" + END + + STRINGA -1 + BEGIN + PROMPT 1 7 "@bNumero" + END + + STRINGA -1 + BEGIN + PROMPT 12 7 "Tipo" + END + + STRINGA -1 + BEGIN + PROMPT 17 7 "Data" + END + + STRINGA -1 + BEGIN + PROMPT 27 7 "Segno" + END + + STRINGA -1 + BEGIN + PROMPT 33 7 "Importo" + END + + STRINGA -1 + BEGIN + PROMPT 49 7 "Elementi" + END + + STRINGA -1 + BEGIN + PROMPT 65 7 "Descrizione Movimento" + END + + STRINGA -1 + BEGIN + PROMPT 1 8 "@bCespite" + END + + STRINGA -1 + BEGIN + PROMPT 17 8 "Categoria" + END + + STRINGA -1 + BEGIN + PROMPT 33 8 "Impianto" + END + + STRINGA -1 + BEGIN + PROMPT 49 8 "Descrizione Cespite" + END + + STRINGA -1 + BEGIN + PROMPT 1 9 "@bCosto storico" + END + + STRINGA -1 + BEGIN + PROMPT 17 9 "Parte non amm." + END + + STRINGA -1 + BEGIN + PROMPT 33 9 "Plusv. reinv." + END + + STRINGA -1 + BEGIN + PROMPT 49 9 "Rival. gen." + END + + STRINGA -1 + BEGIN + PROMPT 65 9 "Rival. 576/75" + END + + STRINGA -1 + BEGIN + PROMPT 81 9 "Rival. 72/83" + END + + STRINGA -1 + BEGIN + PROMPT 97 9 "Rival. 413/90" + END + + STRINGA -1 + BEGIN + PROMPT 113 9 "Rival. 413/91" + END + + STRINGA -1 + BEGIN + PROMPT 1 10 "@bFondo amm." + END + + STRINGA -1 + BEGIN + PROMPT 17 10 "Quota non amm." + END + + STRINGA -1 + BEGIN + PROMPT 49 10 "PRIVATO:" + END + + STRINGA -1 + BEGIN + PROMPT 65 10 "@bFondo amm." + END + + STRINGA -1 + BEGIN + PROMPT 81 10 "Quota non amm." + END + +END + +/////////////////////////////////////////////////////////// +// Valori movimento +/////////////////////////////////////////////////////////// + +SECTION BODY ODD 5 + +STRING -1 +BEGIN + PROMPT 1 1 "@b" + FIELD IDMOV +END + +STRING -1 +BEGIN + PROMPT 14 1 "@r" + FIELD CODMOV +END + +STRING -1 +BEGIN + PROMPT 17 1 "" + FIELD DTMOV +END + +STRING -1 +BEGIN + PROMPT 29 1 "" + FIELD SEGNO +END + +VALUTA -1 15 +BEGIN + PROMPT 33 1 "" + FIELD IMPVEN + PICTURE "###.###.###.@@@" +END + +NUMBERO -1 +BEGIN + PROMPT 49 1 "" + FIELD NUMELE +END + +STRING -1 +BEGIN + PROMPT 65 1 "" + FIELD DESC +END + +STRING -1 +BEGIN + PROMPT 1 2 "" + FIELD IDCESPITE +END + +NUMERO -1 2 +BEGIN + PROMPT 17 2 "" + PICTURE "@@" + FIELD LF_CESPI->CODCAT +END + +STRING -1 +BEGIN + PROMPT 33 2 "" + FIELD LF_CESPI->CODIMP +END + +STRING -1 +BEGIN + PROMPT 49 2 "" + FIELD LF_CESPI->DESC +END + +VALUTA 11 15 +BEGIN + PROMPT 1 3 "" + FIELD CSTO + PICTURE "###.###.###.@@@" +END + +VALUTA 12 15 +BEGIN + PROMPT 17 3 "" + FIELD VNONAMM + PICTURE "###.###.###.@@@" +END + +VALUTA 13 15 +BEGIN + PROMPT 33 3 "" + FIELD PLUSREIN + PICTURE "###.###.###.@@@" +END + +VALUTA 14 15 +BEGIN + PROMPT 49 3 "" + MESSAGE _RIVGEN + PICTURE "###.###.###.@@@" +END + +VALUTA 15 15 +BEGIN + PROMPT 65 3 "" + FIELD RIV75 + PICTURE "###.###.###.@@@" +END + +VALUTA 16 15 +BEGIN + PROMPT 81 3 "" + FIELD RIV83 + PICTURE "###.###.###.@@@" +END + +VALUTA 17 15 +BEGIN + PROMPT 97 3 "" + FIELD RIV90 + PICTURE "###.###.###.@@@" +END + +VALUTA 18 15 +BEGIN + PROMPT 113 3 "" + FIELD RIV91 + PICTURE "###.###.###.@@@" +END + +VALUTA 21 15 +BEGIN + KEY "Fondo ammortamento" + PROMPT 1 4 "" + MESSAGE _NUMEXPR,LF_MOVAM->QNOR+LF_MOVAM->QACC+LF_MOVAM->QANT + PICTURE "###.###.###.@@@" +END + +VALUTA 22 15 +BEGIN + KEY "Quote perse" + PROMPT 17 4 "" + FIELD LF_MOVAM->QPERSE + PICTURE "###.###.###.@@@" +END + +VALUTA 23 15 +BEGIN + KEY "Fondo ammortamento privato" + PROMPT 65 4 "" + FIELD LF_MOVAM->FPRIVATO + PICTURE "###.###.###.@@@" +END + +VALUTA 24 15 +BEGIN + KEY "Quote perse private" + PROMPT 81 4 "" + FIELD LF_MOVAM->QPPRIVATE + PICTURE "###.###.###.@@@" +END + +END + +SECTION FOOTER ODD 3 + +DATA -1 +BEGIN + PROMPT 1 2 "@bData@r " + MESSAGE _TODAY +END + +NUMERO -1 +BEGIN + PROMPT 120 2 "@bPagina@r " + MESSAGE _PAGENO +END + +END + diff --git a/ce/ce3600a.h b/ce/ce3600a.h new file mode 100755 index 000000000..cc445da1e --- /dev/null +++ b/ce/ce3600a.h @@ -0,0 +1,23 @@ +#define F_CODDITTA 101 +#define F_RAGSOC 102 +#define F_ESERCIZIO 103 +#define F_DATAINIZIO 104 +#define F_DATAFINE 105 +#define F_GRUPPO 106 +#define F_SPECIE 107 +#define F_D_GRUPPO 108 +#define F_D_SPECIE 109 + +#define F_FROM_DATE 110 +#define F_TO_DATE 111 +#define F_TIPOMOV 112 +#define F_D_TIPOMOV 113 +#define F_CODCAT 115 +#define F_D_CODCAT 116 +#define F_CODIMP 117 +#define F_D_CODIMP 118 + +#define F_SITUAZIONE 120 +#define F_ORDINAMENTO 121 + + \ No newline at end of file diff --git a/ce/ce3600a.uml b/ce/ce3600a.uml new file mode 100755 index 000000000..06e9f4569 --- /dev/null +++ b/ce/ce3600a.uml @@ -0,0 +1,199 @@ +#include "ce3600a.h" + +TOOLBAR "" 0 -3 0 3 + +BUTTON DLG_PRINT 10 2 +BEGIN + PROMPT -12 -11 "~Stampa" +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -11 "" +END + +ENDPAGE + +PAGE "Lista movimenti" -1 -1 78 6 + +GROUPBOX DLG_NULL 78 6 +BEGIN + PROMPT 1 0 "" + FLAGS "R" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 2 1 "Ditta " + FLAGS "DF" + USE LF_NDITTE + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGSOC RAGSOC + CHECKTYPE REQUIRED +END + +STRING F_RAGSOC 55 +BEGIN + PROMPT 20 1 "" + FLAGS "D" +END + +NUMBER F_ESERCIZIO 4 +BEGIN + PROMPT 2 2 "Esercizio " + FLAGS "Z" + USE CCE + JOIN ESC ALIAS 105 INTO CODTAB==CODTAB + INPUT CODTAB F_ESERCIZIO + DISPLAY "Codice esercizio" CODTAB + DISPLAY "Data inizio" 105@->D0 + DISPLAY "Data fine@10" 105@->D1 + OUTPUT F_ESERCIZIO CODTAB + OUTPUT F_DATAINIZIO 105@->D0 + OUTPUT F_DATAFINE 105@->D1 + CHECKTYPE REQUIRED +END + +DATE F_DATAINIZIO +BEGIN + PROMPT 20 2 "Data inizio " + FLAGS "D" +END + +DATE F_DATAFINE +BEGIN + PROMPT 45 2 "Data fine " + FLAGS "D" +END + +NUMBER F_GRUPPO 2 +BEGIN + PROMPT 2 3 "Gruppo " + FLAGS "Z" + USE CCB KEY 1 + JOIN %CGR ALIAS 106 INTO CODTAB==CODTAB[5,6] + INPUT CODTAB[1,4] F_ESERCIZIO SELECT + INPUT CODTAB[5,6] F_GRUPPO + INPUT CODTAB[7,10] F_SPECIE + DISPLAY "Codice" CODTAB[5,6] + DISPLAY "Descrizione@60" 106@->S0 + OUTPUT F_GRUPPO CODTAB[5,6] + OUTPUT F_D_GRUPPO 106@->S0 + CHECKTYPE NORMAL +END + +STRING F_SPECIE 4 +BEGIN + PROMPT 2 4 "Specie " + FLAGS "_" + USE CCB KEY 1 + JOIN %CAT ALIAS 107 INTO CODTAB[1,2]==CODTAB[5,6] CODTAB[3,6]==CODTAB[7,10] + INPUT CODTAB[1,4] F_ESERCIZIO SELECT + INPUT CODTAB[5,6] F_GRUPPO SELECT + INPUT CODTAB[7,10] F_SPECIE + DISPLAY "Gruppo" CODTAB[5,6] + DISPLAY "Specie" CODTAB[7,10] + DISPLAY "Descrizione@60" 107@->S0 + OUTPUT F_SPECIE CODTAB[7,10] + OUTPUT F_D_SPECIE 107@->S0 + CHECKTYPE NORMAL +END + +STRING F_D_GRUPPO 60 55 +BEGIN + PROMPT 20 3 "" + FLAGS "D" +END + +STRING F_D_SPECIE 60 55 +BEGIN + PROMPT 20 4 "" + FLAGS "D" +END + +RADIOBUTTON F_SITUAZIONE 78 +BEGIN + PROMPT 1 6 "@bSituazione" + ITEM "1|Fiscale" + ITEM "2|Civilistica" + ITEM "3|Gestionale" +END + +DATE F_FROM_DATE +BEGIN + PROMPT 1 11 "Dalla data " +END + +DATE F_TO_DATE +BEGIN + PROMPT 25 11 "Alla data " +END + +STRING F_TIPOMOV 1 +BEGIN + PROMPT 1 12 "Tipo movimento " + USE %TMC + INPUT CODTAB F_TIPOMOV + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_TIPOMOV CODTAB + OUTPUT F_D_TIPOMOV S0 + CHECKTYPE NORMAL +END + +STRING F_D_TIPOMOV 50 +BEGIN + PROMPT 25 12 "" + USE %TMC KEY 2 + INPUT S0 F_D_TIPOMOV + DISPLAY "Descrizione@60" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_TIPOMOV + CHECKTYPE NORMAL +END + +NUMBER F_CODCAT 2 +BEGIN + PROMPT 1 13 "Categoria " + FLAGS "BZ" +END + +STRING F_D_CODCAT 70 50 +BEGIN + PROMPT 25 13 "" + FLAGS "B" +END + +NUMBER F_CODIMP 10 +BEGIN + PROMPT 1 14 "Impianto " + FLAGS "Z" + USE CIM + INPUT CODTAB F_CODIMP + DISPLAY "Codice Impianto" CODTAB + DISPLAY "Descrizione@60" S0 + OUTPUT F_CODIMP CODTAB + OUTPUT F_D_CODIMP S0 + CHECKTYPE NORMAL +END + +STRING F_D_CODIMP 50 +BEGIN + PROMPT 25 14 "" + USE CIM KEY 2 + INPUT S0 F_D_CODIMP + DISPLAY "Descrizione@60" S0 + DISPLAY "Codice Impianto" CODTAB + COPY OUTPUT F_CODIMP + CHECKTYPE NORMAL + GROUP 2 +END + +RADIOBUTTON F_ORDINAMENTO 78 +BEGIN + PROMPT 1 16 "@bOrdinamento" + ITEM "1|Data movimento" + ITEM "2|Numero registrazione" +END + +ENDPAGE diff --git a/ce/ce3700.cpp b/ce/ce3700.cpp new file mode 100755 index 000000000..c8695092c --- /dev/null +++ b/ce/ce3700.cpp @@ -0,0 +1,149 @@ +#include +#include +#include +#include + +#include "celib.h" +#include "ce3400.h" +#include "ce3700a.h" + +#include "../cg/cglib01.h" + +#include "cespi.h" + +/////////////////////////////////////////////////////////// +// Main Form +/////////////////////////////////////////////////////////// + +class TECUP_form : public TCespi_list_form +{ +protected: + virtual bool validate(TForm_item& fld, TToken_string& val); + +public: + void set_testata(const TMask& m); + + TECUP_form(); +}; + +void TECUP_form::set_testata(const TMask& m) +{ + TCespi_list_form::set_testata(m); +} + +bool TECUP_form::validate(TForm_item& fld, TToken_string& val) +{ + return TCespi_list_form::validate(fld, val); +} + +TECUP_form::TECUP_form() : TCespi_list_form("ce3700a") +{ } + +/////////////////////////////////////////////////////////// +// Main Mask +/////////////////////////////////////////////////////////// + +class TECUP_mask : public TAutomask +{ +protected: + virtual bool on_field_event(TOperable_field& f, TField_event e, long jolly); + +public: + TECUP_mask() : TAutomask("ce3700a") { } +}; + +bool TECUP_mask::on_field_event(TOperable_field& f, TField_event e, long jolly) +{ + switch (f.dlg()) + { + case F_USOPROM1: + if (e == fe_close) + { + for (int up = 2; up >= 0; up--) + if (get_bool(F_USOPROM1+up)) + break; + if (up < 0) + return error_box("E' necessario specificare almeno una percentuale di deducibilitą"); + } + break; + default: break; + } + return TRUE; +} + +/////////////////////////////////////////////////////////// +// Main Application +/////////////////////////////////////////////////////////// + +class TECUP_app : public TSkeleton_application +{ + int _gruppo; + TString4 _specie; + bool _usoprom[3]; + int _veidip; + + static bool promis_filter(const TRelation* rel); + +protected: + virtual void main_loop(); +}; + +TECUP_app& app() { return (TECUP_app&)main_app(); } + +bool TECUP_app::promis_filter(const TRelation* rel) +{ + const TRectype& cespi = rel->curr(); + const TECUP_app& a = app(); + + if (cespi.get_int(CESPI_CODCGRA) != a._gruppo) + return FALSE; + + if (cespi.get(CESPI_CODSPA) != a._specie) + return FALSE; + + int up = cespi.get_int(CESPI_USOPROM); + if (up > 0) up--; + if (a._usoprom[up] == FALSE) + return FALSE; + + if (a._veidip < 2) + return cespi.get_bool(CESPI_VEIDIP) == a._veidip; + + return TRUE; +} + +void TECUP_app::main_loop() +{ + TECUP_mask m; + ditta_cespiti().init_mask(m); + + m.set(F_USOPROM2, "X"); + m.set(F_USOPROM3, "X"); + m.set(F_VEIDIP, 2); + + while (m.run() != K_QUIT) + { + const int ese = m.get_int(F_ESERCIZIO); + _gruppo = m.get_int(F_GRUPPO); + _specie = m.get(F_SPECIE); + ditta_cespiti().set_attivita(ese, _gruppo, _specie); + + for (int u = 0; u < 3; u++) + _usoprom[u] = m.get_bool(F_USOPROM1+u); + _veidip = m.get_int(F_VEIDIP); + + TECUP_form form; + form.cursor()->set_filterfunction(promis_filter); + + form.set_testata(m); + form.print(); + xvt_statbar_set(""); + } +} + +int ce3700(int argc, char* argv[]) +{ + TECUP_app app; + app.run(argc, argv, "Cespiti uso promisquo"); + return 0; +} diff --git a/ce/ce3700a.frm b/ce/ce3700a.frm new file mode 100755 index 000000000..d25c3a65f --- /dev/null +++ b/ce/ce3700a.frm @@ -0,0 +1,214 @@ +#include "ce3700a.h" + +USE LF_CESPI +END + +// Linee di sfondo + +SECTION GRAPHICS ODD + + LINEA -1 132 1 + BEGIN + PROMPT 1 6 "B" + END + + LINEA -1 132 1 + BEGIN + PROMPT 1 9 "B" + END + + LINEA -1 132 1 + BEGIN + PROMPT 1 -3 "B" + END + +END + +// Testata + +SECTION HEADER ODD 9 + STRINGA -1 + BEGIN + KEY "Titolo" + PROMPT 1 1 "@bELENCO CESPITI USO PROMISQUO" + END + + STRINGA F_CODDITTA + BEGIN + KEY "Codice ditta" + PROMPT 1 2 "@bDitta@r " + PICTURE "#####" + END + + STRINGA F_RAGSOC + BEGIN + KEY "Ragione sociale" + PROMPT 20 2 "" + END + + STRINGA F_ESERCIZIO + BEGIN + KEY "Esercizio" + PROMPT 1 3 "@bEsercizio@r " + END + + STRINGA F_DATAINIZIO + BEGIN + KEY "Inizio Esercizio" + PROMPT 20 3 "" + END + + STRINGA F_DATAFINE + BEGIN + KEY "Fine Esercizio" + PROMPT 33 3 "" + END + + STRINGA F_GRUPPO + BEGIN + KEY "Gruppo" + PROMPT 1 4 "@bGruppo@r " + PICTURE "#####" + END + + STRINGA F_D_GRUPPO + BEGIN + KEY "Descrizione Gruppo" + PROMPT 20 4 "" + END + + STRINGA F_SPECIE + BEGIN + KEY "Specie" + PROMPT 1 5 "@bSpecie@r " + END + + STRINGA F_D_SPECIE + BEGIN + KEY "Descrizione Specie" + PROMPT 20 5 "" + END + + STRINGA -1 + BEGIN + PROMPT 1 7 "@bCod." + END + + STRINGA -1 + BEGIN + PROMPT 1 8 "@bCat." + END + + STRINGA -1 + BEGIN + PROMPT 6 7 "Cod." + END + + STRINGA -1 + BEGIN + PROMPT 6 8 "Cespite" + END + + STRINGA -1 + BEGIN + PROMPT 17 7 "Descrizione" + END + + STRINGA -1 + BEGIN + PROMPT 68 7 "Percentuale" + END + + STRINGA -1 + BEGIN + PROMPT 68 8 "Deducibilitą" + END + + STRINGA -1 + BEGIN + PROMPT 110 7 "Tipo" + END + + STRINGA -1 + BEGIN + PROMPT 110 8 "Veicolo" + END + + STRINGA -1 + BEGIN + PROMPT 126 7 "Uso a" + END + + STRINGA -1 + BEGIN + PROMPT 126 8 "Dipend." + END +END + +SECTION BODY ODD 2 + +NUMERO -1 +BEGIN + PROMPT 2 1 "" + PICTURE "@@" + FIELD CODCAT +END + +STRINGA -1 +BEGIN + PROMPT 6 1 "" + FIELD IDCESPITE +END + +STRINGA -1 +BEGIN + PROMPT 17 1 "" + FIELD DESC +END + +LISTA -1 +BEGIN + PROMPT 68 1 "" + ITEM "1|100% - Esclusivamente strumentale" + ITEM "2| 50% - Uso promiscuo" + ITEM "3| 80% - Uso prom. agenti/rappresentanti" + FIELD USOPROM +END + +LISTA -1 +BEGIN + PROMPT 110 1 "" + ITEM "1|Nessuno" + ITEM "2|Auto, Autocaravan" + ITEM "3|Motociclo" + ITEM "4|Ciclomotore" + ITEM "5|Altro" + FIELD FLGTPVEI +END + +LISTA -1 +BEGIN + PROMPT 129 1 "" + ITEM "|NO" + ITEM "X|SI" + FIELD VEIDIP +END + +END + +SECTION FOOTER ODD 3 + +DATA -1 +BEGIN + PROMPT 1 2 "@bData@r " + MESSAGE _TODAY +END + +NUMERO -1 +BEGIN + PROMPT 120 2 "@bPagina@r " + MESSAGE _PAGENO +END + +END + diff --git a/ce/ce3700a.h b/ce/ce3700a.h new file mode 100755 index 000000000..bba23efeb --- /dev/null +++ b/ce/ce3700a.h @@ -0,0 +1,7 @@ +#include "ce3400a.h" + +#define F_USOPROM1 201 +#define F_USOPROM2 202 +#define F_USOPROM3 203 +#define F_VEIDIP 204 + \ No newline at end of file diff --git a/ce/ce3700a.uml b/ce/ce3700a.uml new file mode 100755 index 000000000..8c1762efc --- /dev/null +++ b/ce/ce3700a.uml @@ -0,0 +1,142 @@ +#include "ce3700a.h" + +TOOLBAR "" 0 -3 0 3 + +BUTTON DLG_PRINT 10 2 +BEGIN + PROMPT -12 -11 "~Stampa" +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -11 "" +END + +ENDPAGE + +PAGE "Cespiti uso promisquo" -1 -1 78 6 + +GROUPBOX DLG_NULL 78 6 +BEGIN + PROMPT 1 0 "" + FLAGS "R" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 2 1 "Ditta " + FLAGS "DF" + USE LF_NDITTE + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGSOC RAGSOC + CHECKTYPE REQUIRED +END + +STRING F_RAGSOC 55 +BEGIN + PROMPT 20 1 "" + FLAGS "D" +END + +NUMBER F_ESERCIZIO 4 +BEGIN + PROMPT 2 2 "Esercizio " + FLAGS "Z" + USE CCE + JOIN ESC ALIAS 105 INTO CODTAB==CODTAB + INPUT CODTAB F_ESERCIZIO + DISPLAY "Codice esercizio" CODTAB + DISPLAY "Data inizio" 105@->D0 + DISPLAY "Data fine@10" 105@->D1 + OUTPUT F_ESERCIZIO CODTAB + OUTPUT F_DATAINIZIO 105@->D0 + OUTPUT F_DATAFINE 105@->D1 + CHECKTYPE REQUIRED +END + +DATE F_DATAINIZIO +BEGIN + PROMPT 20 2 "Data inizio " + FLAGS "D" +END + +DATE F_DATAFINE +BEGIN + PROMPT 45 2 "Data fine " + FLAGS "D" +END + +NUMBER F_GRUPPO 2 +BEGIN + PROMPT 2 3 "Gruppo " + FLAGS "Z" + USE CCB KEY 1 + JOIN %CGR ALIAS 106 INTO CODTAB==CODTAB[5,6] + INPUT CODTAB[1,4] F_ESERCIZIO SELECT + INPUT CODTAB[5,6] F_GRUPPO + INPUT CODTAB[7,10] F_SPECIE + DISPLAY "Codice" CODTAB[5,6] + DISPLAY "Descrizione@60" 106@->S0 + OUTPUT F_GRUPPO CODTAB[5,6] + OUTPUT F_D_GRUPPO 106@->S0 + CHECKTYPE NORMAL +END + +STRING F_SPECIE 4 +BEGIN + PROMPT 2 4 "Specie " + FLAGS "_" + USE CCB KEY 1 + JOIN %CAT ALIAS 107 INTO CODTAB[1,2]==CODTAB[5,6] CODTAB[3,6]==CODTAB[7,10] + INPUT CODTAB[1,4] F_ESERCIZIO SELECT + INPUT CODTAB[5,6] F_GRUPPO SELECT + INPUT CODTAB[7,10] F_SPECIE + DISPLAY "Gruppo" CODTAB[5,6] + DISPLAY "Specie" CODTAB[7,10] + DISPLAY "Descrizione@60" 107@->S0 + OUTPUT F_SPECIE CODTAB[7,10] + OUTPUT F_D_SPECIE 107@->S0 + CHECKTYPE NORMAL +END + +STRING F_D_GRUPPO 60 55 +BEGIN + PROMPT 20 3 "" + FLAGS "D" +END + +STRING F_D_SPECIE 60 55 +BEGIN + PROMPT 20 4 "" + FLAGS "D" +END + +GROUPBOX -1 78 5 +BEGIN + PROMPT 1 7 "@bPercentuale di deducibilitą" +END + +BOOLEAN F_USOPROM1 +BEGIN + PROMPT 2 8 "Deducibilitą 100% - Esclusivamente strumentale" +END + +BOOLEAN F_USOPROM2 +BEGIN + PROMPT 2 9 "Deducibilitą 50% - Uso promiscuo" +END + +BOOLEAN F_USOPROM3 +BEGIN + PROMPT 2 10 "Deducibilitą 80% - Uso promiscuo agenti/rappresentanti" +END + +RADIOBUTTON F_VEIDIP 1 78 +BEGIN + PROMPT 1 13 "@bBeni in uso promiscuo a dipendente" + ITEM "0|Escludere tutti i beni in uso a dipendente" + ITEM "1|Includere solo i beni in uso a dipendente" + ITEM "2|Includere tutti i beni" +END + +ENDPAGE diff --git a/ce/ce3800.cpp b/ce/ce3800.cpp new file mode 100755 index 000000000..8bb9c2d7c --- /dev/null +++ b/ce/ce3800.cpp @@ -0,0 +1,274 @@ +#include +#include +#include +#include + +#include "celib.h" +#include "ce3400.h" +#include "ce3400a.h" + +#include "../cg/cglib01.h" + +#include "ammce.h" +#include "cespi.h" +#include "salce.h" + +/////////////////////////////////////////////////////////// +// Main Form +/////////////////////////////////////////////////////////// + +class TECFE_form : public TCespi_list_form +{ + TCursor* _cur; + int _order, _tipo_sit; + TString _str; + +protected: + virtual TRelation* relation() const { return _cur->relation(); } + virtual TCursor* cursor() const { return _cur; } + virtual bool validate(TForm_item& fld, TToken_string& val); + +public: + const TString& decode_group(const char* codtab, int mode = 0); + TPrint_section& cespite() { return section('B', odd_page); } + TPrint_section& totale() { return section('B', even_page); } + + void set_cursor(TCursor& cur) { _cur = &cur; } + void set_testata(const TMask& m, const TString& codtab); + + TECFE_form(); +}; + +void TECFE_form::set_testata(const TMask& m, const TString& codtab) +{ + TCespi_list_form::set_testata(m); + _order = m.get_int(F_ORDINAMENTO); + _tipo_sit = m.get_int(F_SITUAZIONE); + + TPrint_section& header = section('H', odd_page); + header.find_field(F_CODTAB).set(decode_group(codtab)); +} + +const TString& TECFE_form::decode_group(const char* codtab, int mode) +{ + const int order = mode > 0 ? mode : _order; + _str = "@b"; + _str << (order==1 ? "Categoria" : "Impianto") << "@r " << codtab << ' '; + if (order == 1) + { + const TRectype& cat = ditta_cespiti().categoria(0, NULL, atoi(codtab)); + _str << cat.get("S0"); + } + else + _str << cache().get("CIM", codtab, "S0"); + return _str; +} + +bool TECFE_form::validate(TForm_item& fld, TToken_string& val) +{ + const char* cmd = val.get(0); + if (stricmp(cmd, "_INVCODTAB") == 0) + { + const TRectype& cespi = relation()->curr(); + // Se la stampa č ordinata per categoria allora stampo l'impianto e viceversa + const TString16 codtab = cespi.get(_order == 1 ? CESPI_CODIMP : CESPI_CODCAT); + if (codtab.not_empty()) + fld.set(decode_group(codtab, 3-_order)); + else + fld.set(""); + return TRUE; + } + if (stricmp(cmd, "_VALAMM") == 0) + { + const TRectype& salpro = relation()->curr(LF_SALCE); + real val = salpro.get_real(SALCE_CSTO)-salpro.get_real(SALCE_VNONAMM)-salpro.get_real(SALCE_PLUSREIN)+ + salpro.get_real(SALCE_RIV75)+salpro.get_real(SALCE_RIV83)+salpro.get_real(SALCE_RIV90)+salpro.get_real(SALCE_RIV91); + val += salpro.get_real(_tipo_sit == 1 ? SALCE_RIVGF : SALCE_RIVGC); + fld.set(val.string()); + return TRUE; + } + return TCespi_list_form::validate(fld, val); +} + +TECFE_form::TECFE_form() : TCespi_list_form("ce3800a") +{ } + +/////////////////////////////////////////////////////////// +// Main Mask +/////////////////////////////////////////////////////////// + +class TECFE_mask : public TAutomask +{ +protected: + virtual bool on_field_event(TOperable_field& f, TField_event e, long jolly); + +public: + TECFE_mask() : TAutomask("ce3400a") { } +}; + +bool TECFE_mask::on_field_event(TOperable_field& f, TField_event e, long jolly) +{ + bool ok = TRUE; + switch (f.dlg()) + { + case F_FROM_CAT: + case F_D_FROM_CAT: + case F_TO_CAT: + case F_D_TO_CAT: + { + TDitta_cespiti& dc = ditta_cespiti(); + ok = dc.on_category_event(f, e, jolly); + } + break; + default: break; + } + return ok; +} + +/////////////////////////////////////////////////////////// +// Main Application +/////////////////////////////////////////////////////////// + +class TECFE_app : public TSkeleton_application +{ + TECFE_form* _form; + int _tipo_sit; + int _order; + static bool elenco_filter(const TRelation* rel); + +protected: + virtual void main_loop(); + +public: + void print_cespite(); + void print_totale(const char* cod); +}; + +void TECFE_app::print_cespite() +{ + TPrint_section& ces = _form->cespite(); + _form->print_section(ces); +} + +void TECFE_app::print_totale(const char* cod) +{ + TPrint_section& tot = _form->totale(); + tot.find_field(F_CODTAB).set(_form->decode_group(cod)); + _form->print_separator(); + _form->print_section(tot); + for (unsigned int i = 0; i < tot.fields(); i++) + tot.field(i).set(""); + printer().formfeed(); +} + +bool TECFE_app::elenco_filter(const TRelation* rel) +{ + const TRectype& salpro = rel->curr(LF_SALCE); + const real num = salpro.get(SALCE_NUMELE); + return num > ZERO; +} + +void TECFE_app::main_loop() +{ + TECFE_mask m; + m.set_caption("Elenco fine esercizio"); + ditta_cespiti().init_mask(m); + + while (m.run() != K_QUIT) + { + const int ese = m.get_int(F_ESERCIZIO); + const int gruppo = m.get_int(F_GRUPPO); + const TString4 specie = m.get(F_SPECIE); + ditta_cespiti().set_attivita(ese, gruppo, specie); + + _tipo_sit = m.get_int(F_SITUAZIONE); + _order = m.get_int(F_ORDINAMENTO); + + TRelation rel(LF_CESPI); + TString expr; + expr << "IDCESPITE==IDCESPITE|CODES==" << m.get(F_ESERCIZIO) << "|TPSALDO==2"; + rel.add(LF_SALCE, expr); + expr << "|TPAMM==" << _tipo_sit; + rel.add(LF_AMMCE, expr); + + TString filter; + if (_order == 1) + { + const int fc = m.get_int(F_FROM_CAT); + const int tc = m.get_int(F_TO_CAT); + if (fc != 0) + { + if (filter.not_empty()) filter << "&&"; + filter << '(' << CESPI_CODCAT << ">=" << fc << ')'; + } + if (tc != 0) + { + if (filter.not_empty()) filter << "&&"; + filter << '(' << CESPI_CODCAT << "<=" << tc << ')' ; + } + } + else + { + const TString& fi = m.get(F_FROM_IMP); + const TString& ti = m.get(F_TO_IMP); + if (!fi.blank()) + { + if (filter.not_empty()) filter << "&&"; + filter << '(' << CESPI_CODIMP << ">=" << fi << ')'; + } + if (!fi.blank()) + { + if (filter.not_empty()) filter << "&&"; + filter << '(' << CESPI_CODIMP << "<=" << ti << ')'; + } + } + + const char* orderby = _order == 1 ? "CODCAT|DTCOMP|IDCESPITE" : "CODIMP|DTCOMP|IDCESPITE"; + TSorted_cursor cur(&rel, orderby, filter); + cur.set_filterfunction(elenco_filter, TRUE); + + const long items = cur.items(); + if (items > 0) + { + const TRectype& cespi = rel.curr(); + + TECFE_form form; + form.set_cursor(cur); + _form = &form; + + printer().open(); + + TString16 last_group = "@"; // Simbolo speciale per indicare nessuna stampa! + cur.freeze(); + for (cur = 0L; cur.pos() < items; ++cur) + { + // Controllo qui la validitą per non incasinare il valutatore con stringhe e numeri + const int gra = cespi.get_int(CESPI_CODCGRA); + const TString& spa = cespi.get(CESPI_CODSPA); + if (gra != gruppo || spa != specie) + continue; + const TString16 curr_group = cespi.get(_order == 1 ? CESPI_CODCAT : CESPI_CODIMP); + if (curr_group != last_group) + { + if (last_group != "@") + print_totale(last_group); + last_group = curr_group; + form.set_testata(m, curr_group); + } + print_cespite(); + } + if (last_group != "@") + print_totale(last_group); + + printer().close(); + xvt_statbar_set(""); + } + } +} + +int ce3800(int argc, char* argv[]) +{ + TECFE_app app; + app.run(argc, argv, "Elenco fine esercizio"); + return 0; +} diff --git a/ce/ce3800a.frm b/ce/ce3800a.frm new file mode 100755 index 000000000..47b019fab --- /dev/null +++ b/ce/ce3800a.frm @@ -0,0 +1,378 @@ +#include "ce3400a.h" + +USE LF_CESPI +END + +// Linee di sfondo + +SECTION GRAPHICS ODD + + LINEA -1 132 1 + BEGIN + PROMPT 1 7 "B" + END + + LINEA -1 132 1 + BEGIN + PROMPT 1 11 "" + END + + LINEA -1 132 1 + BEGIN + PROMPT 1 -3 "B" + END + +END + +// Testata + +SECTION HEADER ODD 11 + STRINGA -1 + BEGIN + KEY "Titolo" + PROMPT 1 1 "@bELENCO CESPITI FINE ESERCIZIO" + END + + LISTA F_SITUAZIONE + BEGIN + KEY "Situazione" + PROMPT 80 1 "" + ITEM "1|Situazione Fiscale" + ITEM "2|Situazione Civilistica" + ITEM "3|Situazione Gestionale" + END + + STRINGA F_CODDITTA + BEGIN + KEY "Codice ditta" + PROMPT 1 2 "@bDitta@r " + PICTURE "#####" + END + + STRINGA F_RAGSOC + BEGIN + KEY "Ragione sociale" + PROMPT 20 2 "" + END + + STRINGA F_ESERCIZIO + BEGIN + KEY "Esercizio" + PROMPT 1 3 "@bEsercizio@r " + END + + STRINGA F_DATAINIZIO + BEGIN + KEY "Inizio Esercizio" + PROMPT 20 3 "" + END + + STRINGA F_DATAFINE + BEGIN + KEY "Fine Esercizio" + PROMPT 33 3 "" + END + + STRINGA F_GRUPPO + BEGIN + KEY "Gruppo" + PROMPT 1 4 "@bGruppo@r " + PICTURE "#####" + END + + STRINGA F_D_GRUPPO + BEGIN + KEY "Descrizione Gruppo" + PROMPT 20 4 "" + END + + STRINGA F_SPECIE + BEGIN + KEY "Specie" + PROMPT 1 5 "@bSpecie@r " + END + + STRINGA F_D_SPECIE + BEGIN + KEY "Descrizione Specie" + PROMPT 20 5 "" + END + + STRINGA F_CODTAB + BEGIN + KEY "categoria o impianto" + PROMPT 1 6 "" + END + + STRINGA -1 + BEGIN + PROMPT 1 8 "@bCespite" + END + + STRINGA -1 + BEGIN + PROMPT 12 8 "Descrizione" + END + + STRINGA -1 + BEGIN + PROMPT 65 8 "Data Acq." + END + + STRINGA -1 + BEGIN + PROMPT 77 8 "Elem." + END + + STRINGA -1 + BEGIN + PROMPT 1 9 "@bCosto storico" + END + + STRINGA -1 + BEGIN + PROMPT 1 10 "@bTotale" + END + + STRINGA -1 + BEGIN + PROMPT 17 9 "Costo storico" + END + + STRINGA -1 + BEGIN + PROMPT 17 10 "Unitario" + END + + STRINGA -1 + BEGIN + PROMPT 33 9 "Valore" + END + + STRINGA -1 + BEGIN + PROMPT 33 10 "Ammortizzabile" + END + + STRINGA -1 + BEGIN + PROMPT 49 9 "Fondo" + END + + STRINGA -1 + BEGIN + PROMPT 49 10 "Ammortamento" + END + + STRINGA -1 + BEGIN + PROMPT 65 9 "Valore non pił" + END + + STRINGA -1 + BEGIN + PROMPT 65 10 "ammortizzabile" + END + + STRINGA -1 + BEGIN + PROMPT 81 9 "Fondo Privato" + END + + STRINGA -1 + BEGIN + PROMPT 81 10 "Ammortamento" + END + + STRINGA -1 + BEGIN + PROMPT 97 9 "Valore Privato" + END + + STRINGA -1 + BEGIN + PROMPT 97 10 "non ammortizz." + END + + STRINGA -1 + BEGIN + PROMPT 113 9 "Residuo da" + END + + STRINGA -1 + BEGIN + PROMPT 113 10 "ammortizzare" + END +END + +SECTION BODY ODD 3 + +STRING -1 +BEGIN + PROMPT 1 1 "" + FIELD IDCESPITE +END + +STRING -1 +BEGIN + PROMPT 12 1 "" + FIELD DESC +END + +STRING -1 +BEGIN + PROMPT 65 1 "" + FIELD DTCOMP +END + +NUMERO -1 5 +BEGIN + KEY "Numero elementi" + PROMPT 75 1 "" + FIELD LF_SALCE->NUMELE + PICTURE "####@" +END + +STRINGA -1 50 +BEGIN + PROMPT 81 1 "" + MESSAGE _INVCODTAB +END + +VALUTA 1 15 +BEGIN + PROMPT 1 2 "" + FIELD LF_SALCE->CSTO + PICTURE "###.###.###.##@" + MESSAGE ADD,BE->1 +END + +VALUTA 2 15 +BEGIN + PROMPT 17 2 "" + MESSAGE _NUMEXPR,IF(LF_SALCE->NUMELE>0;LF_SALCE->CSTO/LF_SALCE->NUMELE;0) + PICTURE "###.###.###.##@" +END + +VALUTA 3 15 +BEGIN + PROMPT 33 2 "" + MESSAGE _VALAMM + PICTURE "###.###.###.##@" + MESSAGE ADD,BE->3 +END + +VALUTA 4 15 +BEGIN + KEY "Fondo ammortamento" + PROMPT 49 2 "" + MESSAGE _NUMEXPR,LF_AMMCE->QNORP+LF_AMMCE->QACCP+LF_AMMCE->QANTP + PICTURE "###.###.###.##@" + MESSAGE ADD,BE->4 +END + +VALUTA 5 15 +BEGIN + KEY "Quote perse" + PROMPT 65 2 "" + FIELD LF_AMMCE->QPERSEP + PICTURE "###.###.###.##@" + MESSAGE ADD,BE->5 +END + +VALUTA 6 15 +BEGIN + KEY "Fondo ammortamento private" + PROMPT 81 2 "" + FIELD LF_AMMCE->FPRIVATOP + PICTURE "###.###.###.##@" + MESSAGE ADD,BE->6 +END + +VALUTA 7 15 +BEGIN + KEY "Quote perse private" + PROMPT 97 2 "" + FIELD LF_AMMCE->QPPRIVATEP + PICTURE "###.###.###.##@" + MESSAGE ADD,BE->7 +END + +VALUTA 8 15 +BEGIN + KEY "Residuo da ammortizzare" + PROMPT 113 2 "" + MESSAGE _NUMEXPR,#3-#4-#5-#6-#7 + PICTURE "###.###.###.##@" + MESSAGE ADD,BE->8 +END + +END + +SECTION BODY EVEN 2 + +STRING F_CODTAB +BEGIN + PROMPT 1 1 "@bTOTALE " +END + +VALUTA 1 15 +BEGIN + PROMPT 1 2 "" + PICTURE "###.###.###.##@" +END + +VALUTA 3 15 +BEGIN + PROMPT 33 2 "" + PICTURE "###.###.###.##@" +END + +VALUTA 4 15 +BEGIN + PROMPT 49 2 "" + PICTURE "###.###.###.##@" +END + +VALUTA 5 15 +BEGIN + PROMPT 65 2 "" + PICTURE "###.###.###.##@" +END + +VALUTA 6 15 +BEGIN + PROMPT 81 2 "" + PICTURE "###.###.###.##@" +END + +VALUTA 7 15 +BEGIN + PROMPT 97 2 "" + PICTURE "###.###.###.##@" +END + +VALUTA 8 15 +BEGIN + PROMPT 113 2 "" + PICTURE "###.###.###.##@" +END + +END + +SECTION FOOTER ODD 3 + +DATA -1 +BEGIN + PROMPT 1 2 "@bData@r " + MESSAGE _TODAY +END + +NUMERO -1 +BEGIN + PROMPT 120 2 "@bPagina@r " + MESSAGE _PAGENO +END + +END + diff --git a/ce/ceprassi.men b/ce/ceprassi.men index 0fa9be335..c978974a2 100755 --- a/ce/ceprassi.men +++ b/ce/ceprassi.men @@ -104,20 +104,20 @@ Caption = "Stampe giornaliere" Picture = Module = 11 Flags = "" -Item_01 = "Lista cespiti", "", "" -Item_02 = "Lista movimenti", "", "" -Item_03 = "Lista cespiti ad uso promiscuo", "", "" -Item_04 = "Lista cespiti a fine esercizio", "", "" +Item_01 = "Lista cespiti", "ce3 -4", "F" +Item_02 = "Lista movimenti", "ce3 -5", "F" +Item_03 = "Lista cespiti ad uso promiscuo", "ce3 -6", "F" +Item_04 = "Lista cespiti a fine esercizio", "ce3 -7", "F" [PRASSICE_011] Caption = "Stampe di fine esercizio" Picture = Module = 11 Flags = "" -Item_01 = "Scheda storico cespite", "ce3 -1", "" -Item_02 = "Prospetto cespiti", "ce3 -2", "" -Item_03 = "Prospetto rivalutazioni", "", "" -Item_04 = "Registro cespiti", "ce3 -0", "" +Item_01 = "Scheda storico cespite", "ce3 -1", "F" +Item_02 = "Prospetto cespiti", "ce3 -2", "F" +Item_03 = "Prospetto rivalutazioni", "ce3 -3", "F" +Item_04 = "Registro cespiti", "ce3 -0", "F" [PRASSICE_012] Caption = "Servizi" diff --git a/ce/cetbcce.uml b/ce/cetbcce.uml index 9cde5a5b2..ea16b6187 100755 --- a/ce/cetbcce.uml +++ b/ce/cetbcce.uml @@ -4,8 +4,7 @@ TOOLBAR "" 0 -4 0 4 BUTTON DLG_ATTIV 10 2 BEGIN - PROMPT -16 -3 "Attivitį" -// MESSAGE RUN + PROMPT -16 -3 "~Attivitį" END #include @@ -25,17 +24,7 @@ BEGIN PROMPT 2 1 "Codice esercizio " FLAGS "Z" KEY 1 - FIELD CODTAB -/* USE CCE - JOIN ESC ALIAS 105 INTO CODTAB==CODTAB - INPUT CODTAB F_CODESER - DISPLAY "Codice esercizio" CODTAB - DISPLAY "Data inizio esercizio" 105@->D0 - DISPLAY "Data fine esercizio" 105@->D1 - OUTPUT F_CODESER CODTAB - OUTPUT F_DATAINI 105@->D0 - OUTPUT F_DATAFINE 105@->D1 */ - + FIELD CODTAB USE ESC INPUT CODTAB F_CODESER DISPLAY "Codice esercizio" CODTAB @@ -47,22 +36,6 @@ BEGIN CHECKTYPE FORCED END -/*NUMBER F_CODESERCONT 4 -BEGIN - PROMPT 2 1 "Codice esercizio " - FLAGS "HZ" - KEY 1 - USE ESC - INPUT CODTAB F_CODESERCONT - DISPLAY "Codice esercizio" CODTAB - DISPLAY "Data inizio esercizio" D0 - DISPLAY "Data fine esercizio" D1 - OUTPUT F_CODESERCONT CODTAB - OUTPUT F_DATAINI D0 - OUTPUT F_DATAFINE D1 - CHECKTYPE REQUIRED - MESSAGE COPY,F_CODESER -END */ DATE F_DATAINI BEGIN diff --git a/ce/cgr.txt b/ce/cgr.txt new file mode 100755 index 000000000..1dc0292c4 --- /dev/null +++ b/ce/cgr.txt @@ -0,0 +1,34 @@ +[Header] +Version=199517 +Fields=COD,3|CODTAB,25|S0,70|S1,70|S2,70|S3,70|S4,20|S5,20|S6,5|S7,5 +Fields=S8,5|S9,5|S10,5|S11,5|I0,7|I1,7|I2,7|I3,7|I4,7|I5,7 +Fields=I6,7|I7,7|I8,7|I9,7|I10,7|I11,7|I12,7|I13,7|I14,7|R0,18 +Fields=R1,18|R2,18|R3,18|R4,18|R5,18|R6,18|R7,18|R8,18|R9,18|R10,18 +Fields=R11,18|R12,18|R13,18|R14,18|R15,18|R16,18|R17,18|R18,18|R19,18|D0,10 +Fields=D1,10|D2,10|D3,10|D4,10|B0,1|B1,1|B2,1|B3,1|B4,1|B5,1 +Fields=B6,1|B7,1|B8,1|B9,1|FPC,1 + +[Data] +CGR|01|INDUSTRIE AGRARIE E BOSCHIVE|||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||X +CGR|02|INDUSTRIE ZOOTECNICHE|||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||X +CGR|03|INDUSTRIE DELLA PESCA E DELLA CACCIA|||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||X +CGR|04|INDUSTRIE ESTRATTIVE DI MINERALI METALLIFERI E NON METALLIF.|||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||X +CGR|05|INDUSTRIE MANIFATTURIERE ALIMENTARI|||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||X +CGR|06|INDUSTRIE MANIFATTURIERE DEL LEGNO|||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||X +CGR|07|INDUSTRIE MANIFATTURIERE METALLURGICHE E MECCANICHE|||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||X +CGR|08|INDUSTRIE MANIFATTURIERE DEI MINERALI NON METALLIFERI|||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||X +CGR|09|INDUSTRIE MANIFATTURIERE CHIMICHE|||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||X +CGR|10|INDUSTRIE MANIFATTURIERE DELLA CARTA|||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||X +CGR|11|INDUSTRIE MANIFATTURIERE DELLE PELLI E DEL CUOIO|||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||X +CGR|12|INDUSTRIE MANIFATTURIERE TESSILI|||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||X +CGR|13|INDUSTRIE MANIFATTURIERE DEL VESTIARIO,ABBIGLIAM.,ARREDAM.|||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||X +CGR|14|IND. MANIFATTURIERE DELLA GOMMA,GUTTAPERCA,MATERIE PLASTICHE|||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||X +CGR|15|INDUSTRIE POLIGRAFICHE, EDITORIALI ED AFFINI|||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||X +CGR|16|INDUSTRIE EDILIZIE|||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||X +CGR|17|INDUSTRIE DELL'ENERGIA ELETTRICA;DEL GAS E DELL'ACQUA|||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||X +CGR|18|INDUSTRIE DEI TRASPORTI E DELLE COMUNICAZIONI|||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||X +CGR|19|ALBERGHI-RISTORANTI-BAR E ATTIVITA' AFFINI|||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||X +CGR|20|SERVIZI CULTURALI,SPORTIVI E RICREATIVI|||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||X +CGR|21|SERVIZI SANITARI|||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||X +CGR|22|SERVIZI IGIENICI ALLA PERSONA E DOMESTICI|||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||X +CGR|99|ATTIVITA' NON PRECEDENTEMENTE SPECIFICATE|||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||X diff --git a/ce/clm.txt b/ce/clm.txt new file mode 100755 index 000000000..40d8f7100 --- /dev/null +++ b/ce/clm.txt @@ -0,0 +1,12 @@ +[Header] +Version=199517 +Fields=COD,3|CODTAB,25|S0,70|S1,70|S2,70|S3,70|S4,20|S5,20|S6,5|S7,5 +Fields=S8,5|S9,5|S10,5|S11,5|I0,7|I1,7|I2,7|I3,7|I4,7|I5,7 +Fields=I6,7|I7,7|I8,7|I9,7|I10,7|I11,7|I12,7|I13,7|I14,7|R0,18 +Fields=R1,18|R2,18|R3,18|R4,18|R5,18|R6,18|R7,18|R8,18|R9,18|R10,18 +Fields=R11,18|R12,18|R13,18|R14,18|R15,18|R16,18|R17,18|R18,18|R19,18|D0,10 +Fields=D1,10|D2,10|D3,10|D4,10|B0,1|B1,1|B2,1|B3,1|B4,1|B5,1 +Fields=B6,1|B7,1|B8,1|B9,1|FPC,1 + +[Data] +CLM|19971231||||||||||||||||||||||||||||18075.99|25822.84|4131.66|2065.83|||||||||||||||||||||||||||||||| diff --git a/ce/clm_lire.txt b/ce/clm_lire.txt new file mode 100755 index 000000000..2084c395b --- /dev/null +++ b/ce/clm_lire.txt @@ -0,0 +1,12 @@ +[Header] +Version=199517 +Fields=COD,3|CODTAB,25|S0,70|S1,70|S2,70|S3,70|S4,20|S5,20|S6,5|S7,5 +Fields=S8,5|S9,5|S10,5|S11,5|I0,7|I1,7|I2,7|I3,7|I4,7|I5,7 +Fields=I6,7|I7,7|I8,7|I9,7|I10,7|I11,7|I12,7|I13,7|I14,7|R0,18 +Fields=R1,18|R2,18|R3,18|R4,18|R5,18|R6,18|R7,18|R8,18|R9,18|R10,18 +Fields=R11,18|R12,18|R13,18|R14,18|R15,18|R16,18|R17,18|R18,18|R19,18|D0,10 +Fields=D1,10|D2,10|D3,10|D4,10|B0,1|B1,1|B2,1|B3,1|B4,1|B5,1 +Fields=B6,1|B7,1|B8,1|B9,1|FPC,1 + +[Data] +CLM|19971231||||||||||||||||||||||||||||35000000.00|50000000.00|8000000.00|4000000.00|||||||||||||||||||||||||||||||| diff --git a/ce/f142.trr b/ce/f142.trr index 28c1c985c..d8d04ca17 100755 --- a/ce/f142.trr +++ b/ce/f142.trr @@ -24,6 +24,6 @@ RIVGC|4|18|3|Rivalutazione generica civilistica STAMPATO|8|1|0|Stampato su almeno un bollato in esercizi passati (STBOLLATO) NUMREG|3|7|0|Numero di registrazione corrispondente di prima nota 3 -IDMOV+IDRET| +IDMOV| IDCESPITE+IDMOV| NUMREG+IDMOV| diff --git a/ce/tmc.txt b/ce/tmc.txt new file mode 100755 index 000000000..7ee8febda --- /dev/null +++ b/ce/tmc.txt @@ -0,0 +1,20 @@ +[Header] +Version=199517 +Fields=COD,3|CODTAB,25|S0,70|S1,70|S2,70|S3,70|S4,20|S5,20|S6,5|S7,5 +Fields=S8,5|S9,5|S10,5|S11,5|I0,7|I1,7|I2,7|I3,7|I4,7|I5,7 +Fields=I6,7|I7,7|I8,7|I9,7|I10,7|I11,7|I12,7|I13,7|I14,7|R0,18 +Fields=R1,18|R2,18|R3,18|R4,18|R5,18|R6,18|R7,18|R8,18|R9,18|R10,18 +Fields=R11,18|R12,18|R13,18|R14,18|R15,18|R16,18|R17,18|R18,18|R19,18|D0,10 +Fields=D1,10|D2,10|D3,10|D4,10|B0,1|B1,1|B2,1|B3,1|B4,1|B5,1 +Fields=B6,1|B7,1|B8,1|B9,1|FPC,1 + +[Data] +TMC|A|Acquisto cespite|||||O NOOSSNNNNNN|I|+|||||1||||||||||||||||||||||||||||||||||||||||X|X|X|X| | ||||| +TMC|T|Trasferimento Cespite|||||S SSSSSSSSSSS||=|||||1||||||||||||||||||||||||||||||||||||||||X|X|X|X| | ||||| +TMC|C|Sostenimento costi|||||N NSOSNNNNNNN|I|+|||||1|||||||||||||||||||||||||||||||||||||||| |X|X|X| | ||||| +TMC|M|Rettifica acq. esercizio precedente|||||S NSSNNNNNNNS||=|||||1||||||||||||||||||||||||||||||||||||||||X|X|X| |X| ||||| +TMC|V|Vendita Cespite|||||O OOSSSSSSSSS|E|-|||||1||||||||||||||||||||||||||||||||||||||||X|X| | |X|X||||| +TMC|B|Rettifica acquisto Cespite|||||O NSSSNNNNNNN|I|=|A||||2||||||||||||||||||||||||||||||||||||||||X|X|X| | | ||||| +TMC|R|Rivalutazione|||||N SNSSSSSSSSS|R|+|||||1||||||||||||||||||||||||||||||||||||||||X| | | | | ||||| +TMC|Z|Rettifica vendita Cespite|||||O SSSSSSSSSSS|E|=|V||||2||||||||||||||||||||||||||||||||||||||||X| | | |X| ||||| +TMC|E|Eliminazione dal processo produttivo|||||N NOOSSSSSSSS|E|-|||||1||||||||||||||||||||||||||||||||||||||||X|X|X| |X|X||||| diff --git a/cg/cg0500a.uml b/cg/cg0500a.uml index 9cb7592f5..dcd089734 100755 --- a/cg/cg0500a.uml +++ b/cg/cg0500a.uml @@ -333,6 +333,12 @@ BEGIN FIELD MOVIND END +BOOLEAN F_SOLAIVA +BEGIN + PROMPT 2 18 "Movimento di sola IVA" + FIELD SOLOIVA +END + ENDPAGE ENDMASK diff --git a/cg/cg1200.cpp b/cg/cg1200.cpp index 50dca1453..4abc8858a 100755 --- a/cg/cg1200.cpp +++ b/cg/cg1200.cpp @@ -222,6 +222,8 @@ bool TPrintclifo_app::preprocess_page(int file, int counter) if (!_telex.empty()) _telex << "/"; _telex << get_field(LF_CLIFO, CLI_TELEX); _email = get_field(LF_CLIFO, CLI_MAIL); + const int at = _email.find('@'); + if (at > 0) _email.insert("@", at); // Raddoppia la chiocciola! _indir = get_field(LF_CLIFO, CLI_INDCF); g_ric = atoi(get_field(LF_CLIFO, CLI_GRUPPORIC)); c_ric = atoi(get_field(LF_CLIFO, CLI_CONTORIC)); diff --git a/cg/cg1500.cpp b/cg/cg1500.cpp index 82862b4e9..362580db8 100755 --- a/cg/cg1500.cpp +++ b/cg/cg1500.cpp @@ -3363,7 +3363,6 @@ void TStampa_bilanci::stampa_totali() //per i conti patrimoniali stampo anche lo sbilancio es. precedente void TStampa_bilanci::stampa_totali_uno(const real& r1,const real& r2) { - const TString16 dep; real pareggio; real sbilancio = _tot_dare - r1 - (_tot_avere - r2); real sbilprec = r2 - r1; @@ -3387,6 +3386,7 @@ void TStampa_bilanci::stampa_totali_uno(const real& r1,const real& r2) _cambiato_conto_1 = TRUE; _cambiato_conto_2 = TRUE; + const char* dep = ""; set_row(_i++, (const char*)dep); set_row(_i++, (const char*)dep); set_row(_i++, (const char*)dep); diff --git a/cg/cg2100.cpp b/cg/cg2100.cpp index 501f89cde..80f3a9f81 100755 --- a/cg/cg2100.cpp +++ b/cg/cg2100.cpp @@ -16,6 +16,8 @@ #include #include +#define NEW_CESP 1 + /////////////////////////////////////////////////////////// // Dati incasso immediato /////////////////////////////////////////////////////////// @@ -356,7 +358,9 @@ bool TPrimanota_application::read_caus(const char* cod, int year) const char tipo = nriga == 1 ? 'T' : ' '; if (nriga == 1 && tc.tipo() > ' ' && tc.ok()) + { m->set(tc.tipo() == 'C' ? F_CLIENTE : F_FORNITORE, tc.sottoconto()); + } set_cgs_row(-1,zero,tc,desc,tipo); } } @@ -484,12 +488,8 @@ void TPrimanota_application::init_mask(TMask& m) // Show/Hide campi valuta: F_VALUTAINTRA, F_CAMBIOINTRA, F_CORRLIRE, F_CORRVAL (GROUP 4) m.show(-4, causale().valintra()); -/* if (god_mode("IntraAutoIva")) - { - if (m.insert_mode() && causale().valintra() && !causale().intra()) - m.set(F_SOLAIVA, "X", TRUE); // Propone movimento di sola iva - } -*/ + if (causale().soloiva()) + m.set(F_SOLAIVA, "X", TRUE); // Propone movimento di sola iva m.show(F_CODIVA, m.insert_mode()); // Codice IVA standard @@ -535,8 +535,6 @@ void TPrimanota_application::init_query_mode(TMask& m) else { m.set(F_DATAREG, _last_dreg); - // DATACOMP new way - // m.set(F_DATACOMP, _last_dcom); } _incasso->_step = 0; // Azzera flag di incasso immediato @@ -1266,6 +1264,8 @@ long TPrimanota_application::calcola_m770(int tipo_coll, real& spese, real& comp { if (m770 != 5) spese += imponibile; + else + compenso += imponibile; // MM000025 } else compenso += imponibile; @@ -1568,7 +1568,8 @@ void TPrimanota_application::ini2mask(TConfig& ini, TMask& msk, bool query) void TPrimanota_application::mask2ini(const TMask& msk, TConfig& ini) { TRelation_application::mask2ini(msk, ini); - + +#ifndef NEW_CESP const char mov_cesp = causale().link_cespiti(); if (mov_cesp > ' ') { @@ -1580,7 +1581,8 @@ void TPrimanota_application::mask2ini(const TMask& msk, TConfig& ini) ini.set("INIZIOES", annoes.inizio()); ini.set("FINEES", annoes.fine()); } - +#endif + int i, f; for (i = 0; i < _rel->cg_items(); i++) { @@ -1595,12 +1597,14 @@ void TPrimanota_application::mask2ini(const TMask& msk, TConfig& ini) ini.set(name, rec.get(name)); } +#ifndef NEW_CESP const TBill zio(rec); ini.set("DESCRCONTO", zio.descrizione()); ini.set("TIPOCR", zio.tipo_cr()); const TBill french(rec, TRUE); ini.set("DESCRCONTOC", french.descrizione()); +#endif } for ( ; ; i++) { @@ -1672,10 +1676,15 @@ bool TPrimanota_application::link_cesp(const TMask& msk, const char* action) return FALSE; // Controlla l'esistenza del programma cespiti +#ifdef NEW_CESP + if (!fexist("ce1.exe")) + return FALSE; +#else if (!fexist("cespcg.exe")) return FALSE; +#endif - // Cerca una riga con tipo costo/ricavo + // Cerca una riga con tipo costo/ricavo 2,3,4,8 for (int i = _rel->cg_items()-1; i >= 0; i--) { const TRectype& rec = _rel->cg(i); @@ -1691,14 +1700,23 @@ bool TPrimanota_application::link_cesp(const TMask& msk, const char* action) cespini.tempdir(); cespini.add("ActCsp.ini"); - TConfig cespo(cespini, "Transaction"); - cespo.set("Action", action); - mask2ini(msk, cespo); + if (action && *action) // Dummy test + { + TConfig cespo(cespini, "Transaction"); + cespo.set("Action", action); + mask2ini(msk, cespo); + } TString appname; +#ifdef NEW_CESP + appname << "ce1 -4 /c" << cespini; + TExternal_app app(appname); + bool ok = app.run(); +#else appname << "cespcg -t /i" << cespini; TExternal_app app(appname); bool ok = app.run(FALSE, 0x3) == 0; // Force user name! +#endif return ok; } diff --git a/cg/cg2100a.uml b/cg/cg2100a.uml index 2cbb9e0f8..e07b39cdd 100755 --- a/cg/cg2100a.uml +++ b/cg/cg2100a.uml @@ -33,27 +33,9 @@ BEGIN FLAGS "R" END -NUMBER F_NUMREG 7 -BEGIN - PROMPT 3 6 "Numero operazione " - HELP "Numero del movimento di prima nota da gestire" - FLAGS "R" - FIELD LF_MOV->NUMREG - USE LF_MOV - INPUT NUMREG F_NUMREG - DISPLAY "Numero@7" NUMREG - DISPLAY "Data@10" DATAREG - DISPLAY "Causale" CODCAUS - DISPLAY "Documento" NUMDOC - DISPLAY "Protoc." PROTIVA - DISPLAY "Descrizione@50" DESCR - OUTPUT F_NUMREG NUMREG - KEY 1 -END - DATE F_DATAREG BEGIN - PROMPT 3 8 "Data operazione " + PROMPT 3 6 "Data operazione " CHECKTYPE REQUIRED HELP "Data in cui viene registrata l'operazione" MESSAGE COPY,F_ANNOIVA,7,10 @@ -61,29 +43,13 @@ END NUMBER F_ANNOIVA 4 BEGIN - PROMPT 52 8 "Anno IVA " + PROMPT 52 6 "Anno IVA " FLAGS "D" END - -/* DATACOMP new way -DATE F_DATACOMP -BEGIN - PROMPT 3 9 "Data di competenza " - HELP "Data di competenza dell'operazione" - CHECKTYPE REQUIRED -END - -NUMBER F_ANNOES 4 -BEGIN - PROMPT 52 9 "Codice esercizio " - FLAGS "DRZ" -END -*/ - STRING F_CODCAUS 3 BEGIN - PROMPT 3 10 "Causale " + PROMPT 3 8 "Causale " FLAGS "UZ" FIELD CODCAUS USE LF_CAUSALI @@ -101,7 +67,7 @@ END STRING F_DESCRCAUS 50 BEGIN - PROMPT 23 10 "" + PROMPT 23 8 "" USE LF_CAUSALI KEY 2 CHECKTYPE NORMAL INPUT DESCR F_DESCRCAUS @@ -112,6 +78,39 @@ BEGIN COPY OUTPUT F_CODCAUS ADD RUN cg0 -4 END + +NUMBER F_NUMREG 7 +BEGIN + PROMPT 3 10 "Numero operazione " + HELP "Numero del movimento di prima nota da gestire" + FLAGS "R" + FIELD LF_MOV->NUMREG + USE LF_MOV + INPUT NUMREG F_NUMREG + DISPLAY "Numero@7" NUMREG + DISPLAY "Data@10" DATAREG + DISPLAY "Causale" CODCAUS + DISPLAY "Documento" NUMDOC + DISPLAY "Protoc." PROTIVA + DISPLAY "Descrizione@50" DESCR + OUTPUT F_NUMREG NUMREG + KEY 1 +END + +/* DATACOMP new way +DATE F_DATACOMP +BEGIN + PROMPT 3 9 "Data di competenza " + HELP "Data di competenza dell'operazione" + CHECKTYPE REQUIRED +END + +NUMBER F_ANNOES 4 +BEGIN + PROMPT 52 9 "Codice esercizio " + FLAGS "DRZ" +END +*/ ENDPAGE diff --git a/cg/cg2100o.uml b/cg/cg2100o.uml index d5732450b..202c048ba 100755 --- a/cg/cg2100o.uml +++ b/cg/cg2100o.uml @@ -5,6 +5,7 @@ PAGE "Dati cliente/fornitore occasionale" -1 -1 72 14 STRING O_CODICE 16 BEGIN PROMPT 2 1 "Codice fiscale / Partita IVA / Codice progressivo " + FLAGS "U" USE LF_OCCAS INPUT CFPI O_CODICE DISPLAY "Codice@16" CFPI diff --git a/cg/cg2102.cpp b/cg/cg2102.cpp index 6243ad4ad..bf2ccdeb1 100755 --- a/cg/cg2102.cpp +++ b/cg/cg2102.cpp @@ -653,7 +653,6 @@ bool TPrimanota_application::cg_handler(TMask_field& f, KEY k) if (errato && a._as400 && speso.is_zero()) errato = FALSE; -/* Richiesto da Cover ed inculato da PRASSI if (nota && errato && speso.is_zero()) { const int annorif = m.get_int(F_ANNORIF); @@ -665,7 +664,6 @@ bool TPrimanota_application::cg_handler(TMask_field& f, KEY k) errato = !a.crea_partita(bill, annorif, numrif, currig, importo); } } -*/ if (errato) { @@ -971,7 +969,7 @@ bool TPrimanota_application::cg_notify(TSheet_field& cg, int r, KEY k) const TString desc(a.causale().desc_agg(k)); const char sez = a.causale().sezione(k); const real imp(cg.mask().get(K_RESIDUO)); - TImporto importo(sez, imp); + TImporto importo(sez, imp); importo.normalize(); a.set_cgs_row(r, importo, conto, desc, tipo); if (tipo == 'K') @@ -1690,11 +1688,12 @@ bool TPrimanota_application::num_handler(TMask_field& f, KEY key) a._skip_giornale_check = FALSE; a._skip_bollato_check = FALSE; - const long max = a._lastreg+1; - const long num = f.empty() ? max : atol(f.get()); - if (num < max) - { - if (a.find(1)) +// const long max = a._lastreg+1; +// const long num = f.empty() ? max : atol(f.get()); +// if (num < max) +// { +// if (a.find(1)) + if (!cache().get(LF_MOV, f.get()).empty()) { const TLocalisamfile& mov = a._rel->lfile(); bool ok = TRUE; @@ -1737,14 +1736,17 @@ bool TPrimanota_application::num_handler(TMask_field& f, KEY key) m.stop_run(K_FORCE_CLOSE); } return ok; + } + else + { } } - else if (num > max) +/* else if (num > max) { f.set(format("%ld", max)); return f.error_box("Non e' possibile inserire movimenti superiori al %ld", max); - } - } + } */ +// } return TRUE; } @@ -1764,12 +1766,12 @@ bool TPrimanota_application::caus_query_handler(TMask_field& f, KEY key) const TipoIVA i = app().cau2IVA(cau, ann); // Cerca causale e suo tipo if (i != iva_errata) { - const bool ok = suspended_handler(f, key); // Controlla sospensione +/* const bool ok = suspended_handler(f, key); // Controlla sospensione if (ok && key == K_TAB) { f.set_focusdirty(FALSE); return f.mask().stop_run(K_INS); // Entra in modo inserimento - } + } */ } else { @@ -2205,13 +2207,13 @@ bool TPrimanota_application::clifo_handler(TMask_field& f, KEY key) TEdit_field& upi = m.efield(F_RIEPILOGO); upi.check_type(alleg == 3 ? CHECK_REQUIRED : CHECK_NORMAL); - if (f.focusdirty() && m.is_running()) + TEdit_field& cp = m.efield(F_CODPAG); + if ((f.focusdirty() && m.is_running()) || (cp.empty() && !m.is_running())) { - const TString& oldpag = m.get(F_CODPAG); + const TString& oldpag = cp.get(); const TString& s = clifo.get(CLI_CODPAG); if (s != oldpag) { - TEdit_field& cp = m.efield(F_CODPAG); if (cp.active()) // Se il campo F_CODPAG e' attivo { cp.set(s); // Setta il codice di pagamento sulla maschera @@ -2547,14 +2549,16 @@ HIDDEN void inventa_cambio_intra(TMask& m) { TTable cam("CAM"); cam.put("CODTAB", codval); - int err = cam.read(_isgteq); - if (err == NOERR) + const int err = cam.read(_isgteq); + bool yes = err != NOERR; + if (!yes) { TString16 v = cam.get("CODTAB"); v.cut(3).rtrim(); - if (v != codval) - m.set(F_CAMBIOINTRA, cache().get("%VAL", codval, "S4")); + yes = v != codval; } + if (yes) + m.set(F_CAMBIOINTRA, cache().get("%VAL", codval, "S4")); } } diff --git a/cg/cg2103.cpp b/cg/cg2103.cpp index 0eba3b34a..8bdff7c14 100755 --- a/cg/cg2103.cpp +++ b/cg/cg2103.cpp @@ -33,14 +33,7 @@ bool TCausale::read(const char* cod, int year) if (*cod > ' ') { int err; -/* - TLocalisamfile caus(LF_CAUSALI); - caus.put(CAU_CODCAUS, cod); - err = caus.read(); - if (err != NOERR) - return FALSE; - _rec = caus.curr(); -*/ + _rec = cache().get(LF_CAUSALI, cod); if (_rec.empty()) return FALSE; @@ -58,12 +51,6 @@ bool TCausale::read(const char* cod, int year) add(rcaus.curr(), riga); } -/* - rcaus.zero(); - for (int riga = 1; riga < size(); riga++) // Fill gaps - if (row(riga) == NULL) add(rcaus.curr(), riga); -*/ - const TString16 codreg(_rec.get(CAU_REG)); const bool ok = _reg.read(codreg, year); // Read register if (!ok && codreg.not_empty()) @@ -101,12 +88,6 @@ const char* TCausale::desc_agg(int num) const const TString& cod = rec->get(RCA_CODDESC); if (cod.not_empty()) { -/* - TTable da("%DPN"); - da.put("CODTAB", cod); - if (da.read() == NOERR) - deag = da.get("S0"); -*/ const TRectype& da = cache().get("%DPN", cod); deag = da.get("S0"); } @@ -146,6 +127,9 @@ bool TCausale::intra() const bool TCausale::valintra() const { return _rec.get_bool(CAU_VALINTRA); } +bool TCausale::soloiva() const +{ return _rec.get_bool(CAU_SOLOIVA); } + const TString& TCausale::causale_inc_imm() const { return _rec.get(CAU_CODCAUSIM); } @@ -168,10 +152,6 @@ bool TCausale::ok() const { if (iva() == iva_errata) return FALSE; -/* Non segnalare piu' questa incongruenza di poco conto - if (corrispettivi() != reg().corrispettivi()) - return error_box("Tipo documento e registro incongruenti per i corrispettivi"); -*/ return TRUE; } diff --git a/cg/cg2103.h b/cg/cg2103.h index 4c0aff052..58f6bfe11 100755 --- a/cg/cg2103.h +++ b/cg/cg2103.h @@ -37,6 +37,7 @@ public: bool valuta() const; bool intra() const; bool valintra() const; + bool soloiva() const; const TString& causale_inc_imm() const; const TString& tipo_doc() const; diff --git a/cg/cg2104.cpp b/cg/cg2104.cpp index 2bc5e7337..932d89ad6 100755 --- a/cg/cg2104.cpp +++ b/cg/cg2104.cpp @@ -328,10 +328,7 @@ bool TPrimanota_application::codpag_handler(TMask_field& f, KEY key) if (set_scad && f.get().empty()) { f.error_box("Il codice di pagamento e' obbligatorio!"); -/* - "Se possibile esso verra' proposto, ma potra'\n" - "essere modificato prima di registrare il movimento."); -*/ + const char typ = a.clifo(); const long cod = m.get_long(typ == 'C' ? F_CLIENTE : F_FORNITORE); @@ -368,10 +365,6 @@ bool TPrimanota_application::annorif_handler(TMask_field& f, KEY key) const TString& anno = m.get(F_DATADOC).right(4); f.set(anno); ok = error_box("L'anno di riferimento partita e' obbligatorio!"); -/* - "Se possibile esso verra' proposto, ma potra'\n" - "essere modificato prima di registrare il movimento."); -*/ } } return ok; @@ -1123,8 +1116,9 @@ bool TPrimanota_application::notify_edit_pagamento(TPartita& p, TRectype& new_pa const TRiga_partite& somma = p.riga(nrigp); const int riga_contabile = somma.get_int(PART_NUMRIG); // Riga movimento TSheet_field& sheet = cgs(); + TBill new_conto; new_conto.get(new_pag, TRUE); - if (_as400) + if (_as400 || !new_conto.ok()) deleting = -1; // Ignora contropartite if (deleting >= 0) @@ -1137,17 +1131,23 @@ bool TPrimanota_application::notify_edit_pagamento(TPartita& p, TRectype& new_pa TBill old_conto; old_conto.get(old_pag, TRUE); const TImporto new_importo(controsez, new_pag.get_real(PAGSCA_IMPORTO)); - TBill new_conto; new_conto.get(new_pag, TRUE); if (old_importo != new_importo || old_conto != new_conto) { - const int old_riga = bill2pos(old_conto, 'I'); + int old_riga = bill2pos(old_conto, 'I'); if (old_riga >= 0) { const bool empty = sub_cgs_imp(old_riga, old_importo); if (empty && (new_importo.is_zero() || new_conto != old_conto)) sheet.destroy(old_riga); } + else + if (!old_importo.is_zero()) + { + TImporto imp = old_importo; imp.swap_section(); + set_cgs_row(old_riga, imp, old_conto, "", 'I'); + } + // Importo della contropartita if (!new_importo.is_zero() && new_conto.ok()) diff --git a/cg/cg2105.cpp b/cg/cg2105.cpp index 73cbc76b8..1af63805a 100755 --- a/cg/cg2105.cpp +++ b/cg/cg2105.cpp @@ -351,8 +351,10 @@ void TPay_mask::set_pag(const TRectype& oldpag, const TRiga_scadenze& scad, #else set_handler(S_GRUPPO, conto_handler); set_handler(S_CONTO, conto_handler); - const bool mostra_conto = !sum.is_nota_credito(); + const bool mostra_conto = !sum.is_nota_credito() && app().curr_mask().get_real(F_TOTALE) != ZERO; show(-2, mostra_conto); // mostra/nasconde conto contropartita + if (!mostra_conto) + reset(-2); #endif // Gestione data-pagamento: non puo' precedere la data del documento @@ -1831,7 +1833,7 @@ bool TGame_mask::edit_pagamento(TPartita& p, int nriga, int nrata, int nrigp) co TMask_field& imp = m.field(S_IMPORTO); imp.set_dirty(); imp.on_key(K_F8); - } + } KEY key = m.run(); diff --git a/cg/cg21sld.uml b/cg/cg21sld.uml index a53fd3aae..081ab5d98 100755 --- a/cg/cg21sld.uml +++ b/cg/cg21sld.uml @@ -163,8 +163,6 @@ BEGIN INPUT CODTAB[1,5] FS_VSABI COPY DISPLAY FS_NSABI OUTPUT FS_VSABI CODTAB[1,5] - OUTPUT FS_VSCAB CODTAB[6,10] - OUTPUT FS_DESCVSABI S0 CHECKTYPE NORMAL END diff --git a/cg/cg3.cpp b/cg/cg3.cpp index 7519ca0a4..d74cf5ebb 100755 --- a/cg/cg3.cpp +++ b/cg/cg3.cpp @@ -1,6 +1,6 @@ #include -#define __MAIN__ +#define __MAIN__ #include "cg3.h" int main(int argc,char** argv) @@ -9,13 +9,13 @@ int main(int argc,char** argv) switch (s) { case 1 : cg3200(argc,argv) ; break; // Stampa mastrini -// case 2 : cg3300(argc,argv) ; break; // Stampa allegati iva + case 2 : cg3300(argc,argv) ; break; // Stampa allegati iva case 3 : cg3400(argc,argv) ; break; // Stampa libro giornale case 4 : cg3500(argc,argv) ; break; // Stampa ripilogo gruppi conti case 5 : cg3600(argc,argv) ; break; // Visualizzazione mastrini case 6 : cg3700(argc,argv) ; break; // Lista fatture default: cg3100(argc,argv) ; break; // Lista movimenti - } + } exit(0); return 0; } diff --git a/cg/cg3200.cpp b/cg/cg3200.cpp index 705f2fb40..cb3b41776 100755 --- a/cg/cg3200.cpp +++ b/cg/cg3200.cpp @@ -102,14 +102,14 @@ class TMastrini_application : public TPrintapp real _saldo_movimenti,_saldo_progressivi,_totale_saldo,_riporto_footer_dare,_riporto_footer_avere; TString _ragsoc,_indulc,_civulc,_capulc,_com,_prov,_comulc; long _codice_ditta,_s_prec; - TString _tipodoc,_codcaus,_descrcaus,_descrdociva,_regiva,_g_contr,_c_contr,_s_contr; + TString _tipodoc,_codcaus,_descrcaus,_descrdociva,_regiva,_g_contr,_c_contr,_s_contr,_descrcontr; char _sezivd,_lettivd; TString _descrizione,_sezione,_numdoc,_descrizionemov,_numrivd,_descr; TString _dataregs, _datadocs; int _gruppocontr,_contocontr,_nummast,_pagina; long _sottocontocontr; - bool _stampaprogre,_stampatotiva,_stampatot,_stampa_mov_prov; + bool _stampaprogre,_stampatotiva,_stampatot,_stampa_mov_prov, _stampa_des_contro; bool _stampato,_devi_stampare_footer; int _annomsk,_annoesmsk,_annoes,_annomsksucc,_tipo_mask,_anno_ghost; @@ -1000,10 +1000,21 @@ void TMastrini_application::fai_stampa198() set_row (_rw,"@34g#7t", &_numdoc); set_row (_rw,"@42g#3t", &_codcaus); -// Stampa saldo movimenti - - set_row (_rw,"@151g#t", &_saldo_movimenti_str); - set_row (_rw,"@168g#t #t #t", &_g_contr, &_c_contr, &_s_contr); +// Stampa saldo movimenti / Descrizione contropartita + + if (_stampa_des_contro) + { + TConto tc (_gruppocontr,_contocontr,_sottocontocontr,_tipo_contr); + _descrcontr.cut(0); + _descrcontr << _g_contr << ' ' << _c_contr << ' ' << _s_contr << ' ' << tc.descrizione(); + _descrcontr.cut(47); + set_row (_rw,"@135g#t", &_descrcontr); + } + else + { + set_row (_rw,"@151g#t", &_saldo_movimenti_str); + set_row (_rw,"@168g#t #t #t", &_g_contr, &_c_contr, &_s_contr); + } } void TMastrini_application::stampa_totali132() @@ -1013,7 +1024,7 @@ void TMastrini_application::stampa_totali132() if (_nummast == 1 || _nummast == 3) _rw = 2; - sep.fill('-'); //Stampa 132 - (sep(132)) + sep.fill('_'); //Stampa 132 - (sep(132)) set_row(_rw++,"@0g%s", (const char*)sep); _totprogre_dare=_progredare+_totale_periodo_dare; @@ -1066,7 +1077,7 @@ void TMastrini_application::carica_array_totali132() _lista.add(r); r = ""; - sep.fill('-'); //Stampa 132 - (sep(132)) + sep.fill('_'); //Stampa 132 - (sep(132)) r.add("@0g%s"); r.add(sep); _lista.add(r); @@ -1205,7 +1216,7 @@ void TMastrini_application::stampa_totali198() _rw = 1; TString sep(198); - sep.fill('-'); //Stampa 198 - (sep(198)) + sep.fill('_'); //Stampa 198 - (sep(198)) set_row(_rw++,"@0g%s", (const char*)sep); _totprogre_dare=_progredare+_totale_periodo_dare; @@ -1213,17 +1224,22 @@ void TMastrini_application::stampa_totali198() set_row (_rw,"@32g%s@100g%r", trans("TOTALI PERIODO"), &_totale_periodo_dare); set_row (_rw,"@117g%r", &_totale_periodo_avere); - set_row (_rw++,"@151g%r", &_saldo_movimenti); + set_row (_rw,"@32g%s@100g%r", trans("TOTALI PROGRESSIVI"), &_totprogre_dare); set_row (_rw,"@117g%r", &_totprogre_avere); - set_row (_rw++,"@134g%r", &_saldo_progressivi); + + set_row (_rw++,"@135g%r", &_saldo_progressivi); + if (!_stampa_des_contro) + set_row (_rw++,"@151g%r", &_saldo_movimenti); + if (_stampaprogre) //Progressivi attuali { _saldo_progre_al = _totprogre_dare_al - _totprogre_avere_al; set_row(_rw,"@32g%s@55g%s", trans("TOTALI PROGRESSIVI AL"), _ultima_data_reg.string()); set_row (_rw,"@100g%r", &_totprogre_dare_al); set_row (_rw,"@117g%r", &_totprogre_avere_al); - set_row (_rw,"@134g%r", &_saldo_progressivi); + if (!_stampa_des_contro) + set_row (_rw,"@135g%r", &_saldo_progre_al); } _devi_stampare_footer = FALSE; } @@ -1242,7 +1258,7 @@ void TMastrini_application::carica_array_totali198() _lista.add(r); r = ""; - sep.fill('-'); //Stampa 132 - (sep(132)) + sep.fill('_'); //Stampa 132 - (sep(132)) r.add("@0g%s"); r.add(sep); _lista.add(r); @@ -1251,7 +1267,10 @@ void TMastrini_application::carica_array_totali198() _totprogre_dare=_progredare+_totale_periodo_dare; _totprogre_avere=_progreavere+_totale_periodo_avere; - r.add("@32g%s@100g%s@117g%s@151g%s"); + if (_stampa_des_contro) + r.add("@32g%s@100g%s@117g%s"); + else + r.add("@32g%s@100g%s@117g%s@151g%s"); r.add(trans("TOTALI PERIODO")); r.add(real2str(_totale_periodo_dare)); r.add(real2str(_totale_periodo_avere)); @@ -1259,7 +1278,10 @@ void TMastrini_application::carica_array_totali198() _lista.add(r); r = ""; - r.add("@32g%s@100g%s@117g%s@134g%s"); + if (_stampa_des_contro) + r.add("@32g%s@100g%s@117g%s"); + else + r.add("@32g%s@100g%s@117g%s@135g%s"); r.add(trans("TOTALI PROGRESSIVI")); r.add(real2str(_totprogre_dare)); r.add(real2str(_totprogre_avere)); @@ -1270,7 +1292,7 @@ void TMastrini_application::carica_array_totali198() if (_stampaprogre) //Progressivi attuali { _saldo_progre_al = _totprogre_dare_al - _totprogre_avere_al; - r.add("@32g%s@55g%s@100g%s@117g%s@134g%s"); + r.add("@32g%s@55g%s@100g%s@117g%s@135g%s"); r.add(trans("TOTALI PROGRESSIVI AL")); r.add(_ultima_data_reg.string()); r.add(real2str(_totprogre_dare_al)); @@ -1290,11 +1312,6 @@ void TMastrini_application::carica_array_totali198() _lista.add(r); r = ""; -// Guy: Real dick programmig! -// TString fmt ("@0g%s"); -// TString fmt1(format("@%dg", _ddociva_len)); -// fmt << fmt1 << "%15s"; - TString16 fmt; fmt << "@0g%s@" << _ddociva_len << "g%15s"; @@ -1371,8 +1388,10 @@ void TMastrini_application::stampa_totali198_II() TString arg2 (data.get(2)); TString arg3 (data.get(3)); TString arg4 (data.get(4)); + TString arg5 (data.get(5)); - set_row(_rw++,fmt, (const char*) arg1, (const char*) arg2, (const char*) arg3, (const char*) arg4); + set_row(_rw++,fmt, (const char*)arg1, (const char*)arg2, (const char*)arg3, + (const char*)arg4, (const char*)arg5); _indice_lista++; } @@ -1657,15 +1676,12 @@ bool TMastrini_application::preprocess_page(int file, int counter) { conto(_gruppocontr,_contocontr,FALSE); TConto tc (_gruppocontr,_contocontr,_sottocontocontr,_tipo_contr); - TString80 descr_contr = tc.descrizione(); - //set_row (1,"@42g%.18s", (const char*) _descrcaus); - //if (descr_contr != "Sconosciuto") - // set_row (1,"@61g%.23s", (const char*) descr_contr); + _descrcontr = tc.descrizione(); *_d18 = (const char*) _descrcaus; set_row (_rw,"@42g#a", _d18); - if (descr_contr != "Sconosciuto") + if (_descrcontr != "Sconosciuto") { - *_d22 = (const char*) descr_contr; + *_d22 = (const char*) _descrcontr; set_row (_rw,"@61g#a", _d22); } } @@ -1706,15 +1722,12 @@ bool TMastrini_application::preprocess_page(int file, int counter) { conto(_gruppocontr,_contocontr,FALSE); TConto tc (_gruppocontr,_contocontr,_sottocontocontr,_tipo_contr); - TString descr_contr = tc.descrizione(); - //set_row (1,"@46g%.23s", (const char*) _descrcaus); - //if (descr_contr != "Sconosciuto") - // set_row (1,"@70g%.30s", (const char*) descr_contr); + _descrcontr = tc.descrizione(); *_d22 = (const char*) _descrcaus; set_row (_rw,"@46g#a", _d22); - if (descr_contr != "Sconosciuto") + if (_descrcontr != "Sconosciuto") { - *_d30 = (const char*) descr_contr; + *_d30 = (const char*)_descrcontr; set_row (_rw,"@70g#a", _d30); } } @@ -1746,10 +1759,10 @@ bool TMastrini_application::preprocess_page(int file, int counter) { conto(_gruppocontr,_contocontr,FALSE); TConto tc (_gruppocontr,_contocontr,_sottocontocontr,_tipo_contr); - TString80 descr_contr = tc.descrizione(); + _descrcontr = tc.descrizione(); d18 = _descrcaus; - if (descr_contr != "Sconosciuto") - d23 = descr_contr; + if (_descrcontr != "Sconosciuto") + d23 = _descrcontr; } TParagraph_string d_18 (d18,18); @@ -1795,10 +1808,10 @@ bool TMastrini_application::preprocess_page(int file, int counter) { conto(_gruppocontr,_contocontr,FALSE); TConto tc (_gruppocontr,_contocontr,_sottocontocontr,_tipo_contr); - TString descr_contr = tc.descrizione(); + _descrcontr = tc.descrizione(); d23 = _descrcaus; - if (descr_contr != "Sconosciuto") - d30 = descr_contr; + if (_descrcontr != "Sconosciuto") + d30 = _descrcontr; } TParagraph_string d_23 (d23,23); @@ -2047,8 +2060,8 @@ bool TMastrini_application::preprocess_page(int file, int counter) _saldo_progressivi -= _saldo_progre_prec; _flag_del_cazzo = FALSE; } - else - set_row (_rw,"@134g%r", &_saldo_progressivi); + if (!_stampa_des_contro) + set_row (_rw,"@135g%r", &saldo_prog); } rmov.readat(rec); @@ -2456,6 +2469,7 @@ bool TMastrini_application::set_print(int) _tipostampa = _msk->get_int(F_TIPOSTAMPA); _numcarat = _msk->get_int(F_NUMCARAT); + _stampa_des_contro = (_numcarat==2) && _msk->get_bool(F_CONTRODES); _nummast = _msk->get_int(F_NUMMAST); _data_ini = _msk->get_date(F_DATAINI); _data_fine = _msk->get_date(F_DATAFINE); @@ -2788,7 +2802,7 @@ void TMastrini_application::crea_intestazione() if (_numcarat == 1) { - sep.fill('-'); //Stampa 132 - (sep(132)) + sep.fill('_'); //Stampa 132 - (sep(132)) set_header (6, (const char *) sep); set_header (7,"%s@19g%s@117g%s@132g%s", trans("Operazione"), trans("Documento"), trans("Contro"), trans("A")); @@ -2802,29 +2816,49 @@ void TMastrini_application::crea_intestazione() trans("Dare"), trans("Avere"), trans("Partita"), trans("Prot."), trans("C")); if (_stampa_mov_prov) set_header(8,"@130g%s", trans("P")); - sep.fill('-'); + sep.fill('_'); set_header (9, (const char *) sep); } else if (_numcarat == 2) { - sep1.fill('-'); //Stampa 198 - (sep1(198)) + sep1.fill('_'); //Stampa 198 - (sep1(198)) set_header (6,"@0g%s", (const char*)sep1); - set_header (7,"%s@23g%s@34g%s@169g%s@183g%s@190g%s@197g%s", - trans("Operazione"), trans("Data"), trans("Numero"), trans("Contro"), - trans("Reg"), trans("Numero"), trans("A")); + if (_stampa_des_contro) + { + set_header (7,"%s@23g%s@34g%s@183g%s@190g%s@197g%s", + trans("Operazione"), trans("Data"), trans("Numero"), + trans("Reg"), trans("Numero"), trans("A")); + } + else + { + set_header (7,"%s@23g%s@34g%s@169g%s@183g%s@190g%s@197g%s", + trans("Operazione"), trans("Data"), trans("Numero"), trans("Contro"), + trans("Reg"), trans("Numero"), trans("A")); + } if (_stampa_mov_prov) set_header(7,"@195g%s", trans("M")); set_header (8,trans("Data")); if (_stampanum < 3) set_header (8,"@11g%s", trans("Numero")); - set_header (8,"@23g%s@42g%s@70g%s@112g%s@127g%s@135g%s@152g%s@169g%s@183g%s@189g%s@197g%s", - trans("Documento"), trans("Cod.Causale"), trans("Descrizione"), trans("Dare"), trans("Avere"), - trans("Saldo progre."), trans("Saldo movim."), trans("Partita"), trans("Iva"), - trans("Protoc."), trans("C")); + + if (_stampa_des_contro) + { + set_header (8,"@23g%s@42g%s@70g%s@112g%s@127g%s@135g%s@183g%s@189g%s@197g%s", + trans("Documento"), trans("Cod.Causale"), trans("Descrizione"), trans("Dare"), trans("Avere"), + trans("Contropartita"), trans("Iva"), + trans("Protoc."), trans("C")); + } + else + { + set_header (8,"@23g%s@42g%s@70g%s@112g%s@127g%s@135g%s@152g%s@169g%s@183g%s@189g%s@197g%s", + trans("Documento"), trans("Cod.Causale"), trans("Descrizione"), trans("Dare"), trans("Avere"), + trans("Saldo progre."), trans("Saldo movim."), trans("Partita"), trans("Iva"), + trans("Protoc."), trans("C")); + } if (_stampa_mov_prov) set_header(8,"@195g%s", trans("P")); - sep1.fill('-'); + sep1.fill('_'); set_header (9,"@0g%s", (const char*)sep1); } @@ -2843,7 +2877,8 @@ void TMastrini_application::crea_intestazione() { set_header (10,"@70g%s@100g%s", trans("PROGRESSIVI PRECEDENTI"), real2str(_progredare)); set_header (10,"@117g%s", real2str(_progreavere)); - set_header (10,"@134g%s", real2str(_saldo_progre_prec)); + if (!_stampa_des_contro) + set_header (10,"@135g%s", real2str(_saldo_progre_prec)); } _riporto_dare = _progredare; _riporto_avere = _progreavere; @@ -2972,7 +3007,7 @@ int TMastrini_application::crea_intestazione(int start_riga) if (_numcarat == 1) { - sep.fill('-'); //Stampa 132 - (sep(132)) + sep.fill('_'); //Stampa 132 - (sep(132)) set_row (r++,"@1g%s", (const char *) sep); set_row (r++,"%s@19g%s@117g%s@131g%s", trans("Operazione"), trans("Documento"), trans("Contro"), trans("A")); @@ -2984,24 +3019,30 @@ int TMastrini_application::crea_intestazione(int start_riga) set_row (r++,"@19gData@30gNumero@38gCod.Causale@61gDescrizione@95gDare@111gAvere@117gPartita@131gC"); if (_stampa_mov_prov) set_header(r-1,"@130gP"); - sep.fill('-'); + sep.fill('_'); set_row (r++,"@1g%s", (const char*)sep); } else { - sep1.fill('-'); //Stampa 198 - (sep1(198)) + sep1.fill('_'); //Stampa 198 - (sep1(198)) set_row (r++,"@0g%s", (const char*)sep1); - set_row (r++,"Operazione@23gData@34gNumero@169gContro@183gReg@190gNumero@197gA"); + if (_stampa_des_contro) + set_row (r++,"Operazione@23gData@34gNumero@183gReg@190gNumero@197gA"); + else + set_row (r++,"Operazione@23gData@34gNumero@169gContro@183gReg@190gNumero@197gA"); if (_stampa_mov_prov) set_row(r-1,"@195gM"); set_row (r,"Data"); if (_stampanum < 3) set_row (r,"@11gnumero"); set_row (r,"@23gDocumento@42gCod.Causale@70gDescrizione@112gDare@127gAvere"); - set_row (r++,"@135gSaldo progre.@152gSaldo movim.@169gPartita@183gIva@189gProtoc.@197gC"); + if (_stampa_des_contro) + set_row (r++,"@135gContropartita@183gIva@189gProtoc.@197gC"); + else + set_row (r++,"@135gSaldo progre.@152gSaldo movim.@169gPartita@183gIva@189gProtoc.@197gC"); if (_stampa_mov_prov) set_row (r-1,"@195gP"); - sep1.fill('-'); + sep1.fill('_'); set_row (r++,"@0g%s", (const char*)sep1); } _pagina = np; @@ -3328,8 +3369,9 @@ void TMastrini_application::stampa_progressivi() else { set_row (_rw,"@70gPROGRESSIVI PRECEDENTI@100g%r", &_progredare); - set_row (_rw,"@117g%r", &_progreavere); - set_row (_rw++,"@134g%r", &_saldo_progre_prec); + set_row (_rw,"@117g%r", &_progreavere); + if (!_stampa_des_contro) + set_row (_rw++,"@135g%r", &_saldo_progre_prec); } } @@ -3347,7 +3389,8 @@ int TMastrini_application::stampa_progressivi(int start_riga) { set_row (r,"@70gPROGRESSIVI PRECEDENTI@100g%r", &_progredare); set_row (r,"@117g%r", &_progreavere); - set_row (r++,"@134g%r", &_saldo_progre_prec); + if (!_stampa_des_contro) + set_row (r++,"@135g%r", &_saldo_progre_prec); } return r; @@ -3487,7 +3530,7 @@ void TMastrini_application::ricerca_clifo() if (_numcarat == 2) { - set_header (5,"@134g%-4s",(const char*) ptel); + set_header (5,"@135g%-4s",(const char*) ptel); if (tel != "") set_header (5,"@138g/@139g%-10s",(const char*) tel); } @@ -3626,7 +3669,7 @@ int TMastrini_application::ricerca_clifo(int start) if (_numcarat == 2) { - set_row (r,"@134g%-4s",(const char*) ptel); + set_row (r,"@135g%-4s",(const char*) ptel); if (tel != "") set_row (r++,"@138g/@139g%-10s",(const char*) tel); } diff --git a/cg/cg3200.h b/cg/cg3200.h index 3fe46d6c9..11435097b 100755 --- a/cg/cg3200.h +++ b/cg/cg3200.h @@ -43,6 +43,7 @@ #define F_MEMORIZZA 500 #define F_NUMCARAT 501 #define F_NUMMAST 502 +#define F_CONTRODES 503 #define F_CODDITTA 504 #define F_RAGSOC 505 #define F_SCELTE 506 diff --git a/cg/cg3200a.uml b/cg/cg3200a.uml index d04332eb1..9e6c0d19c 100755 --- a/cg/cg3200a.uml +++ b/cg/cg3200a.uml @@ -478,14 +478,23 @@ PAGE "Parametri" -1 -1 78 20 LIST F_NUMCARAT 10 BEGIN - PROMPT 4 1 "Numero caratteri " - ITEM "1|132 crt." + PROMPT 4 1 "Numero caratteri " + ITEM "1|132 crt." + MESSAGE HIDE,F_CONTRODES ITEM "2|198 crt." + MESSAGE SHOW,F_CONTRODES +END + +RADIOBUTTON F_CONTRODES 1 38 +BEGIN + PROMPT 38 0 "" + ITEM " |Stampa saldi progressivi" + ITEM "X|Stampa descrizione contropartite" END LIST F_NUMMAST 10 BEGIN - PROMPT 4 2 "Numero mastrini per pagina " + PROMPT 4 2 "Mastrini per pagina " ITEM "1|Uno" ITEM "2|Due" ITEM "3|Continua" diff --git a/cg/cg4300.cpp b/cg/cg4300.cpp index cad634993..3e3de3cd7 100755 --- a/cg/cg4300.cpp +++ b/cg/cg4300.cpp @@ -54,7 +54,6 @@ real _ProrataItem::calc_prorata(const real& acq, const char * year) { real perc = _percentuali.objptr(year) ? (real&) *_percentuali.objptr(year) : ZERO; real prorata = (acq * perc) / 100.0; -// prorata.round(ROUND_LIRA); prorata.round(TCurrency::get_firm_dec()); return prorata; } @@ -324,6 +323,9 @@ bool TLiquidazione_app::user_create() if (!look_lia()) { end_wait(); return FALSE; } + + TIva_round ir; // Imposta arrotondamento iva + ir.set_default_iva_mode(atoi(_year), _month > 12, ditta); _nditte->zero(); _nditte_r->put("CODDITTA", ditta); @@ -886,10 +888,6 @@ bool TLiquidazione_app::set_liquidazione() if (_isprint) printer().setdate(_date); if (_printonly) _recalc = never; - - // ------------------------------------------------ - //m.first_focus(k); - } while (k != K_ENTER && k != K_ESC); diff --git a/cg/cg4300.h b/cg/cg4300.h index f34e9a36a..a1c4099ff 100755 --- a/cg/cg4300.h +++ b/cg/cg4300.h @@ -502,7 +502,7 @@ public: // Funzione personale di arrotondamento alle 1000 LIRE o all'euro. // Risolve il seguente problema: da 0 a 500 lire arrotonda alle mille inferiori // da 501 a 999 arrotonda alle mille superiori. - void round_mille_lire(real& d); + void round_imposta(real& d) const; // Funzione personale di arrotondamento alla lira o centesimo di euro. void round_alla_lira(real& d, bool superiore = FALSE); diff --git a/cg/cg4301.cpp b/cg/cg4301.cpp index bade327b5..ad735070a 100755 --- a/cg/cg4301.cpp +++ b/cg/cg4301.cpp @@ -43,7 +43,8 @@ bool TLiquidazione_app::recalc_all() if (_selected[(long)l]) { TToken_string& nomeditta = _ditte->row(l); - int save_month = _month; + const long codditta = nomeditta.get_long(1); + const int save_month = _month; /* ------------------------------------------------------------- * leggi parametri ditta necessari; stabilisci se annuale, @@ -54,7 +55,7 @@ bool TLiquidazione_app::recalc_all() _reg_arr.destroy(); // Azzera la cache dei registri per ogni ditta. _nditte->zero(); - _nditte->curr().put("CODDITTA",nomeditta.get_long(1)); + _nditte->curr().put("CODDITTA",codditta); _nditte->read(); _freqviva = nomeditta.get(3); bool mens = _freqviva == "M"; @@ -64,7 +65,7 @@ bool TLiquidazione_app::recalc_all() TString attprev = _nditte->curr().get("CODATTPREV"); TLocalisamfile& atts = _nditte->lfile(LF_ATTIV); atts.zero(); - atts.put("CODDITTA",nomeditta.get_long(1)); + atts.put("CODDITTA",codditta); atts.put("CODATT", attprev); if (atts.read() != NOERR) atts.zero(); // istanzia benzinaro @@ -77,7 +78,12 @@ bool TLiquidazione_app::recalc_all() // e' la 12ma anche per le trimestrali. _isannual = _isriepilogo = _month == 13; - TApplication::set_firm(nomeditta.get_long(1)); + TApplication::set_firm(codditta); + + // Imposta metodo arrotondamento imposte + TIva_round ir; + ir.set_default_iva_mode(atoi(_year), _isannual, codditta); + _prind->addstatus(1); /* @@ -147,21 +153,17 @@ bool TLiquidazione_app::update_firm(int month, bool recalc) // stato effettuato per scelta dello stronzo commercialista. look_lim(liq_month(month), TRUE); + _isdiffacc = is_differita(); + _isdifferita = _isdiffacc; - { - TConfig cnf(CONFIG_DITTA, "cg"); - - _isdiffacc = is_differita(); - _isdifferita = _isdiffacc; - _isintr = !cnf.get_bool("InTrTr") && _freqviva != "M"; - if (_isbenzinaro) - _gest4 = cnf.get_bool("GesT74"); - } + look_lia(); + _isintr = _freqviva == "T" && !_lia->get_bool("B3"); // was CNF_DITTA->InTrtr + _gest4 = _isbenzinaro && _lia->get_bool("B4"); // was CNF_DITTA->Gest74 // controlla che il periodo corrente non sia l'inizio dell'attivita' // nel caso, differita va a FALSE _monthinatt = 1; - const TDate inatt(_nditte->curr().get("DINIZIOATT")); + const TDate inatt = _nditte->curr().get("DINIZIOATT"); if (is_in_liq_period(inatt)) _isdifferita = FALSE; if (inatt.year() == atoi(_year)) @@ -2466,7 +2468,7 @@ void TLiquidazione_app::write_liq(int month, const char* codatts) if (_ver->read(year_int, _month)!=NOERR) warning_box("Errore %d in lettura tabella versamenti ed interessi.",_ver->status()); - + /* Cazzata galattica: gią gestito BENE da update_firm, prima di chiamare questa funzione // evita casino se differita ma si sta ricalcolando il primo mese con ricalcolo di piu' mesi const bool wasdifferita = (_isdifferita && month <= _monthinatt && _month > _monthinatt); @@ -2748,7 +2750,7 @@ void TLiquidazione_app::write_liq(int month, const char* codatts) if (atoi(_year) < 2000) round_alla_lira(cred_cost); else - round_mille_lire(cred_cost); + round_imposta(cred_cost); } else { @@ -2794,8 +2796,8 @@ void TLiquidazione_app::write_liq(int month, const char* codatts) if (new_age_2000 && credito_utilizzabile_inizio_anno > ZERO && (_freqviva == "M" || is_trim(month+deltam))) { - real debiti = res_debt; round_mille_lire(debiti); - real crediti = res_cred; round_mille_lire(crediti); + real debiti = res_debt; round_imposta(debiti); + real crediti = res_cred; round_imposta(crediti); const real risul = debiti - crediti; if (risul > ZERO) { @@ -2894,10 +2896,10 @@ void TLiquidazione_app::write_liq(int month, const char* codatts) if (prorata > 0.0) { topay = (iaq + ppg) * (prorata / CENTO); - round_mille_lire(topay); + round_imposta(topay); } conguaglio = topay - ppg; - round_mille_lire(conguaglio); + round_imposta(conguaglio); } if (prorata < 0.0) prorata = 0.0; @@ -2923,7 +2925,7 @@ void TLiquidazione_app::write_liq(int month, const char* codatts) if (atoi(_year) >= 2000) { real cc = cred_cost; - round_mille_lire(cc); + round_imposta(cc); _lia->put("R5", cc); } else @@ -3028,7 +3030,15 @@ void TLiquidazione_app::write_liq(int month, const char* codatts) _lim->put("R6",""); if (month == 13 || differita) - { + { + // Arrotonda totali in quanto possono avere un arrotondamento diverso dal mensile + TIva_round ir; + ir.round(rimborsi); + ir.round(rettifiche); + ir.round(variazioni_imposta); + ir.round(imposta_non_versata); + ir.round(crediti_speciali); + // scrivi totali rettifiche e rimborsi // nella finale oppure se copiati da // anno precedente @@ -3098,23 +3108,23 @@ void TLiquidazione_app::write_liq(int month, const char* codatts) if (month == 13 || after2000) { // molto codice duplicato, ma ne val la pena (vedi sopra) - round_mille_lire(iva_vend); - round_mille_lire(iva_acq); - round_mille_lire(detrazioni); - round_mille_lire(versamenti); - round_mille_lire(vers_int); - round_mille_lire(rimborsi); - round_mille_lire(rettifiche); - round_mille_lire(deb_mens); - round_mille_lire(cred_prec); - round_mille_lire(cred_trasf); - round_mille_lire(tot_cong); - round_mille_lire(acc_dec); - round_mille_lire(debt_precd); - round_mille_lire(variazioni_imposta); - round_mille_lire(imposta_non_versata); - round_mille_lire(credito_utilizzato_iva); - round_mille_lire(crediti_speciali); + round_imposta(iva_vend); + round_imposta(iva_acq); + round_imposta(detrazioni); + round_imposta(versamenti); + round_imposta(vers_int); + round_imposta(rimborsi); + round_imposta(rettifiche); + round_imposta(deb_mens); + round_imposta(cred_prec); + round_imposta(cred_trasf); + round_imposta(tot_cong); + round_imposta(acc_dec); + round_imposta(debt_precd); + round_imposta(variazioni_imposta); + round_imposta(imposta_non_versata); + round_imposta(credito_utilizzato_iva); + round_imposta(crediti_speciali); res_cred = iva_acq + versamenti + vers_int + cred_prec - cred_trasf + acc_dec + credito_utilizzato_iva + crediti_speciali; res_debt = iva_vend + rimborsi + debt_precd + imposta_non_versata; @@ -3164,7 +3174,7 @@ void TLiquidazione_app::write_liq(int month, const char* codatts) if (after2000) // Anche R14 { real ivi = _lim->get("R14"); - round_mille_lire(ivi); + round_imposta(ivi); _lim->put("R14", ivi); } _lim->put("R15", credito_utilizzato_iva); diff --git a/cg/cg4302.cpp b/cg/cg4302.cpp index 895b3b1d4..8de0f1fa4 100755 --- a/cg/cg4302.cpp +++ b/cg/cg4302.cpp @@ -8,6 +8,7 @@ #include #include +#include "cglib03.h" #include "cg4300.h" bool TLiquidazione_app::is_trim(int x) @@ -477,16 +478,12 @@ bool TLiquidazione_app::look_pam(int m, const char* a, bool create) bool TLiquidazione_app::look_lim(int m, bool create) { - bool ok = FALSE; - _lim_r->zero(); (*_lim_mese) = format("%02d",m); (*_lim_anno) = _year; - TString s = _lim_r->get("CODTAB"); - _lim->read(); - ok = _lim->good(); - + const TString s = _lim_r->get("CODTAB"); + const bool ok = _lim->read() == NOERR; if (!ok && create) { _lim_r->zero(); @@ -502,16 +499,12 @@ bool TLiquidazione_app::look_lim(int m, bool create) 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(); - + const TString s = _lam_r->get("CODTAB"); + const bool ok = _lam->read() == NOERR; if (!ok && create) { _lam_r->zero(); @@ -769,18 +762,17 @@ bool TLiquidazione_app::look_lia(long ditta, bool create, int year) { if (year == 0) year = atoi(_year); if (ditta == 0l) ditta = get_firm(); + TString16 y; y.format("%05ld%04d", ditta, year); - - _lia->zero(); _lia->put("CODTAB", y); - _lia->read(); - const bool ok = _lia->good(); - if (!ok && create) + const bool ok = _lia->read() == NOERR; + if (!ok) { _lia->zero(); _lia->put("CODTAB", y); _lia->put("S7", _freqviva); - _lia->write(); + if (create) + _lia->write(); } return ok; } @@ -912,7 +904,7 @@ real TLiquidazione_app::versamenti_IVA(int month, const char* types, bool intr) real importo_dovuto_arrotondato(_del->get_real("R0")); real work(importo_dovuto_non_arrotondato); - round_mille_lire(work); + round_imposta(work); if (_month == 13 && _freqviva == "T" && importo_dovuto_arrotondato == work) ret += importo_dovuto_non_arrotondato; // Questo e' l'importo lordo non arrotondato!! else @@ -939,16 +931,11 @@ real TLiquidazione_app::versamenti_IVA(int month, const char* types, bool intr) return ret; } -void TLiquidazione_app::round_mille_lire(real& d) +// Arrotonda intelligentemente alle 1000 Lire, al centesimo di Euro o all'unitą di Euro +void TLiquidazione_app::round_imposta(real& d) const { - const int dec = TCurrency::get_firm_dec(); - if (dec == 0) // lire - { - if (d % real(500.0) == ZERO) d -= 1.0; - d.round(-3); - } - else // Non si sa ancora come gestire l'euro - d.round(0); + TIva_round ir; + ir.round(d); } void TLiquidazione_app::round_alla_lira(real& d, bool sup) diff --git a/cg/cg4303.cpp b/cg/cg4303.cpp index 847b354ba..e05086b4c 100755 --- a/cg/cg4303.cpp +++ b/cg/cg4303.cpp @@ -410,20 +410,20 @@ void TLiquidazione_app::recalc_viaggio(int month, const char* codatt) } if (month == 13) // Arrotondamento 13a liquidazione { - round_mille_lire(c_CEE); - round_mille_lire(c_mCEE); - round_mille_lire(c_fCEE); - round_mille_lire(a_CEE); - round_mille_lire(a_mCEE); - round_mille_lire(a_fCEE); - round_mille_lire(a_mfCEE); + round_imposta(c_CEE); + round_imposta(c_mCEE); + round_imposta(c_fCEE); + round_imposta(a_CEE); + round_imposta(a_mCEE); + round_imposta(a_fCEE); + round_imposta(a_mfCEE); } // calcolo debito mensile da aggiornare su tabella POM real perc_r = a_mCEE.is_zero() ? ZERO : (a_mCEE * CENTO)/(a_mCEE + a_mfCEE); perc_r.round(2); real ivm = (c_mCEE * perc_r)/CENTO; if (month == 13) - round_mille_lire(ivm); + round_imposta(ivm); else round_alla_lira(ivm, TRUE); @@ -438,7 +438,7 @@ void TLiquidazione_app::recalc_viaggio(int month, const char* codatt) const real alivia = aliquota_agvia(); deb_mens = bi * alivia / (CENTO + alivia); if (month == 13) - round_mille_lire(deb_mens); + round_imposta(deb_mens); else round_alla_lira(deb_mens, TRUE); } diff --git a/cg/cg4304.cpp b/cg/cg4304.cpp index 8adc3f8cc..79ad6ecb8 100755 --- a/cg/cg4304.cpp +++ b/cg/cg4304.cpp @@ -23,7 +23,7 @@ public: virtual ~_vDesc() {} }; -static char sep[] = +const char* const sep = "------------------------------------------------------------------" "------------------------------------------------------------------"; @@ -429,21 +429,21 @@ void TLiquidazione_app::describe_viaggio(int month, const char* codatt) // Solita minchiatina dell'arrotondamento alle 1000 lirette se siamo in annuale if (month == 13 || atoi(_year) >= 2000) // CM500314 e CM500315 { - round_mille_lire(d->_r0); - round_mille_lire(d->_r1); - round_mille_lire(d->_r2); - round_mille_lire(d->_r3); - round_mille_lire(d->_r4); - round_mille_lire(d->_r5); - round_mille_lire(d->_r6); - round_mille_lire(d->_r8); + round_imposta(d->_r0); + round_imposta(d->_r1); + round_imposta(d->_r2); + round_imposta(d->_r3); + round_imposta(d->_r4); + round_imposta(d->_r5); + round_imposta(d->_r6); + round_imposta(d->_r8); } d->_r7 = d->_r4.is_zero() ? ZERO : (d->_r4 * CENTO)/(d->_r4 + d->_r6); d->_r7.round(2); // percentuale d->_r9 = (d->_r1 * d->_r7)/CENTO; if (month == 13) - round_mille_lire(d->_r9); + round_imposta(d->_r9); else round_alla_lira(d->_r9); @@ -456,7 +456,7 @@ void TLiquidazione_app::describe_viaggio(int month, const char* codatt) // d->_r11 = (d->_r10/(alcnt/CENTO)) * (aliva/CENTO); // iva dovuta d->_r11 = d->_r10 * aliva / alcnt; // iva dovuta if (month == 13) - round_mille_lire(d->_r11); + round_imposta(d->_r11); else round_alla_lira(d->_r11, TRUE); } @@ -1002,23 +1002,23 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt, const bool if (pr > ZERO) { topay = (iaq + ppg) * (pr / CENTO); - round_mille_lire(topay); + round_imposta(topay); } co = topay - ppg; - round_mille_lire(co); + round_imposta(co); } _DescrItem* dd = new _DescrItem(ANNUAL); // MonsterFish: arrotonda alle 1000 LIRE C1,C2,C3,C1A - round_mille_lire(e1); - round_mille_lire(e2); - round_mille_lire(e3); - round_mille_lire(e4); - round_mille_lire(e5); - round_mille_lire(e6); - round_mille_lire(bam); - round_mille_lire(ris); + round_imposta(e1); + round_imposta(e2); + round_imposta(e3); + round_imposta(e4); + round_imposta(e5); + round_imposta(e6); + round_imposta(bam); + round_imposta(ris); // segna flag prorata if ((e1+e2+e3+e4) > ZERO) @@ -1051,29 +1051,29 @@ void TLiquidazione_app::describe_liq(int month, const char* codatts, _DescrItem* d = new _DescrItem(THE_END); // gli diamo la stessa struttura di LIM - d->_r0 = _lim->get_real("R0").round(); // Risultato - d->_r1 = _lim->get_real("R1").round(); // Rimborso - d->_r2 = _lim->get_real("R2").round(); - d->_r3 = _lim->get_real("R3").round(); - d->_r4 = _lim->get_real("R4").round(); - d->_r5 = _lim->get_real("R5").round(); // rettifiche - d->_r6 = _lim->get_real("R6").round(); - d->_r7 = _lim->get_real("R14").round(); - d->_r9 = _lim->get_real("R9").round(); + d->_r0 = _lim->get_real("R0"); // Risultato + d->_r1 = _lim->get_real("R1"); // Rimborso + d->_r2 = _lim->get_real("R2"); + d->_r3 = _lim->get_real("R3"); + d->_r4 = _lim->get_real("R4"); + d->_r5 = _lim->get_real("R5"); // rettifiche + d->_r6 = _lim->get_real("R6"); + d->_r7 = _lim->get_real("R14"); + d->_r9 = _lim->get_real("R9"); if (atoi(_year) <= 1997) // Dal 1998 in poi il conguaglio prorata non va stampato, ma conglobato nell'iva acquisti - d->_r10 = _lim->get_real("R7").round(); // totale conguaglio prorata + d->_r10 = _lim->get_real("R7"); // totale conguaglio prorata TToken_string tt(80); - tt.add(_lam->get_real("R0").round().string()); // IVA Vendite - tt.add(_lam->get_real("R1").round().string()); // IVA Acquisti - tt.add(_lam->get_real("R2").round().string()); // Credito precedente - tt.add(_lam->get_real("R3").round().string()); // Debito precedente - tt.add(_lam->get_real("R4").round().string()); + tt.add(_lam->get_real("R0").string()); // IVA Vendite + tt.add(_lam->get_real("R1").string()); // IVA Acquisti + tt.add(_lam->get_real("R2").string()); // Credito precedente + tt.add(_lam->get_real("R3").string()); // Debito precedente + tt.add(_lam->get_real("R4").string()); d->_s0 = tt; - d->_s1 = _lim->get_real("R11").round().string(); // Acc. dec. - d->_s2 = _lim->get_real("R12").round().string(); - d->_s3 = _lim->get_real("R13").round().string(); + d->_s1 = _lim->get_real("R11").string(); // Acc. dec. + d->_s2 = _lim->get_real("R12").string(); + d->_s3 = _lim->get_real("R13").string(); // descrizione rettifiche if (month < 13) @@ -1084,11 +1084,11 @@ void TLiquidazione_app::describe_liq(int month, const char* codatts, } d->_r11 = _lim->get_real("R10"); // tasso di interesse (Non arrotondare!) - d->_r15 = _lim->get_real("R15").round(); // Credito utilizzato IVA - d->_r16 = _lim->get_real("R16").round(); // Credito utilizzato F24 - d->_r17 = _lim->get_real("R17").round(); // Variazioni d'imposta - d->_r18 = _lim->get_real("R18").round(); // Imposta non versata - d->_r19 = _lim->get_real("R19").round(); // Crediti speciali + d->_r15 = _lim->get_real("R15"); // Credito utilizzato IVA + d->_r16 = _lim->get_real("R16"); // Credito utilizzato F24 + d->_r17 = _lim->get_real("R17"); // Variazioni d'imposta + d->_r18 = _lim->get_real("R18"); // Imposta non versata + d->_r19 = _lim->get_real("R19"); // Crediti speciali d->_f1 = is_first_month(month); @@ -1122,7 +1122,7 @@ _DescrItem* TLiquidazione_app::describe_deleghe(int month) { real iva = _lim->get_real("R0") + _lim->get_real("R14"); if (month == 13) - round_mille_lire(iva); + round_imposta(iva); if (iva >= iva_da_riportare(_month)) _stampa_vers = TRUE; } @@ -1934,7 +1934,7 @@ void TLiquidazione_app::set_grand_1999(_DescrItem& d, int& rw) { real iva = abs(risultato); if (_isannual || _isriepilogo) - round_mille_lire(iva); + round_imposta(iva); set_row(rw++,"@23gCREDITO ATTUALE@58g%r",&iva); if (_is_visliq) { // se chiamata dalla visualizzazione mette 2 righe vuote se non vi sono interessi @@ -1946,10 +1946,10 @@ void TLiquidazione_app::set_grand_1999(_DescrItem& d, int& rw) else { if (_month == 13) - round_mille_lire(interessi); + round_imposta(interessi); real iva = risultato + interessi; if (_isannual || _isriepilogo) - round_mille_lire(iva); + round_imposta(iva); if (!iva.is_zero()) { if (!interessi.is_zero()) @@ -2181,6 +2181,17 @@ void TLiquidazione_app::set_grand_2000(_DescrItem& d, int &rw) } } +static void imp2string(const real& n, TString& str) +{ + if (!n.is_zero()) + { + const TCurrency c(n); + str = c.string(TRUE); + str.right_just(15); + } + else + str.spaces(15); +} void TLiquidazione_app::set_grand(_DescrItem& d) { @@ -2279,11 +2290,7 @@ void TLiquidazione_app::set_grand(_DescrItem& d) set_bookmark("Riepilogo versamenti", _firm_bookmark); TString dt = di._d0.string(); - TString vr = di._r0.string("###.###.###.###"); - - // la cincia non vuole lo zero - if (atof(vr) == 0.0 && vr[vr.len()-1] == '0') - vr[vr.len()-1] = ' '; + TString vr; imp2string(di._r0, vr); if (di._s4 == "ACC") // Acconto { @@ -2292,12 +2299,11 @@ void TLiquidazione_app::set_grand(_DescrItem& d) { TString dt (ac.get(4)); real app (ac.get(3)); - TString vr (app.string("###.###.###.###")); + TString vr; imp2string(app, vr); TString con (ac.get(0)); TString abi (ac.get(1)); TString cab (ac.get(2)); - if (atof(vr) == 0.0 && vr[vr.len()-1] == '0') - vr[vr.len()-1] = ' '; + set_row(rw++, "- ACCONTO DICEMBRE -"); set_row(rw, " Versamento di %s effettuato il %s", (const char*)vr, diff --git a/cg/cg4305.cpp b/cg/cg4305.cpp index 7d80799a2..7710f8fb7 100755 --- a/cg/cg4305.cpp +++ b/cg/cg4305.cpp @@ -86,11 +86,13 @@ bool TLiquidazione_app::extract_deleghe() if (!(_calcall || _selected[l]) || _ditte->row_disabled(l)) continue; - - TApplication::set_firm(atol(_ditte->row(l).get(1))); - + + const long ditta = _ditte->row(l).get_long(1); + TApplication::set_firm(ditta); + TIva_round ir; ir.set_default_iva_mode(atoi(_year), _month > 12, ditta); + _nditte->curr().zero(); - _nditte->curr().put("CODDITTA",_ditte->row(l).get(1)); + _nditte->curr().put("CODDITTA", ditta); _nditte->read(); // must succeed @@ -173,7 +175,7 @@ bool TLiquidazione_app::extract_delega(int month, TArray& desc) real intr = _lim->get_real("R14"); topay += intr; // lo vogliono registrato con interessi real nrnd = topay; - round_mille_lire(topay); // importo totale del versamento arrotondato + round_imposta(topay); // importo totale del versamento arrotondato bool wasdel = look_del(month, 1); @@ -376,7 +378,7 @@ bool TLiquidazione_app::recalc_acconti(real& inf, real& ina) bool onemade = FALSE; - long firm = TApplication::get_firm(); + const long firm = TApplication::get_firm(); _prind = new TProgind(_n_ditte, " Calcolo acconto " "\n Preparazione archivi " @@ -402,8 +404,12 @@ bool TLiquidazione_app::recalc_acconti(real& inf, real& ina) _nditte->curr().zero(); _nditte->curr().put("CODDITTA",_ditte->row(l).get(1)); _nditte->read(); - - TApplication::set_firm(_nditte->curr().get_long("CODDITTA")); + + const long ditta = _nditte->curr().get_long("CODDITTA"); + TApplication::set_firm(ditta); + + TIva_round ir; + ir.set_default_iva_mode(atoi(_year), _month > 12, ditta); _isbenzinaro = _nditte->curr(LF_ATTIV).get_bool("ART74_4"); @@ -480,10 +486,7 @@ bool TLiquidazione_app::recalc_acconto(real& inf, real& ina) atts.put("CODATT", attprev); if (atts.read() != NOERR) atts.zero(); if (atts.get_bool("ART74_4")) // e' proprio un gran benzinaro - { - TConfig cnf(CONFIG_DITTA, "cg"); - history = cnf.get_bool("GesT74") ? mm : tt; - } + history = _lia->get_bool("B4") ? mm : tt; // Was CNF_DITTA->GesT74 switch (history) { @@ -539,7 +542,7 @@ bool TLiquidazione_app::recalc_acconto(real& inf, real& ina) break; } - round_mille_lire(bc); + round_imposta(bc); if (bc.sign() > 0) //debito { acc = ((bc / divide_by_three) * _ver->get(isdifferita ? B_LIQ_DIFF : B_LIQ_NORM))/CENTO; diff --git a/cg/cg4400.cpp b/cg/cg4400.cpp index 7396b9953..0a2b79fc7 100755 --- a/cg/cg4400.cpp +++ b/cg/cg4400.cpp @@ -1210,16 +1210,18 @@ void TStampa_registri_app::calcola_progressivi() int TStampa_registri_app::riga_rmoviva() { + TLocalisamfile& rmoviva = _cur->file(LF_RMOVIVA); + bool ok = _cur->is_first_match(LF_RMOVIVA); + if (!ok) + return 0; + TString codiva; real impo, impos; int tipodet, tipocr, tipoatt; bool intra; - TLocalisamfile& rmoviva = _cur->file(LF_RMOVIVA); - bool ok = _cur->is_first_match(LF_RMOVIVA); const int mese_liq = _cur->file(LF_MOV).get_int(MOV_MESELIQ); int nrec = 0; - const TRecnotype nr = rmoviva.recno(); while (ok) @@ -2086,9 +2088,9 @@ bool TStampa_registri_app::preprocess_page(int file, int counter) reset_print(); int rr = 0, riga = 0; bool intra; - TString comune, prov, comcf, capcf, civcf, stacf; - TString viacf; - TString ragsoc; + TString80 comune, prov, comcf, capcf, civcf, stacf; + TString80 viacf; + TString ragsoc, codfis, piva; TString tipo_op = ""; TLocalisamfile& mov = _cur->file(LF_MOV); @@ -2202,6 +2204,11 @@ bool TStampa_registri_app::preprocess_page(int file, int counter) comcf = dep.get (CLI_COMCF); comune = dep.get (CLI_LOCCF); stacf = dep.get (CLI_STATOCF); + codfis = dep.get (CLI_COFI); + piva = dep.get (CLI_STATOPAIV); + if (piva.not_empty()) + piva << ' '; + piva << dep.get (CLI_PAIV); char tipoa = dep.get_char(CLI_TIPOAPER); if (tipoa == 'F') { @@ -2222,6 +2229,8 @@ bool TStampa_registri_app::preprocess_page(int file, int counter) capcf = dep.get (OCC_CAP); comcf = dep.get (OCC_COM); stacf = dep.get (OCC_STATO); + codfis = ""; + piva = ""; } const TRectype& com = look_comuni(stacf,comcf); if (!com.empty()) @@ -2259,8 +2268,10 @@ bool TStampa_registri_app::preprocess_page(int file, int counter) else set_row(_r, "@78g%r", &totdoc); if (_tipo_stampa == prova) //in caso di stampa di prova + { if (! (_tipo_reg == vendita && _corrispettivi)) //e se non si tratta di registro vendite corrispettivi - if (! (_cur->pos()==0)) //il primo movimento non va controllato + { + if (_cur->pos()!=0 || protiva <= 0) //il primo movimento non va controllato { if (protiva != _uprotivap + 1) { @@ -2269,6 +2280,8 @@ bool TStampa_registri_app::preprocess_page(int file, int counter) } _uprotivap = uprotiva ? uprotiva : protiva; } + } + } const char* r; int i = 1; @@ -2292,7 +2305,16 @@ bool TStampa_registri_app::preprocess_page(int file, int counter) { set_row ( i++, "@38g%s %-.21s (%2s)", (const char *)capcf, (const char *)comune, (const char *)prov); riga = i; - } + } + + if (codfis.not_empty() || piva.not_empty()) + { + if (codfis.not_empty() && codfis != piva) + set_row ( i++, "@38gC.F. %s", (const char*)codfis); + if (piva.not_empty()) + set_row ( i++, "@38gP.I. %s", (const char*)piva); + riga = i; + } } const TRecnotype nrec = riga_rmoviva(); diff --git a/cg/cg4700.cpp b/cg/cg4700.cpp index 7f5bd80c6..308b27567 100755 --- a/cg/cg4700.cpp +++ b/cg/cg4700.cpp @@ -7,9 +7,7 @@ #include #include #include -#ifndef __CGLIB03_H #include "cglib03.h" -#endif #include "cg4700.h" @@ -17,7 +15,6 @@ class GesAcc_app : public TRelation_application { TRelation* _rel; TMask* _mask; - TTable* _lim; private: static bool msk_ditta(TMask_field& f, KEY k); @@ -30,9 +27,6 @@ class GesAcc_app : public TRelation_application virtual TRelation* get_relation() const { return _rel; } virtual TMask* get_mask(int mode); virtual bool changing_mask(int mode) {return FALSE; } - //virtual int rewrite(const TMask&); - //virtual void init_query_mode (TMask&); - //virtual void init_query_insert_mode (TMask&); }; inline GesAcc_app& app() @@ -42,7 +36,6 @@ inline GesAcc_app& app() bool GesAcc_app::user_create() { - _lim = new TTable("LIM"); _rel = new TRelation("%LIA"); _mask = new TMask("cg4700a"); @@ -57,9 +50,8 @@ bool GesAcc_app::user_create() bool GesAcc_app::user_destroy() { - delete _mask; - delete _lim; delete _rel; + delete _mask; return TRUE; } @@ -78,6 +70,17 @@ bool GesAcc_app::msk_ditta(TMask_field& f, KEY k) bool GesAcc_app::msk_credito(TMask_field& f, KEY k) { + if (f.to_check(k)) + { + const TMask& m = f.mask(); + const int anno = m.get_int(F_ANNO); + TIva_round ir; + ir.set_default_iva_mode(anno); + real n = f.get(); + ir.round(n); + f.set(n.string()); + } + if (k == K_ENTER) { real credito (f.get()); @@ -95,6 +98,17 @@ bool GesAcc_app::msk_credito(TMask_field& f, KEY k) bool GesAcc_app::msk_acconto(TMask_field& f, KEY k) { + if (f.to_check(k)) + { + const TMask& m = f.mask(); + const int anno = m.get_int(F_ANNO); + TIva_round ir; + ir.set_default_iva_mode(anno); + real n = f.get(); + ir.round(n); + f.set(n.string()); + } + if (k == K_ENTER) { const TMask& m = f.mask(); diff --git a/cg/cg4800.cpp b/cg/cg4800.cpp index fcc2ed03a..dbffe0fce 100755 --- a/cg/cg4800.cpp +++ b/cg/cg4800.cpp @@ -11,14 +11,12 @@ #include #include #include -#ifndef __CGLIB03_H + #include "cglib03.h" -#endif + #include "cg4800a.h" #include "cg4800b.h" -#define ROUND_MILLELIRE (-3) - class VersAcc_app : public TApplication { TRelation* _nditte; @@ -72,7 +70,7 @@ public: bool VersAcc_app::look_lia() { - TTable lia ("%LIA"); + TTable lia("%LIA"); TString16 y; y.format("%05ld%04d", _nditte->lfile().get_long("CODDITTA"), _year); @@ -294,10 +292,12 @@ void VersAcc_app::vers_acc() _cab = _cabps; _da_stampare = FALSE; //relativo a ciascuna ditta - TApplication::set_firm(_ditte->row(l).get_long(1)); + const long ditta = _ditte->row(l).get_long(1); + TApplication::set_firm(ditta); + TIva_round ir; ir.set_default_iva_mode(_year, FALSE); _nditte->curr().zero(); - _nditte->curr().put("CODDITTA",_ditte->row(l).get(1)); + _nditte->curr().put("CODDITTA",ditta); _nditte->read(); if (!look_lia()) continue; @@ -363,10 +363,12 @@ void VersAcc_app::print() row.reset(); row.put(tt.get(0),0); - const real imp(real::ita2eng(tt.get(2))); + const real imp = tt.get(2); TCurrency cur(imp); + TString80 descr = cur.string(TRUE); + descr.right_just(15); + row.put(descr,38); - row.put(cur.string(TRUE),38); if (tt.get_int(7) == 0) { row.put(tt.get(3),55); @@ -374,7 +376,7 @@ void VersAcc_app::print() } else row.put(tt.get(5),77); - const TString80 descr(tt.get(6)); + descr = tt.get(6); row.put(descr.left(45),86); const char* r; while ((r = rs.get()) != NULL) @@ -385,16 +387,30 @@ void VersAcc_app::print() } } printer().close(); +} + +void round_mille_lire(real& d) +{ + const int dec = TCurrency::get_firm_dec(); + if (dec == 0) // lire + { + if (d % real(500.0) == ZERO) d -= 1.0; + d.round(-3); + } + else // Non si sa ancora come gestire l'euro + d.round(0); } void VersAcc_app::lettura_delega() { TString16 cod; - TString16 y (format("%05ld", _nditte->lfile().get_long("CODDITTA"))); + TString16 y; y.format("%05ld", _nditte->lfile().get_long("CODDITTA")); const real minimo = _credito != ZERO ? _acconto_minimo_cr_ut : _acconto_minimo; _diff = _acconto - _credito; - _diff.round(ROUND_MILLELIRE); + + TIva_round ir; + ir.round(_diff); cod << y << _year << 12 << 7; @@ -470,6 +486,16 @@ void VersAcc_app::aggiorna_delega() _del->rewrite(); } +static real pezza_euro(real n) +{ + if (is_euro_value(NULL)) + { + n /= 1936.27; + n.round(2); + } + return n; +} + void VersAcc_app::lettura_anagrafica(bool* tipo) { TLocalisamfile& anag = _nditte->lfile(LF_ANAG); @@ -481,17 +507,17 @@ void VersAcc_app::lettura_anagrafica(bool* tipo) // Se deve stampare un bollettino delega l'importo minimo con credito utilizzato diventa 12500; // se invece deve stampare una distinta l'importo minimo e' 13500 if (cf) - _acconto_minimo_cr_ut = isdel == 2 ? 13500.0 : 12500.0; + _acconto_minimo_cr_ut = pezza_euro(isdel == 2 ? 13500.0 : 12500.0); else // Nel caso non sia titolare conto fiscale l'importo minimo e' 500 - _acconto_minimo_cr_ut = 500.0; + _acconto_minimo_cr_ut = pezza_euro(500.0); if (cf && (isdel == 1 || isdel == 2)) { *tipo = TRUE; const int con = com.get_int("UFFCONC"); _abi = ""; _cab = ""; - _con = format("%03d",con); + _con.format("%03d",con); } else { diff --git a/cg/cg4900.cpp b/cg/cg4900.cpp index 76d2f3323..70fa0b0f1 100755 --- a/cg/cg4900.cpp +++ b/cg/cg4900.cpp @@ -11,11 +11,9 @@ #include #include #include -#ifndef __CGLIB03_H -#include "cglib03.h" -#endif -#include "cg4900.h" +#include "cglib03.h" +#include "cg4900.h" class LiqAcc_app : public TApplication { @@ -359,6 +357,9 @@ bool LiqAcc_app::vis_acc() _year = m.get_int(F_YEAR); set_firm(_ditta); + TIva_round ir; + ir.set_default_iva_mode(_year, FALSE); + if (_year >= 2000) video_vis_2000(); else @@ -587,15 +588,10 @@ HIDDEN void set_fields(TMask& m , short pos, short neg, const real& val) } } -HIDDEN void round_mille_lire(real& n) +HIDDEN void round_imposta(real& n) { - if (TCurrency::get_firm_dec() == 0) - { - n -= 1.0; - n.round(-3); - } - else - n.round(0); + TIva_round ir; + ir.round(n); } bool LiqAcc_app::msk_recalc_2000(TMask_field& f, KEY k) @@ -621,8 +617,8 @@ bool LiqAcc_app::msk_recalc_2000(TMask_field& f, KEY k) periodo -= non_fat + non_ann; risultato -= non_fat + non_ann; - non_fat = m.get_real(F_NONFAT); round_mille_lire(non_fat); m.set(F_NONFAT, non_fat); - non_ann = m.get_real(F_NONANN); round_mille_lire(non_ann); m.set(F_NONANN, non_ann); + non_fat = m.get_real(F_NONFAT); round_imposta(non_fat); m.set(F_NONFAT, non_fat); + non_ann = m.get_real(F_NONANN); round_imposta(non_ann); m.set(F_NONANN, non_ann); periodo += non_fat + non_ann; risultato += non_fat + non_ann; diff --git a/cg/cg5100a.uml b/cg/cg5100a.uml index e7258db93..4748726f1 100755 --- a/cg/cg5100a.uml +++ b/cg/cg5100a.uml @@ -20,7 +20,7 @@ PAGE "Parametri ditta" -1 -1 77 8 NUMBER FLD_ANLIIV 4 BEGIN - PROMPT 2 0 "@bANNO LIQUIDAZIONE IVA " + PROMPT 2 1 "@bANNO LIQUIDAZIONE IVA " HELP "Indicare l'anno dell'esercizio IVA corrente" FIELD AnLiIv VALIDATE FIXLEN_FUNC 4 @@ -29,12 +29,12 @@ END GROUPBOX DLG_NULL 76 4 BEGIN - PROMPT 2 1 "Archivi in comune" + PROMPT 2 2 "@bArchivi in comune" END BOOLEAN CHK_ANCFCM BEGIN - PROMPT 4 2 "Anagrafica clienti / anagrafica fornitori" + PROMPT 4 3 "Anagrafica clienti / anagrafica fornitori" HELP "Indicare se gestire un'unica anagrafica clienti/fornitori" FLAGS "D" FIELD AnCfCm @@ -43,7 +43,7 @@ END BOOLEAN CHK_PCTCCM BEGIN - PROMPT 4 3 "Piano conti / tabella causali" + PROMPT 4 4 "Piano conti / tabella causali" HELP "Indicare se gestire un'unico archivio piano dei conti/causali" FLAGS "D" FIELD PcTcCm @@ -51,14 +51,14 @@ BEGIN END -GROUPBOX DLG_NULL 76 7 +GROUPBOX DLG_NULL 76 6 BEGIN - PROMPT 2 5 "Parametri contabilita'" + PROMPT 2 6 "@bParametri contabilita'" END BOOLEAN CHK_GSLBCN BEGIN - PROMPT 4 6 "Gestione libro cronologico " + PROMPT 4 7 "Gestione libro cronologico " HELP "Indicare se attivare il libro cronologico della gestione per i professionisti" FIELD GsLbCn GROUP GROUP_CONTABILITA @@ -66,7 +66,7 @@ END BOOLEAN CHK_STTFFR BEGIN - PROMPT 4 7 "Stampa totali fatture a fine registro " + PROMPT 4 8 "Stampa totali fatture a fine registro " HELP "Indicare se attivare il computo dei totali fatture a fine registro" FIELD StTfFr GROUP GROUP_CONTABILITA @@ -74,7 +74,7 @@ END BOOLEAN CHK_STLGIU BEGIN - PROMPT 4 8 "Stampa libro giornale e libro IVA unico " + PROMPT 4 9 "Stampa libro giornale e libro IVA unico " HELP "Indicare se utilizzare un unico registro per libro giornale e libro IVA" FIELD StLgiU GROUP GROUP_CONTABILITA @@ -82,23 +82,15 @@ END BOOLEAN CHK_GESVEN BEGIN - PROMPT 4 9 "Gestione vendite" + PROMPT 4 10 "Gestione vendite" HELP "Indicare se e' attivata anche la gestione delle vendite" FIELD GesVen GROUP GROUP_CONTABILITA END -BOOLEAN CHK_GEST74 -BEGIN - PROMPT 4 10 "Gestione versamenti 4.tr per soggetti art. 74/4" - HELP "Indicare se si deve gestire il versamento del 4. trimestre per benzinai e autotrasportatori" - FIELD GesT74 - GROUP GROUP_CONTABILITA -END - GROUPBOX DLG_NULL 76 7 BEGIN - PROMPT 2 12 "Parametri saldaconto" + PROMPT 2 12 "@bParametri saldaconto" END BOOLEAN CHK_GESSAL @@ -189,11 +181,11 @@ END ENDPAGE -PAGE "Pag. 2" -1 -1 77 8 +PAGE "Chiusura/Apertura" -1 -1 77 8 GROUPBOX DLG_NULL 78 12 BEGIN - PROMPT 1 7 "Codici sottoconto per chiusura automatica dei conti" + PROMPT 1 7 "@bCodici sottoconto per chiusura automatica dei conti" END STRING FLD_CODLIC 3 @@ -729,15 +721,13 @@ END ENDPAGE - -PAGE "Pag. 3" -1 -1 77 8 +PAGE "Ratei/Risconti" -1 -1 77 8 GROUPBOX DLG_NULL 78 10 BEGIN - PROMPT 1 1 "Ratei/Risconti" + PROMPT 1 1 "@bRatei/Risconti" END - RADIOBUTTON LST_RRFRAM 20 BEGIN PROMPT 3 2 "" @@ -814,15 +804,6 @@ BEGIN GROUP GROUP_CONTABILITA END -BOOLEAN CHK_INTRTR -BEGIN - PROMPT 3 12 "Non calcolare interessi per frequenza versamenti trimestrale" - HELP "Se selezionato, gli interessi non vengono calcolati" - FIELD InTrTr - GROUP GROUP_CONTABILITA -END - - ENDPAGE ENDMASK diff --git a/cg/cg5300.cpp b/cg/cg5300.cpp index b86941b2e..00748829b 100755 --- a/cg/cg5300.cpp +++ b/cg/cg5300.cpp @@ -77,9 +77,7 @@ bool TParaliq_app::ditta_handler(TMask_field& f, KEY k) if (f.to_check(k)) { TFirm fr(atol(f.get())); - TMask& m = f.mask(); - - m.set(F_CODVAL, fr.codice_valuta()); + f.mask().set(F_CODVAL, fr.codice_valuta()); } return TRUE; } @@ -260,7 +258,6 @@ void TParaliq_app::check_registers(int year) } } - void TParaliq_app::init_array(TMask& m, bool update) { TSheet_field& sf = (TSheet_field&)m.field(F_SHEET_PLA); @@ -296,7 +293,6 @@ void TParaliq_app::init_array(TMask& m, bool update) } } - void TParaliq_app::on_config_change() { TConfig d(CONFIG_DITTA); @@ -350,22 +346,27 @@ void TParaliq_app::init_insert_mode(TMask& m) // Inizializza array delle attivita' init_array(m, TRUE); init_modify_mode(m); + + if (m.get_int(F_YEAR) >= 2002) + m.set(F_ROUNDLIQ, TCurrency::get_firm_dec()); } void TParaliq_app::init_modify_mode(TMask& m) { const int anno_liq = m.get_int(F_YEAR); - if (anno_liq >= 2000) { - m.enable(F_UTCR_IVA); + m.enable(F_UTCR_IVA); } else { m.set(F_UTCR_IVA, " ", TRUE); m.disable(F_UTCR_IVA); } + + // Attiva la pagina degli arrotondamenti solo per le ditte in Euro dal 2002 + m.enable_page(1, (anno_liq >= 2002) && (TCurrency::get_firm_dec() > 0)); } diff --git a/cg/cg5300a.h b/cg/cg5300a.h index ac40d8f33..b1425ec29 100755 --- a/cg/cg5300a.h +++ b/cg/cg5300a.h @@ -1,21 +1,26 @@ -#define F_YEAR 301 -#define F_CRED_PREC 302 -#define F_FREQ_VERS 303 -#define F_GELIDI 304 -#define F_SHEET_PLA 305 -#define F_CODDITTA 306 -#define F_RAGSOC 307 -#define F_CRED_COST 308 -#define F_AGRMIN 309 -#define F_CRED_RES 310 -#define F_MESE_RES_AL 311 -#define F_CODVAL 312 -#define F_UTCR_IVA 313 +#define F_YEAR 201 +#define F_CRED_PREC 202 +#define F_FREQ_VERS 203 +#define F_GELIDI 204 +#define F_SHEET_PLA 205 +#define F_CODDITTA 206 +#define F_RAGSOC 207 +#define F_CRED_COST 208 +#define F_AGRMIN 209 +#define F_CRED_RES 210 +#define F_MESE_RES_AL 211 +#define F_CODVAL 212 +#define F_UTCR_IVA 213 +#define F_INTRTR 214 +#define F_GEST74 215 -#define F_CODATT 101 -#define F_DESATT 150 -#define F_TIPOATT 102 -#define F_PRORATA 103 -#define F_P8 104 -#define F_P8B 105 -#define F_P9 106 +#define F_ROUNDLIQ 221 +#define F_ROUNDDIC 222 + +#define F_CODATT 101 +#define F_DESATT 150 +#define F_TIPOATT 102 +#define F_PRORATA 103 +#define F_P8 104 +#define F_P8B 105 +#define F_P9 106 diff --git a/cg/cg5300a.uml b/cg/cg5300a.uml index 771d60827..f2db4cd28 100755 --- a/cg/cg5300a.uml +++ b/cg/cg5300a.uml @@ -6,11 +6,11 @@ TOOLBAR "" 0 20 0 2 ENDPAGE -PAGE "Parametri liquidazione" -1 -1 78 15 +PAGE "Liquidazione" -1 -1 78 15 -GROUPBOX DLG_NULL 75 4 +GROUPBOX DLG_NULL 78 4 BEGIN - PROMPT 2 0 "Ditta" + PROMPT 1 0 "@bDitta" FLAGS "R" END @@ -64,43 +64,62 @@ BEGIN FLAGS "HD" END -GROUPBOX DLG_NULL 75 7 +GROUPBOX DLG_NULL 78 10 BEGIN - PROMPT 2 4 "Parametri ditta" + PROMPT 1 4 "@bParametri ditta" END -LIST F_FREQ_VERS 1 15 +TEXT DLG_NULL BEGIN - PROMPT 4 5 "Frequenza versamenti " + PROMPT 4 5 "Frequenza versamenti" +END + +RADIOBUTTON F_FREQ_VERS 1 38 +BEGIN + PROMPT 29 4 "" HELP "Indicare la frequenza dei versamenti delle liquidazioni IVA" - ITEM "M|Mensile" MESSAGE ENABLE,F_GELIDI - ITEM "T|Trimestrale" MESSAGE CLEAR,F_GELIDI + ITEM "M|Mensile" MESSAGE ENABLE,F_GELIDI|CLEAR,F_INTRTR|CLEAR,F_GEST74 + ITEM "T|Trimestrale" MESSAGE CLEAR,F_GELIDI|ENABLE,F_INTRTR|ENABLE,F_GEST74 FIELD S7 + FLAGS "Z" END BOOLEAN F_GELIDI BEGIN - PROMPT 47 5 "Liquidazione differita " + PROMPT 4 6 "Liquidazione differita " FIELD B1 END -CURRENCY F_CRED_COST 18 -BEGIN - PROMPT 4 6 "Credito di costo " - HELP "Eventuale credito di costo dell'anno precedente" - FIELD R5 - DRIVENBY F_CODVAL -END - BOOLEAN F_AGRMIN BEGIN PROMPT 47 6 "Agricoltore minimo " FIELD B2 END +BOOLEAN F_INTRTR +BEGIN + PROMPT 4 7 "Non calcolare interessi per frequenza versamenti trimestrale" + FIELD B3 +END + +BOOLEAN F_GEST74 +BEGIN + PROMPT 4 8 "Gestione versamenti 4.tr per soggetti art. 74/4" + FIELD B4 +END + +CURRENCY F_CRED_COST 18 +BEGIN + PROMPT 4 9 "Credito di costo " + HELP "Eventuale credito di costo dell'anno precedente" + FIELD R5 + DRIVENBY F_CODVAL +END + + LISTBOX F_UTCR_IVA 2 34 BEGIN - PROMPT 4 7 "Utilizzo credito IVA " + PROMPT 4 10 "Utilizzo credito IVA " ITEM " |Visibile e utilizzato solo in IVA" ITEM "NV|Non visibile ma compensabile" FIELD S9 @@ -108,7 +127,7 @@ END CURRENCY F_CRED_PREC 18 BEGIN - PROMPT 4 8 "Credito compensabile inizio anno " + PROMPT 4 11 "Credito compensabile inizio anno " HELP "Eventuale credito di imposta dell'anno precedente" FIELD R0 DRIVENBY F_CODVAL @@ -116,7 +135,7 @@ END CURRENCY F_CRED_RES 18 BEGIN - PROMPT 4 9 "Credito in compensaz.utilizzato " + PROMPT 4 12 "Credito in compensaz.utilizzato " FIELD R15 DRIVENBY F_CODVAL NUM_EXPR #THIS<=#F_CRED_PREC @@ -125,14 +144,14 @@ END LISTBOX F_MESE_RES_AL 2 14 BEGIN - PROMPT 57 9 "A " + PROMPT 57 12 "A " ITEM "0|" FIELD I0 END SPREADSHEET F_SHEET_PLA 78 BEGIN -PROMPT 1 11 "Parametri attivita'" +PROMPT 1 14 "Parametri attivita'" ITEM "Attiv.@5F" ITEM "Tipo@3" ITEM "Prorata" @@ -143,6 +162,32 @@ END ENDPAGE +PAGE "Arrotondamenti" -1 -1 78 15 + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 1 1 "@bArrotondamenti" +END + +NUMBER F_ROUNDLIQ 2 +BEGIN + PROMPT 2 2 "Numero di decimali per arrotondamento versamenti " + FIELD I1 +END + +NUMBER F_ROUNDDIC 2 +BEGIN + PROMPT 2 3 "Numero di decimali per arrotondamento dichiarazioni " + FIELD I2 +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 4 "Esempio: 0 = Arrotondamento all'unitą; 2 = Arrotondamento al centesimo" +END + +ENDPAGE + ENDMASK PAGE "" -1 -1 65 16 diff --git a/cg/cg5500.cpp b/cg/cg5500.cpp index 956c6adac..21e82b2d9 100755 --- a/cg/cg5500.cpp +++ b/cg/cg5500.cpp @@ -10,18 +10,14 @@ #include #include +#include "cglib03.h" #include "cg5500.h" #include "cg5500a.h" -static void round_mille_lire(real& d) +static void round_imposta(real& d) { - if (TCurrency::get_firm_dec() == 0) - { - if (d % real(500.0) == ZERO) d -= 1.0; - d.round(-3); - } - else - d.round(); + TIva_round ir; + ir.round(d); } const char* Visliq_app::itoname(int m) @@ -493,7 +489,7 @@ bool Visliq_app::sel_mese_sh2 (TMask_field& f, KEY k) void Visliq_app::vis_liq() { - long ditta = get_firm(); + const long ditta = get_firm(); // Memorizza ditta corrente da ripristinare alla fine set_freqviva(); TMask m("cg5500a"); @@ -515,8 +511,11 @@ void Visliq_app::vis_liq() continue; } - long dtt = m.get_long(F_CODDITTA); - set_firm(dtt); + const long dtt = m.get_long(F_CODDITTA); + set_firm(dtt); + + TIva_round ir; + ir.set_default_iva_mode(_year, FALSE); const int month = m.get_int(_freqviva == "M" ? F_MONTHS : F_TRIMS); _is_annual = (month == 13); @@ -981,20 +980,20 @@ void Visliq_app::recalc_liq_data(TViswin* vsw, real& rimb, real& rett, real& ver if (month == 13 || after2000) { // molto codice duplicato, ma ne val la pena (vedi sopra) - round_mille_lire(vrs); - round_mille_lire(vers); - round_mille_lire(rmb); - round_mille_lire(rimb); - round_mille_lire(rtt); - round_mille_lire(rett); - round_mille_lire(act); - round_mille_lire(acc); - round_mille_lire(var); - round_mille_lire(varimp); - round_mille_lire(inv); - round_mille_lire(impnonver); - round_mille_lire(crs); - round_mille_lire(credspec); + round_imposta(vrs); + round_imposta(vers); + round_imposta(rmb); + round_imposta(rimb); + round_imposta(rtt); + round_imposta(rett); + round_imposta(act); + round_imposta(acc); + round_imposta(var); + round_imposta(varimp); + round_imposta(inv); + round_imposta(impnonver); + round_imposta(crs); + round_imposta(credspec); } // calcola vecchio risultato: se e' diverso da R0 ci sono cazzi strani @@ -1041,7 +1040,7 @@ void Visliq_app::recalc_liq_data(TViswin* vsw, real& rimb, real& rett, real& ver credito_utilizzato_iva = min(risul, credito_utilizzabile); else credito_utilizzato_iva = credito_utilizzabile; - round_mille_lire(credito_utilizzato_iva); + round_imposta(credito_utilizzato_iva); riscr += credito_utilizzato_iva; } } @@ -1056,7 +1055,7 @@ void Visliq_app::recalc_liq_data(TViswin* vsw, real& rimb, real& rett, real& ver intr = risul * itt / real(100.0); intr.ceil(); if (after2000) - round_mille_lire(intr); + round_imposta(intr); } // riaggiusta LIM @@ -1372,7 +1371,7 @@ void Visliq_app::recalc_next_liq(int start_month, TSheet_field* sl, TSheet_field { real intr = risl * intt / real(100.0); if (_year >= 2000) - round_mille_lire(intr); + round_imposta(intr); _lim->put("R14",intr); } _lim->put("R16", crf24); @@ -1454,7 +1453,7 @@ void Visliq_app::write_del() inter = vers - inter; inter.ceil(); if (_year >= 2000) - round_mille_lire(inter); + round_imposta(inter); } _del->put("R0",vers); @@ -1887,7 +1886,7 @@ void Visliq_app::write_general(TMask& m) { real intr = risl * intt / real(100.0); if (_year >= 2000) - round_mille_lire(intr); + round_imposta(intr); _lim->put("R14",intr); } diff --git a/cg/cg5500d.uml b/cg/cg5500d.uml index 095e79b0a..73e35f050 100755 --- a/cg/cg5500d.uml +++ b/cg/cg5500d.uml @@ -229,8 +229,8 @@ END /* gruppo 8: edit crediti speciali */ -CURRENCY F_CREDSPEC 15 0 -BEGIN +CURRENCY F_CREDSPEC 15 +BEGIN PROMPT 2 17 "Crediti speciali : " GROUP 8 FLAGS "H" diff --git a/cg/cg5700.cpp b/cg/cg5700.cpp index eec49dd71..238b4e1de 100755 --- a/cg/cg5700.cpp +++ b/cg/cg5700.cpp @@ -11,6 +11,7 @@ #include #include "cg5700.h" +#include "cglib03.h" class TDich_periodica_selfirm_mask : public TAutomask { @@ -418,11 +419,10 @@ void TDich_periodica_iva_mask::read_iva_data() } // Se espressi in lire o una valuta con 0 decimali, arrotonda alle 1000 - TCurrency cur(vp1, get(F_CODVAL)); - const int ndec = cur.decimals() == 0 ? -3 : 0; - - vp1.round(ndec); vp1a.round(ndec); vp2.round(ndec); vp2a.round(ndec); - vp3.round(ndec); vp3i.round(ndec); + TIva_round ir; + ir.round(vp1); ir.round(vp1a); + ir.round(vp2); ir.round(vp2a); + ir.round(vp3); ir.round(vp3i); real rettifica = lim.get_real("R5"); // Rettifiche @@ -541,8 +541,11 @@ void TDich_periodica_iva_mask::set_prospect() _dirty_versament = FALSE; - set(F_YEAR, _sf->get_year()); - set(F_CODDITTA, _sf->get(F_CODDITTA)); + const int anno = _sf->get_year(); + const long ditta = _sf->get_long(F_CODDITTA); + + set(F_YEAR, anno); + set(F_CODDITTA, ditta); set(F_RAGSOC, _sf->get(F_RAGSOC)); const char f = _sf->get_freq(); @@ -552,13 +555,14 @@ void TDich_periodica_iva_mask::set_prospect() set(F_MONTHS, _sf->get(F_MONTHS)); set(F_TRIMS, _sf->get(F_TRIMS)); - TFirm frm(_sf->get_long(F_CODDITTA)); - + TFirm frm(ditta); const TString& cv = frm.codice_valuta(); _is_euro = cv == TCurrency::get_euro_val(); - set(F_CODVAL, cv); + TIva_round ir; + ir.set_default_iva_mode(anno, FALSE, ditta); + search_versament(); read_iva_data(); @@ -587,14 +591,8 @@ bool TDich_periodica_iva_mask::on_field_event(TOperable_field& o, TField_event e if (e == fe_modify) { _dirty_versament = TRUE; - real r(o.get()); - TCurrency cur(r, get(F_CODVAL)); - const int ndec = cur.decimals(); // Decimali di questa valuta per gli importi - - // Arrotondamento alle migliaia nel caso il numero - // di decimali della ditta sia zero (come per le lire) - // altrimenti al numero di decimali impostato - r.round(ndec == 0 ? -3 : ndec); + real r(o.get()); + TIva_round ir; ir.round(r); o.set(r.string()); } break; diff --git a/cg/cg6400.cpp b/cg/cg6400.cpp index a00361ff6..8d1739118 100755 --- a/cg/cg6400.cpp +++ b/cg/cg6400.cpp @@ -202,7 +202,7 @@ bool TRic_archivi::leggi_marker() if (_progdisk != _numdisk) { - message_box("Il dischetto inserito non rispecchia la giusta sequenza"); + message_box("Il dischetto inserito (%d) non rispecchia la giusta sequenza (%d)", _numdisk, _progdisk); _sequenza = FALSE; fclose(i); return TRUE; @@ -281,7 +281,7 @@ bool TRic_archivi::leggi_marker_rep() if (_progdisk != _numdisk) { - message_box("Il dischetto inserito non rispecchia la giusta sequenza"); + message_box("Il dischetto inserito (%d) non rispecchia la giusta sequenza (%d)", _numdisk, _progdisk); _sequenza = FALSE; return TRUE; } diff --git a/cg/cg6600.cpp b/cg/cg6600.cpp index bcf8f7e9d..a56d359d9 100755 --- a/cg/cg6600.cpp +++ b/cg/cg6600.cpp @@ -302,7 +302,7 @@ void TRic_tab::trasferimento() char sigla; TString message; - uselab = (_tras_file.ult_file())[0]; + uselab = _tras_file.ult_file()[0]; posiz = _tras_file.num(uselab); //Ritorna la posizione della sigla all'interno dell'indice key = _tras_file.key(); key.trim(); @@ -317,11 +317,12 @@ void TRic_tab::trasferimento() for (i = posiz; i < last_tab;i++) { - long numero = atol(_record.mid( ((i * 6) + 95),6)); - if (numero == 0) continue; - long nrec = ((_tras_file.nrec(i))+1); + const long numero = atol(_record.mid( ((i * 6) + 95),6)); + if (numero == 0) // Numero di records totali del tipo atteso + continue; + const long nrec = _tras_file.nrec(i)+1; // Numero di records presenti (< numero) sigla = _tras_file.name(i)[0]; - long cicli; + long cicli = 0; switch (sigla) { @@ -355,27 +356,24 @@ void TRic_tab::trasferimento() if (_scelta == 'T') { - if (sigla == 'W') - ricevi_causali(key,sigla); - if (sigla == 'A') - ricevi_clifo(key,sigla); - if (sigla == 'P') - ricevi_pcon(key,sigla); + switch(sigla) + { + case 'W': ricevi_causali(key,sigla); break; + case 'A': ricevi_clifo(key,sigla); break; + case 'P': ricevi_pcon(key,sigla); break; + default: break; + } } else if (_scelta == 'M') - { - if (sigla == 'Z') + { + switch(sigla) { - ricevi_movPN(key,sigla); - _sld.registra(); + case 'Z': ricevi_movPN(key,sigla); _sld.registra(); break; + case 'U': ricevi_movIVA(key,sigla); break; + case 'B': ricevi_movSC(key,sigla); break; + default: break; } - else - if (sigla == 'U') - ricevi_movIVA(key,sigla); - else - if (sigla == 'B') - ricevi_movSC(key,sigla); } delete _prog; key = ""; //Altrimenti in caso di ripartenza mi ripristina sempre la situazione diff --git a/cg/cg6900.cpp b/cg/cg6900.cpp index 9bd826b2c..dcdfcf313 100755 --- a/cg/cg6900.cpp +++ b/cg/cg6900.cpp @@ -616,28 +616,11 @@ void TInv_cont::leggi_record_controllo() bool TInv_cont::esiste_tabella_studio() { TTable ins ("%INS"); - - ins.zero(); - if (ins.first() == NOERR) { - if (ins.empty()) - return error_box("Codice STUDIO NON ATTIVATO in tabella invii"); - else - { - _nome_simbolico = ins.get("S0"); - long ditta = ins.get_long("I0"); - if (ditta != 0) - { - _esiste_ditta = TRUE; - _ditta = ditta; - } - else - { - _esiste_ditta = FALSE; - _ditta = 0; - } - } + _nome_simbolico = ins.get("S0"); + _ditta = ins.get_long("I0"); + _esiste_ditta = _ditta != 0L; } else return error_box("Codice STUDIO NON ATTIVATO in tabella invii"); diff --git a/cg/cglib01.cpp b/cg/cglib01.cpp index 308cb6c95..816cb24a6 100755 --- a/cg/cglib01.cpp +++ b/cg/cglib01.cpp @@ -540,7 +540,7 @@ real TCodiceIVA::scorpora(real & imponibile, int ndec, const char* codval) const iva.floor(ndec); } else - iva.round(ndec); + iva.round(ndec); } imponibile -= iva; return iva; diff --git a/cg/cglib01.h b/cg/cglib01.h index 554bc3033..7929fd1f5 100755 --- a/cg/cglib01.h +++ b/cg/cglib01.h @@ -17,7 +17,7 @@ class TEsercizio : public TSortable TDate _inizio, _fine, _scarico, _chiusura, _chiusura_mag; protected: // TSortable - int compare(const TSortable& s) const; + virtual int compare(const TSortable& s) const; public: int codice() const { return _codice; } diff --git a/cg/cglib03.cpp b/cg/cglib03.cpp index bc598ae6b..491228531 100755 --- a/cg/cglib03.cpp +++ b/cg/cglib03.cpp @@ -1,6 +1,7 @@ -#ifndef __CGLIB03_H +#include +#include + #include "cglib03.h" -#endif /////////////////////////////////// // classe TInteressi_IVA_table // @@ -138,3 +139,63 @@ bool TTipodoc_array::add_riga(const char* tipodoc, const char* descrdoc, const r } return found; } + +/////////////////////////////////////////////////////////// +// Arrotondamenti iva +/////////////////////////////////////////////////////////// + +TRound_mode TIva_round::_def_mode = rm_unknown; +int TIva_round::_def_decimals = 0; + +void TIva_round::set_default_mode(TRound_mode m, int d) +{ + _def_mode = _mode = m; + _def_decimals = _decimals = d; +} + +void TIva_round::set_mode(TRound_mode m, int d) +{ + _mode = m; + _decimals = d; +} + +void TIva_round::set_default_iva_mode(int year, bool declaration, long ditta) +{ + if (year < 1990) + year = TDate(TODAY).year(); + + if (year >= 2002 && is_euro_value(NULL)) + { + if (ditta <= 0) + ditta = prefix().get_codditta(); + TString16 key; key.format("%05ld%04d", ditta, year); + const TRectype& lia = cache().get("%LIA", key); + const int dec = lia.get_int(declaration ? "I2" : "I1"); + set_default_mode(rm_round, dec); + } + else + set_default_mode(rm_millelire, 3); +} + +void TIva_round::round(real& n) const +{ + CHECK(_mode != rm_unknown, "Non č stato impostato il metodo di arrotondamento"); + switch (_mode) + { + case rm_ceil: + n.ceil(_decimals); + break; + case rm_millelire: + n -= 0.0001; // Le 500 lire vanno arrontondate per difetto + default: + n.round(_decimals); + break; + } +} + +TIva_round::TIva_round() +{ + _mode = _def_mode; + _decimals = _def_decimals; +} + diff --git a/cg/cglib03.h b/cg/cglib03.h index 9b0f0e239..e4592fe78 100755 --- a/cg/cglib03.h +++ b/cg/cglib03.h @@ -106,4 +106,31 @@ public: TRiga& riga(int i) { return (TRiga&)(*this)[i]; } }; +/////////////////////////////////////////////////////////// +// Arrotondamenti IVA +/////////////////////////////////////////////////////////// + +enum TRound_mode { rm_unknown, rm_round, rm_ceil, rm_millelire }; + +class TIva_round : public TObject +{ + static TRound_mode _def_mode; + static int _def_decimals; + TRound_mode _mode; + int _decimals; + +public: // Low level functions (rare usage) + void set_default_mode(TRound_mode m, int d); + void set_mode(TRound_mode m, int d); + +public: // High level functions (common usage) + virtual bool ok() const { return _mode != rm_unknown; } + + // Call this before the first call to round! + void set_default_iva_mode(int year, bool declaration = FALSE, long firm = 0L); + + void round(real& n) const; + TIva_round(); +}; + #endif diff --git a/cg/cglib04.cpp b/cg/cglib04.cpp index d3e537647..2f7c7531d 100755 --- a/cg/cglib04.cpp +++ b/cg/cglib04.cpp @@ -504,9 +504,8 @@ void TTransfer_file::remove_all(bool file_ditta) bool TTransfer_file::read_control_rec() { - TString16 tmp; - - if (!exist()) return FALSE; + if (!exist()) + return FALSE; _control_rec->spaces(); @@ -529,15 +528,13 @@ bool TTransfer_file::read_control_rec() _ditta = atol(_control_rec->sub(70,75)); _nultras = atoi(_control_rec->sub(75,78)); - tmp = _control_rec->sub(78,86); + TString16 tmp = _control_rec->sub(78,86); _dataultras = converti(tmp,TRUE); - _sigle_file = _control_rec->sub(86,95); + _sigle_file = _control_rec->sub(86,95); _sigle_file.rtrim(); _nrec_file = _control_rec->sub(95,149); - TString ult_file = _control_rec->sub(240,241); - TString key = _control_rec->sub(241,301); - _ult_file = ult_file.trim(); - _key = key.trim(); + _ult_file = _control_rec->sub(240,241); _ult_file.trim(); + _key = _control_rec->sub(241,301); _key.trim(); fill_index(_sigle_file,_nrec_file); } else @@ -592,20 +589,20 @@ bool TTransfer_file::write_control_rec(const char* str, const int size) const char* TTransfer_file::name(int i) { - TToken_string data = (TToken_string&)_index[i]; - return data.get(0); + TToken_string* data = (TToken_string*)_index.objptr(i); + return data ? data->get(0) : ""; } long TTransfer_file::nrec(int i) { - TToken_string data = (TToken_string&)_index[i]; - return data.get_long(1); + TToken_string* data = (TToken_string*)_index.objptr(i); + return data ? data->get_long(1) : 0L; } int TTransfer_file::lenrec(int i) { - TToken_string data = (TToken_string&)_index[i]; - return data.get_int(2); + TToken_string* data = (TToken_string*)_index.objptr(i); + return data ? data->get_int(2) : 0; } int TTransfer_file::lenrec(char sigla) @@ -818,7 +815,7 @@ int TTransfer_file::go2field(int fieldnum, const char* file, const long nrec, bo return pos_campo; } -void TTransfer_file::fill_index(TString& sigle_file,TString& nrec_file) +void TTransfer_file::fill_index(const TString& sigle_file, const TString& nrec_file) { TToken_string data; char sigla; @@ -872,13 +869,12 @@ void TTransfer_file::fill_index(TString& sigle_file,TString& nrec_file) data.add(end); start = end + 1; - _index.add(data); + _index.add(data, i); } k += 6; } _tot_rec = nrecp; - } void TTransfer_file::annulla_classi(int g, int c,bool conto) diff --git a/cg/cglib04.h b/cg/cglib04.h index 33f9baa3a..0beb9d691 100755 --- a/cg/cglib04.h +++ b/cg/cglib04.h @@ -194,7 +194,7 @@ class TTransfer_file private: // Inizializza l'indice leggendo il record di controllo - void fill_index(TString&,TString&); + void fill_index(const TString&, const TString&); // Funzioni utilizzate da fcopytemp() nella ricezione da Sistema void scrivi_header(const char* dest,const char* wflag); diff --git a/cg/cgp0.url b/cg/cgp0.url index 7c817ab05..5b9a20a00 100755 --- a/cg/cgp0.url +++ b/cg/cgp0.url @@ -1,13 +1,4 @@ #include - -/* cgp0 -0 Programma personalizzato per Istituto Suore */ - -MENU TASK_MENUBAR - SUBMENU MENU_FILE "~File" - -MENUBAR MENU_BAR(1) - -MENU MENU_BAR(1) - SUBMENU MENU_FILE "~File" +#include diff --git a/cg/cgp2.url b/cg/cgp2.url index 7c817ab05..5b9a20a00 100755 --- a/cg/cgp2.url +++ b/cg/cgp2.url @@ -1,13 +1,4 @@ #include - -/* cgp0 -0 Programma personalizzato per Istituto Suore */ - -MENU TASK_MENUBAR - SUBMENU MENU_FILE "~File" - -MENUBAR MENU_BAR(1) - -MENU MENU_BAR(1) - SUBMENU MENU_FILE "~File" +#include diff --git a/cg/cgpagame.h b/cg/cgpagame.h index c270c9936..59c8e4bd4 100755 --- a/cg/cgpagame.h +++ b/cg/cgpagame.h @@ -9,10 +9,6 @@ #include #endif -#ifndef __REAL_H -#include -#endif - #ifndef __MSKSHEET_H class TSheet_field; #endif diff --git a/cg/f17.dir b/cg/f17.dir index f7fa12c37..e0e39fa37 100755 --- a/cg/f17.dir +++ b/cg/f17.dir @@ -1,3 +1,3 @@ 17 0 -$cfven|0|0|423|0|Clienti/Fornitori per vendite||| +$cfven|10|10|425|0|Clienti/Fornitori per vendite||| diff --git a/cg/f17.trr b/cg/f17.trr index ee69fb09c..7ddfd3d88 100755 --- a/cg/f17.trr +++ b/cg/f17.trr @@ -13,8 +13,8 @@ CAPZON|1|5|0|Codice capo-zona LIQPAG|8|1|0|Liquidazione provvigioni CODPRCF|1|10|0|Codice presso il cliente/fornitore CODINDSP|2|3|0|Indirizzo di spedizione -CODNOTESP1|1|2|0|Note documento 1 -CODNOTESP2|1|2|0|Note documento 2 +CODNOTESP1|1|3|0|Note documento 1 +CODNOTESP2|1|3|0|Note documento 2 CODSPMEZZO|1|2|0|Spedizione a mezzo CODPORTO|1|3|0|Porto CODVETT1|1|6|0|Vettore 1 diff --git a/cg/f24.dir b/cg/f24.dir index 4eddf9e43..746d6dea3 100755 --- a/cg/f24.dir +++ b/cg/f24.dir @@ -1,3 +1,3 @@ 24 0 -$rmov|0|0|129|0|Righe di movimento contabile|NMOV*3|| +$rmov|0|0|159|0|Righe di movimento contabile|NMOV*3|| diff --git a/cg/f24.trr b/cg/f24.trr index e05ec49dd..4fdea8baa 100755 --- a/cg/f24.trr +++ b/cg/f24.trr @@ -1,5 +1,5 @@ 24 -18 +20 ANNOES|9|4|0|Codice esercizio NUMREG|3|7|0|Numero di operazione NUMRIG|2|3|0|Numero di riga @@ -18,6 +18,8 @@ SOTTOCONTC|3|6|0|Sottoconto o codice cliente /fornitore contropartita IMPORTO|4|18|3| ROWTYPE|1|1|0| NUMGIO|3|7|0| +CODCMS|1|20|0|Codice Commessa +FASCMS|1|10|0|Fase Commessa 2 NUMREG+NUMRIG| GRUPPO+CONTO+SOTTOCONTO+DATAREG+NUMREG+NUMRIG| diff --git a/cg/f25.dir b/cg/f25.dir index b8d95e823..10c8422d2 100755 --- a/cg/f25.dir +++ b/cg/f25.dir @@ -1,3 +1,3 @@ 25 0 -$rmoviva|0|0|78|0|Righe movimento IVA|NMOV*2|| +$rmoviva|0|0|108|0|Righe movimento IVA|NMOV*2|| diff --git a/cg/f25.trr b/cg/f25.trr index b6c86a071..c40bd6d96 100755 --- a/cg/f25.trr +++ b/cg/f25.trr @@ -1,5 +1,5 @@ 25 -16 +18 ANNOES|2|4|0|Codice esercizio NUMREG|3|7|0|Numero operazione NUMRIG|2|3|0|Numero riga @@ -16,5 +16,7 @@ TIPOC|1|1|0|Tipo liente ornitore GRUPPO|2|3|0|Gruppo CONTO|2|3|0|Conto SOTTOCONTO|3|6|0|Sottoconto o codice cliente/fornitore +CODCMS|1|20|0|Codice Commessa +FASCMS|1|10|0|Fase Commessa 1 NUMREG+NUMRIG| diff --git a/cg/f26.dir b/cg/f26.dir index 21ddcf94b..5cb6f945e 100755 --- a/cg/f26.dir +++ b/cg/f26.dir @@ -1,3 +1,3 @@ 26 0 -$caus|0|0|77|0|Causali contabili|60|| +$caus|0|0|78|0|Causali contabili|60|| diff --git a/cg/f26.trr b/cg/f26.trr index d0022f4bb..b023c1add 100755 --- a/cg/f26.trr +++ b/cg/f26.trr @@ -1,5 +1,5 @@ 26 -20 +21 CODCAUS|1|3|0|Codice causale DESCR|1|50|0|Descrizione causale TIPODOC|1|2|0|Tipo documento @@ -20,6 +20,7 @@ CODCAUSIM|1|3|0|Codice causale incasso immediato SOSPESO|8|1|0|Causale sospesa VALINTRA|8|1|0|Gestione valuta intra-comunitaria MOVIND|1|1|0|Causale per contabilita' industriale +SOLOIVA|8|1|0|Movimento di sola IVA 2 CODCAUS| UPPER(DESCR)|X diff --git a/db/db0100.cpp b/db/db0100.cpp index fdea53239..9e7155a7e 100755 --- a/db/db0100.cpp +++ b/db/db0100.cpp @@ -13,7 +13,7 @@ public: void put_sheet(TSheet_field & s); void fill_sheet(TSheet_field & s); TLavorazione_tab (const TRectype r) : TLavorazione(r) {} - TLavorazione_tab (const char* cod) : TLavorazione(cod) {} + TLavorazione_tab (const char* cod = "") : TLavorazione(cod) {} virtual ~TLavorazione_tab (){} }; @@ -106,7 +106,7 @@ bool TDistinta_tables::user_create() bool err = TTable_application::user_create(); if (get_tabname() == "LAV") { - TLavorazione_tab *lav= new TLavorazione_tab(""); + TLavorazione_tab *lav= new TLavorazione_tab; get_relation()->lfile().set_curr(lav); } return err; @@ -124,7 +124,6 @@ TMask * TDistinta_tables::set_mask(TMask* _m) return mask; } - TString& TDistinta_tables::get_mask_name(TString& name) const { name = get_tabname(); @@ -139,13 +138,15 @@ int TDistinta_tables::read(TMask& m) { if (get_tabname() == "LAV") { + TLavorazione_tab &lav=(TLavorazione_tab &)get_relation()->curr(); TSheet_field& sheet = m.sfield(F_SHEET); if (sheet.shown()) { - TLavorazione_tab &lav=(TLavorazione_tab &)get_relation()->curr(); lav.fill_sheet(sheet); sheet.force_update(); - } + } + if (lav.get_real("R10").is_zero()) + m.set(F_COSUNIT, lav.prezzo()); } } return err; diff --git a/db/db0500.cpp b/db/db0500.cpp index b4d8fa3ff..db29e06c6 100755 --- a/db/db0500.cpp +++ b/db/db0500.cpp @@ -947,7 +947,7 @@ bool TDistinta_mask::on_field_event(TOperable_field& o, TField_event e, long jol { set(F_TIPO, "A", TRUE); - TArticolo mag (code); + const TArticolo mag(code); set(F_DESCR, mag.get(ANAMAG_DESCR)); set(F_PREZZO, mag.get(ANAMAG_COSTSTD)); set(F_PESO, mag.get(ANAMAG_PESO)); @@ -957,14 +957,11 @@ bool TDistinta_mask::on_field_event(TOperable_field& o, TField_event e, long jol case 'L': { set(F_TIPO, "L", TRUE); - TTable lav("LAV"); - lav.put("CODTAB", code); - if (lav.read() == NOERR) - { - set(F_DESCR, lav.get("S0")); - set(F_UM, lav.get("S6")); - set(F_PREZZO, lav.get("R0")); - } + + const TLavorazione lav(code); + set(F_DESCR, lav.descr()); + set(F_UM, lav.um()); + set(F_PREZZO, lav.prezzo()); } break; default: diff --git a/db/db0500b.uml b/db/db0500b.uml index b6c0b104c..10784dea7 100755 --- a/db/db0500b.uml +++ b/db/db0500b.uml @@ -118,7 +118,7 @@ BEGIN FIELD MASTER END -CURRENCY F_PREZZO 15 +CURRENCY F_PREZZO 18 BEGIN PROMPT 2 6 "Costo " FIELD PREZZO @@ -128,7 +128,7 @@ END STRING F_UM 2 BEGIN - PROMPT 26 6 "Unita' di misura " + PROMPT 27 6 "Unita' di misura " FLAGS "DG" USE LF_UMART KEY 2 JOIN LF_UMART ALIAS 200 INTO CODART==CODART diff --git a/db/db1100.cpp b/db/db1100.cpp index 6ac43c2ed..063fe9e5d 100755 --- a/db/db1100.cpp +++ b/db/db1100.cpp @@ -327,7 +327,7 @@ static real valorizza(const TRiga_esplosione& re, const _CallBackStruct* c) { case 'A': { - TArticolo_giacenza art(dis); + const TArticolo_giacenza art(dis); TString& annoes = pp->_anno_es; TString& catven = pp->_catven; TString& codlist = pp->_codlist; @@ -357,8 +357,9 @@ static real valorizza(const TRiga_esplosione& re, const _CallBackStruct* c) } break; case 'L': - { - total = real(cache().get("LAV", dis, "R0")); + { + const TLavorazione lav(dis); + total = lav.prezzo(); } break; case 'V': @@ -793,11 +794,9 @@ bool TExplode_distinta_form::validate(TForm_item &f, TToken_string &t) break; } case 'L': - { - TTable& lav = (TTable&) rel->lfile("LAV"); - lav.put("CODTAB", re.articolo()); - if (lav.read() == NOERR) - valore = lav.get("S0"); + { + const TLavorazione lav(re.articolo()); + valore = lav.descr(); break; } case 'V': diff --git a/db/db1300.cpp b/db/db1300.cpp index 26bdeedd2..0d002b55e 100755 --- a/db/db1300.cpp +++ b/db/db1300.cpp @@ -349,8 +349,8 @@ TDisplay_mask::TDisplay_mask(TAssoc_array& xmas) TString str; TToken_string disp; int i = 0; - FOR_EACH_ASSOC_OBJECT(_xmas, obj, key, item) - { + FOR_EACH_ASSOC_OBJECT(_xmas, obj, key, item) if (item != NULL) + { code.format("%03d", ++i); disp = key; disp.replace('|', ' '); disp.insert("|", 0); disp.insert(code, 0); diff --git a/db/db2400.cpp b/db/db2400.cpp index a013b9ecf..cd6540328 100755 --- a/db/db2400.cpp +++ b/db/db2400.cpp @@ -85,7 +85,7 @@ real TValorizzazione_mask::valore(const TCodice_articolo& dis, const char* liv) { case 'A': { - TArticolo_giacenza art(dis); + const TArticolo_giacenza art(dis); switch (_tipoval) { case 0: total = art.ultimo_costo(_annoes); break; @@ -103,9 +103,9 @@ real TValorizzazione_mask::valore(const TCodice_articolo& dis, const char* liv) } break; case 'L': - { - const real r0 = cache().get("LAV", dis, "R0"); - total = r0; + { + const TLavorazione lav(dis); + total = lav.prezzo(); } break; default : @@ -266,8 +266,8 @@ void TValorizzazione_mask::salva() case 'L': lav.put("CODTAB", key); if (lav.read(_isequal, _lock) == NOERR) - { - lav.put("R0", price); + { + lav.put("R10", price); // Was R0 lav.rewrite(); } break; diff --git a/db/dblib.cpp b/db/dblib.cpp index e464a5f94..ea72c26db 100755 --- a/db/dblib.cpp +++ b/db/dblib.cpp @@ -2,6 +2,7 @@ #include #include +#include #include #include "tabutil.h" @@ -252,11 +253,27 @@ int TLavorazione::rewrite(TBaseisamfile& f) const return TRectype::rewrite(f) ; } -const char * TLavorazione::cod_impianto(int l) +const char* TLavorazione::cod_impianto(int l) { return cache().get("LNP",cod_linea(l)).get("S6"); } +real TLavorazione::prezzo() const +{ + real p = get_real("R10"); + if (p.is_zero()) + { + if (is_euro_value("")) // Se la ditta č in Euro + { + TPrice pr(get_real("R0") / 1936.27); + p = pr.get_num(); + } + else + p = get_real("R0"); // Vecchio prezzo in lire + } + return p; +} + void TLavorazione::reset_linee() { _linee.cut(0); @@ -330,12 +347,12 @@ const int TLavorazione::numpers_linea(int l) return (int)np.integer(); } -const real TLavorazione::raw_produttiv_linea(int l) +real TLavorazione::raw_produttiv_linea(int l) { return real(_linee.get(l*3+2)); } -const real TLavorazione::produttiv_linea(int l) +real TLavorazione::produttiv_linea(int l) { real prod(raw_produttiv_linea(l)); if (prod.is_zero()) @@ -380,34 +397,27 @@ bool TLavorazione::set_produttiv_linea(int l, real & prod) return _linee.len()<250; } - - TLavorazione::TLavorazione(const char* cod) : TRectype(LF_TAB) { if (cod && *cod) - { - TTable lav("LAV"); - put("COD", "LAV"); - put("CODTAB", cod); - read(lav); - } else + *this = cache().get("LAV", cod); + else settab("LAV"); } -TRectype & TLavorazione::operator =(const TRectype& rec) +TRectype& TLavorazione::operator =(const TRectype& rec) { TRectype::operator =(rec); get_linee(); return *this; } - TLavorazione::TLavorazione(const TRectype& rec) : TRectype(rec) -{ get_linee();} +{ get_linee(); } TLavorazione::TLavorazione(const TLavorazione& rec) : TRectype(rec) -{ _linee = rec._linee;} +{ _linee = rec._linee; } /////////////////////////////////////////////////////////// diff --git a/db/dblib.h b/db/dblib.h index bceed0920..7f42f1003 100755 --- a/db/dblib.h +++ b/db/dblib.h @@ -93,10 +93,12 @@ protected: TObject* dup() const { return new TLavorazione(*this); } public: - const char * codice() const {return get("CODTAB");} - const char * descr() const {return get("S0");} - const char * um() const {return get("S6");} + const char* codice() const { return get("CODTAB"); } + const char* descr() const { return get("S0"); } + const char* um() const { return get("S6"); } TUm_tempo um_temporale() const {return (TUm_tempo)get_char("I7");} + real prezzo() const; + void reset_linee(); void get_linee(); void put_linee(); @@ -110,8 +112,8 @@ public: const int raw_numpers_linea(int l); const int numpers_linea(int l); // produttivitą - const real raw_produttiv_linea(int l); - const real produttiv_linea(int l); + real raw_produttiv_linea(int l); + real produttiv_linea(int l); const int find_linea(const TString& linea); bool set_cod_linea(int l, const char *c); diff --git a/db/dbtblav.uml b/db/dbtblav.uml index 675f4d6ec..534acd82e 100755 --- a/db/dbtblav.uml +++ b/db/dbtblav.uml @@ -7,105 +7,105 @@ PAGE "Anagrafica lavorazioni" -1 -1 65 15 GROUPBOX DLG_NULL 78 5 BEGIN - PROMPT 1 1 "" + PROMPT 1 1 "" END STRING F_CODICE 20 BEGIN - PROMPT 2 2 "Codice " - FLAGS "U" - FIELD CODTAB - KEY 1 - USE LAV - INPUT CODTAB F_CODICE - DISPLAY "Codice@20" CODTAB - DISPLAY "Descrizione@50" S0 - OUTPUT F_CODICE CODTAB - OUTPUT F_DESCR S0 - CHECKTYPE NORMAL - MESSAGE COPY,F_SEARCHART|CHECK,F_SEARCHART + PROMPT 2 2 "Codice " + FLAGS "U" + FIELD CODTAB + KEY 1 + USE LAV + INPUT CODTAB F_CODICE + DISPLAY "Codice@20" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_CODICE CODTAB + OUTPUT F_DESCR S0 + CHECKTYPE NORMAL + MESSAGE COPY,F_SEARCHART|CHECK,F_SEARCHART END STRING F_SEARCHART 20 BEGIN FLAGS "HG" - PROMPT 2 3 "Codice " - USE LF_ANAMAG - INPUT CODART F_SEARCHART - OUTPUT F_CODICEART CODART - MESSAGE CHECK,F_CODICEART - MESSAGE EMPTY RESET,F_CODICEART - CHECKTYPE SEARCH - WARNING "ricerca articolo errata" + PROMPT 2 3 "Codice " + USE LF_ANAMAG + INPUT CODART F_SEARCHART + OUTPUT F_CODICEART CODART + MESSAGE CHECK,F_CODICEART + MESSAGE EMPTY RESET,F_CODICEART + CHECKTYPE SEARCH + WARNING "ricerca articolo errata" END STRING F_CODICEART 20 BEGIN - FLAGS "HG" - PROMPT 42 3 "" - STR_EXPR #F_CODICEART=="" - MESSAGE EMPTY RESET,F_CODICEART - MESSAGE RESET,F_CODICEART - WARNING "Il codice e' gia' utilizzato per gli articoli" + FLAGS "HG" + PROMPT 42 3 "" + STR_EXPR #F_CODICEART=="" + MESSAGE EMPTY RESET,F_CODICEART + MESSAGE RESET,F_CODICEART + WARNING "Il codice e' gia' utilizzato per gli articoli" END STRING F_DESCR 50 BEGIN - PROMPT 2 4 "Descrizione " - FIELD S0 - KEY 2 - USE LAV KEY 2 - INPUT S0 F_DESCR - DISPLAY "Descrizione@50" S0 - DISPLAY "Codice@20" CODTAB - OUTPUT F_DESCR S0 - OUTPUT F_CODICE CODTAB - CHECKTYPE REQUIRED + PROMPT 2 4 "Descrizione " + FIELD S0 + KEY 2 + USE LAV KEY 2 + INPUT S0 F_DESCR + DISPLAY "Descrizione@50" S0 + DISPLAY "Codice@20" CODTAB + OUTPUT F_DESCR S0 + OUTPUT F_CODICE CODTAB + CHECKTYPE REQUIRED END GROUPBOX DLG_NULL 78 5 BEGIN - PROMPT 1 6 "" + PROMPT 1 6 "" END STRING F_UNMIS 2 BEGIN - FLAGS "U" + FLAGS "U" PROMPT 2 7 "Unita' di misura " FIELD S6 - USE %UMS - INPUT CODTAB F_UNMIS - DISPLAY "Unitą di misura@2" CODTAB - DISPLAY "Descrizione@50" S0 - OUTPUT F_UNMIS CODTAB - OUTPUT F_UMDESC S0 - CHECKTYPE REQUIRED + USE %UMS + INPUT CODTAB F_UNMIS + DISPLAY "Unitą di misura@2" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_UNMIS CODTAB + OUTPUT F_UMDESC S0 + CHECKTYPE REQUIRED MESSAGE COPY,F_UNMIS2 END STRING F_UMDESC 50 BEGIN - PROMPT 22 7 " " - USE %UMS KEY 2 - INPUT S0 F_UMDESC - DISPLAY "Descrizione@50" S0 - DISPLAY "Unitą di misura@2" CODTAB - OUTPUT F_UMDESC S0 - OUTPUT F_UNMIS CODTAB - CHECKTYPE REQUIRED + PROMPT 22 7 " " + USE %UMS KEY 2 + INPUT S0 F_UMDESC + DISPLAY "Descrizione@50" S0 + DISPLAY "Unitą di misura@2" CODTAB + OUTPUT F_UMDESC S0 + OUTPUT F_UNMIS CODTAB + CHECKTYPE REQUIRED END CURRENCY F_COSUNIT 15 BEGIN - PROMPT 2 9 "Costo unitario " + PROMPT 2 9 "Costo unitario " FLAGS "U" - FIELD R0 + FIELD R10 END BOOLEAN F_STAMPA BEGIN - PROMPT 51 9 "Stampa nelle esplosioni" - FIELD B0 + PROMPT 51 9 "Stampa nelle esplosioni" + FIELD B0 END ENDPAGE @@ -155,9 +155,9 @@ SPREADSHEET F_SHEET BEGIN FLAGS "I" PROMPT 0 6 "" - ITEM "Linea@5" + ITEM "Linea@5" ITEM "Descrizione@30" - ITEM "Impianto" + ITEM "Impianto" ITEM "Persone" ITEM "Produttivita'" END diff --git a/db/f112.trr b/db/f112.trr index 9066436f6..c394116fd 100755 --- a/db/f112.trr +++ b/db/f112.trr @@ -8,7 +8,7 @@ DESCR|1|50|0|Descrizione UMP|1|3|0|Unita' di misura del peso PESO|4|15|5|Peso UM|1|3|0|Unita' di misura -PREZZO|4|18|2|Costo di produzione +PREZZO|4|18|5|Costo di produzione LEADTIME|6|4|0|Lead time espresso in giorni lavorativi per MRP LEADHOURS|3|5|0|Lead time espresso in ore lavorative per MRP MASTER|8|1|0|Flag di articolo master ("critico") diff --git a/ef/ef0600.cpp b/ef/ef0600.cpp index f32eb0a73..81269df89 100755 --- a/ef/ef0600.cpp +++ b/ef/ef0600.cpp @@ -26,11 +26,12 @@ class TPrint_effetti_app : public TPrintapp TString _ban, _cli, _val, _data_stampa, _ban_prec; TDate _scad_prec; //TRectype* _rec_prec; - int _cur_1, _cur_2, _cur_3, _cur_4, _interline; + int _cur_1, _cur_2, _cur_3, _cur_4, _interline, _colonne; long _dist_prec, _cliente_prec; char _tipo_prec, _tipocf_prec; real _tot_data, _tot_mese, _tot_banca, _tot_distinta, _tot_tip_dist, _tot_cliente, _tot_stampa; bool _prima_volta; + bool _stampa_bancapp; public: virtual bool preprocess_page(int file, int counter); virtual bool preprocess_print(int file, int counter); @@ -44,7 +45,8 @@ public: virtual bool user_create(); virtual bool user_destroy(); virtual bool set_print(int); - virtual void set_page (int file, int counter); + virtual void set_page (int file, int counter); + void write_bancapp(); void set_scadenza(); void set_banca(); void set_distinta(); @@ -100,7 +102,7 @@ const char* TPrint_effetti_app::look_tab(const char* tabname, const TString& cod // stampa il totale per data di scadenza void TPrint_effetti_app::st_tot_scad() { - _pr.put("-------------------------------------------",50); + _pr.put("___________________________________________",50); printer().print(_pr); _pr.reset(); _pr.put("TOTALE",50); @@ -230,9 +232,12 @@ void TPrint_effetti_app::header_scadenza() { int j =2; set_header(j, "@52gSTAMPA RI.BA. PER SCADENZA"); j++; - set_header(j++, (const char *)(TString(132).fill('-'))); - set_header(j++, " Scadenza Banca Cliente N.Riba N.Dist Importo Val. N.Rata St.Def. Fattura del. N."); - set_header(j, (const char *)(TString(132).fill('-'))); + set_header(j++, (const char *)(TString(_colonne).fill('_'))); + TString head = " Scadenza Banca Cliente N.Riba N.Dist Importo Val. N.Rata St.Def. Fattura del. N."; + if (_stampa_bancapp) + head << " ABI CAB Banca d'appoggio"; + set_header(j++, head); + set_header(j, (const char *)(TString(_colonne).fill('_'))); } // setta l'header per la stampa per banca di presentazione @@ -240,9 +245,12 @@ void TPrint_effetti_app::header_banca() { int j = 2; set_header(j, "@45gSTAMPA RI.BA. PER BANCHE DI PRESENTAZIONE"); j++; - set_header(j++, (const char *)(TString(132).fill('-'))); - set_header(j++, " Banca Scadenza Cliente N.Riba N.Dist Importo Val. N.Rata St.Def. Fattura del. N."); - set_header(j, (const char *)(TString(132).fill('-'))); + set_header(j++, (const char *)(TString(_colonne).fill('_'))); + TString head = " Banca Scadenza Cliente N.Riba N.Dist Importo Val. N.Rata St.Def. Fattura del. N."; + if (_stampa_bancapp) + head << " ABI CAB Banca d'appoggio"; + set_header(j++, head); + set_header(j, (const char *)(TString(_colonne).fill('_'))); } // setta l'header per la stampa per distinta di presentazione @@ -250,10 +258,13 @@ void TPrint_effetti_app::header_distinta() { int j = 2; set_header(j, "@55gSTAMPA RI.BA. PER DISTINTE"); j++; - set_header(j++, (const char *)(TString(132).fill('-'))); + set_header(j++, (const char *)(TString(_colonne).fill('_'))); set_header(j++, " Distinta "); - set_header(j++, "@1gTipo Num. N.Riba Scadenza Banca Cliente Importo Val. N.Rata St.Def. Fattura del. N."); - set_header(j, (const char *)(TString(132).fill('-'))); + TString head = "@1gTipo Num. N.Riba Scadenza Banca Cliente Importo Val. N.Rata St.Def. Fattura del. N."; + if (_stampa_bancapp) + head << " ABI CAB Banca d'appoggio"; + set_header(j++, head); + set_header(j, (const char *)(TString(_colonne).fill('_'))); } // setta l'header per la stampa per cliente @@ -261,9 +272,12 @@ void TPrint_effetti_app::header_cliente() { int j = 2; set_header(j, "@52gSTAMPA RI.BA. PER CLIENTE"); j++; - set_header(j++, (const char *)(TString(132).fill('-'))); - set_header(j++, " Cliente Scadenza Banca N.Riba N.Dist Importo Val N.Rata St.Def. Fattura del. N."); - set_header(j, (const char *)(TString(132).fill('-'))); + set_header(j++, (const char *)(TString(_colonne).fill('_'))); + TString head = " Cliente Scadenza Banca N.Riba N.Dist Importo Val N.Rata St.Def. Fattura del. N."; + if (_stampa_bancapp) + head << " ABI CAB Banca d'appoggio"; + set_header(j++, head); + set_header(j, (const char *)(TString(_colonne).fill('_'))); } // svolge operazioni di chiusura dei totali pendenti dalla stampa @@ -291,7 +305,7 @@ print_action TPrint_effetti_app::postprocess_print(int file, int counter) } if (_tot_distinta != 0.0 &&_dist_prec != 0) { - _pr.put("-------------------------------------------",50); + _pr.put("___________________________________________",50); printer().print(_pr); _pr.reset(); _pr.put("TOTALE",50); @@ -307,7 +321,7 @@ print_action TPrint_effetti_app::postprocess_print(int file, int counter) { if (_dist_prec == 0) { - _pr.put("-------------------------------------------",50); + _pr.put("___________________________________________",50); printer().print(_pr); _pr.reset(); } @@ -352,7 +366,7 @@ print_action TPrint_effetti_app::postprocess_print(int file, int counter) if (_tot_stampa != 0.0) { _pr.reset(); - _pr.put("-------------------------------------------",50); + _pr.put("___________________________________________",50); printer().print(_pr); _pr.reset(); _pr.put("TOTALE ",50); @@ -362,7 +376,7 @@ print_action TPrint_effetti_app::postprocess_print(int file, int counter) _pr.put("RI.BA. STAMPATE",52); printer().print(_pr); _pr.reset(); - _pr.put("-------------------------------------------",50); + _pr.put("___________________________________________",50); printer().print(_pr); _pr.reset(); _tot_stampa = 0.0; @@ -398,6 +412,23 @@ void TPrint_effetti_app::set_page(int file, int counter) } } +// scrive,se richiesto nella maschera, ABI CAB descABI descCAB della banca di APPOGGIO dell'effetto +void TPrint_effetti_app::write_bancapp() +{ + if (_stampa_bancapp) + { + const TRectype& rec = current_cursor()->curr(); + const TString8 codabi = rec.get(EFF_CODABI); + TString16 codcab; codcab << codabi << rec.get(EFF_CODCAB); +// TString descabi = look_tab("%BAN", codabi); la descrizione dell'abi viene omessa per problemi di spazio + TString desccab = look_tab("%BAN", codcab); + set_row(2,"@133g@pn @pn %s", + FLD(LF_EFFETTI, EFF_CODABI, "@@@@@"), + FLD(LF_EFFETTI, EFF_CODCAB, "@@@@@"), + (const char*)desccab); + } +} + // setta la pagina logica nel caso di stampa per data di scadenza void TPrint_effetti_app::set_scadenza() { @@ -414,7 +445,8 @@ void TPrint_effetti_app::set_scadenza() FLD(LF_EFFETTI, EFF_EFFSTAMP), FLD(LF_REFFETTI, REFF_DATAFATT), FLD(LF_REFFETTI, REFF_NFATT)); - + + write_bancapp(); for(int i = 0; i < _interline; i++) set_row(i+1," "); } @@ -436,6 +468,7 @@ void TPrint_effetti_app::set_banca() FLD(LF_REFFETTI, REFF_DATAFATT), FLD(LF_REFFETTI, REFF_NFATT)); + write_bancapp(); for(int i = 0; i < _interline; i++) set_row(i+1,""); } @@ -456,7 +489,8 @@ void TPrint_effetti_app::set_distinta() FLD(LF_EFFETTI, EFF_EFFSTAMP), FLD(LF_REFFETTI, REFF_DATAFATT), FLD(LF_REFFETTI, REFF_NFATT)); - + + write_bancapp(); for(int i = 0; i < _interline; i++) set_row(i+1,""); } @@ -476,7 +510,8 @@ void TPrint_effetti_app::set_cliente() FLD(LF_EFFETTI, EFF_EFFSTAMP), FLD(LF_REFFETTI, REFF_DATAFATT), FLD(LF_REFFETTI, REFF_NFATT)); - + + write_bancapp(); for(int i = 0; i < _interline; i++) set_row(i+1," "); } @@ -486,7 +521,7 @@ bool TPrint_effetti_app::preprocess_page(int file, int counter) TString s; // scarico i dati, dal record corrente del cursore, che mi // necessitano per effettuare la "rorrura della stampa" - TRectype & rec = current_cursor()->curr(); + TRectype& rec = current_cursor()->curr(); const TDate scad = rec.get_date (EFF_DATASCAD); TString ban = rec.get (EFF_CODABIP); long dist = rec.get_long (EFF_NDIST); @@ -513,8 +548,7 @@ bool TPrint_effetti_app::preprocess_page(int file, int counter) if (_pr_type != st_cliente) _cli = _cli.left(25); - s = get_field(LF_EFFETTI, EFF_CODVAL); - (s.empty())?_val = s:_val = "Lit."; + _val = get_field(LF_EFFETTI, EFF_CODVAL); // se č la prima volta che stampo devo inizializzare i dati di // controllo "rottura stampa" e stampare l' header relativo @@ -660,7 +694,7 @@ bool TPrint_effetti_app::preprocess_page(int file, int counter) //il totale per nessuna distinta si fa solo per tipo if (_dist_prec != 0) { - _pr.put("-------------------------------------------",50); + _pr.put("___________________________________________",50); printer().print(_pr); _pr.reset(); _pr.put("TOTALE",50); @@ -677,7 +711,7 @@ bool TPrint_effetti_app::preprocess_page(int file, int counter) { if (_dist_prec == 0) { - _pr.put("-------------------------------------------",50); + _pr.put("___________________________________________",50); printer().print(_pr); _pr.reset(); } @@ -783,6 +817,8 @@ bool TPrint_effetti_app::set_print(int) _pr_type = (pt) mask.get_int(RDB_TIPOST); TDate data_stampa (mask.get(F_DATA_STAMPA)); _data_stampa = data_stampa.string(); + _stampa_bancapp = mask.get_bool(F_BANCA_APP); + _colonne = _stampa_bancapp ? 198 : 132; // inizializzo i record di scelta del cursore TRectype from(current_cursor()->curr()); diff --git a/ef/ef0600.h b/ef/ef0600.h index ec4ff3b89..dc04d9d85 100755 --- a/ef/ef0600.h +++ b/ef/ef0600.h @@ -22,6 +22,7 @@ #define F_DACLI 117 #define F_ACLI 118 #define F_DA_DATA4 119 -#define F_A_DATA4 120 +#define F_A_DATA4 120 +#define F_BANCA_APP 121 #endif//__EF0600_H diff --git a/ef/ef0600a.uml b/ef/ef0600a.uml index e618a406a..6d40dc737 100755 --- a/ef/ef0600a.uml +++ b/ef/ef0600a.uml @@ -6,13 +6,23 @@ PAGE "Stampe di Controllo Effetti" -1 -1 58 15 DATE F_DATA_STAMPA BEGIN - PROMPT 30 0 "Data di stampa " + PROMPT 30 1 "Data di stampa " FLAGS "A" END +BOOL F_BANCA_APP +BEGIN + PROMPT 30 3 "Stampa banca appoggio" +END + +TEXT DLG_NULL +BEGIN + PROMPT 32 4 "(richieste 198 colonne)" +END + RADIOBUTTON RDB_TIPOST 24 BEGIN - PROMPT 2 0 "Stampa per " + PROMPT 2 1 "Stampa per " ITEM "1|Banca" MESSAGE SHOW,2@|HIDE,1@|HIDE,3@|HIDE,4@ ITEM "2|Cliente/Fornitore" diff --git a/in/batbicc.uml b/in/batbicc.uml index 71a15e4b7..f8550bd41 100755 --- a/in/batbicc.uml +++ b/in/batbicc.uml @@ -22,6 +22,7 @@ BEGIN DISPLAY "Codice" CODTAB DISPLAY "Descrizione@50" S0 OUTPUT F_CODICE CODTAB + OUTPUT F_DESCR S0 CHECKTYPE REQUIRED FIELD CODTAB KEY 1 diff --git a/in/batbimt.uml b/in/batbimt.uml index 88b15aa9f..b0c744ab6 100755 --- a/in/batbimt.uml +++ b/in/batbimt.uml @@ -21,6 +21,7 @@ BEGIN DISPLAY "Codice" CODTAB DISPLAY "Descrizione@50" S0 OUTPUT F_CODICE CODTAB + OUTPUT F_DESCR S0 CHECKTYPE REQUIRED FIELD CODTAB KEY 1 diff --git a/in/batbint.uml b/in/batbint.uml index 8cc6df03a..5ab6a2489 100755 --- a/in/batbint.uml +++ b/in/batbint.uml @@ -21,6 +21,7 @@ BEGIN DISPLAY "Codice" CODTAB DISPLAY "Descrizione@70" S0 OUTPUT F_CODICE CODTAB + OUTPUT F_DESCR S0 CHECKTYPE REQUIRED FIELD CODTAB KEY 1 diff --git a/in/batbird.rpt b/in/batbird.rpt index e719e7d12..2ac440e78 100755 --- a/in/batbird.rpt +++ b/in/batbird.rpt @@ -10,8 +10,8 @@ Tabella Dati Riassuntivi [Rows] 1|CODTAB[1,4]|@3g@4,rs -1|CODTAB[5,]|@10@2,rs +1|CODTAB[5,]|@10g@2,rs 1|I0|@21g@4,rn 1|I1|@27g@7,rn 1|I2|@36g@7,rn -1|R0|@48g@18,rpn|###############,@@ +1|R0|@48g@18,rpn|.2 diff --git a/in/in0500a.uml b/in/in0500a.uml index 4ac86d50e..3a5e17b58 100755 --- a/in/in0500a.uml +++ b/in/in0500a.uml @@ -239,7 +239,7 @@ END NUMBER F_NOMENCLATURA1 4 BEGIN PROMPT 36 3 "Nomenclatura combinata " - FLAGS "U" + FLAGS "Z" USE %NOC INPUT CODTAB[1,4] F_NOMENCLATURA1 INPUT CODTAB[5,6] F_NOMENCLATURA2 diff --git a/in/in0600a.uml b/in/in0600a.uml index 962c04882..a53a02df7 100755 --- a/in/in0600a.uml +++ b/in/in0600a.uml @@ -209,7 +209,7 @@ END NUMBER F_NOMENCLATURA1 4 BEGIN PROMPT 1 10 "combinata " - FLAGS "U" + FLAGS "Z" USE %NOC INPUT CODTAB[1,4] F_NOMENCLATURA1 INPUT CODTAB[5,6] F_NOMENCLATURA2 diff --git a/in/intabcom.txt b/in/intabcom.txt index 24ef6e67a..3db5f0857 100755 --- a/in/intabcom.txt +++ b/in/intabcom.txt @@ -1,5 +1,5 @@ [Header] -Version=199518 +Version=199517 Fields=COD,3|CODTAB,25|S0,70|S1,70|S2,70|S3,70|S4,20|S5,20|S6,5|S7,5 Fields=S8,5|S9,5|S10,5|S11,5|I0,7|I1,7|I2,7|I3,7|I4,7|I5,7 Fields=I6,7|I7,7|I8,7|I9,7|I10,7|I11,7|I12,7|I13,7|I14,7|R0,18 diff --git a/include/automask.cpp b/include/automask.cpp index a83276904..ec1deaea1 100755 --- a/include/automask.cpp +++ b/include/automask.cpp @@ -61,9 +61,11 @@ TField_event TAutomask::key2event(TMask_field& f, KEY key) const { const TMask& wm = f.mask(); if (f.is_kind_of(CLASS_BUTTON_FIELD)) - fe = fe_button; + fe = fe_button; else + if (f.is_kind_of(CLASS_TREE_FIELD)) + fe = fe_modify; else - fe = wm.is_running() ? fe_modify : fe_init; + fe = f.focusdirty() ? fe_modify : fe_init; } break; case K_ENTER: diff --git a/include/causali.h b/include/causali.h index cdc67db72..571f6480b 100755 --- a/include/causali.h +++ b/include/causali.h @@ -9,18 +9,19 @@ #define CAU_MOVAP "MOVAP" #define CAU_ALLEG "ALLEG" #define CAU_INTRACOM "INTRACOM" -#define CAU_REG "REG" -#define CAU_MOVVAL "MOVVAL" -#define CAU_DATADOC "DATADOC" -#define CAU_NUMDOC "NUMDOC" +#define CAU_REG "REG" +#define CAU_MOVVAL "MOVVAL" +#define CAU_DATADOC "DATADOC" +#define CAU_NUMDOC "NUMDOC" #define CAU_AUTOFATT "AUTOFATT" -#define CAU_MOVSEZ "MOVSEZ" -#define CAU_TIPOMOV "TIPOMOV" -#define CAU_RITFATT "RITFATT" +#define CAU_MOVSEZ "MOVSEZ" +#define CAU_TIPOMOV "TIPOMOV" +#define CAU_RITFATT "RITFATT" #define CAU_COLLCESP "COLLCESP" -#define CAU_M770 "M770" -#define CAU_CODCAUSIM "CODCAUSIM" -#define CAU_SOSPESO "SOSPESO" -#define CAU_VALINTRA "VALINTRA" +#define CAU_M770 "M770" +#define CAU_CODCAUSIM "CODCAUSIM" +#define CAU_SOSPESO "SOSPESO" +#define CAU_VALINTRA "VALINTRA" +#define CAU_SOLOIVA "SOLOIVA" #endif diff --git a/include/clifo.h b/include/clifo.h index c925816cb..6ebfb61a1 100755 --- a/include/clifo.h +++ b/include/clifo.h @@ -56,7 +56,6 @@ #define CLI_SOSPESO "SOSPESO" #define CLI_OCCAS "OCCAS" #define CLI_CODLIN "CODLIN" -#define CLI_CODAG "CODAG" #define CLI_CODZONA "CODZONA" #endif diff --git a/include/doc.h b/include/doc.h index c3c1edd69..9e6f23eac 100755 --- a/include/doc.h +++ b/include/doc.h @@ -73,6 +73,8 @@ #define DOC_UTENTE "UTENTE" #define DOC_DOCEVASO "DOCEVASO" #define DOC_CONTROEURO "CONTROEURO" +#define DOC_CODCMS "CODCMS" +#define DOC_FASCMS "FASCMS" #endif diff --git a/include/execp.cpp b/include/execp.cpp index be7ed9a91..e538cfcce 100755 --- a/include/execp.cpp +++ b/include/execp.cpp @@ -43,14 +43,14 @@ word TExternal_app::run( _exitcode = 0; // save cwd - xvt_fsys_save_dir(); + DIRECTORY oldir; + xvt_fsys_get_dir(&oldir); const TFilename dir(comm_name.path()); if (dir.not_empty()) { DIRECTORY d; - - if (xvt_fsys_convert_str_to_dir((char *) (const char *) dir, &d)) + if (xvt_fsys_convert_str_to_dir((char*)(const char*)dir, &d)) xvt_fsys_set_dir(&d); } @@ -62,8 +62,9 @@ word TExternal_app::run( iconize &= !async && show; _exitcode = os_execute(path, !async, iconize, show); + // restore cwd - xvt_fsys_restore_dir(); + xvt_fsys_set_dir(&oldir); // Ignora volutamente il return code da HL_LOGIN(). Se va bene riprende il posto // altrimenti fa lo stesso. Infatti puo' capitare con una chiave di rete, che diff --git a/include/form.cpp b/include/form.cpp index 79a56dbf5..2f33c54bb 100755 --- a/include/form.cpp +++ b/include/form.cpp @@ -2036,11 +2036,14 @@ bool TForm_line::update() break; } } - + + // Calcola la vera coordinata y della linea + const int y = _y >= 0 ? _y : (printer().formlen()+_y+1); + TString80 i; i << 'W' << spessore << codice - << '{' << _x << ',' << _y << ',' - << (_x+width()-1) << ',' << (_y+height()-1) << '}'; + << '{' << _x << ',' << y << ',' + << (_x+width()-1) << ',' << (y+height()-1) << '}'; ((TGraphic_section&)section()).append(i); return TRUE; diff --git a/include/isam.cpp b/include/isam.cpp index ff7db9acb..f3fd410e8 100755 --- a/include/isam.cpp +++ b/include/isam.cpp @@ -308,13 +308,13 @@ void get_idx_names( r.get(logicnum); TFilename f(d.name()); - if ( c & 1) f.ext("cdx"); - if ( c & 4) f.ext("mdx"); + if (c & 1) f.ext("cdx"); + if (c & 4) f.ext("mdx"); i_names.cut(0); i_names.add(f); f.ext(""); f.rtrim(1); - if (c & 2 || c & 8) // DBIII or CLIPPER format, returns f_name + .cgp, f_nameX + .n{d|t}x + if ((c & 2) || (c & 8)) // DBIII or CLIPPER format, returns f_name + .cgp, f_nameX + .n{d|t}x for (int j=1; j<=r.keys();j++) { TString xx=f.name(); @@ -386,8 +386,9 @@ HIDDEN int error_codes_rb[] = {-1,-1,_isreinsert,-1,-1,_islocked,-1,_isalropen,_ } // Used also by varrec -HIDDEN bool rec_has_memo(const RecDes* rd) -{ +bool rec_has_memo(const RecDes* rd) +{ + CHECKD(rd->NFields <= MaxFields, "Tracciato con troppi campi ", rd->NFields); for( int i = rd->NFields - 1; i >= 0; i--) if (rd->Fd[i].TypeF == _memofld) return TRUE; @@ -726,6 +727,7 @@ TBaseisamfile::TBaseisamfile( if (err != NOERR) fatal_box("Non posso creare il file %s : errore n.ro %d", name, err); } + _isamfile = NULL; _lasterr = NOERR; TFilename filename(name); _logicnum = prefix().get_handle(filename); @@ -924,9 +926,15 @@ int TBaseisamfile::_write(const TRectype& rec) { CHECK(!rec.empty(), "Can't write an empty record"); + // Controlla che la chiave sia piena + TString256 key; + __build_key(_isamfile->r, 1, rec.string(), key.get_buffer(), TRUE); + if (key.blank()) + return _iskeyerr; + #ifdef _DEMO_ - - if ((num() > LF_COMUNI && num() < LF_ANALISI) || num() > LF_RELANA) + const int logicnum = num(); + if ((logicnum > LF_COMUNI && logicnum < LF_ANALISI) || logicnum > LF_RELANA) { if (items() > 979L) return _isfilefull; diff --git a/include/mask.cpp b/include/mask.cpp index 91bcfab63..676c9aff6 100755 --- a/include/mask.cpp +++ b/include/mask.cpp @@ -848,11 +848,9 @@ bool TMask::on_key( if (f.is_kind_of(CLASS_SHEET_FIELD)) { TSheet_field& s = (TSheet_field&)f; - if (s.items() == 0) // Se lo spreadsheet e' vuoto ... - { - notify_focus_field(s.dlg()); - s.insert(0, TRUE, TRUE); // ... prova ad aggiungere la prima riga! - } + const int newrow = s.append() ? -1 : 0; + notify_focus_field(s.dlg()); + s.insert(newrow, TRUE, TRUE); } } } @@ -2156,14 +2154,6 @@ TTimed_breakbox::TTimed_breakbox(const char * message,int seconds,int x,int y) TTimed_breakbox::~TTimed_breakbox() {} - - - - - - - - // @doc INTERNAL diff --git a/include/maskfld.cpp b/include/maskfld.cpp index de46b9bfb..00becd34f 100755 --- a/include/maskfld.cpp +++ b/include/maskfld.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -57,7 +58,8 @@ TMask_field::TField_Flags::TField_Flags() firm = ghost = FALSE; password = FALSE; trim = 3; - pipeallowed = FALSE; + pipeallowed = FALSE; + user = FALSE; } // Certified 100% @@ -95,6 +97,8 @@ char TMask_field::TField_Flags::update(const char* f, bool reset) persistent = !reset; break; case 'R': rightjust = !reset; break; + case 'T': + user = !reset; break; case 'U': uppercase = !reset; break; case 'Z': @@ -2173,7 +2177,18 @@ void TBrowse::do_output(CheckTime t) TMask_field& f = field(id); flds = _out_fn.get(); - if (t != STARTING_CHECK || f.field() == NULL || (f.mask().mode() == MODE_INS && !f.in_key(0))) + + bool do_that = t != STARTING_CHECK || f.field() == NULL || (f.mask().mode() == MODE_INS && !f.in_key(0)); + if (do_that) // Considera a parte le transazioni! + { + if (main_app().class_id() == CLASS_RELATION_APPLICATION) + { + const TRelation_application& ra = (const TRelation_application&)main_app(); + if (ra.is_transaction()) + do_that = f.empty(); + } + } + if (do_that) { sum.cut(0); for(const char* fr = flds.get(0); fr; fr = flds.get()) @@ -2944,7 +2959,7 @@ bool TEdit_field::parse_item(TScanner& scanner) r = new TRelation(logicnum); #ifdef DBG else - fatal_box("Impossibile creare una USE sul file %s",d.filename()); + yesnofatal_box("Impossibile creare una USE sul file %s",d.filename()); #endif } else @@ -3290,6 +3305,13 @@ bool TEdit_field::default_error_box() const return FALSE; } +bool TEdit_field::autosave(TRelation& r) +{ + if (_flags.user) + _str = user(); + return TEditable_field::autosave(r); +} + bool TEdit_field::on_key(KEY key) { const int vf = validate_func(); @@ -3692,18 +3714,10 @@ bool TDate_field::on_key(KEY key) { #ifdef _DEMO_ TDate d(data); - int y = d.year(); - - if (y & 0x0001) y--; - y >>= 3; - y++; - y /= 10; - if (y >= 25) - { - int m = d.month(); - if (m > 3) - d.set_month(rand() % 3 + 1); - } + + int m = d.month(); + if (m > 3) + d.set_month(rand() % 3 + 1); set_window_data(d.string()); #else set_window_data(data); diff --git a/include/maskfld.h b/include/maskfld.h index b4137504d..f5cf0026e 100755 --- a/include/maskfld.h +++ b/include/maskfld.h @@ -1054,6 +1054,8 @@ protected: public: // @cmember Gestisce la chiamata all'handler del campo virtual bool on_hit(); + // @cmember Scrive sulla relazione il valore del campo + virtual bool autosave(TRelation& r); // @cmember Gestisce la pressione del tasto (TRUE se la gestione ha avuto successo) virtual bool on_key(KEY key); // @cmember Controlla se il campo ha un check diff --git a/include/msksheet.cpp b/include/msksheet.cpp index 82fbe6c40..6be3cd4f6 100755 --- a/include/msksheet.cpp +++ b/include/msksheet.cpp @@ -88,12 +88,11 @@ void TRow_property::set(int col, COLOR back, COLOR fore) void TRow_property::get(int col, COLOR & back, COLOR & fore) const { - if (col > 0 && _cell_prop && _cell_prop->objptr(col) != NULL) - ((TCell_property &)(*_cell_prop)[col]).get(back, fore); - else + if (col > 0 && _cell_prop) { - fore = _fore; - back = _back; + const TCell_property* cp = (const TCell_property*)_cell_prop->objptr(col); + if (cp != NULL) + cp->get(back, fore); } } @@ -1908,14 +1907,8 @@ void TSpreadsheet::set_back_and_fore_color(COLOR back, COLOR fore, int row, int void TSpreadsheet::get_back_and_fore_color(COLOR& back, COLOR& fore, int row, int col) { TRow_property* prop = get_property(row, FALSE); - if (prop) prop->get(col, back, fore); - else - { - back = NORMAL_BACK_COLOR; - fore = NORMAL_COLOR; - } } // @doc INTERNAL @@ -2854,7 +2847,7 @@ void TSheet_field::row2mask(int n, TToken_string& r, int mode) TMask& m = sheet_mask(); const int campi = m.fields(); const TSpreadsheet& s = (const TSpreadsheet&)*_ctl; - int i; // Conatatore di tutti i cicli successivi + int i; // Contatore di tutti i cicli successivi for (short id = FIRST_FIELD; id <= _last_column_id; id++) { diff --git a/include/rdoc.h b/include/rdoc.h index 3b3f4e2f6..64664ec45 100755 --- a/include/rdoc.h +++ b/include/rdoc.h @@ -56,6 +56,8 @@ #define RDOC_DAPROVV "DAPROVV" #define RDOC_DANDOC "DANDOC" #define RDOC_DAIDRIGA "DAIDRIGA" +#define RDOC_CODCMS "CODCMS" +#define RDOC_FASCMS "FASCMS" #endif diff --git a/include/real.cpp b/include/real.cpp index df9402fa1..4e4392a67 100755 --- a/include/real.cpp +++ b/include/real.cpp @@ -761,7 +761,6 @@ real operator *(double a, const real & b) { __tmp_real = a; dmul(__tmp_real.ptr (), __tmp_real.ptr (), b.ptr ()); -/* muldfd (__tmp_real.ptr (), b.ptr (), a); */ __tmp_real.trail( ); return __tmp_real; } @@ -770,7 +769,6 @@ real operator *(const real & a, double b) { __tmp_real = b; dmul (__tmp_real.ptr (), a.ptr (), __tmp_real.ptr ()); -/* muldfd (__tmp_real.ptr (), a.ptr (), b); */ __tmp_real.trail( ); return __tmp_real; } @@ -1779,3 +1777,12 @@ int TImporto::compare(const TSortable& s) const const int res = d.sign(); return res; } + +bool TImporto::is_zero() const +{ +#ifdef __LONGDOUBLE__ + return fabsl(_valore) < 0.00001; +#else + return _valore.is_zero(); +#endif +} diff --git a/include/real.h b/include/real.h index 4eb2d6711..1b09e3bd4 100755 --- a/include/real.h +++ b/include/real.h @@ -468,8 +468,7 @@ public: { return _valore; } // @cmember Controlla se l'importo e' 0 (in qualsiasi sezione, TRUE se 0) - bool is_zero() const - { return _valore.is_zero(); } + bool is_zero() const; // @cmember Assegna l'importo passato const TImporto& operator=(const TImporto& i) diff --git a/include/relapp.h b/include/relapp.h index f52cbaa15..6d07b9a69 100755 --- a/include/relapp.h +++ b/include/relapp.h @@ -247,6 +247,9 @@ public: // @cmember Ritorna TRUE se e' stato chiamato col messaggio di link bool lnflag() const { return _lnflag != 0;} // qui + + virtual word class_id() const { return CLASS_RELATION_APPLICATION; } + // @cmember Ritorna TRUE se e' una transazione bool is_transaction() const { return _curr_transaction.not_empty(); } diff --git a/include/relation.h b/include/relation.h index f666659d8..f57543516 100755 --- a/include/relation.h +++ b/include/relation.h @@ -418,6 +418,9 @@ public: void restore_status() { _if->restore_status(); } + // @cmember Restituisce se il č sorted (default = FALSE) + virtual bool is_sorted() const { return FALSE; } + // @cmember Costruttore TCursor(TRelation* f, const char* filter = "", int key = 1, const TRectype* from = NULL, const TRectype* to = NULL, int tilde = 0x0); // @cmember Distruttore @@ -477,8 +480,12 @@ public: virtual TRecnotype read(TIsamop op = _isgteq, TReclock lockop = _nolock); // @cmember Permette di cambiare l'ordinamento del cursore. - void change_order(const char* order_expr); + void change_order(const char* order_expr); + const char* get_order() const { return _order_expr; } + // @cmember Restituisce se il č sorted (default = FALSE) + virtual bool is_sorted() const { return TRUE; } + // @cmember Costruttore TSorted_cursor(TRelation *f,const char * order_expr, const char * filter = "", int key = 1, const TRectype* from = NULL, const TRectype* to = NULL); // @cmember Distruttore @@ -772,9 +779,6 @@ public: TSorted_cursor &cursor() { return *_curs; } - // @cmember Restituisce se il file č ordinato con indice esterno (default:FALSE) - virtual bool is_sorted() - {return TRUE;} // @cmember Costruttore. TSortedfile(int logicnum,TRelation* rel = NULL,const char* ordexpr="",const char * filter="", int nkey=1); // @cmember Distruttore diff --git a/include/validate.cpp b/include/validate.cpp index 908501d7b..9e97d2284 100755 --- a/include/validate.cpp +++ b/include/validate.cpp @@ -112,9 +112,9 @@ bool pi_check( } else { - const char* stpi[] = { "BE09", "DE09", "DK08", "EL08", "ES09", - "FI08", "FR11", "GB09", "GB12", "IE08", - "IT11", "LU08", "NL12", "PT09", NULL }; + const char* stpi[] = { "AT09", "BE09", "DE09", "DK08", "EL08", "ES09", + "FI08", "FR11", "GB05", "GB09", "GB12", "IE08", + "IT11", "LU08", "NL12", "PT09", "SE12", NULL }; TString16 test; test.format("%s%02d", (const char*)stato, pi.len()); @@ -124,7 +124,9 @@ bool pi_check( ok = (test == stpi[g]); if (ok) break; - } + } + if ((test=="AT09") && (ok)) + ok = (pi[0] == 'U'); } return ok; diff --git a/m770/772400.cpp b/m770/772400.cpp index f0bb2ad5e..03b98ec28 100755 --- a/m770/772400.cpp +++ b/m770/772400.cpp @@ -88,6 +88,16 @@ public: HIDDEN inline TSt_vers& app() { return (TSt_vers&)main_app(); } +const real& round_mille_lire(real& n) +{ + const int dec = TCurrency::get_firm_dec(); + if (dec == 0) + n.round(-3); // 1000 Lire + else + n.round(0); // Un Euro + return n; +} + bool TSt_vers::codditta_hnd(TMask_field& f, KEY k) { if (k == K_TAB && !(f.mask().is_running()) ) @@ -274,7 +284,7 @@ void TSt_vers::leggi_sort() set_row(i++, "@b@87gTOTALI CODICE ESATTORIA@115g%r", &_tot_cod); TDate d = format("%02d/%04d", mese, anno); TString16 s(d.string(brief,'/')); - real arr = _tot_mese.round(-3); + real arr = round_mille_lire(_tot_mese); set_row(i++, "@b@87gTOTALI MESE PAGAMENTO %s@115g%r", (const char*)s, &arr); set_row(i++, ""); set_row(i++, ""); @@ -334,7 +344,7 @@ void TSt_vers::leggi_sort() set_row(1, "@b@87gTOTALI CODICE ESATTORIA@115g%r", &_tot_cod); TDate d = format("%02d/%04d", _mesep, _annop); TString16 s(d.string(brief,'/')); - real arr = _tot_mese.round(-3); + real arr = round_mille_lire(_tot_mese); set_row(2, "@b@87gTOTALI MESE PAGAMENTO %s@115g%r", (const char*)s, &arr); } } diff --git a/mg/f111.dir b/mg/f111.dir index 7a3c90958..d58886ee9 100755 --- a/mg/f111.dir +++ b/mg/f111.dir @@ -1,3 +1,3 @@ 111 0 -$rmovmag|40290|42456|105|0|Righe movimenti di magazzino||| +$rmovmag|0|0|105|0|Righe movimenti di magazzino||| diff --git a/mg/f111.trr b/mg/f111.trr index 6da7ca03a..513acadd2 100755 --- a/mg/f111.trr +++ b/mg/f111.trr @@ -7,7 +7,7 @@ CODART|1|20|0|Codice articolo LIVGIAC|1|15|0|Livello di giacenza UM|1|2|0|Unita' di misura QUANT|4|15|5|Quantita' -PREZZO|4|18|3|Prezzo +PREZZO|4|18|5|Prezzo CAUS|1|6|0|Causale di magazzino della riga IMPIANTO|1|5|0|Codice Impianto (MRP) LINEA|1|5|0|Codice linea (MRP) diff --git a/mg/f114.dir b/mg/f114.dir index 893a24728..95c4c0f85 100755 --- a/mg/f114.dir +++ b/mg/f114.dir @@ -1,3 +1,3 @@ 114 0 -$stomag|0|0|152|0|Storico di magazzino||| +$stomag|0|0|155|0|Storico di magazzino||| diff --git a/mg/f114.trr b/mg/f114.trr index 4278e44a5..c043f521c 100755 --- a/mg/f114.trr +++ b/mg/f114.trr @@ -6,13 +6,13 @@ CODMAG|1|3|0|Codice magazzino ANNOES|1|4|0|Anno di esercizio UM|1|2|0|Unita' di misura QUANT|4|15|5|Quantita' -VALORE|4|18|3|Valore +VALORE|4|18|5|Valore NRIGA|2|4|0|Numeratore sheet ULTCOS1|4|15|5|Ulitmo costo alla chiusura ULTCOS2|4|15|5|Penultimo costo alla chiusura -COSTSTD|4|15|3|Costo standard alla chiusura +COSTSTD|4|15|5|Costo standard alla chiusura COSTOMEDIO|4|15|5|Costo medio (VACQ/ACQ) alla chiusura -PRZLIST|4|15|3|Prezzo di listino alla chiusura +PRZLIST|4|18|5|Prezzo di listino alla chiusura CODLISTINO|1|3|0|Codice listino usato in chiusura CATVEN|1|3|0|Cat vendita del listino 2 diff --git a/mg/mg1200.cpp b/mg/mg1200.cpp index d751d9400..815c71e73 100755 --- a/mg/mg1200.cpp +++ b/mg/mg1200.cpp @@ -77,7 +77,7 @@ public: bool TApp_rebuildbalances::create() { - open_files(LF_ANAMAG,LF_UMART,LF_MAG,LF_MOVMAG,LF_RMOVMAG,LF_TABCOM,LF_STOMAG,0); + open_files(LF_ANAMAG,LF_UMART,LF_MAG,LF_MOVMAG,LF_RMOVMAG,LF_TABCOM,LF_STOMAG, LF_DESLIN, LF_CODCORR, 0); return TSkeleton_application::create(); } diff --git a/mg/mg3300.cpp b/mg/mg3300.cpp index 51ec981a3..8c4e11e33 100755 --- a/mg/mg3300.cpp +++ b/mg/mg3300.cpp @@ -1,4 +1,7 @@ #include +#include +#include +#include #include "movmag.h" #include "rmovmag.h" @@ -635,7 +638,9 @@ class TStampa_schede_mag : public TSkeleton_application TCursor * _cur; int _codicees; - bool _raggmag; + bool _raggmag; + bool _autorun; + protected: virtual bool create(); virtual bool destroy(); @@ -649,10 +654,13 @@ protected: static bool handle_dadata(TMask_field& f, KEY k); static bool handle_adata(TMask_field& f, KEY k); -public: +public: + void autorun() { _autorun = TRUE; } TStampa_schede_mag() {} }; +TStampa_schede_mag& app() { return (TStampa_schede_mag&)main_app(); } + TStampemg_mask* TStampa_schede_mag::_mask = NULL; bool TStampa_schede_mag::negatives_only(const TRelation* rel) @@ -830,9 +838,16 @@ void TStampa_schede_mag::setprint_perarticoli() } void TStampa_schede_mag::main_loop() -{ - while (_mask->run() == K_ENTER) - { +{ + _autorun = FALSE; + while (TRUE) + { + if (!_autorun) + _autorun = _mask->run() == K_ENTER; + if (!_autorun) + break; + _autorun = FALSE; + if (_mask->magazz_ini().gestmag(TRUE)) { char dettaglio=_mask->get(F_ENABLER)[0]; @@ -896,6 +911,38 @@ bool TStampa_schede_mag::handle_adata(TMask_field& f, KEY k) return TRUE; } +static void linker(int n, const char* str) +{ + TString80 ss; ss << "1|"; + + const char* run = NULL; + if (n == 0) + { + ss << str; + run = "ve2 -3"; + } + else + { + ss << atol(str); + run = "mg1 -0"; + } + + TMessage fs(run, MSG_LN, ss); + fs.send(); + TExternal_app prg(run); + prg.run(); + + TMailbox m; + while (m.next_s(MSG_LN) != NULL); // Vuota mailbox + + if (n == 1 && yesno_box("Si desidera aggiornare la stampa?")) + { + WINDOW viswin = cur_win(); + dispatch_e_char(viswin, K_ESC); // Chiude la viswin dell'anteprima + app().autorun(); // forza il rilancio della stampa senza maschera + } +} + bool TStampa_schede_mag::create() { _mask = new TStampemg_mask("mg3300"); @@ -903,6 +950,11 @@ bool TStampa_schede_mag::create() _mask->set_handler(F_ADATA,handle_adata); open_files(LF_RMOVMAG,LF_MOVMAG,LF_MAG,LF_TABCOM,LF_TAB,0); + + printer().links().add("Articolo |b|w"); // Crea il link blu alle anagrafiche + printer().links().add("Movimento |v|w"); // Crea il link viola ai movimenti + printer().setlinkhandler(linker); + return TSkeleton_application::create(); } diff --git a/mg/mg3300a.frm b/mg/mg3300a.frm index 6d2cdaaf7..8da3598aa 100755 --- a/mg/mg3300a.frm +++ b/mg/mg3300a.frm @@ -178,13 +178,13 @@ SECTION BODY ODD 0 STRINGA 10 20 1 BEGIN KEY "CODICE articolo" - PROMPT 1 1 "Gruppo " + PROMPT 1 1 "Gruppo $[b,w]" MESSAGE _USER,CODGRUPPOART|RESET,FF_STAMPASALDOPREC END STRINGA 11 50 1 BEGIN KEY "DESCR.articolo" - PROMPT 30 1 "" + PROMPT 30 1 "$[n,w]" MESSAGE _USER,GRUPPOART END SECTION HEADER_LIVGIAC 2 1 1 GROUP @@ -392,11 +392,11 @@ SECTION BODY ODD 0 SECTION HEADER_MOV 1 1 1 NUMEXPR (#FF_NUMRIGHE==0) NUMERO FF_NUM_MOV 32 BEGIN - PROMPT 2 1 "Mov. " + PROMPT 2 1 "Mov.$[v,w]" END STRINGA FF_DATA_MOV 10 BEGIN - PROMPT 12 1 "del " + PROMPT 12 1 "$[n,w]del " END STRINGA FF_DESCR_MOV 40 BEGIN diff --git a/mg/mg3300b.frm b/mg/mg3300b.frm index c7c3adb19..b90e21e98 100755 --- a/mg/mg3300b.frm +++ b/mg/mg3300b.frm @@ -167,14 +167,14 @@ SECTION BODY ODD 2 STRINGA 10 20 1 BEGIN KEY "CODICE articolo" - PROMPT 5 1 "Articolo " + PROMPT 5 1 "Articolo $[b,w]" MESSAGE _USER,CODGRUPPOART END STRINGA 11 50 1 BEGIN KEY "DESCR.articolo" - PROMPT 30 1 "" + PROMPT 30 1 "$[n,w]" MESSAGE _USER,GRUPPOART END SECTION HEADER_LIVGIAC 2 1 1 GROUP @@ -326,11 +326,11 @@ SECTION BODY ODD 2 SECTION TOTALI_MOV 1 2 2 NUMEXPR #FF_SALDO_MOV!=0 NUMBER FF_NUM_MOV 32 BEGIN - PROMPT 2 1 "Mov. " + PROMPT 2 1 "Mov.$[v,w]" END STRINGA FF_DATA_MOV 10 BEGIN - PROMPT 12 1 "del " + PROMPT 12 1 "$[n,w]del " END STRINGA FF_DESCR_MOV 50 BEGIN diff --git a/mg/mg4100.cpp b/mg/mg4100.cpp index 341654080..126e08061 100755 --- a/mg/mg4100.cpp +++ b/mg/mg4100.cpp @@ -102,7 +102,11 @@ void TStampa_listamov::setprint_x_mov() else cur.setkey(1); - filter << '(' << LF_MOVMAG << "->ANNOES==\""<< _mask->get(F_ANNOES) << "\")"; + TString16 anno(_mask->get(F_ANNOES)); + + if (anno.not_empty()) + filter << '(' << LF_MOVMAG << "->ANNOES==\""<< anno << "\")"; + if (_mask->get(F_CAU1).not_empty()) { _filtrocausali.cut(0); @@ -167,6 +171,8 @@ void TStampa_listamov::setprint_x_mov() } cur.change_order(sortexp); + if (filter.left(2) == "&&") + filter = filter.mid(2); cur.setfilter(filter,TRUE,1); cur.setregion(darec, arec, 0x2); } @@ -181,7 +187,11 @@ void TStampa_listamov::setprint_x_art() TString sortexp; TString filter; - filter << '(' << LF_MOVMAG << "->ANNOES==\""<< _mask->get(F_ANNOES) << "\")"; + TString16 anno(_mask->get(F_ANNOES)); + + if (anno.not_empty()) + filter << '(' << LF_MOVMAG << "->ANNOES==\""<< _mask->get(F_ANNOES) << "\")"; + if (_mask->get(F_DAARTICOLO).not_empty()) filter << "&&(CODART>=\"" << _mask->get(F_DAARTICOLO) << "\")"; if (_mask->get(F_AARTICOLO).not_empty()) @@ -230,6 +240,8 @@ void TStampa_listamov::setprint_x_art() } cur.change_order(sortexp); + if (filter.left(2) == "&&") + filter = filter.mid(2); cur.setfilter(filter,TRUE, 1); cur.setregion(darec,arec, 0x2); } diff --git a/mg/mg4200.cpp b/mg/mg4200.cpp index 90fc7b493..1987b0f8a 100755 --- a/mg/mg4200.cpp +++ b/mg/mg4200.cpp @@ -833,8 +833,9 @@ void TStampa_inventario::setprint_perarticoli_all() filter << "(CODMAG[1,3]>=" <<'"' << _mask->get(F_DAMAG)<< "\")&&" ; if (*_mask->get(F_AMAG)) filter << "(CODMAG[1,3]<=" <<'"' << _mask->get(F_AMAG)<< "\")&&" ; + if (filter.not_empty()) - filter.cut(filter.len()-2); + filter.rtrim(2); //_mask->set_livellicodice(); switch (subordine) @@ -929,6 +930,8 @@ void TStampa_inventario::setprint_perarticoli_all() cfilter << _mask->get(F_ARAGFIS); cfilter << "\")&&"; } + if (cfilter.not_empty()) + cfilter.rtrim(2); _cur->setfilter(cfilter); _cur->setregion(darec, arec,0x2); } diff --git a/mr/mr2100a.uml b/mr/mr2100a.uml index ffcf47d71..18d528f50 100755 --- a/mr/mr2100a.uml +++ b/mr/mr2100a.uml @@ -1116,9 +1116,10 @@ BEGIN FLAGS "D" END -NUMBER F_PREZZO 18 3 +CURRENCY F_PREZZO 18 BEGIN PROMPT 1 13 "Prezzo " + FLAGS "U" END BOOL F_OK diff --git a/mr/mr2100b.uml b/mr/mr2100b.uml index 0340b4b53..a422e4b46 100755 --- a/mr/mr2100b.uml +++ b/mr/mr2100b.uml @@ -420,9 +420,10 @@ BEGIN PROMPT 36 12 "Unita' di misura " END -NUMBER F_PREZZO 18 3 +CURRENCY F_PREZZO 18 BEGIN PROMPT 1 13 "Prezzo " + FLAGS "U" END BOOL F_OK diff --git a/sc/pec.frm b/sc/pec.frm index 3a9ee9344..e10c382de 100755 --- a/sc/pec.frm +++ b/sc/pec.frm @@ -137,7 +137,7 @@ END STRINGA 103 40 3 BEGIN KEY "Testo fisso" -PROMPT 2 8 "" +PROMPT 2 9 "" FLAGS "M" END STRINGA 16 @@ -147,9 +147,10 @@ PROMPT 1 1 "" FLAGS "H" FIELD 20->RAGSOC[1,20] END -STRINGA 0 +STRINGA 105 BEGIN -KEY " " +KEY "Dati Agente" +PROMPT 2 8 "@bAgente " END END SECTION HEADER LAST 1 diff --git a/sc/sc2100.cpp b/sc/sc2100.cpp index 5681ce4db..5122512c0 100755 --- a/sc/sc2100.cpp +++ b/sc/sc2100.cpp @@ -18,6 +18,8 @@ #include #include +#include "../pr/agenti.h" + /////////////////////////////////////////////////////////// // TEC_form /////////////////////////////////////////////////////////// @@ -77,6 +79,8 @@ public: bool print_game(const TPartita& game); bool stampa_saldo() const { return _stampa_saldo; } void stampa_saldo(bool ss) { _stampa_saldo = ss; } + + void set_agente(const TString& codag); TEC_form(const TEC_mask& m, bool gesval); virtual ~TEC_form(); @@ -255,13 +259,10 @@ void TEC_row::print_on(TPrint_section& body) TForm_item& datapag = body.find_field(PEC_DATAPAG); datapag.set(_data.string()); -// TString_array old_pictures; const real& imp = _importo.valore(); TForm_item& dare = body.find_field(PEC_DARE); TForm_item& avere = body.find_field(PEC_AVERE); -// old_pictures.add(dare.picture()); -// old_pictures.add(avere.picture()); if (_importo.sezione() == 'D') { set_imp(dare, imp, cod_valuta); @@ -274,20 +275,16 @@ void TEC_row::print_on(TPrint_section& body) } TForm_item& scaduto = body.find_field(PEC_SCADUTO); -// old_pictures.add(scaduto.picture()); set_imp(scaduto, _scaduto, cod_valuta); TForm_item& esposto = body.find_field(PEC_ESPOSTO); -// old_pictures.add(esposto.picture()); set_imp(esposto, _esposto, cod_valuta); esposto.set_prompt(_salvo_buon_fine ? "*" : " "); TForm_item& totdoc = body.find_field(PEC_TOTDOC); -// old_pictures.add(totdoc.picture()); set_imp(totdoc, _totale, cod_valuta); TForm_item& lire = body.find_field(PEC_IMPLIRE); -// lire.set(_importo_lire.string()); set_imp(lire, _importo_lire, ""); // In generale va espresso nella valuta della ditta TForm_item& cambio = body.find_field(PEC_CAMBIO); @@ -303,11 +300,6 @@ void TEC_row::print_on(TPrint_section& body) esposto.set_prompt(" "); // Ripristina il vecchio prompt descr.set_prompt(old_prompt); -// dare.set_picture(old_pictures.row(0)); -// avere.set_picture(old_pictures.row(1)); -// scaduto.set_picture(old_pictures.row(2)); -// esposto.set_picture(old_pictures.row(3)); -// totdoc.set_picture(old_pictures.row(4)); } /////////////////////////////////////////////////////////// @@ -893,7 +885,6 @@ void TEC_form::print_total(int riga, const THash_object& o) valuta.set(o.key()); else valuta.set(""); -// TString_array old_pictures;//pictures da ripristinare dopo aver stampato if (dare.x() <= 0 || avere.x() <= 0) { @@ -905,8 +896,6 @@ void TEC_form::print_total(int riga, const THash_object& o) avere.set_x(bavere.x()); avere.width() = bavere.width(); } -// modify_picture(dare,old_pictures,in_valuta); -// modify_picture(avere,old_pictures,in_valuta); if (imp.sezione() == 'D') { @@ -926,7 +915,6 @@ void TEC_form::print_total(int riga, const THash_object& o) scaduto.set_x(bscaduto.x()); scaduto.width() = bscaduto.width(); } -// modify_picture(scaduto,old_pictures,in_valuta); scaduto.set(t.scaduto().string()); TForm_item& esposto = foot.find_field(PEC_ESPOSTO); @@ -936,7 +924,6 @@ void TEC_form::print_total(int riga, const THash_object& o) esposto.set_x(besposto.x()); esposto.width() = besposto.width(); } -// modify_picture(esposto,old_pictures,in_valuta); esposto.set(t.esposto().string()); TForm_item& implire = foot.find_field(PEC_IMPLIRE); @@ -950,7 +937,6 @@ void TEC_form::print_total(int riga, const THash_object& o) else implire.hide(); } -// modify_picture(implire,old_pictures,FALSE); implire.set(t.importo_lire().string()); foot.update(); @@ -966,16 +952,6 @@ void TEC_form::print_total(int riga, const THash_object& o) } } -/* - if (old_pictures.items() > 0)//restore old pictures - { - dare.set_picture(old_pictures.row(0)); - avere.set_picture(old_pictures.row(1)); - scaduto.set_picture(old_pictures.row(2)); - esposto.set_picture(old_pictures.row(3)); - implire.set_picture(old_pictures.row(4)); - } -*/ for (word r = 0; r < _total_rows; r++) printer().setfooterline(riga + r, foot.row(r)); } @@ -1136,7 +1112,22 @@ void TEC_form::init_header(const TMask& m) if (fink.fields() > 0) fink.update(); // Setta il backgroud di stampa } - + +void TEC_form::set_agente(const TString& codag) +{ + TPrint_section& head = section('H'); + TForm_item& agente = head.find_field(PEC_AGENTE); + + const bool good = !codag.blank(); + agente.show(good); + if (good) + { + TString ag; + ag << codag << ' '; + ag << cache().get(LF_AGENTI, codag, AGE_RAGSOC); + agente.set(ag); + } +} TEC_form::TEC_form(const TEC_mask& m, bool gesval) : TForm(BASE_EC_PROFILE, m.get_prof_name()), @@ -1217,6 +1208,56 @@ TEC_form::~TEC_form() _form = NULL; } +/////////////////////////////////////////////////////////// +// TEC_gamelist +/////////////////////////////////////////////////////////// + +class TEC_Game_list +{ + TAssoc_array _games; + +protected: + void signature(const TRectype& rec, TToken_string& signature) const; + +public: + void add_game(const TRectype& rec); + bool has_clifo(long codcf); + bool has_game(const TRectype& rec); +}; + +void TEC_Game_list::signature(const TRectype& rec, TToken_string& signature) const +{ + signature = rec.get(SCAD_TIPOCF); + signature.add(rec.get(SCAD_SOTTOCONTO)); + signature.add(rec.get(SCAD_ANNO)); + signature.add(rec.get(SCAD_NUMPART)); + signature.strip_spaces(); +} + +void TEC_Game_list::add_game(const TRectype& rec) +{ + TToken_string signat; signature(rec, signat); + _games.add(signat); +} + +bool TEC_Game_list::has_clifo(long codcf) +{ + TToken_string signat; + FOR_EACH_ASSOC_OBJECT(_games, obj, key, str) + { + signat = key; + if (signat.get_long(1) == codcf) + return TRUE; + } + return FALSE; +} + +bool TEC_Game_list::has_game(const TRectype& rec) +{ + TToken_string signat; signature(rec, signat); + return _games.is_key(signat); +} + /////////////////////////////////////////////////////////// // Stampa estratti conto @@ -1242,6 +1283,8 @@ protected: // TSkeleton_application public: static TStampaEC_application& app() { return (TStampaEC_application&)main_app(); } + + long find_agents_games(TAssoc_array& agents); public: TEC_mask& mask() { return *_msk; } @@ -1251,7 +1294,8 @@ public: void save_numec(); bool print_selected(); // print selected items - int print_ec(); // print one item + bool print_agents(); // print selected items by agent + int print_ec(TEC_Game_list* games = NULL); // print one ec only TStampaEC_application(); virtual ~TStampaEC_application() {} @@ -1272,6 +1316,8 @@ bool TStampaEC_application::print_selected() TRectype filter(LF_CLIFO); filter.put(CLI_TIPOCF, who); fc.setregion(filter, filter); + + form().set_agente(EMPTY_STRING); // Nascondi agente const long print_all = !s.one_checked(); // Se non ho selezionato nulla allora li stampo tutti long analfabeti = 0; // Persone non stampate in quanto aventi lingua errata @@ -1307,6 +1353,121 @@ bool TStampaEC_application::print_selected() return TRUE; } +long TStampaEC_application::find_agents_games(TAssoc_array& agents) +{ + const TString& fromage = mask().get(F_FROM_AGENT); + const TString& toage = mask().get(F_TO_AGENT); + + TRelation rel(LF_SCADENZE); + TRectype& curr = rel.curr(); + curr.put(SCAD_TIPOCF, mask().get(SC_CLIFO)); + + TString filter; + filter << "(CODAG!=\"\")"; + if (!mask().get_bool(F_STAMPCHIU)) + filter << "&&(PAGATA==\"\")"; + if (fromage.not_empty()) + filter << "&&(CODAG>=\"" << fromage << "\")"; + if (toage.not_empty()) + filter << "&&(CODAG<=\"" << toage << "\")"; + + TCursor cur(&rel, filter, 1, &curr, &curr); + const long items = cur.items(); + cur.freeze(); + + TProgind pi(items, "Ricerca scadenze aperte per agente...", TRUE, TRUE); + for (cur = 0L; cur.pos() < items; ++cur) + { + pi.addstatus(1); + if (pi.iscancelled()) + break; + + const TString& codag = curr.get(SCAD_CODAG); + TEC_Game_list* games = (TEC_Game_list*)agents.objptr(codag); + if (games == NULL) + { + games = new TEC_Game_list; + agents.add(codag, (TObject*)games); + } + games->add_game(curr); + } + + return agents.items(); +} + +bool TStampaEC_application::print_agents() +{ + TCursor_sheet& s = sheet(); + TCursor& c = *s.cursor(); + + const char who = mask().get_who(); + const int key = mask().get_key(); + + // Filtra il cursore del form in modo che diventi uguale al cursor_sheet corrente + // Qui sarebbe bello copiarsi l'indice dell'altro cursore + TCursor& fc = *form().cursor(); + fc.setkey(key); + TRectype filter(LF_CLIFO); + filter.put(CLI_TIPOCF, who); + fc.setregion(filter, filter); + + const long print_all = !s.one_checked(); // Se non ho selezionato nulla allora li stampo tutti + long analfabeti = 0; // Persone non stampate in quanto aventi lingua errata + + TAssoc_array agents; + const long totag = find_agents_games(agents); + if (totag > 0) + { + printer().open(); + + TRelation rel(LF_AGENTI); + TCursor cur(&rel); + const long items = cur.items(); + cur.freeze(); + for (cur = 0L; cur.pos() < items; ++cur) + { + const TString& codag = cur.curr().get(AGE_CODAGE); + TEC_Game_list* games = (TEC_Game_list*)agents.objptr(codag); + if (games != NULL) + { + form().set_agente(codag); + const long items = c.items(); + for (long i = 0; i < items; i++) + { + if (print_all || s.checked(i)) + { + fc = i; // Muove il cursore alla posizione corrente + const long codcf = fc.curr().get_long(CLI_CODCF); + if (games->has_clifo(codcf)) + { + const int ret = print_ec(games); + if (ret < 0) + analfabeti++; + } + } + if (printer().frozen()) + break; + } + } + } + printer().close(); + } + + if (analfabeti > 0) + { + const char* anag = who == 'C' ? "clienti" : "fornitori"; + warning_box("%ld %s non sono stati stampati in quanto " + "il codice lingua non corrispondeva al profilo di stampa", + analfabeti, anag); + } + + if (_tiponumec > ' ' && who == 'C') + save_numec(); + + return TRUE; +} + + void TStampaEC_application::save_numec() { if (_lastnumcf.items() > 0) // Ho numerato qualche estratto conto? @@ -1398,7 +1559,8 @@ void TStampaEC_application::update_numec(const TRectype& clf, int sign) } } -int TStampaEC_application::print_ec() +/* Old mode +int TStampaEC_application::print_ec(TEC_Game_list* games) { TWait_cursor hourglass; @@ -1437,7 +1599,11 @@ int TStampaEC_application::print_ec() for (int err = partite.read(_isgteq); err == NOERR && partite.curr() == filter; err = partite.read(_isgreat)) - { + { + // Non fregare i clienti agli altri agenti! + if (games != NULL && !games->has_game(partite.curr())) + continue; + TPartita game(partite.curr()); status.cut(0); @@ -1503,6 +1669,123 @@ int TStampaEC_application::print_ec() return one_printed ? 1 : 0; } +*/ + +// Nuovo modo con cursore +int TStampaEC_application::print_ec(TEC_Game_list* games) +{ + TWait_cursor hourglass; + + TEC_form& f = form(); + + const TRectype& clf = f.cursor()->curr(); + const TString16 lincf(clf.get(CLI_CODLIN)); + + bool ok = TRUE; + + // make controllations per lingua profilo/CF + if ((f.lingua() == _lingua_ditta && !lincf.empty()) || + f.lingua() != _lingua_ditta) + ok = lincf == f.lingua(); + + if (!ok) // Cliente analfabeta + return -1; + + f.azzera_totali(); // Azzera totali di fine pagina + + // Filtra solo le partite del cliente selezionato + TRelation rel(LF_PARTITE); + TRectype& curr = rel.curr(); + curr.put(PART_TIPOCF, clf.get(CLI_TIPOCF)); + curr.put(PART_SOTTOCONTO, clf.get(CLI_CODCF)); + TCursor cur(&rel, "", 1, &curr, &curr); + + const long items = cur.items(); + cur.freeze(); + + const bool stampa_chiuse = mask().get_bool(F_STAMPCHIU); + const TDate data_chiuse = mask().get(F_DATACHIU); + + TString status; + + bool one_printed = FALSE; // Non ho stampato ancora nulla + update_numec(clf, +1); // Incrementa contatore + + TString16 last_game; + for (cur = 0; cur.pos() < items; ++cur) + { + const TString& curr_game = curr.get(PART_NUMPART); + if (curr_game == last_game) + continue; + last_game = curr_game; + + // Non fregare i clienti agli altri agenti! + if (games != NULL && !games->has_game(curr)) + continue; + + TPartita game(curr); + + status.cut(0); + status << game.anno() << ' ' << game.numero(); + xvt_statbar_set(status); + do_events(); + + const TDate& dir = f.data_inizio_rischio(); + const TDate& dlo = f.data_limite_operazione(); + const TDate& dls = f.data_limite_scaduto(); + const TImporto saldo = game.calcola_saldo_al(f.in_valuta(), dlo, dls, dir); + if (saldo.is_zero()) + { + int r = 0; + if (stampa_chiuse) + { + for (r = game.last(); r > 0 ; r = game.pred(r)) + { + const TRiga_partite& riga = game.riga(r); + if (riga.is_fattura()) + { + const TDate dd(riga.get(PART_DATADOC)); + if (dd >= data_chiuse) + break; + } + } + } + if (r == 0) + continue; + } + + if (one_printed) + { + TPrintrow empty; // Salta una riga vuota + printer().print(empty); // (Non farlo alla fine di ogni partita!) + } + + const bool printed = form().print_game(game); + if (printed) + one_printed = TRUE; + + if (printer().frozen()) + break; + } + + if (one_printed) + { + f.ultima_pagina(); + printer().formfeed(); + if (printer().isfax()) + { + const char* tipo = clf.get_char(CLI_TIPOCF) == 'C' ? "Clienti" : "Fornitori"; + const char* codice = clf.get(CLI_CODCF); + printer().send_fax(tipo, codice); + } + } + else + update_numec(clf, -1); + + xvt_statbar_set(NULL); + + return one_printed ? 1 : 0; +} /////////////////////////////////////////////////////////// // Generic TApplication methods @@ -1559,7 +1842,12 @@ void TStampaEC_application::main_loop() } _form->stampa_saldo(m.get_bool(F_STAMPSALDO)); - print_selected(); + + if (m.get_bool(F_GROUPAGENT)) + print_agents(); + else + print_selected(); + delete _form; _form = NULL; } diff --git a/sc/sc2100a.h b/sc/sc2100a.h index b718de355..69a95b67f 100755 --- a/sc/sc2100a.h +++ b/sc/sc2100a.h @@ -15,7 +15,12 @@ #define F_DATASEND 116 #define F_CLIFO 117 #define F_STAMPSALDO 118 -#define F_ULTIMOEC 119 +#define F_ULTIMOEC 119 +#define F_GROUPAGENT 120 +#define F_FROM_AGENT 121 +#define F_FROM_AGENT_D 122 +#define F_TO_AGENT 123 +#define F_TO_AGENT_D 124 // basename of profile #define BASE_EC_PROFILE "PEC" diff --git a/sc/sc2100a.uml b/sc/sc2100a.uml index c18cf2cc6..3c0459ba1 100755 --- a/sc/sc2100a.uml +++ b/sc/sc2100a.uml @@ -1,11 +1,31 @@ #include "scselmsk.h" #include "sc2100a.h" +TOOLBAR "Toobar" 0 -3 0 3 + +BUTTON DLG_PRINT 10 2 +BEGIN + PROMPT -12 -11 "" + MESSAGE EXIT,K_ENTER +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -11 "" +END + +ENDPAGE + PAGE "Stampa estratti conto" -1 -1 70 18 +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "@bDitta" +END + NUMBER F_CODDITTA 5 BEGIN - PROMPT 2 1 "Cod. " + PROMPT 2 1 "Codice " FLAGS "DFR" USE LF_NDITTE INPUT CODDITTA F_CODDITTA @@ -13,13 +33,13 @@ BEGIN CHECKTYPE REQUIRED END -STRING F_RAGSOC 50 46 +STRING F_RAGSOC 50 BEGIN - PROMPT 14 1 "R.S. " + PROMPT 16 1 "Rag. Soc. " FLAGS "DP" END -GROUPBOX DLG_NULL 68 8 +GROUPBOX DLG_NULL 78 8 BEGIN PROMPT 1 2 "" END @@ -61,7 +81,7 @@ BEGIN WARNING "Codice profilo o lingua errato" END -STRING F_DESPROF 50 40 +STRING F_DESPROF 50 BEGIN PROMPT 26 3 "" FLAGS "D" @@ -123,14 +143,14 @@ END RADIOBUTTON SC_CLIFO 20 BEGIN - PROMPT 1 10 "Selezione" + PROMPT 1 10 "@bSelezione" ITEM "C|Clienti" MESSAGE ENABLE,1@ ITEM "F|Fornitori" MESSAGE CLEAR,1@ END RADIOBUTTON SC_SORTCF 25 BEGIN - PROMPT 26 10 "Ordinamento" + PROMPT 25 10 "@bOrdinamento" ITEM "1|Per codice" MESSAGE HIDE,2@|SHOW,3@ ITEM "2|Per ragione sociale" MESSAGE HIDE,3@|SHOW,2@ END @@ -142,9 +162,16 @@ END BUTTON SC_RESET 10 1 BEGIN - PROMPT 52 12 "A~zzera" + PROMPT 65 11 "A~zzera" END +NUMBER SC_NSEL 4 +BEGIN + PROMPT 52 12 "Selezionati " + FLAGS "D" +END + + NUMBER SC_CFCODFR 6 BEGIN PROMPT 2 14 "Da codice " @@ -159,37 +186,79 @@ BEGIN FLAGS "B" END -STRING SC_CFDESFR 50 30 +STRING SC_CFDESFR 50 BEGIN PROMPT 2 14 "Da ragione sociale " GROUP 2 FLAGS "HB" END -STRING SC_CFDESTO 50 30 +STRING SC_CFDESTO 50 BEGIN PROMPT 2 15 "A ragione sociale " GROUP 2 FLAGS "HB" END -NUMBER SC_NSEL 3 +BOOLEAN F_GROUPAGENT BEGIN - PROMPT 57 14 "N. " - FLAGS "D" + PROMPT 2 16 "Raggruppamento per agente" + MESSAGE FALSE HIDE,5@ + MESSAGE TRUE SHOW,5@ END -BUTTON DLG_PRINT 10 2 -BEGIN - PROMPT -12 -1 "" - MESSAGE EXIT,K_ENTER +STRING F_FROM_AGENT 5 +BEGIN + PROMPT 2 17 "Dall'agente " + FLAGS "HZU" + USE LF_AGENTI + INPUT CODAGE F_FROM_AGENT + DISPLAY "Codice agente" CODAGE + DISPLAY "Ragione Sociale@50" RAGSOC + OUTPUT F_FROM_AGENT CODAGE + OUTPUT F_FROM_AGENT_D RAGSOC + CHECKTYPE NORMAL + GROUP 5 END -BUTTON DLG_QUIT 10 2 +STRING F_FROM_AGENT_D 50 BEGIN - PROMPT -22 -1 "" + PROMPT 22 17 "" + FLAGS "H" + USE LF_AGENTI KEY 2 + INPUT RAGSOC F_FROM_AGENT_D + DISPLAY "Ragione Sociale@50" RAGSOC + DISPLAY "Codice agente" CODAGE + COPY OUTPUT F_FROM_AGENT + CHECKTYPE NORMAL + GROUP 5 END +STRING F_TO_AGENT 5 +BEGIN + PROMPT 2 18 "All'agente " + FLAGS "HZU" + COPY USE F_FROM_AGENT + INPUT CODAGE F_TO_AGENT + COPY DISPLAY F_FROM_AGENT + OUTPUT F_TO_AGENT CODAGE + OUTPUT F_TO_AGENT_D RAGSOC + CHECKTYPE NORMAL + GROUP 5 +END + +STRING F_TO_AGENT_D 50 +BEGIN + PROMPT 22 18 "" + FLAGS "H" + COPY USE F_FROM_AGENT_D + INPUT RAGSOC F_TO_AGENT_D + COPY DISPLAY F_FROM_AGENT_D + COPY OUTPUT F_TO_AGENT + CHECKTYPE NORMAL + GROUP 5 +END ENDPAGE + ENDMASK diff --git a/sc/sc21pec.h b/sc/sc21pec.h index f9d7f5c63..17a3e6464 100755 --- a/sc/sc21pec.h +++ b/sc/sc21pec.h @@ -6,6 +6,7 @@ #define PEC_DATAIN 102 #define PEC_MEMO 103 #define PEC_NUMPROG 104 +#define PEC_AGENTE 105 #define PEC_CODCAUS 201 #define PEC_DESCR 202 diff --git a/sc/sc2200.cpp b/sc/sc2200.cpp index a3adde7af..854fe0b33 100755 --- a/sc/sc2200.cpp +++ b/sc/sc2200.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include "../cg/cgsaldac.h" #include "sc2.h" @@ -49,10 +50,11 @@ class TStampaScadenzario : public TPrintapp TLocalisamfile *_caus, *_partite, *_pagsca; // File delle causali, serve per reperire le descrizioni, nel caso non ci siano sul file parite TString _annopart,_datareg,_numdoc,_datadoc, // Anno partita (2 cifre), data registrazione, nr. documento, data doc. _protiva, _codval; // Numero di protocollo IVA (TString perche' se vale 0 non stampa nulla), e codice valuta - TPString *_descrizione,*_ragsoc,*_des_conto; // Descrizione (da LF_PARTITE), ragione sociale (da LF_CLIFO) + TString _last_ban, _desc_ban; // Banca correntemente in corso di raggruppamento + TPString *_descrizione,*_ragsoc,*_des_conto; // Descrizione (da LF_PARTITE), ragione sociale (da LF_CLIFO) // Descrizione conto (da LF_PCON) TString _imp_scad,_imp_pag,_rimdir,_riba,_altri, // Valori calcolati in preprocess_page: rimesse dirette, Ri.ba e altri - _cur_gr_s,_cur_co_s,_cur_codcf_s, _abipr,_cabpr; // _imp_scad e _imp_pag vengono anch'essi calcolati in preprocess_page. + _cur_gr_s, _cur_co_s, _cur_codcf_s; // _imp_scad e _imp_pag vengono anch'essi calcolati in preprocess_page. TDate _datai, _dataf, _datas, // Data inizio, fine e stampa _cur_data; // Data di scadenza riferita al record corrente long _cur_codcf; // Cli/Fo riferito al record corrente @@ -64,7 +66,8 @@ class TStampaScadenzario : public TPrintapp _ordata, // VERO=ordine primario per data, FALSO=ordine primario impostato da _ordcod _ordcod, // VERO=ordine per codice, FALSO=ordine per ragione sociale _striepilogo, // VERO=stampa il riepilogo mensile per pagamento - _stvaluta; // Vero se abilitata la stampa in valuta; + _stvaluta, // Vero se abilitata la stampa in valuta; + _group_ban; // Vero se abilitato il raggruppamento per banca // Se _tipost=tutti non e' possibile impostare l'ordine primario per // ragione sociale o descrizione. L'unico tipo stampa possibile e' quello // in ordine di data scadenza @@ -122,17 +125,74 @@ public: void check_add_key_to_tl(tipo_pe p, int t); // controlla e aggiunge i valori elaborati all'assoc array indicato dal periodo (_tlxxx) // Ritorna TRUE se la partita corrente _p non e' piu' riferita alla scadenza corrente bool scad_changed(char tipo, int gruppo, int conto, long codcf, int anno, TString& nump); + // Ritorna TRUE se la scadenza corrente ha una banca diversa dalla precedente + // bool bank_will_change(); // Totalizza i pagamenti non assegnati per la partita corrente (NB si spera che siano tutti nella stessa valuta) bool in_cache(const TString& k); // ritorna vero se ci sono gia' non assegnati in _uns_cache; void look_in_cache(real& a, real& b, real& c, TAssoc_array& uns, TAssoc_array& unsnc, TAssoc_array& unsins, TString& k); void calcola_unassigned(const TString& k); void calcola_pagamenti(real& imp_scad, int riga, int rata, TBill& bill); // calcola i pagamenti effettuati per questa rata e il residuo eventuale + TLocalisamfile& pagamenti() const { return *_pagsca; } + TStampaScadenzario(); }; - + inline TStampaScadenzario& app() {return (TStampaScadenzario&)main_app();} +/////////////////////////////////////////////////////////// + +class TScadenza_rec : public TRectype +{ + TString16 _codice; + +protected: + virtual const TString& get_str(const char* fieldname) const; + +public: + TScadenza_rec() : TRectype(LF_SCADENZE) { } +}; + +const TString& TScadenza_rec::get_str(const char* fieldname) const +{ + if (strcmp(fieldname, SCAD_CODABIPR) == 0 || strcmp(fieldname, SCAD_CODCABPR) == 0) + { + TRectype rec(LF_PAGSCA); + rec.put(PAGSCA_TIPOC, TRectype::get_str(SCAD_TIPOCF)); + rec.put(PAGSCA_GRUPPO, TRectype::get_str(SCAD_GRUPPO)); + rec.put(PAGSCA_CONTO, TRectype::get_str(SCAD_CONTO)); + rec.put(PAGSCA_SOTTOCONTO, TRectype::get_str(SCAD_SOTTOCONTO)); + rec.put(PAGSCA_ANNO, TRectype::get_str(SCAD_ANNO)); + rec.put(PAGSCA_NUMPART, TRectype::get_str(SCAD_NUMPART)); + rec.put(PAGSCA_NRIGA, TRectype::get_str(SCAD_NRIGA)); + rec.put(PAGSCA_NRATA, TRectype::get_str(SCAD_NRATA)); + + TLocalisamfile& pagamenti = app().pagamenti(); + TRectype& curpag = pagamenti.curr(); + bool found = curpag.compare_key(rec,1,1) == 0; + if (!found) + { + curpag = rec; + const int err = pagamenti.read(_isgteq); + found = (err == NOERR) && (curpag.compare_key(rec,1,1) == 0); + } + + long cod = atol(TRectype::get_str(fieldname)); // Valore di default sulla scadenza + if (found) + { + const long val = curpag.get_long(fieldname); + if (val > 0) + cod = val; // Valore presente sul pagamento effettivo + } + ((TScadenza_rec*)this)->_codice.format("%05ld", cod); + return _codice; + } + return TRectype::get_str(fieldname); +} + +/////////////////////////////////////////////////////////// + + HIDDEN void print_real(TString& dest, const real& num, const char* val) { const TCurrency cur(num, val); @@ -142,17 +202,40 @@ HIDDEN void print_real(TString& dest, const real& num, const char* val) bool TStampaScadenzario::filter_func(const TRelation *r) { -/* - // Filtro per rate saldate: se e' saldata e' ok solo quando - // e' abilitato il flag; se non e' saldata va sempre bene. - bool ok = app()._ratesald; - if (!ok) - { - const TRectype& scad = r->curr(); - ok = !scad.get_bool(SCAD_PAGATA); + if (app()._group_ban) + { + const TMask& m = *(app()._m); + const long fromabi = m.get_long(F_FROMABI); + const long toabi = m.get_long(F_TOABI); + if (fromabi > 0 || toabi > 0) + { + const TRectype& rec = r->curr(); + const long abi = rec.get_long(SCAD_CODABIPR); + const long cab = rec.get_long(SCAD_CODCABPR); + if (fromabi > 0) + { + if (abi < fromabi) + return FALSE; + const long fromcab = m.get_long(F_FROMCAB); + if (fromcab > 0 && abi == fromabi) + { + if (cab < fromcab) + return FALSE; + } + } + if (toabi > 0) + { + if (abi > toabi) + return FALSE; + const long tocab = m.get_long(F_TOCAB); + if (tocab > 0 && abi == toabi) + { + if (cab > tocab) + return FALSE; + } + } + } } - return ok; -*/ return TRUE; } @@ -226,7 +309,8 @@ void TStampaScadenzario::check_add_key_to_tp(int t, char u) bool TStampaScadenzario::scad_changed(char tipo, int gruppo, int conto, long codcf, int anno, TString& nump) { - if (_p == NULL) return TRUE; + if (_p == NULL) + return TRUE; TRiga_partite& rp = _p->riga(_p->first()); if (tipo != rp.get_char(PART_TIPOCF) || gruppo != rp.get_int(PART_GRUPPO) || conto != rp.get_int(PART_CONTO) || codcf != rp.get_long(PART_SOTTOCONTO) || @@ -235,6 +319,31 @@ bool TStampaScadenzario::scad_changed(char tipo, int gruppo, int conto, long cod return FALSE; } +/* +bool TStampaScadenzario::bank_will_change() +{ + bool yes = FALSE; + if (_group_ban) + { + TCursor& cur = *current_cursor(); + if (cur.pos() > 0 && cur.pos() < cur.items()-1) + { + const TRectype& rc = cur.curr(); + const TString8 oldabi = rc.get(SCAD_CODABIPR); + const TString8 oldcab = rc.get(SCAD_CODCABPR); + ++cur; + const TString8 newabi = rc.get(SCAD_CODABIPR); + const TString8 newcab = rc.get(SCAD_CODCABPR); + yes = oldabi != newabi || oldcab != newcab; + --cur; + } + else + yes = TRUE; + } + return yes; +} +*/ + bool TStampaScadenzario::in_cache(const TString& k) { TAssoc_array& uns = (TAssoc_array&) _uns_cache[0]; @@ -381,7 +490,7 @@ void TStampaScadenzario::calcola_pagamenti(real& imp_scad, int riga, int rata, T bool TStampaScadenzario::preprocess_page(int file, int counter) // Se ritorna FALSE salta questa scadenza e va alla prossima. { - const TRectype &rc = current_cursor()->curr(LF_SCADENZE); + const TRectype &rc = current_cursor()->curr(LF_SCADENZE); char tipoc = rc.get_char(SCAD_TIPOCF); // Tipo int gruppo = rc.get_int(SCAD_GRUPPO); // Gruppo int conto = rc.get_int(SCAD_CONTO); // Conto @@ -402,27 +511,19 @@ bool TStampaScadenzario::preprocess_page(int file, int counter) if (_end_printed && (file == LF_CLIFO || file == LF_PCON)) return FALSE; // Dopo aver stampato i totali finali non deve rientrare per stampare // LF_CLIFO o LF_PCON + if (_end_printed) { // Qui controlla se ci sono totali da stampare TAssoc_array& tp = (TAssoc_array&)_tl[2]; - if (tp.items() == 0) return FALSE; + if (tp.items() == 0) + return FALSE; } + if (file == LF_SCADENZE && !_end_printed) { TBill bill(rc); if (!_m->selected(bill)) - return FALSE; - - // Controlla eventuale filtro sulla banca di presentazione - if (_tipost == fornitori && _abipr.not_empty()) - { - const TString16 abi = rc.get(SCAD_CODABIPR); - if (_abipr != abi) - return FALSE; - const TString16 cab = rc.get(SCAD_CODCABPR); - if (_cabpr.not_empty() && _cabpr != cab) - return FALSE; - } + return FALSE; _descrizione->restart(); if (scad_changed(tipoc,gruppo,conto,codcf,annop,nump)) @@ -628,6 +729,7 @@ bool TStampaScadenzario::preprocess_page(int file, int counter) // per tutti e' obbligatorio l'ordinamento principale per data. print_totali_c(n,TRUE); } + return TRUE; } @@ -648,11 +750,13 @@ print_action TStampaScadenzario::postprocess_print(int file, int counter) // Se LF_PCON o LF_CLIFO sono i file principali della relazione e' necessario aggiungere // una seconda condzione, valevole solamente se l'ordine principale non e' per data scadenza. if (!_end_printed) // Se non e' ancora stato stampato il totale generale... - if ((file == LF_SCADENZE)) //&& _ordata) || (file !=LF_SCADENZE && !_ordata)) + { + if (file == LF_SCADENZE) //&& _ordata) || (file !=LF_SCADENZE && !_ordata)) { rt = REPEAT_PAGE; _end_printed = TRUE; } + } return rt; } @@ -660,12 +764,14 @@ print_action TStampaScadenzario::postprocess_page(int file, int counter) { if (_modified) reset_print(); + return NEXT_PAGE; } bool TStampaScadenzario::user_create() { _rel1 = new TRelation(LF_SCADENZE); // Scadenze per data scadenza + CliFo (Codice & Ragione sociale) + _rel1->lfile().set_curr(new TScadenza_rec); _rel1->add(LF_CLIFO,"TIPOCF=TIPOC|CODCF=SOTTOCONTO",1,0,SCADCLIFO_ALIAS); _cur1 = add_cursor(new TSorted_cursor(_rel1,"DATASCAD|SOTTOCONTO|ANNO|NUMPART|NRIGA|NRATA","",2)); // Per data scadenza + ragione sociale e' necessario un TSorted_cursor con update del file collegato: @@ -676,6 +782,7 @@ bool TStampaScadenzario::user_create() _cur3 = add_cursor(new TSorted_cursor(_rel1,"UPPER(20->RAGSOC)|DATASCAD|ANNO|NUMPART|NRIGA|NRATA","",2)); _rel2 = new TRelation(LF_SCADENZE); // Scadenze per data scadenza + piano dei conti (Codice & Descrizione) + _rel2->lfile().set_curr(new TScadenza_rec); _rel2->add(LF_PCON,"GRUPPO=GRUPPO|CONTO=CONTO|SOTTOCONTO=SOTTOCONTO",1,0,SCADPCON_ALIAS); _cur4 = add_cursor(new TSorted_cursor(_rel2,"DATASCAD|GRUPPO|CONTO|SOTTOCONTO|ANNO|NUMPART|NRIGA|NRATA","",2)); // Per data scadenza + descrizione e' necessario un TSorted_cursor con update del file collegato: @@ -686,6 +793,7 @@ bool TStampaScadenzario::user_create() _cur6 = add_cursor(new TSorted_cursor(_rel2,"UPPER(19->DESCR)|DATASCAD|ANNO|NUMPART|NRIGA|NRATA","",2)); _rel3 = new TRelation(LF_SCADENZE); // Scadenze (Tutte) per data scadenza + _rel3->lfile().set_curr(new TScadenza_rec); _cur7 = add_cursor(new TCursor(_rel3,"",2)); _caus = new TLocalisamfile(LF_CAUSALI); @@ -758,8 +866,8 @@ bool TStampaScadenzario::set_print(int) if (_m->get_who() == 'P') _tipost = altri; else if (_m->get_who() == 'C') _tipost = clienti; else _tipost = fornitori; - if (_m->get_key() == 1) _ordcod = TRUE; - else _ordcod = FALSE; + _ordcod = _m->get_key() == 1; // Stampa ordinata per codice? + _group_ban = _m->get_bool(F_SORTBAN); // Raggruppamento per banca di presentazione _cur_data = botime; _tm.destroy(); _tp.destroy(); // Totali per i prospetti for (int it=0; it < _tl.items(); it++) @@ -784,8 +892,6 @@ bool TStampaScadenzario::set_print(int) _datai = (const char *)(_m->get(F_DATASCADENZAI)); _dataf = (const char *)(_m->get(F_DATASCADENZAF)); _datas = (const char *)(_m->get(F_DATASTAMPA)); - _abipr = _m->get(F_DA_ABI); - _cabpr = _m->get(F_DA_CAB); // N.B I cursori sono tutti TSorted_cursor; alcuni di questi(_cur11 e _cur41) referenziano a campi di sort // presenti anche su altri file (LF_CLIFO o LF_PCON), percio' e' necessario che il metodo filtercursor() @@ -901,10 +1007,30 @@ bool TStampaScadenzario::set_print(int) default: break; } + + if (current_cursor()->is_sorted()) // Should always be true! + { + TSorted_cursor* sorcur = (TSorted_cursor*)current_cursor(); + TToken_string sortexpr = sorcur->get_order(); + + const bool has_ban = sortexpr.get(0) == SCAD_CODABIPR; + if (_group_ban != has_ban) + { + if (_group_ban) + sortexpr.insert("CODABIPR|CODCABPR|"); + else + sortexpr.ltrim(18); + sorcur->change_order(sortexpr); + } + _last_ban.cut(0); // Azzera ultima banca stampata + } } - if (_p) delete _p; // Questo deve essere cancellato, altrimenti rimane in memoria, - _p = NULL; // provocando casini al prossimo "giro" + if (_p) + { + delete _p; // Questo deve essere cancellato, altrimenti rimane in memoria, + _p = NULL; // provocando casini al prossimo "giro" + } TAssoc_array& a =(TAssoc_array&) _uns_cache[0]; TAssoc_array& b =(TAssoc_array&) _uns_cache[1]; @@ -939,8 +1065,10 @@ void TStampaScadenzario::print_header() { TString rw(201); TString s1,s2; + set_header (soh++, "Ditta : %ld %s@148gData@153g%s @190gPag. @#", firm, (const char *)s, (const char *)data); + if (_tipost==fornitori) { set_header(soh++,"@72g** SCADENZARIO FORNITORI **"); @@ -952,7 +1080,11 @@ void TStampaScadenzario::print_header() s1 =""; s2 = ""; } set_header (soh++,"@64gPer il periodo dal %s al %s",(const char*)datai,(const char*)dataf); - rw.fill('-'); + + if (_group_ban) + set_header(soh++, "@bBANCA DI PRESENTAZIONE %s@r", (const char*)_desc_ban); + + rw.fill('_'); set_header(soh++, (const char *) rw); set_header(soh++,"@28gRif.@38gData@47gData@77gCd/Tp@91g%s",(const char*)s1); set_header(soh++,"Codice@9gRagione sociale@28gpartita@38gscadenza@47gRegistr." @@ -969,7 +1101,7 @@ void TStampaScadenzario::print_header() firm, (const char *)s, (const char *)data); set_header(soh++,"@79g** SCADENZARIO **"); set_header (soh++,"@66gPer il periodo dal %s al %s",(const char*)datai,(const char*)dataf); - rw.fill('-'); + rw.fill('_'); set_header(soh++, (const char *) rw); set_header(soh++,"@33gRif.@43gData@53gData@82gCd/Tp"); set_header(soh++,"Gr. Co. So.@16gDescrizione@33gpartita@43gscadenza@53gRegistr." @@ -989,7 +1121,7 @@ void TStampaScadenzario::print_header() void TStampaScadenzario::set_page_clifo(int nriga) // Setta le righe per stampare le scadenze clienti/fornitori -{ +{ set_row(nriga++,""); set_row(nriga,"@b#6t@r",&_cur_codcf_s); set_row(nriga,"@b@9g#a@r",_ragsoc); @@ -1001,10 +1133,7 @@ void TStampaScadenzario::set_page_clifo(int nriga) set_row(nriga,"@77g@4,rs/@1n",FLD(LF_SCADENZE,SCAD_CODPAG),FLD(LF_SCADENZE,SCAD_TIPOPAG)); set_row(nriga,"@86g@4n",FLD(LF_SCADENZE,SCAD_NRATA)); if (_tipost == fornitori) - { set_row(nriga,"@91g@5pn",FLD(LF_SCADENZE,SCAD_CODABIPR,"@@@@@")); - set_row(nriga+1,"@91g@5pn",FLD(LF_SCADENZE,SCAD_CODCABPR,"@@@@@")); - } set_row(nriga,"@97g#t", &_codval); set_row(nriga,"@101g#18t",&_imp_scad); set_row(nriga,"@120g#18t",&_imp_pag); @@ -1038,21 +1167,45 @@ void TStampaScadenzario::set_page_pcon(int nriga) void TStampaScadenzario::set_page(int file, int counter) { - int nriga =1; + // Prepara descrizione banca + if (file == LF_SCADENZE && _group_ban) + { + const TRectype &rc = current_cursor()->curr(LF_SCADENZE); + const TString8 abi = rc.get(SCAD_CODABIPR); + const TString8 cab = rc.get(SCAD_CODCABPR); + TString16 curr_ban; curr_ban << abi << cab; + if (curr_ban != _last_ban) + { + _last_ban = curr_ban; + if (abi != "00000") + { + _desc_ban.cut(0) << abi << ' ' << cab; + _desc_ban << ' ' << cache().get("%BAN", abi, "S0"); + if (cab > 0) + _desc_ban << " - " << cache().get("%BAN", _last_ban, "S0"); + } + else + _desc_ban = "NON INDICATA"; + if (printer().current_row() > 1) + printer().formfeed(); + } + } + print_header(); + switch (_tipost) { case fornitori: case clienti: - if (file == LF_CLIFO) - set_page_clifo(nriga); - break; + if (file == LF_CLIFO) + set_page_clifo(1); + break; case altri: - if (file == LF_PCON) - set_page_pcon(nriga); - break; + if (file == LF_PCON) + set_page_pcon(1); + break; default: - break; + break; } } @@ -1216,7 +1369,10 @@ void TStampaScadenzario::print_rows_totali(int &nriga, tipo_pe p) void TStampaScadenzario::print_totali(int &nriga, bool month_changed, bool ended) // Setta le righe per stampare i totali (giorno e mese) delle scadenze clienti/fornitori // Ordinamento primario per data! -{ +{ + if (_group_ban) + return; + set_row(nriga,"@36g** TOTALI DEL @51g%s",_cur_data.string(brief)); print_rows_totali(nriga, daily); if (month_changed) @@ -1240,6 +1396,9 @@ void TStampaScadenzario::print_totali_c(int &nriga, bool ended) // Setta le righe per stampare i totali delle scadenze clienti/fornitori/conti // Ordinamento primario per codice o ragione sociale! { + if (_group_ban) + return; + if (_tipost==clienti) set_row(nriga,"@70g** TOTALE CLIENTE"); else diff --git a/sc/sc2200.h b/sc/sc2200.h index e479673d0..89522304e 100755 --- a/sc/sc2200.h +++ b/sc/sc2200.h @@ -9,8 +9,10 @@ #define F_ORDDATA 107 #define F_VALUTA 108 #define F_RIEPILOGO 109 - -#define F_DA_ABI 201 -#define F_DA_CAB 202 -#define F_DA_BAN 203 - +#define F_SORTBAN 110 +#define F_FROMABI 111 +#define F_FROMCAB 112 +#define F_FROMBAN 113 +#define F_TOABI 114 +#define F_TOCAB 115 +#define F_TOBAN 116 diff --git a/sc/sc2200a.uml b/sc/sc2200a.uml index 51263a839..aefbfc2f8 100755 --- a/sc/sc2200a.uml +++ b/sc/sc2200a.uml @@ -1,10 +1,30 @@ #include "sc2200.h" -PAGE "Stampa Scadenzario" -1 -1 70 19 +TOOLBAR "" 0 -3 0 3 + +BUTTON DLG_PRINT 10 2 +BEGIN + PROMPT -12 -11 "" + MESSAGE EXIT,K_ENTER +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -11 "" +END + +ENDPAGE + +PAGE "Stampa Scadenzario" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "@bDitta" +END NUMBER F_CODDITTA 5 BEGIN - PROMPT 2 1 "Cod. " + PROMPT 2 1 "Codice " FLAGS "DFR" USE LF_NDITTE INPUT CODDITTA F_CODDITTA @@ -12,20 +32,20 @@ BEGIN CHECKTYPE REQUIRED END -STRING F_RAGSOC 50 46 +STRING F_RAGSOC 50 BEGIN - PROMPT 14 1 "R.S. " + PROMPT 17 1 "Rag.Soc. " FLAGS "D" END -GROUPBOX DLG_NULL 68 7 +GROUPBOX DLG_NULL 78 6 BEGIN - PROMPT 1 2 "" + PROMPT 1 3 "@bParametri" END DATE F_DATASTAMPA BEGIN - PROMPT 2 3 "Data di stampa " + PROMPT 2 4 "Data di stampa " HELP "Data di stampa dello scadenziario" CHECKTYPE REQUIRED WARNING "Si deve specificare la data di stampa dello scadenziario" @@ -34,7 +54,7 @@ END DATE F_DATASCADENZAI BEGIN - PROMPT 2 4 "Data di scadenza dal " + PROMPT 2 5 "Data di scadenza dal " HELP "Data di inizio scadenza" CHECKTYPE REQUIRED WARNING "Data di inizio scadenza non valida" @@ -43,7 +63,7 @@ END DATE F_DATASCADENZAF BEGIN - PROMPT 40 4 "al " + PROMPT 40 5 "al " HELP "Data di fine scadenza" CHECKTYPE REQUIRED VALIDATE DATE_CMP_FUNC >= F_DATASCADENZAI @@ -52,40 +72,40 @@ END BOOLEAN F_RATESALDATE BEGIN - PROMPT 2 5 "Stampa rate saldate" + PROMPT 2 6 "Stampa rate saldate" HELP "Include le rate saldate nella stampa" END BOOLEAN F_ORDDATA BEGIN - PROMPT 2 6 "Ordina per data" + PROMPT 2 7 "Ordina per data" HELP "Selezionare se l'ordinamento primario deve essere secondo la data" END BOOLEAN F_VALUTA BEGIN - PROMPT 33 5 "Stampa in valuta" + PROMPT 33 6 "Stampa in valuta" HELP "Selezionare se si vuole la stampa in valuta" END BOOLEAN F_RIEPILOGO BEGIN - PROMPT 33 6 "Stampa prospetto per pagamento" + PROMPT 33 7 "Stampa prospetto per pagamento" HELP "Selezionare se e' necessaria la stampa del prospetto mensile per pagamento" END RADIOBUTTON SC_CLIFO 20 BEGIN - PROMPT 1 9 "Selezione" - ITEM "C|Clienti" MESSAGE K_SPACE,SC_SORTCF|HIDE,9@ - ITEM "F|Fornitori" MESSAGE K_SPACE,SC_SORTCF|SHOW,9@ - ITEM "P|Conti" MESSAGE K_SPACE,SC_SORTCF|HIDE,9@ + PROMPT 1 9 "@bSelezione" + ITEM "C|Clienti" MESSAGE K_SPACE,SC_SORTCF + ITEM "F|Fornitori" MESSAGE K_SPACE,SC_SORTCF + ITEM "P|Conti" MESSAGE K_SPACE,SC_SORTCF END RADIOBUTTON SC_SORTCF 1 29 BEGIN GROUP 1 - PROMPT 23 9 "Ordinamento" + PROMPT 23 9 "@bOrdinamento" ITEM "1|Per codice/conto" ITEM "2|Per rag.soc./descrizione" END @@ -97,7 +117,13 @@ END BUTTON SC_RESET 10 1 BEGIN - PROMPT 55 11 "A~zzera" + PROMPT 68 10 "A~zzera" +END + +NUMBER SC_NSEL 3 +BEGIN + PROMPT 55 11 "Selezionati " + FLAGS "D" END NUMBER SC_CFCODFR 6 @@ -114,14 +140,14 @@ BEGIN GROUP 3 END -STRING SC_CFDESFR 50 30 +STRING SC_CFDESFR 50 BEGIN PROMPT 2 14 "Da ragione sociale " GROUP 4 FLAGS "HB" END -STRING SC_CFDESTO 50 30 +STRING SC_CFDESTO 50 BEGIN PROMPT 2 15 "A ragione sociale " GROUP 4 @@ -166,68 +192,101 @@ BEGIN GROUP 5 END -STRING SC_PCONDESFR 50 30 +STRING SC_PCONDESFR 50 BEGIN PROMPT 2 14 "Da descrizione " GROUP 6 FLAGS "HB" END -STRING SC_PCONDESTO 50 30 +STRING SC_PCONDESTO 50 BEGIN PROMPT 2 15 "A descrizione " GROUP 6 FLAGS "HB" END -NUMBER SC_NSEL 3 +BOOLEAN F_SORTBAN BEGIN - PROMPT 61 14 "N. " - FLAGS "D" + PROMPT 2 16 "Raggruppamento per banca di presentazione" + MESSAGE FALSE HIDE,7@ + MESSAGE TRUE SHOW,7@ END -NUMBER F_DA_ABI 5 +NUMBER F_FROMABI 5 BEGIN - PROMPT 2 16 "Banca di presentazione: ABI " - FLAGS "Z" + PROMPT 2 17 "Da Banca " + FLAGS "HZ" USE %BAN - INPUT CODTAB[1,5] F_DA_ABI - INPUT CODTAB[6,10] F_DA_CAB + INPUT CODTAB[1,5] F_FROMABI + INPUT CODTAB[6,10] F_FROMCAB DISPLAY "ABI@5" CODTAB[1,5] DISPLAY "CAB@5" CODTAB[6,10] DISPLAY "Denominazione@50" S0 - OUTPUT F_DA_ABI CODTAB[1,5] - OUTPUT F_DA_CAB CODTAB[6,10] - OUTPUT F_DA_BAN S0 + OUTPUT F_FROMABI CODTAB[1,5] + OUTPUT F_FROMCAB CODTAB[6,10] + OUTPUT F_FROMBAN S0 + CHECKTYPE NORMAL + GROUP 7 +END + +NUMBER F_FROMCAB 5 +BEGIN + PROMPT 20 17 "" + FLAGS "HZ" + COPY ALL F_FROMABI CHECKTYPE NORMAL - GROUP 9 + GROUP 7 END -NUMBER F_DA_CAB 5 +STRING F_FROMBAN 50 BEGIN - PROMPT 50 16 "CAB " - FLAGS "Z" - COPY ALL F_DA_ABI + PROMPT 28 17 "" + USE %BAN KEY 2 + INPUT S0 F_FROMBAN + DISPLAY "Denominazione@50" S0 + DISPLAY "ABI@5" CODTAB[1,5] + DISPLAY "CAB@5" CODTAB[6,10] + COPY OUTPUT F_FROMABI CHECKTYPE NORMAL - GROUP 9 + GROUP 7 END -STRING F_DA_BAN 50 +NUMBER F_TOABI 5 BEGIN - PROMPT 11 17 "" - FLAGS "D" - GROUP 9 + PROMPT 2 18 "A Banca " + FLAGS "HZ" + COPY USE F_FROMABI + INPUT CODTAB[1,5] F_TOABI + INPUT CODTAB[6,10] F_TOCAB + DISPLAY "ABI@5" CODTAB[1,5] + DISPLAY "CAB@5" CODTAB[6,10] + DISPLAY "Denominazione@50" S0 + OUTPUT F_TOABI CODTAB[1,5] + OUTPUT F_TOCAB CODTAB[6,10] + OUTPUT F_TOBAN S0 + CHECKTYPE NORMAL + GROUP 7 END -BUTTON DLG_PRINT 10 2 +NUMBER F_TOCAB 5 BEGIN - PROMPT -12 -1 "" - MESSAGE EXIT,K_ENTER + PROMPT 20 18 "" + FLAGS "HZ" + COPY ALL F_TOABI + CHECKTYPE NORMAL + GROUP 7 END -BUTTON DLG_QUIT 10 2 +STRING F_TOBAN 50 BEGIN - PROMPT -22 -1 "" + PROMPT 28 18 "" + COPY USE F_FROMBAN + INPUT S0 F_TOBAN + COPY DISPLAY F_FROMBAN + COPY OUTPUT F_TOABI + CHECKTYPE NORMAL + GROUP 7 END ENDPAGE diff --git a/sc/sc2300a.uml b/sc/sc2300a.uml index 93e4fcdca..c42f408c3 100755 --- a/sc/sc2300a.uml +++ b/sc/sc2300a.uml @@ -102,14 +102,14 @@ BEGIN GROUP 3 END -STRING SC_CFDESFR 50 30 +STRING SC_CFDESFR 50 40 BEGIN PROMPT 2 14 "Da ragione sociale " GROUP 4 FLAGS "HB" END -STRING SC_CFDESTO 50 30 +STRING SC_CFDESTO 50 40 BEGIN PROMPT 2 15 "A ragione sociale " GROUP 4 @@ -154,14 +154,14 @@ BEGIN GROUP 5 END -STRING SC_PCONDESFR 50 30 +STRING SC_PCONDESFR 50 40 BEGIN PROMPT 2 14 "Da descrizione " GROUP 6 FLAGS "HB" END -STRING SC_PCONDESTO 50 30 +STRING SC_PCONDESTO 50 40 BEGIN PROMPT 2 15 "A descrizione " GROUP 6 @@ -170,7 +170,7 @@ END NUMBER SC_NSEL 3 BEGIN - PROMPT 61 14 "N. " + PROMPT 60 13 "N. " FLAGS "D" END diff --git a/sc/sc2400a.uml b/sc/sc2400a.uml index 059a5ef66..2db09e0a6 100755 --- a/sc/sc2400a.uml +++ b/sc/sc2400a.uml @@ -147,14 +147,14 @@ BEGIN GROUP 1 END -STRING SC_CFDESFR 50 30 +STRING SC_CFDESFR 50 40 BEGIN PROMPT 2 14 "Da ragione sociale " GROUP 2 FLAGS "HB" END -STRING SC_CFDESTO 50 30 +STRING SC_CFDESTO 50 40 BEGIN PROMPT 3 15 "A ragione sociale " GROUP 2 @@ -163,7 +163,7 @@ END NUMBER SC_NSEL 3 BEGIN - PROMPT 60 14 "N. " + PROMPT 60 13 "N. " FLAGS "D" END diff --git a/sc/sc2401.cpp b/sc/sc2401.cpp index dcb060889..a53e87dfd 100755 --- a/sc/sc2401.cpp +++ b/sc/sc2401.cpp @@ -194,11 +194,8 @@ void TESSL_row::set_imp(TForm_item& fi, const real& imp, const char* cod_val) co } fi.set_picture(new_picture); } - - fi.set(imp.string()); -*/ - const TCurrency cur(imp, cod_val); - fi.set(cur.string()); +*/ + fi.set(imp.string()); } TESSL_form& TESSL_row::form() const diff --git a/sc/sc2500.cpp b/sc/sc2500.cpp index da9e280ed..b41d85776 100755 --- a/sc/sc2500.cpp +++ b/sc/sc2500.cpp @@ -36,7 +36,7 @@ public: TImporto importo_riga(const TRectype& riga) const; real calcola_saldo_partite(char tipoc, int g, int c, long s, bool is_default = FALSE) const; - bool add_saldo(int g, int c, long s, real salc, real salp); + bool add_saldo(int g, int c, long s, const TString& d, real salc, real salp); void show_progress(long pos, long tot); void fill_browse(); @@ -51,7 +51,7 @@ int TConfronta_mask::esercizio_corrente() const return esc.date2esc(oggi); } -bool TConfronta_mask::add_saldo(int g, int c, long s, real salc, real salp) +bool TConfronta_mask::add_saldo(int g, int c, long s, const TString& d, real salc, real salp) //+ { bool ok = !(salc.is_zero() && salp.is_zero()) && (salc != salp || get_bool(F_BILANCIATI)); if (ok) @@ -75,12 +75,14 @@ bool TConfronta_mask::add_saldo(int g, int c, long s, real salc, real salp) salp = -salp; sezp = 'A'; } - TString80 str, i1, i2, i3; + TString256 str; + TString80 i0, i1, i2, i3; const TCurrency impc(salc), impp(salp), imps(sals); + i0 = d.left(30); i1.format("%17s %c", impc.string(TRUE), sezc); i2.format("%17s %c", impp.string(TRUE), sezp); i3.format("%17s %c", imps.string(TRUE), sezs); - str.format("%3d %3d %6ld %s %s %s", g, c, s, (const char*)i1, (const char*)i2, (const char*)i3); + str.format("%3d %3d %6ld %-30s %s %s %s", g, c, s, (const char*)i0, (const char*)i1, (const char*)i2, (const char*)i3); //+ TBrowsefile_field& b = (TBrowsefile_field&)field(F_PREVIEW); b.add_line(str); @@ -199,7 +201,12 @@ void TConfronta_mask::fill_browse() TBrowsefile_field& b = (TBrowsefile_field&)field(F_PREVIEW); TViswin& w = b.vis_win(); w.destroy_lines(); - b.add_line("@bGrp Cnt Sottoc Saldo Contabile Saldo Partite Sbilancio"); + b.add_line("@b STAMPA CONTROLLO SALDI"); + b.add_line("@b_________________________________________________________________________________________________________"); + b.add_line(""); + b.add_line("@bGrp Cnt Sottoc Descrizione Saldo Contabile Saldo Partite Sbilancio"); + b.add_line("@b_________________________________________________________________________________________________________"); + b.add_line(""); TToken_string str; @@ -232,13 +239,14 @@ void TConfronta_mask::fill_browse() const int g = rec.get_int(PCN_GRUPPO); const int c = rec.get_int(PCN_CONTO); const long s = rec.get_long(PCN_SOTTOCONTO); + const TString d = piano.curr().get(PCN_DESCR); //+ - str.format("%d|%d", g, c); + str.format("%d|%d", g, c); const int indbil = cache().get(LF_PCON, str).get_int(PCN_INDBIL); sld.ultima_immissione_bilancio(annoes, g, c, s, indbil, 1); const real salc = sld.saldo(); const real salp = calcola_saldo_partite(' ', g, c, s); - add_saldo(g, c, s, salc, salp); + add_saldo(g, c, s, d, salc, salp); //+ } } else @@ -291,14 +299,15 @@ void TConfronta_mask::fill_browse() str = conti.row(i); const int g = str.get_int(0); const int c = str.get_int(1); - const long s = clienti.curr().get_long(CLI_CODCF); + const long s = clienti.curr().get_long(CLI_CODCF); + const TString d = clienti.curr().get(CLI_RAGSOC); //+ const int indbil = str.get_int(2); if (g == def_grp && c == def_cnt) // Abbiamo trovato il vero conto di default def_conto = i; sld.ultima_immissione_bilancio(annoes, g, c, s, indbil, 1); const real salc = sld.saldo(); const real salp = calcola_saldo_partite(tipoc, g, c, s, def_conto == i); - add_saldo(g, c, s, salc, salp); + add_saldo(g, c, s, d, salc, salp); //+ } } } diff --git a/sc/sc2500.h b/sc/sc2500.h index 1f1e3c353..f03726457 100755 --- a/sc/sc2500.h +++ b/sc/sc2500.h @@ -19,4 +19,5 @@ #define F_BILANCIATI 120 #define F_PREVIEW 121 #define F_CANCEL 122 +#define F_AZZERA 123 diff --git a/sc/sc2500.uml b/sc/sc2500.uml index 49480edf7..0988564d8 100755 --- a/sc/sc2500.uml +++ b/sc/sc2500.uml @@ -54,16 +54,18 @@ END NUMBER F_GRUPPO 3 BEGIN PROMPT 30 1 "Gruppo " - USE LF_PCON SELECT (CONTO!="")&&(SOTTOCONTO=="")&&(TMCF==#F_TIPOC) + USE LF_PCON SELECT (CONTO!="")&&(SOTTOCONTO=="") INPUT GRUPPO F_GRUPPO INPUT CONTO F_CONTO DISPLAY "Gruppo" GRUPPO - DISPLAY "Conto" CONTO + DISPLAY "Conto" CONTO + DISPLAY "Tipo" TMCF DISPLAY "Descrizione@50" DESCR OUTPUT F_GRUPPO GRUPPO OUTPUT F_CONTO CONTO + OUTPUT F_TIPOC TMCF CHECKTYPE SEARCH - GROUP 4 + GROUP 4 5 END NUMBER F_CONTO 3 @@ -71,7 +73,7 @@ BEGIN PROMPT 46 1 "Conto " COPY ALL F_GRUPPO CHECKTYPE SEARCH - GROUP 4 + GROUP 4 5 END NUMBER F_SOTTOCONTO 6 @@ -88,7 +90,7 @@ BEGIN OUTPUT F_SOTTOCONTO SOTTOCONTO OUTPUT F_CON_DESCR DESCR CHECKTYPE SEARCH - GROUP 1 4 + GROUP 1 4 5 END STRING F_CON_DESCR 50 @@ -102,7 +104,7 @@ BEGIN DISPLAY "Sottoconto" SOTTOCONTO COPY OUTPUT F_SOTTOCONTO CHECKTYPE SEARCH - GROUP 1 4 + GROUP 1 4 5 END NUMBER F_CLIENTE 6 @@ -117,7 +119,7 @@ BEGIN OUTPUT F_CLI_DESCR RAGSOC CHECKTYPE SEARCH MESSAGE COPY,F_SOTTOCONTO - GROUP 2 4 + GROUP 2 4 5 END STRING F_CLI_DESCR 50 @@ -130,7 +132,7 @@ BEGIN DISPLAY "Codice" CODCF COPY OUTPUT F_CLIENTE CHECKTYPE SEARCH - GROUP 2 4 + GROUP 2 4 5 END NUMBER F_FORNITORE 6 @@ -145,7 +147,7 @@ BEGIN OUTPUT F_FOR_DESCR RAGSOC CHECKTYPE SEARCH MESSAGE COPY,F_SOTTOCONTO - GROUP 3 4 + GROUP 3 4 5 END STRING F_FOR_DESCR 50 @@ -157,7 +159,7 @@ BEGIN COPY DISPLAY F_CLI_DESCR COPY OUTPUT F_FORNITORE CHECKTYPE SEARCH - GROUP 3 4 + GROUP 3 4 5 END GROUPBOX DLG_NULL 78 4 @@ -184,7 +186,7 @@ BEGIN OUTPUT F_AGRUPPO GRUPPO OUTPUT F_ACONTO CONTO CHECKTYPE SEARCH - GROUP 1 4 + GROUP 1 4 5 END NUMBER F_ACONTO 3 @@ -192,7 +194,7 @@ BEGIN PROMPT 46 5 "Conto " COPY ALL F_AGRUPPO CHECKTYPE SEARCH - GROUP 1 4 + GROUP 1 4 5 END NUMBER F_ASOTTOCONTO 6 @@ -205,7 +207,7 @@ BEGIN OUTPUT F_ASOTTOCONTO SOTTOCONTO OUTPUT F_ACON_DESCR DESCR CHECKTYPE SEARCH - GROUP 1 4 + GROUP 1 4 5 END STRING F_ACON_DESCR 50 @@ -216,7 +218,7 @@ BEGIN COPY DISPLAY F_CON_DESCR COPY OUTPUT F_ASOTTOCONTO CHECKTYPE SEARCH - GROUP 1 4 + GROUP 1 4 5 END NUMBER F_ACLIENTE 6 @@ -230,7 +232,7 @@ BEGIN OUTPUT F_ACLI_DESCR RAGSOC CHECKTYPE SEARCH MESSAGE COPY,F_ASOTTOCONTO - GROUP 2 4 + GROUP 2 4 5 END STRING F_ACLI_DESCR 50 @@ -242,7 +244,7 @@ BEGIN COPY DISPLAY F_CLI_DESCR COPY OUTPUT F_ACLIENTE CHECKTYPE SEARCH - GROUP 2 4 + GROUP 2 4 5 END NUMBER F_AFORNITORE 6 @@ -256,7 +258,7 @@ BEGIN OUTPUT F_AFOR_DESCR RAGSOC CHECKTYPE SEARCH MESSAGE COPY,F_ASOTTOCONTO - GROUP 3 4 + GROUP 3 4 5 END STRING F_AFOR_DESCR 50 @@ -268,18 +270,24 @@ BEGIN COPY DISPLAY F_FOR_DESCR COPY OUTPUT F_AFORNITORE CHECKTYPE SEARCH - GROUP 3 4 + GROUP 3 4 5 END BOOLEAN F_BILANCIATI BEGIN - PROMPT 2 8 "Stampa anche i conti con sbilancio nullo" + PROMPT 1 8 "Stampa anche i conti con sbilancio nullo" GROUP 4 END -BROWSEFILE F_PREVIEW 78 -1 +BUTTON F_AZZERA 17 1 BEGIN - PROMPT 0 8 "" + PROMPT 60 8 "~Azzera selezioni" + MESSAGE RESET,5@ +END + +BROWSEFILE F_PREVIEW 0 -1 +BEGIN + PROMPT 0 9 "" END ENDPAGE diff --git a/sc/scprassi.men b/sc/scprassi.men index 2f902798f..2b3529999 100755 --- a/sc/scprassi.men +++ b/sc/scprassi.men @@ -15,5 +15,6 @@ Caption = "Servizio" Picture = Module = 13 Flags = "" -Item_01 = "Creazione saldaconto da saldi", "sc1 -1", "" +Item_01 = "Stampa di controllo saldi", "sc2 -4", "" +Item_02 = "Creazione saldaconto da saldi", "sc1 -1", "" diff --git a/sc/scselect.cpp b/sc/scselect.cpp index 462bcfdc4..82750f20b 100755 --- a/sc/scselect.cpp +++ b/sc/scselect.cpp @@ -318,6 +318,8 @@ bool TSelection_mask::ffrom_handler(TMask_field& f, KEY k) { TSelection_mask& m = (TSelection_mask&)f.mask(); TCursor_sheet& c = m.cur_sheet(); + c.cursor()->curr().put(CLI_CODCF, f.get()); + c.cursor()->read(); c.disable_check(); c.disable(DLG_USER); if (c.run() == K_ENTER) @@ -350,6 +352,8 @@ bool TSelection_mask::fto_handler(TMask_field& f, KEY k) { TSelection_mask& m = (TSelection_mask&)f.mask(); TCursor_sheet& c = m.cur_sheet(); + c.cursor()->curr().put(CLI_CODCF, f.get()); + c.cursor()->read(); c.disable_check(); c.disable(DLG_USER); if (c.run() == K_ENTER) @@ -381,7 +385,8 @@ bool TSelection_mask::fdfrom_handler(TMask_field& f, KEY k) { TSelection_mask& m = (TSelection_mask&)f.mask(); TCursor_sheet& c = m.cur_sheet(); - + c.cursor()->curr().put(CLI_RAGSOC, f.get()); + c.cursor()->read(); c.disable_check(); c.disable(DLG_USER); if (c.run() == K_ENTER) @@ -414,7 +419,8 @@ bool TSelection_mask::fdto_handler(TMask_field& f, KEY k) { TSelection_mask& m = (TSelection_mask&)f.mask(); TCursor_sheet& c = m.cur_sheet(); - + c.cursor()->curr().put(CLI_RAGSOC, f.get()); + c.cursor()->read(); c.disable_check(); c.disable(DLG_USER); if (c.run() == K_ENTER) diff --git a/sv/sv1100a.uml b/sv/sv1100a.uml index 955f81285..58db48db0 100755 --- a/sv/sv1100a.uml +++ b/sv/sv1100a.uml @@ -1,7 +1,7 @@ #include "../sc/scselmsk.h" #include "sv1100a.h" -TOOLBAR "Toolbar" 0 20 0 3 +TOOLBAR "Toolbar" 0 -2 0 2 BUTTON DLG_PRINT 10 2 BEGIN diff --git a/sv/sv1200.cpp b/sv/sv1200.cpp index 2a884bcb9..81733a0b2 100755 --- a/sv/sv1200.cpp +++ b/sv/sv1200.cpp @@ -1283,12 +1283,12 @@ int TStampa_stat::handle_levchange(int row, const int level) } adjust_record(rec_grp1,lencode); - set_filled_row('R',++row,'-',POS_PRIMACOL,_largcol * _numcol ); + set_filled_row('R',++row,'_',POS_PRIMACOL,_largcol * _numcol ); partkey_name(rec_grp1.get(SVS_LEVCODE), numlevels() - _last_lev_grp - 1, _wrk_row); - _wrk_row.insert("Totale ", 0); + _wrk_row.insert("@Totale ", 0); _wrk_row << ' ' << rec_grp1.get(SVS_CODICE).mid(lencode); - _wrk_row << ' ' << rec_grp1.get(SVS_DESCR); + _wrk_row << ' ' << rec_grp1.get(SVS_DESCR).left(23); //_wrk_row.cut(LARG_COLCODICE); there are also @ chars! set_row_atpos('R',++row,(const char *)_wrk_row,_indent[_last_lev_grp]); row = set_rows_colonne(row, rec_grp1); diff --git a/sv/svlib01.cpp b/sv/svlib01.cpp index 84507aeae..de2f50dbf 100755 --- a/sv/svlib01.cpp +++ b/sv/svlib01.cpp @@ -502,15 +502,26 @@ bool TStats_agg::sub(const TRiga_documento& rdoc) if (ok) { TStats_data& data = find(rdoc); + real val_riga; + const TDocumento & d = rdoc.doc(); + + if (_valfield.empty()) + val_riga = rdoc.imponibile(); + else + val_riga = rdoc.get_real(_valfield); + if (d.in_valuta()) + { + TCurrency_documento v(val_riga, d); + v.change_to_firm_val(); + val_riga = v.get_num(); + } + data._valore -= val_riga; + real qta = rdoc.quantita(); if (qta.is_zero()) qta = 1.0; data._quantita -= qta; - if (_valfield.empty()) - data._valore -= rdoc.imponibile(); - else - data._valore -= rdoc.get_real(_valfield); } return ok; } @@ -521,12 +532,23 @@ bool TStats_agg::add(const TRiga_documento& rdoc) if (ok) { TStats_data& data = find(rdoc); - + real val_riga; + const TDocumento & d = rdoc.doc(); + if (_valfield.empty()) - data._valore += rdoc.imponibile(); - else - data._valore += rdoc.get_real(_valfield); + val_riga = rdoc.imponibile(); + else + val_riga = rdoc.get_real(_valfield); + if (d.in_valuta()) + { + TCurrency_documento v(val_riga, d); + v.change_to_firm_val(); + val_riga = v.get_num(); + } + data._valore += val_riga; + real qta = rdoc.quantita(); + if (qta.is_zero()) qta = 1.0; data._quantita += qta; diff --git a/sv/svlib09.cpp b/sv/svlib09.cpp index 2e23da891..5f5fbd76b 100755 --- a/sv/svlib09.cpp +++ b/sv/svlib09.cpp @@ -1,8 +1,4 @@ -//#include -//#include #include - -//#include "svlib01.h" #include "svlib09.h" #define RWCACHE_SIZE 100 @@ -21,14 +17,16 @@ void TRWrecord_cache::discard(const TString & vittima) { if (_flags.is_key(vittima)) { - const char fl=((TString &)_flags[vittima])[1]; + const char fl=((TString &)_flags[vittima])[0]; // record modificato o nuovo - int err; + int err; TRectype & rec=(TRectype & )TRecord_cache::get(vittima); file().curr()=rec; if (fl == 'D') { err=file().rewrite(); + if (err!=NOERR) + err=file().write(); if (err!=NOERR) error_box("Errore nella riscrittura della cache"); } else { @@ -54,7 +52,7 @@ const TRectype& TRWrecord_cache::get(const char* chiave) if (io_result() != NOERR) { // record non trovato: č nuovo - _flags.add(chiave,new TString("N")); + _flags.add(chiave,TString4("N")); } return rec; } @@ -72,9 +70,12 @@ void TRWrecord_cache::put(const TRectype &r) { const int nf = kd.FieldSeq[i] % MaxFields; const RecFieldDes& rf = recd->Fd[nf]; - cachekey.add(r.get(rf.Name)); + const TString & fval = r.get(rf.Name); + cachekey.add(fval); } - } + } + else + warning_box("adding an empty record"); TObject* obj = _cache.objptr(cachekey); if (obj != NULL) @@ -82,7 +83,7 @@ void TRWrecord_cache::put(const TRectype &r) // esiste in cache ; tenta di settare il flag a "D"irty; se il flag esiste gią č a TRectype & rec=(TRectype &)(*obj); rec=r; - _flags.add(cachekey , new TString("D")); + _flags.add(cachekey , TString4("D")); } else { // non esiste in cache obj = rec2obj(r); diff --git a/ve/batbeld.h b/ve/batbeld.h index d536d52a5..8a1232992 100755 --- a/ve/batbeld.h +++ b/ve/batbeld.h @@ -71,8 +71,12 @@ #define F_RIFERIMENTI 320 #define F_RIFERIMENTI_IN_TESTA 321 #define F_IGNORA_DESCRIZIONI 330 +#define F_USA_DOCRIF 331 #define F_PREZZO_DA_ORDINE 340 +#define F_QTACON 345 +#define F_QTAEV 346 + #define F_COLONNE_CO 350 diff --git a/ve/batbeld.uml b/ve/batbeld.uml index 3dc0aa1ed..3e36a5f3b 100755 --- a/ve/batbeld.uml +++ b/ve/batbeld.uml @@ -498,7 +498,7 @@ BEGIN PROMPT 44 13 "" ITEM " |Definitiva" ITEM "X|Provvisioria" - FIELD B5 + FIELD B4 END BOOLEAN F_AGGIORNA_TESTATA @@ -650,7 +650,7 @@ END GROUPBOX DLG_NULL 78 4 BEGIN PROMPT 1 14 "@bGestione descrizioni" -END +END BOOLEAN F_RIFERIMENTI BEGIN @@ -670,17 +670,38 @@ BEGIN FIELD B3 END +BOOLEAN F_USA_DOCRIF +BEGIN + PROMPT 40 16 "Usa documento di rif. in descr.rif." + FIELD B8 +END + NUMBER F_COLONNE_CO 1 BEGIN PROMPT 1 18 "Intestazioni consegna ordini " SHEET "Tipo|Colonna 1@25|Colonna 2@25" ITEM " |Quantita' residua|Quantita' da evadere" ITEM "1|Quantita' consegnata|Quantita' da fatturare" + ITEM "2|Residuo|Da evadere" INPUT F_COLONNE_CO OUTPUT F_COLONNE_CO GROUP 1 FIELD I1 -END +END + +STRING F_QTACON 10 +BEGIN + PROMPT 2 20 "Quantita' da evad. " + FLAGS "U" + FIELD S1[50,59] +END + +STRING F_QTAEV 10 +BEGIN + PROMPT 40 20 "Quantita' evasa " + FLAGS "U" + FIELD S1[60,69] +END ENDPAGE diff --git a/ve/batbspp.h b/ve/batbspp.h index 3f84e0eee..695df01d3 100755 --- a/ve/batbspp.h +++ b/ve/batbspp.h @@ -21,3 +21,4 @@ #define F_DESCRCONTOA 121 #define F_TIPORIGA 122 #define F_DESCRRIGA 123 +#define F_TIPORIT 124 diff --git a/ve/batbspp.uml b/ve/batbspp.uml index 068c50e81..d55129ad2 100755 --- a/ve/batbspp.uml +++ b/ve/batbspp.uml @@ -319,4 +319,13 @@ BEGIN COPY OUTPUT F_TIPORIGA END +LISTBOX F_TIPORIT 17 +BEGIN + PROMPT 2 20 "Tipo ritenuta " + FIELD S9 + ITEM " |Spesa normale" + ITEM "F|Ritenuta fiscale" + ITEM "S|Ritennuta Sociale" +END + ENDMASK diff --git a/ve/bolacq.src b/ve/bolacq.src index 7801705b7..c421930b3 100755 --- a/ve/bolacq.src +++ b/ve/bolacq.src @@ -143,6 +143,10 @@ DESCRMAGC = S_DISABILITATO //2900 BLANK = S_DISABILITATO //4000 CODNOTE = S_NASCOSTO //2500 NOTECLI = S_NASCOSTO //2500 +CODCMS = S_NORMALE //3000 +DESCRCMS = S_NORMALE //3000 +FASCMS = S_NORMALE //3000 +DESCRFAS = S_NORMALE //3000 [DEFAULT] @@ -150,7 +154,7 @@ NDEFAULTS=1 1=F_CAUSTRASP|VEN [SHEET] -NCOLS=20 +NCOLS=22 1=FR_CODMAG 2=FR_CODDEP 3=FR_CODART @@ -171,6 +175,8 @@ NCOLS=20 18=FR_CAUS 19=FR_CODMAGC 20=FR_CODDEPC +21=FR_CODCMS +22=FR_FASCMS [RIGHE] NTIPIRIGA=* @@ -210,6 +216,7 @@ NHANDLER=0 2300 = S_NORMALE 2400 = S_NORMALE 2900 = S_NORMALE +3000 = S_NORMALE 4000 = S_NORMALE [ORDINEGRUPPI] @@ -224,4 +231,4 @@ NGROUPS=10 8=2300 9=2400 10=2900 - +11=3000 diff --git a/ve/bollac.src b/ve/bollac.src index 5470e4b6e..2769ca92f 100755 --- a/ve/bollac.src +++ b/ve/bollac.src @@ -139,6 +139,10 @@ CAUSMAG = S_OBBLIGATORIO //2900 CAUSMAGC = S_DISABILITATO //2900 DESCRMAG = S_NORMALE //2900 DESCRMAGC = S_DISABILITATO //2900 +CODCMS = S_NORMALE //3000 +DESCRCMS = S_NORMALE //3000 +FASCMS = S_NORMALE //3000 +DESCRFAS = S_NORMALE //3000 BLANK = S_DISABILITATO //4000 CODNOTE = S_NORMALE //2500 NOTECLI = S_NORMALE //2500 @@ -149,7 +153,7 @@ NDEFAULTS=1 1=F_CAUSTRASP|VEN [SHEET] -NCOLS=23 +NCOLS=25 1=FR_CODMAG 2=FR_CODDEP 3=FR_CODART @@ -173,6 +177,8 @@ NCOLS=23 21=FR_CAUS 22=FR_CODMAGC 23=FR_CODDEPC +24=FR_CODCMS +25=FR_FASCMS [RIGHE] NTIPIRIGA=* @@ -216,10 +222,11 @@ NHANDLER=0 2710 = S_NORMALE 2800 = S_NORMALE 2900 = S_NORMALE +3000 = S_NORMALE 4000 = S_NORMALE [ORDINEGRUPPI] -NGROUPS=29 +NGROUPS=30 1=100 2=2500 3=200 @@ -249,4 +256,4 @@ NGROUPS=29 27=1800 28=1000 29=2900 - +30=3000 diff --git a/ve/bollaf.src b/ve/bollaf.src index 2984ed01d..831908965 100755 --- a/ve/bollaf.src +++ b/ve/bollaf.src @@ -104,6 +104,10 @@ CAUSMAG = S_OBBLIGATORIO //2900 CAUSMAGC = S_DISABILITATO //2900 DESCRMAG = S_NORMALE //2900 DESCRMAGC = S_DISABILITATO //2900 +CODCMS = S_NORMALE //3000 +DESCRCMS = S_NORMALE //3000 +FASCMS = S_NORMALE //3000 +DESCRFAS = S_NORMALE //3000 [DEFAULT] @@ -111,7 +115,7 @@ NDEFAULTS=1 1=F_CAUSTRASP|RES [SHEET] -NCOLS=16 +NCOLS=18 1=FR_CODMAG 2=FR_CODDEP 3=FR_CODART @@ -128,6 +132,8 @@ NCOLS=16 14=FR_CAUS 15=FR_CODMAGC 16=FR_CODDEPC +17=FR_CODCMS +18=FR_FASCMS [RIGHE] NTIPIRIGA=* @@ -156,9 +162,10 @@ NHANDLER=0 2710 = S_NORMALE 2800 = S_NORMALE 2900 = S_NORMALE +3000 = S_NORMALE [ORDINEGRUPPI] -NGROUPS=19 +NGROUPS=20 1=100 2=200 3=300 @@ -178,4 +185,4 @@ NGROUPS=19 17=2900 18=1500 19=1600 - +20=3000 diff --git a/ve/bolle.trr b/ve/bolle.trr new file mode 100755 index 000000000..b424e6fde --- /dev/null +++ b/ve/bolle.trr @@ -0,0 +1,105 @@ +1001 +101 +I5CDEP|1|3|0|CODICE DEPOSITO +I5CCLI|3|6|0|CODICE CLIENTE +I5FLCO|1|1|0|FLAG CLIENTE CORRISPETTIVO +I5CLCO|3|6|0|CODICE CLIENTE CORRISPETTIVO +I5CCFA|3|6|0|CODICE CLIENTE PER FATTURAZIONE +I5TDO1|1|1|0|TIPO DOCUMENTO APPL.ESTERNO +I5CNMV|1|2|0|COD.NUM.DOC. APPL.ESTERNO +I5UDOC|3|8|0|DATA DOCUMENTO APPL.ESTERNO (AAAAMMGG) +I5NDOC|3|7|0|NUMERO DOCUMENTO APPL.ESTERNO +I5UROC|3|8|0|DATA RIF.ORD.CLIENTE (AAAAMMGG) +I5DROC|1|30|0|RIF. ORDINE CLIENTE +I5CCIC|1|2|0|CATEGORIA DI IMPUTAZIONE CLIENTE +I5CPAG|2|3|0|CODICE PAGAMENTO +I5CABI|1|10|0|CODICE BANCA A.B.I. +I5CLIG|1|2|0|CODICE LINGUA +I5CPOR|1|1|0|CODICE PORTO +I5CMEZ|1|1|0|CODICE A MEZZO +I5CRES|2|3|0|CODICE RESA +I5CVE1|1|3|0|CODICE VETTORE 1 +I5CVE2|1|3|0|CODICE VETTORE 2 +I5CVE3|1|3|0|CODICE VETTORE 3 +I5CIMB|1|1|0|CODICE IMBALLO +I5CZON|1|3|0|CODICE ZONA +I5CNOV|1|2|0|CODICE NOTE VARIE PER DOC. +I5CIVA|2|2|0|CODICE IVA +I5CCVE|1|2|0|CODICE CAUSALE DI VENDITA +I5CCMO|1|2|0|CODICE CAUSALE DI MAGAZZINO +I5CVAL|1|3|0|CODICE VALUTA +I5ICAM|4|12|7|VALORE CAMBIO +I5CAG1|1|2|0|CODICE AGENTE 1 +I5PPR1|4|6|2|PERCENTUALE PROVVIGIONE +I5CAG2|1|2|0|CODICE AGENTE 2 +I5PPR2|4|6|2|CODICE AGENTE 2 +I5TLIS|1|3|0|TIPO LISTINO +I5PSCI|4|6|2|SCONTO INCONDIZIONATO +I5PSCA|4|6|2|SCONTO CASSA +I5UDEP|3|8|0|DATA DECORRENZA PAGAMENTO +I5CASP|1|1|0|CODICE ASPETTO ESTERIORE DEI BENI +I5DASP|1|12|0|DESCR.ASPETTO ESTERIORE DEI BENI +I5NCLP|2|5|0|NUMERO COLLI +I5QPNE|4|12|3|PESO NETTO DELLA MERCE +I5QPLO|4|12|3|PESO LORDO DELLA MERCE +I5CDOP|1|3|0|COD.DEP.RICEVENTE X TRASFERIMENTO +I5NCPF|2|1|0|NUMERO COPIE FATTURE +I5FNOF|1|1|0|FLAG PER NO-FATTURA +I5TCF1|1|1|0|TIPO CLI/FOR DEPOSITO DI PARTENZA +I5CCF1|3|6|0|CODICE CLI/FOR DEPOSITO DI PARTENZA +I5TCF2|1|1|0|TIPO CLI/FOR DEPOSITO DI ARRIVO +I5CCF2|3|6|0|CODICE CLI/FOR DEPOSITO DI ARRIVO +I5IGPA|4|14|2|IMPORTO GIA' PAGATO +I5UPAG|3|8|0|DATA DI PAGAMENTO +I5IABB|4|14|2|IMPORTO ABBUONO +I5CCOM|1|2|0|CODICE COMMESSO +I5ITRC|4|14|2|SPESE TRASP. CONFINE +I5MESC|3|2|0|MESE COMPETENZA PER RETTIFICHE +I5ANNC|3|4|0|ANNO COMPETENZA PER RETTIFICHE +I5CNAT|1|1|0|CODICE NATURA TRANSAZIONE +I5FCEE|1|1|0|FLAG REGISTRAZIONE INTRASTAT +I5TCEE|1|1|0|TIPO MOVIMENTO +I5PSAS|4|6|2|%SPESE ASSICURATIVE +I5PSTR|4|6|2|%SPESE TRASPORTO +I5PSAM|4|6|2|%SPESE AMMINISTRATIVE +I5PSIM|4|6|2|%SPESE IMBALLO +I5IASS|4|14|2|IMPORTO SPESE ASSICURATIVE +I5ITRA|4|14|2|IMPORTO SPESE TRASPORTO +I5IAMM|4|14|2|IMPORTO SPESE AMMINISTRATIVE +I5IIMO|4|14|2|IMPORTO SPESE IMBALLO +I5FMST|1|1|0|TIPO STAMPA PREZZI +I5FTOM|1|1|O|FLAG TIPO BOLLA PER OMAGGIO +I5FVDI|1|1|O|FLAG VENDITA DIRETTA/INDIRETTA +I5FRBO|1|1|O|FLAG RAGGRUPPAMENTO BOLLE +I5FABF|1|1|O|FLAG ADDEBITO BOLLI IN FATTURA +I5FASI|1|1|O|FLAG ADDEBITO SPESE INCASSO +I5FPIB|1|1|O|FLAG PREZZO IN LIRE BLOCCATO +I5FCOL|1|1|O|FLAG COSTO IMBALL. PER COLLO +I5FGST|1|1|O|FLAG STATO DI STAMPA +I5FBVA|1|1|0|FLAG BLOCCO VARIANTE RAME +I5LVRA|4|8|2|VARIANTE RAME +I5CSPF|1|2|0|COD.INDIR.SPEDIZ. FATTURA +I5CSPZ|1|2|0|CODICE INDIRIZZO DI SPEDIZIONE +I5DRSM|1|30|0|RAGIONE SOCIALE SPEDIZIONE +I5DISP|1|30|0|INDIRIZZO SPEDIZIONE MAG. +I5CCAP|1|5|0|C.A.P. SPEDIZIONE +I5DLOP|1|25|0|LOCALITA' DI SPEDIZIONE +I5CPRP|1|2|0|PROVINCIA DI SPEDIZIONE +I5CNA1|1|3|0|ZONA DI SPEDIZIONE +I5UTRA|3|8|0|DATA TRASPORTO +I5CCDC|1|10|0|CODICE CENTRO DI COSTO +I5CCME|1|2|0|CODICE CATEGORIA MERCEOLOGICA +I5CCM2|1|6|0|CODICE CATEGORIA MERCEOLOGICA 2 CLIEN. +I5TCAI|1|1|0|TIPO CALCOLO IVA +I5HOTR|2|2|0|ORA DEL TRASPORTO +I5HMTR|2|2|0|MINUTI DEL TRASPORTO +I5DPRO|1|20|0|RIFERIMENTI +I5NTOA|2|5|0|CONTATORE TESTATE ORDINI +I5FDIA|1|1|0|DIAGNOSTICA +I5FELA|1|1|0|ELABORATO +I5CNOS|1|2|0|COD.NUM. DOCUMENTO SPED. +I5NDOS|3|7|0|NUMERO DOCUMENTO SPED. +I5UDOS|3|8|0|DATA DOCUMENTO SPED. +I5AREA|1|100|0|AREA PERSONALIZZABILE +1 +I5TDO1+I5CNMV+I5NDOC| diff --git a/ve/f33.dir b/ve/f33.dir index 0003454cd..b4282d5cb 100755 --- a/ve/f33.dir +++ b/ve/f33.dir @@ -1,3 +1,3 @@ 33 0 -$doc|0|0|418|0|Documenti di vendita|NDOC*3|| +$doc|0|0|448|0|Documenti di vendita|NDOC*3|| diff --git a/ve/f33.trr b/ve/f33.trr index 3fcce52e0..031a466b3 100755 --- a/ve/f33.trr +++ b/ve/f33.trr @@ -1,5 +1,5 @@ 33 -72 +74 CODNUM|1|4|0|Codice della numerazione ANNO|2|4|0|Anno PROVV|1|1|0|Tipo numerazione

rovvisorio efinitivo @@ -72,6 +72,8 @@ DATAAGG|5|8|0|Data ultimo aggiornamento UTENTE|1|10|0|Utente ultimo aggiornamento COLL_GOLEM|11|10|0|Collegamento lista di GOLEM DOCEVASO|8|1|0|Ordine evaso +CODCMS|1|20|0|Codice Commessa +FASCMS|1|10|0|Fase Commessa 3 PROVV+ANNO+CODNUM+NDOC| TIPOCF+CODCF+PROVV+ANNO+DATADOC+CODNUM+NDOC|X diff --git a/ve/f34.dir b/ve/f34.dir index c7015b62f..13801499e 100755 --- a/ve/f34.dir +++ b/ve/f34.dir @@ -1,3 +1,3 @@ 34 0 -$rdoc|||423|31|Righe documenti di vendita|NDOC*3|| +$rdoc|0|0|453|31|Righe documenti di vendita|NDOC*3|| diff --git a/ve/f34.trr b/ve/f34.trr index 338a4c118..86c181154 100755 --- a/ve/f34.trr +++ b/ve/f34.trr @@ -1,5 +1,5 @@ 34 -50 +52 CODNUM|1|4|0|Codice Numeriazione ANNO|2|4|0|Anno PROVV|1|1|0|Tipo numerazione

rovvisoria efinitiva @@ -17,7 +17,7 @@ LIVELLO|1|15|0|Codice di giacenza DESCR|1|50|0|Descrizione DESCLUNGA|8|1|0|Descrizione estesa caricata DESCEST|11|10|0|Descrizione estesa -PREZZO|4|18|3|Prezzo o valore +PREZZO|4|18|5|Prezzo o valore UMQTA|1|2|0|Unita di misura QTA|4|15|5|Quantita' QTAEVASA|4|13|5|Quantita' evasa @@ -50,6 +50,8 @@ DAANNO|2|4|0|Anno del documento originale DAPROVV|1|1|0|Provvisorieta' del documento originale DANDOC|3|7|0|Numero del documento originale DAIDRIGA|3|6|0|Identificatore riga originale +CODCMS|1|20|0|Codice Commessa +FASCMS|1|10|0|Fase Commessa 2 CODNUM+ANNO+PROVV+NDOC+NRIGA| CODNUM+ANNO+PROVV+CODART+LIVELLO+CODMAG|X diff --git a/ve/f49.trr b/ve/f49.trr index 6071ba312..b8c0cba13 100755 --- a/ve/f49.trr +++ b/ve/f49.trr @@ -4,7 +4,7 @@ CODART|1|20|0|Codice articolo NRIGA|2|3|0|Numero di riga UM|1|2|0|Unitį di misura FC|4|15|5|Fattore di conversione -PREZZO|4|18|3|Prezzo +PREZZO|4|18|5|Prezzo 2 CODART+NRIGA| CODART+UM|X diff --git a/ve/f53.trr b/ve/f53.trr index abcb4fa84..796f08534 100755 --- a/ve/f53.trr +++ b/ve/f53.trr @@ -10,7 +10,7 @@ CODRIGA|1|20|0|Codice riga (articolo o gruppo merceologico o raggr.fiscale) UM|1|2|0|Unitį di misura (LO) NSCAGL|2|1|0|N.ro scaglione QLIM|4|15|5|Quantitį limite scaglione -PREZZO|4|18|3|Prezzo +PREZZO|4|18|5|Prezzo SCONTO|1|25|0|Sconto o maggiorazione nella forma (aa+bb+cc-dd) ADDIVA|8|1|0|Addebito iva CODIVA|1|4|0|Codice IVA @@ -18,7 +18,7 @@ PERCPROVV|4|5|2|Percentuale di provvigione QOM|4|15|5|Quantitį di merce scontata o omaggio QBASE|4|15|5|Quantitį base per calcolo sconto CODARTOM|1|20|0|Codice articolo omaggio -PROMAGGIO|4|18|3|Prezzo omaggio +PROMAGGIO|4|18|5|Prezzo omaggio UMOM|1|2|0|Unitį di misura articolo omaggio CODLOTTO|1|6|0|Codice lotto (CO) ARTES|8|1|0|Articolo in esaurimento (O) diff --git a/ve/fatacq.src b/ve/fatacq.src index b928b5846..5a7d5af16 100755 --- a/ve/fatacq.src +++ b/ve/fatacq.src @@ -11,7 +11,7 @@ FRMFILE=VEFAT.FRM // modifica CAMPICALC=TOTMER|TOTPRE|SPESE|SPESINC|SPESIMB|SPESTRA|BOLLI|IMPONIBILI|IMPOSTE|TOTDOC|SCONTOD|SCONTOT|OMAGGI|PROVVD CALCOLI=* -TOTPROVV = +TOTPROVV = // modifica // Indica se il documento č indirizzato ad un cliente o ad un fornitore TIPOCF=F @@ -103,12 +103,16 @@ CAUSMAG = S_OBBLIGATORIO //2900 CAUSMAGC = S_DISABILITATO //2900 DESCRMAG = S_NORMALE //2900 DESCRMAGC = S_DISABILITATO //2900 +CODCMS = S_NORMALE //3000 +DESCRCMS = S_NORMALE //3000 +FASCMS = S_NORMALE //3000 +DESCRFAS = S_NORMALE //3000 [DEFAULT] NDEFAULTS=0 [SHEET] -NCOLS=20 +NCOLS=22 1=FR_CODMAG 2=FR_CODDEP 3=FR_CODART @@ -129,6 +133,8 @@ NCOLS=20 18=FR_CAUS 19=FR_CODMAGC 20=FR_CODDEPC +21=FR_CODCMS +22=FR_FASCMS [RIGHE] NTIPIRIGA=* @@ -161,10 +167,11 @@ NHANDLER=0 2300 = S_NORMALE 2400 = S_NORMALE 2900 = S_NORMALE +3000 = S_NORMALE 4000 = S_NORMALE [ORDINEGRUPPI] -NGROUPS=10 +NGROUPS=12 1=1000 2=100 3=200 @@ -176,4 +183,5 @@ NGROUPS=10 9=1400 10=1900 11=2900 +12=3000 diff --git a/ve/fatturaa.src b/ve/fatturaa.src index 5d0a1204a..5ec16cf1a 100755 --- a/ve/fatturaa.src +++ b/ve/fatturaa.src @@ -9,7 +9,7 @@ TYPE=Fattura accompagnatoria // modifica CAMPICALC=TOTMER|TOTPRE|SPESE|SPESINC|SPESIMB|SPESTRA|BOLLI|IMPONIBILI|IMPOSTE|TOTDOC|SCONTOD|SCONTOT|OMAGGI|TOTPROVV CALCOLI=* -TOTPROVV = +TOTPROVV = // modifica // Indica se il documento č indirizzato ad un cliente o ad un fornitore TIPOCF=C @@ -141,13 +141,17 @@ CAUSMAG = S_OBBLIGATORIO //2900 CAUSMAGC = S_DISABILITATO //2900 DESCRMAG = S_NORMALE //2900 DESCRMAGC = S_DISABILITATO //2900 +CODCMS = S_NORMALE //3000 +DESCRCMS = S_NORMALE //3000 +FASCMS = S_NORMALE //3000 +DESCRFAS = S_NORMALE //3000 [DEFAULT] NDEFAULTS=1 1=F_CAUSTRASP|VEN [SHEET] -NCOLS=24 +NCOLS=26 1=FR_CODMAG 2=FR_CODDEP 3=FR_CODART @@ -172,6 +176,8 @@ NCOLS=24 22=FR_CAUS 23=FR_CODMAGC 24=FR_CODDEPC +25=FR_CODCMS +26=FR_FASCMS [RIGHE] NTIPIRIGA=* @@ -215,9 +221,10 @@ NHANDLER=0 2710 = S_NORMALE 2800 = S_NORMALE 2900 = S_NORMALE +3000 = S_NORMALE [ORDINEGRUPPI] -NGROUPS=29 +NGROUPS=30 1=100 2=2500 3=200 @@ -247,3 +254,4 @@ NGROUPS=29 27=1800 28=1000 29=2900 +30=3000 diff --git a/ve/fatturac.src b/ve/fatturac.src index 1f323dca1..e7a31c8bd 100755 --- a/ve/fatturac.src +++ b/ve/fatturac.src @@ -8,7 +8,7 @@ TYPE=Fattura di vendita // modifica CAMPICALC=TOTMER|TOTPRE|SPESE|SPESINC|SPESIMB|SPESTRA|BOLLI|IMPONIBILI|IMPOSTE|TOTDOC|SCONTOD|SCONTOT|OMAGGI|TOTPROVV CALCOLI=* -TOTPROVV = +TOTPROVV = // modifica // Indica se il documento č indirizzato ad un cliente o ad un fornitore TIPOCF=C @@ -119,13 +119,17 @@ CAUSMAG = S_OBBLIGATORIO //2900 CAUSMAGC = S_DISABILITATO //2900 DESCRMAG = S_NORMALE //2900 DESCRMAGC = S_DISABILITATO //2900 +CODCMS = S_NORMALE //3000 +DESCRCMS = S_NORMALE //3000 +FASCMS = S_NORMALE //3000 +DESCRFAS = S_NORMALE //3000 BLANK = S_DISABILITATO //4000 [DEFAULT] NDEFAULTS=0 [SHEET] -NCOLS=20 +NCOLS=22 1=FR_CODMAG 2=FR_CODDEP 3=FR_CODART @@ -146,6 +150,8 @@ NCOLS=20 18=FR_CAUS 19=FR_CODMAGC 20=FR_CODDEPC +21=FR_CODCMS +22=FR_FASCMS [RIGHE] NTIPIRIGA=* @@ -182,10 +188,11 @@ NHANDLER=0 2400 = S_NORMALE 2500 = S_NORMALE 2900 = S_NORMALE +3000 = S_NORMALE 4000 = S_NORMALE [ORDINEGRUPPI] -NGROUPS=24 +NGROUPS=25 1=100 2=2500 3=200 @@ -210,4 +217,5 @@ NGROUPS=24 22=1900 23=1000 24=2900 +25=3000 diff --git a/ve/fatture.trr b/ve/fatture.trr new file mode 100755 index 000000000..43e33ac72 --- /dev/null +++ b/ve/fatture.trr @@ -0,0 +1,105 @@ +1003 +101 +I5CDEP|1|3|0|CODICE DEPOSITO +I5CCLI|3|6|0|CODICE CLIENTE +I5FLCO|1|1|0|FLAG CLIENTE CORRISPETTIVO +I5CLCO|3|6|0|CODICE CLIENTE CORRISPETTIVO +I5CCFA|3|6|0|CODICE CLIENTE PER FATTURAZIONE +I5TDO1|1|1|0|TIPO DOCUMENTO APPL.ESTERNO +I5CNMV|1|2|0|COD.NUM.DOC. APPL.ESTERNO +I5UDOC|3|8|0|DATA DOCUMENTO APPL.ESTERNO (AAAAMMGG) +I5NDOC|3|7|0|NUMERO DOCUMENTO APPL.ESTERNO +I5UROC|3|8|0|DATA RIF.ORD.CLIENTE (AAAAMMGG) +I5DROC|1|30|0|RIF. ORDINE CLIENTE +I5CCIC|1|2|0|CATEGORIA DI IMPUTAZIONE CLIENTE +I5CPAG|2|3|0|CODICE PAGAMENTO +I5CABI|1|10|0|CODICE BANCA A.B.I. +I5CLIG|1|2|0|CODICE LINGUA +I5CPOR|1|1|0|CODICE PORTO +I5CMEZ|1|1|0|CODICE A MEZZO +I5CRES|2|3|0|CODICE RESA +I5CVE1|1|3|0|CODICE VETTORE 1 +I5CVE2|1|3|0|CODICE VETTORE 2 +I5CVE3|1|3|0|CODICE VETTORE 3 +I5CIMB|1|1|0|CODICE IMBALLO +I5CZON|1|3|0|CODICE ZONA +I5CNOV|1|2|0|CODICE NOTE VARIE PER DOC. +I5CIVA|2|2|0|CODICE IVA +I5CCVE|1|2|0|CODICE CAUSALE DI VENDITA +I5CCMO|1|2|0|CODICE CAUSALE DI MAGAZZINO +I5CVAL|1|3|0|CODICE VALUTA +I5ICAM|4|12|7|VALORE CAMBIO +I5CAG1|1|2|0|CODICE AGENTE 1 +I5PPR1|4|6|2|PERCENTUALE PROVVIGIONE +I5CAG2|1|2|0|CODICE AGENTE 2 +I5PPR2|4|6|2|CODICE AGENTE 2 +I5TLIS|1|3|0|TIPO LISTINO +I5PSCI|4|6|2|SCONTO INCONDIZIONATO +I5PSCA|4|6|2|SCONTO CASSA +I5UDEP|3|8|0|DATA DECORRENZA PAGAMENTO +I5CASP|1|1|0|CODICE ASPETTO ESTERIORE DEI BENI +I5DASP|1|12|0|DESCR.ASPETTO ESTERIORE DEI BENI +I5NCLP|2|5|0|NUMERO COLLI +I5QPNE|4|12|3|PESO NETTO DELLA MERCE +I5QPLO|4|12|3|PESO LORDO DELLA MERCE +I5CDOP|1|3|0|COD.DEP.RICEVENTE X TRASFERIMENTO +I5NCPF|2|1|0|NUMERO COPIE FATTURE +I5FNOF|1|1|0|FLAG PER NO-FATTURA +I5TCF1|1|1|0|TIPO CLI/FOR DEPOSITO DI PARTENZA +I5CCF1|3|6|0|CODICE CLI/FOR DEPOSITO DI PARTENZA +I5TCF2|1|1|0|TIPO CLI/FOR DEPOSITO DI ARRIVO +I5CCF2|3|6|0|CODICE CLI/FOR DEPOSITO DI ARRIVO +I5IGPA|4|14|2|IMPORTO GIA' PAGATO +I5UPAG|3|8|0|DATA DI PAGAMENTO +I5IABB|4|14|2|IMPORTO ABBUONO +I5CCOM|1|2|0|CODICE COMMESSO +I5ITRC|4|14|2|SPESE TRASP. CONFINE +I5MESC|3|2|0|MESE COMPETENZA PER RETTIFICHE +I5ANNC|3|4|0|ANNO COMPETENZA PER RETTIFICHE +I5CNAT|1|1|0|CODICE NATURA TRANSAZIONE +I5FCEE|1|1|0|FLAG REGISTRAZIONE INTRASTAT +I5TCEE|1|1|0|TIPO MOVIMENTO +I5PSAS|4|6|2|%SPESE ASSICURATIVE +I5PSTR|4|6|2|%SPESE TRASPORTO +I5PSAM|4|6|2|%SPESE AMMINISTRATIVE +I5PSIM|4|6|2|%SPESE IMBALLO +I5IASS|4|14|2|IMPORTO SPESE ASSICURATIVE +I5ITRA|4|14|2|IMPORTO SPESE TRASPORTO +I5IAMM|4|14|2|IMPORTO SPESE AMMINISTRATIVE +I5IIMO|4|14|2|IMPORTO SPESE IMBALLO +I5FMST|1|1|0|TIPO STAMPA PREZZI +I5FTOM|1|1|O|FLAG TIPO BOLLA PER OMAGGIO +I5FVDI|1|1|O|FLAG VENDITA DIRETTA/INDIRETTA +I5FRBO|1|1|O|FLAG RAGGRUPPAMENTO BOLLE +I5FABF|1|1|O|FLAG ADDEBITO BOLLI IN FATTURA +I5FASI|1|1|O|FLAG ADDEBITO SPESE INCASSO +I5FPIB|1|1|O|FLAG PREZZO IN LIRE BLOCCATO +I5FCOL|1|1|O|FLAG COSTO IMBALL. PER COLLO +I5FGST|1|1|O|FLAG STATO DI STAMPA +I5FBVA|1|1|0|FLAG BLOCCO VARIANTE RAME +I5LVRA|4|8|2|VARIANTE RAME +I5CSPF|1|2|0|COD.INDIR.SPEDIZ. FATTURA +I5CSPZ|1|2|0|CODICE INDIRIZZO DI SPEDIZIONE +I5DRSM|1|30|0|RAGIONE SOCIALE SPEDIZIONE +I5DISP|1|30|0|INDIRIZZO SPEDIZIONE MAG. +I5CCAP|1|5|0|C.A.P. SPEDIZIONE +I5DLOP|1|25|0|LOCALITA' DI SPEDIZIONE +I5CPRP|1|2|0|PROVINCIA DI SPEDIZIONE +I5CNA1|1|3|0|ZONA DI SPEDIZIONE +I5UTRA|3|8|0|DATA TRASPORTO +I5CCDC|1|10|0|CODICE CENTRO DI COSTO +I5CCME|1|2|0|CODICE CATEGORIA MERCEOLOGICA +I5CCM2|1|6|0|CODICE CATEGORIA MERCEOLOGICA 2 CLIEN. +I5TCAI|1|1|0|TIPO CALCOLO IVA +I5HOTR|2|2|0|ORA DEL TRASPORTO +I5HMTR|2|2|0|MINUTI DEL TRASPORTO +I5DPRO|1|20|0|RIFERIMENTI +I5NTOA|2|5|0|CONTATORE TESTATE ORDINI +I5FDIA|1|1|0|DIAGNOSTICA +I5FELA|1|1|0|ELABORATO +I5CNOS|1|2|0|COD.NUM. DOCUMENTO SPED. +I5NDOS|3|7|0|NUMERO DOCUMENTO SPED. +I5UDOS|3|8|0|DATA DOCUMENTO SPED. +I5AREA|1|100|0|AREA PERSONALIZZABILE +1 +I5TDO1+I5CNMV+I5NDOC| diff --git a/ve/movc.trr b/ve/movc.trr new file mode 100755 index 000000000..44a2d22bd --- /dev/null +++ b/ve/movc.trr @@ -0,0 +1,104 @@ +1005 +100 +CMFGES|1|1|0|FLAG DI GESTIONE +CMTMCO|1|1|0|VALORE Z +CMUREG|3|8|0|DATA REGISTRAZIONE CONTABILE +CMCREG|2|2|0|TIPO NUMERAZ. MOV. CONT +CMNPRO|3|5|0|NUMERO REGISTRAZIONE CONTABILE +CMNPPR|2|3|0|PROGRESSIVO REGISTRAZ. +CMUDOC|3|8|0|DATA DOCUMENTO +CMNDCM|1|6|0|NUMERO DOCUMENTO +CMFADA|1|1|0|FLAG MOV. DARE/AVERE +CMITOD|4|14|2|IMPORTO IN VALUTA DI BILANCIO +CMUAMR|3|6|0|UGUALE DATADOC X PAREGGIO CON FATTURA ??? +CMNRIP|1|6|0|UGUALE NUMDOC FATTURA X PAREGGIO CON FATTURA ??? +CMNPPA|2|4|0|VALORE ZERO +CMNPDC|2|3|0|NUMERO PROGRESSIVO REGISTRAZIONE +CMFSAC|1|1|0|VALORE BLANK +CMNPDE|2|2|0|PROGRESSIVO PER RIGHE COMMENTO +CMXRNI|3|6|0|RRN PROPRIO DEL RECORD +CMTCAU|1|1|0|TIPO CAUSALE MOVIMENTO +CMTEFF|1|1|0|TIPO DEL PAGAMENTO +CMUSCA|3|8|0|DATA SCADENZA +CMCIVA|2|2|0|VALORE ZERO +CMCNOR|1|2|0|VALORE BLANK +CMPALI|4|6|2|VALORE ZERO +CMCVAL|1|3|0|CODICE VALUTA ESTERA +CMICAM|4|12|7|VALUTA/EURO ???? +CMITOV|4|14|2|IMPORTO IN VALUTA +CMIIDE|4|14|2|VALORE ZERO +CMFIL5|3|9|0|VALORE ZERO +CMFGPA|1|1|0|SE =* LA GESTIONE DEL CONTO DEVE ESSERE PER PARTITA ???? +CMDMO1|1|25|0|DESCRIZIONE1 +CMDMO2|1|25|0|DESCRIZIONE2 +CMXSUC|3|7|0|VALORE ZERO +CMFGPV|1|1|0|VALORE BLANK +CMFRIV|1|1|0|VALORE BLANK +CMCGIO|1|1|0|VALORE BLANK +CMFREI|1|1|0|VALORE BLANK +CMFNOC|1|1|0|VALORE BLANK +CMFMOS|1|1|0|VALORE BLANK +CMFPAS|1|1|0|VALORE BLANK +CMCCDC|1|1|0|VALORE BLANK +CMCVOS|1|1|0|VALORE BLANK +CMCMAP|2|4|0|MASTRO CONTABILE DI APPARTENENZA DEL CONTO +CMUDO1|3|8|0|DATA DOCUMENTO DELLA FATTURA +CMNDO1|1|6|0|NUMERO DOCUMENTO DELLA FATTURA +CMFSGI|1|1|0|VALORE BLANK +CMFIST|1|1|0|VALORE BLANK +CMFPAP|1|1|0|VALORE BLANK +CMFSAB|1|1|0|VALORE BLANK +CMFPRS|1|1|0|VALORE BLANK +CMFMAU|1|1|0|VALORE BLANK +CMCFIL|1|3|0|VALORE BLANK +CMFIL2|1|2|0|VALORE "1F" +CMCPRG|1|2|0|VALORE "Z2" +CMFEFC|1|1|0|VALORE BLANK +CMUTAV|3|8|0|DATA TASSO PER CONTI CON GESTIONE ESTRATTI CONTO +CMNPES|2|2|0|VALORE ZERO +CMNRAT|2|2|0|VALORE ZERO +CMCPAG|2|3|0|CODICE DEL PAGAMENTO +CMCCCO|1|2|0|CODICE CAUSALE DI CONTABILITA' +CMNGIB|3|7|0|VALORE ZERO +CMUREB|3|8|0|DATA DI REGISTRAZIONE +CMFISO|1|1|0|VALORE BLANK +CMNSAC|3|7|0|VALORE ZERO +CMFESR|1|1|0|VALORE BLANK +CMNTID|3|11|0|VALORE ZERO +CMFPRI|1|1|0|VALORE BLANK +CMCCHI|3|7|0|VALORE ZERO +CMCDSP|1|10|0|VALORE BLANK +CMFCAN|1|1|0|VALORE BLANK +CMFQAS|1|1|0|VALORE BLANK +CMCLIN|1|2|0|CODICE LINEA AGENTA +CMCAGE|1|2|0|CODICE AGENTA +CMFCEE|1|1|0|VALORE BLANK +CMAPER|1|30|0|AREA PERSONALIZZAZIONI +CMFFOF|1|1|0|VALORE BLANK +CMPALE|1|1|0|VALORE BLANK +CMULTE|1|1|0|VALORE BLANK +CMNWTE|1|1|0|VALORE BLANK +CMUSOL|3|8|0|VALORE ZERO +CMPRSO|3|7|0|VALORE ZERO +CMCUPR|1|10|0|PROFILO UTENTE +CMCGIR|1|10|0|VALORE BLANK +CMCABI|1|10|0|VALORE BLANK +CMCFDS|1|1|0|VALORE BLANK +CMCFAB|1|1|0|VALORE BLANK +CMCCOF|1|12|0|VALORE BLANK +CMCCIN|1|1|0|VALORE BLANK +CMCNAS|1|12|0|VALORE BLANK +CMCDTD|3|8|0|VALORE ZERO +CMCNMD|3|5|0|VALORE ZERO +CMNPAR|2|3|0|VALORE ZERO +CMCPIB|1|10|0|VALORE BLANK +CMUCLQ|3|8|0|VALORE ZERO +CMUCOM|3|8|0|VALORE ZERO +CMCVAX|1|3|0|VALORE BLANK +CMICAX|4|12|7|VALORE ZERO +CMITOX|4|16|2|VALORE ZERO +CMIIND|4|14|2|VALORE ZERO +CMIIDV|4|14|2|VALORE ZERO +CMIINV|4|14|2|VALORE ZERO +1 +CMNPRO| diff --git a/ve/ordinec.src b/ve/ordinec.src index ba8f2af53..e395c1cd5 100755 --- a/ve/ordinec.src +++ b/ve/ordinec.src @@ -136,6 +136,10 @@ CAUSMAGC = S_DISABILITATO //2900 DESCRMAG = S_NORMALE //2900 DESCRMAGC = S_DISABILITATO //2900 DATACONS = S_NORMALE //2000 +CODCMS = S_NORMALE //3000 +DESCRCMS = S_NORMALE //3000 +FASCMS = S_NORMALE //3000 +DESCRFAS = S_NORMALE //3000 BLANK = S_DISABILITATO //4000 [DEFAULT] @@ -143,7 +147,7 @@ NDEFAULTS=0 // 1=F_CAUSTRASP|VEN [SHEET] -NCOLS=24 +NCOLS=26 1=FR_CODMAG 2=FR_CODDEP 3=FR_CODART @@ -168,6 +172,8 @@ NCOLS=24 22=FR_CAUS 23=FR_CODMAGC 24=FR_CODDEPC +25=FR_CODCMS +26=FR_FASCMS [RIGHE] NTIPIRIGA=* @@ -208,10 +214,11 @@ NHANDLER=0 2400 = S_NORMALE 2500 = S_NORMALE 2900 = S_NORMALE +3000 = S_NORMALE 4000 = S_NORMALE [ORDINEGRUPPI] -NGROUPS=26 +NGROUPS=27 1=100 2=2500 3=200 @@ -238,5 +245,5 @@ NGROUPS=26 24=1000 25=2900 26=2000 - +27=3000 diff --git a/ve/ordinef.src b/ve/ordinef.src index 3d4eb57d8..8ebedbefb 100755 --- a/ve/ordinef.src +++ b/ve/ordinef.src @@ -141,10 +141,14 @@ CAUSMAG = S_NORMALE //2900 DESCRMAG = S_DISABILITATO //2900 CAUSMAGC = S_DISABILITATO //2900 DESCRMAGC = S_DISABILITATO //2900 +CODCMS = S_NORMALE //3000 +DESCRCMS = S_NORMALE //3000 +FASCMS = S_NORMALE //3000 +DESCRFAS = S_NORMALE //3000 BLANK = S_DISABILITATO //4000 [SHEET] -NCOLS=23 +NCOLS=25 1=FR_CODMAG 2=FR_CODDEP 3=FR_CODART @@ -168,6 +172,8 @@ NCOLS=23 21=FR_CAUS 22=FR_CODMAGC 23=FR_CODDEPC +24=FR_CODCMS +25=FR_FASCMS [RIGHE] NTIPIRIGA=* @@ -216,7 +222,7 @@ NHANDLER=0 3400 = S_NORMALE [ORDINEGRUPPI] -NGROUPS=33 +NGROUPS=34 1=100 2=200 3=300 @@ -250,4 +256,3 @@ NGROUPS=33 31=1600 32=2000 33=2900 - diff --git a/ve/rbolle.trr b/ve/rbolle.trr new file mode 100755 index 000000000..ccb990b47 --- /dev/null +++ b/ve/rbolle.trr @@ -0,0 +1,71 @@ +1002 +67 +I6CDEP|1|3|0|CODICE DEPOSITO +I6CCLI|3|6|0|CODICE CLIENTE +I6TDO1|1|1|0|TIPO DOCUMENTO +I6CNMV|1|2|0|COD.NUM.DOC. APPL. ESTERNO +I6NDOC|3|7|0|NUM. DOC. APPL. ESTERNO +I6NRIG|2|3|0|NUMERO DELLA RIGA +I6TRIG|1|1|0|TIPO RIGA (DEVE ESSERE 1) +I6CART|1|15|0|CODICE ARTICOLO +I6CLIN|1|2|0|CODICE LINEA +I6CFAS|1|1|0|CODICE FASCIA +I6DCO1|1|35|0|PRIMA DESCRIZIONE +I6DCO2|1|35|0|SECONDA DESCRIZIONE +I6CUMI|1|2|0|CODICE UNITA' MISURA +I6CIVA|2|2|0|CODICE IVA +I6TLIS|1|3|0|TIPO LISTINO +I6CVEN|1|10|0|CONTO VENDITE +I6CCIP|1|2|0|CATEGORIA DI IMPUTAZIONE PRODOTTI +I6NCOR|1|10|0|NUMERO DI RIFERIMENTO COMMESSA +I6NLOT|1|10|0|NUMERO DI LOTTO +I6QARM|4|14|3|QUANTITA' ARTICOLO MOVIMENTATO +I6QOMA|4|12|3|QUANTITA' OMAGGIO +I6QMAN|4|14|3|QUANTITA' DEL MAGAZZINO DEL MOVIMENTO +I6FCOF|1|1|0|FLAG PER CONFEZIONE +I6QCON|4|10|3|QUANTITA' PER CONFEZIONE +I6QMVE|4|14|3|QUANTITA' MANCATA VENDITA +I6QPEU|4|12|3|PESO UNITARIO ARTICOLO +I6LUNI|4|14|3|PREZZO DI VENDITA +I6LVEI|4|14|3|PREZZO DI VENDITA IVATO +I6TCOS|1|1|0|TIPO COSTO RIFERIMENTO +I6KULT|4|14|3|COSTO DI RIFERIMENTO +I6PSR1|4|6|2|%SCONTO1 +I6PSR2|4|6|2|%SCONTO2 +I6PSR3|4|6|2|%SCONTO3 +I6PSR4|4|6|2|%SCONTO4 +I6PPR1|4|6|2|%PROVVIGIONE1 +I6PPR2|4|6|2|%PROVVIGIONE2 +I6FPRN|1|1|0|FLAG PREZZO NETTO +I6FPRE|1|1|0|FLAG PREZZO DI RIF. A QTA DI MAGAZZINO +I6FPRC|1|1|0|FLAG PREZZO IN CAMPAGNA +I6FVES|1|1|0|FLAG VENDITA SPECIALE +I6FSPS|1|1|0|FLAG APPL. SPESE TESTATA +I6FSCO|1|1|0|FLAG APPL. SCONTI TESTATA +I6FMAG|1|1|0|FLAG GEST.MAG. PER RIGA LIB. +I6FCOS|1|1|0|MOVIM. IN CONTO O A SALDO DELLA RIGA +I6FBVA|1|1|0|FLAG BLOCCO VARIANTE RAME +I6LVRA|4|8|2|VARIANTE RAME +I6CNOC|2|2|0|COD.NUMERAZ. ORDINI CLIENTI +I6NORC|3|7|0|NUMERO ORDINE CLIENTE +I6NRAC|2|3|0|NUMERO RIGA ASSOLUTA SU ORDINE CLIENTE +I6CNOM|3|8|0|CODICE NOMENCLATURA COMBINATA +I6NCVS|4|22|9|FTTORE CONVERSIONE UNITA' DI MISURA +I6CVOC|1|8|0|VOCE DI RICAVO +I6CVO1|1|8|0|VOCE DI SPESA +I6CCDC|1|10|0|CODICE CENTRO DI COSTO +I6CVAA|1|12|0|CODICE VARIANTE ARTICOLO +I6CTMO|1|2|0|CAUSALE TIPO MOVIMENTO RIGA +I6FTOM|1|1|0|FLAG TIPO OMAGGIO +I6FNSB|1|1|0|FLAG NO STAMPA SU BOLLA +I6FNSF|1|1|0|FLAG NO STAMPA SU FATTURA +I6AREA|1|100|0|AREA PERSONALIZZABILE +I6DPRO|1|20|0|RIFERIMENTI +I6FDIA|1|1|0|DIAGNOSTICA OK +I6FELA|1|1|0|ELABORATO +I6CNOS|1|2|0|COD.NUM. DOC. SPEDIZIONE +I6CNO1|1|2|0|COD.NUM. DOC. SPEDIZIONE USO ESTERNO +I5NDOS|3|7|0|NUMERO DOC. SPED. +I5UDOS|3|8|0|DATA DOC. SPED. +1 +I6TDO1+I6CNMV+I6NDOC+I6NRIG| diff --git a/ve/rfatture.trr b/ve/rfatture.trr new file mode 100755 index 000000000..15461e515 --- /dev/null +++ b/ve/rfatture.trr @@ -0,0 +1,71 @@ +1004 +67 +I6CDEP|1|3|0|CODICE DEPOSITO +I6CCLI|3|6|0|CODICE CLIENTE +I6TDO1|1|1|0|TIPO DOCUMENTO +I6CNMV|1|2|0|COD.NUM.DOC. APPL. ESTERNO +I6NDOC|3|7|0|NUM. DOC. APPL. ESTERNO +I6NRIG|2|3|0|NUMERO DELLA RIGA +I6TRIG|1|1|0|TIPO RIGA (DEVE ESSERE 1) +I6CART|1|15|0|CODICE ARTICOLO +I6CLIN|1|2|0|CODICE LINEA +I6CFAS|1|1|0|CODICE FASCIA +I6DCO1|1|35|0|PRIMA DESCRIZIONE +I6DCO2|1|35|0|SECONDA DESCRIZIONE +I6CUMI|1|2|0|CODICE UNITA' MISURA +I6CIVA|2|2|0|CODICE IVA +I6TLIS|1|3|0|TIPO LISTINO +I6CVEN|1|10|0|CONTO VENDITE +I6CCIP|1|2|0|CATEGORIA DI IMPUTAZIONE PRODOTTI +I6NCOR|1|10|0|NUMERO DI RIFERIMENTO COMMESSA +I6NLOT|1|10|0|NUMERO DI LOTTO +I6QARM|4|14|3|QUANTITA' ARTICOLO MOVIMENTATO +I6QOMA|4|12|3|QUANTITA' OMAGGIO +I6QMAN|4|14|3|QUANTITA' DEL MAGAZZINO DEL MOVIMENTO +I6FCOF|1|1|0|FLAG PER CONFEZIONE +I6QCON|4|10|3|QUANTITA' PER CONFEZIONE +I6QMVE|4|14|3|QUANTITA' MANCATA VENDITA +I6QPEU|4|12|3|PESO UNITARIO ARTICOLO +I6LUNI|4|14|3|PREZZO DI VENDITA +I6LVEI|4|14|3|PREZZO DI VENDITA IVATO +I6TCOS|1|1|0|TIPO COSTO RIFERIMENTO +I6KULT|4|14|3|COSTO DI RIFERIMENTO +I6PSR1|4|6|2|%SCONTO1 +I6PSR2|4|6|2|%SCONTO2 +I6PSR3|4|6|2|%SCONTO3 +I6PSR4|4|6|2|%SCONTO4 +I6PPR1|4|6|2|%PROVVIGIONE1 +I6PPR2|4|6|2|%PROVVIGIONE2 +I6FPRN|1|1|0|FLAG PREZZO NETTO +I6FPRE|1|1|0|FLAG PREZZO DI RIF. A QTA DI MAGAZZINO +I6FPRC|1|1|0|FLAG PREZZO IN CAMPAGNA +I6FVES|1|1|0|FLAG VENDITA SPECIALE +I6FSPS|1|1|0|FLAG APPL. SPESE TESTATA +I6FSCO|1|1|0|FLAG APPL. SCONTI TESTATA +I6FMAG|1|1|0|FLAG GEST.MAG. PER RIGA LIB. +I6FCOS|1|1|0|MOVIM. IN CONTO O A SALDO DELLA RIGA +I6FBVA|1|1|0|FLAG BLOCCO VARIANTE RAME +I6LVRA|4|8|2|VARIANTE RAME +I6CNOC|2|2|0|COD.NUMERAZ. ORDINI CLIENTI +I6NORC|3|7|0|NUMERO ORDINE CLIENTE +I6NRAC|2|3|0|NUMERO RIGA ASSOLUTA SU ORDINE CLIENTE +I6CNOM|3|8|0|CODICE NOMENCLATURA COMBINATA +I6NCVS|4|22|9|FTTORE CONVERSIONE UNITA' DI MISURA +I6CVOC|1|8|0|VOCE DI RICAVO +I6CVO1|1|8|0|VOCE DI SPESA +I6CCDC|1|10|0|CODICE CENTRO DI COSTO +I6CVAA|1|12|0|CODICE VARIANTE ARTICOLO +I6CTMO|1|2|0|CAUSALE TIPO MOVIMENTO RIGA +I6FTOM|1|1|0|FLAG TIPO OMAGGIO +I6FNSB|1|1|0|FLAG NO STAMPA SU BOLLA +I6FNSF|1|1|0|FLAG NO STAMPA SU FATTURA +I6AREA|1|100|0|AREA PERSONALIZZABILE +I6DPRO|1|20|0|RIFERIMENTI +I6FDIA|1|1|0|DIAGNOSTICA OK +I6FELA|1|1|0|ELABORATO +I6CNOS|1|2|0|COD.NUM. DOC. SPEDIZIONE +I6CNO1|1|2|0|COD.NUM. DOC. SPEDIZIONE USO ESTERNO +I5NDOS|3|7|0|NUMERO DOC. SPED. +I5UDOS|3|8|0|DATA DOC. SPED. +1 +I6TDO1+I6CNMV+I6NDOC+I6NRIG| diff --git a/ve/rmovc.trr b/ve/rmovc.trr new file mode 100755 index 000000000..425c0f749 --- /dev/null +++ b/ve/rmovc.trr @@ -0,0 +1,104 @@ +1006 +100 +CMFGES|1|1|0|FLAG DI GESTIONE +CMTMCO|1|1|0|VALORE Z +CMUREG|3|8|0|DATA REGISTRAZIONE CONTABILE +CMCREG|2|2|0|TIPO NUMERAZ. MOV. CONT +CMNPRO|3|5|0|NUMERO REGISTRAZIONE CONTABILE +CMNPPR|2|3|0|PROGRESSIVO REGISTRAZ. +CMUDOC|3|8|0|DATA DOCUMENTO +CMNDCM|1|6|0|NUMERO DOCUMENTO +CMFADA|1|1|0|FLAG MOV. DARE/AVERE +CMITOD|4|14|2|IMPORTO IN VALUTA DI BILANCIO +CMUAMR|3|6|0|UGUALE DATADOC X PAREGGIO CON FATTURA ??? +CMNRIP|1|6|0|UGUALE NUMDOC FATTURA X PAREGGIO CON FATTURA ??? +CMNPPA|2|4|0|VALORE ZERO +CMNPDC|2|3|0|NUMERO PROGRESSIVO REGISTRAZIONE +CMFSAC|1|1|0|VALORE BLANK +CMNPDE|2|2|0|PROGRESSIVO PER RIGHE COMMENTO +CMXRNI|3|6|0|RRN PROPRIO DEL RECORD +CMTCAU|1|1|0|TIPO CAUSALE MOVIMENTO +CMTEFF|1|1|0|TIPO DEL PAGAMENTO +CMUSCA|3|8|0|DATA SCADENZA +CMCIVA|2|2|0|VALORE ZERO +CMCNOR|1|2|0|VALORE BLANK +CMPALI|4|6|2|VALORE ZERO +CMCVAL|1|3|0|CODICE VALUTA ESTERA +CMICAM|4|12|7|VALUTA/EURO ???? +CMITOV|4|14|2|IMPORTO IN VALUTA +CMIIDE|4|14|2|VALORE ZERO +CMFIL5|3|9|0|VALORE ZERO +CMFGPA|1|1|0|SE =* LA GESTIONE DEL CONTO DEVE ESSERE PER PARTITA ???? +CMDMO1|1|25|0|DESCRIZIONE1 +CMDMO2|1|25|0|DESCRIZIONE2 +CMXSUC|3|7|0|VALORE ZERO +CMFGPV|1|1|0|VALORE BLANK +CMFRIV|1|1|0|VALORE BLANK +CMCGIO|1|1|0|VALORE BLANK +CMFREI|1|1|0|VALORE BLANK +CMFNOC|1|1|0|VALORE BLANK +CMFMOS|1|1|0|VALORE BLANK +CMFPAS|1|1|0|VALORE BLANK +CMCCDC|1|1|0|VALORE BLANK +CMCVOS|1|1|0|VALORE BLANK +CMCMAP|2|4|0|MASTRO CONTABILE DI APPARTENENZA DEL CONTO +CMUDO1|3|8|0|DATA DOCUMENTO DELLA FATTURA +CMNDO1|1|6|0|NUMERO DOCUMENTO DELLA FATTURA +CMFSGI|1|1|0|VALORE BLANK +CMFIST|1|1|0|VALORE BLANK +CMFPAP|1|1|0|VALORE BLANK +CMFSAB|1|1|0|VALORE BLANK +CMFPRS|1|1|0|VALORE BLANK +CMFMAU|1|1|0|VALORE BLANK +CMCFIL|1|3|0|VALORE BLANK +CMFIL2|1|2|0|VALORE "1F" +CMCPRG|1|2|0|VALORE "Z2" +CMFEFC|1|1|0|VALORE BLANK +CMUTAV|3|8|0|DATA TASSO PER CONTI CON GESTIONE ESTRATTI CONTO +CMNPES|2|2|0|VALORE ZERO +CMNRAT|2|2|0|VALORE ZERO +CMCPAG|2|3|0|CODICE DEL PAGAMENTO +CMCCCO|1|2|0|CODICE CAUSALE DI CONTABILITA' +CMNGIB|3|7|0|VALORE ZERO +CMUREB|3|8|0|DATA DI REGISTRAZIONE +CMFISO|1|1|0|VALORE BLANK +CMNSAC|3|7|0|VALORE ZERO +CMFESR|1|1|0|VALORE BLANK +CMNTID|3|11|0|VALORE ZERO +CMFPRI|1|1|0|VALORE BLANK +CMCCHI|3|7|0|VALORE ZERO +CMCDSP|1|10|0|VALORE BLANK +CMFCAN|1|1|0|VALORE BLANK +CMFQAS|1|1|0|VALORE BLANK +CMCLIN|1|2|0|CODICE LINEA AGENTA +CMCAGE|1|2|0|CODICE AGENTA +CMFCEE|1|1|0|VALORE BLANK +CMAPER|1|30|0|AREA PERSONALIZZAZIONI +CMFFOF|1|1|0|VALORE BLANK +CMPALE|1|1|0|VALORE BLANK +CMULTE|1|1|0|VALORE BLANK +CMNWTE|1|1|0|VALORE BLANK +CMUSOL|3|8|0|VALORE ZERO +CMPRSO|3|7|0|VALORE ZERO +CMCUPR|1|10|0|PROFILO UTENTE +CMCGIR|1|10|0|VALORE BLANK +CMCABI|1|10|0|VALORE BLANK +CMCFDS|1|1|0|VALORE BLANK +CMCFAB|1|1|0|VALORE BLANK +CMCCOF|1|12|0|VALORE BLANK +CMCCIN|1|1|0|VALORE BLANK +CMCNAS|1|12|0|VALORE BLANK +CMCDTD|3|8|0|VALORE ZERO +CMCNMD|3|5|0|VALORE ZERO +CMNPAR|2|3|0|VALORE ZERO +CMCPIB|1|10|0|VALORE BLANK +CMUCLQ|3|8|0|VALORE ZERO +CMUCOM|3|8|0|VALORE ZERO +CMCVAX|1|3|0|VALORE BLANK +CMICAX|4|12|7|VALORE ZERO +CMITOX|4|16|2|VALORE ZERO +CMIIND|4|14|2|VALORE ZERO +CMIIDV|4|14|2|VALORE ZERO +CMIINV|4|14|2|VALORE ZERO +1 +CMNPRO| diff --git a/ve/sconti.cpp b/ve/sconti.cpp index ac79127b3..0a4f714a6 100755 --- a/ve/sconti.cpp +++ b/ve/sconti.cpp @@ -27,6 +27,10 @@ #include "veini.h" #endif +#ifndef __VELIB_H +#include "velib.h" +#endif + #ifndef __AGE_H #include "../pr/agenti.h" #endif @@ -48,12 +52,12 @@ real TCond_vendita::normalize_valuta(const real & val, const char * val_rif) { if (val == ZERO) return ZERO; - const TString16 firm_val(TCurrency::get_firm_val()); +// const TString16 firm_val(TCurrency::get_firm_val()); TString16 valuta_rif(val_rif); - if (firm_val == valuta_rif) + if (is_firm_value(valuta_rif)) valuta_rif.cut(0); TString16 valuta(_testa->get(F_CODVAL)); - if (firm_val == valuta) + if (is_firm_value(valuta)) valuta.cut(0); if (valuta == valuta_rif) return val; @@ -396,7 +400,12 @@ void TCond_vendita::ricerca(bool load_um_only, bool load_scagl_only) else { _load_mask |= load_um_only; - set_prezzo(_umart.get_real("PREZZO")); + const TString16 field_prezzo(testa().doc().tipo().field_prezzo()); + + if (field_prezzo.empty()) + set_prezzo(_umart.get_real("PREZZO")); + else + set_prezzo(_anamag.get_real(field_prezzo)); } diff --git a/ve/ve0100.cpp b/ve/ve0100.cpp index cd53155f0..2c011f9aa 100755 --- a/ve/ve0100.cpp +++ b/ve/ve0100.cpp @@ -257,7 +257,7 @@ void TMotore_application::on_firm_change() bool TMotore_application::user_create( ) { open_files(LF_DOC, LF_RIGHEDOC, LF_CONDV, LF_RCONDV, LF_ANAMAG, LF_SCONTI, LF_UMART, - LF_TAB, LF_TABCOM, LF_CLIFO, LF_CFVEN, LF_INDSP, LF_OCCAS, LF_PCON, + LF_TAB, LF_TABCOM, LF_CLIFO, LF_CFVEN, LF_INDSP, LF_OCCAS, LF_PCON, LF_DESLIN, LF_CODCORR, LF_MOVMAG, LF_RMOVMAG, LF_MAG, LF_SVRIEP, LF_AGENTI, LF_PERCPROV, LF_ATTIV, LF_CAUSALI, 0); _config_ditta = new TConfig(CONFIG_DITTA); @@ -368,12 +368,14 @@ void TMotore_application::ini2mask(TConfig& ini, TMask& msk, bool query) TTipo_riga_documento tr; // Scorre tutti i paragrafi delle righe documento - TMaskmode oldmode= (TMaskmode)msk.mode(); + const TMaskmode oldmode= (TMaskmode)msk.mode(); msk.set_mode(MODE_MOD); - doc().destroy_rows(); // Prima cancello tutto, poi aggiungo le righe for (int i = 1; ini.set_paragraph(format("%d,%d", LF_RIGHEDOC, i)); i++) - { + { + if (i == 1) // Se trovo almeno una riga allora cancello tutto, poi aggiungo le righe + doc().destroy_rows(); + // Considera solo i tipi riga validi const TString16 tipo = ini.get(RDOC_TIPORIGA); if (tr.read(tipo) == NOERR) diff --git a/ve/ve0100b.cpp b/ve/ve0100b.cpp index d533b42ee..56821800e 100755 --- a/ve/ve0100b.cpp +++ b/ve/ve0100b.cpp @@ -1,19 +1,44 @@ #include +#include +#include #include #include #include "velib.h" #include "ve0100b.h" +#include + int numerazione_definitiva(TDocumento& doc) { int err = NOERR; - if (doc.get_char("PROVV") == 'D') // Se e' una numerazione definitiva + if (doc.get_char(DOC_PROVV) == 'D') // Se e' una numerazione definitiva { if (doc.stampabile()) // Controlla se non e' gia' nello stato si stampato in definitiva { doc.stato(doc.tipo().stato_finale_stampa()); // Se e' gia' in definitiva aggiorna solo lo stato - err = doc.rewrite(); + err = doc.rewrite(); + + // Invia la transazione di cambio stato se necessario + if (::can_dispatch_transaction(doc)) + { + TFilename tmpname; tmpname.temp(); + { // Parentesi strategiche + TConfig ini(tmpname, "Transaction"); + ini.set("Action", "MODIFY"); + ini.set("Firm", prefix().get_codditta()); + ini.set("Mode", "A"); + TString8 paradoc; paradoc.format("%d", LF_DOC); + ini.set_paragraph(paradoc); + ini.set(DOC_PROVV, doc.get(DOC_PROVV)); + ini.set(DOC_ANNO, doc.get(DOC_ANNO)); + ini.set(DOC_CODNUM, doc.get(DOC_CODNUM)); + ini.set(DOC_NDOC, doc.get(DOC_NDOC)); + ini.set(DOC_STATO, doc.stato()); + } + ::dispatch_transaction(doc, tmpname); + ::remove(tmpname); + } } } else // Se e' una numerazione provvisoria @@ -21,12 +46,12 @@ int numerazione_definitiva(TDocumento& doc) // Scrive il nuovo documento con lo stato, numero e flag di definitiva TDocumento bak_doc; bak_doc = doc; // Setta il flag di nuovo documento - bak_doc.put("STATO",doc.tipo().stato_finale_stampa()); - bak_doc.put("PROVV","D"); - bak_doc.put("NDOC",-1L); + bak_doc.put(DOC_STATO,doc.tipo().stato_finale_stampa()); + bak_doc.put(DOC_PROVV,"D"); + bak_doc.put(DOC_NDOC,-1L); const int pr = bak_doc.physical_rows(); for (int i=1;i<=pr;i++) - bak_doc[i].put("PROVV","D"); + bak_doc[i].put(DOC_PROVV,"D"); err = bak_doc.write(); // Esegue automagicamente rinumerazione di testata e righe nel caso di reinsert if (err == NOERR) // Cancella il vecchio documento doc.remove(); diff --git a/ve/ve0100b.uml b/ve/ve0100b.uml index 7cf32bd78..c6cb0d52f 100755 --- a/ve/ve0100b.uml +++ b/ve/ve0100b.uml @@ -196,7 +196,7 @@ BEGIN DISPLAY "Descrizione@50" DESCR OUTPUT F_CODART CODART WARNING "Articolo assente" - CHECKTYPE NORMAL + CHECKTYPE SEARCH FLAGS "U" GROUP GRP_ART END diff --git a/ve/ve0200f.uml b/ve/ve0200f.uml index 9e49392a4..0d1186221 100755 --- a/ve/ve0200f.uml +++ b/ve/ve0200f.uml @@ -251,9 +251,15 @@ BEGIN COPY OUTPUT F_ESTRIGA END +STRING F_DESESENZ 70 50 +BEGIN + PROMPT 2 7 "Descrizione esenzioni " + FIELD DESESENZ +END + STRING F_SCTRIGA 4 BEGIN - PROMPT 2 7 "Tipo riga sconti testa " + PROMPT 2 8 "Tipo riga sconti testa " FLAGS "U" USE %TRI SELECT S7=="C" FIELD TRSCONTI @@ -267,7 +273,7 @@ END STRING F_SCDRIGA 50 BEGIN - PROMPT 25 8 "" + PROMPT 25 9 "" USE %TRI KEY 2 SELECT S7=="C" INPUT S0 F_SCDRIGA COPY DISPLAY F_SCTRIGA diff --git a/ve/ve0300a.src b/ve/ve0300a.src index da4df4797..d38875733 100755 --- a/ve/ve0300a.src +++ b/ve/ve0300a.src @@ -1308,7 +1308,7 @@ FIELDNAME=IMPPAGATO MSKID=F_IMPPAGATO TYPE=T_CURRENCY PROMPT="Importo pagato " -SIZE=18 +SIZE=18 SPECIAL=DRIVENBY F_CODVAL [ACCSALDO] @@ -1593,6 +1593,72 @@ TYPE=T_STRINGA PROMPT="" SIZE=50 +[CODCMS] +GROUP=3000 +X=2 +Y=1 +FIELDNAME=CODCMS +MSKID=F_CODCMS +TYPE=T_STRINGA +PROMPT="Commessa : Codice " +USE=CMS +INPUT=CODTAB F_CODCMS +DISPLAY="Codice@20" CODTAB~"Descrizione@50" S0 +OUTPUT=F_CODCMS CODTAB~F_DESCRCMS S0 +WARNING=Commessa non trovata +SIZE=20 +FLAG=UZ +HELP=Inserisci il codice della commessa +SPECIAL=CH NORMAL + +[DESCRCMS] +GROUP=3000 +X=20 +Y=2 +MSKID=F_DESCRCMS +TYPE=T_STRINGA +USE=CMS KEY 2 +INPUT=S0 F_DESCRCMS +DISPLAY="Descrizione@50" S0~"Codice@20" CODTAB +COPY=OU F_CODCMS +WARNING=Commessa non trovata +PROMPT="" +SIZE=70 +SPECIAL=CH NORMAL + +[FASCMS] +GROUP=3000 +X=2 +Y=3 +FIELDNAME=FASCMS +MSKID=F_FASCMS +TYPE=T_STRINGA +PROMPT=" Fase " +USE=FSC +INPUT=CODTAB F_FASCMS +DISPLAY="Codice@10" CODTAB~"Descrizione@50" S0 +OUTPUT=F_FASCMS CODTAB~F_DESCRFAS S0 +WARNING=Fase commessa non trovata +SIZE=10 +FLAG=UZ +HELP=Inserisci il codice della fase commessa +SPECIAL=CH NORMAL + +[DESCRFAS] +GROUP=3000 +X=20 +Y=4 +MSKID=F_DESCRFAS +TYPE=T_STRINGA +PROMPT="" +USE=FSC KEY 2 +INPUT=S0 F_DESCRFAS +DISPLAY="Descrizione@50" S0~"Codice@10" CODTAB +COPY=OU F_FASCMS +WARNING=Fase commessa non trovata +SIZE=50 +SPECIAL=CH NORMAL + [BLANK] GROUP=4000 X=100 diff --git a/ve/ve1100.cpp b/ve/ve1100.cpp index 83faa966d..050c64902 100755 --- a/ve/ve1100.cpp +++ b/ve/ve1100.cpp @@ -123,6 +123,7 @@ protected: static void doc_header_handler(TPrinter& p); static void doc_footer_handler(TPrinter& p); + void output_values(const TRectype & rec, const char * output, TForm_item & cf); public: void edit_picture(TForm_item & f, const int dec); @@ -589,6 +590,57 @@ void TDocumento_form::extended_parse_general(TScanner &scanner) } } +void TDocumento_form::output_values(const TRectype & rec, const char * output, TForm_item & cf) +{ + TToken_string out(output, '!'); + TString curr; + for (const char * str = out.get(0); str; str = out.get()) + { // scansione sugli elementi dell'output + curr = str; + int poseq = curr.find('='); // divide la stringa corrente in lvalue e rvalue + if (poseq < 0) + cf.set(rec.get(curr)); + else + { + int posrv = poseq+1; + if (poseq >= 0 && curr[posrv] == '=') + posrv++; + TString16 fld(curr.left(poseq)); // preleva il nome del campo del form alla sinistra dell'uguale + const TString dat(rec.get(curr.mid(posrv))); // preleva il nome del campo del file alla destra dell'uguale e lo legge dal record + if (fld[0] == '#') fld.ltrim(1); + + if (fld.right(1) == "@") + { // se c'č la a-commerciale č un gruppo + char sec = cf.section().section_type(); + pagetype pt = cf.section().page_type(); + int group = atoi(fld); + + if (fld.find("->") >= 0) + { // se nel gruppo c'č la freccia si riferisce ad un'altra sezione + sec = fld[0]; + pt= (fld[1] != '-') ? char2page(fld[1]) : even_page; + } + + TPrint_section &fs = section(sec, pt); + word itms = fs.fields(); + + for (word j=0; j vale 0 o 1 se indica di rendere corrente la prossima scadenza if (s.items() == 3) - { + { TString what(s.get()); TString value(_doc->scadenze_get(what)); @@ -975,7 +1027,63 @@ bool TDocumento_form::validate(TForm_item &cf, TToken_string &s) else cf.set(data.format("%d", year)); } - + if (code== "_PARENTDOC") + { + const TRectype * rdoc = &cursor()->file(LF_RIGHEDOC).curr(); + int level = s.get_int(1); + + for (; rdoc != NULL && level > 0; level--) + rdoc = ((const TRiga_documento *) rdoc)->find_original_rdoc(); + + if (rdoc != NULL && rdoc->get(RDOC_PROVV).not_empty()) + { + TString16 codnum(rdoc->get(RDOC_CODNUM)); + int anno = rdoc->get_int(RDOC_ANNO); + TString16 provv(rdoc->get(RDOC_PROVV)); + long ndoc = rdoc->get_long(RDOC_NDOC); + + if (s.get(3) != NULL) // "FULL" + { + TDocumento doc(provv[0], anno, codnum, ndoc); + output_values(doc, s.get(2), cf); + } + else + { + TToken_string key; + key.add(provv); + key.add(anno); + key.add(codnum); + key.add(ndoc); + + const TRectype& doc = cache().get(LF_DOC, key); + output_values(doc, s.get(2), cf); + } + } + } + if (code== "_PARENTROW") + { + const TRectype * rdoc = & cursor()->file(LF_RIGHEDOC).curr(); + int level = s.get_int(1); + + for (; rdoc != NULL && level > 0; level--) + rdoc = ((const TRiga_documento *) rdoc)->find_original_rdoc(); + + if (rdoc != NULL && rdoc->get(RDOC_PROVV).not_empty()) + { + if (s.get(3) != NULL) // "FULL" + { + TString16 codnum(rdoc->get(RDOC_CODNUM)); + int anno = rdoc->get_int(RDOC_ANNO); + char provv = rdoc->get_char(RDOC_PROVV); + long ndoc = rdoc->get_long(RDOC_NDOC); + TDocumento doc(provv, anno, codnum, ndoc); + output_values(doc[rdoc->get_int(RDOC_NRIGA)], s.get(2), cf); + } + else + output_values(*rdoc, s.get(2), cf); + } + } + if (code == "_LISTADOC") // Messaggio per riepilogo lista documenti { const TString16 what(s.get(1)); @@ -1070,7 +1178,10 @@ class TStampaDoc_application: public TSkeleton_application TRelation *_firmrel; // puntatore alla relazione che gestisce i dati della ditta corrente TDocumento_form *_form; // puntatore al form di stampa TMask * _selection_mask; - TArray_sheet *_clifo_sheet; // Array sheet per la selezione cli/fo + + TRelation* _clifo_rel; + TCursor* _clifo_cur; + TCursor_sheet* _clifo_sheet; // Array sheet per la selezione cli/fo TAssoc_array _clifo_sel; // Assoc array con solo i cli/fo selezionati. Facilita il filtro... protected: @@ -1417,8 +1528,10 @@ void TStampaDoc_application::set_filter() // Handlers della maschera //////////////////////////////////////////////////////////////// long TStampaDoc_application::select_cod_range(long from, long to) -{ - if (to == 0l) to = 999999L; +{ + TWait_cursor hourglass; + + if (to <= 0l) to = 999999L; for (int i = 0; i < _clifo_sheet->items(); i++) { @@ -1435,25 +1548,11 @@ long TStampaDoc_application::select_cod_range(long from, long to) } void TStampaDoc_application::build_clifo_list(const char c) -{ - TLocalisamfile clifo(LF_CLIFO); - _clifo_sheet->destroy(); // Distrugge la lista - TToken_string tt; - - TRecfield tipocf(clifo.curr(), CLI_TIPOCF); - clifo.zero(); - clifo.put(CLI_TIPOCF, c); - - for (clifo.read(_isgteq); !clifo.eof(); clifo.next()) // Compila la lista!! - { - if (((const char*)tipocf)[0] != c) - break; - tt = ""; - tt.add(" "); - tt.add(clifo.get(CLI_CODCF)); - tt.add(clifo.get(CLI_RAGSOC)); - _clifo_sheet->add(tt); - } +{ + // Semplice ed efficace + TRectype rec(LF_CLIFO); + rec.put(CLI_TIPOCF, c); + _clifo_cur->setregion(rec, rec); } bool TStampaDoc_application::tipocf_handler(TMask_field& f, KEY key) @@ -1474,7 +1573,7 @@ bool TStampaDoc_application::fr_cod_handler(TMask_field& f, KEY key) if (key == K_F9) { TMask& m = f.mask(); - TArray_sheet* sh = app()._clifo_sheet; + TCursor_sheet* sh = app()._clifo_sheet; sh->disable_check(); sh->disable(DLG_USER); @@ -1499,7 +1598,7 @@ bool TStampaDoc_application::to_cod_handler(TMask_field& f, KEY key) TMask& m = f.mask(); if (key == K_F9) { - TArray_sheet* sh = app()._clifo_sheet; + TCursor_sheet* sh = app()._clifo_sheet; TMask& m = f.mask(); sh->disable_check(); @@ -1548,7 +1647,8 @@ bool TStampaDoc_application::reset_button(TMask_field& f, KEY key) } void TStampaDoc_application::set_choice_limits(TMask& m) -{ +{ + TWait_cursor hourglass; long first = -1l, last = -1l; for (int i = 0; i < _clifo_sheet->items(); i++) { @@ -1645,18 +1745,20 @@ bool TStampaDoc_application::create() _is_lista = argc == 3 && argv(2)[0] == 'L'; on_firm_change(); _selection_mask = new TMask(_is_lista ? "ve1100b" : "ve1100a"); - _clifo_sheet = new TArray_sheet(3, 3, -3, -3, "Selezione Clienti/Fornitori", - "@1|Codice@6R|Descrizione@50"); - build_clifo_list(); // Costruisce l'array sheet dei clienti (si parte!!) - if (!_is_lista) { + _clifo_sheet = NULL; _selection_mask->set_handler(F_DA_DATADOC, date2num_handler); _selection_mask->set_handler(F_A_DATADOC, date2num_handler); _selection_mask->set_handler(F_A_NDOC, range_handler); } else - { + { + _clifo_rel = new TRelation(LF_CLIFO); + _clifo_cur = new TCursor(_clifo_rel); + _clifo_sheet = new TCursor_sheet(_clifo_cur, " |CODCF|RAGSOC", "Selezione Clienti/Fornitori", + "@1|Codice@6R|Descrizione@50", 0, 1); + build_clifo_list(); // Costruisce l'array sheet dei clienti (si parte!!) _selection_mask->set_handler(F_TIPOCF, tipocf_handler); _selection_mask->set_handler(F_CODFR, fr_cod_handler); _selection_mask->set_handler(F_CODTO, to_cod_handler); @@ -1705,7 +1807,12 @@ bool TStampaDoc_application::destroy() { delete _firmrel; // distruzione della relazione di gestione della ditta corrente delete _selection_mask; - delete _clifo_sheet; + if (_clifo_sheet != NULL) + { + delete _clifo_sheet; + delete _clifo_cur; + delete _clifo_rel; + } return TApplication::destroy(); } diff --git a/ve/ve2200.cpp b/ve/ve2200.cpp index f372e3696..7f8ba9ab4 100755 --- a/ve/ve2200.cpp +++ b/ve/ve2200.cpp @@ -57,18 +57,18 @@ class TCondizioni_vendita: public TRelation_application { virtual bool remove(); // metodo usato per cancellare il record sul file public: + bool codlis_catven() { return _codlis_catven; } // @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata virtual bool check_autorization() const {return FALSE;} TCondizioni_vendita() {} virtual ~TCondizioni_vendita() {} }; - class TMask_copy: public TAutomask { public: virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); - TMask_copy(const TMask& m); + TMask_copy(const TMask& m, const bool enable_catven); }; bool TMask_copy::on_field_event(TOperable_field& o, TField_event e, long jolly) @@ -76,9 +76,9 @@ bool TMask_copy::on_field_event(TOperable_field& o, TField_event e, long jolly) return TRUE; } -TMask_copy::TMask_copy(const TMask& m) : TAutomask("ve2200c") +TMask_copy::TMask_copy(const TMask& m, const bool enable_catven) : TAutomask("ve2200c") { - enable(F_L_CATVEN,m.field(F_L_CATVEN).enabled()); + enable(F_L_CATVEN, enable_catven); set(F_TIPO,m.get(F_TIPO)); } @@ -383,7 +383,7 @@ bool TCondizioni_vendita::handle_copy(TMask_field &b, KEY k) if (k==K_SPACE) { TMask& msk = b.mask(); - TMask_copy m(msk); // gli passo la maschera del bottone copia (cioé la maschera principale ve2200x) + TMask_copy m(msk, app().codlis_catven()); // gli passo la maschera del bottone copia (cioé la maschera principale ve2200x) if (m.run()==K_ENTER) { TRelation rel(LF_RCONDV); // creo un relazione sul file delle righe delle condizioni di vendita diff --git a/ve/ve2300x.uml b/ve/ve2300x.uml index 878edc6ec..d079afa87 100755 --- a/ve/ve2300x.uml +++ b/ve/ve2300x.uml @@ -391,7 +391,7 @@ BEGIN FLAG "UD" END -CURRENCY F_R_PREZZO 15 +CURRENCY F_R_PREZZO 18 BEGIN PROMPT 2 11 "Prezzo netto " FIELD LF_RCONDV->PREZZO @@ -399,9 +399,9 @@ BEGIN DRIVENBY F_CODVAL_R END -CURRENCY F_R_PREZZO_LORDO 15 +CURRENCY F_R_PREZZO_LORDO 18 BEGIN - PROMPT 46 11 "Prezzo lordo " + PROMPT 49 11 "Prezzo lordo " FLAGS "UH" DRIVENBY F_CODVAL_R END diff --git a/ve/ve2400.cpp b/ve/ve2400.cpp index 29f74979c..f3c7844fa 100755 --- a/ve/ve2400.cpp +++ b/ve/ve2400.cpp @@ -43,6 +43,7 @@ class TMask_anamag: public TMask { static bool handle_sheetstomag(TMask_field &, KEY); // handler dello sheet storico giacenze static bool handle_sheet_um_um(TMask_field &, KEY); // handler del campo UM dello sheet delle unitą di misura static bool handle_sheet_um_price(TMask_field &, KEY); // handler del campo PREZZO e PREZZO_LORDO dello sheet delle unitą di misura + static bool handle_sheet_giac_codmag(TMask_field &, KEY); // handler static bool handle_sheet_giac_valgiac(TMask_field &, KEY); // handler static bool handle_sheet_stomag_stoval(TMask_field &, KEY); // handler static bool handle_autoinsert_livgiac(TMask_field &, KEY); // handler del campo @@ -139,10 +140,13 @@ void TMask_anamag::set_parametered_fields() // sheet giacenze set_handler(F_ANNO, handle_anno ); set_handler(F_SHEETGIAC, handle_sheetgiac); - sfield(F_SHEETGIAC).set_notify(notify_sheet_giac); - sfield(F_SHEETGIAC).set_userget(sheetgiac_get); - sfield(F_SHEETGIAC).set_userput(sheetgiac_put); - sfield(F_SHEETGIAC).sheet_mask().set_handler(F_VALGIAC, handle_sheet_giac_valgiac); + + TSheet_field& sgiac = sfield(F_SHEETGIAC); + sgiac.set_notify(notify_sheet_giac); + sgiac.set_userget(sheetgiac_get); + sgiac.set_userput(sheetgiac_put); + sgiac.sheet_mask().set_handler(F_CODMAG, handle_sheet_giac_codmag); + sgiac.sheet_mask().set_handler(F_VALGIAC, handle_sheet_giac_valgiac); // sheet storico set_handler(F_SHEETSTOMAG, handle_sheetstomag); sfield(F_SHEETSTOMAG).set_notify(notify_sheet_sto); @@ -859,7 +863,7 @@ bool TMask_anamag::notify_sheet_giac(TSheet_field &f, int i, KEY k) case (K_CTRL + K_INS): // richiesta di inserimento case (K_TAB): // modifica { - if (*f.cell(i,f.cid2index(F_CODMAG))==' ') + if (*f.cell(i,f.cid2index(F_CODMAG))<=' ') { if (m.magazzini().standardmag().not_empty()) { @@ -873,14 +877,34 @@ bool TMask_anamag::notify_sheet_giac(TSheet_field &f, int i, KEY k) return TRUE; } +bool TMask_anamag::handle_sheet_giac_codmag(TMask_field &f, KEY k) +{ + if (k==K_TAB && f.dirty()) + { + TMask& m = f.mask(); + const TRectype& mag = ((TEdit_field&)f).browse()->cursor()->curr(); + const bool gesdep = mag.get_bool("B0"); + + m.enable(F_CODDEP, gesdep); + m.show(F_DESDEP, gesdep); + if (gesdep) + m.field(F_CODDEP).check(); + else + { + m.set(F_CODDEP, ""); + m.set(F_DESDEP, ""); + } + } + return TRUE; +} + bool TMask_anamag::handle_sheet_giac_valgiac(TMask_field &f, KEY k) { if (k==K_TAB && f.dirty()) { - TMask &m = f.mask(); - real q; - q=m.get_real(F_RIM)+m.get_real(F_ACQ); + TMask& m = f.mask(); + real q=m.get_real(F_RIM)+m.get_real(F_ACQ); if (q.is_zero()) f.set(q.string()); else diff --git a/ve/ve2400.uml b/ve/ve2400.uml index ade1779bf..6018fd192 100755 --- a/ve/ve2400.uml +++ b/ve/ve2400.uml @@ -803,6 +803,29 @@ BEGIN ITEM "F|Fornitore" END +LISTBOX F_COLLTYPE 25 +BEGIN + PROMPT 1 7 "Mag.per movim.con distinta " + FIELD LF_ANAMAG->COLLTYPE + ITEM " |da movimento" MESSAGE CLEAR,F_CODMAGAN + ITEM "M|da riga prod.fin/semilav." MESSAGE CLEAR,F_CODMAGAN + ITEM "F|da fornitore" MESSAGE CLEAR,F_CODMAGAN + ITEM "A|da articolo" MESSAGE ENABLE,F_CODMAGAN +END + +STRING F_CODMAGAN 5 +BEGIN + PROMPT 59 7 "Codice mag. " + FIELD LF_ANAMAG->CODMAG + FLAG "U" + USE MAG + INPUT CODTAB F_CODMAGAN + DISPLAY "Codice@10" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_CODMAGAN CODTAB + CHECKTYPE NORMAL +END + NUMBER F_CLASSDOG1 4 BEGIN PROMPT 1 8 "Nomenclatura combin. " diff --git a/ve/ve2400a.uml b/ve/ve2400a.uml index 3ccdad314..b41726fb8 100755 --- a/ve/ve2400a.uml +++ b/ve/ve2400a.uml @@ -25,14 +25,14 @@ BEGIN WARNING "Fattore di conversione obbligatorio" END -CURRENCY FS_PREZZO 15 +CURRENCY FS_PREZZO 18 BEGIN PROMPT 3 5 "Prezzo netto " FIELD PREZZO FLAGS "U" END -CURRENCY FS_PREZZO_LORDO 15 +CURRENCY FS_PREZZO_LORDO 18 BEGIN PROMPT 3 6 "Prezzo lordo " FLAGS "U" diff --git a/ve/ve2400d.h b/ve/ve2400d.h index 92d02f80f..1322f17b2 100755 --- a/ve/ve2400d.h +++ b/ve/ve2400d.h @@ -1,14 +1,14 @@ // colonne visibili dello Sheet -#define F_LIV1 101 -#define F_LIV2 102 -#define F_LIV3 103 -#define F_LIV4 104 -#define F_CODMAG 105 -#define F_CODDEP 106 -#define F_UBICAZ 107 +#define F_LIV1 101 +#define F_LIV2 102 +#define F_LIV3 103 +#define F_LIV4 104 +#define F_CODMAG 105 +#define F_CODDEP 106 +#define F_UBICAZ 107 #define F_LIVRIOR 108 #define F_SCORTAMIN 109 -#define F_LOTTORIOR 110 +#define F_LOTTORIOR 110 #define F_LOTTOIRIOR 111 #define F_GIORNIRIOR 112 #define F_GIAC 113 @@ -37,17 +37,16 @@ #define F_NDIST 136 // colonne non visibili dello Sheet -#define F_DESMAG 150 -#define F_DESDEP 151 -#define H_DESMAG 152 -#define H_GESTGIA 153 -#define F_UBICAZD 154 +#define F_DESMAG 150 +#define F_DESDEP 151 +#define H_DESMAG 152 +#define F_UBICAZD 154 -#define F_DESL1 155 -#define F_DESL2 156 -#define F_DESL3 157 -#define F_DESL4 158 +#define F_DESL1 155 +#define F_DESL2 156 +#define F_DESL3 157 +#define F_DESL4 158 // campi doppi -#define F_UBICAZ2 207 +#define F_UBICAZ2 207 diff --git a/ve/ve2400d.uml b/ve/ve2400d.uml index b892a1aea..22238b963 100755 --- a/ve/ve2400d.uml +++ b/ve/ve2400d.uml @@ -28,11 +28,10 @@ BEGIN USE MAG SELECT CODTAB[4,5]=="" INPUT CODTAB F_CODMAG DISPLAY "Codice " CODTAB[1,3] - DISPLAY "Denominazione mag.@50 " S0 + DISPLAY "Denominazione mag.@50" S0 OUTPUT F_CODMAG CODTAB[1,3] OUTPUT F_DESMAG S0 OUTPUT H_DESMAG S0 - OUTPUT H_GESTGIA B0 CHECKTYPE REQUIRED END @@ -49,9 +48,7 @@ BEGIN DISPLAY "Denominazione dep.@50" S0 OUTPUT F_CODDEP CODTAB[4,5] OUTPUT F_DESDEP S0 -// OUTPUT F_CODMAG CODTAB[1,3] - CHECKTYPE NORMAL - STR_EXPR ((#H_GESTGIA=="X")&&(#F_CODDEP!=""))||(#H_GESTGIA!="X") + CHECKTYPE REQUIRED // WARNING "Indicare il deposito" END @@ -70,8 +67,6 @@ BEGIN DISPLAY "Cod. magazzino" CODTAB[1,3] DISPLAY "Cod. deposito" CODTAB[4,5] OUTPUT F_CODMAG CODTAB[1,3] -// GUIDO!!!!!!!!!!!!!!!!! in che ordine vengono eseguiti gli output -// a cascata??? perchč mi ritrovo il coddep cancellato??? END STRING F_DESDEP 50 @@ -86,16 +81,6 @@ BEGIN // MESSAGE K_TAB,F_CODDEP END - -//Abilitazione/disabil. dei campi relativi al deposito -BOOLEAN H_GESTGIA -BEGIN - PROMPT 1 1 "" - FLAGS "HG" - MESSAGE TRUE ENABLE,F_CODDEP|CHECK,F_CODDEP|SHOW,F_DESDEP - MESSAGE FALSE RESET,F_CODDEP|RESET,F_DESDEP|DISABLE,F_CODDEP|HIDE,F_DESDEP -END - //Livelli giacenza STRING F_LIV1 10 BEGIN diff --git a/ve/ve4100.cpp b/ve/ve4100.cpp index d55e508c7..a8a567588 100755 --- a/ve/ve4100.cpp +++ b/ve/ve4100.cpp @@ -1041,10 +1041,15 @@ bool TRicalcolo_mask::elabora() } else { - if (line[0] == '-' && sscanf(line, "- %s = %s", var.get_buffer(), val.get_buffer()) == 2) + if (line[0] == '-' && sscanf(line, "- %s =", var.get_buffer()) == 1) { - cur.curr().put(var, val); - do_rewrite = TRUE; + const char* equal = strchr(line, '='); + if (equal) + { + val = equal+2; + cur.curr().put(var, val); + do_rewrite = TRUE; + } } } } diff --git a/ve/ve5200.cpp b/ve/ve5200.cpp index f878f10c7..78c5963bd 100755 --- a/ve/ve5200.cpp +++ b/ve/ve5200.cpp @@ -1,5 +1,6 @@ #include #include +#include #include #include @@ -56,7 +57,7 @@ void TStatus_change::main_loop() if (yesno_box(msg)) { TProgind pi(total, "Elaborazione in corso...", TRUE, TRUE, 60); - const char finale = m.get(F_FINALE)[0]; + const TString& finale = m.get(F_FINALE); TDocumento* doc = new TDocumento; rel.lfile().set_curr(doc); cur.freeze(); @@ -65,6 +66,27 @@ void TStatus_change::main_loop() pi.addstatus(1); doc->put(DOC_STATO, finale); doc->rewrite(); + + // Invia anche la transazione se necessario + if (::can_dispatch_transaction(*doc)) + { + TFilename tmpname; tmpname.temp(); + { // Parentesi strategiche + TConfig ini(tmpname, "Transaction"); + ini.set("Action", "MODIFY"); + ini.set("Firm", get_firm()); + ini.set("Mode", "A"); + TString8 paradoc; paradoc.format("%d", LF_DOC); + ini.set_paragraph(paradoc); + ini.set(DOC_PROVV, doc->get(DOC_PROVV)); + ini.set(DOC_ANNO, doc->get(DOC_ANNO)); + ini.set(DOC_CODNUM, doc->get(DOC_CODNUM)); + ini.set(DOC_NDOC, doc->get(DOC_NDOC)); + ini.set(DOC_STATO, finale); + } + ::dispatch_transaction(*doc, tmpname); + ::remove(tmpname); + } } // Forza l'aggiornamento dell'indice del cursore diff --git a/ve/ve7.cpp b/ve/ve7.cpp new file mode 100755 index 000000000..ecddbb044 --- /dev/null +++ b/ve/ve7.cpp @@ -0,0 +1,18 @@ +#include + +#include "ve7.h" // dichiarazioni delle procedure + +int main( int argc, char** argv ) +{ + int rt = -1; + const int r = (argc > 1) ? argv[1][1]-'0' : -1; + + switch (r) + { + case 0: + default: + ve7100(argc, argv); break; // contabilizzazione documenti + } + exit(0); + return 0; +} diff --git a/ve/ve7.h b/ve/ve7.h new file mode 100755 index 000000000..0dc26bfe2 --- /dev/null +++ b/ve/ve7.h @@ -0,0 +1,6 @@ +#ifndef __VE7_H +#define __VE7_H + +int ve7100 (int, char**); + +#endif diff --git a/ve/ve7.url b/ve/ve7.url new file mode 100755 index 000000000..b052351f1 --- /dev/null +++ b/ve/ve7.url @@ -0,0 +1,6 @@ +#define APPNAME campo +#define QAPPNAME "campo" +#define QFIRMNAME "A.G.A. Informatica Srl" +#include + +#include diff --git a/ve/ve7100.cpp b/ve/ve7100.cpp new file mode 100755 index 000000000..76b4af888 --- /dev/null +++ b/ve/ve7100.cpp @@ -0,0 +1,629 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "velib.h" +#include "../cg/cgsaldac.h" + +#include "ve7100a.h" + +class TContabil_tsys : public TContabilizzazione // velib04b +{ + ofstream * _output_file; + TConfig * _conf; + +protected: + virtual error_type write_all(TDocumento& doc, TMovimentoPN_VE & movimento); + +public: + void open(); + void close(); + void format_num(real num, int len, TString & s); + void format_signed(real num, int len, TString & s); + TContabil_tsys(const char* cod, TConfig * c = NULL) : TContabilizzazione(cod), _output_file(NULL), _conf(c) {} + TContabil_tsys(const TRectype& rec, TConfig * c = NULL) : TContabilizzazione(rec), _output_file(NULL), _conf(c) {} + virtual ~TContabil_tsys(); +}; + +void TContabil_tsys::open() +{ + TFilename outname(_conf->get("OutputFile")); + + if (os_is_removable_drive(outname)) + message_box("Inserisci un disco vuoto nel drive %c e premi Ok", outname[0]); + _output_file = new ofstream(outname, ios::binary|ios::app); +} + +void TContabil_tsys::close() +{ + TFilename outname(_conf->get("OutputFile")); + + delete _output_file; + _output_file = NULL; + ifstream input_file(outname); + for (char c = input_file.get();!input_file.eof();c = input_file.get()) + if (c == '!') + { + message_box("Carattere non valido nel file"); + break; + } +} + +void TContabil_tsys::format_num(real num, int len, TString & s) +{ + TString format; format.fill('@', len); + + s = num.string(format); +} + +void TContabil_tsys::format_signed(real num, int len, TString & s) +{ + format_num(num, len - 1, s); + s << (num.sign() >= 0 ? '+' : '-'); +} + +TContabil_tsys::~TContabil_tsys() +{ + if (_output_file != NULL) + delete _output_file; +} + +error_type TContabil_tsys::write_all(TDocumento& doc, TMovimentoPN_VE & movimento) +// Scrive il movimento e le scadenze, gestendo la rinumerazione se il movimento e' gia presente +{ + // N.B: _error non viene settato, per non stampare il messaggio di errore 2 volte. + // basta solo ritornare qualcosa di != da no_error, per evitare le operazioni successive + // a write_all + TString row(4500); + TRectype& head = movimento.lfile().curr(); + const int iva_items = movimento.iva_items(); + const int cg_items = movimento.cg_items(); + TCurrency c(ZERO); + const real dec = c.decimals(); + const real molt = pow(10.0, dec); + + if (test_swap()) + { + const real totdoc = -head.get_real(MOV_TOTDOC); + + head.put(MOV_TOTDOC, totdoc); + + for (int i = iva_items - 1 ; i >= 0; i--) + { + TRectype & rec_iva = movimento.iva(i); + + const real imponibile = -rec_iva.get_real(RMI_IMPONIBILE); + const real imposta = -rec_iva.get_real(RMI_IMPOSTA); + + rec_iva.put(RMI_IMPONIBILE, imponibile); + rec_iva.put(RMI_IMPOSTA, imposta); + } + } + + TString work(256); + + format_num(real(_conf->get("CodDitta")), 5, work); + row << work << "10"; + + TString key; + + key << doc.get(DOC_TIPOCF) << "|"; + key << doc.get(DOC_CODCF); + + const TRectype & rec = cache().get(LF_CLIFO, key); + const bool pers_fisica = rec.get("TIPOPERS") == "F"; + work = rec.get("RAGSOC"); + int posnome = 0; + + if (pers_fisica) + { + TString cogn(work.mid(31)); + + work.left(30); + work.trim(); + posnome = work.len() + 1; + work << " " << cogn; + } + row << work.sleft(32).rpad(32); + + work = rec.get("INDCF"); + TString80 civ(rec.get("CIVCF")); + + if (civ.not_empty()) + work << ", " << civ; + row << work.sleft(30).rpad(30) << rec.get("CAPCF"); + + work = rec.get("LOCALITACF"); + + key = rec.get("STATOCF"); + key << "|" << rec.get("COMCF"); + + const TRectype & com = cache().get(LF_COMUNI, key); + + work << " " << com.get("DENCOM"); + work.trim(); + row << work.sleft(25).rpad(25); + row << com.get("PROVCOM").sleft(2).rpad(2); + row << rec.get("COFI").sleft(16).rpad(16); + format_num(real(rec.get("PAIV")), 11, work); + row << work; row << (pers_fisica ? "S" : "N"); + format_num((real)posnome, 2, work); + key = head.get(MOV_CODCAUS); + + const TRectype & caus = cache().get(LF_CAUSALI, key); + + row << work << key << caus.get("DESCR").sleft(15).rpad(15); + row << head.get(MOV_DESCR).sleft(18).rpad(18); + work = doc.get_date(DOC_DATADOC).string(brief); + row << work.left(2); + row << work.mid(3, 2); + row << work.mid(6); + + format_num(real(doc.get(DOC_NDOC)), 5, work); + row << work << "00"; + format_num(real(doc.get(DOC_NDOC)), 6, work); + row << work << doc.get(DOC_ANNO).right(2); + + for (int i = 0; i < 8 ;i++) + { + if (i < iva_items) + { + TRectype & rec_iva = movimento.iva(i); + + format_signed(rec_iva.get_real(RMI_IMPONIBILE) * molt, 12, work); + row << work; + key = rec_iva.get(RMI_CODIVA); + + const TRectype & tab_iva = cache().get("%IVA", key); + + format_num(tab_iva.get_real("CODTAB"), 3, work); + row << work; + format_num(ZERO, 1, work); + row << work; + format_signed(rec_iva.get_real(RMI_IMPOSTA) * molt, 11, work); + row << work; + } + else + { + format_signed(ZERO, 12, work); + row << work; + format_num(ZERO, 3, work); + row << work; + format_num(ZERO, 1, work); + row << work; + format_signed(ZERO, 11, work); + row << work; + } + } + format_signed(head.get_real(MOV_TOTDOC) * molt, 12, work); + row << work; + for (i = 0; i < 8 ;i++) + { + if (i + 1 < cg_items) + { + TRectype & rec_cg = movimento.cg(i + 1); + const int gruppo = rec_cg.get_int(RMV_GRUPPO); + const int conto = rec_cg.get_int(RMV_CONTO); + const long sottoconto = rec_cg.get_long(RMV_SOTTOCONTO); + const real codconto = (gruppo % 100) * 100000 + (conto % 100) * 1000 + (sottoconto % 1000); + + format_num(codconto, 7, work); + row << work; + format_signed(rec_cg.get_real(RMV_IMPORTO) * molt, 12, work); + row << work; + } + else + { + format_num(ZERO, 7, work); + row << work; + format_signed(ZERO, 12, work); + row << work; + } + } + + int padding_rows = 80; + real pagato = doc.get_real(DOC_IMPPAGATO); + + if (pagato != ZERO) + { + padding_rows = 78; + const int gruppo = _conf->get_int("CassGruppo"); + const int conto = _conf->get_int("CassConto"); + const long sottoconto = _conf->get_long("CassaSottoC"); + const real codconto = (gruppo % 100) * 100000 + (conto % 100) * 1000 + (sottoconto % 1000); + char sez = movimento.cg(0).get_char(RMV_SEZIONE); + + format_num(codconto, 7, work); + row << work << sez; + format_signed(pagato * molt, 12, work); + row << work; + work = ""; + work.spaces(18); + row << work; + format_num(real(doc.get(DOC_NDOC)), 6, work); + row << work << doc.get(DOC_ANNO).right(2); + row << "9999999" << sez == 'D' ? 'A' : 'D'; + format_signed(pagato * molt, 12, work); + row << work; + work = ""; + work.spaces(18); + row << work; + format_num(real(doc.get(DOC_NDOC)), 6, work); + row << work << doc.get(DOC_ANNO).right(2); + } + + for (i = 0; i < padding_rows ;i++) + { + format_num(ZERO, 7, work); + row << work << " "; + format_signed(ZERO, 12, work); + row << work; + work = ""; + work.spaces(18); + row << work; + format_num(ZERO, 6, work); + row << work; + format_num(ZERO, 2, work); + row << work; + } + + if (row.len() != 4248) + { + error_box("Documento %s - lunghezza record %d errata", (const char *)doc.get(DOC_NDOC), row.len()); + return generic_error; + } + else + *_output_file << ((const char *) row); + + inc_processed_docs(); + return no_error; +} + +// TContabil_tsys_app +// Applicazione di contabilizzazione documenti +class TContabil_tsys_app : public TApplication +{ + TString16 _cod_el; // codice elaborazione immesso + TDate _data_reg; // data di registrazione immessa + TDate _data_ini; // data di inizio intervallo + TDate _data_fine; // data di fine intervallo + bool _auto_data; // se TRUE prende in automatico la data di registrazione dalla data documento + byte _nump_iva; + TMask *_msk; // maschera di selezione dati + TArray_sheet *_num_sheet; // Array sheet selezionabile dei codici numerazione + TString_array _tipi_doc; // Array di stringhe contenente i tipi documenti da elaborare + +protected: // TApplication + // Contabilizza i documenti + void contabilize(TConfig & c); + // Le 4 seguenti non hanno bisogno di commenti + virtual bool menu(MENU_TAG mt); + virtual bool create(); + virtual bool destroy(); + virtual void on_config_change(); + // Handler del codice elaborazione differita + static bool handle_cod_eld(TMask_field& f, KEY k); + // Handler dell'intervallo di date + static bool handle_data_range(TMask_field& f, KEY k); + // Handler della data di registrazione + static bool handle_data_reg(TMask_field& f, KEY k); + // Handler del pulsante di selezione codici numerazione + static bool handle_select(TMask_field& f, KEY k); + // Ritorna il TArray_sheet contenente le selezioni sui codici numerazione + // Costruisce lo sheet dei codici numerazione + void build_num_sheet(); + TArray_sheet* get_num_sheet() const { return _num_sheet; } + // Coontrolla se lo stato ed il tipo del documento sono validi e rispettano la selezione + bool doc_tipo_stato_ok(const TRectype& doc); + +public: + TContabil_tsys_app() {_msk = NULL; _num_sheet = NULL;} + virtual ~TContabil_tsys_app() { } +}; + +inline TContabil_tsys_app& app() { return (TContabil_tsys_app&) main_app(); } + +bool TContabil_tsys_app::handle_data_range(TMask_field& f, KEY k) +{ + if (k==K_ENTER && f.dirty()) + { + TMask& m = f.mask(); + TDate da(m.get_date(F_DATA_INI)); + TDate a(m.get_date(F_DATA_FIN)); + + if (a < da) + { + f.error_box("La data di inizio deve essere minore della data di fine."); + return FALSE; + } + } + + return TRUE; +} + +bool TContabil_tsys_app::handle_data_reg(TMask_field& f, KEY k) +{ + if (k==K_ENTER && f.dirty()) + { + TMask& m = f.mask(); + TDate data_reg(f.get()); + TDate da(m.get_date(F_DATA_INI)); + + if (data_reg < da) + { + f.error_box("La data di registrazione non puo' essere minore della data di inizio."); + return FALSE; + } + } + return TRUE; +} + +bool TContabil_tsys_app::handle_cod_eld(TMask_field& f, KEY k) +{ + if (f.to_check(k) && k == K_TAB) // se e' cambiato ricostruisce anche lo sheet dei codici numerazione + { + app()._cod_el = f.get(); // aggiorna il codice elaborazione per la build_num_sheet() + f.mask().disable(DLG_OK); + app().build_num_sheet(); + } + return TRUE; +} + +bool TContabil_tsys_app::handle_select(TMask_field& f, KEY k) +{ + if (k == K_SPACE) + { + TMask& m = f.mask(); + TArray_sheet* s = app().get_num_sheet(); + if (s->run()) + { + if (s->checked() != 0) // Hai selezionato qualcosa ? + m.enable(DLG_OK); // allora abilita il pulsante di conferma + else + m.disable(DLG_OK); + } + } + return TRUE; +} + +void TContabil_tsys_app::build_num_sheet() +{ + _num_sheet->destroy(); + _tipi_doc.destroy(); + + TTable num("%NUM"); + TString s1,s2,s3; + + TContabil_tsys* cont = new TContabil_tsys(_cod_el); + if (!cont->empty()) + { + TToken_string t; + TString16 tipo; + for (int i=0;itipo_iniziale(i); + if (tipo.not_empty()) + { + t = tipo; + t.add(cont->stato_iniziale(i)); // Stato iniziale + _tipi_doc.add(t); // Aggiunge questo tipo documento alla lista + } + } + + long pos=0l; + + for (num.first();num.good();num.next(),pos++) // scorre tutte le numerazioni possibili + { + TToken_string t,z; + t.add(" "); + t.add(num.get("CODTAB")); + t.add(num.get("S0")); + _num_sheet->add(t); + s2 = num.get("S2"); // reperisce i tipi documento validi per questa numerazione + + for (int x = 0; x <= s2.len(); x += 4) + z.add(s2.mid(x,4)); + + bool found = FALSE; + for (int i = _tipi_doc.last(); !found && i >= 0; i--) + found |= z.find(((TToken_string &)_tipi_doc[i]).get(0)) >= 0; + if (found) + _num_sheet->enable_row(pos); + else + _num_sheet->disable_row(pos); + } + } + delete cont; +} + +bool TContabil_tsys_app::doc_tipo_stato_ok(const TRectype& doc) +// Verifica che il tipo documento corrente esista tra i tipi previsti dalla elaborazione +// differita selezionata +{ + bool found = FALSE; + const TString16 tipo = doc.get(DOC_TIPODOC); + const char stato = doc.get_char(DOC_STATO); + const int items = _tipi_doc.items(); + for (int i=0;iset_handler(F_CODICE_ELAB,handle_cod_eld); + _msk->set_handler(F_DATA_INI,handle_data_range); + _msk->set_handler(F_DATA_FIN,handle_data_range); + //_msk->set_handler(F_DATA_REG,handle_data_reg); + _msk->set_handler(DLG_USER,handle_select); + _num_sheet = new TArray_sheet(-1,-1,-4,-4,"Codici numerazione", + "@1|Cod. numerazione|Descrizione@50"); + dispatch_e_menu(BAR_ITEM(1)); + return TRUE; +} + +bool TContabil_tsys_app::destroy() +{ + if (_msk) delete _msk; + if (_num_sheet) delete _num_sheet; + return TApplication::destroy(); +} + +bool TContabil_tsys_app::menu(MENU_TAG mt) +{ + TConfig c(CONFIG_STUDIO, "TeamSystem"); + + _msk->set(F_OUTPUT, c.get("OutputFile", NULL, -1, "a:\\trafat")); + _msk->set(F_CODDITTA, c.get("CodDitta")); + _msk->set(F_GRUPPO, c.get("CassGruppo")); + _msk->set(F_CONTO, c.get("CassConto")); + _msk->set(F_SOTTOCONTO, c.get("CassaSottoC")); + + while (_msk->run() == K_ENTER) + { + _cod_el = _msk->get(F_CODICE_ELAB); + _data_ini = _msk->get_date(F_DATA_INI); + _data_fine = _msk->get_date(F_DATA_FIN); + _data_reg = _data_fine; + c.set("OutputFile", _msk->get(F_OUTPUT)); + c.set("CodDitta", _msk->get(F_CODDITTA)); + c.set("CassGruppo", _msk->get(F_GRUPPO)); + c.set("CassConto", _msk->get(F_CONTO)); + c.set("CassaSottoC", _msk->get(F_SOTTOCONTO)); + _auto_data = TRUE; + _nump_iva = TRUE; + contabilize(c); + } + return FALSE; +} + +void TContabil_tsys_app::contabilize(TConfig &c) +{ + TRelation doc_rel(LF_DOC); + TRectype da(LF_DOC); + TRectype a(LF_DOC); + const long items = _num_sheet->items(); + int year_from = _data_ini.year(); + int year_to = _data_fine.year(); + bool ok = TRUE; + TString16 codnum; + TString msg,filt_expr; + TToken_string nums; + TContabil_tsys cont(_cod_el, &c); + cont.open(); + +// Compone la lista dei documenti da elaborare + + cont.set_auto(_auto_data); // Setta il flag per il settaggio automatico della data di registrazione del movimento + cont.set_nump(_nump_iva); // Setta il flag per il settaggio del numero di protocollo + + da.put("DATADOC",_data_ini); + da.put("PROVV","D"); + da.put("ANNO",year_from); + a.put("DATADOC",_data_fine); + a.put("PROVV","D"); + a.put("ANNO",year_to); + + filt_expr << "("; + for (long i=0L; ichecked(i)) // Costruisce una espressione sul codice numerazione: "CODNUM="x0" || CODNUM="x1" || ..." + { + codnum = _num_sheet->row(i).get(1); + filt_expr << "(CODNUM=\""; + filt_expr << codnum << "\")||"; + nums.add(codnum); + } + + filt_expr.rtrim(2); + filt_expr << ")"; + // Cursore complessivo con limiti di data (chiave 3). Viene sfruttata l'ottimizzazione + // sulla costruzione dei cursori nel caso i campi presenti nell'espressione siano campi + // chiave, nel nostro caso CODNUM soddisfa i requisiti. + TCursor doc_cur(&doc_rel,filt_expr,3,&da,&a); + const long cur_items = doc_cur.items(); // Scorre tutti i documenti che rientrano nell'intervallo selezionato + if (cur_items == 0) + { + warning_box("Non vi sono documenti da contabilizzare per le numerazioni selezionate."); + return; + } + doc_cur.freeze(); + + msg = "Selezione documenti dal "; + msg << _data_ini.string() << " al "; + msg << _data_fine.string(); + + TLista_documenti lista_in,lista_out; + if (cur_items > 0) // if inutile tanto per provocare la chiusura della TProgind + { + TProgind p(cur_items,msg,FALSE,TRUE); + const TRectype& cur_rec = doc_cur.curr(); + for (doc_cur = 0; doc_cur.pos() < cur_items; ++doc_cur) + { + p.addstatus(1); + // controlla che il tipo documento e lo stato siano coerenti con la ELD selezionata + if (nums.find(cur_rec.get("CODNUM")) >= 0 && doc_tipo_stato_ok(cur_rec)) + { + TDocumento* doc = new TDocumento; + if (doc->read(doc_cur.curr()) == NOERR) // legge il documento + lista_in.add(doc); // Viene aggiunto alla lista dei documenti + else + delete doc; + } + } + } + + if (cont.elabora(lista_in,lista_out,_data_reg)) + { + TProgind p(cur_items,"Aggiornamento stato documenti",FALSE,TRUE); + const TRectype& cur_rec = doc_cur.curr(); + TDocumento* doc = new TDocumento; + + for (doc_cur = 0; doc_cur.pos() < cur_items; ++doc_cur) + { + p.addstatus(1); + // controlla che il tipo documento e lo stato siano coerenti con la ELD selezionata + if (nums.find(cur_rec.get("CODNUM")) >= 0 && doc_tipo_stato_ok(cur_rec)) + { + if (doc->read(doc_cur.curr()) == NOERR) // legge il documento + cont.change_doc_status(*doc); + } + } + delete doc; + + if (cont.processed_docs() > 0L) + message_box("Totale documenti trasferiti: %ld", cont.processed_docs()); + } + cont.close(); + xvt_statbar_set(""); +} + +int ve7100 (int argc, char **argv) +{ + TContabil_tsys_app a; + a.run(argc,argv,"Trasferimento documenti a Team System"); + return TRUE; +} diff --git a/ve/ve7100a.h b/ve/ve7100a.h new file mode 100755 index 000000000..4879fc4f9 --- /dev/null +++ b/ve/ve7100a.h @@ -0,0 +1,12 @@ +// Include file per ve7100a.uml + +#define F_CODICE_ELAB 101 +#define F_DESC_ELAB 102 +#define F_DATA_INI 103 +#define F_DATA_FIN 104 +#define F_OUTPUT 105 +#define F_CODDITTA 106 +#define F_GRUPPO 107 +#define F_CONTO 108 +#define F_SOTTOCONTO 109 + diff --git a/ve/ve7100a.uml b/ve/ve7100a.uml new file mode 100755 index 000000000..5544cc7d0 --- /dev/null +++ b/ve/ve7100a.uml @@ -0,0 +1,92 @@ +#include "ve7100a.h" + +PAGE "Contabilizzazione documenti" -1 -1 78 14 + +STRING F_CODICE_ELAB 8 +BEGIN + PROMPT 2 2 "Codice elaborazione " + FLAG "U" + USE %ELD SELECT I0 == 3 + INPUT CODTAB F_CODICE_ELAB + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@55" S0 + OUTPUT F_CODICE_ELAB CODTAB + OUTPUT F_DESC_ELAB S0 + CHECKTYPE REQUIRED + WARNING "E' necessario specificare il codice elaborazione" +END + +STRING F_DESC_ELAB 50 39 +BEGIN + PROMPT 35 2 "" + USE %ELD KEY 2 SELECT I0 == 3 + INPUT S0 F_DESC_ELAB + DISPLAY "Descrizione@55" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_CODICE_ELAB +END + +GROUPBOX DLG_NULL 32 4 +BEGIN + PROMPT 1 4 "Date intervallo documenti" +END + +DATE F_DATA_INI +BEGIN + PROMPT 2 5 "Inizio " + VALIDATE NOT_EMPTY_FUNC + WARNING "La data di inizio intervallo e' obbligatoria" +END + +DATE F_DATA_FIN +BEGIN + PROMPT 2 6 "Fine " + VALIDATE NOT_EMPTY_FUNC + WARNING "La data di fine intervallo e' obbligatoria" +END + +STRING F_OUTPUT 50 +BEGIN + PROMPT 2 8 "Output " +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 2 9 "Codice ditta T&S " +END + +NUMBER F_GRUPPO 2 +BEGIN + PROMPT 2 10 "Codice gruppo cassa " +END + +NUMBER F_CONTO 2 +BEGIN + PROMPT 2 11 "Codice conto cassa " +END + +NUMBER F_SOTTOCONTO 3 +BEGIN + PROMPT 2 12 "Codice sottoc.cassa " +END + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -13 -1 "" + FLAGS "D" +END + +BUTTON DLG_USER 10 2 +BEGIN + PROMPT -23 -1 "~Selezione" + PICTURE BMP_SELECT +END + +BUTTON DLG_CANCEL 10 2 +BEGIN + PROMPT -33 -1 "" +END + +ENDPAGE + +ENDMASK diff --git a/ve/veacc.frm b/ve/veacc.frm index 018872155..505546ff6 100755 --- a/ve/veacc.frm +++ b/ve/veacc.frm @@ -891,15 +891,6 @@ BEGIN MESSAGE COPY,133 END -NUMBER 131 17 -BEGIN - KEY "totale fattura in euro" - PROMPT 64 11 "EURO " - PICTURE "###.###,@@" - MESSAGE _NUMEXPR,(ROUND(IMPONIBILI/1936.27,2)+ROUND(IMPOSTE/1936.27,2)) - MESSAGE COPY,135 -END - NUMBER 132 12 BEGIN KEY "acconto" @@ -918,22 +909,6 @@ BEGIN GROUP 31 END -NUMBER 134 12 -BEGIN - KEY "Anticipo in euro" - PROMPT 69 6 "EU" - PICTURE "###.###,@@" - MESSAGE _NUMEXPR,ROUND(#106/1936.27,2) - MESSAGE SUB,135 -END - -NUMBER 135 15 -BEGIN - KEY "netto a pagare in EURO" - PROMPT 66 21 "EURO " - PICTURE "###.###,@@" -END - DATA 136 8 BEGIN KEY "scadenza pagamento 1" diff --git a/ve/veaccbmp.frm b/ve/veaccbmp.frm new file mode 100755 index 000000000..5bc5a5f39 --- /dev/null +++ b/ve/veaccbmp.frm @@ -0,0 +1,1392 @@ +USE 33 +JOIN 34 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC +JOIN 17 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF +JOIN 20 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF +JOIN 16 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP +JOIN 16 TO 17 ALIAS 116 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP +JOIN 47 TO 34 INTO CODART==CODART +JOIN %CPG TO 33 ALIAS 201 INTO CODTAB==CODPAG +JOIN 122 TO 33 INTO CODAGE==CODAG +JOIN %POR TO 33 ALIAS 203 INTO CODTAB==CODPORTO +JOIN %BAN TO 33 ALIAS 204 INTO CODTAB==CODABIA+CODCABA +JOIN %VET TO 33 ALIAS 205 INTO CODTAB==CODVETT1 +JOIN %ABE TO 33 ALIAS 206 INTO CODTAB==ASPBENI1 +JOIN %CTR TO 33 ALIAS 207 INTO CODTAB==CAUSTRASP +JOIN %BAN TO 33 ALIAS 208 INTO CODTAB==CODABIA +JOIN %TIP TO 33 ALIAS 210 INTO CODTAB==TIPODOC +JOIN %NDO TO 33 ALIAS 211 INTO CODTAB==CODNOTESP1 + +END + +DESCRIPTION +BEGIN + 34->* "Righe documenti di vendita" + 33->* "Documenti di vendita" + 17->* "Clienti/Fornitori per vendite" + 20->* "Clienti/Fornitori" + 16->* "Indirizzi di spedizione (destinazione)" + 116@->* "Indirizzi di spedizione (destinatario)" + 47->* "Anagrafica magazzino" + 201@->* "Tabella condizioni di pagamento" + 122->* "Archivio agenti" + 203@->* "Tabella porto" + 204@->* "Tabella banche istituto" + 205@->* "Tabella vettori" + 206@->* "Tabella aspetto beni" + 207@->* "Tabella causale del trasporto" + 208@->* "Tabella banche agenzia" + 209@->* "Tabella valute" + 210@->* "Tabella tipo documento" + 211@->* "Tabella note documento" +END + +GENERAL +BEGIN + OFFSET 0 0 + FONT "Courier New" + SIZE 10 + MODULE "fattura accompagnatoria standard AGA" + PRI_DECIMALS 0 2 + QTA_DECIMALS 2 3 + IMP_DECIMALS 0 2 + EXCLUDE "08," + EXCLUDE "02," + EXCLUDE "03," +END + +SECTION GRAPHICS ODD + +FIGURA 99 93 68 +BEGIN + PROMPT 0 0 "fattacc.bmp" +END + +END + +SECTION HEADER ODD 24 + +STRINGA 200 1 +BEGIN + KEY "abilita/disabilita stampa intestazione ditta " + PROMPT 1 1 "" + MESSAGE ENABLE,15@ + FLAGS "H" +END + +STRINGA 1 35 1 +BEGIN + KEY "nome ditta" + PROMPT 3 3 "" + MESSAGE _DITTA,!RAGSOC + GROUP 15 + FLAGS "D" +END + +STRINGA 2 35 1 +BEGIN + KEY "indirizzo ditta" + PROMPT 3 4 "" + MESSAGE _DITTA,!IND + GROUP 15 + FLAGS "D" +END + +STRINGA 3 5 1 +BEGIN + KEY "cap ditta" + PROMPT 3 5 "" + MESSAGE _DITTA,!CAP + GROUP 15 + FLAGS "D" +END + +STRINGA 4 30 1 +BEGIN + KEY "comune ditta" + PROMPT 10 56 "" + MESSAGE _DITTA,!COM + GROUP 15 + FLAGS "D" +END + +STRINGA 5 8 1 +BEGIN + KEY "scritta P.IVA" + PROMPT 3 6 "P.IVA IT" + GROUP 15 + FLAGS "D" +END + +STRINGA 6 16 1 +BEGIN + KEY "partita iva ditta" + PROMPT 12 6 "" + MESSAGE _DITTA,!IVA + GROUP 15 + FLAGS "D" +END + +STRINGA 7 12 1 +BEGIN + KEY "scritta COD.FISC." + PROMPT 3 7 "COD.FISC. IT" + GROUP 15 + FLAGS "D" +END + +STRINGA 8 16 1 +BEGIN + KEY "codice fiscale ditta" + PROMPT 16 7 "" + MESSAGE _DITTA,!CF + GROUP 15 + FLAGS "D" +END + +LIST 9 1 1 +BEGIN + KEY "fattura" + PROMPT 43 4 "" + FIELD 210@->I1 + ITEM "|" + ITEM "1| " + ITEM "2|X" + ITEM "3| " +END + +LIST 10 1 1 +BEGIN + KEY "d.d.t." + PROMPT 43 6 "" + FIELD 210@->I1 + ITEM "|" + ITEM "1|X" + ITEM "2| " + ITEM "3| " +END + +STRING 11 27 +BEGIN + KEY "tipo documento" + PROMPT 2 18 "" + FIELD 210@->S0 +END + +STRING 12 3 +BEGIN + KEY "valuta" + PROMPT 57 18 "" + FIELD CODVAL +END + +DATA 13 8 +BEGIN + KEY "data fattura" + PROMPT 64 18 "" + FIELD 33->DATADOC + FORMAT "1442-" +END + +STRINGA 14 7 +BEGIN + KEY "numero fattura" + PROMPT 77 18 "" + FIELD 33->NDOC +END + +STRINGA 15 2 +BEGIN + KEY "Numero di pagina" + PROMPT 90 18 "" + MESSAGE _PAGENO +END + +STRINGA 16 5 +BEGIN + KEY "codice cliente" + PROMPT 2 20 "" + FIELD 33->CODCF +END + +STRINGA 17 3 +BEGIN + KEY "codice agente" + PROMPT 10 20 "" + FIELD 33->CODAG +END + +STRING 18 6 +BEGIN + KEY "ordine" + PROMPT 28 20 "" + FIELD 33->NUMDOCRIF +END + +DATA 19 8 +BEGIN + KEY "data conferma" + PROMPT 17 20 "" + FIELD 33->DATADOCRIF + FORMAT "1442-" +END + +STRING 20 11 +BEGIN + KEY "copy partita iva" + PROMPT 1 1 "" + MESSAGE _CLIENTE,PAIV + MESSAGE COPY,21 + FLAGS "H" +END + +STRING 21 11 +BEGIN + KEY "test PIVA/CF" + PROMPT 1 1 "" + MESSAGE EMPTY ENABLE,23 + MESSAGE ENABLE,22 + FLAGS "H" +END + +STRING 22 11 +BEGIN + KEY "partita iva cliente" + PROMPT 37 20 "" + MESSAGE _CLIENTE,PAIV + FLAGS "D" +END + +STRING 23 16 +BEGIN + KEY "codice fiscale cliente" + PROMPT 37 20 "" + MESSAGE _CLIENTE,COFI + FLAGS "D" +END + +STRING 24 2 +BEGIN + KEY "codice iso iva cliente" + PROMPT 37 20 "" + MESSAGE _CLIENTE,STATOPAIV + FLAGS "D" +END + +STRINGA 25 12 +BEGIN + KEY "porto" + PROMPT 59 20 "" + FIELD 203@->S0 +END + +STRING 26 15 +BEGIN + KEY "causale di trasporto" + PROMPT 74 20 "" + FIELD 207@->S0 +END + +STRINGA 27 28 +BEGIN + KEY "condizioni di pagamento" + PROMPT 2 22 "" + FIELD 201@->S0 +END + +STRINGA 28 27 +BEGIN + KEY "banca d'appoggio istituto" + PROMPT 37 22 "" + FIELD 208@->S0 +END + +STRINGA 29 27 +BEGIN + KEY "banca d'appoggio agenzia" + PROMPT 65 22 "" + FIELD 204@->S0 +END + +STRINGA 30 45 2 +BEGIN + KEY "cliente ragione sociale " + PROMPT 48 10 "" + MESSAGE _CLIENTE,!RAGSOC +END + +STRINGA 31 45 2 +BEGIN + KEY "cliente indirizzo con numero civico" + PROMPT 48 12 "" + MESSAGE _CLIENTE,!INDNUM +END + +STRING 32 45 1 +BEGIN + KEY "cliente, localita" + PROMPT 48 14 "" + MESSAGE _CLIENTE,LOCALITACF +END + +STRINGA 33 5 1 +BEGIN + KEY "cliente cap" + PROMPT 48 15 "" + MESSAGE _CLIENTE,!CAP +END + +STRINGA 34 38 2 +BEGIN + KEY "cliente comune" + PROMPT 54 15 "" + MESSAGE _CLIENTE,!COM->DENCOM + MESSAGE COPY,36 + FLAGS "H" +END + +STRINGA 35 2 1 +BEGIN + KEY "cliente provincia" + PROMPT 73 16 "" + MESSAGE _CLIENTE,!COM->PROVCOM + MESSAGE APPEND,36 + FLAGS "H" +END + +STRINGA 36 40 2 +BEGIN + KEY "cliente comune+prov." + PROMPT 54 15 "" +END + +STRINGA 37 3 +BEGIN + KEY "cliente codice stato" + PROMPT 48 16 "" + MESSAGE _CLIENTE,STATOCF + FLAGS "H" +END + +STRINGA 38 25 +BEGIN + KEY "cliente nome stato" + PROMPT 48 16 "" + MESSAGE _TABLEREAD,%STA,#37,S0 + FLAGS "D" +END + +STRING 39 5 1 +BEGIN + KEY "test indirizzo di spedizione" + PROMPT 1 1 "" + FLAGS "H" + FIELD 33->CODINDSP + MESSAGE EMPTY ENABLE,10@|DISABLE,11@|DISABLE,50 + MESSAGE DISABLE,10@|ENABLE,11@|DISABLE,50 +END + +STRING 40 35 2 +BEGIN + KEY "destinazione, Rag Sociale" + PROMPT 3 10 "" + FIELD 16->RAGSOC + GROUP 11 + FLAGS "D" +END + +STRING 41 35 1 +BEGIN + KEY "destinazione, indirizzo" + PROMPT 3 12 "" + FIELD 16->INDIR + MESSAGE COPY,43 + FLAGS "H" +END + +STRING 42 10 1 +BEGIN + KEY "destinazione, num. civico" + PROMPT 3 12 "" + FIELD 16->CIV + MESSAGE APPEND,43 + FLAGS "H" +END + +STRING 43 35 2 +BEGIN + KEY "destinazione, indirizzo+N.civico" + PROMPT 3 12 "" + GROUP 11 + FLAGS "D" +END + +STRING 44 35 1 +BEGIN + KEY "destinazione, localita" + PROMPT 3 14 "" + FIELD 16->LOCALITA + GROUP 11 + FLAGS "D" +END + +STRING 45 5 1 +BEGIN + KEY "destinazione, cap" + PROMPT 3 15 "" + FIELD 16->CAP + GROUP 11 + FLAGS "D" +END + +STRING 46 5 1 +BEGIN + KEY "" + PROMPT 1 1 "" + FLAGS "H" + FIELD 16->COM +END + +STRING 47 25 2 +BEGIN + KEY "destinazione, comune" + PROMPT 9 15 "" + MESSAGE _ISAMREAD,13,COM=#46,DENCOM + MESSAGE COPY,49 + FLAGS "H" +END + +STRING 48 2 +BEGIN + KEY "destinazione, provincia" + PROMPT 31 15 "" + MESSAGE _ISAMREAD,13,COM=#46,PROVCOM + MESSAGE APPEND,49 + FLAGS "H" +END + +STRING 49 27 2 +BEGIN + KEY "destinazione, comune+provincia" + PROMPT 9 15 "" + GROUP 11 + FLAGS "D" +END + +STRING 50 30 1 +BEGIN + KEY "destinazione, idem" + PROMPT 3 10 "IDEM" + FLAGS "D" +END + +STRING 51 35 2 +BEGIN + KEY "destinatario, ditta dest" + PROMPT 3 10 "" + MESSAGE _CLIENTE,!RAGSOC + GROUP 10 + FLAGS "D" +END + +STRING 52 35 2 +BEGIN + KEY "destinatario, indirizzo con numero civico dest" + PROMPT 3 12 "" + MESSAGE _CLIENTE,!INDNUM + GROUP 10 + FLAGS "D" +END + +STRING 53 35 1 +BEGIN + KEY "destinatario, localita" + PROMPT 3 14 "" + MESSAGE _CLIENTE,LOCALITACF + GROUP 10 + FLAGS "D" +END + +STRING 54 5 1 +BEGIN + KEY "destinatario, cap dest" + PROMPT 3 15 "" + MESSAGE _CLIENTE,CAPCF + GROUP 10 + FLAGS "D" +END + +STRING 55 25 1 +BEGIN + KEY "destinatario, comune dest" + PROMPT 9 15 "" + MESSAGE _CLIENTE,!COM->DENCOM + FLAGS "H" + MESSAGE COPY,57 +END + +STRING 56 2 +BEGIN + KEY "destinatario, provincia dest" + PROMPT 31 15 "" + MESSAGE _CLIENTE,!COM->PROVCOM + FLAGS "H" + MESSAGE APPEND,57 +END + +STRING 57 27 1 +BEGIN + KEY "destinatario, comune dest + prov" + PROMPT 9 15 "" + FLAGS "D" + GROUP 10 +END + +STRINGA 58 3 1 +BEGIN + KEY "cliente codice stato" + PROMPT 3 16 "" + MESSAGE _CLIENTE,STATOCF + FLAGS "D" +END + +STRINGA 59 35 1 +BEGIN + KEY "cliente nome stato" + PROMPT 3 16 "" + MESSAGE _TABLEREAD,%STA,#58,S0 + FLAGS "D" +END + +END + +SECTION BODY ODD 5 + +STRINGA 81 12 1 +BEGIN + KEY "codice articolo" + FIELD 34->CODART + PROMPT 2 1 "" +END + +STRINGA 82 22 22 +BEGIN + KEY "descrizione articolo" + MESSAGE _DESCRIGA + PROMPT 16 1 "" +END + +STRINGA 83 2 +BEGIN + KEY "unita' di misura" + PROMPT 40 1 "" + FIELD 34->UMQTA + MESSAGE _ALIGN,#82,BOTTOM +END + +NUMBER 84 10 +BEGIN + KEY "quantita'" + PROMPT 44 1 "" + FIELD 34->QTA + PICTURE "##.###.###" + GROUP 30 + MESSAGE _ALIGN,#82,BOTTOM +END + +NUMBER 85 11 +BEGIN + KEY "prezzo unitario" + PROMPT 56 1 "" + FIELD 34->PREZZO + PICTURE "###.###.###" + GROUP 29 + MESSAGE _ALIGN,#82,BOTTOM +END + +STRINGA 86 4 +BEGIN + KEY "sconto" + PROMPT 69 1 "" + FIELD 34->SCONTO + MESSAGE _ALIGN,#82,BOTTOM +END + +NUMBER 87 11 +BEGIN + KEY "importo netto" + PROMPT 74 1 "" + FIELD 34->IMPNS + PICTURE "###.###.###" + GROUP 29 + MESSAGE _ALIGN,#82,BOTTOM +END + +STRINGA 88 3 +BEGIN + KEY "iva" + PROMPT 89 1 "" + FIELD 34->CODIVA + MESSAGE _ALIGN,#82,BOTTOM +END + +NUMBER 89 15 +BEGIN + KEY "prezzo unitario scontato" + PROMPT 68 1 "" + PICTURE "###.###.###.###" + FIELD 34->PREZZONS + GROUP 29 + MESSAGE _ALIGN,#82,BOTTOM + FLAGS "H" +END + +NUMBER 90 15 +BEGIN + KEY "provvigione" + PROMPT 68 1 "" + PICTURE "###.###.###.###" + FIELD 34->PROVVR + MESSAGE _ALIGN,#82,BOTTOM + GROUP 31 + FLAGS "H" +END + +NUMBER 91 15 +BEGIN + KEY "Imposta" + PROMPT 68 1 "" + PICTURE "###.###.###.###" + FIELD 34->IMPOSTA + MESSAGE _ALIGN,#82,BOTTOM + GROUP 31 + FLAGS "H" +END + +NUMBER 92 4 +BEGIN + KEY "n. colli" + PROMPT 44 1 "" + FIELD 34->NCOLLI + PICTURE "####" + MESSAGE _ALIGN,#82,BOTTOM + FLAGS "D" +END + +NUMBER 93 4 +BEGIN + KEY "Tara" + PROMPT 55 1 "" + FIELD 34->TARA + PICTURE "####" + GROUP 30 + MESSAGE _ALIGN,#82,BOTTOM + FLAGS "D" +END + +END + +SECTION FOOTER ODD -43 + +STRINGA 100 5 1 +BEGIN + KEY "stampa 'segue' in coda" + PROMPT 80 14 "SEGUE" +END + +END + +SECTION FOOTER LAST -43 + +NUMBER 101 12 +BEGIN + KEY "totale importi netti (non scontati)" + PROMPT 2 3 "" + FIELD TOTMER + PICTURE "###.###.###" + GROUP 31 +END + +STRINGA 102 7 +BEGIN + KEY "% sconto" + PROMPT 23 3 "" + FIELD 33->SCONTOPERC +END + +NUMBER 103 11 +BEGIN + KEY "totale sconti" + PROMPT 32 3 "" + FIELD SCONTOT + PICTURE "###.###.###" + GROUP 31 +END + +NUMBER 104 11 +BEGIN + KEY "spese di trasporto" + PROMPT 46 3 "" + PICTURE "###.###.###" + FIELD SPESTRA + GROUP 31 +END + +NUMBER 105 11 +BEGIN + KEY "spese di imballo" + PROMPT 58 3 "" + PICTURE "###.###.###" + FIELD SPESIMB + GROUP 31 +END + +NUMBER 106 9 +BEGIN + KEY "spese di incasso" + PROMPT 71 3 "" + PICTURE "#.###.###" + FIELD SPESINC + GROUP 31 +END + +NUMBER 107 7 +BEGIN + KEY "spese bolli" + PROMPT 83 3 "" + FIELD BOLLI + PICTURE "###.###" + GROUP 31 +END + +STRING 108 3 +BEGIN + KEY "codice iva 1" + PROMPT 2 5 "" + MESSAGE _RIEPILOGOIVA,1,COD,0 +END + +NUMBER 109 11 +BEGIN + KEY "imponibile 1" + PROMPT 8 5 "" + MESSAGE _RIEPILOGOIVA,1,IMP,0 + PICTURE "###.###.###" + GROUP 31 +END + +NUMBER 110 2 +BEGIN + KEY "iva 1" + PROMPT 23 5 "" + MESSAGE _RIEPILOGOIVA,1,ALI,0 + PICTURE "##" +END + +NUMBER 111 11 +BEGIN + KEY "imposta 1" + PROMPT 28 5 "" + MESSAGE _RIEPILOGOIVA,1,IVA,1 + PICTURE "###.###.###" + GROUP 31 +END + +STRING 112 3 +BEGIN + KEY "codice iva 2" + PROMPT 2 6 "" + MESSAGE _RIEPILOGOIVA,1,COD,0 +END + +NUMBER 113 11 +BEGIN + KEY "imponibile 2" + PROMPT 8 6 "" + MESSAGE _RIEPILOGOIVA,1,IMP,0 + PICTURE "###.###.###" + GROUP 31 +END + +NUMBER 114 2 +BEGIN + KEY "iva 2" + PROMPT 23 6 "" + MESSAGE _RIEPILOGOIVA,1,ALI,0 + PICTURE "##" +END + +NUMBER 115 11 +BEGIN + KEY "imposta 2" + PROMPT 28 6 "" + MESSAGE _RIEPILOGOIVA,1,IVA,1 + PICTURE "###.###.###" + GROUP 31 +END + +STRING 116 3 +BEGIN + KEY "codice iva 3" + PROMPT 2 7 "" + MESSAGE _RIEPILOGOIVA,1,COD,0 +END + +NUMBER 117 11 +BEGIN + KEY "imponibile 3" + PROMPT 8 7 "" + MESSAGE _RIEPILOGOIVA,1,IMP,0 + PICTURE "###.###.###" + GROUP 31 +END + +NUMBER 118 2 +BEGIN + KEY "iva 3" + PROMPT 23 7 "" + MESSAGE _RIEPILOGOIVA,1,ALI,0 + PICTURE "##" +END + +NUMBER 119 11 +BEGIN + KEY "imposta 3" + PROMPT 28 7 "" + MESSAGE _RIEPILOGOIVA,1,IVA,1 + PICTURE "###.###.###" + GROUP 31 +END + +NUMBER 120 11 +BEGIN + KEY "imponibile 4" + PROMPT 8 8 "" + MESSAGE _RIEPILOGOIVA,30,IMP,0 + PICTURE "###.###.###" + GROUP 31 +END + +STRINGA 121 3 +BEGIN + KEY "codice iva 4" + PROMPT 2 8 "" + MESSAGE _RIEPILOGOIVA,30,COD,0 +END + +STRINGA 122 45 +BEGIN + KEY "descrizione altri 4" + PROMPT 43 8 "" + MESSAGE _RIEPILOGOIVA,30,DES,1 +END + +NUMBER 123 11 +BEGIN + KEY "imponibile 5" + PROMPT 8 9 "" + MESSAGE _RIEPILOGOIVA,30,IMP,0 + PICTURE "###.###.###" + GROUP 31 +END + +STRINGA 124 3 +BEGIN + KEY "codice iva 5" + PROMPT 2 9 "" + MESSAGE _RIEPILOGOIVA,30,COD,0 +END + +STRINGA 125 45 +BEGIN + KEY "descrizione altri 5" + PROMPT 43 9 "" + MESSAGE _RIEPILOGOIVA,30,DES,1 +END + +NUMBER 126 13 +BEGIN + KEY "totale imponibile" + PROMPT 6 11 "" + MESSAGE _TOTIMPONIBILI,29 + PICTURE "#.###.###.###" + GROUP 31 +END + +NUMBER 127 13 +BEGIN + KEY "totale imposta" + PROMPT 26 11 "" + FIELD IMPOSTE + PICTURE "#.###.###.###" + GROUP 31 +END + +NUMBER 128 11 +BEGIN + KEY "totale esenti" + PROMPT 45 11 "" + MESSAGE _TOTIMPONIBILI,28 + PICTURE "###.###.###" + GROUP 31 +END + +NUMBER 130 13 +BEGIN + KEY "totale fattura" + PROMPT 78 11 "" + FIELD TOTDOC + PICTURE "#.###.###.###" + GROUP 31 + MESSAGE COPY,138 +END + +NUMBER 137 13 +BEGIN + KEY "acconto" + PROMPT 78 5 "" + FIELD 33->IMPPAGATO + PICTURE "#.###.###.###" + GROUP 31 + MESSAGE SUB,138 +END + +NUMBER 138 13 +BEGIN + KEY "netto a pagare" + PROMPT 78 13 "" + PICTURE "#.###.###.###" + GROUP 31 +END + +DATA 143 8 +BEGIN + KEY "scadenza pagamento 1" + PROMPT 2 13 "" + MESSAGE _SCADENZE,DATA,0 + FORMAT "1442-" +END + +NUMBER 144 11 +BEGIN + KEY "importo scadenza 1" + PROMPT 11 13 "" + MESSAGE _SCADENZE,IMPORTO,1 + PICTURE "###.###.###" + GROUP 31 +END + +DATA 145 8 +BEGIN + KEY "scadenza pagamento 2" + PROMPT 23 13 "" + MESSAGE _SCADENZE,DATA,0 + FORMAT "1442-" +END + +NUMBER 146 11 +BEGIN + KEY "importo scadenza 2" + PROMPT 32 13 "" + MESSAGE _SCADENZE,IMPORTO,1 + PICTURE "###.###.###" + GROUP 31 +END + +DATA 147 8 +BEGIN + KEY "scadenza pagamento 3" + PROMPT 2 14 "" + MESSAGE _SCADENZE,DATA,0 + FORMAT "1442-" +END + +NUMBER 148 11 +BEGIN + KEY "importo scadenza 3" + PROMPT 11 14 "" + MESSAGE _SCADENZE,IMPORTO,1 + PICTURE "###.###.###" + GROUP 31 +END + +DATA 149 8 +BEGIN + KEY "scadenza pagamento 4" + PROMPT 32 14 "" + MESSAGE _SCADENZE,DATA,0 + FORMAT "1442-" +END + +NUMBER 150 11 +BEGIN + KEY "importo scadenza 4" + PROMPT 44 14 "" + MESSAGE _SCADENZE,IMPORTO,1 + PICTURE "###.###.###" + GROUP 31 +END + +DATA 151 8 +BEGIN + KEY "scadenza pagamento 5" + PROMPT 23 26 "" + MESSAGE _SCADENZE,DATA,0 + FORMAT "1442-" + FLAGS "D" +END + +NUMBER 152 11 +BEGIN + KEY "importo scadenza 5" + PROMPT 32 26 "" + MESSAGE _SCADENZE,IMPORTO,1 + PICTURE "###.###.###" + GROUP 31 + FLAGS "D" +END + +LIST 153 1 1 +BEGIN + KEY "trasporto a cura del mittente" + PROMPT 2 17 "" + FIELD CODSPMEZZO + ITEM "|" MESSAGE DISABLE,6@|ENABLE,5@ + ITEM "D| " + ITEM "M|X" MESSAGE DISABLE,6@|ENABLE,5@ + ITEM "V| " +END + +LIST 154 1 1 +BEGIN + KEY "trasporto a cura del destinatario" + PROMPT 14 17 "" + FIELD CODSPMEZZO + ITEM "|" MESSAGE DISABLE,6@|ENABLE,5@ + ITEM "D|X" MESSAGE DISABLE,6@|ENABLE,5@ + ITEM "M| " + ITEM "V| " +END + +LIST 155 1 1 +BEGIN + KEY "trasporto a cura del vettore" + PROMPT 28 17 "" + FIELD CODSPMEZZO + ITEM "|" // default + ITEM "D| " + ITEM "M| " + ITEM "V|X" MESSAGE DISABLE,5@|ENABLE,6@ +END + +STRING 156 30 1 +BEGIN + KEY "aspetto beni" + PROMPT 39 17 "" + FIELD 206@->S0 +END + +STRING 157 9 1 +BEGIN + KEY "peso" + PROMPT 72 17 "" + FIELD 33->PNETTO +END + +STRING 158 7 1 +BEGIN + KEY "colli" + PROMPT 84 17 "" + FIELD 33->NCOLLI +END + +STRING 159 45 1 +BEGIN + KEY "nome vettore" + PROMPT 2 19 "" + FIELD 205@->S0 +END + +STRING 160 35 1 +BEGIN + // nella versione 05 togliere MESSAGE COPY + KEY "indirizzo vettore" + PROMPT 2 20 "" + FIELD 205@->S1[1,35] + MESSAGE COPY,163 + FLAGS "H" +END + +STRING 161 35 1 +BEGIN + // nella versione 05 sostituire FLAGS "D" con FLAGS "H" + KEY "indirizzo vettore" + PROMPT 2 20 "" + MESSAGE _STREXPR,TRIM(#160) + FLAGS "D" + MESSAGE COPY,163 +END + +STRING 162 10 1 +BEGIN + KEY "num.civico vettore" + PROMPT 2 20 "" + FIELD 205@->S1[36,45] + MESSAGE APPEND,163 + FLAGS "H" +END + +STRING 163 45 1 +BEGIN + KEY "indirizzo vettore+num.civico" + PROMPT 2 20 "" +END + +STRING 164 35 1 +BEGIN + KEY "localita' vettore" + PROMPT 2 20 "" + FIELD 205@->S1[46,70] + FLAGS "D" +END + +STRING 165 5 +BEGIN + KEY "CAP vettore" + PROMPT 2 21 "" + FIELD 205@->S7 +END + +STRING 166 5 1 +BEGIN + KEY "Codice comune vettore" + PROMPT 1 1 "" + FIELD 205@->S9 + FLAGS "H" +END + +STRING 167 35 1 +BEGIN + KEY "Denominazione comune vettore" + PROMPT 8 21 "" + MESSAGE _ISAMREAD,13,COM=#166,DENCOM + MESSAGE COPY,169 + FLAGS "H" +END + +STRING 168 2 +BEGIN + KEY "Provincia comune vettore" + PROMPT 42 21 "" + MESSAGE _ISAMREAD,13,COM=#166,PROVCOM + MESSAGE APPEND,169 + FLAGS "H" +END + +STRING 169 39 1 +BEGIN + KEY "vettore, comune+provincia" + PROMPT 8 21 "" +END + +DATE 170 8 1 +BEGIN + KEY "data ritiro" + PROMPT 51 19 "" + FIELD DATAPART + FORMAT "1442-" +END + +STRING 171 5 1 +BEGIN + KEY "ora ritiro" + PROMPT 62 19 "" + PICTURE "##.##" + FIELD ORAPART +END + +STRING 172 50 1 +BEGIN + KEY "note documento" + PROMPT 2 23 "" + FIELD 211@->S0 +END + + +END + +// NOTE SULLA COMPILAZIONE DEI FORM DI STAMPA +// +// SEZIONE GENERAL +// =============== +// Posizionamento: +// e' possibile effettuari posizionamenti manuali dei form con le seguenti istruzioni: +// CARATTERE +// INIZIALE +// FINALE +// dove: +// CARATTERE indica il carattere da stampare per contrassegnare il posizionamento, racchiuso tra doppi apici (eg "X") +// INIZIALE indica le coordinate X ed Y per il posizionamento iniziale (dove stampare il primo carattere) +// FINALE indica le coordinate X ed Y per il posizionamento finale (dove stampare il secondo carattere) +// FINALE puo' essere omesso; se definito e' comunque buona norma tenere la coordinata verticale (Y) uguale +// a quella indicata in INIZIALE, se diversi il programma tiene conto solo della prima. +// Non e' possibile definire sia posizionamenti manuali che OFFSET, quindi o l'uno o l'altro, preferibilmente +// e' meglio scegliere OFFSET. +// +// Modificatori di pictures: +// i parametri IMP_DECIMALS, QTA_DECIMALS, e PRI_DECIMALS settano i decimali da stampare/arrotondare +// per i seguenti: importi in genere, quantita', e prezzi. Il primo parametro intero e' per gli importi in lire +// il secondo per gli importi in valuta. Naturalmente per le quantita' non ha senso fare una cosa del genere, ma per completezza +// e' stata implementata. +// PRI_DECIMALS corrisponde al gruppo 29 +// QTA_DECIMALS corrisponde al gruppo 30 +// IMP_DECIMALS corrisponde al gruppo 31 +// pertanto tutti i campi che apparterranno al gruppo 29,30 o 31 avranno gli importi stampati al numero di decimali impostati a +// seconda se il documento e' in lire o valuta. Se il numero di decimali e' 0 la picture rimarra' invariata. +// Altri gruppi definiti dall'utente saranno cosi' sintatticamente impostati: +// NEW_GROUP +// Dove e' il numero del gruppo +// e' il numero di decimali per i documenti in lire +// e' il numero di decimali per i documenti in valuta +// +// Definizione di liste di esclusione (facoltativo): +// EXCLUDE esclude dalla stampa le righe che soddisfano la condizione specificata. +// Si indicano in questo modo: ",". Naturalmente si possono indicare tutti gli EXLCUDE che si vogliono. +// Es: EXCLUDE "V01,ART1" escludera' tutte le righe di tipo V01 con codice articolo ART1 +// EXCLUDE ",ART1" escludera' tutte le righe che hanno codice articolo ART1 +// EXCLUDE "V01," escludera' tutte le righe che hanno tipo riga V01 +// EXCLUDE "," non escludera' nulla. +// +// MESSAGGI UTENTE +// =============== +// Note sui messaggi della testata/body/footer: +// +// _ISAMREAD: +// lettura generica di un file del database +// sintassi: _ISAMREAD,,[!!...],{|[!!...]} +// dove: č il numero logico del file o il nome della tabella +// č un'espressione del tipo = +// č un'espressione di costanti numeriche, stringhe e valori di campi della form (indicati con il loro numero preceduto da #) +// č un'espressione del tipo = (se č un gruppo deve essere seguito da @) oppure solo (il campo della form č quello corrente) +// +// _TABLEREAD: +// lettura generica di un campo di una tabella +// sintassi: _TABLEREAD,,, +// dove: nome tabella da leggere +// costante stringa o riferimento a campo della form (preceduto da '#') da usare come chiave di ricerca +// identificativo del campo da leggere dalla tabella +// +// _DITTA: +// lettura dei dati della ditta +// sintassi: _DITTA,{|} +// dove: č un riferimento alla relazione di gestione dei dati della ditta (es. 113@->DENCOM č la denominazione del comune di residenza della ditta) +// č uno delle macro seguenti: +// !RAGSOC ragione sociale +// !IND indirizzo (fiscale se c'č, oppure di residenza) +// !NUM numero civico (fiscale se c'č, oppure di residenza) +// !CAP CAP (fiscale se c'č, oppure di residenza) +// !COM comune (fiscale se c'č, oppure di residenza) +// !PROV provincia (fiscale se c'č, oppure di residenza) +// !IVA partita iva +// !CF codice fiscale +// !TEL numero di telefono (con prefisso) +// !FAX numero di fax (con prefisso) +// !REGSOC numero di registrazione presso il Tribunale +// !CCIAA numero di registrazione presso la camera di commercio +// nota: la relazione della ditta č cosģ strutturata: +// %NDITTE (9) Dati ditte +// + %ANAGR (6) Anagrafica generale (indirizzo, ecc.) +// + %COMUNI (113@) Comune di residenza +// + %COMUNI (213@) Comune di residenza fiscale +// viene utilizzato perche' non e' possibile stabilire altrimenti una relazione con il file ditte +// dall'interno del form. +// +// _CLIENTE +// lettura dei dati del cliente +// sintassi: _CLIENTE,{|} +// dove: č un riferimento alla relazione di gestione dei dati del cliente +// č uno delle macro seguenti: +// !RAGSOC ragione sociale +// !CAP Codice Avviamento Postale (viene implementato un messaggio perche' sugli occasionali ha un nome campo diverso!!) +// !IND indirizzo +// !NUM numero civico +// !INDNUM indirizzo + numero civico +// !INDSPED indirizzo spedizione + numero civico +// !TEL primo numero di telefono (con prefisso) +// !TEL2 secondo numero di telefono (con prefisso) +// !TEL3 terzo numero di telefono (con prefisso) +// !FAX numero di fax (con prefisso) +// !COM-> accede ai campi del comune di residenza cliente +// !COMN-> accede ai campi del comune di nascita del cliente +// nota: la relazione del cliente č cosģ strutturata: +// CLIFO (20) Clienti/fornitori +// + CFVEN (17) Clienti/fornitori per vendite +// + %COMUNI (113@) Comune di residenza +// + %COMUNI (213@) Comune di nascita +// viene utilizzato al posto del file 17 collegato perche' vi sono particolari +// accorgimenti per quanto riguarda i clienti occasionali. +// +// _DESCRIGA: +// Messaggio per reperire e formattare anche la descrizione estesa sulle righe del documento +// +// _ALIGN: +// allineamento della posizione di un campo rispetto ad un altro +// sintassi: _ALIGN,[,][,...] +// dove: č il campo della form (preceduto da '#') da cui prendere l'allineamento +// č uno dei seguenti valori: +// TOP allinea sulla riga d'inizio +// MIDDLE allinea al centro (effettivo) +// BOTTOM allinea sulla riga di fine (effettiva, non preimpostata) +// LEFT allinea sulla colonna d'inizio +// RIGHT allinea sulla colonna di fine +// +// _PAGENO: +// Messaggio per stampare il numero di pagina corrente +// +// _RIEPILOGOIVA: +// messaggio per stampare la tabella ripelogativa delle aliquote IVA e relative imposte +// sintassi: _RIEPILOGOIVA,,, +// dove: č uno dei seguenti: +// 1 = codici IVA a regime normale +// 2 = codici IVA da ventilare +// 4 = codici IVA esenti +// 8 = codici IVA non imponibili +// 16 = codici IVA non soggetti +// oppure la combinazione di uno o piu' di essi: +// 12 = 4+8, 19 = 1+2+16, 29 = 1+4+8+16 ecc... +// pertanto per avere i non imponibili in totale il selettore sara' 1, +// per avere gli esenti il selettore sara' 4; per avere i non soggetti + esenti +// il selettore sara' 20 e cosi' via. +// dove: č uno dei seguenti: +// COD colonna dei codici +// IMP colonna degli imponibili +// IVA colonna delle imposte +// ALI colonna delle aliquote +// DES colonna delle descrizioni (stampata solo se il regime IVA non e' normale) +// dove: č uno dei seguenti: +// 0 indica di non leggere il successivo codice IVA nella tabella riepilogativa +// 1 indica di leggere il successivo codice IVA nella tabella riepilogativa +// +// _TOTIMPONIBILI: +// messaggio per stampare diverse totalizzazioni di imponibili +// sintassi: _TOTIMPONIBILI, +// dove: funge da filtro per la somma degli imponibili +// vedi _RIEPILOGOIVA per la spiegazione dei filtri selettivi +// +// _SCADENZE: +// messaggio per stampare le scadenze +// sintassi: _SCADENZE,, +// dove e' uno dei seguenti: +// DATA : stampa la data di scadenza +// IMPORTO : stampa l'importo in scadenza +// dove vale 0 o 1 se indica di rendere corrente la prossima scadenza +// +// CAMPI VIRTUALI +// ============== +// Oltre a stampare i campi normali del file e' anche possibile stampare i campi virtuali +// definiti nei profili semplicemente indicandoli nella istruzione FIELD: +// per la testata del documento: +// BOLLI, BASESCONTO, IMPOSTE, PROVVD, SCONTOD, SPESEINC, TOTDOC, TOTMER, TOTNS, TOTPRE, TOTSPE +// per le righe: +// IMPLN, IMPLS, IMPNN, IMPNS, IMPOSTA, PREZZOLN, PREZZOLS, PREZZONN, PREZZONS, PROVVR, SCONTOR +// oltre, naturalmente a quelli definiti dall'utente + diff --git a/ve/vebolbmp.frm b/ve/vebolbmp.frm index 1f1a93359..d55ee47c0 100755 --- a/ve/vebolbmp.frm +++ b/ve/vebolbmp.frm @@ -9,6 +9,8 @@ JOIN %BAN TO 33 ALIAS 204 INTO CODTAB==CODABIA+CODCABA JOIN %VET TO 33 ALIAS 205 INTO CODTAB==CODVETT1 JOIN %ABE TO 33 ALIAS 206 INTO CODTAB==ASPBENI1 JOIN %CTR TO 33 ALIAS 207 INTO CODTAB==CAUSTRASP +JOIN %BAN TO 33 ALIAS 208 INTO CODTAB==CODABIA +JOIN %NDO TO 33 ALIAS 209 INTO CODTAB==CODNOTESP1 END DESCRIPTION @@ -20,41 +22,53 @@ BEGIN 201@->* "Tabella condizioni di pagamento" 122->* "Archivio agenti" 203@->* "Tabella porto" - 204@->* "Tabella banche" + 204@->* "Tabella banche istituto" 205@->* "Tabella vettori" 206@->* "Tabella aspetto beni" 207@->* "Tabella causali di trasporto" + 208@->* "Tabella banche agenzia" + 209@->* "Tabella note documento" END GENERAL BEGIN OFFSET 0 0 FONT "Courier New" - SIZE 12 - MODULE "BUFFETTI_BOLLA_01" + SIZE 11 + MODULE "BOLLA STANDARD AGA" PRI_DECIMALS 0 3 QTA_DECIMALS 3 3 IMP_DECIMALS 0 3 - EXCLUDE "," + EXCLUDE "08," END SECTION GRAPHICS ODD -FIGURA 99 79 63 +FIGURA 99 84 63 BEGIN - PROMPT 2 7 "bolla.bmp" + PROMPT 1 2 "bolla.bmp" END END -SECTION HEADER ODD 33 +SECTION HEADER ODD 32 + +STRINGA 200 1 +BEGIN + KEY "abilita/disabilita stampa intestazione ditta " + PROMPT 1 1 "" + MESSAGE ENABLE,15@ + FLAGS "H" +END STRING 1 36 1 BEGIN KEY "nome ditta" PROMPT 5 5 "" MESSAGE _DITTA,!RAGSOC + GROUP 15 + FLAGS "D" END STRING 2 36 1 @@ -62,6 +76,8 @@ BEGIN KEY "indirizzo ditta" PROMPT 5 6 "" MESSAGE _DITTA,!IND + GROUP 15 + FLAGS "D" END STRING 3 5 1 @@ -69,6 +85,8 @@ BEGIN KEY "cap ditta" PROMPT 5 7 "" MESSAGE _DITTA,!CAP + GROUP 15 + FLAGS "D" END STRING 4 30 1 @@ -76,12 +94,16 @@ BEGIN KEY "comune ditta" PROMPT 12 7 "" MESSAGE _DITTA,!COM + GROUP 15 + FLAGS "D" END STRING 5 5 1 BEGIN KEY "scritta P.IVA" PROMPT 5 8 "P.IVA" + GROUP 15 + FLAGS "D" END STRING 6 16 1 @@ -89,12 +111,16 @@ BEGIN KEY "partita iva ditta" PROMPT 11 8 "" MESSAGE _DITTA,!IVA + GROUP 15 + FLAGS "D" END STRING 7 9 1 BEGIN KEY "scritta COD.FISC." PROMPT 5 9 "COD.FISC." + GROUP 15 + FLAGS "D" END STRING 8 16 1 @@ -102,73 +128,148 @@ BEGIN KEY "codice fiscale ditta" PROMPT 15 9 "" MESSAGE _DITTA,!CF + GROUP 15 + FLAGS "D" END -STRING 9 35 2 +STRINGA 9 2 BEGIN - KEY "destinatario, ditta" - PROMPT 44 16 "" - MESSAGE _CLIENTE,!RAGSOC + KEY "Numero di pagina" + PROMPT 81 25 "" + MESSAGE _PAGENO END STRING 10 35 2 +BEGIN + KEY "destinatario, ditta" + PROMPT 45 16 "" + MESSAGE _CLIENTE,!RAGSOC +END + +STRING 11 35 2 BEGIN KEY "destinatario, indirizzo con numero civico" - PROMPT 44 18 "" + PROMPT 45 18 "" MESSAGE _CLIENTE,!INDNUM END -STRING 11 5 1 +STRING 12 35 1 +BEGIN + KEY "destinatario, localita" + PROMPT 45 20 "" + MESSAGE _CLIENTE,LOCALITACF +END + +STRING 13 5 1 BEGIN KEY "destinatario, cap" - PROMPT 44 20 "" + PROMPT 45 21 "" MESSAGE _CLIENTE,!CAP END -STRING 12 30 2 +STRING 14 30 2 BEGIN KEY "destinatario, comune" - PROMPT 50 20 "" + PROMPT 51 21 "" MESSAGE _CLIENTE,!COM->DENCOM + MESSAGE COPY,16 + FLAGS "H" END -STRING 13 2 +STRING 15 2 BEGIN KEY "destinatario, provincia" - PROMPT 72 21 "" + PROMPT 73 22 "" MESSAGE _CLIENTE,!COM->PROVCOM -END - -DATE 14 8 1 -BEGIN - KEY "data bolla" - PROMPT 59 25 "" - FIELD 33->DATADOC - FORMAT "1442-" -END - -NUMBER 15 7 -BEGIN - KEY "numero bolla" - PROMPT 70 25 "" - FIELD NDOC + MESSAGE APPEND,16 + FLAGS "H" END STRING 16 30 2 BEGIN - KEY "destinazione, indirizzo" - PROMPT 3 16 "" - FIELD 16->INDIR + KEY "destinatario, comune + prov." + PROMPT 51 21 "" END -STRING 17 5 1 +DATE 17 8 1 +BEGIN + KEY "data bolla" + PROMPT 60 25 "" + FIELD 33->DATADOC + FORMAT "1442-" +END + +NUMBER 18 7 +BEGIN + KEY "numero bolla" + PROMPT 72 25 "" + FIELD NDOC +END + +STRING 19 5 1 +BEGIN + KEY "test indirizzo di spedizione" + PROMPT 1 1 "" + FLAGS "H" + FIELD CODINDSP + MESSAGE EMPTY ENABLE,10@|DISABLE,11@|DISABLE,30 + MESSAGE DISABLE,10@|ENABLE,11@|DISABLE,30 +END + +STRING 20 35 2 +BEGIN + KEY "destinazione, Rag Sociale" + PROMPT 3 16 "" + FIELD 16->RAGSOC + GROUP 11 + FLAGS "D" +END + +STRING 21 35 1 +BEGIN + KEY "destinazione, indirizzo" + PROMPT 3 18 "" + FIELD 16->INDIR + MESSAGE COPY,23 + FLAGS "H" +END + +STRING 22 10 1 +BEGIN + KEY "destinazione, indirizzo" + PROMPT 3 18 "" + FIELD 16->CIV + MESSAGE APPEND,23 + FLAGS "H" +END + +STRING 23 35 2 +BEGIN + KEY "destinazione, indirizzo+N.civico" + PROMPT 3 18 "" + GROUP 11 + FLAGS "D" +END + +STRING 24 35 1 +BEGIN + KEY "destinazione, localita" + PROMPT 3 20 "" + FIELD 16->LOCALITA + GROUP 11 + FLAGS "D" +END + +STRING 25 5 1 BEGIN KEY "destinazione, cap" - PROMPT 3 18 "" + PROMPT 3 21 "" FIELD 16->CAP + GROUP 11 + FLAGS "D" END -STRING 18 5 1 +STRING 26 5 1 BEGIN KEY "" PROMPT 1 1 "" @@ -176,96 +277,203 @@ BEGIN FIELD 16->COM END -STRING 19 21 +STRING 27 25 2 BEGIN KEY "destinazione, comune" - PROMPT 3 20 "" - MESSAGE _ISAMREAD,13,COM=#18,DENCOM + PROMPT 9 21 "" + MESSAGE _ISAMREAD,13,COM=#26,DENCOM + MESSAGE COPY,29 + FLAGS "H" END -STRING 20 2 1 +STRING 28 2 BEGIN KEY "destinazione, provincia" - PROMPT 26 20 "" - MESSAGE _ISAMREAD,13,COM=#18,PROVCOM + PROMPT 31 21 "" + MESSAGE _ISAMREAD,13,COM=#26,PROVCOM + MESSAGE APPEND,29 + FLAGS "H" END -NUMBER 21 +STRING 29 27 2 +BEGIN + KEY "destinazione, comune+provincia" + PROMPT 9 21 "" + GROUP 11 + FLAGS "D" +END + +STRING 30 30 1 +BEGIN + KEY "destinazione, idem" + PROMPT 3 16 "IDEM" + FLAGS "D" +END + +STRING 31 35 2 +BEGIN + KEY "destinatario, ditta dest" + PROMPT 3 16 "" + MESSAGE _CLIENTE,!RAGSOC + GROUP 10 + FLAGS "D" +END + +STRING 32 35 2 +BEGIN + KEY "destinatario, indirizzo con numero civico dest" + PROMPT 3 18 "" + MESSAGE _CLIENTE,!INDNUM + GROUP 10 + FLAGS "D" +END + +STRING 33 35 1 +BEGIN + KEY "destinatario, localita" + PROMPT 3 20 "" + MESSAGE _CLIENTE,LOCALITACF + GROUP 10 + FLAGS "D" +END + +STRING 34 5 1 +BEGIN + KEY "destinatario, cap dest" + PROMPT 3 21 "" + MESSAGE _CLIENTE,CAPCF + GROUP 10 + FLAGS "D" +END + +STRING 35 21 2 +BEGIN + KEY "destinatario, comune dest" + PROMPT 9 21 "" + MESSAGE _CLIENTE,!COM->DENCOM + FLAGS "H" + MESSAGE COPY,37 +END + +STRING 36 2 +BEGIN + KEY "destinatario, provincia dest" + PROMPT 31 22 "" + MESSAGE _CLIENTE,!COM->PROVCOM + FLAGS "H" + MESSAGE APPEND,37 +END + +STRING 37 21 2 +BEGIN + KEY "destinatario, comune dest + prov" + PROMPT 9 21 "" + FLAGS "D" + GROUP 10 +END + +STRING 38 10 BEGIN KEY "ordine" PROMPT 3 25 "" FIELD NUMDOCRIF END -DATE 22 8 1 +DATE 39 8 1 BEGIN KEY "data conferma" - PROMPT 18 25 "" + PROMPT 17 25 "" FIELD DATADOCRIF FORMAT "1442-" END -STRING 23 48 1 +STRING 40 25 1 BEGIN KEY "condizioni pagamento" PROMPT 3 27 "" FIELD 201@->S0 END -STRING 24 29 1 +STRING 41 27 1 BEGIN - KEY "banca appoggio" - PROMPT 53 27 "" - FIELD 204@->S0 + KEY "banca appoggio istituto" + PROMPT 30 27 "" + FIELD 208@->S0 END -STRING 25 7 1 +STRING 42 25 1 +BEGIN + KEY "banca appoggio agenzia" + PROMPT 58 27 "" + FIELD 204@->S0 + END + +STRING 43 7 1 BEGIN KEY "codice cliente" PROMPT 3 29 "" FIELD CODCF END -STRING 26 11 1 +STRING 44 11 1 +BEGIN + KEY "copy partita iva" + PROMPT 1 1 "" + MESSAGE _CLIENTE,PAIV + MESSAGE COPY,45 + FLAGS "H" +END + +STRING 45 11 1 +BEGIN + KEY "test PIVA/CF" + PROMPT 1 1 "" + MESSAGE EMPTY ENABLE,47 + MESSAGE ENABLE,46 + FLAGS "H" +END + +STRING 46 11 1 BEGIN KEY "partita iva cliente" PROMPT 12 29 "" MESSAGE _CLIENTE,PAIV -END - -STRING 27 18 1 -BEGIN - KEY "porto" - PROMPT 40 25 "" - FIELD 203@->S0 -END - -NUMBER 28 -BEGIN - KEY "codice agente" - PROMPT 28 29 "" - FIELD CODAG -END - -STRING 29 28 1 -BEGIN - KEY "nome agente" - PROMPT 33 29 "" - FIELD 202@->S0 FLAGS "D" END -STRINGA 30 2 +STRING 47 16 1 BEGIN - KEY "Numero di pagina" - PROMPT 79 25 "" - MESSAGE _PAGENO + KEY "codice fiscale cliente" + PROMPT 10 29 "" + MESSAGE _CLIENTE,COFI + FLAGS "D" END -STRING 31 18 +STRING 48 24 1 +BEGIN + KEY "porto" + PROMPT 30 25 "" + FIELD 203@->S0 +END + +STRING 49 3 +BEGIN + KEY "codice agente" + PROMPT 30 29 "" + FIELD CODAG +END + +STRING 50 28 1 +BEGIN + KEY "nome agente" + PROMPT 36 29 "" + FIELD 122->RAGSOC +END + +STRING 51 18 BEGIN KEY "causale" - PROMPT 63 29 "" + PROMPT 65 29 "" FIELD 207@->S0 END @@ -273,61 +481,61 @@ END SECTION BODY ODD 5 -STRING 51 13 1 +STRING 81 13 1 BEGIN KEY "codice articolo" PROMPT 3 1 "" FIELD 34->CODART END -STRING 52 38 20 +STRING 82 36 24 BEGIN KEY "descrizione articolo" - PROMPT 23 1 "" + PROMPT 24 1 "" MESSAGE _DESCRIGA END -STRING 53 2 +STRING 83 2 BEGIN KEY "unitą di misura" - PROMPT 62 1 "" + PROMPT 65 1 "" FIELD 34->UMQTA - MESSAGE _ALIGN,#52,TOP + MESSAGE _ALIGN,#82,TOP END -NUMBER 54 15 +NUMBER 84 11 BEGIN KEY "quantita" - PROMPT 66 1 "" + PROMPT 70 1 "" PICTURE "###.###.###" GROUP 30 FIELD 34->QTA - MESSAGE _ALIGN,#52,TOP + MESSAGE _ALIGN,#82,TOP END -NUMBER 55 20 +NUMBER 85 20 BEGIN KEY "quantita' lettere" PROMPT 72 1 "" FIELD 34->QTA PICTURE "LETTERE" - MESSAGE _ALIGN,#52,BOTTOM + MESSAGE _ALIGN,#82,BOTTOM FLAGS "D" END END -SECTION FOOTER ODD -57 +SECTION FOOTER ODD -53 -STRING 81 5 +STRING 100 5 BEGIN KEY "scritta SEGUE" - PROMPT 72 13 "SEGUE" + PROMPT 72 12 "SEGUE" END END -SECTION FOOTER LAST -57 +SECTION FOOTER LAST -53 LIST 101 1 1 BEGIN @@ -343,7 +551,7 @@ END LIST 102 1 1 BEGIN KEY "trasporto a cura del destinatario" - PROMPT 12 2 "" + PROMPT 15 2 "" FIELD CODSPMEZZO ITEM "|" MESSAGE DISABLE,6@|ENABLE,5@ ITEM "D|X" MESSAGE DISABLE,6@|ENABLE,5@ @@ -354,7 +562,7 @@ END LIST 103 1 1 BEGIN KEY "trasporto a cura del vettore" - PROMPT 21 2 "" + PROMPT 28 2 "" FIELD CODSPMEZZO ITEM "|" // default ITEM "D| " @@ -362,85 +570,162 @@ BEGIN ITEM "V|X" MESSAGE DISABLE,5@|ENABLE,6@ END -STRING 113 8 1 -BEGIN - KEY "scritta COD.FISC." - PROMPT 24 2 "Vettore" -END - -STRING 104 45 1 +STRING 105 45 1 BEGIN KEY "nome vettore" PROMPT 3 4 "" FIELD 205@->S0 END -STRING 105 45 1 +STRING 106 35 1 BEGIN + // nella versione 05 togliere MESSAGE COPY KEY "indirizzo vettore" + PROMPT 3 5 "" + FIELD 205@->S1[1,35] + MESSAGE COPY,109 + FLAGS "H" +END + +STRING 107 45 1 +BEGIN + // nella versione 05 sostituire FLAGS "D" con FLAGS "H" + KEY "indirizzo vettore" + PROMPT 3 5 "" + MESSAGE _STREXPR,TRIM(#106) + FLAGS "D" + MESSAGE COPY,109 +END + +STRING 108 10 1 +BEGIN + KEY "num.civico vettore" + PROMPT 3 5 "" + FIELD 205@->S1[36,45] + MESSAGE APPEND,109 + FLAGS "H" +END + +STRING 109 45 1 +BEGIN + KEY "indirizzo vettore+num.civico" + PROMPT 3 5 "" +END + +STRING 110 45 1 +BEGIN + KEY "localita vettore" PROMPT 3 6 "" - FIELD 205@->S1 + FIELD 205@->S1[46,70] END -DATE 106 8 1 +STRING 111 5 1 BEGIN - KEY "data inizio trasporto/consegna" - PROMPT 49 4 "" - FIELD DATAPART - FORMAT "1442-" - GROUP 5 -END - -STRING 107 5 1 -BEGIN - KEY "ora inizio trasporto/consegna" - PROMPT 58 4 "" - PICTURE "## ##" - FIELD ORAPART - GROUP 5 -END - -DATE 108 8 1 -BEGIN - KEY "data ritiro" - PROMPT 49 4 "" - FIELD DATAPART - FORMAT "1442-" - FLAGS "D" - GROUP 6 -END - -STRING 109 5 1 -BEGIN - KEY "ora ritiro" - PROMPT 58 4 "" - PICTURE "## ##" - FIELD ORAPART - FLAGS "D" - GROUP 6 -END - -STRING 110 27 1 -BEGIN - KEY "aspetto beni" - PROMPT 37 2 "" - FIELD 206@->S0 -END - -STRING 111 7 1 -BEGIN - KEY "peso" - PROMPT 73 2 "" - FIELD PNETTO + KEY "vettore, cap" + PROMPT 3 7 "" + FIELD 205@->S7 END STRING 112 5 1 +BEGIN + KEY "" + PROMPT 1 1 "" + FLAGS "H" + FIELD 205@->S9 +END + +STRING 113 35 1 +BEGIN + KEY "vettore, comune" + PROMPT 9 7 "" + MESSAGE _ISAMREAD,13,COM=#112,DENCOM + MESSAGE COPY,115 + FLAGS "H" +END + +STRING 114 2 1 +BEGIN + KEY "vettore, provincia" + PROMPT 45 7 "" + MESSAGE _ISAMREAD,13,COM=#112,PROVCOM + MESSAGE APPEND,115 + FLAGS "H" +END + +STRING 115 38 1 +BEGIN + KEY "vettore, comune+provincia" + PROMPT 9 7 "" +END + +DATE 116 8 1 +BEGIN + KEY "data inizio trasporto/consegna" + PROMPT 52 4 "" + FIELD DATAPART + FORMAT "1442-" + GROUP 5 + FLAGS "D" +END + +STRING 117 5 1 +BEGIN + KEY "ora inizio trasporto/consegna" + PROMPT 62 4 "" + PICTURE "##.##" + FIELD ORAPART + GROUP 5 + FLAGS "D" +END + +DATE 118 8 1 +BEGIN + KEY "data ritiro" + PROMPT 52 4 "" + FIELD DATAPART + FORMAT "1442-" + FLAGS "D" + GROUP 6 +END + +STRING 119 5 1 +BEGIN + KEY "ora ritiro" + PROMPT 62 4 "" + PICTURE "##.##" + FIELD ORAPART + FLAGS "D" + GROUP 6 +END + +STRING 120 27 1 +BEGIN + KEY "aspetto beni" + PROMPT 38 2 "" + FIELD 206@->S0 +END + +STRING 121 7 1 +BEGIN + KEY "peso" + PROMPT 76 2 "" + FIELD PNETTO +END + +STRING 122 5 1 BEGIN KEY "colli" - PROMPT 66 2 "" + PROMPT 70 2 "" FIELD NCOLLI END +STRING 123 50 1 +BEGIN + KEY "note documento" + PROMPT 2 9 "" + FIELD 209@->S0 +END + END END diff --git a/ve/veconf.h b/ve/veconf.h index f00837326..0ead5cf0d 100755 --- a/ve/veconf.h +++ b/ve/veconf.h @@ -150,6 +150,7 @@ #define F_EX_PERCIVA4 140 #define F_EX_IVA5 141 #define F_EX_PERCIVA5 142 +#define F_DESESENZ 143 // Campi per ve0200g.uml #define F_EXPLODEDB 101 diff --git a/ve/vefat.frm b/ve/vefat.frm index 5df43e7d0..fe09b46db 100755 --- a/ve/vefat.frm +++ b/ve/vefat.frm @@ -696,15 +696,6 @@ BEGIN MESSAGE COPY,133 END -NUMBER 131 17 -BEGIN - KEY "totale fattura in euro" - PROMPT 64 12 "EURO " - PICTURE "###.###,@@" - MESSAGE _NUMEXPR,(ROUND(IMPONIBILI/1936.27,2)+ROUND(IMPOSTE/1936.27,2)) - MESSAGE COPY,135 -END - NUMBER 132 11 BEGIN KEY "acconto" @@ -723,22 +714,6 @@ BEGIN GROUP 31 END -NUMBER 134 17 -BEGIN - KEY "Anticipo in euro" - PROMPT 41 17 "EURO " - PICTURE "###.###,@@" - MESSAGE _NUMEXPR,ROUND(#106/1936.27,2) - MESSAGE SUB,135 -END - -NUMBER 135 10 -BEGIN - KEY "netto a pagare in EURO" - PROMPT 71 17 "" - PICTURE "###.###,@@" -END - DATA 136 8 BEGIN KEY "scadenza pagamento 1" diff --git a/ve/vefatbmp.frm b/ve/vefatbmp.frm index 099c504b2..b94ccb3dc 100755 --- a/ve/vefatbmp.frm +++ b/ve/vefatbmp.frm @@ -6,12 +6,15 @@ JOIN 16 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP JOIN 16 TO 17 ALIAS 116 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP JOIN 47 TO 34 INTO CODART==CODART JOIN %CPG TO 33 ALIAS 201 INTO CODTAB==CODPAG -JOIN 122 TO 33 INTO CODAGE==CODAG +JOIN 122 TO 33 INTO CODAGE==CODAG JOIN %POR TO 33 ALIAS 203 INTO CODTAB==CODPORTO JOIN %BAN TO 33 ALIAS 204 INTO CODTAB==CODABIA+CODCABA JOIN %VET TO 33 ALIAS 205 INTO CODTAB==CODVETT1 JOIN %ASP TO 33 ALIAS 206 INTO CODTAB==ASPBENI1 JOIN %CTR TO 33 ALIAS 207 INTO CODTAB==CAUSTRASP +JOIN %BAN TO 33 ALIAS 208 INTO CODTAB==CODABIA +JOIN %VAL TO 33 ALIAS 209 INTO CODTAB==CODVAL +JOIN %TIP TO 33 ALIAS 210 INTO CODTAB==TIPODOC END @@ -27,39 +30,53 @@ BEGIN 201@->* "Tabella condizioni di pagamento" 122->* "Archivio agenti" 203@->* "Tabella porto" - 204@->* "Tabella banche" + 204@->* "Tabella banche istituto" 205@->* "Tabella vettori" 206@->* "Tabella aspetto beni" + 207@->* "Tabella causale del trasporto" + 208@->* "Tabella banche agenzia" END GENERAL BEGIN OFFSET 0 0 FONT "Courier New" - SIZE 12 - MODULE "STANDARD_FATTURA_01" + SIZE 10 + MODULE "FATTURA STANDARD AGA" PRI_DECIMALS 0 2 QTA_DECIMALS 3 3 IMP_DECIMALS 0 2 - EXCLUDE "," + EXCLUDE "08," + EXCLUDE "02," + EXCLUDE "03," END SECTION GRAPHICS ODD -FIGURA 99 82 70 +FIGURA 99 93 68 BEGIN PROMPT 1 1 "fattura.bmp" END END -SECTION HEADER ODD 28 +SECTION HEADER ODD 27 + +STRINGA 200 1 +BEGIN + KEY "abilita/disabilita stampa intestazione ditta " + PROMPT 1 1 "" + MESSAGE ENABLE,15@ + FLAGS "H" +END STRINGA 1 35 1 BEGIN KEY "nome ditta" PROMPT 3 4 "" MESSAGE _DITTA,!RAGSOC + GROUP 15 + FLAGS "D" END STRINGA 2 35 1 @@ -67,6 +84,8 @@ BEGIN KEY "indirizzo ditta" PROMPT 3 5 "" MESSAGE _DITTA,!IND + GROUP 15 + FLAGS "D" END STRINGA 3 5 1 @@ -74,6 +93,8 @@ BEGIN KEY "cap ditta" PROMPT 3 6 "" MESSAGE _DITTA,!CAP + GROUP 15 + FLAGS "D" END STRINGA 4 30 1 @@ -81,12 +102,16 @@ BEGIN KEY "comune ditta" PROMPT 10 6 "" MESSAGE _DITTA,!COM + GROUP 15 + FLAGS "D" END STRINGA 5 8 1 BEGIN KEY "scritta P.IVA" PROMPT 3 7 "P.IVA IT" + GROUP 15 + FLAGS "D" END STRINGA 6 16 1 @@ -94,12 +119,16 @@ BEGIN KEY "partita iva ditta" PROMPT 12 7 "" MESSAGE _DITTA,!IVA + GROUP 15 + FLAGS "D" END STRINGA 7 12 1 BEGIN KEY "scritta COD.FISC." PROMPT 3 8 "COD.FISC. IT" + GROUP 15 + FLAGS "D" END STRINGA 8 16 1 @@ -107,131 +136,142 @@ BEGIN KEY "codice fiscale ditta" PROMPT 16 8 "" MESSAGE _DITTA,!CF -END - -NUMERO 9 30 1 -BEGIN - KEY "reg.soc.trib...." - PROMPT 3 9 "REG.SOC.TRIB.R.E. " - MESSAGE _DITTA,!REGSOC + GROUP 15 FLAGS "D" END -NUMERO 10 30 1 +STRINGA 9 2 BEGIN - KEY "c.c.i.a.a. ....." - PROMPT 3 10 "C.C.I.A.A. " - MESSAGE _DITTA,!CCIAA - FLAGS "D" + KEY "Numero di pagina" + PROMPT 88 20 "" + MESSAGE _PAGENO END -STRINGA 11 10 1 +DATA 10 8 BEGIN KEY "data fattura" - PROMPT 58 21 "" + PROMPT 64 20 "" FIELD 33->DATADOC + FORMAT "1442-" END -STRINGA 12 7 +STRINGA 11 7 BEGIN KEY "numero fattura" - PROMPT 73 21 "" + PROMPT 77 20 "" FIELD 33->NDOC END -STRINGA 13 6 1 +STRINGA 12 5 BEGIN KEY "codice cliente" - PROMPT 1 23 "" + PROMPT 2 22 "" FIELD 33->CODCF END -STRINGA 14 2 1 +STRINGA 13 3 BEGIN KEY "codice agente" - PROMPT 7 23 "" + PROMPT 10 22 "" FIELD 33->CODAG END -STRINGA 15 14 1 +STRINGA 14 14 BEGIN KEY "porto" - PROMPT 52 23 "" + PROMPT 57 22 "" FIELD 203@->S0 END -NUMERO 16 7 1 +STRING 15 6 BEGIN KEY "ordine" - PROMPT 12 23 "" + PROMPT 26 22 "" FIELD 33->NUMDOCRIF END -DATA 17 10 1 +DATA 16 8 BEGIN KEY "data conferma" - PROMPT 20 23 "" + PROMPT 15 22 "" FIELD 33->DATADOCRIF - FORMAT "1444-" + FORMAT "1442-" END -STRINGA 18 49 1 +STRINGA 17 32 BEGIN KEY "condizioni di pagamento" - PROMPT 3 25 "" + PROMPT 2 24 "" FIELD 201@->S0 END -STRINGA 19 28 1 +STRINGA 18 27 BEGIN - KEY "banca d'appoggio" - PROMPT 53 25 "" + KEY "banca d'appoggio istituto" + PROMPT 37 24 "" + FIELD 208@->S0 +END + +STRINGA 19 27 +BEGIN + KEY "banca d'appoggio agenzia" + PROMPT 65 24 "" FIELD 204@->S0 END -STRINGA 20 38 2 +STRINGA 20 40 2 BEGIN KEY "cliente ragione sociale " - PROMPT 44 11 "" + PROMPT 48 11 "" MESSAGE _CLIENTE,!RAGSOC END -STRINGA 21 35 2 +STRINGA 21 40 2 BEGIN KEY "cliente indirizzo con numero civico" - PROMPT 44 13 "" + PROMPT 48 13 "" MESSAGE _CLIENTE,!INDNUM END -STRINGA 22 2 +STRING 22 40 1 BEGIN - KEY "Numero di pagina" - PROMPT 80 21 "" - MESSAGE _PAGENO + KEY "destinatario, localita" + PROMPT 48 15 "" + MESSAGE _CLIENTE,LOCALITACF END STRINGA 23 5 1 BEGIN KEY "cliente cap" - PROMPT 44 15 "" + PROMPT 48 16 "" MESSAGE _CLIENTE,!CAP END -STRINGA 24 30 1 +STRINGA 24 35 2 BEGIN KEY "cliente comune" - PROMPT 50 15 "" + PROMPT 54 16 "" MESSAGE _CLIENTE,!COM->DENCOM + MESSAGE COPY,26 + FLAGS "H" END STRINGA 25 2 1 BEGIN KEY "cliente provincia" - PROMPT 73 16 "" + PROMPT 77 17 "" MESSAGE _CLIENTE,!COM->PROVCOM + MESSAGE APPEND,26 + FLAGS "H" END -STRINGA 26 3 1 +STRINGA 26 30 2 +BEGIN + KEY "cliente comune+prov." + PROMPT 54 16 "" +END + +STRINGA 27 3 BEGIN KEY "cliente codice stato" PROMPT 44 17 "" @@ -239,34 +279,77 @@ BEGIN FLAGS "H" END -STRINGA 27 25 1 +STRINGA 28 25 BEGIN KEY "cliente nome stato" PROMPT 44 17 "" - MESSAGE _TABLEREAD,%STA,#26,S0 + MESSAGE _TABLEREAD,%STA,#27,S0 + FLAGS "D" END -STRING 28 11 1 +STRING 29 11 +BEGIN + KEY "copy partita iva" + PROMPT 1 1 "" + MESSAGE _CLIENTE,PAIV + MESSAGE COPY,30 + FLAGS "H" +END + +STRING 30 11 +BEGIN + KEY "test PIVA/CF" + PROMPT 1 1 "" + MESSAGE EMPTY ENABLE,32 + MESSAGE ENABLE,31 + FLAGS "H" +END + +STRING 31 11 BEGIN KEY "partita iva cliente" - PROMPT 37 23 "" + PROMPT 36 22 "" MESSAGE _CLIENTE,PAIV + FLAGS "D" END -STRING 29 2 1 +STRING 32 16 +BEGIN + KEY "codice fiscale cliente" + PROMPT 36 22 "" + MESSAGE _CLIENTE,COFI + FLAGS "D" +END + +STRING 33 2 BEGIN KEY "codice iso iva cliente" - PROMPT 34 23 "" + PROMPT 35 23 "" MESSAGE _CLIENTE,STATOPAIV + FLAGS "D" END -STRING 30 15 +STRING 34 15 BEGIN KEY "causale di trasporto" - PROMPT 67 23 "" + PROMPT 75 22 "" FIELD 207@->S0 END +STRING 35 27 +BEGIN + KEY "valuta" + PROMPT 57 20 "" + FIELD CODVAL +END + +STRING 36 27 +BEGIN + KEY "tipo documento" + PROMPT 2 20 "" + FIELD 210@->S0 +END + END SECTION BODY ODD 5 @@ -278,7 +361,7 @@ BEGIN PROMPT 2 1 "" END -STRINGA 52 20 20 +STRINGA 52 20 22 BEGIN KEY "descrizione articolo" MESSAGE _DESCRIGA @@ -288,25 +371,25 @@ END STRINGA 53 2 BEGIN KEY "unita' di misura" - PROMPT 37 1 "" + PROMPT 40 1 "" FIELD 34->UMQTA MESSAGE _ALIGN,#52,BOTTOM END -NUMBER 54 9 +NUMBER 54 10 BEGIN KEY "quantita'" - PROMPT 40 1 "" + PROMPT 45 1 "" FIELD 34->QTA - PICTURE "#########" + PICTURE "##.###.###" GROUP 30 MESSAGE _ALIGN,#52,BOTTOM END -NUMBER 55 11 +NUMBER 55 12 BEGIN KEY "prezzo unitario" - PROMPT 50 1 "" + PROMPT 57 1 "" FIELD 34->PREZZO PICTURE "###.###.###" GROUP 29 @@ -316,7 +399,7 @@ END STRINGA 56 3 BEGIN KEY "sconto" - PROMPT 63 1 "" + PROMPT 70 1 "" FIELD 34->SCONTO MESSAGE _ALIGN,#52,BOTTOM END @@ -324,8 +407,8 @@ END NUMBER 57 12 BEGIN KEY "importo netto" - PROMPT 66 1 "" - FIELD 34->IMPNN + PROMPT 75 1 "" + FIELD 34->IMPNS PICTURE "###.###.###" GROUP 29 MESSAGE _ALIGN,#52,BOTTOM @@ -334,7 +417,7 @@ END STRINGA 58 3 BEGIN KEY "iva" - PROMPT 79 1 "" + PROMPT 90 1 "" FIELD 34->CODIVA MESSAGE _ALIGN,#52,BOTTOM END @@ -374,9 +457,9 @@ END END -SECTION FOOTER ODD -52 +SECTION FOOTER ODD -49 -STRINGA 81 5 1 +STRINGA 100 5 1 BEGIN KEY "stampa 'segue' in coda" PROMPT 73 13 "SEGUE" @@ -384,320 +467,358 @@ END END -SECTION FOOTER LAST -52 +SECTION FOOTER LAST -49 NUMBER 101 12 -BEGIN - KEY "spese" - PROMPT 69 1 "" - PICTURE "###.###.###" - FIELD SPESE - GROUP 31 -END - -NUMBER 102 15 -BEGIN - KEY "spese di trasporto" - PROMPT 56 1 "" - PICTURE "###.###.###" - FIELD SPESE - FLAGS "H" - GROUP 31 -END - -NUMBER 103 15 -BEGIN - KEY "spese di imballo" - PROMPT 56 1 "" - PICTURE "###.###.###" - FIELD SPESE - FLAGS "H" - GROUP 31 -END - -NUMBER 104 7 -BEGIN - KEY "spese di incasso" - PROMPT 54 11 "" - PICTURE "###.###" - FIELD SPESINC - GROUP 31 -END - -NUMBER 105 11 -BEGIN - KEY "spese bolli" - PROMPT 60 11 "" - FIELD BOLLI - GROUP 31 - FLAGS "D" -END - -STRING 106 3 -BEGIN - KEY "codice iva 1" - PROMPT 1 3 "" - MESSAGE _RIEPILOGOIVA,1,COD,0 -END - -NUMBER 107 12 -BEGIN - KEY "imponibile 1" - PROMPT 6 3 "" - MESSAGE _RIEPILOGOIVA,1,IMP,0 - PICTURE "###.###.###" - GROUP 31 -END - -NUMBER 108 2 -BEGIN - KEY "iva 1" - PROMPT 18 3 "" - MESSAGE _RIEPILOGOIVA,1,ALI,0 - PICTURE "##" -END - -NUMBER 109 10 -BEGIN - KEY "imposta 1" - PROMPT 22 3 "" - MESSAGE _RIEPILOGOIVA,1,IVA,1 - PICTURE "##.###.###" - GROUP 31 -END - -STRING 110 3 -BEGIN - KEY "codice iva 2" - PROMPT 1 4 "" - MESSAGE _RIEPILOGOIVA,1,COD,0 -END - -NUMBER 111 12 -BEGIN - KEY "imponibile 2" - PROMPT 6 4 "" - MESSAGE _RIEPILOGOIVA,1,IMP,0 - PICTURE "###.###.###" - GROUP 31 -END - -NUMBER 112 2 -BEGIN - KEY "iva 2" - PROMPT 18 4 "" - MESSAGE _RIEPILOGOIVA,1,ALI,0 - PICTURE "##" -END - -NUMBER 113 10 -BEGIN - KEY "imposta 2" - PROMPT 22 4 "" - MESSAGE _RIEPILOGOIVA,1,IVA,1 - PICTURE "##.###.###" - GROUP 31 -END - -STRING 114 3 -BEGIN - KEY "codice iva 3" - PROMPT 1 5 "" - MESSAGE _RIEPILOGOIVA,1,COD,0 -END - -NUMBER 115 12 -BEGIN - KEY "imponibile 3" - PROMPT 6 5 "" - MESSAGE _RIEPILOGOIVA,1,IMP,0 - PICTURE "###.###.###" - GROUP 31 -END - -NUMBER 116 2 -BEGIN - KEY "iva 3" - PROMPT 18 5 "" - MESSAGE _RIEPILOGOIVA,1,ALI,0 - PICTURE "##" -END - -NUMBER 117 10 -BEGIN - KEY "imposta 3" - PROMPT 22 5 "" - MESSAGE _RIEPILOGOIVA,1,IVA,1 - PICTURE "##.###.###" - GROUP 31 -END - -NUMBER 118 12 -BEGIN - KEY "imponibile 4" - PROMPT 6 7 "" - MESSAGE _RIEPILOGOIVA,30,IMP,0 - PICTURE "###.###.###" - GROUP 31 -END - -STRINGA 119 3 -BEGIN - KEY "codice iva 4" - PROMPT 1 7 "" - MESSAGE _RIEPILOGOIVA,30,COD,0 -END - -STRINGA 120 45 -BEGIN - KEY "descrizione altri 4" - PROMPT 34 7 "" - MESSAGE _RIEPILOGOIVA,30,DES,1 -END - -NUMBER 121 12 -BEGIN - KEY "imponibile 5" - PROMPT 6 8 "" - MESSAGE _RIEPILOGOIVA,30,IMP,0 - PICTURE "###.###.###" - GROUP 31 -END - -STRINGA 122 3 -BEGIN - KEY "codice iva 5" - PROMPT 1 8 "" - MESSAGE _RIEPILOGOIVA,30,COD,0 -END - -STRINGA 123 45 -BEGIN - KEY "descrizione altri 5" - PROMPT 34 8 "" - MESSAGE _RIEPILOGOIVA,30,DES,1 -END - -NUMBER 124 15 -BEGIN - KEY "totale imponibile" - PROMPT 4 11 "" - MESSAGE _TOTIMPONIBILI,29 - PICTURE "#.###.###.###" - GROUP 31 -END - -NUMBER 125 14 -BEGIN - KEY "totale imposta" - PROMPT 18 11 "" - FIELD IMPOSTE - PICTURE "##.###.###.###" - GROUP 31 -END - -NUMBER 126 10 -BEGIN - KEY "totale esenti" - PROMPT 34 11 "" - MESSAGE _TOTIMPONIBILI,28 - PICTURE "##.###.###" - GROUP 31 -END - -NUMBER 127 15 BEGIN KEY "totale importi netti (non scontati)" - PROMPT 2 1 "" + PROMPT 2 3 "" FIELD TOTMER PICTURE "###.###.###" GROUP 31 END -NUMBER 128 12 +STRINGA 102 7 BEGIN - KEY "totale fattura" - PROMPT 69 11 "" - FIELD TOTDOC + KEY "% sconto" + PROMPT 23 3 "" + FIELD 33->SCONTOPERC +END + +NUMBER 103 11 +BEGIN + KEY "totale sconti" + PROMPT 32 3 "" + FIELD SCONTOT PICTURE "###.###.###" GROUP 31 END -DATA 129 10 1 +NUMBER 104 11 BEGIN - KEY "scadenza pagamento 1" - PROMPT 1 13 "" - MESSAGE _SCADENZE,DATA,0 + KEY "spese di trasporto" + PROMPT 46 3 "" + PICTURE "###.###.###" + FIELD SPESTRA + GROUP 31 END -NUMBER 130 12 +NUMBER 105 11 +BEGIN + KEY "spese di imballo" + PROMPT 59 3 "" + PICTURE "###.###.###" + FIELD SPESIMB + GROUP 31 +END + +NUMBER 106 11 +BEGIN + KEY "acconto" + PROMPT 79 5 "" + FIELD 33->IMPPAGATO + PICTURE "###.###.###" + GROUP 31 +END + +STRING 107 3 +BEGIN + KEY "codice iva 1" + PROMPT 2 5 "" + MESSAGE _RIEPILOGOIVA,1,COD,0 +END + +NUMBER 108 12 +BEGIN + KEY "imponibile 1" + PROMPT 8 5 "" + MESSAGE _RIEPILOGOIVA,1,IMP,0 + PICTURE "###.###.###" + GROUP 31 +END + +NUMBER 109 2 +BEGIN + KEY "iva 1" + PROMPT 23 5 "" + MESSAGE _RIEPILOGOIVA,1,ALI,0 + PICTURE "##" +END + +NUMBER 110 10 +BEGIN + KEY "imposta 1" + PROMPT 28 5 "" + MESSAGE _RIEPILOGOIVA,1,IVA,1 + PICTURE "##.###.###" + GROUP 31 +END + +STRING 111 3 +BEGIN + KEY "codice iva 2" + PROMPT 2 6 "" + MESSAGE _RIEPILOGOIVA,1,COD,0 +END + +NUMBER 112 12 +BEGIN + KEY "imponibile 2" + PROMPT 8 6 "" + MESSAGE _RIEPILOGOIVA,1,IMP,0 + PICTURE "###.###.###" + GROUP 31 +END + +NUMBER 113 2 +BEGIN + KEY "iva 2" + PROMPT 23 6 "" + MESSAGE _RIEPILOGOIVA,1,ALI,0 + PICTURE "##" +END + +NUMBER 114 10 +BEGIN + KEY "imposta 2" + PROMPT 28 6 "" + MESSAGE _RIEPILOGOIVA,1,IVA,1 + PICTURE "##.###.###" + GROUP 31 +END + +STRING 115 3 +BEGIN + KEY "codice iva 3" + PROMPT 2 7 "" + MESSAGE _RIEPILOGOIVA,1,COD,0 +END + +NUMBER 116 12 +BEGIN + KEY "imponibile 3" + PROMPT 8 7 "" + MESSAGE _RIEPILOGOIVA,1,IMP,0 + PICTURE "###.###.###" + GROUP 31 +END + +NUMBER 117 2 +BEGIN + KEY "iva 3" + PROMPT 23 7 "" + MESSAGE _RIEPILOGOIVA,1,ALI,0 + PICTURE "##" +END + +NUMBER 118 10 +BEGIN + KEY "imposta 3" + PROMPT 28 7 "" + MESSAGE _RIEPILOGOIVA,1,IVA,1 + PICTURE "##.###.###" + GROUP 31 +END + +NUMBER 119 12 +BEGIN + KEY "imponibile 4" + PROMPT 8 9 "" + MESSAGE _RIEPILOGOIVA,30,IMP,0 + PICTURE "###.###.###" + GROUP 31 +END + +STRINGA 120 3 +BEGIN + KEY "codice iva 4" + PROMPT 2 9 "" + MESSAGE _RIEPILOGOIVA,30,COD,0 +END + +STRINGA 121 45 +BEGIN + KEY "descrizione altri 4" + PROMPT 44 9 "" + MESSAGE _RIEPILOGOIVA,30,DES,1 +END + +NUMBER 122 12 +BEGIN + KEY "imponibile 5" + PROMPT 8 10 "" + MESSAGE _RIEPILOGOIVA,30,IMP,0 + PICTURE "###.###.###" + GROUP 31 +END + +STRINGA 123 3 +BEGIN + KEY "codice iva 5" + PROMPT 2 10 "" + MESSAGE _RIEPILOGOIVA,30,COD,0 +END + +STRINGA 124 45 +BEGIN + KEY "descrizione altri 5" + PROMPT 44 10 "" + MESSAGE _RIEPILOGOIVA,30,DES,1 +END + +NUMBER 125 12 +BEGIN + KEY "totale imponibile" + PROMPT 8 13 "" + MESSAGE _TOTIMPONIBILI,29 + PICTURE "###.###.###" + GROUP 31 +END + +NUMBER 126 11 +BEGIN + KEY "totale imposta" + PROMPT 28 13 "" + FIELD IMPOSTE + PICTURE "###.###.###" + GROUP 31 +END + +NUMBER 127 11 +BEGIN + KEY "totale esenti" + PROMPT 44 13 "" + MESSAGE _TOTIMPONIBILI,28 + PICTURE "###.###.###" + GROUP 31 +END + +NUMBER 128 7 +BEGIN + KEY "spese di incasso" + PROMPT 72 3 "" + PICTURE "###.###" + FIELD SPESINC + GROUP 31 +END + +NUMBER 129 7 +BEGIN + KEY "spese bolli" + PROMPT 83 3 "" + FIELD BOLLI + PICTURE "###.###" + GROUP 31 +END + +NUMBER 130 11 +BEGIN + KEY "totale fattura" + PROMPT 79 13 "" + FIELD TOTDOC + PICTURE "###.###.###" + GROUP 31 + MESSAGE COPY,138 +END + +NUMBER 137 11 +BEGIN + KEY "acconto" + PROMPT 79 5 "" + FIELD 33->IMPPAGATO + PICTURE "###.###.###" + GROUP 31 + MESSAGE SUB,138 +END + +NUMBER 138 11 +BEGIN + KEY "netto a pagare" + PROMPT 79 15 "" + PICTURE "###.###.###" + GROUP 31 +END + +DATA 143 8 +BEGIN + KEY "scadenza pagamento 1" + PROMPT 2 15 "" + MESSAGE _SCADENZE,DATA,0 + FORMAT "1442-" +END + +NUMBER 144 12 BEGIN KEY "importo scadenza 1" - PROMPT 13 13 "" + PROMPT 12 15 "" MESSAGE _SCADENZE,IMPORTO,1 PICTURE "###.###.###" GROUP 31 END -DATA 131 10 1 +DATA 145 8 BEGIN KEY "scadenza pagamento 2" - PROMPT 27 13 "" + PROMPT 26 15 "" MESSAGE _SCADENZE,DATA,0 + FORMAT "1442-" END -NUMBER 132 12 +NUMBER 146 12 BEGIN KEY "importo scadenza 2" - PROMPT 39 13 "" + PROMPT 36 15 "" MESSAGE _SCADENZE,IMPORTO,1 PICTURE "###.###.###" GROUP 31 END -DATA 133 10 1 +DATA 147 8 1 BEGIN KEY "scadenza pagamento 3" - PROMPT 51 13 "" + PROMPT 2 16 "" MESSAGE _SCADENZE,DATA,0 + FORMAT "1442-" END -NUMBER 134 12 +NUMBER 148 12 BEGIN KEY "importo scadenza 3" - PROMPT 65 13 "" + PROMPT 12 16 "" MESSAGE _SCADENZE,IMPORTO,1 PICTURE "###.###.###" GROUP 31 END -DATA 135 10 1 +DATA 149 8 1 BEGIN KEY "scadenza pagamento 4" - PROMPT 1 14 "" + PROMPT 26 16 "" MESSAGE _SCADENZE,DATA,0 + FORMAT "1442-" END -NUMBER 136 12 +NUMBER 150 12 BEGIN KEY "importo scadenza 4" - PROMPT 13 14 "" + PROMPT 36 16 "" MESSAGE _SCADENZE,IMPORTO,1 PICTURE "###.###.###" GROUP 31 END -DATA 137 10 1 +DATA 151 8 1 BEGIN KEY "scadenza pagamento 5" - PROMPT 27 14 "" + PROMPT 2 17 "" MESSAGE _SCADENZE,DATA,0 + FORMAT "1442-" END -NUMBER 138 15 +NUMBER 152 12 BEGIN KEY "importo scadenza 5" - PROMPT 39 14 "" + PROMPT 12 17 "" MESSAGE _SCADENZE,IMPORTO,1 PICTURE "###.###.###" GROUP 31 diff --git a/ve/velib.h b/ve/velib.h index 99459fccd..f6d8d0ceb 100755 --- a/ve/velib.h +++ b/ve/velib.h @@ -50,6 +50,8 @@ class TViswin; #include #endif +#include "../cg/cg2101.h" + #define RIGA_MERCE 'M' #define RIGA_SPESEDOC 'S' #define RIGA_PRESTAZIONI 'P' @@ -132,7 +134,9 @@ public: const TString& cod_iva() const { return get("S3"); } real prezzo() const { return get_real("R0"); } real qta() const { return get_real("R1"); } + real perc() const { return get_real("R2"); } char tipo() const { return get_char("S6"); } + char tipo_ritenuta() const { return get_char("S9"); } const TString & tipo_riga() const { return get("S8"); } char genere() const { return get("COD") == "SPP" ? 'S' : 'P'; } @@ -241,6 +245,7 @@ class TTipo_documento : public TRectype // velib03 TString16 _totvalres; TString16 _totvalore; TString16 _totale_cont; + TString16 _field_prezzo; char _tipocf; bool _cnt_prezzi; @@ -273,6 +278,7 @@ public: bool is_bolla() const { return tipo() == _bolla; } bool is_ordine() const { return tipo() == _ordine; } bool controllo_prezzi() const { return _cnt_prezzi; } + const char * field_prezzo() const { return _field_prezzo; } const TString & descrizione() const { return get("S0"); } const TString & riferimento() const { return get("S1"); } @@ -922,6 +928,7 @@ public: bool prezzo_da_ordine() const { return get_bool("B5"); } bool aggiorna_testata_se_vuoto() const { return get_bool("B6"); } bool ordina_per_codice() const { return get_bool("B7"); } + bool usa_doc_rif() const { return get_bool("B8"); } int intestazioni_sheet() const { return get_int("I1"); } @@ -1024,6 +1031,49 @@ enum error_type { class TBill; +// TMovimentoPN_VE +// Classe derivata da TMovimentoPN per calcolare automaticamente le righe conabili +// una volta settate le righe iva e la riga di totale documento +// Sostanzialmente di tratta di aggiungere un metodo in piu' : +// recalc_cg_rows(), liberamente ispirato alla notify_iva() in cg2102.cpp + +class TMovimentoPN_VE : public TMovimentoPN +{ + TCausale * _caus; + bool _valuta; + +protected: + // simula il K_SPACE di iva_notify + void create_row(int i, const TString & descr_cr); + // simula il K_ENTER di iva_notify + void enter_row(int i, const TString & descr_cr); + // verifica se si tratta di iva indetraibile + bool detraibile(TRectype& rec) const ; + // cerca la prima tra quelle di contabilita' che corrisponde al tipo indicato + int type2pos(char tipo); + // Trova nelle righe contabili un conto nelle righe di tipo prescelto + int bill2pos(const TBill& conto, char tipo); + // trasforma un real in TImporto, in base al tipo riga + TImporto real2imp(const real& r, char row_type); + // setta il record delle righe di contabilita' + int set_cg_rec(int n, const TImporto& imp, TBill& conto, const char* desc, char tipo); + // aggiunge l'importo indicato alla n-esima riga di contabilita' + bool add_cg_rec(int n, const TImporto& imp); + // Legge l'importo della riga n e lo ritorna col segno dovuto + TImporto get_cg_imp(int n); + // Setta l'importo della riga n + void set_cg_imp(int n, const TImporto& imp); + // verifica se il movimento e' quadrato oppure ha qualche maledetto sbilancio + // ritorna TRUE, ovviamente, se everything's alright. +public: + // ricalcola le righe di contabilita' dalle righe iva presenti + // e verifica la quadratura del movimento. Ritorna TRUE se il movimento e' scrivibile + bool movement_ok() ; + int recalc_cg_rows(const TString & descr_cr, TCausale* caus = NULL); + TMovimentoPN_VE(bool valuta) : _valuta(valuta), _caus(NULL) {}; + virtual ~TMovimentoPN_VE() {} +}; + class TContabilizzazione : public TElaborazione // velib04b { bool _auto_data; // Flag per data di registrazione automatica @@ -1102,7 +1152,7 @@ protected: // scrive le scadenze error_type write_scadenze(TDocumento&); // scrive il movimento e le scadenze - error_type write_all(TDocumento&); + virtual error_type write_all(TDocumento& doc, TMovimentoPN_VE & movimento); // restituisce la sezione per sto cliente char sezione() const; // Cerca il conto cliente per il movimento d'anticipo @@ -1119,8 +1169,6 @@ protected: error_type write_anticipo(TDocumento&); // scrive il movimento INTRA error_type write_intra(TDocumento&); - // Cambia lo stato del documento - error_type change_doc_status(TDocumento&); // Aggiorna i saldi: TRUE per il movimento normale, FALSE per quello di anticipo pagamento void aggiorna_saldi(bool n); // Visualizza l'ultimo errore rilevato @@ -1132,12 +1180,15 @@ protected: // Ritorna TRUE se il modulo INTRA e' abilitato (verifica anche la causale del documento corrente) bool in_enabled() const ; public: + // Cambia lo stato del documento + error_type change_doc_status(TDocumento&); virtual bool elabora(TLista_documenti& doc_in, TLista_documenti& doc_out, const TDate& data_elab, bool interattivo = FALSE); void set_auto(const bool a) { _auto_data = a; } void set_nump(const byte n) { _nump_iva = n; } void set_writeable(const bool b) { _can_write = b; } const long processed_docs() const { return _total_docs; } + void inc_processed_docs() { _total_docs++; } // Ritorna TRUE se il documento precedente a doc e' gia' stato contabilizzato bool prev_contabilized(const TDocumento& doc) const; diff --git a/ve/velib02.cpp b/ve/velib02.cpp index 3bc24542e..7dc76d0fb 100755 --- a/ve/velib02.cpp +++ b/ve/velib02.cpp @@ -469,8 +469,9 @@ real TRiga_documento::importo(bool scontato, bool lordo, int ndec) const case RIGA_SPESEDOC: { const TSpesa_prest & s = spesa(); + const bool to_calc = s.tipo_ritenuta() == '\0'; - switch (s.tipo()) + if (to_calc) { case 'Q': c = _qtaprezzo; @@ -481,7 +482,6 @@ real TRiga_documento::importo(bool scontato, bool lordo, int ndec) const case 'P': { const TString16 field_perc(s.field_perc()); - c = _percentuale; r1 = doc().get_real(field_perc); } @@ -510,9 +510,16 @@ real TRiga_documento::importo(bool scontato, bool lordo, int ndec) const } switch (c) { - case _qtaprezzo: + case _qtaprezzo: if (doc_al_lordo) - importo = prezzo(scontato, TRUE, ndec) * qta; + { + // Altamente impreciso: moltiplica per qta un prezzo arrotondato a priori! + // importo = prezzo(scontato, TRUE, ndec) * qta; + + // Rimanda l'arrotondamento a dopo aver calcolato il totale riga! + importo = prezzo(scontato, TRUE, ALL_DECIMALS) * qta; + importo.round(ndec); // Riga inutile ma esplicatrice; + } else importo = prezzo(scontato, lordo, ALL_DECIMALS) * qta; break; @@ -800,6 +807,8 @@ void TRiga_documento::autosave(TSheet_field & f) put( RDOC_QTAGG5, row.get( f.cid2index(FR_QTAGG5 )) ); put( RDOC_IMPIANTO, row.get( f.cid2index(FR_IMPIANTO )) ); put( RDOC_LINEA, row.get( f.cid2index(FR_LINEA )) ); + put( RDOC_CODCMS, row.get( f.cid2index(FR_CODCMS)) ); + put( RDOC_FASCMS, row.get( f.cid2index(FR_FASCMS)) ); } } @@ -853,6 +862,8 @@ void TRiga_documento::autoload(TSheet_field & f) row.add( get( RDOC_QTAGG5) , f.cid2index(FR_QTAGG5)); row.add( get( RDOC_IMPIANTO) , f.cid2index(FR_IMPIANTO)); row.add( get( RDOC_LINEA) , f.cid2index(FR_LINEA)); + row.add( get( RDOC_CODCMS) , f.cid2index(FR_CODCMS)); + row.add( get( RDOC_FASCMS) , f.cid2index(FR_FASCMS)); } TArticolo_giacenza * TRiga_documento::articolo() const diff --git a/ve/velib03.cpp b/ve/velib03.cpp index e3be68542..c95478de3 100755 --- a/ve/velib03.cpp +++ b/ve/velib03.cpp @@ -339,6 +339,7 @@ void TTipo_documento::read_formule() } _totale_cont = prof.get("TOTALECONT", "MAIN"); _cnt_prezzi = prof.get_bool("CONTROLLO_PREZZI", "MAIN"); + _field_prezzo = prof.get("PREZZO", "MAIN"); } bool TTipo_documento::stato_with_mov_mag(const char stato) const @@ -491,6 +492,10 @@ int TExpr_documento::parse_user_func(const char * name, int nparms) const return nparms < 3 ? _totprovv : -1; if (strcmp(name, "PSCONTOT") == 0) return nparms < 1 ? _pscontot : -1; + if (strcmp(name, "RITENUTA") == 0) + return nparms < 3 ? _ritenuta : -1; + if (strcmp(name, "TIPORIT") == 0) + return nparms < 1 ? _tipo_ritenuta : -1; return -1; } @@ -796,6 +801,48 @@ void TExpr_documento::evaluate_user_func(int index, int nparms, TEval_stack & st stack.push(val); } break; + case _ritenuta: + { + int ndec = AUTO_DECIMALS; + bool lordo = FALSE; + + if (nparms > 1) + ndec = (int) stack.pop_real().integer(); + if (nparms > 0) + lordo = !stack.peek_real().is_zero(); + else + stack.push(ZERO); + real & val = stack.peek_real(); + + const bool spesa = _row->tipo().tipo() == 'S'; + + if (spesa) + { + const bool tipo_rit = _row->spesa().tipo_ritenuta(); + + if (tipo_rit != '\0') + { + ((TSpesa_prest &)_row->spesa()).zero("S9"); + _row->dirty_fields(); + val = _row->importo(TRUE, lordo, ndec); + _row->dirty_fields(); + ((TSpesa_prest &)_row->spesa()).put("S9", (char)tipo_rit); + } + else + val = ZERO; + } + else + val = ZERO; + } + break; + case _tipo_ritenuta: + { + TString s; + if (_row && _row->tipo().tipo() == 'S') + s << _row->spesa().tipo_ritenuta(); + stack.push(s); + } + break; default: TExpression::evaluate_user_func(index, nparms, stack, type); break; @@ -887,7 +934,7 @@ short TDocumento::_has_stat_ven = 3; short TDocumento::_has_provv = 3; TCodgiac_livelli * TDocumento::_livelli=NULL; -HIDDEN TStats_agg _st_agg; +// HIDDEN TStats_agg _st_agg; HIDDEN TAssoc_array _docs_to_agg; void TDocumento::init() @@ -1288,22 +1335,24 @@ void TDocumento::set_key(TRectype& rec, char provv, int anno, const char* codnum void TDocumento::copy_data(TRectype& dst, const TRectype& src) { // Memorizza tutti i campi chiave - const char provv = dst.get_char("PROVV"); - const int anno = dst.get_int("ANNO"); - const TString16 codnum = dst.get("CODNUM"); - const long numdoc = dst.get_long("NDOC"); - const int nriga = dst.num() == LF_RIGHEDOC ? dst.get_int("NRIGA") : 0; + const char provv = dst.get_char(RDOC_PROVV); + const int anno = dst.get_int(RDOC_ANNO); + const TString16 codnum = dst.get(RDOC_CODNUM); + const long numdoc = dst.get_long(RDOC_NDOC); + const int nriga = dst.num() == LF_RIGHEDOC ? dst.get_int(RDOC_NRIGA) : 0; + const long idriga = dst.num() == LF_RIGHEDOC ? dst.get_long(RDOC_IDRIGA) : 0; // Copia tutto il record dst = src; // Ripristina tutti i campi chiave set_key(dst, provv, anno, codnum, numdoc); if (nriga > 0) { - dst.put("NRIGA", nriga); + dst.put(RDOC_NRIGA, nriga); + dst.put(RDOC_IDRIGA, idriga); dst.zero(RDOC_MOVMAG); TString memo(1024); - memo = src.get("DESCEST"); - dst.put("DESCEST", memo); + memo = src.get(RDOC_DESCEST); + dst.put(RDOC_DESCEST, memo); } else dst.zero(DOC_MOVMAG); @@ -1360,25 +1409,17 @@ int TDocumento::read(TBaseisamfile& f, word op, word lockop) if ( lockop >= _lock && o == NULL) { - _docs_to_agg.add(key, key); + TStats_agg * st_agg = new TStats_agg; for (int i = physical_rows(); i > 0; i--) if (is_nota_credito) - _st_agg.add(row(i)); + st_agg->add(row(i)); else - _st_agg.sub(row(i)); + st_agg->sub(row(i)); + _docs_to_agg.add(key, st_agg, TRUE); } else if (lockop == _unlock && o != NULL) - { _docs_to_agg.remove(key); - for (int i = physical_rows(); i > 0; i--) - if (is_nota_credito) - _st_agg.sub(row(i)); - else - _st_agg.add(row(i)); - } - if (_docs_to_agg.items() == 0) - _st_agg.update(); } if (err == NOERR && _has_provv) @@ -1473,7 +1514,8 @@ void TDocumento::set_riga_esenzione() } else { - static TString16 _tipo_riga_es; + static TString16 _tipo_riga_es; + static TString80 _des_esenz; static real _bollo_es; if (_tipo_riga_es.empty()) { @@ -1485,19 +1527,24 @@ void TDocumento::set_riga_esenzione() _tipo_riga_es = "05"; conf.set("TRESENZ", _tipo_riga_es); warning_box("Il tipo riga esenzione non risultava impostato.\n L'applicazione usera' automaticamente il tipo %s", (const char*) _tipo_riga_es); - } + } + _des_esenz = conf.get("DESESENZ", "ve"); + if (_des_esenz.not_empty()) + _des_esenz.insert(" "); + _des_esenz.insert("Fattura non imponibile"); } if (_esenzione == NULL) _esenzione = new TRiga_documento(this, _tipo_riga_es); - TString d(256); d.format("Fattura non imponibile come da vostra dichiarazione"); + TString d(256); d = _des_esenz; - _esenzione->put( "DESCR", d); + d << format(" come da vostra dichiarazione n. %s del %s da noi annotata al n. %s il %s.", + (const char *) v_esenzione, (const char *) v_data_esenzione, + (const char *) n_registrazione, (const char *) n_data_registrazione); + + _esenzione->put( "DESCR", d.left(50)); - d.format("e n. %s del %s da noi annotata al n. %s il %s.", - (const char *) v_esenzione, (const char *) v_data_esenzione, - (const char *) n_registrazione, (const char *) n_data_registrazione); _esenzione->put("DESCLUNGA", "X"); - _esenzione->put("DESCEST", d); + _esenzione->put("DESCEST", d.mid(50)); } } @@ -1692,7 +1739,7 @@ int TDocumento::write_rewrite(TBaseisamfile & f, bool re) const rm.put(RMOVMAG_QUANT, qta); - TCurrency_documento prezzo(r.prezzo(TRUE, FALSE), *this); + TCurrency_documento prezzo(r.prezzo(TRUE, FALSE), *this, TRUE); prezzo.change_to_firm_val(); rm.put(RMOVMAG_PREZZO, prezzo.get_num()); @@ -1724,7 +1771,9 @@ int TDocumento::write_rewrite(TBaseisamfile & f, bool re) const TLocalisamfile codalt(LF_CODCORR); codalt.setkey(2); bool docevaso = TRUE; - TDate datacons(get_date(DOC_DATACONS)); + const TDate datacons(get_date(DOC_DATACONS)); + const TString80 codcms(get(DOC_CODCMS)); + const TString80 fascms(get(DOC_FASCMS)); for (int i = rows; i > 0; i--) { @@ -1735,7 +1784,7 @@ int TDocumento::write_rewrite(TBaseisamfile & f, bool re) const anamag.put("CODART", codart); if (anamag.read() == NOERR) r.put("CODARTMAG", codart); - else + else { codalt.put("CODARTALT", codart); if (codalt.read() == NOERR) @@ -1745,11 +1794,16 @@ int TDocumento::write_rewrite(TBaseisamfile & f, bool re) const } if (r.is_evadibile() && is_ordine()) { - docevaso &= r.get_bool(RDOC_RIGAEVASA); + docevaso &= (r.get_bool(RDOC_RIGAEVASA) || r.get_real(RDOC_QTA) == ZERO); const TDate dcons = r.get(RDOC_DATACONS); if (!dcons.ok()) r.put(RDOC_DATACONS, datacons); - } + } + + if (r.get(RDOC_CODCMS).empty()) + r.put(RDOC_CODCMS, codcms); + if (r.get(RDOC_FASCMS).empty()) + r.put(RDOC_FASCMS, fascms); } if (is_ordine()) ((TDocumento *)this)->put(DOC_DOCEVASO, docevaso); // Tutte le righe evase -> doc evaso @@ -1793,18 +1847,25 @@ int TDocumento::write_rewrite(TBaseisamfile & f, bool re) const if (tipo().statistiche() && _has_stat_ven) { TString80 key(get(DOC_PROVV)); key << get(DOC_ANNO); key << get(DOC_CODNUM); key << get(DOC_NDOC); - TObject * o = _docs_to_agg.objptr(key); + TStats_agg * st_agg = (TStats_agg *) _docs_to_agg.objptr(key); const bool is_nota_credito = tipo().nota_credito(); - if (o != NULL) - _docs_to_agg.remove(key); + if (st_agg == NULL) + { + st_agg = new TStats_agg; + _docs_to_agg.add(key, st_agg, TRUE); + } for (int i = physical_rows(); i > 0; i--) if (is_nota_credito) - _st_agg.sub(myself.row(i)); + st_agg->sub(myself.row(i)); else - _st_agg.add(myself.row(i)); - if (_docs_to_agg.items() == 0) - _st_agg.update(); + st_agg->add(myself.row(i)); + st_agg->update(); + for (i = physical_rows(); i > 0; i--) + if (is_nota_credito) + st_agg->add(myself.row(i)); + else + st_agg->sub(myself.row(i)); } } return err; @@ -1833,12 +1894,13 @@ int TDocumento::remove(TBaseisamfile& f) const if (tipo().statistiche() && _has_stat_ven) { TString80 key(get(DOC_PROVV)); key << get(DOC_ANNO); key << get(DOC_CODNUM); key << get(DOC_NDOC); - TObject * o = _docs_to_agg.objptr(key); + TStats_agg * st_agg = (TStats_agg *) _docs_to_agg.objptr(key); - if (o != NULL) + if (st_agg != NULL) + { + st_agg->update(); _docs_to_agg.remove(key); - if (_docs_to_agg.items() == 0) - _st_agg.update(); + } } if (_has_provv && tipo().provvigioni()) { @@ -2187,11 +2249,17 @@ void TDocumento::set_fields(TAuto_variable_rectype & rec) add_field(new TDocumento_variable_field(work_tot_doc, netto_exp)); - TString80 descr; - descr.format("%s + _BOLLI(%s)", (const char*)work_tot_doc, (const char *)work_tot_doc); - TExpr_documento tot_exp(descr, _numexpr, this); - - add_field(new TDocumento_variable_field(f->name(), tot_exp)); + if (netto_def == "IMPONIBILI()+IMPOSTE()") + { + TExpr_documento tot_exp("IMPONIBILI(1)+IMPOSTE(1)", _numexpr, this); + add_field(new TDocumento_variable_field(f->name(), tot_exp)); + } + else + { + TExpr_documento tot_exp(format("%s + _BOLLI(%s)", (const char *) work_tot_doc, + (const char *) work_tot_doc), _numexpr, this); + add_field(new TDocumento_variable_field(f->name(), tot_exp)); + } } else if (exp) @@ -2758,15 +2826,24 @@ TRecord_array& TDocumento::body(int logicnum) const TRecord_array& r = TMultiple_rectype::body(logicnum); - if (reset_data_cons && is_ordine()) + if (reset_data_cons) { - TDate datacons(get_date(DOC_DATACONS)); + const TDate datacons(get_date(DOC_DATACONS)); + const TString80 codcms(get(DOC_CODCMS)); + const TString80 fascms(get(DOC_FASCMS)); + for (int i = r.rows(); i > 0; i--) { TRectype & rec = r[i]; TRecfield dcons(rec, RDOC_DATACONS); - if (datacons == dcons) + if (is_ordine() && datacons == dcons) dcons = ""; + TRecfield ccms(rec, RDOC_CODCMS); + TRecfield fcms(rec, RDOC_FASCMS); + if (codcms == ccms) + ccms = ""; + if (fascms == fcms) + fcms = ""; } } return r; @@ -2847,6 +2924,7 @@ void TDocumento::update_spese_aut(TString_array & spese_aut, bool preserve_old, break; case 'P': default: + riga.put("QTA", sp.perc()); break; } if (cod_iva_cli.empty()) @@ -2861,7 +2939,8 @@ void TDocumento::update_spese_aut(TString_array & spese_aut, bool preserve_old, } } } - } + } + } put("SPESEUPD", TRUE); } @@ -2996,7 +3075,7 @@ bool TDocumento::is_evaso() const { const TRiga_documento& riga = physical_row(r); if (riga.is_evadibile()) - ok = riga.get_bool(RDOC_RIGAEVASA); + ok = riga.get_bool(RDOC_RIGAEVASA) || riga.get_real(RDOC_QTA) == ZERO; } return ok; } diff --git a/ve/velib04a.cpp b/ve/velib04a.cpp index a5b7c7bfe..ed10d2388 100755 --- a/ve/velib04a.cpp +++ b/ve/velib04a.cpp @@ -74,8 +74,16 @@ bool TFatturazione_bolle::raggruppa(TDocumento& doc_in, TDocumento& doc_out) riferimento = doc_in.tipo().riferimento(); if (riferimento.empty()) riferimento = doc_in.tipo().descrizione(); - riferimento << " n. " << doc_in.numero(); - riferimento << " del " << doc_in.data().string(); + if (usa_doc_rif() && doc_in.get(DOC_NUMDOCRIF).not_empty()) + { + riferimento << " n. " << doc_in.get(DOC_NUMDOCRIF); + riferimento << " del " << doc_in.get(DOC_DATADOCRIF); + } + else + { + riferimento << " n. " << doc_in.numero(); + riferimento << " del " << doc_in.data().string(); + } // Setta la descrizione se vuota if (rout.get("DESCR").empty()) diff --git a/ve/velib04b.cpp b/ve/velib04b.cpp index 4df1f9ede..be30ff8d4 100755 --- a/ve/velib04b.cpp +++ b/ve/velib04b.cpp @@ -20,7 +20,6 @@ #include "velib.h" -#include "../cg/cg2101.h" #include "../cg/cg2103.h" #include "../cg/cgsaldac.h" #include "../cg/cglib02.h" @@ -29,49 +28,6 @@ // TContabilizzazione /////////////////////////////////////////////////////////// -// TMovimentoPN_VE -// Classe derivata da TMovimentoPN per calcolare automaticamente le righe contabili -// una volta settate le righe iva e la riga di totale documento -// Sostanzialmente di tratta di aggiungere un metodo in piu' : -// recalc_cg_rows(), liberamente ispirato alla notify_iva() in cg2102.cpp - -class TMovimentoPN_VE : public TMovimentoPN -{ - TCausale * _caus; - bool _valuta; - -protected: - // simula il K_SPACE di iva_notify - void create_row(int i, const TString & descr_cr); - // simula il K_ENTER di iva_notify - void enter_row(int i, const TString & descr_cr); - // verifica se si tratta di iva indetraibile - bool detraibile(TRectype& rec) const ; - // cerca la prima tra quelle di contabilita' che corrisponde al tipo indicato - int type2pos(char tipo); - // Trova nelle righe contabili un conto nelle righe di tipo prescelto - int bill2pos(const TBill& conto, char tipo); - // trasforma un real in TImporto, in base al tipo riga - TImporto real2imp(const real& r, char row_type); - // setta il record delle righe di contabilita' - int set_cg_rec(int n, const TImporto& imp, TBill& conto, const char* desc, char tipo); - // aggiunge l'importo indicato alla n-esima riga di contabilita' - bool add_cg_rec(int n, const TImporto& imp); - // Legge l'importo della riga n e lo ritorna col segno dovuto - TImporto get_cg_imp(int n); - // Setta l'importo della riga n - void set_cg_imp(int n, const TImporto& imp); - // verifica se il movimento e' quadrato oppure ha qualche maledetto sbilancio - // ritorna TRUE, ovviamente, se everything's alright. -public: - // ricalcola le righe di contabilita' dalle righe iva presenti - // e verifica la quadratura del movimento. Ritorna TRUE se il movimento e' scrivibile - bool movement_ok() ; - int recalc_cg_rows(const TString & descr_cr, TCausale* caus = NULL); - TMovimentoPN_VE(bool valuta) : _valuta(valuta), _caus(NULL) {}; - virtual ~TMovimentoPN_VE() {} -}; - TImporto TMovimentoPN_VE::real2imp(const real& r, char row_type) { CHECK(_caus,"Orgggssbb..._caus pointer is NULL!"); @@ -433,7 +389,40 @@ int TMovimentoPN_VE::recalc_cg_rows(const TString & descr_cr, TCausale* caus) else return 2; } - + else + { + real ritfis = head.get_real(MOV_RITFIS); + + if (ritfis != ZERO) + { + TBill c; _caus->bill(8, c); + ok = c.ok(); + if (ok) + { + const TString80 d(_caus->desc_agg(8)); + const char rowtype = 'F'; + set_cg_rec(-1, real2imp(ritfis, rowtype), c, d, rowtype); + } + else + return 1; + } + + real ritsoc = head.get_real(MOV_RITSOC); + + if (ritsoc != ZERO) + { + TBill c; _caus->bill(9, c); + ok = c.ok(); + if (ok) + { + const TString80 d(_caus->desc_agg(9)); + const char rowtype = 'S'; + set_cg_rec(-1, real2imp(ritsoc, rowtype), c, d, rowtype); + } + else + return 1; + } + } if (_caus->tipomov() == 1) // Elimina eventuali righe vuote dalle fatture { for (int c = cg_items()-1; c >= 0; c--) @@ -1285,6 +1274,42 @@ error_type TContabilizzazione::add_iva_row(const TBill& conto, const TRiga_docum real& rl = (real&) _totali_lordi[cod]; rl += r.imponibile(TRUE); } + if (tipo_r == 'S' && !_caus->intra()) + { + const char tipo_rit = r.spesa().tipo_ritenuta(); + + if (tipo_rit != '\0') + { + ((TSpesa_prest &)r.spesa()).zero("S9"); + ((TRiga_documento &)r).dirty_fields(); + TCurrency_documento c(r.imponibile(TRUE)); + ((TRiga_documento &)r).dirty_fields(); + ((TSpesa_prest &)r.spesa()).put("S9", (char) tipo_rit); + TRectype & h = _movimento->lfile().curr(); + real val; + if (r.doc().in_valuta()) + { + val = h.get_real(MOV_TOTDOCVAL) - c.get_num(); + h.put(MOV_TOTDOCVAL, val); + } + c.change_to_firm_val(); + val = h.get_real(MOV_TOTDOC) - c.get_num(); + h.put(MOV_TOTDOC, val); + + if (tipo_rit == 'F') + { + val = h.get_real(MOV_RITFIS) + c.get_num(); + h.put(MOV_RITFIS, val); + } + else + if (tipo_rit == 'S') + { + val = h.get_real(MOV_RITSOC) + c.get_num(); + h.put(MOV_RITSOC, val); + } + } + + } } } @@ -1314,6 +1339,7 @@ error_type TContabilizzazione::add_iva_row(const TBill& conto, const TRiga_docum _righe_iva.add(key,el_sc,exists); // Sostituisce od aggiunge la riga relativa allo sconto } } + return no_error; } @@ -1500,9 +1526,8 @@ error_type TContabilizzazione::adjust_iva_rows(TDocumento& doc) else { TCurrency_documento iva(iva_g); - iva.change_to_firm_val(); - iva_g = iva.get_value(); + iva_g = iva.get_num(); } } @@ -1657,15 +1682,17 @@ error_type TContabilizzazione::create_total_doc_row(TDocumento& doc) TLocalisamfile& cli_file = _clifo->lfile(); TString16 tipocf(cli_file.get(CLI_TIPOCF)); - const long codcf = cli_file.get_long(CLI_CODCF); + long codcf = cli_file.get_long(CLI_CODCF); int gruppo = 0, conto = 0; TString16 catven(doc.get(DOC_CATVEN)); if (search_clifo_bill(catven) == no_error) - { + { + tipocf[0] = _co_cliente.tipo(); gruppo = _co_cliente.gruppo(); conto = _co_cliente.conto(); + codcf = _co_cliente.sottoconto(); } else { @@ -1689,7 +1716,12 @@ error_type TContabilizzazione::create_total_doc_row(TDocumento& doc) rec_cg.put(RMV_GRUPPO,gruppo);rec_cg.put(RMV_CONTO,conto); rec_cg.put(RMV_SOTTOCONTO,codcf); rec_cg.put(RMV_DESCR,descr); contro.put(rec_cg, TRUE); - rec_cg.put(RMV_IMPORTO,totdoc); rec_cg.put(RMV_ROWTYPE,"T"); + rec_cg.put(RMV_IMPORTO,totdoc); rec_cg.put(RMV_ROWTYPE,"T"); + if (tipocf == " ") + { + head.zero(MOV_TIPO); + head.zero(MOV_CODCF); + } return _error; } @@ -2010,6 +2042,8 @@ error_type TContabilizzazione::write_scadenze(TDocumento& doc) else if (doc.is_nota_credito()) { TImporto residuoval(sezione, doc.totale_doc()); + TImporto residuolit(sezione, abs(totdoc)); + partita.put(PART_DATAPAG, doc.get(DOC_DATADOC)); partita.put(PART_TIPOPAG, doc.pagamento().tipo_rata(0)); @@ -2094,6 +2128,7 @@ error_type TContabilizzazione::write_scadenze(TDocumento& doc) } else residuoval -= TImporto(sezione, importo_rata_lit); + residuolit -= TImporto(sezione, importo_rata_lit); pag.put(PAGSCA_ACCSAL, "A"); newgame->modifica_pagamento(pag, cambio, TRUE); @@ -2108,8 +2143,9 @@ error_type TContabilizzazione::write_scadenze(TDocumento& doc) if (in_valuta) { unpag.put(PAGSCA_IMPORTOVAL, residuoval.valore()); - cambio.val2lit(residuoval); //verificare - unpag.put(PAGSCA_IMPORTO, residuoval.valore()); +// cambio.val2lit(residuoval); //verificare +// unpag.put(PAGSCA_IMPORTO, residuoval.valore()); + unpag.put(PAGSCA_IMPORTO, residuolit.valore()); } else unpag.put(PAGSCA_IMPORTO, residuoval.valore()); @@ -2125,18 +2161,18 @@ error_type TContabilizzazione::write_scadenze(TDocumento& doc) //error_box("Si e' verificato un errore scrivendo le scadenze del documento."); _error = write_part_error; delete newgame; - } + } return _error; } -error_type TContabilizzazione::write_all(TDocumento& doc) +error_type TContabilizzazione::write_all(TDocumento& doc, TMovimentoPN_VE & movimento) // Scrive il movimento e le scadenze, gestendo la rinumerazione se il movimento e' gia presente { // N.B: _error non viene settato, per non stampare il messaggio di errore 2 volte. // basta solo ritornare qualcosa di != da no_error, per evitare le operazioni successive // a write_all - TRectype& head = _movimento->lfile().curr(); + TRectype& head = movimento.lfile().curr(); long numreg = head.get_long(MOV_NUMREG); if (test_swap()) { @@ -2146,11 +2182,11 @@ error_type TContabilizzazione::write_all(TDocumento& doc) head.put(MOV_TOTDOC, totdoc); // head.put(MOV_TOTDOCVAL, totdocval); // Non cambio segno! :-( LL700285 - const int items = _movimento->iva_items(); + const int items = movimento.iva_items(); for (int i = items - 1 ; i >= 0; i--) { - TRectype & rec_iva = _movimento->iva(i); + TRectype & rec_iva = movimento.iva(i); const real imponibile = -rec_iva.get_real(RMI_IMPONIBILE); const real imposta = -rec_iva.get_real(RMI_IMPOSTA); @@ -2159,9 +2195,9 @@ error_type TContabilizzazione::write_all(TDocumento& doc) rec_iva.put(RMI_IMPOSTA, imposta); } } - while (_movimento->write() == _isreinsert) + while (movimento.write() == _isreinsert) head.put(MOV_NUMREG,++numreg); - if (_movimento->status() != NOERR) + if (movimento.status() != NOERR) { error_box("Errore %d scrivendo il movimento %ld.",_movimento->status(),numreg); return generic_error; @@ -2169,6 +2205,26 @@ error_type TContabilizzazione::write_all(TDocumento& doc) if (sc_enabled()) write_scadenze(doc); + if (good() && in_enabled()) + write_intra(doc); + + if (doc.get_real(DOC_IMPPAGATO) != ZERO) + if (write_anticipo(doc) != no_error) + movimento.remove(); // Se si č verificato un errore nella scrittura dell'anticipo rimuove il movimento di prima nota + + if (good()) + { + _total_docs++; + aggiorna_saldi(TRUE); + change_doc_status(doc); + + TString msg("Generazione Movimento "); + + msg << "$[b,w]" << _movimento->curr().get(MOV_NUMREG) << "$[n,w]"; + msg << " del " << _movimento->curr().get(MOV_DATAREG); + _viswin->add_line(msg); + } + return no_error; } @@ -2269,7 +2325,8 @@ error_type TContabilizzazione::search_clifo_bill(TString & catven) if (!_co_cliente.ok()) // se non e' valido, reperiscilo dalla riga #1 della causale { _caus->bill(1,_co_cliente); // conto della riga 1 - _co_cliente.codclifo() = codcf; + if (_co_cliente.tipo() != ' ') + _co_cliente.codclifo() = codcf; if (!_co_cliente.ok()) _error = clifo_error; } @@ -3024,29 +3081,7 @@ bool TContabilizzazione::elabora(TLista_documenti& doc_in, TLista_documenti& /* } if (good() && _can_write) - { - if (write_all(doc) == no_error) // Se la scrittura e' andata ok... - { - if (good() && in_enabled()) - write_intra(doc); - - if (doc.get_real(DOC_IMPPAGATO) != ZERO) - if (write_anticipo(doc) != no_error) - _movimento->remove(); // Se si č verificato un errore nella scrittura dell'anticipo rimuove il movimento di prima nota - - if (good()) - { - _total_docs++; - aggiorna_saldi(TRUE); - change_doc_status(doc); - - msg = "Generazione Movimento "; - msg << "$[b,w]" << _movimento->curr().get(MOV_NUMREG) << "$[n,w]"; - msg << " del " << _movimento->curr().get(MOV_DATAREG); - _viswin->add_line(msg); - } - } - } + write_all(doc, *_movimento); // Se la scrittura e' andata ok... if (!good()) { diff --git a/ve/velib04c.cpp b/ve/velib04c.cpp index a478c9ef8..bd23ad78f 100755 --- a/ve/velib04c.cpp +++ b/ve/velib04c.cpp @@ -507,7 +507,7 @@ void TGenerazione_effetti::calc_pagamento(TDocumento& doc) { TCurrency_documento val2(pagtotimposte); val2.change_to_firm_val(); TCurrency_documento val3(pagtotspese); val3.change_to_firm_val(); - TCurrency_documento val1(tot_doc); val1.change_to_firm_val(); val1 -= val2 - val3; + TCurrency_documento val1(tot_doc); val1.change_to_firm_val(); val1 -= val2 + val3; pag.set_total_valuta(pagtotimponibili, pagtotimposte, pagtotspese, val1, val2, val3); } diff --git a/ve/velib05.cpp b/ve/velib05.cpp index 7e2c665e1..1aa497353 100755 --- a/ve/velib05.cpp +++ b/ve/velib05.cpp @@ -197,7 +197,7 @@ void TDocumentoEsteso::scadenze_recalc() } else { - TGeneric_distrib d(pagato, is_in_valuta ? 3 : 0); + TGeneric_distrib d(pagato, decimals()); d.add(totimponibili); d.add(totimposte); diff --git a/ve/vepriv.h b/ve/vepriv.h index 800267e00..14fe9c782 100755 --- a/ve/vepriv.h +++ b/ve/vepriv.h @@ -1,7 +1,9 @@ #ifndef __VEPRIV_H #define __VEPRIV_H -enum _formule {_somma, _bolli, _bolli_int, _spinc, _prezzo, _importo, _imponibile, _sconto, _iva, _provv, _qtares, _valdoc, _tipo, _imponibili, _imposte, _totprovv, _pscontot}; +enum _formule {_somma, _bolli, _bolli_int, _spinc, _prezzo, _importo, _imponibile, _sconto, _iva, + _provv, _qtares, _valdoc, _tipo, _imponibili, _imposte, _totprovv, _pscontot, _ritenuta, + _tipo_ritenuta}; enum TTipo_calcolo { _nessun_calcolo, _qtaprezzo, _valore, _percentuale, _scontoimp, _scontoperc}; void row_set_handler( TMask& m, const int field, const int index ); diff --git a/ve/verig.h b/ve/verig.h index 9ca9785e3..c89bd1b34 100755 --- a/ve/verig.h +++ b/ve/verig.h @@ -71,7 +71,9 @@ #define FR_QTAGG5 137 #define FR_IMPIANTO 138 #define FR_LINEA 139 -#define FR_END 140 +#define FR_CODCMS 140 +#define FR_FASCMS 141 +#define FR_END 142 #define MAX_COLUMNS FR_END-FR_LORDO #define FR_DESMAG 250 @@ -84,4 +86,6 @@ #define FR_DESDEPC 257 #define FR_DESIMP 258 #define FR_DESLNP 259 +#define FR_DESCMS 260 +#define FR_DESFAS 261 #endif diff --git a/ve/verig.uml b/ve/verig.uml index 60f1e712c..ba945facd 100755 --- a/ve/verig.uml +++ b/ve/verig.uml @@ -921,7 +921,7 @@ END ENDIF IFDEF(FLD_PREZZO) -CURRENCY FR_PREZZO 15 +CURRENCY FR_PREZZO 18 BEGIN IFDEF(X_PREZZO) PROMPT X_PREZZO Y_PREZZO PR_PREZZO @@ -940,7 +940,7 @@ END ENDIF IFDEF(FLD_VALORE) -CURRENCY FR_VALORE 15 +CURRENCY FR_VALORE 18 BEGIN IFDEF(X_VALORE) PROMPT X_VALORE Y_VALORE PR_VALORE @@ -1587,6 +1587,83 @@ ENDIF END ENDIF +IFDEF(FLD_CODCMS) +STRING FR_CODCMS 20 +BEGIN +IFDEF(X_CODCMS) + PROMPT X_CODCMS Y_CODCMS PR_CODCMS +ELSEIF + PROMPT 2 11 "Commessa " +ENDIF + USE CMS + INPUT CODTAB FR_CODCMS + DISPLAY "Codice commessa@20" CODTAB + DISPLAY "Descrizione @50" S0 + OUTPUT FR_CODCMS CODTAB + OUTPUT FR_DESCMS S0 + FIELD CODCMS + FLAGS "UZ" +IFDEF(CH_CODCMS) + CHECKTYPE CH_CODCMS +ELSEIF + CHECKTYPE NORMAL +ENDIF +END + +STRING FR_DESCMS 50 +BEGIN +IFDEF(X_CODCMS) + PROMPT 14 Y_CODCMS "" +ELSEIF + PROMPT 14 12 "" +ENDIF + USE CMS KEY 2 + INPUT S0 FR_DESCMS + DISPLAY "Descrizione @50" S0 + DISPLAY "Codice commessa@20" CODTAB + COPY OUTPUT FR_CODCMS + CHECKTYPE NORMAL +END + +STRING FR_FASCMS 10 +BEGIN +IFDEF(X_FASCMS) + PROMPT X_FASCMS Y_FASCMS PR_FASCMS +ELSEIF + PROMPT 2 13 "Fase " +ENDIF + USE FSC + INPUT CODTAB FR_FASCMS + DISPLAY "Codice Fase@10" CODTAB + DISPLAY "Descrizione @50" S0 + OUTPUT FR_FASCMS CODTAB + OUTPUT FR_DESCMS S0 + FIELD FASCMS + FLAGS "UZ" +IFDEF(CH_FASCMS) + CHECKTYPE CH_CODCMS +ELSEIF + CHECKTYPE NORMAL +ENDIF +END + +STRING FR_DESFAS 50 +BEGIN +IFDEF(X_FASCMS) + PROMPT 14 Y_FASCMS "" +ELSEIF + PROMPT 14 14 "" +ENDIF + USE FAS KEY 2 + INPUT S0 FR_DESFAS + DISPLAY "Descrizione @50" S0 + DISPLAY "Codice Fase@10" CODTAB + COPY OUTPUT FR_FASCMS + CHECKTYPE NORMAL +END + +ENDIF + #endif #ifndef FULL_SCREEN diff --git a/ve/verig00.uml b/ve/verig00.uml index b25528e4e..f510289d1 100755 --- a/ve/verig00.uml +++ b/ve/verig00.uml @@ -40,5 +40,6 @@ DEFINE_FIELD(QTAGG4) DEFINE_FIELD(QTAGG5) DEFINE_FIELD(IMPIANTO) DEFINE_FIELD(LINEA) +DEFINE_FIELD(CODCMS) #include "verig.uml" diff --git a/ve/verig01.uml b/ve/verig01.uml index 80920fcc7..b31e9891b 100755 --- a/ve/verig01.uml +++ b/ve/verig01.uml @@ -42,9 +42,8 @@ DEFINE_FIELD(DESMAGC) DEFINE_FIELD(CODDEPC) DEFINE_FIELD(DESDEPC) DEFINE_FIELD(IMPIANTO) -DEFINE_FIELD(DESIMP) DEFINE_FIELD(LINEA) -DEFINE_FIELD(DESLNP) +DEFINE_FIELD(CODCMS) #include "verig.uml" diff --git a/ve/verig02.uml b/ve/verig02.uml index 478a9a935..1d13cbe17 100755 --- a/ve/verig02.uml +++ b/ve/verig02.uml @@ -3,6 +3,8 @@ #define FULL_SCREEN #define MASK_TITLE1 "Spese di tipo (Valore)" +#define PAGE_2 + DEFINE_FIELD(CODSPV) DEFINE_FIELD(DESCRSPV) @@ -15,6 +17,7 @@ DEFINE_FIELD(CODIVA) F_POS(CODIVA, 2, 13,"Cod. IVA " ) DEFINE_FIELD(DESIVA) F_POS(DESIVA, 22, 13,"" ) +DEFINE_FIELD(CODCMS) #include "verig.uml" diff --git a/ve/verig03.uml b/ve/verig03.uml index 5faa79b8d..c2f687fc8 100755 --- a/ve/verig03.uml +++ b/ve/verig03.uml @@ -3,6 +3,7 @@ #define FULL_SCREEN #define MASK_TITLE1 "Spese di tipo (Quantita'/Prezzo)" +#define PAGE_2 DEFINE_FIELD(CODSPQ) DEFINE_FIELD(DESCRSPQ) @@ -15,6 +16,7 @@ DEFINE_FIELD(CODIVA) F_POS(CODIVA, 2, 13,"Cod. IVA " ) DEFINE_FIELD(DESIVA) F_POS(DESIVA, 22, 13,"" ) +DEFINE_FIELD(CODCMS) #include "verig.uml" diff --git a/ve/verig04.uml b/ve/verig04.uml index 555aa2aa6..e09d1a655 100755 --- a/ve/verig04.uml +++ b/ve/verig04.uml @@ -11,6 +11,8 @@ DEFINE_FIELD(CODIVA) F_POS(CODIVA, 2, 11,"Cod. IVA " ) DEFINE_FIELD(DESIVA) F_POS(DESIVA, 22, 11,"" ) +DEFINE_FIELD(CODCMS) +#define PAGE_2 #include "verig.uml" diff --git a/ve/verig06.uml b/ve/verig06.uml index aaa73a572..d2cdb46b8 100755 --- a/ve/verig06.uml +++ b/ve/verig06.uml @@ -3,6 +3,7 @@ #define FULL_SCREEN #define MASK_TITLE1 "Prestazioni" +#define PAGE_2 DEFINE_FIELD(CODPRS) DEFINE_FIELD(DESCRPRS) @@ -18,6 +19,7 @@ DEFINE_FIELD(CODIVA) F_POS(CODIVA, 2, 13,"Cod. IVA " ) DEFINE_FIELD(DESIVA) F_POS(DESIVA, 22, 13,"" ) +DEFINE_FIELD(CODCMS) #include "verig.uml" diff --git a/ve/verig13.uml b/ve/verig13.uml index 1db530bdc..a83210d68 100755 --- a/ve/verig13.uml +++ b/ve/verig13.uml @@ -41,7 +41,7 @@ DEFINE_FIELD(CODMAGC) DEFINE_FIELD(DESMAGC) DEFINE_FIELD(CODDEPC) DEFINE_FIELD(DESDEPC) - +DEFINE_FIELD(CODCMS) #include "verig.uml" diff --git a/ve/verig14.uml b/ve/verig14.uml index 6c3b096f1..aea784aa5 100755 --- a/ve/verig14.uml +++ b/ve/verig14.uml @@ -41,7 +41,7 @@ DEFINE_FIELD(CODMAGC) DEFINE_FIELD(DESMAGC) DEFINE_FIELD(CODDEPC) DEFINE_FIELD(DESDEPC) - +DEFINE_FIELD(CODCMS) #include "verig.uml" diff --git a/ve/vesirio.cpp b/ve/vesirio.cpp new file mode 100755 index 000000000..e3c1346f9 --- /dev/null +++ b/ve/vesirio.cpp @@ -0,0 +1,19 @@ +#include +#include "vesirio.h" + +extern int vesirio(int argc, char* argv[]); //scrive file .dbf per AS400 (ma pensa te...!) + +int main(int argc, char **argv) +{ + const int r= (argc>1)? argv[1][1]-'0' : -1; + + switch (r) + { + case (0): + vesirio1(argc, argv); break; + default: + vesirio1(argc, argv); break; + } + exit(0); + return 0; +} diff --git a/ve/vesirio.h b/ve/vesirio.h new file mode 100755 index 000000000..c17cda4aa --- /dev/null +++ b/ve/vesirio.h @@ -0,0 +1,10 @@ +#ifndef __VESIRIO_H +#define __VESIRIO_H + +int vesirio1(int argc, char* argv[]); + +#endif // __VESIRIO_H + + + + diff --git a/ve/vesirio1.cpp b/ve/vesirio1.cpp new file mode 100755 index 000000000..ed2e4ed7d --- /dev/null +++ b/ve/vesirio1.cpp @@ -0,0 +1,711 @@ +#include +#include +#include +#include +#include +#include +#include + +#include "vesirio.h" +#include "vesirioa.h" + +#include "doc.h" +#include "rdoc.h" +#include "mov.h" +#include "rmov.h" +#include "partite.h" +#include "rmoviva.h" +#include "velib.h" + +//=====MASCHERA============================================================// +class TToas400_mask : public TAutomask +{ + +protected: + bool on_field_event(TOperable_field& o, TField_event e, long jolly); +public: + TToas400_mask(); + virtual ~TToas400_mask() {}; +}; + +TToas400_mask::TToas400_mask() :TAutomask ("vesirioa") {} + +bool TToas400_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) +{ + switch (o.dlg()) + { + case F_BOLLE : + case F_FATTURE : + case F_MOVCONT : + if (e == fe_close) + { + if (!get_bool(F_BOLLE) && !get_bool(F_FATTURE) && !get_bool(F_MOVCONT)) //deve essere selezionata almeno 1 situaz. + return error_box("Selezionare almeno uno dei tipi documento da esportare"); + } + break; + + default: break; + } + return TRUE; +} + +//=====APPLICAZIONE====================================================// +class TToas400 : public TSkeleton_application +{ + TToas400_mask* _mask; + +protected: + void copia_rigadoc(TRectype& recdest, const TRectype& recsource, const TRectype& rectestata) const; + bool genera_righedoc(const TString& path, char tipo); + + void copia_documento(TRectype& recdest, const TRectype& recsource, const TRectype& recriga) const; + bool genera_documenti(const TString& path, char tipo); + + void copia_rigamov(TRectype& recdest, const TRectype& recsource) const; + bool genera_righemov(const TString& path); + + void copia_rigaiva(TRectype& recdest, const TRectype& recsource) const; + bool genera_righeiva(const TString& path); + + void copia_movimento(TRectype& recdest, const TRectype& recsource, const TRectype& recriga, const TRectype& recpartita) const; + bool genera_movimenti(const TString& path); + + bool genera_bolle(const TString& path); + bool genera_fatture(const TString& path); + bool genera_movcont(const TString& path); + void azzera_campi(TRectype& rectozero) const; + int separa_sconti(const TString& sconto, TToken_string& sconti4) const; + +public: + virtual bool create(); + virtual bool destroy(); + virtual void main_loop(); +}; + + +bool TToas400::create() +{ + open_files(LF_DOC, 0); + _mask = new TToas400_mask; + + return TSkeleton_application::create(); +} + +bool TToas400::destroy() +{ + delete _mask; + return TSkeleton_application::destroy(); +} + +//_________________________________________________________________________________________________________________________ +//DOCUMENTI DI VENDITA + +//metodo per la copia delle righe documenti (bolle/fatture) sul file .dbf di destinazione +void TToas400::copia_rigadoc(TRectype& recdest, const TRectype& recsource, const TRectype& rectestata) const +{ + azzera_campi(recdest); //mette 0 in tutti i campi numerici (compresi quelli che non saranno riempiti) + + TString4 coddep = recsource.get(RDOC_CODMAG).left(3); + recdest.put("I6CDEP", coddep); //cod.deposito + + recdest.put("I6CCLI",rectestata.get(DOC_CODCF)); //cod.cliente (da testata) + recdest.put("I6TDO1",rectestata.get(DOC_TIPODOC)); //tipodoc (da testata) + recdest.put("I6CNMV",rectestata.get(DOC_CODNUM)); //cod.num.doc (da testata) + recdest.put("I6NDOC",recsource.get(RDOC_NDOC)); //num.doc (=testata) + recdest.put("I6NRIG",recsource.get(RDOC_NRIGA)); //num.riga + recdest.put("I6TRIG", "1"); //tiporiga 1 (sono solo riga merce) + recdest.put("I6CART",recsource.get(RDOC_CODARTMAG)); //cod.art + recdest.put("I6CLIN",recsource.get(RDOC_LINEA)); //cod.linea (x MRP?) + recdest.put("I6DCO1",recsource.get(RDOC_DESCR).left(35)); //descriz.1 + recdest.put("I6DCO2",recsource.get(RDOC_DESCR).mid(35)); //descriz.2 + recdest.put("I6CUMI",recsource.get(RDOC_UMQTA)); //unitį di misura + recdest.put("I6CIVA",recsource.get(RDOC_CODIVA)); //cod.iva + + real qta = recsource.get(RDOC_QTA); + if (qta.is_zero()) + qta = 9999999999999.0; + recdest.put("I6QARM",qta); //quantitį (9999999999999 se 0; mah?) + + real prezzoven = recsource.get(RDOC_PREZZO); + if (prezzoven.is_zero()) + prezzoven = 9999999999999.0; + recdest.put("I6LUNI",prezzoven); //prezzo vendita unitario lordo(9999999999999 se 0; mah?) + + const TString& sconto = recsource.get(RDOC_SCONTO); + if (sconto.not_empty()) //%sconto (achtung! x as400 é % x eurocampo una espressione) + { + TToken_string sconti4; + int s = separa_sconti(sconto, sconti4); //metodo che separa l'espressione di sconto + char campo[7] = "I6PSR1"; + for (int i = 0; i < s; i++) + { + campo[5] = '1'+i; + recdest.put(campo, sconti4.get(i)); //mette nei campi i valori degli sconti + } + } + + recdest.put("I6PPR1",recsource.get(RDOC_PERCPROV)); //%provvigione 1 + + TString area; + area << " " << "000000000000000000"; + const TRectype& tiporiga = cache().get("%TRI", recsource.get(RDOC_TIPORIGA)); + TString8 codriga; + switch (tiporiga.get_char("S7")) + { + case 'C': codriga = "SM"; break; + case 'O': codriga = "OG"; break; + default: codriga = " "; break; + } + area << codriga; + recdest.put("I6AREA", area); //campo personalizzabile: ci va una strana stringa...mah? + +} + +//metodo che "fraziona" la formula di sconto riga nei suoi componenti; se ci sono 4 o + numeri -> mette nel quarto numero +//lo sconto complessivo di quelli dal quarto in avanti +int TToas400::separa_sconti(const TString& sconto, TToken_string& sconti4) const +{ + sconti4.cut(0); +// Elimina gli spazi molesti sulla stringa dello sconto (ovviamente copiata, X' l'originale non si tocca) + TString sconto_orig = sconto; + sconto_orig.strip_spaces( ); +//aggiunge un segno iniziale + qualora non esistesse alcun segno + if (sconto_orig[0] != '+' && sconto_orig[0] != '-') + sconto_orig.insert("+"); +//assegna agli elementi della token_string i valori numerici ed i segni + int numsconti = 0; + for (int i=0; sconto_orig[i]; i++) + { + +//se il carattere é un segno -> devo cambiare elemento della token string (mettendo '|' ma non nel caso del primo segno) + if (sconto_orig[i] == '+' || sconto_orig[i] == '-') + { + if (numsconti++ > 0) //incrementa numsconti di 1 + sconti4 << '|'; + if (numsconti > 3) + break; + } + +//se numero -> scrive il carattere sulla token_string.. + sconti4 << sconto_orig[i]; + } + +//adesso piazza nel quarto elemento i valori degli elementi dal quarto in avanti + const TString oltre = sconto_orig.mid(i); + if (oltre.not_empty()) + { + TString pipo; + real psconto; + scontoexpr2perc(oltre, 0, pipo, psconto); + psconto = 100 - 100*psconto; //lo mette in percentuale + psconto.round(2); //arrotonda al secondo decimale + sconti4.add(psconto.string(),3); //aggiunge psconto alla posizione 4 + } + return sconti4.items(); +} + +// tipo -> B=bolle, F=fatture +bool TToas400::genera_righedoc(const TString& path, char t) +{ +//Crea il file vuoto delle righe documenti + const char* tipor = t == 'B' ? "rbolle" : "rfatture"; + TFilename trrrig = path; trrrig.add(tipor); trrrig.ext("trr"); + TFilename siriorig = path; siriorig.add(tipor); siriorig.ext("dbf"); + + TExternisamfile righe(siriorig, trrrig); + righe.zap(); + +//lettura da prassid.ini dell'ultima bolla/fattura trasferita +//ATTENZIONE!La numerazione documenti é unica per bolle e fatture rispettivamente! Ovvero non é possibile trasferire 2 tipi +//di fatture con codice diverso (o 2 tipi di bolle con codice diverso) + TConfig fileini(CONFIG_DITTA, "Sirio"); + TToken_string ultimo = fileini.get(tipor+1, NULL, -1, t == 'B' ? "2002|B01" : "2002|FAA"); + +//scandisce il file doc.dbf alla ricerca dei documenti non ancora esportati... + TRelation rel(LF_RIGHEDOC); + TString expr; + expr << "CODNUM==CODNUM|ANNO==ANNO|NDOC==NDOC|PROVV==PROVV" ; + rel.add(LF_DOC, expr); //aggiunge alla relazione (in origine sulle righe) il file delle testate x' necessita di alcuni campi di questo file + +//..intanto si memorizza il record di partenza, che é quello successivo all'ultimo trasferito.. + TRectype& recsource = rel.curr(); + recsource.put(RDOC_PROVV, "D"); + recsource.put(RDOC_ANNO, ultimo.get(0)); + recsource.put(RDOC_CODNUM, ultimo.get(1)); + recsource.put(RDOC_NDOC, ultimo.get_long(2)+1); + +//..quindi si crea il filtro ed il cursore per scandire il file delle righe documento.. + TString filtro; + filtro << "CODNUM==\"" << ultimo.get(1) << "\""; + TCursor cur(&rel, filtro, 1, &recsource); + const long items = cur.items(); + cur.freeze(); + + TString caption; caption << "Elaborazione " << tipor << "..."; + TProgind pi(items, caption, TRUE, TRUE); + +//..prepara i record di origine e destinazione e procede al trasferimanto dati campo per campo + TRectype& recdest = righe.curr(); + const TRectype& testata = rel.curr(LF_DOC); + int nriga = 1; + long ultimodoc = 0; + + for (cur = 0L; cur.pos() < items; ++cur) + { + pi.addstatus(1); + if (pi.iscancelled()) + break; + + long currdoc = recsource.get_long(RDOC_NDOC); + if (currdoc != ultimodoc) + { + ultimodoc = currdoc; + nriga = 1; + } + const TString& codartmag = recsource.get(RDOC_CODARTMAG); + if (codartmag.not_empty()) //vogliamo solo righe merce! + { + recsource.put(RDOC_NRIGA, nriga++); //incrementa il numero riga se rigamerce + copia_rigadoc(recdest, recsource, testata); + const int err = righe.write(); + if (err != NOERR) + return error_box("Errore %d di registrazione %s", err, tipor); + } + + } + + return !pi.iscancelled(); +} + +void TToas400::copia_documento(TRectype& recdest, const TRectype& recsource, const TRectype& recriga) const +{ + + azzera_campi (recdest); //mette 0 in tutti i campi numerici (compresi quelli che non saranno riempiti) + + TString4 coddep = recriga.get(RDOC_CODMAG).left(3); + recdest.put("I5CDEP", coddep); //cod. deposito (viene preso = a quello della prima riga! mah!?) + + recdest.put("I5CCLI", recsource.get(DOC_CODCF)); //cod.cliente + recdest.put("I5TDO1", recsource.get(DOC_TIPODOC)); //tipo doc. appl.esterno + recdest.put("I5CNMV", recsource.get(DOC_CODNUM)); //cod.num.appl.esterno + recdest.put("I5UDOC", recsource.get_date(DOC_DATADOC).string(ANSI)); //data doc.appl.esterno + recdest.put("I5NDOC", recsource.get(DOC_NDOC)); //num.doc.appl.esterno + recdest.put("I5CPAG", recsource.get(DOC_CODPAG)); //cod.condizione pagamento + + TString16 codabicab = recsource.get(DOC_CODABIA); + codabicab << recsource.get(DOC_CODCABA); + recdest.put("I5CABI", codabicab); //codice banca abi cab + + recdest.put("I5CLIG", recsource.get(DOC_CODLIN)); //cod.lingua + recdest.put("I5CPOR", recsource.get(DOC_CODPORTO)); //cod.porto + recdest.put("I5CMEZ", recsource.get(DOC_CODSPMEZZO)); //cod.mezzo + recdest.put("I5CVE1", recsource.get(DOC_CODVETT1)); //cod.vett.1 + recdest.put("I5CVE2", recsource.get(DOC_CODVETT2)); //cod.vett.2 + recdest.put("I5CVE3", recsource.get(DOC_CODVETT3)); //cod.vett.3 + recdest.put("I5CZON", recsource.get(DOC_ZONA)); //cod.zona + + const TRectype& tpdoc = cache().get("%TIP", recsource.get(DOC_TIPODOC)); + recdest.put("I5CCVE", tpdoc.get("S6")); //cod.causale di vendita + recdest.put("I5CCMO", tpdoc.get("S9")); //cod.caus.magazzino su tabella tipodocumenti batbtip + + recdest.put("I5CVAL", recsource.get(DOC_CODVAL)); //cod.valuta + + const bool is_controeuro = recsource.get_bool(DOC_CONTROEURO); //valore cambio + real cambio = recsource.get_real(DOC_CAMBIO); + if (!is_controeuro && cambio > ZERO) + cambio = 1936.27/cambio; + recdest.put("I5ICAM", cambio); + + recdest.put("I5CAG1", recsource.get(DOC_CODAG)); //cod.agente + recdest.put("I5CASP", recsource.get(DOC_ASPBENI1)); //cod. aspetto beni + recdest.put("I5PSCA", recsource.get(DOC_SCONTOPERC)); //sconto testata documento + recdest.put("I5NCLP", recsource.get(DOC_NCOLLI)); //num.colli + + real pnetto = recsource.get_real(DOC_PNETTO); + recdest.put("I5QPNE", pnetto); //peso netto merce + real plordo = pnetto; + + const TString4 umpnetto = recsource.get(DOC_UMPNETTO); //peso lordo (se non ha un'unica unitį di misura tra pnetto e tara + const TString4 umtara = recsource.get(DOC_UMTARA); //fa plordo = pnetto + if (umpnetto == umtara) + plordo += recsource.get_real(DOC_TARA); + recdest.put("I5QPLO", plordo); + +} + +// tipo -> B=bolle, F=fatture +bool TToas400::genera_documenti(const TString& path, char t) +{ + const char* tipo = t == 'B' ? "bolle" : "fatture"; + +//crea il file delle testate delle bolle utilizzando bolle.trr come tracciato record + TFilename siriodoc = path; siriodoc.add(tipo); siriodoc.ext("dbf"); + TFilename trrdoc = path; trrdoc.add(tipo); trrdoc.ext("trr"); + + TExternisamfile documenti(siriodoc, trrdoc); + documenti.zap(); + +//lettura da prassid.ini dell'ultima bolla/fattura trasferita (se non la trova, di default mette B01|2002|D|0) + TConfig fileini(CONFIG_DITTA, "Sirio"); + TToken_string ultimo = fileini.get(tipo, NULL, -1, t == 'B' ? "2002|B01" : "2002|FAA"); + +//scandisce il file doc.dbf alla ricerca dei documenti non ancora esportati... + TRelation rel(LF_DOC); + TString expr; + expr << "PROVV==PROVV|ANNO==ANNO|CODNUM==CODNUM|NDOC==NDOC"; + rel.add(LF_RIGHEDOC, expr); //aggiunge alla relazione (in origine sulle testate) il file delle righe x' necessita di alcuni campi di questo file + +//..intanto si memorizza il record di partenza, che é quello successivo all'ultimo trasferito.. + TRectype& recsource = rel.curr(); + recsource.put(DOC_PROVV, "D"); + recsource.put(DOC_ANNO, ultimo.get(0)); + recsource.put(DOC_CODNUM, ultimo.get(1)); + recsource.put(DOC_NDOC, ultimo.get_long(2)+1); +//..quindi si crea il filtro ed il cursore per scandire il file delle testate documento.. + TString filtro; + filtro << "CODNUM==\"" << ultimo.get(1) << "\""; + TCursor cur(&rel, filtro, 1, &recsource); + const long items = cur.items(); + cur.freeze(); + + TString caption; caption << "Elaborazione " << tipo << "..."; + TProgind pi(items, caption, TRUE, TRUE); + +//..prepara i record di origine e destinazione e procede al trasferimanto dati campo per campo + TRectype& recdest = documenti.curr(); + const TRectype& righe = rel.curr(LF_RIGHEDOC); + for (cur = 0; cur.pos() < items; ++cur) + { + pi.addstatus(1); + if (pi.iscancelled()) + break; + + copia_documento(recdest, recsource, righe); //copia i files delle testate + + const int err = documenti.write(); + if (err != NOERR) + return error_box("Errore %d di registrazione %s", err, tipo); + + // Calcola identificatore ultimo record trasferito + ultimo = recsource.get(DOC_ANNO); + ultimo.add(recsource.get(DOC_CODNUM)); + ultimo.add(recsource.get(DOC_NDOC)); + } + + const bool ok = !pi.iscancelled(); + if (ok) + fileini.set(tipo, ultimo); + + return ok; +} + +//___________________________________________________________________________________________________________________________ +//MOVIMENTI CONTABILI + +bool TToas400::genera_righemov(const TString& path) +{ +//crea il file vuoto delle righe movimenti utilizzando rmovc.trr come tracciato record + TFilename siriomov = path; siriomov.add("rmovc"); siriomov.ext("dbf"); + TFilename trrmov = path; trrmov.add("rmovc"); trrmov.ext("trr"); + + TExternisamfile righe(siriomov, trrmov); + righe.zap(); +//lettura da prassid.ini dell'ultimo movimento trasferito + TConfig fileini(CONFIG_DITTA, "Sirio"); + TToken_string ultimo = fileini.get("Movimenti"); + +//scandisce il file rmov.dbf alla ricerca delle righe movimento non ancora esportate... + TRelation rel(LF_RMOV); + +//..intanto si memorizza il record di partenza, che é quello successivo all'ultimo trasferito.. + TRectype& recsource = rel.curr(); + recsource.put(RMV_NUMREG, ultimo.get_long(0)); + recsource.put(RMV_NUMRIG, ultimo.get(1)); + +//..quindi si crea il filtro ed il cursore per scandire il file delle righe documento.. + TString filtro; + filtro << "NUMREG==\"" << ultimo.get(0) << "\""; + TCursor cur(&rel, "", 1, &recsource); + const long items = cur.items(); + cur.freeze(); + + TString caption; caption << "Elaborazione righe movimenti..."; + TProgind pi(items, caption, TRUE, TRUE); + +//..prepara i record di origine e destinazione e procede al trasferimanto dati campo per campo + TRectype& recdest = righe.curr(); + const TRectype& testata = rel.curr(LF_MOV); + int nriga = 1; + long ultimomov = 0; + + for (cur = 0L; cur.pos() < items; ++cur) + { + pi.addstatus(1); + if (pi.iscancelled()) + break; + + long currmov = recsource.get_long(RMV_NUMREG); + if (currmov != ultimomov) + { + ultimomov = currmov; + nriga = 1; + } +// const TString& tipocausale = recsource.get(RMOV_); +// if (tipocausale == ) //vogliamo solo righe pagamento! + { + recsource.put(RMV_NUMRIG, nriga++); //incrementa il numero riga se rigapagamento + copia_rigamov(recdest, recsource); + const int err = righe.write(); + if (err != NOERR) + return error_box("Errore %d di registrazione righe movimenti", err); + } + } + + const bool ok = !pi.iscancelled(); + return ok; +} + +void TToas400::copia_rigamov(TRectype& recdest, const TRectype& recsource) const +{ + recdest.zero(); +} + +/* Molto probabilmente inutile +void TToas400::copia_rigaiva(TRectype& recdest, const TRectype& recsource) const +{ + recdest.zero(); +} + +bool TToas400::genera_righeiva(const TString& path) +{ +//crea il file delle testate delle bolle utilizzando bolle.trr come tracciato record + TFilename siriomov = path; siriomov.add("rmoviva"); siriomov.ext("dbf"); + TFilename trrmov = path; trrmov.add("rmoviva"); trrmov.ext("trr"); + + TExternisamfile movimenti(siriomov, trrmov); + movimenti.zap(); +//lettura da prassid.ini dell'ultima bolla trasferita (se non la trova, di default mette B01|2002|D|0) + TConfig fileini(CONFIG_DITTA, "Sirio"); + TToken_string ultimo = fileini.get("Movimenti"); + +//scandisce il file doc.dbf alla ricerca dei documenti non ancora esportati... + TRelation rel(LF_RMOVIVA); + +//..intanto si memorizza il record di partenza, che é quello successivo all'ultimo trasferito.. + TRectype& recsource = rel.curr(); + recsource.put(MOV_NUMREG, ultimo.get(0)); + + TCursor cur(&rel, "", 1, &recsource); + const long items = cur.items(); + cur.freeze(); + + TString caption; caption << "Elaborazione righe IVA..."; + TProgind pi(items, caption, TRUE, TRUE); + +//..prepara i record di origine e destinazione e procede al trasferimanto dati campo per campo + TRectype& recdest = movimenti.curr(); + for (cur = 0; cur.pos() < items; ++cur) + { + pi.addstatus(1); + if (pi.iscancelled()) + break; + + copia_rigaiva(recdest, recsource); + + const int err = movimenti.write(); + if (err != NOERR) + return error_box("Errore %d di registrazione righe iva", err); + } + + const bool ok = !pi.iscancelled(); + return ok; +} +*/ + +bool TToas400::genera_movimenti(const TString& path) +{ +//crea il file delle testate dei movimenti contabili di pagamento utilizzando movc.trr come tracciato record + TFilename siriomov = path; siriomov.add("movc"); siriomov.ext("dbf"); + TFilename trrmov = path; trrmov.add("movc"); trrmov.ext("trr"); + + TExternisamfile movimenti(siriomov, trrmov); + movimenti.zap(); +//lettura da prassid.ini dell'ultimo movimento trasferito (se non lo trova, di default mette 1|MOV + TConfig fileini(CONFIG_DITTA, "Sirio"); + TToken_string ultimo = fileini.get("Movimenti", NULL, -1, "0"); + +//scandisce il file mov.dbf alla ricerca dei movimenti non ancora esportati... + TRelation rel(LF_MOV); +//aggiunge alla relazione il file delle righemov e quello delle partite (gli servono per alcuni campi) + rel.add(LF_RMOV, "NUMREG==NUMREG"); + rel.add(LF_PARTITE, "NUMREG==NUMREG", 2); + +//..intanto si memorizza il record di partenza, che é quello successivo all'ultimo trasferito.. + TRectype& recsource = rel.curr(); + recsource.put(MOV_NUMREG, ultimo.get_long(0)); + +//..quindi si crea il filtro ed il cursore per scandire il file delle testate movimenti.. + TString filtro; + filtro << "NUMREG==\"" << ultimo.get(0) << "\""; + TCursor cur(&rel, filtro, 1, &recsource); + const long items = cur.items(); + cur.freeze(); + + TString caption; caption << "Elaborazione movimenti..."; + TProgind pi(items, caption, TRUE, TRUE); + +//..prepara i record di origine e destinazione e procede al trasferimanto dati campo per campo + TRectype& recdest = movimenti.curr(); + const TRectype& righe = rel.curr(LF_RMOV); + const TRectype& partite = rel.curr(LF_PARTITE); + for (cur = 0; cur.pos() < items; ++cur) + { + pi.addstatus(1); + if (pi.iscancelled()) + break; + + copia_movimento(recdest, recsource, righe, partite); + + const int err = movimenti.write(); + if (err != NOERR) + return error_box("Errore %d di registrazione movimenti", err); + + // Calcola identificatore ultimo record trasferito + ultimo = recsource.get(MOV_NUMREG); + } + + const bool ok = !pi.iscancelled(); + if (ok) + fileini.set("Movimenti", ultimo); + + return ok; +} + + +void TToas400::copia_movimento(TRectype& recdest, const TRectype& recsource, const TRectype& recriga, const TRectype& recpartita) const +{ + azzera_campi (recdest); //mette 0 in tutti i campi numerici (compresi quelli che non saranno riempiti) + + recdest.put("CMTMCO", "Z"); //misterioso campo in cui va scritta Z; é il campo Zorro? + recdest.put("CMUREG", recsource.get_date(MOV_DATAREG).string(ANSI)); //data registraz. contabile (data competenza) (in formato string) + recdest.put("CMNPRO", recsource.get(MOV_NUMREG)); //numero registraz. contabile (numero operazione) + recdest.put("CMUDOC", recsource.get_date(MOV_DATADOC).string(ANSI)); //data documento + recdest.put("CMNDCM", recsource.get(MOV_NUMDOC)); //numero documento + recdest.put("CMFADA", recsource.get(RMV_SEZIONE)); //flag mov dare avere (preso dalla prima rigamov) + recdest.put("CMITOD", recsource.get(MOV_TOTDOC)); //importo in valuta di bilancio (totale documento) + + TString16 codcli; + codcli << "C " << recsource.get(MOV_CODCF); + recdest.put("CMCPIA", codcli); //codice cliente + + TDate data = recsource.get_date(MOV_DATADOC); + TString8 dataok = data.string(ANSI); + dataok.cut(6); + recdest.put("CMUAMR", dataok); //data documento in formato YYYYMM per pareggio con fattura + + recdest.put("CMNRIP", recsource.get(MOV_NUMDOC)); //num.doc. fattura per pareggio con fattura (=CMNDCM) + + recdest.put("CMTCAU", "P"); //tipo causale movimento:solo Pagamenti (filtro in genera movimenti) + +// recdest.put("CMTEFF", recsource.get(MOV_)); //tipo del pagamento + +// recdest.put("CMUSCA", recsource.get(MOV_)); //data scadenza + + recdest.put("CMCVAL", recsource.get(MOV_CODVAL)); //codice valuta estera + recdest.put("CMICAM", recsource.get(MOV_CAMBIO)); //cambio + recdest.put("CMITOV", recsource.get(MOV_TOTDOCVAL)); //totale doc in valuta + + recdest.put("CMDMO1", recsource.get(MOV_DESCR).left(25)); //prima descrizione + recdest.put("CMDMO2", recsource.get(MOV_DESCR).mid(25)); //seconda descrizione + + recdest.put("CMUREB", recsource.get_date(MOV_DATACOMP).string(ANSI)); //data di registrazione +} + +//___________________________________________________________________________________________________________________________ +//GENERALE + +void TToas400::azzera_campi(TRectype& rectozero) const +{ + rectozero.zero(); //svuota i campi + int numfields = rectozero.items(); + for (int i = 0 ; i < numfields; i++) + { + const char* fieldname = rectozero.fieldname(i); + switch (rectozero.type(fieldname)) + { + case _intfld: + case _longfld: + case _realfld: + case _datefld: + case _intzerofld: + case _longzerofld: + rectozero.put(fieldname, "0"); + break; + + default: break; + } + } +} + + +bool TToas400::genera_bolle(const TString& path) +{ + bool ok = genera_righedoc(path, 'B'); + if (ok) + ok = genera_documenti(path, 'B'); + return ok; +} + +bool TToas400::genera_fatture(const TString& path) +{ + bool ok = genera_righedoc(path, 'F'); + if (ok) + ok = genera_documenti(path, 'F'); + return ok; +} + +bool TToas400::genera_movcont(const TString& path) +{ + bool ok = genera_righemov(path); +/* Molto probabilmente inutile + if (ok) + ok = genera_righeiva(path); +*/ + if (ok) + ok = genera_movimenti(path); + return ok; +} + +void TToas400::main_loop() +{ + // Prececchiamo tutto + _mask->set(F_BOLLE,"X"); + _mask->set(F_FATTURE,"X"); + _mask->set(F_MOVCONT,"X"); + + while (_mask->run() == K_ENTER) + { + const TString& path = _mask->get(F_PATH); + bool ok = TRUE; + if (ok && _mask->get_bool(F_BOLLE)) + { + ok = genera_bolle(path); + } + if (ok && _mask->get_bool(F_FATTURE)) + { + ok = genera_fatture(path); + } + if (ok && _mask->get_bool(F_MOVCONT)) + { + ok = genera_movcont(path); + } + } +} + +//===================================================================// +int vesirio1(int argc, char* argv[]) +{ + TToas400 a; + a.run(argc,argv,"Esportazione documenti ad AS400"); + return 0; +} diff --git a/ve/vesirioa.h b/ve/vesirioa.h new file mode 100755 index 000000000..a33fd8015 --- /dev/null +++ b/ve/vesirioa.h @@ -0,0 +1,4 @@ +#define F_PATH 101 +#define F_BOLLE 102 +#define F_FATTURE 103 +#define F_MOVCONT 104 diff --git a/ve/vesirioa.uml b/ve/vesirioa.uml new file mode 100755 index 000000000..5037c9415 --- /dev/null +++ b/ve/vesirioa.uml @@ -0,0 +1,47 @@ +#include "vesirioa.h" + +TOOLBAR "" 0 -2 0 2 + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -12 -11 "" +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -11 "" +END + +ENDPAGE + +PAGE "Esportazione documenti ad AS400" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 9 +BEGIN + PROMPT 0 1 "@bScelta tipi documento da esportare" +END + +STRING F_PATH 60 40 +BEGIN + PROMPT 2 2 "Percorso dei files dbf da creare " +END + +BOOLEAN F_BOLLE +BEGIN + PROMPT 2 4 "Bolle" +END + +BOOLEAN F_FATTURE +BEGIN + PROMPT 2 6 "Fatture" +END + +BOOLEAN F_MOVCONT +BEGIN + PROMPT 2 8 "Movimenti contabili di pagamento" +END + +ENDPAGE + +ENDMASK + diff --git a/ve/veuml.h b/ve/veuml.h index 6a3c5452d..0aeb0f603 100755 --- a/ve/veuml.h +++ b/ve/veuml.h @@ -80,6 +80,10 @@ #define F_CURGIAC 185 #define F_CURDISP 186 #define F_CONTROEURO 187 +#define F_CODCMS 188 +#define F_DESCRCMS 189 +#define F_FASCMS 190 +#define F_DESCRFAS 191 #define F_CODVAL1 200 #define F_NOMEVAL1 201