bug#10822

dev:thiago
qua:

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@81498 d1611594-4594-4d17-8e1d-87c2c4800839
master
valdevir 2018-04-30 21:53:29 +00:00
parent 20a7ed461d
commit f46e67b9d1
9 changed files with 303 additions and 77 deletions

View File

@ -0,0 +1,7 @@
package com.rjconsultores.ventaboletos.dao;
import com.rjconsultores.ventaboletos.entidad.IntegracaoTotvs;
public interface IntegracaoTotvsDAO extends GenericDAO<IntegracaoTotvs, Integer> {
}

View File

@ -0,0 +1,20 @@
package com.rjconsultores.ventaboletos.dao;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository;
import com.rjconsultores.ventaboletos.dao.hibernate.GenericHibernateDAO;
import com.rjconsultores.ventaboletos.entidad.IntegracaoTotvs;
@Repository("IntgeracaoTotvsDAO")
public class IntgeracaoTotvsHibernateDAO extends GenericHibernateDAO<IntegracaoTotvs, Integer>
implements IntegracaoTotvsDAO {
@Autowired
public IntgeracaoTotvsHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
setSessionFactory(factory);
}
}

View File

@ -271,14 +271,14 @@ public class Caja implements java.io.Serializable {
private String ccf; private String ccf;
@Temporal(TemporalType.DATE) @Temporal(TemporalType.DATE)
@Column(name = "FECHORVENTA_H", length = 7) @Column(name = "FECHORVENTA_H")
private Date fechorventaH; private Date fechorventaH;
@Column(name = "SERIEIMPFISCALORIGINAL", length = 6) @Column(name = "SERIEIMPFISCALORIGINAL", length = 6)
private String serieimpfiscaloriginal; private String serieimpfiscaloriginal;
@Column(name = "INDINTEGRADOAG", nullable = false, precision = 1, scale = 0) @Column(name = "INDINTEGRADOAG", precision = 1, scale = 0)
private boolean indintegradoag; private Boolean indintegradoag;
@Column(name = "TRANSACAO_ID", precision = 15, scale = 0) @Column(name = "TRANSACAO_ID", precision = 15, scale = 0)
private Long transacaoId; private Long transacaoId;
@ -309,10 +309,16 @@ public class Caja implements java.io.Serializable {
@Column(name = "SEXO", length = 1) @Column(name = "SEXO", length = 1)
private String sexo; private String sexo;
@OneToMany(mappedBy = "caja") @OneToMany(mappedBy = "caja")
private List<CajaFormaPago> cajaFormaPago; private List<CajaFormaPago> cajaFormaPago;
@Column(name = "INTEGRADOTOTVS", precision = 1, scale = 0)
private Integer integradoTotvs;
@Column(name = "ERRO", precision = 1, scale = 0)
private String erro;
public Caja() { public Caja() {
} }
@ -340,7 +346,7 @@ public class Caja implements java.io.Serializable {
Integer levanteId, Integer rutaId, String serieimpfiscal, Date fecintegracion, Integer ptovtaventaId, Integer levanteId, Integer rutaId, String serieimpfiscal, Date fecintegracion, Integer ptovtaventaId,
Boolean indremotoinverso, Date fecnacimiento, String dispositivoembarcada, Long numerobilheteembarcada, Boolean indremotoinverso, Date fecnacimiento, String dispositivoembarcada, Long numerobilheteembarcada,
String numasientovinculado, String ccf, Date fechorventaH, String serieimpfiscaloriginal, String numasientovinculado, String ccf, Date fechorventaH, String serieimpfiscaloriginal,
boolean indintegradoag, Long transacaoId, Long transacaooriginalId, String descnumdoc, String descnumdoc2, Boolean indintegradoag, Long transacaoId, Long transacaooriginalId, String descnumdoc, String descnumdoc2,
String desctipodoc, String desctipodoc2, String desctelefono, Long aidfId, String nacionalidad, String desctipodoc, String desctipodoc2, String desctelefono, Long aidfId, String nacionalidad,
String sexo) { String sexo) {
this.cajaId = cajaId; this.cajaId = cajaId;
@ -1103,11 +1109,11 @@ public class Caja implements java.io.Serializable {
this.serieimpfiscaloriginal = serieimpfiscaloriginal; this.serieimpfiscaloriginal = serieimpfiscaloriginal;
} }
public boolean isIndintegradoag() { public Boolean isIndintegradoag() {
return this.indintegradoag; return this.indintegradoag;
} }
public void setIndintegradoag(boolean indintegradoag) { public void setIndintegradoag(Boolean indintegradoag) {
this.indintegradoag = indintegradoag; this.indintegradoag = indintegradoag;
} }
@ -1199,4 +1205,20 @@ public class Caja implements java.io.Serializable {
this.cajaFormaPago = cajaFormaPago; this.cajaFormaPago = cajaFormaPago;
} }
public Integer getIntegradoTotvs() {
return integradoTotvs;
}
public void setIntegradoTotvs(Integer integradoTotvs) {
this.integradoTotvs = integradoTotvs;
}
public String getErro() {
return erro;
}
public void setErro(String erro) {
this.erro = erro;
}
} }

View File

@ -1,5 +1,134 @@
package com.rjconsultores.ventaboletos.entidad; package com.rjconsultores.ventaboletos.entidad;
public class IntegracaoTotvs { import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
@Entity
@SequenceGenerator(name = "INTEGRACAOTOTVS_SEQ", sequenceName = "INTEGRACAOTOTVS_SEQ", allocationSize = 1)
@Table(name = "INTEGRACAO_TOTVS")
public class IntegracaoTotvs implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@GeneratedValue(strategy = GenerationType.AUTO, generator = "INTEGRACAOTOTVS_SEQ")
@Column(name = "INTEGRACAOTOTVS_ID")
private Integer integracaoTotvsId;
@Column(name = "DESC_INTEGRACAO")
private String descIntegracao;
@Column(name = "ESQUEMACORRIDA_ID")
private Integer esquemaCorridaId;
@Column(name = "FECFIN")
private Date fecFin;
@Column(name = "FECINI")
private Date fecInicio;
@Column(name = "FECMODIF")
private Date fecmodif;
@Column(name = "PUNTOVENTA_ID")
private Integer puntoVentaId;
@Column(name = "EMPRESA_ID")
private Integer empresaId;
@Column(name = "USUARIO_ID")
private Integer usuarioId;
@Column(name = "QTDEREGISTROSATUALIZADOS")
private Integer qtdadeResgistrosAtualizados;
@Column(name = "ACTIVO")
private Boolean activo;
public Integer getIntegracaoTotvsId() {
return integracaoTotvsId;
}
public void setIntegracaoTotvsId(Integer integracaoTotvsId) {
this.integracaoTotvsId = integracaoTotvsId;
}
public String getDescIntegracao() {
return descIntegracao;
}
public void setDescIntegracao(String descIntegracao) {
this.descIntegracao = descIntegracao;
}
public Integer getEsquemaCorridaId() {
return esquemaCorridaId;
}
public void setEsquemaCorridaId(Integer esquemaCorridaId) {
this.esquemaCorridaId = esquemaCorridaId;
}
public Date getFecFin() {
return fecFin;
}
public void setFecFin(Date fecFin) {
this.fecFin = fecFin;
}
public Date getFecInicio() {
return fecInicio;
}
public void setFecInicio(Date fecInicio) {
this.fecInicio = fecInicio;
}
public Date getFecmodif() {
return fecmodif;
}
public void setFecmodif(Date fecmodif) {
this.fecmodif = fecmodif;
}
public Integer getPuntoVentaId() {
return puntoVentaId;
}
public void setPuntoVentaId(Integer puntoVentaId) {
this.puntoVentaId = puntoVentaId;
}
public Integer getUsuarioId() {
return usuarioId;
}
public void setUsuarioId(Integer usuarioId) {
this.usuarioId = usuarioId;
}
public Boolean getActivo() {
return activo;
}
public void setActivo(Boolean activo) {
this.activo = activo;
}
public Integer getQtdadeResgistrosAtualizados() {
return qtdadeResgistrosAtualizados;
}
public void setQtdadeResgistrosAtualizados(Integer qtdadeResgistrosAtualizados) {
this.qtdadeResgistrosAtualizados = qtdadeResgistrosAtualizados;
}
public Integer getEmpresaId() {
return empresaId;
}
public void setEmpresaId(Integer empresaId) {
this.empresaId = empresaId;
}
} }

View File

@ -5,6 +5,7 @@ import java.util.List;
import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
import com.rjconsultores.ventaboletos.entidad.Usuario;
import com.rjconsultores.ventaboletos.exception.BusinessException; import com.rjconsultores.ventaboletos.exception.BusinessException;
public interface IntegracaoTotvsService { public interface IntegracaoTotvsService {
@ -16,4 +17,6 @@ public interface IntegracaoTotvsService {
public List<PuntoVenta> buscaPuntoVentaEmpresa(Empresa empresa) throws Exception; public List<PuntoVenta> buscaPuntoVentaEmpresa(Empresa empresa) throws Exception;
public Integer solicitaReIntegracaoBilhete(Empresa empresa, Date dataInicial, Date dataFinal, PuntoVenta puntoVenta, Usuario usuario) throws BusinessException;
} }

View File

@ -11,7 +11,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;

View File

@ -5,21 +5,27 @@ import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.rjconsultores.ventaboletos.dao.CajaDAO; import com.rjconsultores.ventaboletos.dao.CajaDAO;
import com.rjconsultores.ventaboletos.dao.CorridaDAO; import com.rjconsultores.ventaboletos.dao.CorridaDAO;
import com.rjconsultores.ventaboletos.dao.EsquemaCorridaDAO; import com.rjconsultores.ventaboletos.dao.EsquemaCorridaDAO;
import com.rjconsultores.ventaboletos.dao.IntegracaoTotvsDAO;
import com.rjconsultores.ventaboletos.dao.MarcaDAO; import com.rjconsultores.ventaboletos.dao.MarcaDAO;
import com.rjconsultores.ventaboletos.dao.PuntoVentaDAO; import com.rjconsultores.ventaboletos.dao.PuntoVentaDAO;
import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.IntegracaoTotvs;
import com.rjconsultores.ventaboletos.entidad.Marca; import com.rjconsultores.ventaboletos.entidad.Marca;
import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
import com.rjconsultores.ventaboletos.entidad.Usuario;
import com.rjconsultores.ventaboletos.exception.BusinessException; import com.rjconsultores.ventaboletos.exception.BusinessException;
import com.rjconsultores.ventaboletos.service.IntegracaoTotvsService; import com.rjconsultores.ventaboletos.service.IntegracaoTotvsService;
@Service("integracaoTotvsService") @Service("integracaoTotvsService")
public class IntegracaoTotvsServiceImpl implements IntegracaoTotvsService { public class IntegracaoTotvsServiceImpl implements IntegracaoTotvsService {
private static final String BILHETE = "BILHETE";
@Autowired @Autowired
CajaDAO cajaDao; CajaDAO cajaDao;
@ -35,6 +41,9 @@ public class IntegracaoTotvsServiceImpl implements IntegracaoTotvsService {
@Autowired @Autowired
EsquemaCorridaDAO esquemaCorridaDao; EsquemaCorridaDAO esquemaCorridaDao;
@Autowired
IntegracaoTotvsDAO integracaoTotvsDAO;
@Override @Override
public Integer atualizaStstausBilhetesIntegrar(Empresa empresa, Date dataInicial, Date dataFinal, PuntoVenta puntoVenta) throws BusinessException { public Integer atualizaStstausBilhetesIntegrar(Empresa empresa, Date dataInicial, Date dataFinal, PuntoVenta puntoVenta) throws BusinessException {
Marca marca = null; Marca marca = null;
@ -50,6 +59,26 @@ public class IntegracaoTotvsServiceImpl implements IntegracaoTotvsService {
} }
@Override
@Transactional
public Integer solicitaReIntegracaoBilhete(Empresa empresa, Date dataInicial, Date dataFinal, PuntoVenta puntoVenta, Usuario usuario) throws BusinessException {
Integer retorno = atualizaStstausBilhetesIntegrar(empresa, dataInicial, dataFinal, puntoVenta);
if (retorno.intValue() > 0) {
IntegracaoTotvs integracaoTotvs = new IntegracaoTotvs();
integracaoTotvs.setDescIntegracao(BILHETE);
integracaoTotvs.setFecInicio(dataInicial);
integracaoTotvs.setFecFin(dataFinal);
integracaoTotvs.setFecmodif(new Date());
integracaoTotvs.setPuntoVentaId(puntoVenta.getPuntoventaId());
integracaoTotvs.setEmpresaId(empresa.getEmpresaId());
integracaoTotvs.setUsuarioId(usuario.getUsuarioId());
integracaoTotvs.setActivo(Boolean.TRUE);
integracaoTotvs.setQtdadeResgistrosAtualizados(retorno);
integracaoTotvsDAO.suscribir(integracaoTotvs);
}
return retorno;
}
@Override @Override
public Integer atualizaStstausServicosIntegrar(Empresa empresa, Integer numServico) throws BusinessException { public Integer atualizaStstausServicosIntegrar(Empresa empresa, Integer numServico) throws BusinessException {
Marca marca = null; Marca marca = null;

View File

@ -251,6 +251,14 @@ public final class DateUtil {
return null; return null;
} }
public static String getStringDateHour(java.util.Date d) {
if (d != null) {
DateFormat df = new SimpleDateFormat(ddMMaaHHmm);
return df.format(d);
}
return null;
}
public static String getStringDate(java.util.Date d) { public static String getStringDate(java.util.Date d) {
return getStringDate(d, "dd/MM/yyyy"); return getStringDate(d, "dd/MM/yyyy");
} }
@ -596,37 +604,37 @@ public final class DateUtil {
*/ */
public static Set<Integer> carregarDiasCompetencia(String competencia, Date dataMovimento) { public static Set<Integer> carregarDiasCompetencia(String competencia, Date dataMovimento) {
Set<Integer> diasCompetencia = new TreeSet<Integer>(); Set<Integer> diasCompetencia = new TreeSet<Integer>();
if(competencia== null && dataMovimento!=null){ if (competencia == null && dataMovimento != null) {
Integer diaInteger = new Integer (getStringDate(dataMovimento).split("/")[0]); Integer diaInteger = new Integer(getStringDate(dataMovimento).split("/")[0]);
diasCompetencia.add(diaInteger); diasCompetencia.add(diaInteger);
}else{ } else {
String[] vetCompetencia = competencia.split("/"); String[] vetCompetencia = competencia.split("/");
Calendar cal = Calendar.getInstance(); Calendar cal = Calendar.getInstance();
cal.set(Calendar.MONTH, Integer.valueOf(vetCompetencia[0]) - 1); cal.set(Calendar.MONTH, Integer.valueOf(vetCompetencia[0]) - 1);
cal.set(Calendar.YEAR, Integer.valueOf(vetCompetencia[1])); cal.set(Calendar.YEAR, Integer.valueOf(vetCompetencia[1]));
for (int i = 1; i <= cal.getActualMaximum(Calendar.DAY_OF_MONTH); i++) { for (int i = 1; i <= cal.getActualMaximum(Calendar.DAY_OF_MONTH); i++) {
diasCompetencia.add(i); diasCompetencia.add(i);
} }
} }
return diasCompetencia; return diasCompetencia;
} }
public static Set<Integer> carregarDiasCompetencia(Date dataInicial, Date dataFinal) { public static Set<Integer> carregarDiasCompetencia(Date dataInicial, Date dataFinal) {
Set<Integer> diasCompetencia = new TreeSet<Integer>(); Set<Integer> diasCompetencia = new TreeSet<Integer>();
Calendar cal = Calendar.getInstance(); Calendar cal = Calendar.getInstance();
cal.setTime(dataInicial); cal.setTime(dataInicial);
Integer diaInicial = cal.get(Calendar.DAY_OF_MONTH); Integer diaInicial = cal.get(Calendar.DAY_OF_MONTH);
cal.setTime(dataFinal); cal.setTime(dataFinal);
Integer diaFinal = cal.get(Calendar.DAY_OF_MONTH); Integer diaFinal = cal.get(Calendar.DAY_OF_MONTH);
for (int i = diaInicial; i <= diaFinal; i++) { for (int i = diaInicial; i <= diaFinal; i++) {
diasCompetencia.add(i); diasCompetencia.add(i);
} }
return diasCompetencia; return diasCompetencia;
} }
@ -660,28 +668,30 @@ public final class DateUtil {
} }
return null; return null;
} }
public static Date getYesterdayDate() { public static Date getYesterdayDate() {
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, -1); calendar.add(Calendar.DATE, -1);
calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.SECOND, 0);
Date yesterday = calendar.getTime(); Date yesterday = calendar.getTime();
return yesterday; return yesterday;
} }
public static String getYesterdayDateString() { public static String getYesterdayDateString() {
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
Calendar cal = Calendar.getInstance(); Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1); cal.add(Calendar.DATE, -1);
return dateFormat.format(cal.getTime()); return dateFormat.format(cal.getTime());
} }
public static Date getDataTempoDecorrido(String tempo) { public static Date getDataTempoDecorrido(String tempo) {
String[] tempoDecorrido = tempo.split(":"); String[] tempoDecorrido = tempo.split(":");
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR, Integer.parseInt(tempoDecorrido[0].isEmpty() ? "0" : tempoDecorrido[0])); calendar.set(Calendar.HOUR, Integer.parseInt(tempoDecorrido[0].isEmpty() ? "0" : tempoDecorrido[0]));
calendar.set(Calendar.MINUTE, Integer.parseInt(tempoDecorrido[1].isEmpty() ? "0" : tempoDecorrido[1])); calendar.set(Calendar.MINUTE, Integer.parseInt(tempoDecorrido[1].isEmpty() ? "0" : tempoDecorrido[1]));
return calendar.getTime(); return calendar.getTime();
} }
} }

View File

@ -20,7 +20,7 @@ import org.slf4j.LoggerFactory;
*/ */
public class MoneyHelper { public class MoneyHelper {
private static Logger log = LoggerFactory.getLogger(MoneyHelper.class); private static Logger log = LoggerFactory.getLogger(MoneyHelper.class);
private static int DECIMALS = 2; private static int DECIMALS = 2;
private static int ROUNDING_MODE = BigDecimal.ROUND_HALF_EVEN; private static int ROUNDING_MODE = BigDecimal.ROUND_HALF_EVEN;
private static BigDecimal HUNDRED = new BigDecimal("100"); private static BigDecimal HUNDRED = new BigDecimal("100");
@ -37,36 +37,36 @@ public class MoneyHelper {
public static BigDecimal instanciar(BigDecimal aValor) { public static BigDecimal instanciar(BigDecimal aValor) {
return arredondar(aValor); return arredondar(aValor);
} }
public static BigDecimal somar(BigDecimal ... aAmount) { public static BigDecimal somar(BigDecimal... aAmount) {
BigDecimal total = BigDecimal.ZERO; BigDecimal total = BigDecimal.ZERO;
for(BigDecimal value : aAmount){ for (BigDecimal value : aAmount) {
BigDecimal fAmountOne = value == null ? BigDecimal.ZERO:arredondar(value); BigDecimal fAmountOne = value == null ? BigDecimal.ZERO : arredondar(value);
total = total.add(fAmountOne); total = total.add(fAmountOne);
} }
return total.setScale(DECIMALS, ROUNDING_MODE); return total.setScale(DECIMALS, ROUNDING_MODE);
} }
public static BigDecimal somar(int customScale, BigDecimal ... aAmount) { public static BigDecimal somar(int customScale, BigDecimal... aAmount) {
BigDecimal total = BigDecimal.ZERO; BigDecimal total = BigDecimal.ZERO;
for(BigDecimal value : aAmount){ for (BigDecimal value : aAmount) {
BigDecimal fAmountOne = value == null ? BigDecimal.ZERO:arredondar(value, customScale); BigDecimal fAmountOne = value == null ? BigDecimal.ZERO : arredondar(value, customScale);
total = total.add(fAmountOne); total = total.add(fAmountOne);
} }
return total.setScale(DECIMALS, ROUNDING_MODE); return total.setScale(DECIMALS, ROUNDING_MODE);
} }
public static BigDecimal somar(BigDecimal aAmountOne, BigDecimal aAmountTwo) { public static BigDecimal somar(BigDecimal aAmountOne, BigDecimal aAmountTwo) {
BigDecimal fAmountOne = aAmountOne == null ? BigDecimal.ZERO:arredondar(aAmountOne); BigDecimal fAmountOne = aAmountOne == null ? BigDecimal.ZERO : arredondar(aAmountOne);
BigDecimal fAmountTwo =aAmountTwo == null ? BigDecimal.ZERO: arredondar(aAmountTwo); BigDecimal fAmountTwo = aAmountTwo == null ? BigDecimal.ZERO : arredondar(aAmountTwo);
return fAmountOne.add(fAmountTwo).setScale(DECIMALS, ROUNDING_MODE); return fAmountOne.add(fAmountTwo).setScale(DECIMALS, ROUNDING_MODE);
} }
public static BigDecimal somar(BigDecimal aAmountOne, BigDecimal aAmountTwo, int customScale) { public static BigDecimal somar(BigDecimal aAmountOne, BigDecimal aAmountTwo, int customScale) {
BigDecimal fAmountOne = aAmountOne == null ? BigDecimal.ZERO:arredondar(aAmountOne, customScale); BigDecimal fAmountOne = aAmountOne == null ? BigDecimal.ZERO : arredondar(aAmountOne, customScale);
BigDecimal fAmountTwo =aAmountTwo == null ? BigDecimal.ZERO: arredondar(aAmountTwo, customScale); BigDecimal fAmountTwo = aAmountTwo == null ? BigDecimal.ZERO : arredondar(aAmountTwo, customScale);
return fAmountOne.add(fAmountTwo).setScale(DECIMALS, ROUNDING_MODE); return fAmountOne.add(fAmountTwo).setScale(DECIMALS, ROUNDING_MODE);
} }
@ -76,11 +76,11 @@ public class MoneyHelper {
return fAmountOne.subtract(fAmountTwo).setScale(DECIMALS, ROUNDING_MODE); return fAmountOne.subtract(fAmountTwo).setScale(DECIMALS, ROUNDING_MODE);
} }
public static BigDecimal subtrair(BigDecimal aAmountOne, BigDecimal aAmountTwo, int customScale) { public static BigDecimal subtrair(BigDecimal aAmountOne, BigDecimal aAmountTwo, int customScale) {
BigDecimal fAmountOne = arredondar(aAmountOne, customScale); BigDecimal fAmountOne = arredondar(aAmountOne, customScale);
BigDecimal fAmountTwo = arredondar(aAmountTwo, customScale); BigDecimal fAmountTwo = arredondar(aAmountTwo, customScale);
return fAmountOne.subtract(fAmountTwo).setScale(DECIMALS, ROUNDING_MODE); return fAmountOne.subtract(fAmountTwo).setScale(DECIMALS, ROUNDING_MODE);
} }
@ -90,11 +90,11 @@ public class MoneyHelper {
return fAmount.divide(fDivisor, DECIMALS, ROUNDING_MODE); return fAmount.divide(fDivisor, DECIMALS, ROUNDING_MODE);
} }
public static BigDecimal dividir(BigDecimal aAmount, BigDecimal aDivisor, int customScale) { public static BigDecimal dividir(BigDecimal aAmount, BigDecimal aDivisor, int customScale) {
BigDecimal fAmount = arredondar(aAmount, customScale); BigDecimal fAmount = arredondar(aAmount, customScale);
BigDecimal fDivisor = arredondar(aDivisor, customScale); BigDecimal fDivisor = arredondar(aDivisor, customScale);
return fAmount.divide(fDivisor, customScale, ROUNDING_MODE); return fAmount.divide(fDivisor, customScale, ROUNDING_MODE);
} }
@ -104,14 +104,14 @@ public class MoneyHelper {
return fAmount.multiply(fMultiplicand, new MathContext(ROUNDING_MODE)).setScale(DECIMALS, ROUNDING_MODE); return fAmount.multiply(fMultiplicand, new MathContext(ROUNDING_MODE)).setScale(DECIMALS, ROUNDING_MODE);
} }
public static BigDecimal multiplicar(BigDecimal aAmount, BigDecimal aMultiplicand, int customScale) { public static BigDecimal multiplicar(BigDecimal aAmount, BigDecimal aMultiplicand, int customScale) {
BigDecimal fAmount = arredondar(aAmount, customScale); BigDecimal fAmount = arredondar(aAmount, customScale);
BigDecimal fMultiplicand = arredondar(aMultiplicand, customScale); BigDecimal fMultiplicand = arredondar(aMultiplicand, customScale);
return fAmount.multiply(fMultiplicand, new MathContext(ROUNDING_MODE)).setScale(customScale, ROUNDING_MODE); return fAmount.multiply(fMultiplicand, new MathContext(ROUNDING_MODE)).setScale(customScale, ROUNDING_MODE);
} }
public static BigDecimal arredondar(BigDecimal aNumber) { public static BigDecimal arredondar(BigDecimal aNumber) {
if (aNumber != null) { if (aNumber != null) {
return aNumber.setScale(DECIMALS, ROUNDING_MODE); return aNumber.setScale(DECIMALS, ROUNDING_MODE);
@ -127,56 +127,56 @@ public class MoneyHelper {
return null; return null;
} }
} }
public static BigDecimal arredondar(Float aNumber) { public static BigDecimal arredondar(Float aNumber) {
return BigDecimal.valueOf(aNumber).setScale(DECIMALS, ROUNDING_MODE); return BigDecimal.valueOf(aNumber).setScale(DECIMALS, ROUNDING_MODE);
} }
public static boolean isMaior(BigDecimal aAmountOne, BigDecimal aAmountTwo) { public static boolean isMaior(BigDecimal aAmountOne, BigDecimal aAmountTwo) {
BigDecimal fAmountOne = arredondar(aAmountOne); BigDecimal fAmountOne = arredondar(aAmountOne);
BigDecimal fAmountTwo = arredondar(aAmountTwo); BigDecimal fAmountTwo = arredondar(aAmountTwo);
return fAmountOne.compareTo(fAmountTwo) > 0; return fAmountOne.compareTo(fAmountTwo) > 0;
} }
public static boolean isMaiorIgual(BigDecimal aAmountOne, BigDecimal aAmountTwo) { public static boolean isMaiorIgual(BigDecimal aAmountOne, BigDecimal aAmountTwo) {
BigDecimal fAmountOne = arredondar(aAmountOne); BigDecimal fAmountOne = arredondar(aAmountOne);
BigDecimal fAmountTwo = arredondar(aAmountTwo); BigDecimal fAmountTwo = arredondar(aAmountTwo);
return fAmountOne.compareTo(fAmountTwo) >= 0; return fAmountOne.compareTo(fAmountTwo) >= 0;
} }
public static boolean isMenor(BigDecimal aAmountOne, BigDecimal aAmountTwo) { public static boolean isMenor(BigDecimal aAmountOne, BigDecimal aAmountTwo) {
BigDecimal fAmountOne = arredondar(aAmountOne); BigDecimal fAmountOne = arredondar(aAmountOne);
BigDecimal fAmountTwo = arredondar(aAmountTwo); BigDecimal fAmountTwo = arredondar(aAmountTwo);
return fAmountOne.compareTo(fAmountTwo) < 0; return fAmountOne.compareTo(fAmountTwo) < 0;
} }
public static boolean isMenorIgual(BigDecimal aAmountOne, BigDecimal aAmountTwo) { public static boolean isMenorIgual(BigDecimal aAmountOne, BigDecimal aAmountTwo) {
BigDecimal fAmountOne = arredondar(aAmountOne); BigDecimal fAmountOne = arredondar(aAmountOne);
BigDecimal fAmountTwo = arredondar(aAmountTwo); BigDecimal fAmountTwo = arredondar(aAmountTwo);
return fAmountOne.compareTo(fAmountTwo) <= 0; return fAmountOne.compareTo(fAmountTwo) <= 0;
} }
public static boolean isIgual(BigDecimal aAmountOne, BigDecimal aAmountTwo) { public static boolean isIgual(BigDecimal aAmountOne, BigDecimal aAmountTwo) {
BigDecimal fAmountOne = arredondar(aAmountOne); BigDecimal fAmountOne = arredondar(aAmountOne);
BigDecimal fAmountTwo = arredondar(aAmountTwo); BigDecimal fAmountTwo = arredondar(aAmountTwo);
return fAmountOne.compareTo(fAmountTwo) == 0; return fAmountOne.compareTo(fAmountTwo) == 0;
} }
public static BigDecimal getDiferenca(BigDecimal aAmountOne, BigDecimal aAmountTwo) { public static BigDecimal getDiferenca(BigDecimal aAmountOne, BigDecimal aAmountTwo) {
return aAmountTwo.subtract(aAmountOne); return aAmountTwo.subtract(aAmountOne);
} }
public static BigDecimal getPercentual(BigDecimal aAmountOne, BigDecimal aAmountTwo) { public static BigDecimal getPercentual(BigDecimal aAmountOne, BigDecimal aAmountTwo) {
BigDecimal diferenca = getDiferenca(aAmountOne, aAmountTwo); BigDecimal diferenca = getDiferenca(aAmountOne, aAmountTwo);
BigDecimal fractionalChange = BigDecimal.ZERO; BigDecimal fractionalChange = BigDecimal.ZERO;
if ( diferenca!=null && ( diferenca.compareTo(BigDecimal.ZERO) != 0) && (aAmountOne.compareTo(BigDecimal.ZERO) != 0) ){ if (diferenca != null && (diferenca.compareTo(BigDecimal.ZERO) != 0) && (aAmountOne.compareTo(BigDecimal.ZERO) != 0)) {
fractionalChange = diferenca.divide(aAmountOne, new MathContext(MATH_CONTEXT)); fractionalChange = diferenca.divide(aAmountOne, new MathContext(MATH_CONTEXT));
} }
return arredondar(fractionalChange.multiply(HUNDRED)).abs(); return arredondar(fractionalChange.multiply(HUNDRED)).abs();
@ -186,9 +186,9 @@ public class MoneyHelper {
BigDecimal valorDescontado = multiplicar(valor, percdesconto).divide(HUNDRED); BigDecimal valorDescontado = multiplicar(valor, percdesconto).divide(HUNDRED);
return arredondar(subtrair(valor, valorDescontado)); return arredondar(subtrair(valor, valorDescontado));
} }
public static BigDecimal getPercentualValor(BigDecimal valorTotal, BigDecimal valorPercentual) { public static BigDecimal getPercentualValor(BigDecimal valorTotal, BigDecimal valorPercentual) {
if(valorTotal != null && valorPercentual != null) { if (valorTotal != null && valorPercentual != null) {
return dividir(dividir(multiplicar(valorTotal, valorPercentual), HUNDRED), HUNDRED); return dividir(dividir(multiplicar(valorTotal, valorPercentual), HUNDRED), HUNDRED);
} }
return BigDecimal.ZERO; return BigDecimal.ZERO;
@ -196,12 +196,13 @@ public class MoneyHelper {
/** /**
* Converte uma string no formato de moeda em um {@link BigDecimal} * Converte uma string no formato de moeda em um {@link BigDecimal}
*
* @param valor * @param valor
* @return * @return
*/ */
public static BigDecimal getValor(String valor) { public static BigDecimal getValor(String valor) {
try { try {
if(StringUtils.isNotBlank(valor)) { if (StringUtils.isNotBlank(valor)) {
NumberFormat nf = DecimalFormat.getCurrencyInstance(Locale.getDefault()); NumberFormat nf = DecimalFormat.getCurrencyInstance(Locale.getDefault());
nf.setMinimumFractionDigits(DECIMALS); nf.setMinimumFractionDigits(DECIMALS);
nf.setMaximumFractionDigits(DECIMALS); nf.setMaximumFractionDigits(DECIMALS);
@ -212,9 +213,14 @@ public class MoneyHelper {
} }
return null; return null;
} }
public static String getValor(BigDecimal valor) {
NumberFormat nf = NumberFormat.getInstance(Locale.getDefault());
return nf.format(valor);
}
public static BigDecimal arredondar(BigDecimal aNumber, int customScale) { public static BigDecimal arredondar(BigDecimal aNumber, int customScale) {
return aNumber.setScale(customScale, ROUNDING_MODE); return aNumber.setScale(customScale, ROUNDING_MODE);
} }
} }