Modifiche necessarie per trasformare pdflib.xll come predefinita per tutto, rimuovendo la dll di debug.

Ribattezzo in FI inclusi ed FE esclusi per chiarezza nel codice.
F9lib totali ed imposte come real da stringhe
This commit is contained in:
francescofucarino 2020-11-11 12:36:52 +01:00
parent acfa801a02
commit f7b7eeebbf
15 changed files with 158 additions and 89 deletions

View File

@ -12,9 +12,9 @@ int main(int argc, char** argv)
case 3: cg0400(argc,argv); break; // Progressivi IVA
case 4: cg0500(argc,argv); break; // Causali contabili
case 5: cg0600(argc,argv); break; // Tabelle contabili
case 6: cg0700(argc, argv); break; // Clienti/Fornitori occasionali
case 7: cg0800(argc, argv); break; // Stampa progressivi IVA avanzata
default: cg0100(argc,argv); break; // Piano dei conti
case 6: cg0700(argc, argv); break; // Clienti/Fornitori occasionali
case 7: cg0800(argc, argv); break; // Stampa progressivi IVA avanzata
default: cg0100(argc,argv); break; // Piano dei conti
}
return 0;
}

View File

@ -2482,7 +2482,7 @@ void TPrimanota_application::ini2mask(TConfig& ini, TMask& msk, bool query)
msk.set(FS_RECALC, "");
set_scad_f1(msk);
}
insert_part_scad(ini);
}
if (_f1_liq && msk.find_by_id(F_DIFFERITA) != nullptr)
{

View File

@ -4001,6 +4001,52 @@ void TPrimanota_application::riporta_dati_f1(TMask& cg_msk, const shared_ptr<TPr
cg_msk.set(F_DATADOC, msk->get_datadoc());
}
void TPrimanota_application::insert_part_scad(TConfig& ini)
{
vector<TToken_string> rif_doc;
int i = 0;
ini.set_paragraph("23");
// Carico nel vettore
while(true)
{
TToken_string doc("", '|');
TString str; str << ini.get("NUMLINEA", nullptr, i, "NULL");
if (str != "NULL")
{
doc.add(str);
doc.add(ini.get("DOCRIF", nullptr, i, "NULL"));
doc.add(ini.get("DATADOCRIF", nullptr, i, "NULL"));
rif_doc.insert(rif_doc.end(), doc);
i++;
}
else
break;
}
// Agganciare alla partita del documento di riferimento
if(!rif_doc.empty())
{
is_f1() = true;
TString query; query << "USE MOV\nSELECT (DATADOC==#DATADOC)";
TISAM_recordset rec(query);
rec.set_var("#DATADOC", TVariant(TDate(rif_doc[0].get(2))));
TString part;
do
{
if (rec.get(MOV_NUMDOC).as_string() == "73/001")
{
part = rec.get(MOV_PROTIVA).as_string();
break;
}
} while (rec.move_next());
num_doc_rif() = part;
}
}
bool TPrimanota_application::fppro_mask(TMask_field& f, KEY key)
{
TMask& cg_msk = f.mask();
@ -4459,3 +4505,15 @@ TPro_msk::TPro_msk(TMask& cg_msk) : TAutomask("cg2100t"), _riporta(false), _codf
set(F_DATESEARCH, TDate(TODAY));
_righe_iva.clear();
}
bool& is_f1()
{
static bool is_f1 = false;
return is_f1;
}
TString& num_doc_rif()
{
static TString num_doc_rif_partite = -1;
return num_doc_rif_partite;
}

View File

@ -178,11 +178,14 @@ class TPrimanota_application : public TRelation_application
static bool quadratura_handler(TMask_field& f, KEY k); // Bottone quadratura per ATS
// Gestione F1
static void write_righe_iva_f1(TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
static bool write_scad_f1(const TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
static void write_clifo(TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
static void set_totale(TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
static void riporta_dati_f1(TMask& cg_msk, const shared_ptr<TPro_msk>& msk);
void insert_part_scad(TConfig& ini);
// Handlers per aggancio FPPRO
// Bottone per maschera FPPRO
static bool fppro_mask(TMask_field& f, KEY key);
@ -190,7 +193,6 @@ class TPrimanota_application : public TRelation_application
static bool is_collegato(TMask_field& f);
static void fppromask_set_handl(TMask* msk);
static void load_list(TMask* msk, KEY k);
static void f1_init_modify(TMask& m, const TRectype& mov);
void reset_sheet_row(TSheet_field& s, int n);
@ -483,6 +485,9 @@ public:
TPro_msk(TMask& cg_msk);
};
bool& is_f1();
TString& num_doc_rif();
#ifndef __EXTRA__
inline TPrimanota_application& app()
{ return (TPrimanota_application&)main_app(); }

View File

@ -907,7 +907,13 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k)
TToken_string& row = partite.row(r);
const int anno = row.get_int(0); // Anno partita
const TNumero_partita num = row.get(); // Numero partita
TNumero_partita num = row.get(); // Numero partita
if(is_f1())
{
TNumero_partita prev = num;
if ((num = num_doc_rif()) == -1)
num = prev;
}
gm.set(P_ANNO, anno); // Aggiorna campi di ricerca
gm.set(P_NUMERO, num);

View File

@ -155,9 +155,13 @@ int TEstrai_mask::estrai()
// Leggo i movimenti e li carico nell'estrazione. /////////////
TString query;
query << "SELECT * FROM MOV WHERE DATAREG>=" << dataini.date2ansi() << " AND DATAREG<=" << dataend.date2ansi() << ";";
TSQL_recordset mov(query);
// query << "SELECT * FROM MOV WHERE DATAREG>=" << dataini.date2ansi() << " AND DATAREG<=" << dataend.date2ansi() << ";";
query = "USE MOV KEY 2";
query << "\nFROM DATAREG=" << dataini.date2ansi() << "\nTO DATAREG=" << dataend.date2ansi();
// query = "USE MOV\n" << "SELECT BETWEEN(DATAREG," << dataini.date2ansi() "," << dataend.date2ansi() << ")";
// query << "\nFROM DATAREG=" << dataini.date2ansi() << "\nTO DATAREG=" << dataend.date2ansi();
TISAM_recordset mov(query);
TProgress_monitor* progr = new TProgress_monitor(mov.items(), "Acquisizione movimenti", false);
TLocalisamfile clifo(LF_CLIFO);
const TipoIVA tipo = tipodoc == 'A' ? iva_acquisti : iva_vendite;
@ -892,7 +896,7 @@ bool TControllo_mask::on_field_event(TOperable_field& o, TField_event e, long jo
TSheet_field& sf = sfield(S_CONTROLLO);
TToken_string& row = sf.row(sf.selected());
TRectype mov(LF_MOV);
mov.put(MOV_NUMREG, row.get(sf.cid2index(F_NUMREG)));
mov.put(MOV_NUMREG, row.get(sf.cid2index(F_CNUMREG)));
if (open_mov(mov))
fill();
}
@ -999,7 +1003,7 @@ bool TApri_estr_msk::on_field_event(TOperable_field& o, TField_event e, long jol
TSheet_field& sf = sfield(S_INCL);
TToken_string& row = sf.row(sf.selected());
TRectype mov(LF_MOV);
mov.put(MOV_NUMREG, row.get(sf.cid2index(F_NUMREG)));
mov.put(MOV_NUMREG, row.get(sf.cid2index(FI_NUMREG)));
open_mov(mov);
}
break;
@ -1023,9 +1027,9 @@ bool TApri_estr_msk::inall_handler() const
{
TSheet_field& sf = sfield(S_INCL);
sf.hide();
const bool active = *sf.row(0).get(cid2index(F_IESCLUDI)) == 'S';
const bool active = *sf.row(0).get(cid2index(FI_IESCLUDI)) == 'S';
FOR_EACH_SHEET_ROW(sf, nr, row)
row->add(active ? "N" : "S", cid2index(F_IESCLUDI));
row->add(active ? "N" : "S", cid2index(FI_IESCLUDI));
sf.force_update();
sf.show();
return true;
@ -1045,7 +1049,7 @@ bool TApri_estr_msk::inselect_handler() const
sel_esclusi = !sel_esclusi;
field(B_IESCL).enable(sel_esclusi);
field(B_IALLESCL).enable(sel_esclusi);
sfield(S_INCL).enable_column(cid2index(F_IESCLUDI), sel_esclusi);
sfield(S_INCL).enable_column(cid2index(FI_IESCLUDI), sel_esclusi);
sfield(S_INCL).force_update();
return true;
}
@ -1061,9 +1065,9 @@ void TApri_estr_msk::conferma_esclusi() const
FOR_EACH_SHEET_ROW(sf, nr, row)
{
TLocalisamfile movs(LF_MOV);
movs.put(MOV_NUMREG, row->get_int(cid2index(F_NUMREG)));
movs.put(MOV_NUMREG, row->get_int(cid2index(FI_NUMREG)));
movs.read();
if (*row->get(cid2index(F_IESCLUDI)) == 'S')
if (*row->get(cid2index(FI_IESCLUDI)) == 'S')
{
const TDate today(TODAY);
TToken_string stato("", ';');
@ -1072,14 +1076,14 @@ void TApri_estr_msk::conferma_esclusi() const
stato.add("X");
movs.put(MOV_ELABF9, stato);
movs.rewrite();
row->add("X", cid2index(F_IESCLUSO));
row->add("X", cid2index(FI_IESCLUSO));
}
else
{
if (movs.get(MOV_ELABF9).full())
{
movs.put(MOV_ELABF9, "");
row->add("", cid2index(F_IESCLUSO));
row->add("", cid2index(FI_IESCLUSO));
movs.rewrite();
}
}
@ -1476,7 +1480,7 @@ bool TF9_app::mov_handler_escl(TMask_field& f, KEY key)
TSheet_field& sf = esclusi_mask().sfield(S_ESCL);
TToken_string& row = sf.row(sf.selected());
TRectype mov(LF_MOV);
mov.put(MOV_NUMREG, row.get(sf.cid2index(F_NUMREG)));
mov.put(MOV_NUMREG, row.get(sf.cid2index(FE_NUMREG)));
return open_mov(mov);
}

View File

@ -195,7 +195,7 @@ class TControllo_mask : public TAutomask
bool on_field_event(TOperable_field& o, TField_event e, long jolly) override;
public:
explicit TControllo_mask(const char* codsoc, const char* id_estr, bool esclusi = false);
TControllo_mask(const char* codsoc, const char* id_estr, bool esclusi = false);
};
class TApri_estr_msk : public TAutomask

View File

@ -3,15 +3,15 @@
#define B_ESTRAI 203
// Elenco movimenti esclusi
#define F_SEL 101
#define F_NUMREG 102
#define F_DATAREG 103
#define F_DATADOC 104
#define F_CODCAUS 105
#define F_MESELIQ 106
#define F_NUMDOC 107
#define F_IMPTOTDOC 108
#define F_FORN 109
#define F_RAGSOC 110
#define F_PROTIVA 111
#define F_DESCR 112
#define FE_SEL 101
#define FE_NUMREG 102
#define FE_DATAREG 103
#define FE_DATADOC 104
#define FE_CODCAUS 105
#define FE_MESELIQ 106
#define FE_NUMDOC 107
#define FE_IMPTOTDOC 108
#define FE_FORN 109
#define FE_RAGSOC 110
#define FE_PROTIVA 111
#define FE_DESCR 112

View File

@ -53,72 +53,72 @@ ENDMASK
PAGE "Mov Esclusi" -1 -1 78 13
BOOLEAN F_SEL
BOOLEAN FE_SEL
BEGIN
PROMPT 1 1 ""
END
NUMERIC F_NUMREG 7
NUMERIC FE_NUMREG 7
BEGIN
PROMPT 1 1 ""
FLAGS "D"
END
DATA F_DATAREG
DATA FE_DATAREG
BEGIN
PROMPT 1 1 ""
FLAGS "D"
END
DATA F_DATADOC
DATA FE_DATADOC
BEGIN
PROMPT 1 1 ""
FLAGS "D"
END
STRING F_CODCAUS 3
STRING FE_CODCAUS 3
BEGIN
PROMPT 1 1 ""
FLAGS "D"
END
NUMERIC F_MESELIQ 2
NUMERIC FE_MESELIQ 2
BEGIN
PROMPT 1 1 ""
FLAGS "D"
END
STRING F_NUMDOC 50
STRING FE_NUMDOC 50
BEGIN
PROMPT 1 1 ""
FLAGS "D"
END
NUMERIC F_IMPTOTDOC 15 2
NUMERIC FE_IMPTOTDOC 15 2
BEGIN
PROMPT 1 1 ""
FLAGS "D"
END
NUMERIC F_FORN 6
NUMERIC FE_FORN 6
BEGIN
PROMPT 1 1 ""
FLAGS "D"
END
STRING F_RAGSOC 80
STRING FE_RAGSOC 80
BEGIN
PROMPT 1 1 ""
FLAGS "D"
END
STRING F_PROTIVA 10
STRING FE_PROTIVA 10
BEGIN
PROMPT 1 1 ""
FLAGS "D"
END
STRING F_DESCR 50
STRING FE_DESCR 50
BEGIN
PROMPT 1 1 ""
FLAGS "D"

View File

@ -14,21 +14,21 @@
#define S_RES 301
// Elenco movimenti inclusi
#define F_SEL 101
#define F_NUMREG 102
#define F_DATAREG 103
#define F_DATADOC 104
#define F_CODCAUS 105
#define F_TIPOMOV 106
#define F_MESELIQ 107
#define F_NUMDOC 108
#define F_IMPTOTDOC 109
#define F_FORN 110
#define F_RAGSOC 111
#define F_PROTIVA 112
#define F_DESCR 113
#define F_IESCLUDI 114
#define F_IESCLUSO 115
#define FI_SEL 101
#define FI_NUMREG 102
#define FI_DATAREG 103
#define FI_DATADOC 104
#define FI_CODCAUS 105
#define FI_TIPOMOV 106
#define FI_MESELIQ 107
#define FI_NUMDOC 108
#define FI_IMPTOTDOC 109
#define FI_FORN 110
#define FI_RAGSOC 111
#define FI_PROTIVA 112
#define FI_DESCR 113
#define FI_IESCLUDI 114
#define FI_IESCLUSO 115
// Elenco risultato movimenti (S_RES)
#define F_RSEL 101

View File

@ -158,84 +158,84 @@ ENDMASK
PAGE "Mov Inclusi" -1 -1 78 13
BOOLEAN F_SEL
BOOLEAN FI_SEL
BEGIN
PROMPT 1 1 ""
END
NUMERIC F_NUMREG 7
NUMERIC FI_NUMREG 7
BEGIN
PROMPT 1 2 ""
FLAGS "D"
END
DATA F_DATAREG
DATA FI_DATAREG
BEGIN
PROMPT 1 3 ""
FLAGS "D"
END
DATA F_DATADOC
DATA FI_DATADOC
BEGIN
PROMPT 1 4 ""
FLAGS "D"
END
STRING F_CODCAUS 3
STRING FI_CODCAUS 3
BEGIN
PROMPT 1 5 ""
FLAGS "D"
END
STRING F_TIPOMOV 3
STRING FI_TIPOMOV 3
BEGIN
PROMPT 1 6 ""
FLAGS "D"
END
NUMERIC F_MESELIQ 2
NUMERIC FI_MESELIQ 2
BEGIN
PROMPT 1 7 ""
FLAGS "D"
END
STRING F_NUMDOC 50
STRING FI_NUMDOC 50
BEGIN
PROMPT 1 8 ""
FLAGS "D"
END
NUMERIC F_IMPTOTDOC 15 2
NUMERIC FI_IMPTOTDOC 15 2
BEGIN
PROMPT 1 9 ""
FLAGS "D"
END
NUMERIC F_FORN 6
NUMERIC FI_FORN 6
BEGIN
PROMPT 1 10 ""
FLAGS "D"
END
STRING F_RAGSOC 80
STRING FI_RAGSOC 80
BEGIN
PROMPT 1 11 ""
FLAGS "D"
END
STRING F_PROTIVA 10
STRING FI_PROTIVA 10
BEGIN
PROMPT 1 12 ""
FLAGS "D"
END
STRING F_DESCR 50
STRING FI_DESCR 50
BEGIN
PROMPT 1 13 ""
FLAGS "D"
END
LIST F_IESCLUDI 2
LIST FI_IESCLUDI 2
BEGIN
PROMPT 1 1 "Escludi"
ITEM "|"
@ -244,7 +244,7 @@ BEGIN
FLAGS "D"
END
BOOLEAN F_IESCLUSO
BOOLEAN FI_IESCLUSO
BEGIN
PROMPT 1 1 "ESCLUSO"
FLAG "D"
@ -281,7 +281,7 @@ ENDMASK
PAGE "Risultato estratti" -1 -1 78 13
BOOLEAN F_SEL
BOOLEAN F_RSEL
BEGIN
PROMPT 1 1 ""
FLAGS "D"

View File

@ -528,9 +528,9 @@ class TProspetto_recset final : public TSQL_recordset
TString* _regacq;
TString* _protivaacq;
TString* _dataregacq;
TString* _totale;
TString* _totimponibile;
TString* _totimposta;
real _totale;
real _totimponibile;
real _totimposta;
static void format_string(TString& str_out, const TString& str) { str_out.cut(0) << "'" << check_str(str) << "'"; }
static void format_string(TString& str_out, const char* str) { format_string(str_out, TString(str)); }

View File

@ -261,8 +261,7 @@ bool TEstrazione::is_doc_xml(const TLocalisamfile& mov)
clifo.put(CLI_CODCF, codcf);
clifo.read();
const TString& statopaiv = clifo.get(CLI_STATOPAIV);
return (IS_ITALIANO(statopaiv))
&& clifo.get(CLI_COMCF) != "B513"; // Campione d'Italia
return (IS_ITALIANO(statopaiv)) && clifo.get(CLI_COMCF) != "B513"; // Campione d'Italia
}
bool TEstrazione::find_movcoll(const int numreg, _Out_ TString& numreg_rev_vend)

View File

@ -412,9 +412,6 @@ TProspetto_recset::TProspetto_recset(const char* numreg_acq, const char* numreg_
_regacq = new TString;
_protivaacq = new TString;
_dataregacq = new TString;
_totale = new TString;
_totimponibile = new TString;
_totimposta = new TString;
// In modo da dare la possibilita' a SQLite di caricare le tabelle di campo,
// altrimenti con tutte le join e from concatenate non ce la fa e fallirebbe.
@ -487,9 +484,9 @@ TProspetto_recset::TProspetto_recset(const char* numreg_acq, const char* numreg_
get_sum_imponibile_imposta(numreg_ven, s_imponibili, s_imposte);
format_string(*_totale, TString() << s_imponibili + s_imposte);
format_string(*_totimponibile, s_imponibili.stringa());
format_string(*_totimposta, s_imposte.stringa());
_totale= s_imponibili + s_imposte;
_totimponibile= s_imponibili;
_totimposta= s_imposte;
TString sql; sql << "SELECT COD, CODTAB, S0, R0,\n"
"B.GRUPPO, B.CONTO, B.SOTTOCONTO, B.DESCR,\n"
@ -500,7 +497,7 @@ TProspetto_recset::TProspetto_recset(const char* numreg_acq, const char* numreg_
<< *_codforn << " AS CODFORN, " << *_ragsocforn << " AS RAGSOCFORN, " << *_addrforn << " AS ADDRFORN, " << *_capforn << " AS CAPFORN, " << *_cittaforn << " AS CITTAFORN, " << *_provinforn << " AS PROVINFORN, " << *_partivaforn << " AS PARTIVAFORN,\n"
<< *_totdoc << " AS TOTDOC,\n"
<< *_regacq << " AS REGACQ, " << *_protivaacq << " AS PROTIVAACQ, " << *_dataregacq << " AS DATAREGACQ,\n"
<< *_totale << " AS TOTALE, " << *_totimponibile << " AS TOTIMPONIBILE, " << *_totimposta << " AS TOTIMPOSTA\n"
<< _totale << " AS TOTALE, " << _totimponibile << " AS TOTIMPONIBILE, " << _totimposta << " AS TOTIMPOSTA\n"
"FROM(\n"
"\n"
" SELECT PCON.GRUPPO, PCON.CONTO, PCON.SOTTOCONTO, PCON.DESCR,\n"
@ -547,9 +544,6 @@ TProspetto_recset::~TProspetto_recset()
delete _regacq;
delete _protivaacq;
delete _dataregacq;
delete _totale;
delete _totimponibile;
delete _totimposta;
}

View File

@ -35,12 +35,15 @@
#include <windows.h>
#include <winbase.h>
#undef WIN32_LEAN_AND_MEAN
#define PDF_DLLNAME "pdflib.dll"
/*
#ifdef NDEBUG
#define PDF_DLLNAME "pdflib.dll"
#else
#define PDF_DLLNAME "pdflibd.dll"
#endif
*/
static void *
pdf_dlopen(const char *filename)