All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pablodomingos.classes.rps.RpsValores Maven / Gradle / Ivy

package com.pablodomingos.classes.rps;

import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.Digits;
import javax.validation.constraints.NotNull;

import com.pablodomingos.classes.rps.builders.ValoresBuilder;
import com.pablodomingos.classes.rps.enums.IssRetido;
import com.pablodomingos.conversores.DoubleConversor;
import com.pablodomingos.util.DoubleUtil;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamConverter;

@XStreamConverter(DoubleConversor.class)
public class RpsValores {

  @XStreamAlias("ValorServicos")
  @NotNull
  @Digits(integer=13, fraction=2)
  @DecimalMin("0.01")
  private Double valorServicos;

  @XStreamAlias("ValorDeducoes")
  @Digits(integer=13, fraction=2)
  private Double valorDeducoes;

  @XStreamAlias("ValorPis")
  @Digits(integer=13, fraction=2)
  private Double valorPis;

  @XStreamAlias("ValorCofins")
  @Digits(integer=13, fraction=2)
  private Double valorCofins;

  @XStreamAlias("ValorInss")
  @Digits(integer=13, fraction=2)
  private Double valorInss;

  @XStreamAlias("ValorIr")
  @Digits(integer=13, fraction=2)
  private Double valorIr;

  @XStreamAlias("ValorCsll")
  @Digits(integer=13, fraction=2)
  private Double valorCsll;

  @XStreamAlias("IssRetido")
  @NotNull
  private IssRetido issRetido;

  @XStreamAlias("ValorIss")
  @Digits(integer=13, fraction=2)
  private Double valorIss;

  @XStreamAlias("ValorIssRetido")
  @Digits(integer=13, fraction=2)
  private Double valorIssRetido;
  
  @XStreamAlias("OutrasRetencoes")
  @Digits(integer=13, fraction=2)
  private Double outrasRetencoes;

  @XStreamAlias("BaseCalculo")
  @Digits(integer=13, fraction=2)
  private Double baseCalculo;
  
  @XStreamAlias("Aliquota")
  @Digits(integer=13, fraction=2)
  private Double aliquota;

  @XStreamAlias("ValorLiquidoNfse")
  @NotNull
  @Digits(integer=13, fraction=2)
  @DecimalMin("0.01")
  private Double valorLiquido;
  
  @XStreamAlias("DescontoIncondicionado")
  @Digits(integer=13, fraction=2)
  private Double descontoIncondicionado;

  @XStreamAlias("DescontoCondicionado")
  @Digits(integer=13, fraction=2)
  private Double descontoCondicionado;

  public RpsValores(ValoresBuilder builder) {
    this.valorServicos = builder.getValorServicos();
    this.valorDeducoes = builder.getValorDeducoes();
    this.valorPis = builder.getValorPis();
    this.valorCofins = builder.getValorCofins();
    this.valorInss = builder.getValorInss();
    this.valorIr = builder.getValorIr();
    this.valorCsll = builder.getValorCsll();
    this.issRetido = builder.getIssRetido();
    this.outrasRetencoes = builder.getOutrasRetencoes();
    this.aliquota = builder.getAliquota();
    this.descontoIncondicionado = builder.getDescontoIncondicionado();
    this.descontoCondicionado = builder.getDescontoCondicionado();
    
    if(this.issRetido.equals(IssRetido.NAO)){
      this.valorIss = DoubleUtil.arredondarDuasCasas(calcularIss());
    }else {
      this.valorIssRetido = DoubleUtil.arredondarDuasCasas(calcularIss());
    }
    
    this.baseCalculo = DoubleUtil.arredondarDuasCasas(calcularBaseCalculo());
    this.valorLiquido = DoubleUtil.arredondarDuasCasas(calcularValorLiquido());
  }

  public Double getValorServicos() {
    return valorServicos;
  }

  public Double getValorDeducoes() {
    return valorDeducoes;
  }

  public Double getValorPis() {
    return valorPis;
  }

  public Double getValorCofins() {
    return valorCofins;
  }

  public Double getValorInss() {
    return valorInss;
  }

  public Double getValorIr() {
    return valorIr;
  }

  public Double getValorCsll() {
    return valorCsll;
  }

  public Double getOutrasRetencoes() {
    return outrasRetencoes;
  }

  public Double getValorIss() {
    return valorIss;
  }

  public Double getAliquota() {
    return aliquota;
  }

  public Double getDescontoIncondicionado() {
    return descontoIncondicionado;
  }

  public Double getDescontoCondicionado() {
    return descontoCondicionado;
  }

  public IssRetido getIssRetido() {
    return issRetido;
  }

  public Double getValorIssRetido() {
    return valorIssRetido;
  }

  public Double getBaseCalculo() {
    return baseCalculo;
  }

  public Double getValorLiquido() {
    return valorLiquido;
  }

  private Double calcularIss() {
      return this.valorServicos * this.aliquota;
  }
  
  private Double calcularValorLiquido() {
    return  this.valorServicos - 
            (this.valorPis == null ? 0 : this.valorPis) -
            (this.valorCofins == null ? 0 : this.valorCofins) -
            (this.valorInss == null ? 0 : this.valorInss) -
            (this.valorIr == null ? 0 : this.valorIr) -
            (this.valorCsll == null ? 0 : this.valorCsll) -
            (this.outrasRetencoes == null ? 0 : this.outrasRetencoes) -
            (this.valorIssRetido == null ? 0 : this.valorIssRetido) -
            (this.descontoCondicionado == null ? 0 : this.descontoCondicionado) -
            (this.descontoIncondicionado == null ? 0 : this.descontoIncondicionado);
  }
  
  private Double calcularBaseCalculo() {
    return  this.valorServicos - 
            (this.valorDeducoes == null ? 0 : this.valorDeducoes) -
            (this.descontoIncondicionado == null ? 0 : this.descontoIncondicionado);
  }
  

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy