Patch level :4.0 998

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :riportate modifiche 3.1 997 per elenco clifo


git-svn-id: svn://10.65.10.50/trunk@15692 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2007-10-08 13:57:37 +00:00
parent 1886d71e64
commit e01a54ae8c
4 changed files with 230 additions and 80 deletions

View File

@ -56,6 +56,8 @@ class TAllegato_info : public TObject
public: public:
bool occasionale() const { return _tipo == 'C' && _occas.full(); } bool occasionale() const { return _tipo == 'C' && _occas.full(); }
char tipo() const { return _tipo; } char tipo() const { return _tipo; }
long codice() const { return _codice; }
const TString & occas_code() const { return _occas;}
TVariant get(const TString& field) const; TVariant get(const TString& field) const;
void key(TString& str) const; void key(TString& str) const;
@ -63,6 +65,7 @@ public:
const TAllegato_importi& importi(bool prec) const { return prec ? _prec : _curr; } const TAllegato_importi& importi(bool prec) const { return prec ? _prec : _curr; }
bool is_not_null(bool strict) const { return _curr.is_not_null(strict) || _prec.is_not_null(strict); } bool is_not_null(bool strict) const { return _curr.is_not_null(strict) || _prec.is_not_null(strict); }
void set_codice(long codice, const char* occas) { _codice = codice; _occas = occas; }
TAllegato_info(const TRecordset& mov); TAllegato_info(const TRecordset& mov);
}; };
@ -612,34 +615,60 @@ const TCausale& TCausali_cache::causale(const char* codice, int annoiva)
class TAlleg_report : public TReport class TAlleg_report : public TReport
{ {
int _anno; TAssoc_array _vars;
protected: protected:
virtual bool use_mask() { return false; } virtual bool use_mask() { return false; }
virtual bool set_usr_val(const TString& name, const TVariant& var);
virtual bool get_usr_val(const TString& name, TVariant& var) const; virtual bool get_usr_val(const TString& name, TVariant& var) const;
public: public:
TAlleg_report(TRecordset* rs, int anno); TAlleg_report(TRecordset* rs, const TMask& am, bool hide_not_alleg = false);
}; };
bool TAlleg_report::set_usr_val(const TString& name, const TVariant& var)
{
if (!TReport::set_usr_val(name, var))
_vars.add(name, new TVariant(var));
return true;
}
bool TAlleg_report::get_usr_val(const TString& name, TVariant& var) const bool TAlleg_report::get_usr_val(const TString& name, TVariant& var) const
{ {
if (name == "ANNO") if (name[0] == '#')
{ {
var.set(_anno); TVariant* v = (TVariant*)_vars.objptr(name);
if (v != NULL)
{
var = *v;
return true; return true;
} }
if (name == "PREC")
{
var.set(_anno-1);
return true;
} }
return TReport::get_usr_val(name, var); return TReport::get_usr_val(name, var);
} }
TAlleg_report::TAlleg_report(TRecordset* rs, int anno) : _anno(anno) TAlleg_report::TAlleg_report(TRecordset* rs, const TMask& am, bool hide_not_alleg)
{ {
load("cg3900a"); load("cg3900a");
mask2report(am);
TString4 filtro;
if (!hide_not_alleg)
filtro = am.get(F_FILTRO);
set_usr_val("#FILTRO", TVariant(filtro));
if (hide_not_alleg)
{
const char* const fields[] = { "H0.107", "B1.107", "B1.207", "F1.107", "F1.207", NULL };
for (int i = 0; fields[i]; i++)
{
TReport_field* rf = field(fields[i]);
if (rf != NULL)
rf->deactivate();
}
}
set_recordset(rs); set_recordset(rs);
} }
@ -725,13 +754,18 @@ int TAlleg_mask::imp_iva(char tipocf, bool non_esposti, const TRecordset& riga,
return allegato; return allegato;
} }
bool TAlleg_mask::scan_iva_rows(const TRecordset& mov, TAssoc_array& clifi, bool strict) bool TAlleg_mask::scan_iva_rows(const TRecordset& mov, TAssoc_array& clifi, bool invio)
{ {
// Informazioni base sul cliente in testata: vengono ignorati gli importi // Informazioni base sul cliente in testata: vengono ignorati gli importi
const TAllegato_info clifo(mov); const TAllegato_info clifo(mov);
const int tipalleg = clifo.get(CLI_ALLEG).as_int();
if (strict) if (invio)
{ {
// Ignoro da subito chi non va in allegato
if (tipalleg != 0 && tipalleg != 4)
return false;
// Gli occasionali meritano solo di essere ignorati // Gli occasionali meritano solo di essere ignorati
if (clifo.occasionale()) if (clifo.occasionale())
return false; return false;
@ -739,10 +773,12 @@ bool TAlleg_mask::scan_iva_rows(const TRecordset& mov, TAssoc_array& clifi, bool
const TVariant stato = clifo.get(CLI_STATOPAIV); const TVariant stato = clifo.get(CLI_STATOPAIV);
if (!stato.is_empty() && stato.as_string() != "IT") // Scarto gli esteri if (!stato.is_empty() && stato.as_string() != "IT") // Scarto gli esteri
return false; return false;
}
// Ignoro da subito chi non va in allegato else
const int tipalleg = clifo.get(CLI_ALLEG).as_int(); {
if (tipalleg != 0 && tipalleg != 4) // Per efficienza andrebbe nella funzione chiamante
const int filtro = get_int(F_FILTRO);
if (filtro >= 0 && tipalleg != filtro)
return false; return false;
} }
@ -753,6 +789,17 @@ bool TAlleg_mask::scan_iva_rows(const TRecordset& mov, TAssoc_array& clifi, bool
ai = new TAllegato_info(mov); ai = new TAllegato_info(mov);
clifi.add(clifo_key, ai); clifi.add(clifo_key, ai);
} }
else
{
// Se questa partita IVA esiste gia' deve prevalere la ragione sociale con tipalleg=0
if (tipalleg == 0)
{
const long codcf = clifo.codice(); // Codice corrente
const long old_codcf = ai->codice(); // Codice su fornitura
if (codcf != old_codcf)
ai->set_codice(codcf, clifo.occas_code());
}
}
const TDate datareg = mov.get(MOV_DATAREG).as_date(); const TDate datareg = mov.get(MOV_DATAREG).as_date();
const TDate datadoc = mov.get(MOV_DATADOC).as_date(); const TDate datadoc = mov.get(MOV_DATADOC).as_date();
@ -766,7 +813,10 @@ bool TAlleg_mask::scan_iva_rows(const TRecordset& mov, TAssoc_array& clifi, bool
const bool non_esposti = movintra || reverse_charge; const bool non_esposti = movintra || reverse_charge;
const bool prorata100 = caus.reg().prorata100(annoiva); const bool prorata100 = caus.reg().prorata100(annoiva);
const bool anno_prec = datadoc.year() == anno-1; bool anno_prec = false; // In attesa di modifiche a prima nota
if (get(F_ALGO) == "R")
anno_prec = datadoc.year() == anno-1; // Serve per quadrature
TAllegato_importi& allimp = ai->importi(anno_prec); TAllegato_importi& allimp = ai->importi(anno_prec);
TISAM_recordset righe_iva("USE RMOVIVA\nFROM NUMREG=#NR\nTO NUMREG=#NR"); TISAM_recordset righe_iva("USE RMOVIVA\nFROM NUMREG=#NR\nTO NUMREG=#NR");
@ -792,34 +842,37 @@ bool TAlleg_mask::scan_iva_rows(const TRecordset& mov, TAssoc_array& clifi, bool
return true; return true;
} }
// algo: 0=AGA; 1=Sirio/Benetti // algo: R=data Registrazione; D=data Documento
TRecordset* TAlleg_mask::new_recordset(char tipocf, bool strict) TRecordset* TAlleg_mask::new_recordset(char tipocf, bool invio)
{ {
const int algo_dick = get_int(F_ALGO); const int algo_dick = get(F_ALGO) == "D";
// Compito: tradurre in ISAM la seguente query: // Compito: tradurre in ISAM la seguente query:
// SELECT * FROM MOV // SELECT * FROM MOV
// WHERE TIPO=#TYPE AND ANNOIVA=#YEAR // WHERE TIPO=#TYPE AND ANNOIVA=#ANNO
// ORDER BY TIPO,CODCF; // ORDER BY TIPO,CODCF;
TString query = "USE MOV KEY 3"; // La chiave 3 e' TIPO+CODCF+DATAREG+NUMREG TString query = "USE MOV KEY 3"; // La chiave 3 e' TIPO+CODCF+DATAREG+NUMREG
query << "\nSELECT (ANNOIVA=#YEAR)"; // Seleziona solo l'anno desiderato query << "\nSELECT ";
if (algo_dick) if (algo_dick)
query << "||(ANNOIVA=(#YEAR+1))"; query << "(ANNOIVA>=#ANNO)"; // Seleziona dall'anno desiderato in poi
else
query << "(ANNOIVA==#ANNO)"; // Seleziona solo l'anno desiderato
query << "\nFROM TIPO=#TYPE CODCF=1"; // Salta tutti movimenti senza CODCF query << "\nFROM TIPO=#TYPE CODCF=1"; // Salta tutti movimenti senza CODCF
query << "\nTO TIPO=#TYPE"; // Inutile dire CODCF=999999 query << "\nTO TIPO=#TYPE"; // Inutile dire CODCF=999999
TISAM_recordset mov(query); TISAM_recordset mov(query);
if (tipocf <= ' ') tipocf = get(F_TIPO)[0]; if (tipocf <= ' ') tipocf = get(F_TIPO)[0];
const char tipo[2] = { tipocf, '\0' }; const char tipo[2] = { tipocf, '\0' };
const int anno = get_int(F_ANNO); const int anno = get_int(F_ANNO);
mov.set_var("#YEAR", TVariant(long(anno)));
mov.set_var("#ANNO", TVariant(long(anno)));
mov.set_var("#TYPE", TVariant(tipo)); mov.set_var("#TYPE", TVariant(tipo));
const TRecnotype movs = mov.items(); const TRecnotype movs = mov.items();
TString msg; TString msg;
msg << movs << ' ' << TR("Movimenti") << ' ' msg << TR("Elaborazione") << ' ' << movs << ' ' << TR("Movimenti") << ' '
<< (tipocf == 'C' ? TR("Clienti") : TR("Fornitori")); << (tipocf == 'C' ? TR("Clienti") : TR("Fornitori"));
TProgind pi(movs, msg, true, true); TProgind pi(movs, msg, true, true);
@ -838,7 +891,7 @@ TRecordset* TAlleg_mask::new_recordset(char tipocf, bool strict)
continue; continue;
// Scarta trasferimento movimenti intra prima del 2008 // Scarta trasferimento movimenti intra prima del 2008
if (strict && anno < 2008 && caus.intra()) if (invio && anno < 2008 && caus.intra())
continue; continue;
// Controllo inutilmente anche il tipo documento // Controllo inutilmente anche il tipo documento
@ -861,20 +914,20 @@ TRecordset* TAlleg_mask::new_recordset(char tipocf, bool strict)
{ {
const int annodoc = mov.get(MOV_DATADOC).as_date().year(); const int annodoc = mov.get(MOV_DATADOC).as_date().year();
const bool is_nota = (tipodoc=="NC") || (tipodoc=="ND"); const bool is_nota = (tipodoc=="NC") || (tipodoc=="ND");
keep = (annodoc == anno) || (is_nota && (annodoc == anno-1)); keep = (annodoc == anno) ; // || (is_nota && (annodoc == anno-1));
} }
if (!keep) if (!keep)
continue; continue;
scan_iva_rows(mov, clifi, strict); scan_iva_rows(mov, clifi, invio);
} }
TAllegati_set* hullygully = new TAllegati_set; TAllegati_set* hullygully = new TAllegati_set;
FOR_EACH_ASSOC_OBJECT(clifi, h, k, o) FOR_EACH_ASSOC_OBJECT(clifi, h, k, o)
{ {
const TAllegato_info& ai = *(TAllegato_info*)o; const TAllegato_info& ai = *(TAllegato_info*)o;
if (ai.is_not_null(strict)) if (ai.is_not_null(invio))
hullygully->add(ai); hullygully->add(ai);
} }
hullygully->sort(); hullygully->sort();
@ -899,21 +952,27 @@ void TAlleg_mask::add_0_9(int trc, TPadoaSchioppa_set& pss, TLog_report& log)
const TRectype& anag = contribuente(); const TRectype& anag = contribuente();
const char tipoa = anag.get_char(ANA_TIPOA); const char tipoa = anag.get_char(ANA_TIPOA);
const long codanagr = anag.get_long(ANA_CODANAGR); const long codanagr = anag.get_long(ANA_CODANAGR);
const TString ragsoc = anag.get(ANA_RAGSOC); // Non fidarsi ad usare TString&
TString16 pariva = anag.get(ANA_PAIV); pariva.right_just(11, '0'); TString16 pariva = anag.get(ANA_PAIV); pariva.right_just(11, '0');
if (!pi_check("", pariva)) if (!pi_check("", pariva))
log_error(anag.get(ANA_RAGSOC), TR("*** Ditta con partita IVA errata"), pariva, log, 2); log_error(ragsoc, TR("*** Ditta con partita IVA errata"), pariva, log, 2);
else
{
if (pariva[0] == '8' || pariva[0] == '9')
log_error(ragsoc, TR("** Verificare esenzione dall'invio degli elenchi"), pariva, log, 2);
}
const TString16 codfis = anag.get(ANA_COFI); const TString16 codfis = anag.get(ANA_COFI);
if (!cf_check("", codfis)) if (!cf_check("", codfis))
log_error(anag.get(ANA_RAGSOC), TR("** Ditta con codice fiscale errato"), codfis, log, 2); log_error(ragsoc, TR("** Ditta con codice fiscale errato"), codfis, log, 2);
pss.set("CodiceFiscale", codfis.full() ? codfis : pariva); pss.set("CodiceFiscale", codfis.full() ? codfis : pariva);
pss.set("PartitaIVA", pariva.full() ? pariva : codfis); pss.set("PartitaIVA", pariva.full() ? pariva : codfis);
if (tipoa == 'F') if (tipoa == 'F')
{ {
pss.set("Cognome", anag.get(ANA_RAGSOC).left(30)); pss.set("Cognome", ragsoc.left(30));
pss.set("Nome", anag.get(ANA_RAGSOC).mid(30)); pss.set("Nome", ragsoc.mid(30));
const TRectype& anafis = cache().get(LF_ANAGFIS, codanagr); const TRectype& anafis = cache().get(LF_ANAGFIS, codanagr);
pss.set("Sesso", anafis.get(ANF_SESSO)); pss.set("Sesso", anafis.get(ANF_SESSO));
@ -937,7 +996,7 @@ void TAlleg_mask::add_0_9(int trc, TPadoaSchioppa_set& pss, TLog_report& log)
TString8 key; key << stato << '|' << comun; TString8 key; key << stato << '|' << comun;
const TRectype& comres = cache().get(LF_COMUNI, key); const TRectype& comres = cache().get(LF_COMUNI, key);
pss.set("Denominazione", anag.get(ANA_RAGSOC)); pss.set("Denominazione", ragsoc);
pss.set("ComuneSedeLegale", comres.get(COM_DENCOM)); pss.set("ComuneSedeLegale", comres.get(COM_DENCOM));
pss.set("ProvinciaSedeLegale", comres.get(COM_PROVCOM)); pss.set("ProvinciaSedeLegale", comres.get(COM_PROVCOM));
} }
@ -1036,7 +1095,8 @@ void TAlleg_mask::log_error(const TRecordset& clifo, const char* msg1, const cha
TLog_report& errlog, int severity) TLog_report& errlog, int severity)
{ {
TString str; TString str;
str << clifo.get(CLI_TIPOCF) << clifo.get(CLI_CODCF) str << clifo.get("#RECORD.NUMBER") << ". "
<< clifo.get(CLI_TIPOCF) << clifo.get(CLI_CODCF)
<< ' ' << clifo.get(CLI_RAGSOC); << ' ' << clifo.get(CLI_RAGSOC);
str.strip_double_spaces(); str.strip_double_spaces();
log_error(str, msg1, msg2, errlog, severity); log_error(str, msg1, msg2, errlog, severity);
@ -1099,6 +1159,12 @@ void TAlleg_mask::add_1_2(int trc, TRecordset& clifo, TPadoaSchioppa_set& pss, T
{ {
if (!pi_check("", paiv)) if (!pi_check("", paiv))
log_error(clifo, TR("** Partita IVA errata"), paiv, log, 1); log_error(clifo, TR("** Partita IVA errata"), paiv, log, 1);
else
{
if (paiv[0] == '8' || paiv[0] == '9')
log_error(clifo, TR("** Verificare esclusione della Parita IVA"), paiv, log, 1);
}
pss.set(3001, paiv); // Partita IVA (obbligatoria dal 2006) pss.set(3001, paiv); // Partita IVA (obbligatoria dal 2006)
} }
@ -1141,11 +1207,10 @@ void TAlleg_mask::add_1_2(int trc, TRecordset& clifo, TPadoaSchioppa_set& pss, T
void TAlleg_mask::generazione() void TAlleg_mask::generazione()
{ {
TReport_book book;
_red_alert = false; _red_alert = false;
TLog_report log(TR("Errori riscontrati")); TLog_report log(TR("Errori riscontrati"));
TReport_book book;
TPadoaSchioppa_set pss; TPadoaSchioppa_set pss;
add_0_9(0, pss, log); // Testa add_0_9(0, pss, log); // Testa
@ -1157,7 +1222,7 @@ void TAlleg_mask::generazione()
log.log(0, TR("CLIENTI")); log.log(0, TR("CLIENTI"));
add_1_2(1, *cli, pss, log); // Clienti add_1_2(1, *cli, pss, log); // Clienti
TAlleg_report rep(cli, get_int(F_ANNO)); TAlleg_report rep(cli, *this, true);
book.add(rep); book.add(rep);
} }
@ -1167,7 +1232,7 @@ void TAlleg_mask::generazione()
log.log(0, TR("FORNITORI")); log.log(0, TR("FORNITORI"));
add_1_2(2, *ven, pss, log); // Fornitori add_1_2(2, *ven, pss, log); // Fornitori
TAlleg_report rep(ven, get_int(F_ANNO)); TAlleg_report rep(ven, *this, true);
book.add(rep); book.add(rep);
} }
@ -1250,6 +1315,7 @@ bool TAlleg_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
const TRectype& anag = contribuente(); const TRectype& anag = contribuente();
o.set(anag.get(ANA_COFI)); o.set(anag.get(ANA_COFI));
o.disable(); o.disable();
set(F_PIVA, anag.get(ANA_PAIV));
} }
break; break;
case F_INTR: case F_INTR:
@ -1304,7 +1370,7 @@ bool TAlleg_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
if (e == fe_button) if (e == fe_button)
{ {
TRecordset* rs = new_recordset(); TRecordset* rs = new_recordset();
TAlleg_report rep(rs, get_int(F_ANNO)); TAlleg_report rep(rs, *this);
TReport_book book; TReport_book book;
book.add(rep); book.add(rep);
book.print_or_preview(); book.print_or_preview();

View File

@ -4,6 +4,7 @@
#define F_DIR 104 #define F_DIR 104
#define F_NAME 105 #define F_NAME 105
#define F_COFI 106 #define F_COFI 106
#define F_PIVA 107
#define F_CONT 109 #define F_CONT 109
#define F_SOGG 110 #define F_SOGG 110
@ -11,3 +12,4 @@
#define F_CAF 112 #define F_CAF 112
#define F_COMP 113 #define F_COMP 113
#define F_DATA 114 #define F_DATA 114
#define F_FILTRO 115

View File

@ -5,27 +5,82 @@
<section type="Head"> <section type="Head">
<font face="Arial" bold="1" size="8" /> <font face="Arial" bold="1" size="8" />
<field x="67" type="Testo" width="12" pattern="1" text="P.I. &#2F; C.F." /> <field x="67" type="Testo" width="12" pattern="1" text="P.I. &#2F; C.F." />
<field x="84" type="Testo" width="4" pattern="1" text="Anno" /> <field x="84" type="Testo" width="5" pattern="1" text="Anno" />
<field x="89" type="Testo" align="right" width="12" pattern="1" text="Imponibile" /> <field x="89" type="Testo" align="right" width="12" pattern="1" text="Imponibile" />
<field x="100" type="Testo" align="right" width="12" pattern="1" text="Imposta" /> <field x="100" type="Testo" align="right" width="12" pattern="1" text="Imposta" />
<field x="111" type="Testo" align="right" width="12" pattern="1" text="FR005001" /> <field x="111" type="Testo" align="right" width="12" pattern="1" text="FR005001" />
<field x="122" type="Testo" align="right" width="12" pattern="1" text="Non impon." /> <field x="122" type="Testo" align="right" width="12" pattern="1" text="Non impon." />
<field x="133" type="Testo" align="right" width="12" pattern="1" text="Esenti" /> <field x="133" type="Testo" align="right" width="12" pattern="1" text="Esenti" />
<field x="144" type="Testo" align="right" width="12" pattern="1" text="IVA non esp." /> <field x="144" type="Testo" align="right" width="12" pattern="1" text="IVA non esp." />
<field x="155" type="Testo" align="right" width="12" pattern="1" text="Non alleg." /> <field x="155" type="Testo" align="right" width="12" id="107" pattern="1" text="Non alleg." />
<field border="3" y="1" type="Linea" width="168" height="0" pattern="1" /> <field border="3" y="1" type="Linea" width="168" height="0" pattern="1" />
</section> </section>
<section type="Head" level="1" height="4"> <section type="Head" level="1">
<prescript description="H1 PRESCRIPT">MESSAGE RESET,F1</prescript> <prescript description="H1 PRESCRIPT">MESSAGE RESET,F1</prescript>
<field border="3" type="Stringa" valign="center" align="center" shade_offset="25" width="168" height="3"> <field border="3" type="Stringa" valign="center" align="center" shade_offset="25" width="168" height="3">
<font face="Arial" bold="1" size="24" /> <font face="Arial" bold="1" size="24" />
<source>IF(TIPOCF=="C";"Clienti";"Fornitori") + " movimentati nel " + ANNO</source> <source>IF(TIPOCF=="C";"Clienti";"Fornitori") + " movimentati nel " + #ANNO</source>
</field> </field>
<field x="162" y="0.5" type="Stringa" width="5" pattern="1">
<prescript description="H1.0 PRESCRIPT">MESSAGE _PAGENO</prescript>
</field>
<field x="157.29" y="0.58" type="Testo" width="4" pattern="1" text="Pag." />
<field x="30" y="4" type="Array" width="35" pattern="1">
<source>#FILTRO</source>
<list>
<li Value="Tutti" Code=" " />
<li Value="Validi per allegato IVA" Code="0" />
<li Value="Non validi per allegato IVA" Code="1" />
<li Value="Clienti&#2F;Fornitori occasionale" Code="2" />
<li Value="Documenti riepilogativi" Code="3" />
<li Value="Clienti&#2F;Fornitori con codici fiscali gia' inseriti" Code="4" />
<li Value="Clienti&#2F;Fornitori esteri" Code="5" />
<li Value="Clienti&#2F;Fornitori privati" Code="6" />
</list>
</field>
<field x="0.16" y="4.08" type="Testo" width="30" pattern="1" text="Filtro" />
<field y="5" type="Testo" width="30" pattern="1" text="Partita IVA contribuente" />
<field x="30" y="5" type="Stringa" width="17" pattern="1">
<source>#PIVA</source>
</field>
<field x="63" y="5" type="Testo" width="30" pattern="1" text="Codice fiscale soggetto obbligato" />
<field x="90" y="5" type="Stringa" width="17" pattern="1">
<source>#SOGGETTO</source>
</field>
<field x="110" y="5" type="Testo" width="23" pattern="1" text="Scansione per data" />
<field x="133" y="5" type="Array" width="20" pattern="1">
<source>#ALGO</source>
<list>
<li Value="documento" Code="D" />
<li Value="registrazione" Code="R" />
</list>
</field>
<field y="6" type="Testo" width="30" pattern="1" text="Codice fiscale intermediario" />
<field x="30" y="6" type="Stringa" width="17" pattern="1">
<source>#INTERMEDIARIO</source>
</field>
<field x="50" y="6" type="Testo" width="4" pattern="1" text="CAF" />
<field x="54" y="6" type="Numero" align="right" width="5" pattern="1">
<source>#CAF</source>
</field>
<field x="63" y="6" type="Testo" width="27" pattern="1" text="Data impegno alla trasmissione" />
<field x="90" y="6" type="Data" width="10" pattern="1">
<source>#IMPEGNO</source>
</field>
<field x="110" y="6" type="Testo" width="23" pattern="1" text="Dichiarazione compilata da" />
<field x="133" y="6" type="Array" width="20" pattern="1">
<source>#COMPILATORE</source>
<list>
<li Value="contribuente" Code="1" />
<li Value="intermediario" Code="2" />
</list>
</field>
<field border="3" y="7" type="Linea" width="168" height="0" pattern="1" />
</section> </section>
<section type="Body" /> <section type="Body" />
<section type="Body" level="1"> <section type="Body" level="1">
<field type="Numero" width="16" pattern="1"> <field type="Numero" width="16" pattern="1">
<source>CODCF</source> <source>#RECORD.NUMBER</source>
</field> </field>
<field x="10" type="Stringa" width="50" pattern="1"> <field x="10" type="Stringa" width="50" pattern="1">
<font face="Arial" bold="1" size="8" /> <font face="Arial" bold="1" size="8" />
@ -36,7 +91,7 @@
<source>PAIV</source> <source>PAIV</source>
</field> </field>
<field x="84" type="Numero" align="right" width="4" pattern="1"> <field x="84" type="Numero" align="right" width="4" pattern="1">
<source>ANNO</source> <source>#ANNO</source>
</field> </field>
<field x="89" type="Numero" align="right" width="12" pattern="1" hide_zero="1" text="###.###.###"> <field x="89" type="Numero" align="right" width="12" pattern="1" hide_zero="1" text="###.###.###">
<source>C_IMP</source> <source>C_IMP</source>
@ -62,19 +117,15 @@
<source>C_NE</source> <source>C_NE</source>
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,#F1.106</prescript> <prescript description="B1.0 PRESCRIPT">MESSAGE ADD,#F1.106</prescript>
</field> </field>
<field x="155" type="Numero" align="right" width="12" pattern="1" hide_zero="1" text="###.###.###">
<source>C_NA</source>
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,#F1.107</prescript>
</field>
<field y="1" type="Stringa" width="60" pattern="1"> <field y="1" type="Stringa" width="60" pattern="1">
<source>TRIM(INDCF) + " " + CIVCF</source> <source>TRIM(INDCF) + " " + CIVCF</source>
</field> </field>
<field x="63" y="1" type="Testo" width="4" pattern="1" text="C.F." /> <field x="63" y="1" type="Testo" width="4" pattern="1" text="C.F." />
<field x="67" y="1" type="Stringa" width="16" pattern="1"> <field x="67" y="1" type="Stringa" width="17" pattern="1">
<source>COFI</source> <source>COFI</source>
</field> </field>
<field x="84" y="1" type="Numero" align="right" width="4" pattern="1"> <field x="84" y="1" type="Numero" align="right" width="4" pattern="1">
<source>PREC</source> <source>#ANNO-1</source>
</field> </field>
<field x="89" y="1" type="Numero" align="right" width="12" pattern="1" hide_zero="1" text="###.###.###"> <field x="89" y="1" type="Numero" align="right" width="12" pattern="1" hide_zero="1" text="###.###.###">
<source>P_IMP</source> <source>P_IMP</source>
@ -100,20 +151,24 @@
<source>P_NE</source> <source>P_NE</source>
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,#F1.206</prescript> <prescript description="B1.0 PRESCRIPT">MESSAGE ADD,#F1.206</prescript>
</field> </field>
<field x="155" y="1" type="Numero" align="right" width="12" pattern="1" hide_zero="1" text="###.###.###">
<source>P_NA</source>
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,#F1.207</prescript>
</field>
<field y="2" type="Numero" align="right" width="5" pattern="1"> <field y="2" type="Numero" align="right" width="5" pattern="1">
<source>CAPCF</source> <source>CAPCF</source>
</field> </field>
<field x="6" y="2" type="Stringa" width="50" pattern="1"> <field x="6" y="2" type="Stringa" width="50" pattern="1">
<source>DENCOM</source> <source>DENCOM</source>
</field> </field>
<field x="58" y="2" type="Stringa" width="4" pattern="1"> <field x="57" y="2" type="Stringa" width="4" pattern="1">
<source>PROVCOM</source> <source>PROVCOM</source>
</field> </field>
<field x="63" y="2" type="Testo" width="4" pattern="1" text="Cod." />
<field x="67" y="2" type="Numero" align="right" width="7" pattern="1">
<source>CODCF</source>
</field>
<field border="1" y="3" type="Linea" width="168" height="0" pattern="1" /> <field border="1" y="3" type="Linea" width="168" height="0" pattern="1" />
<field x="155" type="Numero" align="right" width="12" id="107" pattern="1" hide_zero="1" text="###.###.###">
<source>C_NA</source>
<prescript description="B1.0 PRESCRIPT">MESSAGE ADD,#F1.107</prescript>
</field>
</section> </section>
<section type="Foot" /> <section type="Foot" />
<section type="Foot" level="1"> <section type="Foot" level="1">
@ -122,10 +177,10 @@
<font face="Arial" bold="1" size="12" /> <font face="Arial" bold="1" size="12" />
</field> </field>
<field x="84" y="0.5" type="Numero" align="right" width="4" pattern="1"> <field x="84" y="0.5" type="Numero" align="right" width="4" pattern="1">
<source>ANNO</source> <source>#ANNO</source>
</field> </field>
<field x="84" y="1.5" type="Numero" align="right" width="4" pattern="1"> <field x="84" y="1.5" type="Numero" align="right" width="4" pattern="1">
<source>PREC</source> <source>#ANNO-1</source>
</field> </field>
<field x="89" y="0.5" type="Numero" align="right" width="12" id="101" pattern="1" hide_zero="1" text="###.###.###" /> <field x="89" y="0.5" type="Numero" align="right" width="12" id="101" pattern="1" hide_zero="1" text="###.###.###" />
<field x="100" y="0.5" type="Numero" align="right" width="12" id="102" pattern="1" hide_zero="1" text="###.###.###" /> <field x="100" y="0.5" type="Numero" align="right" width="12" id="102" pattern="1" hide_zero="1" text="###.###.###" />

View File

@ -28,13 +28,15 @@ BEGIN
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
NUM_EXPR #F_ANNO>=2006 NUM_EXPR #F_ANNO>=2006
WARNING "L'anno non puo' essere antecedente al 2006" WARNING "L'anno non puo' essere antecedente al 2006"
FIELD ANNO
END END
LISTBOX F_ALGO 1 13 LISTBOX F_ALGO 1 13
BEGIN BEGIN
PROMPT 34 1 "Scansione per data " PROMPT 34 1 "Scansione per data "
ITEM "0|registrazione" ITEM "D|documento"
ITEM "1|documento" ITEM "R|registrazione"
FIELD ALGO
END END
BOOLEAN F_COFI BOOLEAN F_COFI
@ -66,16 +68,24 @@ END
STRING F_CONT 16 STRING F_CONT 16
BEGIN BEGIN
PROMPT 2 9 "Codice fiscale contribuente " PROMPT 2 9 "Cod. fisc. contribuente "
FLAGS "U" FLAGS "U"
END END
STRING F_PIVA 11
BEGIN
PROMPT 52 9 "Partita IVA "
FLAGS "UD"
FIELD PIVA
END
STRING F_SOGG 16 STRING F_SOGG 16
BEGIN BEGIN
PROMPT 2 10 "Codice fiscale soggetto obbligato " PROMPT 2 10 "Cod. fisc. soggetto obbligato "
STR_EXPR #F_SOGG!=#F_CONT STR_EXPR #F_SOGG!=#F_CONT
WARNING "Il codice del soggetto deve essere diverso da quello del contribuente" WARNING "Il codice del soggetto deve essere diverso da quello del contribuente"
FLAGS "U" FLAGS "U"
FIELD SOGGETTO
END END
GROUPBOX DLG_NULL 78 5 GROUPBOX DLG_NULL 78 5
@ -89,12 +99,14 @@ BEGIN
STR_EXPR #F_INTR!=#F_CONT STR_EXPR #F_INTR!=#F_CONT
WARNING "Il codice dell'intermediario deve essere diverso da quello del contribuente" WARNING "Il codice dell'intermediario deve essere diverso da quello del contribuente"
FLAGS "U" FLAGS "U"
FIELD INTERMEDIARIO
END END
NUMBER F_CAF 5 NUMBER F_CAF 5
BEGIN BEGIN
PROMPT 42 13 "Iscrizione C.A.F. " PROMPT 42 13 "Iscrizione C.A.F. "
FLAGS "U" FLAGS "U"
FIELD CAF
END END
LISTBOX F_COMP 1 20 LISTBOX F_COMP 1 20
@ -102,6 +114,7 @@ BEGIN
PROMPT 2 14 "Comunicazione predisposta da " PROMPT 2 14 "Comunicazione predisposta da "
ITEM "1|contribuente" ITEM "1|contribuente"
ITEM "2|chi effettua l'invio" ITEM "2|chi effettua l'invio"
FIELD COMPILATORE
END END
DATE F_DATA DATE F_DATA
@ -109,6 +122,7 @@ BEGIN
PROMPT 2 15 "Data dell'impegno alla trasmimssione " PROMPT 2 15 "Data dell'impegno alla trasmimssione "
VALIDATE REQIF_FUNC 1 F_INTR VALIDATE REQIF_FUNC 1 F_INTR
WARNING "Data obbligatoria in presenza di un intermediario" WARNING "Data obbligatoria in presenza di un intermediario"
FIELD IMPEGNO
END END
GROUPBOX DLG_NULL 78 5 GROUPBOX DLG_NULL 78 5
@ -123,6 +137,19 @@ BEGIN
ITEM "F|Fornitori" ITEM "F|Fornitori"
END END
LIST F_FILTRO 2 42
BEGIN
PROMPT 26 18 "Filtro "
ITEM "-1|Tutti"
ITEM "0|Validi per allegato IVA"
ITEM "1|Non validi per allegato IVA"
ITEM "2|Occasionali"
ITEM "3|Documenti riepilogativi"
ITEM "4|Con partita IVA gia' inserita"
ITEM "5|Esteri"
ITEM "6|Privati"
END
BUTTON DLG_SELECT 10 2 BUTTON DLG_SELECT 10 2
BEGIN BEGIN
PROMPT -25 19 "" PROMPT -25 19 ""