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
|
||||
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)
|
||||
[Main]
|
||||
201 = hardy
|
||||
|
@ -45,7 +45,6 @@ protected:
|
||||
void rec2ini(const TRectype& rec);
|
||||
void recset2rec(const TODBC_recordset& recset, TRectype& rec, const TString_array& lista_campi);
|
||||
real get_imponibile(const TRectype& rec);
|
||||
real get_netto(const TRectype& rec, const real & lordo);
|
||||
|
||||
public:
|
||||
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);
|
||||
if (gruppo.blank())
|
||||
{
|
||||
real& perc = (real&)_ivaind->find(codiva);
|
||||
imponibile = imponibile+(imponibile*perc)/CENTO;
|
||||
real imposta = rec.get_real(RMI_IMPOSTA);
|
||||
TString& codind = (TString&)_ivaind->find(codiva);
|
||||
real perc(cache().get("%DET", codind, "R0"));
|
||||
imposta = (imposta*perc)/CENTO + 0,01;
|
||||
imposta.round(2);
|
||||
}
|
||||
}
|
||||
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
|
||||
bool THardy_movimenti::scrivi_righe()
|
||||
{
|
||||
@ -426,6 +410,8 @@ bool THardy_movimenti::scrivi_righe()
|
||||
{
|
||||
TRectype& rec_rmoviva = *(TRectype*)_righeiva->objptr(i);
|
||||
const char* codiva = rec_rmoviva.get(RMI_CODIVA);
|
||||
const TString* codind = (TString*)_ivaind->objptr(codiva);
|
||||
|
||||
TCodiceIVA c(codiva);
|
||||
const bool riga_omaggio = _ivaoma->is_key(codiva);
|
||||
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 iva = rec_rmoviva.get_real(RMI_IMPOSTA);
|
||||
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_GRUPPO, rec_rmov.get(RMV_GRUPPO));
|
||||
rec_rmoviva.put(RMI_CONTO, rec_rmov.get(RMV_CONTO));
|
||||
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);
|
||||
if (importo < imponibile)
|
||||
{
|
||||
@ -474,6 +468,9 @@ bool THardy_movimenti::scrivi_righe()
|
||||
if (!rec_rmoviva.empty())
|
||||
{
|
||||
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);
|
||||
real imponibile = rec_rmoviva.get_real(RMI_IMPONIBILE);
|
||||
real imposta = rec_rmoviva.get_real(RMI_IMPOSTA);
|
||||
@ -529,6 +526,8 @@ bool THardy_movimenti::scrivi_righe()
|
||||
// procedura principale di conversione
|
||||
bool THardy_movimenti::trasferisci()
|
||||
{
|
||||
TConfig& ini = config();
|
||||
|
||||
// creazione array delle aliquote iva con % indetraibilità e degli omaggi
|
||||
// leggere la tabella hardy AliquoteIVA
|
||||
_ivaind->destroy();
|
||||
@ -545,8 +544,8 @@ bool THardy_movimenti::trasferisci()
|
||||
const int flomaggio = recset_iva.get("FlOmaggio").as_int();
|
||||
if (ind != ZERO)
|
||||
{
|
||||
real* oggetto = new real();
|
||||
_ivaind->add(codiva, (TObject*)oggetto);
|
||||
TString4 oggetto = ini.get(codiva, "Indetraibilita");
|
||||
_ivaind->add(codiva, oggetto);
|
||||
}
|
||||
if (flomaggio > 0)
|
||||
{
|
||||
@ -572,7 +571,6 @@ bool THardy_movimenti::trasferisci()
|
||||
query << "' ORDER BY DataMovimento ";
|
||||
|
||||
TRecordset& recset = create_recordset(query);
|
||||
TConfig& ini = config();
|
||||
|
||||
TString_array lista_campi;
|
||||
ini.list_variables(lista_campi, true, "MOV", true);
|
||||
|
Loading…
x
Reference in New Issue
Block a user