Patch level : 12.00 1378

Files correlati     : cg0.exe cg0800a.msk cg0900a.msk cg0800a.rep cg0900a.rep cg4.exe cg4b00a.msk cg4c00a.msk cg4b00a.rep cg4c00a.rep cgmenu.men
Bug                 :

Commento:
Progressivi IVA per attività (registrazione e competenza)
This commit is contained in:
Alessandro Bonazzi 2025-02-09 01:31:55 +01:00
parent 383a6f7d36
commit 0f1e9ee173
11 changed files with 458 additions and 101 deletions

View File

@ -52,14 +52,98 @@ bool TRiepilogoIVA_mask::on_field_event(TOperable_field& o, TField_event e, long
class TRiepilogoIVA_app : public TSkeleton_application
{
protected:
void execute_print(TAutomask & m, TReport & rep, KEY k);
virtual void main_loop();
};
void TRiepilogoIVA_app::execute_print(TAutomask & m, TReport & rep, KEY k)
{
TReport_book b;
export_type type = _export_printer;
switch (k)
{
case K_ENTER:
case K_PRINT:
type = _export_printer;
break;
case K_EXCEL:
type = _export_excel;
break;
case K_EXPORT:
type = _export_generic;
break;
case K_PDF:
type = _export_pdf;
break;
case K_TEXT:
type = _export_text;
break;
break;
case K_VISUALIZE:
type = _export_visualize;
break;
default:
type = _export_user;
break;
}
TFilename name = m.get(DLG_OUTPUTD);
TString fname = m.get(DLG_OUTPUTF);
if (name.blank())
name.tempdir();
if (!dexist(name))
if (!make_dir(name))
{
error_box(FR("Non posso creare %s uso il direttorio temporaneo"), (const char *)name);
name.cut(0);
name.tempdir();
}
if (fname.blank())
{
TString t(20);
fname = "cg0800";
_strtime_s(t.get_buffer(), t.size());
t.strip(":");
fname << '_' << today.date2ansi() << '_' << t;
}
name.add(fname);
rep.set_export_sections(type);
b.add(rep, type);
switch (type)
{
case _export_printer:
b.print_or_preview();
break;
case _export_generic:
b.esporta();
break;
case _export_excel:
b.export_excel(name, false, true, false, '\t');
break;
case _export_pdf:
b.export_pdf(name, false, true);
break;
case _export_text:
b.export_text(name, 0, false, true);
break;
case _export_visualize:
b.preview();
break;
default:
break;
}
}
void TRiepilogoIVA_app::main_loop()
{
TRiepilogoIVA_mask m;
KEY k;
while (m.run() != K_QUIT)
while ((k = m.run()) != K_QUIT)
{
TRiepilogoIVA_report rep;
TFilename repname = m.get(DLG_REPORT);
@ -69,7 +153,7 @@ void TRiepilogoIVA_app::main_loop()
repname = "cg0800a";
rep.load(repname);
if (recset != NULL)
if (recset != nullptr)
{
int anno = m.get_int(F_ANNO);
int damese = m.get_int(F_DAMESE);
@ -96,7 +180,7 @@ void TRiepilogoIVA_app::main_loop()
recset->set_from(da);
recset->set_to(a);
rep.set_recordset(recset);
rep.print_or_preview();
execute_print(m, rep, k);
}
}
}

View File

@ -1,6 +1,8 @@
#include "cg0800a.h"
#define ALL_EXPORT
#define EXPORT_EXCEL
#define EXPORT_PDF
#define EXPORT_TEXT
#define REPORT
#define CLASS_NAME "cg0800a"

View File

@ -52,14 +52,99 @@ bool TRiepilogoIVAatt_mask::on_field_event(TOperable_field& o, TField_event e, l
class TRiepilogoIVAatt_app : public TSkeleton_application
{
protected:
void execute_print(TAutomask & m, TReport & rep, KEY k);
virtual void main_loop();
};
void TRiepilogoIVAatt_app::execute_print(TAutomask & m, TReport & rep, KEY k)
{
TReport_book b;
export_type type = _export_printer;
switch (k)
{
case K_ENTER:
case K_PRINT:
type = _export_printer;
break;
case K_EXCEL:
type = _export_excel;
rep.section('B', 1).find_field(90)->show(true);
break;
case K_EXPORT:
type = _export_generic;
break;
case K_PDF:
type = _export_pdf;
break;
case K_TEXT:
type = _export_text;
break;
break;
case K_VISUALIZE:
type = _export_visualize;
break;
default:
type = _export_user;
break;
}
TFilename name = m.get(DLG_OUTPUTD);
TString fname = m.get(DLG_OUTPUTF);
if (name.blank())
name.tempdir();
if (!dexist(name))
if (!make_dir(name))
{
error_box(FR("Non posso creare %s uso il direttorio temporaneo"), (const char *)name);
name.cut(0);
name.tempdir();
}
if (fname.blank())
{
TString t(20);
fname = "cg0800";
_strtime_s(t.get_buffer(), t.size());
t.strip(":");
fname << '_' << today.date2ansi() << '_' << t;
}
name.add(fname);
rep.set_export_sections(type);
b.add(rep, type);
switch (type)
{
case _export_printer:
b.print_or_preview();
break;
case _export_generic:
b.esporta();
break;
case _export_excel:
b.export_excel(name, false, true, false, '\t');
break;
case _export_pdf:
b.export_pdf(name, false, true);
break;
case _export_text:
b.export_text(name, 0, false, true);
break;
case _export_visualize:
b.preview();
break;
default:
break;
}
}
void TRiepilogoIVAatt_app::main_loop()
{
TRiepilogoIVAatt_mask m;
KEY k;
while (m.run() != K_QUIT)
while ((k = m.run()) != K_QUIT)
{
TRiepilogoIVA_report rep;
TFilename repname = m.get(DLG_REPORT);
@ -69,7 +154,7 @@ void TRiepilogoIVAatt_app::main_loop()
repname = "cg0900a";
rep.load(repname);
if (recset != NULL)
if (recset != nullptr)
{
int anno = m.get_int(F_ANNO);
int damese = m.get_int(F_DAMESE);
@ -112,8 +197,7 @@ void TRiepilogoIVAatt_app::main_loop()
f1->field(i).hide();
}
}
rep.print_or_preview();
execute_print(m, rep, k);
}
}
}

View File

@ -155,6 +155,9 @@
<postscript description="B1.0 POSTSCRIPT">#THIS @
#F2.109 +!</postscript>
</field>
<field deactivated="" type="Stringa" hidden="1" link="" dynamic_height="" shade_offset="" width="5" codval="" id="90" pattern="1" hide_zero="" text="">
<source>COD[1,5]</source>
</field>
</section>
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="" hidden="" page_break="" can_break="" pattern="1" />
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="1" hidden="" page_break="" can_break="" pattern="1">

View File

@ -1,6 +1,8 @@
#include "cg0900a.h"
#define ALL_EXPORT
#define EXPORT_EXCEL
#define EXPORT_PDF
#define EXPORT_TEXT
#define REPORT
#define CLASS_NAME "cg0900a"

View File

@ -88,14 +88,98 @@ public:
class TRiepilogoIVA_app : public TSkeleton_application
{
protected:
void execute_print(TAutomask & m, TReport & rep, KEY k);
virtual void main_loop();
};
void TRiepilogoIVA_app::execute_print(TAutomask & m, TReport & rep, KEY k)
{
TReport_book b;
export_type type = _export_printer;
switch (k)
{
case K_ENTER:
case K_PRINT:
type = _export_printer;
break;
case K_EXCEL:
type = _export_excel;
break;
case K_EXPORT:
type = _export_generic;
break;
case K_PDF:
type = _export_pdf;
break;
case K_TEXT:
type = _export_text;
break;
break;
case K_VISUALIZE:
type = _export_visualize;
break;
default:
type = _export_user;
break;
}
TFilename name = m.get(DLG_OUTPUTD);
TString fname = m.get(DLG_OUTPUTF);
if (name.blank())
name.tempdir();
if (!dexist(name))
if (!make_dir(name))
{
error_box(FR("Non posso creare %s uso il direttorio temporaneo"), (const char *)name);
name.cut(0);
name.tempdir();
}
if (fname.blank())
{
TString t(20);
fname = "cg0800";
_strtime_s(t.get_buffer(), t.size());
t.strip(":");
fname << '_' << today.date2ansi() << '_' << t;
}
name.add(fname);
rep.set_export_sections(type);
b.add(rep, type);
switch (type)
{
case _export_printer:
b.print_or_preview();
break;
case _export_generic:
b.esporta();
break;
case _export_excel:
b.export_excel(name, false, true, false, '\t');
break;
case _export_pdf:
b.export_pdf(name, false, true);
break;
case _export_text:
b.export_text(name, 0, false, true);
break;
case _export_visualize:
b.preview();
break;
default:
break;
}
}
void TRiepilogoIVA_app::main_loop()
{
TRiepilogoIVA_mask m;
KEY k;
while (m.run() != K_QUIT)
while ((k = m.run()) != K_QUIT)
{
TRiepilogoIVA_report rep;
TFilename repname = m.get(DLG_REPORT);
@ -104,7 +188,7 @@ void TRiepilogoIVA_app::main_loop()
if (repname.blank())
repname = "cg4b00a";
rep.load(repname);
if (recset != NULL)
if (recset != nullptr)
{
int anno = m.get_int(F_ANNO);
int damese = m.get_int(F_DAMESE);
@ -123,7 +207,7 @@ void TRiepilogoIVA_app::main_loop()
recset->set_from(m.get_date(F_DADATA));
recset->set_to(m.get_date(F_ADATA));
rep.set_recordset(recset);
rep.print_or_preview();
execute_print(m, rep, k);
}
}
}

View File

@ -1,6 +1,8 @@
#include "cg4c00a.h"
#define ALL_EXPORT
#define EXPORT_EXCEL
#define EXPORT_PDF
#define EXPORT_TEXT
#define REPORT
#define CLASS_NAME "cg4b00a"

View File

@ -88,14 +88,99 @@ public:
class TRiepilogoIVAatt_app : public TSkeleton_application
{
protected:
void execute_print(TAutomask & m, TReport & rep, KEY k);
virtual void main_loop();
};
void TRiepilogoIVAatt_app::execute_print(TAutomask & m, TReport & rep, KEY k)
{
TReport_book b;
export_type type = _export_printer;
switch (k)
{
case K_ENTER:
case K_PRINT:
type = _export_printer;
break;
case K_EXCEL:
type = _export_excel;
rep.section('B', 1).find_field(90)->show(true);
break;
case K_EXPORT:
type = _export_generic;
break;
case K_PDF:
type = _export_pdf;
break;
case K_TEXT:
type = _export_text;
break;
break;
case K_VISUALIZE:
type = _export_visualize;
break;
default:
type = _export_user;
break;
}
TFilename name = m.get(DLG_OUTPUTD);
TString fname = m.get(DLG_OUTPUTF);
if (name.blank())
name.tempdir();
if (!dexist(name))
if (!make_dir(name))
{
error_box(FR("Non posso creare %s uso il direttorio temporaneo"), (const char *)name);
name.cut(0);
name.tempdir();
}
if (fname.blank())
{
TString t(20);
fname = "cg0800";
_strtime_s(t.get_buffer(), t.size());
t.strip(":");
fname << '_' << today.date2ansi() << '_' << t;
}
name.add(fname);
rep.set_export_sections(type);
b.add(rep, type);
switch (type)
{
case _export_printer:
b.print_or_preview();
break;
case _export_generic:
b.esporta();
break;
case _export_excel:
b.export_excel(name, false, true, false, '\t');
break;
case _export_pdf:
b.export_pdf(name, false, true);
break;
case _export_text:
b.export_text(name, 0, false, true);
break;
case _export_visualize:
b.preview();
break;
default:
break;
}
}
void TRiepilogoIVAatt_app::main_loop()
{
TRiepilogoIVAatt_mask m;
KEY k;
while (m.run() != K_QUIT)
while ((k = m.run()) != K_QUIT)
{
TRiepilogoIVA_report rep;
TFilename repname = m.get(DLG_REPORT);
@ -104,7 +189,7 @@ void TRiepilogoIVAatt_app::main_loop()
if (repname.blank())
repname = "cg4c00a";
rep.load(repname);
if (recset != NULL)
if (recset != nullptr)
{
int anno = m.get_int(F_ANNO);
int damese = m.get_int(F_DAMESE);
@ -139,7 +224,7 @@ void TRiepilogoIVAatt_app::main_loop()
}
}
rep.set_recordset(recset);
rep.print_or_preview();
execute_print(m, rep, k);
}
}
}

View File

@ -169,6 +169,9 @@
<postscript description="B1.0 POSTSCRIPT">#THIS @
#F2.109 +!</postscript>
</field>
<field deactivated="" type="Stringa" hidden="1" link="" dynamic_height="" shade_offset="" width="5" codval="" id="90" pattern="1" hide_zero="" text="">
<source>COD[1,5]</source>
</field>
</section>
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="" hidden="" page_break="" can_break="" pattern="1" />
<section repeat="" keep_with_next="" deactivated="" hidden_if_needed="" type="Foot" level="1" hidden="" page_break="" can_break="" pattern="1">

View File

@ -1,6 +1,8 @@
#include "cg4c00a.h"
#define ALL_EXPORT
#define EXPORT_EXCEL
#define EXPORT_PDF
#define EXPORT_TEXT
#define REPORT
#define CLASS_NAME "cg4c00a"

View File

@ -146,7 +146,12 @@ void TRiepilogoIVA_recordset::requery()
recset.set_var("#AMESE", (long)a_mese(), true);
for (bool ok = recset.move_first(); ok; ok = recset.move_next())
{
const TRegistro & reg = cached_registro((const char *)recset.get(FIELD_NAME(LF_MOV, MOV_REG)).as_string(), anno());
const TString codreg = recset.get_string(FIELD_NAME(LF_MOV, MOV_REG));
if (codreg.full())
{
const TRegistro & reg = cached_registro(codreg, anno());
TipoIVA t = reg.iva();
_mov_codatt = reg.attivita();
@ -228,6 +233,7 @@ void TRiepilogoIVA_recordset::requery()
}
}
}
}
TString_array keys;