diff --git a/src/fp/fplib01.cpp b/src/fp/fplib01.cpp index dcf5b75d0..7c692157e 100644 --- a/src/fp/fplib01.cpp +++ b/src/fp/fplib01.cpp @@ -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 { diff --git a/src/fp/fplib05.cpp b/src/fp/fplib05.cpp index c486b54a0..06bc344f3 100644 --- a/src/fp/fplib05.cpp +++ b/src/fp/fplib05.cpp @@ -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); diff --git a/src/include/about.cpp b/src/include/about.cpp index d90e446d2..9b5ca503d 100755 --- a/src/include/about.cpp +++ b/src/include/about.cpp @@ -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