diff --git a/src/m770/777100.cpp b/src/m770/777100.cpp index 2df307bcb..9f74e555d 100755 --- a/src/m770/777100.cpp +++ b/src/m770/777100.cpp @@ -24,12 +24,7 @@ // Il nuovo quadro ST e' il vecchio quadro L #define LF_QUADRO_ST LF_QUAL -/////////////////////////////////////////////////////////// -// Utility -/////////////////////////////////////////////////////////// - const int ANNO_PAG = LAST_YEARN; - /////////////////////////////////////////////////////////// // TForm770 /////////////////////////////////////////////////////////// @@ -77,9 +72,11 @@ class TTrasferimento770 : public TObject long _cod_ditta, _codan_dic; TString8 _codatt_dic; char _tipoa_dic; - TString16 _codfis_dic; + TString16 _codfis_dic, _codfis_int; bool _save_headers; bool _centesimi; // Salva importi in centesimi invece che in euro + TDate _data_imp; + int _anno; TAssoc_array _form; @@ -121,6 +118,9 @@ public: void save_headers(bool s) { _save_headers = s; } bool save_headers() const { return _save_headers; } + void set_inter(const TString& interm, const TDate& dtimp, int year) { _codfis_int = interm; _data_imp = dtimp; _anno = year; } + + TTrasferimento770(const char* name = "", char mode = 'r', int volume = 0); virtual ~TTrasferimento770(); }; @@ -718,46 +718,48 @@ bool TTrasferimento770::append_record_b() TRecord770 rec('B'); // Compila record di testata B rec.set(2, cod_fis_dic()); rec.set(3, 1); // Modulo (deve essere sempre 1) - rec.set(7, get_iva_sirio()); // CF del produttore Sirio + rec.set(8, get_iva_sirio()); // CF del produttore Sirio const TAnagrafica dich(LF_ANAG, _tipoa_dic, _codan_dic); if (dich.fisica()) { - rec.set(13, dich.cognome()); - rec.set(14, dich.nome()); - rec.set(23, dich.comune_nascita()); - rec.set(24, dich.provincia_nascita()); - rec.set(25, dich.data_nascita()); - rec.set(26, dich.sesso()); - rec.set(27, dich.comune_residenza()); - rec.set(28, dich.provincia_residenza()); - rec.set(29, dich.CAP_residenza()); - if (!dich.estero()) + rec.set(12, dich.cognome()); + rec.set(13, dich.nome()); + //rec.set(23, dich.comune_nascita()); + //rec.set(24, dich.provincia_nascita()); + //rec.set(25, dich.data_nascita()); + //rec.set(26, dich.sesso()); + //rec.set(27, dich.comune_residenza()); + //rec.set(28, dich.provincia_residenza()); + //rec.set(29, dich.CAP_residenza()); + /*if (!dich.estero()) rec.set(30, dich.codice_comune_residenza()); rec.set(31, dich.indirizzo_residenza()); + */ } - - rec.set(19, _codatt_dic); + + // rec.set(19, _codatt_dic); if (dich.giuridica()) { - rec.set(15, dich.ragione_sociale()); + rec.set(14, dich.ragione_sociale()); const TRectype& rec_anagiu = _cache770.get(LF_ANAGGIU, _codan_dic); - rec.set(33, rec_anagiu.get(ANG_NATGIU)); + // rec.set(33, rec_anagiu.get(ANG_NATGIU)); - rec.set(35, dich.comune_residenza()); - rec.set(36, dich.provincia_residenza()); - rec.set(37, dich.CAP_residenza()); - rec.set(38, dich.codice_comune_residenza()); - rec.set(39, dich.indirizzo_residenza()); + // rec.set(35, dich.comune_residenza()); + //rec.set(36, dich.provincia_residenza()); + //rec.set(37, dich.CAP_residenza()); + //rec.set(38, dich.codice_comune_residenza()); + //rec.set(39, dich.indirizzo_residenza()); - rec.set(46, rec_anagiu.get(ANG_STATOSOC)); - rec.set(47, rec_anagiu.get(ANG_SITSOC)); + //rec.set(46, rec_anagiu.get(ANG_STATOSOC)); + //rec.set(47, rec_anagiu.get(ANG_SITSOC)); } - rec.set(75, 1); // Redazione della dichiarazione (sezione I) - rec.set(76, 0); // Comunicazioni relative a certificazioni lavoro dipendente + //rec.set(75, 1); // Redazione della dichiarazione (sezione I) + //rec.set(76, 0); // Comunicazioni relative a certificazioni lavoro dipendente + /* const int autonomi = conta_certificazioni(); const bool prosp_st = casella_prospetto_st(); const bool prosp_sx = casella_prospetto_sx(); @@ -767,30 +769,55 @@ bool TTrasferimento770::append_record_b() rec.set(80, false); // casella prospetto SV rec.set(81, prosp_sx); // casella prospetto SX rec.set(82, false); // casella prospetto SY + */ - rec.set(94, true); // Firma del dichiarante + const TRectype& rec_nditte = cache().get(LF_NDITTE, _cod_ditta); + rec.set(15, rec_nditte.get(NDT_MAIL)); + TString80 numtel = get_telephone(rec_nditte, NDT_PTEL, NDT_TEL); + if (numtel.blank()) + numtel = get_telephone(rec_nditte, NDT_PFAX, NDT_FAX); + rec.set(16, numtel); + const TRectype& rec_anagr = cache().get(LF_ANAG, TString(rec_nditte.get("TIPOA")) << "|" << rec_nditte.get("CODANAGR")); + const int evecc = rec_anagr.get_int("EVECC"); + if (evecc == 5) // EDIT 2020: Non piu' valori 1, 5 ma 1, 3 + warning_box("Attenzione trovata persona con valore\nevento eccezionale non piu' valido: 5.\nValori accettati 1 o 3."); - rec.set(116, 0); // situazioni particolari: vale sempre 0 + if (evecc == 1 || evecc == 3) + rec.set(17, evecc); - const TRectype& rec_nditte = _cache770.get(LF_NDITTE, _cod_ditta); const TAnagrafica rec_rap(LF_ANAG, 'F', rec_nditte.get_long(NDT_RAPPR)); if (rec_rap.ok()) { - rec.set(126, rec_rap.codice_fiscale()); - rec.set(127, rec_nditte.get(NDT_CARRAPP)); - rec.set(131, rec_rap.cognome()); - rec.set(132, rec_rap.nome()); - rec.set(133, rec_rap.sesso()); - rec.set(134, rec_rap.data_nascita()); - rec.set(135, rec_rap.comune_nascita()); - rec.set(136, rec_rap.provincia_nascita()); + rec.set(18, rec_rap.codice_fiscale()); + rec.set(19, rec_nditte.get(NDT_CARRAPP)); + rec.set(20, rec_rap.cognome()); + rec.set(21, rec_rap.nome()); + rec.set(22, _codfis_dic); + //rec.set(133, rec_rap.sesso()); + //rec.set(134, rec_rap.data_nascita()); + //rec.set(135, rec_rap.comune_nascita()); + //rec.set(136, rec_rap.provincia_nascita()); - if (rec_rap.comune_nascita().blank()) - cantread_box("dati nascita legale rappresentante"); + //if (rec_rap.comune_nascita().blank()) + //cantread_box("dati nascita legale rappresentante"); } else cantread_box("dati del legale rappresentante"); + + rec.set(23, false); // Dichiarazioni relative a dipendenti + const int autonomi = conta_certificazioni(); + rec.set(24, autonomi); + rec.set(25, false); + rec.set(26, true); // Firma del dichiarante + if (_codfis_int.full()) + { + rec.set(27, _codfis_int); + rec.set(28, 1); // Impegno alla trasmissione (1 o 2) + rec.set(29, _data_imp); // Data impegno alla trasmissione + rec.set(30, true); // Firma intermediario + } + // Ignoro la parte "estera" ok = write(rec); @@ -1091,7 +1118,7 @@ bool TTransfer770_msk::on_field_event(TOperable_field& of, TField_event fe, long TTransfer770_msk::TTransfer770_msk() : TAutomask("777100a") { set(F_ANNOPAG, ANNO_PAG); - set(F_ANNODIC, ANNO_PAG+1); + set(F_ANNO, ANNO_PAG+1); set(F_NOHEADERS,ini_get_bool(CONFIG_STUDIO, "77", "SaveDataOnly", false)); set(F_PATH, ini_get_string(CONFIG_STUDIO, "77", "SavePath")); long ditta1 = ini_get_int (CONFIG_STUDIO, "77", "SaveFirm1", 0); @@ -1132,10 +1159,12 @@ void TTransfer770_app::main_loop() while (m.run() == K_ENTER) { + const int anno = m.get_int(F_ANNO); TFilename tmp; tmp.tempdir(); TTrasferimento770 t(tmp, 'w'); t.save_headers(!m.get_bool(F_NOHEADERS)); t.set_cent_mode(m.get_bool(F_CENT)); + t.set_inter(m.get(F_INTER_CODFIS), m.get_date(F_INTER_DATA), anno); TRelation rel_base(LF_BASE); TRectype da_rec(LF_BASE), a_rec(LF_BASE); diff --git a/src/m770/777100a.h b/src/m770/777100a.h index 7c5363f36..5c5c9eff6 100755 --- a/src/m770/777100a.h +++ b/src/m770/777100a.h @@ -1,10 +1,13 @@ #define F_PATH 102 #define F_ANNOPAG 103 -#define F_ANNODIC 104 +#define F_ANNO 104 #define F_DADITTA 105 #define F_DADESC 106 #define F_ADITTA 107 #define F_ADESC 108 #define F_NOHEADERS 109 #define F_CENT 110 +#define F_INTER_CODFIS 111 +#define F_INTER_RAGSOC 112 +#define F_INTER_DATA 113 diff --git a/src/m770/777100a.uml b/src/m770/777100a.uml index e64942211..aeeb5eaa9 100755 --- a/src/m770/777100a.uml +++ b/src/m770/777100a.uml @@ -8,7 +8,7 @@ BEGIN FLAGS "D" END -NUMBER F_ANNODIC 4 +NUMBER F_ANNO 4 BEGIN PROMPT 49 1 "Anno dichiarazione " FLAGS "D" @@ -73,6 +73,41 @@ BEGIN FLAGS "H" END +STRING F_INTER_CODFIS 16 +BEGIN + PROMPT 1 2 "Intermediario " + USE LF_CLIFO KEY 4 SELECT LEN(COFI)==16 + INPUT TIPOCF "F" + INPUT COFI F_INTER_CODFIS + DISPLAY "Codice Fiscale@16" COFI + DISPLAY "Ragione Sociale@50" RAGSOC + DISPLAY "Partita IVA" PAIV + DISPLAY "Codice" CODCF + OUTPUT F_INTER_CODFIS COFI + OUTPUT F_INTER_RAGSOC RAGSOC + CHECKTYPE SEARCH + ADD RUN cg0 -1 F + MESSAGE EMPTY CLEAR,F_INTER_DATA + MESSAGE ENABLE,F_INTER_DATA +END + +STRING F_INTER_RAGSOC 50 52 +BEGIN + PROMPT 16 10 "" + USE LF_CLIFO KEY 2 SELECT LEN(COFI)==16 + INPUT TIPOCF "F" + INPUT RAGSOC F_INTER_RAGSOC + COPY DISPLAY F_INTER_CODFIS + COPY OUTPUT F_INTER_CODFIS + CHECKTYPE SEARCH + ADD RUN cg0 -1 F +END + +DATE F_INTER_DATA +BEGIN + PROMPT 2 11 "Data di impegno alla trasmissione " + CHECKTYPE REQUIRED +END ENDPAGE diff --git a/src/m770/777200.cpp b/src/m770/777200.cpp index 021e6483a..e79352497 100755 --- a/src/m770/777200.cpp +++ b/src/m770/777200.cpp @@ -77,8 +77,11 @@ TTracciatoCU::TTracciatoCU(char tipo) { add_field("Codice fiscale sostituto", CF, 2, 16, 2); // 2 add_field("Progressivo modulo", NU, 18, 8, 3); - add_field("Spazio a disposizione", AN, 60, 14, 7); // 7 - add_field("CF del produttore del software", CF, 74, 16, 8); + add_filler(26, 1); + add_filler(27, 8); + add_filler(35, 25); + add_field("Spazio a disposizione", AN, 60, 14); // 7 + add_field("CF del produttore del software", CF, 74, 16); add_filler( 90, 1); // Tipo di dichiarazione @@ -92,7 +95,6 @@ TTracciatoCU::TTracciatoCU(char tipo) add_field("Indirizzo E-mail", AN,197,100); add_field("Telefono o Fax", AN,297, 12); add_field("Eventi Eccezionali", NU,309, 2, 17); // 17 - add_field("Codice fiscale del rappresentante", CF,311,16); // 18 add_field("Codice carica del rappresentante", NU,327, 2); add_field("Cognome", AN,329,24); @@ -108,33 +110,27 @@ TTracciatoCU::TTracciatoCU(char tipo) add_field("Impegno a trasmettere la dichiaraz.", NU, 428, 1); add_field("Data dell'impegno", DT, 429, 8); add_field("Firma dell'intermediario", CB, 437, 1); - /* - add_filler(438, 1); - add_filler(439, 40); - add_filler(479, 2); - add_filler(481, 5); - add_filler(486, 35); - add_filler(521, 6); - add_filler(527, 3); - add_filler(530, 8); - add_filler(538, 1); - add_filler(539,1305); // 40 - - add_field("Spazio riservato al Servizio Telematico",AN,1844,20); // 41 - add_filler(1864, 7); - add_filler(1871, 3); - add_filler(1874, 3); - add_filler(1877, 1); - add_filler(1878, 1); - add_filler(1879, 1); - add_filler(1880, 1); - add_filler(1881, 1); - add_filler(1882, 1); - add_filler(1883,15); // 51 - - add_filler(1898, 1); // 52 - add_filler(1899, 2); // 53 - */ + add_filler(438, 1); //31 + add_filler(439, 40); + add_filler(479, 2); + add_filler(481, 5); + add_filler(486, 35); + add_filler(521, 6); + add_field("Casella casi particolari", CB, 527, 1); // 37 + add_filler(528, 11); + add_filler(539, 16); + add_filler(555, 1289); + add_field("Spazio riservato", AN, 1844, 20); + add_filler(1864, 7); + add_filler(1871, 3); + add_filler(1874, 3); + add_filler(1877, 1); + add_filler(1878, 1); + add_filler(1879, 1); + add_filler(1880, 1); + add_filler(1881, 1); + add_filler(1882, 1); + add_filler(1883, 15); } else if (tipo == 'D') { @@ -585,15 +581,13 @@ bool TTrasferimentoCU::append_record_b() rec.set(19, rec_nditte.get(NDT_CARRAPP)); rec.set(20, rapp.cognome().left(24)); rec.set(21, rapp.nome()); - rec.set(22, _codfis_dic); + rec.set(22, _codfis_dic); } else { _codfis_rap = _codfis_dic; cantread_box("legale rappresentante"); } - - rec.set(23, ""); // Dichiarazioni relative a dipendenti rec.set(24, conta_certificazioni()); // Certificazioni per autonomi e provvigioni rec.set(26, true); // Firma diff --git a/src/m770/777lib.cpp b/src/m770/777lib.cpp index 3e4bf22dc..0afe4e5ad 100644 --- a/src/m770/777lib.cpp +++ b/src/m770/777lib.cpp @@ -1,9 +1,34 @@ #include "777lib.h" + +/////////////////////////////////////////////////////////// +// Utility +/////////////////////////////////////////////////////////// + +// Forma un numero di telefono composto di sole cifre da prefisso+numero +const TString& get_telephone(const TRectype& rec, const char* pref, const char* numf) +{ + TString& num = get_tmp_string(); + num << rec.get(pref) << rec.get(numf); + char* dst = num.get_buffer(); + for (const char* src = dst; *src; src++) + { + if (*src >= '0' && *src <= '9') + { + if (src > dst) + *dst = *src; + dst++; + } + } + *dst = '\0'; + return num; +} + /////////////////////////////////////////////////////////// // TTracciato770 /////////////////////////////////////////////////////////// + void TTracciato770::add_field(const char* name, M770FieldType type, int pos, int len, int fldno) { switch (type) @@ -26,10 +51,13 @@ void TTracciato770::add_field(const char* name, M770FieldType type, int pos, int CHECKD(len == 6, "Mese+Anno di lunghezza sospetta ", len); type = NU; break; + case DT: CHECKD(len == 8, "Data di lunghezza sospetta ", len); type = NU; break; + case NP: + type = NU; case NU: break; case PN: @@ -95,178 +123,65 @@ TTracciato770::TTracciato770(char tipo) : _tipo(tipo) // Dichiarazione su pił invii add_field("Progressivo dell'invio", NU, 522, 4); // 7 add_field("Numero totale degli invii", NU, 526, 4); + add_field("Campo utente", AN, 530, 100); // 9 } else if (tipo == 'B') { add_field("Codice fiscale dichiarante", CF, 2, 16); // 2 add_field("Progressivo modulo", NU, 18, 8); - add_filler( 26, 3); - add_filler( 29,25); - add_field("Spazio a disposizione", AN, 54, 20); - add_field("CF del produttore del software", CF, 74, 16); // 7 - - add_field("Flag conferma", CB, 90, 1); - + add_filler(26, 1); + add_filler(27, 8); + add_filler(35, 25); + add_field("Spazio a disposizione", AN, 60, 14); + add_field("CF del produttore del software", CF, 74, 16); // 8 + add_filler(90, 1); //9 + // Tipo di dichiarazione - add_field("Dichiarazione correttiva nei termini", CB, 91, 1); // 9 - add_field("Dichiarazione correttiva parziale", CB, 92, 1); - // add_field("Dichiarazione integrativa", CB, 93, 1); - // add_field("Eventi eccezzziunali veramente", NU, 94, 1); // 12 + add_field("Dichiarazione correttiva nei termini", CB, 91, 1); // 10 + add_field("Dichiarazione correttiva parziale", CB, 92, 1); //11 // Dati del contribuente - add_field("Cognome", AN, 93, 24); // 13 - add_field("Nome", AN,117, 20); - add_field("Denominazione (Alternativo a 25 e 26)",AN,137, 60); - add_field("indirizzo di posta elettronica", AN, 197, 100); - add_field("Telefono o Fax", AN, 297, 12); - add_field("eventi eccezionali", NU, 309, 2); - add_field("Codice fiscale del rappresentante firmatario", CF, 1396, 16, 18); - add_field("Codice carica del rappresentante", NU, 327, 2); - add_field("Cognome", AN, 329, 24); // 20 - add_field("Nome", AN, 353, 20); - add_field("Codice fiscale societa o dichiarante", NU, 373, 11); - add_filler(384, 18); - add_field("Numero comunicaz. lavoro autonomo", NU, 402, 8); // 24 - - add_field("Casella quadro CT", CB, 410, 1, 94); - add_field("Firma del dichiarante", CB, 411, 1, 94); - add_field("Codice fiscale intermediario", CF, 412, 16); - add_field("Impegno a trasmettere la dichiaraz.", NU, 428, 1); - add_field("Data dell'impegno", DT, 429, 8); - add_field("Firma dell'intermediario", CB, 437, 1); - add_filler(438, 1); - add_filler(439, 40); - add_filler(479, 2); - add_filler(481, 5); - add_filler(486, 35); - add_filler(521, 6); - add_field("Casella caasi particolari", CB, 527, 1); // 37 - add_filler(528, 8); - add_filler(539, 16); - add_filler(555, 1289); - add_field("Spazio riservato", AN, 1844, 20); - add_filler(1864, 7); - add_filler(1871, 3); - add_filler(1874, 3); - add_filler(1877, 1); - add_filler(1878, 1); - add_filler(1879, 1); - add_filler(1880, 1); - add_filler(1881, 1); - add_filler(1882, 1); - add_filler(1883, 15); - /* add_filler(199,11); - - add_filler(210, 1); - add_filler(211, 1); - - add_field("Codice Attivitą", NU, 212, 6); // 19 - add_field("Indirizzo E-mail", AN, 218,100); - add_field("Telefono o FAX", AN, 318, 12); - add_filler(330, 12); - - add_field("Comune di nascita", AN, 342, 40, 23); // 23 - add_field("Provincia di nascita", AN, 382, 2); - add_field("Data di nascita", DT, 384, 8); - add_field("Sesso", AN, 392, 1); - - add_field("Comune di residenza", AN, 393, 40, 27); // 27 - add_field("Provincia residenza", AN, 433, 2); - add_field("C.a.p. residenza", NU, 435, 5); - add_field("Codice comune", AN, 440, 4); - add_field("Indirizzo", AN, 444, 35); - add_field("Data variazione", DT, 479, 8); - - add_field("Natura giuridica", NU, 487, 2, 33); // 33 - add_field("Data variazione sede legale", DA, 489, 6); - add_field("Comune della sede legale", AN, 495,40); - add_field("Sigla della provincia sede legale", PR, 535, 2); - add_field("CAP del comune della sede legale", NU, 537, 5); - add_field("Codice comune", AN, 542, 4); - add_field("Indirizzo della sede legale", AN, 546,35); - add_field("Data variazione domicilio fiscale", NU, 581, 6); // 40 - add_field("Comune del domicilio fiscale", AN, 587,40); - add_field("Provincia del domicilio fiscale", PR, 627, 2); - add_field("CAP del domicilio fiscale", NU, 629, 5); - add_field("Codice comune", AN, 634, 4); - add_field("Indirizzo del domicilio fiscale", AN, 638,35); - add_field("Stato", NU, 673, 1); - add_field("Situazione", NU, 674, 1); - add_field("Dicastero di appartenenza", CN, 675,11); - - add_field("Redazione della dichiarazione", NU, 797, 1, 75); // 75 - add_field("Numero comunicaz. lavoro dipendente", NU, 798, 8); - add_field("Numero comunicaz. lavoro autonomo", NU, 806, 8); - add_field("Casella prospetto SS", CB, 814, 1); // 78 - add_field("Casella prospetto ST", CB, 815, 1); - add_field("Casella prospetto SV", CB, 816, 1); - add_field("Casella prospetto SX", CB, 817, 1); // 81 - add_field("Casella prospetto SY", CB, 818, 1); - add_field("Presenza 770 ordinario " THIS_YEAR, CB, 819, 1); - add_field("Codice fiscale parte restante", CF, 820,16); - add_field("Protocollo telematico", NU, 836,17); // 85 - add_field("Progressivo telematico", NU, 853, 6); - - // dichiarazioni integrative o parziali - add_field("Casella prospetto SS", CB, 859, 1); // 87 - add_field("Casella prospetto ST", CB, 860, 1); - add_field("Casella prospetto SV", CB, 861, 1); - add_field("Casella prospetto SX", CB, 862, 1); - add_field("Casella prospetto SY", CB, 863, 1); - add_field("Numero comunicaz. lavoro dipendente", NU, 864, 8); - add_field("Numero comunicaz. lavoro autonomo", NU, 872, 8); // 93 - - add_field("Firma del dichiarante", CB, 880, 1, 94); // 94 - add_field("Codice fiscale", CF, 881,16); - add_field("Soggetto", NU, 897, 1); - add_field("Firma", CB, 898, 1); // 97 - add_field("Codice fiscale", CF, 899,16); - add_field("Soggetto", NU, 915, 1); - add_field("Firma", CB, 916, 1); // 100 - add_field("Codice fiscale", CF, 917,16); - add_field("Soggetto", NU, 933, 1); - add_field("Firma", CB, 934, 1); // 103 - add_field("Codice fiscale", CF, 935,16); - add_field("Soggetto", NU, 951, 1); - add_field("Firma", CB, 952, 1); // 106 - add_field("Codice fiscale", CF, 953,16); - add_field("Soggetto", NU, 969, 1); - add_field("Firma", CB, 970, 1); // 109 - add_field("Non trasmissione ST, SV e/o SX", NU, 971, 1); - add_field("Casella Attestazione", CB, 972, 1); - - add_field("Situazioni particolari", NU,1180,2, 116); // 116 - - add_field("Codice fiscale del rappresentante", CF,1396,16,126); // 126 - add_field("Codice carica del rappresentante", NU,1412, 2); - add_field("Data carica del rappresentante", DT,1414, 8); - - add_field("Cognome", AN,1493,24, 131); // 131 - add_field("Nome", AN,1517,20); - add_field("Sesso", AN,1537, 1); - add_field("Data di nascita rappresentante", DT,1538, 8); - add_field("Comune di nascita", AN,1546,40); // 135 - add_field("Provincia di nascita", PN,1586, 2); - - add_field("Codice stato estero", NU,1588, 3); // 137 - add_field("Stato federato, provincia, contea", AN,1591,24); - add_field("Localitą di residenza", AN,1615,24); - add_field("Indirizzo estero", AN,1639,35); // 140 - add_field("Telefono cellulare rappresentante", AN,1674,12); - add_field("Data apertura fallimento", DT,1686, 8); // 142 - add_field("Codice fiscale societa o dichiarante", NU,1694,11); - - add_field("Invio avviso telematico", CB,1715, 1, 147); // 147 - add_field("Ricezione avviso telematico", CB,1716, 1); - add_field("Codice fiscale intermediario", CF,1717,16); - add_field("Numero iscrizione C.A.F.", NU,1733, 5); - add_field("Impegno a trasmettere la dichiaraz.", NU,1738, 1); // 151 - add_field("Data dell'impegno", DT,1739, 8); - add_field("Firma dell'intermediario", CB,1747, 1); - add_field("Codice fiscale responsabile C.A.F.", CF,1748,16); - add_field("Codice fiscale C.A.F.", CN,1764,11); - add_field("Codice fiscale professionista", CF,1775,16); // 156 - add_field("Firma", CB,1791, 1);*/ + add_field("Cognome", AN, 93, 24); // 12 + add_field("Nome", AN,117, 20); //13 + add_field("Denominazione (Alternativo a 25 e 26)",AN,137, 60);//14 + add_field("indirizzo di posta elettronica", AN, 197, 100);//15 + add_field("Telefono o Fax", AN, 297, 12);//16 + add_field("Eventi eccezionali", NP, 309, 2);//17 + add_field("Codice fiscale del rappresentante firmatario", CF, 311, 16); //18 + add_field("Codice carica del rappresentante", NU, 327, 2);//19 + add_field("Cognome", AN, 329, 24); // 20 + add_field("Nome", AN, 353, 20); //21 + add_field("Codice fiscale societa o dichiarante", CN, 373, 11); + + add_filler(384, 18); + add_field("Numero comunicaz. lavoro autonomo", NU, 402, 8); // 24 + add_field("Casella quadro CT", CB, 410, 1);//25 + add_field("Firma del dichiarante", CB, 411, 1); + add_field("Codice fiscale intermediario", CF, 412, 16); + add_field("Impegno a trasmettere la dichiaraz.", NU, 428, 1); + add_field("Data dell'impegno", DT, 429, 8); + add_field("Firma dell'intermediario", CB, 437, 1); + add_filler(438, 1); //31 + add_filler(439, 40); + add_filler(479, 2); + add_filler(481, 5); + add_filler(486, 35); + add_filler(521, 6); + add_field("Casella casi particolari", CB, 527, 1); // 37 + add_filler(528, 11); + add_filler(539, 16); + add_filler(555, 1289); + add_field("Spazio riservato", AN, 1844, 20); + add_filler(1864, 7); + add_filler(1871, 3); + add_filler(1874, 3); + add_filler(1877, 1); + add_filler(1878, 1); + add_filler(1879, 1); + add_filler(1880, 1); + add_filler(1881, 1); + add_filler(1882, 1); + add_filler(1883, 15); } else if (tipo == 'E' || tipo == 'F') { diff --git a/src/m770/777lib.h b/src/m770/777lib.h index f8aeedfa3..7e0136150 100644 --- a/src/m770/777lib.h +++ b/src/m770/777lib.h @@ -20,7 +20,7 @@ enum { CODE_SIZE = 8, FIELD_SIZE = 16, BLOCK_SIZE = 24, HEADER_SIZE = 89, USEABL // TRecord770 /////////////////////////////////////////////////////////// -enum M770FieldType { AN, CF, CN, PI, DA, DT, NU, PN, PR, CB, VP, VN }; +enum M770FieldType { AN, CF, CN, PI, DA, DT, NP, NU, PN, PR, CB, VP, VN }; struct TField770 : public TObject {