Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@21509 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
65e7761630
commit
aa5cb2e27f
@ -575,6 +575,16 @@ CONTI_MOV = 3,1,0|3,5,0|3,45,2|3,45,3|5,601,127|5,601,137|5,601,295|6,1,8|6,1,9|
|
|||||||
IVA_ESENTE = 999
|
IVA_ESENTE = 999
|
||||||
CONTO_OMAGGI=8|15|22
|
CONTO_OMAGGI=8|15|22
|
||||||
|
|
||||||
|
[Indetraibilita]
|
||||||
|
072=9
|
||||||
|
076=9
|
||||||
|
079=9
|
||||||
|
210=E
|
||||||
|
215=D
|
||||||
|
220=A
|
||||||
|
320=C
|
||||||
|
I50=B
|
||||||
|
|
||||||
// parametri generali della maschera (dns user password)
|
// parametri generali della maschera (dns user password)
|
||||||
[Main]
|
[Main]
|
||||||
201 = hardy
|
201 = hardy
|
||||||
|
@ -45,7 +45,6 @@ protected:
|
|||||||
void rec2ini(const TRectype& rec);
|
void rec2ini(const TRectype& rec);
|
||||||
void recset2rec(const TODBC_recordset& recset, TRectype& rec, const TString_array& lista_campi);
|
void recset2rec(const TODBC_recordset& recset, TRectype& rec, const TString_array& lista_campi);
|
||||||
real get_imponibile(const TRectype& rec);
|
real get_imponibile(const TRectype& rec);
|
||||||
real get_netto(const TRectype& rec, const real & lordo);
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual bool trasferisci();
|
virtual bool trasferisci();
|
||||||
@ -338,31 +337,16 @@ real THardy_movimenti::get_imponibile(const TRectype& rec)
|
|||||||
const TString& gruppo = cache().get(LF_RCAUSALI, causale, RCA_GRUPPO);
|
const TString& gruppo = cache().get(LF_RCAUSALI, causale, RCA_GRUPPO);
|
||||||
if (gruppo.blank())
|
if (gruppo.blank())
|
||||||
{
|
{
|
||||||
real& perc = (real&)_ivaind->find(codiva);
|
real imposta = rec.get_real(RMI_IMPOSTA);
|
||||||
imponibile = imponibile+(imponibile*perc)/CENTO;
|
TString& codind = (TString&)_ivaind->find(codiva);
|
||||||
|
real perc(cache().get("%DET", codind, "R0"));
|
||||||
|
imposta = (imposta*perc)/CENTO + 0,01;
|
||||||
|
imposta.round(2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return imponibile;
|
return imponibile;
|
||||||
}
|
}
|
||||||
|
|
||||||
real THardy_movimenti::get_netto(const TRectype& rec, const real & lordo)
|
|
||||||
{
|
|
||||||
real val = lordo;
|
|
||||||
const char* codiva = rec.get(RMI_CODIVA);
|
|
||||||
if (_ivaind->is_key(codiva))
|
|
||||||
{
|
|
||||||
TString16 causale = get_str("IdCausale");
|
|
||||||
causale << "|4";
|
|
||||||
const TString& gruppo = cache().get(LF_RCAUSALI, causale, RCA_GRUPPO);
|
|
||||||
if (gruppo.blank())
|
|
||||||
{
|
|
||||||
real& perc = (real&)_ivaind->find(codiva);
|
|
||||||
val = (val * CENTO)/(CENTO + perc);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
|
|
||||||
// gestisce tutto il procedimento di scrittura su ini delle righe iva e contabili
|
// gestisce tutto il procedimento di scrittura su ini delle righe iva e contabili
|
||||||
bool THardy_movimenti::scrivi_righe()
|
bool THardy_movimenti::scrivi_righe()
|
||||||
{
|
{
|
||||||
@ -426,6 +410,8 @@ bool THardy_movimenti::scrivi_righe()
|
|||||||
{
|
{
|
||||||
TRectype& rec_rmoviva = *(TRectype*)_righeiva->objptr(i);
|
TRectype& rec_rmoviva = *(TRectype*)_righeiva->objptr(i);
|
||||||
const char* codiva = rec_rmoviva.get(RMI_CODIVA);
|
const char* codiva = rec_rmoviva.get(RMI_CODIVA);
|
||||||
|
const TString* codind = (TString*)_ivaind->objptr(codiva);
|
||||||
|
|
||||||
TCodiceIVA c(codiva);
|
TCodiceIVA c(codiva);
|
||||||
const bool riga_omaggio = _ivaoma->is_key(codiva);
|
const bool riga_omaggio = _ivaoma->is_key(codiva);
|
||||||
real imponibile = get_imponibile(rec_rmoviva);
|
real imponibile = get_imponibile(rec_rmoviva);
|
||||||
@ -439,11 +425,19 @@ bool THardy_movimenti::scrivi_righe()
|
|||||||
const real impon = rec_rmoviva.get_real(RMI_IMPONIBILE);
|
const real impon = rec_rmoviva.get_real(RMI_IMPONIBILE);
|
||||||
const real iva = rec_rmoviva.get_real(RMI_IMPOSTA);
|
const real iva = rec_rmoviva.get_real(RMI_IMPOSTA);
|
||||||
c.imposta(importo);
|
c.imposta(importo);
|
||||||
|
// se il codice iva ha una indetraibilità, metto il codice di ind. nella riga iva
|
||||||
|
if (codind != NULL)
|
||||||
|
rec_rmoviva.put(RMI_TIPODET, *codind);
|
||||||
rec_rmoviva.put(RMI_TIPOC, rec_rmov.get(RMV_TIPOC));
|
rec_rmoviva.put(RMI_TIPOC, rec_rmov.get(RMV_TIPOC));
|
||||||
rec_rmoviva.put(RMI_GRUPPO, rec_rmov.get(RMV_GRUPPO));
|
rec_rmoviva.put(RMI_GRUPPO, rec_rmov.get(RMV_GRUPPO));
|
||||||
rec_rmoviva.put(RMI_CONTO, rec_rmov.get(RMV_CONTO));
|
rec_rmoviva.put(RMI_CONTO, rec_rmov.get(RMV_CONTO));
|
||||||
rec_rmoviva.put(RMI_SOTTOCONTO, rec_rmov.get(RMV_SOTTOCONTO));
|
rec_rmoviva.put(RMI_SOTTOCONTO, rec_rmov.get(RMV_SOTTOCONTO));
|
||||||
const real wimp = get_netto(rec_rmoviva, importo);
|
real wimp = impon ;
|
||||||
|
if (importo < imponibile)
|
||||||
|
{
|
||||||
|
wimp *= importo / imponibile;
|
||||||
|
wimp.round(2);
|
||||||
|
}
|
||||||
const real wiva = c.imposta(wimp);
|
const real wiva = c.imposta(wimp);
|
||||||
if (importo < imponibile)
|
if (importo < imponibile)
|
||||||
{
|
{
|
||||||
@ -474,6 +468,9 @@ bool THardy_movimenti::scrivi_righe()
|
|||||||
if (!rec_rmoviva.empty())
|
if (!rec_rmoviva.empty())
|
||||||
{
|
{
|
||||||
const char* codiva = rec_rmoviva.get(RMI_CODIVA);
|
const char* codiva = rec_rmoviva.get(RMI_CODIVA);
|
||||||
|
const TString* codind = (TString*)_ivaind->objptr(codiva);
|
||||||
|
if (codind != NULL)
|
||||||
|
rec_rmoviva.put(RMI_TIPODET, *codind);
|
||||||
const bool riga_omaggio = _ivaoma->is_key(codiva);
|
const bool riga_omaggio = _ivaoma->is_key(codiva);
|
||||||
real imponibile = rec_rmoviva.get_real(RMI_IMPONIBILE);
|
real imponibile = rec_rmoviva.get_real(RMI_IMPONIBILE);
|
||||||
real imposta = rec_rmoviva.get_real(RMI_IMPOSTA);
|
real imposta = rec_rmoviva.get_real(RMI_IMPOSTA);
|
||||||
@ -529,6 +526,8 @@ bool THardy_movimenti::scrivi_righe()
|
|||||||
// procedura principale di conversione
|
// procedura principale di conversione
|
||||||
bool THardy_movimenti::trasferisci()
|
bool THardy_movimenti::trasferisci()
|
||||||
{
|
{
|
||||||
|
TConfig& ini = config();
|
||||||
|
|
||||||
// creazione array delle aliquote iva con % indetraibilità e degli omaggi
|
// creazione array delle aliquote iva con % indetraibilità e degli omaggi
|
||||||
// leggere la tabella hardy AliquoteIVA
|
// leggere la tabella hardy AliquoteIVA
|
||||||
_ivaind->destroy();
|
_ivaind->destroy();
|
||||||
@ -545,8 +544,8 @@ bool THardy_movimenti::trasferisci()
|
|||||||
const int flomaggio = recset_iva.get("FlOmaggio").as_int();
|
const int flomaggio = recset_iva.get("FlOmaggio").as_int();
|
||||||
if (ind != ZERO)
|
if (ind != ZERO)
|
||||||
{
|
{
|
||||||
real* oggetto = new real();
|
TString4 oggetto = ini.get(codiva, "Indetraibilita");
|
||||||
_ivaind->add(codiva, (TObject*)oggetto);
|
_ivaind->add(codiva, oggetto);
|
||||||
}
|
}
|
||||||
if (flomaggio > 0)
|
if (flomaggio > 0)
|
||||||
{
|
{
|
||||||
@ -572,7 +571,6 @@ bool THardy_movimenti::trasferisci()
|
|||||||
query << "' ORDER BY DataMovimento ";
|
query << "' ORDER BY DataMovimento ";
|
||||||
|
|
||||||
TRecordset& recset = create_recordset(query);
|
TRecordset& recset = create_recordset(query);
|
||||||
TConfig& ini = config();
|
|
||||||
|
|
||||||
TString_array lista_campi;
|
TString_array lista_campi;
|
||||||
ini.list_variables(lista_campi, true, "MOV", true);
|
ini.list_variables(lista_campi, true, "MOV", true);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user