Patch level : 12.0 no-patch
Files correlati : f90.exe d181.des f181.dir f181.trr all-masks Commento : - Aggiunto test per creazione prospetto integr. - Create classi per la generazione dei prospetti integr. rev. charge
This commit is contained in:
parent
80d9ab4dbd
commit
ce80f739bc
@ -187,6 +187,7 @@
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\src\cg\cg2101.cpp" />
|
||||
<ClCompile Include="..\src\f9\f90.cpp" />
|
||||
<ClCompile Include="..\src\f9\f90100.cpp" />
|
||||
<ClCompile Include="..\src\f9\f90300.cpp" />
|
||||
@ -198,6 +199,7 @@
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\src\cg\cg2101.h" />
|
||||
<ClInclude Include="..\src\f9\f90.h" />
|
||||
<ClInclude Include="..\src\f9\f90100.h" />
|
||||
<ClInclude Include="..\src\f9\f90100a.h" />
|
||||
|
@ -57,6 +57,9 @@
|
||||
<ClInclude Include="..\src\f9\f9lib01.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\cg\cg2101.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\src\f9\f90.cpp">
|
||||
@ -80,6 +83,9 @@
|
||||
<ClCompile Include="..\src\f9\f90400.cpp">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\cg\cg2101.cpp">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<MskCompiler Include="..\src\f9\f90100a.uml">
|
||||
|
@ -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))
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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() {}
|
||||
};
|
||||
|
@ -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");
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
#ifndef _F901001_H_
|
||||
#define _F901001_H_
|
||||
#ifndef __F901001_H
|
||||
#define __F901001_H
|
||||
|
||||
#include <map>
|
||||
#include <set>
|
||||
@ -10,6 +10,9 @@
|
||||
#include "real.h"
|
||||
#include "cglib01.h"
|
||||
#include "sheet.h"
|
||||
#include "sqlset.h"
|
||||
#include "cg2101.h"
|
||||
#include "reprint.h"
|
||||
|
||||
#define INI_PAR_MOD "F9"
|
||||
#define INI_CATDOC "CATDOC"
|
||||
@ -490,4 +493,74 @@ public:
|
||||
TF9_doccart() : _tdocs(LF_F9DOCS), _tannessi(LF_F9ANNESSI) { }
|
||||
};
|
||||
|
||||
#endif // #ifndef _F901001_H_
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// TProspetto_recset
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class TProspetto_recset final : public TSQL_recordset
|
||||
{
|
||||
TString* _numreg;
|
||||
TString* _today;
|
||||
TString* _ragsoc;
|
||||
TString* _address;
|
||||
TString* _cap;
|
||||
TString* _citta;
|
||||
TString* _provin;
|
||||
TString* _codfisc;
|
||||
TString* _partiva;
|
||||
TString* _ndoc;
|
||||
TString* _datadoc;
|
||||
TString* _totdoc;
|
||||
TString* _codforn;
|
||||
TString* _ragsocforn;
|
||||
TString* _addrforn;
|
||||
TString* _capforn;
|
||||
TString* _cittaforn;
|
||||
TString* _provinforn;
|
||||
TString* _partivaforn;
|
||||
TString* _regacq;
|
||||
TString* _protivaacq;
|
||||
TString* _dataregacq;
|
||||
TString* _totale;
|
||||
TString* _totimponibile;
|
||||
TString* _totimposta;
|
||||
|
||||
TMovimentoPN* _movimento_pn;
|
||||
|
||||
static void format_string(TString& str_out, const TString& str) { str_out.cut(0) << "'" << str << "'"; }
|
||||
static void format_string(TString& str_out, const char* str) { format_string(str_out, TString(str)); }
|
||||
static void format_string(TString& str_out, const TDate& date) { TString dt; dt << date.date2ansi(); format_string(str_out, dt); }
|
||||
|
||||
void precarica_tabelle();
|
||||
|
||||
public:
|
||||
TProspetto_recset(const char* numreg_acq, const char* numreg_ven);
|
||||
~TProspetto_recset();
|
||||
};
|
||||
|
||||
class TF9Prospetto_integr
|
||||
{
|
||||
static constexpr const char* _name = "prosp";
|
||||
|
||||
TReport_book _book;
|
||||
const TFilename _f_report;
|
||||
TRecnotype _items;
|
||||
TReport _rep;
|
||||
|
||||
static TFilename get_path_rep();
|
||||
|
||||
public:
|
||||
bool export_pdf(TFilename& tmp);
|
||||
const char* make_name_rep();
|
||||
bool preview();
|
||||
const TFilename& filename() const { return _rep.filename(); }
|
||||
|
||||
bool operator()(const char* numreg_acq, const char* numreg_ven);
|
||||
|
||||
TF9Prospetto_integr();
|
||||
};
|
||||
|
||||
#endif // #ifndef __F901001_H
|
||||
|
@ -4,6 +4,11 @@
|
||||
#include "docf9.h"
|
||||
#include "annessif9.h"
|
||||
#include "f901tab.h"
|
||||
#include "mov.h"
|
||||
#include "anagr.h"
|
||||
#include "comuni.h"
|
||||
#include "clifo.h"
|
||||
#include "report.h"
|
||||
|
||||
#define AMBIENTE_F9 "CODSOC" // Codice ambiente (codsoc)
|
||||
#define ADDRCART_F9 "ADDRCART"
|
||||
@ -215,3 +220,247 @@ void TIva_insert_prepared_stat::reset()
|
||||
_query.cut(0);
|
||||
_fields.clear();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// TProspetto_recset
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void TProspetto_recset::precarica_tabelle()
|
||||
{
|
||||
TString sql;
|
||||
const char* v[] = { "RMOVIVA", "MOV", "PCON", "TABCOM" };
|
||||
for (auto& i : v)
|
||||
{
|
||||
sql.cut(0) << "SELECT * FROM " << i;
|
||||
set(sql);
|
||||
items();
|
||||
}
|
||||
}
|
||||
|
||||
TProspetto_recset::TProspetto_recset(const char* numreg_acq, const char* numreg_ven) : TSQL_recordset("")
|
||||
{
|
||||
_numreg = new TString;
|
||||
_today = new TString;
|
||||
_ragsoc = new TString;
|
||||
_address = new TString;
|
||||
_cap = new TString;
|
||||
_citta = new TString;
|
||||
_provin = new TString;
|
||||
_codfisc = new TString;
|
||||
_partiva = new TString;
|
||||
_ndoc = new TString;
|
||||
_datadoc = new TString;
|
||||
_totdoc = new TString;
|
||||
_codforn = new TString;
|
||||
_ragsocforn = new TString;
|
||||
_addrforn = new TString;
|
||||
_capforn = new TString;
|
||||
_cittaforn = new TString;
|
||||
_provinforn = new TString;
|
||||
_partivaforn = new TString;
|
||||
_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.
|
||||
precarica_tabelle();
|
||||
|
||||
TLocalisamfile anagraf(LF_ANAG), clifo(LF_CLIFO), comuni(LF_COMUNI), mov_acq(LF_MOV), mov_ven(LF_MOV), rmoviva(LF_RMOVIVA);
|
||||
mov_acq.put(MOV_NUMREG, numreg_acq);
|
||||
mov_acq.read();
|
||||
anagraf.put(ANA_TIPOA, "G");
|
||||
anagraf.put(ANA_CODANAGR, prefix().get_codditta());
|
||||
anagraf.read();
|
||||
|
||||
format_string(*_numreg, TString(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)
|
||||
{
|
||||
format_string(*_citta, comuni.get(COM_DENCOM));
|
||||
format_string(*_provin, comuni.get(COM_PROVCOM));
|
||||
}
|
||||
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
|
||||
real s_imponibili, s_imposte;
|
||||
_movimento_pn = new TMovimentoPN;
|
||||
TRectype& rec = _movimento_pn->curr();
|
||||
rec.put(MOV_NUMREG, numreg_ven);
|
||||
if (_movimento_pn->read() != NOERR)
|
||||
bool simo = true;
|
||||
_movimento_pn->get_sum_imponibile_imposta(s_imponibili, s_imposte);
|
||||
|
||||
format_string(*_totale, TString() << s_imponibili + s_imposte);
|
||||
format_string(*_totimponibile, s_imponibili.stringa());
|
||||
format_string(*_totimposta, s_imposte.stringa());
|
||||
|
||||
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";
|
||||
|
||||
set(sql);
|
||||
}
|
||||
|
||||
TProspetto_recset::~TProspetto_recset()
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// TF9Prospetto_integr
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
TFilename TF9Prospetto_integr::get_path_rep()
|
||||
{
|
||||
// Guardo prima nella custom, altrimenti nella root di Campo
|
||||
TFilename freport = firm2dir(-1);
|
||||
freport.add("custom");
|
||||
freport.add(_name);
|
||||
freport.ext("rep");
|
||||
if (!freport.exist())
|
||||
{
|
||||
freport.currdir().slash_terminate() << _name;
|
||||
freport.ext("rep");
|
||||
}
|
||||
return freport;
|
||||
}
|
||||
|
||||
bool TF9Prospetto_integr::export_pdf(TFilename& tmp)
|
||||
{
|
||||
return _book.export_pdf(tmp, false);
|
||||
}
|
||||
|
||||
const char* TF9Prospetto_integr::make_name_rep()
|
||||
{
|
||||
return "prosp_rev.pdf";
|
||||
}
|
||||
|
||||
bool TF9Prospetto_integr::preview()
|
||||
{
|
||||
return _book.preview();
|
||||
}
|
||||
|
||||
bool TF9Prospetto_integr::operator()(const char* numreg_acq, const char* numreg_ven)
|
||||
{
|
||||
if (_rep.load(_f_report))
|
||||
{
|
||||
TFilename fprosp; fprosp.tempdir().slash_terminate() << make_name_rep();
|
||||
TProspetto_recset prosp_rs(numreg_acq, numreg_ven);
|
||||
_items = prosp_rs.items();
|
||||
|
||||
_rep.set_recordset(&prosp_rs);
|
||||
_book.add(_rep);
|
||||
}
|
||||
else
|
||||
{
|
||||
warning_box("Impossibile trovare il report %s per la generazione\ndel prospetto di integrazione Reverse Charge", _name);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
TF9Prospetto_integr::TF9Prospetto_integr() : _f_report(get_path_rep()), _items(0)
|
||||
{ }
|
||||
|
@ -681,7 +681,7 @@ const char *TTextfile::word_at (
|
||||
// @rdesc Ritorna il risultato dell'operazione:
|
||||
//
|
||||
// @flag TRUE | Se la riga e' stat aggiuntac correttamente
|
||||
// @flag FALSE | Se non e' riuscot ad aggiungere la riga
|
||||
// @flag FALSE | Se non e' riuscito ad aggiungere la riga
|
||||
bool TTextfile::append (
|
||||
const char *l) // @parm Riga da aggiungere
|
||||
{
|
||||
|
@ -888,7 +888,7 @@ bool TContabilizzazione_analitica::elabora(TLista_documenti& doc_in, TLista_docu
|
||||
TAnal_mov mov;
|
||||
if (elabora(doc_in[i], 0, &v, true, mov))
|
||||
{
|
||||
// Cambia stato al documento elborato con successo
|
||||
// Cambia stato al documento elaborato con successo
|
||||
TDocumento& di = doc_in[i];
|
||||
di.stato(stato_finale_doc_iniziale()[0]);
|
||||
if (di.rewrite() == NOERR)
|
||||
|
Loading…
x
Reference in New Issue
Block a user