Patch level : 12.0 348

Files correlati     : cg7.exe cg7600a.png cg7600a.rep cg7700a.png cg7700a.rep
                      cg7700a.png cg7700b.rep cg7800a.png cg7800a.rep
                      cg7700b.rep cg7700b.png 

Quadri Ve VF e VJ della dichiarazioone IVA
Aggiunti ai regimi speciali sulle causali 
6  Acquisti di rottami e mat.di di recupero art. 74, commi 7 e 8
7  Acquisti di oro industriale e argento puro (art. 17, comma 5)
8  Acquisti di oro da investimento imp.per opzione (art. 17, comma 5)
9  Acquisti intrac. di CPU,PC, tablet,cellulari,console,microproc.
10 Importazioni rottami e altri mat.di recupero imposta non è versata
14 Acquisti di fabbricati (art. 17, comma 6, lett. a-bis)
15 Acquisti di telefoni cellulari (art. 17, comma 6, lett. b)
16 Acquisti di prodotti elettronici (art. 17, comma 6, lett. c)
17 Acquisti di servizi del comp.edile e sett.connessi art. 17,comma 6, lett. a-ter
18 Acquisti di beni e servizi del sett.energetico art. 17, c.6 d-bis,ter,d-quater
19 Acquisti delle P.A., titolari di partita IVA art. 17-ter

git-svn-id: svn://10.65.10.50/branches/R_10_00@23645 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
bonazzi 2017-02-20 15:56:37 +00:00
parent 643eb12c1a
commit 313a099f30

View File

@ -1,164 +1,164 @@
// Programma per la stampa del quadri IVA // Programma per la stampa del quadri IVA
#include <recarray.h> #include <recarray.h>
#include <reprint.h> #include <reprint.h>
#include <reputils.h> #include <reputils.h>
#include <tabutil.h> #include <tabutil.h>
#include <utility.h> #include <utility.h>
#include "cg7401.h" #include "cg7401.h"
#include <nditte.h> #include <nditte.h>
#include "cg7400a.h" #include "cg7400a.h"
TQuadro_IVA_mask::TQuadro_IVA_mask(const char * maskname) TQuadro_IVA_mask::TQuadro_IVA_mask(const char * maskname)
: TAutomask(maskname), _last_row_ditte(0), _last_row_reports(0) : TAutomask(maskname), _last_row_ditte(0), _last_row_reports(0)
{ {
const TDate oggi(TODAY); const TDate oggi(TODAY);
_year = oggi.year(); _year = oggi.year();
build_ditte_sheet(); build_ditte_sheet();
build_report_sheet(); build_report_sheet();
} }
long TQuadro_IVA_mask::get_ditta() long TQuadro_IVA_mask::get_ditta()
{ {
TSheet_field & sf = sfield(F_DITTE); TSheet_field & sf = sfield(F_DITTE);
for (int i =_last_row_ditte + 1; i <sf.items(); i++) for (int i =_last_row_ditte + 1; i <sf.items(); i++)
{ {
TToken_string & row = sf.row(i); TToken_string & row = sf.row(i);
const TString4 select = row.get(sf.cid2index(S_CHKDITTA)); const TString4 select = row.get(sf.cid2index(S_CHKDITTA));
if (select == "X") if (select == "X")
{ {
_last_row_ditte = i; _last_row_ditte = i;
return row.get_long(sf.cid2index(S_CODDITTA)); return row.get_long(sf.cid2index(S_CODDITTA));
} }
} }
_last_row_ditte = -1; _last_row_ditte = -1;
return 0L; return 0L;
} }
static TProgram_report __stop; static TProgram_report __stop;
TProgram_report * TQuadro_IVA_mask::get_report() TProgram_report * TQuadro_IVA_mask::get_report()
{ {
TSheet_field & sf = sfield(F_REPORTS); TSheet_field & sf = sfield(F_REPORTS);
for (int i =_last_row_reports + 1; i <sf.items(); i++) for (int i =_last_row_reports + 1; i <sf.items(); i++)
{ {
TToken_string & row = sf.row(i); TToken_string & row = sf.row(i);
const TString4 select = row.get(sf.cid2index(S_CHKREPORT)); const TString4 select = row.get(sf.cid2index(S_CHKREPORT));
if (select == "X") if (select == "X")
{ {
_last_row_reports = i; _last_row_reports = i;
return & get_report(i); return & get_report(i);
} }
} }
_last_row_reports = -1; _last_row_reports = -1;
return &__stop; return &__stop;
} }
void TQuadro_IVA_mask::build_ditte_sheet() void TQuadro_IVA_mask::build_ditte_sheet()
{ {
TSheet_field & sf = sfield(F_DITTE); TSheet_field & sf = sfield(F_DITTE);
sf.destroy(); sf.destroy();
TPointer_array firms; TPointer_array firms;
TPrefix::firms(firms); TPrefix::firms(firms);
FOR_EACH_ARRAY_ITEM(firms, i, obj) FOR_EACH_ARRAY_ITEM(firms, i, obj)
{ {
const long codditta = firms.get_long(i); const long codditta = firms.get_long(i);
TString key; key.format("%05ld%04d", codditta, _year); TString key; key.format("%05ld%04d", codditta, _year);
const bool good = cache().get("%LIA", key).full(); const bool good = cache().get("%LIA", key).full();
TToken_string & row = sf.row(sf.items()); TToken_string & row = sf.row(sf.items());
const int pos = sf.items() - 1; const int pos = sf.items() - 1;
row.add(good ? "X" : ""); row.add(good ? "X" : "");
row.add(codditta); row.add(codditta);
row.add(cache().get(LF_NDITTE, codditta, NDT_RAGSOC)); row.add(cache().get(LF_NDITTE, codditta, NDT_RAGSOC));
if (!good) if (!good)
sf.disable_row(pos); sf.disable_row(pos);
} }
sf.force_update(); sf.force_update();
} }
void TQuadro_IVA_mask::build_report_sheet() void TQuadro_IVA_mask::build_report_sheet()
{ {
TToken_string d(80); TToken_string d(80);
const char quadro = source_file()[3]; const char quadro = source_file()[3];
TSheet_field & sf = sfield(F_REPORTS); TSheet_field & sf = sfield(F_REPORTS);
sf.destroy(); sf.destroy();
((TQuadro_IVA_app &) main_app()).load_sheet(sf); ((TQuadro_IVA_app &) main_app()).load_sheet(sf);
__stop.load("STOP"); __stop.load("STOP");
const int items = sf.items(); const int items = sf.items();
for (int i = 0; i < items; i++) for (int i = 0; i < items; i++)
{ {
TToken_string & row = sf.row(i); TToken_string & row = sf.row(i);
TProgram_report *rep = new TProgram_report; TProgram_report *rep = new TProgram_report;
TFilename repname(row.get(sf.cid2index(S_NAMEREPORT))); TFilename repname(row.get(sf.cid2index(S_NAMEREPORT)));
repname.ext("rep"); repname.ext("rep");
if (repname.exist() || repname.custom_path()) if (repname.exist() || repname.custom_path())
rep->load(repname); rep->load(repname);
_reports.add(rep); _reports.add(rep);
} }
} }
bool TQuadro_IVA_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) bool TQuadro_IVA_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{ {
switch (o.dlg()) switch (o.dlg())
{ {
case F_YEAR: case F_YEAR:
if (e == fe_modify) if (e == fe_modify)
{ {
_year = atoi(o.get()); _year = atoi(o.get());
build_ditte_sheet(); build_ditte_sheet();
} }
break; break;
case DLG_ALLFIRMS: case DLG_ALLFIRMS:
if (e == fe_button) if (e == fe_button)
{ {
TSheet_field & sf = sfield(F_DITTE); TSheet_field & sf = sfield(F_DITTE);
bool check = false; bool check = false;
int rows = sf.items(); int rows = sf.items();
for (int i = 0; !check && i < rows; i++) for (int i = 0; !check && i < rows; i++)
check |= (sf.row(i).get(sf.cid2index(S_CHKDITTA))[0] == 'X') ; check |= (sf.row(i).get(sf.cid2index(S_CHKDITTA))[0] == 'X') ;
for (int i = 0; i < rows; i++) for (int i = 0; i < rows; i++)
sf.row(i).add(check ? " " : "X", sf.cid2index(S_CHKDITTA)); sf.row(i).add(check ? " " : "X", sf.cid2index(S_CHKDITTA));
sf.force_update(); sf.force_update();
} }
break; break;
case DLG_ALLREPORTS: case DLG_ALLREPORTS:
if (e == fe_button) if (e == fe_button)
{ {
TSheet_field & sf = sfield(F_REPORTS); TSheet_field & sf = sfield(F_REPORTS);
bool check = false; bool check = false;
int rows = sf.items(); int rows = sf.items();
for (int i = 0; !check && i < rows; i++) for (int i = 0; !check && i < rows; i++)
check |= (sf.row(i).get(sf.cid2index(S_CHKREPORT))[0] == 'X'); check |= (sf.row(i).get(sf.cid2index(S_CHKREPORT))[0] == 'X');
for (int i = 0; i < rows; i++) for (int i = 0; i < rows; i++)
sf.row(i).add(check ? " " : "X", sf.cid2index(S_CHKREPORT)); sf.row(i).add(check ? " " : "X", sf.cid2index(S_CHKREPORT));
sf.force_update(); sf.force_update();
} }
break; break;
default: default:
break; break;
} }
return true; return true;
} }
const real TQuadro_IVA_recordset::evaluate_recordset(const int code, const int year, const char * field, const char * expr) const real TQuadro_IVA_recordset::evaluate_recordset(const int code, const int year, const char * field, const char * expr)
{ {
real val; real val;
@ -173,16 +173,21 @@ const real TQuadro_IVA_recordset::evaluate_recordset(const int code, const int y
if (set->items() > 0) if (set->items() > 0)
for (set->move_first(); !set->eof(); set->move_next()) for (set->move_first(); !set->eof(); set->move_next())
{ {
int numvar = e.numvar(); if (expr != NULL)
for (int i = 0; i < numvar; i++)
{ {
const TString16 name = e.vars().varname(i); int numvar = e.numvar();
const TString val = set->get(name).as_string();
e.setvar(name, val); for (int i = 0; i < numvar; i++)
{
const TString16 name = e.vars().varname(i);
const TString val = set->get(name).as_string();
e.setvar(name, val);
}
if (e.as_bool())
val += set->get(field).as_real();
} }
if ((bool)e) else
val += set->get(field).as_real(); val += set->get(field).as_real();
} }
set->freeze(); set->freeze();
@ -191,149 +196,146 @@ const real TQuadro_IVA_recordset::evaluate_recordset(const int code, const int y
return val; return val;
} }
const TVariant& TQuadro_IVA_recordset::get(const char* column_name) const const TVariant& TQuadro_IVA_recordset::get(const char* column_name) const
{ {
const TFixed_string name(column_name); const TFixed_string name(column_name);
if (!name.starts_with("#") && name.find('.') > 0) if (!name.starts_with("#") && name.find('.') > 0)
{ {
TObject * obj = _values.objptr(name); TObject * obj = _values.objptr(name);
TVariant & var = get_tmp_var(); var == NULL_VARIANT; TVariant & var = get_tmp_var(); var == NULL_VARIANT;
if (TString(column_name) == "VF30.1") if (obj != NULL)
int i = 1; {
TObject * typeobj = _types.objptr(name);
if (obj != NULL)
{ if (typeobj != NULL && ((TString &) *typeobj) == "real")
TObject * typeobj = _types.objptr(name); {
real * value = (real *) obj;
if (typeobj != NULL && ((TString &) *typeobj) == "real")
{ value->round(0);
real * value = (real *) obj; var = *value;
}
value->round(0); else
var = *value; var = (TString &) *obj;
} }
else else
var = (TString &) *obj; var = ZERO;
}
else return var;
var = ZERO; }
return TISAM_recordset::get(column_name);
return var; }
}
return TISAM_recordset::get(column_name); void TQuadro_IVA_recordset::add_value(const char *s, real value)
} {
real * val = (real *)_values.objptr(s);
void TQuadro_IVA_recordset::add_value(const char *s, real value)
{ if (val == NULL)
real * val = (real *)_values.objptr(s); {
const TString8 key(s);
if (val == NULL) _values.add(key, val = new real);
{ _types.add(key, TString("real"));
const TString8 key(s); }
_values.add(key, val = new real); *val += value;
_types.add(key, TString("real")); }
}
*val += value; void TQuadro_IVA_recordset::set_bool(const char *s, bool on)
} {
TString * val = (TString *)_values.objptr(s);
void TQuadro_IVA_recordset::set_bool(const char *s, bool on)
{ if (val == NULL)
TString * val = (TString *)_values.objptr(s); {
const TString8 key(s);
if (val == NULL) _values.add(key, val = new TString4);
{ }
const TString8 key(s); *val = on ? "X" : "";
_values.add(key, val = new TString4); }
}
*val = on ? "X" : ""; TQuadro_IVA_report::TQuadro_IVA_report(const char * report_name)
} {
load(report_name);
TQuadro_IVA_report::TQuadro_IVA_report(const char * report_name) }
{
load(report_name); bool TQuadro_IVA_app::create()
} {
open_files(LF_TAB, LF_TABCOM, LF_NDITTE, 0);
bool TQuadro_IVA_app::create() return TSkeleton_application::create();
{ }
open_files(LF_TAB, LF_TABCOM, LF_NDITTE, 0);
return TSkeleton_application::create(); void TQuadro_IVA_app::print()
} {
TReport_book book(_print_title);
void TQuadro_IVA_app::print() long ditta;
{ const TString8 year = _mask->get(F_YEAR);
TReport_book book(_print_title);
long ditta; _mask->restart_ditte();
const TString8 year = _mask->get(F_YEAR); while ((ditta = _mask->get_ditta()) > 0)
{
_mask->restart_ditte(); TFilename name;
while ((ditta = _mask->get_ditta()) > 0)
{ set_firm(ditta);
TFilename name; name = _name;
name.rtrim(1);
set_firm(ditta); for (char c = 'a'; c <= last_quadro_report(); c++)
name = _name; {
name.rtrim(1); TFilename repname(name);
for (char c = 'a'; c <= last_quadro_report(); c++)
{ repname << c;
TFilename repname(name); repname.ext("rep");
if (repname.exist() || repname.custom_path())
repname << c; {
repname.ext("rep"); TQuadro_IVA_report rep(repname);
if (repname.exist() || repname.custom_path()) TRecordset * set = rep.recordset();
{
TQuadro_IVA_report rep(repname); rep.set_recordset(app_recordset(set->query_text(), atoi(year)));
TRecordset * set = rep.recordset(); set = rep.recordset();
TReport_section * sec = rep.find_section('B', 1);
rep.set_recordset(app_recordset(set->query_text(), atoi(year))); TReport_field * fld = sec->find_field(100);
set = rep.recordset();
TReport_section * sec = rep.find_section('B', 1); if (fld != NULL)
TReport_field * fld = sec->find_field(100); fld->set(year);
set->set_var("#CODDITTA", ditta);
if (fld != NULL) set->set_var("#ANNO", year);
fld->set(year); book.add(rep);
set->set_var("#CODDITTA", ditta); }
set->set_var("#ANNO", year); }
book.add(rep); _mask->restart_reports();
} TProgram_report * rep = _mask->get_report();
} TFilename repname = rep->filename();
_mask->restart_reports();
TProgram_report * rep = _mask->get_report(); repname.ext("");
TFilename repname = rep->filename(); while (repname != "STOP")
{
repname.ext(""); if (rep->filename().full())
while (repname != "STOP") {
{ TISAM_recordset * set = (TISAM_recordset *) rep->recordset();
if (rep->filename().full())
{ set->set_var("#ANNO", year);
TISAM_recordset * set = (TISAM_recordset *) rep->recordset(); book.add(*rep);
set->unfreeze();
set->set_var("#ANNO", year); }
book.add(*rep); rep = _mask->get_report();
set->unfreeze(); repname = rep->filename();
} repname.ext("");
rep = _mask->get_report(); }
repname = rep->filename(); }
repname.ext(""); book.print_or_preview();
} }
}
book.print_or_preview(); void TQuadro_IVA_app::main_loop()
} {
const long oldditta = get_firm();
void TQuadro_IVA_app::main_loop() KEY k;
{
const long oldditta = get_firm(); _mask = new TQuadro_IVA_mask(_name);
KEY k;
while ((k = _mask->run()) != K_QUIT)
_mask = new TQuadro_IVA_mask(_name); print();
set_firm(oldditta);
while ((k = _mask->run()) != K_QUIT) }
print();
set_firm(oldditta); TQuadro_IVA_app & app()
} {
return (TQuadro_IVA_app &) main_app();
TQuadro_IVA_app & app()
{
return (TQuadro_IVA_app &) main_app();
} }