diff --git a/ef/dc800000.frm b/ef/dc800000.frm new file mode 100644 index 000000000..3de24d0a3 --- /dev/null +++ b/ef/dc800000.frm @@ -0,0 +1,383 @@ +USE 31 +JOIN 14 INTO NPROGTR==NPROGTR +JOIN 20 INTO TIPOCF=="F" CODCF==CODCF +JOIN 17 TO 20 INTO TIPOCF==TIPOCF CODCF==CODCF +JOIN 16 TO 17 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDEFF +JOIN 13 TO 20 INTO COM==COMCF +JOIN 13 TO 16 ALIAS 213 INTO COM==COM +JOIN %BAN TO 20 ALIAS 201 INTO CODTAB[1,5]==CODABI +JOIN %BAN TO 20 ALIAS 203 INTO CODTAB==CODABI+CODCAB +JOIN %BAN ALIAS 202 INTO CODTAB==CODABIP+CODCABP +JOIN %BAN ALIAS 204 INTO CODTAB[1,5]==CODABIP +JOIN BNP ALIAS 205 INTO CODTAB==CODABIP+CODCABP +END +DESCRIPTION +BEGIN +31->* "Effetti" +14->* "Righe effetto" +20->* "Clienti e Fornitori" +13->* "Comuni" +201@->* "Tabella banche" +202@->* "Tabella banche" +203@->* "Tabella banche" +204@->* "Tabella banche" +END +GENERAL +BEGIN +OFFSET 0 0 +END +SECTION GRAPHICS ODD 4 +FIGURA 1 1 1 +BEGIN +PROMPT 1 1 "" +END +END +SECTION HEADER ODD 8 +STRING 1 80 +BEGIN +KEY "denominazione banca presentazione" +PROMPT 40 1 "Al/Alla @B" +FIELD 202@->S0 +END +STRING 2 35 +BEGIN +KEY "scritta elenco riba" +PROMPT 2 1 "@BDISPOSIZIONI DI INCASSO R.I.D." +END +NUMBER 3 8 +BEGIN +KEY "numero di pagina" +PROMPT 129 1 "pag. " +MESSAGE _PAGENO +END +DATA 4 20 +BEGIN +KEY "data emissione" +PROMPT 2 2 "Presentati il : " +MESSAGE _DATA +END +STRING 5 130 +BEGIN +KEY "ditta" +PROMPT 2 4 "Vi preghiamo di disporre per ordine e per conto @B" +MESSAGE _DITTA,!RAGSOC +END +STRING 5 130 +BEGIN +KEY "ditta" +PROMPT 2 5 "Gli incassi di seguito indicati:" +END +STRING 6 20 +BEGIN +KEY "scritta titolo righe del body" +PROMPT 2 7 "CREDITORE" +END +STRING 7 10 +BEGIN +KEY "scritta titolo righe del body" +PROMPT 32 7 "INDIRIZZO" +END +STRING 8 17 +BEGIN +KEY "scritta titolo righe del body" +PROMPT 62 7 "BANCA D'APPOGGIO" +END +STRING 9 11 +BEGIN +KEY "scritta titolo righe del body" +PROMPT 94 7 "FATTURA NUM" +END +STRING 10 8 +BEGIN +KEY "scritta titolo righe del body" +PROMPT 111 7 "DATA FATT." +END +STRING 11 7 +BEGIN +KEY "scritta titolo righe del body" +PROMPT 129 7 "IMPORTO" +END +STRING 12 +BEGIN +KEY "riga separazione dalle righe del body" +PROMPT 2 8 "---------------------------------------------------------------------------------------------------------------------------------------------" +END +STRING 13 25 +BEGIN +KEY "Numero distinta" +PROMPT 100 2 "Distinta N. @B" +FIELD NDIST +END +END +SECTION BODY ODD 6 +STRING 15 2 1 +BEGIN +KEY "creditore" +PROMPT 1 1 "@B" +END +STRING 16 25 2 +BEGIN +KEY "creditore" +PROMPT 2 1 "" +FIELD 20->RAGSOC +MESSAGE INC,FL->2 +END +STRING 27 21 +BEGIN +KEY "codice fiscale" +PROMPT 2 3 "P.I. " +FIELD 20->PAIV +END +STRING 28 2 1 +BEGIN +KEY "indirizzo normale" +PROMPT 25 1 "@R" +END +STRING 17 25 2 +BEGIN +KEY "Indirizzo debitore + nr. civico" +PROMPT 27 1 "" +MESSAGE _CLI,!IND +END +STRINGA 18 25 2 +BEGIN +KEY "PIAZZA(LOCALITA+PROV)" +PROMPT 27 3 "" +MESSAGE _CLI,!PIAZZA +END +STRING 117 6 +BEGIN +KEY "" +PROMPT 2 17 "" +MESSAGE _NUMEXPR, 20->CODABI==99999 +MESSAGE COPY,118 +FLAGS "H" +END +NUMBER 118 5 +BEGIN +KEY "" +PROMPT 55 4 "" +MESSAGE ENABLE,119|DISABLE,19 +MESSAGE ENABLE,120|DISABLE,20|DISABLE,21 +MESSAGE ENABLE,134|DISABLE,22|DISABLE,34 +MESSAGE EMPTY ENABLE,19|DISABLE,119 +MESSAGE EMPTY ENABLE,20|DISABLE,120 +FLAGS "H" +END +STRING 119 40 2 +BEGIN +KEY "banca d'appoggio denominazione" +PROMPT 55 1 "" +FIELD 203@->S0 +FLAGS "D" +END +STRING 120 40 1 +BEGIN +KEY "banca d'appoggio denominazione" +PROMPT 55 3 "" +FIELD 203@->S2 +FLAGS "D" +END +STRING 19 40 2 +BEGIN +KEY "banca d'appoggio denominazione" +PROMPT 55 1 "" +FIELD 201@->S0 +END +STRING 20 40 1 +BEGIN +KEY "banca d'appoggio succursale" +PROMPT 55 3 "" +FIELD 203@->S0 +END +STRING 221 7 +BEGIN +KEY "ABI presentazione" +PROMPT 55 4 "@B" +END +STRING 21 5 +BEGIN +KEY "ABI presentazione" +PROMPT 20 4 "ABI: " +FIELD 20->CODABI +END +STRING 22 5 +BEGIN +KEY "CAB succursale" +PROMPT 31 4 "CAB: " +FIELD 20->CODCAB +END +LISTA 23 8 +BEGIN +KEY "a saldo/in conto" +FIELD 31->ULTRATA +PROMPT 95 1 "" +ITEM " |IN CONTO" +ITEM "X|A SALDO" +flags "H" +END +STRING 24 17 5 +BEGIN +KEY "dati fattura" +PROMPT 92 1 "" +END +DATA 25 10 +BEGIN +KEY "data scadenza" +PROMPT 112 1 "" +END +STRING 34 20 +BEGIN +KEY "Conto Corrente" +PROMPT 43 4 "C/C " +FIELD 20->NUMCC +END +STRING 133 1 +BEGIN +KEY "Conto Corrente" +PROMPT 5 4 "" +FIELD 20->NUMCC +MESSAGE EMPTY DISABLE,134 +FLAGS "H" +END +STRING 134 35 +BEGIN +KEY "Conto Corrente" +PROMPT 43 4 "ACCOUNT NUM. " +FIELD 20->NUMCC +FLAGS "D" +END +STRING 135 35 +BEGIN +KEY "Conto Corrente" +PROMPT 61 4 "IBAN " +FIELD 20->IBAN +END +STRING 35 3 +BEGIN +KEY "test sulla valuta" +PROMPT 2 8 "" +FIELD CODVAL +FLAGS "H" +MESSAGE EMPTY ENABLE,4@|DISABLE,3@ +END +STRING 36 17 1 +BEGIN +KEY "cod cliente" +PROMPT 2 4 "@RCod. For: " +FIELD 20->CODCF +END +SECTION RIGHE_EFFETTO 5 1 1 FILE 14 GROUP NPROGTR +STRINGA 1 +BEGIN +PROMPT 92 1 "Ft. n." +FIELD 14->NFATT +END +DATA 2 +BEGIN +PROMPT 107 1 "del " +FIELD 14->DATAFATT +END +VALUTA 3 21 3 +BEGIN +PROMPT 124 1 "" +FIELD 14->IMPORTOVAL +GROUP 3 +END +VALUTA 4 18 +BEGIN +PROMPT 124 1 "" +FIELD 14->IMPORTO +GROUP 4 +FLAGS "D" +END +END +STRINGA 31 32 +BEGIN +PROMPT 110 5 "--------------------------------" +END +STRINGA 32 10 +BEGIN +PROMPT 109 6 "@B Totale" +END +STRINGA 33 2 +BEGIN +PROMPT 114 6 "@B" +END +VALUTA 26 18 +BEGIN +KEY "importo" +PROMPT 124 6 "" +MESSAGE _IMPORTO +MESSAGE ADD,FL->3 +PICTURE "###.###.###.###" +END +END +SECTION FOOTER ODD 5 +STRINGA 99 +BEGIN +KEY "riga separazione dalle righe del body" +PROMPT 2 1 "---------------------------------------------------------------------------------------------------------------------------------------------" +END +STRINGA 100 12 1 +BEGIN +KEY "stampa 'segue' in coda" +PROMPT 120 3 "-- SEGUE --" +END +END +SECTION FOOTER LAST 5 +STRINGA 1 +BEGIN +KEY "riga separazione dalle righe del body" +PROMPT 2 1 "---------------------------------------------------------------------------------------------------------------------------------------------" +END +NUMERO 2 25 +BEGIN +KEY "scritta n. documenti" +PROMPT 5 2 "DISPOSIZIONI DI INCASSO R.I.D. N. " +END +NUMERO 3 50 +BEGIN +KEY "Totale" +PROMPT 5 3 "Dell' importo complessivo di L.@B" +PICTURE "###.###.###.###,@@#" +END +STRING 93 3 +BEGIN +KEY "test sulla valuta" +PROMPT 34 3 "" +FIELD CODVAL +GROUP 4 +END +STRINGA 4 40 +BEGIN +KEY "NUMERO C/C" +PROMPT 60 3 "@RAccrediterete il C/C N. @B" +FIELD 205@->S0 +END +STRINGA 4 40 +BEGIN +KEY "banca" +PROMPT 100 3 "" +FIELD 204@->S0 +END +STRINGA 5 80 +BEGIN +KEY "firma " +PROMPT 5 4 "presso di Voi, intestato a: @B" +MESSAGE _DITTA,!RAGSOC +END +STRINGA 6 40 +BEGIN +KEY "firma " +PROMPT 65 5 "------------------------------------" +END +DATA 7 34 +BEGIN +KEY "data valuta" +PROMPT 100 3 "@Rcon valuta per noi: @B" +FIELD 31->DATADIST +FL "D" +END +END +END diff --git a/ef/ef0101.cpp b/ef/ef0101.cpp index fc8801d20..1ed13813f 100755 --- a/ef/ef0101.cpp +++ b/ef/ef0101.cpp @@ -251,6 +251,7 @@ TToken_string& TEffetto::altridati_fatt(long num, TToken_string& dati) righe_eff.next();// passa alla riga successiva } + return dati; } diff --git a/ef/ef0101.h b/ef/ef0101.h index 93033ffae..6b264d034 100755 --- a/ef/ef0101.h +++ b/ef/ef0101.h @@ -22,6 +22,7 @@ protected: long get_next_key(const long codcf) const; // permette di leggere il record passato nel file passato int leggi(TLocalisamfile& f, const TRectype& rec, word lockop = _nolock); + public: // Duplica l'effetto virtual TObject* dup() const; @@ -32,13 +33,13 @@ public: // ritorna un riferimento alla testata dell'effetto TRectype& head() { return *this; } // ritorna un riferimento alle righe dell'effetto - TRecord_array& righe() {return _righe;} + TRecord_array& righe() { return _righe;} // ritorna un riferimento ai cessionari dell'effetto - TRecord_array& cess() {return _cess;} + TRecord_array& cess() { return _cess;} // ritorna la riga i_esima dei cessionari - TRectype& row_c(int i, bool create=FALSE) { return _cess.row(i,create); } + TRectype& row_c(int i, bool create=false) { return _cess.row(i,create); } // ritorna la riga i delle righe - TRectype& row_r(int i, bool create=FALSE) { return _righe.row(i,create); } + TRectype& row_r(int i, bool create=false) { return _righe.row(i,create); } // ritorna la riga i delle righe const TRectype& row_r(int i) const { return _righe.row(i); } // ritorna il numero delle righe presenti nelle righe effetto @@ -46,11 +47,11 @@ public: // ritorna il numero delle righe presenti nei cessionari int rows_c() const { return _cess.rows(); } // elimina l'elemento riga nella posizione n nelle righe effetto - bool destroy_row_r(int n, bool pack = FALSE) { return _righe.destroy_row(n, pack); } + bool destroy_row_r(int n, bool pack = false) { return _righe.destroy_row(n, pack); } // elimina tutti gli elementi riga nelle righe effetto void destroy_rows_r() { _righe.destroy_rows(); } // elimina l'elemento riga nella posizione n nei cessionari - bool destroy_row_c(int n, bool pack = FALSE) { return _cess.destroy_row(n, pack); } + bool destroy_row_c(int n, bool pack = false) { return _cess.destroy_row(n, pack); } // elimina tutti gli elementi riga nei cessionari void destroy_rows_c() { _cess.destroy_rows(); } // restituisce il prossimo effetto @@ -60,7 +61,7 @@ public: // legge il record passato, con chiave 4 int read(TLocalisamfile& f, char tipodist, long ndist, int nrigadist, word lockop = _nolock); // scrive l'effetto, sempre usando la chiave 1 - int write(TLocalisamfile& f, bool force = FALSE); + int write(TLocalisamfile& f, bool force = false); // riscrive l'effetto int rewrite(TLocalisamfile& f) { return write(f, TRUE); } // rimuove l'effetto @@ -78,7 +79,7 @@ public: // restituisce il numero della riga distinta a cui appartiene l'effetto estraendolo dal record int nrgdist() const { return get_int(EFF_NRIGADIST); } // restituisce l'importo dell'effetto - real importo(const bool valuta = FALSE) const { return get_real(valuta ? EFF_IMPORTOVAL : EFF_IMPORTO); } + real importo(const bool valuta = false) const { return get_real(valuta ? EFF_IMPORTOVAL : EFF_IMPORTO); } const bool in_valuta() const; const char get_tipo() const ; // setta i campi per la quarta chiave del file diff --git a/ef/ef0500.cpp b/ef/ef0500.cpp index bcc51f39a..e7780301f 100755 --- a/ef/ef0500.cpp +++ b/ef/ef0500.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include #include @@ -10,11 +11,12 @@ #include "ef0500.h" #include "../ve/velib.h" +#include #include #include #include #include -#include +#include class TRiba_form; class TDistinta_form; @@ -74,7 +76,7 @@ protected: void save_data_emis(void); void header_rb(void); void footer_ef(void); - void inizializza_cur(void); + TCursor& inizializza_cur(); void inizializza_file(void); void record(const TString & chiave); bool ok_write(void); @@ -138,6 +140,9 @@ class TRiba_file: public TFile_text long _totrec; protected: + char tipo_incasso(const TRectype& eff) const; // U o V + const char* tipo_sequenza(const TRectype& eff) const; // FRST,RCUR,FNAL,OOFF + virtual void validate(TCursor& cur,TRecord_text &rec, TToken_string &val, TString& str); public: @@ -259,21 +264,22 @@ void TEmissione::conferma() // gestione emissione su floppy void TEmissione::floppy() -{ - inizializza_cur(); +{ + TCursor& cur = inizializza_cur(); + cur = 0L; // Posizionati all'inizio - *_cur = 0L; // Posizionati all'inizio - const TRectype& eff = _cur->curr(); + const TRectype& eff = cur.curr(); const long codabi = eff.get_long(EFF_CODABIP); const char tipocf = eff.get_char(EFF_TIPOCF); const char tipopag = eff.get_char(EFF_TIPOPAG); + TFilename ribaini; if (!build_ribaini_name(codabi, tipocf, tipopag, ribaini)) { cantread_box(ribaini); return; } - + _trasfile = new TRiba_file(RIBAFILENAME, ribaini); TTracciato_record* rb = _trasfile->t_rec("RB"); if (rb != NULL) @@ -288,7 +294,6 @@ void TEmissione::floppy() if (condition) { const TRecnotype n_eff = _cur->items(); - TString msg; msg.format(FR("Emissione di %d effetti su file %s\ncon tracciato %s"), n_eff, RIBAFILENAME, (const char*)ribaini); if (n_eff > 0) @@ -297,30 +302,30 @@ void TEmissione::floppy() _trasfile->tracciati().get_keys(keys); keys.sort(); - TProgind pi(n_eff, msg, true, true); + TProgress_monitor pi(n_eff, msg); header_rb();//intestazione flusso effetti //scandisco tutti gli effetti della distinta selezionata - for (*_cur = 0; _cur->pos() < n_eff; ++(*_cur)) + for (cur = 0; cur.pos() < n_eff; ++cur) { - if (!pi.addstatus(1)) - break; save_data_emis(); //scandisco tutti i record di un effetto FOR_EACH_ARRAY_ROW(keys, i, rec) record(*rec);//emetto il record + if (!pi.add_status(1)) + break; } footer_ef(); //chiusura flusso effetti } message_box(msg); } else - error_box(TR("Impossibile scrivere sull'unita' di destinazione")); + error_box(TR("Impossibile scrivere sull'unitą di destinazione")); _trasfile->close(); delete _trasfile; _trasfile = NULL; - + delete _cur; _cur = NULL; } @@ -388,7 +393,7 @@ void TEmissione::footer_ef() } //inizializza il cursore per la gestione dei dati da caricare negli effetti -void TEmissione::inizializza_cur() +TCursor& TEmissione::inizializza_cur() { const int ndist = _msk->get_int(F_NUMBER); const char tipodist = _msk->get(F_TIPODIST)[0]; @@ -400,6 +405,7 @@ void TEmissione::inizializza_cur() delete _cur; _cur = new TCursor(_rel,"",4,&from,&from); _cur->freeze(); + return *_cur; } //inizializza il file di testo su cui emettere gli effetti @@ -408,7 +414,7 @@ void TEmissione::inizializza_file() TFilename fileriba = _msk->get(F_PATH); fileriba.add(_msk->get(F_NOMEFILE)); fileriba.fremove(); - _trasfile->open(fileriba,'w'); + _trasfile->open(fileriba, 'w'); _trasfile->set_tot_importi(ZERO); _trasfile->force_record_separator(_msk->get_bool(F_FORCESEP)); } @@ -989,11 +995,42 @@ bool TDistinta_form::validate(TForm_item &cf, TToken_string &s) return TForm::validate(cf, s); } +char TRiba_file::tipo_incasso(const TRectype& eff) const +{ + const char tipopag = eff.get_char(EFF_TIPOPAG); + const char tipocf = eff.get_char(EFF_TIPOCF); + const long codcf = eff.get_char(EFF_CODCF); + + if (tipopag != '8' || tipocf != 'C' || codcf <= 0L) + return ' '; + TString8 key; key.format("C|%ld", codcf); + const TRectype& clifo = cache().get(LF_CLIFO, key); + if (clifo.get_char(CLI_TIPOAPER) == 'G') + return 'V'; + return 'U'; +} + +const char* TRiba_file::tipo_sequenza(const TRectype& eff) const +{ + const char* seq = "OOFF"; + TEffetto e(eff); + if (e.fatt()) + { + const int nrata = e.row_r(0).get_int(REFF_NRATA); + if (eff.get_bool(EFF_ULTRATA)) + seq = nrata <= 1 ? "OOFF" : "FNAL"; + else + seq = nrata <= 1 ? "FRST" : "RCUR"; + } + return seq; +} + + // gestione dei messaggi estesi nei campi void TRiba_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TString& str) { - const TString code(s.get(0)); - TString valore; + const TString80 code(s.get(0)); + TString80 valore; if (code == "_FISSO") { // gestione dei campi fissi per i record delle riba @@ -1056,7 +1093,7 @@ void TRiba_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TStr // "3" la ragione sociale andrą ad occupare pił campi, terzo segmento // "4" la ragione sociale andrą ad occupare pił campi, quarto segmento - TString in(s.get()); + TString80 in = s.get(); CHECK(in[0]=='!',"Macro _DITTA senza carattere '!'"); in.ltrim(1); if (in=="RAGSOC") @@ -1081,14 +1118,19 @@ void TRiba_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TStr } else if (in == "CFPI") { - const TRectype& curr = app().firm_rel().curr(LF_ANAG); - valore = curr.get("PAIV"); + const TRectype& anag = app().firm_rel().curr(LF_ANAG); + valore = anag.get(ANA_COFI); + if (valore.blank()) + valore = anag.get(ANA_PAIV); + valore.trim(); + } else + if (in == "PICF") + { + const TRectype& anag = app().firm_rel().curr(LF_ANAG); + valore = anag.get(ANA_PAIV); + if (valore.blank()) + valore = anag.get(ANA_COFI); valore.trim(); - if (valore.empty()) - { - valore = curr.get("COFI"); - valore.trim(); - } } else CHECKS(FALSE, "Sotto-Macro _DITTA non definita: ",(const char *)in); @@ -1111,12 +1153,12 @@ void TRiba_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TStr TRectype& clifo_2 = cur.curr(pick_normal ? LF_CLIFO : LF_INDSP); TRectype& comuni = cur.curr(pick_normal ? LF_COMUNI: -213); - TString in(s.get()); + TString80 in(s.get()); CHECK(in[0]=='!',"Macro _DEBITORE senza carattere '!'"); in.ltrim(1); if (in=="RAGSOC") { - TString ragsoc = clifo_2.get(pick_normal ? CLI_RAGSOC : IND_RAGSOC); + TString80 ragsoc = clifo_2.get(pick_normal ? CLI_RAGSOC : IND_RAGSOC); in = s.get(); TParagraph_string string(ragsoc,30); string.restart(); @@ -1295,11 +1337,28 @@ void TRiba_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TStr { valore = ini_get_string(CONFIG_DITTA, "ef", "CODSIA"); } + else if (code == "_CREDITORID") + { + valore = ini_get_string(CONFIG_DITTA, "ef", "CREDITORID"); + } else if (code == "_CODMON") { - valore.format("%c", _codice_moneta); + valore.format("%c", _codice_moneta); // Fisso 'E' } - else NFCHECK("Macro non definita: %s", (const char *)code); + else if (code == "_TIPOINC") + { + valore.format("%c", tipo_incasso(cur.curr())); // U o V + } + else if (code == "_TIPOSEQ") + { + valore = tipo_sequenza(cur.curr()); + } + else if (code == "_DATAMANDATO") + { + valore = "000000"; + } + else + NFCHECK("Macro non definita: %s", (const char *)code); str = valore; } diff --git a/ef/ef0900a.h b/ef/ef0900a.h index 3a54e5754..24abe3ce2 100755 --- a/ef/ef0900a.h +++ b/ef/ef0900a.h @@ -6,6 +6,7 @@ #define F_DESCCAUINC 106 #define F_DESCCAUPAG 107 #define F_CONTSEP 108 +#define F_CREDITORID 109 #define F_TRANS_G 111 #define F_TRANS_C 112 diff --git a/ef/ef0900a.uml b/ef/ef0900a.uml index 7d4f799b0..88433e867 100755 --- a/ef/ef0900a.uml +++ b/ef/ef0900a.uml @@ -6,7 +6,7 @@ ENDPAGE PAGE "Parametri effetti" 0 2 0 0 -GROUPBOX DLG_NULL 78 11 +GROUPBOX DLG_NULL 78 6 BEGIN PROMPT 1 2 "@bContabilizzazione" END @@ -76,11 +76,9 @@ BEGIN FIELD DESCPAG END -STRING F_CODSIA 5 +GROUPBOX DLG_NULL 78 5 BEGIN - PROMPT 2 8 "Codice SIA " - FLAGS "Z" - FIELD CODSIA + PROMPT 1 8 "@bAnalitica" END NUMBER F_TRANS_G 3 @@ -101,6 +99,7 @@ BEGIN CHECKTYPE NORMAL ADD RUN CG0 -0 FIELG DIFFCAMG + MODULE ca END NUMBER F_TRANS_C 3 @@ -109,6 +108,7 @@ BEGIN COPY ALL F_TRANS_G CHECKTYPE NORMAL FIELG DIFFCAMC + MODULE ca END NUMBER F_TRANS_S 6 @@ -117,6 +117,7 @@ BEGIN COPY ALL F_TRANS_G CHECKTYPE NORMAL FIELG DIFFCAMS + MODULE ca END STRING F_TRANS_D 50 @@ -131,6 +132,7 @@ BEGIN COPY OUTPUT F_TRANS_S CHECKTYPE NORMAL ADD RUN CG0 -0 + MODULE ca END BOOLEAN F_CONTSEP @@ -139,6 +141,24 @@ BEGIN FIELD ContSep END +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 13 "@bGenerazione effetti SEPA" +END + +STRING F_CODSIA 5 +BEGIN + PROMPT 2 14 "Codice SIA " + FLAGS "Z" + FIELD CODSIA +END + +STRING F_CREDITORID 25 +BEGIN + PROMPT 2 15 "Creditor Identifier " + FIELD CREDITORID +END + ENDPAGE ENDMASK diff --git a/ef/rc800000.ini b/ef/rc800000.ini new file mode 100644 index 000000000..aae7bc8e5 --- /dev/null +++ b/ef/rc800000.ini @@ -0,0 +1,579 @@ +[MAIN] +DECSEP = , +FIELDSEP = +RECORDSEP = +RECORDSIZE = 120 +SKIPLINES = 0 +TYPEFIELD = 1 +TYPELEN = -1 +TYPEPOS = -1 + +[TYPE FISSO] +ALIGN = +DATA = +DECIMAL = 0 +FILLER = ' ' +LENGTH = 0 +PICTURE = + +[TYPE IMPORTO] +ALIGN = R +DATA = N +DECIMAL = 1 +FILLER = 0 +LENGTH = 13 +PICTURE = @@@@@@@@@@@@@ + +[TYPE DATA] +ALIGN = +DATA = D +DECIMAL = 0 +FILLER = +LENGTH = 6 +PICTURE = 1442 + +[TYPE NUMERO] +ALIGN = R +DATA = N +DECIMAL = 0 +FILLER = '0' +LENGTH = 0 +PICTURE = + +[TYPE STRINGA] +ALIGN = L +DATA = S +DECIMAL = 0 +FILLER = ' ' +LENGTH = 0 +PICTURE = + +// ******************************************************* [RECORD IR] +[HEADER RB] +NAME(0)=CAMPO BLANK +TYPE(0)=FISSO +POSITION(0)=0 +LENGTH(0)=1 + +NAME(1)=TIPO RECORD +POSITION(1)=1 +LENGTH(1)=2 +MESSAGE(1)=_FISSO,!IR + +NAME(2)=CODICE MITTENTE +POSITION(2)=3 +LENGTH(2)=5 +MESSAGE(2)=_CODSIA + +NAME(3)=CODICE DESTINATARIO +FIELD(3)=31->CODABIP +POSITION(3)=8 +LENGTH(3)=5 + +NAME(4)=DATA EMISSIONE +TYPE(4)=DATA +FIELD(4)=31->DATAEMISS +POSITION(4)=13 +LENGTH(4)=6 +MESSAGE(4) = _DATA + +NAME(5)=RAGIONE SOCIALE MITTENTE +TYPE(5)=STRINGA +POSITION(5)=19 +LENGTH(5)=26 +MESSAGE(5)=_DITTA,!RAGSOC,1 + +NAME(6)=FILLER +TYPE(6)=FISSO +POSITION(6)=45 +LENGTH(6)=68 + +NAME(7)=CODICE MONETA +TYPE(7)=STRINGA +POSITION(7)=113 +LENGTH(7)=1 +MESSAGE(7) = _CODMON + +NAME(8)=FILLER +TYPE(8)=FISSO +POSITION(8)=114 +LENGTH(8)=6 + +NAME(9)=TIPO RECORD FINTO +POSITION(9)=1 +LENGTH(9)=2 +MESSAGE(9)=_FISSO,!IR + +// ******************************************************* [RECORD 10] +[RECORD 10] +NAME(0) = CAMPO BLANK +TYPE(0) = FISSO +POSITION(0) = 0 +LENGTH(0) = 1 + +NAME(1) = TIPO RECORD +POSITION(1) = 1 +LENGTH(1) = 2 +MESSAGE(1) = _FISSO,!10 + +NAME(2) = NUMERO PROGRESSIVO RIBA +TYPE(2) = NUMERO +POSITION(2) = 3 +LENGTH(2) = 7 +MESSAGE(2) = _NRIBA,!NUM + +NAME(3) = DATA DECORRENZA GARANZIA +TYPE(3) = DATA +POSITION(3) = 10 +LENGTH(3) = 6 +FIELD(3) = 31->DATASCAD + +NAME(4) = DATA ESECUZIONE +TYPE(4) = DATA +// FIELD(4) = 31->DATASCAD +POSITION(4) = 16 +LENGTH(4) = 6 + +NAME(5) = DATA VALUTA +TYPE(5) = DATA +FIELD(5) = 31->DATASCAD +POSITION(5) = 22 +LENGTH(5) = 6 + +NAME(6) = CAUSALE +POSITION(6) = 28 +LENGTH(6) = 5 +MESSAGE(6) = _FISSO,!50000 + +NAME(7) = IMPORTO +TYPE(7) = IMPORTO +FIELD(7) = 31->IMPORTO +POSITION(7) = 33 +LENGTH(7) = 13 +MESSAGE(7)=_IMPORTO,!ADD + +NAME(8) = SEGNO +POSITION(8) = 46 +LENGTH(8) = 1 +MESSAGE(8) = _FISSO,!- + +NAME(9) = CODABI BANCA PRESENTAZIONE +FIELD(9) = 31->CODABIP +POSITION(9) = 47 +LENGTH(9) = 5 + +NAME(10) = CODCAB BANCA PRESENTAZIONE +FIELD(10) = 31->CODCABP +POSITION(10) = 52 +LENGTH(10) = 5 + +NAME(11) = C/C n. ordinante +TYPE(11) = STRINGA +FIELD(11) = 403@->S0 +POSITION(11) = 57 +LENGTH(11) = 12 + +NAME(12) = CODICE ABI BANCA DOMICILIATARIA (FACOLTATIVO) +FIELD(12) = 20->CODABI +POSITION(12) = 69 +LENGTH(12) = 5 + +NAME(13) = CODICE CAB BANCA DOMICILIATARIA (FACOLTATIVO) +FIELD(13) = 20->CODCAB +POSITION(13) = 74 +LENGTH(13) = 5 + +NAME(14) = RIFERIMENTO DEBITORE (FACOLTATIVO) +TYPE(14) = STRINGA +// FIELD(14) = 20->NUMCC +POSITION(14) = 79 +LENGTH(14) = 12 + +NAME(15) = CODICE AZIENDA +POSITION(15) = 91 +LENGTH(15) = 5 +MESSAGE(15) = _CODSIA + +NAME(16) = TIPO CODICE INDIVIDUALE (FACOLTATIVO) +TYPE(16) = FISSO +POSITION(16) = 96 +LENGTH(16) = 1 +MESSAGE(16) = _FISSO,!9 + +NAME(17) = CODICE CLIENTE DEBITORE (FACOLTATIVO) +TYPE(17) = FISSO +POSITION(17) = 97 +LENGTH(17) = 16 +FIELD(17) = 20->PAIV + +NAME(18) = TIPO INCASSO (FACOLTATIVO) +TYPE(18) = STRINGA +POSITION(18) = 112 +LENGTH(18) = 1 +MESSAGE(18) = _TIPOINC + +NAME(19) = CODICE MONETA +TYPE(19) = STRINGA +POSITION(19) = 113 +LENGTH(19) = 1 +MESSAGE(19) = _CODMON + +// ******************************************************* [RECORD 16] +[RECORD 16] +NAME(0) = CAMPO BLANK +TYPE(0) = FISSO +POSITION(0) = 0 +LENGTH(0) = 1 + +NAME(1) = TIPO RECORD +POSITION(1) = 1 +LENGTH(1) = 2 +MESSAGE(1) = _FISSO,!16 + +NAME(2) = NUMERO PROGRESSIVO RIBA +TYPE(2) = NUMERO +POSITION(2) = 3 +LENGTH(2) = 7 +MESSAGE(2) = _NRIBA,!NUM + +NAME(3) = Codice IBAN +TYPE(3) = STRINGA +POSITION(3) = 10 +LENGTH(3) = 34 +FIELD(3) = 403@->S3 + +NAME(4) = CREDITOR IDENTIFIER (FACOLTATIVO) +TYPE(4) = STRINGA +POSITION(4) = 44 +LENGTH(4) = 25 +MESSAGE(4) = _CREDITORID + +[RECORD 17] +NAME(0) = CAMPO BLANK +TYPE(0) = FISSO +POSITION(0) = 0 +LENGTH(0) = 1 + +NAME(1) = TIPO RECORD +POSITION(1) = 1 +LENGTH(1) = 2 +MESSAGE(1) = _FISSO,!17 + +NAME(2) = NUMERO PROGRESSIVO RIBA +TYPE(2) = NUMERO +POSITION(2) = 3 +LENGTH(2) = 7 +MESSAGE(2) = _NRIBA,!NUM + +NAME(3) = Codice IBAN +TYPE(3) = STRINGA +POSITION(3) = 10 +LENGTH(3) = 34 +FIELD(3) = 31->IBAN + +NAME(4) = TIPO SEQUENZA +TYPE(4) = STRINGA +POSITION(4) = 37 +LENGTH(4) = 4 +MESSAGE(4) = _TIPOSEQ + +NAME(5) = DATA SOTTOSCIZIONE MANDATO (FACOLTATIVO) +TYPE(5) = NUMERO +POSITION(5) = 41 +LENGTH(5) = 6 +MESSAGE(5) = _DATAMANDATO + +// ******************************************************* [RECORD 20] +[RECORD 20] +NAME(0)=CAMPO BLANK +TYPE(0)=FISSO +POSITION(0)=0 +LENGTH(0)=1 + +NAME(1)=TIPO RECORD +POSITION(1)=1 +LENGTH(1)=2 +MESSAGE(1)=_FISSO,!20 + +NAME(2)=NUMERO PROGRESSIVO RIBA +TYPE(2)=NUMERO +POSITION(2)=3 +LENGTH(2)=7 +MESSAGE(2) = _NRIBA,!NUM + +NAME(3)=DESCRIZIONE MITTENTE (CREDITORE) SEGMENTO 1 +TYPE(3)=STRINGA +POSITION(3)=10 +LENGTH(3)=30 +MESSAGE(3)=_DITTA,!RAGSOC,1 + +NAME(4)=DESCRIZIONE MITTENTE SEGMENTO 2 +TYPE(4)=STRINGA +POSITION(4)=40 +LENGTH(4)=30 +MESSAGE(4)=_DITTA,!RAGSOC,2 + +NAME(5)=DESCRIZIONE MITTENTE SEGMENTO 3 +TYPE(5)=STRINGA +POSITION(5)=70 +LENGTH(5)=30 +MESSAGE(5)=_DITTA,!RAGSOC,3 + +NAME(6)=DESCRIZIONE MITTENTE SEGMENTO 4 +TYPE(6)=STRINGA +POSITION(6)=100 +LENGTH(6)=16 +MESSAGE(6)=_DITTA,!PICF + +NAME(7)=CAMPO BLANK +TYPE(7)=FISSO +POSITION(7)=116 +LENGTH(7)=4 + +// ******************************************************* [RECORD 30] +[RECORD 30] +NAME(0)=CAMPO BLANK +TYPE(0)=FISSO +POSITION(0)=0 +LENGTH(0)=1 + +NAME(1)=TIPO RECORD +POSITION(1)=1 +LENGTH(1)=2 +MESSAGE(1)=_FISSO,!30 + +NAME(2)=NUMERO PROGRESSIVO RIBA +TYPE(2)=NUMERO +POSITION(2)=3 +LENGTH(2)=7 +MESSAGE(2) = _NRIBA,!NUM + +NAME(3)=DESCRIZIONE DEBITORE SEGMENTO 1 +TYPE(3)=STRINGA +POSITION(3)=10 +LENGTH(3)=30 +MESSAGE(3) = _DEBITORE,!RAGSOC,1 + +NAME(4)=DESCRIZIONE DEBITORE SEGMENTO 2 +TYPE(4)=STRINGA +POSITION(4)=40 +LENGTH(4)=30 +MESSAGE(4) = _DEBITORE,!RAGSOC,2 + +NAME(5)=CODICE FISCALE DEBITORE SEGMENTO 3 +TYPE(5)=STRINGA +POSITION(5)=100 +LENGTH(5)=16 +MESSAGE(5)= _DEBITORE,!CFPI + +NAME(6)=CAMPO BLANK +TYPE(6)=FISSO +POSITION(6)=116 +LENGTH(6)=4 + +// ******************************************************* [RECORD 40] +[RECORD 40] +NAME(0)=CAMPO BLANK +TYPE(0)=FISSO +POSITION(0)=0 +LENGTH(0)=1 + +NAME(1)=TIPO RECORD +POSITION(1)=1 +LENGTH(1)=2 +MESSAGE(1)=_FISSO,!40 + +NAME(2)=NUMERO PROGRESSIVO RIBA +TYPE(2)=NUMERO +POSITION(2)=3 +LENGTH(2)=7 +MESSAGE(2) = _NRIBA,!NUM + +NAME(3)=INDIRIZZO DEBITORE: VIA,NUMERO CIVICO, NOME FRAZIONE +TYPE(3)=STRINGA +POSITION(3)=10 +LENGTH(3)=30 +MESSAGE(3) = _DEBITORE,!INDIRIZZO + +NAME(4)=INDIRIZZO DEBITORE: CAP +TYPE(4)=NUMERO +FIELD(4)=20->CAPCF +POSITION(4)=40 +LENGTH(4)=5 + +NAME(5)=INDIRIZZO DEBITORE: COMUNE +TYPE(5)=STRINGA +POSITION(5)=45 +LENGTH(5)=23 +MESSAGE(5) = _DEBITORE,!COMUNE + +NAME(6)=INDIRIZZO DEBITORE: SIGLA PROVINCIA +TYPE(6)=STRINGA +POSITION(6)=68 +LENGTH(6)=2 +MESSAGE(6) = _DEBITORE,!PROV + +NAME(7)=CAMPO BLANK +TYPE(7)=FISSO +POSITION(7)=70 +LENGTH(7)=50 + + +// ******************************************************* [RECORD 50] +[RECORD 50] +NAME(0)=CAMPO BLANK +TYPE(0)=FISSO +POSITION(0)=0 +LENGTH(0)=1 + +NAME(1)=TIPO RECORD +POSITION(1)=1 +LENGTH(1)=2 +MESSAGE(1)=_FISSO,!50 + +NAME(2)=NUMERO PROGRESSIVO RIBA +TYPE(2)=NUMERO +POSITION(2)=3 +LENGTH(2)=7 +MESSAGE(2) = _NRIBA,!NUM + +NAME(3)=RIFERIMENTI AL DEBITO SEGMENTO 1 +TYPE(3)=STRINGA +POSITION(3)=10 +LENGTH(3)=45 +MESSAGE(3) = _FATT,!1 + +NAME(4)=RIFERIMENTI AL DEBITO SEGMENTO 2 +TYPE(4)=STRINGA +POSITION(4)=55 +LENGTH(4)=45 +MESSAGE(4) = _FATT,!2 + +NAME(5)=CAMPO BLANK +TYPE(5)=FISSO +POSITION(5)=100 +LENGTH(5)=20 + +// NAME(6)=RIFERIMENTI FISSI AL DEBITO +// TYPE(6)=STRINGA +// POSITION(6)=10 +// LENGTH(6)=11 +// MESSAGE(6) = _FISSO,!RETTA MESE + +// NAME(7)=RIFERIMENTI AL DEBITO SEGMENTO 1 +// TYPE(7)=STRINGA +// POSITION(7)=21 +// LENGTH(7)=34 +// MESSAGE(7) = _FATT,!1 + + +// ******************************************************* [RECORD 70] +[RECORD 70] +NAME(0)=CAMPO BLANK +TYPE(0)=FISSO +POSITION(0)=0 +LENGTH(0)=1 + +NAME(1)=TIPO RECORD +POSITION(1)=1 +LENGTH(1)=2 +MESSAGE(1)=_FISSO,!70 + +NAME(2)=NUMERO PROGRESSIVO RIBA +TYPE(2)=NUMERO +POSITION(2)=3 +LENGTH(2)=7 +MESSAGE(2) = _NRIBA,!NUM + +NAME(3)=CAMPO ALTERABILE +TYPE(3)=FISSO +POSITION(3)=10 +LENGTH(3)=85 + +NAME(4)=CAMPO ALTERABILE +TYPE(4)=FISSO +POSITION(4)=95 +LENGTH(4)=1 +MESSAGE(4)=_FISSO,!3 + +NAME(5)=CAMPO ALTERABILE +TYPE(5)=FISSO +POSITION(5)=96 +LENGTH(5)=24 + +// ******************************************************* [RECORD EF] +[FOOTER EF] +NAME(0)=CAMPO BLANK +TYPE(0)=FISSO +POSITION(0)=0 +LENGTH(0)=1 + +NAME(1)=TIPO RECORD +POSITION(1)=1 +LENGTH(1)=2 +MESSAGE(1)=_FISSO,!EF + +NAME(2)=CODICE MITTENTE +POSITION(2)=3 +LENGTH(2)=5 +MESSAGE(2)=_CODSIA + +NAME(3)=CODICE DESTINATARIO +FIELD(3)=31->CODABIP +POSITION(3)=8 +LENGTH(3)=5 + +NAME(4)=DATA EMISSIONE +TYPE(4)=DATA +FIELD(4)=31->DATAEMISS +POSITION(4)=13 +LENGTH(4)=6 +MESSAGE(4)=_DATA + +NAME(5)=RAGIONE SOCIALE MITTENTE +TYPE(5)=STRINGA +POSITION(5)=19 +LENGTH(5)=26 +MESSAGE(5) = _DITTA,!RAGSOC,1 + +NAME(6)=NUMERO RICEVUTE NEL FLUSSO +TYPE(6)=NUMERO +POSITION(6)=45 +LENGTH(6)=7 +MESSAGE(6) = _NRIBA,!TOT + +NAME(7)= TOT IMPORTI NEGATIVI +TYPE(7)= NUMERO +POSITION(7)=52 +LENGTH(7)=15 +PICTURE(7)=@@@@@@@@@@@@@@@ + + +NAME(8)= TOTALE IMPORTI POSITIVI +TYPE(8)= NUMERO +POSITION(8)=67 +LENGTH(8)=15 +PICTURE(8)=@@@@@@@@@@@@@@@ +MESSAGE(8)=_IMPORTO,!TOT + +NAME(9)=NUMERO RECORD +TYPE(9)= NUMERO +POSITION(9)=82 +LENGTH(9)=7 +MESSAGE(9) = _NRIBA,!NREC + +NAME(10)=CAMPO ALTERABILE +TYPE(10)=FISSO +POSITION(10)=89 +LENGTH(10)=24 + +NAME(11)=CODICE MONETA +TYPE(11)=STRINGA +POSITION(11)=113 +LENGTH(11)=1 +MESSAGE(11) = _CODMON + +NAME(12)=FILLER +TYPE(12)=FISSO +POSITION(12)=114 +LENGTH(12)=6 diff --git a/ef/rf900000.ini b/ef/rf900000.ini index 93177ca0c..e551f28ed 100755 --- a/ef/rf900000.ini +++ b/ef/rf900000.ini @@ -93,7 +93,6 @@ POSITION(7)=113 LENGTH(7)=1 MESSAGE(7) = _CODMON - NAME(8)=FILLER TYPE(8)=FISSO POSITION(8)=114 @@ -207,7 +206,6 @@ NAME(18) = FILLER TYPE(18) = FISSO POSITION(18) = 113 LENGTH(18) = 6 -// MESSAGE(18) = _FISSO,!1 NAME(19) = CODICE MONETA TYPE(19) = STRINGA