Regalamiunsorriso/decompiled-libs/www/acxent-common-1.0.1/it/acxent/contab/iva/RiepilogoIva.java

193 lines
7.6 KiB
Java

package it.acxent.contab.iva;
import it.acxent.anag.Iva;
import it.acxent.anag.IvaInterface;
import it.acxent.contab.RigaDocumentoInterface;
import it.acxent.db.ApplParmFull;
import java.util.Enumeration;
import java.util.Hashtable;
public class RiepilogoIva {
private Hashtable<String, RiepilogoIvaItem> ri;
private Hashtable<String, RiepilogoIvaItem> riConPI;
private Hashtable<String, RiepilogoIvaItem> riSenzaPI;
private ApplParmFull ap;
private Iva ivaEsente;
private Iva ivaStdVendite;
private void addFatturaConPi(IvaInterface l_iva, double imponibile, double imposta, double costo, boolean isSplit) {
addFattura(l_iva, imponibile, imposta, costo, 0.0D, 0.0D, getRiConPI(), isSplit);
}
private void addFatturaConPi(Iva l_iva, double imponibile, double imposta, double costo, double speseAccessorie, double arrotondamento, boolean isSplit) {
addFattura(l_iva, imponibile, imposta, costo, speseAccessorie, arrotondamento, getRiConPI(), isSplit);
}
private void addNotaDiCreditoConPI(IvaInterface l_iva, double imponibile, double imposta, double costo, boolean isSplit) {
addFattura(l_iva, -imponibile, -imposta, costo, 0.0D, 0.0D, getRiConPI(), isSplit);
}
private void addNotaDiCreditoConPI(Iva l_iva, double imponibile, double imposta, double costo, double speseAccessorie, double arrotondamento, boolean isSplit) {
addFattura(l_iva, -imponibile, -imposta, costo, speseAccessorie, arrotondamento, getRiConPI(), isSplit);
}
public Enumeration<RiepilogoIvaItem> elements() {
return getRi().elements();
}
public Enumeration<RiepilogoIvaItem> elementsSenzaPI() {
return getRiSenzaPI().elements();
}
public Enumeration<RiepilogoIvaItem> elementsConPI() {
return getRiConPI().elements();
}
public RiepilogoIva() {}
public RiepilogoIva(ApplParmFull theAp) {
setAp(theAp);
}
private Hashtable<String, RiepilogoIvaItem> getRi() {
if (this.ri == null)
this.ri = new Hashtable<>();
return this.ri;
}
private Hashtable<String, RiepilogoIvaItem> getRiConPI() {
if (this.riConPI == null)
this.riConPI = new Hashtable<>();
return this.riConPI;
}
private Hashtable<String, RiepilogoIvaItem> getRiSenzaPI() {
if (this.riSenzaPI == null)
this.riSenzaPI = new Hashtable<>();
return this.riSenzaPI;
}
private void addFattura(IvaInterface l_iva, double imponibile, double imposta, double costo, boolean isSplit) {
addFattura(l_iva, imponibile, imposta, costo, 0.0D, 0.0D, isSplit);
}
private void addFattura(IvaInterface l_iva, double imponibile, double imposta, double costo, double speseAccessorie, double arrotondamento, boolean isSplit) {
addFattura(l_iva, imponibile, imposta, costo, speseAccessorie, arrotondamento, getRi(), isSplit);
}
private void addFattura(IvaInterface l_iva, double imponibile, double imposta, double costo, double speseAccessorie, double arrotondamento, Hashtable<String, RiepilogoIvaItem> RI, boolean isSplit) {
RiepilogoIvaItem rii;
String theKey = String.valueOf(l_iva.getId_iva());
if (RI.containsKey(theKey)) {
rii = RI.get(theKey);
} else {
rii = new RiepilogoIvaItem(l_iva);
}
rii.addImporto(imponibile, imposta, isSplit);
RI.put(theKey, rii);
}
private void addNotaDiCredito(IvaInterface l_iva, double imponibile, double imposta, double costo, boolean isSplit) {
addFattura(l_iva, -imponibile, -imposta, costo, 0.0D, 0.0D, getRi(), isSplit);
}
private void addNotaDiCredito(Iva l_iva, double imponibile, double imposta, double costo, double speseAccessorie, double arrotondamento, boolean isSplit) {
addFattura(l_iva, -imponibile, -imposta, costo, speseAccessorie, arrotondamento, getRi(), isSplit);
}
private void addFatturaSenzaPi(IvaInterface l_iva, double imponibile, double imposta, double costo, boolean isSplit) {
addFattura(l_iva, imponibile, imposta, costo, 0.0D, 0.0D, getRiSenzaPI(), isSplit);
}
private void addFatturaSenzaPi(Iva l_iva, double imponibile, double imposta, double costo, double speseAccessorie, double arrotondamento, boolean isSplit) {
addFattura(l_iva, imponibile, imposta, costo, speseAccessorie, arrotondamento, getRiSenzaPI(), isSplit);
}
private void addNotaDiCreditoSenzaPI(IvaInterface l_iva, double imponibile, double imposta, double costo, boolean isSplit) {
addFattura(l_iva, -imponibile, -imposta, costo, 0.0D, 0.0D, getRiSenzaPI(), isSplit);
}
private void addNotaDiCreditoSenzaPI(Iva l_iva, double imponibile, double imposta, double costo, double speseAccessorie, double arrotondamento, boolean isSplit) {
addFattura(l_iva, -imponibile, -imposta, costo, speseAccessorie, arrotondamento, getRiSenzaPI(), isSplit);
}
public void addRigaDocumento(IvaInterface l_iva, double imponibile, double imposta, boolean isNotaDiCredito, boolean isPartitaIva, boolean isSplit) {
if (!isNotaDiCredito) {
addFattura(l_iva, imponibile, imposta, 0.0D, isSplit);
} else {
addNotaDiCredito(l_iva, imponibile, imposta, 0.0D, isSplit);
}
if (!isPartitaIva) {
if (!isNotaDiCredito) {
addFatturaSenzaPi(l_iva, imponibile, imposta, 0.0D, isSplit);
} else {
addNotaDiCreditoSenzaPI(l_iva, imponibile, imposta, 0.0D, isSplit);
}
} else if (!isNotaDiCredito) {
addFatturaConPi(l_iva, imponibile, imposta, 0.0D, isSplit);
} else {
addNotaDiCreditoConPI(l_iva, imponibile, imposta, 0.0D, isSplit);
}
}
public void addRigaRegistroIvaItem(RigaRegistroIvaItem rrii, boolean isNotaDiCredito, boolean isPartitaIva, boolean isSplit) {
addRigaDocumento(rrii.getIva(), rrii.getImponibile(), rrii.getImportoIva(), isNotaDiCredito, isPartitaIva, isSplit);
}
private void addRigaDocumento(RigaDocumentoInterface rigaDocumento, boolean isSplit) {
double imponibile, iva;
if (!rigaDocumento.getIva().isRegimeMargine()) {
imponibile = rigaDocumento.getRDITotImponibile();
iva = rigaDocumento.getRDITotImposta();
} else {
imponibile = rigaDocumento.getRDITotImponibileRM();
iva = 0.0D;
}
String codIva = rigaDocumento.getIva().getDescrizione();
if (!rigaDocumento.isRDINotaCredito()) {
addFattura(rigaDocumento.getIva(), imponibile, iva, rigaDocumento.getRDITotCosto(), isSplit);
} else {
addNotaDiCredito(rigaDocumento.getIva(), imponibile, iva, rigaDocumento.getRDITotCosto(), isSplit);
}
if (!rigaDocumento.isRDIPIva()) {
if (!rigaDocumento.isRDINotaCredito()) {
addFatturaSenzaPi(rigaDocumento.getIva(), imponibile, iva, rigaDocumento.getRDITotCosto(), isSplit);
} else {
addNotaDiCreditoSenzaPI(rigaDocumento.getIva(), imponibile, iva, rigaDocumento.getRDITotCosto(), isSplit);
}
} else if (!rigaDocumento.isRDINotaCredito()) {
addFatturaConPi(rigaDocumento.getIva(), imponibile, iva, rigaDocumento.getRDITotCosto(), isSplit);
} else {
addNotaDiCreditoConPI(rigaDocumento.getIva(), imponibile, iva, rigaDocumento.getRDITotCosto(), isSplit);
}
}
private ApplParmFull getApFull() {
return this.ap;
}
private Iva getIvaEsente() {
if (this.ivaEsente == null) {
this.ivaEsente = new Iva(getApFull());
this.ivaEsente.findByPrimaryKey(getApFull().getParm("CODICE_IVA_ESENTE").getNumeroLong());
}
return this.ivaEsente;
}
private Iva getIvaStdVendite() {
if (this.ivaStdVendite == null) {
this.ivaStdVendite = new Iva(getApFull());
this.ivaStdVendite.findByPrimaryKey(getApFull().getParm("CODICE_IVA_STD_VEND").getNumeroLong());
}
return this.ivaStdVendite;
}
private void setAp(ApplParmFull ap) {
this.ap = ap;
}
}