Merge remote-tracking branch 'origin/R_10_00' into R_10_00

This commit is contained in:
Simone Palacino 2019-07-08 11:54:36 +02:00
commit 68d7753ec6
15 changed files with 388 additions and 8 deletions

6
cd/test/cg0850.txt Normal file
View File

@ -0,0 +1,6 @@
cg2.exe
cg2100c.msk
Issue #15
Aggiunto tipo provvisorio "B" Bilancio costi/ricavi (Prima nota, Stampa Bilancio, Apertura Chiusura conti)
Reso sempre attivo il campo provvisorio

96
cd/test/cg0850a.ini Normal file
View File

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

BIN
cd/test/cg0850a1.zip Normal file

Binary file not shown.

9
cd/test/cg0852.txt Normal file
View File

@ -0,0 +1,9 @@
cg2.exe
cg2100c.msk
cg2100t.msk
Modificati bottoni maschera fatture SDI
Corretto riporta codice fornitore se non e' valorizzato
Aggiunto scollegamento movimento da FPPRO
Riporta dati numdoc e datadoc anche col collega (per quelli che non hanno f1)
Corretto salvataggio quando si riregistra lo stesso movimento

97
cd/test/cg0852a.ini Normal file
View File

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

BIN
cd/test/cg0852a1.zip Normal file

Binary file not shown.

5
cd/test/fp0852.txt Normal file
View File

@ -0,0 +1,5 @@
fp0.exe
fp0400a.msk
Corretto controllo righe vuote IVA
Aggiunto filtro sul fornitore

20
cd/test/fp0852a.ini Normal file
View File

@ -0,0 +1,20 @@
[Main]
Demo=0
[fp1]
File(0) = fp0.exe|X
File(4) = fp0400a.msk|X
Patch = 0852
Versione = 21511200
[fp]
Data = 04-07-2019
Descrizione = Fattura Elettronica
Dischi = 1
Moduli = cg,ve
OEM =
Patch = 852
PostProcess =
PreProcess =
Versione = 21511200

BIN
cd/test/fp0852a1.zip Normal file

Binary file not shown.

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

@ -0,0 +1,3 @@
ve6100a.msk
Repubblicata maschera per patch mancante [n. 0426]

129
cd/test/ve0854a.ini Normal file
View File

@ -0,0 +1,129 @@
[Main]
Demo=0
[ve6]
File(93) = ve6100a.msk|X
Patch = 0854
Versione = 21511200
[ve99]
Kill(0) = batbcld.msk|x
Kill(1) = bastspp.rep|x
Kill(2) = basttri.msk|x
Kill(3) = batbeld.msk|x
Kill(4) = ve7700a.msk|x
Kill(5) = batbspt.msk|x
Kill(6) = ve7300a.msk|x
Kill(7) = bastcra.rep|x
Kill(8) = batbfca.msk|x
Kill(9) = bastgcg.rep|x
Kill(10) = bastabe.rep|x
Kill(11) = batbpro.msk|x
Kill(12) = bastgca.msk|x
Kill(13) = ve7400a.msk|x
Kill(14) = batbtag.msk|x
Kill(15) = batbtri.msk|x
Kill(16) = baststd.msk|x
Kill(17) = baststd.rep|x
Kill(18) = batbrfc.msk|x
Kill(19) = ve7200a.msk|x
Kill(20) = batbmre.msk|x
Kill(21) = bastctr.msk|x
Kill(22) = batbcau.msk|x
Kill(23) = ve7400a.ini|x
Kill(24) = basteld.rep|x
Kill(25) = batbrfa.msk|x
Kill(26) = bastcaa.rep|x
Kill(27) = ve7701a.ini|x
Kill(28) = bastfrd.rep|x
Kill(29) = batbgcg.msk|x
Kill(30) = bastums.rep|x
Kill(31) = bastgca.rep|x
Kill(32) = basttri.rep|x
Kill(33) = batbfrr.msk|x
Kill(34) = batbums.msk|x
Kill(35) = bastimb.rep|x
Kill(36) = bastfca.msk|x
Kill(37) = bastfrr.msk|x
Kill(38) = batbbnp.msk|x
Kill(39) = bastasf.msk|x
Kill(40) = bastnum.msk|x
Kill(41) = bastfca.rep|x
Kill(42) = ve7400conf.ini|x
Kill(43) = ve7500a.msk|x
Kill(44) = bastgmc.msk|x
Kill(45) = bastfrm.rep|x
Kill(46) = batbfsa.msk|x
Kill(47) = basttip.rep|x
Kill(48) = batbstd.msk|x
Kill(49) = bastcau.msk|x
Kill(50) = bastrfa.msk|x
Kill(51) = bastnum.rep|x
Kill(52) = bastubi.msk|x
Kill(53) = ve7600a.msk|x
Kill(54) = ve7100a.msk|x
Kill(55) = batbprs.msk|x
Kill(56) = batbspp.msk|x
Kill(57) = batbcaa.msk|x
Kill(58) = bastrfc.msk|x
Kill(59) = bastimb.msk|x
Kill(60) = bastums.msk|x
Kill(61) = batbctr.msk|x
Kill(62) = batbfid.msk|x
Kill(63) = bastspp.msk|x
Kill(64) = batbubi.msk|x
Kill(65) = bastctr.rep|x
Kill(66) = bastubi.rep|x
Kill(67) = basttag.msk|x
Kill(68) = bastcaa.msk|x
Kill(69) = bastfrr.rep|x
Kill(70) = bastcau.rep|x
Kill(71) = batbtip.msk|x
Kill(72) = basteld.msk|x
Kill(73) = bastgcg.msk|x
Kill(74) = ve7200a.frm|x
Kill(75) = bastprs.rep|x
Kill(76) = bastbnp.msk|x
Kill(77) = batbgsa.msk|x
Kill(78) = batbasf.msk|x
Kill(79) = efstbnp.rep|x
Kill(80) = eftbbnp.msk|x
Kill(81) = basttag.rep|x
Kill(82) = batbgca.msk|x
Kill(83) = ve7.exe|x
Kill(84) = ve7300a.frm|x
Kill(85) = batbfrm.msk|x
Kill(86) = bastrfc.rep|x
Kill(87) = batbnum.msk|x
Kill(88) = bastcra.msk|x
Kill(89) = bastfrd.msk|x
Kill(90) = bastprs.msk|x
Kill(91) = batbcra.msk|x
Kill(92) = bastasf.rep|x
Kill(93) = bastabe.msk|x
Kill(94) = batbgmc.msk|x
Kill(95) = bastbnp.rep|x
Kill(96) = efstbnp.msk|x
Kill(97) = batbabe.msk|x
Kill(98) = batbacr.msk|x
Kill(99) = batbimb.msk|x
Kill(100) = batbfrd.msk|x
Kill(101) = batbprv.msk|x
Kill(102) = bastgmc.rep|x
Kill(103) = bastfrm.msk|x
Kill(104) = basttip.msk|x
Kill(105) = bastrfa.rep|x
[ve]
Data = 08-07-2019
Descrizione = Vendite
Dischi = 1
Moduli = ba,cg9,pr9,mg9,sv9,in9,ef9
OEM =
Patch = 854
PostProcess = bainst -0 VE
PreProcess =
Prezzo(1) =
Prezzo(2) =
Versione = 21511200

BIN
cd/test/ve0854a1.zip Normal file

Binary file not shown.

View File

@ -204,10 +204,10 @@ TString get_dest_sdi(const char tipocf, const long codcf)
}
bool get_coddest(const char tipocf, const long codcf, TString& coddest, TString& pec)
{
TCli_for clifo(tipocf, codcf);
const TCli_for clifo(tipocf, codcf);
coddest = clifo.vendite().get("PADESTIN");
pec = clifo.get("PEC");
TAnagrafica anag(LF_CLIFO, tipocf, codcf);
const TAnagrafica anag(LF_CLIFO, tipocf, codcf);
if (coddest.empty())
{
if (pec.full() || fp_settings().get_esp_pri_empty())
@ -223,6 +223,7 @@ bool get_coddest(const char tipocf, const long codcf, TString& coddest, TString&
return coddest.full();
}
inline const TString& no_special(char a)
{
TString& r = get_tmp_string().cut(0);
@ -233,6 +234,7 @@ inline const TString& no_special(char a)
}
return r;
}
const TString& tipo_doc_sdi(const TDocumento& doc)
{
static TString tipo_doc_sdi;
@ -244,6 +246,7 @@ const TString& tipo_doc_sdi(const TDocumento& doc)
}
return doc.tipo().tipo_doc_sdi();
}
bool is_fattura(const TRectype& doc)
{
const TTipo_documento& td = cached_tipodoc(doc.get(DOC_TIPODOC));
@ -252,6 +255,7 @@ bool is_fattura(const TRectype& doc)
const TCodice_numerazione& cn = cached_numerazione(doc.get(DOC_CODNUM));
return cn.tipo() == 2 && !cn.get_bool("B10"); // Controlla se fattura provvisioria esclusa da P.A.
}
TString& add_filter(const TString& field, const TString& from, const TString& to)
{
TString& query = get_tmp_string();
@ -270,6 +274,7 @@ TString& add_filter(const TString& field, const TString& from, const TString& to
}
return query;
}
/***************************************************************************
* TPaf_record
***************************************************************************/
@ -290,12 +295,14 @@ void TPaf_record::set(const char* fld, const TVariant& var)
_fields.add(fld, new TVariant(var));
}
}
// Imposta il valore di un campo intero
void TPaf_record::set(const char* fld, long val)
{
const TVariant var(val);
set(fld, var);
}
// Imposta il valore di un campo stringa
void TPaf_record::set(const char* fld, const char* val)
{
@ -307,6 +314,7 @@ void TPaf_record::set(const char* fld, const char* val)
set(fld, var);
}
}
// Imposta il valore di un campo stringa
void TPaf_record::set(const char* fld, const TString& val)
{
@ -314,12 +322,14 @@ void TPaf_record::set(const char* fld, const TString& val)
if(!var.is_string() || (val.full()))
set(fld, var);
}
// Imposta il valore di un campo numerico
void TPaf_record::set(const char* fld, const real& val)
{
const TVariant var(val);
set(fld, var);
}
// Imposta il valore di un campo data in formato ISO
void TPaf_record::set(const char* fld, const TDate& val)
{
@ -331,21 +341,25 @@ void TPaf_record::set(const char* fld, const TDate& val)
else
set(fld, "");
}
// Imposta il valore di un campo booleano
void TPaf_record::set(const char* fld, bool var)
{
set(fld, var ? "SI" : "NO");
}
const TString TPaf_record::sq_get(const char* fld) const
{
return fp_db().sq_get(fld);
}
// Legge il valore di un campo variant
const TVariant& TPaf_record::get(const char* fld) const
{
const TVariant* var = (const TVariant*)_fields.objptr(fld);
return var ? *var : NULL_VARIANT;
}
// Converte un variant in una stringa valida per SQLite
const TString& TPaf_record::var2str(const TString& fldname, const TVariant& var) const
{

View File

@ -262,8 +262,8 @@ TFP_custom_cache::TFP_custom_cache()
/*
* Sintassi:
* READ(TABELLA, CAMPO) -> legge dalle tabelle predefinite
* SEARCH(TABELLA, CAMPO, RICERCA) -> legge da una tabella qualsiasi
* SEARCH e READ sono diverse sotto richiesta di Ilaria per avere una sintassi più chiara
* SEARCH(TABELLA.[CHIAVE], CAMPO, RICERCA) -> legge da una tabella qualsiasi
* SEARCH e READ sono diverse sotto richiesta di Ilaria per avere una sintassi più chiara // Ormai hanno sintassi un po' diversa quindi MEGLIO COSI'
* resto: TExpr_documento()
*/
const TVariant TFP_expression::parse_expression(const TString& expr, TRiga_documento& rdoc)
@ -584,6 +584,7 @@ TVariant& TFP_expression::do_read(const TString& tabella, const TString& campo,
{
return get_value(doc.tipo(), campo);
}
if(tabella == "%NUM")
{
return get_value(doc.codice_numerazione(), campo);
@ -607,11 +608,11 @@ TVariant& TFP_expression::do_read(const TString& tabella, const TString& campo,
return get_value(doc.clifor(), campo);
case LF_CFVEN:
return get_value(doc.clifor().vendite(), campo);
case LF_LETINT:
return get_value(doc.clifor().lettera(), campo);
case LF_INDSP:
return get_value(cache().get(LF_INDSP, doc.get(DOC_CODINDSP)), campo);
case LF_ANAMAG:
return get_value(rdoc.articolo(), campo);
case LF_CODCORR:
case LF_CODCORR:
return get_value(cache().get(LF_CODCORR, rdoc.articolo().codice()), campo);
default:
static TVariant null_var(EMPTY_STRING);

View File

@ -572,7 +572,7 @@ TInfo_mask::TInfo_mask() : TProperty_sheet(TR("Informazioni"))
cver = _MSC_VER / 100 - 5 + _MSC_VER % 100 / 10;
csub = _MSC_VER % 100 % 10; // Is that a thing?
}
TString msg = "Microsoft Visual Studio"; msg << cver << "." << csub;
TString msg = "Microsoft Visual Studio "; msg << cver << "." << csub;
add_prop(TR("Libreria C++"), msg);
#endif