Supporto per nuovi tracciati RID

git-svn-id: svn://10.65.10.50/branches/R_10_00@22988 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2014-09-22 13:47:21 +00:00
parent df974b41d8
commit 46582859fa
8 changed files with 1087 additions and 45 deletions

383
ef/dc800000.frm Normal file
View File

@ -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

View File

@ -251,6 +251,7 @@ TToken_string& TEffetto::altridati_fatt(long num, TToken_string& dati)
righe_eff.next();// passa alla riga successiva
}
return dati;
}

View File

@ -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

View File

@ -2,6 +2,7 @@
#include <filetext.h>
#include <form.h>
#include <mask.h>
#include <modaut.h>
#include <printer.h>
#include <progind.h>
@ -10,11 +11,12 @@
#include "ef0500.h"
#include "../ve/velib.h"
#include <anagr.h>
#include <clifo.h>
#include <comuni.h>
#include <cfven.h>
#include <indsp.h>
#include <modaut.h>
#include <nditte.h>
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;
}

View File

@ -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

View File

@ -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

579
ef/rc800000.ini Normal file
View File

@ -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

View File

@ -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