Patch level : 12.0 1036
Files correlati : fp0.exe fp0100a.msk fp0300a.msk Commento : Aggiunto il regime speciale 3 al reverse charge
This commit is contained in:
parent
8db92bba96
commit
3b54d64097
@ -35,40 +35,40 @@ TParametri_mask::TParametri_mask(const char * n) : TAutomask(n)
|
|||||||
|
|
||||||
void TParametri_mask::save_all() const
|
void TParametri_mask::save_all() const
|
||||||
{
|
{
|
||||||
fp_settings().set_db_indirizzo(get(F_INDIRIZZO));
|
set_db_indirizzo(get(F_INDIRIZZO));
|
||||||
fp_settings().set_db_database(get(F_DATABASE));
|
set_db_database(get(F_DATABASE));
|
||||||
fp_settings().set_db_user(get(F_USER));
|
set_db_user(get(F_USER));
|
||||||
fp_settings().set_db_password(get(F_PASSWORD));
|
set_db_password(get(F_PASSWORD));
|
||||||
fp_settings().set_fld_dest(get(F_FLDDEST));
|
set_fld_dest(get(F_FLDDEST));
|
||||||
fp_settings().set_fld_dest_usr(get(F_FLDUSRDEST));
|
set_fld_dest_usr(get(F_FLDUSRDEST));
|
||||||
fp_settings().set_cofi_tras(get(F_COFI));
|
set_cofi_tras(get(F_COFI));
|
||||||
fp_settings().set_gest_alleg(get_bool(F_ESPORTAALLEG));
|
set_gest_alleg(get_bool(F_ESPORTAALLEG));
|
||||||
fp_settings().set_allega_fat(get_bool(F_ESPORTADOC));
|
set_allega_fat(get_bool(F_ESPORTADOC));
|
||||||
fp_settings().set_f8(get_bool(F_F8));
|
set_f8(get_bool(F_F8));
|
||||||
fp_settings().set_check_not_block(get_bool(F_CHECK_NOT_BLOCK));
|
set_check_not_block(get_bool(F_CHECK_NOT_BLOCK));
|
||||||
fp_settings().set_no_sconti_fatt(get_bool(F_CHECK_NO_SCONTI));
|
set_no_sconti_fatt(get_bool(F_CHECK_NO_SCONTI));
|
||||||
fp_settings().set_no_export_pronto(get_bool(F_CHECK_NO_EXPORT_PRONTO));
|
set_no_export_pronto(get_bool(F_CHECK_NO_EXPORT_PRONTO));
|
||||||
fp_settings().set_data_start_fatt(get_date(F_STARTFATTEL));
|
set_data_start_fatt(get_date(F_STARTFATTEL));
|
||||||
fp_settings().set_data_start_new_fatt(get_date(F_STARTNEWFATT));
|
set_data_start_new_fatt(get_date(F_STARTNEWFATT));
|
||||||
TFP_righe_custom().save_sheet(sfield(F_FORMPERS));
|
TFP_righe_custom().save_sheet(sfield(F_FORMPERS));
|
||||||
TFP_nota_piede_f().save_sheet(sfield(F_NPFSHEET));
|
TFP_nota_piede_f().save_sheet(sfield(F_NPFSHEET));
|
||||||
}
|
}
|
||||||
|
|
||||||
void TParametri_mask::load_all()
|
void TParametri_mask::load_all()
|
||||||
{
|
{
|
||||||
set(F_INDIRIZZO, fp_settings().get_db_indirizzo());
|
set(F_INDIRIZZO, get_db_indirizzo());
|
||||||
set(F_DATABASE, fp_settings().get_db_database());
|
set(F_DATABASE, get_db_database());
|
||||||
set(F_USER, fp_settings().get_db_user());
|
set(F_USER, get_db_user());
|
||||||
set(F_PASSWORD, fp_settings().get_db_password());
|
set(F_PASSWORD, get_db_password());
|
||||||
set(F_FLDDEST, fp_settings().get_fld_dest());
|
set(F_FLDDEST, get_fld_dest());
|
||||||
set(F_FLDUSRDEST, fp_settings().get_fld_dest_usr());
|
set(F_FLDUSRDEST, get_fld_dest_usr());
|
||||||
set(F_COFI, fp_settings().get_cofi_tras());
|
set(F_COFI, get_cofi_tras());
|
||||||
set(F_ESPORTAALLEG, fp_settings().get_gest_alleg());
|
set(F_ESPORTAALLEG, get_gest_alleg());
|
||||||
set(F_ESPORTADOC, fp_settings().get_allega_fat());
|
set(F_ESPORTADOC, get_allega_fat());
|
||||||
set(F_F8, fp_settings().is_f8());
|
set(F_F8, is_f8());
|
||||||
set(F_CHECK_NOT_BLOCK, fp_settings().get_check_not_block());
|
set(F_CHECK_NOT_BLOCK, get_check_not_block());
|
||||||
set(F_CHECK_NO_SCONTI, fp_settings().get_no_sconti_fatt());
|
set(F_CHECK_NO_SCONTI, get_no_sconti_fatt());
|
||||||
set(F_CHECK_NO_EXPORT_PRONTO, fp_settings().get_no_export_pronto());
|
set(F_CHECK_NO_EXPORT_PRONTO, get_no_export_pronto());
|
||||||
TFP_righe_custom().load_sheet(sfield(F_FORMPERS));
|
TFP_righe_custom().load_sheet(sfield(F_FORMPERS));
|
||||||
TFP_nota_piede_f().load_sheet(sfield(F_NPFSHEET));
|
TFP_nota_piede_f().load_sheet(sfield(F_NPFSHEET));
|
||||||
}
|
}
|
||||||
@ -230,11 +230,11 @@ bool TParametri_mask::on_field_event(TOperable_field& o, TField_event e, long jo
|
|||||||
break;
|
break;
|
||||||
case F_STARTFATTEL:
|
case F_STARTFATTEL:
|
||||||
if (e == fe_init)
|
if (e == fe_init)
|
||||||
o.set(fp_settings().get_data_start_fatt());
|
o.set(get_data_start_fatt());
|
||||||
break;
|
break;
|
||||||
case F_STARTNEWFATT:
|
case F_STARTNEWFATT:
|
||||||
if (e == fe_init)
|
if (e == fe_init)
|
||||||
o.set(TFP_settings::get_date_start_new_fatt());
|
o.set(get_date_start_new_fatt());
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -270,6 +270,7 @@ void TParametri_ditta::main_loop()
|
|||||||
ad << ip << "@" << db;
|
ad << ip << "@" << db;
|
||||||
|
|
||||||
SSimple_query s(ad, usr, psw, TSDB_MSSQL);
|
SSimple_query s(ad, usr, psw, TSDB_MSSQL);
|
||||||
|
|
||||||
if (s.sq_is_connect())
|
if (s.sq_is_connect())
|
||||||
{
|
{
|
||||||
pm.save_all();
|
pm.save_all();
|
||||||
|
@ -5,7 +5,7 @@ TOOLBAR "topbar" 0 0 0 2
|
|||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "Configurazione FP (1)" 0 2 0 0
|
PAGE "Parametri generali" 0 2 0 0
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 78 6
|
GROUPBOX DLG_NULL 78 6
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -109,7 +109,7 @@ END
|
|||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "Configurazione (2) " 0 2 0 0
|
PAGE "Personalizzazioni" 0 2 0 0
|
||||||
|
|
||||||
SPREADSHEET F_FORMPERS 60 6
|
SPREADSHEET F_FORMPERS 60 6
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -155,7 +155,7 @@ END
|
|||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "Assistenza FP" 0 2 0 0
|
PAGE "Funzioni di assistenza" 0 2 0 0
|
||||||
|
|
||||||
BUTTON F_SETPATCH 15 2
|
BUTTON F_SETPATCH 15 2
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -185,56 +185,56 @@ ENDPAGE
|
|||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
|
||||||
PAGE "Elementi spredsheet" -1 -1 60 12
|
PAGE "Parametri tipi Documento" -1 -1 60 12
|
||||||
|
|
||||||
STRING S_TIPODOC 4
|
STRING SC_TIPODOC 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "Tipo doc "
|
PROMPT 1 1 "Tipo doc "
|
||||||
HELP "Lasciare libero per tutti i tipo documento"
|
HELP "Lasciare libero per tutti i tipo documento"
|
||||||
USE %TIP
|
USE %TIP
|
||||||
SELECT S3[37,40]!=""
|
SELECT S3[37,40]!=""
|
||||||
INPUT CODTAB S_TIPODOC
|
INPUT CODTAB SC_TIPODOC
|
||||||
DISPLAY "Codice@10" CODTAB
|
DISPLAY "Codice@10" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
DISPLAY "Tipo SDI@10" S3[37,40]
|
DISPLAY "Tipo SDI@10" S3[37,40]
|
||||||
OUTPUT S_TIPODOC CODTAB
|
OUTPUT SC_TIPODOC CODTAB
|
||||||
FLAG "UPA"
|
FLAG "UPA"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING S_TIPORIGA 4
|
STRING SC_TIPORIGA 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 2 "Tipo riga "
|
PROMPT 1 2 "Tipo riga "
|
||||||
USE %TRI
|
USE %TRI
|
||||||
INPUT CODTAB S_TIPORIGA
|
INPUT CODTAB SC_TIPORIGA
|
||||||
DISPLAY "Codice@10" CODTAB
|
DISPLAY "Codice@10" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT S_TIPORIGA CODTAB
|
OUTPUT SC_TIPORIGA CODTAB
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING S_QTA 10
|
STRING SC_QTA 10
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 3 "Qta"
|
PROMPT 1 3 "Qta"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING S_PREZZO 10
|
STRING SC_PREZZO 10
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 4 "Prezzo"
|
PROMPT 1 4 "Prezzo"
|
||||||
USE %FRR
|
USE %FRR
|
||||||
INPUT CODTAB S_PREZZO
|
INPUT CODTAB SC_PREZZO
|
||||||
DISPLAY "Codice@10" CODTAB
|
DISPLAY "Codice@10" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT S_PREZZO CODTAB
|
OUTPUT SC_PREZZO CODTAB
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING S_IMPONIBILE 10
|
STRING SC_IMPONIBILE 10
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 5 "Imponibile"
|
PROMPT 1 5 "Imponibile"
|
||||||
USE %FRR
|
USE %FRR
|
||||||
INPUT CODTAB S_IMPONIBILE
|
INPUT CODTAB SC_IMPONIBILE
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT S_IMPONIBILE CODTAB
|
OUTPUT SC_IMPONIBILE CODTAB
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
@ -259,17 +259,17 @@ ENDMASK
|
|||||||
|
|
||||||
PAGE "Elementi NPF" -1 -1 60 12
|
PAGE "Elementi NPF" -1 -1 60 12
|
||||||
|
|
||||||
STRING S_DOC 4
|
STRING S_DOCPF 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "Tipo doc "
|
PROMPT 1 1 "Tipo doc "
|
||||||
HELP "Lasciare libero per tutti i tipo documento"
|
HELP "Lasciare libero per tutti i tipo documento"
|
||||||
USE %TIP
|
USE %TIP
|
||||||
SELECT S3[37,40]!=""
|
SELECT S3[37,40]!=""
|
||||||
INPUT CODTAB S_TIPODOC
|
INPUT CODTAB S_DOCPF
|
||||||
DISPLAY "Codice@10" CODTAB
|
DISPLAY "Codice@10" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
DISPLAY "Tipo SDI@10" S3[37,40]
|
DISPLAY "Tipo SDI@10" S3[37,40]
|
||||||
OUTPUT S_TIPODOC CODTAB
|
OUTPUT S_DOCPF CODTAB
|
||||||
FLAG "UPA"
|
FLAG "UPA"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
@ -176,11 +176,11 @@ void TCC_mask::save_all()
|
|||||||
|
|
||||||
cfven.zero();
|
cfven.zero();
|
||||||
cfven.put(CFV_TIPOCF, get(F_TIPOCF));
|
cfven.put(CFV_TIPOCF, get(F_TIPOCF));
|
||||||
cfven.put(CFV_CODCF, riga->get(xvtil_cid2index(S_CODCF)));
|
cfven.put(CFV_CODCF, riga->get(cid2index(S_CODCF)));
|
||||||
const int err = cfven.read();
|
const int err = cfven.read();
|
||||||
if (err == NOERR || err == _iskeynotfound)
|
if (err == NOERR || err == _iskeynotfound)
|
||||||
{
|
{
|
||||||
cfven.put(CFV_PADESTIN, riga->get(xvtil_cid2index(S_CODSDI)));
|
cfven.put(CFV_PADESTIN, riga->get(cid2index(S_CODSDI)));
|
||||||
if (cfven.rewrite_write() != NOERR)
|
if (cfven.rewrite_write() != NOERR)
|
||||||
{
|
{
|
||||||
TString msg = "Fallito salvataggio record in CFVEN ";
|
TString msg = "Fallito salvataggio record in CFVEN ";
|
||||||
|
@ -56,7 +56,7 @@ public:
|
|||||||
disable(DLG_SAVEREC);
|
disable(DLG_SAVEREC);
|
||||||
disable(DLG_FINDREC);
|
disable(DLG_FINDREC);
|
||||||
load_all_fields();
|
load_all_fields();
|
||||||
const TDate data_inizio = fp_settings().get_date_start_new_fatt();
|
const TDate data_inizio = get_date_start_new_fatt();
|
||||||
|
|
||||||
if (today < data_inizio)
|
if (today < data_inizio)
|
||||||
{
|
{
|
||||||
@ -82,9 +82,10 @@ void TPA_mask::save_all_fields() const
|
|||||||
selected_docs.save_sheet(sfield(F_DOCUMENTI_TIPO));
|
selected_docs.save_sheet(sfield(F_DOCUMENTI_TIPO));
|
||||||
|
|
||||||
// Salvo le impostazioni
|
// Salvo le impostazioni
|
||||||
fp_settings().set_esp_pri_empty(get_bool(F_SETDEFCOD));
|
set_esp_pri_empty(get_bool(F_SETDEFCOD));
|
||||||
fp_settings().set_esp_est(get_bool(F_SETCODEST));
|
set_send_all_rifs(get_bool(F_SENDALLRIFS));
|
||||||
fp_settings().set_esp_est_cod(get(F_VALCODEST));
|
set_esp_est(get_bool(F_SETCODEST));
|
||||||
|
set_esp_est_cod(get(F_VALCODEST));
|
||||||
}
|
}
|
||||||
|
|
||||||
void TPA_mask::force_reload_sheet()
|
void TPA_mask::force_reload_sheet()
|
||||||
@ -143,9 +144,10 @@ void TPA_mask::load_all_fields()
|
|||||||
sheet.force_update();
|
sheet.force_update();
|
||||||
sheet.show();
|
sheet.show();
|
||||||
|
|
||||||
set(F_SETDEFCOD, fp_settings().get_esp_pri_empty());
|
set(F_SETDEFCOD, get_esp_pri_empty());
|
||||||
set(F_SETCODEST, fp_settings().get_esp_est());
|
set(F_SENDALLRIFS, get_send_all_rifs());
|
||||||
set(F_VALCODEST, fp_settings().get_esp_est_cod());
|
set(F_SETCODEST, get_esp_est());
|
||||||
|
set(F_VALCODEST, get_esp_est_cod());
|
||||||
}
|
}
|
||||||
|
|
||||||
void TPA_mask::fill()
|
void TPA_mask::fill()
|
||||||
@ -164,7 +166,7 @@ void TPA_mask::fill()
|
|||||||
TString filter_selected = get(F_FATTSEL);
|
TString filter_selected = get(F_FATTSEL);
|
||||||
|
|
||||||
enable(DLG_OK, filter_selected.empty() || filter_selected == "E");
|
enable(DLG_OK, filter_selected.empty() || filter_selected == "E");
|
||||||
enable(DLG_SAVEREC, (fp_settings().is_f8() && filter_selected == "X") || filter_selected == "D");
|
enable(DLG_SAVEREC, (is_f8() && filter_selected == "X") || filter_selected == "D");
|
||||||
enable(DLG_FINDREC, filter_selected == "D");
|
enable(DLG_FINDREC, filter_selected == "D");
|
||||||
enable(DLG_PRINT, _enable_chiave_fixer && filter_selected.empty());
|
enable(DLG_PRINT, _enable_chiave_fixer && filter_selected.empty());
|
||||||
|
|
||||||
@ -193,8 +195,8 @@ void TPA_mask::fill()
|
|||||||
int fat_no_cod = 0;
|
int fat_no_cod = 0;
|
||||||
|
|
||||||
// Disabilito la colonna del codice ufficio
|
// Disabilito la colonna del codice ufficio
|
||||||
docs.enable_column(docs.cid2index(S_UFFICIO), false);
|
docs.enable_column(cid2index(S_UFFICIO), false);
|
||||||
const TDate data_inizio = fp_settings().get_date_start_new_fatt();
|
const TDate data_inizio = get_date_start_new_fatt();
|
||||||
|
|
||||||
for (bool okc = rec.move_first(); okc; okc = rec.move_next())
|
for (bool okc = rec.move_first(); okc; okc = rec.move_next())
|
||||||
{
|
{
|
||||||
@ -331,6 +333,7 @@ void TPA_mask::connect_keys()
|
|||||||
warning_box("Impossibile allineare le chiavi di uno sheet vuoto!");
|
warning_box("Impossibile allineare le chiavi di uno sheet vuoto!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
TProgress_monitor pi(sht.items(), "Esportazione Fatture");
|
TProgress_monitor pi(sht.items(), "Esportazione Fatture");
|
||||||
FOR_EACH_ARRAY_ROW(sht, r, riga)
|
FOR_EACH_ARRAY_ROW(sht, r, riga)
|
||||||
{
|
{
|
||||||
@ -445,6 +448,7 @@ void TPA_mask::export_paf()
|
|||||||
static const int col_cod_sdi = sfield(F_DOCS).cid2index(S_CODSDI);
|
static const int col_cod_sdi = sfield(F_DOCS).cid2index(S_CODSDI);
|
||||||
TString_array& sht = sfield(F_DOCS).rows_array();
|
TString_array& sht = sfield(F_DOCS).rows_array();
|
||||||
TDoc_fp elab;
|
TDoc_fp elab;
|
||||||
|
|
||||||
//elab.set_cache_insert(true);
|
//elab.set_cache_insert(true);
|
||||||
if (!sht.empty())
|
if (!sht.empty())
|
||||||
{
|
{
|
||||||
@ -661,6 +665,7 @@ void TPA_mask::set_err_paf()
|
|||||||
if (!sht.empty())
|
if (!sht.empty())
|
||||||
{
|
{
|
||||||
TProgress_monitor pi(sht.items(), "Cambio stato fatture");
|
TProgress_monitor pi(sht.items(), "Cambio stato fatture");
|
||||||
|
|
||||||
FOR_EACH_ARRAY_ROW(sht, r, riga)
|
FOR_EACH_ARRAY_ROW(sht, r, riga)
|
||||||
{
|
{
|
||||||
if (!pi.add_status())
|
if (!pi.add_status())
|
||||||
|
@ -5,9 +5,11 @@
|
|||||||
#define F_SETDEFCOD 404
|
#define F_SETDEFCOD 404
|
||||||
#define F_SETCODEST 405
|
#define F_SETCODEST 405
|
||||||
#define F_VALCODEST 406
|
#define F_VALCODEST 406
|
||||||
|
#define F_SENDALLRIFS 407
|
||||||
#define END_MASK 499
|
#define END_MASK 499
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define F_DOCUMENTI_TIPO 301
|
#define F_DOCUMENTI_TIPO 301
|
||||||
|
|
||||||
#define S_SELCODNUM 101
|
#define S_SELCODNUM 101
|
||||||
|
@ -83,7 +83,7 @@ BEGIN
|
|||||||
ITEM "Tipo SDI"
|
ITEM "Tipo SDI"
|
||||||
END
|
END
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 78 4
|
GROUPBOX DLG_NULL 78 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 12 "@BConfigurazione Esportazione"
|
PROMPT 1 12 "@BConfigurazione Esportazione"
|
||||||
END
|
END
|
||||||
@ -94,16 +94,21 @@ BEGIN
|
|||||||
PROMPT 2 13 "Esporta privati con codice '0000000' se privi sia di pec che di cod. destinatario"
|
PROMPT 2 13 "Esporta privati con codice '0000000' se privi sia di pec che di cod. destinatario"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
BOOLEAN F_SENDALLRIFS
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 14 "Esporta tutti i dati dei documenti di riferimento"
|
||||||
|
END
|
||||||
|
|
||||||
BOOLEAN F_SETCODEST
|
BOOLEAN F_SETCODEST
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 14 "Esporta esteri con codice"
|
PROMPT 2 15 "Esporta esteri con codice"
|
||||||
MESSAGE TRUE ENABLE,F_VALCODEST
|
MESSAGE TRUE ENABLE,F_VALCODEST
|
||||||
MESSAGE FALSE DISABLE,F_VALCODEST
|
MESSAGE FALSE DISABLE,F_VALCODEST
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_VALCODEST 7
|
STRING F_VALCODEST 7
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 40 14 ""
|
PROMPT 40 15 ""
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
FLAG "D"
|
FLAG "D"
|
||||||
END
|
END
|
||||||
|
111
src/fp/fplib.h
111
src/fp/fplib.h
@ -10,7 +10,7 @@
|
|||||||
#include <reputils.h>
|
#include <reputils.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include "cglib.h"
|
#include "../cg/cglib.h"
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
#define SQL_FLD "sql/"
|
#define SQL_FLD "sql/"
|
||||||
@ -32,6 +32,8 @@ bool run_fp_psw_mask();
|
|||||||
bool check_tables();
|
bool check_tables();
|
||||||
// Compila il numero di documento per la scrittura sui paf
|
// Compila il numero di documento per la scrittura sui paf
|
||||||
TString& complete_num_fp(const TCodice_numerazione& codnum, const int numdoc);
|
TString& complete_num_fp(const TCodice_numerazione& codnum, const int numdoc);
|
||||||
|
|
||||||
|
|
||||||
// Genera la chiave per i paf
|
// Genera la chiave per i paf
|
||||||
bool chiave_paf(const TDocumento& doc, TString& hfatt, TString& bfatt);
|
bool chiave_paf(const TDocumento& doc, TString& hfatt, TString& bfatt);
|
||||||
bool chiave_paf(const TRectype& doc, TString& hfatt, TString& bfatt);
|
bool chiave_paf(const TRectype& doc, TString& hfatt, TString& bfatt);
|
||||||
@ -130,72 +132,61 @@ public:
|
|||||||
TFP_nota_piede_f();
|
TFP_nota_piede_f();
|
||||||
};
|
};
|
||||||
|
|
||||||
class TFP_settings : public TObject
|
// TFP_settings functions
|
||||||
{
|
const TString& get_db_indirizzo();
|
||||||
public:
|
const TString& get_db_database();
|
||||||
// Getters
|
const TString& get_db_str_con();
|
||||||
const TString& get_db_indirizzo() const;
|
const TString& get_db_user();
|
||||||
const TString& get_db_database() const;
|
const TString& get_db_password();
|
||||||
const TString& get_db_str_con() const;
|
const TString& get_fld_dest();
|
||||||
const TString& get_db_user() const;
|
const TString& get_fld_dest_usr();
|
||||||
const TString& get_db_password() const;
|
const TString& get_cofi_tras();
|
||||||
const TString& get_fld_dest() const;
|
const TDate get_data_start_fatt();
|
||||||
const TString& get_fld_dest_usr() const;
|
const bool get_gest_alleg();
|
||||||
const TString& get_cofi_tras() const;
|
const bool get_allega_fat();
|
||||||
const TString& get_data_start_fatt() const;
|
const bool get_esp_pri_empty();
|
||||||
const bool get_gest_alleg() const;
|
const bool get_send_all_rifs();
|
||||||
const bool get_allega_fat() const;
|
const bool get_esp_est();
|
||||||
const bool get_esp_pri_empty() const;
|
const TString& get_esp_est_cod();
|
||||||
const bool get_esp_est() const;
|
const bool is_f8();
|
||||||
const TString& get_esp_est_cod() const;
|
const bool get_check_not_block();
|
||||||
const bool is_f8() const;
|
const TString& get_body_mail(int idx = -1);
|
||||||
const bool get_check_not_block() const;
|
const TString& get_npf(const char* tipodoc, int idx);
|
||||||
const TString& get_body_mail(int idx = -1) const;
|
const bool get_no_sconti_fatt();
|
||||||
const TString& get_npf(const char* tipodoc, int idx) const;
|
bool get_no_export_pronto();
|
||||||
const bool get_no_sconti_fatt() const;
|
|
||||||
bool get_no_export_pronto() const;
|
|
||||||
// Get tipidoc per NotaPiedeFattura
|
// Get tipidoc per NotaPiedeFattura
|
||||||
const TString get_npf_tipodoc(int indx) const;
|
const TString & get_npf_tipodoc(int indx);
|
||||||
static TDate get_date_start_new_fatt();
|
TDate get_date_start_new_fatt();
|
||||||
|
|
||||||
// Setters
|
// Setters
|
||||||
void set_db_indirizzo(const TString& ind) const;
|
void set_db_indirizzo(const TString& ind);
|
||||||
void set_db_database(const TString& db) const;
|
void set_db_database(const TString& db);
|
||||||
void set_db_user(const TString& usr) const;
|
void set_db_user(const TString& usr);
|
||||||
void set_db_password(const TString& psw) const;
|
void set_db_password(const TString& psw);
|
||||||
void set_fld_dest(const TString& fld_dest) const;
|
void set_fld_dest(const TString& fld_dest);
|
||||||
void set_fld_dest_usr(const TString& fld_dest_usr) const;
|
void set_fld_dest_usr(const TString& fld_dest_usr);
|
||||||
void set_cofi_tras(const TString& cofi) const;
|
void set_cofi_tras(const TString& cofi);
|
||||||
void set_gest_alleg(bool gest_alleg) const;
|
void set_gest_alleg(bool gest_alleg);
|
||||||
void set_allega_fat(bool allega_fatt) const;
|
void set_allega_fat(bool allega_fatt);
|
||||||
void set_esp_pri_empty(bool esp_pri) const;
|
void set_esp_pri_empty(bool esp_pri);
|
||||||
void set_esp_est(bool esp_est) const;
|
void set_send_all_rifs(bool send_all_rifs);
|
||||||
void set_esp_est_cod(const TString& esp_est_cod) const;
|
void set_esp_est(bool esp_est);
|
||||||
void set_f8(bool f8) const;
|
void set_esp_est_cod(const TString& esp_est_cod);
|
||||||
void set_check_not_block(bool not_block) const;
|
void set_f8(bool f8);
|
||||||
void set_body_mail(const char* msg, int idx = -1) const;
|
void set_check_not_block(bool not_block);
|
||||||
void set_no_sconti_fatt(const bool no_sconti_fatt) const;
|
void set_body_mail(const char* msg, int idx = -1);
|
||||||
void set_no_export_pronto(const bool no_export_pronto) const;
|
void set_no_sconti_fatt(const bool no_sconti_fatt);
|
||||||
void set_data_start_fatt(const char* date) const;
|
void set_no_export_pronto(const bool no_export_pronto);
|
||||||
void set_data_start_new_fatt(const char* date) const;
|
void set_data_start_fatt(const char* date);
|
||||||
|
void set_data_start_new_fatt(const char* date);
|
||||||
|
|
||||||
void set_npf(const char * tipodoc, const char* msg, int idx) const;
|
void set_npf(const char * tipodoc, const char* msg, int idx);
|
||||||
void set_npf_tipodoc(const TString& tipodoc, int indx) const;
|
void set_npf_tipodoc(const TString& tipodoc, int indx);
|
||||||
|
|
||||||
void remove_para_ini(int idx);
|
void remove_para_ini(int idx);
|
||||||
void remove_npf_ini(const char* tipodoc, int idx);
|
void remove_npf_ini(const char* tipodoc, int idx);
|
||||||
void remove_tipodoc_npf(int idx) const;
|
void remove_tipodoc_npf(int idx);
|
||||||
};
|
|
||||||
|
|
||||||
inline TFP_settings& fp_settings()
|
|
||||||
{
|
|
||||||
static TFP_settings* erbuggo = nullptr;
|
|
||||||
if(erbuggo == nullptr)
|
|
||||||
{
|
|
||||||
erbuggo = new TFP_settings();
|
|
||||||
}
|
|
||||||
return *erbuggo;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Mannaggia il fruttivendolo
|
// Mannaggia il fruttivendolo
|
||||||
class TFP_righe_custom : public TObject
|
class TFP_righe_custom : public TObject
|
||||||
@ -567,8 +558,8 @@ public:
|
|||||||
int force_commit();
|
int force_commit();
|
||||||
void set_cache_insert(const bool v) { _cache_insert = v; }
|
void set_cache_insert(const bool v) { _cache_insert = v; }
|
||||||
bool tracciati_2021() const { return _tracciati_2021; }
|
bool tracciati_2021() const { return _tracciati_2021; }
|
||||||
|
|
||||||
TDoc_fp();
|
TDoc_fp();
|
||||||
~TDoc_fp();
|
~TDoc_fp();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // __FPLIB_H
|
#endif // __FPLIB_H
|
||||||
|
@ -15,8 +15,10 @@
|
|||||||
#include <cfven.h>
|
#include <cfven.h>
|
||||||
#include <nditte.h>
|
#include <nditte.h>
|
||||||
#include <unloc.h>
|
#include <unloc.h>
|
||||||
|
#include <indsp.h>
|
||||||
#include "../cg/cfban.h"
|
#include "../cg/cfban.h"
|
||||||
#include <modaut.h>
|
#include <modaut.h>
|
||||||
|
#include <netutils.h>
|
||||||
#include <urldefid.h>
|
#include <urldefid.h>
|
||||||
#include "../li/letint.h"
|
#include "../li/letint.h"
|
||||||
|
|
||||||
@ -38,6 +40,7 @@ bool set_connection(SSimple_query& s)
|
|||||||
SSimple_query& fp_db()
|
SSimple_query& fp_db()
|
||||||
{
|
{
|
||||||
static SSimple_query* db = nullptr;
|
static SSimple_query* db = nullptr;
|
||||||
|
|
||||||
if (db == nullptr)
|
if (db == nullptr)
|
||||||
{
|
{
|
||||||
db = new SSimple_query();
|
db = new SSimple_query();
|
||||||
@ -50,24 +53,18 @@ SSimple_query& fp_db()
|
|||||||
|
|
||||||
bool run_fp_psw_mask()
|
bool run_fp_psw_mask()
|
||||||
{
|
{
|
||||||
static TMask* m;
|
TMask m("Password", 1, 30, 5);
|
||||||
// Cancello la maschera se esiste
|
|
||||||
delete m;
|
m.add_button_tool(DLG_OK, "~Conferma", TOOL_OK);
|
||||||
m = new TMask("Password", 1, 30, 5);
|
m.add_button_tool(DLG_CANCEL, "Annulla", TOOL_CANCEL);
|
||||||
m->add_button_tool(DLG_OK, "~Conferma", TOOL_OK);
|
m.add_string(101, 0, "Password ", 1, 1, 15, "*");
|
||||||
m->add_button_tool(DLG_CANCEL, "Annulla", TOOL_CANCEL);
|
m.field(101).check_type(CHECK_REQUIRED);
|
||||||
m->add_string(101, 0, "Password ", 1, 1, 15, "*");
|
while (m.run() == K_ENTER)
|
||||||
m->field(101).check_type(CHECK_REQUIRED);
|
|
||||||
while (m->run() == K_ENTER)
|
|
||||||
{
|
|
||||||
if (m->get(101) == "sirioFATT99") // Hardcoded password are the best!
|
|
||||||
{
|
{
|
||||||
|
if (m.get(101) == "sirioFATT99") // Hardcoded password are the best!
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
return error_box("Password errata");
|
||||||
error_box("Password errata");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -95,6 +92,7 @@ bool check_tables()
|
|||||||
{
|
{
|
||||||
TString file_version = TFilename(file->str).name_only();
|
TString file_version = TFilename(file->str).name_only();
|
||||||
file_version = file_version.mid(2, 4);
|
file_version = file_version.mid(2, 4);
|
||||||
|
|
||||||
if (file_version <= version)
|
if (file_version <= version)
|
||||||
continue;
|
continue;
|
||||||
ifstream f(file->str);
|
ifstream f(file->str);
|
||||||
@ -154,10 +152,12 @@ TString& complete_num_fp(const TCodice_numerazione& codnum, const int numdoc)
|
|||||||
ret << prefisso << ndoc << postfisso;
|
ret << prefisso << ndoc << postfisso;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* HFATT: tipocf(1) + codcf(6)
|
* HFATT: tipocf(1) + codcf(6)
|
||||||
* BFATT: datadoc(8) + tipodoc_SDI(4) + numdoc(7)
|
* BFATT: datadoc(8) + tipodoc_SDI(4) + numdoc(7)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Crea la coppia di chiavi per il db PAF a partire da un documento vero e proprio
|
// Crea la coppia di chiavi per il db PAF a partire da un documento vero e proprio
|
||||||
bool chiave_paf(const TDocumento& doc, TString& hfatt, TString& bfatt)
|
bool chiave_paf(const TDocumento& doc, TString& hfatt, TString& bfatt)
|
||||||
{
|
{
|
||||||
@ -172,6 +172,7 @@ bool chiave_paf(const TDocumento& doc, TString& hfatt, TString& bfatt)
|
|||||||
bfatt.cut(0) << doc.get_date(DOC_DATADOC).date2ansi() << '_' << tipo_doc_sdi(doc) << '_' << complete_num_fp(codnum, doc.numero());
|
bfatt.cut(0) << doc.get_date(DOC_DATADOC).date2ansi() << '_' << tipo_doc_sdi(doc) << '_' << complete_num_fp(codnum, doc.numero());
|
||||||
return hfatt.full() && bfatt.full();
|
return hfatt.full() && bfatt.full();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Crea la coppia di chiavi per il db PAF a partire da un semplice record di testata documento
|
// Crea la coppia di chiavi per il db PAF a partire da un semplice record di testata documento
|
||||||
bool chiave_paf(const TRectype& doc, TString& hfatt, TString& bfatt)
|
bool chiave_paf(const TRectype& doc, TString& hfatt, TString& bfatt)
|
||||||
{
|
{
|
||||||
@ -207,12 +208,12 @@ bool get_coddest(const char tipocf, const long codcf, TString& coddest, TString&
|
|||||||
const TAnagrafica anag(LF_CLIFO, tipocf, codcf);
|
const TAnagrafica anag(LF_CLIFO, tipocf, codcf);
|
||||||
if (coddest.empty())
|
if (coddest.empty())
|
||||||
{
|
{
|
||||||
if (pec.full() || fp_settings().get_esp_pri_empty())
|
if (pec.full() || get_esp_pri_empty())
|
||||||
coddest = "0000000";
|
coddest = "0000000";
|
||||||
// Controllo se è straniero
|
// Controllo se è straniero
|
||||||
else if (anag.estero() && anag.stato_partita_IVA() != "IT")
|
else if (anag.estero() && anag.stato_partita_IVA() != "IT")
|
||||||
{
|
{
|
||||||
coddest = fp_settings().get_esp_est() ? fp_settings().get_esp_est_cod() : "";
|
coddest = get_esp_est() ? get_esp_est_cod() : "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1011,25 +1012,18 @@ bool TDoc_fp::initialize(TDocumentoEsteso& doc)
|
|||||||
return false;
|
return false;
|
||||||
// Preparo il log
|
// Preparo il log
|
||||||
log(-1, _bfatt);
|
log(-1, _bfatt);
|
||||||
#ifndef DBG
|
|
||||||
// Controllo se il documento è almeno in stato di stampa
|
// Controllo se il documento è almeno in stato di stampa
|
||||||
if (doc.stato() < doc.tipo().stato_finale_stampa())
|
if (doc.stato() < doc.tipo().stato_finale_stampa())
|
||||||
{
|
{
|
||||||
log(3, "Il documento non e' stato ancora stampato, verra' saltato");
|
log(3, "Il documento non e' stato ancora stampato, verra' saltato");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
#ifndef DBG
|
|
||||||
_is_pa = doc.clifor().get_int("ALLEG") == 7;
|
_is_pa = doc.clifor().get_int("ALLEG") == 7;
|
||||||
if (!get_coddest(doc.clifor().tipo(), doc.clifor().codice(), _coddest, _pec, doc.get(DOC_CODINDSP)))
|
if (!doc.get_coddest(_coddest, _pec))
|
||||||
{
|
{
|
||||||
log(1, "Impossibile trovare il codice destinatario per la fattura");
|
log(1, "Impossibile trovare il codice destinatario per la fattura");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
_is_pa = false;
|
|
||||||
_coddest = "M5ITOJA";
|
|
||||||
#endif
|
|
||||||
_enapec = _coddest == "0000000" && _pec.full();
|
_enapec = _coddest == "0000000" && _pec.full();
|
||||||
_privato = _coddest.len() != 6;
|
_privato = _coddest.len() != 6;
|
||||||
_caus = TCausale(doc.tipo().causale(), doc.anno());
|
_caus = TCausale(doc.tipo().causale(), doc.anno());
|
||||||
@ -1046,7 +1040,7 @@ bool TDoc_fp::initialize(TDocumentoEsteso& doc)
|
|||||||
_idx_cassa_previdenziale = 1;
|
_idx_cassa_previdenziale = 1;
|
||||||
// Controllo custom
|
// Controllo custom
|
||||||
_has_cust = cached_custom_fp().has_custom(doc);
|
_has_cust = cached_custom_fp().has_custom(doc);
|
||||||
if(check_initial(doc) || fp_settings().get_check_not_block())
|
if(check_initial(doc) || get_check_not_block())
|
||||||
{
|
{
|
||||||
return _paf_container.clean_and_erase_paf(_hfatt, _bfatt);
|
return _paf_container.clean_and_erase_paf(_hfatt, _bfatt);
|
||||||
}
|
}
|
||||||
@ -1124,7 +1118,7 @@ int TDoc_fp::commit()
|
|||||||
if (_to_commit)
|
if (_to_commit)
|
||||||
{
|
{
|
||||||
// Controllo stato diagnosticato
|
// Controllo stato diagnosticato
|
||||||
if (!fp_settings().get_no_export_pronto())
|
if (!get_no_export_pronto())
|
||||||
{
|
{
|
||||||
if (fp_db().sq_set_exec("UPDATE PAF0100F SET P1_GESTIONE = 'P' WHERE P1_GESTIONE = 'D'"))
|
if (fp_db().sq_set_exec("UPDATE PAF0100F SET P1_GESTIONE = 'P' WHERE P1_GESTIONE = 'D'"))
|
||||||
{
|
{
|
||||||
@ -1495,7 +1489,7 @@ void TDoc_fp::fill_buoni(map<TString20, TFPBuono_di_consegna>& buoni, const TStr
|
|||||||
else // Ultima riga
|
else // Ultima riga
|
||||||
{
|
{
|
||||||
TToken_string b(memo, '\n');
|
TToken_string b(memo, '\n');
|
||||||
// "Buono di consegna n. 1997 del 10-10-2019"
|
|
||||||
for (int i = 0; i < b.items(); ++i)
|
for (int i = 0; i < b.items(); ++i)
|
||||||
{
|
{
|
||||||
TToken_string str(b.get(i), ' ');
|
TToken_string str(b.get(i), ' ');
|
||||||
@ -1516,9 +1510,9 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
bool ok = true;
|
bool ok = true;
|
||||||
|
|
||||||
ok &= export_paf0100f();
|
ok &= export_paf0100f();
|
||||||
#ifndef DBG
|
|
||||||
ok &= export_paf3200f();
|
ok &= export_paf3200f();
|
||||||
#endif
|
|
||||||
|
|
||||||
// <CedentePrestatore>
|
// <CedentePrestatore>
|
||||||
TPaf_record& paf0200f = _paf_container.get_paf("PAF0200F");
|
TPaf_record& paf0200f = _paf_container.get_paf("PAF0200F");
|
||||||
@ -1578,6 +1572,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
if (_ditta.giuridica())
|
if (_ditta.giuridica())
|
||||||
{
|
{
|
||||||
TISAM_recordset anagiu("USE ANAGIU\nFROM CODANAGR=#CODICE\nTO CODANAGR=#CODICE");
|
TISAM_recordset anagiu("USE ANAGIU\nFROM CODANAGR=#CODICE\nTO CODANAGR=#CODICE");
|
||||||
|
|
||||||
anagiu.set_var("#CODICE", get_firm().get(NDT_CODANAGR));
|
anagiu.set_var("#CODICE", get_firm().get(NDT_CODANAGR));
|
||||||
if (anagiu.move_first())
|
if (anagiu.move_first())
|
||||||
{
|
{
|
||||||
@ -1723,7 +1718,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
paf2700f.set("PQ_GESTIONE", "D");
|
paf2700f.set("PQ_GESTIONE", "D");
|
||||||
ok &= insert(paf2700f);
|
ok &= insert(paf2700f);
|
||||||
// <DatiOrdineAcquisto>
|
// <DatiOrdineAcquisto>
|
||||||
if(doc.is_nota_credito() && doc.get(DOC_NUMDOCRIF).full())
|
if((doc.is_nota_credito() || get_send_all_rifs()) && doc.get(DOC_NUMDOCRIF).full())
|
||||||
{
|
{
|
||||||
TPaf_record& paf1400f = _paf_container.get_paf("PAF1400F");
|
TPaf_record& paf1400f = _paf_container.get_paf("PAF1400F");
|
||||||
reset(paf1400f);
|
reset(paf1400f);
|
||||||
@ -1867,7 +1862,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
FOR_EACH_PHYSICAL_FPRDOC(doc, r, rdoc)
|
FOR_EACH_PHYSICAL_FPRDOC(doc, r, rdoc)
|
||||||
{
|
{
|
||||||
// Controllo la riga
|
// Controllo la riga
|
||||||
if (check_row(*rdoc) && !fp_settings().get_check_not_block())
|
if (check_row(*rdoc) && !get_check_not_block())
|
||||||
return false;
|
return false;
|
||||||
_idx_adg_doc_row = 1L;
|
_idx_adg_doc_row = 1L;
|
||||||
bool skip_riga = false;
|
bool skip_riga = false;
|
||||||
@ -1930,11 +1925,13 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
if (!riftesta)
|
if (!riftesta)
|
||||||
{
|
{
|
||||||
TArray ancestors;
|
TArray ancestors;
|
||||||
|
|
||||||
find_ancestors(*rdoc, ancestors);
|
find_ancestors(*rdoc, ancestors);
|
||||||
for (int i = ancestors.last(); i > 0; i = ancestors.pred(i))
|
for (int i = ancestors.last(); i > 0; i = ancestors.pred(i))
|
||||||
{
|
{
|
||||||
_has_bolla |= true;
|
_has_bolla |= true;
|
||||||
const TAncestor& a = dynamic_cast<const TAncestor&>(ancestors[i]);
|
const TAncestor& a = dynamic_cast<const TAncestor&>(ancestors[i]);
|
||||||
|
|
||||||
ancestors_s.insert({ a._numdoc, a._datadoc }); // Per i buoni di consegna lavanderie
|
ancestors_s.insert({ a._numdoc, a._datadoc }); // Per i buoni di consegna lavanderie
|
||||||
if (i == 1)
|
if (i == 1)
|
||||||
{
|
{
|
||||||
@ -2080,10 +2077,9 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
ok &= insert(paf2100f);
|
ok &= insert(paf2100f);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
|
||||||
// Salto tutte le altre righe
|
// Salto tutte le altre righe
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
// <ScontoMaggiorazione>
|
// <ScontoMaggiorazione>
|
||||||
TString80 sconto_expr = rdoc->get(RDOC_SCONTO);
|
TString80 sconto_expr = rdoc->get(RDOC_SCONTO);
|
||||||
TToken_string sconti;
|
TToken_string sconti;
|
||||||
@ -2131,6 +2127,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
if (!riftesta && f_buonocons)
|
if (!riftesta && f_buonocons)
|
||||||
{
|
{
|
||||||
TString& memo = riga_buoni_cons;
|
TString& memo = riga_buoni_cons;
|
||||||
|
|
||||||
if (memo.full())
|
if (memo.full())
|
||||||
{
|
{
|
||||||
map<TString20, TFPBuono_di_consegna> buoni;
|
map<TString20, TFPBuono_di_consegna> buoni;
|
||||||
@ -2347,7 +2344,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
for(TObject* itm = tiva.first_item(); itm != nullptr; itm = tiva.succ_item())
|
for(TObject* itm = tiva.first_item(); itm != nullptr; itm = tiva.succ_item())
|
||||||
{
|
{
|
||||||
const TRiepilogo_iva& riva = *dynamic_cast<const TRiepilogo_iva*>(itm);
|
const TRiepilogo_iva& riva = *dynamic_cast<const TRiepilogo_iva*>(itm);
|
||||||
if (!check_riepilogo(doc, riva) && !fp_settings().get_check_not_block())
|
if (!check_riepilogo(doc, riva) && !get_check_not_block())
|
||||||
return false;
|
return false;
|
||||||
add_riepilogo_iva(paf2200f, riva.cod_iva(), eiva, riva.imponibile(), riva.imposta());
|
add_riepilogo_iva(paf2200f, riva.cod_iva(), eiva, riva.imponibile(), riva.imposta());
|
||||||
}
|
}
|
||||||
@ -2412,6 +2409,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
long nprogr = 0; // Numero di file allegati
|
long nprogr = 0; // Numero di file allegati
|
||||||
// Se abilitato stampo il documento e lo allego
|
// Se abilitato stampo il documento e lo allego
|
||||||
TFilename rep;
|
TFilename rep;
|
||||||
|
|
||||||
if (_allegafattura)
|
if (_allegafattura)
|
||||||
{
|
{
|
||||||
if (!dongle().active(RSAUT))
|
if (!dongle().active(RSAUT))
|
||||||
@ -2518,10 +2516,12 @@ bool TDoc_fp::doc_to_paf(const TRectype& rec)
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TDoc_fp::doc_to_paf(const TDoc_key& key)
|
bool TDoc_fp::doc_to_paf(const TDoc_key& key)
|
||||||
{
|
{
|
||||||
return doc_to_paf(key_to_doc(key));
|
return doc_to_paf(key_to_doc(key));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TDoc_fp::doc_to_paf(const TFilename& ini)
|
bool TDoc_fp::doc_to_paf(const TFilename& ini)
|
||||||
{
|
{
|
||||||
TConfig cfg(ini, "33");
|
TConfig cfg(ini, "33");
|
||||||
@ -2531,10 +2531,12 @@ bool TDoc_fp::doc_to_paf(const TFilename& ini)
|
|||||||
const TDoc_key key(anno, codnum, ndoc);
|
const TDoc_key key(anno, codnum, ndoc);
|
||||||
return doc_to_paf(key);
|
return doc_to_paf(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TDoc_fp::doc_to_paf()
|
bool TDoc_fp::doc_to_paf()
|
||||||
{
|
{
|
||||||
return _doc_rec != nullptr ? doc_to_paf(*_doc_rec) : false;
|
return _doc_rec != nullptr ? doc_to_paf(*_doc_rec) : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
TRectype& TDoc_fp::key_to_doc(const TDoc_key& key)
|
TRectype& TDoc_fp::key_to_doc(const TDoc_key& key)
|
||||||
{
|
{
|
||||||
if(_doc_rec != nullptr)
|
if(_doc_rec != nullptr)
|
||||||
@ -2549,23 +2551,19 @@ TRectype& TDoc_fp::key_to_doc(const TDoc_key& key)
|
|||||||
TDoc_fp::TDoc_fp() : _doc_rec(nullptr), _log(nullptr), _cache_insert(false)
|
TDoc_fp::TDoc_fp() : _doc_rec(nullptr), _log(nullptr), _cache_insert(false)
|
||||||
{
|
{
|
||||||
_ditta.init(LF_NDITTE, prefix().get_codditta());
|
_ditta.init(LF_NDITTE, prefix().get_codditta());
|
||||||
_cofi = fp_settings().get_cofi_tras();
|
_cofi = get_cofi_tras();
|
||||||
const TDate data_inizio = fp_settings().get_date_start_new_fatt();
|
const TDate data_inizio = get_date_start_new_fatt();
|
||||||
_tracciati_2021 = (data_inizio <= today);
|
_tracciati_2021 = (data_inizio <= today);
|
||||||
if (_cofi.blank())
|
if (_cofi.blank())
|
||||||
_cofi = _ditta.codice_fiscale();
|
_cofi = _ditta.codice_fiscale();
|
||||||
#ifdef DBG
|
_gestioneallegati = get_gest_alleg();
|
||||||
_gestioneallegati = _allegafattura = false;
|
_allegafattura = get_allega_fat();
|
||||||
#else
|
_def_fld = get_fld_dest();
|
||||||
_gestioneallegati = fp_settings().get_gest_alleg();
|
|
||||||
_allegafattura = fp_settings().get_allega_fat();
|
|
||||||
#endif
|
|
||||||
_def_fld = fp_settings().get_fld_dest();
|
|
||||||
if (!_def_fld.ends_with("\\"))
|
if (!_def_fld.ends_with("\\"))
|
||||||
{
|
{
|
||||||
_def_fld << "\\";
|
_def_fld << "\\";
|
||||||
}
|
}
|
||||||
_def_usr_fld = fp_settings().get_fld_dest_usr();
|
_def_usr_fld = get_fld_dest_usr();
|
||||||
if (_def_usr_fld.empty())
|
if (_def_usr_fld.empty())
|
||||||
{
|
{
|
||||||
_def_usr_fld = _def_fld;
|
_def_usr_fld = _def_fld;
|
||||||
@ -2578,8 +2576,9 @@ TDoc_fp::TDoc_fp() : _doc_rec(nullptr), _log(nullptr), _cache_insert(false)
|
|||||||
_conai_str = ini_get_string(CONFIG_DITTA, "ve", "DESCCONAIASS");
|
_conai_str = ini_get_string(CONFIG_DITTA, "ve", "DESCCONAIASS");
|
||||||
if (_conai_str.empty())
|
if (_conai_str.empty())
|
||||||
_conai_str = "Contributo CONAI assolto ove dovuto";
|
_conai_str = "Contributo CONAI assolto ove dovuto";
|
||||||
_nascondi_sconti_righe_fatt = fp_settings().get_no_sconti_fatt();
|
_nascondi_sconti_righe_fatt = get_no_sconti_fatt();
|
||||||
}
|
}
|
||||||
|
|
||||||
TDoc_fp::~TDoc_fp()
|
TDoc_fp::~TDoc_fp()
|
||||||
{
|
{
|
||||||
commit();
|
commit();
|
||||||
|
@ -4,8 +4,6 @@
|
|||||||
#define FILE_SECTION "fp"
|
#define FILE_SECTION "fp"
|
||||||
#define FP_TAB_MOD "FP"
|
#define FP_TAB_MOD "FP"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define FP_IP "ip"
|
#define FP_IP "ip"
|
||||||
#define FP_DB "db"
|
#define FP_DB "db"
|
||||||
#define FP_USR "usr"
|
#define FP_USR "usr"
|
||||||
@ -26,6 +24,7 @@
|
|||||||
#define FP_CHECK_NO_EXPORT_PRONTO "noexportpronto"
|
#define FP_CHECK_NO_EXPORT_PRONTO "noexportpronto"
|
||||||
#define FP_DATASTARTFATT "datastartfatt"
|
#define FP_DATASTARTFATT "datastartfatt"
|
||||||
#define FP_DATASTARTNEWFATT "startnewtracciato"
|
#define FP_DATASTARTNEWFATT "startnewtracciato"
|
||||||
|
#define FP_SEND_ALL_RIFS "sendallrifs"
|
||||||
|
|
||||||
// Sheet fp0300
|
// Sheet fp0300
|
||||||
#define FP_SLD_COD "SLD"
|
#define FP_SLD_COD "SLD"
|
||||||
@ -49,241 +48,257 @@
|
|||||||
#define FP_SHT_DEF_PREZZO "PREZZONN"
|
#define FP_SHT_DEF_PREZZO "PREZZONN"
|
||||||
#define FP_SHT_DEF_IMPONIBILE "IMPNS"
|
#define FP_SHT_DEF_IMPONIBILE "IMPNS"
|
||||||
|
|
||||||
const TString& TFP_settings::get_db_indirizzo() const
|
const TString& get_db_indirizzo()
|
||||||
{
|
{
|
||||||
return ini_get_string(FILE_CONFIG, FILE_SECTION, FP_IP);
|
return ini_get_string(FILE_CONFIG, FILE_SECTION, FP_IP);
|
||||||
}
|
}
|
||||||
|
|
||||||
const TString& TFP_settings::get_db_database() const
|
const TString& get_db_database()
|
||||||
{
|
{
|
||||||
return ini_get_string(FILE_CONFIG, FILE_SECTION, FP_DB);
|
return ini_get_string(FILE_CONFIG, FILE_SECTION, FP_DB);
|
||||||
}
|
}
|
||||||
|
|
||||||
const TString& TFP_settings::get_db_str_con() const
|
const TString& get_db_str_con()
|
||||||
{
|
{
|
||||||
return get_tmp_string().cut(0) << get_db_indirizzo() << "@" << get_db_database();
|
return get_tmp_string().cut(0) << get_db_indirizzo() << "@" << get_db_database();
|
||||||
}
|
}
|
||||||
|
|
||||||
const TString& TFP_settings::get_db_user() const
|
const TString& get_db_user()
|
||||||
{
|
{
|
||||||
return ini_get_string(FILE_CONFIG, FILE_SECTION, FP_USR);
|
return ini_get_string(FILE_CONFIG, FILE_SECTION, FP_USR);
|
||||||
}
|
}
|
||||||
|
|
||||||
const TString& TFP_settings::get_db_password() const
|
const TString& get_db_password()
|
||||||
{
|
{
|
||||||
return get_tmp_string().cut(0) << decode(ini_get_string(FILE_CONFIG, FILE_SECTION, FP_PSW));
|
return get_tmp_string().cut(0) << decode(ini_get_string(FILE_CONFIG, FILE_SECTION, FP_PSW));
|
||||||
}
|
}
|
||||||
|
|
||||||
const TString& TFP_settings::get_fld_dest() const
|
const TString& get_fld_dest()
|
||||||
{
|
{
|
||||||
return ini_get_string(FILE_CONFIG, FILE_SECTION, FP_FLD_DEST);
|
return ini_get_string(FILE_CONFIG, FILE_SECTION, FP_FLD_DEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
const TString& TFP_settings::get_fld_dest_usr() const
|
const TString& get_fld_dest_usr()
|
||||||
{
|
{
|
||||||
return ini_get_string(FILE_CONFIG, FILE_SECTION, FP_FLD_USR_DEST, "");
|
return ini_get_string(FILE_CONFIG, FILE_SECTION, FP_FLD_USR_DEST, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
const TString& TFP_settings::get_cofi_tras() const
|
const TString& get_cofi_tras()
|
||||||
{
|
{
|
||||||
return ini_get_string(FILE_CONFIG, FILE_SECTION, FP_COFI_TRAS);
|
return ini_get_string(FILE_CONFIG, FILE_SECTION, FP_COFI_TRAS);
|
||||||
}
|
}
|
||||||
|
|
||||||
const TString& TFP_settings::get_data_start_fatt() const
|
const TDate get_data_start_fatt()
|
||||||
{
|
{
|
||||||
return ini_get_string(FILE_CONFIG, FILE_SECTION, FP_DATASTARTFATT, "01-01-2019");
|
return ini_get_date(FILE_CONFIG, FILE_SECTION, FP_DATASTARTFATT, "01-01-2019");
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool TFP_settings::get_gest_alleg() const
|
const bool get_gest_alleg()
|
||||||
{
|
{
|
||||||
return ini_get_bool(FILE_CONFIG, FILE_SECTION, FP_GEST_ALLEG);
|
return ini_get_bool(FILE_CONFIG, FILE_SECTION, FP_GEST_ALLEG);
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool TFP_settings::get_allega_fat() const
|
const bool get_allega_fat()
|
||||||
{
|
{
|
||||||
return ini_get_bool(FILE_CONFIG, FILE_SECTION, FP_ALLEG_FAT);
|
return ini_get_bool(FILE_CONFIG, FILE_SECTION, FP_ALLEG_FAT);
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool TFP_settings::get_esp_pri_empty() const
|
const bool get_esp_pri_empty()
|
||||||
{
|
{
|
||||||
return ini_get_bool(FILE_CONFIG, FILE_SECTION, FP_ESP_PRI);
|
return ini_get_bool(FILE_CONFIG, FILE_SECTION, FP_ESP_PRI);
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool TFP_settings::get_esp_est() const
|
const bool get_send_all_rifs()
|
||||||
|
{
|
||||||
|
return ini_get_bool(FILE_CONFIG, FILE_SECTION, FP_SEND_ALL_RIFS);
|
||||||
|
}
|
||||||
|
|
||||||
|
const bool get_esp_est()
|
||||||
{
|
{
|
||||||
return ini_get_bool(FILE_CONFIG, FILE_SECTION, FP_ESP_EST);
|
return ini_get_bool(FILE_CONFIG, FILE_SECTION, FP_ESP_EST);
|
||||||
}
|
}
|
||||||
|
|
||||||
const TString& TFP_settings::get_esp_est_cod() const
|
const TString& get_esp_est_cod()
|
||||||
{
|
{
|
||||||
return ini_get_string(FILE_CONFIG, FILE_SECTION, FP_ESP_EST_COD, "XXXXXXX");
|
return ini_get_string(FILE_CONFIG, FILE_SECTION, FP_ESP_EST_COD, "XXXXXXX");
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool TFP_settings::is_f8() const
|
const bool is_f8()
|
||||||
{
|
{
|
||||||
return ini_get_bool(FILE_CONFIG, FILE_SECTION, FP_F8);
|
return ini_get_bool(FILE_CONFIG, FILE_SECTION, FP_F8);
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool TFP_settings::get_check_not_block() const
|
const bool get_check_not_block()
|
||||||
{
|
{
|
||||||
return ini_get_bool(FILE_CONFIG, FILE_SECTION, FP_CHECK_NOT_BLOCK);
|
return ini_get_bool(FILE_CONFIG, FILE_SECTION, FP_CHECK_NOT_BLOCK);
|
||||||
}
|
}
|
||||||
|
|
||||||
const TString& TFP_settings::get_body_mail(int idx) const
|
const TString& get_body_mail(int idx)
|
||||||
{
|
{
|
||||||
return ini_get_string(FILE_CONFIG, FILE_SECTION, FP_MAIL, "STOpsTOP", idx);
|
return ini_get_string(FILE_CONFIG, FILE_SECTION, FP_MAIL, "STOpsTOP", idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
const TString& TFP_settings::get_npf(const char * tipodoc, int idx) const
|
const TString& get_npf(const char * tipodoc, int idx)
|
||||||
{
|
{
|
||||||
TString name; name << FP_NOTA_PIEDE_F << "-" << tipodoc;
|
TString name; name << FP_NOTA_PIEDE_F << "-" << tipodoc;
|
||||||
|
|
||||||
return ini_get_string(FILE_CONFIG, FILE_SECTION, name, "FERMATIostrega", idx);
|
return ini_get_string(FILE_CONFIG, FILE_SECTION, name, "FERMATIostrega", idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
const TString TFP_settings::get_npf_tipodoc(int indx) const
|
const TString & get_npf_tipodoc(int indx)
|
||||||
{
|
{
|
||||||
TString name; name << FP_NOTA_PIEDE_F << "_tipodoc";
|
TString name; name << FP_NOTA_PIEDE_F << "_tipodoc";
|
||||||
|
|
||||||
return ini_get_string(FILE_CONFIG, FILE_SECTION, name, "FERMATIostrega", indx);
|
return ini_get_string(FILE_CONFIG, FILE_SECTION, name, "FERMATIostrega", indx);
|
||||||
}
|
}
|
||||||
|
|
||||||
TDate TFP_settings::get_date_start_new_fatt()
|
TDate get_date_start_new_fatt()
|
||||||
{
|
{
|
||||||
return ini_get_date(CONFIG_DITTA, FILE_SECTION, FP_DATASTARTNEWFATT, "01-01-2021");
|
return ini_get_date(CONFIG_DITTA, FILE_SECTION, FP_DATASTARTNEWFATT, "01-01-2021");
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool TFP_settings::get_no_sconti_fatt() const
|
const bool get_no_sconti_fatt()
|
||||||
{
|
{
|
||||||
return ini_get_bool(FILE_CONFIG, FILE_SECTION, FP_CHECK_NO_SCONTI_FATT, false);
|
return ini_get_bool(FILE_CONFIG, FILE_SECTION, FP_CHECK_NO_SCONTI_FATT, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TFP_settings::get_no_export_pronto() const
|
bool get_no_export_pronto()
|
||||||
{
|
{
|
||||||
return ini_get_bool(FILE_CONFIG, FILE_SECTION, FP_CHECK_NO_EXPORT_PRONTO, false);
|
return ini_get_bool(FILE_CONFIG, FILE_SECTION, FP_CHECK_NO_EXPORT_PRONTO, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TFP_settings::set_db_indirizzo(const TString& ind) const
|
void set_db_indirizzo(const TString& ind)
|
||||||
{
|
{
|
||||||
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_IP, ind);
|
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_IP, ind);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TFP_settings::set_db_database(const TString& db) const
|
void set_db_database(const TString& db)
|
||||||
{
|
{
|
||||||
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_DB, db);
|
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_DB, db);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TFP_settings::set_db_user(const TString& usr) const
|
void set_db_user(const TString& usr)
|
||||||
{
|
{
|
||||||
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_USR, usr);
|
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_USR, usr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TFP_settings::set_db_password(const TString& psw) const
|
void set_db_password(const TString& psw)
|
||||||
{
|
{
|
||||||
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_PSW, encode(psw));
|
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_PSW, encode(psw));
|
||||||
}
|
}
|
||||||
|
|
||||||
void TFP_settings::set_fld_dest(const TString& fld_dest) const
|
void set_fld_dest(const TString& fld_dest)
|
||||||
{
|
{
|
||||||
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_FLD_DEST, fld_dest);
|
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
|
void set_fld_dest_usr(const TString& fld_dest_usr)
|
||||||
{
|
{
|
||||||
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_FLD_USR_DEST, fld_dest_usr);
|
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_FLD_USR_DEST, fld_dest_usr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TFP_settings::set_cofi_tras(const TString& cofi) const
|
void set_cofi_tras(const TString& cofi)
|
||||||
{
|
{
|
||||||
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_COFI_TRAS, cofi);
|
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_COFI_TRAS, cofi);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TFP_settings::set_gest_alleg(const bool gest_alleg) const
|
void set_gest_alleg(const bool gest_alleg)
|
||||||
{
|
{
|
||||||
ini_set_bool(FILE_CONFIG, FILE_SECTION, FP_GEST_ALLEG, gest_alleg);
|
ini_set_bool(FILE_CONFIG, FILE_SECTION, FP_GEST_ALLEG, gest_alleg);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TFP_settings::set_allega_fat(const bool allega_fatt) const
|
void set_allega_fat(const bool allega_fatt)
|
||||||
{
|
{
|
||||||
ini_set_bool(FILE_CONFIG, FILE_SECTION, FP_ALLEG_FAT, allega_fatt);
|
ini_set_bool(FILE_CONFIG, FILE_SECTION, FP_ALLEG_FAT, allega_fatt);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TFP_settings::set_esp_pri_empty(const bool esp_pri) const
|
void set_esp_pri_empty(const bool esp_pri)
|
||||||
{
|
{
|
||||||
ini_set_bool(FILE_CONFIG, FILE_SECTION, FP_ESP_PRI, esp_pri);
|
ini_set_bool(FILE_CONFIG, FILE_SECTION, FP_ESP_PRI, esp_pri);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TFP_settings::set_esp_est(const bool esp_est) const
|
void set_send_all_rifs(const bool esp_pri)
|
||||||
|
{
|
||||||
|
ini_set_bool(FILE_CONFIG, FILE_SECTION, FP_SEND_ALL_RIFS, esp_pri);
|
||||||
|
}
|
||||||
|
|
||||||
|
void set_esp_est(const bool esp_est)
|
||||||
{
|
{
|
||||||
ini_set_bool(FILE_CONFIG, FILE_SECTION, FP_ESP_EST, esp_est);
|
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
|
void set_esp_est_cod(const TString& esp_est_cod)
|
||||||
{
|
{
|
||||||
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_ESP_EST_COD, esp_est_cod);
|
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_ESP_EST_COD, esp_est_cod);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TFP_settings::set_f8(const bool f8) const
|
void set_f8(const bool f8)
|
||||||
{
|
{
|
||||||
ini_set_bool(FILE_CONFIG, FILE_SECTION, FP_F8, f8);
|
ini_set_bool(FILE_CONFIG, FILE_SECTION, FP_F8, f8);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TFP_settings::set_check_not_block(const bool not_block) const
|
void set_check_not_block(const bool not_block)
|
||||||
{
|
{
|
||||||
ini_set_bool(FILE_CONFIG, FILE_SECTION, FP_CHECK_NOT_BLOCK, not_block);
|
ini_set_bool(FILE_CONFIG, FILE_SECTION, FP_CHECK_NOT_BLOCK, not_block);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TFP_settings::set_body_mail(const char* msg, int idx) const
|
void set_body_mail(const char* msg, int idx)
|
||||||
{
|
{
|
||||||
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_MAIL, msg, idx);
|
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_MAIL, msg, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set nota piede fattura
|
// Set nota piede fattura
|
||||||
void TFP_settings::set_npf(const char * tipodoc, const char* msg, int idx) const
|
void set_npf(const char * tipodoc, const char* msg, int idx)
|
||||||
{
|
{
|
||||||
TString name; name << FP_NOTA_PIEDE_F << "-" << tipodoc;
|
TString name; name << FP_NOTA_PIEDE_F << "-" << tipodoc;
|
||||||
|
|
||||||
ini_set_string(FILE_CONFIG, FILE_SECTION, name, msg, idx);
|
ini_set_string(FILE_CONFIG, FILE_SECTION, name, msg, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TFP_settings::set_no_sconti_fatt(const bool no_sconti_fatt) const
|
void set_no_sconti_fatt(const bool no_sconti_fatt)
|
||||||
{
|
{
|
||||||
ini_set_bool(FILE_CONFIG, FILE_SECTION, FP_CHECK_NO_SCONTI_FATT, no_sconti_fatt);
|
ini_set_bool(FILE_CONFIG, FILE_SECTION, FP_CHECK_NO_SCONTI_FATT, no_sconti_fatt);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TFP_settings::set_no_export_pronto(const bool no_export_pronto) const
|
void set_no_export_pronto(const bool no_export_pronto)
|
||||||
{
|
{
|
||||||
ini_set_bool(FILE_CONFIG, FILE_SECTION, FP_CHECK_NO_EXPORT_PRONTO, no_export_pronto);
|
ini_set_bool(FILE_CONFIG, FILE_SECTION, FP_CHECK_NO_EXPORT_PRONTO, no_export_pronto);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TFP_settings::set_data_start_fatt(const char* date) const
|
void set_data_start_fatt(const char* date)
|
||||||
{
|
{
|
||||||
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_DATASTARTFATT, date);
|
ini_set_string(FILE_CONFIG, FILE_SECTION, FP_DATASTARTFATT, date);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TFP_settings::set_data_start_new_fatt(const char* date) const
|
void set_data_start_new_fatt(const char* date)
|
||||||
{
|
{
|
||||||
ini_set_string(CONFIG_DITTA, FILE_SECTION, FP_DATASTARTNEWFATT, date);
|
ini_set_string(CONFIG_DITTA, FILE_SECTION, FP_DATASTARTNEWFATT, date);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TFP_settings::remove_para_ini(int idx)
|
void remove_para_ini(int idx)
|
||||||
{
|
{
|
||||||
ini_remove(FILE_CONFIG, FILE_SECTION, FP_MAIL, idx);
|
ini_remove(FILE_CONFIG, FILE_SECTION, FP_MAIL, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TFP_settings::remove_npf_ini(const char * tipodoc, int idx)
|
void remove_npf_ini(const char * tipodoc, int idx)
|
||||||
{
|
{
|
||||||
TString name; name << FP_NOTA_PIEDE_F << "-" << tipodoc;
|
TString name; name << FP_NOTA_PIEDE_F << "-" << tipodoc;
|
||||||
|
|
||||||
ini_remove(FILE_CONFIG, FILE_SECTION, name, idx);
|
ini_remove(FILE_CONFIG, FILE_SECTION, name, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TFP_settings::set_npf_tipodoc(const TString& tipodoc, int indx) const
|
void set_npf_tipodoc(const TString& tipodoc, int indx)
|
||||||
{
|
{
|
||||||
TString name; name << FP_NOTA_PIEDE_F << "_tipodoc";
|
TString name; name << FP_NOTA_PIEDE_F << "_tipodoc";
|
||||||
|
|
||||||
ini_set_string(FILE_CONFIG, FILE_SECTION, name, tipodoc, indx);
|
ini_set_string(FILE_CONFIG, FILE_SECTION, name, tipodoc, indx);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Rimuove linea ini in eccesso per tipodoc per nota piede fattura
|
// Rimuove linea ini in eccesso per tipodoc per nota piede fattura
|
||||||
void TFP_settings::remove_tipodoc_npf(const int idx) const
|
void remove_tipodoc_npf(const int idx)
|
||||||
{
|
{
|
||||||
TString name; name << FP_NOTA_PIEDE_F << "_tipodoc";
|
TString name; name << FP_NOTA_PIEDE_F << "_tipodoc";
|
||||||
|
|
||||||
ini_remove(FILE_CONFIG, FILE_SECTION, name, idx);
|
ini_remove(FILE_CONFIG, FILE_SECTION, name, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -387,16 +402,16 @@ void TFP_nota_piede_f::write_ini_npf(const TString& tipodoc, TToken_string& msg)
|
|||||||
// Conto quanti ne avevo salvati prima nel file ini per poi controllare
|
// Conto quanti ne avevo salvati prima nel file ini per poi controllare
|
||||||
// che non sto salvando meno di quelli che ci sono già
|
// che non sto salvando meno di quelli che ci sono già
|
||||||
int previous_indx = 0;
|
int previous_indx = 0;
|
||||||
for (TString row = fp_settings().get_npf(tipodoc, previous_indx); row != "FERMATIostrega"; row = fp_settings().get_npf(tipodoc, previous_indx))
|
for (TString row = get_npf(tipodoc, previous_indx); row != "FERMATIostrega"; row = get_npf(tipodoc, previous_indx))
|
||||||
previous_indx++;
|
previous_indx++;
|
||||||
// Vado a salvare ogni riga nel file ini
|
// Vado a salvare ogni riga nel file ini
|
||||||
for (const char* row = msg.get(); row; row = msg.get())
|
for (const char* row = msg.get(); row; row = msg.get())
|
||||||
fp_settings().set_npf(tipodoc, row, indx++);
|
set_npf(tipodoc, row, indx++);
|
||||||
|
|
||||||
if (indx < previous_indx)
|
if (indx < previous_indx)
|
||||||
{
|
{
|
||||||
for (int i = indx; i < previous_indx; i++)
|
for (int i = indx; i < previous_indx; i++)
|
||||||
fp_settings().remove_npf_ini(tipodoc, i);
|
remove_npf_ini(tipodoc, i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -405,10 +420,10 @@ void TFP_nota_piede_f::delete_ini_npf(const TString& tipodoc)
|
|||||||
// Conto quanti ne avevo salvati prima nel file ini per poi controllare
|
// Conto quanti ne avevo salvati prima nel file ini per poi controllare
|
||||||
// che non sto salvando meno di quelli che ci sono già
|
// che non sto salvando meno di quelli che ci sono già
|
||||||
int previous_indx = 0;
|
int previous_indx = 0;
|
||||||
for (TString row = fp_settings().get_npf(tipodoc, previous_indx); row != "FERMATIostrega"; row = fp_settings().get_npf(tipodoc, previous_indx))
|
for (TString row = get_npf(tipodoc, previous_indx); row != "FERMATIostrega"; row = get_npf(tipodoc, previous_indx))
|
||||||
previous_indx++;
|
previous_indx++;
|
||||||
for (int i = 0; i < previous_indx; i++)
|
for (int i = 0; i < previous_indx; i++)
|
||||||
fp_settings().remove_npf_ini(tipodoc, i);
|
remove_npf_ini(tipodoc, i);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -418,7 +433,7 @@ TString TFP_nota_piede_f::get_ini_npf(const TString& tipodoc)
|
|||||||
TString msg; msg.cut(0);
|
TString msg; msg.cut(0);
|
||||||
|
|
||||||
int indx = 0;
|
int indx = 0;
|
||||||
for (TString row = fp_settings().get_npf(tipodoc, indx); row != "FERMATIostrega"; row = fp_settings().get_npf(tipodoc, indx))
|
for (TString row = get_npf(tipodoc, indx); row != "FERMATIostrega"; row = get_npf(tipodoc, indx))
|
||||||
{
|
{
|
||||||
if(indx++ > 0)
|
if(indx++ > 0)
|
||||||
msg << '\n';
|
msg << '\n';
|
||||||
@ -432,7 +447,7 @@ void TFP_nota_piede_f::get_load()
|
|||||||
// Prima leggo i tipi doc che ho salvato dall'ini
|
// Prima leggo i tipi doc che ho salvato dall'ini
|
||||||
TString tipo_get = "";
|
TString tipo_get = "";
|
||||||
int indx = 0;
|
int indx = 0;
|
||||||
while ((tipo_get = fp_settings().get_npf_tipodoc(indx++)) != "FERMATIostrega")
|
while ((tipo_get = get_npf_tipodoc(indx++)) != "FERMATIostrega")
|
||||||
_tipi_doc.add(tipo_get);
|
_tipi_doc.add(tipo_get);
|
||||||
|
|
||||||
const int itms = _tipi_doc.items();
|
const int itms = _tipi_doc.items();
|
||||||
@ -451,7 +466,7 @@ void TFP_nota_piede_f::load_sheet(TSheet_field& sheet_field)
|
|||||||
// Prima leggo i tipi doc che ho salvato dall'ini
|
// Prima leggo i tipi doc che ho salvato dall'ini
|
||||||
TString tipo_get = "";
|
TString tipo_get = "";
|
||||||
int indx = 0;
|
int indx = 0;
|
||||||
while((tipo_get = fp_settings().get_npf_tipodoc(indx++)) != "FERMATIostrega")
|
while((tipo_get = get_npf_tipodoc(indx++)) != "FERMATIostrega")
|
||||||
_tipi_doc.add(tipo_get);
|
_tipi_doc.add(tipo_get);
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
@ -495,7 +510,7 @@ void TFP_nota_piede_f::save_new_tipidoc(TSheet_field& sheet_field)
|
|||||||
int n_tipidoc = 0;
|
int n_tipidoc = 0;
|
||||||
TString npf_get;
|
TString npf_get;
|
||||||
// Conto quanti tipi doc ho nel file ini
|
// Conto quanti tipi doc ho nel file ini
|
||||||
for (int i = 0; (npf_get = fp_settings().get_npf_tipodoc(i)) != "FERMATIostrega"; i++)
|
for (int i = 0; (npf_get = get_npf_tipodoc(i)) != "FERMATIostrega"; i++)
|
||||||
{
|
{
|
||||||
n_tipidoc++;
|
n_tipidoc++;
|
||||||
_tipi_doc.add(npf_get);
|
_tipi_doc.add(npf_get);
|
||||||
@ -507,12 +522,13 @@ void TFP_nota_piede_f::save_new_tipidoc(TSheet_field& sheet_field)
|
|||||||
{
|
{
|
||||||
TToken_string row = sheet_field.row(i);
|
TToken_string row = sheet_field.row(i);
|
||||||
TString tipodoc_sf(row.get(0));
|
TString tipodoc_sf(row.get(0));
|
||||||
fp_settings().set_npf_tipodoc(tipodoc_sf, i);
|
|
||||||
|
set_npf_tipodoc(tipodoc_sf, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (items_sf < n_tipidoc)
|
if (items_sf < n_tipidoc)
|
||||||
for (int i = items_sf; i < n_tipidoc; i++)
|
for (int i = items_sf; i < n_tipidoc; i++)
|
||||||
fp_settings().remove_tipodoc_npf(i);
|
remove_tipodoc_npf(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TFP_nota_piede_f::save_sheet(TSheet_field& sheet_field)
|
void TFP_nota_piede_f::save_sheet(TSheet_field& sheet_field)
|
||||||
|
@ -63,7 +63,7 @@ bool TFp_mail_sender::send(const TString& msg)
|
|||||||
bool ok = false;
|
bool ok = false;
|
||||||
if (_alleg && !_mail.blank() && _accord)
|
if (_alleg && !_mail.blank() && _accord)
|
||||||
{
|
{
|
||||||
_pdf_path = fp_settings().get_fld_dest_usr(); // Cartella dove ci sono i pdf generati
|
_pdf_path = get_fld_dest_usr(); // Cartella dove ci sono i pdf generati
|
||||||
|
|
||||||
TFilename pdf; pdf << _pdf_path << _pdf_name;
|
TFilename pdf; pdf << _pdf_path << _pdf_name;
|
||||||
|
|
||||||
@ -90,6 +90,7 @@ bool TFp_mail_sender::send(const TString& msg)
|
|||||||
TString hfatt, bfatt;
|
TString hfatt, bfatt;
|
||||||
TPaf_record paf0100f("PAF0100F");
|
TPaf_record paf0100f("PAF0100F");
|
||||||
TString query;
|
TString query;
|
||||||
|
|
||||||
if (chiave_paf(fdoc, hfatt, bfatt) && paf0100f.search(nullptr, hfatt, bfatt))
|
if (chiave_paf(fdoc, hfatt, bfatt) && paf0100f.search(nullptr, hfatt, bfatt))
|
||||||
{
|
{
|
||||||
query << "UPDATE PAF0100F SET P1_ERRINT = 'S' WHERE P1_KEYHEADERFATT = '" << hfatt << "' AND P1_KEYBODYFATT = '" << bfatt << "'";
|
query << "UPDATE PAF0100F SET P1_ERRINT = 'S' WHERE P1_KEYHEADERFATT = '" << hfatt << "' AND P1_KEYBODYFATT = '" << bfatt << "'";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user