Patch level : 10.0 854

Files correlati     : cg0.exe ca0.exe
Ricompilazione Demo : [ ]
Commento            :

Campi per gestione CUP nei clienti e nelle commesse


git-svn-id: svn://10.65.10.50/branches/R_10_00@21263 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2010-12-07 16:58:46 +00:00
parent 1f18a99255
commit 3c7ec717e2
23 changed files with 1330 additions and 220 deletions

View File

@ -6,6 +6,7 @@
#include "calib01.h"
#include "ca0600a.h"
#include "commesse.h"
#include "cfcms.h"
////////////////////////////////////////////////////////////////////////
//MASCHERA
@ -56,7 +57,19 @@ class TCms_app : public TAnal_app
bool _has_filter;
protected:
virtual const char * extra_modules() const {return "cm";} //funziona anche con autorizzazione CM
void fin2row(const TMask& m);
void for2row(const TMask& m);
void row2fin(const TMask& m);
void row2for(const TMask& m);
virtual int read(TMask& m);
virtual int write(const TMask& m);
virtual int rewrite(const TMask& m);
virtual bool remove();
virtual void ini2mask(TConfig& ini, TMask&m, bool query);
virtual void mask2ini(const TMask& m, TConfig& ini);
virtual const char * extra_modules() const {return "cm";} //funziona anche con autorizzazione CM
virtual bool filtered() const;
@ -65,8 +78,285 @@ protected:
virtual bool protected_record(TRectype& record);
virtual TSimple_anal_msk* create_mask() const { return new TCms_anal_msk; }
virtual bool user_create();
public:
TCms_app() {}
};
void TCms_app::fin2row(const TMask& m)
{
const TRelation * r = get_relation();
TToken_string key;
key.add(r->curr().get(COMMESSE_CODCMS));
key.add("C");
TRecord_array fins(key, LF_CFCMS);
const int items = fins.rows();
TSheet_field & s = m.sfield(F_CMS_FINAN);
s.destroy();
for (int i = 1; i <= items; i++)
{
const TRectype & rec = fins[i];
TToken_string & str = s.row(i - 1);
str.add(rec.get(CFCMS_CODCF), s.cid2index(F_CMS_CODFIN));
str.add(rec.get(CFCMS_NRIGABAN), s.cid2index(F_CMS_NRIGABANFIN));
str.add(rec.get(CFCMS_CUP), s.cid2index(F_CMS_CUPFIN));
str.add(rec.get(CFCMS_CIG), s.cid2index(F_CMS_CIGFIN));
str.add(rec.get(CFCMS_PERCFIN), s.cid2index(F_CMS_PERCFINFIN));
str.add(rec.get(CFCMS_DESCR), s.cid2index(F_CMS_DESCRFIN));
s.check_row(i - 1);
}
s.force_update();
}
void TCms_app::for2row(const TMask& m)
{
const TRelation * r = get_relation();
TToken_string key;
key.add(r->curr().get(COMMESSE_CODCMS));
key.add("F");
TRecord_array fors(key, LF_CFCMS);
const int items = fors.rows();
TSheet_field & s = m.sfield(F_CMS_FORN);
s.destroy();
for (int i = 1; i <= items; i++)
{
const TRectype & rec = fors[i];
TToken_string & str = s.row(i - 1);
str.add(rec.get(CFCMS_CODCF), s.cid2index(F_CMS_CODFOR));
str.add(rec.get(CFCMS_NRIGABAN), s.cid2index(F_CMS_NRIGABANFOR));
str.add(rec.get(CFCMS_CUP), s.cid2index(F_CMS_CUPFOR));
str.add(rec.get(CFCMS_CIG), s.cid2index(F_CMS_CUPFOR));
s.check_row(i - 1);
}
s.force_update();
}
int TCms_app::read(TMask& m)
{
int err = TAnal_app::read(m);
if (err == NOERR)
{
fin2row(m);
for2row(m);
}
return err;
}
void TCms_app::row2fin(const TMask& m)
{
TRelation * r = get_relation();
TToken_string key;
key.add(r->lfile().get(COMMESSE_CODCMS));
key.add("C");
TRecord_array fins(key, LF_CFCMS);
TSheet_field & s = m.sfield(F_CMS_FINAN);
const int items = s.items();
fins.destroy_rows();
for (int i = 0; i < items; i++)
{
TRectype & rec = fins.row(i + 1, true);
TToken_string & str = s.row(i);
rec.put(CFCMS_CODCF, str.get(s.cid2index(F_CMS_CODFIN)));
rec.put(CFCMS_NRIGABAN, str.get(s.cid2index(F_CMS_NRIGABANFIN)));
rec.put(CFCMS_CUP, str.get(s.cid2index(F_CMS_CUPFIN)));
rec.put(CFCMS_CIG, str.get(s.cid2index(F_CMS_CIGFIN)));
rec.put(CFCMS_PERCFIN, str.get(s.cid2index(F_CMS_PERCFINFIN)));
rec.put(CFCMS_DESCR, str.get(s.cid2index(F_CMS_DESCRFIN)));
}
fins.write(true);
}
void TCms_app::row2for(const TMask& m)
{
TRelation * r = get_relation();
TToken_string key;
key.add(r->lfile().get(COMMESSE_CODCMS));
key.add("F");
TRecord_array fors(key, LF_CFCMS);
TSheet_field & s = m.sfield(F_CMS_FORN);
const int items = s.items();
fors.destroy_rows();
for (int i = 0; i < items; i++)
{
TRectype & rec = fors.row(i + 1, true);
TToken_string & str = s.row(i);
rec.put(CFCMS_CODCF, str.get(s.cid2index(F_CMS_CODFOR)));
rec.put(CFCMS_NRIGABAN, str.get(s.cid2index(F_CMS_NRIGABANFOR)));
rec.put(CFCMS_CUP, str.get(s.cid2index(F_CMS_CUPFOR)));
rec.put(CFCMS_CIG, str.get(s.cid2index(F_CMS_CIGFOR)));
}
fors.write(true);
}
int TCms_app::write(const TMask& m)
{
TRelation * r = get_relation();
m.autosave(*r);
int err = TAnal_app::write(m);
if (err == NOERR)
{
row2fin(m);
row2for(m);
}
return err;
}
int TCms_app::rewrite(const TMask& m)
{
TRelation * r = get_relation();
m.autosave(*r);
int err = TAnal_app::rewrite(m);
if (err == NOERR)
{
row2fin(m);
row2for(m);
}
return err;
}
bool TCms_app::remove()
{
int err = TAnal_app::remove();
if (err == NOERR)
{
TRelation * r = get_relation();
TToken_string key;
key.add(r->lfile().get(COMMESSE_CODCMS));
key.add("C");
TRecord_array fins(key, LF_CFCMS);
err = fins.remove();
if (err == NOERR)
{
key.cut(0);
key.add(r->lfile().get(COMMESSE_CODCMS));
key.add("F");
TRecord_array fors(key, LF_CFCMS);
err = fors.remove();
}
}
return err == NOERR;
}
void TCms_app::ini2mask(TConfig& ini, TMask& m, bool query)
{
TString p;
const TRelation * r = get_relation();
TAnal_app::ini2mask(ini, m, query);
if (!query)
{
int i;
p << LF_CFCMS << ",C";
TSheet_field & si = m.sfield(F_CMS_FINAN);
for (i = 0; ; i++)
{
TString para(p); para << "," << i + 1;
const long codcf = ini.get_long(CFCMS_CODCF, para);
if (codcf == 0L)
break;
TToken_string & row = si.row(i);
row.add(codcf, si.cid2index(F_CMS_CODFIN));
row.add(ini.get(CFCMS_NRIGABAN, para), si.cid2index(F_CMS_NRIGABANFIN));
row.add(ini.get(CFCMS_CUP, para), si.cid2index(F_CMS_CUPFIN));
row.add(ini.get(CFCMS_CIG, para), si.cid2index(F_CMS_CIGFIN));
row.add(ini.get(CFCMS_PERCFIN, para), si.cid2index(F_CMS_PERCFINFIN));
row.add(ini.get(CFCMS_DESCR, para), si.cid2index(F_CMS_DESCRFIN));
si.update_mask(i - 1);
}
si.force_update();
p.cut(0);
p << LF_CFCMS << ",F";
TSheet_field & so = m.sfield(F_CMS_FORN);
for (i = 0; ; i++)
{
TString para(p); para << "," << i + 1;
const long codcf = ini.get_long(CFCMS_CODCF, para);
if (codcf == 0L)
break;
TToken_string & row = so.row(i);
row.add(codcf, so.cid2index(F_CMS_CODFOR));
row.add(ini.get(CFCMS_NRIGABAN, para), so.cid2index(F_CMS_NRIGABANFOR));
row.add(ini.get(CFCMS_CUP, para), so.cid2index(F_CMS_CUPFOR));
row.add(ini.get(CFCMS_CIG, para), so.cid2index(F_CMS_CIGFOR));
so.update_mask(i - 1);
}
so.force_update();
}
}
void TCms_app::mask2ini(const TMask& m, TConfig& ini)
{
TString p;
const TRelation * r = get_relation();
TAnal_app::mask2ini(m, ini);
p << LF_CFCMS << ",C";
TSheet_field & si = m.sfield(F_CMS_FINAN);
int items = si.items();
for (int i = 0; i < items; i++)
{
TString para(p); para << "," << i + 1;
TToken_string & row = si.row(i);
ini.set(CFCMS_CODCF, row.get(si.cid2index(F_CMS_CODFIN)), para);
ini.set(CFCMS_NRIGABAN, row.get(si.cid2index(F_CMS_NRIGABANFIN)), para);
ini.set(CFCMS_CUP, row.get(si.cid2index(F_CMS_CUPFIN)), para);
ini.set(CFCMS_CIG, row.get(si.cid2index(F_CMS_CIGFIN)), para);
ini.set(CFCMS_PERCFIN, row.get(si.cid2index(F_CMS_PERCFINFIN)), para);
ini.set(CFCMS_DESCR, row.get(si.cid2index(F_CMS_DESCRFIN)), para);
}
p.cut(0);
p << LF_CFCMS << ",F";
TSheet_field & so = m.sfield(F_CMS_FORN);
items = so.items();
for (int i = 0; i < items; i++)
{
TString para(p); para << "," << i + 1;
TToken_string & row = so.row(i);
ini.set(CFCMS_CODCF, row.get(so.cid2index(F_CMS_CODFOR)), para);
ini.set(CFCMS_NRIGABAN, row.get(so.cid2index(F_CMS_NRIGABANFOR)), para);
ini.set(CFCMS_CUP, row.get(so.cid2index(F_CMS_CUPFOR)), para);
ini.set(CFCMS_CIG, row.get(so.cid2index(F_CMS_CIGFOR)), para);
}
}
bool TCms_app::filtered() const
{
if (_has_filter)

View File

@ -57,6 +57,8 @@
#define F_CMS_CODATT 256
#define F_CMS_CODDITTA 257
#define F_CMS_INDETR 258
#define F_CMS_FINAN 259
#define F_CMS_FORN 260
#define F_CMS_MAG 353
#define F_CMS_DESCMAG 354
@ -79,3 +81,28 @@
#define F_CMSDES1 701
#define F_CMSDES4 705
#define F_CMS_CODFIN 101
#define F_CMS_RAGFIN 102
#define F_CMS_NRIGABANFIN 103
#define F_CMS_IBANFIN 104
#define F_CMS_CUPFIN 105
#define F_CMS_CIGFIN 106
#define F_CMS_PERCFINFIN 107
#define F_CMS_DESCRFIN 108
#define F_CMS_DCUPFIN 171
#define F_CMS_DCIGFIN 172
#define F_CMS_GARAFIN 173
#define F_CMS_TIPOCLI 174
#define F_CMS_CODFOR 101
#define F_CMS_RAGFOR 102
#define F_CMS_NRIGABANFOR 103
#define F_CMS_IBANFOR 104
#define F_CMS_CUPFOR 105
#define F_CMS_CIGFOR 106
#define F_CMS_DCUPFOR 171
#define F_CMS_DCIGFOR 172
#define F_CMS_GARAFOR 173

View File

@ -6,7 +6,7 @@ TOOLBAR "topbar" 0 0 0 2
ENDPAGE
PAGE "Pagina 1" 0 0 0 2
PAGE "Commessa" 0 0 0 2
GROUPBOX DLG_NULL 78 6
BEGIN
@ -126,34 +126,7 @@ END
ENDPAGE
PAGE "Pagina 2" -1 -1 64 6
STRING F_CMS_CODCF 6
BEGIN
PROMPT 2 1 "Cliente "
FIELD CODCF
USE LF_CLIFO
INPUT TIPOCF "C"
INPUT CODCF F_CMS_CODCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Partita IVA@12" PAIV
OUTPUT F_CMS_CODCF CODCF
OUTPUT F_CMS_CRAGSOC RAGSOC
CHECKTYPE NORMAL
END
STRING F_CMS_CRAGSOC 50
BEGIN
PROMPT 20 1 ""
USE LF_CLIFO KEY 2
INPUT TIPOCF "C"
INPUT RAGSOC F_CMS_CRAGSOC
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Codice" CODCF
DISPLAY "Partita IVA@12" PAIV
COPY OUTPUT F_CMS_CODCF
END
PAGE "Parametri" -1 -1 64 6
LIST F_CMS_REGIVA 2 14
BEGIN
@ -415,7 +388,7 @@ END
ENDPAGE
PAGE "Pagina 3" -1 -1 64 6
PAGE "Parametri" -1 -1 64 6
GROUPBOX DLG_NULL 78 6
BEGIN
@ -587,7 +560,7 @@ END
ENDPAGE
PAGE "Pagina 4" 0 0 0 2
PAGE "Default" 0 0 0 2
GROUPBOX DLG_NULL 78 6
BEGIN
@ -596,4 +569,316 @@ END
ENDPAGE
PAGE "Clienti/Fornitori" 0 0 0 2
SPREADSHEET F_CMS_FINAN 0 10
BEGIN
PROMPT 1 0 "@bFinanziatori"
ITEM "Codice"
ITEM "Ragione Sociale@50"
ITEM "Riga banca"
ITEM "IBAN@27"
ITEM "CUP@22"
ITEM "CIG@10"
ITEM "% finanziamento"
ITEM "Settore/Dipartimento/Servizio@50"
END
SPREADSHEET F_CMS_FORN 0 10
BEGIN
PROMPT 1 12 "@bFornitori"
ITEM "Codice"
ITEM "Ragione Sociale@50"
ITEM "Riga banca"
ITEM "IBAN@27"
ITEM "CUP@22"
ITEM "CIG@10"
END
ENDPAGE
ENDMASK
TOOLBAR "topbar" 0 0 0 2
BUTTON DLG_OK 10 2
BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_DELREC 10 2
BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -33 -1 ""
END
ENDPAGE
PAGE "Finanziatori" 0 0 0 2
STRING F_CMS_CODFIN 6
BEGIN
PROMPT 2 1 "Cliente "
USE LF_CLIFO
INPUT TIPOCF "C"
INPUT CODCF F_CMS_CODFIN
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Partita IVA@12" PAIV
OUTPUT F_CMS_CODFIN CODCF
OUTPUT F_CMS_RAGFIN RAGSOC
OUTPUT F_CMS_TIPOCLI ALLEG
CHECKTYPE REQUIRED
ADD RUN cg0 -1
END
STRING F_CMS_RAGFIN 50
BEGIN
PROMPT 20 1 ""
USE LF_CLIFO KEY 2
INPUT TIPOCF "C"
INPUT RAGSOC F_CMS_RAGFIN
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Codice" CODCF
DISPLAY "Partita IVA@12" PAIV
COPY OUTPUT F_CMS_CODFIN
END
LISTBOX F_CMS_TIPOCLI 1 35
BEGIN
PROMPT 2 60 "Tipo cliente/fornitore "
ITEM " |Valido per allegato IVA" MESSAGE CLEAR,1@
ITEM "1|Non valido per allegato IVA" MESSAGE CLEAR,1@
ITEM "2|Occasionale" MESSAGE CLEAR,1@
ITEM "3|Documenti riepilogativi" MESSAGE CLEAR,1@
ITEM "4|Codice fiscale gia' inserito" MESSAGE CLEAR,1@
ITEM "5|Estero" MESSAGE CLEAR,1@
ITEM "6|Privato" MESSAGE CLEAR,1@
ITEM "7|Ente pubblico" MESSAGE ENABLE,1@
ITEM "8|Fallimento/proc.concorsuale" MESSAGE CLEAR,1@
FLAGS "DG"
END
NUMBER F_CMS_NRIGABANFIN 3
BEGIN
PROMPT 2 3 "Conto corr. "
USE LF_CFBAN
JOIN LF_CLIFO INTO TIPOCF==TIPOCF CODCF==CODCF
INPUT TIPOCF "C"
INPUT CODCF F_CMS_CODFIN SELECT
INPUT TIPOBAN "V"
INPUT NRIGA F_CMS_NRIGABANFIN
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
DISPLAY "IBAN" IBAN
OUTPUT F_CMS_NRIGABANFIN NRIGA
OUTPUT F_CMS_IBANFIN IBAN
CHECKTYPE NORMAL
END
STRING F_CMS_IBANFIN 27
BEGIN
PROMPT 25 3 "IBAN "
FLAGS "D"
END
STRING F_CMS_CUPFIN 22
BEGIN
PROMPT 2 5 "CUP "
USE %CUP
INPUT CODTAB F_CMS_CUPFIN
DISPLAY "Codice@22" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CMS_CUPFIN CODTAB
OUTPUT F_CMS_DCUPFIN S0
CHECKTYPE NORMAL
GROUP 1
END
STRING F_CMS_DCUPFIN 50 30
BEGIN
PROMPT 40 5 ""
USE %CUP KEY 2
INPUT S0 F_CMS_DCUPFIN
DISPLAY "Ragione Sociale@50" S0
DISPLAY "Codice@22" CODTAB
COPY OUTPUT F_CMS_CUPFIN
GROUP 1
END
STRING F_CMS_CIGFIN 10
BEGIN
PROMPT 2 6 "CIG "
USE %CIG
INPUT CODTAB F_CMS_CIGFIN
DISPLAY "Codice@10" CODTAB
DISPLAY "Descrizione@50" S0
DISPLAY "Codice gara" S1
OUTPUT F_CMS_CIGFIN CODTAB
OUTPUT F_CMS_DCIGFIN S0
OUTPUT F_CMS_GARAFIN S1
CHECKTYPE NORMAL
GROUP 1
END
STRING F_CMS_DCIGFIN 50 30
BEGIN
PROMPT 40 6 ""
USE %CIG KEY 2
INPUT S0 F_CMS_DCIGFIN
DISPLAY "Ragione Sociale@50" S0
DISPLAY "Codice@10" CODTAB
COPY OUTPUT F_CMS_CIGFIN
GROUP 1
END
STRING F_CMS_GARAFIN 10
BEGIN
PROMPT 8 7 "Codice gara "
FLAGS "D"
END
NUMBER F_CMS_PERCFINFIN 6 2
BEGIN
PROMPT 8 8 "% di finanz."
END
STRING F_CMS_DESCRFIN 50
BEGIN
PROMPT 8 9 "Descrizione "
END
ENDPAGE
ENDMASK
TOOLBAR "topbar" 0 0 0 2
BUTTON DLG_OK 10 2
BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_DELREC 10 2
BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -33 -1 ""
END
ENDPAGE
PAGE "Fornitori" 0 0 0 2
STRING F_CMS_CODFOR 6
BEGIN
PROMPT 2 1 "Fornitore"
FIELD CODCF
USE LF_CLIFO
INPUT TIPOCF "F"
INPUT CODCF F_CMS_CODFOR
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Partita IVA@12" PAIV
OUTPUT F_CMS_CODFIN CODCF
OUTPUT F_CMS_RAGFIN RAGSOC
CHECKTYPE REQUIRED
ADD RUN cg0 -1
END
STRING F_CMS_RAGFOR 50
BEGIN
PROMPT 20 1 ""
USE LF_CLIFO KEY 2
INPUT TIPOCF "F"
INPUT RAGSOC F_CMS_RAGFOR
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
DISPLAY "Codice" CODCF
DISPLAY "Partita IVA@12" PAIV
COPY OUTPUT F_CMS_CODFOR
END
NUMBER F_CMS_NRIGABANFOR 3
BEGIN
PROMPT 2 3 "Conto corr. "
USE LF_CFBAN
JOIN LF_CLIFO INTO TIPOCF==TIPOCF CODCF==CODCF
INPUT TIPOCF "F"
INPUT CODCF F_CMS_CODFOR SELECT
INPUT TIPOBAN "V"
INPUT NRIGA F_CMS_NRIGABANFOR
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
DISPLAY "IBAN" IBAN
OUTPUT F_CMS_NRIGABANFOR NRIGA
OUTPUT F_CMS_IBANFOR IBAN
CHECKTYPE NORMAL
END
STRING F_CMS_IBANFOR 27
BEGIN
PROMPT 2 25 "IBAN "
FLAGS "D"
END
STRING F_CMS_CUPFOR 22
BEGIN
PROMPT 2 5 "CUP "
USE %CUP
INPUT CODTAB F_CMS_CUPFOR
DISPLAY "Codice@22" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CMS_CUPFOR CODTAB
OUTPUT F_CMS_DCUPFOR S0
CHECKTYPE NORMAL
END
STRING F_CMS_DCUPFOR 50 30
BEGIN
PROMPT 40 5 ""
USE %CUP KEY 2
INPUT S0 F_CMS_DCUPFOR
DISPLAY "Ragione Sociale@50" S0
DISPLAY "Codice@22" CODTAB
COPY OUTPUT F_CMS_CUPFOR
END
STRING F_CMS_CIGFOR 10
BEGIN
PROMPT 2 6 "CIG "
USE %CIG
INPUT CODTAB F_CMS_CIGFOR
DISPLAY "Codice@10" CODTAB
DISPLAY "Descrizione@50" S0
DISPLAY "Codice gara" S1
OUTPUT F_CMS_CIGFOR CODTAB
OUTPUT F_CMS_DCIGFOR S0
OUTPUT F_CMS_GARAFOR S1
CHECKTYPE NORMAL
END
STRING F_CMS_DCIGFOR 50 30
BEGIN
PROMPT 40 6 ""
USE %CIG KEY 2
INPUT S0 F_CMS_DCIGFOR
DISPLAY "Ragione Sociale@50" S0
DISPLAY "Codice@10" CODTAB
COPY OUTPUT F_CMS_CIGFOR
END
STRING F_CMS_GARAFOR 10
BEGIN
PROMPT 8 7 "Codice gara "
FLAGS "D"
END
ENDPAGE
ENDMASK

10
ca/cfcms.h Executable file
View File

@ -0,0 +1,10 @@
#define CFCMS_COMMESSA "COMMESSA"
#define CFCMS_TIPOCF "TIPOCF"
#define CFCMS_NRIGA "NRIGA"
#define CFCMS_CODCF "CODCF"
#define CFCMS_DESCR "DESCR"
#define CFCMS_NRIGABAN "NRIGABAN"
#define CFCMS_CUP "CUP"
#define CFCMS_CIG "CIG"
#define CFCMS_CINT "CINT"
#define CFCMS_PERCFIN "PERCFIN"

View File

@ -1,3 +1,3 @@
99
0
$cmscf|0|0|60|0|Clienti Fornitori per commessa|||
$cmscf|0|0|145|0|Clienti Fornitori per commessa|||

View File

@ -1,11 +1,14 @@
99
7
10
COMMESSA|1|20|0|Codice commessa
TIPOCF|1|1|0|Tipo (<C>liente/<F>ornitore)
NRIGA|2|3|0|Numero riga
CODCF|3|6|0|Codice cliente/fornitore
DESCR|1|70|0|Descrizione servizio/dipartimento/assessorato/centro di costo/commessa
NRIGABAN|2|3|0|Numero riga Banca
CUP|1|20|0|Codice CUP/ CIG
CUP|1|15|0|Codice CUP/ CIG
CIG|1|10|0|Codice Identificativo Gara
CINT|1|10|0|Codice Identificativo Interno del finanazioamento (Privati)
PERCFIN|4|6|2|Percentuale di finanziamento
1
COMMESSA+TIPOCF+NRIGA|

10
cg/cfban.h Executable file
View File

@ -0,0 +1,10 @@
#define CFBAN_TIPOCF "TIPOCF"
#define CFBAN_CODCF "CODCF"
#define CFBAN_TIPOBAN "TIPOBAN"
#define CFBAN_NRIGA "NRIGA"
#define CFBAN_ABI "ABI"
#define CFBAN_CAB "CAB"
#define CFBAN_PROGPR "PROGPR"
#define CFBAN_NUMCC "NUMCC"
#define CFBAN_IBAN "IBAN"

View File

@ -19,6 +19,7 @@
#include <comuni.h>
#include <indsp.h>
#include <mov.h>
#include "cfban.h"
class TClifo_application : public TRelation_application
{
@ -56,6 +57,7 @@ protected:
virtual int write(const TMask& m);
virtual int rewrite(const TMask& m);
virtual int read(TMask& m);
virtual bool remove();
virtual void ini2mask(TConfig& ini, TMask&m, bool query);
virtual void mask2ini(const TMask& m, TConfig& ini);
@ -634,7 +636,6 @@ void TClifo_application::init_insert_mode(TMask& m)
void TClifo_application::init_modify_mode(TMask& m)
{
m.enable_page(4, _gesven);
m.efield(F_IBAN_STATO).validate(K_TAB); // Decodifica IBAN
m.enable(DLG_CONTRLAV, main_app().has_module(LVAUT) && m.get(F_TIPOCF) == "C");
}
@ -662,13 +663,15 @@ int TClifo_application::read(TMask& m)
const TRectype& cfven = get_relation()->curr(LF_CFVEN);
TToken_string nonacc(cfven.get(CFV_NONACCEFF), ';');
TToken_string nonscd(cfven.get(CFV_NONSCADEFF), ';');
int i;
set_pnae(m, nonacc, nonscd);
if (_gesven)
{
TToken_string riga(240);
indsp_sheet().reset();
for (int i=0; i< _rel->indirizzi_items();i++)
for (i = 0; i < _rel->indirizzi_items(); i++)
{
TRectype& rec=_rel->indirizzo(i);
riga.cut(0);
@ -706,12 +709,83 @@ int TClifo_application::read(TMask& m)
field_sheet(F_CODINDEFF).add(riga);
}
}
TToken_string key;
key.add(m.get(F_TIPOCF));
key.add(m.get(F_CODCF));
key.add("V");
TRecord_array ns_ban(key, LF_CFBAN);
const TRectype& clifo = get_relation()->curr(LF_CLIFO);
TSheet_field & ns_sh = m.sfield(F_BANA);
ns_sh.destroy(-1, false);
for (i = 1; i <= ns_ban.rows(); i++)
{
TToken_string & row = ns_sh.row(i -1);
const TRectype & ban = ns_ban.row(i);
row.add(ban.get(CFBAN_ABI), ns_sh.cid2index(F_BBAN_ABI));
row.add(ban.get(CFBAN_CAB), ns_sh.cid2index(F_BBAN_CAB));
row.add(ban.get(CFBAN_NUMCC), ns_sh.cid2index(F_BBAN_CONTO));
const TString & iban = ban.get(CFBAN_IBAN);
row.add(iban, ns_sh.cid2index(F_IBAN));
ns_sh.update_mask(i - 1);
if (iban.full())
ns_sh.sheet_row_mask(i - 1).efield(F_IBAN_STATO).validate(K_TAB); // Decodifica IBAN
ns_sh.update_row(i - 1);
}
if (ns_ban.rows() == 0 && clifo.get_int(CLI_CODABI) != 0)
{
TToken_string & row = ns_sh.row(0);
row.add(clifo.get(CLI_CODABI), ns_sh.cid2index(F_BBAN_ABI));
row.add(clifo.get(CLI_CODCAB), ns_sh.cid2index(F_BBAN_CAB));
row.add(clifo.get(CLI_NUMCC), ns_sh.cid2index(F_BBAN_CONTO));
const TString & iban = clifo.get(CLI_IBAN);
row.add(iban, ns_sh.cid2index(F_IBAN));
ns_sh.update_mask(0);
}
key.cut(0);
key.add(m.get(F_TIPOCF));
key.add(m.get(F_CODCF));
key.add("N");
TRecord_array vs_ban(key, LF_CFBAN);
TSheet_field & vs_sh = m.sfield(F_BANP);
vs_sh.destroy(-1, false);
for (i = 1; i <= vs_ban.rows(); i++)
{
TToken_string & row = vs_sh.row(i -1);
const TRectype & ban = vs_ban.row(i);
row.add(ban.get(CFBAN_ABI), vs_sh.cid2index(F_BBAN_ABI));
row.add(ban.get(CFBAN_CAB), vs_sh.cid2index(F_BBAN_CAB));
row.add(ban.get(CFBAN_PROGPR), vs_sh.cid2index(F_PROGPR));
vs_sh.update_mask(i - 1);
vs_sh.sheet_row_mask(i - 1).efield(F_IBAN_STATO).validate(K_TAB); // Decodifica IBAN
vs_sh.update_row(i - 1);
}
if (vs_ban.rows() == 0 && cfven.get_int(CFV_CODABIPR) != 0)
{
TToken_string & row = vs_sh.row(0);
row.add(cfven.get(CFV_CODABIPR), vs_sh.cid2index(F_BBAN_ABI));
row.add(cfven.get(CFV_CODCABPR), vs_sh.cid2index(F_BBAN_CAB));
vs_sh.update_mask(0);
}
return _rel->status();
}
void TClifo_application::ini2mask(TConfig& ini, TMask& m, bool query)
{
TRelation_application::ini2mask(ini, m, query);
int i;
if (!query)
{
@ -728,7 +802,7 @@ void TClifo_application::ini2mask(TConfig& ini, TMask& m, bool query)
{
TToken_string riga(240);
TString16 para;
for (int i=0; ;i++)
for (i = 0; ; i++)
{
para.format("%d,%d", LF_INDSP, i+1);
if (!ini.set_paragraph(para))
@ -773,18 +847,87 @@ void TClifo_application::ini2mask(TConfig& ini, TMask& m, bool query)
}
}
}
TString p;
p << LF_CFBAN << ",V";
TSheet_field & ns_sh = m.sfield(F_BANA);
for (i = 0; ; i++)
{
TString para(p); para << "," << i + 1;
const TString & abi = ini.get(CFBAN_ABI, para);
if (abi.blank())
break;
TToken_string & row = ns_sh.row(i);
row.add(abi, ns_sh.cid2index(F_BBAN_ABI));
row.add(ini.get(CFBAN_CAB, para), ns_sh.cid2index(F_BBAN_CAB));
row.add(ini.get(CFBAN_NUMCC, para), ns_sh.cid2index(F_BBAN_CONTO));
const TString & iban = ini.get(CFBAN_IBAN, para);
row.add(iban, ns_sh.cid2index(F_IBAN));
ns_sh.update_mask(i - 1);
}
p.cut(0);
p << LF_CFBAN << ",N";
TSheet_field & vs_sh = m.sfield(F_BANP);
for (i = 0; ; i++)
{
TString para(p); para << "," << i + 1;
const TString & abi = ini.get(CFBAN_ABI, para);
if (abi.blank())
break;
TToken_string & row = vs_sh.row(i);
row.add(abi, vs_sh.cid2index(F_BBAN_ABI));
row.add(ini.get(CFBAN_CAB, para), vs_sh.cid2index(F_BBAN_CAB));
row.add(ini.get(CFBAN_PROGPR, para), vs_sh.cid2index(F_PROGPR));
vs_sh.update_mask(i - 1);
}
}
int TClifo_application::rewrite(const TMask& m)
{
common_f(m);
return TRelation_application::rewrite(m);
common_f(m);
return TRelation_application::rewrite(m);
}
int TClifo_application::write(const TMask& m)
{
common_f(m);
return TRelation_application::write(m);
common_f(m);
return TRelation_application::write(m);
}
bool TClifo_application::remove()
{
int err = TRelation_application::remove();
if (err == NOERR)
{
TRelation * r = get_relation();
TToken_string key;
key.add(r->lfile().get(CLI_TIPOCF));
key.add(r->lfile().get(CLI_CODCF));
key.add("V");
TRecord_array ns_ban(key, LF_CFBAN);
ns_ban.remove();
key.cut(0);
key.add(r->lfile().get(CLI_TIPOCF));
key.add(r->lfile().get(CLI_CODCF));
key.add("N");
TRecord_array vs_ban(key, LF_CFBAN);
vs_ban.remove();
}
return err == NOERR;
}
void TClifo_application::mask2ini(const TMask& m, TConfig& ini)
@ -795,6 +938,7 @@ void TClifo_application::mask2ini(const TMask& m, TConfig& ini)
get_pnae(m, nonacceff, nonscadeff);
ini.set(CFV_NONACCEFF, nonacceff, "17");
ini.set(CFV_NONSCADEFF, nonscadeff, "17");
int i;
if (_gesven)
{
@ -805,7 +949,6 @@ void TClifo_application::mask2ini(const TMask& m, TConfig& ini)
const int n_items = rows.items();
TString16 para;
int i;
for (i = 0; i < n_items; i++)
{
@ -838,6 +981,53 @@ void TClifo_application::mask2ini(const TMask& m, TConfig& ini)
else
break;
}
}
TString p;
p << LF_CFBAN << ",V";
TSheet_field & ns_sh = m.sfield(F_BANA);
for (int i = 0; i < ns_sh.items(); i++)
{
TString para(p); para << "," << i + 1;
TToken_string & row = ns_sh.row(i);
ini.set(CFBAN_ABI, row.get(ns_sh.cid2index(F_BBAN_ABI)), para);
ini.set(CFBAN_CAB, row.get(ns_sh.cid2index(F_BBAN_CAB)), para);
ini.set(CFBAN_NUMCC, row.get(ns_sh.cid2index(F_BBAN_CONTO)), para);
ini.set(CFBAN_IBAN, row.get(ns_sh.cid2index(F_IBAN)), para);
}
for ( ; ; i++)
{
TString para(p); para << "," << i + 1;
if (ini.set_paragraph(para))
ini.remove_all();
else
break;
}
p.cut(0);
p << LF_CFBAN << ",N";
TSheet_field & vs_sh = m.sfield(F_BANP);
for (i = 0; i < vs_sh.items(); i++)
{
TString para(p); para << "," << i + 1;
TToken_string & row = vs_sh.row(i);
ini.set(CFBAN_ABI, row.get(vs_sh.cid2index(F_BBAN_ABI)), para);
ini.set(CFBAN_CAB, row.get(vs_sh.cid2index(F_BBAN_CAB)), para);
ini.set(CFBAN_PROGPR, row.get(vs_sh.cid2index(F_PROGPR)), para);
}
for ( ; ; i++)
{
TString para(p); para << "," << i + 1;
if (ini.set_paragraph(para))
ini.remove_all();
else
break;
}
}
@ -908,6 +1098,7 @@ void TClifo_application::get_pnae(const TMask& m, TToken_string& nonacceff, TTok
void TClifo_application::common_f(const TMask& m)
{
TString alter = m.get(F_RICALT);
int i;
if (alter.blank() && m.mode() == MODE_INS)
((TMask &)m).set(F_RICALT, m.get(F_RAGSOC).left(m.field(F_RICALT).size()));
@ -928,7 +1119,7 @@ void TClifo_application::common_f(const TMask& m)
TArray& rows=indsp_sheet().rows_array();
int n_items = rows.items();
for (int i = 0; i < n_items; i++)
for (i = 0; i < n_items; i++)
{
TToken_string& row=(TToken_string&)rows[i];
TRectype& rec=_rel->indirizzo(i);
@ -953,6 +1144,73 @@ void TClifo_application::common_f(const TMask& m)
rec.put(IND_CODIND,i+1);
}
}
TToken_string key;
key.add(m.get(F_TIPOCF));
key.add(m.get(F_CODCF));
key.add("V");
TRecord_array ns_ban(key, LF_CFBAN);
TRectype& clifo = get_relation()->curr(LF_CLIFO);
TSheet_field & ns_sh = m.sfield(F_BANA);
const int nsrow = ns_sh.items();
for (i = 0; i < nsrow; i++)
{
TToken_string & row = ns_sh.row(i);
TRectype & ban = ns_ban.row(i + 1, true);
ban.put(CFBAN_ABI, row.get(ns_sh.cid2index(F_BBAN_ABI)));
ban.put(CFBAN_CAB, row.get(ns_sh.cid2index(F_BBAN_CAB)));
ban.put(CFBAN_NUMCC, row.get(ns_sh.cid2index(F_BBAN_CONTO)));
ban.put(CFBAN_IBAN, row.get(ns_sh.cid2index(F_IBAN)));
if (i == 0)
{
clifo.put(CLI_CODABI, row.get(ns_sh.cid2index(F_BBAN_ABI)));
clifo.put(CLI_CODCAB, row.get(ns_sh.cid2index(F_BBAN_CAB)));
clifo.put(CLI_NUMCC, row.get(ns_sh.cid2index(F_BBAN_CONTO)));
clifo.put(CLI_IBAN, row.get(ns_sh.cid2index(F_IBAN)));
}
}
if (nsrow == 0)
{
clifo.zero(CLI_CODABI);
clifo.zero(CLI_CODCAB);
clifo.zero(CLI_NUMCC);
clifo.zero(CLI_IBAN);
}
if (ns_ban.write(true) != NOERR)
return;
key.cut(0);
key.add(m.get(F_TIPOCF));
key.add(m.get(F_CODCF));
key.add("N");
TRecord_array vs_ban(key, LF_CFBAN);
TSheet_field & vs_sh = m.sfield(F_BANP);
const int vsrow = vs_sh.items();
for (i = 0; i < vsrow; i++)
{
TToken_string & row = vs_sh.row(i);
TRectype & ban = vs_ban.row(i + 1, true);
ban.put(CFBAN_ABI, row.get(vs_sh.cid2index(F_BBAN_ABI)));
ban.put(CFBAN_CAB, row.get(vs_sh.cid2index(F_BBAN_CAB)));
ban.put(CFBAN_PROGPR, row.get(vs_sh.cid2index(F_PROGPR)));
if (i == 0)
{
cfven.put(CFV_CODABIPR, row.get(ns_sh.cid2index(F_BBAN_ABI)));
cfven.put(CFV_CODCABPR, row.get(ns_sh.cid2index(F_BBAN_CAB)));
}
}
if (vsrow == 0)
{
cfven.zero(CFV_CODABIPR);
cfven.zero(CFV_CODCABPR);
}
vs_ban.write(true);
}
void TClifo_application::indsp_sheet_rebuilder()
@ -1046,7 +1304,6 @@ bool TClifo_application::user_create() // initvar e arrmask
LF_ANAGFIS, LF_PCON, LF_COMUNI, 0);
_has_cg = has_module(CGAUT, CHK_DONGLE);
_rel = new TClifoVI;
_msk = new TMask("cg0200a") ;
_msk->set_handler(F_TIPOCF, tipocf_handler);
@ -1075,8 +1332,7 @@ bool TClifo_application::user_create() // initvar e arrmask
bool TClifo_application::user_destroy() // releasev e arrmask
{
delete _msk;
delete _rel;
delete _rel;
return true;
}

View File

@ -40,19 +40,7 @@
#define F_CODPAG 131
#define F_DESPAG 331
#define F_RAGSOC1 132
#define F_CODABI 133
#define F_CODCAB 134
#define F_IBAN 350
#define F_IBAN_STATO 351
#define F_IBAN_CHECK 352
#define F_BBAN 353
#define F_BBAN_CIN 354
#define F_BBAN_ABI 355
#define F_BBAN_CAB 356
#define F_BBAN_CONTO 357
#define F_DESBAN 140
#define F_CODVAL 136
#define F_DESVAL 336
#define F_FIDO 139
@ -137,7 +125,6 @@
#define F_RAGSOCALLEG 228
#define F_CODDEP 230
#define F_RAGGEFF 232
#define F_NUMCC 233
#define F_CODLIST1 234
#define F_ESACC 235
#define F_ESALL 236
@ -174,6 +161,23 @@
#define F_DOCMAIL 307
#define DLG_ANAG 308
#define DLG_CONTRLAV 309
#define F_BANA 310
#define F_BANP 311
#define F_DIPPUBB 312
#define F_ENTE 313
#define F_AUTORIZ 314
#define F_IBAN_STATO 101
#define F_IBAN_CHECK 102
#define F_BBAN_CIN 103
#define F_BBAN_ABI 104
#define F_BBAN_CAB 105
#define F_BBAN_CONTO 106
#define F_PROGPR 107
#define F_DESBAN 108
#define F_IBAN 109
#define F_BBAN 350
//////////////////////////////////////

View File

@ -626,7 +626,7 @@ END
ENDPAGE
PAGE "Banche/Condizioni" -1 -1 78 19
PAGE "Banche" -1 -1 78 19
GROUPBOX DLG_NULL 76 4
BEGIN
@ -663,115 +663,86 @@ BEGIN
GROUP 6
END
NUMBER F_CODABI 5
TEXT DLG_NULL
BEGIN
PROMPT 2 4 "Banca d'appoggio "
FIELD CODABI
FLAGS "Z"
USE %BAN SELECT CODTAB ?= "?????"
INPUT CODTAB F_CODABI
DISPLAY "Codice ABI" CODTAB[1,5]
DISPLAY "Denominazione@50" S0
OUTPUT F_CODABI CODTAB[1,5]
HELP "Codice ABI banca del C/F"
CHECKTYPE NORMAL
MESSAGE COPY,F_BBAN_ABI
PROMPT 0 4 "@bBanche di appoggio"
END
NUMBER F_CODCAB 5
SPREADSHEET F_BANA 80 7
BEGIN
PROMPT 28 4 ""
FIELD CODCAB
FLAGS "Z"
USE %BAN SELECT CODTAB ?= "??????????"
INPUT CODTAB[1,5] F_CODABI
INPUT CODTAB[6,10] F_CODCAB
DISPLAY "Codice ABI" CODTAB[1,5]
DISPLAY "Codice CAB" CODTAB[6,10]
DISPLAY "Denominazione@50" S0
OUTPUT F_CODABI CODTAB[1,5]
OUTPUT F_CODCAB CODTAB[6,10]
OUTPUT F_DESBAN S0
HELP "Codice CAB banca del C/F"
CHECKTYPE NORMAL
MESSAGE COPY,F_BBAN_CAB
PROMPT 0 5 ""
ITEM "IBAN\nStato"
ITEM "IBAN\nCheck"
ITEM "IBAN\nCIN"
ITEM "IBAN\nABI"
ITEM "IBAN\nCAB"
ITEM "IBAN\nConto@12"
ITEM "@1"
ITEM "Descrizione@50"
ITEM "IBAN@27"
END
STRING F_DESBAN 50 37
TEXT DLG_NULL
BEGIN
PROMPT 37 4 ""
USE %BAN KEY 2 SELECT CODTAB ?= "??????????"
INPUT S0 F_DESBAN
DISPLAY "Denominazione@50" S0
DISPLAY "Codice ABI" CODTAB[1,5]
DISPLAY "Codice CAB" CODTAB[6,10]
COPY OUTPUT F_CODCAB
PROMPT 0 14 "@bBanche di presentazione"
END
STRING F_NUMCC 20
SPREADSHEET F_BANP 80 7
BEGIN
PROMPT 2 5 "Conto corrente "
FIELD NUMCC
FLAGS "U"
PROMPT 0 15 ""
ITEM "IBAN\nStato"
ITEM "IBAN\nCheck"
ITEM "IBAN\nCIN"
ITEM "IBAN\nABI"
ITEM "IBAN\nCAB"
ITEM "IBAN\nConto@12"
ITEM "Progressivo"
ITEM "Descrizione@50"
ITEM "IBAN@27"
END
STRING F_IBAN 34
ENDPAGE
PAGE "Condizioni" -1 -1 78 19
GROUPBOX DLG_NULL 76 4
BEGIN
PROMPT 2 60 ""
PROMPT 1 0 "Dati identificativi"
END
LIST DLG_NULL 1 11
BEGIN
PROMPT 2 1 "Tipo "
FLAGS "D"
FIELD IBAN
GROUP 1
ITEM "C|Clienti"
ITEM "F|Fornitori"
END
STRING F_IBAN_STATO 2
NUMBER DLG_NULL 6
BEGIN
PROMPT 2 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
PROMPT 2 2 "Codice "
FLAGS "RD"
GROUP 2
END
NUMBER F_IBAN_CHECK 2
STRING DLG_NULL 30
BEGIN
PROMPT 24 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
PROMPT 25 1 "Cognome/Rag. Soc. "
FLAGS "D"
GROUP 3
END
STRINGA F_BBAN 30
STRING DLG_NULL 20
BEGIN
PROMPT 33 6 "BBAN "
FLAGS "UH"
PROMPT 25 2 "Nome/Seconda parte Rag. Soc. "
FLAGS "D"
GROUP 6
END
STRINGA F_BBAN_CIN 1
BEGIN
PROMPT 33 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 41 6 ""
FLAGS "DGZ"
END
NUMBER F_BBAN_CAB 5
BEGIN
PROMPT 48 6 ""
FLAGS "DGZ"
END
STRING F_BBAN_CONTO 12
BEGIN
PROMPT 55 6 ""
FLAGS "UZ"
VALIDATE CHECK_BBAN_FUNC F_BBAN F_BBAN_CIN F_BBAN_ABI F_BBAN_CAB F_BBAN_CONTO
END
STRING F_CODVAL 3
BEGIN
PROMPT 2 8 "Valuta "
PROMPT 2 4 "Valuta "
FLAGS "UZ"
FIELD CODVAL
USE %VAL
@ -785,7 +756,7 @@ END
STRING F_DESVAL 50
BEGIN
PROMPT 22 8 ""
PROMPT 22 4 ""
USE %VAL KEY 2
INPUT S0 F_DESVAL
DISPLAY "Descrizione@50" S0
@ -796,7 +767,7 @@ END
STRING F_CODVALINTRA 3
BEGIN
PROMPT 2 9 "Valuta INTRA "
PROMPT 2 5 "Valuta INTRA "
FLAGS "UZ"
FIELD VALINTRA
COPY USE F_CODVAL
@ -810,7 +781,7 @@ END
STRING F_DESVALINTRA 50
BEGIN
PROMPT 22 9 ""
PROMPT 22 5 ""
COPY USE F_DESVAL
INPUT S0 F_DESVALINTRA
COPY DISPLAY F_DESVAL
@ -821,7 +792,7 @@ END
STRING F_CODLIN 1
BEGIN
PROMPT 2 10 "Lingua "
PROMPT 2 6 "Lingua "
FIELD CODLIN
USE %LNG
FLAGS "U"
@ -836,7 +807,7 @@ END
STRING F_DESLIN 50
BEGIN
PROMPT 22 10 ""
PROMPT 22 6 ""
USE %LNG KEY 2
INPUT S0 F_DESLIN
DISPLAY "Descrizione@50" S0
@ -847,7 +818,7 @@ END
STRING F_CODPAG 4
BEGIN
PROMPT 2 11 "Pagamento "
PROMPT 2 7 "Pagamento "
FIELD CODPAG
FLAGS "U#"
USE %CPG
@ -863,7 +834,7 @@ END
STRING F_DESPAG 50
BEGIN
PROMPT 22 11 ""
PROMPT 22 7 ""
USE %CPG KEY 2
INPUT S0 F_DESPAG
DISPLAY "Descrizione@50" S0
@ -875,7 +846,7 @@ END
CURRENCY F_FIDO 15
BEGIN
PROMPT 2 12 "Fido "
PROMPT 2 8 "Fido "
FIELD FIDO
DRIVENBY F_CODVAL
HELP "Importo massimo fido del cliente/fornitore"
@ -883,18 +854,18 @@ END
GROUPBOX DLG_NULL 76 3
BEGIN
PROMPT 1 13 "@bConto cliente/fornitore"
PROMPT 1 9 "@bConto cliente/fornitore"
END
NUMBER F_GRUPPO 3
BEGIN
PROMPT 2 14 "Grp."
PROMPT 2 10 "Grp."
FIELD GRUPPO
END
NUMBER F_CONTO 3
BEGIN
PROMPT 11 14 "Cnt."
PROMPT 11 10 "Cnt."
FIELD CONTO
USE LF_PCON SELECT (CONTO!="")&&(SOTTOCONTO="")&&(TMCF=#F_TIPOCF)
INPUT GRUPPO F_GRUPPO
@ -912,7 +883,7 @@ END
STRING F_DESCONTO 50
BEGIN
PROMPT 22 14 ""
PROMPT 22 10 ""
USE LF_PCON KEY 2 SELECT (CONTO!="")&&(SOTTOCONTO="")&&(TMCF=#F_TIPOCF)
INPUT DESCR F_DESCONTO
DISPLAY "Descrizione@50" DESCR
@ -925,18 +896,18 @@ END
GROUPBOX DLG_RIC 76 4
BEGIN
PROMPT 1 16 "@bConto di ricavo"
PROMPT 1 12 "@bConto di ricavo"
END
GROUPBOX DLG_CST 76 4
BEGIN
PROMPT 1 16 "@bConto di costo"
PROMPT 1 12 "@bConto di costo"
FLAGS "H"
END
NUMBER F_GRUPPORIC 3
BEGIN
PROMPT 2 17 "Gruppo "
PROMPT 2 13 "Gruppo "
FIELD GRUPPORIC
FLAGS "R"
HELP "Gruppo di contropartita"
@ -944,7 +915,7 @@ END
NUMBER F_CONTORIC 3
BEGIN
PROMPT 27 17 "Conto "
PROMPT 27 13 "Conto "
FIELD CONTORIC
FLAGS "R"
HELP "Conto di contropartita"
@ -952,7 +923,7 @@ END
NUMBER F_SOTTOCRIC 6
BEGIN
PROMPT 47 17 "Sottoconto "
PROMPT 47 13 "Sottoconto "
FIELD SOTTOCRIC
FLAGS "R"
USE LF_PCON SELECT SOTTOCONTO!=""
@ -974,7 +945,7 @@ END
STRING F_DESCRIC 50
BEGIN
PROMPT 2 18 "Descrizione "
PROMPT 2 14 "Descrizione "
USE LF_PCON KEY 2 SELECT SOTTOCONTO!=""
INPUT DESCR F_DESCRIC
DISPLAY "Descrizione@50" DESCR
@ -986,9 +957,32 @@ BEGIN
ADD RUN cg0 -0
END
BOOLEAN F_DIPPUBB
BEGIN
PROMPT 2 16 "Dipendente pubblico"
FIELD DIPPUBB
MESSAGE FALSE CLEAR,40@
MESSAGE TRUE ENABLE,40@
GROUP 4
END
STRING F_ENTE 50
BEGIN
PROMPT 2 17 "Ente "
FIELD ENTE
GROUP 4 40
END
STRING F_AUTORIZ 50
BEGIN
PROMPT 2 18 "Autorizzazione"
FIELD AUTORIZ
GROUP 4 40
END
ENDPAGE
PAGE "Banche/Effetti" -1 -1 78 19
PAGE "Effetti" -1 -1 78 19
GROUPBOX DLG_NULL 76 4
BEGIN
@ -1025,86 +1019,48 @@ BEGIN
GROUP 6
END
NUMBER F_CODABIPR 5
BEGIN
PROMPT 2 4 "Banca presentazione ABI "
FIELD LF_CFVEN->CODABIPR
FLAGS "Z"
COPY USE F_CODABI
INPUT CODTAB F_CODABIPR
COPY DISPLAY F_CODABI
OUTPUT F_CODABIPR CODTAB[1,5]
HELP "Codice ABI della banca presentazione effetti"
CHECKTYPE NORMAL
END
NUMBER F_CODBANPR 5
BEGIN
PROMPT 43 4 "CAB "
FIELD LF_CFVEN->CODCABPR
FLAGS "Z"
COPY USE F_CODCAB
INPUT CODTAB[1,5] F_CODABIPR
INPUT CODTAB[6,10] F_CODBANPR
COPY DISPLAY F_CODCAB
OUTPUT F_CODABIPR CODTAB[1,5]
OUTPUT F_CODBANPR CODTAB[6,10]
OUTPUT F_DESBANPR S0
HELP "Codice CAB della banca presentazione effetti"
CHECKTYPE NORMAL
END
STRING F_DESBANPR 50 47
BEGIN
PROMPT 2 5 "Denominazione "
COPY USE F_DESBAN
INPUT S0 F_DESBANPR
COPY DISPLAY F_DESBAN
COPY OUTPUT F_CODBANPR
END
CURRENCY F_IMPMINEFF 10
BEGIN
PROMPT 2 6 "Importo minimo effetti "
PROMPT 2 4 "Importo minimo effetti "
FIELD LF_CFVEN->IMPMINEFF
END
BOOLEAN F_EMEFFRICH
BEGIN
PROMPT 43 6 "Emissione effetti"
PROMPT 43 4 "Emissione effetti"
FIELD LF_CFVEN->EMEFFRICH
END
BOOLEAN F_RAGGEFF
BEGIN
PROMPT 43 7 "Raggruppamento effetti"
PROMPT 43 5 "Raggruppamento effetti"
FIELD LF_CFVEN->RAGGEFF
END
NUMBER F_NUMESC 5
BEGIN
PROMPT 2 8 "Ultimo Nr. estratto conto "
PROMPT 2 6 "Ultimo Nr. estratto conto "
FIELD LF_CFVEN->NUMESC
GROUP 9
END
NUMBER F_MAXSOLL 2
BEGIN
PROMPT 43 8 "Numero max solleciti "
PROMPT 43 6 "Numero max solleciti "
FIELD LF_CFVEN->MAXSOLL
GROUP 7 9
END
DATE F_DATAESC
BEGIN
PROMPT 2 9 "Data ultimo estratto conto "
PROMPT 2 7 "Data ultimo estratto conto "
FIELD LF_CFVEN->DATAESC
GROUP 9
END
DATE F_DATASOLL
BEGIN
PROMPT 43 9 "Data ultimo sollecito "
PROMPT 43 7 "Data ultimo sollecito "
FIELD LF_CFVEN->DATASOLL
GROUP 7 9
END
@ -1112,7 +1068,7 @@ END
/* Campo non ancora utilizzato
STRING F_PROFSOLL 5
BEGIN
PROMPT 45 10 "Codice profilo "
PROMPT 45 8 "Codice profilo "
FIELD LF_CFVEN->PROFSOLL
GROUP 7
END
@ -1120,12 +1076,12 @@ END
TEXT DLG_NULL
BEGIN
PROMPT 1 10 "@bPeriodi di non accettazione effetti"
PROMPT 1 8 "@bPeriodi di non accettazione effetti"
END
SPREADSHEET F_NONACCEFF 76
BEGIN
PROMPT 1 11 "Periodi effetti"
PROMPT 1 9 "Periodi effetti"
ITEM "Dal\nGiorno@8"
ITEM "Dal\nMese"
ITEM "Al\nGiorno@8"
@ -2070,6 +2026,228 @@ ENDPAGE
ENDMASK
PAGE "Banche di appoggio" -1 -1 80 8
STRING F_IBAN_STATO 2
BEGIN
PROMPT 2 2 "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 24 2 ""
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_CIN 1
BEGIN
PROMPT 33 2 "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 41 2 ""
USE %BAN SELECT CODTAB ?= "?????"
INPUT CODTAB F_BBAN_ABI
DISPLAY "Codice ABI" CODTAB[1,5]
DISPLAY "Denominazione@50" S0
OUTPUT F_BBAN_ABI CODTAB[1,5]
HELP "Codice ABI banca del C/F"
CHECKTYPE NORMAL
FLAGS "Z"
END
NUMBER F_BBAN_CAB 5
BEGIN
PROMPT 50 2 ""
USE %BAN SELECT CODTAB ?= "??????????"
INPUT CODTAB[1,5] F_BBAN_ABI
INPUT CODTAB[6,10] F_BBAN_CAB
DISPLAY "Codice ABI" CODTAB[1,5]
DISPLAY "Codice CAB" CODTAB[6,10]
DISPLAY "Denominazione@50" S0
OUTPUT F_BBAN_ABI CODTAB[1,5]
OUTPUT F_BBAN_CAB CODTAB[6,10]
OUTPUT F_DESBAN S0
HELP "Codice CAB banca del C/F"
CHECKTYPE NORMAL
FLAGS "Z"
END
STRING F_BBAN_CONTO 12
BEGIN
PROMPT 59 2 ""
FLAGS "UZ"
VALIDATE CHECK_BBAN_FUNC F_BBAN F_BBAN_CIN F_BBAN_ABI F_BBAN_CAB F_BBAN_CONTO
END
NUMBER F_PROGPR 2
BEGIN
PROMPT 2 60 ""
FLAGS "D"
END
STRING F_DESBAN 50 40
BEGIN
PROMPT 20 4 "Descrizione "
USE %BAN KEY 2 SELECT CODTAB ?= "??????????"
INPUT S0 F_DESBAN
DISPLAY "Denominazione@50" S0
DISPLAY "Codice ABI" CODTAB[1,5]
DISPLAY "Codice CAB" CODTAB[6,10]
COPY OUTPUT F_BBAN_CAB
END
STRING F_IBAN 27
BEGIN
PROMPT 2 6 "IBAN "
FLAGS "D"
END
STRING F_BBAN 23
BEGIN
PROMPT 2 60 "BBAN "
FLAGS "HD"
END
ENDPAGE
TOOLBAR "topbar" 0 0 0 2
BUTTON DLG_OK 10 2
BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_DELREC 10 2
BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -33 -1 ""
END
ENDPAGE
ENDMASK
PAGE "Banche di presentazione" -1 -1 80 8
STRING F_IBAN_STATO 2
BEGIN
PROMPT 2 2 "Codice IBAN "
FLAGS "UDG"
END
NUMBER F_IBAN_CHECK 2
BEGIN
PROMPT 24 2 ""
FLAGS "UZD"
END
STRINGA F_BBAN_CIN 1
BEGIN
PROMPT 33 42 "BBAN "
FLAGS "UDG"
END
NUMBER F_BBAN_ABI 5
BEGIN
PROMPT 41 2 ""
USE BNP
JOIN %BAN ALIAS 100 INTO CODTAB==CODTAB[1,10]
INPUT CODTAB[1,5] F_BBAN_ABI
INPUT CODTAB[6,10] F_BBAN_CAB
INPUT CODTAB[11,12] F_PROGPR
DISPLAY "ABI@5" CODTAB[1,5]
DISPLAY "CAB@5" CODTAB[6,10]
DISPLAY "Progr." CODTAB[11,12]
DISPLAY "IBAN@25" S3
DISPLAY "Denominazione@50" 100@->S0
OUTPUT F_BBAN_ABI CODTAB[1,5]
OUTPUT F_BBAN_CAB CODTAB[6,10]
OUTPUT F_PROGPR CODTAB[11,12]
OUTPUT F_DESBAN 100@->S0
OUTPUT F_IBAN S3
OUTPUT F_IBAN_STATO S3[1,2]
OUTPUT F_IBAN_CHECK S3[3,4]
OUTPUT F_BBAN_CIN S3[5,5]
OUTPUT F_BBAN_CONTO S3[16,27]
HELP "Codice ABI banca del C/F"
CHECKTYPE SEARCH
FLAGS "Z"
END
NUMBER F_BBAN_CAB 5
BEGIN
PROMPT 50 2 ""
COPY ALL F_BBAN_ABI
HELP "Codice CAB banca del C/F"
CHECKTYPE NORMAL
FLAGS "Z"
END
STRING F_BBAN_CONTO 12
BEGIN
PROMPT 59 2 ""
FLAGS "UDZ"
END
NUMBER F_PROGPR 2
BEGIN
PROMPT 2 4 "Progressivo "
COPY ALL F_BBAN_ABI
FLAGS "Z"
END
STRING F_DESBAN 50 40
BEGIN
PROMPT 20 4 "Descrizione "
USE %BAN KEY 2 SELECT (CODTAB ?= "??????????"&&100@->CODTAB!="")
JOIN BNP ALIAS 100 INTO CODTAB==CODTAB
INPUT S0 F_DESBAN
DISPLAY "Denominazione@50" S0
DISPLAY "Codice ABI" CODTAB[1,5]
DISPLAY "Codice CAB" CODTAB[6,10]
COPY OUTPUT F_BBAN_CAB
END
STRING F_IBAN 27
BEGIN
PROMPT 2 6 "IBAN "
FLAGS "D"
END
ENDPAGE
TOOLBAR "topbar" 0 0 0 2
BUTTON DLG_OK 10 2
BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_DELREC 10 2
BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -33 -1 ""
END
ENDPAGE
ENDMASK
PAGE "Effetti" -1 -1 42 10
GROUPBOX DLG_NULL 40 4

View File

@ -1,3 +1,3 @@
20
0
$clifo|0|0|737|0|Clienti/Fornitori|||
$clifo|0|0|838|0|Clienti/Fornitori|||

View File

@ -1,5 +1,5 @@
20
58
61
TIPOCF|1|1|0|Tipo <C>liente <F>ornitore
CODCF|3|6|0|Codice
RAGSOC|1|50|0|Ragione sociale
@ -58,6 +58,9 @@ REFERENTE|1|50|0|Persona referente presso il cliente/fornitore
VALINTRA|1|3|0|Codice Valuta Intracomunitaria
CODCFASS|3|6|0|Codice cliente (fornitori) o fornitore (clienti) associato
CODCFFATT|3|6|0|Codice cliente (fornitore) cui fatturare
DIPPUBB|8|1|0|Dipendente Pubblico
ENTE|1|50|0|Ente di appartenenza (Dipendente Pubblico)
AUTORIZ|1|50|0|Autorizzazione (Dipendente Pubblico)
6
TIPOCF+CODCF|
TIPOCF+UPPER(RAGSOC)|X

View File

@ -1,3 +1,3 @@
98
0
$cfban|0|0|77|0|Banche per clienti e fornitori|||
$cfban|0|0|79|0|Banche per clienti e fornitori|||

View File

@ -1,12 +1,14 @@
98
8
9
TIPOCF|1|1|0|Tipo (<C>liente/<F>ornitore)
CODCF|3|6|0|Codice cliente/fornitore
TIPOBAN|1|2|0|Tipo Banca (<N>ostra, <V>ostra)
NRIGA|2|3|0|Numero riga
ABI|9|5|0|ABI
CAB|9|5|0|CAB
PROGPR|9|2|0|Progressivo per banche di presentazione
NUMCC|1|20|0|Numero conto corrente
IBAN|1|34|0|IBAN
1
2
TIPOCF+CODCF+TIPOBAN+NRIGA|
TIPOCF+CODCF+TIPOBAN+ABI+CAB+NUMCC|X

View File

@ -68,6 +68,9 @@
#define CLI_REFERENTE "REFERENTE"
#define CLI_VALINTRA "VALINTRA"
#define CLI_CODCFASS "CODCFASS"
#define CLI_DIPPUBB "DIPPUBB"
#define CLI_ENTE "ENTE"
#define CLI_AUTORIZ "AUTORIZ"
#endif

View File

@ -874,7 +874,7 @@ bool ini_get_bool(int cfg, const char* para, const char* name, bool defval, int
int ini_get_int(const char* file, const char* para, const char* name, int defval, int idx)
{
DECLARE_VARNAME(name, idx);
return xvt_sys_get_profile_int(file, para, name, defval);
return xvt_sys_get_profile_int(file, para, varname, defval);
}
bool ini_set_int(const char* file, const char* paragraph, const char* name, int val, int idx)

View File

@ -1006,6 +1006,28 @@ void TControl::set_rect(const RCT& r)
xvt_vobj_move((WINDOW)_obj->v.btn->btnctl, &r);
}
}
void TControl::set_rect(short cx, short cy, short cwidth, short cheight, short clen)
{
XI_RCT rct = coord2rct(_obj->itf, cx, cy, cwidth + 1, cheight);
xi_fu_to_pu(_obj->itf, (XI_PNT*)&rct, 2);
set_rect((const RCT &)rct);
if ( _obj->type == XIT_FIELD)
{
if (_obj->v.field->button)
{
const short delta = _obj->v.field->btn_rct.left - (_obj->v.field->rct.right + CAMPI_SCAVATI);
_obj->v.field->btn_rct.left -= delta;
_obj->v.field->btn_rct.right -= delta;
}
if (clen > 0)
_obj->v.field->field_width = clen + 1;
}
}
unsigned long TControl::flags2attr(const char* flags) const
{

View File

@ -117,6 +117,7 @@ public:
virtual RCT& get_rect(RCT& r) const;
virtual void set_rect(const RCT& r);
virtual void set_rect(short cx, short cy, short cwidth, short cheight, short clen = 0);
// @cmember imposta la posizione del cursore a <pos>
void set_caret_pos(int pos = -1);

View File

@ -463,6 +463,11 @@ void TMask_field::set_rect(const RCT& r)
if (_ctl) _ctl->set_rect(r);
}
void TMask_field::set_rect(short cx, short cy, short cwidth, short cheight, short clen)
{
if (_ctl) _ctl->set_rect(cx, cy, cwidth, cheight, clen);
}
// Certified 100%
// @doc EXTERNAL
@ -978,8 +983,7 @@ HIDDEN void run_app(TMask& mask, TToken_string& msg)
{
if (*f == '#')
{
const int id = atoi(++f);
a << mask.get(id);
mask.focus_field().evaluate_field(f);
break;
}
else

View File

@ -166,7 +166,8 @@ public:
virtual RCT& get_rect(RCT& r) const;
virtual void set_rect(const RCT& r);
virtual void set_rect(short cx, short cy, short cwidth, short cheight, short clen = 0);
// @cmember Ritorna l'identificatore del controllo
virtual short dlg() const;

View File

@ -30,6 +30,16 @@ bool TTable_module_application::protected_record(TRectype& rec)
return rec.get_bool("FPC");
}
void TTable_module_application::set_mask(TMask * mask)
{
if (mask != NULL)
{
if (_msk != NULL)
delete _msk;
_msk = mask;
}
}
TMask* TTable_module_application::user_create_mask()
{
TModule_table& tab = (TModule_table&)file();

View File

@ -27,6 +27,7 @@ protected:
virtual bool user_destroy();
virtual bool protected_record(TRectype& rec);
virtual TMask* get_mask(int mode);
virtual void set_mask(TMask * mask);
virtual TRelation* get_relation() const;
virtual void print();

View File

@ -983,7 +983,7 @@ HIDDEN bool _iban_val(TMask_field& f, KEY key)
if (f.dlg() == id[1]) // Campo Stato IBAN
{
if (key == K_TAB && !m.is_running())
if (key == K_TAB && !f.focusdirty())
{
const TString& iban = m.get(id[0]);
m.set(id[1], iban.left(2));