diff --git a/src/m770/777200.cpp b/src/m770/777200.cpp index 6bca745c2..cda47c749 100755 --- a/src/m770/777200.cpp +++ b/src/m770/777200.cpp @@ -565,7 +565,10 @@ bool TTrasferimentoCU::append_record_b() rec.set(16, numtel); const TRectype& rec_anagr = cache().get(LF_ANAG, TString(rec_nditte.get("TIPOA")) << "|" << rec_nditte.get("CODANAGR")); - rec.set(17, rec_anagr.get_int("EVECC")); + const int evecc = rec_anagr.get_int("EVECC"); + + if (evecc == 1 || evecc == 5) + rec.set(17, evecc); const TAnagrafica rapp(LF_ANAG, 'F', rec_nditte.get_long(NDT_RAPPR)); if (rapp.ok()) @@ -664,6 +667,8 @@ bool TTrasferimentoCU::append_record_d(const TRectype& qla, TLog_report& log) rec.np_put("DA001010", _codatt_dic); // rec.np_put("DA001011", "1"); // Codice Sede ??? + if (perc.codice_fiscale() == "BRTTMS98M18832Z") + int i = 1; rec.np_put("DA002001", perc.codice_fiscale()); if (perc.fisica()) { @@ -684,7 +689,10 @@ bool TTrasferimentoCU::append_record_d(const TRectype& qla, TLog_report& log) const TRectype& anag = cache().get_rec(LF_ANAG, qla.get("TIPOA"), qla.get("CODANAGR")); rec.np_put("DA002008", anag.get(ANA_CATPAR)); - rec.np_put("DA002009", anag.get_long(ANA_EVECC)); + const TString4 evecc = anag.get("EVECC"); + + if (evecc == "1" || evecc == "5") + rec.np_put("DA002009", evecc); long int da2010 = anag.get_long(ANA_ESCPRECOMP); // Tolla 2017: Aggiunto questo controllo in quanto noi non gestiamo nessuno dei quadri che richiedono il valore 2 if(da2010 == 2) da2010 = 0; @@ -791,7 +799,7 @@ bool TTrasferimentoCU::append_record_h(const TRectype& qla, int modulo, TLog_rep const TString4 causale = qla.get("CAUSALE"); rec.np_put("AU001001", causale); - if (causale >= "G" && causale <= "I") + if ((causale >= "G" && causale <= "I")&& (qla.get_long("ANNO") < 2019L)) rec.np_put("AU001002", qla.get_long("ANNO")); // Potrebbe essere anche l'anno precedente // rec.np_put("AU001003", ""); @@ -807,9 +815,9 @@ bool TTrasferimentoCU::append_record_h(const TRectype& qla, int modulo, TLog_rep long codice = atol(cache().get("%CA7", codcaus, "I1")); // 1, 2, 5, 6, 7 real altre_somme = qla.get_real("SOMME"); - if (altre_somme > -0.02 && altre_somme < 0.02) - { - altre_somme = ZERO; + if (altre_somme > -0.02 && altre_somme < 0.02) + { + altre_somme = ZERO; } if (altre_somme.is_zero() && codice == 7) { @@ -818,8 +826,10 @@ bool TTrasferimentoCU::append_record_h(const TRectype& qla, int modulo, TLog_rep } if (!altre_somme.is_zero()) { - if (codice <= 0) codice = 7; // Regime minimi - rec.np_put("AU001006", codice); // 1, 2, 5, 6, 7 + if (codice <= 0) codice = 7; // Regime minimi + if (codice == 2) + message_box("Anagrafica %c &ld : Il codice 2 somme non soggette è stato eliminato", tipoanag, codanagr); + rec.np_put("AU001006", codice); // 1, 5, 6, 7 rec.np_put("AU001007", altre_somme); } rec.np_put("AU001008", imponibile); // 004 - 005 - 007 @@ -920,7 +930,7 @@ bool TTrasferimentoCU::split(const char* path) { TRecordCU rec; rec.tipo_record('A'); // Compila record di testata A - rec.set(3, "CUR18"); // Codice fornitura 2018 + rec.set(3, "CUR19"); // Codice fornitura 2019 rec.set(4, 1); // Tipo fornitore: 01=Soggetto che invia la propria dichiarazione; 10=CAF rec.set(5, _codfis_int.full() ? _codfis_int : cod_fis_dic()); // Codice fiscale del fornitore outfile << rec; // Scrive record testata @@ -1147,12 +1157,12 @@ void TCU_app::main_loop() void TCU_app::isUpdated() { TRelation anagr(LF_ANAG); - TCursor c(&anagr); +/* TCursor c(&anagr); long int items = c.items(); TProgress_monitor p(items, "Aggiornamento valori per CU"); bool trovato = false; - // Eseguo questo controllo per verificare la presenza EVECC == 8 - for(c=0; c.pos() < items && !trovato; ++c) + Eseguo questo controllo per verificare la presenza EVECC == 8 + /*for(c=0; c.pos() < items && !trovato; ++c) { TRectype r = c.curr(); if(r.get_int("EVECC") == 8) @@ -1171,7 +1181,7 @@ void TCU_app::isUpdated() r.write_rewrite(anagr.lfile()); } } - } + } */ } int m777200(int argc, char* argv[]) diff --git a/src/m770/777200.h b/src/m770/777200.h index 88f23141d..66aea1476 100644 --- a/src/m770/777200.h +++ b/src/m770/777200.h @@ -6,10 +6,10 @@ #endif // Nota che sono stati definiti anche in 777lib -#define THIS_YEAR "2018" -#define THIS_YEARN 2018 -#define LAST_YEAR "2017" -#define LAST_YEARN 2017 +#define THIS_YEAR "2019" +#define THIS_YEARN 2019 +#define LAST_YEAR "2018" +#define LAST_YEARN 2018 class TRecordCU; diff --git a/src/m770/777lib.h b/src/m770/777lib.h index a5e23d56d..175fea6f1 100644 --- a/src/m770/777lib.h +++ b/src/m770/777lib.h @@ -9,10 +9,10 @@ #define CF_PRODUTTORE get_iva_sirio(); // Nota che sono anche definiti in 777200.h -#define THIS_YEAR "2018" -#define THIS_YEARN 2018 -#define LAST_YEAR "2017" -#define LAST_YEARN 2017 +#define THIS_YEAR "2019" +#define THIS_YEARN 2019 +#define LAST_YEAR "2018" +#define LAST_YEARN 2018 enum { CODE_SIZE = 8, FIELD_SIZE = 16, BLOCK_SIZE = 24, HEADER_SIZE = 89, USEABLE_SIZE = 1800, TOTAL_SIZE = 1900 }; diff --git a/src/m770/77tbca7.uml b/src/m770/77tbca7.uml index 72edb2f5b..c33474fbe 100755 --- a/src/m770/77tbca7.uml +++ b/src/m770/77tbca7.uml @@ -335,7 +335,6 @@ BEGIN INPUT F_IC ITEM " | " ITEM "1|Somme che non hanno concorso a formare il reddito imponibile (90% dell’ammontare erogato), relativo ai compensi percepiti dai docenti e dai ricercatori in base a quanto stabilito dal D.L. 29 novembre 2008, n. 185 convertito, con modificazioni dalla L. n. 2 del 28 gennaio 2009. Vanno altresì inseriti i relativi rimborsi spese" - ITEM "2|Somme che non hanno concorso a formare il reddito imponibile (rispettivamente l’80% dell’ammontare erogato per le lavoratrici ed il 70% per i lavoratori) per i lavoratori appartenenti alle categorie individuate con Decreto del Ministro dell’Economia e delle Finanze del 3 giugno 2011 in possesso dei requisiti previsti e che hanno richiesto di fruire del beneficio fiscale previsto dall’art. 3 della L. 30 dicembre 2010, n. 238" ITEM "5|Nel caso di somme corrisposte che non hanno concorso a formare il reddito imponibile (50% dell'ammontare erogato), relative ai compensi percepiti dai soggetti che hanno avviato un'attività di lavoro autonomo di impresa, in base a quanto stabilito dall'articolo 16 del D.lgs. n. 147 del 2015 modificato dalla legge n. 232 dell'11 dicembre 2016" ITEM "6|Nel caso di assegni di servizio civile di cui all'art.16 del D.lgs. n. 40 del 2017 per i quali la norma ha previsto la loro esenzione" ITEM "7|Erogazione di altri redditi non soggetti a ritenuta ovvero esenti" diff --git a/src/m770/Allegato A Specifiche Tecniche 770 2018.pdf b/src/m770/Allegato A Specifiche Tecniche 770 2018.pdf new file mode 100644 index 000000000..3a467d67b Binary files /dev/null and b/src/m770/Allegato A Specifiche Tecniche 770 2018.pdf differ diff --git a/src/m770/CU 2019.pdf b/src/m770/CU 2019.pdf new file mode 100644 index 000000000..e7a4610b4 Binary files /dev/null and b/src/m770/CU 2019.pdf differ