Corretta sparizione misteriosa dei mesi
git-svn-id: svn://10.65.10.50/trunk@772 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
aadf264df4
commit
1b54d95ee2
@ -39,10 +39,9 @@ END
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 3 1 "Ditta "
|
||||
FLAGS "FGRD"
|
||||
FLAGS "DFGR"
|
||||
USE LF_NDITTE KEY 1
|
||||
INPUT CODDITTA F_CODDITTA
|
||||
DISPLAY "Codice" CODDITTA
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
@ -57,7 +56,7 @@ NUMBER F_NUMREG 6
|
||||
BEGIN
|
||||
PROMPT 57 3 "Operazione n. "
|
||||
FIELD NUMREG
|
||||
FLAGS "RDG"
|
||||
FLAGS "DGR"
|
||||
KEY 1
|
||||
MESSAGE COPY,H_NUMREG
|
||||
END
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
int main(int argc,char** argv)
|
||||
{
|
||||
int n = (argc > 1) ? atoi(argv[1]+1) : -1;
|
||||
const int n = (argc > 1) ? atoi(argv[1]+1) : -1;
|
||||
|
||||
switch (n)
|
||||
{
|
||||
|
@ -26,6 +26,7 @@ NUMBER FLD_CODABI 5
|
||||
BEGIN
|
||||
PROMPT 3 2 "Banca di appoggio per deleghe IVA ABI "
|
||||
HELP "Codice ABI banca di appoggio per deleghe IVA"
|
||||
WARNIG "Codice ABI errato"
|
||||
USE %BAN
|
||||
INPUT CODTAB[1,5] FLD_CODABI
|
||||
DISPLAY "ABI@5" CODTAB[1,5]
|
||||
@ -41,8 +42,9 @@ END
|
||||
|
||||
NUMBER FLD_CODCAB 5
|
||||
BEGIN
|
||||
PROMPT 60 2 "CAB "
|
||||
HELP "Codice CAB banca di appoggio per deleghe IVA"
|
||||
PROMPT 60 2 "CAB "
|
||||
HELP "Codice CAB banca di appoggio per deleghe IVA"
|
||||
WARNIG "Codice CAB errato"
|
||||
COPY ALL FLD_CODABI
|
||||
INPUT CODTAB[6,10] FLD_CODCAB
|
||||
CHECKTYPE NORMAL
|
||||
@ -59,7 +61,7 @@ END
|
||||
BOOLEAN CHK_SIND11
|
||||
BEGIN
|
||||
PROMPT 3 4 "Somma imposte non detraibili ad acq/import. in modello IVA 11"
|
||||
HELP "Indicare se includere l'IVA non detraibile nell'importo dell'operazioni IVA art.19 IVA 11"
|
||||
HELP "Indicare se includere l'IVA non detraibile nell'importo dell'operazioni IVA art.19 IVA 11"
|
||||
FIELD Sind11
|
||||
END
|
||||
|
||||
@ -109,7 +111,8 @@ STRING FLD_CODAGV 4
|
||||
BEGIN
|
||||
PROMPT 3 9 "Codice IVA per ricavi misti agenzie di viaggio "
|
||||
HELP "Codice IVA per scorporo operazioni con l'esetero per agenzie di viaggio"
|
||||
USE %IVA
|
||||
WARNIG "Codice IVA errato"
|
||||
USE %IVA
|
||||
FLAGS "U"
|
||||
INPUT CODTAB FLD_CODAGV
|
||||
DISPLAY "Codice" CODTAB
|
||||
@ -147,15 +150,15 @@ END
|
||||
|
||||
BOOLEAN CHK_STIREG
|
||||
BEGIN
|
||||
PROMPT 3 14 "Stampare l'intestazione sui registri bollati"
|
||||
HELP "Indicare se stampare l'intestazione della ditta sui registri"
|
||||
PROMPT 3 14 "Stampare l'intestazione sui registri bollati"
|
||||
HELP "Indicare se stampare l'intestazione della ditta sui registri"
|
||||
FIELD StiReg
|
||||
END
|
||||
|
||||
BOOLEAN CHK_NODTRG
|
||||
BEGIN
|
||||
PROMPT 3 15 "Non stampare la data di operazione sui registri IVA"
|
||||
HELP "Indicare se non stampoare la data dell'operazione sui registri IVA"
|
||||
HELP "Indicare se non stampoare la data dell'operazione sui registri IVA"
|
||||
FIELD NoDtRg
|
||||
END
|
||||
|
||||
|
824
cg/cg5500.cpp
824
cg/cg5500.cpp
@ -1,411 +1,413 @@
|
||||
#include "cg5500.h"
|
||||
|
||||
#include <urldefid.h>
|
||||
#include <prefix.h>
|
||||
#include "cg5500a.h"
|
||||
#include <msksheet.h>
|
||||
#include <mailbox.h>
|
||||
#include <execp.h>
|
||||
#include <progind.h>
|
||||
#include <browfile.h>
|
||||
|
||||
const char* Visliq_app::itoname(int m)
|
||||
{
|
||||
const char* mn;
|
||||
if (_freqviva == "M")
|
||||
return itom(m);
|
||||
|
||||
switch(m)
|
||||
{
|
||||
case 3:
|
||||
mn = "1 Trimestre";
|
||||
break;
|
||||
case 6:
|
||||
mn = "2 Trimestre";
|
||||
break;
|
||||
case 9:
|
||||
mn = "3 Trimestre";
|
||||
break;
|
||||
case 12:
|
||||
mn = "4 Trimestre";
|
||||
break;
|
||||
}
|
||||
|
||||
return mn;
|
||||
}
|
||||
|
||||
void Visliq_app::set_freqviva()
|
||||
{
|
||||
if (look_lia())
|
||||
_freqviva = _lia->get("S7");
|
||||
else
|
||||
{
|
||||
TLocalisamfile ditte(LF_NDITTE,1);
|
||||
ditte.zero();
|
||||
ditte.put("CODDITTA", get_firm());
|
||||
ditte.read();
|
||||
_freqviva = ditte.get("FREQVIVA");
|
||||
}
|
||||
}
|
||||
|
||||
bool Visliq_app::create()
|
||||
{
|
||||
TApplication::create();
|
||||
|
||||
_del = new TTable("%DEL");
|
||||
_lia = new TTable("LIA");
|
||||
_lim = new TTable("LIM");
|
||||
_del_r = &(_del->curr());
|
||||
_lim_r = &(_lim->curr());
|
||||
_del_ditta = new TRecfield(*_del_r,"CODTAB",0,4);
|
||||
_del_anno = new TRecfield(*_del_r,"CODTAB",5,8);
|
||||
_del_mese = new TRecfield(*_del_r,"CODTAB",9,10);
|
||||
_del_tipo = new TRecfield(*_del_r,"CODTAB",11,11);
|
||||
_lim_anno = new TRecfield(*_lim_r,"CODTAB",0,3);
|
||||
_lim_mese = new TRecfield(*_lim_r,"CODTAB",4,6);
|
||||
|
||||
dispatch_e_menu(BAR_ITEM(1));
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Visliq_app::destroy()
|
||||
{
|
||||
delete _lim_mese;
|
||||
delete _lim_anno;
|
||||
delete _del_tipo;
|
||||
delete _del_mese;
|
||||
delete _del_ditta;
|
||||
delete _lim_r;
|
||||
delete _del_r;
|
||||
delete _lim;
|
||||
delete _del;
|
||||
|
||||
return TApplication::destroy();
|
||||
}
|
||||
|
||||
|
||||
void Visliq_app::set_mask_freq(TMask& m)
|
||||
{
|
||||
if (_freqviva == "M")
|
||||
{
|
||||
m.show(F_MONTHS);
|
||||
m.hide(F_TRIMS);
|
||||
}
|
||||
else
|
||||
{
|
||||
m.hide(F_MONTHS);
|
||||
m.show(F_TRIMS);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool Visliq_app::sheet_action(int r, KEY k)
|
||||
{
|
||||
// non si possono cancellare o aggiungere righe
|
||||
return (k != K_DEL && k != K_INS);
|
||||
}
|
||||
|
||||
|
||||
|
||||
const char* Visliq_app::link_handler(TMask& m,
|
||||
int n, const char* txt, bool doubleclick)
|
||||
{
|
||||
// con click visualizza, con double click modifica
|
||||
TString st(txt);
|
||||
bool iscred = FALSE;
|
||||
static int group;
|
||||
int firstfoc;
|
||||
|
||||
if (group != 0) m.hide(group);
|
||||
|
||||
if (st.find("rimborso") != -1)
|
||||
{ group = -1; firstfoc = F_RIMBORSO; }
|
||||
else if (st.find("debito") != -1 || st.find("credito") != -1)
|
||||
{ group = -2; firstfoc = F_RETTIFICA; }
|
||||
else if (st.find("acconto") != -1)
|
||||
{ group = -3; firstfoc = F_ACCONTO; }
|
||||
|
||||
m.show(group);
|
||||
|
||||
if (doubleclick)
|
||||
{ m.enable(group); m.field(firstfoc).set_focus(); }
|
||||
else m.disable(group);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
bool Visliq_app::menu(MENU_TAG m)
|
||||
{
|
||||
if (m == BAR_ITEM(1))
|
||||
return vis_liq();
|
||||
|
||||
return TApplication::menu(m);
|
||||
}
|
||||
|
||||
// handlers
|
||||
bool Visliq_app::set_ditta(TMask_field& f, KEY k)
|
||||
{
|
||||
long ditta = atol(f.get());
|
||||
|
||||
if (!prefhndl->exist(ditta))
|
||||
{
|
||||
warning_box("Archivi ditta %l non presenti!", ditta);
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
main_app().set_firm(ditta);
|
||||
((Visliq_app&)main_app()).set_freqviva();
|
||||
}
|
||||
|
||||
((Visliq_app&)main_app()).set_mask_freq(f.mask());
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Visliq_app::set_anno(TMask_field& f, KEY k)
|
||||
{
|
||||
((Visliq_app&)main_app()).set_year(atoi(f.get()));
|
||||
((Visliq_app&)main_app()).set_freqviva();
|
||||
((Visliq_app&)main_app()).set_mask_freq(f.mask());
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
bool Visliq_app::sel_mese_sh1 (TMask_field& f, KEY k)
|
||||
{
|
||||
if (k != K_SPACE) return TRUE;
|
||||
|
||||
TMask& m = *(((Visliq_app&)main_app()).get_main_mask());
|
||||
TSheet_field& sh = (TSheet_field&)m.field(F_VISLIQ1);
|
||||
int month = sh.selected()+1;
|
||||
((Visliq_app&)main_app()).vis_one(month);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Visliq_app::sel_mese_sh2 (TMask_field& f, KEY k)
|
||||
{
|
||||
if (k != K_SPACE) return TRUE;
|
||||
|
||||
TMask& m = *(((Visliq_app&)main_app()).get_main_mask());
|
||||
TSheet_field& sh = (TSheet_field&)m.field(F_VISLIQ2);
|
||||
int month = sh.selected();
|
||||
month = month == 4 ? 13 : (month+1)*3;
|
||||
((Visliq_app&)main_app()).vis_one(month);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Visliq_app::vis_liq()
|
||||
{
|
||||
long ditta = get_firm();
|
||||
set_freqviva();
|
||||
|
||||
TMask m("cg5500a");
|
||||
|
||||
m.set_handler(F_CODDITTA, set_ditta);
|
||||
m.set_handler(F_YEAR, set_anno);
|
||||
|
||||
set_mask_freq(m);
|
||||
_year = m.get_int(F_YEAR);
|
||||
|
||||
while (m.run() != K_ESC)
|
||||
{
|
||||
int month = m.get_int(_freqviva == "M" ? F_MONTHS : F_TRIMS);
|
||||
if (month == 0)
|
||||
vis_all();
|
||||
else
|
||||
vis_one(month);
|
||||
}
|
||||
|
||||
set_firm(ditta);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
bool Visliq_app::vis_all()
|
||||
{
|
||||
if (!look_lia())
|
||||
return FALSE;
|
||||
|
||||
// mask diverse per trimestrale e annuale
|
||||
TMask m(_freqviva == "M" ? "cg5500b" : "cg5500c");
|
||||
|
||||
_mask = &m;
|
||||
|
||||
TSheet_field& sh = (TSheet_field&)m.field(F_VISLIQ1);
|
||||
TSheet_field& sv = (TSheet_field&)m.field(F_VISLIQ2);
|
||||
|
||||
// disabilita aggiunta/eliminazione righe
|
||||
sh.set_notify(sheet_action);
|
||||
sh.set_notify(sheet_action);
|
||||
|
||||
sh.sheet_mask().set_handler(101,sel_mese_sh1);
|
||||
sv.sheet_mask().set_handler(101,sel_mese_sh2);
|
||||
|
||||
m.field(F_CREDPREC).set(_lia->get_real("R0").string());
|
||||
|
||||
// set sheet
|
||||
for (int i = 1; i <= 12; i++)
|
||||
{
|
||||
|
||||
if (!is_month_ok(i) || !look_lim(i))
|
||||
continue;
|
||||
|
||||
TToken_string* tt = new TToken_string(80);
|
||||
|
||||
tt->add(""); // questo e' il bottone
|
||||
tt->add(itoname(i));
|
||||
tt->add(abs(_lim->get_real("R0")).string());
|
||||
tt->add(_lim->get_real("R0").sign() < 0 ? "C" : "D");
|
||||
tt->add(_lim->get_real("R1").string());
|
||||
tt->add(abs(_lim->get_real("R5")).string());
|
||||
tt->add(_lim->get_real("R5").sign() < 0 ? "C" : "D");
|
||||
|
||||
sh.row(i-1) = (*tt);
|
||||
}
|
||||
|
||||
// calcola versamenti
|
||||
real versamenti[13];
|
||||
TDate date[13];
|
||||
|
||||
for (_del->first(); !_del->eof(); _del->next())
|
||||
{
|
||||
if (atol(*_del_ditta) != get_firm() ||
|
||||
atoi(*_del_anno) != _year)
|
||||
continue;
|
||||
|
||||
// TBC uso solo deleghe normali (tipo == 1) e acconti (tipo == 7)
|
||||
int tipod = atoi(*_del_tipo);
|
||||
if (tipod != 1 || tipod != 7)
|
||||
continue;
|
||||
|
||||
// somma versamenti nel mese adeguato
|
||||
int m = atoi(*_del_mese);
|
||||
|
||||
if (m >= 12)
|
||||
m = tipod == 7 ? 12 : 13;
|
||||
|
||||
versamenti[m-1] += _del->get_real("R0");
|
||||
date[m-1] = _del->get_date("D0");
|
||||
}
|
||||
|
||||
TString nomemese(26);
|
||||
|
||||
for (i = 1; i <= 13; i++)
|
||||
{
|
||||
if (!is_month_ok(i))
|
||||
continue;
|
||||
|
||||
TToken_string* tt = new TToken_string(80);
|
||||
nomemese = itoname(i == 13 ? 12 : i);
|
||||
|
||||
if (i == 12) nomemese << " acconto";
|
||||
if (i == 13) nomemese << " saldo";
|
||||
|
||||
tt->add(""); // questo e' il bottone
|
||||
tt->add(nomemese); // mese
|
||||
tt->add(date[i-1].string()); // data vers.
|
||||
tt->add(""); // TBI azienda
|
||||
tt->add(""); // TBI dipendenza
|
||||
tt->add(""); // TBI concessionaria
|
||||
tt->add(versamenti[i-1].string());// versamenti
|
||||
tt->add(versamenti[i-1].sign() < 0 ? "C" : "D"); // debito/credito
|
||||
|
||||
sv.row(i-1) = (*tt);
|
||||
}
|
||||
|
||||
sh.disable();
|
||||
sv.disable();
|
||||
|
||||
m.run();
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
bool Visliq_app::vis_one(int m)
|
||||
{
|
||||
TMask msk("cg5500d");
|
||||
|
||||
// ricalcolo liquidazione TMessage msg;
|
||||
TFilename f;
|
||||
f.temp();
|
||||
|
||||
TToken_string body(36);
|
||||
body.add(_year);
|
||||
body.add(m);
|
||||
body.add(get_firm());
|
||||
body.add("V"); // visualizzazione: no ff alla fine, zeri stampati
|
||||
body.add("");
|
||||
body.add(f);
|
||||
|
||||
TMessage msg("cg4300", "RCL", body);
|
||||
msg.send();
|
||||
|
||||
TBrowsefile_field& brw = (TBrowsefile_field&)msk.field(F_VISFLQ);
|
||||
brw.set_link_handler(link_handler);
|
||||
brw.enable_link("Modifica: ", 'r');
|
||||
|
||||
look_lim(m);
|
||||
real rimborso = _lim->get_real("R1");
|
||||
real rettifica = _lim->get_real("R5");
|
||||
TString desc1(_lim->get("S0"));
|
||||
TString desc2(_lim->get("S1"));
|
||||
real acconto;
|
||||
|
||||
if (m == 12)
|
||||
{
|
||||
look_lia();
|
||||
acconto = _lia->get_real("R4");
|
||||
}
|
||||
|
||||
msk.field(F_RIMBORSO).set(rimborso.string());
|
||||
if (rettifica.sign() < 0)
|
||||
{
|
||||
msk.field(F_RETTIFICA).set(abs(rettifica).string());
|
||||
msk.field(F_DEBCRE).set("C");
|
||||
}
|
||||
else
|
||||
{
|
||||
msk.field(F_RETTIFICA).set(rettifica.string());
|
||||
msk.field(F_DEBCRE).set("D");
|
||||
}
|
||||
msk.field(F_DESCR1).set(desc1);
|
||||
msk.field(F_DESCR2).set(desc1);
|
||||
msk.field(F_ACCONTO).set(acconto.string());
|
||||
|
||||
long line;
|
||||
|
||||
TExternal_app liq("cg4 -2");
|
||||
{
|
||||
TProgind(10l,"Estrazione liquidazione\nPrego attendere", FALSE,FALSE);
|
||||
liq.run();
|
||||
|
||||
if (liq.error())
|
||||
{
|
||||
beep();
|
||||
return FALSE;
|
||||
}
|
||||
line = brw.set_text(f, "CALCOLO LIQUIDAZIONE D'IMPOSTA");
|
||||
|
||||
if (line != -1)
|
||||
brw.goto_pos(line-1l, 9);
|
||||
msk.run();
|
||||
}
|
||||
|
||||
remove(f);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int cg5500(int argc, char* argv[])
|
||||
{
|
||||
Visliq_app app;
|
||||
app.run(argc, argv, "Visualizzazione Liquidazione");
|
||||
return 0;
|
||||
}
|
||||
#include "cg5500.h"
|
||||
|
||||
#include <browfile.h>
|
||||
#include <prefix.h>
|
||||
#include <msksheet.h>
|
||||
#include <mailbox.h>
|
||||
#include <execp.h>
|
||||
#include <progind.h>
|
||||
#include <urldefid.h>
|
||||
|
||||
#include "cg5500a.h"
|
||||
|
||||
const char* Visliq_app::itoname(int m)
|
||||
{
|
||||
const char* mn;
|
||||
if (_freqviva == "M")
|
||||
return itom(m);
|
||||
|
||||
switch(m)
|
||||
{
|
||||
case 3:
|
||||
mn = "1 Trimestre";
|
||||
break;
|
||||
case 6:
|
||||
mn = "2 Trimestre";
|
||||
break;
|
||||
case 9:
|
||||
mn = "3 Trimestre";
|
||||
break;
|
||||
case 12:
|
||||
mn = "4 Trimestre";
|
||||
break;
|
||||
}
|
||||
|
||||
return mn;
|
||||
}
|
||||
|
||||
void Visliq_app::set_freqviva()
|
||||
{
|
||||
if (look_lia())
|
||||
_freqviva = _lia->get("S7");
|
||||
else
|
||||
{
|
||||
TLocalisamfile ditte(LF_NDITTE,TRUE);
|
||||
ditte.zero();
|
||||
ditte.put("CODDITTA", get_firm());
|
||||
ditte.read();
|
||||
_freqviva = ditte.get("FREQVIVA");
|
||||
}
|
||||
}
|
||||
|
||||
bool Visliq_app::create()
|
||||
{
|
||||
TApplication::create();
|
||||
|
||||
_del = new TTable("%DEL");
|
||||
_lia = new TTable("LIA");
|
||||
_lim = new TTable("LIM");
|
||||
_del_r = &(_del->curr());
|
||||
_lim_r = &(_lim->curr());
|
||||
_del_ditta = new TRecfield(*_del_r,"CODTAB",0,4);
|
||||
_del_anno = new TRecfield(*_del_r,"CODTAB",5,8);
|
||||
_del_mese = new TRecfield(*_del_r,"CODTAB",9,10);
|
||||
_del_tipo = new TRecfield(*_del_r,"CODTAB",11,11);
|
||||
_lim_anno = new TRecfield(*_lim_r,"CODTAB",0,3);
|
||||
_lim_mese = new TRecfield(*_lim_r,"CODTAB",4,6);
|
||||
|
||||
dispatch_e_menu(BAR_ITEM(1));
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Visliq_app::destroy()
|
||||
{
|
||||
delete _lim_mese;
|
||||
delete _lim_anno;
|
||||
delete _del_tipo;
|
||||
delete _del_mese;
|
||||
delete _del_ditta;
|
||||
delete _lim_r;
|
||||
delete _del_r;
|
||||
delete _lim;
|
||||
delete _del;
|
||||
|
||||
return TApplication::destroy();
|
||||
}
|
||||
|
||||
|
||||
void Visliq_app::set_mask_freq(TMask& m)
|
||||
{
|
||||
if (_freqviva == "M")
|
||||
{
|
||||
m.show(F_MONTHS);
|
||||
m.hide(F_TRIMS);
|
||||
}
|
||||
else
|
||||
{
|
||||
m.hide(F_MONTHS);
|
||||
m.show(F_TRIMS);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool Visliq_app::sheet_action(int r, KEY k)
|
||||
{
|
||||
// non si possono cancellare o aggiungere righe
|
||||
return (k != K_DEL && k != K_INS);
|
||||
}
|
||||
|
||||
|
||||
|
||||
const char* Visliq_app::link_handler(TMask& m,
|
||||
int n, const char* txt, bool doubleclick)
|
||||
{
|
||||
// con click visualizza, con double click modifica
|
||||
TString st(txt);
|
||||
bool iscred = FALSE;
|
||||
static int group;
|
||||
int firstfoc;
|
||||
|
||||
if (group != 0) m.hide(group);
|
||||
|
||||
if (st.find("rimborso") != -1)
|
||||
{ group = -1; firstfoc = F_RIMBORSO; }
|
||||
else if (st.find("debito") != -1 || st.find("credito") != -1)
|
||||
{ group = -2; firstfoc = F_RETTIFICA; }
|
||||
else if (st.find("acconto") != -1)
|
||||
{ group = -3; firstfoc = F_ACCONTO; }
|
||||
|
||||
m.show(group);
|
||||
|
||||
if (doubleclick)
|
||||
{ m.enable(group); m.field(firstfoc).set_focus(); }
|
||||
else m.disable(group);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
bool Visliq_app::menu(MENU_TAG m)
|
||||
{
|
||||
if (m == BAR_ITEM(1))
|
||||
return vis_liq();
|
||||
|
||||
return TApplication::menu(m);
|
||||
}
|
||||
|
||||
// handlers
|
||||
bool Visliq_app::set_ditta(TMask_field& f, KEY k)
|
||||
{
|
||||
long ditta = atol(f.get());
|
||||
|
||||
if (!prefhndl->exist(ditta))
|
||||
{
|
||||
warning_box("Archivi ditta %l non presenti!", ditta);
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
main_app().set_firm(ditta);
|
||||
((Visliq_app&)main_app()).set_freqviva();
|
||||
}
|
||||
|
||||
((Visliq_app&)main_app()).set_mask_freq(f.mask());
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Visliq_app::set_anno(TMask_field& f, KEY k)
|
||||
{
|
||||
((Visliq_app&)main_app()).set_year(atoi(f.get()));
|
||||
((Visliq_app&)main_app()).set_freqviva();
|
||||
((Visliq_app&)main_app()).set_mask_freq(f.mask());
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
bool Visliq_app::sel_mese_sh1 (TMask_field& f, KEY k)
|
||||
{
|
||||
if (k != K_SPACE) return TRUE;
|
||||
|
||||
TMask& m = *(((Visliq_app&)main_app()).get_main_mask());
|
||||
TSheet_field& sh = (TSheet_field&)m.field(F_VISLIQ1);
|
||||
int month = sh.selected()+1;
|
||||
((Visliq_app&)main_app()).vis_one(month);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Visliq_app::sel_mese_sh2 (TMask_field& f, KEY k)
|
||||
{
|
||||
if (k != K_SPACE) return TRUE;
|
||||
|
||||
TMask& m = *(((Visliq_app&)main_app()).get_main_mask());
|
||||
TSheet_field& sh = (TSheet_field&)m.field(F_VISLIQ2);
|
||||
int month = sh.selected();
|
||||
month = month == 4 ? 13 : (month+1)*3;
|
||||
((Visliq_app&)main_app()).vis_one(month);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Visliq_app::vis_liq()
|
||||
{
|
||||
long ditta = get_firm();
|
||||
set_freqviva();
|
||||
|
||||
TMask m("cg5500a");
|
||||
|
||||
m.set_handler(F_CODDITTA, set_ditta);
|
||||
m.set_handler(F_YEAR, set_anno);
|
||||
|
||||
set_mask_freq(m);
|
||||
_year = m.get_int(F_YEAR);
|
||||
|
||||
while (m.run() != K_ESC)
|
||||
{
|
||||
int month = m.get_int(_freqviva == "M" ? F_MONTHS : F_TRIMS);
|
||||
if (month == 0)
|
||||
vis_all();
|
||||
else
|
||||
vis_one(month);
|
||||
}
|
||||
|
||||
set_firm(ditta);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
bool Visliq_app::vis_all()
|
||||
{
|
||||
if (!look_lia())
|
||||
return FALSE;
|
||||
|
||||
// mask diverse per trimestrale e annuale
|
||||
TMask m(_freqviva == "M" ? "cg5500b" : "cg5500c");
|
||||
|
||||
_mask = &m;
|
||||
|
||||
TSheet_field& sh = (TSheet_field&)m.field(F_VISLIQ1);
|
||||
TSheet_field& sv = (TSheet_field&)m.field(F_VISLIQ2);
|
||||
|
||||
// disabilita aggiunta/eliminazione righe
|
||||
sh.set_notify(sheet_action);
|
||||
sv.set_notify(sheet_action);
|
||||
|
||||
sh.sheet_mask().set_handler(101,sel_mese_sh1);
|
||||
sv.sheet_mask().set_handler(101,sel_mese_sh2);
|
||||
|
||||
m.field(F_CREDPREC).set(_lia->get_real("R0").string());
|
||||
|
||||
// set sheet
|
||||
for (int i = 1; i <= 12; i++)
|
||||
{
|
||||
|
||||
if (!is_month_ok(i) || !look_lim(i))
|
||||
continue;
|
||||
|
||||
TToken_string* tt = new TToken_string(80);
|
||||
|
||||
tt->add(""); // questo e' il bottone
|
||||
tt->add(itoname(i));
|
||||
tt->add(abs(_lim->get_real("R0")).string());
|
||||
tt->add(_lim->get_real("R0").sign() < 0 ? "C" : "D");
|
||||
tt->add(_lim->get_real("R1").string());
|
||||
tt->add(abs(_lim->get_real("R5")).string());
|
||||
tt->add(_lim->get_real("R5").sign() < 0 ? "C" : "D");
|
||||
|
||||
sh.row(i-1) = (*tt);
|
||||
}
|
||||
|
||||
// calcola versamenti
|
||||
real versamenti[13];
|
||||
TDate date[13];
|
||||
|
||||
for (_del->first(); !_del->eof(); _del->next())
|
||||
{
|
||||
if (atol(*_del_ditta) != get_firm() ||
|
||||
atoi(*_del_anno) != _year)
|
||||
continue;
|
||||
|
||||
// TBC uso solo deleghe normali (tipo == 1) e acconti (tipo == 7)
|
||||
int tipod = atoi(*_del_tipo);
|
||||
if (tipod != 1 || tipod != 7)
|
||||
continue;
|
||||
|
||||
// somma versamenti nel mese adeguato
|
||||
int m = atoi(*_del_mese);
|
||||
|
||||
if (m >= 12)
|
||||
m = tipod == 7 ? 12 : 13;
|
||||
|
||||
versamenti[m-1] += _del->get_real("R0");
|
||||
date[m-1] = _del->get_date("D0");
|
||||
}
|
||||
|
||||
TString nomemese(26);
|
||||
|
||||
for (i = 1; i <= 13; i++)
|
||||
{
|
||||
if (!is_month_ok(i))
|
||||
continue;
|
||||
|
||||
TToken_string* tt = new TToken_string(80);
|
||||
nomemese = itoname(i == 13 ? 12 : i);
|
||||
|
||||
if (i == 12) nomemese << " acconto";
|
||||
if (i == 13) nomemese << " saldo";
|
||||
|
||||
tt->add(""); // questo e' il bottone
|
||||
tt->add(nomemese); // mese
|
||||
tt->add(date[i-1].string()); // data vers.
|
||||
tt->add(""); // TBI azienda
|
||||
tt->add(""); // TBI dipendenza
|
||||
tt->add(""); // TBI concessionaria
|
||||
tt->add(versamenti[i-1].string());// versamenti
|
||||
tt->add(versamenti[i-1].sign() < 0 ? "C" : "D"); // debito/credito
|
||||
|
||||
sv.row(i-1) = (*tt);
|
||||
}
|
||||
|
||||
sh.disable();
|
||||
sv.disable();
|
||||
|
||||
m.run();
|
||||
_mask = NULL;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
bool Visliq_app::vis_one(int m)
|
||||
{
|
||||
TMask msk("cg5500d");
|
||||
|
||||
// ricalcolo liquidazione TMessage msg;
|
||||
TFilename f;
|
||||
f.temp();
|
||||
|
||||
TToken_string body(36);
|
||||
body.add(_year);
|
||||
body.add(m);
|
||||
body.add(get_firm());
|
||||
body.add("V"); // visualizzazione: no ff alla fine, zeri stampati
|
||||
body.add("");
|
||||
body.add(f);
|
||||
|
||||
TMessage msg("cg4 -2", "RCL", body);
|
||||
msg.send();
|
||||
|
||||
TBrowsefile_field& brw = (TBrowsefile_field&)msk.field(F_VISFLQ);
|
||||
brw.set_link_handler(link_handler);
|
||||
brw.enable_link("Modifica: ", 'r');
|
||||
|
||||
look_lim(m);
|
||||
real rimborso = _lim->get_real("R1");
|
||||
real rettifica = _lim->get_real("R5");
|
||||
TString desc1(_lim->get("S0"));
|
||||
TString desc2(_lim->get("S1"));
|
||||
real acconto;
|
||||
|
||||
if (m == 12)
|
||||
{
|
||||
look_lia();
|
||||
acconto = _lia->get_real("R4");
|
||||
}
|
||||
|
||||
msk.field(F_RIMBORSO).set(rimborso.string());
|
||||
if (rettifica.sign() < 0)
|
||||
{
|
||||
msk.field(F_RETTIFICA).set(abs(rettifica).string());
|
||||
msk.field(F_DEBCRE).set("C");
|
||||
}
|
||||
else
|
||||
{
|
||||
msk.field(F_RETTIFICA).set(rettifica.string());
|
||||
msk.field(F_DEBCRE).set("D");
|
||||
}
|
||||
msk.field(F_DESCR1).set(desc1);
|
||||
msk.field(F_DESCR2).set(desc1);
|
||||
msk.field(F_ACCONTO).set(acconto.string());
|
||||
|
||||
long line;
|
||||
|
||||
TExternal_app liq("cg4 -2");
|
||||
{
|
||||
TProgind(10l,"Estrazione liquidazione\nPrego attendere", FALSE,FALSE);
|
||||
liq.run();
|
||||
|
||||
if (liq.error())
|
||||
{
|
||||
beep();
|
||||
return FALSE;
|
||||
}
|
||||
line = brw.set_text(f, "CALCOLO LIQUIDAZIONE D'IMPOSTA");
|
||||
|
||||
if (line != -1)
|
||||
brw.goto_pos(line-1l, 9);
|
||||
msk.run();
|
||||
}
|
||||
|
||||
remove(f);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int cg5500(int argc, char* argv[])
|
||||
{
|
||||
Visliq_app app;
|
||||
app.run(argc, argv, "Visualizzazione Liquidazione");
|
||||
return 0;
|
||||
}
|
||||
|
35
cg/cg5500a.h
35
cg/cg5500a.h
@ -1,16 +1,19 @@
|
||||
#define F_CODDITTA 101
|
||||
#define F_RAGSOC 102
|
||||
#define F_MONTHS 103
|
||||
#define F_TRIMS 104
|
||||
#define F_YEAR 105
|
||||
#define F_VISLIQ1 106
|
||||
#define F_VISLIQ2 107
|
||||
#define F_CREDPREC 108
|
||||
#define F_VISFLQ 109
|
||||
#define F_ACCONTO 110
|
||||
#define F_RIMBORSO 111
|
||||
#define F_RETTIFICA 112
|
||||
#define F_DESCR1 113
|
||||
#define F_DESCR2 114
|
||||
#define F_DEBCRE 115
|
||||
|
||||
#define F_CODDITTA 101
|
||||
#define F_RAGSOC 102
|
||||
#define F_MONTHS 103
|
||||
#define F_TRIMS 104
|
||||
#define F_YEAR 105
|
||||
#define F_VISLIQ1 106
|
||||
#define F_VISLIQ2 107
|
||||
#define F_CREDPREC 108
|
||||
#define F_VISFLQ 109
|
||||
#define F_ACCONTO 110
|
||||
#define F_RIMBORSO 111
|
||||
#define F_RETTIFICA 112
|
||||
#define F_DESCR1 113
|
||||
#define F_DESCR2 114
|
||||
#define F_DEBCRE 115
|
||||
|
||||
#define F_CODDITTA2 201
|
||||
#define F_RAGSOC2 202
|
||||
|
||||
|
@ -15,14 +15,19 @@ END
|
||||
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 2 2 "Codice ditta "
|
||||
FLAGS "DF"
|
||||
PROMPT 2 2 "Codice "
|
||||
FLAGS "DFR"
|
||||
USE LF_NDITTE KEY 1
|
||||
INPUT CODDITTA F_CODDITTA
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
OUTPUT F_RAGSOC2 RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
NUMBER F_RAGSOC 37 50
|
||||
STRING F_RAGSOC 37 50
|
||||
BEGIN
|
||||
PROMPT 22 2 "Ragione sociale "
|
||||
FLAGS "DF"
|
||||
PROMPT 16 2 "Rag. soc. "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_CREDPREC 15
|
||||
@ -52,16 +57,16 @@ BEGIN
|
||||
PROMPT 0 1 "@bDitta corrente"
|
||||
END
|
||||
|
||||
NUMBER F_CODDITTA 5
|
||||
NUMBER F_CODDITTA2 5
|
||||
BEGIN
|
||||
PROMPT 2 2 "Codice ditta "
|
||||
FLAGS "DF"
|
||||
PROMPT 2 2 "Codice "
|
||||
FLAGS "DFR"
|
||||
END
|
||||
|
||||
NUMBER F_RAGSOC 37 50
|
||||
STRING F_RAGSOC2 37 50
|
||||
BEGIN
|
||||
PROMPT 22 2 "Ragione sociale "
|
||||
FLAGS "DF"
|
||||
PROMPT 16 2 "Rag. soc. "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
SPREADSHEET F_VISLIQ2 80 11
|
||||
@ -80,14 +85,9 @@ END
|
||||
ENDPAGE
|
||||
ENDMASK
|
||||
|
||||
PAGE "Prospetto mensile" -1 -1 50 7
|
||||
PAGE "Prospetto mensile" -1 -1 50 10
|
||||
|
||||
BUTTON 101
|
||||
BEGIN
|
||||
PROMPT -11 -2 "DIO CAIMANO"
|
||||
END
|
||||
|
||||
LIST 102
|
||||
STRING 102 10
|
||||
BEGIN
|
||||
PROMPT 1 2 "Mese "
|
||||
END
|
||||
@ -95,12 +95,12 @@ END
|
||||
|
||||
NUMBER 103 15 0
|
||||
BEGIN
|
||||
PROMPT 1 4 "Risultato "
|
||||
PROMPT 1 3 "Risultato "
|
||||
END
|
||||
|
||||
LIST 104 2 0
|
||||
LIST 104 1 8
|
||||
BEGIN
|
||||
PROMPT 1 5 "Importo a "
|
||||
PROMPT 1 4 "Importo a "
|
||||
ITEM "D|Debito"
|
||||
ITEM "C|Credito"
|
||||
INPUT 105
|
||||
@ -109,7 +109,7 @@ END
|
||||
|
||||
NUMBER 105 15
|
||||
BEGIN
|
||||
PROMPT 22 6 "IVA a rimborso "
|
||||
PROMPT 22 5 "IVA a rimborso "
|
||||
END
|
||||
|
||||
NUMBER 106 15
|
||||
@ -117,37 +117,32 @@ BEGIN
|
||||
PROMPT 22 6 "Debito/Credito "
|
||||
END
|
||||
|
||||
LIST 107 2 0
|
||||
LIST 107 1 8
|
||||
BEGIN
|
||||
PROMPT 1 5 "Importo a "
|
||||
PROMPT 1 7 "Importo a "
|
||||
ITEM "D|Debito"
|
||||
ITEM "C|Credito"
|
||||
INPUT 105
|
||||
OUTPUT 105
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 10 2
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BUTTON 101 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
PROMPT -22 -1 "Calcola"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
||||
|
||||
PAGE "Prospetto versamenti" -1 -1 50 7
|
||||
|
||||
PAGE "Prospetto versamenti" -1 -1 50 12
|
||||
|
||||
|
||||
BUTTON 101
|
||||
BEGIN
|
||||
PROMPT -11 -2 "DIO CANGURO"
|
||||
END
|
||||
|
||||
LIST 102
|
||||
STRNG 102 10
|
||||
BEGIN
|
||||
PROMPT 1 2 "Mese "
|
||||
END
|
||||
@ -177,24 +172,26 @@ BEGIN
|
||||
PROMPT 1 4 "Versamenti "
|
||||
END
|
||||
|
||||
LIST 108 2 0
|
||||
LIST 108 1 8
|
||||
BEGIN
|
||||
PROMPT 1 5 "Importo a "
|
||||
PROMPT 1 9 "Importo a "
|
||||
ITEM "D|Debito"
|
||||
ITEM "C|Credito"
|
||||
INPUT 105
|
||||
OUTPUT 105
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 10 2
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BUTTON 101 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
PROMPT -22 -1 "Calcola"
|
||||
END
|
||||
|
||||
|
||||
|
||||
|
||||
ENDPAGE
|
||||
|
@ -16,13 +16,17 @@ END
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 2 2 "Codice ditta "
|
||||
FLAGS "DF"
|
||||
FLAGS "FRD"
|
||||
USE LF_NDITTE KEY 1
|
||||
INPUT CODDITTA F_CODDITTA
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
NUMBER F_RAGSOC 37 50
|
||||
STRING F_RAGSOC 37 50
|
||||
BEGIN
|
||||
PROMPT 22 2 "Ragione sociale "
|
||||
FLAGS "DF"
|
||||
PROMPT 22 2 "Rag. soc. "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_CREDPREC 15
|
||||
@ -59,14 +63,9 @@ END
|
||||
ENDPAGE
|
||||
ENDMASK
|
||||
|
||||
PAGE "Prospetto mensile" -1 -1 50 7
|
||||
PAGE "Prospetto mensile" -1 -1 50 10
|
||||
|
||||
BUTTON 101 10 2
|
||||
BEGIN
|
||||
PROMPT -13 -1 "CAIMANO"
|
||||
END
|
||||
|
||||
LIST 102
|
||||
STRING 102 10
|
||||
BEGIN
|
||||
PROMPT 1 2 "Mese "
|
||||
END
|
||||
@ -74,12 +73,12 @@ END
|
||||
|
||||
NUMBER 103 15 0
|
||||
BEGIN
|
||||
PROMPT 1 4 "Risultato "
|
||||
PROMPT 1 3 "Risultato "
|
||||
END
|
||||
|
||||
LIST 104 2 0
|
||||
LIST 104 1 8
|
||||
BEGIN
|
||||
PROMPT 1 5 "Importo a "
|
||||
PROMPT 1 4 "Importo a "
|
||||
ITEM "D|Debito"
|
||||
ITEM "C|Credito"
|
||||
INPUT 105
|
||||
@ -88,7 +87,7 @@ END
|
||||
|
||||
NUMBER 105 15
|
||||
BEGIN
|
||||
PROMPT 22 6 "IVA a rimborso "
|
||||
PROMPT 22 5 "IVA a rimborso "
|
||||
END
|
||||
|
||||
NUMBER 106 15
|
||||
@ -96,68 +95,63 @@ BEGIN
|
||||
PROMPT 22 6 "Debito/Credito "
|
||||
END
|
||||
|
||||
LIST 107 2 0
|
||||
LIST 107 1 8
|
||||
BEGIN
|
||||
PROMPT 1 5 "Importo a "
|
||||
PROMPT 1 7 "Importo a "
|
||||
ITEM "D|Debito"
|
||||
ITEM "C|Credito"
|
||||
INPUT 105
|
||||
OUTPUT 105
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 10 2
|
||||
BEGIN
|
||||
PROMPT -23 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -33 -1 ""
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON 101 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 "Calcola"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
||||
|
||||
PAGE "Prospetto versamenti" -1 -1 50 7
|
||||
PAGE "Prospetto versamenti" -1 -1 50 12
|
||||
|
||||
BUTTON 101 10 2
|
||||
BEGIN
|
||||
PROMPT -13 -1 "CANGURO"
|
||||
END
|
||||
|
||||
LIST 102
|
||||
STRING 102 10
|
||||
BEGIN
|
||||
PROMPT 1 2 "Mese "
|
||||
END
|
||||
|
||||
DATE 103
|
||||
BEGIN
|
||||
PROMPT 1 5 "Data "
|
||||
PROMPT 1 3 "Data "
|
||||
END
|
||||
|
||||
STRING 104 5
|
||||
BEGIN
|
||||
PROMPT 1 6 "Azienda "
|
||||
PROMPT 1 4 "Azienda "
|
||||
END
|
||||
|
||||
STRING 105 5
|
||||
BEGIN
|
||||
PROMPT 1 7 "Dipendenza "
|
||||
PROMPT 1 5 "Dipendenza "
|
||||
END
|
||||
|
||||
STRING 106 5
|
||||
BEGIN
|
||||
PROMPT 1 8 "Concessionaria "
|
||||
PROMPT 1 6 "Concessionaria "
|
||||
END
|
||||
|
||||
NUMBER 107 15 0
|
||||
BEGIN
|
||||
PROMPT 1 4 "Versamenti "
|
||||
PROMPT 1 7 "Versamenti "
|
||||
END
|
||||
|
||||
LIST 108 2 0
|
||||
LIST 108 1 8
|
||||
BEGIN
|
||||
PROMPT 1 5 "Importo a "
|
||||
PROMPT 1 8 "Importo a "
|
||||
ITEM "D|Debito"
|
||||
ITEM "C|Credito"
|
||||
INPUT 105
|
||||
@ -166,12 +160,17 @@ END
|
||||
|
||||
BUTTON DLG_CANCEL 10 2
|
||||
BEGIN
|
||||
PROMPT -23 -1 ""
|
||||
PROMPT -13 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -33 -1 ""
|
||||
PROMPT -23 -1 ""
|
||||
END
|
||||
|
||||
BUTTON 101 10 2
|
||||
BEGIN
|
||||
PROMPT -33 -1 "Calcola"
|
||||
END
|
||||
|
||||
|
||||
|
@ -15,14 +15,18 @@ END
|
||||
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 2 1 "Codice ditta "
|
||||
FLAGS "DF"
|
||||
PROMPT 2 1 "Codice "
|
||||
FLAGS "FRD"
|
||||
USE LF_NDITTE KEY 1
|
||||
INPUT CODDITTA F_CODDITTA
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
NUMBER F_RAGSOC 37 50
|
||||
STRING F_RAGSOC 37 50
|
||||
BEGIN
|
||||
PROMPT 22 1 "Ragione sociale "
|
||||
FLAGS "DF"
|
||||
PROMPT 16 1 "Rag. soc. "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
|
||||
|
@ -8,7 +8,6 @@
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <isam.h>
|
||||
#include <date.h>
|
||||
#include <saldi.h>
|
||||
#include <utility.h>
|
||||
|
||||
|
@ -1,4 +1,3 @@
|
||||
|
||||
// TRigaiva_array
|
||||
// Tabella per il calcolo degli imponibili Iva
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user