fixes bug#12391
dev:fabio qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@86838 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
213e6ae493
commit
58c49879c8
|
@ -14,6 +14,7 @@ public class Constantes {
|
||||||
public static final Long FORMA_PAGO_DEBITO = new Long(3);
|
public static final Long FORMA_PAGO_DEBITO = new Long(3);
|
||||||
public static final Long FORMA_PAGO_GERACAO_OCD = new Long(35);
|
public static final Long FORMA_PAGO_GERACAO_OCD = new Long(35);
|
||||||
public static final Long FORMA_PAGO_TROCA_PASSAGEM = new Long(10);
|
public static final Long FORMA_PAGO_TROCA_PASSAGEM = new Long(10);
|
||||||
|
public static final Long FORMA_PAGO_ORDEN_SERVICIO = new Long(11);
|
||||||
|
|
||||||
public static final Long MVO_CANCEL_CANCELACION = new Long(31);
|
public static final Long MVO_CANCEL_CANCELACION = new Long(31);
|
||||||
public static final Long MVO_CANCEL_DEVOLUCAO = new Long(32);
|
public static final Long MVO_CANCEL_DEVOLUCAO = new Long(32);
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.rjconsultores.ventaboletos.dao;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import com.rjconsultores.ventaboletos.entidad.Comissao;
|
import com.rjconsultores.ventaboletos.entidad.Comissao;
|
||||||
import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
|
import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
|
||||||
|
@ -14,8 +15,10 @@ public interface ComissaoDAO extends GenericDAO<Comissao, Integer> {
|
||||||
|
|
||||||
public Comissao buscaComissaoVigencia(Integer puntoVentaId, Integer empresaId, String competencia);
|
public Comissao buscaComissaoVigencia(Integer puntoVentaId, Integer empresaId, String competencia);
|
||||||
|
|
||||||
public List<HistoricoComissao> buscaHistoricoComissao(Integer puntoVentaId, Integer empresaId, Date periodoInicio, Date periodoFim);
|
public List<HistoricoComissao> buscaHistoricoComissao(Map<String, Object> parametros);
|
||||||
|
|
||||||
public List<PuntoVenta> buscaPuntoVentasEmpresaComComissaoParametrizada(Integer empresaId);
|
public List<PuntoVenta> buscaPuntoVentasEmpresaComComissaoParametrizada(Integer empresaId);
|
||||||
|
|
||||||
|
public Comissao buscaComissaoVigencia(Integer puntoVentaId, Integer empresaId, Date dataInicial, Date dataFinal);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,4 +60,6 @@ public interface ConferenciaComissaoDAO extends GenericDAO<Conferencia, Long> {
|
||||||
|
|
||||||
public void borrarLogConferenciaTransacaoId(Long transacaoId) throws BusinessException;
|
public void borrarLogConferenciaTransacaoId(Long transacaoId) throws BusinessException;
|
||||||
|
|
||||||
|
public boolean isConferenciaCompetenciaEncerrada(Date dataInicial, Date dataFinal, Empresa empresa, PuntoVenta puntoVenta) throws BusinessException;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
package com.rjconsultores.ventaboletos.dao.hibernate;
|
package com.rjconsultores.ventaboletos.dao.hibernate;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.Collection;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
import org.hibernate.Query;
|
import org.hibernate.Query;
|
||||||
import org.hibernate.SessionFactory;
|
import org.hibernate.SessionFactory;
|
||||||
|
@ -116,10 +118,10 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO<Comissao, Integer>
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<HistoricoComissao> buscaHistoricoComissao(Integer puntoVentaId, Integer empresaId, Date periodoInicio, Date periodoFim) {
|
public List<HistoricoComissao> buscaHistoricoComissao(Map<String, Object> parametros) {
|
||||||
|
|
||||||
String competenciaInicio = DateUtil.getStringDate(periodoInicio, "MM/yyyy");
|
/*String competenciaInicio = DateUtil.getStringDate(periodoInicio, "MM/yyyy");
|
||||||
String competenciaFim = DateUtil.getStringDate(periodoFim, "MM/yyyy");
|
String competenciaFim = DateUtil.getStringDate(periodoFim, "MM/yyyy");*/
|
||||||
|
|
||||||
StringBuilder sql = new StringBuilder();
|
StringBuilder sql = new StringBuilder();
|
||||||
sql.append("SELECT c.competencia AS competencia, pv.nombpuntoventa, pv.numpuntoventa, ");
|
sql.append("SELECT c.competencia AS competencia, pv.nombpuntoventa, pv.numpuntoventa, ");
|
||||||
|
@ -144,11 +146,8 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO<Comissao, Integer>
|
||||||
sql.append(" ul.nombusuario AS usuarioLancamento, ");
|
sql.append(" ul.nombusuario AS usuarioLancamento, ");
|
||||||
sql.append(" e.nombempresa, e.cnpj, ");
|
sql.append(" e.nombempresa, e.cnpj, ");
|
||||||
sql.append(" pa.numagencia as agencia, pa.numconta || '-' || pa.digito as conta, if.nome as banco, ");
|
sql.append(" pa.numagencia as agencia, pa.numconta || '-' || pa.digito as conta, if.nome as banco, ");
|
||||||
sql.append(" ci.nombciudad as cidade, pv.descCorreo, pv.razonsocial, pv.numdocpuntoventa as cnpjPuntoventa ");
|
sql.append(" ci.nombciudad as cidade, pv.descCorreo, pv.razonsocial, pv.numdocpuntoventa as cnpjPuntoventa, ");
|
||||||
/*
|
sql.append(" c.data_inicial as dataInicial, c.data_final as dataFinal ");
|
||||||
private String sigla;
|
|
||||||
private String nome;
|
|
||||||
*/
|
|
||||||
sql.append("FROM comissao c ");
|
sql.append("FROM comissao c ");
|
||||||
sql.append("JOIN punto_venta pv on pv.puntoventa_id = c.puntoventa_id ");
|
sql.append("JOIN punto_venta pv on pv.puntoventa_id = c.puntoventa_id ");
|
||||||
sql.append("JOIN empresa e on e.empresa_id = c.empresa_id ");
|
sql.append("JOIN empresa e on e.empresa_id = c.empresa_id ");
|
||||||
|
@ -159,13 +158,30 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO<Comissao, Integer>
|
||||||
sql.append("LEFT JOIN usuario up ON up.usuario_id = c.usuariopagamento_id ");
|
sql.append("LEFT JOIN usuario up ON up.usuario_id = c.usuariopagamento_id ");
|
||||||
sql.append("LEFT JOIN usuario ul ON ul.usuario_id = c.usuario_id ");
|
sql.append("LEFT JOIN usuario ul ON ul.usuario_id = c.usuario_id ");
|
||||||
sql.append("WHERE c.activo = 1 ");
|
sql.append("WHERE c.activo = 1 ");
|
||||||
sql.append(" AND c.empresa_id = :empresaId ");
|
|
||||||
sql.append(" AND TO_DATE(c.competencia,'MM/YYYY') BETWEEN TO_DATE(:periodoInicio,'MM/YYYY') and TO_DATE(:periodoFim,'MM/YYYY') ");
|
|
||||||
|
|
||||||
if(puntoVentaId != null) {
|
if(parametros.containsKey("empresaId")) {
|
||||||
|
sql.append(" AND c.empresa_id = :empresaId ");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(parametros.containsKey("competenciaInicial") && parametros.containsKey("competenciaFinal")) {
|
||||||
|
sql.append(" AND TO_DATE(c.competencia,'MM/YYYY') BETWEEN TO_DATE(:competenciaInicial,'MM/YYYY') and TO_DATE(:competenciaFinal,'MM/YYYY') ");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(parametros.containsKey("dataInicial") && parametros.containsKey("dataFinal")) {
|
||||||
|
sql.append(" AND ((TO_DATE(:dataInicial,'dd/mm/yyyy') between c.data_inicial and c.data_final) OR (TO_DATE(:dataFinal,'dd/mm/yyyy') between c.data_inicial and c.data_final)) ");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(parametros.containsKey("puntoventaId")) {
|
||||||
sql.append(" AND c.puntoventa_id = :puntoventaId ");
|
sql.append(" AND c.puntoventa_id = :puntoventaId ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(parametros.containsKey("competenciaInicio") && parametros.containsKey("competenciaFim")) {
|
||||||
sql.append("ORDER BY pv.nombpuntoventa, TO_DATE(c.competencia,'MM/YYYY') ");
|
sql.append("ORDER BY pv.nombpuntoventa, TO_DATE(c.competencia,'MM/YYYY') ");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(parametros.containsKey("dataInicial") && parametros.containsKey("dataFinal")) {
|
||||||
|
sql.append("ORDER BY pv.nombpuntoventa, c.data_inicial ");
|
||||||
|
}
|
||||||
|
|
||||||
Query query = getSession().createSQLQuery(sql.toString())
|
Query query = getSession().createSQLQuery(sql.toString())
|
||||||
.addScalar("competencia", StringType.INSTANCE)
|
.addScalar("competencia", StringType.INSTANCE)
|
||||||
|
@ -199,15 +215,11 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO<Comissao, Integer>
|
||||||
.addScalar("devolvidos", BigDecimalType.INSTANCE)
|
.addScalar("devolvidos", BigDecimalType.INSTANCE)
|
||||||
.addScalar("receitaBrutaExcessoBagagem", BigDecimalType.INSTANCE)
|
.addScalar("receitaBrutaExcessoBagagem", BigDecimalType.INSTANCE)
|
||||||
.addScalar("receitaBrutaSeguroopcional", BigDecimalType.INSTANCE)
|
.addScalar("receitaBrutaSeguroopcional", BigDecimalType.INSTANCE)
|
||||||
|
.addScalar("dataInicial", DateType.INSTANCE)
|
||||||
|
.addScalar("dataFinal", DateType.INSTANCE)
|
||||||
.setResultTransformer(new AliasToBeanResultTransformer(HistoricoComissao.class));
|
.setResultTransformer(new AliasToBeanResultTransformer(HistoricoComissao.class));
|
||||||
|
|
||||||
query.setString("periodoInicio", competenciaInicio);
|
setParametros(query, parametros);
|
||||||
query.setString("periodoFim", competenciaFim);
|
|
||||||
query.setInteger("empresaId", empresaId);
|
|
||||||
|
|
||||||
if(puntoVentaId != null) {
|
|
||||||
query.setInteger("puntoventaId", puntoVentaId);
|
|
||||||
}
|
|
||||||
|
|
||||||
return query.list();
|
return query.list();
|
||||||
}
|
}
|
||||||
|
@ -228,4 +240,35 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO<Comissao, Integer>
|
||||||
return qr.list();
|
return qr.list();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Comissao buscaComissaoVigencia(Integer puntoVentaId, Integer empresaId, Date dataInicial, Date dataFinal) {
|
||||||
|
StringBuilder hql = new StringBuilder();
|
||||||
|
hql.append(" from Comissao c ");
|
||||||
|
hql.append(" where c.activo = 1 ");
|
||||||
|
hql.append(" AND c.puntoVenta.puntoventaId = :puntoventaId ");
|
||||||
|
hql.append(" AND c.empresaId = :empresaId ");
|
||||||
|
hql.append(" AND ((TO_DATE(:dataInicial,'dd/mm/yyyy') between c.dataInicial and c.dataFinal) OR (TO_DATE(:dataFinal,'dd/mm/yyyy') between c.dataInicial and c.dataFinal))");
|
||||||
|
|
||||||
|
Query query = getSession().createQuery(hql.toString());
|
||||||
|
query.setString("dataInicial", DateUtil.getStringDate(dataInicial, "dd/MM/yyyy"));
|
||||||
|
query.setString("dataFinal", DateUtil.getStringDate(dataFinal, "dd/MM/yyyy"));
|
||||||
|
query.setInteger("puntoventaId", puntoVentaId);
|
||||||
|
query.setInteger("empresaId", empresaId);
|
||||||
|
|
||||||
|
return (Comissao) query.uniqueResult();
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("rawtypes")
|
||||||
|
private void setParametros(Query qr, Map<String, Object> parametros) {
|
||||||
|
for (Entry<String, Object> parametro : parametros.entrySet()) {
|
||||||
|
if (parametro.getValue() instanceof Collection) {
|
||||||
|
qr.setParameterList(parametro.getKey(), (Collection) parametro.getValue());
|
||||||
|
} else if (parametro.getValue() instanceof List) {
|
||||||
|
qr.setParameterList(parametro.getKey(), (List) parametro.getValue());
|
||||||
|
} else {
|
||||||
|
qr.setParameter(parametro.getKey(), parametro.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,7 @@ import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import com.rjconsultores.ventaboletos.dao.ComissaoReceitaDAO;
|
import com.rjconsultores.ventaboletos.dao.ComissaoReceitaDAO;
|
||||||
import com.rjconsultores.ventaboletos.entidad.ComissaoReceita;
|
import com.rjconsultores.ventaboletos.entidad.ComissaoReceita;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
|
||||||
|
|
||||||
@Repository("comissaoReceitaHibernateDAO")
|
@Repository("comissaoReceitaHibernateDAO")
|
||||||
public class ComissaoReceitaHibernateDAO extends GenericHibernateDAO<ComissaoReceita, Integer> implements ComissaoReceitaDAO {
|
public class ComissaoReceitaHibernateDAO extends GenericHibernateDAO<ComissaoReceita, Integer> implements ComissaoReceitaDAO {
|
||||||
|
@ -28,12 +29,12 @@ public class ComissaoReceitaHibernateDAO extends GenericHibernateDAO<ComissaoRec
|
||||||
.append("where c.activo = 1 ")
|
.append("where c.activo = 1 ")
|
||||||
.append(" AND c.puntoVenta.puntoventaId = :puntoventaId ")
|
.append(" AND c.puntoVenta.puntoventaId = :puntoventaId ")
|
||||||
.append(" AND c.empresa.empresaId = :empresaId ")
|
.append(" AND c.empresa.empresaId = :empresaId ")
|
||||||
.append(" AND c.datamovimento between :dataInicial and :dataFinal ")
|
.append(" AND c.datamovimento between TO_DATE(:dataInicial,'DD/MM/YYYY') and TO_DATE(:dataFinal,'DD/MM/YYYY') ")
|
||||||
.append("order by c.empresa.nombempresa, c.puntoVenta.nombpuntoventa, c.datamovimento");
|
.append("order by c.empresa.nombempresa, c.puntoVenta.nombpuntoventa, c.datamovimento");
|
||||||
|
|
||||||
Query query = getSession().createQuery(hql.toString());
|
Query query = getSession().createQuery(hql.toString());
|
||||||
query.setDate("dataInicial", dataInicial);
|
query.setString("dataInicial", DateUtil.getStringDate(dataInicial, "dd/MM/yyyy"));
|
||||||
query.setDate("dataFinal", dataFinal);
|
query.setString("dataFinal", DateUtil.getStringDate(dataFinal, "dd/MM/yyyy"));
|
||||||
query.setInteger("puntoventaId", puntoVentaId);
|
query.setInteger("puntoventaId", puntoVentaId);
|
||||||
query.setInteger("empresaId", empresaId);
|
query.setInteger("empresaId", empresaId);
|
||||||
|
|
||||||
|
@ -47,11 +48,11 @@ public class ComissaoReceitaHibernateDAO extends GenericHibernateDAO<ComissaoRec
|
||||||
hql.append("where c.activo = 1 ");
|
hql.append("where c.activo = 1 ");
|
||||||
hql.append(" AND c.puntoVenta.puntoventaId = :puntoventaId ");
|
hql.append(" AND c.puntoVenta.puntoventaId = :puntoventaId ");
|
||||||
hql.append(" AND c.empresa.empresaId = :empresaId ");
|
hql.append(" AND c.empresa.empresaId = :empresaId ");
|
||||||
hql.append(" AND c.datamovimento between :dataInicial and :dataFinal ");
|
hql.append(" AND c.datamovimento between TO_DATE(:dataInicial,'DD/MM/YYYY') and TO_DATE(:dataFinal,'DD/MM/YYYY') ");
|
||||||
|
|
||||||
Query query = getSession().createQuery(hql.toString());
|
Query query = getSession().createQuery(hql.toString());
|
||||||
query.setDate("dataInicial", dataInicial);
|
query.setString("dataInicial", DateUtil.getStringDate(dataInicial, "dd/MM/yyyy"));
|
||||||
query.setDate("dataFinal", dataFinal);
|
query.setString("dataFinal", DateUtil.getStringDate(dataFinal, "dd/MM/yyyy"));
|
||||||
query.setInteger("puntoventaId", puntoVentaId);
|
query.setInteger("puntoventaId", puntoVentaId);
|
||||||
query.setInteger("empresaId", empresaId);
|
query.setInteger("empresaId", empresaId);
|
||||||
|
|
||||||
|
|
|
@ -86,7 +86,7 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
|
||||||
List<ConferenciaComissaoVO> lsConferencias = new ArrayList<ConferenciaComissaoVO>();
|
List<ConferenciaComissaoVO> lsConferencias = new ArrayList<ConferenciaComissaoVO>();
|
||||||
|
|
||||||
carregarPuntoVentas(lsConferencias, competencia, empresa, puntoVenta, dataMovimento);
|
carregarPuntoVentas(lsConferencias, competencia, empresa, puntoVenta, dataMovimento);
|
||||||
carregarConferenciasRegistradas(lsConferencias, competencia, empresa, puntoVenta, dataMovimento, null);
|
carregarConferenciasRegistradas(lsConferencias, competencia, empresa, puntoVenta, dataMovimento, null, null, null);
|
||||||
carregarMovimentoVendas(con, lsConferencias, competencia, empresa, puntoVenta, dataMovimento, null, null);
|
carregarMovimentoVendas(con, lsConferencias, competencia, empresa, puntoVenta, dataMovimento, null, null);
|
||||||
carregarDiasSemMovimento(lsConferencias, competencia, empresa, puntoVenta, dataMovimento);
|
carregarDiasSemMovimento(lsConferencias, competencia, empresa, puntoVenta, dataMovimento);
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
|
||||||
String competencia = format.format(dataInicial);
|
String competencia = format.format(dataInicial);
|
||||||
|
|
||||||
carregarPuntoVentas(lsConferencias, dataInicial, dataFinal, empresa, puntoVenta, dataMovimento);
|
carregarPuntoVentas(lsConferencias, dataInicial, dataFinal, empresa, puntoVenta, dataMovimento);
|
||||||
carregarConferenciasRegistradas(lsConferencias, null, empresa, puntoVenta, dataMovimento, parametros);
|
carregarConferenciasRegistradas(lsConferencias, null, empresa, puntoVenta, dataMovimento, null, null, parametros);
|
||||||
carregarMovimentoVendas(con, lsConferencias, null, empresa, puntoVenta, dataMovimento, dataInicial, dataFinal);
|
carregarMovimentoVendas(con, lsConferencias, null, empresa, puntoVenta, dataMovimento, dataInicial, dataFinal);
|
||||||
carregarDiasSemMovimento(lsConferencias, competencia, empresa, puntoVenta, dataMovimento);
|
carregarDiasSemMovimento(lsConferencias, competencia, empresa, puntoVenta, dataMovimento);
|
||||||
|
|
||||||
|
@ -204,10 +204,10 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
private void carregarConferenciasRegistradas(List<ConferenciaComissaoVO> lsConferencias,
|
private void carregarConferenciasRegistradas(List<ConferenciaComissaoVO> lsConferencias,
|
||||||
String competencia, Empresa empresa, PuntoVenta puntoVenta, Date dataMovimento, Map<String, Object> parametros) throws BusinessException {
|
String competencia, Empresa empresa, PuntoVenta puntoVenta, Date dataMovimento, Date dataInicial, Date dataFinal, Map<String, Object> parametros) throws BusinessException {
|
||||||
try {
|
try {
|
||||||
if (parametros == null) {
|
if (parametros == null) {
|
||||||
parametros = carregarParametros(null, null, competencia, empresa, puntoVenta, dataMovimento, false);
|
parametros = carregarParametros(dataInicial, dataFinal, competencia, empresa, puntoVenta, dataMovimento, false);
|
||||||
}
|
}
|
||||||
StringBuilder sQuery = new StringBuilder("SELECT co FROM Conferencia co ");
|
StringBuilder sQuery = new StringBuilder("SELECT co FROM Conferencia co ");
|
||||||
sQuery.append("JOIN co.empresa em ")
|
sQuery.append("JOIN co.empresa em ")
|
||||||
|
@ -224,8 +224,8 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
|
||||||
|
|
||||||
Query qr = getSession().createQuery(sQuery.toString());
|
Query qr = getSession().createQuery(sQuery.toString());
|
||||||
setParametros(qr, parametros);
|
setParametros(qr, parametros);
|
||||||
Date dataInicial = parametros.get("dataInicial") != null ? DateUtil.getDateFromString(parametros.get("dataInicial").toString(), "dd/MM/yyyy HH:mm") : null;
|
dataInicial = parametros.get("dataInicial") != null ? DateUtil.getDateFromString(parametros.get("dataInicial").toString(), "dd/MM/yyyy HH:mm") : null;
|
||||||
Date dataFinal = parametros.get("dataFinal") != null ? DateUtil.getDateFromString(parametros.get("dataFinal").toString(), "dd/MM/yyyy HH:mm") : null;
|
dataFinal = parametros.get("dataFinal") != null ? DateUtil.getDateFromString(parametros.get("dataFinal").toString(), "dd/MM/yyyy HH:mm") : null;
|
||||||
processarQueryConferencia(qr.list(), lsConferencias, competencia, dataMovimento, dataInicial, dataFinal);
|
processarQueryConferencia(qr.list(), lsConferencias, competencia, dataMovimento, dataInicial, dataFinal);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage(), e);
|
log.error(e.getMessage(), e);
|
||||||
|
@ -602,7 +602,7 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
|
||||||
ResultSet rSet = null;
|
ResultSet rSet = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Map<String, Object> parametros = carregarParametros(null, null, conferencia.getCompetencia(), conferencia.getEmpresa(),
|
Map<String, Object> parametros = carregarParametros(conferencia.getDataInicial(), conferencia.getDataFinal(), conferencia.getCompetencia(), conferencia.getEmpresa(),
|
||||||
conferencia.getPuntoVenta(), conferencia.getDatamovimento(), true);
|
conferencia.getPuntoVenta(), conferencia.getDatamovimento(), true);
|
||||||
StringBuilder sQuery = new StringBuilder()
|
StringBuilder sQuery = new StringBuilder()
|
||||||
.append("SELECT EE.BOLETO_ID AS \"boletoId\", EE.EVENTOEXTRA_ID AS \"eventoextraId\", EE.NUMDOCUMENTO AS \"numdocumento\", ")
|
.append("SELECT EE.BOLETO_ID AS \"boletoId\", EE.EVENTOEXTRA_ID AS \"eventoextraId\", EE.NUMDOCUMENTO AS \"numdocumento\", ")
|
||||||
|
@ -826,7 +826,7 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
|
||||||
ResultSet rSet = null;
|
ResultSet rSet = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Map<String, Object> parametros = carregarParametros(null, null, conferencia.getCompetencia(), conferencia.getEmpresa(),
|
Map<String, Object> parametros = carregarParametros(conferencia.getDataInicial(), conferencia.getDataFinal(), conferencia.getCompetencia(), conferencia.getEmpresa(),
|
||||||
conferencia.getPuntoVenta(), conferencia.getDatamovimento(), true);
|
conferencia.getPuntoVenta(), conferencia.getDatamovimento(), true);
|
||||||
|
|
||||||
StringBuilder sQuery = new StringBuilder()
|
StringBuilder sQuery = new StringBuilder()
|
||||||
|
@ -1210,7 +1210,7 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
|
||||||
try {
|
try {
|
||||||
List<ConferenciaComissaoVO> lsConferencias = new ArrayList<ConferenciaComissaoVO>();
|
List<ConferenciaComissaoVO> lsConferencias = new ArrayList<ConferenciaComissaoVO>();
|
||||||
|
|
||||||
carregarConferenciasRegistradas(lsConferencias, competencia, empresa, puntoVenta, null, null);
|
carregarConferenciasRegistradas(lsConferencias, competencia, empresa, puntoVenta, null, null, null, null);
|
||||||
carregarDiasSemMovimento(lsConferencias, competencia, empresa, puntoVenta, null);
|
carregarDiasSemMovimento(lsConferencias, competencia, empresa, puntoVenta, null);
|
||||||
|
|
||||||
for (ConferenciaComissaoVO conferenciaComissao : lsConferencias) {
|
for (ConferenciaComissaoVO conferenciaComissao : lsConferencias) {
|
||||||
|
@ -1344,4 +1344,31 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isConferenciaCompetenciaEncerrada(Date dataInicial, Date dataFinal, Empresa empresa, PuntoVenta puntoVenta) throws BusinessException {
|
||||||
|
try {
|
||||||
|
List<ConferenciaComissaoVO> lsConferencias = new ArrayList<ConferenciaComissaoVO>();
|
||||||
|
|
||||||
|
String competencia = DateUtil.getStringDate(dataInicial, "MM/yyyy");
|
||||||
|
|
||||||
|
carregarConferenciasRegistradas(lsConferencias, competencia, empresa, puntoVenta, null, dataInicial, dataFinal, null);
|
||||||
|
carregarDiasSemMovimento(lsConferencias, competencia, empresa, puntoVenta, null);
|
||||||
|
|
||||||
|
for (ConferenciaComissaoVO conferenciaComissao : lsConferencias) {
|
||||||
|
for (DiaConferenciaComissaoVO diaConferenciaComissao : conferenciaComissao.getDias()) {
|
||||||
|
if (DateUtil.compareOnlyDate(diaConferenciaComissao.getData(), dataInicial) >= 0 &&
|
||||||
|
DateUtil.compareOnlyDate(diaConferenciaComissao.getData(), dataFinal) <= 0 &&
|
||||||
|
!diaConferenciaComissao.getIndsemmovimento() && !diaConferenciaComissao.getIndconferido()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e.getMessage(), e);
|
||||||
|
throw new BusinessException(e.getMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,6 +83,14 @@ public class Comissao implements Serializable {
|
||||||
@Column(name = "RECEITA_BRUTA_SEGUROOPCIONAL")
|
@Column(name = "RECEITA_BRUTA_SEGUROOPCIONAL")
|
||||||
private BigDecimal receitaBrutaSeguroopcional;
|
private BigDecimal receitaBrutaSeguroopcional;
|
||||||
|
|
||||||
|
@Column(name = "DATA_INICIAL")
|
||||||
|
@Temporal(TemporalType.DATE)
|
||||||
|
private Date dataInicial;
|
||||||
|
|
||||||
|
@Column(name = "DATA_FINAL")
|
||||||
|
@Temporal(TemporalType.DATE)
|
||||||
|
private Date dataFinal;
|
||||||
|
|
||||||
public Comissao() {
|
public Comissao() {
|
||||||
super();
|
super();
|
||||||
setComissaoBpr(BigDecimal.ZERO);
|
setComissaoBpr(BigDecimal.ZERO);
|
||||||
|
@ -293,4 +301,20 @@ public class Comissao implements Serializable {
|
||||||
this.receitaBrutaSeguroopcional = receitaBrutaSeguroopcional;
|
this.receitaBrutaSeguroopcional = receitaBrutaSeguroopcional;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Date getDataInicial() {
|
||||||
|
return dataInicial;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDataInicial(Date dataInicial) {
|
||||||
|
this.dataInicial = dataInicial;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDataFinal() {
|
||||||
|
return dataFinal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDataFinal(Date dataFinal) {
|
||||||
|
this.dataFinal = dataFinal;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,6 +88,12 @@ public class Conferencia implements Serializable {
|
||||||
@Transient
|
@Transient
|
||||||
private String competencia;
|
private String competencia;
|
||||||
|
|
||||||
|
@Transient
|
||||||
|
private Date dataInicial;
|
||||||
|
|
||||||
|
@Transient
|
||||||
|
private Date dataFinal;
|
||||||
|
|
||||||
public Conferencia() {
|
public Conferencia() {
|
||||||
super();
|
super();
|
||||||
this.indboletogerado = Boolean.FALSE;
|
this.indboletogerado = Boolean.FALSE;
|
||||||
|
@ -264,4 +270,20 @@ public class Conferencia implements Serializable {
|
||||||
this.competencia = competencia;
|
this.competencia = competencia;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Date getDataInicial() {
|
||||||
|
return dataInicial;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDataInicial(Date dataInicial) {
|
||||||
|
this.dataInicial = dataInicial;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDataFinal() {
|
||||||
|
return dataFinal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDataFinal(Date dataFinal) {
|
||||||
|
this.dataFinal = dataFinal;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -117,6 +117,9 @@ public class PtovtaComissao implements Serializable {
|
||||||
@Column(name = "VALOR_IMPRESSAO_GAP")
|
@Column(name = "VALOR_IMPRESSAO_GAP")
|
||||||
private BigDecimal valorImpressaoGap;
|
private BigDecimal valorImpressaoGap;
|
||||||
|
|
||||||
|
@Column(name = "VALOR_IMPRESSAO_GAP_ALTA")
|
||||||
|
private BigDecimal valorImpressaoGapAlta;
|
||||||
|
|
||||||
@JoinColumn(name = "PUNTOVENTA_ID", referencedColumnName = "PUNTOVENTA_ID")
|
@JoinColumn(name = "PUNTOVENTA_ID", referencedColumnName = "PUNTOVENTA_ID")
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
private PuntoVenta puntoventaId;
|
private PuntoVenta puntoventaId;
|
||||||
|
@ -131,6 +134,9 @@ public class PtovtaComissao implements Serializable {
|
||||||
@Column(name = "INDBILHETESDEVCANORIGEM")
|
@Column(name = "INDBILHETESDEVCANORIGEM")
|
||||||
private Boolean indbilhetesdevcanorigem;
|
private Boolean indbilhetesdevcanorigem;
|
||||||
|
|
||||||
|
@Column(name = "INDPAGACOMISSAOBILHETEOS")
|
||||||
|
private Boolean indPagaComissaoBilheteOS;
|
||||||
|
|
||||||
public PtovtaComissao() {
|
public PtovtaComissao() {
|
||||||
super();
|
super();
|
||||||
this.tarifaDev = Boolean.TRUE;
|
this.tarifaDev = Boolean.TRUE;
|
||||||
|
@ -491,4 +497,20 @@ public class PtovtaComissao implements Serializable {
|
||||||
public void setIndbilhetesdevcanorigem(Boolean indbilhetesdevcanorigem) {
|
public void setIndbilhetesdevcanorigem(Boolean indbilhetesdevcanorigem) {
|
||||||
this.indbilhetesdevcanorigem = indbilhetesdevcanorigem;
|
this.indbilhetesdevcanorigem = indbilhetesdevcanorigem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BigDecimal getValorImpressaoGapAlta() {
|
||||||
|
return valorImpressaoGapAlta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValorImpressaoGapAlta(BigDecimal valorImpressaoGapAlta) {
|
||||||
|
this.valorImpressaoGapAlta = valorImpressaoGapAlta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getIndPagaComissaoBilheteOS() {
|
||||||
|
return indPagaComissaoBilheteOS;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIndPagaComissaoBilheteOS(Boolean indPagaComissaoBilheteOS) {
|
||||||
|
this.indPagaComissaoBilheteOS = indPagaComissaoBilheteOS;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,13 +16,26 @@ public interface CalculoComissaoService {
|
||||||
|
|
||||||
public void registrarCalculoComissao(PuntoVenta puntoVenta, Empresa empresa, Date periodo, boolean ignorarComissaoGerada, Integer usuarioId, Boolean isRetencaoDiaria, Boolean isRefazerCalculo) throws ComissaoException;
|
public void registrarCalculoComissao(PuntoVenta puntoVenta, Empresa empresa, Date periodo, boolean ignorarComissaoGerada, Integer usuarioId, Boolean isRetencaoDiaria, Boolean isRefazerCalculo) throws ComissaoException;
|
||||||
|
|
||||||
public void cancelarCalculoComissao(Integer puntoVentaId, Integer empresaId, Date periodo) throws ComissaoException;
|
public void cancelarCalculoComissao(Integer puntoVentaId, Integer empresaId, Date periodo) throws ComissaoException, BusinessException;
|
||||||
|
|
||||||
public List<RegistroCalculo> relatorioCalculoComissao(Integer empresaId, Date periodo, Integer usuarioId, Boolean isRetencaoDiaria, Boolean isRefazerCalculo) throws ComissaoException, BusinessException;
|
/**
|
||||||
|
* Relatorio Analitico da comissao
|
||||||
|
* @param empresaId
|
||||||
|
* @param competencia - Informe o competencia se o calculo da comissão for por mês
|
||||||
|
* @param dataInicial - Informe a data inicial se o calculo da comissao for por periodo
|
||||||
|
* @param dataFinal - Informe a data final se o calculo da comissao for por periodo
|
||||||
|
* @param usuarioId
|
||||||
|
* @param isRetencaoDiaria
|
||||||
|
* @param isRefazerCalculo
|
||||||
|
* @return
|
||||||
|
* @throws ComissaoException
|
||||||
|
* @throws BusinessException
|
||||||
|
*/
|
||||||
|
public List<RegistroCalculo> relatorioCalculoComissao(Integer empresaId, Date competencia, Date dataInicial, Date dataFinal, Integer usuarioId, Boolean isRetencaoDiaria, Boolean isRefazerCalculo) throws ComissaoException, BusinessException;
|
||||||
|
|
||||||
public void registrarCalculoComissao(Empresa empresa, Date periodo, boolean ignorarComissaoGerada, Integer usuarioId, Boolean isRetencaoDiaria, Boolean isRefazerCalculo) throws ComissaoException;
|
public void registrarCalculoComissao(Empresa empresa, Date periodo, boolean ignorarComissaoGerada, Integer usuarioId, Boolean isRetencaoDiaria, Boolean isRefazerCalculo) throws ComissaoException;
|
||||||
|
|
||||||
public void cancelarCalculoComissao(Integer empresaId, Date periodo) throws ComissaoException;
|
public void cancelarCalculoComissao(Integer empresaId, Date periodo) throws ComissaoException, BusinessException;
|
||||||
|
|
||||||
public List<HistoricoComissao> relatorioReciboComissao(Integer puntoVentaId, Integer empresaId, String competencia) throws ComissaoException;
|
public List<HistoricoComissao> relatorioReciboComissao(Integer puntoVentaId, Integer empresaId, String competencia) throws ComissaoException;
|
||||||
|
|
||||||
|
@ -32,4 +45,81 @@ public interface CalculoComissaoService {
|
||||||
|
|
||||||
public void retencaoAutomaticaComissao();
|
public void retencaoAutomaticaComissao();
|
||||||
|
|
||||||
|
public RegistroCalculo realizarCalculoComissao(Integer puntoVentaId, Integer empresaId, Date periodo, Boolean isRetencaoDiaria, Integer usuarioId, Boolean isRefazerCalculo) throws ComissaoException, BusinessException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Relatorio de comissão por data inicial e data final
|
||||||
|
* @param puntoVentaId
|
||||||
|
* @param empresaId
|
||||||
|
* @param usuarioId
|
||||||
|
* @param isRetencaoDiaria
|
||||||
|
* @param isRefazerCalculo
|
||||||
|
* @param dataInicial
|
||||||
|
* @param dataFinal
|
||||||
|
* @return
|
||||||
|
* @throws ComissaoException
|
||||||
|
* @throws BusinessException
|
||||||
|
*/
|
||||||
|
public RegistroCalculo relatorioCalculoComissao(Integer puntoVentaId, Integer empresaId, Integer usuarioId, Boolean isRetencaoDiaria, Boolean isRefazerCalculo, Date dataInicial, Date dataFinal) throws ComissaoException, BusinessException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registra a comissão por periodo
|
||||||
|
* @param puntoVenta
|
||||||
|
* @param empresa
|
||||||
|
* @param ignorarComissaoGerada
|
||||||
|
* @param usuarioId
|
||||||
|
* @param isRetencaoDiaria
|
||||||
|
* @param isRefazerCalculo
|
||||||
|
* @param dataInicial
|
||||||
|
* @param dataFinal
|
||||||
|
* @throws ComissaoException
|
||||||
|
*/
|
||||||
|
public void registrarCalculoComissaoPeriodo(PuntoVenta puntoVenta, Empresa empresa, boolean ignorarComissaoGerada, Integer usuarioId, Boolean isRetencaoDiaria, Boolean isRefazerCalculo, Date dataInicial, Date dataFinal) throws ComissaoException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registra a comissão por periodo para todos os pontos de venda
|
||||||
|
* @param puntoVenta
|
||||||
|
* @param empresa
|
||||||
|
* @param ignorarComissaoGerada
|
||||||
|
* @param usuarioId
|
||||||
|
* @param isRetencaoDiaria
|
||||||
|
* @param isRefazerCalculo
|
||||||
|
* @param dataInicial
|
||||||
|
* @param dataFinal
|
||||||
|
* @throws ComissaoException
|
||||||
|
*/
|
||||||
|
public void registrarCalculoComissaoPeriodo(Empresa empresa, boolean ignorarComissaoGerada, Integer usuarioId, Boolean isRetencaoDiaria, Boolean isRefazerCalculo, Date dataInicial, Date dataFinal) throws ComissaoException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cancela o calculo de comissao por periodo
|
||||||
|
* @param puntoVentaId
|
||||||
|
* @param empresaId
|
||||||
|
* @param dataInicial
|
||||||
|
* @param dataFinal
|
||||||
|
* @throws ComissaoException
|
||||||
|
* @throws BusinessException
|
||||||
|
*/
|
||||||
|
public void cancelarCalculoComissaoPeriodo(Integer puntoVentaId, Integer empresaId, Date dataInicial, Date dataFinal) throws ComissaoException, BusinessException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cancela o calculo de comissao por periodo para todas as agencas
|
||||||
|
* @param empresaId
|
||||||
|
* @param dataInicial
|
||||||
|
* @param dataFinal
|
||||||
|
* @throws ComissaoException
|
||||||
|
* @throws BusinessException
|
||||||
|
*/
|
||||||
|
public void cancelarCalculoComissaoPeriodo(Integer empresaId, Date dataInicial, Date dataFinal) throws ComissaoException, BusinessException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Recupera o historico de comissão por periodo
|
||||||
|
* @param puntoVentaId
|
||||||
|
* @param empresaId
|
||||||
|
* @param dataInicial
|
||||||
|
* @param dataFinal
|
||||||
|
* @return
|
||||||
|
* @throws ComissaoException
|
||||||
|
*/
|
||||||
|
public List<HistoricoComissao> relatorioReciboComissao(Integer puntoVentaId, Integer empresaId, Date dataInicial, Date dataFinal) throws ComissaoException;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,4 +92,6 @@ public interface ConferenciaComissaoService extends GenericService<Conferencia,
|
||||||
|
|
||||||
public void borrarLogConferenciaTransacaoId(Long transacaoId) throws BusinessException;
|
public void borrarLogConferenciaTransacaoId(Long transacaoId) throws BusinessException;
|
||||||
|
|
||||||
|
public boolean isConferenciaCompetenciaEncerrada(Date dataInicial, Date dataFinal, Empresa empresa, PuntoVenta puntoVenta) throws BusinessException;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,6 +57,7 @@ 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.EventosFinanceirosVO;
|
import com.rjconsultores.ventaboletos.vo.comissao.EventosFinanceirosVO;
|
||||||
|
import com.rjconsultores.ventaboletos.vo.comissao.FormapagoVO;
|
||||||
import com.rjconsultores.ventaboletos.vo.comissao.HistoricoComissao;
|
import com.rjconsultores.ventaboletos.vo.comissao.HistoricoComissao;
|
||||||
import com.rjconsultores.ventaboletos.vo.comissao.RegistroCalculo;
|
import com.rjconsultores.ventaboletos.vo.comissao.RegistroCalculo;
|
||||||
|
|
||||||
|
@ -122,6 +123,23 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean validaPeriodo(Date dataInicial, Date dataFinal) {
|
||||||
|
Calendar cal = Calendar.getInstance();
|
||||||
|
cal.setTime(dataInicial);
|
||||||
|
int monthInicial = cal.get(Calendar.MONTH);
|
||||||
|
int yearInicial = cal.get(Calendar.YEAR);
|
||||||
|
|
||||||
|
cal.setTime(dataFinal);
|
||||||
|
int monthFinal = cal.get(Calendar.MONTH);
|
||||||
|
int yearFinal = cal.get(Calendar.YEAR);
|
||||||
|
|
||||||
|
if(monthInicial != monthFinal || yearFinal != yearInicial){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void registrarCalculoComissao(PuntoVenta puntoVenta, Empresa empresa, Date periodo, boolean ignorarComissaoGerada, Integer usuarioId, Boolean isRetencaoDiaria, Boolean isRefazerCalculo) throws ComissaoException {
|
public void registrarCalculoComissao(PuntoVenta puntoVenta, Empresa empresa, Date periodo, boolean ignorarComissaoGerada, Integer usuarioId, Boolean isRetencaoDiaria, Boolean isRefazerCalculo) throws ComissaoException {
|
||||||
|
|
||||||
|
@ -137,45 +155,7 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
|
|
||||||
RegistroCalculo rc = realizarCalculoComissao(puntoVenta.getPuntoventaId(), empresa.getEmpresaId(), periodo, isRetencaoDiaria, usuarioId, isRefazerCalculo);
|
RegistroCalculo rc = realizarCalculoComissao(puntoVenta.getPuntoventaId(), empresa.getEmpresaId(), periodo, isRetencaoDiaria, usuarioId, isRefazerCalculo);
|
||||||
|
|
||||||
Comissao comissao = new Comissao();
|
gravarComissao(puntoVenta, empresa, rc, competencia, null, null);
|
||||||
comissao.setCompetencia(competencia);
|
|
||||||
comissao.setEmpresaId(empresa.getEmpresaId());
|
|
||||||
comissao.setPuntoVenta(puntoVenta);
|
|
||||||
comissao.setBonificacaoMetas(rc.getComissaoBonificaoMetas());
|
|
||||||
comissao.setComissaoBpr(rc.getComissaoBPR());
|
|
||||||
comissao.setEntregasPassagem(rc.getComissaoEntregaPassagem());
|
|
||||||
comissao.setReceitaExcessobagagem(rc.getComissaoExcessoBagagem());
|
|
||||||
comissao.setReceitaSeguroopcional(rc.getComissaoSegOpcional());
|
|
||||||
comissao.setReceitaOutros(rc.getComissaoOutros());
|
|
||||||
comissao.setRoyaties(rc.getRoyaties());
|
|
||||||
comissao.setIssRetido(rc.getRetidoISS());
|
|
||||||
|
|
||||||
comissao.setIndPago(false);
|
|
||||||
comissao.setUsuarioPagamentoId(null);
|
|
||||||
comissao.setDataPagamento(null);
|
|
||||||
comissao.setDescontosEventuais(BigDecimal.ZERO);
|
|
||||||
comissao.setDescontosFixos(BigDecimal.ZERO);
|
|
||||||
|
|
||||||
for (ComissaoDesconto cd : rc.getLsDescontos()) {
|
|
||||||
if (cd.getTipo().equals(TipoDesconto.EVENTUAL)) {
|
|
||||||
comissao.setDescontosEventuais(cd.getValorDesconto());
|
|
||||||
} else if (cd.getTipo().equals(TipoDesconto.FIXO)) {
|
|
||||||
comissao.setDescontosFixos(cd.getValorDesconto());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (ComissaoReceita comissaoReceita : rc.getLsReceitas()) {
|
|
||||||
comissao.setReceitaBPR(MoneyHelper.somar(comissao.getReceitaBPR(), comissaoReceita.getReceitaBPR(), 2));
|
|
||||||
comissao.setDevolvidos(MoneyHelper.somar(comissao.getDevolvidos(), comissaoReceita.getDevolvidosRelatorio(), 2));
|
|
||||||
comissao.setDevolvidos(MoneyHelper.somar(comissao.getDevolvidos(), comissaoReceita.getDevolvidosGAPRelatorio(), 2));
|
|
||||||
comissao.setDevolvidos(MoneyHelper.somar(comissao.getDevolvidos(), comissaoReceita.getCancelados(), 2));
|
|
||||||
comissao.setDevolvidos(MoneyHelper.somar(comissao.getDevolvidos(), comissaoReceita.getCanceladosGAP(), 2));
|
|
||||||
comissao.setDevolvidos(MoneyHelper.somar(comissao.getDevolvidos(), comissaoReceita.getCanceladosGAP(), 2));
|
|
||||||
comissao.setReceitaBrutaExcessoBagagem(MoneyHelper.somar(comissao.getReceitaBrutaExcessoBagagem(), comissaoReceita.getReceitaExcessoBagagem(), 2));
|
|
||||||
comissao.setReceitaBrutaSeguroopcional(MoneyHelper.somar(comissao.getReceitaBrutaSeguroopcional(), comissaoReceita.getReceitaSeguroOpcional(), 2));
|
|
||||||
}
|
|
||||||
|
|
||||||
comissao = comissaoService.suscribir(comissao);
|
|
||||||
} else if(!ignorarComissaoGerada){
|
} else if(!ignorarComissaoGerada){
|
||||||
throw new ComissaoException("busquedaCalculoComissaoController.registro.exception", null, comissaoCadastrada.getPuntoVenta().getNombpuntoventa());
|
throw new ComissaoException("busquedaCalculoComissaoController.registro.exception", null, comissaoCadastrada.getPuntoVenta().getNombpuntoventa());
|
||||||
}
|
}
|
||||||
|
@ -195,17 +175,85 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
/**
|
||||||
public void cancelarCalculoComissao(Integer puntoVentaId, Integer empresaId, Date periodo) throws ComissaoException {
|
* Grava a comissao gerada
|
||||||
|
* @param puntoVenta
|
||||||
|
* @param empresa
|
||||||
|
* @param registroCalculo
|
||||||
|
* @param competencia
|
||||||
|
* @throws ComissaoException
|
||||||
|
*/
|
||||||
|
private void gravarComissao(PuntoVenta puntoVenta, Empresa empresa, RegistroCalculo registroCalculo, String competencia, Date dataInicial, Date dataFinal) throws ComissaoException {
|
||||||
|
try {
|
||||||
|
Comissao comissao = new Comissao();
|
||||||
|
|
||||||
|
if(StringUtils.isNotBlank(competencia)) {
|
||||||
|
comissao.setCompetencia(competencia);
|
||||||
|
} else if(dataInicial != null && dataFinal != null){
|
||||||
|
comissao.setDataInicial(dataInicial);
|
||||||
|
comissao.setDataFinal(dataFinal);
|
||||||
|
}
|
||||||
|
|
||||||
|
comissao.setEmpresaId(empresa.getEmpresaId());
|
||||||
|
comissao.setPuntoVenta(puntoVenta);
|
||||||
|
comissao.setBonificacaoMetas(registroCalculo.getComissaoBonificaoMetas());
|
||||||
|
comissao.setComissaoBpr(registroCalculo.getComissaoBPR());
|
||||||
|
comissao.setEntregasPassagem(registroCalculo.getComissaoEntregaPassagem());
|
||||||
|
comissao.setReceitaExcessobagagem(registroCalculo.getComissaoExcessoBagagem());
|
||||||
|
comissao.setReceitaSeguroopcional(registroCalculo.getComissaoSegOpcional());
|
||||||
|
comissao.setReceitaOutros(registroCalculo.getComissaoOutros());
|
||||||
|
comissao.setRoyaties(registroCalculo.getRoyaties());
|
||||||
|
comissao.setIssRetido(registroCalculo.getRetidoISS());
|
||||||
|
|
||||||
|
comissao.setIndPago(false);
|
||||||
|
comissao.setUsuarioPagamentoId(null);
|
||||||
|
comissao.setDataPagamento(null);
|
||||||
|
comissao.setDescontosEventuais(BigDecimal.ZERO);
|
||||||
|
comissao.setDescontosFixos(BigDecimal.ZERO);
|
||||||
|
|
||||||
|
for (ComissaoDesconto cd : registroCalculo.getLsDescontos()) {
|
||||||
|
if (cd.getTipo().equals(TipoDesconto.EVENTUAL)) {
|
||||||
|
comissao.setDescontosEventuais(cd.getValorDesconto());
|
||||||
|
} else if (cd.getTipo().equals(TipoDesconto.FIXO)) {
|
||||||
|
comissao.setDescontosFixos(cd.getValorDesconto());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (ComissaoReceita comissaoReceita : registroCalculo.getLsReceitas()) {
|
||||||
|
comissao.setReceitaBPR(MoneyHelper.somar(comissao.getReceitaBPR(), comissaoReceita.getReceitaBPR(), 2));
|
||||||
|
comissao.setDevolvidos(MoneyHelper.somar(comissao.getDevolvidos(), comissaoReceita.getDevolvidosRelatorio(), 2));
|
||||||
|
comissao.setDevolvidos(MoneyHelper.somar(comissao.getDevolvidos(), comissaoReceita.getDevolvidosGAPRelatorio(), 2));
|
||||||
|
comissao.setDevolvidos(MoneyHelper.somar(comissao.getDevolvidos(), comissaoReceita.getCancelados(), 2));
|
||||||
|
comissao.setDevolvidos(MoneyHelper.somar(comissao.getDevolvidos(), comissaoReceita.getCanceladosGAP(), 2));
|
||||||
|
comissao.setDevolvidos(MoneyHelper.somar(comissao.getDevolvidos(), comissaoReceita.getCanceladosGAP(), 2));
|
||||||
|
comissao.setReceitaBrutaExcessoBagagem(MoneyHelper.somar(comissao.getReceitaBrutaExcessoBagagem(), comissaoReceita.getReceitaExcessoBagagem(), 2));
|
||||||
|
comissao.setReceitaBrutaSeguroopcional(MoneyHelper.somar(comissao.getReceitaBrutaSeguroopcional(), comissaoReceita.getReceitaSeguroOpcional(), 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
comissao = comissaoService.suscribir(comissao);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e.getMessage(), e);
|
||||||
|
throw new ComissaoException(e.getMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void cancelarCalculoComissao(Integer puntoVentaId, Integer empresaId, Date periodo) throws ComissaoException, BusinessException {
|
||||||
|
try {
|
||||||
String competencia = DateUtil.getStringDate(periodo, "MM/yyyy");
|
String competencia = DateUtil.getStringDate(periodo, "MM/yyyy");
|
||||||
Comissao comissao = comissaoDAO.buscaComissaoVigencia(puntoVentaId, empresaId, competencia);
|
Comissao comissao = comissaoDAO.buscaComissaoVigencia(puntoVentaId, empresaId, competencia);
|
||||||
if (comissao != null) {
|
if (comissao != null) {
|
||||||
comissaoService.borrar(comissao);
|
comissaoService.borrar(comissao);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
throw new ComissaoException("busquedaCalculoComissaoController.comissao.exception");
|
throw new ComissaoException("busquedaCalculoComissaoController.comissao.exception");
|
||||||
}
|
}
|
||||||
|
} catch (ComissaoException e) {
|
||||||
|
log.error(e.getMessage(), e);
|
||||||
|
throw e;
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e.getMessage(), e);
|
||||||
|
throw new BusinessException(e.getMessage(), e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -232,6 +280,16 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
// EntregaPassagem (Internet/Venda Impressão Posterior/Outros)
|
// EntregaPassagem (Internet/Venda Impressão Posterior/Outros)
|
||||||
BigDecimal entregaPassagem = BigDecimal.ZERO;
|
BigDecimal entregaPassagem = BigDecimal.ZERO;
|
||||||
BigDecimal receitaEntrega = MoneyHelper.somar(gapImpressa, internet, 2);
|
BigDecimal receitaEntrega = MoneyHelper.somar(gapImpressa, internet, 2);
|
||||||
|
|
||||||
|
if(isAltaTemporada) {
|
||||||
|
if(ptovtaComissao.getValorImpressaoGapAlta() != null) {
|
||||||
|
if (BooleanUtils.toBoolean(ptovtaComissao.getIndimpressaogapporc())) {
|
||||||
|
entregaPassagem = MoneyHelper.multiplicar(receitaEntrega, ptovtaComissao.getValorImpressaoGapAlta() != null ? MoneyHelper.dividir(ptovtaComissao.getValorImpressaoGapAlta(),CEM,4) : BigDecimal.ZERO, 4);
|
||||||
|
} else {
|
||||||
|
entregaPassagem = ptovtaComissao.getValorImpressaoGapAlta() != null ? MoneyHelper.multiplicar(ptovtaComissao.getValorImpressaoGapAlta(),new BigDecimal(contImpressa), 2) : BigDecimal.ZERO;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
if(ptovtaComissao.getValorImpressaoGap() != null) {
|
if(ptovtaComissao.getValorImpressaoGap() != null) {
|
||||||
if (BooleanUtils.toBoolean(ptovtaComissao.getIndimpressaogapporc())) {
|
if (BooleanUtils.toBoolean(ptovtaComissao.getIndimpressaogapporc())) {
|
||||||
entregaPassagem = MoneyHelper.multiplicar(receitaEntrega, ptovtaComissao.getValorImpressaoGap() != null ? MoneyHelper.dividir(ptovtaComissao.getValorImpressaoGap(),CEM,4) : BigDecimal.ZERO, 4);
|
entregaPassagem = MoneyHelper.multiplicar(receitaEntrega, ptovtaComissao.getValorImpressaoGap() != null ? MoneyHelper.dividir(ptovtaComissao.getValorImpressaoGap(),CEM,4) : BigDecimal.ZERO, 4);
|
||||||
|
@ -239,6 +297,7 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
entregaPassagem = ptovtaComissao.getValorImpressaoGap() != null ? MoneyHelper.multiplicar(ptovtaComissao.getValorImpressaoGap(),new BigDecimal(contImpressa), 2) : BigDecimal.ZERO;
|
entregaPassagem = ptovtaComissao.getValorImpressaoGap() != null ? MoneyHelper.multiplicar(ptovtaComissao.getValorImpressaoGap(),new BigDecimal(contImpressa), 2) : BigDecimal.ZERO;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return entregaPassagem;
|
return entregaPassagem;
|
||||||
}
|
}
|
||||||
|
@ -280,14 +339,12 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
return recoutros;
|
return recoutros;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, Object> calculoDescontos(Integer puntoVentaId, Integer empresaId, Date periodo, PtovtaComissao ptovtaComissao) {
|
private Map<String, Object> calculoDescontos(Integer puntoVentaId, Integer empresaId, Date dataInicial, Date dataFinal, PtovtaComissao ptovtaComissao) {
|
||||||
|
|
||||||
List<ComissaoDesconto> lsDescontos = new ArrayList<ComissaoDesconto>();
|
List<ComissaoDesconto> lsDescontos = new ArrayList<ComissaoDesconto>();
|
||||||
BigDecimal valorDescontoTotal = BigDecimal.ZERO;
|
BigDecimal valorDescontoTotal = BigDecimal.ZERO;
|
||||||
|
|
||||||
Date inicioPeriodo = DateUtil.inicioFechaPeriodoMeses(periodo);
|
List<DescontoComissao> itensDescontos = descontoComissaoService.buscaDescontoComissaoPeriodo(puntoVentaId, empresaId, dataInicial, dataFinal);
|
||||||
Date fimPeriodo = DateUtil.fimFechaPeriodoMeses(periodo);
|
|
||||||
List<DescontoComissao> itensDescontos = descontoComissaoService.buscaDescontoComissaoPeriodo(puntoVentaId, empresaId, inicioPeriodo, fimPeriodo);
|
|
||||||
|
|
||||||
for (DescontoComissao dc : itensDescontos) {
|
for (DescontoComissao dc : itensDescontos) {
|
||||||
|
|
||||||
|
@ -313,14 +370,9 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
return respDescontos;
|
return respDescontos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public RegistroCalculo realizarCalculoComissao(Integer puntoVentaId, Integer empresaId, Date periodo, Boolean isRetencaoDiaria, Integer usuarioId, Boolean isRefazerCalculo) throws ComissaoException, BusinessException {
|
public RegistroCalculo realizarCalculoComissao(Integer puntoVentaId, Integer empresaId, Date periodo, Boolean isRetencaoDiaria, Integer usuarioId, Boolean isRefazerCalculo) throws ComissaoException, BusinessException {
|
||||||
|
|
||||||
PtovtaComissao ptovtaComissao = ptovtaComissaoService.buscarPuntaVentaEmpresa(puntoVentaId, empresaId);
|
|
||||||
if (ptovtaComissao != null && (ptovtaComissao.getIndretercomissao() == null || !ptovtaComissao.getIndretercomissao())) {
|
|
||||||
|
|
||||||
//Abate no valor da comissão bpr as saídas de caixa
|
|
||||||
boolean consideraBilhetesDevolvidosEmOutraAgencia = (ptovtaComissao.getIndbilhetesdevcanorigem() == null)?false:ptovtaComissao.getIndbilhetesdevcanorigem();
|
|
||||||
|
|
||||||
Conferencia conferencia = new Conferencia();
|
Conferencia conferencia = new Conferencia();
|
||||||
conferencia.setPuntoVenta(new PuntoVenta(puntoVentaId));
|
conferencia.setPuntoVenta(new PuntoVenta(puntoVentaId));
|
||||||
conferencia.setEmpresa(new Empresa(empresaId));
|
conferencia.setEmpresa(new Empresa(empresaId));
|
||||||
|
@ -345,22 +397,45 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
Date dataInicial = getDate(diaInicial, mes, ano);
|
Date dataInicial = getDate(diaInicial, mes, ano);
|
||||||
Date dataFinal = getDate(diaFinal, mes, ano);
|
Date dataFinal = getDate(diaFinal, mes, ano);
|
||||||
|
|
||||||
List<ComissaoReceita> receitas = null;
|
return realizarCalculoComissao(puntoVentaId, empresaId, usuarioId, isRefazerCalculo, conferencia, dataInicial, dataFinal, isRetencaoDiaria);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Realiza calculo da comissao
|
||||||
|
* @param puntoVentaId
|
||||||
|
* @param empresaId
|
||||||
|
* @param usuarioId
|
||||||
|
* @param isRefazerCalculo
|
||||||
|
* @param conferencia
|
||||||
|
* @param dataInicial
|
||||||
|
* @param dataFinal
|
||||||
|
* @param isRetencaoDiaria
|
||||||
|
* @return
|
||||||
|
* @throws BusinessException
|
||||||
|
*/
|
||||||
|
private RegistroCalculo realizarCalculoComissao(Integer puntoVentaId, Integer empresaId, Integer usuarioId, Boolean isRefazerCalculo, Conferencia conferencia, Date dataInicial, Date dataFinal, boolean isRetencaoDiaria) throws BusinessException {
|
||||||
|
try {
|
||||||
|
PtovtaComissao ptovtaComissao = ptovtaComissaoService.buscarPuntaVentaEmpresa(puntoVentaId, empresaId);
|
||||||
|
if (ptovtaComissao != null && (ptovtaComissao.getIndretercomissao() == null || !ptovtaComissao.getIndretercomissao())) {
|
||||||
|
//Abate no valor da comissão bpr as saídas de caixa
|
||||||
|
boolean consideraBilhetesDevolvidosEmOutraAgencia = (ptovtaComissao.getIndbilhetesdevcanorigem() == null)?false:ptovtaComissao.getIndbilhetesdevcanorigem();
|
||||||
|
|
||||||
|
List<ComissaoReceita> receitas = null;
|
||||||
if(isRefazerCalculo) {
|
if(isRefazerCalculo) {
|
||||||
comissaoReceitaService.limparComissaoReceita(empresaId, puntoVentaId, dataInicial, dataFinal);
|
comissaoReceitaService.limparComissaoReceita(empresaId, puntoVentaId, dataInicial, dataFinal);
|
||||||
List<BoletoComissao> receitasBoleto = conferenciaComissaoDAO.carregarBilhetesComissao(conferencia, true, consideraBilhetesDevolvidosEmOutraAgencia);
|
List<BoletoComissao> receitasBoleto = conferenciaComissaoDAO.carregarBilhetesComissao(conferencia, true, consideraBilhetesDevolvidosEmOutraAgencia);
|
||||||
log.info("Total de bilhetes: " + receitasBoleto.size());
|
log.info("Total de bilhetes: " + receitasBoleto.size());
|
||||||
List<EventosFinanceirosVO> eventosFinanceirosVOs = conferenciaComissaoDAO.carregarEventosFinanceiros(conferencia);
|
List<EventosFinanceirosVO> eventosFinanceirosVOs = conferenciaComissaoDAO.carregarEventosFinanceiros(conferencia);
|
||||||
log.info("Total de eventos extras: " + eventosFinanceirosVOs.size());
|
log.info("Total de eventos extras: " + eventosFinanceirosVOs.size());
|
||||||
receitas = calculaReceitaComissao(empresaId, ptovtaComissao, receitasBoleto, diaInicial, diaFinal, mes, ano, eventosFinanceirosVOs);
|
receitas = calculaReceitaComissao(empresaId, ptovtaComissao, receitasBoleto, eventosFinanceirosVOs, dataInicial, dataFinal);
|
||||||
reterComissaoReceitaDiaria(empresaId, puntoVentaId, usuarioId, receitas);
|
reterComissaoReceitaDiaria(empresaId, puntoVentaId, usuarioId, receitas);
|
||||||
} else {
|
} else {
|
||||||
receitas = recuperarComissaoReceita(empresaId, puntoVentaId, dataInicial, dataFinal);
|
receitas = recuperarComissaoReceita(empresaId, puntoVentaId, dataInicial, dataFinal);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!isRetencaoDiaria) {
|
if(!isRetencaoDiaria) {
|
||||||
return calcularRegistroCalculo(ptovtaComissao, puntoVentaId, empresaId, periodo, receitas);
|
return calcularRegistroCalculo(ptovtaComissao, puntoVentaId, empresaId, dataInicial, dataFinal, receitas);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if(ptovtaComissao != null && ptovtaComissao.getIndretercomissao() != null && ptovtaComissao.getIndretercomissao()) {
|
if(ptovtaComissao != null && ptovtaComissao.getIndretercomissao() != null && ptovtaComissao.getIndretercomissao()) {
|
||||||
|
@ -370,6 +445,11 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e.getMessage(), e);
|
||||||
|
throw new BusinessException(e.getMessage(), e);
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -394,13 +474,14 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
* @param ptovtaComissao
|
* @param ptovtaComissao
|
||||||
* @param puntoVentaId
|
* @param puntoVentaId
|
||||||
* @param empresaId
|
* @param empresaId
|
||||||
* @param periodo
|
* @param dataInicial
|
||||||
|
* @param dataFinal
|
||||||
* @param receitas
|
* @param receitas
|
||||||
* @return
|
* @return
|
||||||
* @throws BusinessException
|
* @throws BusinessException
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
private RegistroCalculo calcularRegistroCalculo(PtovtaComissao ptovtaComissao, Integer puntoVentaId, Integer empresaId, Date periodo, List<ComissaoReceita> receitas) throws BusinessException {
|
private RegistroCalculo calcularRegistroCalculo(PtovtaComissao ptovtaComissao, Integer puntoVentaId, Integer empresaId, Date dataInicial, Date dataFinal, List<ComissaoReceita> receitas) throws BusinessException {
|
||||||
try {
|
try {
|
||||||
RegistroCalculo rc = new RegistroCalculo();
|
RegistroCalculo rc = new RegistroCalculo();
|
||||||
rc.setNombpuntoventa(ptovtaComissao.getPuntoventaId().getNombpuntoventa());
|
rc.setNombpuntoventa(ptovtaComissao.getPuntoventaId().getNombpuntoventa());
|
||||||
|
@ -433,7 +514,7 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
rc.setComissaoOutros(comissaoOutros);
|
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, dataInicial, dataFinal, ptovtaComissao);
|
||||||
rc.setDescontos((BigDecimal) respDescontos.get("VALOR_DESCONTOS"));
|
rc.setDescontos((BigDecimal) respDescontos.get("VALOR_DESCONTOS"));
|
||||||
rc.setLsDescontos((List<ComissaoDesconto>) respDescontos.get("LISTA_DESCONTOS"));
|
rc.setLsDescontos((List<ComissaoDesconto>) respDescontos.get("LISTA_DESCONTOS"));
|
||||||
|
|
||||||
|
@ -523,10 +604,22 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<ComissaoReceita> calculaReceitaComissao(Integer empresaId, PtovtaComissao ptovtaComissao, List<BoletoComissao> receitasBoleto, Integer diaInicial, Integer diaFinal, Integer mes, Integer ano, List<EventosFinanceirosVO> eventosFinanceirosVOs) {
|
private List<ComissaoReceita> calculaReceitaComissao(Integer empresaId, PtovtaComissao ptovtaComissao, List<BoletoComissao> receitasBoleto, List<EventosFinanceirosVO> eventosFinanceirosVOs, Date dataInicial, Date dataFinal) {
|
||||||
|
|
||||||
|
Calendar cDataInicial = Calendar.getInstance();
|
||||||
|
cDataInicial.setTime(dataInicial);
|
||||||
|
Integer diaInicial = cDataInicial.get(Calendar.DAY_OF_MONTH);
|
||||||
|
|
||||||
|
Calendar cDataFinal = Calendar.getInstance();
|
||||||
|
cDataFinal.setTime(dataInicial);
|
||||||
|
Integer diaFinal = cDataFinal.get(Calendar.DAY_OF_MONTH);
|
||||||
|
|
||||||
|
Integer mes = cDataInicial.get(Calendar.MONTH);
|
||||||
|
Integer ano = cDataInicial.get(Calendar.YEAR);
|
||||||
|
|
||||||
List<EmpresaImposto> impostos = empresaImpostoService.buscarEmpresaImposto(empresaId);
|
List<EmpresaImposto> impostos = empresaImpostoService.buscarEmpresaImposto(empresaId);
|
||||||
boolean isConsideraBilhetesDevolvidosEmOutraAgencia = ptovtaComissao.getIndbilhetesdevcanorigem() == null ? false : ptovtaComissao.getIndbilhetesdevcanorigem();
|
boolean isConsideraBilhetesDevolvidosEmOutraAgencia = ptovtaComissao.getIndbilhetesdevcanorigem() == null ? false : ptovtaComissao.getIndbilhetesdevcanorigem();
|
||||||
|
boolean isPagaComissaoBilheteOrdemServico = ptovtaComissao.getIndPagaComissaoBilheteOS() != null ? ptovtaComissao.getIndPagaComissaoBilheteOS() : false;
|
||||||
|
|
||||||
List<ComissaoReceita> receitas = new ArrayList<ComissaoReceita>();
|
List<ComissaoReceita> receitas = new ArrayList<ComissaoReceita>();
|
||||||
for (int dia = diaInicial; dia <= diaFinal; dia++) {
|
for (int dia = diaInicial; dia <= diaFinal; dia++) {
|
||||||
|
@ -577,8 +670,16 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Calculando comissão para os boletos */
|
/* Calculando comissão para os boletos */
|
||||||
|
|
||||||
for (BoletoComissao rcc : list) {
|
for (BoletoComissao rcc : list) {
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Mantis #12391
|
||||||
|
* Verifica se a agencia paga comissão para bilhete de ordem de servico,
|
||||||
|
* caso não faça pagamento, o bilhete é ignorado */
|
||||||
|
if(!isPagaComissaoBilheteOrdemServico && isBilheteOrdemServico(rcc)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
boolean isAltaTemporada = validaAltaTemporada(impostos, mes, rcc.getEstadoId());
|
boolean isAltaTemporada = validaAltaTemporada(impostos, mes, rcc.getEstadoId());
|
||||||
|
|
||||||
IndStatusBoleto statusBoleto = IndStatusBoleto.valueOf(rcc.getIndstatusboleto());
|
IndStatusBoleto statusBoleto = IndStatusBoleto.valueOf(rcc.getIndstatusboleto());
|
||||||
|
@ -642,10 +743,10 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
|
|
||||||
// Calculo de ICMS sobre o valor do bilhete
|
// Calculo de ICMS sobre o valor do bilhete
|
||||||
if (isReceitaLiquida) {
|
if (isReceitaLiquida) {
|
||||||
BigDecimal icms = MoneyHelper.multiplicar(receitaItem, MoneyHelper.dividir(rcc.getIcmsBase(), CEM));
|
BigDecimal icms = MoneyHelper.multiplicar(receitaItem, MoneyHelper.dividir(rcc.getIcmsBase() != null ? rcc.getIcmsBase() : BigDecimal.ZERO, CEM));
|
||||||
receitaItem = MoneyHelper.subtrair(receitaItem, icms);
|
receitaItem = MoneyHelper.subtrair(receitaItem, icms);
|
||||||
|
|
||||||
BigDecimal icmsDev = MoneyHelper.multiplicar(receitaDevItem, MoneyHelper.dividir(rcc.getIcmsBase(), CEM));
|
BigDecimal icmsDev = MoneyHelper.multiplicar(receitaDevItem, MoneyHelper.dividir(rcc.getIcmsBase() != null ? rcc.getIcmsBase() : BigDecimal.ZERO, CEM));
|
||||||
receitaDevItem = MoneyHelper.subtrair(receitaDevItem,icmsDev);
|
receitaDevItem = MoneyHelper.subtrair(receitaDevItem,icmsDev);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -854,6 +955,21 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verifica se o bilhete possui forma de pagamento Orden de Serviço
|
||||||
|
* Mantis #12391
|
||||||
|
* @param rcc
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private boolean isBilheteOrdemServico(BoletoComissao rcc) {
|
||||||
|
for (FormapagoVO formapago : rcc.getFormapagos()) {
|
||||||
|
if(formapago.getFormapagoId() == Constantes.FORMA_PAGO_ORDEN_SERVICIO.intValue()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
private List<EventosFinanceirosVO> verificaEventoFinanceiroProDia(List<EventosFinanceirosVO> eventosFinanceirosVOs, Date dataRegistro) {
|
private List<EventosFinanceirosVO> verificaEventoFinanceiroProDia(List<EventosFinanceirosVO> eventosFinanceirosVOs, Date dataRegistro) {
|
||||||
List<EventosFinanceirosVO> aux = new ArrayList<EventosFinanceirosVO>();
|
List<EventosFinanceirosVO> aux = new ArrayList<EventosFinanceirosVO>();
|
||||||
if(eventosFinanceirosVOs != null) {
|
if(eventosFinanceirosVOs != null) {
|
||||||
|
@ -879,13 +995,22 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<RegistroCalculo> relatorioCalculoComissao(Integer empresaId, Date periodo, Integer usuarioId, Boolean isRetencaoDiaria, Boolean isRefazerCalculo) throws ComissaoException, BusinessException {
|
public List<RegistroCalculo> relatorioCalculoComissao(Integer empresaId, Date competencia, Date dataInicial, Date dataFinal, Integer usuarioId, Boolean isRetencaoDiaria, Boolean isRefazerCalculo) throws ComissaoException, BusinessException {
|
||||||
List<RegistroCalculo> registrosCalculo = new ArrayList<RegistroCalculo>();
|
List<RegistroCalculo> registrosCalculo = new ArrayList<RegistroCalculo>();
|
||||||
List<PuntoVenta> puntoventas = comissaoDAO.buscaPuntoVentasEmpresaComComissaoParametrizada(empresaId);
|
List<PuntoVenta> puntoventas = comissaoDAO.buscaPuntoVentasEmpresaComComissaoParametrizada(empresaId);
|
||||||
Empresa empresa = empresaService.obtenerID(empresaId);
|
Empresa empresa = empresaService.obtenerID(empresaId);
|
||||||
boolean indExibeComissaoZeradaAgencia = empresa.getIndExibeComissaoZeradaAgencia() != null ? empresa.getIndExibeComissaoZeradaAgencia() : false;
|
boolean indExibeComissaoZeradaAgencia = empresa.getIndExibeComissaoZeradaAgencia() != null ? empresa.getIndExibeComissaoZeradaAgencia() : false;
|
||||||
for (PuntoVenta puntoVenta : puntoventas) {
|
for (PuntoVenta puntoVenta : puntoventas) {
|
||||||
RegistroCalculo registroCalculo = relatorioCalculoComissao(puntoVenta.getPuntoventaId(), empresaId, periodo, usuarioId, isRetencaoDiaria, isRefazerCalculo);
|
RegistroCalculo registroCalculo = null;
|
||||||
|
if(competencia != null) {
|
||||||
|
registroCalculo = relatorioCalculoComissao(puntoVenta.getPuntoventaId(), empresaId, competencia, usuarioId, isRetencaoDiaria, isRefazerCalculo);
|
||||||
|
} else if(dataInicial != null && dataFinal != null) {
|
||||||
|
registroCalculo = relatorioCalculoComissao(puntoVenta.getPuntoventaId(), empresaId, usuarioId, isRetencaoDiaria, isRefazerCalculo, dataInicial, dataFinal);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(registroCalculo == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Caso parametro de não exibir as agencias com comissão zerada esteja ativado
|
* Caso parametro de não exibir as agencias com comissão zerada esteja ativado
|
||||||
|
@ -897,13 +1022,17 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
registrosCalculo.add(registroCalculo);
|
registrosCalculo.add(registroCalculo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
ordernarResultado(registrosCalculo);
|
||||||
|
return registrosCalculo;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ordernarResultado(List<RegistroCalculo> registrosCalculo) {
|
||||||
Collections.sort(registrosCalculo, new Comparator<RegistroCalculo>() {
|
Collections.sort(registrosCalculo, new Comparator<RegistroCalculo>() {
|
||||||
@Override
|
@Override
|
||||||
public int compare(RegistroCalculo o1, RegistroCalculo o2) {
|
public int compare(RegistroCalculo o1, RegistroCalculo o2) {
|
||||||
return o1.getNombpuntoventa().compareToIgnoreCase(o2.getNombpuntoventa());
|
return o1.getNombpuntoventa().compareToIgnoreCase(o2.getNombpuntoventa());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return registrosCalculo;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void totalizarRegistroCalculo(RegistroCalculo registroCalculo, boolean indExibeComissaoZeradaAgencia) {
|
private void totalizarRegistroCalculo(RegistroCalculo registroCalculo, boolean indExibeComissaoZeradaAgencia) {
|
||||||
|
@ -948,17 +1077,40 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void cancelarCalculoComissao(Integer empresaId, Date periodo) throws ComissaoException {
|
public void cancelarCalculoComissao(Integer empresaId, Date periodo) throws ComissaoException, BusinessException {
|
||||||
|
try {
|
||||||
List<PuntoVenta> puntoventas = comissaoDAO.buscaPuntoVentasEmpresaComComissaoParametrizada(empresaId);
|
List<PuntoVenta> puntoventas = comissaoDAO.buscaPuntoVentasEmpresaComComissaoParametrizada(empresaId);
|
||||||
for (PuntoVenta puntoVenta : puntoventas) {
|
for (PuntoVenta puntoVenta : puntoventas) {
|
||||||
|
try {
|
||||||
cancelarCalculoComissao(puntoVenta.getPuntoventaId(), empresaId, periodo);
|
cancelarCalculoComissao(puntoVenta.getPuntoventaId(), empresaId, periodo);
|
||||||
|
} catch (ComissaoException e) {
|
||||||
|
/* Ignora a comissa quando o cancelamento é feito para todas as agencias */
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e.getMessage(), e);
|
||||||
|
throw new BusinessException(e.getMessage(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<HistoricoComissao> relatorioReciboComissao(Integer puntoVentaId, Integer empresaId, String competencia) throws ComissaoException {
|
public List<HistoricoComissao> relatorioReciboComissao(Integer puntoVentaId, Integer empresaId, String competencia) throws ComissaoException {
|
||||||
try {
|
try {
|
||||||
return comissaoDAO.buscaHistoricoComissao(puntoVentaId, empresaId, DateUtil.getDateFromString(competencia, "MM/yyyy"), DateUtil.getDateFromString(competencia, "MM/yyyy"));
|
Map<String, Object> parametros = new HashMap<String, Object>();
|
||||||
|
if(StringUtils.isNotBlank(competencia)) {
|
||||||
|
parametros.put("competenciaInicial", competencia);
|
||||||
|
parametros.put("competenciaFinal", competencia);
|
||||||
|
}
|
||||||
|
if(puntoVentaId != null && puntoVentaId > -1) {
|
||||||
|
parametros.put("puntoventaId", puntoVentaId);
|
||||||
|
}
|
||||||
|
if(empresaId != null) {
|
||||||
|
parametros.put("empresaId", empresaId);
|
||||||
|
}
|
||||||
|
|
||||||
|
return comissaoDAO.buscaHistoricoComissao(parametros);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage(), e);
|
log.error(e.getMessage(), e);
|
||||||
throw new ComissaoException(e.getMessage(), e);
|
throw new ComissaoException(e.getMessage(), e);
|
||||||
|
@ -997,15 +1149,33 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
mail.setSmtpUser(constante.getValorconstante());
|
mail.setSmtpUser(constante.getValorconstante());
|
||||||
}
|
}
|
||||||
|
|
||||||
String assunto = Labels.getLabel("busquedaCalculoComissaoController.recibo.email.assunto", new String[] {historicoComissao.getCompetencia()});
|
String assunto = null;
|
||||||
mail.setSubject(assunto);
|
String texto = null;
|
||||||
|
String nomeArquivo = null;
|
||||||
|
if(StringUtils.isNotBlank(historicoComissao.getCompetencia())) {
|
||||||
|
assunto = Labels.getLabel("busquedaCalculoComissaoController.recibo.email.assunto", new String[] {Labels.getLabel("busquedaImportacionFiscalController.lbCompetencia.label"), historicoComissao.getCompetencia()});
|
||||||
|
texto = Labels.getLabel("busquedaCalculoComissaoController.recibo.email.texto", new String[] {Labels.getLabel("busquedaImportacionFiscalController.lbCompetencia.label"), historicoComissao.getCompetencia()});
|
||||||
|
nomeArquivo = historicoComissao.getCompetencia();
|
||||||
|
} else if(historicoComissao.getDataInicial() != null && historicoComissao.getDataFinal() != null){
|
||||||
|
StringBuilder sDatas = new StringBuilder();
|
||||||
|
sDatas.append(DateUtil.getStringDate(historicoComissao.getDataInicial(), "dd/MM/yyyy"))
|
||||||
|
.append(" ")
|
||||||
|
.append(Labels.getLabel("lb.ate"))
|
||||||
|
.append(" ")
|
||||||
|
.append(DateUtil.getStringDate(historicoComissao.getDataFinal(), "dd/MM/yyyy"));
|
||||||
|
assunto = Labels.getLabel("busquedaCalculoComissaoController.recibo.email.assunto", new String[] {"Periodo", sDatas.toString()});
|
||||||
|
texto = Labels.getLabel("busquedaCalculoComissaoController.recibo.email.texto", new String[] {"Periodo", sDatas.toString()});
|
||||||
|
nomeArquivo = sDatas.toString().replaceAll(" ", "_");
|
||||||
|
}
|
||||||
|
|
||||||
String texto = Labels.getLabel("busquedaCalculoComissaoController.recibo.email.texto", new String[] {historicoComissao.getCompetencia()});
|
mail.setSubject(assunto);
|
||||||
mail.setText(texto);
|
mail.setText(texto);
|
||||||
|
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream(recibo.length);
|
ByteArrayOutputStream baos = new ByteArrayOutputStream(recibo.length);
|
||||||
baos.write(recibo, 0, recibo.length);
|
baos.write(recibo, 0, recibo.length);
|
||||||
mail.addAnexo(Labels.getLabel("busquedaCalculoComissaoController.recibo.email.nomeAnexo", new String[] {historicoComissao.getCompetencia()}).concat(".pdf"), baos, MimeType.PDF);
|
|
||||||
|
|
||||||
|
mail.addAnexo(Labels.getLabel("busquedaCalculoComissaoController.recibo.email.nomeAnexo", new String[] {nomeArquivo}).concat(".pdf"), baos, MimeType.PDF);
|
||||||
|
|
||||||
mail.send();
|
mail.send();
|
||||||
}
|
}
|
||||||
|
@ -1073,4 +1243,134 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RegistroCalculo relatorioCalculoComissao(Integer puntoVentaId, Integer empresaId, Integer usuarioId, Boolean isRetencaoDiaria, Boolean isRefazerCalculo, Date dataInicial, Date dataFinal) throws ComissaoException, BusinessException {
|
||||||
|
Conferencia conferencia = new Conferencia();
|
||||||
|
conferencia.setPuntoVenta(new PuntoVenta(puntoVentaId));
|
||||||
|
conferencia.setEmpresa(new Empresa(empresaId));
|
||||||
|
conferencia.setDataInicial(dataInicial);
|
||||||
|
conferencia.setDataFinal(dataFinal);
|
||||||
|
|
||||||
|
return realizarCalculoComissao(puntoVentaId, empresaId, usuarioId, isRefazerCalculo, conferencia, dataInicial, dataFinal, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registrarCalculoComissaoPeriodo(PuntoVenta puntoVenta, Empresa empresa, boolean ignorarComissaoGerada, Integer usuarioId, Boolean isRetencaoDiaria, Boolean isRefazerCalculo, Date dataInicial, Date dataFinal) throws ComissaoException {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
if (validaPeriodo(dataInicial, dataFinal)) {
|
||||||
|
|
||||||
|
if(isRetencaoDiaria || conferenciaComissaoService.isConferenciaCompetenciaEncerrada(dataInicial, dataFinal, empresa, puntoVenta)) {
|
||||||
|
Comissao comissaoCadastrada = comissaoDAO.buscaComissaoVigencia(puntoVenta.getPuntoventaId(), empresa.getEmpresaId(), dataInicial, dataFinal);
|
||||||
|
if (comissaoCadastrada == null) {
|
||||||
|
|
||||||
|
Conferencia conferencia = new Conferencia();
|
||||||
|
conferencia.setPuntoVenta(puntoVenta);
|
||||||
|
conferencia.setEmpresa(empresa);
|
||||||
|
conferencia.setDataInicial(dataInicial);
|
||||||
|
conferencia.setDataFinal(dataFinal);
|
||||||
|
|
||||||
|
RegistroCalculo rc = realizarCalculoComissao(puntoVenta.getPuntoventaId(), empresa.getEmpresaId(), usuarioId, isRefazerCalculo, conferencia, dataInicial, dataFinal, isRetencaoDiaria);
|
||||||
|
|
||||||
|
gravarComissao(puntoVenta, empresa, rc, null, dataInicial, dataFinal);
|
||||||
|
} else if(!ignorarComissaoGerada){
|
||||||
|
StringBuilder sDatas = new StringBuilder();
|
||||||
|
sDatas.append(DateUtil.getStringDate(comissaoCadastrada.getDataInicial(), "dd/MM/yyyy"))
|
||||||
|
.append(" ")
|
||||||
|
.append(Labels.getLabel("lb.ate"))
|
||||||
|
.append(" ")
|
||||||
|
.append(DateUtil.getStringDate(comissaoCadastrada.getDataFinal(), "dd/MM/yyyy"));
|
||||||
|
throw new ComissaoException("busquedaCalculoComissaoController.registroPeriodo.exception", null, comissaoCadastrada.getPuntoVenta().getNombpuntoventa(), sDatas.toString());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
StringBuilder sDatas = new StringBuilder();
|
||||||
|
sDatas.append(DateUtil.getStringDate(dataInicial, "dd/MM/yyyy"))
|
||||||
|
.append(" ")
|
||||||
|
.append(Labels.getLabel("lb.ate"))
|
||||||
|
.append(" ")
|
||||||
|
.append(DateUtil.getStringDate(dataFinal, "dd/MM/yyyy"));
|
||||||
|
throw new ComissaoException("busquedaCalculoComissaoController.conferenciaNaoEncerradaPeriodo.exception", null, puntoVenta.getNombpuntoventa(), sDatas.toString());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new ComissaoException("busquedaCalculoComissaoController.periodo.exception");
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (ComissaoException e) {
|
||||||
|
log.error(e.getMessage(), e);
|
||||||
|
throw e;
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e.getMessage(), e);
|
||||||
|
throw new ComissaoException(e.getMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registrarCalculoComissaoPeriodo(Empresa empresa, boolean ignorarComissaoGerada, Integer usuarioId, Boolean isRetencaoDiaria, Boolean isRefazerCalculo, Date dataInicial, Date dataFinal) throws ComissaoException {
|
||||||
|
List<PuntoVenta> puntoventas = comissaoDAO.buscaPuntoVentasEmpresaComComissaoParametrizada(empresa.getEmpresaId());
|
||||||
|
for (PuntoVenta puntoVenta : puntoventas) {
|
||||||
|
registrarCalculoComissaoPeriodo(puntoVenta, empresa, ignorarComissaoGerada, usuarioId, isRetencaoDiaria, isRefazerCalculo, dataInicial, dataFinal);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void cancelarCalculoComissaoPeriodo(Integer puntoVentaId, Integer empresaId, Date dataInicial, Date dataFinal) throws ComissaoException, BusinessException {
|
||||||
|
try {
|
||||||
|
Comissao comissao = comissaoDAO.buscaComissaoVigencia(puntoVentaId, empresaId, dataInicial, dataFinal);
|
||||||
|
if (comissao != null) {
|
||||||
|
comissaoService.borrar(comissao);
|
||||||
|
} else {
|
||||||
|
throw new ComissaoException("busquedaCalculoComissaoController.comissao.exception");
|
||||||
|
}
|
||||||
|
} catch (ComissaoException e) {
|
||||||
|
log.error(e.getMessage(), e);
|
||||||
|
throw e;
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e.getMessage(), e);
|
||||||
|
throw new BusinessException(e.getMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void cancelarCalculoComissaoPeriodo(Integer empresaId, Date dataInicial, Date dataFinal) throws ComissaoException, BusinessException {
|
||||||
|
try {
|
||||||
|
List<PuntoVenta> puntoventas = comissaoDAO.buscaPuntoVentasEmpresaComComissaoParametrizada(empresaId);
|
||||||
|
for (PuntoVenta puntoVenta : puntoventas) {
|
||||||
|
try {
|
||||||
|
cancelarCalculoComissaoPeriodo(puntoVenta.getPuntoventaId(), empresaId, dataInicial, dataFinal);
|
||||||
|
} catch (ComissaoException e) {
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e.getMessage(), e);
|
||||||
|
throw new BusinessException(e.getMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<HistoricoComissao> relatorioReciboComissao(Integer puntoVentaId, Integer empresaId, Date dataInicial, Date dataFinal) throws ComissaoException {
|
||||||
|
try {
|
||||||
|
Map<String, Object> parametros = new HashMap<String, Object>();
|
||||||
|
if(dataInicial != null) {
|
||||||
|
parametros.put("dataInicial", DateUtil.getStringDate(dataInicial, "dd/MM/yyyy"));
|
||||||
|
}
|
||||||
|
if(dataFinal != null) {
|
||||||
|
parametros.put("dataFinal", DateUtil.getStringDate(dataFinal, "dd/MM/yyyy"));
|
||||||
|
}
|
||||||
|
if(puntoVentaId != null && puntoVentaId > -1) {
|
||||||
|
parametros.put("puntoventaId", puntoVentaId);
|
||||||
|
}
|
||||||
|
if(empresaId != null) {
|
||||||
|
parametros.put("empresaId", empresaId);
|
||||||
|
}
|
||||||
|
|
||||||
|
return comissaoDAO.buscaHistoricoComissao(parametros);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e.getMessage(), e);
|
||||||
|
throw new ComissaoException(e.getMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,9 @@ package com.rjconsultores.ventaboletos.service.impl;
|
||||||
|
|
||||||
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.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
@ -12,6 +14,7 @@ import com.rjconsultores.ventaboletos.dao.ComissaoDAO;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Comissao;
|
import com.rjconsultores.ventaboletos.entidad.Comissao;
|
||||||
import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
|
import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
|
||||||
import com.rjconsultores.ventaboletos.service.ComissaoService;
|
import com.rjconsultores.ventaboletos.service.ComissaoService;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
|
||||||
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
|
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
|
||||||
import com.rjconsultores.ventaboletos.vo.comissao.HistoricoComissao;
|
import com.rjconsultores.ventaboletos.vo.comissao.HistoricoComissao;
|
||||||
|
|
||||||
|
@ -62,7 +65,16 @@ public class ComissaoServiceImpl implements ComissaoService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<HistoricoComissao> buscaHistoricoComissao(Integer puntoVentaId, Integer empresaId, Date periodoInicio, Date periodoFim) {
|
public List<HistoricoComissao> buscaHistoricoComissao(Integer puntoVentaId, Integer empresaId, Date periodoInicio, Date periodoFim) {
|
||||||
return comissaoDAO.buscaHistoricoComissao(puntoVentaId, empresaId, periodoInicio, periodoFim);
|
String competenciaInicial = DateUtil.getStringDate(periodoInicio, "MM/yyyy");
|
||||||
|
String competenciaFinal = DateUtil.getStringDate(periodoInicio, "MM/yyyy");
|
||||||
|
|
||||||
|
Map<String, Object> parametros = new HashMap<String, Object>();
|
||||||
|
parametros.put("competenciaInicial", competenciaInicial);
|
||||||
|
parametros.put("competenciaFinal", competenciaFinal);
|
||||||
|
parametros.put("puntoventaId", puntoVentaId);
|
||||||
|
parametros.put("empresaId", empresaId);
|
||||||
|
|
||||||
|
return comissaoDAO.buscaHistoricoComissao(parametros);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -982,4 +982,9 @@ public class ConferenciaComissaoServiceImpl implements ConferenciaComissaoServic
|
||||||
conferenciaComissaoDAO.borrarLogConferenciaTransacaoId(transacaoId);
|
conferenciaComissaoDAO.borrarLogConferenciaTransacaoId(transacaoId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isConferenciaCompetenciaEncerrada(Date dataInicial, Date dataFinal, Empresa empresa, PuntoVenta puntoVenta) throws BusinessException {
|
||||||
|
return conferenciaComissaoDAO.isConferenciaCompetenciaEncerrada(dataInicial, dataFinal, empresa, puntoVenta);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -284,4 +284,9 @@ public class ApplicationProperties {
|
||||||
String property = p.getProperty("taxasLinhaTxtDownloadVisible", "0");
|
String property = p.getProperty("taxasLinhaTxtDownloadVisible", "0");
|
||||||
return property.equals("1");
|
return property.equals("1");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isPermiteCalculoComissaoPeriodo() {
|
||||||
|
String property = p.getProperty("permiteCalculoComissaoPeriodo", "0");
|
||||||
|
return property.equals("1");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import java.math.BigDecimal;
|
||||||
import java.text.NumberFormat;
|
import java.text.NumberFormat;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
|
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.brazilutils.text.RealToWords;
|
import org.brazilutils.text.RealToWords;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
@ -181,9 +182,15 @@ public class HistoricoComissao extends Comissao {
|
||||||
|
|
||||||
public String getTexto1() {
|
public String getTexto1() {
|
||||||
try {
|
try {
|
||||||
|
if(StringUtils.isNotBlank(getCompetencia())) {
|
||||||
return Labels.getLabel("busquedaCalculoComissaoController.recibo.texto1",
|
return Labels.getLabel("busquedaCalculoComissaoController.recibo.texto1",
|
||||||
new String[]{DateUtil.getStringDate(DateUtil.getDataInicialCompetencia(getCompetencia()), "dd/MM/yyyy"),
|
new String[]{DateUtil.getStringDate(DateUtil.getDataInicialCompetencia(getCompetencia()), "dd/MM/yyyy"),
|
||||||
DateUtil.getStringDate(DateUtil.getDataFinalCompetencia(getCompetencia()), "dd/MM/yyyy")});
|
DateUtil.getStringDate(DateUtil.getDataFinalCompetencia(getCompetencia()), "dd/MM/yyyy")});
|
||||||
|
} else {
|
||||||
|
return Labels.getLabel("busquedaCalculoComissaoController.recibo.texto1",
|
||||||
|
new String[]{DateUtil.getStringDate(getDataInicial(), "dd/MM/yyyy"),
|
||||||
|
DateUtil.getStringDate(getDataFinal(), "dd/MM/yyyy")});
|
||||||
|
}
|
||||||
} catch (ParseException e) {
|
} catch (ParseException e) {
|
||||||
log.error(e.getMessage(), e);
|
log.error(e.getMessage(), e);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue