Patch level : 12.0 1040

Files correlati     : tutto in
Commento            :

Aggiornato il modulo intra

Interno :

Primo rilascio mancano  la generazione riepiloghi e l'invio delle righe di servizio
This commit is contained in:
Alessandro Bonazzi 2021-03-16 13:42:00 +01:00
parent 0d18d1808a
commit 77e13fc725
2 changed files with 130 additions and 77 deletions

View File

@ -447,6 +447,7 @@ public: // TObject
int regime_speciale() const { return get_int("I5");}
const TString& natura() const { return get("S12"); }
const TString& tipo_intra() const { return get("S13"); }
TCodiceIVA(const char* codice = nullptr);
TCodiceIVA(const TRectype & rec) : TRectype(rec) {}
@ -940,8 +941,8 @@ public:
virtual const TString& query_text() const;
virtual unsigned int columns() const { return _info.items(); }
virtual const TRecordset_column_info& column_info(unsigned int column) const { return (const TRecordset_column_info&)_info[column]; }
// const TString& col2name(unsigned int column) const;
virtual const TVariant& get(unsigned int column) const;
const TVariant& get(const char * name) const;
void set_from(const TDate& from) { set_var("#FROMDATE", from, true); ; }
void set_to(const TDate& to) { set_var("#TODATE", to, true); }
@ -960,6 +961,8 @@ public:
bool set_annual(bool on) { return _annuale = on; }
bool annuale() const { return _annuale; }
virtual bool is_competenza() const { return false; }
virtual int is_intra() const { return false; }
virtual const char * remap_IVA(const char * codIVA, const TISAM_recordset & rmov) const { return codIVA; }
TRiepilogoIVA_recordset();
virtual ~TRiepilogoIVA_recordset() { }

View File

@ -81,8 +81,12 @@ void TRiepilogoIVA_recordset::requery()
recset.set_var("#AMESE", (long)a_mese(), true);
for (bool ok = recset.move_first(); ok; ok = recset.move_next())
{
TString cod = recset.get(RMI_CODIVA).as_string();
TString cod = remap_IVA(recset.get(RMI_CODIVA).as_string(), recset);
if (cod.full())
{
TRiepilogoIVA_record * rec = (TRiepilogoIVA_record *)work_array.objptr(cod);
long gruppo = recset.get(RMI_GRUPPO).as_int();
long conto = recset.get(RMI_CONTO).as_int();
long sottoconto = recset.get(RMI_SOTTOCONTO).as_int();
@ -155,6 +159,7 @@ void TRiepilogoIVA_recordset::requery()
}
}
}
}
TString_array keys;
@ -187,8 +192,10 @@ const TString& TRiepilogoIVA_recordset::query_text() const
{
TString & query = get_tmp_string();
// query << "USE " << LF_RMOVIVA << " KEY 1 SELECT BETWEEN(" << FIELD_NAME(LF_MOV, MOV_DATAREG) << ";" << '"' << "FROMDATE" << '"' << ";" << '"' << "TODATE" << '"' << ")";
query << "USE " << LF_RMOVIVA << " KEY 1 SELECT BETWEEN(" << FIELD_NAME(LF_MOV, MOV_DATAREG) << "; #FROMDATE; #TODATE)";
if (is_intra())
query << "&&(" << FIELD_NAME(LF_CAUSALI, CAU_INTRACOM) << "==\"X\")&&("
<< FIELD_NAME(REG, "I0") << "=\"2\")";
if (codatt().full())
{
// query << "&&(" << FIELD_NAME(REG, "S8") << "==\"" << _codatt << "\")";
@ -198,7 +205,13 @@ const TString& TRiepilogoIVA_recordset::query_text() const
}
else
query << "\nJOIN " << LF_MOV << " INTO " << MOV_NUMREG << "==" << RMI_NUMREG;
// query << "USE " << LF_RMOVIVA << " KEY 1 SELECT BETWEEN(" << LF_MOV << "." << MOV_DATAREG << ";FROMDATE;TODATE) \nJOIN " << LF_MOV << " INTO NUMREG==NUMREG";
if (is_intra())
{
query << "\nJOIN " << LF_CAUSALI << " TO " << LF_MOV << " INTO " << CAU_CODCAUS << "==" << MOV_CODCAUS;
query << "\nJOIN REG TO " << LF_MOV << " INTO CODTAB==" << MAIN_SUB_FIELD_NAME(MOV_DATAREG, 7, 10) << "+" << MOV_REG;
query << "\nJOIN " << LF_CLIFO << " TO " << LF_MOV << " INTO " << CLI_TIPOCF << "==" << MOV_TIPO << " " << CLI_CODCF << "==" << MOV_CODCF;
}
return query;
}
@ -291,6 +304,44 @@ void TRiepilogoIVA_recordset::add_field(TFieldtypes tipo, short id, int width, c
_info.add(i);
}
const TVariant& TRiepilogoIVA_recordset::get(const char * name) const
{
const TString16 fldname(name);
TVariant & v = get_tmp_var();
if (fldname == COD)
return v = get((unsigned int) 0);
else
if (fldname == DESC)
v = get(1);
else
if (fldname == IMPACQ)
v = get(2);
else
if (fldname == IVAACQ)
v = get(3);
else
if (fldname == IMPCORR)
v = get(4);
else
if (fldname == IVACORR)
v = get(5);
else
if (fldname == IMPVEN)
v = get(6);
else
if (fldname == IVAVEN)
v = get(7);
else
if (fldname == IMPACQIND)
v = get(8);
else
if (fldname == IVAACQIND)
v = get(9);
return v;
}
const TVariant& TRiepilogoIVA_recordset::get(unsigned int column) const
{
TVariant & v = get_tmp_var();
@ -300,7 +351,6 @@ const TVariant& TRiepilogoIVA_recordset::get(unsigned int column) const
v = get_field(0, info._name);
}
return v;
}