Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@21516 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
a0b3256f45
commit
b336320820
111
ha/hacnv200.cpp
111
ha/hacnv200.cpp
@ -210,6 +210,8 @@ bool THardy_movimenti::test_moviva()
|
|||||||
_conf->set(MOV_TIPO, tipoc);
|
_conf->set(MOV_TIPO, tipoc);
|
||||||
_conf->set(MOV_CODCF, so);
|
_conf->set(MOV_CODCF, so);
|
||||||
real totdoc = recset.get("TotDocumento").as_real();
|
real totdoc = recset.get("TotDocumento").as_real();
|
||||||
|
if (totdoc == ZERO)
|
||||||
|
_conf->set("SOLAIVA", "X");
|
||||||
_conf->set(MOV_TOTDOC, totdoc.string(0,2));
|
_conf->set(MOV_TOTDOC, totdoc.string(0,2));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -409,55 +411,72 @@ bool THardy_movimenti::scrivi_righe()
|
|||||||
// se lo trovo assegno quel codice iva al conto contabile trovato e cancello la riga iva e la riga contabile
|
// se lo trovo assegno quel codice iva al conto contabile trovato e cancello la riga iva e la riga contabile
|
||||||
for (int i=0;i<_righeiva->items();i++)
|
for (int i=0;i<_righeiva->items();i++)
|
||||||
{
|
{
|
||||||
TRectype& rec_rmoviva = *(TRectype*)_righeiva->objptr(i);
|
// se le righe contabili sono 1, su tutte le righe iva metto quel conto, da brava massaia ...
|
||||||
const char* codiva = rec_rmoviva.get(RMI_CODIVA);
|
if (_righecont->items()==1)
|
||||||
const TString* codind = (TString*)_ivaind->objptr(codiva);
|
|
||||||
|
|
||||||
TCodiceIVA c(codiva);
|
|
||||||
const bool riga_omaggio = _ivaoma->is_key(codiva);
|
|
||||||
real imponibile = get_imponibile(rec_rmoviva);
|
|
||||||
|
|
||||||
for (int j=0;j<_righecont->items();j++)
|
|
||||||
{
|
{
|
||||||
TRectype& rec_rmov = *(TRectype*)_righecont->objptr(j);
|
TRectype& rec_rmoviva = *(TRectype*)_righeiva->objptr(i);
|
||||||
real importo = rec_rmov.get_real(RMV_IMPORTO);
|
TRectype& rec_rmov = *(TRectype*)_righecont->objptr(0);
|
||||||
if ((!riga_omaggio) && (importo <= imponibile))
|
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));
|
||||||
|
paragraph.format("%d,%d",LF_RMOVIVA, nrigai++);
|
||||||
|
_conf->set_paragraph(paragraph); // riga iva
|
||||||
|
rec2ini(rec_rmoviva);
|
||||||
|
rec_rmoviva.zero();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
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);
|
||||||
|
|
||||||
|
for (int j=0;j<_righecont->items();j++)
|
||||||
{
|
{
|
||||||
const real impon = rec_rmoviva.get_real(RMI_IMPONIBILE);
|
TRectype& rec_rmov = *(TRectype*)_righecont->objptr(j);
|
||||||
const real iva = rec_rmoviva.get_real(RMI_IMPOSTA);
|
real importo = rec_rmov.get_real(RMV_IMPORTO);
|
||||||
c.imposta(importo);
|
if ((!riga_omaggio) && (importo <= imponibile))
|
||||||
// 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));
|
|
||||||
real wimp = impon ;
|
|
||||||
if (importo < imponibile)
|
|
||||||
{
|
{
|
||||||
wimp *= importo / imponibile;
|
const real impon = rec_rmoviva.get_real(RMI_IMPONIBILE);
|
||||||
wimp.round(2);
|
const real iva = rec_rmoviva.get_real(RMI_IMPOSTA);
|
||||||
}
|
c.imposta(importo);
|
||||||
const real wiva = c.imposta(wimp);
|
// se il codice iva ha una indetraibilità, metto il codice di ind. nella riga iva
|
||||||
if (importo < imponibile)
|
if (codind != NULL)
|
||||||
{
|
rec_rmoviva.put(RMI_TIPODET, *codind);
|
||||||
rec_rmoviva.put(RMI_IMPONIBILE, wimp);
|
rec_rmoviva.put(RMI_TIPOC, rec_rmov.get(RMV_TIPOC));
|
||||||
rec_rmoviva.put(RMI_IMPOSTA, wiva);
|
rec_rmoviva.put(RMI_GRUPPO, rec_rmov.get(RMV_GRUPPO));
|
||||||
}
|
rec_rmoviva.put(RMI_CONTO, rec_rmov.get(RMV_CONTO));
|
||||||
paragraph.format("%d,%d",LF_RMOVIVA, nrigai++);
|
rec_rmoviva.put(RMI_SOTTOCONTO, rec_rmov.get(RMV_SOTTOCONTO));
|
||||||
_conf->set_paragraph(paragraph); // riga iva
|
real wimp = impon ;
|
||||||
rec2ini(rec_rmoviva);
|
if (importo < imponibile)
|
||||||
_righecont->destroy(j, true);
|
{
|
||||||
j = _righecont->items();
|
wimp *= importo / imponibile;
|
||||||
if (importo == imponibile)
|
wimp.round(2);
|
||||||
rec_rmoviva.zero();
|
}
|
||||||
else
|
const real wiva = c.imposta(wimp);
|
||||||
{
|
if (importo < imponibile)
|
||||||
rec_rmoviva.put(RMI_IMPONIBILE, impon - wimp);
|
{
|
||||||
rec_rmoviva.put(RMI_IMPOSTA, iva - wiva);
|
rec_rmoviva.put(RMI_IMPONIBILE, wimp);
|
||||||
}
|
rec_rmoviva.put(RMI_IMPOSTA, wiva);
|
||||||
}
|
}
|
||||||
|
paragraph.format("%d,%d",LF_RMOVIVA, nrigai++);
|
||||||
|
_conf->set_paragraph(paragraph); // riga iva
|
||||||
|
rec2ini(rec_rmoviva);
|
||||||
|
_righecont->destroy(j, true);
|
||||||
|
j = _righecont->items();
|
||||||
|
if (importo == imponibile)
|
||||||
|
rec_rmoviva.zero();
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rec_rmoviva.put(RMI_IMPONIBILE, impon - wimp);
|
||||||
|
rec_rmoviva.put(RMI_IMPOSTA, iva - wiva);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_righecont->pack();
|
_righecont->pack();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user