2011-03-21 16:57:29 +00:00
|
|
|
#include <applicat.h>
|
|
|
|
#include <automask.h>
|
|
|
|
#include <report.h>
|
|
|
|
#include <strings.h>
|
|
|
|
|
|
|
|
#include "../ba/ba8500.h"
|
|
|
|
|
|
|
|
#include "../cg/cg7200a.h"
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
|
|
// Report
|
|
|
|
///////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
class TPrint_x_imponibile_report : public TReport
|
|
|
|
{
|
|
|
|
protected:
|
|
|
|
virtual bool use_mask() { return false; }
|
|
|
|
|
|
|
|
public:
|
|
|
|
TPrint_x_imponibile_report();
|
|
|
|
};
|
|
|
|
|
|
|
|
TPrint_x_imponibile_report::TPrint_x_imponibile_report()
|
|
|
|
{
|
|
|
|
load("cg7200a");
|
|
|
|
}
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
|
|
// Maschera
|
|
|
|
///////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
class TPrint_x_imponibile_mask : public TAutomask
|
|
|
|
{
|
|
|
|
protected:
|
|
|
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
|
|
|
|
|
|
|
public:
|
|
|
|
void elabora();
|
|
|
|
TPrint_x_imponibile_mask();
|
|
|
|
virtual ~TPrint_x_imponibile_mask() {}
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
void TPrint_x_imponibile_mask::elabora()
|
|
|
|
{
|
|
|
|
const char tipodate = get(F_TIPODATE)[0];
|
|
|
|
const char tipoelenco = get(F_TIPOELENCO)[0];
|
|
|
|
const long codcf = get_long(F_CODCF);
|
|
|
|
const int anno = get_int(F_ANNO);
|
2011-03-22 16:47:42 +00:00
|
|
|
const TDate dataini = get_date(F_DATAINI);
|
|
|
|
const TDate datafin = get_date(F_DATAFIN);
|
2011-03-21 16:57:29 +00:00
|
|
|
|
|
|
|
TString query;
|
|
|
|
|
|
|
|
if (tipodate == 'R') //per data di 'R'egistrazione
|
|
|
|
{
|
|
|
|
query << "USE MOV KEY 3";
|
2011-03-22 16:47:42 +00:00
|
|
|
|
2011-03-21 16:57:29 +00:00
|
|
|
query << "\nSELECT (ANNOIVA=" << anno << ")";
|
2011-03-22 16:47:42 +00:00
|
|
|
|
2011-03-21 16:57:29 +00:00
|
|
|
query << "\nFROM TIPO=" << tipoelenco;
|
2011-03-22 16:47:42 +00:00
|
|
|
query << " CODCF=" << codcf;
|
|
|
|
query << " DATAREG=" << dataini.date2ansi();
|
|
|
|
|
2011-03-21 16:57:29 +00:00
|
|
|
query << "\nTO TIPO=" << tipoelenco;
|
2011-03-22 16:47:42 +00:00
|
|
|
query << " CODCF=" << (codcf > 0L ? codcf : 999999);
|
|
|
|
query << " DATAREG=" << datafin.date2ansi();
|
2011-03-21 16:57:29 +00:00
|
|
|
}
|
|
|
|
else //per data 'D'ocumento
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
TPrint_x_imponibile_report rep;
|
|
|
|
rep.set_recordset(query);
|
2011-03-22 16:47:42 +00:00
|
|
|
rep.mask2report(*this);
|
|
|
|
rep.preview();
|
2011-03-21 16:57:29 +00:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
bool TPrint_x_imponibile_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|
|
|
{
|
2011-03-22 16:47:42 +00:00
|
|
|
switch (o.dlg())
|
|
|
|
{
|
|
|
|
case F_ANNO:
|
|
|
|
if (e == fe_modify)
|
|
|
|
{
|
|
|
|
//in base all'anno varia il limite dell'imponibile da considerare
|
|
|
|
const int anno = o.get_long();
|
|
|
|
if (anno <= 2010)
|
|
|
|
set(F_LIMITE, "25000");
|
|
|
|
else
|
|
|
|
set(F_LIMITE, "3000");
|
|
|
|
|
|
|
|
//cambiando l'anno propone in automatico il dadata adata
|
|
|
|
const TDate ini_anno(1, 1, anno);
|
|
|
|
set(F_DATAINI, ini_anno);
|
|
|
|
const TDate fine_anno(31, 12, anno);
|
|
|
|
set(F_DATAFIN, fine_anno);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case F_DATAINI:
|
|
|
|
case F_DATAFIN:
|
|
|
|
if (e == fe_modify || e == fe_close)
|
|
|
|
{
|
|
|
|
const TDate data = get_date(o.dlg());
|
|
|
|
const int anno = get_int(F_ANNO);
|
|
|
|
if (data.year() != anno)
|
|
|
|
return error_box("La data deve appartenere all'anno selezionato!");
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
2011-03-21 16:57:29 +00:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
TPrint_x_imponibile_mask::TPrint_x_imponibile_mask() : TAutomask("cg7200a")
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
|
|
// Applicazione
|
|
|
|
///////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
class TPrint_x_imponibile : public TKlarkKent_app
|
|
|
|
{
|
|
|
|
protected:
|
|
|
|
|
|
|
|
public:
|
|
|
|
virtual void main_loop();
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
void TPrint_x_imponibile::main_loop()
|
|
|
|
{
|
|
|
|
TPrint_x_imponibile_mask mask;
|
|
|
|
|
|
|
|
while (mask.run() == K_ENTER)
|
|
|
|
{
|
|
|
|
mask.elabora();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
int cg7200(int argc, char* argv[])
|
|
|
|
{
|
|
|
|
TPrint_x_imponibile app;
|
|
|
|
app.run(argc, argv, TR("Lista fatture per imponibile"));
|
|
|
|
return 0;
|
|
|
|
}
|