Merge branch 'R_10_00' of http://10.65.20.33/sirio/CAMPO/campo into R_10_00

This commit is contained in:
Simone Palacino 2019-09-04 12:21:21 +02:00
commit e365b2ed12
17 changed files with 1381 additions and 873 deletions

3
cd/test/cg0866.txt Normal file
View File

@ -0,0 +1,3 @@
cg2100c.msk
Sistemato campo "Collegamento a FPPRO" in prima nota

98
cd/test/cg0866a.ini Normal file
View File

@ -0,0 +1,98 @@
[Main]
Demo=0
[cg2]
File(101) = cg2100c.msk|X
Patch = 0866
Versione = 21511200
[cg99]
Kill(0) = bastscc.msk|x
Kill(1) = bastntb.rep|x
Kill(2) = bastcco.rep|x
Kill(3) = bastcve.rep|x
Kill(4) = batblbu.msk|x
Kill(5) = batbpdb.msk|x
Kill(6) = bastpdb.msk|x
Kill(7) = cgtbcon.msk|x
Kill(8) = batbnot.msk|x
Kill(9) = batblia.msk|x
Kill(10) = bastver.msk|x
Kill(11) = bastivd.rep|x
Kill(12) = batbcfi.msk|x
Kill(13) = bastcco.msk|x
Kill(14) = batbndo.msk|x
Kill(15) = bastndo.rep|x
Kill(16) = batbleg.msk|x
Kill(17) = batbarb.msk|x
Kill(18) = batbscc.msk|x
Kill(19) = bastpor.rep|x
Kill(20) = batbind.msk|x
Kill(21) = batbreg.msk|x
Kill(22) = bastcve.msk|x
Kill(23) = batbins.msk|x
Kill(24) = bastcfi.msk|x
Kill(25) = batbcam.msk|x
Kill(26) = batbver.msk|x
Kill(27) = batblia.msk|x
Kill(28) = batbvet.msk|x
Kill(29) = bastarb.rep|x
Kill(30) = bastdpn.msk|x
Kill(31) = bastnot.msk|x
Kill(32) = batbntb.msk|x
Kill(33) = bastzon.rep|x
Kill(34) = bastmsp.msk|x
Kill(35) = batbcve.msk|x
Kill(36) = batbesc.msk|x
Kill(37) = bastdpn.rep|x
Kill(38) = bastreg.msk|x
Kill(39) = bastver.rep|x
Kill(40) = bastleg.msk|x
Kill(41) = bastntb.msk|x
Kill(42) = batbinl.msk|x
Kill(43) = bastreg.rep|x
Kill(44) = batbzon.msk|x
Kill(45) = cg2fppro.msk|x
Kill(46) = bastmsp.rep|x
Kill(47) = bastesc.msk|x
Kill(48) = batbdpn.msk|x
Kill(49) = bastndo.msk|x
Kill(50) = bastnot.rep|x
Kill(51) = batbmsp.msk|x
Kill(52) = batbpor.msk|x
Kill(53) = batbtra.msk|x
Kill(54) = bastzon.msk|x
Kill(55) = bastesc.rep|x
Kill(56) = batbdel.msk|x
Kill(57) = bastvet.msk|x
Kill(58) = bastarb.msk|x
Kill(59) = bastscc.rep|x
Kill(60) = bastpor.msk|x
Kill(61) = batbcco.msk|x
Kill(62) = bastvet.rep|x
Kill(63) = bastcfi.rep|x
Kill(64) = batbivd.msk|x
Kill(65) = bastcam.msk|x
Kill(66) = bastivd.msk|x
Kill(67) = bastleg.rep|x
Kill(68) = batbtit.msk|x
Kill(69) = bastpdb.rep|x
Kill(70) = bastcam.rep|x
[cg]
Data = 02-08-2019
Descrizione = Contabilita' Generale
Dischi = 1
Edit_19 = cg0 -0
Edit_20 = cg0 -1
Edit_26 = cg0 -4
Edit_5 = cg0 -5
Moduli = ba
OEM =
Patch = 866
PostProcess = bainst -0 CG
PreProcess =
Prezzo(1) =
Prezzo(2) =
Versione = 21511200

BIN
cd/test/cg0866a1.zip Normal file

Binary file not shown.

3
cd/test/fp0866.txt Normal file
View File

@ -0,0 +1,3 @@
fp0.exe
Aggiunta gestione contratti sanità

19
cd/test/fp0866a.ini Normal file
View File

@ -0,0 +1,19 @@
[Main]
Demo=0
[fp0]
File(0) = fp0.exe|X
Patch = 0866
Versione = 21511200
[fp]
Data = 02-08-2019
Descrizione = Fattura Elettronica
Dischi = 1
Moduli = cg,ve
OEM =
Patch = 866
PostProcess =
PreProcess =
Versione = 21511200

BIN
cd/test/fp0866a1.zip Normal file

Binary file not shown.

4
cd/test/pa0866.txt Normal file
View File

@ -0,0 +1,4 @@
pa0.exe
patbcon.msk
Aggiunta gestione contratti sanità

23
cd/test/pa0866a.ini Normal file
View File

@ -0,0 +1,23 @@
[Main]
Demo=0
[pa0]
Edit_163 = pa0 -1
File(0) = pa0.exe|X
File(4) = patbcon.msk|X
Patch = 866
Versione = 21511200
[pa]
Data = 02-08-2019
Descrizione = Fatture P.A.
Dischi = 1
Moduli = ve
OEM =
Patch = 866
PostProcess =
PreProcess =
Prezzo(1) =
Prezzo(2) =
Versione = 21511200

BIN
cd/test/pa0866a1.zip Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -540,6 +540,41 @@ BEGIN
FIELD DATA74TER
END
NUMBER F_ANNORIF 4
BEGIN
PROMPT 48 17 "Rif.partita "
FIELD LF_PARTITE->ANNO
FLAGS "U"
END
STRING F_NUMRIF 7
BEGIN
PROMPT 66 17 "/ "
FIELD LF_PARTITE->NUMPART
FLAGS "U#"
END
DATE F_DATAINC
BEGIN
PROMPT 52 19 "Data incasso "
WARNING "Data di incasso per liquidazione differita"
FIELD DATAINC
END
BOOLEAN F_COLFPPRO
BEGIN
PROMPT 1 19 "Registrazione collegata a FPPRO"
FLAGS "D"
END
STRING F_PROKEY 80
BEGIN
PROMPT 1 19 "db key"
HELP "Chiave database"
FIELD KEYFPPRO
FLAGS "H"
END
BOOLEAN F_IVAXCASSA
BEGIN
PROMPT 1 20 "IVA per cassa"
@ -547,6 +582,7 @@ BEGIN
MODULE IC
END
BOOLEAN F_LIQDIFF
BEGIN
PROMPT 25 20 "Liquidazione differita"
@ -566,28 +602,6 @@ BEGIN
ITEM "N|No"
END
DATE F_DATAINC
BEGIN
PROMPT 52 19 "Data incasso "
WARNING "Data di incasso per liquidazione differita"
FIELD DATAINC
END
NUMBER F_ANNORIF 4
BEGIN
PROMPT 48 17 "Rif.partita "
FIELD LF_PARTITE->ANNO
FLAGS "U"
END
STRING F_NUMRIF 7
BEGIN
PROMPT 66 17 "/ "
FIELD LF_PARTITE->NUMPART
FLAGS "U#"
END
STRING F_VALUTAINTRA 3
BEGIN
PROMPT 1 21 "Cambio intracom. "
@ -637,20 +651,6 @@ BEGIN
DRIVENBY F_VALUTAINTRA
END
BOOLEAN F_COLFPPRO
BEGIN
PROMPT 1 20 "Registrazione collegata a FPPRO"
FLAGS "D"
END
STRING F_PROKEY 80
BEGIN
PROMPT 1 20 "db key"
HELP "Chiave database"
FIELD KEYFPPRO
FLAGS "H"
END
BOOLEAN F_RITFATT
BEGIN
PROMPT 1 23 "Fattura in ritardo "

View File

@ -916,7 +916,9 @@ bool TDoc_fp::check_initial(TDocumentoEsteso& doc)
log(1, msg);
ok = false;
}
for (int nr = 0; nr < doc.scadenze().items(); nr++)
doc.scadenze_recalc();
for (int nr = 0; nr < doc.scadenze_items(); nr++)
{
const int rp = nr < pag.n_rate() ? nr : 0;
static TString key_class; key_class.cut(0) << pag.tipo_rata(rp) << pag.ulc_rata(rp);
@ -1024,15 +1026,27 @@ bool TDoc_fp::initialize(TDocumentoEsteso& doc)
}
const TRectype& TDoc_fp::cco(const TRectype& doc) const
{
TString80 conkey;
const TString& con = doc.get(DOC_CONTRATTO);
if (con.full())
{
char tcon = doc.get_char(DOC_MODPAG);
if (tcon < 'C') tcon = 'C';
conkey.format("%c%6ld%s", tcon, doc.get_long(DOC_CODCF), static_cast<const char*>(con));
}
return cache().get("&CON", conkey);
TString80 conkey;
const TString& con = doc.get(DOC_CONTRATTO);
if (con.full())
{
char tcon = doc.get_char(DOC_MODPAG);
if (tcon < 'C') tcon = 'C';
conkey.format("%c%6ld%s", tcon, doc.get_long(DOC_CODCF), static_cast<const char*>(con));
}
static TLocalisamfile tabmod(LF_TABMOD);
// Controllo se non sono già sul record, così evito read inutili
// Lo sto facendo a mano perchè usare cache() metterebbe FP nella colonna "MOD"
if (tabmod.get("MOD") != "PA" || tabmod.get("COD") != "CON" || tabmod.get("CODTAB") != conkey)
{
tabmod.zero();
tabmod.put("MOD", "PA");
tabmod.put("COD", "CON");
tabmod.put("CODTAB", conkey);
tabmod.read();
}
return tabmod.curr();
}
void TDoc_fp::log(int severity, const char* msg)
{
@ -1573,7 +1587,15 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
// Fuori dallo scope per dopo
const TString16 cup = doc.get(DOC_CUP);
const TString16 cig = doc.get(DOC_CIG);
const TString80 com = doc.get(DOC_CODCMS);
// Codice commessa, spostato nel campo S5 di TABCOM
TString80 com = cco(doc).get("S5");
// Se è una commessa della sanità bisogna aggiungere un cancelletto davanti e dietro
if(cco(doc).get_bool("B0"))
{
com.add_front_and_back("#");
}
// SEMPRE
// Azzera contratti
TPaf_record& paf1000f = _paf_container.get_paf("PAF1000F");
@ -2091,7 +2113,6 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
doc.scadenze_recalc(); // Ricalcola array delle rate
TString_array& scad = doc.scadenze();
const int nrate = scad.items(); // Conta rate generate
const char* rateazione = pag.cond_pag_sdi(); // A rate (TP01) o una soluzione(TP02)?
paf2400f.set("PN_RIGA", ZERO); // Al momento non gestiamo più tipologie di pagamento per documento
paf2400f.set("PN_CONDPAGAMENTO", rateazione);
@ -2119,7 +2140,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
{
log(1, TR("Non è presente il codice IBAN per il pagamento"));
}
for (int nr = 0; nr < nrate; nr++)
for (int nr = 0; nr < scad.items(); nr++)
{
paf2500f.set("PO_RIGA", long(nr + 1)); // Numero rata
const int rp = nr < pag.n_rate() ? nr : 0;

View File

@ -639,8 +639,6 @@ TVariant& TFP_expression::parse_search(const TString& str, TRiga_documento& rdoc
{
return get_value(cache().get(tabella, search, key), campo);
}
else
{
return get_value(cache().get(file, search, key), campo);
}
return get_value(cache().get(file, search, key), campo);
}

View File

@ -1038,6 +1038,17 @@ TString & TString::add_front(const char * s)
return *this;
}
TString& TString::add_back(const char* s)
{
return operator<<(s);
}
TString& TString::add_front_and_back(const char* front, const char* back)
{
add_front(front);
return add_back(back);
}
// Certified 90%
word TString::hash() const
{

View File

@ -161,6 +161,12 @@ public:
TString& insert(const char* s, int pos = 0);
// @cmember Aggiunge la stringa passata davanti
TString& add_front(const char* s);
// @cmember Aggiunge la stringa passata dietro, sta funzione non serve a un tubo, solo per rendere più bello il codice se chiamata con add_front
TString& add_back(const char* s);
// @cmember Aggiunge la prima stringa passata davanti e la seconda dietro
TString& add_front_and_back(const char * front, const char* back);
// @cmember Aggiunge la stringa passata davanti e dietro
TString& add_front_and_back(const char * s) { return add_front_and_back(s, s); }
// @cmember Elimina tutti i caratteri contenuti in k
TString& strip(const char* k);

View File

@ -1,16 +1,18 @@
#ifndef __PATBCON_H
#define __PATBCON_H
#define F_CON_TIPO 101
#define F_CON_CODCF 102
#define F_CON_RAGSOC 112
#define F_CON_CODICE 103
#define F_CON_DESCRIZIONE 113
#define F_CON_DATA 104
#define F_CON_RIFAMM 105
#define F_CON_CAUS1 121
#define F_CON_CAUS2 122
#define F_CON_CAUS3 123
#define F_CON_TIPO 101
#define F_CON_CODCF 102
#define F_CON_RAGSOC 112
#define F_CON_CODICE 103
#define F_CON_DESCRIZIONE 113
#define F_CON_DATA 104
#define F_CON_RIFAMM 105
#define F_CON_CAUS1 121
#define F_CON_CAUS2 122
#define F_CON_CAUS3 123
#define F_CON_COMCON 124
#define B_CON_ASL 125
#endif

View File

@ -79,7 +79,7 @@ BEGIN
END
GROUPBOX DLG_NULL 78 5
GROUPBOX DLG_NULL 78 6
BEGIN
PROMPT 1 5 "@bDati contratto/convenzione/ordine P.A."
END
@ -109,30 +109,42 @@ END
STRING F_CON_RIFAMM 20
BEGIN
PROMPT 24 7 "Riferimento amministrazione "
PROMPT 2 8 "Riferimento amministrazione "
FIELD S4
END
STRING F_CON_COMCON 20
BEGIN
PROMPT 2 9 "Codice commessa o convenzione "
FIELD S5
END
BOOLEAN B_CON_ASL
BEGIN
PROMPT 55 9 "Commessa per sanità"
FIELD B0
END
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 1 10 "@bCausale"
PROMPT 1 11 "@bCausale"
END
STRING F_CON_CAUS1 50
BEGIN
PROMPT 14 11 ""
PROMPT 14 12 ""
FIELD S1
END
STRING F_CON_CAUS2 50
BEGIN
PROMPT 14 12 ""
PROMPT 14 13 ""
FIELD S2
END
STRING F_CON_CAUS3 50
BEGIN
PROMPT 14 13 ""
PROMPT 14 14 ""
FIELD S3
END