bug #6669
git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@49449 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
e50f805b9d
commit
9f69891567
|
@ -10,6 +10,6 @@ public interface ComissaoDAO extends GenericDAO<Comissao, Integer> {
|
||||||
|
|
||||||
public List<BoletoComissao> buscarReceitasComissoes(Integer puntoVentaId, Integer empresaId, Date periodo);
|
public List<BoletoComissao> buscarReceitasComissoes(Integer puntoVentaId, Integer empresaId, Date periodo);
|
||||||
|
|
||||||
public List<Comissao> buscaComissaoVigencia(Integer puntoVentaId, Integer empresaId, Date periodo);
|
public List<Comissao> buscaComissaoVigencia(Integer puntoVentaId, Integer empresaId, String competencia);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,6 @@ import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import com.rjconsultores.ventaboletos.dao.ComissaoDAO;
|
import com.rjconsultores.ventaboletos.dao.ComissaoDAO;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Comissao;
|
import com.rjconsultores.ventaboletos.entidad.Comissao;
|
||||||
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
|
|
||||||
import com.rjconsultores.ventaboletos.vo.comissao.BoletoComissao;
|
import com.rjconsultores.ventaboletos.vo.comissao.BoletoComissao;
|
||||||
|
|
||||||
@Repository("comissaoHibernateDAO")
|
@Repository("comissaoHibernateDAO")
|
||||||
|
@ -87,7 +86,7 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO<Comissao, Integer>
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@Override
|
@Override
|
||||||
public List<Comissao> buscaComissaoVigencia(Integer puntoVentaId, Integer empresaId, Date periodo) {
|
public List<Comissao> buscaComissaoVigencia(Integer puntoVentaId, Integer empresaId, String competencia) {
|
||||||
|
|
||||||
StringBuilder hql = new StringBuilder();
|
StringBuilder hql = new StringBuilder();
|
||||||
hql.append(" from Comissao c ");
|
hql.append(" from Comissao c ");
|
||||||
|
@ -97,7 +96,7 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO<Comissao, Integer>
|
||||||
hql.append(" AND c.competencia = :periodo ");
|
hql.append(" AND c.competencia = :periodo ");
|
||||||
|
|
||||||
Query query = getSession().createQuery(hql.toString());
|
Query query = getSession().createQuery(hql.toString());
|
||||||
query.setString("periodo", DateUtil.getStringDate(periodo, "MM/yyyy"));
|
query.setString("periodo", competencia);
|
||||||
query.setInteger("puntoventaId", puntoVentaId);
|
query.setInteger("puntoventaId", puntoVentaId);
|
||||||
query.setInteger("empresaId", empresaId);
|
query.setInteger("empresaId", empresaId);
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
package com.rjconsultores.ventaboletos.exception;
|
||||||
|
|
||||||
|
import java.text.MessageFormat;
|
||||||
|
|
||||||
|
import org.zkoss.util.resource.Labels;
|
||||||
|
|
||||||
|
public class ComissaoException extends Exception {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param message
|
||||||
|
* - La clave del archivo de traducción
|
||||||
|
*/
|
||||||
|
public ComissaoException(String message) {
|
||||||
|
super(Labels.getLabel(message));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param message-
|
||||||
|
* La clave del archivo de traducción
|
||||||
|
* @param oMsg
|
||||||
|
* - Los parametros de la mensage
|
||||||
|
*/
|
||||||
|
public ComissaoException(String message, Object oMsg) {
|
||||||
|
super(new MessageFormat(Labels.getLabel(message)).format(oMsg));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -2,12 +2,13 @@ package com.rjconsultores.ventaboletos.service;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.exception.ComissaoException;
|
||||||
import com.rjconsultores.ventaboletos.vo.comissao.RegistroCalculo;
|
import com.rjconsultores.ventaboletos.vo.comissao.RegistroCalculo;
|
||||||
|
|
||||||
public interface CalculoComissaoService {
|
public interface CalculoComissaoService {
|
||||||
|
|
||||||
public RegistroCalculo relatorioCalculoComissao(Integer puntoVentId, Integer empresaId, Date periodo);
|
public RegistroCalculo relatorioCalculoComissao(Integer puntoVentId, Integer empresaId, Date periodo);
|
||||||
|
|
||||||
public void registrarCalculoComissao(Integer puntoVentaId, Integer empresaId, Date periodo);
|
public void registrarCalculoComissao(Integer puntoVentaId, Integer empresaId, Date periodo) throws ComissaoException;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,7 @@ import com.rjconsultores.ventaboletos.entidad.DescontoComissao;
|
||||||
import com.rjconsultores.ventaboletos.entidad.PtovtaComissao;
|
import com.rjconsultores.ventaboletos.entidad.PtovtaComissao;
|
||||||
import com.rjconsultores.ventaboletos.entidad.PtovtaComissao.Receita;
|
import com.rjconsultores.ventaboletos.entidad.PtovtaComissao.Receita;
|
||||||
import com.rjconsultores.ventaboletos.enums.IndStatusBoleto;
|
import com.rjconsultores.ventaboletos.enums.IndStatusBoleto;
|
||||||
|
import com.rjconsultores.ventaboletos.exception.ComissaoException;
|
||||||
import com.rjconsultores.ventaboletos.service.CalculoComissaoService;
|
import com.rjconsultores.ventaboletos.service.CalculoComissaoService;
|
||||||
import com.rjconsultores.ventaboletos.service.ComissaoService;
|
import com.rjconsultores.ventaboletos.service.ComissaoService;
|
||||||
import com.rjconsultores.ventaboletos.service.DescontoComissaoService;
|
import com.rjconsultores.ventaboletos.service.DescontoComissaoService;
|
||||||
|
@ -31,7 +32,6 @@ import com.rjconsultores.ventaboletos.vo.comissao.BoletoComissao;
|
||||||
import com.rjconsultores.ventaboletos.vo.comissao.ComissaoDesconto;
|
import com.rjconsultores.ventaboletos.vo.comissao.ComissaoDesconto;
|
||||||
import com.rjconsultores.ventaboletos.vo.comissao.ComissaoDesconto.TipoDesconto;
|
import com.rjconsultores.ventaboletos.vo.comissao.ComissaoDesconto.TipoDesconto;
|
||||||
import com.rjconsultores.ventaboletos.vo.comissao.ComissaoReceita;
|
import com.rjconsultores.ventaboletos.vo.comissao.ComissaoReceita;
|
||||||
import com.rjconsultores.ventaboletos.vo.comissao.ComissaoReceita.TipoIcms;
|
|
||||||
import com.rjconsultores.ventaboletos.vo.comissao.RegistroCalculo;
|
import com.rjconsultores.ventaboletos.vo.comissao.RegistroCalculo;
|
||||||
|
|
||||||
@Service("calculoComissaoService")
|
@Service("calculoComissaoService")
|
||||||
|
@ -53,16 +53,16 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
private DescontoComissaoService descontoComissaoService;
|
private DescontoComissaoService descontoComissaoService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void registrarCalculoComissao(Integer puntoVentaId, Integer empresaId, Date periodo) {
|
public void registrarCalculoComissao(Integer puntoVentaId, Integer empresaId, Date periodo) throws ComissaoException {
|
||||||
|
|
||||||
List<Comissao> comissoes = comissaoDAO.buscaComissaoVigencia(puntoVentaId, empresaId, periodo);
|
String competencia = DateUtil.getStringDate(periodo, "MM/yyyy");
|
||||||
|
List<Comissao> comissoes = comissaoDAO.buscaComissaoVigencia(puntoVentaId, empresaId, competencia);
|
||||||
if (comissoes.isEmpty()) {
|
if (comissoes.isEmpty()) {
|
||||||
|
|
||||||
RegistroCalculo rc = realizarCalculoComissao(puntoVentaId, empresaId, periodo);
|
RegistroCalculo rc = realizarCalculoComissao(puntoVentaId, empresaId, periodo);
|
||||||
|
|
||||||
Comissao comissao = new Comissao();
|
Comissao comissao = new Comissao();
|
||||||
|
|
||||||
String competencia = DateUtil.getStringDate(periodo, "MM/yyyy");
|
|
||||||
comissao.setCompetencia(competencia);
|
comissao.setCompetencia(competencia);
|
||||||
comissao.setDataPagamento(Calendar.getInstance().getTime());
|
comissao.setDataPagamento(Calendar.getInstance().getTime());
|
||||||
|
|
||||||
|
@ -74,6 +74,7 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
comissao.setEntregasPassagem(rc.getComissaoEntregaPassagem());
|
comissao.setEntregasPassagem(rc.getComissaoEntregaPassagem());
|
||||||
comissao.setReceitaExcessobagagem(rc.getComissaoExcessoBagagem());
|
comissao.setReceitaExcessobagagem(rc.getComissaoExcessoBagagem());
|
||||||
comissao.setReceitaSeguroopcional(rc.getComissaoSegOpcional());
|
comissao.setReceitaSeguroopcional(rc.getComissaoSegOpcional());
|
||||||
|
|
||||||
comissao.setRoyaties(rc.getRoyaties());
|
comissao.setRoyaties(rc.getRoyaties());
|
||||||
comissao.setIssRetido(rc.getRetidoISS());
|
comissao.setIssRetido(rc.getRetidoISS());
|
||||||
comissao.setBonificacaoMetas(rc.getComissaoBonificaoMetas());
|
comissao.setBonificacaoMetas(rc.getComissaoBonificaoMetas());
|
||||||
|
@ -84,9 +85,8 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
|
|
||||||
comissao = comissaoService.suscribir(comissao);
|
comissao = comissaoService.suscribir(comissao);
|
||||||
} else {
|
} else {
|
||||||
|
throw new ComissaoException("busquedaCalculoComissaoController.registro.exception");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -94,18 +94,11 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
return realizarCalculoComissao(puntoVentaId, empresaId, periodo);
|
return realizarCalculoComissao(puntoVentaId, empresaId, periodo);
|
||||||
}
|
}
|
||||||
|
|
||||||
private BigDecimal calculoComisssaoBPR(boolean isAltaTemporada, boolean isReceitaLiquida, PtovtaComissao ptovtaComissao, ComissaoReceita cr) {
|
private BigDecimal calculoComisssaoBPR(boolean isAltaTemporada, PtovtaComissao ptovtaComissao, ComissaoReceita cr) {
|
||||||
|
|
||||||
// Comissão BPR = Receita Comissão * (% Com BPR)
|
// Comissão BPR = Receita Comissão * (% Com BPR)
|
||||||
BigDecimal bpr = BigDecimal.ZERO;
|
BigDecimal bpr = BigDecimal.ZERO;
|
||||||
BigDecimal receitaBPR = cr.getReceitaBPR().add(cr.getReceitaGAP());
|
BigDecimal receitaBPR = cr.getReceitaBPR().add(cr.getReceitaGAP());
|
||||||
if (isReceitaLiquida) {
|
|
||||||
for (TipoIcms tipoIcms : cr.getDescontosIcms()) {
|
|
||||||
if (tipoIcms.equals(TipoIcms.BPR) || tipoIcms.equals(TipoIcms.GAP))
|
|
||||||
receitaBPR = receitaBPR.add(tipoIcms.getValor().negate());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isAltaTemporada) {
|
if (isAltaTemporada) {
|
||||||
bpr = receitaBPR.multiply(ptovtaComissao.getPassagemAlta().divide(CEM));
|
bpr = receitaBPR.multiply(ptovtaComissao.getPassagemAlta().divide(CEM));
|
||||||
} else {
|
} else {
|
||||||
|
@ -115,18 +108,11 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
return bpr;
|
return bpr;
|
||||||
}
|
}
|
||||||
|
|
||||||
private BigDecimal calculoEntregaPassagem(boolean isAltaTemporada, boolean isReceitaLiquida, PtovtaComissao ptovtaComissao, ComissaoReceita cr) {
|
private BigDecimal calculoEntregaPassagem(boolean isAltaTemporada, PtovtaComissao ptovtaComissao, ComissaoReceita cr) {
|
||||||
|
|
||||||
// EntregaPassagem (Internet/Venda Impressão Posterior/Outros)
|
// EntregaPassagem (Internet/Venda Impressão Posterior/Outros)
|
||||||
BigDecimal entregaPassagem = BigDecimal.ZERO;
|
BigDecimal entregaPassagem = BigDecimal.ZERO;
|
||||||
BigDecimal receitaEntrega = cr.getGapImpressa().add(cr.getInternet());
|
BigDecimal receitaEntrega = cr.getGapImpressa().add(cr.getInternet());
|
||||||
if (isReceitaLiquida) {
|
|
||||||
for (TipoIcms tipoIcms : cr.getDescontosIcms()) {
|
|
||||||
if (tipoIcms.equals(TipoIcms.INTERNET) || tipoIcms.equals(TipoIcms.GAP_IMPRESSA))
|
|
||||||
receitaEntrega = receitaEntrega.add(tipoIcms.getValor().negate());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ptovtaComissao.getInddescontoporc()) {
|
if (ptovtaComissao.getInddescontoporc()) {
|
||||||
entregaPassagem = receitaEntrega.multiply(ptovtaComissao.getDesconto().divide(CEM));
|
entregaPassagem = receitaEntrega.multiply(ptovtaComissao.getDesconto().divide(CEM));
|
||||||
} else {
|
} else {
|
||||||
|
@ -161,6 +147,18 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
return segOpcional;
|
return segOpcional;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private BigDecimal calculoOutros(boolean isAltaTemporada, PtovtaComissao ptovtaComissao, ComissaoReceita cr) {
|
||||||
|
|
||||||
|
// Comissão Seg. Opcional = Receita Seguro Opcional * (% Com. Seg. Pol)
|
||||||
|
BigDecimal outros = BigDecimal.ZERO;
|
||||||
|
if (isAltaTemporada) {
|
||||||
|
outros = cr.getReceitaSeguroOutros().multiply(ptovtaComissao.getOutrosAlta().divide(CEM));
|
||||||
|
} else {
|
||||||
|
outros = cr.getReceitaSeguroOutros().multiply(ptovtaComissao.getOutrosBaixa().divide(CEM));
|
||||||
|
}
|
||||||
|
return outros;
|
||||||
|
}
|
||||||
|
|
||||||
private Map<String, Object> calculoDescontos(Integer puntoVentaId, Integer empresaId, Date periodo, PtovtaComissao ptovtaComissao) {
|
private Map<String, Object> calculoDescontos(Integer puntoVentaId, Integer empresaId, Date periodo, PtovtaComissao ptovtaComissao) {
|
||||||
|
|
||||||
List<ComissaoDesconto> lsDescontos = new ArrayList<ComissaoDesconto>();
|
List<ComissaoDesconto> lsDescontos = new ArrayList<ComissaoDesconto>();
|
||||||
|
@ -216,6 +214,7 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
BigDecimal comissaoExcessoBagagem = BigDecimal.ZERO;
|
BigDecimal comissaoExcessoBagagem = BigDecimal.ZERO;
|
||||||
BigDecimal comissaoSegOpcional = BigDecimal.ZERO;
|
BigDecimal comissaoSegOpcional = BigDecimal.ZERO;
|
||||||
BigDecimal comissaoEntregaPassagem = BigDecimal.ZERO;
|
BigDecimal comissaoEntregaPassagem = BigDecimal.ZERO;
|
||||||
|
BigDecimal comissaoOutros = BigDecimal.ZERO;
|
||||||
|
|
||||||
BigDecimal receitaTotal = BigDecimal.ZERO;
|
BigDecimal receitaTotal = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
@ -225,26 +224,13 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
// Inicialmente só será validado os calculos de comissão em baixa temporada
|
// Inicialmente só será validado os calculos de comissão em baixa temporada
|
||||||
boolean isAltaTemporada = false;
|
boolean isAltaTemporada = false;
|
||||||
|
|
||||||
// Receita Total -- bruta/liquida - abatimento do valor do icms
|
receitaTotal = receitaTotal.add(cr.getReceitaComissao());
|
||||||
boolean isReceitaLiquida = false;
|
|
||||||
Receita receita = Receita.getByValor(ptovtaComissao.getReceita());
|
|
||||||
if (receita.equals(Receita.RECEITALIQUIDA)) {
|
|
||||||
isReceitaLiquida = true;
|
|
||||||
receitaTotal = receitaTotal.add(cr.getReceitaBPR()).add(cr.getGapImpressa()).add(cr.getInternet()).add(cr.getReceitaGAP());
|
|
||||||
|
|
||||||
for (TipoIcms tipoIcms : cr.getDescontosIcms()) {
|
BigDecimal bpr = calculoComisssaoBPR(isAltaTemporada, ptovtaComissao, cr);
|
||||||
receitaTotal = receitaTotal.add(tipoIcms.getValor().negate());
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (receita.equals(Receita.RECEITABRUTA)) {
|
|
||||||
receitaTotal = receitaTotal.add(cr.getReceitaBPR()).add(cr.getGapImpressa()).add(cr.getInternet()).add(cr.getReceitaGAP());
|
|
||||||
}
|
|
||||||
|
|
||||||
BigDecimal bpr = calculoComisssaoBPR(isAltaTemporada, isReceitaLiquida, ptovtaComissao, cr);
|
|
||||||
cr.setComissaoBPRDiaria(bpr);
|
cr.setComissaoBPRDiaria(bpr);
|
||||||
comissaoBPR = comissaoBPR.add(bpr);
|
comissaoBPR = comissaoBPR.add(bpr);
|
||||||
|
|
||||||
BigDecimal entregaPassagem = calculoEntregaPassagem(isAltaTemporada, isReceitaLiquida, ptovtaComissao, cr);
|
BigDecimal entregaPassagem = calculoEntregaPassagem(isAltaTemporada, ptovtaComissao, cr);
|
||||||
cr.setComissaoEntregaPassagemDiaria(entregaPassagem);
|
cr.setComissaoEntregaPassagemDiaria(entregaPassagem);
|
||||||
comissaoEntregaPassagem = comissaoEntregaPassagem.add(entregaPassagem);
|
comissaoEntregaPassagem = comissaoEntregaPassagem.add(entregaPassagem);
|
||||||
|
|
||||||
|
@ -256,6 +242,10 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
cr.setComissaoSegOpcionalDiaria(segOpcional);
|
cr.setComissaoSegOpcionalDiaria(segOpcional);
|
||||||
comissaoSegOpcional = comissaoSegOpcional.add(segOpcional);
|
comissaoSegOpcional = comissaoSegOpcional.add(segOpcional);
|
||||||
|
|
||||||
|
BigDecimal outros = calculoOutros(isAltaTemporada, ptovtaComissao, cr);
|
||||||
|
cr.setComissaoOutrosDiaria(outros);
|
||||||
|
comissaoOutros = comissaoOutros.add(outros);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rc.setLsReceitas(receitas);
|
rc.setLsReceitas(receitas);
|
||||||
|
@ -264,6 +254,7 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
rc.setComissaoExcessoBagagem(comissaoExcessoBagagem);
|
rc.setComissaoExcessoBagagem(comissaoExcessoBagagem);
|
||||||
rc.setComissaoSegOpcional(comissaoSegOpcional);
|
rc.setComissaoSegOpcional(comissaoSegOpcional);
|
||||||
rc.setComissaoEntregaPassagem(comissaoEntregaPassagem);
|
rc.setComissaoEntregaPassagem(comissaoEntregaPassagem);
|
||||||
|
rc.setComissaoOutros(comissaoOutros);
|
||||||
|
|
||||||
// Descontos (Fixos e Eventuais)
|
// Descontos (Fixos e Eventuais)
|
||||||
Map<String, Object> respDescontos = calculoDescontos(puntoVentaId, empresaId, periodo, ptovtaComissao);
|
Map<String, Object> respDescontos = calculoDescontos(puntoVentaId, empresaId, periodo, ptovtaComissao);
|
||||||
|
@ -287,9 +278,10 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
// Comissão à pagar = Comissão BPR + Comissão Excesso Bagagem + Comissão Seg. Opcional + Bonificação Metas + Internet(EntregaPassagem)
|
// Comissão à pagar = Comissão BPR + Comissão Excesso Bagagem + Comissão Seg. Opcional + Bonificação Metas + Internet(EntregaPassagem)
|
||||||
BigDecimal comissaoPagar = BigDecimal.ZERO;
|
BigDecimal comissaoPagar = BigDecimal.ZERO;
|
||||||
comissaoPagar = comissaoPagar.add(comissaoBPR).add(comissaoExcessoBagagem).add(comissaoSegOpcional);
|
comissaoPagar = comissaoPagar.add(comissaoBPR).add(comissaoExcessoBagagem).add(comissaoSegOpcional);
|
||||||
comissaoPagar = comissaoPagar.add(comissaoEntregaPassagem).add(comissaoBonificaoMetas);
|
comissaoPagar = comissaoPagar.add(comissaoEntregaPassagem).add(comissaoOutros);
|
||||||
|
comissaoPagar = comissaoPagar.add(comissaoBonificaoMetas);
|
||||||
|
|
||||||
// Descontos // - Descontos (Fixos e Eventuais) - Royaties - ISS retido
|
// - Descontos (Fixos e Eventuais) - Royaties - ISS retido
|
||||||
comissaoPagar = comissaoPagar.add(rc.getDescontos().negate()).add(royaties.negate()).add(issRetido.negate());
|
comissaoPagar = comissaoPagar.add(rc.getDescontos().negate()).add(royaties.negate()).add(issRetido.negate());
|
||||||
rc.setComissaoPagar(comissaoPagar);
|
rc.setComissaoPagar(comissaoPagar);
|
||||||
|
|
||||||
|
@ -329,7 +321,12 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
BigDecimal gapImpressa = BigDecimal.ZERO;
|
BigDecimal gapImpressa = BigDecimal.ZERO;
|
||||||
int contImpressa = 0;
|
int contImpressa = 0;
|
||||||
|
|
||||||
List<TipoIcms> descontosIcms = new ArrayList<TipoIcms>();
|
// Receita Total -- bruta/liquida - abatimento do valor do icms
|
||||||
|
boolean isReceitaLiquida = false;
|
||||||
|
Receita receita = Receita.getByValor(ptovtaComissao.getReceita());
|
||||||
|
if (receita.equals(Receita.RECEITALIQUIDA)) {
|
||||||
|
isReceitaLiquida = true;
|
||||||
|
}
|
||||||
|
|
||||||
for (BoletoComissao rcc : list) {
|
for (BoletoComissao rcc : list) {
|
||||||
|
|
||||||
|
@ -372,15 +369,21 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
receitaDevItem = receitaDevItem.add(rcc.getPedagio());
|
receitaDevItem = receitaDevItem.add(rcc.getPedagio());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Calculo de ICMS sobre o valor do bilhete
|
||||||
|
if (isReceitaLiquida) {
|
||||||
|
BigDecimal icsm = BigDecimal.ZERO;
|
||||||
|
icsm = receitaItem.multiply(rcc.getIcmsBase().divide(CEM));
|
||||||
|
receitaItem = receitaItem.add(icsm.negate());
|
||||||
|
|
||||||
|
BigDecimal icsmDev = BigDecimal.ZERO;
|
||||||
|
icsmDev = receitaDevItem.multiply(rcc.getIcmsBase().divide(CEM));
|
||||||
|
receitaDevItem = receitaDevItem.add(icsmDev.negate());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// Boletos impressos no punto venta
|
// Boletos impressos no punto venta
|
||||||
if (statusBoleto.equals(IndStatusBoleto.E)) {
|
if (statusBoleto.equals(IndStatusBoleto.E)) {
|
||||||
contImpressa++;
|
contImpressa++;
|
||||||
|
|
||||||
// Calculo de ICMS sobre o valor do bilhete
|
|
||||||
TipoIcms icms = TipoIcms.GAP_IMPRESSA;
|
|
||||||
icms.setValor(receitaItem.multiply(rcc.getIcmsBase().divide(CEM)));
|
|
||||||
descontosIcms.add(icms);
|
|
||||||
|
|
||||||
gapImpressa = gapImpressa.add(receitaItem);
|
gapImpressa = gapImpressa.add(receitaItem);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
@ -392,32 +395,15 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
|
|
||||||
// Receita GAP
|
// Receita GAP
|
||||||
if (rcc.getTipoVenta().equals(Constantes.TPV_BOLETO_REMOTO.intValue())) {
|
if (rcc.getTipoVenta().equals(Constantes.TPV_BOLETO_REMOTO.intValue())) {
|
||||||
|
|
||||||
// Calculo de ICMS sobre o valor do bilhete
|
|
||||||
TipoIcms icms = TipoIcms.GAP;
|
|
||||||
icms.setValor(receitaItem.multiply(rcc.getIcmsBase().divide(CEM)));
|
|
||||||
descontosIcms.add(icms);
|
|
||||||
|
|
||||||
receitaGAP = receitaGAP.add(receitaItem);
|
receitaGAP = receitaGAP.add(receitaItem);
|
||||||
}
|
}
|
||||||
// Internet
|
// Internet
|
||||||
else if (rcc.getTipoVenta().equals(Constantes.TPV_POR_INTERNET.intValue())) {
|
else if (rcc.getTipoVenta().equals(Constantes.TPV_POR_INTERNET.intValue())) {
|
||||||
|
|
||||||
// Calculo de ICMS sobre o valor do bilhete
|
|
||||||
TipoIcms icms = TipoIcms.INTERNET;
|
|
||||||
icms.setValor(receitaItem.multiply(rcc.getIcmsBase().divide(CEM)));
|
|
||||||
descontosIcms.add(icms);
|
|
||||||
|
|
||||||
internet = internet.add(receitaItem);
|
internet = internet.add(receitaItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Receita BPR
|
// Receita BPR
|
||||||
else {
|
else {
|
||||||
// Calculo de ICMS sobre o valor do bilhete
|
|
||||||
TipoIcms icms = TipoIcms.BPR;
|
|
||||||
icms.setValor(receitaItem.multiply(rcc.getIcmsBase().divide(CEM)));
|
|
||||||
descontosIcms.add(icms);
|
|
||||||
|
|
||||||
receitaBPR = receitaBPR.add(receitaItem);
|
receitaBPR = receitaBPR.add(receitaItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -472,15 +458,15 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
cr.setReceitaExcessoBagagem(receitaExcessoBagagem);
|
cr.setReceitaExcessoBagagem(receitaExcessoBagagem);
|
||||||
cr.setReceitaGAP(receitaGAP);
|
cr.setReceitaGAP(receitaGAP);
|
||||||
cr.setReceitaSeguroOpcional(receitaSeguroOpcional);
|
cr.setReceitaSeguroOpcional(receitaSeguroOpcional);
|
||||||
|
cr.setReceitaSeguroOutros(receitaSeguroOutros);
|
||||||
cr.setInternet(internet);
|
cr.setInternet(internet);
|
||||||
|
|
||||||
cr.setGapImpressa(gapImpressa);
|
cr.setGapImpressa(gapImpressa);
|
||||||
cr.setContImpressa(contImpressa);
|
cr.setContImpressa(contImpressa);
|
||||||
|
|
||||||
// cr.setCancelamentoICMS(cancelamentoICMS);
|
// Receita Comissão = Receita BPR + Receita GAP
|
||||||
// cr.setReceitaICMS(receitaICMS);
|
// - GapImpressa - Internet
|
||||||
|
// - Cancelados - Devoluções Origem - Cancelados GAP - Devoluções GAP Origem - Devoluções - Devoluções GAP
|
||||||
// Receita Comissão = Receita BPR + Receita GAP - GapImpressa - Internet - Cancelados - Devoluções Origem - Cancelados GAP - Devoluções GAP Origem - Devoluções - Devoluções GAP
|
|
||||||
receitaComissao = receitaComissao.add(receitaBPR).add(receitaGAP);
|
receitaComissao = receitaComissao.add(receitaBPR).add(receitaGAP);
|
||||||
receitaComissao = receitaComissao.add(gapImpressa.negate()).add(internet.negate()).add(cancelados.negate());
|
receitaComissao = receitaComissao.add(gapImpressa.negate()).add(internet.negate()).add(cancelados.negate());
|
||||||
receitaComissao = receitaComissao.add(devolvidosOrigem.negate()).add(devolvidos.negate()).add(canceladosGAP.negate());
|
receitaComissao = receitaComissao.add(devolvidosOrigem.negate()).add(devolvidos.negate()).add(canceladosGAP.negate());
|
||||||
|
|
|
@ -2,25 +2,9 @@ package com.rjconsultores.ventaboletos.vo.comissao;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class ComissaoReceita {
|
public class ComissaoReceita {
|
||||||
|
|
||||||
public enum TipoIcms {
|
|
||||||
BPR, GAP, GAP_IMPRESSA, INTERNET;
|
|
||||||
|
|
||||||
private BigDecimal valor;
|
|
||||||
|
|
||||||
public BigDecimal getValor() {
|
|
||||||
return valor;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setValor(BigDecimal valor) {
|
|
||||||
this.valor = valor;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private Date data;
|
private Date data;
|
||||||
private BigDecimal receitaComissao;
|
private BigDecimal receitaComissao;
|
||||||
private BigDecimal receitaBPR;
|
private BigDecimal receitaBPR;
|
||||||
|
@ -35,14 +19,14 @@ public class ComissaoReceita {
|
||||||
private BigDecimal devolucoesOrigemGAP;
|
private BigDecimal devolucoesOrigemGAP;
|
||||||
private BigDecimal receitaExcessoBagagem;
|
private BigDecimal receitaExcessoBagagem;
|
||||||
private BigDecimal receitaSeguroOpcional;
|
private BigDecimal receitaSeguroOpcional;
|
||||||
|
private BigDecimal receitaSeguroOutros;
|
||||||
private Integer contImpressa;
|
private Integer contImpressa;
|
||||||
|
|
||||||
private BigDecimal comissaoBPRDiaria;
|
private BigDecimal comissaoBPRDiaria;
|
||||||
private BigDecimal comissaoExcessoBagagemDiaria;
|
private BigDecimal comissaoExcessoBagagemDiaria;
|
||||||
private BigDecimal comissaoSegOpcionalDiaria;
|
private BigDecimal comissaoSegOpcionalDiaria;
|
||||||
private BigDecimal comissaoEntregaPassagemDiaria;
|
private BigDecimal comissaoEntregaPassagemDiaria;
|
||||||
|
private BigDecimal comissaoOutrosDiaria;
|
||||||
List<TipoIcms> descontosIcms;
|
|
||||||
|
|
||||||
public Date getData() {
|
public Date getData() {
|
||||||
return data;
|
return data;
|
||||||
|
@ -196,12 +180,20 @@ public class ComissaoReceita {
|
||||||
this.comissaoEntregaPassagemDiaria = comissaoEntregaPassagemDiaria;
|
this.comissaoEntregaPassagemDiaria = comissaoEntregaPassagemDiaria;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<TipoIcms> getDescontosIcms() {
|
public BigDecimal getReceitaSeguroOutros() {
|
||||||
return descontosIcms;
|
return receitaSeguroOutros;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDescontosIcms(List<TipoIcms> descontosIcms) {
|
public void setReceitaSeguroOutros(BigDecimal receitaSeguroOutros) {
|
||||||
this.descontosIcms = descontosIcms;
|
this.receitaSeguroOutros = receitaSeguroOutros;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getComissaoOutrosDiaria() {
|
||||||
|
return comissaoOutrosDiaria;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setComissaoOutrosDiaria(BigDecimal comissaoOutrosDiaria) {
|
||||||
|
this.comissaoOutrosDiaria = comissaoOutrosDiaria;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -10,6 +10,7 @@ public class RegistroCalculo {
|
||||||
private BigDecimal comissaoSegOpcional;
|
private BigDecimal comissaoSegOpcional;
|
||||||
private BigDecimal comissaoExcessoBagagem;
|
private BigDecimal comissaoExcessoBagagem;
|
||||||
private BigDecimal comissaoEntregaPassagem;
|
private BigDecimal comissaoEntregaPassagem;
|
||||||
|
private BigDecimal comissaoOutros;
|
||||||
|
|
||||||
// private BigDecimal bonificacao;
|
// private BigDecimal bonificacao;
|
||||||
private BigDecimal comissaoBonificaoMetas;
|
private BigDecimal comissaoBonificaoMetas;
|
||||||
|
@ -109,6 +110,14 @@ public class RegistroCalculo {
|
||||||
this.lsReceitas = lsReceitas;
|
this.lsReceitas = lsReceitas;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BigDecimal getComissaoOutros() {
|
||||||
|
return comissaoOutros;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setComissaoOutros(BigDecimal comissaoOutros) {
|
||||||
|
this.comissaoOutros = comissaoOutros;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "RegistroCalculo [comissaoPagar=" + comissaoPagar + ", comissaoBPR=" + comissaoBPR + ", comissaoSegOpcional=" + comissaoSegOpcional + ", comissaoExcessoBagagem=" + comissaoExcessoBagagem + ", comissaoEntregaPassagem=" + comissaoEntregaPassagem + ", comissaoBonificaoMetas=" + comissaoBonificaoMetas + ", royaties=" + royaties + ", retidoISS=" + retidoISS + ", descontos=" + descontos + ", lsDescontos=" + lsDescontos + ", lsReceitas=" + lsReceitas + "]";
|
return "RegistroCalculo [comissaoPagar=" + comissaoPagar + ", comissaoBPR=" + comissaoBPR + ", comissaoSegOpcional=" + comissaoSegOpcional + ", comissaoExcessoBagagem=" + comissaoExcessoBagagem + ", comissaoEntregaPassagem=" + comissaoEntregaPassagem + ", comissaoBonificaoMetas=" + comissaoBonificaoMetas + ", royaties=" + royaties + ", retidoISS=" + retidoISS + ", descontos=" + descontos + ", lsDescontos=" + lsDescontos + ", lsReceitas=" + lsReceitas + "]";
|
||||||
|
|
Loading…
Reference in New Issue