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:
Simone Palacino 2020-06-17 10:22:27 +02:00
parent 80d9ab4dbd
commit ce80f739bc
10 changed files with 372 additions and 188 deletions

View File

@ -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" />

View File

@ -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">

View File

@ -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))

View File

@ -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;
}

View File

@ -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() {}
};

View File

@ -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");
}

View File

@ -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

View File

@ -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)
{ }

View File

@ -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
{

View File

@ -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)