diff --git a/m770/771310.cpp b/m770/771310.cpp index 3deccd975..907380a59 100755 --- a/m770/771310.cpp +++ b/m770/771310.cpp @@ -273,28 +273,29 @@ void M71310_application::init_modify_mode(TMask& m) void M71310_application::set_field_note(TMask& m) { - const TString& note = _rel->lfile().get(QUL_QLNOTE); - for (int i = note.len()-1; i >= 0; i--) if (note[i] > ' ') + const TString& note = _rel->curr().get(QUL_QLNOTE); + for (int i = note.len()-1; i >= 0; i--) if (note[i] >= 'A') { - const short dlg = F_NOTEA + int(note[i] - 'A'); - m.set(dlg, "X"); + const short dlg = F_NOTEA + note[i] - 'A'; + TMask_field* f = m.find_by_id(dlg); + if (f != NULL) + f->set("X"); } } void M71310_application::build_note(const TMask& m) { - int index = 0; - TString note; note.spaces(20); - for (short dlg = F_NOTEA; dlg <= F_NOTEZ; dlg++) if (m.id2pos(dlg) > 0) + TString16 note; + for (short dlg = F_NOTEA; dlg <= F_NOTEZ; dlg++) { - if (!m.get(dlg).blank()) + TMask_field* f = m.find_by_id(dlg); + if (f != NULL && f->get().full()) { - char letter = 'A' + dlg - F_NOTEA; - note[index] = letter; + const char letter = 'A' + dlg - F_NOTEA; + note << letter; } - index++; } - _rel->lfile().put(QUL_QLNOTE, note); + _rel->curr().put(QUL_QLNOTE, note); } // Arrotonda l'importo versato diff --git a/m770/771310a.uml b/m770/771310a.uml index 715c5a088..b4511b6b5 100755 --- a/m770/771310a.uml +++ b/m770/771310a.uml @@ -309,115 +309,73 @@ END BOOLEAN F_NOTEB BEGIN - PROMPT 7 15 "B" + PROMPT 8 15 "B" GROUP G_NOTE END BOOLEAN F_NOTEC BEGIN - PROMPT 12 15 "C" + PROMPT 14 15 "C" GROUP G_NOTE END BOOLEAN F_NOTED BEGIN - PROMPT 17 15 "D" + PROMPT 20 15 "D" GROUP G_NOTE END BOOLEAN F_NOTEE BEGIN - PROMPT 22 15 "E" - GROUP G_NOTE -END - -BOOLEAN F_NOTEF -BEGIN - PROMPT 27 15 "F" - GROUP G_NOTE -END - -BOOLEAN F_NOTEG -BEGIN - PROMPT 32 15 "G" - GROUP G_NOTE -END - -BOOLEAN F_NOTEH -BEGIN - PROMPT 37 15 "H" + PROMPT 26 15 "E" GROUP G_NOTE END BOOLEAN F_NOTEK BEGIN - PROMPT 42 15 "K" + PROMPT 32 15 "K" GROUP G_NOTE END BOOLEAN F_NOTEL BEGIN - PROMPT 47 15 "L" - GROUP G_NOTE -END - -BOOLEAN F_NOTEM -BEGIN - PROMPT 52 15 "M" + PROMPT 38 15 "L" GROUP G_NOTE END BOOLEAN F_NOTEN BEGIN - PROMPT 57 15 "N" + PROMPT 44 15 "N" GROUP G_NOTE END BOOLEAN F_NOTEP BEGIN - PROMPT 62 15 "P" + PROMPT 50 15 "P" GROUP G_NOTE END BOOLEAN F_NOTEQ BEGIN - PROMPT 67 15 "Q" - GROUP G_NOTE -END - -BOOLEAN F_NOTER -BEGIN - PROMPT 72 15 "R" + PROMPT 56 15 "Q" GROUP G_NOTE END BOOLEAN F_NOTES BEGIN - PROMPT 2 16 "S" + PROMPT 64 15 "S" GROUP G_NOTE END BOOLEAN F_NOTET BEGIN - PROMPT 7 16 "T" - GROUP G_NOTE -END - -BOOLEAN F_NOTEU -BEGIN - PROMPT 12 16 "U" - GROUP G_NOTE -END - -BOOLEAN F_NOTEW -BEGIN - PROMPT 17 16 "W" + PROMPT 70 15 "T" GROUP G_NOTE END BOOLEAN F_NOTEZ BEGIN - PROMPT 22 16 "Z" + PROMPT 76 15 "Z" GROUP G_NOTE END diff --git a/m770/777100.cpp b/m770/777100.cpp index bd94f4ae8..9c5d910f6 100755 --- a/m770/777100.cpp +++ b/m770/777100.cpp @@ -28,7 +28,7 @@ // Codice fiscale di Sirio spa #define CF_PRODUTTORE "04879210963" -const int ANNO_DIC = 2012; +const int ANNO_DIC = 2013; /////////////////////////////////////////////////////////// // TForm770 @@ -132,9 +132,6 @@ public: const TRectype& get(int num, const char* key); const TRectype& get(int num, long key); void destroy(); - - TCache770() { } - virtual ~TCache770() { } } _cache770; class TRecord770 : public TObject @@ -790,7 +787,9 @@ TTracciato770::TTracciato770(char tipo) : _tipo(tipo) 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); // 107 + 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 @@ -881,7 +880,8 @@ TTracciato770::~TTracciato770() const TTracciato770& TTracciati770::tracciato(char tipo) { - const int pos = tipo-AN; + CHECK(tipo >= 'A' && tipo <= 'Z'); + const int pos = tipo - 'A'; TTracciato770* trc = (TTracciato770*)_trc.objptr(pos); if (trc == NULL) { @@ -891,6 +891,8 @@ const TTracciato770& TTracciati770::tracciato(char tipo) return *trc; } +// Determina a partire dal codice quadro (LA o ST) il tipo record (H o E) ed il numero di record per modulo (1 o 12) +// Ritorna il form da cui prelevare i codici (come AUXXX010) da inserire nei tracciati TForm770& TTracciati770::form(const char* quadro, char& tiporec, int& rpm) { CHECK(quadro && *quadro != '\0' && quadro[1] != '\0', @@ -1207,7 +1209,7 @@ TRecord770::~TRecord770() /////////////////////////////////////////////////////////// const char* TTrasferimento770::default_name() const -{ return "MOD77013"; } +{ return "MOD77014"; } bool TTrasferimento770::open(const char* path, char mode, int volume) { @@ -1549,7 +1551,7 @@ bool TTrasferimento770::split(const char* path) if (_save_headers) { rec.tipo_record('A'); // Compila record di testata A - rec.set(3, "77S13"); // Codice fornitura + rec.set(3, "77S14"); // Codice fornitura rec.set(4, 1); // Tipo fornitore 01 = Soggetto che invia la propria dichiarazione rec.set(5, cod_fis_dic()); // Codice fiscale del fornitore if (volumes > 1) diff --git a/m770/77qla.frm b/m770/77qla.frm index a3ba4f334..785c56121 100755 --- a/m770/77qla.frm +++ b/m770/77qla.frm @@ -123,6 +123,14 @@ BEGIN GROUP 1 END +STRINGA 12 +BEGIN + KEY "CODICE COMUNE" + PROMPT 78 5 "" + FIELD 218@->COMRES + SPECIAL STRING TRASFER "AU001011" "AN" +END + STRINGA 101 BEGIN KEY "VIA RES. FISC." @@ -145,182 +153,205 @@ STRINGA 11 BEGIN KEY "VIA RF + NUMCIVRF" PROMPT 78 5 "" - SPECIAL STRING TRASFER "AU001011" "AN" - MESSAGE COPY,14 -END - -STRINGA 14 -BEGIN - KEY "CODICE FISCALE ESTERO" - PROMPT 90 7 "" - FIELD 216@->COFIEST - SPECIAL STRING TRASFER "AU001014" "AN" + SPECIAL STRING TRASFER "AU001012" "AN" + MESSAGE COPY,17 END STRINGA 15 BEGIN - KEY "COMUNE ESTERO DI RES." - PROMPT 75 7 "" + KEY "CODICE FISCALE ESTERO" + PROMPT 90 7 "" + FIELD 216@->COFIEST SPECIAL STRING TRASFER "AU001015" "AN" END STRINGA 16 BEGIN - KEY "INDIRIZZO DI RES. ESTERO" - PROMPT 75 7 "" + KEY "LOCALITA' ESTERA DI RES." + PROMPT 75 7 "" SPECIAL STRING TRASFER "AU001016" "AN" END -NUMERO 17 +STRINGA 17 +BEGIN + KEY "INDIRIZZO DI RES. ESTERO" + PROMPT 75 7 "" + SPECIAL STRING TRASFER "AU001017" "AN" +END + +NUMERO 18 BEGIN KEY "STATO ESTERO" PROMPT 75 7 "" FIELD 216@->STATORES - SPECIAL STRING TRASFER "AU001017" "NU" + SPECIAL STRING TRASFER "AU001018" "NU" END -STRINGA 18 +STRINGA 19 BEGIN KEY "CAUSALE" PROMPT 13 9 "" FIELD CAUSALE - SPECIAL STRING TRASFER "AU001018" "AN" + SPECIAL STRING TRASFER "AU001019" "AN" END -NUMERO 19 +NUMERO 20 BEGIN KEY "ANNO" PROMPT 16 9 "" FIELD ANNO - SPECIAL STRING TRASFER "AU001019" "NP" + SPECIAL STRING TRASFER "AU001020" "NP" END -STRINGA 20 +STRINGA 21 BEGIN KEY "ANTICIPAZIONI" PROMPT 27 9 "" FIELD ANTICIPAZ - SPECIAL STRING TRASFER "AU001020" "CB" + SPECIAL STRING TRASFER "AU001021" "CB" END -VALUTA 21 +VALUTA 22 BEGIN KEY "AMMONTARE LORDO" PROMPT 27 9 "" FIELD TOTALE - SPECIAL STRING TRASFER "AU001021" "NP" + SPECIAL STRING TRASFER "AU001022" "NP" END -VALUTA 22 +VALUTA 23 BEGIN KEY "SOMREGCONV" PROMPT 47 9 "" FIELD SOMREGCONV - SPECIAL STRING TRASFER "AU001022" "NP" + SPECIAL STRING TRASFER "AU001023" "NP" END -NUMERO 23 +NUMERO 24 BEGIN KEY "Codice somme non soggette a ritenuta" PROMPT 64 9 "" - SPECIAL STRING TRASFER "AU001023" "NP" - MESSAGE _NUMEXPR,IF(SOMME>0,1,0) -END - -VALUTA 24 -BEGIN - KEY "SOMME NON SOGGETTE A RITENUTA" - PROMPT 66 9 "" - FIELD SOMME SPECIAL STRING TRASFER "AU001024" "NP" + MESSAGE _NUMEXPR,IF(SOMME>0,1,0) END VALUTA 25 BEGIN - KEY "IMPONIBILE = 21-22-23" - PROMPT 88 9 "" - FIELD IMPONIBILE + KEY "SOMME NON SOGGETTE A RITENUTA" + PROMPT 66 9 "" + FIELD SOMME SPECIAL STRING TRASFER "AU001025" "NP" END VALUTA 26 BEGIN - KEY "Ritenute operate a titolo di acconto" - PROMPT 109 9 "" - FIELD IMPORTO + KEY "IMPONIBILE = 22-23-25" + PROMPT 88 9 "" + FIELD IMPONIBILE SPECIAL STRING TRASFER "AU001026" "NP" END - VALUTA 27 BEGIN - KEY "Ritenute operate a titolo di imposta" + KEY "Ritenute operate a titolo di acconto" PROMPT 109 9 "" + FIELD IMPORTO SPECIAL STRING TRASFER "AU001027" "NP" END + VALUTA 28 BEGIN - KEY "RITENUTE SOSPESE" + KEY "Ritenute operate a titolo di imposta" PROMPT 109 9 "" - FIELD RITSOSPESE - SPECIAL STRING TRASFER "AU001028" "" + SPECIAL STRING TRASFER "AU001028" "NP" END VALUTA 29 BEGIN - KEY "ADDIZIONALE REGIONALE a titolo di acconto" + KEY "RITENUTE SOSPESE" PROMPT 109 9 "" - FIELD ADDREG - SPECIAL STRING TRASFER "AU001029" "NP" + FIELD RITSOSPESE + SPECIAL STRING TRASFER "AU001029" "" END VALUTA 30 BEGIN - KEY "ADDIZIONALE REGIONALE a titolo di imposta" + KEY "ADDIZIONALE REGIONALE a titolo di acconto" PROMPT 109 9 "" + FIELD ADDREG SPECIAL STRING TRASFER "AU001030" "NP" END VALUTA 31 BEGIN - KEY "ADDIZIONALE REGIONALE SOSPESA" + KEY "ADDIZIONALE REGIONALE a titolo di imposta" PROMPT 109 9 "" - FIELD ADDREGSOSP SPECIAL STRING TRASFER "AU001031" "NP" END VALUTA 32 BEGIN - KEY "IMPONIBILE ANNI PRECEDENTI" + KEY "ADDIZIONALE REGIONALE SOSPESA" PROMPT 109 9 "" - FIELD IMPANNIPRE + FIELD ADDREGSOSP SPECIAL STRING TRASFER "AU001032" "NP" END VALUTA 33 BEGIN - KEY "RITENUTE ANNI PRECEDENTI" + KEY "ADDIZIONALE COMUNALE a titolo di acconto" PROMPT 109 9 "" - FIELD RITANNIPRE +// FIELD ADDCOM SPECIAL STRING TRASFER "AU001033" "NP" END VALUTA 34 BEGIN - KEY "CONTRIBUTI PREVIDENZIALI A CARICO DEL SOGGETTO EROGANTE" + KEY "ADDIZIONALE COMUNALE a titolo di imposta" PROMPT 109 9 "" - FIELD CTINPSEROG SPECIAL STRING TRASFER "AU001034" "NP" END VALUTA 35 BEGIN - KEY "CONTRIBUTI PREVIDENZIALI A CARICO DEL PERCIPIENTE" + KEY "ADDIZIONALE COMUNALE SOSPESA" PROMPT 109 9 "" - FIELD CTINPSPERC +// FIELD ADDCOMSOSP SPECIAL STRING TRASFER "AU001035" "NP" END +VALUTA 36 +BEGIN + KEY "IMPONIBILE ANNI PRECEDENTI" + PROMPT 109 9 "" + FIELD IMPANNIPRE + SPECIAL STRING TRASFER "AU001036" "NP" +END + +VALUTA 37 +BEGIN + KEY "RITENUTE ANNI PRECEDENTI" + PROMPT 109 9 "" + FIELD RITANNIPRE + SPECIAL STRING TRASFER "AU001037" "NP" +END + +VALUTA 38 +BEGIN + KEY "CONTRIBUTI PREVIDENZIALI A CARICO DEL SOGGETTO EROGANTE" + PROMPT 109 9 "" + FIELD CTINPSEROG + SPECIAL STRING TRASFER "AU001038" "NP" +END + +VALUTA 39 +BEGIN + KEY "CONTRIBUTI PREVIDENZIALI A CARICO DEL PERCIPIENTE" + PROMPT 109 9 "" + FIELD CTINPSPERC + SPECIAL STRING TRASFER "AU001039" "NP" +END + END