diff --git a/build/f90.vcxproj b/build/f90.vcxproj
index 490436374..c1a2441d7 100644
--- a/build/f90.vcxproj
+++ b/build/f90.vcxproj
@@ -187,6 +187,7 @@
+
@@ -198,6 +199,7 @@
+
diff --git a/build/f90.vcxproj.filters b/build/f90.vcxproj.filters
index df448d8e4..bfd98b0d8 100644
--- a/build/f90.vcxproj.filters
+++ b/build/f90.vcxproj.filters
@@ -57,6 +57,9 @@
Headers
+
+ Headers
+
@@ -80,6 +83,9 @@
Sources
+
+ Sources
+
diff --git a/src/ba/ba8300.cpp b/src/ba/ba8300.cpp
index ffda526d9..39f52ec14 100755
--- a/src/ba/ba8300.cpp
+++ b/src/ba/ba8300.cpp
@@ -648,7 +648,7 @@ void TReport_mask::on_pdf()
{
TReport_book book;
book.add(_report);
- TFilename tmp; tmp.tempdir();
+ TFilename tmp; tmp.tempdir();
tmp.add(_report.filename().name());
tmp.ext("pdf");
if (book.export_pdf(tmp, false))
diff --git a/src/cg/cg2101.cpp b/src/cg/cg2101.cpp
index c978e4f19..4526a8b83 100755
--- a/src/cg/cg2101.cpp
+++ b/src/cg/cg2101.cpp
@@ -595,3 +595,17 @@ void TMovimentoPN::adjust_rowtypes()
}
}
}
+
+TMovimentoPN& TMovimentoPN::get_sum_imponibile_imposta(real& s_imponibili, real& s_imposte)
+{
+ TRecord_array& iva = iva_rows();
+ s_imponibili = ZERO;
+ s_imposte = ZERO;
+ for(int i = iva.first_row(); i <= iva.rows(); ++i)
+ {
+ TRectype& r = iva[i];
+ s_imponibili += r.get_real("IMPONIBILE");
+ s_imposte += r.get_real("IMPOSTA");
+ }
+ return *this;
+}
diff --git a/src/cg/cg2101.h b/src/cg/cg2101.h
index ce079851d..142993e11 100755
--- a/src/cg/cg2101.h
+++ b/src/cg/cg2101.h
@@ -84,6 +84,8 @@ public:
real& imp_det, real& iva_det, real& imp_ind, real& iva_ind) const;
void adjust_rowtypes();
+ TMovimentoPN& get_sum_imponibile_imposta(real& s_imponibili, real& s_imposte);
+
TMovimentoPN();
virtual ~TMovimentoPN() {}
};
diff --git a/src/f9/f90400.cpp b/src/f9/f90400.cpp
index b70e812e5..b1d8a41b9 100644
--- a/src/f9/f90400.cpp
+++ b/src/f9/f90400.cpp
@@ -35,17 +35,6 @@ public:
TF9_test_app() = default;
};
-void format_string(TString& str_out, const TString& str)
-{
- str_out.cut(0) << "'" << str << "'";
-}
-
-void format_string(TString& str_out, const TDate& date)
-{
- TString dt; dt << date.date2ansi();
- format_string(str_out, dt);
-}
-
void TF9_test_app::main_loop()
@@ -80,10 +69,10 @@ void TF9_test_app::main_loop()
filename = ann.get(F9A_FILENAME);
TString rec; rec <<
filename << "\n" <<
- ann.get(F9A_NUMREG) << "\n" <<
- ann.get(F9A_CATDOCPAD) << "\n" <<
- ann.get(F9A_CATDOCANN) << "\n" <<
- ann.get(F9A_LOADDATE) << "\n" <<
+ ann.get(F9A_NUMREG) << "\n" <<
+ ann.get(F9A_CATDOCPAD) << "\n" <<
+ ann.get(F9A_CATDOCANN) << "\n" <<
+ ann.get(F9A_LOADDATE) << "\n" <<
ann.get(F9A_USER);
CHECK(filename == "annmid.pdf" || filename == "annmid2.pdf", "YOU'RE WRONG");
//message_box(rec);
@@ -146,8 +135,8 @@ void TF9_test_app::main_loop()
TRecord_categorie rec2(TRecord_categorie::annessi);
rec.put("NAME", "FATTACQ");
rec.read();
- TString name = rec.get("NAME");
- TString descr = rec.get("DESCR");
+ TString name = rec.get("NAME");
+ TString descr = rec.get("DESCR");
TString classdo = rec.get("CLASSDOCSOS");
TString caussos = rec.get("CAUSSOS");
TString causcon = rec.get("CAUSCONT");
@@ -158,11 +147,11 @@ void TF9_test_app::main_loop()
CHECK(ok, "TRecord_categorie (annessi) failed to retrieve annessi FATTACQ");
for (; ok; ok = rec2.next())
{
- TString s_catdoc = rec2.get("CATDOC");
- TString s_name = rec2.get("NAME");
- TString s_descr = rec2.get("DESCR");
+ TString s_catdoc = rec2.get("CATDOC");
+ TString s_name = rec2.get("NAME");
+ TString s_descr = rec2.get("DESCR");
TString s_tipoann = rec2.get("TIPOANN");
- bool s_obblig = rec2.get("OBBLIG") == "X";
+ bool s_obblig = rec2.get("OBBLIG") == "X";
CHECK(s_catdoc == "FATTACQ" && s_tipoann == "DC" && !s_obblig && (s_name == "GENACQ" && s_descr.starts_with("Annesso generico") ||
s_name == "LEASING" && s_descr.starts_with("Annesso lea")),
"TRecord_categorie (annessi) failed to retrive annessi FATTACQ");
@@ -196,170 +185,19 @@ void TF9_test_app::main_loop()
annesso.obblig = true;
TEstrazione::make_prosp_int_revc(96951, annesso);*/
- TFilename freport; freport.currdir().slash_terminate() << "prosp.rep";
- TReport_prosp rep(freport);
- TReport_book book;
-
- TFilename fprosp;
- fprosp.tempdir().slash_terminate() << "prosp_rev.pdf";
- TString numreg_acq, numreg_ven;
- numreg_acq.cut(0) << "96951";
- numreg_ven.cut(0) << "96952";
- TLocalisamfile anagraf(LF_ANAG), clifo(LF_CLIFO), comuni(LF_COMUNI), mov_acq(LF_MOV), mov_ven(LF_MOV);
- mov_acq.put(MOV_NUMREG, numreg_acq);
- mov_acq.read();
- anagraf.put(ANA_TIPOA, "G");
- anagraf.put(ANA_CODANAGR, prefix().get_codditta());
- anagraf.read();
-
- TString* NUMREG = new TString;
- TString* today = new TString;
- TString* ragsoc = new TString;
- TString* address = new TString;
- TString* cap = new TString;
- TString* citta = new TString;
- TString* provin = new TString;
- TString* codfisc = new TString;
- TString* partiva = new TString;
- TString* ndoc = new TString;
- TString* datadoc = new TString;
- TString* totdoc = new TString;
- TString* codforn = new TString;
- TString* ragsocforn = new TString;
- TString* addrforn = new TString;
- TString* capforn = new TString;
- TString* cittaforn = new TString;
- TString* provinforn = new TString;
- TString* partivaforn = new TString;
- TString* regacq = new TString;
- TString* protivaacq = new TString;
- TString* dataregacq = new TString;
- TString* totale = new TString;
- TString* totimponibile = new TString;
- TString* totimposta = new TString;
-
-
- format_string(*NUMREG, numreg_ven);
- format_string(*today, TDate(TODAY));
-
- // DATI SOCIETA':
- format_string(*ragsoc, anagraf.get(ANA_RAGSOC));
- format_string(*address, TString(anagraf.get(ANA_INDRES)) << ", " << anagraf.get(ANA_CIVRES));
- format_string(*cap, anagraf.get(ANA_CAPRES));
- comuni.put(COM_COM, anagraf.get(ANA_COMRES));
- if(comuni.read() == NOERR)
+ TF9Prospetto_integr prosp;
+ if(prosp("96951", "96952"))
{
- format_string(*citta, comuni.get(COM_DENCOM));
- format_string(*provin, comuni.get(COM_PROVCOM));
+ TFilename tmp; tmp.tempdir();
+ tmp.add(prosp.filename().name());
+ tmp.ext("pdf");
+#ifndef DBG
+ bool exp = prosp.export_pdf(tmp);
+#else
+ bool exp = prosp.preview();
+#endif
}
- else
- {
- format_string(*citta, TString(""));
- format_string(*provin, TString(""));
- }
- format_string(*codfisc, anagraf.get(ANA_COFI));
- format_string(*partiva, anagraf.get(ANA_PAIV));
-
- TString ndoc_s; ndoc_s << mov_acq.get(MOV_NUMDOCEXT);
- if (ndoc_s.empty())
- ndoc_s << mov_acq.get(MOV_NUMDOC);
-
- format_string(*ndoc, ndoc_s);
- format_string(*datadoc, mov_acq.get(MOV_DATADOC));
- format_string(*totdoc, mov_acq.get(MOV_TOTDOC));
-
- TString codforn_s; codforn_s << mov_acq.get(MOV_CODCF);
- clifo.zero();
- clifo.put(CLI_TIPOCF, "F");
- clifo.put(CLI_CODCF, codforn_s);
- bool ok = clifo.read() == NOERR;
- format_string(*codforn, codforn_s);
- format_string(*ragsocforn, ok ? clifo.get(CLI_RAGSOC) : "");
- format_string(*addrforn, ok ? TString(clifo.get(CLI_INDCF)) << ", " << clifo.get(CLI_CIVCF) : "");
- format_string(*capforn, ok ? clifo.get(CLI_CAPCF) : "");
-
- if (ok)
- {
- comuni.zero();
- comuni.put(COM_COM, clifo.get(CLI_COMCF));
- comuni.read();
- }
- format_string(*cittaforn, ok ? comuni.get(COM_DENCOM) : "");
- format_string(*provinforn, ok ? comuni.get(COM_PROVCOM) : "");
- format_string(*partivaforn, ok ? clifo.get(CLI_PAIV) : "");
-
- // Info registrazioni
-
- format_string(*regacq, mov_acq.get(MOV_REG));
- format_string(*protivaacq, mov_acq.get(MOV_PROTIVA));
- format_string(*dataregacq, mov_acq.get(MOV_DATAREG));
-
- // Calcolo dal rmoviva
- format_string(*totale, TString(""));
- format_string(*totimponibile, TString(""));
- format_string(*totimposta, TString(""));
-
- TString sql; sql << "SELECT COD, CODTAB, S0, R0,\n"
- "B.GRUPPO, B.CONTO, B.SOTTOCONTO, B.DESCR,\n"
- "B.NUMREG, B.CODIVA, B.IMPONIBILE, B.IMPOSTA, B.GRUPPO, B.CONTO, B.SOTTOCONTO, B.DATAREG, B.DATADOC, B.REG, B.PROTIVA, B.TOTDOC,\n"
- << *today << " AS TODAY, " << *ragsoc << " AS RAGSOC, " << *totdoc << " AS TOTDOC, " << *address << " AS ADDRSEDE, " << *cap << " AS CAP, " << *citta << " AS CITTA, " << *provin << " AS PROVIN,\n"
- "" << *codfisc << " AS CODFISC, " << *partiva << " AS PARTIVA,\n"
- "" << *ndoc << " AS NDOC, " << *datadoc << " AS DATADOC,\n"
- "" << *codforn << " AS CODFORN, " << *ragsocforn << " AS RAGSOCFORN, " << *addrforn << " AS ADDRFORN, " << *capforn << " AS CAPFORN, " << *cittaforn << " AS CITTAFORN, " << *provinforn << " AS PROVINFORN, " << *partivaforn << " AS PARTIVAFORN,\n"
- "" << *regacq << " AS REGACQ, " << *protivaacq << " AS PROTIVAACQ, " << *dataregacq << " AS DATAREGACQ,\n"
- "" << *totale << " AS TOTALE, " << *totimponibile << " AS TOTIMPONIBILE, " << *totimposta << " AS TOTIMPOSTA\n"
- "FROM(\n"
- "\n"
- " SELECT PCON.GRUPPO, PCON.CONTO, PCON.SOTTOCONTO, PCON.DESCR,\n"
- " A.NUMREG AS NUMREG, A.CODIVA, A.IMPONIBILE, A.IMPOSTA, A.GRUPPO, A.CONTO, A.SOTTOCONTO, A.DATAREG, A.DATADOC, A.REG, A.PROTIVA, A.TOTDOC\n"
- " FROM(\n"
- " SELECT RMOVIVA.NUMREG AS NUMREG, CODIVA, IMPONIBILE, IMPOSTA, GRUPPO, CONTO, SOTTOCONTO, DATAREG, DATADOC, REG, PROTIVA, TOTDOC\n"
- " FROM RMOVIVA\n"
- " JOIN MOV\n"
- " ON MOV.NUMREG = RMOVIVA.NUMREG\n"
- " WHERE MOV.NUMREG = " << *NUMREG << "\n"
- "\n"
- " ) A\n"
- " JOIN PCON\n"
- " ON PCON.GRUPPO = A.GRUPPO AND PCON.CONTO = A.CONTO AND PCON.SOTTOCONTO = A.SOTTOCONTO\n"
- ") B\n"
- "JOIN TABCOM\n"
- "ON COD = 'IVA' AND CODTAB = B.CODIVA";
-
- TSQL_recordset rs(sql);
-
- int items = rs.items();
- TString ragsoc_t = rs.get(rs.find_column("RAGSOC")).as_string();
- rep.set_recordset(&rs);
- rep.print(book);
- book.export_pdf(fprosp, false);
-
- delete NUMREG;
- delete today;
- delete ragsoc;
- delete address;
- delete cap;
- delete citta;
- delete provin;
- delete codfisc;
- delete partiva;
- delete ndoc;
- delete datadoc;
- delete totdoc;
- delete codforn;
- delete ragsocforn;
- delete addrforn;
- delete capforn;
- delete cittaforn;
- delete provinforn;
- delete partivaforn;
- delete regacq;
- delete protivaacq;
- delete dataregacq;
- delete totale;
- delete totimponibile;
- delete totimposta;
message_box("TESTS COMPLETELY SUCCESSFUL");
}
diff --git a/src/f9/f9lib01.h b/src/f9/f9lib01.h
index 1ea462f10..d69db0399 100644
--- a/src/f9/f9lib01.h
+++ b/src/f9/f9lib01.h
@@ -1,5 +1,5 @@
-#ifndef _F901001_H_
-#define _F901001_H_
+#ifndef __F901001_H
+#define __F901001_H
#include