Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : Aggiunto supporto per dati intermediario git-svn-id: svn://10.65.10.50/branches/R_10_00@22483 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
292b8fdbf0
commit
6f9049b1be
279
fe/fe0100.cpp
279
fe/fe0100.cpp
@ -289,14 +289,16 @@ class TAnagrafica : public TObject
|
||||
{
|
||||
char _tipo; // F o G
|
||||
TString16 _cofi, _paiv;
|
||||
TString _ragsoc;
|
||||
TString80 _ragsoc;
|
||||
TString4 _com_nasc, _com_res;
|
||||
TString _loc_res;
|
||||
TString80 _loc_res, _ind_res;
|
||||
TDate _data_nasc;
|
||||
int _allegato, _stato_estero;
|
||||
|
||||
TAnagrafica& operator =(const TAnagrafica&) { CHECK(false, "Can't copy TAnagrafica"); }
|
||||
TAnagrafica(const TAnagrafica&) { CHECK(false, "Can't copy TAnagrafica"); }
|
||||
protected:
|
||||
void build_ind_res(const TRectype& rec, const char* ind, const char* civ);
|
||||
|
||||
public:
|
||||
virtual bool ok() const { return _tipo=='F' || _tipo == 'G'; }
|
||||
@ -319,6 +321,7 @@ public:
|
||||
const TString& comune_residenza() const { return comune_di(_com_res); }
|
||||
const TString& provincia_residenza() const { return provincia_di(_com_res); }
|
||||
const TString& localita_residenza() const { return _loc_res; }
|
||||
const TString& indirizzo_residenza() const { return _ind_res; }
|
||||
|
||||
bool init(const TRectype& rec);
|
||||
bool init(int num, const TString& codice) { return init(cache().get(num, codice)); }
|
||||
@ -334,6 +337,20 @@ public:
|
||||
TAnagrafica(const TRectype& rec) { init(rec); }
|
||||
};
|
||||
|
||||
void TAnagrafica::build_ind_res(const TRectype& rec, const char* ind, const char* civ)
|
||||
{
|
||||
TString80 indirizzo = rec.get(ind);
|
||||
if (indirizzo.full())
|
||||
{
|
||||
const TString& numero = rec.get(civ);
|
||||
if (numero.full())
|
||||
indirizzo << ", " << numero;
|
||||
indirizzo.strip_double_spaces();
|
||||
TParagraph_string s(indirizzo, 40);
|
||||
_ind_res = s.get(0);
|
||||
}
|
||||
}
|
||||
|
||||
bool TAnagrafica::init(const TRectype& rec)
|
||||
{
|
||||
_tipo = '\0';
|
||||
@ -361,6 +378,7 @@ bool TAnagrafica::init(const TRectype& rec)
|
||||
_com_nasc = rec.get(OCC_COMNASC);
|
||||
_com_res = rec.get(OCC_COM);
|
||||
_loc_res = rec.get(OCC_LOCALITA);
|
||||
build_ind_res(rec, OCC_INDIR, OCC_CIV);
|
||||
_stato_estero = rec.get_int(OCC_STATO);
|
||||
_allegato = _paiv.blank() ? 6 : 2;
|
||||
break;
|
||||
@ -374,6 +392,7 @@ bool TAnagrafica::init(const TRectype& rec)
|
||||
_com_res = rec.get(ANA_COMRF);
|
||||
if (_com_res.empty())
|
||||
_com_res = rec.get(ANA_COMRES);
|
||||
build_ind_res(rec, ANA_INDRES, ANA_CIVRES);
|
||||
|
||||
// Dati di nascita persone fisiche
|
||||
if (_tipo == 'F')
|
||||
@ -409,6 +428,8 @@ bool TAnagrafica::init(const TRectype& rec)
|
||||
_cofi = rec.get(CLI_COFI);
|
||||
if (rec.get(CLI_PAIV).not_empty())
|
||||
_paiv = rec.get(CLI_PAIV);
|
||||
build_ind_res(rec, CLI_INDCF, CLI_CIVCF);
|
||||
|
||||
// Prevale sempre la ragione sociale del cliente: "Il cliente ha sempre ragione".
|
||||
_ragsoc = rec.get(CLI_RAGSOC); _ragsoc.upper();
|
||||
_stato_estero = rec.get_int(CLI_STATOCF);
|
||||
@ -495,8 +516,8 @@ void TDati_rilevanti_trc::create_fields(int tipo, TAS400_recordset& recset)
|
||||
add_field( 2, 2, 6, 5, "Codice identificativo fornitura", AN, "ART21", OBBLIG);
|
||||
add_field( 3, 7, 8, 2, "Codice numerico fornitura", NU, "47", OBBLIG);
|
||||
add_field( 4, 9, 9, 1, "Tipologia di invio", NU, "0", OBBLIG);
|
||||
add_field( 5, 10, 26,17, "Protocollo da sostituire", NU);
|
||||
add_field( 6, 27, 32, 6, "Protocollo documento", NU);
|
||||
add_field( 5, 10, 26,17, "Protocollo da sostituire", AN); // ex NU
|
||||
add_field( 6, 27, 32, 6, "Protocollo documento", AN); // ex NU
|
||||
|
||||
add_field( 7, 33, 48,16, "Codice fiscale", CF, "", OBBLIG);
|
||||
add_field( 8, 49, 59,11, "Partita IVA", PI);
|
||||
@ -518,8 +539,8 @@ void TDati_rilevanti_trc::create_fields(int tipo, TAS400_recordset& recset)
|
||||
add_field(21,266,269, 4, "Numero totale invii telematici", NU, "1");
|
||||
|
||||
add_field(22,270,285,16, "Codice fiscale intermediario", CF);
|
||||
add_field(23,286,290, 5, "Numero iscrizione C.A.F.", NU);
|
||||
add_field(24,291,291, 1, "Impegno alla trasmissione", NU, "1");
|
||||
add_field(23,286,290, 5, "Numero iscrizione C.A.F.", AN); // Ex NU
|
||||
add_field(24,291,291, 1, "Impegno alla trasmissione", AN ); // Ex NU
|
||||
add_field(25,292,299, 8, "Data dell'impegno", DT);
|
||||
|
||||
add_field(26,300,1797,1498, "Filler", AN);
|
||||
@ -643,13 +664,11 @@ public:
|
||||
bool set(unsigned int n, int v) { return set_val(n, long(v)); }
|
||||
bool set(unsigned int n, const real& v) { return set_val(n, v); }
|
||||
bool set(unsigned int n, const TDate& v) { return set_val(n, v); }
|
||||
void add_control_rec(int zero_o_nove, int num_inv = 1, int tot_inv = 1);
|
||||
void add_header(const TMask& msk, int num_inv = 1, int tot_inv = 1);
|
||||
void add_footer();
|
||||
bool split(const TFilename& name, const TRecnotype maxalleg = 15000);
|
||||
int anno() const { return _anno; }
|
||||
|
||||
void set_ragsoc(const TString& ragsoc) { row(-1).overwrite(ragsoc, 1000); }
|
||||
const TString& ragsoc() const { return row(-1).mid(1000, 50); }
|
||||
|
||||
TDati_rilevanti_set(int anno);
|
||||
TDati_rilevanti_set(const TFilename& file);
|
||||
};
|
||||
@ -660,8 +679,13 @@ bool TDati_rilevanti_set::set_field(const TAS400_column_info& fi, const TVariant
|
||||
if (fi._type == DT && fi._width == 8)
|
||||
{
|
||||
const TDate d = var.as_date();
|
||||
TString8 str; str.format("%02d%02d%04d", d.day(), d.month(), d.year());
|
||||
row().overwrite(str, fi._pos);
|
||||
if (d.ok())
|
||||
{
|
||||
TFixed_string str = d.string(full, '\0', full, full, gma_date);
|
||||
row().overwrite(str, fi._pos);
|
||||
}
|
||||
else
|
||||
row().overwrite(" ", fi._pos);
|
||||
return true;
|
||||
} else
|
||||
// Salva gli importi in formato 000001234 (non possono essere negativi)
|
||||
@ -703,14 +727,11 @@ const TVariant& TDati_rilevanti_set::get_field(const TAS400_column_info& ci) con
|
||||
return TAS400_recordset::get_field(ci);
|
||||
}
|
||||
|
||||
void TDati_rilevanti_set::add_control_rec(int zon, int num_inv, int tot_inv)
|
||||
void TDati_rilevanti_set::add_header(const TMask& msk, int num_inv, int tot_inv)
|
||||
{
|
||||
CHECKD(zon == 0 || zon == 9, "Tipo record di testa o coda non valido ", zon);
|
||||
|
||||
const TAnagrafica ditta(LF_NDITTE, prefix().get_codditta());
|
||||
|
||||
TString4 tipo; tipo << zon;
|
||||
new_rec(tipo);
|
||||
new_rec("0");
|
||||
set(7, ditta.codice_fiscale());
|
||||
set(8, ditta.partita_IVA());
|
||||
|
||||
@ -736,6 +757,26 @@ void TDati_rilevanti_set::add_control_rec(int zon, int num_inv, int tot_inv)
|
||||
if (num_inv > tot_inv) num_inv = tot_inv;
|
||||
set(20, num_inv);
|
||||
set(21, tot_inv);
|
||||
|
||||
const TString& cofi = msk.get(F_INTER_COFI);
|
||||
if (cofi.full())
|
||||
{
|
||||
set(22, cofi);
|
||||
set(23, msk.get(F_INTER_CAF));
|
||||
set(24, msk.get(F_INTER_COM));
|
||||
set(25, msk.get(F_INTER_DATE));
|
||||
}
|
||||
else
|
||||
{
|
||||
set(25, TDate()); // Svuota data impegno
|
||||
}
|
||||
}
|
||||
|
||||
void TDati_rilevanti_set::add_footer()
|
||||
{
|
||||
TString f = row(0);
|
||||
f.overwrite("9");
|
||||
new_rec(f);
|
||||
}
|
||||
|
||||
bool TDati_rilevanti_set::split(const TFilename& name, const TRecnotype maxalleg)
|
||||
@ -757,7 +798,7 @@ bool TDati_rilevanti_set::split(const TFilename& name, const TRecnotype maxalleg
|
||||
outset.new_rec(row(r));
|
||||
if (outset.items() >= maxalleg || r == totrec-1)
|
||||
{
|
||||
// Costruisce il nome del file di invio parziale, es: datiril_2.txt
|
||||
// Costruisce il nome del file di invio parziale, es: Spesometro00001_2.txt
|
||||
TFilename outname = name;
|
||||
const TString8 saved_ext = outname.ext();
|
||||
outname.ext(""); outname << '_' << (++f);
|
||||
@ -875,10 +916,13 @@ TExclusion_mode TDati_rilevanti_array::add(const TRectype& alleg, bool send_all,
|
||||
{
|
||||
sum->add(ALL_IMPORTO, importo);
|
||||
sum->add(ALL_IMPOSTA, imposta);
|
||||
const TDate sum_data = sum->get(ALL_DATAREG);
|
||||
const TDate all_data = alleg.get(ALL_DATAREG);
|
||||
if (all_data > sum_data)
|
||||
sum->put(ALL_DATAREG, all_data);
|
||||
// Le istruzioni dicono di mettere la data dell'ultima rettifica
|
||||
// ma la procedura di controllo non accetta anni successivi!
|
||||
// Per cui ... comment :-)
|
||||
// const TDate sum_data = sum->get(ALL_DATAREG);
|
||||
// const TDate all_data = alleg.get(ALL_DATAREG);
|
||||
// if (all_data > sum_data)
|
||||
// sum->put(ALL_DATAREG, all_data);
|
||||
|
||||
const int old_mode = sum->get_int(ALL_IGNORA);
|
||||
if (old_mode <= 1)
|
||||
@ -939,13 +983,113 @@ void TDati_rilevanti_array::add(const TArray& note, bool send_all, TLog_report&
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TCofi_cache
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TCofi_cache : public TCache
|
||||
{
|
||||
TLocalisamfile _clifo, _occas;
|
||||
|
||||
protected:
|
||||
virtual TObject* key2obj(const char* key);
|
||||
|
||||
public:
|
||||
const TString& cofi2ragsoc(char tipocf, const TString& cofi);
|
||||
const TString& paiv2ragsoc(char tipocf, const TString& paiv);
|
||||
TCofi_cache() : _clifo(LF_CLIFO), _occas(LF_OCCAS) { }
|
||||
};
|
||||
|
||||
TObject* TCofi_cache::key2obj(const char* key)
|
||||
{
|
||||
TToken_string chiave(key);
|
||||
const int fkey = chiave.get_char(0)=='C' ? 4 : 5;
|
||||
const TString4 tipocf = chiave.get();
|
||||
const TString16 code= chiave.get();
|
||||
|
||||
_clifo.setkey(fkey);
|
||||
_clifo.zero();
|
||||
_clifo.put(CLI_TIPOCF, tipocf);
|
||||
if (fkey == 5)
|
||||
_clifo.put(CLI_PAIV, code);
|
||||
else
|
||||
_clifo.put(CLI_COFI, code);
|
||||
|
||||
int err = _clifo.read();
|
||||
if (err != NOERR && fkey == 5 && pi_check("IT", code))
|
||||
{
|
||||
_clifo.put(CLI_TIPOCF, tipocf);
|
||||
_clifo.put(CLI_STATOPAIV, "IT");
|
||||
_clifo.put(CLI_PAIV, code);
|
||||
err = _clifo.read();
|
||||
}
|
||||
|
||||
if (err == NOERR)
|
||||
return new TString80(_clifo.get(CLI_RAGSOC));
|
||||
|
||||
if (fkey == 5 && !pi_check("IT", code)) // cerco partite IVA estere
|
||||
{
|
||||
TString query;
|
||||
query << "USE CLIFO SELECT PAIV=\"" << code << '"'
|
||||
<< "\nFROM TIPOCF=" << tipocf
|
||||
<< "\nTO TIPOCF=" << tipocf;
|
||||
TISAM_recordset clifo(query);
|
||||
if (clifo.move_first())
|
||||
return new TString80(clifo.get(CLI_RAGSOC).as_string());
|
||||
}
|
||||
|
||||
_occas.put(OCC_CFPI, code);
|
||||
if (_occas.read() == NOERR)
|
||||
{
|
||||
const TString& cfpi = _occas.get(fkey == 4 ? OCC_COFI : OCC_PAIV);
|
||||
if (code == cfpi || cfpi.empty())
|
||||
return new TString80(_occas.get(OCC_RAGSOC));
|
||||
}
|
||||
|
||||
TString query;
|
||||
query << "USE OCCAS SELECT ";
|
||||
if (fkey == 4)
|
||||
query << "COFI=\"" << code << '"';
|
||||
else
|
||||
query << "PAIV=\"" << code << '"';
|
||||
TISAM_recordset occas(query);
|
||||
if (occas.move_first())
|
||||
return new TString80(occas.get(OCC_RAGSOC).as_string());
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const TString& TCofi_cache::cofi2ragsoc(char tipocf, const TString& cofi)
|
||||
{
|
||||
TString80 key;
|
||||
key.format("CF|%c|%s", tipocf, (const char*)cofi);
|
||||
const TString* ragsoc = (const TString*)objptr(key);
|
||||
return ragsoc != NULL ? *ragsoc : EMPTY_STRING;
|
||||
}
|
||||
|
||||
const TString& TCofi_cache::paiv2ragsoc(char tipocf, const TString& paiv)
|
||||
{
|
||||
TString80 key;
|
||||
key.format("PI|%c|%s", tipocf, (const char*)paiv);
|
||||
const TString* ragsoc = (const TString*)objptr(key);
|
||||
return ragsoc != NULL ? *ragsoc : EMPTY_STRING;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TDati_rilevanti_rep
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TDati_rilevanti_rep : public TReport
|
||||
{
|
||||
TCofi_cache _cofi;
|
||||
|
||||
protected:
|
||||
const TString& cofi2ragsoc(char tipocf, const TString& cofi) const
|
||||
{ return ((TDati_rilevanti_rep*)this)->_cofi.cofi2ragsoc(tipocf, cofi); }
|
||||
|
||||
const TString& paiv2ragsoc(char tipocf, const TString& cofi) const
|
||||
{ return ((TDati_rilevanti_rep*)this)->_cofi.paiv2ragsoc(tipocf, cofi); }
|
||||
|
||||
virtual bool get_usr_val(const TString& name, TVariant& var) const;
|
||||
|
||||
public:
|
||||
@ -989,7 +1133,54 @@ bool TDati_rilevanti_rep::get_usr_val(const TString& name, TVariant& var) const
|
||||
}
|
||||
if (name == "RAGSOC")
|
||||
{
|
||||
var.set(set.ragsoc());
|
||||
char tipocf = 'C';
|
||||
switch (tipo)
|
||||
{
|
||||
case 2: if (set.get("2.8").as_int() == 2) tipocf = 'F'; break;
|
||||
default: break;
|
||||
};
|
||||
switch (tipo)
|
||||
{
|
||||
case 1: var = cofi2ragsoc(tipocf, set.get("1.2").as_string()); break;
|
||||
case 2: var = paiv2ragsoc(tipocf, set.get("2.2").as_string()); break;
|
||||
case 3:
|
||||
var = set.get("3.8");
|
||||
if (var.is_empty())
|
||||
{
|
||||
TString80 rs;
|
||||
rs << set.get("3.2") << ' ' << set.get("3.3");
|
||||
var = rs.trim();
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
{
|
||||
const TString16 paiv = set.get("4.2").as_string();
|
||||
if (paiv.full())
|
||||
{
|
||||
var = paiv2ragsoc('C', paiv);
|
||||
if (var.is_empty())
|
||||
var = paiv2ragsoc('F', paiv);
|
||||
}
|
||||
else
|
||||
{
|
||||
const TString16 cofi = set.get("4.3").as_string();
|
||||
var = cofi2ragsoc('C', cofi);
|
||||
if (var.is_empty())
|
||||
var = paiv2ragsoc('F', cofi);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
var = set.get("5.8");
|
||||
if (var.is_empty())
|
||||
{
|
||||
TString80 rs;
|
||||
rs << set.get("5.2") << ' ' << set.get("5.3");
|
||||
var = rs.trim();
|
||||
}
|
||||
break;
|
||||
default: var.set_null(); break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (name == "DATAREG")
|
||||
@ -1143,6 +1334,7 @@ protected:
|
||||
|
||||
bool send_nota_variazione(const TRectype& alleg, TDati_rilevanti_set& operaz);
|
||||
bool send_fatt(const TRectype& alleg, TDati_rilevanti_set& operaz);
|
||||
void build_outname(TFilename& n) const;
|
||||
|
||||
protected:
|
||||
TRecnotype last_user_progr() const;
|
||||
@ -1633,7 +1825,7 @@ void TDati_rilevanti_msk::collega_variazioni() const
|
||||
query << "\nFROM ANNO=" << anno << "\nTO ANNO=" << anno;
|
||||
TISAM_recordset fatture(query);
|
||||
|
||||
TProgind pi(fatture.items(), TR("Collegamente note di variazione"), false, true);
|
||||
TProgind pi(fatture.items(), TR("Collegamento note di variazione"), false, true);
|
||||
TRelation& rel = *fatture.cursor()->relation();
|
||||
|
||||
for (bool ok = fatture.move_first(); ok; ok = fatture.move_next())
|
||||
@ -1708,7 +1900,7 @@ bool TDati_rilevanti_msk::send_nota_variazione(const TRectype& alleg, TDati_rile
|
||||
operaz.set(8, anag.ragione_sociale());
|
||||
operaz.set(9, anag.comune_residenza());
|
||||
operaz.set(10, anag.stato_estero());
|
||||
operaz.set(11, EMPTY_STRING); // TBI? Indirizzo estero
|
||||
operaz.set(11, anag.indirizzo_residenza());
|
||||
}
|
||||
operaz.set(12, alleg.get(ALL_DATAREG));
|
||||
operaz.set(13, alleg.get(ALL_NUMDOC));
|
||||
@ -1736,7 +1928,6 @@ bool TDati_rilevanti_msk::send_nota_variazione(const TRectype& alleg, TDati_rile
|
||||
operaz.set(10, segno_imponibile);
|
||||
operaz.set(11, segno_imposta);
|
||||
}
|
||||
operaz.set_ragsoc(anag.ragione_sociale());
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -1774,7 +1965,7 @@ bool TDati_rilevanti_msk::send_fatt(const TRectype& alleg, TDati_rilevanti_set&
|
||||
else
|
||||
operaz.set(9, anag.comune_residenza());
|
||||
operaz.set(10, anag.stato_estero());
|
||||
operaz.set(11, EMPTY_STRING); // TBI? Indirizzo estero
|
||||
operaz.set(11, anag.indirizzo_residenza());
|
||||
}
|
||||
operaz.set(12, alleg.get(ALL_DATAREG));
|
||||
operaz.set(13, alleg.get(ALL_NUMDOC));
|
||||
@ -1805,7 +1996,6 @@ bool TDati_rilevanti_msk::send_fatt(const TRectype& alleg, TDati_rilevanti_set&
|
||||
operaz.set(8, alleg.get(ALL_TIPOPE));
|
||||
}
|
||||
}
|
||||
operaz.set_ragsoc(anag.ragione_sociale());
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -1846,17 +2036,24 @@ bool TDati_rilevanti_msk::recall_alleg() const
|
||||
return true;
|
||||
}
|
||||
|
||||
void TDati_rilevanti_msk::build_outname(TFilename& n) const
|
||||
{
|
||||
n = get(F_OUTFOLDER);
|
||||
if (n.blank())
|
||||
n.tempdir();
|
||||
|
||||
TString16 f; f.format("Spesometro%05d", prefix().get_codditta());
|
||||
n.add(f);
|
||||
n.ext("txt");
|
||||
}
|
||||
|
||||
// Genera file per invio telematico
|
||||
bool TDati_rilevanti_msk::send_alleg()
|
||||
{
|
||||
const int anno = get_int(F_ANNO);
|
||||
const bool send_all = get_int(F_SENDALL) != 1;
|
||||
|
||||
|
||||
TFilename temp = get(F_OUTFOLDER);
|
||||
if (temp.blank())
|
||||
temp.tempdir();
|
||||
temp.add("datiril.txt");
|
||||
TFilename temp; build_outname(temp);
|
||||
|
||||
TDati_rilevanti_array data;
|
||||
|
||||
@ -1870,9 +2067,7 @@ bool TDati_rilevanti_msk::send_alleg()
|
||||
|
||||
if (tot_alleg > 0)
|
||||
{
|
||||
TString str_pi;
|
||||
str_pi << TR("Generazione file ") << temp;
|
||||
_log = new TLog_report(str_pi);
|
||||
_log = new TLog_report(temp);
|
||||
|
||||
const TRectype& rec = alleg.cursor()->curr();
|
||||
|
||||
@ -1909,7 +2104,7 @@ bool TDati_rilevanti_msk::send_alleg()
|
||||
}
|
||||
|
||||
TDati_rilevanti_set recset(anno);
|
||||
recset.add_control_rec(0);
|
||||
recset.add_header(*this);
|
||||
|
||||
const int tot = data.items();
|
||||
if (tot > 0)
|
||||
@ -1924,7 +2119,7 @@ bool TDati_rilevanti_msk::send_alleg()
|
||||
}
|
||||
}
|
||||
|
||||
recset.add_control_rec(9);
|
||||
recset.add_footer();
|
||||
recset.sort();
|
||||
bool done = recset.save_as(temp);
|
||||
|
||||
@ -2234,9 +2429,7 @@ void TDati_rilevanti_msk::enable_buttons()
|
||||
enable(F_DEFINITIVO, !def);
|
||||
if (def) reset(F_DEFINITIVO);
|
||||
|
||||
TFilename temp = get(F_OUTFOLDER);
|
||||
if (temp.blank()) temp.tempdir();
|
||||
temp.add("datiril.txt");
|
||||
TFilename temp; build_outname(temp);
|
||||
enable(DLG_PREVIEW, temp.exist());
|
||||
}
|
||||
|
||||
@ -2300,9 +2493,7 @@ bool TDati_rilevanti_msk::on_field_event(TOperable_field& o, TField_event e, lon
|
||||
case DLG_PREVIEW:
|
||||
if (e == fe_button)
|
||||
{
|
||||
TFilename temp = get(F_OUTFOLDER);
|
||||
if (temp.blank()) temp.tempdir();
|
||||
temp.add("datiril.txt");
|
||||
TFilename temp; build_outname(temp);
|
||||
if (temp.exist())
|
||||
{
|
||||
TDati_rilevanti_rep rep(temp);
|
||||
|
@ -2,34 +2,34 @@
|
||||
<report name="fe0100" lpi="6">
|
||||
<font face="Courier New" size="8" />
|
||||
<section type="Head" pattern="1">
|
||||
<field x="1" type="Stringa" valign="center" align="center" width="112" height="3" pattern="1">
|
||||
<field x="8" type="Stringa" valign="center" align="center" width="112" height="3" pattern="1">
|
||||
<font face="Courier New" bold="1" size="24" />
|
||||
<source>"Dati rilevanti " + ANNO + " tipo " + TIPO</source>
|
||||
</field>
|
||||
<field border="3" x="1" y="3" type="Linea" width="112" height="0" pattern="1" />
|
||||
<field border="2" x="1" y="3" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="19" y="3" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="46" y="3" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="58" y="3" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="76" y="3" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="90" y="3" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="101" y="3" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="113" y="3" type="Linea" height="3" pattern="1" />
|
||||
<field border="3" x="1" y="6" type="Linea" width="112" height="0" pattern="1" />
|
||||
<field x="2" y="3.5" type="Testo" width="16" id="101" pattern="1" text="Codice Fiscale">
|
||||
<field border="3" y="3" type="Linea" width="120" height="0" pattern="1" />
|
||||
<field border="2" x="8" y="3" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="26" y="3" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="53" y="3" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="65" y="3" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="83" y="3" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="97" y="3" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="108" y="3" type="Linea" height="3" pattern="1" />
|
||||
<field x="1" y="4" type="Testo" width="6" pattern="1" text="Riga" />
|
||||
<field border="3" y="6" type="Linea" width="120" height="0" pattern="1" />
|
||||
<field x="9" y="3.5" type="Testo" width="16" id="101" pattern="1" text="Codice Fiscale">
|
||||
<source>COFI</source>
|
||||
</field>
|
||||
<field x="2" y="4.5" type="Testo" width="16" id="102" pattern="1" text="Partita IVA" />
|
||||
<field x="20" y="3.5" type="Testo" width="25" height="2" id="201" pattern="1" text="Ragione Sociale" />
|
||||
<field x="47" y="3.5" type="Testo" width="10" id="301" pattern="1" text="Data Reg." />
|
||||
<field x="47" y="4.5" type="Testo" width="10" id="302" pattern="1" text="Num. Doc." />
|
||||
<field x="59" y="3.5" type="Testo" width="16" id="401" pattern="1" text="Mod. Pagamento" />
|
||||
<field x="59" y="4.5" type="Testo" width="16" id="402" pattern="1" text="Tipo Operazione" />
|
||||
<field x="77" y="3.5" type="Testo" align="right" width="12" id="501" pattern="1" text="Importo" />
|
||||
<field x="77" y="4.5" type="Testo" align="right" width="12" id="502" pattern="1" text="Imposta" />
|
||||
<field x="93" y="3.5" type="Testo" width="10" height="2" id="601" pattern="1" text="Segno" />
|
||||
<field x="102" y="3.5" type="Testo" width="10" id="601" pattern="1" text="Data rett." />
|
||||
<field x="102" y="4.5" type="Testo" width="10" id="602" pattern="1" text="Num. Rett." />
|
||||
<field x="9" y="4.5" type="Testo" width="16" id="102" pattern="1" text="Partita IVA" />
|
||||
<field x="27" y="3.5" type="Testo" width="25" height="2" id="201" pattern="1" text="Ragione Sociale" />
|
||||
<field x="54" y="3.5" type="Testo" width="10" id="301" pattern="1" text="Data Reg." />
|
||||
<field x="54" y="4.5" type="Testo" width="10" id="302" pattern="1" text="Num. Doc." />
|
||||
<field x="66" y="3.5" type="Testo" width="16" id="401" pattern="1" text="Mod. Pagamento" />
|
||||
<field x="66" y="4.5" type="Testo" width="16" id="402" pattern="1" text="Tipo Operazione" />
|
||||
<field x="84" y="3.5" type="Testo" align="right" width="12" id="501" pattern="1" text="Importo" />
|
||||
<field x="84" y="4.5" type="Testo" align="right" width="12" id="502" pattern="1" text="Imposta" />
|
||||
<field x="100" y="3.5" type="Testo" width="10" height="2" id="601" pattern="1" text="Segno" />
|
||||
<field x="109" y="3.5" type="Testo" width="10" id="601" pattern="1" text="Data rett." />
|
||||
<field x="109" y="4.5" type="Testo" width="10" id="602" pattern="1" text="Num. Rett." />
|
||||
</section>
|
||||
<section type="Head" level="1" pattern="1" />
|
||||
<section type="Head" level="2" height="1" page_break="1" pattern="1">
|
||||
@ -38,60 +38,62 @@
|
||||
</section>
|
||||
<section type="Body" pattern="1" />
|
||||
<section type="Body" level="1" pattern="1">
|
||||
<field border="2" x="1" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="19" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="46" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="58" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="76" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="90" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="101" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="113" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="1" y="3" type="Linea" width="112" height="0" pattern="1" />
|
||||
<field x="2" y="0.5" type="Stringa" width="16" id="101" pattern="1">
|
||||
<field border="2" x="8" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="26" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="53" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="65" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="83" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="97" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" x="108" type="Linea" height="3" pattern="1" />
|
||||
<field border="2" y="3" type="Linea" width="120" height="0" pattern="1" />
|
||||
<field y="1" type="Numero" align="right" width="7" id="100" pattern="1" text="@@@@@@@">
|
||||
<source>#RECORD.NUMBER</source>
|
||||
</field>
|
||||
<field x="9" y="0.5" type="Stringa" width="16" id="101" pattern="1">
|
||||
<source>COFI</source>
|
||||
</field>
|
||||
<field x="2" y="1.5" type="Stringa" width="16" id="102" pattern="1">
|
||||
<field x="9" y="1.5" type="Stringa" width="16" id="102" pattern="1">
|
||||
<source>PAIV</source>
|
||||
</field>
|
||||
<field x="20" y="0.5" type="Stringa" width="25" height="2" id="201" pattern="1">
|
||||
<field x="27" y="0.5" type="Stringa" width="25" height="2" id="201" pattern="1">
|
||||
<source>RAGSOC</source>
|
||||
</field>
|
||||
<field x="47" y="0.5" type="Data" width="11" id="301" pattern="1">
|
||||
<field x="54" y="0.5" type="Data" width="11" id="301" pattern="1">
|
||||
<source>DATAREG</source>
|
||||
</field>
|
||||
<field x="47" y="1.5" type="Stringa" width="10" id="302" pattern="1">
|
||||
<field x="54" y="1.5" type="Stringa" width="10" id="302" pattern="1">
|
||||
<source>NUMDOC</source>
|
||||
</field>
|
||||
<field x="59" y="0.5" type="Array" width="16" id="401" pattern="1">
|
||||
<field x="66" y="0.5" type="Array" width="16" id="401" pattern="1">
|
||||
<source>MODPAG</source>
|
||||
<list>
|
||||
<li Value="" Code="" />
|
||||
<li />
|
||||
<li Value="Non Frazionato" Code="1" />
|
||||
<li Value="Frazionato" Code="2" />
|
||||
<li Value="Periodico" Code="3" />
|
||||
</list>
|
||||
</field>
|
||||
<field x="59" y="1.5" type="Array" width="16" id="402" pattern="1">
|
||||
<field x="66" y="1.5" type="Array" width="16" id="402" pattern="1">
|
||||
<source>TIPOPE</source>
|
||||
<list>
|
||||
<li Value="" Code="" />
|
||||
<li />
|
||||
<li Value="Vendita" Code="1" />
|
||||
<li Value="Acquisto" Code="2" />
|
||||
</list>
|
||||
</field>
|
||||
<field x="77" y="0.5" type="Numero" align="right" width="12" id="501" pattern="1" text="############">
|
||||
<field x="84" y="0.5" type="Numero" align="right" width="12" id="501" pattern="1" text="############">
|
||||
<source>IMPORTO</source>
|
||||
</field>
|
||||
<field x="77" y="1.5" type="Numero" align="right" width="12" id="502" pattern="1" text="############">
|
||||
<field x="84" y="1.5" type="Numero" align="right" width="12" id="502" pattern="1" text="############">
|
||||
<source>IMPOSTA</source>
|
||||
</field>
|
||||
<field x="102" y="0.5" type="Data" width="10" id="601" pattern="1">
|
||||
<field x="109" y="0.5" type="Data" width="10" id="601" pattern="1">
|
||||
<source>DATARETT</source>
|
||||
</field>
|
||||
<field x="102" y="1.5" type="Stringa" width="10" id="602" pattern="1">
|
||||
<field x="109" y="1.5" type="Stringa" width="10" id="602" pattern="1">
|
||||
<source>NUMRETT</source>
|
||||
</field>
|
||||
<field x="91" y="0.5" type="Array" align="right" width="7" id="701" pattern="1">
|
||||
<field x="98" y="0.5" type="Array" width="8" id="701" pattern="1">
|
||||
<source>SIMPORTO</source>
|
||||
<list>
|
||||
<li />
|
||||
@ -99,7 +101,7 @@
|
||||
<li Value="Debito" Code="D" />
|
||||
</list>
|
||||
</field>
|
||||
<field x="91" y="1.5" type="Array" align="right" width="7" id="702" pattern="1">
|
||||
<field x="98" y="1.5" type="Array" width="8" id="702" pattern="1">
|
||||
<source>SIMPOSTA</source>
|
||||
<list>
|
||||
<li />
|
||||
|
@ -13,6 +13,11 @@
|
||||
#define F_RAGSOC 314
|
||||
#define F_RAGOCC 315
|
||||
|
||||
#define F_INTER_COM 320
|
||||
#define F_INTER_DATE 321
|
||||
#define F_INTER_COFI 322
|
||||
#define F_INTER_CAF 323
|
||||
|
||||
#define F_RIGHE 300
|
||||
|
||||
#define A_RIGA 101
|
||||
@ -33,4 +38,4 @@
|
||||
#define A_PAIV 116
|
||||
#define A_COFI 117
|
||||
|
||||
#define A_OCCAS 155
|
||||
#define A_OCCAS 155
|
||||
|
@ -178,7 +178,7 @@ ENDPAGE
|
||||
|
||||
PAGE "Opzioni" 0 2 0 0
|
||||
|
||||
GROUPBOX DLG_NULL 78 6
|
||||
GROUPBOX DLG_NULL 78 5
|
||||
BEGIN
|
||||
PROMPT 1 1 "@bOpzioni per invio"
|
||||
END
|
||||
@ -212,6 +212,36 @@ BEGIN
|
||||
WARNING "Specificare una valore compreso tra 100 e 15000"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 6
|
||||
BEGIN
|
||||
PROMPT 1 6 "@bDati del soggetto che assume l'impegno alla presentazione telematica"
|
||||
END
|
||||
|
||||
LIST F_INTER_COM 1 20
|
||||
BEGIN
|
||||
PROMPT 2 7 "Comunicazione predisposta da "
|
||||
ITEM "|"
|
||||
ITEM "1|contribuente"
|
||||
ITEM "2|chi effettua l'invio"
|
||||
END
|
||||
|
||||
STRING F_INTER_COFI 16
|
||||
BEGIN
|
||||
PROMPT 2 8 "Codice fiscale dell'intermediario "
|
||||
FLAGS "U"
|
||||
VALIDATE CF_FUNC 1 F_INTER_COFI
|
||||
END
|
||||
|
||||
NUMBER F_INTER_CAF 5
|
||||
BEGIN
|
||||
PROMPT 2 9 "Numero iscrizione all'albo C.A.F. "
|
||||
END
|
||||
|
||||
DATE F_INTER_DATE
|
||||
BEGIN
|
||||
PROMPT 2 10 "Data dell'impegno alla trasmissione "
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
Loading…
x
Reference in New Issue
Block a user