770 2015 dopo controlli 770 semplificato dell'agenzia delle entrate
git-svn-id: svn://10.65.10.50/branches/R_10_00@23101 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
66243e8aaa
commit
a04851fc0d
@ -278,21 +278,27 @@ void TSchedaPercipienti::calcola_riga_pag(TRectype& rec,
|
||||
{
|
||||
const int fdec = TCurrency::get_firm_dec();
|
||||
real compenso = rec.get_real(PAG_COMPENSO);
|
||||
real impcpa = (compenso * h_PercCassaPrev) / (CENTO + h_PercCassaPrev); impcpa.round(fdec); // calcolo CPA
|
||||
real impcpa = (compenso * h_PercCassaPrev) / (CENTO + h_PercCassaPrev); impcpa.round(fdec); // calcolo CPA
|
||||
rec.put(PAG_IMPCPA, impcpa);
|
||||
real imponibile = ((compenso - impcpa) * h_PercAssImp) / CENTO; imponibile.round(fdec); // calcolo imponibile
|
||||
real imponibile = ((compenso - impcpa) * h_PercAssImp) / CENTO; imponibile.round(fdec); // calcolo imponibile
|
||||
rec.put(PAG_IMPONIBILE, imponibile);
|
||||
real ritlorda = (imponibile * h_PercRitenuta) / CENTO; ritlorda.round(fdec); // calcolo ritenuta lorda
|
||||
real ritlorda = (imponibile * h_PercRitenuta) / CENTO; ritlorda.round(fdec); // calcolo ritenuta lorda
|
||||
rec.put(PAG_RITLORDA, ritlorda);
|
||||
const real detfamil = rec.get_real(PAG_DETFAMIL);
|
||||
const real detlavdip = rec.get_real(PAG_DETLAVDIP);
|
||||
const real totdet = detfamil + detlavdip;
|
||||
const real ritenuta = totdet > ritlorda ? ZERO : ritlorda - totdet;
|
||||
rec.put(PAG_RITENUTA, ritenuta);
|
||||
real ctssncomp = (((compenso * h_PercAssImpInps) / CENTO) * h_PercInps) / CENTO; ctssncomp.round(fdec); // calcolo contributo Inps complessivo
|
||||
rec.put(PAG_INPSCOMP, ctssncomp);
|
||||
real ctssnperc = (h_PercCommitInps == ZERO) ? ctssncomp - ((ctssncomp * 2) / 3) : ctssncomp - ((ctssncomp * h_PercCommitInps) / CENTO); ctssnperc.round(fdec); // calcolo contributo Inps del percipiente
|
||||
rec.put(PAG_INPSPERC, ctssnperc);
|
||||
|
||||
real ctssncomp = (((compenso * h_PercAssImpInps) / CENTO) * h_PercInps) / CENTO;
|
||||
ctssncomp.round(fdec); // calcolo contributo Inps complessivo
|
||||
rec.put(PAG_INPSCOMP, ctssncomp);
|
||||
|
||||
real ctssnperc = h_PercCommitInps.is_zero() ? ctssncomp - ((ctssncomp * 2) / 3)
|
||||
: ctssncomp - ((ctssncomp * h_PercCommitInps) / CENTO);
|
||||
ctssnperc.round(fdec); // calcolo contributo Inps del percipiente
|
||||
|
||||
rec.put(PAG_INPSPERC, ctssnperc);
|
||||
real utpagati = rec.get_real(PAG_UTPAGATI);
|
||||
if (abs(utpagati) > abs(imponibile))
|
||||
utpagati = imponibile;
|
||||
|
@ -22,7 +22,7 @@
|
||||
#include "rpag.h"
|
||||
#include "scperc.h"
|
||||
|
||||
TString _quadronuovo;
|
||||
static TString4 _quadronuovo;
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// Righe pagamento delle schede percipienti
|
||||
@ -70,7 +70,7 @@ const TRectype* TRighe_pagamento::prospetto_e1(char caus)
|
||||
|
||||
void TRighe_pagamento::add_riga(const TRectype& scheda, const TRectype& riga)
|
||||
{
|
||||
TString chiave;
|
||||
TString16 chiave;
|
||||
|
||||
const char causqua = toupper(scheda.get_char(SPR_CAUSQUA));
|
||||
chiave << causqua;
|
||||
@ -735,7 +735,7 @@ void TQuadroC_E2::genera_la(TRectype& quadro, const TRectype& riga) const
|
||||
ammlordo += riga.get_real(PAG_SOMNSRIT);
|
||||
ammlordo += riga.get_real(PAG_CONTROBB);
|
||||
ammlordo += riga.get_real(PAG_SOMREGCONV);
|
||||
quadro.put(QUD_TOTALE, ammlordo); // AUXXX021
|
||||
quadro.put(QUD_TOTALE, ammlordo);
|
||||
|
||||
real somme = riga.get_real(PAG_COMPENSO);
|
||||
somme -= imponibile;
|
||||
@ -744,8 +744,8 @@ void TQuadroC_E2::genera_la(TRectype& quadro, const TRectype& riga) const
|
||||
somme -= riga.get_real(PAG_SOMREGCONV);
|
||||
quadro.put(QUD_SOMME, somme);
|
||||
|
||||
quadro.put(QUD_SOMREGCONV, riga.get(PAG_SOMREGCONV)); // AUXXX022
|
||||
quadro.put(QUD_IMPONIBILE, imponibile); // AUXXX024
|
||||
quadro.put(QUD_SOMREGCONV, riga.get(PAG_SOMREGCONV));
|
||||
quadro.put(QUD_IMPONIBILE, imponibile); // AUXXX008
|
||||
quadro.put(QUD_IMPORTO, riga.get(PAG_RITENUTA));
|
||||
|
||||
const real inps_tot = riga.get(PAG_INPSCOMP);
|
||||
@ -755,8 +755,8 @@ void TQuadroC_E2::genera_la(TRectype& quadro, const TRectype& riga) const
|
||||
inps_perc = riga.get_real(PAG_INPSPERC);
|
||||
inps_erog = inps_tot - inps_perc;
|
||||
}
|
||||
quadro.put(QUD_CTINPSEROG, inps_erog); // AUXXX033
|
||||
quadro.put(QUD_CTINPSPERC, inps_perc); // AUXXX034
|
||||
quadro.put(QUD_CTINPSEROG, inps_erog); // AUXXX020
|
||||
quadro.put(QUD_CTINPSPERC, inps_perc); // AUXXX021
|
||||
|
||||
genera_aliquota(quadro, QUD_PERC, QUD_IMPONIBILE, QUD_IMPORTO);
|
||||
}
|
||||
@ -892,7 +892,7 @@ void TQuadroC_E2::generazione()
|
||||
const TRectype& scheda = cur.curr();
|
||||
const TRectype& riga = cur.curr(LF_RPAG);
|
||||
|
||||
TProgress_monitor pi(items, TR("Generazione da schede."));
|
||||
TProgress_monitor pi(items, TR("Generazione da schede"));
|
||||
|
||||
distruzione();
|
||||
|
||||
|
@ -185,11 +185,12 @@ bool TGenera::azzera_quadroL()
|
||||
|
||||
TString scritta;
|
||||
scritta.format("Azzeramento quadro ST per la ditta %ld", _codditta);
|
||||
TProgind progn(cl_items, scritta, FALSE, TRUE);
|
||||
TProgind progn(cl_items, scritta, false);
|
||||
|
||||
for (cl=0; cl.pos() < cl_items; ++cl)
|
||||
{
|
||||
progn.addstatus(1);
|
||||
if (!progn.addstatus(1))
|
||||
break;
|
||||
|
||||
// solo quelli dell'anno dichiarazione
|
||||
if (curr.get_int(QUL_QLAP) != _annodic)
|
||||
@ -204,7 +205,7 @@ bool TGenera::azzera_quadroL()
|
||||
rl.remove();
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
void TGenera::dati_rver(TLocalisamfile& rver,TSchedaP& sch, long numvers)
|
||||
@ -461,7 +462,7 @@ class TGenera_versamenti : public TApplication
|
||||
virtual bool menu(MENU_TAG m);
|
||||
virtual bool destroy();
|
||||
|
||||
TGenera& genera() { return *_genera; }
|
||||
TGenera& genera() { return *_genera; }
|
||||
|
||||
public:
|
||||
TGenera_versamenti(char livello = 'S') : _liv(toupper(livello)) {}
|
||||
@ -472,13 +473,12 @@ TGenera_versamenti& app() { return (TGenera_versamenti&)main_app(); }
|
||||
|
||||
bool TGenera_versamenti::menu(MENU_TAG m)
|
||||
{
|
||||
long codditta, codditta_prec;
|
||||
int i = 0;
|
||||
TConfig cnf_user(CONFIG_USER);
|
||||
|
||||
if (m == BAR_ITEM_ID(1))
|
||||
{
|
||||
codditta_prec = get_firm_770();
|
||||
TConfig cnf_user(CONFIG_USER, _section);
|
||||
const long codditta_prec = get_firm_770();
|
||||
int i = 0;
|
||||
long codditta = 0;
|
||||
while ((codditta = cnf_user.get_long(DITTE_SEL, _section, i++)) != 0L)
|
||||
{
|
||||
set_firm_770(codditta);
|
||||
@ -486,10 +486,9 @@ bool TGenera_versamenti::menu(MENU_TAG m)
|
||||
break;
|
||||
}
|
||||
set_firm_770(codditta_prec);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
bool TGenera_versamenti::create()
|
||||
|
@ -4,11 +4,11 @@
|
||||
|
||||
int main(int argc,char** argv)
|
||||
{
|
||||
const int n = (argc > 1) ? atoi(argv[1]+1) : -1;
|
||||
const int n = argc>1 ? *argv[1]-'0' : 0;
|
||||
switch(n)
|
||||
{
|
||||
case 1: m777200(argc, argv); break;
|
||||
default: m777100(argc, argv); break;
|
||||
case 1: m777200(argc, argv); break; // C.U.
|
||||
default: m777100(argc, argv); break; // 770
|
||||
}
|
||||
return 0;
|
||||
}
|
114
m770/777100.cpp
114
m770/777100.cpp
@ -28,7 +28,7 @@
|
||||
// Utility
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
const int ANNO_DIC = 2014;
|
||||
const int ANNO_PAG = 2014;
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TForm770
|
||||
@ -131,26 +131,39 @@ public:
|
||||
|
||||
bool TForm770::validate(TForm_item &cf, TToken_string &s)
|
||||
{
|
||||
const TString code(s.get(0)); // prende il primo parametro, il codice del messaggio
|
||||
const TFixed_string code = s.get(0); // prende il primo parametro, il codice del messaggio
|
||||
if (code == "_PERIODO_RIF")
|
||||
{
|
||||
const TRectype& curr = relation()->curr();
|
||||
const int anno = curr.get_int("QLAP");
|
||||
const int mese = curr.get_int("QLMP");
|
||||
TString8 str;
|
||||
str.format("%02d%04d", mese, anno);
|
||||
TString8 str; str.format("%02d%04d", mese, anno);
|
||||
cf.set(str);
|
||||
return true;
|
||||
}
|
||||
if (code == "_PROVINCIA")
|
||||
{
|
||||
const TString& prov = cf.get();
|
||||
const TFixed_string prov = cf.get();
|
||||
if (prov == "EE") // Il 770 non gradisce la provincia EE associata agli stati esteri
|
||||
cf.set(""); else
|
||||
if (prov == "FO") // Ci sono ancora vecchie province :-(
|
||||
cf.set("FC");
|
||||
return true;
|
||||
}
|
||||
if (code == "_SOLO_CAUS_M")
|
||||
{
|
||||
const TRectype& curr = relation()->curr();
|
||||
if (!curr.get("CAUSALE").starts_with("M") || curr.get_real("IMPONIBILE") <= 5000)
|
||||
cf.set("");
|
||||
return true;
|
||||
}
|
||||
if (code == "_SOLO_CAUS_N")
|
||||
{
|
||||
const TRectype& curr = relation()->curr();
|
||||
if (curr.get("CAUSALE") != "N")
|
||||
cf.set("");
|
||||
return true;
|
||||
}
|
||||
|
||||
return TForm::validate(cf, s);
|
||||
}
|
||||
@ -398,12 +411,14 @@ TRecnotype TForm770::trasfer(long codditta, TTrasferimento770& file, char rectyp
|
||||
region.put(BSE_CODDITTA, codditta);
|
||||
cur.setregion(region, region);
|
||||
|
||||
if (region.num() == LF_QUADRO_ST)
|
||||
TString16 filter;
|
||||
switch (region.num())
|
||||
{
|
||||
TString16 filter;
|
||||
filter.format("QLAP=%d", ANNO_DIC);
|
||||
cur.setfilter(filter);
|
||||
case LF_QUADRO_ST: filter.format("QLAP=%d", ANNO_PAG); break;
|
||||
case LF_QUALA : filter.format("ANNO=%d", ANNO_PAG); break;
|
||||
default: break;
|
||||
}
|
||||
cur.setfilter(filter);
|
||||
|
||||
const TRecnotype items = cur.items();
|
||||
if (items > 0) // Se c'e almeno un record ...
|
||||
@ -639,12 +654,11 @@ const TString& TTrasferimento770::read_codfis_dic(const TRectype& rec)
|
||||
_codatt_dic = rec_nditte.get(NDT_CODATTPREV); // Codice attivita' prevalente
|
||||
key.add(_codatt_dic); // key = CODDITTA|CODATTPREV
|
||||
const TRectype& attiv = _cache770.get(LF_ATTIV, key);
|
||||
if (attiv.exist(ATT_CODATECO)) // Non e' detto che il campo esista sempre
|
||||
{
|
||||
const TString& codateco = attiv.get(ATT_CODATECO);
|
||||
if (codateco.full())
|
||||
_codatt_dic = codateco;
|
||||
}
|
||||
const TString& codateco = attiv.get(ATT_CODATECO);
|
||||
if (codateco.full())
|
||||
_codatt_dic = codateco;
|
||||
else
|
||||
error_box(TR("Non esiste il codice attività ATECO"));
|
||||
|
||||
const TAnagrafica dich(LF_ANAG, _tipoa_dic, _codan_dic);
|
||||
if (!dich.ok())
|
||||
@ -660,8 +674,8 @@ const TString& TTrasferimento770::read_codfis_dic(const TRectype& rec)
|
||||
TRecnotype TTrasferimento770::conta_certificazioni() const
|
||||
{
|
||||
TString query;
|
||||
query.format("USE %d\nFROM CODDITTA=%ld\nTO CODDITTA=%ld",
|
||||
LF_QUALA, _cod_ditta, _cod_ditta);
|
||||
query.format("USE %d SELECT ANNO=%d\nFROM CODDITTA=%ld\nTO CODDITTA=%ld",
|
||||
LF_QUALA, ANNO_PAG,_cod_ditta, _cod_ditta);
|
||||
TISAM_recordset recset(query);
|
||||
const TRecnotype nc = recset.items();
|
||||
return nc;
|
||||
@ -672,7 +686,7 @@ bool TTrasferimento770::casella_prospetto_st() const
|
||||
// Il quadro ST e' il "vecchio" quadro L
|
||||
TString query;
|
||||
query.format("USE %d\nSELECT QLAP=%d\nFROM CODDITTA=%ld\nTO CODDITTA=%ld",
|
||||
LF_QUADRO_ST, ANNO_DIC, _cod_ditta, _cod_ditta);
|
||||
LF_QUADRO_ST, ANNO_PAG, _cod_ditta, _cod_ditta);
|
||||
TISAM_recordset recset(query);
|
||||
const TRecnotype nr = recset.items();
|
||||
return nr > 0;
|
||||
@ -683,7 +697,7 @@ bool TTrasferimento770::casella_prospetto_sx() const
|
||||
// Il quadro SX sono le ritenute versate in eccesso
|
||||
TString query;
|
||||
query.format("USE %d\nSELECT QLAP=%d\nFROM CODDITTA=%ld\nTO CODDITTA=%ld",
|
||||
LF_QUADRO_ST, ANNO_DIC, _cod_ditta, _cod_ditta);
|
||||
LF_QUADRO_ST, ANNO_PAG, _cod_ditta, _cod_ditta);
|
||||
TISAM_recordset recset(query);
|
||||
bool found = false;
|
||||
for (bool ok = recset.move_first(); ok && !found; ok = recset.move_next())
|
||||
@ -769,6 +783,9 @@ bool TTrasferimento770::append_record_b()
|
||||
rec.set(134, rec_rap.data_nascita());
|
||||
rec.set(135, rec_rap.comune_nascita());
|
||||
rec.set(136, rec_rap.provincia_nascita());
|
||||
|
||||
if (rec_rap.comune_nascita().blank())
|
||||
cantread_box("dati nascita legale rappresentante");
|
||||
}
|
||||
else
|
||||
cantread_box("dati del legale rappresentante");
|
||||
@ -830,18 +847,18 @@ void TTrasferimento770::riepiloga_ss(const TRecord770& rec, TArray& riep_ss) con
|
||||
{
|
||||
TString8 code;
|
||||
real val;
|
||||
for (int i = 0; rec.np_get_real(i, code, val); i++) if (code.starts_with("AU") && !val.is_zero())
|
||||
for (int i = 0; rec.np_get_real(i, code, val); i++) if (code.starts_with("AU") && code[5] != 'A' && !val.is_zero())
|
||||
{
|
||||
const TString& key = code.right(3);
|
||||
const int num = atoi(key);
|
||||
if (num >= 27 && num <= 35)
|
||||
if (num >= 9 && num <= 17)
|
||||
{
|
||||
real& r = real_at(riep_ss, num-27); // AU_27-AU_47 -> SS003001
|
||||
r += val;
|
||||
real& r = real_at(riep_ss, num-9); // AU_9 -AU_54 -> SS003001
|
||||
r += val; // AU_10-AU_55 -> SS003002
|
||||
} else
|
||||
if (num >= 47 && num <= 55)
|
||||
if (num >= 54 && num <= 62)
|
||||
{
|
||||
real& r = real_at(riep_ss, num-47);
|
||||
real& r = real_at(riep_ss, num-54);
|
||||
r -= val;
|
||||
}
|
||||
}
|
||||
@ -874,10 +891,10 @@ bool TTrasferimento770::split(const char* path)
|
||||
TRecord770 rec;
|
||||
|
||||
unsigned long disk_size = 15*1024*1024; // Max 15 Mb per fornitura
|
||||
const bool magnetic = ::xvt_fsys_is_removable_drive(path) !=0;
|
||||
const bool magnetic = ::xvt_fsys_is_floppy_drive(path)!=0;
|
||||
if (magnetic)
|
||||
{
|
||||
if (!yesno_box(FR("Inserire il primo disco del trasferimento nell'unita' %s\n"
|
||||
if (!yesno_box(FR("Inserire il primo disco del trasferimento nell'unità %s\n"
|
||||
"Tutti i dischi devono essere vuoti ed avere la stesso formato.\n"
|
||||
"Si desidera iniziare il trasferimento?"), path))
|
||||
return false;
|
||||
@ -887,7 +904,7 @@ bool TTrasferimento770::split(const char* path)
|
||||
const long records_per_disk = long(disk_size / TOTAL_SIZE) - 3; // Tolgo A,B,Z
|
||||
const int volumes = int((records-1)/records_per_disk)+1;
|
||||
|
||||
TProgind pi(records, TR("Generazione file trasferimento"), false, true);
|
||||
TProgress_monitor pi(records, TR("Generazione file trasferimento"));
|
||||
|
||||
// Read from start
|
||||
open("", 'r');
|
||||
@ -933,7 +950,7 @@ bool TTrasferimento770::split(const char* path)
|
||||
{
|
||||
while (read(rec))
|
||||
{
|
||||
pi.addstatus(1);
|
||||
pi.add_status();
|
||||
|
||||
const char tipo_rec = rec.tipo_record();
|
||||
if (tipo_rec <= 'A' || tipo_rec == 'F' || tipo_rec == 'J' || tipo_rec >= 'Z')
|
||||
@ -1029,7 +1046,7 @@ void TTrasferimento770::remove()
|
||||
}
|
||||
|
||||
TTrasferimento770::TTrasferimento770(const char* path, char mode, int volume)
|
||||
: _in_stream(NULL), _out_stream(NULL), _save_headers(false), _centesimi(false)
|
||||
: _in_stream(NULL), _out_stream(NULL), _save_headers(false), _centesimi(false)
|
||||
{
|
||||
open(path, mode, volume);
|
||||
}
|
||||
@ -1050,6 +1067,7 @@ protected:
|
||||
|
||||
public:
|
||||
TTransfer770_msk();
|
||||
~TTransfer770_msk();
|
||||
};
|
||||
|
||||
bool TTransfer770_msk::on_field_event(TOperable_field& of, TField_event fe, long jolly)
|
||||
@ -1072,16 +1090,34 @@ bool TTransfer770_msk::on_field_event(TOperable_field& of, TField_event fe, long
|
||||
|
||||
TTransfer770_msk::TTransfer770_msk() : TAutomask("777100a")
|
||||
{
|
||||
/*
|
||||
int anno = ini_get_int(CONFIG_STUDIO, "77", ANNO_SEL);
|
||||
if (anno <= 0)
|
||||
set(F_ANNOPAG, ANNO_PAG);
|
||||
set(F_ANNODIC, ANNO_PAG+1);
|
||||
set(F_NOHEADERS,ini_get_bool(CONFIG_STUDIO, "77", "SaveDataOnly", false));
|
||||
set(F_PATH, ini_get_string(CONFIG_STUDIO, "77", "SavePath"));
|
||||
long ditta1 = ini_get_int (CONFIG_STUDIO, "77", "SaveFirm1", 0);
|
||||
long ditta2 = ini_get_int (CONFIG_STUDIO, "77", "SaveFirm2", 0);
|
||||
if (ditta1 <= 0 || ditta2 <= 0)
|
||||
{
|
||||
const TDate oggi(TODAY);
|
||||
anno = oggi.year()-1;
|
||||
TPointer_array d;
|
||||
prefix().firms(d);
|
||||
if (!d.empty())
|
||||
{
|
||||
if (ditta1 <= 0)
|
||||
ditta1 = d.get_long(0);
|
||||
if (ditta2 < ditta1)
|
||||
ditta2 = d.get_long(d.last());
|
||||
}
|
||||
}
|
||||
set(F_ANNO, anno);
|
||||
*/
|
||||
set(F_ANNO, ANNO_DIC);
|
||||
set(F_DADITTA, ditta1);
|
||||
set(F_ADITTA, ditta2);
|
||||
}
|
||||
|
||||
TTransfer770_msk::~TTransfer770_msk()
|
||||
{
|
||||
ini_set_bool (CONFIG_STUDIO, "77", "SaveDataOnly",get_bool(F_NOHEADERS));
|
||||
ini_set_string(CONFIG_STUDIO, "77", "SavePath", get(F_PATH));
|
||||
ini_set_int (CONFIG_STUDIO, "77", "SaveFirm1", get_long(F_DADITTA));
|
||||
ini_set_int (CONFIG_STUDIO, "77", "SaveFirm2", get_long(F_ADITTA));
|
||||
}
|
||||
|
||||
class TTransfer770_app : public TSkeleton_application
|
||||
@ -1098,7 +1134,7 @@ void TTransfer770_app::main_loop()
|
||||
{
|
||||
TFilename tmp; tmp.tempdir();
|
||||
TTrasferimento770 t(tmp, 'w');
|
||||
t.save_headers(m.get_bool(F_HEADERS));
|
||||
t.save_headers(!m.get_bool(F_NOHEADERS));
|
||||
t.set_cent_mode(m.get_bool(F_CENT));
|
||||
|
||||
TRelation rel_base(LF_BASE);
|
||||
|
@ -1,9 +1,10 @@
|
||||
#define F_PATH 102
|
||||
#define F_ANNO 104
|
||||
#define F_DADITTA 105
|
||||
#define F_DADESC 106
|
||||
#define F_ADITTA 107
|
||||
#define F_ADESC 108
|
||||
#define F_HEADERS 109
|
||||
#define F_CENT 110
|
||||
#define F_PATH 102
|
||||
#define F_ANNOPAG 103
|
||||
#define F_ANNODIC 104
|
||||
#define F_DADITTA 105
|
||||
#define F_DADESC 106
|
||||
#define F_ADITTA 107
|
||||
#define F_ADESC 108
|
||||
#define F_NOHEADERS 109
|
||||
#define F_CENT 110
|
||||
|
||||
|
@ -1,14 +1,20 @@
|
||||
#include "777100a.h"
|
||||
|
||||
PAGE "Invio 770" -1 -1 72 8
|
||||
PAGE "Invio 770" -1 -1 76 10
|
||||
|
||||
NUMBER F_ANNO 4
|
||||
NUMBER F_ANNOPAG 4
|
||||
BEGIN
|
||||
PROMPT 47 1 "Anno dichiarazione "
|
||||
PROMPT 49 0 "Anno pagamenti "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_PATH 260 53
|
||||
NUMBER F_ANNODIC 4
|
||||
BEGIN
|
||||
PROMPT 49 1 "Anno dichiarazione "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_PATH 260 58
|
||||
BEGIN
|
||||
PROMPT 1 2 "Destinazione "
|
||||
DSELECT
|
||||
@ -17,7 +23,7 @@ END
|
||||
|
||||
NUMBER F_DADITTA 5
|
||||
BEGIN
|
||||
PROMPT 1 3 "Da ditta "
|
||||
PROMPT 1 4 "Dalla ditta "
|
||||
USE LF_BASE
|
||||
JOIN LF_NDITTE INTO CODDITTA=CODDITTA
|
||||
INPUT CODDITTA F_DADITTA
|
||||
@ -27,17 +33,18 @@ BEGIN
|
||||
OUTPUT F_DADITTA CODDITTA
|
||||
OUTPUT F_DADESC LF_NDITTE->RAGSOC
|
||||
CHECKTYPE NORMAL
|
||||
ADD RUN ba4 -2
|
||||
END
|
||||
|
||||
STRING F_DADESC 50
|
||||
BEGIN
|
||||
PROMPT 20 3 ""
|
||||
PROMPT 22 4 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_ADITTA 5
|
||||
BEGIN
|
||||
PROMPT 1 4 "A ditta "
|
||||
PROMPT 1 5 "Alla ditta "
|
||||
COPY USE F_DADITTA
|
||||
INPUT CODDITTA F_ADITTA
|
||||
COPY DISPLAY F_DADITTA
|
||||
@ -46,22 +53,23 @@ BEGIN
|
||||
CHECKTYPE SEARCH
|
||||
NUM_EXPR (#F_ADITTA=0)||(#F_ADITTA>=#F_DADITTA)
|
||||
WARNING "La ditta finale deve seguire quella iniziale"
|
||||
ADD RUN ba4 -2
|
||||
END
|
||||
|
||||
STRING F_ADESC 50
|
||||
BEGIN
|
||||
PROMPT 20 4 ""
|
||||
PROMPT 22 5 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BOOLEAN F_HEADERS
|
||||
BOOLEAN F_NOHEADERS
|
||||
BEGIN
|
||||
PROMPT 1 6 "Genera record di testata (tipo A, B, Z)"
|
||||
PROMPT 1 7 "Generazione dei soli record dati (H,J) senza record di testata (A, B, Z)"
|
||||
END
|
||||
|
||||
BOOLEAN F_CENT
|
||||
BEGIN
|
||||
PROMPT 1 7 "Salva importi in centesimi (x 100)"
|
||||
PROMPT 1 8 "Salvataggio importi in centesimi (x 100)"
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
|
212
m770/77qla.frm
212
m770/77qla.frm
@ -40,7 +40,7 @@ BEGIN
|
||||
KEY "COD.FIS"
|
||||
PROMPT 10 1 ""
|
||||
FIELD 216@->COFI
|
||||
SPECIAL STRING TRASFER "AU001001" "AN"
|
||||
SPECIAL STRING TRASFER "AU001A01" "AN"
|
||||
END
|
||||
|
||||
STRINGA 2
|
||||
@ -48,7 +48,7 @@ BEGIN
|
||||
KEY "COGNOME"
|
||||
PROMPT 42 1 ""
|
||||
FIELD 216@->RAGSOC[1,30]
|
||||
SPECIAL STRING TRASFER "AU001002" "AN"
|
||||
SPECIAL STRING TRASFER "AU001A02" "AN"
|
||||
END
|
||||
|
||||
STRINGA 3
|
||||
@ -56,7 +56,7 @@ BEGIN
|
||||
KEY "NOME"
|
||||
PROMPT 22 3 ""
|
||||
FIELD 216@->RAGSOC[31,50]
|
||||
SPECIAL STRING TRASFER "AU001003" "AN"
|
||||
SPECIAL STRING TRASFER "AU001A03" "AN"
|
||||
END
|
||||
|
||||
STRINGA 4
|
||||
@ -64,7 +64,7 @@ BEGIN
|
||||
KEY "SESSO"
|
||||
PROMPT 57 3 ""
|
||||
FIELD 218@->SESSO
|
||||
SPECIAL STRING TRASFER "AU001004" "AN"
|
||||
SPECIAL STRING TRASFER "AU001A04" "AN"
|
||||
END
|
||||
|
||||
STRINGA 5
|
||||
@ -73,7 +73,7 @@ BEGIN
|
||||
PROMPT 63 3 ""
|
||||
FIELD 218@->DATANASC
|
||||
PICTURE "##^ ##^ ####"
|
||||
SPECIAL STRING TRASFER "AU001005" "DT"
|
||||
SPECIAL STRING TRASFER "AU001A05" "DT"
|
||||
END
|
||||
|
||||
STRINGA 6
|
||||
@ -81,7 +81,7 @@ BEGIN
|
||||
KEY "COMUNE DI NASCITA"
|
||||
PROMPT 79 3 ""
|
||||
FIELD 313@->DENCOM
|
||||
SPECIAL STRING TRASFER "AU001006" "AN"
|
||||
SPECIAL STRING TRASFER "AU001A06" "AN"
|
||||
END
|
||||
|
||||
STRINGA 7
|
||||
@ -89,273 +89,205 @@ BEGIN
|
||||
KEY "PROV DI NASCITA"
|
||||
PROMPT 126 3 ""
|
||||
FIELD 313@->PROVCOM
|
||||
SPECIAL STRING TRASFER "AU001007" "AN"
|
||||
SPECIAL STRING TRASFER "AU001A07" "AN"
|
||||
MESSAGE _PROVINCIA
|
||||
END
|
||||
|
||||
STRINGA 8
|
||||
STRINGA 20
|
||||
BEGIN
|
||||
KEY "COMUNE DI RESIDENZA FISCALE"
|
||||
PROMPT 25 5 ""
|
||||
FIELD 513@->DENCOM
|
||||
FIELD 413@->DENCOM
|
||||
SPECIAL STRING TRASFER "AU001008" "AN"
|
||||
GROUP 1
|
||||
SPECIAL STRING TRASFER "AU001A20" "AN"
|
||||
END
|
||||
|
||||
STRINGA 9
|
||||
STRINGA 21
|
||||
BEGIN
|
||||
KEY "PROV DI RESIDENZA FISCALE"
|
||||
PROMPT 126 3 ""
|
||||
FIELD 513@->PROVCOM
|
||||
FIELD 413@->PROVCOM
|
||||
GROUP 1
|
||||
SPECIAL STRING TRASFER "AU001009" "AN"
|
||||
MESSAGE _PROVINCIA
|
||||
MESSAGE _SOLO_CAUS_N
|
||||
SPECIAL STRING TRASFER "AU001A21" "AN"
|
||||
END
|
||||
|
||||
NUMBER 10
|
||||
STRINGA 22
|
||||
BEGIN
|
||||
KEY "CODICE REGIONE"
|
||||
KEY "CODICE COMUNE"
|
||||
PROMPT 78 5 ""
|
||||
FIELD 218@->CODREG96
|
||||
SPECIAL STRING TRASFER "AU001010" "NU"
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
STRINGA 12
|
||||
BEGIN
|
||||
KEY "CODICE COMUNE SOLO SE CAUSALE=N"
|
||||
PROMPT 78 5 ""
|
||||
SPECIAL STRING TRASFER "AU001011" "AN"
|
||||
FIELD 513@->COM
|
||||
FIELD 413@->COM
|
||||
SPECIAL STRING TRASFER "AU001A22" "AN"
|
||||
MESSAGE _SOLO_CAUS_N
|
||||
END
|
||||
|
||||
STRINGA 101
|
||||
BEGIN
|
||||
KEY "VIA RES. FISC."
|
||||
FIELD 216@->INDRF[1,35]
|
||||
FIELD 216@->INDRES[1,35]
|
||||
FLAGS "H"
|
||||
MESSAGE COPY,11
|
||||
END
|
||||
|
||||
STRINGA 102
|
||||
BEGIN
|
||||
KEY "NUM.CIV DI RESIDENZA FISC."
|
||||
FLAGS "H"
|
||||
FIELD 216@->CIVRF
|
||||
FIELD 216@->CIVRES
|
||||
MESSAGE APPEND,11
|
||||
END
|
||||
|
||||
STRINGA 11
|
||||
BEGIN
|
||||
KEY "VIA RF + NUMCIVRF"
|
||||
PROMPT 78 5 ""
|
||||
SPECIAL STRING TRASFER "AU001012" "AN"
|
||||
MESSAGE COPY,17
|
||||
END
|
||||
|
||||
STRINGA 15
|
||||
BEGIN
|
||||
KEY "CODICE FISCALE ESTERO"
|
||||
PROMPT 90 7 ""
|
||||
FIELD 216@->COFIEST
|
||||
SPECIAL STRING TRASFER "AU001015" "AN"
|
||||
MESSAGE EMPTY HIDE,15@
|
||||
MESSAGE SHOW,15@
|
||||
END
|
||||
|
||||
STRINGA 16
|
||||
BEGIN
|
||||
KEY "LOCALITA' ESTERA DI RES."
|
||||
PROMPT 75 7 ""
|
||||
SPECIAL STRING TRASFER "AU001016" "AN"
|
||||
GROUP 15
|
||||
END
|
||||
|
||||
STRINGA 17
|
||||
BEGIN
|
||||
KEY "INDIRIZZO DI RES. ESTERO"
|
||||
PROMPT 75 7 ""
|
||||
SPECIAL STRING TRASFER "AU001017" "AN"
|
||||
GROUP 15
|
||||
END
|
||||
|
||||
NUMERO 18
|
||||
BEGIN
|
||||
KEY "STATO ESTERO"
|
||||
PROMPT 75 7 ""
|
||||
FIELD 216@->STATORES
|
||||
SPECIAL STRING TRASFER "AU001018" "NU"
|
||||
GROUP 15
|
||||
END
|
||||
|
||||
STRINGA 19
|
||||
BEGIN
|
||||
KEY "CAUSALE"
|
||||
PROMPT 13 9 ""
|
||||
FIELD CAUSALE
|
||||
SPECIAL STRING TRASFER "AU001019" "AN"
|
||||
SPECIAL STRING TRASFER "AU001001" "AN"
|
||||
END
|
||||
|
||||
NUMERO 20
|
||||
NUMERO 102
|
||||
BEGIN
|
||||
KEY "ANNO"
|
||||
PROMPT 16 9 ""
|
||||
FIELD ANNO
|
||||
SPECIAL STRING TRASFER "AU001020" "NP"
|
||||
SPECIAL STRING TRASFER "AU001002" "NP"
|
||||
END
|
||||
|
||||
STRINGA 21
|
||||
STRINGA 103
|
||||
BEGIN
|
||||
KEY "ANTICIPAZIONI"
|
||||
PROMPT 27 9 ""
|
||||
FIELD ANTICIPAZ
|
||||
SPECIAL STRING TRASFER "AU001021" "CB"
|
||||
SPECIAL STRING TRASFER "AU001003" "CB"
|
||||
END
|
||||
|
||||
VALUTA 22
|
||||
VALUTA 104
|
||||
BEGIN
|
||||
KEY "AMMONTARE LORDO"
|
||||
PROMPT 27 9 ""
|
||||
FIELD TOTALE
|
||||
SPECIAL STRING TRASFER "AU001022" "NP"
|
||||
SPECIAL STRING TRASFER "AU001004" "NP"
|
||||
END
|
||||
|
||||
VALUTA 23
|
||||
VALUTA 105
|
||||
BEGIN
|
||||
KEY "SOMREGCONV"
|
||||
PROMPT 47 9 ""
|
||||
FIELD SOMREGCONV
|
||||
SPECIAL STRING TRASFER "AU001023" "NP"
|
||||
SPECIAL STRING TRASFER "AU001005" "NP"
|
||||
END
|
||||
|
||||
NUMERO 24
|
||||
NUMERO 106
|
||||
BEGIN
|
||||
KEY "Codice somme non soggette a ritenuta"
|
||||
PROMPT 64 9 ""
|
||||
SPECIAL STRING TRASFER "AU001024" "NP"
|
||||
SPECIAL STRING TRASFER "AU001006" "NP"
|
||||
MESSAGE _NUMEXPR,IF(SOMME>0,1,0)
|
||||
END
|
||||
|
||||
VALUTA 25
|
||||
VALUTA 107
|
||||
BEGIN
|
||||
KEY "SOMME NON SOGGETTE A RITENUTA"
|
||||
PROMPT 66 9 ""
|
||||
PROMPT 107 9 ""
|
||||
FIELD SOMME
|
||||
SPECIAL STRING TRASFER "AU001025" "NP"
|
||||
SPECIAL STRING TRASFER "AU001007" "NP"
|
||||
END
|
||||
|
||||
VALUTA 26
|
||||
VALUTA 108
|
||||
BEGIN
|
||||
KEY "IMPONIBILE = 22-23-25"
|
||||
PROMPT 88 9 ""
|
||||
FIELD IMPONIBILE
|
||||
SPECIAL STRING TRASFER "AU001026" "NP"
|
||||
PROMPT 108 9 ""
|
||||
FIELD IMPONIBILE
|
||||
SPECIAL STRING TRASFER "AU001008" "NP"
|
||||
END
|
||||
|
||||
VALUTA 27
|
||||
VALUTA 109
|
||||
BEGIN
|
||||
KEY "Ritenute operate a titolo di acconto"
|
||||
PROMPT 109 9 ""
|
||||
FIELD IMPORTO
|
||||
SPECIAL STRING TRASFER "AU001027" "NP"
|
||||
SPECIAL STRING TRASFER "AU001009" "NP"
|
||||
END
|
||||
|
||||
|
||||
VALUTA 28
|
||||
VALUTA 110
|
||||
BEGIN
|
||||
KEY "Ritenute operate a titolo di imposta"
|
||||
PROMPT 109 9 ""
|
||||
SPECIAL STRING TRASFER "AU001028" "NP"
|
||||
PROMPT 110 9 ""
|
||||
SPECIAL STRING TRASFER "AU001010" "NP"
|
||||
END
|
||||
|
||||
VALUTA 29
|
||||
VALUTA 111
|
||||
BEGIN
|
||||
KEY "RITENUTE SOSPESE"
|
||||
PROMPT 109 9 ""
|
||||
FIELD RITSOSPESE
|
||||
SPECIAL STRING TRASFER "AU001029" ""
|
||||
SPECIAL STRING TRASFER "AU001011" ""
|
||||
END
|
||||
|
||||
VALUTA 30
|
||||
VALUTA 112
|
||||
BEGIN
|
||||
KEY "ADDIZIONALE REGIONALE a titolo di acconto"
|
||||
PROMPT 109 9 ""
|
||||
FIELD ADDREG
|
||||
SPECIAL STRING TRASFER "AU001030" "NP"
|
||||
SPECIAL STRING TRASFER "AU001012" "NP"
|
||||
END
|
||||
|
||||
VALUTA 31
|
||||
VALUTA 113
|
||||
BEGIN
|
||||
KEY "ADDIZIONALE REGIONALE a titolo di imposta"
|
||||
PROMPT 109 9 ""
|
||||
SPECIAL STRING TRASFER "AU001031" "NP"
|
||||
SPECIAL STRING TRASFER "AU001013" "NP"
|
||||
END
|
||||
|
||||
VALUTA 32
|
||||
VALUTA 114
|
||||
BEGIN
|
||||
KEY "ADDIZIONALE REGIONALE SOSPESA"
|
||||
PROMPT 109 9 ""
|
||||
PROMPT 114 9 ""
|
||||
FIELD ADDREGSOSP
|
||||
SPECIAL STRING TRASFER "AU001032" "NP"
|
||||
SPECIAL STRING TRASFER "AU001014" "NP"
|
||||
END
|
||||
|
||||
VALUTA 33
|
||||
VALUTA 115
|
||||
BEGIN
|
||||
KEY "ADDIZIONALE COMUNALE a titolo di acconto"
|
||||
PROMPT 109 9 ""
|
||||
// FIELD ADDCOM
|
||||
SPECIAL STRING TRASFER "AU001033" "NP"
|
||||
SPECIAL STRING TRASFER "AU001015" "NP"
|
||||
END
|
||||
|
||||
VALUTA 34
|
||||
VALUTA 116
|
||||
BEGIN
|
||||
KEY "ADDIZIONALE COMUNALE a titolo di imposta"
|
||||
PROMPT 109 9 ""
|
||||
SPECIAL STRING TRASFER "AU001034" "NP"
|
||||
PROMPT 116 9 ""
|
||||
SPECIAL STRING TRASFER "AU001016" "NP"
|
||||
END
|
||||
|
||||
VALUTA 35
|
||||
VALUTA 117
|
||||
BEGIN
|
||||
KEY "ADDIZIONALE COMUNALE SOSPESA"
|
||||
PROMPT 109 9 ""
|
||||
PROMPT 117 9 ""
|
||||
// FIELD ADDCOMSOSP
|
||||
SPECIAL STRING TRASFER "AU001035" "NP"
|
||||
SPECIAL STRING TRASFER "AU001017" "NP"
|
||||
END
|
||||
|
||||
VALUTA 36
|
||||
VALUTA 118
|
||||
BEGIN
|
||||
KEY "IMPONIBILE ANNI PRECEDENTI"
|
||||
PROMPT 109 9 ""
|
||||
PROMPT 118 9 ""
|
||||
FIELD IMPANNIPRE
|
||||
SPECIAL STRING TRASFER "AU001036" "NP"
|
||||
SPECIAL STRING TRASFER "AU001018" "NP"
|
||||
END
|
||||
|
||||
VALUTA 37
|
||||
VALUTA 119
|
||||
BEGIN
|
||||
KEY "RITENUTE ANNI PRECEDENTI"
|
||||
PROMPT 109 9 ""
|
||||
PROMPT 119 9 ""
|
||||
FIELD RITANNIPRE
|
||||
SPECIAL STRING TRASFER "AU001037" "NP"
|
||||
SPECIAL STRING TRASFER "AU001019" "NP"
|
||||
END
|
||||
|
||||
VALUTA 38
|
||||
VALUTA 120
|
||||
BEGIN
|
||||
KEY "CONTRIBUTI PREVIDENZIALI A CARICO DEL SOGGETTO EROGANTE"
|
||||
PROMPT 109 9 ""
|
||||
PROMPT 120 9 ""
|
||||
FIELD CTINPSEROG
|
||||
SPECIAL STRING TRASFER "AU001038" "NP"
|
||||
SPECIAL STRING TRASFER "AU001020" "NP"
|
||||
MESSAGE _SOLO_CAUS_M
|
||||
END
|
||||
|
||||
VALUTA 39
|
||||
VALUTA 121
|
||||
BEGIN
|
||||
KEY "CONTRIBUTI PREVIDENZIALI A CARICO DEL PERCIPIENTE"
|
||||
PROMPT 109 9 ""
|
||||
PROMPT 121 9 ""
|
||||
FIELD CTINPSPERC
|
||||
SPECIAL STRING TRASFER "AU001039" "NP"
|
||||
SPECIAL STRING TRASFER "AU001021" "NP"
|
||||
MESSAGE _SOLO_CAUS_M
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user