Patch level : 2.0 638
Files correlati : bastbnp.msk batbbnp.msk ef0.exe ef0100a.msk ef0500a.msk f31.dir f31.trr riba.ini Ricompilazione Demo : [ ] Commento : Prima implementazione della gestione del codice IBAN in generazione effetti git-svn-id: svn://10.65.10.50/trunk@11580 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
97d26f74be
commit
4aa6525ae2
@ -1,7 +1,7 @@
|
||||
//DEFINIZIONE MASCHERA PER STAMPA TABELLA BANCHE DI PRESENTAZIONE
|
||||
#include "bastbnp.h"
|
||||
|
||||
PAGE "Stampa Tabella Banche Presentazione" -1 -1 56 8
|
||||
PAGE "Banche di Presentazione" -1 -1 56 8
|
||||
|
||||
STRING F_INIZIO1 5
|
||||
BEGIN
|
||||
|
15
ef/batbbnp.h
15
ef/batbbnp.h
@ -26,7 +26,6 @@
|
||||
#define F_GRUPPO_SCN 122
|
||||
#define F_CONTO_SCN 123
|
||||
#define F_SOTTOC_SCN 124
|
||||
#define F_CBI 125
|
||||
#define F_DESCR_INC 126
|
||||
#define F_DESCR_SBF 127
|
||||
#define F_DESCR_SCN 128
|
||||
@ -35,4 +34,18 @@
|
||||
#define F_SOTTOC_INCP 131
|
||||
#define F_DESCR_INCP 132
|
||||
|
||||
#define F_IBAN 140
|
||||
#define F_IBAN_STATO 141
|
||||
#define F_IBAN_CHECK 142
|
||||
#define F_BBAN 143
|
||||
#define F_BBAN_CIN 144
|
||||
#define F_BBAN_ABI 145
|
||||
#define F_BBAN_CAB 146
|
||||
#define F_BBAN_CONTO 147
|
||||
|
||||
#define F_CBI 150
|
||||
#define F_IBAN_PAG 151
|
||||
#define F_IBAN_INC 152
|
||||
|
||||
|
||||
#endif//__BATBBNP_H
|
||||
|
154
ef/batbbnp.uml
154
ef/batbbnp.uml
@ -1,7 +1,6 @@
|
||||
//DEFINIZIONE MASCHERA GESTIONE TABELLA BANCHE DI PRESENTAZIONE
|
||||
#include "batbbnp.h"
|
||||
|
||||
TOOLBAR "" 0 20 0 2
|
||||
TOOLBAR "" 0 -2 0 2
|
||||
#include <toolbar.h>
|
||||
ENDPAGE
|
||||
|
||||
@ -9,7 +8,7 @@ PAGE "Banche di Presentazione" 0 -1 77 20
|
||||
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
BEGIN
|
||||
PROMPT 1 0 " "
|
||||
PROMPT 1 0 ""
|
||||
END
|
||||
|
||||
NUMBER F_CODICEABI 5
|
||||
@ -60,6 +59,7 @@ BEGIN
|
||||
OUTPUT F_ABI CODTAB[1,5]
|
||||
MESSAGE COPY,F_CODICEABI
|
||||
MESSAGE CHECK,F_CODICEABI
|
||||
MESSAGE COPY,F_BBAN_ABI
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
@ -81,6 +81,7 @@ BEGIN
|
||||
OUTPUT F_DENOM 100@->S0
|
||||
MESSAGE COPY,F_CODICECAB
|
||||
MESSAGE CHECK,F_CODICEABI
|
||||
MESSAGE COPY,F_BBAN_CAB
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
@ -96,40 +97,92 @@ BEGIN
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 6
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 1 4 "@bPortafoglio Effetti all'incasso"
|
||||
PROMPT 1 4 "@bConto Corrente"
|
||||
END
|
||||
|
||||
STRING F_IBAN 34
|
||||
BEGIN
|
||||
PROMPT 2 5 ""
|
||||
FLAGS "H"
|
||||
FIELD S3
|
||||
END
|
||||
|
||||
STRING F_IBAN_STATO 2
|
||||
BEGIN
|
||||
PROMPT 2 5 "Codice IBAN "
|
||||
FLAGS "U"
|
||||
VALIDATE CHECK_IBAN_FUNC F_IBAN F_IBAN_STATO F_IBAN_CHECK F_BBAN F_BBAN_CIN F_BBAN_ABI F_BBAN_CAB F_BBAN_CONTO
|
||||
END
|
||||
|
||||
NUMBER F_IBAN_CHECK 2
|
||||
BEGIN
|
||||
PROMPT 19 5 ""
|
||||
FLAGS "UZ"
|
||||
VALIDATE CHECK_IBAN_FUNC F_IBAN F_IBAN_STATO F_IBAN_CHECK F_BBAN F_BBAN_CIN F_BBAN_ABI F_BBAN_CAB F_BBAN_CONTO
|
||||
END
|
||||
|
||||
STRINGA F_BBAN 30
|
||||
BEGIN
|
||||
PROMPT 30 5 "BBAN "
|
||||
FLAGS "UH"
|
||||
END
|
||||
|
||||
STRINGA F_BBAN_CIN 1
|
||||
BEGIN
|
||||
PROMPT 30 5 "BBAN "
|
||||
FLAGS "U"
|
||||
VALIDATE CHECK_BBAN_FUNC F_BBAN F_BBAN_CIN F_BBAN_ABI F_BBAN_CAB F_BBAN_CONTO
|
||||
END
|
||||
|
||||
NUMBER F_BBAN_ABI 5
|
||||
BEGIN
|
||||
PROMPT 38 5 ""
|
||||
FLAGS "DGZ"
|
||||
END
|
||||
|
||||
NUMBER F_BBAN_CAB 5
|
||||
BEGIN
|
||||
PROMPT 45 5 ""
|
||||
FLAGS "DGZ"
|
||||
END
|
||||
|
||||
STRING F_BBAN_CONTO 12
|
||||
BEGIN
|
||||
PROMPT 52 5 ""
|
||||
FLAGS "UZ"
|
||||
VALIDATE CHECK_BBAN_FUNC F_BBAN F_BBAN_CIN F_BBAN_ABI F_BBAN_CAB F_BBAN_CONTO
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
BEGIN
|
||||
PROMPT 1 7 "@bPortafoglio Effetti all'incasso"
|
||||
END
|
||||
|
||||
STRING F_CC_INC 20
|
||||
BEGIN
|
||||
PROMPT 2 5 "C/C "
|
||||
PROMPT 2 8 "C/C "
|
||||
FIELD S0
|
||||
END
|
||||
|
||||
STRING F_CC_CONT_INC 20
|
||||
BEGIN
|
||||
PROMPT 2 6 "C/Contabile "
|
||||
FIELD S3
|
||||
END
|
||||
|
||||
NUMBER F_GRUPPO_INC 3
|
||||
BEGIN
|
||||
PROMPT 2 7 "Cont. attivi "
|
||||
PROMPT 2 9 "Cont. attivi "
|
||||
FIELD I0
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
NUMBER F_CONTO_INC 3
|
||||
BEGIN
|
||||
PROMPT 21 7 ""
|
||||
PROMPT 21 9 ""
|
||||
FIELD I1
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
NUMBER F_SOTTOC_INC 6
|
||||
BEGIN
|
||||
PROMPT 28 7 ""
|
||||
PROMPT 28 9 ""
|
||||
FIELD I2
|
||||
USE LF_PCON KEY 1 SELECT SOTTOCONTO!=""
|
||||
INPUT GRUPPO F_GRUPPO_INC
|
||||
@ -148,7 +201,7 @@ END
|
||||
|
||||
STRING F_DESCR_INC 50 38
|
||||
BEGIN
|
||||
PROMPT 38 7 ""
|
||||
PROMPT 38 9 ""
|
||||
USE LF_PCON KEY 2
|
||||
INPUT DESCR F_DESCR_INC
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
@ -161,21 +214,21 @@ END
|
||||
|
||||
NUMBER F_GRUPPO_INCP 3
|
||||
BEGIN
|
||||
PROMPT 2 8 "Cont. passivi "
|
||||
PROMPT 2 10 "Cont. passivi "
|
||||
FIELD I9
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
NUMBER F_CONTO_INCP 3
|
||||
BEGIN
|
||||
PROMPT 21 8 ""
|
||||
PROMPT 21 10 ""
|
||||
FIELD I10
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
NUMBER F_SOTTOC_INCP 6
|
||||
BEGIN
|
||||
PROMPT 28 8 ""
|
||||
PROMPT 28 10 ""
|
||||
FIELD I11
|
||||
USE LF_PCON KEY 1 SELECT SOTTOCONTO!=""
|
||||
INPUT GRUPPO F_GRUPPO_INCP
|
||||
@ -194,7 +247,7 @@ END
|
||||
|
||||
STRING F_DESCR_INCP 50 38
|
||||
BEGIN
|
||||
PROMPT 38 8 ""
|
||||
PROMPT 38 10 ""
|
||||
USE LF_PCON KEY 2
|
||||
INPUT DESCR F_DESCR_INCP
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
@ -205,47 +258,41 @@ BEGIN
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
BEGIN
|
||||
PROMPT 1 10 "@bPortafoglio Effetti salvo buon fine"
|
||||
PROMPT 1 12 "@bPortafoglio Effetti salvo buon fine"
|
||||
END
|
||||
|
||||
STRING F_CC_SBF 20
|
||||
BEGIN
|
||||
PROMPT 2 11 "C/C "
|
||||
PROMPT 2 13 "C/C "
|
||||
FIELD S1
|
||||
END
|
||||
|
||||
NUMBER F_FIDO_SBF 20 2
|
||||
BEGIN
|
||||
PROMPT 38 11 "Fido "
|
||||
PROMPT 38 13 "Fido "
|
||||
FIELD R1
|
||||
PICTURE "###.###.###.###,@@"
|
||||
END
|
||||
|
||||
STRING F_CC_CONT_SBF 20
|
||||
BEGIN
|
||||
PROMPT 2 12 "C/Contabile "
|
||||
FIELD S4
|
||||
END
|
||||
|
||||
NUMBER F_GRUPPO_SBF 3
|
||||
BEGIN
|
||||
PROMPT 2 13 "Contropartita "
|
||||
PROMPT 2 14 "Contropartita "
|
||||
FIELD I3
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
NUMBER F_CONTO_SBF 3
|
||||
BEGIN
|
||||
PROMPT 21 13 ""
|
||||
PROMPT 21 14 ""
|
||||
FIELD I4
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
NUMBER F_SOTTOC_SBF 6
|
||||
BEGIN
|
||||
PROMPT 28 13 ""
|
||||
PROMPT 28 14 ""
|
||||
FIELD I5
|
||||
USE LF_PCON KEY 1 SELECT SOTTOCONTO!=""
|
||||
INPUT GRUPPO F_GRUPPO_SBF
|
||||
@ -264,7 +311,7 @@ END
|
||||
|
||||
STRING F_DESCR_SBF 50 38
|
||||
BEGIN
|
||||
PROMPT 38 13 ""
|
||||
PROMPT 38 14 ""
|
||||
USE LF_PCON KEY 2
|
||||
INPUT DESCR F_DESCR_SBF
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
@ -275,30 +322,24 @@ BEGIN
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
BEGIN
|
||||
PROMPT 1 15 "@bPortafoglio Effetti allo sconto"
|
||||
PROMPT 1 16 "@bPortafoglio Effetti allo sconto"
|
||||
END
|
||||
|
||||
STRING F_CC_SCN 20
|
||||
BEGIN
|
||||
PROMPT 2 16 "C/C "
|
||||
PROMPT 2 17 "C/C "
|
||||
FIELD S2
|
||||
END
|
||||
|
||||
NUMBER F_FIDO_SCN 20 2
|
||||
BEGIN
|
||||
PROMPT 38 16 "Fido "
|
||||
PROMPT 38 17 "Fido "
|
||||
FIELD R2
|
||||
PICTURE "###.###.###.###,@@"
|
||||
END
|
||||
|
||||
STRING F_CC_CONT_SCN 20
|
||||
BEGIN
|
||||
PROMPT 2 17 "C/Contabile "
|
||||
FIELD S5
|
||||
END
|
||||
|
||||
NUMBER F_GRUPPO_SCN 3
|
||||
BEGIN
|
||||
PROMPT 2 18 "Contropartita "
|
||||
@ -308,7 +349,7 @@ END
|
||||
|
||||
NUMBER F_CONTO_SCN 3
|
||||
BEGIN
|
||||
PROMPT 21 18 ""
|
||||
PROMPT 20 18 ""
|
||||
FIELD I7
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
@ -345,12 +386,33 @@ BEGIN
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Paramteri Distinte" 0 -1 77 20
|
||||
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
BEGIN
|
||||
PROMPT 1 1 "@bParametri emissione distinte su file"
|
||||
END
|
||||
|
||||
BOOLEAN F_CBI
|
||||
BEGIN
|
||||
PROMPT 2 20 "Tracciato SETIF"
|
||||
PROMPT 2 2 "Utilizza tracciato SETIF"
|
||||
FIELD B0
|
||||
END
|
||||
|
||||
BOOLEAN F_IBAN_PAG
|
||||
BEGIN
|
||||
PROMPT 2 3 "Genera IBAN su distinte di pagamento"
|
||||
FIELD B1
|
||||
END
|
||||
|
||||
BOOLEAN F_IBAN_INC
|
||||
BEGIN
|
||||
PROMPT 2 4 "Genera IBAN su distinte di incasso"
|
||||
FIELD B2
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
@ -30,6 +30,7 @@ protected:
|
||||
virtual void init_insert_mode(TMask&);
|
||||
virtual bool get_next_key(TToken_string& key);
|
||||
virtual void init_modify_mode(TMask&);
|
||||
static bool clifo_handler(TMask_field& f, KEY k);
|
||||
static bool datascad_handler(TMask_field& f, KEY k);
|
||||
static bool handle_sheet(TMask_field& f, KEY);
|
||||
static bool cambio_handler(TMask_field& f, KEY k);
|
||||
@ -95,10 +96,11 @@ void TVariazione_effetti::init_insert_mode(TMask&)
|
||||
enable_controeuro();
|
||||
}
|
||||
|
||||
void TVariazione_effetti::init_modify_mode(TMask&)
|
||||
void TVariazione_effetti::init_modify_mode(TMask& m)
|
||||
{
|
||||
_msk->disable(F_TIPOCF);
|
||||
m.disable(F_TIPOCF);
|
||||
enable_controeuro();
|
||||
m.efield(F_IBAN_STATO).validate(K_TAB);
|
||||
}
|
||||
|
||||
// ritorna il prossimo numero valido di chiave
|
||||
@ -292,9 +294,10 @@ bool TVariazione_effetti::user_create()
|
||||
open_files(LF_TAB, LF_TABCOM, LF_EFFETTI, LF_REFFETTI, LF_CESS,
|
||||
LF_COMUNI, LF_DOC, LF_RIGHEDOC,
|
||||
LF_CLIFO, LF_CFVEN, LF_OCCAS, 0);
|
||||
_msk = new TMask("ef0100a") ;
|
||||
_rel = new TRelation(LF_EFFETTI);
|
||||
_effetto = new TEffetto;
|
||||
_msk = new TMask("ef0100a") ;
|
||||
_msk->set_handler(F_CODCF, clifo_handler);
|
||||
_msk->set_handler(F_DATASCAD, datascad_handler);
|
||||
_msk->set_handler(F_CODVAL, codval_handler);
|
||||
_msk->set_handler(F_CAMBIO, cambio_handler);
|
||||
@ -310,8 +313,8 @@ bool TVariazione_effetti::user_create()
|
||||
bool TVariazione_effetti::user_destroy()
|
||||
{
|
||||
delete _msk;
|
||||
delete _rel;
|
||||
delete _effetto;
|
||||
delete _rel;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -319,8 +322,8 @@ bool TVariazione_effetti::user_destroy()
|
||||
// che venga inserita almeno una riga per un effetto
|
||||
bool TVariazione_effetti::handle_sheet(TMask_field &f, KEY k)
|
||||
{
|
||||
TMask& m = f.mask();
|
||||
const int mode = m.mode();
|
||||
TMask& m = f.mask();
|
||||
const int mode = m.mode();
|
||||
// se si vuole salvare e si è in uno dei due modi di funzionamento
|
||||
if ( k == K_ENTER && (mode == MODE_INS || mode == MODE_MOD) )
|
||||
{ // si controllano le righe del effetto nello sheet
|
||||
@ -345,6 +348,30 @@ bool TVariazione_effetti::handle_sheet(TMask_field &f, KEY k)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TVariazione_effetti::clifo_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_TAB && f.to_check(k))
|
||||
{
|
||||
TMask& m = f.mask();
|
||||
TString8 str;
|
||||
str << m.get(F_TIPOCF) << '|' << m.get(F_CODCF);
|
||||
const TString& iban = cache().get(LF_CFVEN, str, "IBAN");
|
||||
if (iban.not_empty())
|
||||
{
|
||||
m.set(F_IBAN, iban);
|
||||
m.set(F_IBAN_STATO, iban.left(2));
|
||||
m.set(F_IBAN_CHECK, iban.mid(2,2));
|
||||
m.set(F_BBAN, iban.mid(4));
|
||||
m.set(F_BBAN_CIN, iban.mid(4,1));
|
||||
m.set(F_BBAN_ABI, iban.mid(5,5));
|
||||
m.set(F_BBAN_CAB, iban.mid(10,5));
|
||||
m.set(F_BBAN_CONTO, iban.mid(15));
|
||||
m.efield(F_IBAN_STATO).validate(K_TAB);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TVariazione_effetti::datascad_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_ENTER)
|
||||
|
10
ef/ef0100.h
10
ef/ef0100.h
@ -37,6 +37,16 @@
|
||||
#define F_TIPOCF 231
|
||||
#define F_CONTROEURO 232
|
||||
|
||||
#define F_IBAN 250
|
||||
#define F_IBAN_STATO 251
|
||||
#define F_IBAN_CHECK 252
|
||||
#define F_BBAN 253
|
||||
#define F_BBAN_CIN 254
|
||||
#define F_BBAN_ABI 255
|
||||
#define F_BBAN_CAB 256
|
||||
#define F_BBAN_CONTO 257
|
||||
|
||||
|
||||
// Identificatori campi per lo spreadsheet dei Cessionari
|
||||
#define F_RAGSOC 101
|
||||
#define F_LOCALITA 102
|
||||
|
128
ef/ef0100a.uml
128
ef/ef0100a.uml
@ -56,7 +56,6 @@ BEGIN
|
||||
GROUP 9
|
||||
END
|
||||
|
||||
|
||||
NUMBER F_CODCF 6
|
||||
BEGIN
|
||||
PROMPT 15 3 ""
|
||||
@ -228,7 +227,7 @@ ENDPAGE
|
||||
|
||||
PAGE "Parametri" 0 -1 0 19
|
||||
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
BEGIN
|
||||
PROMPT 0 0 ""
|
||||
END
|
||||
@ -261,26 +260,26 @@ END
|
||||
|
||||
STRING DLG_NULL 50
|
||||
BEGIN
|
||||
PROMPT 27 2 ""
|
||||
PROMPT 26 2 ""
|
||||
FLAGS "D"
|
||||
GROUP 12
|
||||
END
|
||||
|
||||
DATE DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 1 3 "Data scadenza "
|
||||
PROMPT 51 1 "Data scadenza "
|
||||
FLAGS "D"
|
||||
GROUP 13
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 38 4
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
BEGIN
|
||||
PROMPT 0 5 "Banca d'appoggio"
|
||||
PROMPT 0 4 "@bBanca d'appoggio"
|
||||
END
|
||||
|
||||
NUMBER F_CODABI 5
|
||||
BEGIN
|
||||
PROMPT 1 6 "Codice ABI "
|
||||
PROMPT 1 5 "Codice ABI "
|
||||
FIELD CODABI
|
||||
FLAGS "Z"
|
||||
USE %BAN SELECT CODTAB ?= "?????"
|
||||
@ -290,11 +289,12 @@ BEGIN
|
||||
OUTPUT F_CODABI CODTAB[1,5]
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "Codice ABI assente"
|
||||
MESSAGE COPY,F_BBAN_ABI
|
||||
END
|
||||
|
||||
NUMBER F_CODCAB 5
|
||||
BEGIN
|
||||
PROMPT 1 7 "Codice CAB "
|
||||
PROMPT 41 5 "Codice CAB "
|
||||
FIELD CODCAB
|
||||
FLAGS "Z"
|
||||
USE %BAN KEY 1 SELECT CODTAB ?= "??????????"
|
||||
@ -308,23 +308,78 @@ BEGIN
|
||||
CHECKTYPE REQUIRED
|
||||
VALIDATE REQIF_FUNC 1 F_CODCABP
|
||||
WARNING "Banca assente"
|
||||
MESSAGE COPY,F_BBAN_CAB
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 38 4
|
||||
STRING F_IBAN 34
|
||||
BEGIN
|
||||
PROMPT 41 5 "Banca di presentazione"
|
||||
PROMPT 2 6 ""
|
||||
FLAGS "H"
|
||||
FIELD IBAN
|
||||
END
|
||||
|
||||
STRING F_IBAN_STATO 2
|
||||
BEGIN
|
||||
PROMPT 1 6 "Codice IBAN "
|
||||
FLAGS "U"
|
||||
VALIDATE CHECK_IBAN_FUNC F_IBAN F_IBAN_STATO F_IBAN_CHECK F_BBAN F_BBAN_CIN F_BBAN_ABI F_BBAN_CAB F_BBAN_CONTO
|
||||
END
|
||||
|
||||
NUMBER F_IBAN_CHECK 2
|
||||
BEGIN
|
||||
PROMPT 19 6 ""
|
||||
FLAGS "UZ"
|
||||
VALIDATE CHECK_IBAN_FUNC F_IBAN F_IBAN_STATO F_IBAN_CHECK F_BBAN F_BBAN_CIN F_BBAN_ABI F_BBAN_CAB F_BBAN_CONTO
|
||||
END
|
||||
|
||||
STRINGA F_BBAN 30
|
||||
BEGIN
|
||||
PROMPT 30 6 "BBAN "
|
||||
FLAGS "UH"
|
||||
END
|
||||
|
||||
STRINGA F_BBAN_CIN 1
|
||||
BEGIN
|
||||
PROMPT 30 6 "BBAN "
|
||||
FLAGS "U"
|
||||
VALIDATE CHECK_BBAN_FUNC F_BBAN F_BBAN_CIN F_BBAN_ABI F_BBAN_CAB F_BBAN_CONTO
|
||||
END
|
||||
|
||||
NUMBER F_BBAN_ABI 5
|
||||
BEGIN
|
||||
PROMPT 38 6 ""
|
||||
FLAGS "DGZ"
|
||||
END
|
||||
|
||||
NUMBER F_BBAN_CAB 5
|
||||
BEGIN
|
||||
PROMPT 45 6 ""
|
||||
FLAGS "DGZ"
|
||||
END
|
||||
|
||||
STRING F_BBAN_CONTO 12
|
||||
BEGIN
|
||||
PROMPT 52 6 ""
|
||||
FLAGS "UZ"
|
||||
VALIDATE CHECK_BBAN_FUNC F_BBAN F_BBAN_CIN F_BBAN_ABI F_BBAN_CAB F_BBAN_CONTO
|
||||
END
|
||||
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 0 8 "@bBanca di presentazione"
|
||||
END
|
||||
|
||||
NUMBER F_CODABIP 5
|
||||
BEGIN
|
||||
PROMPT 42 6 "Codice ABI "
|
||||
PROMPT 1 9 "Codice ABI "
|
||||
FIELD CODABIP
|
||||
FLAGS "Z"
|
||||
END
|
||||
|
||||
NUMBER F_CODCABP 5
|
||||
BEGIN
|
||||
PROMPT 42 7 "Codice CAB "
|
||||
PROMPT 41 9 "Codice CAB "
|
||||
FIELD CODCABP
|
||||
FLAGS "Z"
|
||||
USE BNP
|
||||
@ -343,25 +398,30 @@ END
|
||||
|
||||
DATE F_DATAEMISS
|
||||
BEGIN
|
||||
PROMPT 1 10 "Data di emissione "
|
||||
PROMPT 1 11 "Data di emissione "
|
||||
FIELD DATAEMISS
|
||||
END
|
||||
|
||||
NUMBER F_NUMEMISS 8
|
||||
BEGIN
|
||||
PROMPT 42 10 "Nr. di emissione "
|
||||
PROMPT 42 11 "Nr. di emissione "
|
||||
FIELD NUMEMISS
|
||||
END
|
||||
|
||||
BOOLEAN F_EFFSTAMP
|
||||
BEGIN
|
||||
PROMPT 1 11 "Effetto stampato"
|
||||
PROMPT 1 12 "Effetto stampato"
|
||||
FIELD EFFSTAMP
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
BEGIN
|
||||
PROMPT 0 13 "@bDistinta"
|
||||
END
|
||||
|
||||
LIST F_TIPODIST 15
|
||||
BEGIN
|
||||
PROMPT 1 13 "Tipo distinta "
|
||||
PROMPT 1 14 "Tipo distinta "
|
||||
FIELD TIPODIST
|
||||
ITEM " | "
|
||||
ITEM "I|All'incasso"
|
||||
@ -372,7 +432,7 @@ END
|
||||
|
||||
NUMBER F_NDIST 5
|
||||
BEGIN
|
||||
PROMPT 42 13 "Nr. distinta "
|
||||
PROMPT 42 14 "Nr. distinta "
|
||||
FIELD NDIST
|
||||
FLAGS "D"
|
||||
VALIDATE NOT_EMPTY_FUNC
|
||||
@ -381,46 +441,46 @@ END
|
||||
|
||||
DATE F_DATADIST
|
||||
BEGIN
|
||||
PROMPT 1 14 "Data distinta "
|
||||
PROMPT 1 15 "Data distinta "
|
||||
FIELD DATADIST
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_NRIGADIST 4
|
||||
BEGIN
|
||||
PROMPT 42 14 "Nr. di riga "
|
||||
PROMPT 42 15 "Nr. di riga "
|
||||
FIELD NRIGADIST
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BOOLEAN F_DISTSTAM
|
||||
BEGIN
|
||||
PROMPT 1 15 "Distinta stampata"
|
||||
PROMPT 1 16 "Distinta stampata"
|
||||
FIELD DISTSTAM
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
DATE F_DATARIBA
|
||||
BEGIN
|
||||
PROMPT 1 17 "Data Ri.Ba. "
|
||||
PROMPT 1 18 "Data Ri.Ba. "
|
||||
FIELD DATARIBA
|
||||
END
|
||||
|
||||
BOOLEAN F_DISRIBAEST
|
||||
BEGIN
|
||||
PROMPT 42 17 "Distinta Ri.Ba. estratta"
|
||||
PROMPT 42 18 "Distinta Ri.Ba. estratta"
|
||||
FIELD DISRIBAEST
|
||||
END
|
||||
|
||||
BOOLEAN F_EFFCONT
|
||||
BEGIN
|
||||
PROMPT 1 18 "Effetto contabilizzato"
|
||||
PROMPT 1 19 "Effetto contabilizzato"
|
||||
FIELD EFFCONT
|
||||
END
|
||||
|
||||
BOOLEAN F_EFFCOMP
|
||||
BEGIN
|
||||
PROMPT 42 18 "Effetto completato"
|
||||
PROMPT 42 19 "Effetto completato"
|
||||
FIELD EFFCOMP
|
||||
END
|
||||
|
||||
@ -428,7 +488,7 @@ ENDPAGE
|
||||
|
||||
PAGE "Cessionari" 0 -1 0 19
|
||||
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
BEGIN
|
||||
PROMPT 0 0 ""
|
||||
END
|
||||
@ -440,6 +500,13 @@ BEGIN
|
||||
GROUP 10
|
||||
END
|
||||
|
||||
DATE DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 51 1 "Data scadenza "
|
||||
FLAGS "D"
|
||||
GROUP 13
|
||||
END
|
||||
|
||||
TEXT DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 1 2 "Cliente"
|
||||
@ -461,21 +528,14 @@ END
|
||||
|
||||
STRING DLG_NULL 50
|
||||
BEGIN
|
||||
PROMPT 27 2 ""
|
||||
PROMPT 26 2 ""
|
||||
FLAGS "D"
|
||||
GROUP 12
|
||||
END
|
||||
|
||||
DATE DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 1 3 "Data scadenza "
|
||||
FLAGS "D"
|
||||
GROUP 13
|
||||
END
|
||||
|
||||
SPREADSHEET F_SHEET_EFF
|
||||
BEGIN
|
||||
PROMPT 1 6 "Obbligati principali"
|
||||
PROMPT 1 4 "Obbligati principali"
|
||||
ITEM "Ragione Sociale@50"
|
||||
ITEM "Localita'@35"
|
||||
ITEM "Stato"
|
||||
|
@ -13,7 +13,7 @@ TEffetto::TEffetto()
|
||||
}
|
||||
|
||||
// costuisce l'effetto con il record passato
|
||||
TEffetto::TEffetto(TRectype& rec)
|
||||
TEffetto::TEffetto(const TRectype& rec)
|
||||
: TRectype(LF_EFFETTI), _righe(LF_REFFETTI, REFF_NRIGATR), _cess(LF_CESS, CES_NRIGA)
|
||||
{
|
||||
TLocalisamfile f(LF_EFFETTI);
|
||||
|
@ -94,7 +94,7 @@ public:
|
||||
// costruttore di default
|
||||
TEffetto();
|
||||
// costuisce l'effetto con il record passato
|
||||
TEffetto(TRectype& rec);
|
||||
TEffetto(const TRectype& rec);
|
||||
// costuttore di copia
|
||||
TEffetto(const TEffetto& eff);
|
||||
// distruttore di default
|
||||
|
251
ef/ef0500.cpp
251
ef/ef0500.cpp
@ -19,7 +19,6 @@
|
||||
class TRiba_form;
|
||||
class TDistinta_form;
|
||||
class TRiba_file;
|
||||
enum fo { kb360 = 1, kb720 = 2, kb1200 = 3, kb1440 = 4 };
|
||||
|
||||
#define RIBAFILENAME "ribael.dat"
|
||||
|
||||
@ -29,7 +28,6 @@ enum fo { kb360 = 1, kb720 = 2, kb1200 = 3, kb1440 = 4 };
|
||||
|
||||
class TEmissione: public TSkeleton_application
|
||||
{
|
||||
fo _foutput;
|
||||
TMask* _msk;
|
||||
TRelation* _firmrel;
|
||||
TRelation* _rel;
|
||||
@ -46,8 +44,8 @@ protected:
|
||||
virtual void on_firm_change(void);
|
||||
void conferma(void);
|
||||
void enable_dettaglio(TForm& form) const;
|
||||
virtual void print_rb(char tipost, int ndist, char tipodist, int ncopie, const bool is_vis);
|
||||
virtual void print_dse(char tipost, int ndist, char tipodist, int ncopie, const bool is_vis);
|
||||
virtual void print_rb(char tipost, int ndist, char tipodist, const bool is_vis);
|
||||
virtual void print_dse(char tipost, int ndist, char tipodist, const bool is_vis);
|
||||
virtual void print(void);
|
||||
void floppy(void);
|
||||
void save_data_emis(void);
|
||||
@ -59,7 +57,8 @@ protected:
|
||||
bool ok_write(void);
|
||||
void aggiorna_rb(TCursor*);
|
||||
void aggiorna_dist(TCursor*);
|
||||
static bool annulla_handler(TMask_field& f, KEY k);
|
||||
|
||||
bool test_record_type(const TString& key) const;
|
||||
public:
|
||||
|
||||
int base_no() const { return _base_page_no; }
|
||||
@ -112,7 +111,8 @@ class TRiba_file: public TFile_text
|
||||
{
|
||||
real _tot_importi;
|
||||
char _codice_moneta;
|
||||
bool _tracciato_setif;
|
||||
bool _tracciato_setif, _iban_pag, _iban_inc;
|
||||
TString _my_iban; // IBAN del mio conto corrente (ordinante)
|
||||
|
||||
protected:
|
||||
virtual void validate(TCursor& cur,TRecord_text &rec, TToken_string &val, TString& str);
|
||||
@ -121,8 +121,16 @@ public:
|
||||
void set_tot_importi(const real& importo) { _tot_importi = importo; }
|
||||
void add_tot_importi(const real& importo) { _tot_importi += importo; }
|
||||
const real tot_importi() const { return _tot_importi; }
|
||||
bool tracciato_setif() {return _tracciato_setif;}
|
||||
void set_tracciato_setif(const bool tracciato_setif=TRUE) {_tracciato_setif = tracciato_setif;}
|
||||
|
||||
bool tracciato_setif() const { return _tracciato_setif; }
|
||||
void set_tracciato_setif(bool tracciato_setif=TRUE) { _tracciato_setif = tracciato_setif; }
|
||||
|
||||
const TString& my_iban() const { return _my_iban; }
|
||||
void set_my_iban(const char* ib) { _my_iban = ib; }
|
||||
bool iban_pag() const { return _iban_pag; }
|
||||
bool iban_inc() const { return _iban_inc; }
|
||||
void set_iban_pag(bool ib) { _iban_pag = ib; }
|
||||
void set_iban_inc(bool ib) { _iban_inc = ib; }
|
||||
|
||||
TRiba_file(const TString& file_name, const TString& config_name);
|
||||
virtual ~TRiba_file() { }
|
||||
@ -140,6 +148,9 @@ bool TEmissione::create()
|
||||
_formrb = NULL;
|
||||
_formdse = NULL;
|
||||
_msk = new TMask("ef0500a");
|
||||
_msk->set(F_NOMEFILE,RIBAFILENAME);
|
||||
_msk->set(F_PATH, "A:\\");
|
||||
|
||||
_firmrel= new TRelation(LF_NDITTE);
|
||||
_firmrel->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR");
|
||||
_firmrel->add(LF_UNLOC,"CODDITTA=CODDITTA");
|
||||
@ -155,10 +166,6 @@ bool TEmissione::create()
|
||||
_rel->add(LF_COMUNI, "STATO==STATO|COM==COM", 1, LF_INDSP, 213);
|
||||
_rel->add("BNP", "CODTAB=CODABIP+CODCABP", 1, 0, 403);
|
||||
_cur = NULL;
|
||||
_msk->set(F_NOMEFILE,RIBAFILENAME);
|
||||
// _trasfile = new TRiba_file(RIBAFILENAME, "riba.ini");
|
||||
// _trasfile->set_ditta(get_firm());
|
||||
_msk->set_handler(DLG_CANCEL, annulla_handler);
|
||||
_trasfile = NULL;
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
@ -258,31 +265,35 @@ void TEmissione::floppy()
|
||||
}
|
||||
inizializza_file();
|
||||
|
||||
long n_eff = _cur->items();
|
||||
bool condition = ok_write();
|
||||
const bool condition = ok_write();
|
||||
|
||||
if (!condition)
|
||||
error_box(TR("Impossibile continuare dischetto pieno"));
|
||||
error_box(TR("Impossibile scrivere sull'unita' di destinazione"));
|
||||
else
|
||||
{
|
||||
TProgind pi(n_eff,TR("Emissione Ri.Ba. su floppy..."),FALSE,TRUE);
|
||||
|
||||
TAssoc_array& tracciati = _trasfile->tracciati();
|
||||
header_rb();//intestazione flusso effetti
|
||||
//scandisco tutti gli effetti della distinta selezionata
|
||||
for (*_cur = 0; _cur->pos() < n_eff; ++(*_cur))
|
||||
const TRecnotype n_eff = _cur->items();
|
||||
if (n_eff > 0)
|
||||
{
|
||||
pi.addstatus(1L);
|
||||
save_data_emis();
|
||||
THash_object* lavoro = tracciati.get_hashobj();
|
||||
//scandisco tutti i record di un effetto
|
||||
for (int i = 0; lavoro != NULL; i++)
|
||||
TProgind pi(n_eff,TR("Emissione Ri.Ba. su file..."),FALSE,TRUE);
|
||||
|
||||
TAssoc_array& tracciati = _trasfile->tracciati();
|
||||
header_rb();//intestazione flusso effetti
|
||||
//scandisco tutti gli effetti della distinta selezionata
|
||||
for (*_cur = 0; _cur->pos() < n_eff; ++(*_cur))
|
||||
{
|
||||
record(*lavoro);//emetto il record
|
||||
lavoro = tracciati.get_hashobj();
|
||||
pi.addstatus(1L);
|
||||
save_data_emis();
|
||||
THash_object* lavoro = tracciati.get_hashobj();
|
||||
//scandisco tutti i record di un effetto
|
||||
for (int i = 0; lavoro != NULL; i++)
|
||||
{
|
||||
record(*lavoro);//emetto il record
|
||||
lavoro = tracciati.get_hashobj();
|
||||
}
|
||||
}
|
||||
footer_ef(); //chiusura flusso effetti
|
||||
}
|
||||
footer_ef(); //chiusura flusso effetti
|
||||
message_box("Effetti emessi: %d", n_eff);
|
||||
}
|
||||
_trasfile->close();
|
||||
delete _trasfile;
|
||||
@ -310,45 +321,39 @@ void TEmissione::save_data_emis()
|
||||
//emetto il record d'intestazione del flusso di effetti
|
||||
void TEmissione::header_rb()
|
||||
{
|
||||
TRecord_text rec;
|
||||
|
||||
*_cur = 0;
|
||||
const TRectype& eff = _rel->curr();
|
||||
|
||||
TString16 codtab = eff.get(EFF_CODABIP);
|
||||
codtab << eff.get(EFF_CODCABP);
|
||||
|
||||
const TRectype& bnp = cache().get("BNP", codtab);
|
||||
if (bnp.get_bool("B0"))
|
||||
{
|
||||
rec.set_type("RB");
|
||||
_trasfile->set_tracciato_setif(TRUE);
|
||||
}
|
||||
else
|
||||
{
|
||||
rec.set_type("IB");
|
||||
_trasfile->set_tracciato_setif(FALSE);
|
||||
}
|
||||
const bool setif = bnp.get_bool("B0");
|
||||
_trasfile->set_tracciato_setif(setif);
|
||||
|
||||
_trasfile->set_my_iban(bnp.get("S3"));
|
||||
_trasfile->set_iban_pag(bnp.get_bool("B1"));
|
||||
_trasfile->set_iban_inc(bnp.get_bool("B2"));
|
||||
|
||||
TRecord_text rec(setif ? "RB" : "IB");
|
||||
_trasfile->autoload(rec, *_cur);
|
||||
_trasfile->write(rec);
|
||||
|
||||
}
|
||||
|
||||
//emetto il record di chiusura del flusso di effetti
|
||||
void TEmissione::footer_ef()
|
||||
{
|
||||
TRecord_text rec;
|
||||
*_cur = 0;
|
||||
rec.set_type("EF");
|
||||
|
||||
if (!_trasfile->tracciato_setif())
|
||||
{
|
||||
TTracciato_record * trec = _trasfile->t_rec("EF");
|
||||
TTracciato_record* trec = _trasfile->t_rec("EF");
|
||||
const int p1 = trec->get(7).position();
|
||||
const int p2 = trec->get(8).position();
|
||||
|
||||
trec->get(7).set_position(p2);
|
||||
trec->get(8).set_position(p1);
|
||||
}
|
||||
TRecord_text rec("EF");
|
||||
_trasfile->autoload(rec, *_cur);
|
||||
_trasfile->write(rec);
|
||||
_trasfile->write_file()->seekp(0, ios::end);
|
||||
@ -372,12 +377,35 @@ void TEmissione::inizializza_cur()
|
||||
//inizializza il file di testo su cui emettere gli effetti
|
||||
void TEmissione::inizializza_file()
|
||||
{
|
||||
TFilename fileriba = _msk->get(F_UNITA);
|
||||
fileriba << ":\\" << _msk->get(F_NOMEFILE);
|
||||
TFilename fileriba = _msk->get(F_PATH);
|
||||
fileriba.add(_msk->get(F_NOMEFILE));
|
||||
_trasfile->open(fileriba,'w');
|
||||
_trasfile->set_tot_importi(ZERO);
|
||||
_trasfile->force_record_separator(_msk->get_bool(F_FORCESEP));
|
||||
_foutput = (fo)_msk->get_int(F_FOR_OUT);
|
||||
}
|
||||
|
||||
bool TEmissione::test_record_type(const TString& key) const
|
||||
{
|
||||
bool ok = true;
|
||||
if (key == "16" || key == "17")
|
||||
{
|
||||
const TRectype& eff = _cur->curr();
|
||||
|
||||
if (key == "16")
|
||||
ok = _trasfile->my_iban().not_empty();
|
||||
else
|
||||
ok = eff.get(EFF_IBAN).not_empty();
|
||||
|
||||
if (ok)
|
||||
{
|
||||
const char tipocf = eff.get_char(EFF_TIPOCF);
|
||||
if (tipocf == 'C')
|
||||
ok = _trasfile->iban_inc();
|
||||
else
|
||||
ok = _trasfile->iban_pag();
|
||||
}
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
//emetto un record del flusso di effetti
|
||||
@ -386,12 +414,15 @@ void TEmissione::record(THash_object& lavoro)
|
||||
const TString& chiave = lavoro.key();
|
||||
if (chiave !="EF" && chiave !="RB" && chiave != "IB")
|
||||
{
|
||||
TTracciato_record& oggetto = (TTracciato_record&)lavoro.obj();
|
||||
const TTracciato_record& oggetto = (TTracciato_record&)lavoro.obj();
|
||||
const TString& tipo = oggetto.type();
|
||||
TRecord_text rec(tipo);
|
||||
//carico il record da emettere
|
||||
_trasfile->autoload(rec, *_cur, &tipo);
|
||||
_trasfile->write(rec);//emetto i dati su file
|
||||
if (test_record_type(tipo))
|
||||
{
|
||||
TRecord_text rec(tipo);
|
||||
//carico il record da emettere
|
||||
_trasfile->autoload(rec, *_cur, &tipo);
|
||||
_trasfile->write(rec);//emetto i dati su file
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -403,7 +434,7 @@ bool TEmissione::ok_write()
|
||||
int dim = _trasfile->recordsize();
|
||||
unsigned long nbyte = (elem*7+2)*dim;
|
||||
|
||||
TString16 unita; unita << _msk->get(F_UNITA)[0] << ":/";
|
||||
const TString& unita = _msk->get(F_PATH);
|
||||
return xvt_fsys_test_disk_free_space(unita, nbyte) != 0;
|
||||
}
|
||||
|
||||
@ -440,7 +471,7 @@ void TEmissione::aggiorna_dist(TCursor* cur)
|
||||
}
|
||||
|
||||
// gestione emissione su moduli cartacei delle riba
|
||||
void TEmissione::print_rb(char tipost, int ndist, char tipodist, int ncopie, const bool is_vis)
|
||||
void TEmissione::print_rb(char tipost, int ndist, char tipodist, const bool is_vis)
|
||||
{
|
||||
TCursor* fcur = _formrb->cursor();
|
||||
TLocalisamfile &eff = fcur->file(LF_EFFETTI);
|
||||
@ -466,30 +497,15 @@ void TEmissione::print_rb(char tipost, int ndist, char tipodist, int ncopie, con
|
||||
}
|
||||
fcur->setfilter(filter,TRUE);
|
||||
|
||||
long n = fcur->items();
|
||||
fcur->freeze();
|
||||
// se la stampa non si fa a video istanzia puntatore per la gestione
|
||||
// della barra di attesa
|
||||
TProgind* pi = is_vis ? NULL : new TProgind(ncopie,TR("Stampa Effetti..."),FALSE,TRUE);
|
||||
for (int j=0; j < ncopie; j++)
|
||||
{
|
||||
if (pi) pi->addstatus(1L); // aggiorna la barra d'attesa
|
||||
// ciclo sugli elementi del cursore di stampa
|
||||
//for (*fcur = 0; fcur->pos() < n; ++(*fcur))
|
||||
{
|
||||
_formrb->print(); // stampa il form
|
||||
}
|
||||
}
|
||||
_formrb->print(); // stampa il form
|
||||
if (tipost == 'D') // se emetto riba in definitiva devo aggiornare
|
||||
aggiorna_rb(fcur);// data, numero emissione e flag di stampa effetto
|
||||
if (pi) delete pi;
|
||||
}
|
||||
|
||||
// gestione emissione su moduli cartacei delle distinte
|
||||
void TEmissione::print_dse(char tipost, int ndist, char tipodist, int ncopie, const bool is_vis)
|
||||
void TEmissione::print_dse(char tipost, int ndist, char tipodist, const bool is_vis)
|
||||
{
|
||||
TCursor* fcur = _formdse->cursor();
|
||||
TLocalisamfile &eff = fcur->file(LF_EFFETTI);
|
||||
// setta la chiave 4 per il cursore per poter leggere tutti gli effetti
|
||||
// della distinta
|
||||
TString16 filter;
|
||||
@ -497,36 +513,29 @@ void TEmissione::print_dse(char tipost, int ndist, char tipodist, int ncopie, co
|
||||
filter = "DISTSTAM=\" \"";// setta il filtro del cursore per ...
|
||||
fcur->setfilter(filter,TRUE);
|
||||
fcur->setkey(4);
|
||||
TRectype darec(eff.curr()); // fissa i dati per la scelta degli ...
|
||||
darec.zero(); // ... effetti nel primo e nell'ultimo record del cursore
|
||||
TRectype darec(LF_EFFETTI); // fissa i dati per la scelta degli ...
|
||||
// ... effetti nel primo e nell'ultimo record del cursore
|
||||
if (ndist > 0)
|
||||
{
|
||||
darec.put(EFF_NDIST, ndist);
|
||||
darec.put(EFF_TIPODIST, tipodist);
|
||||
TRectype arec(darec);
|
||||
fcur->setregion(darec, arec);
|
||||
fcur->setregion(darec, darec);
|
||||
fcur->setfilter("");
|
||||
}
|
||||
else
|
||||
fcur->setfilter("(TIPODIST==\"\")&&(NDIST==\"\")");
|
||||
long n = fcur->items();
|
||||
const TRecnotype n = fcur->items();
|
||||
fcur->freeze();
|
||||
// se la stampa non si fa a video istanzia puntatore per la gestione
|
||||
// della barra di attesa
|
||||
TProgind* pi = is_vis ? NULL : new TProgind(ncopie,TR("Stampa Distinta..."),FALSE,TRUE);
|
||||
for (int j=0; j < ncopie; j++)
|
||||
{
|
||||
_base_page_no = 0;
|
||||
if (pi) pi->addstatus(1L); // aggiorna la barra d'attesa
|
||||
_formdse->find_field('F',last_page,2).set(""); // Azzera nr documenti
|
||||
_formdse->find_field('F',last_page,3).set(""); // Azzera tot documenti
|
||||
_formdse->print(); // stampa il form
|
||||
// stampa numero di pagina (solo nella distinta)
|
||||
_base_page_no = printer().getcurrentpage() -1;
|
||||
}
|
||||
|
||||
_base_page_no = 0;
|
||||
_formdse->find_field('F',last_page,2).set(""); // Azzera nr documenti
|
||||
_formdse->find_field('F',last_page,3).set(""); // Azzera tot documenti
|
||||
_formdse->print(); // stampa il form
|
||||
// stampa numero di pagina (solo nella distinta)
|
||||
_base_page_no = printer().getcurrentpage() -1;
|
||||
|
||||
if (tipost == 'D') // se emetto distinta in definitiva ...
|
||||
aggiorna_dist(fcur);// ... devo aggiornare flag di stampa distinta
|
||||
if (pi) delete pi;
|
||||
}
|
||||
|
||||
void TEmissione::enable_dettaglio(TForm& form) const
|
||||
@ -549,8 +558,6 @@ void TEmissione::enable_dettaglio(TForm& form) const
|
||||
// gestione emissione effetti/distinte su moduli cartacei
|
||||
void TEmissione::print()
|
||||
{
|
||||
int ncopie = _msk->get_int(F_NCOPIE);
|
||||
if (ncopie == 0) ncopie = 1;
|
||||
printer().open();
|
||||
// TRUE se si stampa a video
|
||||
const bool is_vis = printer().printtype() == screenvis;
|
||||
@ -582,7 +589,7 @@ void TEmissione::print()
|
||||
nomeform = "rb.frm"; // utilizzo quello generico
|
||||
_formrb = new TRiba_form(nomeform);
|
||||
enable_dettaglio(*_formrb);
|
||||
print_rb(tipost,ndist,tipodist,ncopie,is_vis);
|
||||
print_rb(tipost,ndist,tipodist,is_vis);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -596,24 +603,11 @@ void TEmissione::print()
|
||||
_formdse = new TDistinta_form(nomeform, _firmrel);
|
||||
enable_dettaglio(*_formdse);
|
||||
_formdse->set_order(tipord);
|
||||
print_dse(tipost,ndist,tipodist,ncopie,is_vis);
|
||||
print_dse(tipost,ndist,tipodist,is_vis);
|
||||
}
|
||||
printer().close();
|
||||
}
|
||||
|
||||
// handler per gestire la conferma dell'annullamento dei dati inseriti
|
||||
// nella maschera
|
||||
bool TEmissione::annulla_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
TMask &m = f.mask();
|
||||
if (k == K_SPACE)
|
||||
{
|
||||
if (yesno_box(TR("Vuoi veramente annullare i dati inseriti")))
|
||||
m.reset();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// costruttore classe TRiba_form
|
||||
TRiba_form::TRiba_form(const char* name): TForm()
|
||||
{
|
||||
@ -631,7 +625,7 @@ bool TRiba_form::validate(TForm_item &cf, TToken_string &s)
|
||||
// gestione dei campi relativi all'importo dell'effetto. Setta il valore da
|
||||
// solo se e' in valuta (cambia anche la picture)
|
||||
// sintassi: _IMPORTO
|
||||
TEffetto effetto(cursor()->file().curr());
|
||||
const TEffetto effetto(cursor()->file().curr());
|
||||
const bool in_valuta = effetto.in_valuta();
|
||||
real importo = effetto.importo(in_valuta);
|
||||
cf.set(importo.string());
|
||||
@ -643,12 +637,8 @@ bool TRiba_form::validate(TForm_item &cf, TToken_string &s)
|
||||
TCursor* cur = cursor();
|
||||
if (cur->curr().get_int(EFF_NDIST) > 0)
|
||||
{
|
||||
TRectype & ban = cur->curr(-204);
|
||||
valore.cut(0);
|
||||
valore << ban.get("S0");
|
||||
valore.trim();
|
||||
ban = cur->curr(-202);
|
||||
valore << " " << ban.get("S0");
|
||||
valore = cur->curr(-204).get("S0");
|
||||
valore << ' ' << cur->curr(-202).get("S0");
|
||||
valore.trim();
|
||||
cf.set(valore);
|
||||
cf.put_paragraph(valore);
|
||||
@ -774,7 +764,7 @@ TDistinta_form::TDistinta_form(const char* name, TRelation *rel): TForm(), _firm
|
||||
// setta l'ordinamento del TSordet_cursor del form
|
||||
void TDistinta_form::set_order(const char tipo)
|
||||
{
|
||||
TString ordine;
|
||||
const char* ordine = "";
|
||||
// ordinamento secondo la data di scadenza dell'effetto
|
||||
if (tipo == 'S')
|
||||
ordine = "DATASCAD|TIPODIST|NDIST|NRIGADIST";
|
||||
@ -789,7 +779,8 @@ void TDistinta_form::set_order(const char tipo)
|
||||
// distruttore classe TDistinta_form
|
||||
TDistinta_form::~TDistinta_form()
|
||||
{
|
||||
if (_cursor) delete _cursor;
|
||||
if (_cursor)
|
||||
delete _cursor;
|
||||
}
|
||||
|
||||
// gestione dei messaggi estesi nei campi
|
||||
@ -1015,16 +1006,15 @@ void TRiba_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TStr
|
||||
if (in=="RAGSOC")
|
||||
{
|
||||
const TRectype& ditte = app().firm_rel().curr();
|
||||
const TString ragsoc = ditte.get("RAGSOC");
|
||||
const TString& ragsoc = ditte.get("RAGSOC");
|
||||
in = s.get();
|
||||
if (in == "0")
|
||||
{
|
||||
valore.cut(0);
|
||||
valore = ragsoc.left(30);
|
||||
valore.trim();
|
||||
TString str = ragsoc.right(20);
|
||||
str.trim();
|
||||
valore << " " << str;
|
||||
valore << ' ' << ragsoc.mid(30);
|
||||
valore.trim();
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1048,7 +1038,7 @@ void TRiba_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TStr
|
||||
// dove: <opzione> è uno delle opzioni seguenti:
|
||||
// "1" la ragione sociale andrà ad occupare più campi, primo segmento
|
||||
// "2" la ragione sociale andrà ad occupare più campi, secondo segmento
|
||||
const bool pick_normal = cur.relation()->lfile(LF_CFVEN).get_int(CFV_CODINDEFF) == 0;
|
||||
const bool pick_normal = cur.curr(LF_CFVEN).get_int(CFV_CODINDEFF) == 0;
|
||||
|
||||
TRectype& clifo_1 = cur.curr(LF_CLIFO);
|
||||
TRectype& clifo_2 = cur.curr(pick_normal ? LF_CLIFO : LF_INDSP);
|
||||
@ -1125,13 +1115,8 @@ void TRiba_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TStr
|
||||
{
|
||||
// gestione dei campi relativi alla banca d'appoggio dell'effetto
|
||||
// sintassi: _BANCA
|
||||
TRectype & ban = cur.curr(-401);
|
||||
valore.cut(0);
|
||||
valore << ban.get("S0");
|
||||
valore.trim();
|
||||
ban = cur.curr(-402);
|
||||
valore << " " << ban.get("S0");
|
||||
valore.trim();
|
||||
valore = cur.curr(-401).get("S0");
|
||||
valore << ' ' << cur.curr(-402).get("S0");
|
||||
}
|
||||
else if (code == "_FATT")
|
||||
{
|
||||
@ -1140,8 +1125,8 @@ void TRiba_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TStr
|
||||
// dove: <opzione> è uno delle opzioni seguenti:
|
||||
// "1" i dati della fattura andranno ad occupare più campi, primo segmento
|
||||
// "2" i dati della fattura andranno ad occupare più campi, secondo segmento
|
||||
TLocalisamfile &eff = cur.file();
|
||||
TEffetto effetto = eff.curr();
|
||||
//TLocalisamfile &eff = cur.file();
|
||||
TEffetto effetto = cur.curr();
|
||||
long num = effetto.numero();
|
||||
TString descfatt;
|
||||
if (tracciato_setif())
|
||||
@ -1208,7 +1193,7 @@ void TRiba_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TStr
|
||||
|
||||
real importo = cur.curr(LF_EFFETTI).get(EFF_IMPORTO);
|
||||
if (_codice_moneta == 'E')
|
||||
importo *= 100.0;
|
||||
importo *= CENTO;
|
||||
importo.round(0);
|
||||
add_tot_importi(importo);
|
||||
valore = importo.string(13,0);
|
||||
|
@ -9,9 +9,7 @@
|
||||
#define F_NUMBERRIGA 103
|
||||
#define F_TIPOEMIS 104
|
||||
#define F_EMIS 105
|
||||
#define F_UNITA 106
|
||||
#define F_FOR_OUT 107
|
||||
#define F_NCOPIE 108
|
||||
#define F_PATH 106
|
||||
#define F_TIPORD 109
|
||||
#define F_TIPOST 110
|
||||
#define F_DATAEMIS 111
|
||||
|
@ -1,4 +1,3 @@
|
||||
// DEFINIZIONE CAMPI MASCHERA PER LA EMISSIONE DEGLI EFFETTI
|
||||
#include "ef0500.h"
|
||||
|
||||
PAGE "Emissione Effetti e Distinte" -1 -1 76 15
|
||||
@ -6,7 +5,7 @@ PAGE "Emissione Effetti e Distinte" -1 -1 76 15
|
||||
RADIOBUTTON F_TIPOEMIS 39
|
||||
BEGIN
|
||||
PROMPT 2 0 " "
|
||||
ITEM "1|Emissione su floppy"
|
||||
ITEM "1|Emissione su file"
|
||||
MESSAGE DISABLE,2@|DISABLE,4@|DISABLE,5@
|
||||
MESSAGE ENABLE,1@|SHOW,F_NOMEFILE
|
||||
ITEM "2|Emissione su moduli cartacei"
|
||||
@ -45,7 +44,6 @@ END
|
||||
NUMBER F_NUMBER 5
|
||||
BEGIN
|
||||
PROMPT 43 6 "Numero Distinta "
|
||||
FLAGS "R"
|
||||
KEY 4
|
||||
USE LF_EFFETTI KEY 4 SELECT (NRIGADIST=1)&&((TIPOCF=#F_TIPOCF)||((TIPOCF="")&&(#F_TIPOCF="C")))
|
||||
INPUT NDIST F_NUMBER
|
||||
@ -61,6 +59,7 @@ BEGIN
|
||||
OUTPUT F_TIPODIST TIPODIST
|
||||
OUTPUT F_NUMBERRIGA NRIGADIST
|
||||
CHECKTYPE NORMAL
|
||||
ADD RUN ef0 -2
|
||||
END
|
||||
|
||||
/* CAMPO NASCOSTO CHE SERVE PER LA RICERCA */
|
||||
@ -72,23 +71,11 @@ BEGIN
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
LIST F_UNITA 9
|
||||
STRING F_PATH 80 50
|
||||
BEGIN
|
||||
PROMPT 2 6 "Unità di output "
|
||||
ITEM "a|Drive A"
|
||||
ITEM "b|Drive B"
|
||||
PROMPT 2 7 "Percorso di output "
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
LIST F_FOR_OUT 7
|
||||
BEGIN
|
||||
PROMPT 43 6 "Formato unità output "
|
||||
ITEM "1|360 Kb"
|
||||
ITEM "2|720 Kb"
|
||||
ITEM "3|1,2 Mb"
|
||||
ITEM "4|1,44 Mb"
|
||||
GROUP 1
|
||||
FLAGS "H"
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
LIST F_EMIS 10
|
||||
@ -101,14 +88,6 @@ BEGIN
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
NUMBER F_NCOPIE 3
|
||||
BEGIN
|
||||
PROMPT 2 9 "Numero copie "
|
||||
NUM_EXPR {(#THIS_FIELD >= 0)}
|
||||
WARNING "Il numero di copie deve essere positivo"
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
LIST F_TIPORD 14
|
||||
BEGIN
|
||||
PROMPT 2 10 "Tipo Ordinamento "
|
||||
@ -145,17 +124,12 @@ END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -13 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 10 2
|
||||
BEGIN
|
||||
PROMPT -23 -1 ""
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -33 -1 ""
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
@ -12,6 +12,7 @@ protected:
|
||||
virtual bool user_create() ;
|
||||
virtual void init_query_insert_mode(TMask& m) ;
|
||||
virtual void init_insert_mode(TMask& m) ;
|
||||
virtual void init_modify_mode(TMask& m) ;
|
||||
virtual void init_query_mode (TMask&);
|
||||
|
||||
public:
|
||||
@ -54,6 +55,14 @@ void TBnp_table_app::init_insert_mode(TMask& m)
|
||||
}
|
||||
}
|
||||
|
||||
void TBnp_table_app::init_modify_mode(TMask& m)
|
||||
{
|
||||
if (get_tabname() == "BNP")
|
||||
{
|
||||
m.efield(F_IBAN_STATO).validate(K_TAB);
|
||||
}
|
||||
}
|
||||
|
||||
void TBnp_table_app::init_query_mode(TMask& m)
|
||||
{
|
||||
TTable_application::init_query_mode(m);
|
||||
|
@ -569,21 +569,34 @@ void TPE_mask::save_rate()
|
||||
key.add(row->get(sheet.cid2index(F_RATA)));
|
||||
const TRectype& scad = cache().get(LF_SCADENZE, key);
|
||||
|
||||
TString16 abi = scad.get(SCAD_CODABI);
|
||||
TString16 cab = scad.get(SCAD_CODCAB);
|
||||
TString8 abi = scad.get(SCAD_CODABI);
|
||||
TString8 cab = scad.get(SCAD_CODCAB);
|
||||
|
||||
key = get(F_TIPOCF);
|
||||
key.add(row->get(sheet.cid2index(F_CODCF)));
|
||||
const TRectype& clifo = cache().get(LF_CLIFO, key);
|
||||
TString80 iban = clifo.get(CLI_IBAN);
|
||||
|
||||
if (atol(cab) == 0L)
|
||||
{
|
||||
key = get(F_TIPOCF);
|
||||
key.add(row->get(sheet.cid2index(F_CODCF)));
|
||||
const TRectype& clifo = cache().get(LF_CLIFO, key);
|
||||
abi = clifo.get(CLI_CODABI);
|
||||
cab = clifo.get(CLI_CODCAB);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (iban.starts_with("IT"))
|
||||
{
|
||||
TString16 abicab; abicab << abi << cab;
|
||||
if (iban.mid(5, 10) != abicab)
|
||||
iban.cut(0);
|
||||
}
|
||||
}
|
||||
|
||||
TEffetto& eff = distinta[rigadist-1];
|
||||
eff.put(EFF_DATASCAD, scad.get(SCAD_DATASCAD));
|
||||
eff.put(EFF_CODABI, abi);
|
||||
eff.put(EFF_CODCAB, cab);
|
||||
eff.put(EFF_IBAN, iban);
|
||||
}
|
||||
|
||||
TEffetto& eff = distinta[rigadist-1];
|
||||
@ -702,9 +715,9 @@ bool TPE_mask::on_sheet_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
case se_query_add:
|
||||
{
|
||||
TOperable_field& baggio = (TOperable_field&)field(F_AGGIORNA);
|
||||
if (baggio.active())
|
||||
on_field_event(baggio, fe_button, 0);
|
||||
TOperable_field& ronaldo = (TOperable_field&)field(F_AGGIORNA);
|
||||
if (ronaldo.active())
|
||||
on_field_event(ronaldo, fe_button, 0);
|
||||
}
|
||||
return FALSE;
|
||||
case se_notify_modify:
|
||||
|
@ -1,3 +1,3 @@
|
||||
31
|
||||
0
|
||||
$effetti|3|6|181|34|Effetti|NEFF||
|
||||
$effetti|3|6|215|34|Effetti|NEFF||
|
||||
|
@ -1,5 +1,5 @@
|
||||
31
|
||||
31
|
||||
32
|
||||
NPROGTR|3|7|0|Numero progressivo effetto
|
||||
DATASCAD|5|8|0|Data di scadenza
|
||||
TIPOPAG|2|1|0|Tipo pagamento
|
||||
@ -31,6 +31,7 @@ DISRIBAEST|8|1|0|Distinta RIBA estratta
|
||||
IMPORTO|4|18|3|Importo effetto
|
||||
IMPORTOVAL|4|18|3|Importo effetto in valuta
|
||||
SPESE|4|18|3|Spese bancarie distinta
|
||||
IBAN|1|34|0|Codice IBAN di appoggio
|
||||
4
|
||||
NPROGTR|
|
||||
CODCF+NPROGTR|
|
||||
|
48
ef/riba.ini
48
ef/riba.ini
@ -93,13 +93,11 @@ POSITION(7)=113
|
||||
LENGTH(7)=1
|
||||
MESSAGE(7) = _CODMON
|
||||
|
||||
|
||||
NAME(8)=FILLER
|
||||
TYPE(8)=FISSO
|
||||
POSITION(8)=114
|
||||
LENGTH(8)=6
|
||||
|
||||
|
||||
[RECORD 14]
|
||||
NAME(0) = CAMPO BLANK
|
||||
TYPE(0) = FISSO
|
||||
@ -207,6 +205,52 @@ POSITION(19) = 119
|
||||
LENGTH(19) = 1
|
||||
MESSAGE(19) = _CODMON
|
||||
|
||||
[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
|
||||
|
||||
[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
|
||||
|
||||
[RECORD 20]
|
||||
NAME(0)=CAMPO BLANK
|
||||
TYPE(0)=FISSO
|
||||
|
Loading…
x
Reference in New Issue
Block a user