bug #6669
git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@49434 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
1d92add413
commit
5f8fa3a878
|
@ -3,10 +3,13 @@ package com.rjconsultores.ventaboletos.dao;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Comissao;
|
||||||
import com.rjconsultores.ventaboletos.vo.comissao.BoletoComissao;
|
import com.rjconsultores.ventaboletos.vo.comissao.BoletoComissao;
|
||||||
|
|
||||||
public interface ComissaoDAO {
|
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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ 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")
|
||||||
|
@ -39,17 +40,24 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO<Comissao, Integer>
|
||||||
sql.append("coalesce(sum(b.importepedagio), 0) as pedagio, coalesce(sum(b.importetaxaembarque), 0) as embarque, ");
|
sql.append("coalesce(sum(b.importepedagio), 0) as pedagio, coalesce(sum(b.importetaxaembarque), 0) as embarque, ");
|
||||||
sql.append("coalesce(sum(case when ee.tipoeventoextra_id = 1 then ee.impingreso else 0 end), 0) as excessoBagagem, ");
|
sql.append("coalesce(sum(case when ee.tipoeventoextra_id = 1 then ee.impingreso else 0 end), 0) as excessoBagagem, ");
|
||||||
sql.append("coalesce(sum(case when ee.tipoeventoextra_id = 21 then ee.impingreso else 0 end), 0) as seguroOpcional, ");
|
sql.append("coalesce(sum(case when ee.tipoeventoextra_id = 21 then ee.impingreso else 0 end), 0) as seguroOpcional, ");
|
||||||
sql.append("coalesce(sum(case when ee.tipoeventoextra_id <> 21 or ee.tipoeventoextra_id <> 1 then ee.impingreso else 0 end), 0) as seguroOutros, ");
|
sql.append("coalesce(sum(case when ee.tipoeventoextra_id <> 21 ");
|
||||||
sql.append("case when c.ptovtaventa_id = b.puntoventa_id then 1 else 0 end as ptoVtaOrigem ");
|
sql.append(" or ee.tipoeventoextra_id <> 1 then ee.impingreso else 0 end), 0) as seguroOutros, ");
|
||||||
|
sql.append("case when c.ptovtaventa_id = b.puntoventa_id then 1 else 0 end as ptoVtaOrigem, ");
|
||||||
|
sql.append("ei.icms as icmsBase ");
|
||||||
sql.append("from boleto b ");
|
sql.append("from boleto b ");
|
||||||
|
sql.append("inner join parada origen on origen.parada_id = b.origen_id ");
|
||||||
|
sql.append("inner join ciudad ci on origen.ciudad_id = ci.ciudad_id ");
|
||||||
|
sql.append("inner join estado e on ci.estado_id = e.estado_id ");
|
||||||
|
sql.append("inner join empresa_imposto ei on (ei.estado_id = e.estado_id ");
|
||||||
|
sql.append(" and ei.empresa_id = b.marca_id and ei.activo = 1) ");
|
||||||
sql.append("left join caja c on c.numoperacion = b.numoperacion and c.numfoliosistema = b.numfoliosistema ");
|
sql.append("left join caja c on c.numoperacion = b.numoperacion and c.numfoliosistema = b.numfoliosistema ");
|
||||||
sql.append("and c.numfoliopreimpreso = b.numfoliopreimpreso and c.numseriepreimpresa = b.numseriepreimpresa ");
|
sql.append(" and c.numfoliopreimpreso = b.numfoliopreimpreso and c.numseriepreimpresa = b.numseriepreimpresa ");
|
||||||
sql.append("left join evento_extra ee on ee.boleto_id = b.boleto_id ");
|
sql.append("left join evento_extra ee on ee.boleto_id = b.boleto_id ");
|
||||||
sql.append("where ");
|
sql.append("where ");
|
||||||
sql.append("to_char(b.fechorventa, 'mmyyyy') = to_char(:periodo, 'mmyyyy') ");
|
sql.append("to_char(b.fechorventa, 'mmyyyy') = to_char(:periodo, 'mmyyyy') ");
|
||||||
sql.append("and b.marca_id = :empresaId and b.puntoventa_id = :puntoventaId ");
|
sql.append("and b.marca_id = :empresaId and b.puntoventa_id = :puntoventaId ");
|
||||||
sql.append("group by b.marca_id, b.puntoventa_id, to_char(b.fechorventa, 'dd-mm-yyyy'), ");
|
sql.append("group by b.marca_id, b.puntoventa_id, to_char(b.fechorventa, 'dd-mm-yyyy'), ");
|
||||||
sql.append("b.indstatusboleto, b.tipoventa_id, b.motivocancelacion_id, c.ptovtaventa_id ");
|
sql.append("b.indstatusboleto, b.tipoventa_id, b.motivocancelacion_id, c.ptovtaventa_id, ei.icms ");
|
||||||
sql.append("order by datavenda ");
|
sql.append("order by datavenda ");
|
||||||
|
|
||||||
Query query = getSession().createSQLQuery(sql.toString())
|
Query query = getSession().createSQLQuery(sql.toString())
|
||||||
|
@ -67,7 +75,7 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO<Comissao, Integer>
|
||||||
.addScalar("seguroOpcional", BigDecimalType.INSTANCE)
|
.addScalar("seguroOpcional", BigDecimalType.INSTANCE)
|
||||||
.addScalar("seguroOutros", BigDecimalType.INSTANCE)
|
.addScalar("seguroOutros", BigDecimalType.INSTANCE)
|
||||||
.addScalar("ptoVtaOrigem", BooleanType.INSTANCE)
|
.addScalar("ptoVtaOrigem", BooleanType.INSTANCE)
|
||||||
|
.addScalar("icmsBase", BigDecimalType.INSTANCE)
|
||||||
.setResultTransformer(new AliasToBeanResultTransformer(BoletoComissao.class));
|
.setResultTransformer(new AliasToBeanResultTransformer(BoletoComissao.class));
|
||||||
|
|
||||||
query.setTimestamp("periodo", periodo);
|
query.setTimestamp("periodo", periodo);
|
||||||
|
@ -76,4 +84,24 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO<Comissao, Integer>
|
||||||
|
|
||||||
return query.list();
|
return query.list();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
@Override
|
||||||
|
public List<Comissao> buscaComissaoVigencia(Integer puntoVentaId, Integer empresaId, Date periodo) {
|
||||||
|
|
||||||
|
StringBuilder hql = new StringBuilder();
|
||||||
|
hql.append(" from Comissao c ");
|
||||||
|
hql.append(" where c.activo = 1 ");
|
||||||
|
hql.append(" AND c.puntoVentaId = :puntoventaId ");
|
||||||
|
hql.append(" AND c.empresaId = :empresaId ");
|
||||||
|
hql.append(" AND c.competencia = :periodo ");
|
||||||
|
|
||||||
|
Query query = getSession().createQuery(hql.toString());
|
||||||
|
query.setString("periodo", DateUtil.getStringDate(periodo, "MM/yyyy"));
|
||||||
|
query.setInteger("puntoventaId", puntoVentaId);
|
||||||
|
query.setInteger("empresaId", empresaId);
|
||||||
|
|
||||||
|
return query.list();
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -128,30 +128,42 @@ public class PtovtaComissao implements Serializable {
|
||||||
public PtovtaComissao() {
|
public PtovtaComissao() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum enumReceita {
|
public enum Receita {
|
||||||
// Declaração dos enum
|
// Declaração dos enum
|
||||||
RECEITABRUTA ("RECEITA BRUTA", "RB"),
|
RECEITABRUTA("RECEITA BRUTA", "RB"),
|
||||||
|
|
||||||
RECEITALIQUIDA ("RECEITA LÍQUIDA ", "RL");
|
|
||||||
|
|
||||||
|
|
||||||
|
RECEITALIQUIDA("RECEITA LÍQUIDA ", "RL");
|
||||||
|
|
||||||
// Definição das constantes
|
// Definição das constantes
|
||||||
public final String valor;
|
public final String valor;
|
||||||
public final String descricao;
|
public final String descricao;
|
||||||
|
|
||||||
|
|
||||||
public String valor() {
|
public String valor() {
|
||||||
return this.valor;
|
return this.valor;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String descricao() {
|
public String descricao() {
|
||||||
return this.descricao;
|
return this.descricao;
|
||||||
}
|
}
|
||||||
private enumReceita( String descricao, String valor) {
|
|
||||||
|
private Receita(String descricao, String valor) {
|
||||||
this.descricao = descricao;
|
this.descricao = descricao;
|
||||||
this.valor = valor;
|
this.valor = valor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Receita getByValor(String valor) {
|
||||||
|
if (valor == null) {
|
||||||
|
return Receita.RECEITABRUTA;
|
||||||
|
} else {
|
||||||
|
if (valor.equals("RB"))
|
||||||
|
return Receita.RECEITABRUTA;
|
||||||
|
if (valor.equals("RL"))
|
||||||
|
return Receita.RECEITALIQUIDA;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -389,8 +401,6 @@ public class PtovtaComissao implements Serializable {
|
||||||
this.usuarioId = usuarioId;
|
this.usuarioId = usuarioId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public PuntoVenta getPuntoventaId() {
|
public PuntoVenta getPuntoventaId() {
|
||||||
return puntoventaId;
|
return puntoventaId;
|
||||||
}
|
}
|
||||||
|
@ -399,8 +409,7 @@ public class PtovtaComissao implements Serializable {
|
||||||
this.puntoventaId = puntoventaId;
|
this.puntoventaId = puntoventaId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
//
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the empresaId
|
* @return the empresaId
|
||||||
|
@ -410,7 +419,8 @@ public class PtovtaComissao implements Serializable {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param empresaId the empresaId to set
|
* @param empresaId
|
||||||
|
* the empresaId to set
|
||||||
*/
|
*/
|
||||||
public void setEmpresaId(Empresa empresaId) {
|
public void setEmpresaId(Empresa empresaId) {
|
||||||
this.empresaId = empresaId;
|
this.empresaId = empresaId;
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
package com.rjconsultores.ventaboletos.service;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Comissao;
|
||||||
|
|
||||||
|
public interface ComissaoService extends GenericService<Comissao, Integer> {
|
||||||
|
|
||||||
|
}
|
|
@ -5,7 +5,9 @@ import java.text.ParseException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
@ -14,27 +16,36 @@ import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import com.rjconsultores.ventaboletos.constantes.Constantes;
|
import com.rjconsultores.ventaboletos.constantes.Constantes;
|
||||||
import com.rjconsultores.ventaboletos.dao.ComissaoDAO;
|
import com.rjconsultores.ventaboletos.dao.ComissaoDAO;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Comissao;
|
||||||
import com.rjconsultores.ventaboletos.entidad.DescontoComissao;
|
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.enums.IndStatusBoleto;
|
import com.rjconsultores.ventaboletos.enums.IndStatusBoleto;
|
||||||
import com.rjconsultores.ventaboletos.service.CalculoComissaoService;
|
import com.rjconsultores.ventaboletos.service.CalculoComissaoService;
|
||||||
|
import com.rjconsultores.ventaboletos.service.ComissaoService;
|
||||||
import com.rjconsultores.ventaboletos.service.DescontoComissaoService;
|
import com.rjconsultores.ventaboletos.service.DescontoComissaoService;
|
||||||
import com.rjconsultores.ventaboletos.service.PtovtaComissaoService;
|
import com.rjconsultores.ventaboletos.service.PtovtaComissaoService;
|
||||||
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
|
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
|
||||||
import com.rjconsultores.ventaboletos.vo.comissao.BoletoComissao;
|
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")
|
||||||
public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
|
|
||||||
private static final Logger log = LoggerFactory.getLogger(CalculoComissaoServiceImpl.class);
|
private static final Logger log = LoggerFactory.getLogger(CalculoComissaoServiceImpl.class);
|
||||||
|
BigDecimal CEM = BigDecimal.TEN.multiply(BigDecimal.TEN);
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private PtovtaComissaoService ptovtaComissaoService;
|
private PtovtaComissaoService ptovtaComissaoService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ComissaoService comissaoService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ComissaoDAO comissaoDAO;
|
private ComissaoDAO comissaoDAO;
|
||||||
|
|
||||||
|
@ -43,7 +54,39 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void registrarCalculoComissao(Integer puntoVentaId, Integer empresaId, Date periodo) {
|
public void registrarCalculoComissao(Integer puntoVentaId, Integer empresaId, Date periodo) {
|
||||||
|
|
||||||
|
List<Comissao> comissoes = comissaoDAO.buscaComissaoVigencia(puntoVentaId, empresaId, periodo);
|
||||||
|
if (comissoes.isEmpty()) {
|
||||||
|
|
||||||
RegistroCalculo rc = realizarCalculoComissao(puntoVentaId, empresaId, periodo);
|
RegistroCalculo rc = realizarCalculoComissao(puntoVentaId, empresaId, periodo);
|
||||||
|
|
||||||
|
Comissao comissao = new Comissao();
|
||||||
|
|
||||||
|
String competencia = DateUtil.getStringDate(periodo, "MM/yyyy");
|
||||||
|
comissao.setCompetencia(competencia);
|
||||||
|
comissao.setDataPagamento(Calendar.getInstance().getTime());
|
||||||
|
|
||||||
|
comissao.setEmpresaId(empresaId);
|
||||||
|
comissao.setPuntoVentaId(puntoVentaId);
|
||||||
|
|
||||||
|
comissao.setBonificacaoMetas(rc.getComissaoBonificaoMetas());
|
||||||
|
comissao.setComissaoBpr(rc.getComissaoBPR());
|
||||||
|
comissao.setEntregasPassagem(rc.getComissaoEntregaPassagem());
|
||||||
|
comissao.setReceitaExcessobagagem(rc.getComissaoExcessoBagagem());
|
||||||
|
comissao.setReceitaSeguroopcional(rc.getComissaoSegOpcional());
|
||||||
|
comissao.setRoyaties(rc.getRoyaties());
|
||||||
|
comissao.setIssRetido(rc.getRetidoISS());
|
||||||
|
comissao.setBonificacaoMetas(rc.getComissaoBonificaoMetas());
|
||||||
|
comissao.setDescontosEventuais(rc.getDescontos());
|
||||||
|
|
||||||
|
comissao.setIndPago(true);
|
||||||
|
comissao.setUsuarioPagamentoId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||||
|
|
||||||
|
comissao = comissaoService.suscribir(comissao);
|
||||||
|
} else {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -51,93 +94,75 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
return realizarCalculoComissao(puntoVentaId, empresaId, periodo);
|
return realizarCalculoComissao(puntoVentaId, empresaId, periodo);
|
||||||
}
|
}
|
||||||
|
|
||||||
public RegistroCalculo realizarCalculoComissao(Integer puntoVentaId, Integer empresaId, Date periodo) {
|
private BigDecimal calculoComisssaoBPR(boolean isAltaTemporada, boolean isReceitaLiquida, PtovtaComissao ptovtaComissao, ComissaoReceita cr) {
|
||||||
|
|
||||||
PtovtaComissao ptovtaComissao = ptovtaComissaoService.buscarPuntaVentaEmpresa(puntoVentaId, empresaId);
|
|
||||||
|
|
||||||
List<BoletoComissao> receitasBoleto = comissaoDAO.buscarReceitasComissoes(puntoVentaId, empresaId, periodo);
|
|
||||||
|
|
||||||
Calendar calendario = Calendar.getInstance();
|
|
||||||
calendario.setTime(periodo);
|
|
||||||
|
|
||||||
int ultimodia = calendario.getActualMaximum(Calendar.DAY_OF_MONTH);
|
|
||||||
int mes = calendario.get(Calendar.MONTH) + 1;
|
|
||||||
int ano = calendario.get(Calendar.YEAR);
|
|
||||||
|
|
||||||
List<ComissaoReceita> receitas = calculaReceitaComissao(ptovtaComissao, receitasBoleto, ultimodia, mes, ano);
|
|
||||||
for (ComissaoReceita comissaoReceita : receitas) {
|
|
||||||
log.info("Item=" + comissaoReceita.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
RegistroCalculo rc = new RegistroCalculo();
|
|
||||||
|
|
||||||
BigDecimal comissaoBPR = BigDecimal.ZERO;
|
|
||||||
BigDecimal comissaoExcessoBagagem = BigDecimal.ZERO;
|
|
||||||
BigDecimal comissaoSegOpcional = BigDecimal.ZERO;
|
|
||||||
BigDecimal comissaoEntregaPassagem = BigDecimal.ZERO;
|
|
||||||
|
|
||||||
for (ComissaoReceita cr : receitas) {
|
|
||||||
|
|
||||||
BigDecimal cem = BigDecimal.TEN.multiply(BigDecimal.TEN);
|
|
||||||
|
|
||||||
// Está parte esta encapsulada, posteriormente será implementada a validação de alta e baixa temporada
|
|
||||||
// Inicialmente só será validado os calculos de comissão em baixa temporada
|
|
||||||
boolean isAltaTemporada = false;
|
|
||||||
|
|
||||||
// Comissão BPR = Receita Comissão * (% Com BPR)
|
// Comissão BPR = Receita Comissão * (% Com BPR)
|
||||||
BigDecimal bpr = BigDecimal.ZERO;
|
BigDecimal bpr = BigDecimal.ZERO;
|
||||||
if (isAltaTemporada) {
|
BigDecimal receitaBPR = cr.getReceitaBPR().add(cr.getReceitaGAP());
|
||||||
bpr = cr.getReceitaBPR().multiply(ptovtaComissao.getPassagemAlta().divide(cem));
|
if (isReceitaLiquida) {
|
||||||
} else {
|
for (TipoIcms tipoIcms : cr.getDescontosIcms()) {
|
||||||
bpr = cr.getReceitaBPR().multiply(ptovtaComissao.getPassagemBaixa().divide(cem));
|
if (tipoIcms.equals(TipoIcms.BPR) || tipoIcms.equals(TipoIcms.GAP))
|
||||||
|
receitaBPR = receitaBPR.add(tipoIcms.getValor().negate());
|
||||||
}
|
}
|
||||||
cr.setComissaoBPRDiaria(bpr);
|
}
|
||||||
comissaoBPR = comissaoBPR.add(bpr);
|
|
||||||
|
if (isAltaTemporada) {
|
||||||
|
bpr = receitaBPR.multiply(ptovtaComissao.getPassagemAlta().divide(CEM));
|
||||||
|
} else {
|
||||||
|
bpr = receitaBPR.multiply(ptovtaComissao.getPassagemBaixa().divide(CEM));
|
||||||
|
}
|
||||||
|
|
||||||
|
return bpr;
|
||||||
|
}
|
||||||
|
|
||||||
|
private BigDecimal calculoEntregaPassagem(boolean isAltaTemporada, boolean isReceitaLiquida, PtovtaComissao ptovtaComissao, ComissaoReceita cr) {
|
||||||
|
|
||||||
|
// EntregaPassagem (Internet/Venda Impressão Posterior/Outros)
|
||||||
|
BigDecimal entregaPassagem = BigDecimal.ZERO;
|
||||||
|
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()) {
|
||||||
|
entregaPassagem = receitaEntrega.multiply(ptovtaComissao.getDesconto().divide(CEM));
|
||||||
|
} else {
|
||||||
|
entregaPassagem = ptovtaComissao.getDesconto().multiply(new BigDecimal(cr.getContImpressa()));
|
||||||
|
}
|
||||||
|
|
||||||
|
return entregaPassagem;
|
||||||
|
}
|
||||||
|
|
||||||
|
private BigDecimal calculoExcessoBagagem(boolean isAltaTemporada, PtovtaComissao ptovtaComissao, ComissaoReceita cr) {
|
||||||
|
|
||||||
// Comissão Excesso = Receita Excesso Bagagem * (% Com. Exc. Bag)
|
// Comissão Excesso = Receita Excesso Bagagem * (% Com. Exc. Bag)
|
||||||
BigDecimal excessoBagagem = BigDecimal.ZERO;
|
BigDecimal excessoBagagem = BigDecimal.ZERO;
|
||||||
if (isAltaTemporada) {
|
if (isAltaTemporada) {
|
||||||
excessoBagagem = cr.getReceitaExcessoBagagem().multiply(ptovtaComissao.getExcessoAlta().divide(cem));
|
excessoBagagem = cr.getReceitaExcessoBagagem().multiply(ptovtaComissao.getExcessoAlta().divide(CEM));
|
||||||
} else {
|
} else {
|
||||||
excessoBagagem = cr.getReceitaExcessoBagagem().multiply(ptovtaComissao.getExcessoBaixa().divide(cem));
|
excessoBagagem = cr.getReceitaExcessoBagagem().multiply(ptovtaComissao.getExcessoBaixa().divide(CEM));
|
||||||
}
|
}
|
||||||
cr.setComissaoExcessoBagagemDiaria(excessoBagagem);
|
|
||||||
comissaoExcessoBagagem = comissaoExcessoBagagem.add(excessoBagagem);
|
return excessoBagagem;
|
||||||
|
}
|
||||||
|
|
||||||
|
private BigDecimal calculoSeguroOpcional(boolean isAltaTemporada, PtovtaComissao ptovtaComissao, ComissaoReceita cr) {
|
||||||
|
|
||||||
// Comissão Seg. Opcional = Receita Seguro Opcional * (% Com. Seg. Pol)
|
// Comissão Seg. Opcional = Receita Seguro Opcional * (% Com. Seg. Pol)
|
||||||
BigDecimal segOpcional = BigDecimal.ZERO;
|
BigDecimal segOpcional = BigDecimal.ZERO;
|
||||||
if (isAltaTemporada) {
|
if (isAltaTemporada) {
|
||||||
segOpcional = cr.getReceitaSeguroOpcional().multiply(ptovtaComissao.getSeguroAlta().divide(cem));
|
segOpcional = cr.getReceitaSeguroOpcional().multiply(ptovtaComissao.getSeguroAlta().divide(CEM));
|
||||||
} else {
|
} else {
|
||||||
segOpcional = cr.getReceitaSeguroOpcional().multiply(ptovtaComissao.getSeguroBaixa().divide(cem));
|
segOpcional = cr.getReceitaSeguroOpcional().multiply(ptovtaComissao.getSeguroBaixa().divide(CEM));
|
||||||
}
|
}
|
||||||
cr.setComissaoSegOpcionalDiaria(segOpcional);
|
return segOpcional;
|
||||||
comissaoSegOpcional = comissaoSegOpcional.add(segOpcional);
|
|
||||||
|
|
||||||
// EntregaPassagem (Internet/Venda Impressão Posterior/Outros)
|
|
||||||
BigDecimal entregaPassagem = BigDecimal.ZERO;
|
|
||||||
if (ptovtaComissao.getInddescontoporc()) {
|
|
||||||
entregaPassagem = cr.getGapImpressa().multiply(ptovtaComissao.getDesconto().divide(cem));
|
|
||||||
} else {
|
|
||||||
entregaPassagem = ptovtaComissao.getDesconto().multiply(new BigDecimal(cr.getContImpressa()));
|
|
||||||
}
|
|
||||||
cr.setComissaoEntregaPassagemDiaria(entregaPassagem);
|
|
||||||
comissaoEntregaPassagem = comissaoEntregaPassagem.add(entregaPassagem);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rc.setLsReceitas(receitas);
|
private Map<String, Object> calculoDescontos(Integer puntoVentaId, Integer empresaId, Date periodo, PtovtaComissao ptovtaComissao) {
|
||||||
|
|
||||||
rc.setComissaoBPR(comissaoBPR);
|
|
||||||
rc.setComissaoExcessoBagagem(comissaoExcessoBagagem);
|
|
||||||
rc.setComissaoSegOpcional(comissaoSegOpcional);
|
|
||||||
rc.setComissaoEntregaPassagem(comissaoEntregaPassagem);
|
|
||||||
|
|
||||||
// Bonificação Metas
|
|
||||||
BigDecimal comissaoBonificaoMetas = BigDecimal.ZERO;
|
|
||||||
rc.setComissaoBonificaoMetas(comissaoBonificaoMetas);
|
|
||||||
|
|
||||||
// Descontos (Fixos e Eventuais)
|
|
||||||
List<ComissaoDesconto> lsDescontos = new ArrayList<ComissaoDesconto>();
|
List<ComissaoDesconto> lsDescontos = new ArrayList<ComissaoDesconto>();
|
||||||
BigDecimal valorDescontoTotal = BigDecimal.ZERO;
|
BigDecimal valorDescontoTotal = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
@ -161,24 +186,111 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
|
|
||||||
lsDescontos.add(desconto);
|
lsDescontos.add(desconto);
|
||||||
}
|
}
|
||||||
rc.setDescontos(valorDescontoTotal);
|
|
||||||
rc.setLsDescontos(lsDescontos);
|
Map<String, Object> respDescontos = new HashMap<String, Object>();
|
||||||
|
respDescontos.put("LISTA_DESCONTOS", lsDescontos);
|
||||||
|
respDescontos.put("VALOR_DESCONTOS", valorDescontoTotal);
|
||||||
|
|
||||||
|
return respDescontos;
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public RegistroCalculo realizarCalculoComissao(Integer puntoVentaId, Integer empresaId, Date periodo) {
|
||||||
|
|
||||||
|
PtovtaComissao ptovtaComissao = ptovtaComissaoService.buscarPuntaVentaEmpresa(puntoVentaId, empresaId);
|
||||||
|
|
||||||
|
List<BoletoComissao> receitasBoleto = comissaoDAO.buscarReceitasComissoes(puntoVentaId, empresaId, periodo);
|
||||||
|
|
||||||
|
Calendar calendario = Calendar.getInstance();
|
||||||
|
calendario.setTime(periodo);
|
||||||
|
|
||||||
|
int ultimodia = calendario.getActualMaximum(Calendar.DAY_OF_MONTH);
|
||||||
|
int mes = calendario.get(Calendar.MONTH) + 1;
|
||||||
|
int ano = calendario.get(Calendar.YEAR);
|
||||||
|
|
||||||
|
List<ComissaoReceita> receitas = calculaReceitaComissao(ptovtaComissao, receitasBoleto, ultimodia, mes, ano);
|
||||||
|
|
||||||
|
RegistroCalculo rc = new RegistroCalculo();
|
||||||
|
|
||||||
|
BigDecimal comissaoBPR = BigDecimal.ZERO;
|
||||||
|
BigDecimal comissaoExcessoBagagem = BigDecimal.ZERO;
|
||||||
|
BigDecimal comissaoSegOpcional = BigDecimal.ZERO;
|
||||||
|
BigDecimal comissaoEntregaPassagem = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
BigDecimal receitaTotal = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
for (ComissaoReceita cr : receitas) {
|
||||||
|
|
||||||
|
// Está parte esta encapsulada, posteriormente será implementada a validação de alta e baixa temporada
|
||||||
|
// Inicialmente só será validado os calculos de comissão em baixa temporada
|
||||||
|
boolean isAltaTemporada = false;
|
||||||
|
|
||||||
|
// 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;
|
||||||
|
receitaTotal = receitaTotal.add(cr.getReceitaBPR()).add(cr.getGapImpressa()).add(cr.getInternet()).add(cr.getReceitaGAP());
|
||||||
|
|
||||||
|
for (TipoIcms tipoIcms : cr.getDescontosIcms()) {
|
||||||
|
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);
|
||||||
|
comissaoBPR = comissaoBPR.add(bpr);
|
||||||
|
|
||||||
|
BigDecimal entregaPassagem = calculoEntregaPassagem(isAltaTemporada, isReceitaLiquida, ptovtaComissao, cr);
|
||||||
|
cr.setComissaoEntregaPassagemDiaria(entregaPassagem);
|
||||||
|
comissaoEntregaPassagem = comissaoEntregaPassagem.add(entregaPassagem);
|
||||||
|
|
||||||
|
BigDecimal excessoBagagem = calculoExcessoBagagem(isAltaTemporada, ptovtaComissao, cr);
|
||||||
|
cr.setComissaoExcessoBagagemDiaria(excessoBagagem);
|
||||||
|
comissaoExcessoBagagem = comissaoExcessoBagagem.add(excessoBagagem);
|
||||||
|
|
||||||
|
BigDecimal segOpcional = calculoSeguroOpcional(isAltaTemporada, ptovtaComissao, cr);
|
||||||
|
cr.setComissaoSegOpcionalDiaria(segOpcional);
|
||||||
|
comissaoSegOpcional = comissaoSegOpcional.add(segOpcional);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
rc.setLsReceitas(receitas);
|
||||||
|
|
||||||
|
rc.setComissaoBPR(comissaoBPR);
|
||||||
|
rc.setComissaoExcessoBagagem(comissaoExcessoBagagem);
|
||||||
|
rc.setComissaoSegOpcional(comissaoSegOpcional);
|
||||||
|
rc.setComissaoEntregaPassagem(comissaoEntregaPassagem);
|
||||||
|
|
||||||
|
// Descontos (Fixos e Eventuais)
|
||||||
|
Map<String, Object> respDescontos = calculoDescontos(puntoVentaId, empresaId, periodo, ptovtaComissao);
|
||||||
|
rc.setDescontos((BigDecimal) respDescontos.get("VALOR_DESCONTOS"));
|
||||||
|
rc.setLsDescontos((List<ComissaoDesconto>) respDescontos.get("LISTA_DESCONTOS"));
|
||||||
|
|
||||||
|
// Bonificação Metas
|
||||||
|
BigDecimal comissaoBonificaoMetas = BigDecimal.ZERO;
|
||||||
|
rc.setComissaoBonificaoMetas(comissaoBonificaoMetas);
|
||||||
|
|
||||||
// Royaties
|
// Royaties
|
||||||
BigDecimal royaties = BigDecimal.ZERO;
|
BigDecimal royaties = BigDecimal.ZERO;
|
||||||
|
royaties = receitaTotal.multiply(ptovtaComissao.getRoyalties().divide(CEM));
|
||||||
rc.setRoyaties(royaties);
|
rc.setRoyaties(royaties);
|
||||||
|
|
||||||
// ISS retido
|
// ISS retido
|
||||||
BigDecimal issRetido = BigDecimal.ZERO;
|
BigDecimal issRetido = BigDecimal.ZERO;
|
||||||
|
issRetido = receitaTotal.multiply(ptovtaComissao.getIssretido().divide(CEM));
|
||||||
rc.setRetidoISS(issRetido);
|
rc.setRetidoISS(issRetido);
|
||||||
|
|
||||||
// bruta/liquida - abatimento do valor do icms
|
// 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) - Descontos (Fixos e Eventuais) - Royaties - ISS retido
|
|
||||||
BigDecimal comissaoPagar = BigDecimal.ZERO;
|
BigDecimal comissaoPagar = BigDecimal.ZERO;
|
||||||
comissaoPagar = comissaoBPR.add(comissaoExcessoBagagem).add(comissaoSegOpcional).add(comissaoSegOpcional);
|
comissaoPagar = comissaoPagar.add(comissaoBPR).add(comissaoExcessoBagagem).add(comissaoSegOpcional);
|
||||||
comissaoPagar = comissaoPagar.add(comissaoEntregaPassagem).add(comissaoBonificaoMetas);
|
comissaoPagar = comissaoPagar.add(comissaoEntregaPassagem).add(comissaoBonificaoMetas);
|
||||||
comissaoPagar = comissaoPagar.add(valorDescontoTotal.negate()).add(royaties.negate()).add(issRetido.negate());
|
|
||||||
|
// Descontos // - Descontos (Fixos e Eventuais) - Royaties - ISS retido
|
||||||
|
comissaoPagar = comissaoPagar.add(rc.getDescontos().negate()).add(royaties.negate()).add(issRetido.negate());
|
||||||
rc.setComissaoPagar(comissaoPagar);
|
rc.setComissaoPagar(comissaoPagar);
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
|
@ -217,8 +329,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>();
|
||||||
|
|
||||||
for (BoletoComissao rcc : list) {
|
for (BoletoComissao rcc : list) {
|
||||||
|
|
||||||
|
IndStatusBoleto statusBoleto = IndStatusBoleto.valueOf(rcc.getIndstatusboleto());
|
||||||
|
|
||||||
BigDecimal receitaItem = BigDecimal.ZERO;
|
BigDecimal receitaItem = BigDecimal.ZERO;
|
||||||
BigDecimal receitaDevItem = BigDecimal.ZERO;
|
BigDecimal receitaDevItem = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
@ -240,8 +356,8 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Totais de Devolução / Cancelamento
|
// Totais de Devolução / Cancelamento
|
||||||
receitaDevItem = receitaDevItem.add(rcc.getValorpagado());
|
|
||||||
if (ptovtaComissao.getTarifaDev()) {
|
if (ptovtaComissao.getTarifaDev()) {
|
||||||
|
receitaDevItem = receitaDevItem.add(rcc.getValorpagado());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ptovtaComissao.getTaxaDev()) {
|
if (ptovtaComissao.getTaxaDev()) {
|
||||||
|
@ -256,13 +372,15 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
receitaDevItem = receitaDevItem.add(rcc.getPedagio());
|
receitaDevItem = receitaDevItem.add(rcc.getPedagio());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rcc.getMotivoCancelacionId() == null) {
|
|
||||||
|
|
||||||
IndStatusBoleto statusBoleto = IndStatusBoleto.valueOf(rcc.getIndstatusboleto());
|
|
||||||
|
|
||||||
// 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 {
|
||||||
|
@ -274,18 +392,37 @@ 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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
|
if (statusBoleto.equals(IndStatusBoleto.C)) {
|
||||||
// Devolução Receita
|
// Devolução Receita
|
||||||
if (rcc.getMotivoCancelacionId().equals(Constantes.MVO_CANCEL_DEVOLUCAO)) {
|
if (rcc.getMotivoCancelacionId().equals(Constantes.MVO_CANCEL_DEVOLUCAO)) {
|
||||||
|
|
||||||
|
@ -321,7 +458,6 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -341,6 +477,9 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
cr.setGapImpressa(gapImpressa);
|
cr.setGapImpressa(gapImpressa);
|
||||||
cr.setContImpressa(contImpressa);
|
cr.setContImpressa(contImpressa);
|
||||||
|
|
||||||
|
// cr.setCancelamentoICMS(cancelamentoICMS);
|
||||||
|
// cr.setReceitaICMS(receitaICMS);
|
||||||
|
|
||||||
// Receita Comissão = Receita BPR + Receita GAP - 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());
|
||||||
|
@ -352,6 +491,7 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
}
|
}
|
||||||
|
|
||||||
return receitas;
|
return receitas;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<BoletoComissao> verificaCalculoComissaoProDia(List<BoletoComissao> list, Integer dia, Integer mes) {
|
private List<BoletoComissao> verificaCalculoComissaoProDia(List<BoletoComissao> list, Integer dia, Integer mes) {
|
||||||
|
|
|
@ -0,0 +1,62 @@
|
||||||
|
package com.rjconsultores.ventaboletos.service.impl;
|
||||||
|
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.dao.ComissaoDAO;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Comissao;
|
||||||
|
import com.rjconsultores.ventaboletos.service.ComissaoService;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
|
||||||
|
|
||||||
|
@Service("comissaoService")
|
||||||
|
public class ComissaoServiceImpl implements ComissaoService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ComissaoDAO comissaoDAO;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Comissao> obtenerTodos() {
|
||||||
|
return comissaoDAO.obtenerTodos();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Comissao obtenerID(Integer id) {
|
||||||
|
return comissaoDAO.obtenerID(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public Comissao suscribir(Comissao entidad) {
|
||||||
|
entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||||
|
entidad.setFecmodif(Calendar.getInstance().getTime());
|
||||||
|
entidad.setActivo(Boolean.TRUE);
|
||||||
|
|
||||||
|
return comissaoDAO.suscribir(entidad);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public Comissao actualizacion(Comissao entidad) {
|
||||||
|
entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||||
|
entidad.setFecmodif(Calendar.getInstance().getTime());
|
||||||
|
entidad.setActivo(Boolean.TRUE);
|
||||||
|
|
||||||
|
return comissaoDAO.actualizacion(entidad);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public void borrar(Comissao entidad) {
|
||||||
|
entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||||
|
entidad.setFecmodif(Calendar.getInstance().getTime());
|
||||||
|
entidad.setActivo(Boolean.FALSE);
|
||||||
|
|
||||||
|
comissaoDAO.actualizacion(entidad);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -28,6 +28,7 @@ public class BoletoComissao {
|
||||||
private String uf;
|
private String uf;
|
||||||
private String desccategoria;
|
private String desccategoria;
|
||||||
private Integer status;
|
private Integer status;
|
||||||
|
private BigDecimal icmsBase;
|
||||||
|
|
||||||
public Integer getEmpresaId() {
|
public Integer getEmpresaId() {
|
||||||
return empresaId;
|
return empresaId;
|
||||||
|
@ -217,4 +218,12 @@ public class BoletoComissao {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BigDecimal getIcmsBase() {
|
||||||
|
return icmsBase;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIcmsBase(BigDecimal icmsBase) {
|
||||||
|
this.icmsBase = icmsBase;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -2,9 +2,25 @@ 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;
|
||||||
|
@ -26,6 +42,8 @@ public class ComissaoReceita {
|
||||||
private BigDecimal comissaoSegOpcionalDiaria;
|
private BigDecimal comissaoSegOpcionalDiaria;
|
||||||
private BigDecimal comissaoEntregaPassagemDiaria;
|
private BigDecimal comissaoEntregaPassagemDiaria;
|
||||||
|
|
||||||
|
List<TipoIcms> descontosIcms;
|
||||||
|
|
||||||
public Date getData() {
|
public Date getData() {
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -178,6 +196,14 @@ public class ComissaoReceita {
|
||||||
this.comissaoEntregaPassagemDiaria = comissaoEntregaPassagemDiaria;
|
this.comissaoEntregaPassagemDiaria = comissaoEntregaPassagemDiaria;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<TipoIcms> getDescontosIcms() {
|
||||||
|
return descontosIcms;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDescontosIcms(List<TipoIcms> descontosIcms) {
|
||||||
|
this.descontosIcms = descontosIcms;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "ComissaoReceita [data=" + data + ", receitaComissao=" + receitaComissao + ", receitaBPR=" + receitaBPR + ", receitaGAP=" + receitaGAP + ", gapImpressa=" + gapImpressa + ", internet=" + internet + ", cancelados=" + cancelados + ", canceladosGAP=" + canceladosGAP + ", devolvidos=" + devolvidos + ", devolvidosGAP=" + devolvidosGAP + ", devolucoesOrigem=" + devolucoesOrigem + ", devolucoesOrigemGAP=" + devolucoesOrigemGAP + ", receitaExcessoBagagem=" + receitaExcessoBagagem + ", receitaSeguroOpcional=" + receitaSeguroOpcional + ", contImpressa=" + contImpressa + ", comissaoBPRDiaria=" + comissaoBPRDiaria + ", comissaoExcessoBagagemDiaria=" + comissaoExcessoBagagemDiaria + ", comissaoSegOpcionalDiaria=" + comissaoSegOpcionalDiaria + ", comissaoEntregaPassagemDiaria=" + comissaoEntregaPassagemDiaria + "]";
|
return "ComissaoReceita [data=" + data + ", receitaComissao=" + receitaComissao + ", receitaBPR=" + receitaBPR + ", receitaGAP=" + receitaGAP + ", gapImpressa=" + gapImpressa + ", internet=" + internet + ", cancelados=" + cancelados + ", canceladosGAP=" + canceladosGAP + ", devolvidos=" + devolvidos + ", devolvidosGAP=" + devolvidosGAP + ", devolucoesOrigem=" + devolucoesOrigem + ", devolucoesOrigemGAP=" + devolucoesOrigemGAP + ", receitaExcessoBagagem=" + receitaExcessoBagagem + ", receitaSeguroOpcional=" + receitaSeguroOpcional + ", contImpressa=" + contImpressa + ", comissaoBPRDiaria=" + comissaoBPRDiaria + ", comissaoExcessoBagagemDiaria=" + comissaoExcessoBagagemDiaria + ", comissaoSegOpcionalDiaria=" + comissaoSegOpcionalDiaria + ", comissaoEntregaPassagemDiaria=" + comissaoEntregaPassagemDiaria + "]";
|
||||||
|
|
Loading…
Reference in New Issue