Patch level : 12.0 666
Files correlati : fp Commento : - Refactor fplib01.h -> fplib.h - Aggiunta classe TFP_settings + oggetto statico fp_settings() con getters e setters per i valori di configurazione fp (mancano due parametri del programma di esportazione - Aggiunta di 3 nuovi parametri: esportazione clienti senza cod sdi nè pec (0000000), esportazione esteri, codice destinatario per esteri - Aggiunta funzione get_dest_sdi() che ritorna pec o cod sdi in base alla configurazione - Aggiunto settaggio unità di misura alla funzione set_qta_prezzo() - La qta adesso è una stringa (così non viene arrotondata) - Allineato fp0100 alla nuova classe - Aggiunto save_all_fields() al riempimento della maschera per salvare le configurazioni necessarie in esportazione
This commit is contained in:
parent
c3fc96683b
commit
8446451b35
@ -10,7 +10,7 @@
|
||||
#include "recset.h"
|
||||
#include "progind.h"
|
||||
#include "../ve/velib.h"
|
||||
#include "fplib01.h"
|
||||
#include "fplib.h"
|
||||
|
||||
class TParametri_mask : public TAutomask
|
||||
{
|
||||
@ -34,28 +34,28 @@ TParametri_mask::TParametri_mask(const char * n) : TAutomask(n)
|
||||
|
||||
void TParametri_mask::save_all() const
|
||||
{
|
||||
ini_set_string(CONFIG_DITTA, "fp", "ip", get(F_INDIRIZZO));
|
||||
ini_set_string(CONFIG_DITTA, "fp", "db", get(F_DATABASE));
|
||||
ini_set_string(CONFIG_DITTA, "fp", "usr", get(F_USER));
|
||||
ini_set_string(CONFIG_DITTA, "fp", "psw", encode(get(F_PASSWORD)));
|
||||
ini_set_string(CONFIG_DITTA, "fp", "flddest", get(F_FLDDEST));
|
||||
ini_set_string(CONFIG_DITTA, "fp", "fldusrdest", get(F_FLDUSRDEST));
|
||||
ini_set_string(CONFIG_DITTA, "fp", "cofitras", get(F_COFI));
|
||||
ini_set_bool(CONFIG_DITTA, "fp", "gestioneallegati", get_bool(F_ESPORTAALLEG));
|
||||
ini_set_bool(CONFIG_DITTA, "fp", "allegafatt", get_bool(F_ESPORTADOC));
|
||||
fp_settings().set_db_indirizzo(get(F_INDIRIZZO));
|
||||
fp_settings().set_db_database(get(F_DATABASE));
|
||||
fp_settings().set_db_user(get(F_USER));
|
||||
fp_settings().set_db_password(get(F_PASSWORD));
|
||||
fp_settings().set_fld_dest(get(F_FLDDEST));
|
||||
fp_settings().set_fld_dest_usr(get(F_FLDUSRDEST));
|
||||
fp_settings().set_cofi_tras(get(F_COFI));
|
||||
fp_settings().set_gest_alleg(get_bool(F_ESPORTAALLEG));
|
||||
fp_settings().set_allega_fat(get_bool(F_ESPORTADOC));
|
||||
}
|
||||
|
||||
void TParametri_mask::load_all()
|
||||
{
|
||||
set(F_INDIRIZZO, ini_get_string(CONFIG_DITTA, "fp", "ip"));
|
||||
set(F_DATABASE, ini_get_string(CONFIG_DITTA, "fp", "db"));
|
||||
set(F_USER, ini_get_string(CONFIG_DITTA, "fp", "usr"));
|
||||
set(F_PASSWORD, decode(ini_get_string(CONFIG_DITTA, "fp", "psw")));
|
||||
set(F_FLDDEST, ini_get_string(CONFIG_DITTA, "fp", "flddest"));
|
||||
set(F_FLDUSRDEST, ini_get_string(CONFIG_DITTA, "fp", "fldusrdest"));
|
||||
set(F_COFI, ini_get_string(CONFIG_DITTA, "fp", "cofitras"));
|
||||
set(F_ESPORTAALLEG, ini_get_bool(CONFIG_DITTA, "fp", "gestioneallegati"));
|
||||
set(F_ESPORTADOC, ini_get_bool(CONFIG_DITTA, "fp", "allegafatt"));
|
||||
set(F_INDIRIZZO, fp_settings().get_db_indirizzo());
|
||||
set(F_DATABASE, fp_settings().get_db_database());
|
||||
set(F_USER, fp_settings().get_db_user());
|
||||
set(F_PASSWORD, fp_settings().get_db_password());
|
||||
set(F_FLDDEST, fp_settings().get_fld_dest());
|
||||
set(F_FLDUSRDEST, fp_settings().get_fld_dest_usr());
|
||||
set(F_COFI, fp_settings().get_cofi_tras());
|
||||
set(F_ESPORTAALLEG, fp_settings().get_gest_alleg());
|
||||
set(F_ESPORTADOC, fp_settings().get_allega_fat());
|
||||
}
|
||||
|
||||
void TParametri_mask::tipi_import() const
|
||||
|
@ -3,16 +3,6 @@
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
#include <stdbar.h>
|
||||
|
||||
/*
|
||||
|
||||
BUTTON DLG_ELABORA 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "Imp. Tipi Doc"
|
||||
PICTURE TOOL_ELABORA
|
||||
FLAGS "HD"
|
||||
END
|
||||
*/
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Configurazione FP" 0 2 0 0
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include <applicat.h>
|
||||
#include <automask.h>
|
||||
#include <config.h>
|
||||
#include "fplib01.h"
|
||||
#include "fplib.h"
|
||||
#include <progind.h>
|
||||
#include <cfven.h>
|
||||
#include <doc.h>
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include <applicat.h>
|
||||
#include <automask.h>
|
||||
#include <config.h>
|
||||
#include "fplib01.h"
|
||||
#include "fplib.h"
|
||||
#include <progind.h>
|
||||
#include <cfven.h>
|
||||
#include <doc.h>
|
||||
@ -79,6 +79,10 @@ void TPA_mask::save_all_fields() const
|
||||
tipidocs.add(app);
|
||||
}
|
||||
ini_set_string(CONFIG_DITTA, "fp", "accepted_docs", tipidocs);
|
||||
|
||||
fp_settings().set_esp_pri_empty(get_bool(F_SETDEFCOD));
|
||||
fp_settings().set_esp_est(get_bool(F_SETCODEST));
|
||||
fp_settings().set_esp_est_cod(get(F_VALCODEST));
|
||||
}
|
||||
|
||||
void TPA_mask::load_all_fields()
|
||||
@ -119,6 +123,10 @@ void TPA_mask::load_all_fields()
|
||||
}
|
||||
sheet.force_update();
|
||||
sheet.show();
|
||||
|
||||
set(F_SETDEFCOD, fp_settings().get_esp_pri_empty());
|
||||
set(F_SETCODEST, fp_settings().get_esp_est());
|
||||
set(F_VALCODEST, fp_settings().get_esp_est_cod());
|
||||
}
|
||||
|
||||
TString& add_filter(const TString& field, const TString& from, const TString& to)
|
||||
@ -144,6 +152,9 @@ TString& add_filter(const TString& field, const TString& from, const TString& to
|
||||
|
||||
void TPA_mask::fill()
|
||||
{
|
||||
// Salvo subito su file le impostazioni di esportazione, in fplib accedo ai file
|
||||
save_all_fields();
|
||||
|
||||
TSheet_field& docs = sfield(F_DOCS);
|
||||
TString_array& sht = docs.rows_array();
|
||||
docs.hide();
|
||||
@ -226,32 +237,22 @@ void TPA_mask::fill()
|
||||
row.add(rec.get(DOC_DATADOC).as_date());
|
||||
row.add(rec.get(CFV_CODCF).as_int());
|
||||
row.add(rec.get("20." CLI_RAGSOC).as_string());
|
||||
TString rif = rec.get("17." CFV_PADESTIN).as_string();
|
||||
if (rif.empty())
|
||||
rif = rec.get("20.PEC").as_string();
|
||||
|
||||
TString rif = get_dest_sdi(rec.get(CFV_TIPOCF).as_string()[0], rec.get(CFV_CODCF).as_int());
|
||||
// Se è ancora vuoto potrebbe essere estero
|
||||
if(rif.empty())
|
||||
{
|
||||
static TString codcf; codcf.cut(0) << "C|" << rec.get(CFV_CODCF).as_string();
|
||||
TAnagrafica a(LF_CLIFO, codcf);
|
||||
if (a.estero())
|
||||
rif = "XXXXXXX";
|
||||
else
|
||||
{
|
||||
// Segno la riga errata
|
||||
if (first)
|
||||
{
|
||||
first = false;
|
||||
// Abilito la colonna del codice ufficio per segnalare l'errore
|
||||
docs.enable_column(docs.cid2index(S_UFFICIO));
|
||||
}
|
||||
docs.set_back_and_fore_color(COLOR_RED, COLOR_WHITE, rec.current_row(), docs.cid2index(S_UFFICIO));
|
||||
|
||||
fat_no_cod++;
|
||||
}
|
||||
// Segno la riga errata
|
||||
if (first)
|
||||
{
|
||||
first = false;
|
||||
// Abilito la colonna del codice ufficio per segnalare l'errore
|
||||
docs.enable_column(docs.cid2index(S_UFFICIO));
|
||||
}
|
||||
docs.set_back_and_fore_color(COLOR_RED, COLOR_WHITE, rec.current_row(), docs.cid2index(S_UFFICIO));
|
||||
fat_no_cod++;
|
||||
}
|
||||
if(rif.full())
|
||||
docs.set_back_and_fore_color(COLOR_WHITE, COLOR_BLACK, rec.cursor()->pos(), docs.cid2index(S_UFFICIO));
|
||||
;
|
||||
row.add(rif);
|
||||
row.add(rec.get("17." CFV_PARIFAMM).as_string());
|
||||
row.add(rec.get("20." CLI_COFI).as_string());
|
||||
@ -470,18 +471,18 @@ void TDoc2Paf::main_loop()
|
||||
|
||||
if (elab.doc_to_paf(key))
|
||||
ndocs++;
|
||||
else
|
||||
{
|
||||
if (!yesno_box("L'ultima fattura non è stata esportata, continuare?"))
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ndocs > 0)
|
||||
{
|
||||
if (elab.commit() > 0)
|
||||
{
|
||||
mask.save_all_fields();
|
||||
message_box(FR("Sono stati elaborati %d documenti"), ndocs);
|
||||
}
|
||||
else
|
||||
if (elab.commit() <= 0)
|
||||
error_box("Errore durante il salvataggio");
|
||||
elab.show_log();
|
||||
}
|
||||
|
@ -1,8 +1,11 @@
|
||||
#define START_MASK 301
|
||||
#define F_DATAINI 401
|
||||
#define F_DATAEND 402
|
||||
#define F_FATTSEL 403
|
||||
#define END_MASK 499
|
||||
#define START_MASK 401
|
||||
#define F_DATAINI 401
|
||||
#define F_DATAEND 402
|
||||
#define F_FATTSEL 403
|
||||
#define F_SETDEFCOD 404
|
||||
#define F_SETCODEST 405
|
||||
#define F_VALCODEST 406
|
||||
#define END_MASK 499
|
||||
|
||||
|
||||
#define F_DOCUMENTI_TIPO 301
|
||||
|
@ -41,6 +41,32 @@ BEGIN
|
||||
ITEM "Tipo SDI"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
BEGIN
|
||||
PROMPT 1 12 "@BConfigurazione Esportazione"
|
||||
END
|
||||
|
||||
|
||||
BOOLEAN F_SETDEFCOD
|
||||
BEGIN
|
||||
PROMPT 2 13 "Esporta privati con codice '0000000' se privi sia di pec che di cod. destinatario"
|
||||
END
|
||||
|
||||
BOOLEAN F_SETCODEST
|
||||
BEGIN
|
||||
PROMPT 2 14 "Esporta esteri con codice"
|
||||
MESSAGE TRUE ENABLE,F_VALCODEST
|
||||
MESSAGE FALSE DISABLE,F_VALCODEST
|
||||
END
|
||||
|
||||
STRING F_VALCODEST 7
|
||||
BEGIN
|
||||
PROMPT 40 14 ""
|
||||
CHECKTYPE REQUIRED
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Elenco Fatture" 0 2 0 0
|
||||
|
@ -1,5 +1,5 @@
|
||||
#ifndef __FPLIB01_H
|
||||
#define __FPLIB01_H
|
||||
#ifndef __FPLIB_H
|
||||
#define __FPLIB_H
|
||||
|
||||
#include <tsdb.h>
|
||||
#include <utility.h>
|
||||
@ -20,6 +20,9 @@ bool check_tables();
|
||||
// Genera la chiave per i paf
|
||||
bool chiave_paf(const TDocumento& doc, TString& hfatt, TString& bfatt);
|
||||
bool chiave_paf(const TRectype& doc, TString& hfatt, TString& bfatt);
|
||||
// Ritorna cod sdi, pec o vuoto. Chiama get_coddest()
|
||||
TString get_dest_sdi(const char tipocf, const long codcf);
|
||||
// Valorizza codice sdi e pec in base alle configurazioni del monitor
|
||||
bool get_coddest(const char tipocf, const long codcf, TString& coddest, TString& pec);
|
||||
inline const TString& no_special(char a);
|
||||
const TString& tipo_doc_sdi(const TDocumento& doc);
|
||||
@ -74,7 +77,7 @@ public:
|
||||
};
|
||||
|
||||
// Gestione PAF
|
||||
class TDoc_fp
|
||||
class TDoc_fp : public TObject
|
||||
{
|
||||
private:
|
||||
TRectype* _doc_rec;
|
||||
@ -124,7 +127,7 @@ protected:
|
||||
bool add_row_art(long& riga_art, const TString codice_tipo, const TString& codice_valore, TPaf_record& paf);
|
||||
bool add_row_alleg(TFilename& file, long& nprogr, TPaf_record& paf);
|
||||
const TString& converti_prezzo(const real& prezzo) const;
|
||||
void set_qta_prezzo(TPaf_record& paf1800f, TRiga_documento* rdoc);
|
||||
void set_qta_prezzo(TPaf_record& paf1800f, TRiga_documento* rdoc) const;
|
||||
|
||||
public:
|
||||
bool doc_to_paf(TDocumentoEsteso& doc);
|
||||
@ -143,6 +146,48 @@ public:
|
||||
~TDoc_fp();
|
||||
};
|
||||
|
||||
class TFP_settings : public TObject
|
||||
{
|
||||
public:
|
||||
// Getters
|
||||
const TString& get_db_indirizzo() const;
|
||||
const TString& get_db_database() const;
|
||||
const TString& get_db_str_con() const;
|
||||
const TString& get_db_user() const;
|
||||
const TString& get_db_password() const;
|
||||
const TString& get_fld_dest() const;
|
||||
const TString& get_fld_dest_usr() const;
|
||||
const TString& get_cofi_tras() const;
|
||||
const bool get_gest_alleg() const;
|
||||
const bool get_allega_fat() const;
|
||||
const bool get_esp_pri_empty() const;
|
||||
const bool get_esp_est() const;
|
||||
const TString& get_esp_est_cod() const;
|
||||
|
||||
|
||||
#endif // __FPLIB01_H
|
||||
// Setters
|
||||
void set_db_indirizzo(const TString& ind) const;
|
||||
void set_db_database(const TString& db) const;
|
||||
void set_db_user(const TString& usr) const;
|
||||
void set_db_password(const TString& psw) const;
|
||||
void set_fld_dest(const TString& fld_dest) const;
|
||||
void set_fld_dest_usr(const TString& fld_dest_usr) const;
|
||||
void set_cofi_tras(const TString& cofi) const;
|
||||
void set_gest_alleg(bool gest_alleg) const;
|
||||
void set_allega_fat(bool allega_fatt) const;
|
||||
void set_esp_pri_empty(bool esp_pri) const;
|
||||
void set_esp_est(bool esp_est) const;
|
||||
void set_esp_est_cod(const TString& esp_est_cod) const;
|
||||
};
|
||||
|
||||
inline TFP_settings& fp_settings()
|
||||
{
|
||||
static TFP_settings* erbuggo = nullptr;
|
||||
if(erbuggo == nullptr)
|
||||
{
|
||||
erbuggo = new TFP_settings();
|
||||
}
|
||||
return *erbuggo;
|
||||
}
|
||||
|
||||
#endif // __FPLIB_H
|
@ -1,4 +1,4 @@
|
||||
#include "fplib01.h"
|
||||
#include "fplib.h"
|
||||
#include <prefix.h>
|
||||
#include <config.h>
|
||||
#include <utility.h>
|
||||
@ -27,7 +27,7 @@
|
||||
void set_connection(SSimple_query& s)
|
||||
{
|
||||
#ifdef DBG
|
||||
TString ip = ini_get_string(CONFIG_DITTA, "fp", "ip");
|
||||
TString ip = fp_settings().get_db_indirizzo();
|
||||
if (ip.upper() != "TESTCAMPO2012")
|
||||
{
|
||||
if (s.sq_connect("TESTCAMPO2012@campo_fp",
|
||||
@ -40,9 +40,9 @@ void set_connection(SSimple_query& s)
|
||||
{
|
||||
#endif
|
||||
if (s.sq_connect(
|
||||
TString() << ini_get_string(CONFIG_DITTA, "fp", "ip") << "@" << ini_get_string(CONFIG_DITTA, "fp", "db"),
|
||||
ini_get_string(CONFIG_DITTA, "fp", "usr"),
|
||||
decode(ini_get_string(CONFIG_DITTA, "fp", "psw")),
|
||||
fp_settings().get_db_str_con(),
|
||||
fp_settings().get_db_user(),
|
||||
fp_settings().get_db_password(),
|
||||
TSDB_MSSQL) != NOERR)
|
||||
fatal_box("Impossibile connettersi al DB esterno");
|
||||
#ifdef DBG
|
||||
@ -162,28 +162,30 @@ bool chiave_paf(const TRectype& doc, TString& hfatt, TString& bfatt)
|
||||
return hfatt.full();
|
||||
}
|
||||
|
||||
TString get_dest_sdi(const char tipocf, const long codcf)
|
||||
{
|
||||
TString codsdi, pec;
|
||||
get_coddest(tipocf, codcf, codsdi, pec);
|
||||
return pec.full() ? pec : codsdi;
|
||||
}
|
||||
|
||||
bool get_coddest(const char tipocf, const long codcf, TString& coddest, TString& pec)
|
||||
{
|
||||
TCli_for clifo(tipocf, codcf);
|
||||
coddest = clifo.vendite().get("PADESTIN");
|
||||
pec = clifo.get("PEC");
|
||||
bool enapec = false;
|
||||
if (coddest.empty())
|
||||
{
|
||||
coddest = "0000000";
|
||||
// Controllo se ha la pec
|
||||
if (pec.full())
|
||||
{
|
||||
enapec = true;
|
||||
}
|
||||
if(pec.full() || fp_settings().get_esp_pri_empty())
|
||||
coddest = "0000000";
|
||||
// Controllo se è straniero
|
||||
else if (TAnagrafica(LF_CLIFO, tipocf, codcf).estero())
|
||||
else if (TAnagrafica(LF_CLIFO, tipocf, codcf).estero() && fp_settings().get_esp_est())
|
||||
{
|
||||
coddest = "XXXXXXX";
|
||||
coddest = fp_settings().get_esp_est_cod();
|
||||
}
|
||||
}
|
||||
// Dopo la versione 1.2 torna sempre true
|
||||
return true;
|
||||
return coddest.full();
|
||||
}
|
||||
|
||||
inline const TString& no_special(char a)
|
||||
@ -311,42 +313,42 @@ const TVariant& TPaf_record::get(const char* fld) const
|
||||
// Converte un variant in una stringa valida per SQLite
|
||||
const TString& TPaf_record::var2str(const TString& fldname, const TVariant& var) const
|
||||
{
|
||||
const TFieldtypes vt = var.type();
|
||||
if (vt == _realfld)
|
||||
{
|
||||
const TCurrency v(var.as_real(), "", ZERO, fldname.find("PRZ") > 0 || fldname.find("PREZZO") > 0);
|
||||
TString& tmp = get_tmp_string();
|
||||
tmp << '\'' << v.string() << '\'';
|
||||
tmp.replace(',', '.');
|
||||
return tmp;
|
||||
}
|
||||
if (vt == _datefld)
|
||||
{
|
||||
TString& tmp = get_tmp_string();
|
||||
tmp << '\'' << var.as_date().string(full, '-', full, full, amg_date) << '\'';
|
||||
return tmp;
|
||||
}
|
||||
const TFieldtypes vt = var.type();
|
||||
TString& tmp = get_tmp_string();
|
||||
|
||||
const TString& str = var.as_string();
|
||||
if (vt == _realfld)
|
||||
{
|
||||
const TCurrency v(var.as_real(), "", ZERO, fldname.find("PRZ") > 0 || fldname.find("PREZZO") > 0);
|
||||
tmp << '\'' << v.string() << '\'';
|
||||
tmp.replace(',', '.');
|
||||
return tmp;
|
||||
}
|
||||
|
||||
bool apici = vt == _alfafld;
|
||||
if (apici && str[0] != '0' && real::is_natural(str))
|
||||
apici = false;
|
||||
if (vt == _datefld)
|
||||
{
|
||||
tmp << '\'' << var.as_date().string(full, '-', full, full, amg_date) << '\'';
|
||||
return tmp;
|
||||
}
|
||||
|
||||
if (!apici)
|
||||
return str;
|
||||
const TString& str = var.as_string();
|
||||
|
||||
// Parso i caratteri speciali
|
||||
TString& tmp = get_tmp_string().cut(0);
|
||||
for(int i = 0; i < str.len(); i++)
|
||||
{
|
||||
tmp << no_special(str[i]);
|
||||
}
|
||||
bool apici = vt == _alfafld;
|
||||
if (apici && str[0] != '0' && real::is_natural(str))
|
||||
apici = false;
|
||||
|
||||
// Parso i caratteri speciali
|
||||
for(int i = 0; i < str.len(); i++)
|
||||
{
|
||||
tmp << no_special(str[i]);
|
||||
}
|
||||
|
||||
if (apici)
|
||||
{
|
||||
// Aggiungo apici a inizio e fine riga
|
||||
tmp.insert("'", 0);
|
||||
tmp << '\'';
|
||||
return tmp;
|
||||
}
|
||||
return tmp;
|
||||
}
|
||||
|
||||
TString& TPaf_record::remove_string(bool id_riga)
|
||||
@ -858,17 +860,21 @@ const TString& TDoc_fp::converti_prezzo(const real& prezzo) const
|
||||
return ret;
|
||||
}
|
||||
|
||||
void TDoc_fp::set_qta_prezzo(TPaf_record& paf1800f, TRiga_documento* rdoc)
|
||||
void TDoc_fp::set_qta_prezzo(TPaf_record& paf1800f, TRiga_documento* rdoc) const
|
||||
{
|
||||
const real qta = rdoc->get(RDOC_QTA);
|
||||
// Setto l'unità di misura
|
||||
paf1800f.set("PI_UNITAMISURA", rdoc->get(RDOC_UMQTA));
|
||||
|
||||
const real& qta = rdoc->get_real(RDOC_QTA);
|
||||
TString qta_string = rdoc->get(RDOC_QTA);
|
||||
if (qta >= ZERO)
|
||||
{
|
||||
paf1800f.set("PI_QUANTITA", qta);
|
||||
paf1800f.set("PI_QUANTITA", qta_string);
|
||||
paf1800f.set("PI_PREZZOUNIT", converti_prezzo(rdoc->prezzo(false, false)));
|
||||
}
|
||||
else
|
||||
{
|
||||
paf1800f.set("PI_QUANTITA", -qta);
|
||||
paf1800f.set("PI_QUANTITA", qta_string.add_front("-"));
|
||||
paf1800f.set("PI_PREZZOUNIT", converti_prezzo(-rdoc->prezzo(true, false)));
|
||||
}
|
||||
}
|
||||
@ -1366,9 +1372,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
||||
}
|
||||
else if (rdoc->is_merce())
|
||||
{
|
||||
paf1800f.set("PI_UNITAMISURA", rdoc->get(RDOC_UMQTA));
|
||||
const real qta = rdoc->get(RDOC_QTA);
|
||||
if (qta.is_zero())
|
||||
if (rdoc->get(RDOC_QTA).is_zero())
|
||||
{
|
||||
TString msg;
|
||||
msg.format("La riga merce %d ha quantità nulla", riga);
|
||||
@ -1511,7 +1515,6 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
||||
}
|
||||
else if (rdoc->is_prestazione())
|
||||
{
|
||||
paf1800f.set("PI_UNITAMISURA", rdoc->get(RDOC_UMQTA));
|
||||
real qta = rdoc->get(RDOC_QTA);
|
||||
if (qta.is_zero()) qta = UNO;
|
||||
set_qta_prezzo(paf1800f, rdoc);
|
||||
@ -1884,7 +1887,7 @@ TRectype& TDoc_fp::key_to_doc(const TDoc_key& key)
|
||||
TDoc_fp::TDoc_fp() : _doc_rec(nullptr), _log(nullptr), _cache_insert(false)
|
||||
{
|
||||
_ditta.init(LF_NDITTE, prefix().get_codditta());
|
||||
_cofi = ini_get_string(CONFIG_DITTA, "fp", "cofitras");
|
||||
_cofi = fp_settings().get_cofi_tras();
|
||||
|
||||
if (_cofi.blank())
|
||||
_cofi = _ditta.codice_fiscale();
|
||||
@ -1892,17 +1895,17 @@ TDoc_fp::TDoc_fp() : _doc_rec(nullptr), _log(nullptr), _cache_insert(false)
|
||||
#ifdef DBG
|
||||
_gestioneallegati = _allegafattura = false;
|
||||
#else
|
||||
_gestioneallegati = ini_get_bool(CONFIG_DITTA, "fp", "gestioneallegati");
|
||||
_allegafattura = ini_get_bool(CONFIG_DITTA, "fp", "allegafatt");
|
||||
_gestioneallegati = fp_settings().get_gest_alleg();
|
||||
_allegafattura = fp_settings().get_allega_fat();
|
||||
#endif
|
||||
|
||||
_def_fld = ini_get_string(CONFIG_DITTA, "fp", "flddest");
|
||||
_def_fld = fp_settings().get_fld_dest();
|
||||
if (!_def_fld.ends_with("\\"))
|
||||
{
|
||||
_def_fld << "\\";
|
||||
}
|
||||
|
||||
_def_usr_fld = ini_get_string(CONFIG_DITTA, "fp", "fldusrdest", "");
|
||||
_def_usr_fld = fp_settings().get_fld_dest_usr();
|
||||
if (_def_usr_fld.empty())
|
||||
{
|
||||
_def_usr_fld = _def_fld;
|
||||
|
144
src/fp/fplib02.cpp
Normal file
144
src/fp/fplib02.cpp
Normal file
@ -0,0 +1,144 @@
|
||||
#include "fplib.h"
|
||||
|
||||
#define FILE_CONFIG CONFIG_DITTA
|
||||
#define FILE_SECTION "fp"
|
||||
|
||||
#define FP_IP "ip"
|
||||
#define FP_DB "db"
|
||||
#define FP_USR "usr"
|
||||
#define FP_PSW "psw"
|
||||
#define FP_FLD_DEST "flddest"
|
||||
#define FP_FLD_USR_DEST "fldusrdest"
|
||||
#define FP_COFI_TRAS "cofitras"
|
||||
#define FP_GEST_ALLEG "gestioneallegati"
|
||||
#define FP_ALLEG_FAT "allegafatt"
|
||||
#define FP_ESP_PRI "esppri"
|
||||
#define FP_ESP_EST "espest"
|
||||
#define FP_ESP_EST_COD "espestcod"
|
||||
|
||||
|
||||
const TString& TFP_settings::get_db_indirizzo() const
|
||||
{
|
||||
return ini_get_string(FILE_CONFIG, FILE_SECTION, FP_IP);
|
||||
}
|
||||
|
||||
const TString& TFP_settings::get_db_database() const
|
||||
{
|
||||
return ini_get_string(FILE_CONFIG, FILE_SECTION, FP_DB);
|
||||
}
|
||||
|
||||
const TString& TFP_settings::get_db_str_con() const
|
||||
{
|
||||
return get_tmp_string().cut(0) << get_db_indirizzo() << "@" << get_db_database();
|
||||
}
|
||||
|
||||
const TString& TFP_settings::get_db_user() const
|
||||
{
|
||||
return ini_get_string(FILE_CONFIG, FILE_SECTION, FP_USR);
|
||||
}
|
||||
|
||||
const TString& TFP_settings::get_db_password() const
|
||||
{
|
||||
return get_tmp_string().cut(0) << decode(ini_get_string(FILE_CONFIG, FILE_SECTION, FP_PSW));
|
||||
}
|
||||
|
||||
const TString& TFP_settings::get_fld_dest() const
|
||||
{
|
||||
return ini_get_string(FILE_CONFIG, FILE_SECTION, FP_FLD_DEST);
|
||||
}
|
||||
|
||||
const TString& TFP_settings::get_fld_dest_usr() const
|
||||
{
|
||||
return ini_get_string(FILE_CONFIG, FILE_SECTION, FP_FLD_USR_DEST, "");
|
||||
}
|
||||
|
||||
const TString& TFP_settings::get_cofi_tras() const
|
||||
{
|
||||
return ini_get_string(FILE_CONFIG, FILE_SECTION, FP_COFI_TRAS);
|
||||
}
|
||||
|
||||
const bool TFP_settings::get_gest_alleg() const
|
||||
{
|
||||
return ini_get_bool(FILE_CONFIG, FILE_SECTION, FP_GEST_ALLEG);
|
||||
}
|
||||
|
||||
const bool TFP_settings::get_allega_fat() const
|
||||
{
|
||||
return ini_get_bool(FILE_CONFIG, FILE_SECTION, FP_ALLEG_FAT);
|
||||
}
|
||||
|
||||
const bool TFP_settings::get_esp_pri_empty() const
|
||||
{
|
||||
return ini_get_bool(FILE_CONFIG, FILE_SECTION, FP_ESP_PRI);
|
||||
}
|
||||
|
||||
const bool TFP_settings::get_esp_est() const
|
||||
{
|
||||
return ini_get_bool(FILE_CONFIG, FILE_SECTION, FP_ESP_EST);
|
||||
}
|
||||
|
||||
const TString& TFP_settings::get_esp_est_cod() const
|
||||
{
|
||||
return ini_get_string(FILE_CONFIG, FILE_SECTION, FP_ESP_EST_COD, "XXXXXXX");
|
||||
}
|
||||
|
||||
void TFP_settings::set_db_indirizzo(const TString& ind) const
|
||||
{
|
||||
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_IP, ind);
|
||||
}
|
||||
|
||||
void TFP_settings::set_db_database(const TString& db) const
|
||||
{
|
||||
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_DB, db);
|
||||
}
|
||||
|
||||
void TFP_settings::set_db_user(const TString& usr) const
|
||||
{
|
||||
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_USR, usr);
|
||||
}
|
||||
|
||||
void TFP_settings::set_db_password(const TString& psw) const
|
||||
{
|
||||
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_PSW, encode(psw));
|
||||
}
|
||||
|
||||
void TFP_settings::set_fld_dest(const TString& fld_dest) const
|
||||
{
|
||||
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_FLD_DEST, fld_dest);
|
||||
}
|
||||
|
||||
void TFP_settings::set_fld_dest_usr(const TString& fld_dest_usr) const
|
||||
{
|
||||
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_FLD_USR_DEST, fld_dest_usr);
|
||||
}
|
||||
|
||||
void TFP_settings::set_cofi_tras(const TString& cofi) const
|
||||
{
|
||||
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_COFI_TRAS, cofi);
|
||||
}
|
||||
|
||||
void TFP_settings::set_gest_alleg(const bool gest_alleg) const
|
||||
{
|
||||
ini_set_bool(FILE_CONFIG, FILE_SECTION, FP_GEST_ALLEG, gest_alleg);
|
||||
}
|
||||
|
||||
void TFP_settings::set_allega_fat(const bool allega_fatt) const
|
||||
{
|
||||
ini_set_bool(FILE_CONFIG, FILE_SECTION, FP_ALLEG_FAT, allega_fatt);
|
||||
}
|
||||
|
||||
void TFP_settings::set_esp_pri_empty(const bool esp_pri) const
|
||||
{
|
||||
ini_set_bool(FILE_CONFIG, FILE_SECTION, FP_ESP_PRI, esp_pri);
|
||||
}
|
||||
|
||||
void TFP_settings::set_esp_est(const bool esp_est) const
|
||||
{
|
||||
ini_set_bool(FILE_CONFIG, FILE_SECTION, FP_ESP_EST, esp_est);
|
||||
}
|
||||
|
||||
void TFP_settings::set_esp_est_cod(const TString& esp_est_cod) const
|
||||
{
|
||||
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_ESP_EST_COD, esp_est_cod);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user