fixes bug #7165
git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@53281 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
b2caceab1d
commit
3846a482f8
|
@ -4,6 +4,7 @@ import java.util.Date;
|
|||
import java.util.List;
|
||||
|
||||
import com.rjconsultores.ventaboletos.entidad.Comissao;
|
||||
import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
|
||||
import com.rjconsultores.ventaboletos.vo.comissao.BoletoComissao;
|
||||
import com.rjconsultores.ventaboletos.vo.comissao.HistoricoComissao;
|
||||
|
||||
|
@ -14,4 +15,7 @@ public interface ComissaoDAO extends GenericDAO<Comissao, Integer> {
|
|||
public Comissao buscaComissaoVigencia(Integer puntoVentaId, Integer empresaId, String competencia);
|
||||
|
||||
public List<HistoricoComissao> buscaHistoricoComissao(Integer puntoVentaId, Integer empresaId, Date periodoInicio, Date periodoFim);
|
||||
|
||||
public List<PuntoVenta> buscaPuntoVentasEmpresaComComissaoParametrizada(Integer empresaId);
|
||||
|
||||
}
|
||||
|
|
|
@ -51,4 +51,6 @@ public interface ConferenciaComissaoDAO extends GenericDAO<Conferencia, Long> {
|
|||
|
||||
public BigDecimal carregarTotalFechamentoContaCorrente(Conferencia conferencia) throws BusinessException;
|
||||
|
||||
public boolean isConferenciaCompetenciaEncerrada(String competencia, Empresa empresa, PuntoVenta puntoVenta) throws BusinessException;
|
||||
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@ import org.springframework.stereotype.Repository;
|
|||
|
||||
import com.rjconsultores.ventaboletos.dao.ComissaoDAO;
|
||||
import com.rjconsultores.ventaboletos.entidad.Comissao;
|
||||
import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
|
||||
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
|
||||
import com.rjconsultores.ventaboletos.vo.comissao.BoletoComissao;
|
||||
import com.rjconsultores.ventaboletos.vo.comissao.HistoricoComissao;
|
||||
|
@ -95,7 +96,7 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO<Comissao, Integer>
|
|||
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.puntoVenta.puntoventaId = :puntoventaId ");
|
||||
hql.append(" AND c.empresaId = :empresaId ");
|
||||
hql.append(" AND c.competencia = :periodo ");
|
||||
|
||||
|
@ -130,9 +131,21 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO<Comissao, Integer>
|
|||
sql.append(" c.indpago AS indPago, ");
|
||||
sql.append(" CASE WHEN c.indpago = 1 THEN 'PAGO' ELSE 'PENDENTE' END AS pagamento, ");
|
||||
sql.append(" up.nombusuario || ' ' || up.nombmaterno || ' ' || up.nombpaterno AS usuarioPagamento, ");
|
||||
sql.append(" ul.nombusuario || ' ' || ul.nombmaterno || ' ' || ul.nombpaterno AS usuarioLancamento ");
|
||||
sql.append(" ul.nombusuario || ' ' || ul.nombmaterno || ' ' || ul.nombpaterno AS usuarioLancamento, ");
|
||||
sql.append(" e.nombempresa, e.cnpj, ");
|
||||
sql.append(" pa.numagencia as agencia, pa.numconta || '-' || pa.digito as conta, if.nome as banco, ");
|
||||
sql.append(" ci.nombciudad as cidade, pv.descCorreo ");
|
||||
/*
|
||||
private String sigla;
|
||||
private String nome;
|
||||
*/
|
||||
sql.append("FROM comissao c ");
|
||||
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("LEFT JOIN ptovta_agencia pa on pa.ptovtaagencia_id = pv.ptovtaagencia_id ");
|
||||
sql.append("LEFT JOIN insti_financeira if on if.instifinanceira_id = pa.instifinanceira_id ");
|
||||
sql.append("LEFT JOIN colonia co on co.colonia_id = pv.colonia_id ");
|
||||
sql.append("LEFT JOIN ciudad ci on ci.ciudad_id = co.ciudad_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("WHERE c.activo = 1 ");
|
||||
|
@ -163,8 +176,15 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO<Comissao, Integer>
|
|||
.addScalar("pagamento", StringType.INSTANCE)
|
||||
.addScalar("usuarioPagamento", StringType.INSTANCE)
|
||||
.addScalar("usuarioLancamento", StringType.INSTANCE)
|
||||
.addScalar("nombempresa", StringType.INSTANCE)
|
||||
.addScalar("cnpj", StringType.INSTANCE)
|
||||
.addScalar("conta", StringType.INSTANCE)
|
||||
.addScalar("banco", StringType.INSTANCE)
|
||||
.addScalar("cidade", StringType.INSTANCE)
|
||||
.addScalar("agencia", StringType.INSTANCE)
|
||||
.addScalar("descCorreo", StringType.INSTANCE)
|
||||
.setResultTransformer(new AliasToBeanResultTransformer(HistoricoComissao.class));
|
||||
|
||||
|
||||
query.setString("periodoInicio", competenciaInicio);
|
||||
query.setString("periodoFim", competenciaFim);
|
||||
query.setInteger("empresaId", empresaId);
|
||||
|
@ -175,4 +195,19 @@ public class ComissaoHibernateDAO extends GenericHibernateDAO<Comissao, Integer>
|
|||
|
||||
return query.list();
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<PuntoVenta> buscaPuntoVentasEmpresaComComissaoParametrizada(Integer empresaId) {
|
||||
StringBuilder sQuery = new StringBuilder("SELECT pv FROM PtovtaComissao c ");
|
||||
sQuery.append("JOIN c.puntoventaId pv ")
|
||||
.append("JOIN c.empresaId e ")
|
||||
.append("WHERE pv.activo = 1 ")
|
||||
.append("AND e.empresaId = :empresaId ")
|
||||
.append("AND c.activo = 1");
|
||||
Query qr = getSession().createQuery(sQuery.toString());
|
||||
qr.setParameter("empresaId", empresaId);
|
||||
return qr.list();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -982,5 +982,28 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
|
|||
throw new BusinessException(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isConferenciaCompetenciaEncerrada(String competencia, Empresa empresa, PuntoVenta puntoVenta) throws BusinessException {
|
||||
try {
|
||||
List<ConferenciaComissaoVO> lsConferencias = new ArrayList<ConferenciaComissaoVO>();
|
||||
|
||||
carregarConferenciasRegistradas(lsConferencias, competencia, empresa, puntoVenta);
|
||||
carregarDiasSemMovimento(lsConferencias, competencia, empresa, puntoVenta);
|
||||
|
||||
for (ConferenciaComissaoVO conferenciaComissao : lsConferencias) {
|
||||
for (DiaConferenciaComissaoVO diaConferenciaComissao : conferenciaComissao.getDias()) {
|
||||
if(!diaConferenciaComissao.getIndsemmovimento() && !diaConferenciaComissao.getIndconferido()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
throw new BusinessException(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -56,7 +56,7 @@ public class PtovtaComissaoHibernateDAO extends GenericHibernateDAO<PtovtaComiss
|
|||
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.append("from PtovtaComissao pc ");
|
||||
sql.append("where pc.puntoventaId.puntoventaId = :puntoventaId ");
|
||||
sql.append("where pc.activo = 1 and pc.puntoventaId.puntoventaId = :puntoventaId ");
|
||||
sql.append(" and pc.empresaId.empresaId = :empresaId ");
|
||||
|
||||
Query query = getSession().createQuery(sql.toString());
|
||||
|
|
|
@ -7,9 +7,12 @@ import java.util.Date;
|
|||
import javax.persistence.Basic;
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.FetchType;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.JoinColumn;
|
||||
import javax.persistence.ManyToOne;
|
||||
import javax.persistence.SequenceGenerator;
|
||||
import javax.persistence.Table;
|
||||
import javax.persistence.Temporal;
|
||||
|
@ -62,10 +65,25 @@ public class Comissao implements Serializable {
|
|||
private Date fecmodif;
|
||||
@Column(name = "USUARIO_ID")
|
||||
private Integer usuarioId;
|
||||
@Column(name = "PUNTOVENTA_ID")
|
||||
private Integer puntoVentaId;
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "PUNTOVENTA_ID")
|
||||
private PuntoVenta puntoVenta;
|
||||
@Column(name = "EMPRESA_ID")
|
||||
private Integer empresaId;
|
||||
|
||||
public Comissao() {
|
||||
super();
|
||||
setComissaoBpr(BigDecimal.ZERO);
|
||||
setReceitaExcessobagagem(BigDecimal.ZERO);
|
||||
setReceitaSeguroopcional(BigDecimal.ZERO);
|
||||
setReceitaOutros(BigDecimal.ZERO);
|
||||
setDescontosFixos(BigDecimal.ZERO);
|
||||
setDescontosEventuais(BigDecimal.ZERO);
|
||||
setRoyaties(BigDecimal.ZERO);
|
||||
setIssRetido(BigDecimal.ZERO);
|
||||
setBonificacaoMetas(BigDecimal.ZERO);
|
||||
setEntregasPassagem(BigDecimal.ZERO);
|
||||
}
|
||||
|
||||
public Integer getComissaoId() {
|
||||
return comissaoId;
|
||||
|
@ -203,14 +221,6 @@ public class Comissao implements Serializable {
|
|||
this.usuarioId = usuarioId;
|
||||
}
|
||||
|
||||
public Integer getPuntoVentaId() {
|
||||
return puntoVentaId;
|
||||
}
|
||||
|
||||
public void setPuntoVentaId(Integer puntoVentaId) {
|
||||
this.puntoVentaId = puntoVentaId;
|
||||
}
|
||||
|
||||
public Integer getEmpresaId() {
|
||||
return empresaId;
|
||||
}
|
||||
|
@ -227,4 +237,12 @@ public class Comissao implements Serializable {
|
|||
this.receitaOutros = receitaOutros;
|
||||
}
|
||||
|
||||
public PuntoVenta getPuntoVenta() {
|
||||
return puntoVenta;
|
||||
}
|
||||
|
||||
public void setPuntoVenta(PuntoVenta puntoVenta) {
|
||||
this.puntoVenta = puntoVenta;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
package com.rjconsultores.ventaboletos.entidad;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -18,8 +17,6 @@ import javax.persistence.GenerationType;
|
|||
import javax.persistence.Id;
|
||||
import javax.persistence.JoinColumn;
|
||||
import javax.persistence.ManyToOne;
|
||||
import javax.persistence.NamedQueries;
|
||||
import javax.persistence.NamedQuery;
|
||||
import javax.persistence.OneToMany;
|
||||
import javax.persistence.SequenceGenerator;
|
||||
import javax.persistence.Table;
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
package com.rjconsultores.ventaboletos.enums;
|
||||
|
||||
public enum MimeType {
|
||||
|
||||
PDF("application/pdf"),
|
||||
XLS("application/vnd.ms-excel"),
|
||||
DOC("application/msword"),
|
||||
TXT("text/plain"),
|
||||
ZIP("application/zip, application/x-compressed-zip");
|
||||
|
||||
private String descricao;
|
||||
|
||||
private MimeType(String descricao) {
|
||||
this.descricao = descricao;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return this.descricao;
|
||||
}
|
||||
|
||||
}
|
|
@ -28,4 +28,8 @@ public class ComissaoException extends Exception {
|
|||
super(new MessageFormat(Labels.getLabel(message)).format(oMsg));
|
||||
}
|
||||
|
||||
public ComissaoException(String message, Object oMsg, Object... parametros) {
|
||||
super(new MessageFormat(Labels.getLabel(message, parametros)).format(oMsg));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,16 +1,30 @@
|
|||
package com.rjconsultores.ventaboletos.service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.rjconsultores.ventaboletos.entidad.Empresa;
|
||||
import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
|
||||
import com.rjconsultores.ventaboletos.exception.ComissaoException;
|
||||
import com.rjconsultores.ventaboletos.vo.comissao.HistoricoComissao;
|
||||
import com.rjconsultores.ventaboletos.vo.comissao.RegistroCalculo;
|
||||
|
||||
public interface CalculoComissaoService {
|
||||
|
||||
public RegistroCalculo relatorioCalculoComissao(Integer puntoVentaId, Integer empresaId, Date periodo) throws ComissaoException;
|
||||
|
||||
public void registrarCalculoComissao(Integer puntoVentaId, Integer empresaId, Date periodo) throws ComissaoException;
|
||||
public void registrarCalculoComissao(PuntoVenta puntoVenta, Empresa empresa, Date periodo, boolean ignorarComissaoGerada) throws ComissaoException;
|
||||
|
||||
public void cancelarCalculoComissao(Integer puntoVentaId, Integer empresaId, Date periodo) throws ComissaoException;
|
||||
|
||||
public List<RegistroCalculo> relatorioCalculoComissao(Integer empresaId, Date periodo) throws ComissaoException;
|
||||
|
||||
public void registrarCalculoComissao(Empresa empresa, Date periodo, boolean ignorarComissaoGerada) throws ComissaoException;
|
||||
|
||||
public void cancelarCalculoComissao(Integer empresaId, Date periodo) throws ComissaoException;
|
||||
|
||||
public List<HistoricoComissao> relatorioReciboComissao(Integer puntoVentaId, Integer empresaId, String competencia) throws ComissaoException;
|
||||
|
||||
public void enviarEmailReciboComissao(HistoricoComissao historicoComissao, byte[] recibo);
|
||||
|
||||
}
|
||||
|
|
|
@ -63,5 +63,7 @@ public interface ConferenciaComissaoService extends GenericService<Conferencia,
|
|||
public EtiquetaMalote decodificarEtiquetaMalote(String codigoBarras) throws BusinessException;
|
||||
|
||||
public void confirmarChegadaMalote(EtiquetaMalote etiquetaMalote) throws BusinessException;
|
||||
|
||||
public boolean isConferenciaCompetenciaEncerrada(String competencia, Empresa empresa, PuntoVenta puntoVenta) throws BusinessException;
|
||||
|
||||
}
|
||||
|
|
|
@ -1,39 +1,52 @@
|
|||
package com.rjconsultores.ventaboletos.service.impl;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.ParseException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.lang.BooleanUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.zkoss.util.resource.Labels;
|
||||
|
||||
import com.rjconsultores.ventaboletos.constantes.Constantes;
|
||||
import com.rjconsultores.ventaboletos.dao.ComissaoDAO;
|
||||
import com.rjconsultores.ventaboletos.entidad.Comissao;
|
||||
import com.rjconsultores.ventaboletos.entidad.Constante;
|
||||
import com.rjconsultores.ventaboletos.entidad.DescontoComissao;
|
||||
import com.rjconsultores.ventaboletos.entidad.Empresa;
|
||||
import com.rjconsultores.ventaboletos.entidad.EmpresaImposto;
|
||||
import com.rjconsultores.ventaboletos.entidad.PtovtaComissao;
|
||||
import com.rjconsultores.ventaboletos.entidad.PtovtaComissao.Receita;
|
||||
import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
|
||||
import com.rjconsultores.ventaboletos.enums.IndStatusBoleto;
|
||||
import com.rjconsultores.ventaboletos.enums.MimeType;
|
||||
import com.rjconsultores.ventaboletos.exception.ComissaoException;
|
||||
import com.rjconsultores.ventaboletos.service.CalculoComissaoService;
|
||||
import com.rjconsultores.ventaboletos.service.ComissaoService;
|
||||
import com.rjconsultores.ventaboletos.service.ConferenciaComissaoService;
|
||||
import com.rjconsultores.ventaboletos.service.ConstanteService;
|
||||
import com.rjconsultores.ventaboletos.service.DescontoComissaoService;
|
||||
import com.rjconsultores.ventaboletos.service.EmpresaImpostoService;
|
||||
import com.rjconsultores.ventaboletos.service.PtovtaComissaoService;
|
||||
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
|
||||
import com.rjconsultores.ventaboletos.utilerias.SendMail;
|
||||
import com.rjconsultores.ventaboletos.vo.comissao.BoletoComissao;
|
||||
import com.rjconsultores.ventaboletos.vo.comissao.ComissaoDesconto;
|
||||
import com.rjconsultores.ventaboletos.vo.comissao.ComissaoDesconto.TipoDesconto;
|
||||
import com.rjconsultores.ventaboletos.vo.comissao.ComissaoReceita;
|
||||
import com.rjconsultores.ventaboletos.vo.comissao.HistoricoComissao;
|
||||
import com.rjconsultores.ventaboletos.vo.comissao.RegistroCalculo;
|
||||
|
||||
@Service("calculoComissaoService")
|
||||
|
@ -41,7 +54,7 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
|||
|
||||
private static final Logger log = LoggerFactory.getLogger(CalculoComissaoServiceImpl.class);
|
||||
private static final BigDecimal CEM = BigDecimal.TEN.multiply(BigDecimal.TEN);
|
||||
|
||||
|
||||
@Autowired
|
||||
private PtovtaComissaoService ptovtaComissaoService;
|
||||
|
||||
|
@ -55,8 +68,14 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
|||
private ComissaoDAO comissaoDAO;
|
||||
|
||||
@Autowired
|
||||
private DescontoComissaoService descontoComissaoService;
|
||||
private ConferenciaComissaoService conferenciaComissaoService;
|
||||
|
||||
@Autowired
|
||||
private DescontoComissaoService descontoComissaoService;
|
||||
|
||||
@Autowired
|
||||
private ConstanteService constanteService;
|
||||
|
||||
public boolean validaCompetencia(Date periodo) {
|
||||
Calendar calendario = Calendar.getInstance();
|
||||
calendario.setTime(periodo);
|
||||
|
@ -81,48 +100,63 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void registrarCalculoComissao(Integer puntoVentaId, Integer empresaId, Date periodo) throws ComissaoException {
|
||||
|
||||
if (validaCompetencia(periodo)) {
|
||||
|
||||
String competencia = DateUtil.getStringDate(periodo, "MM/yyyy");
|
||||
Comissao comissaoCadastrada = comissaoDAO.buscaComissaoVigencia(puntoVentaId, empresaId, competencia);
|
||||
if (comissaoCadastrada == null) {
|
||||
|
||||
RegistroCalculo rc = realizarCalculoComissao(puntoVentaId, empresaId, periodo);
|
||||
|
||||
Comissao comissao = new Comissao();
|
||||
comissao.setCompetencia(competencia);
|
||||
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.setReceitaOutros(rc.getComissaoOutros());
|
||||
comissao.setRoyaties(rc.getRoyaties());
|
||||
comissao.setIssRetido(rc.getRetidoISS());
|
||||
comissao.setBonificacaoMetas(rc.getComissaoBonificaoMetas());
|
||||
|
||||
comissao.setIndPago(false);
|
||||
comissao.setUsuarioPagamentoId(null);
|
||||
comissao.setDataPagamento(null);
|
||||
|
||||
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());
|
||||
public void registrarCalculoComissao(PuntoVenta puntoVenta, Empresa empresa, Date periodo, boolean ignorarComissaoGerada) throws ComissaoException {
|
||||
|
||||
try {
|
||||
|
||||
if (validaCompetencia(periodo)) {
|
||||
|
||||
String competencia = DateUtil.getStringDate(periodo, "MM/yyyy");
|
||||
|
||||
if(conferenciaComissaoService.isConferenciaCompetenciaEncerrada(competencia, empresa, puntoVenta)) {
|
||||
Comissao comissaoCadastrada = comissaoDAO.buscaComissaoVigencia(puntoVenta.getPuntoventaId(), empresa.getEmpresaId(), competencia);
|
||||
if (comissaoCadastrada == null) {
|
||||
|
||||
RegistroCalculo rc = realizarCalculoComissao(puntoVenta.getPuntoventaId(), empresa.getEmpresaId(), periodo);
|
||||
|
||||
Comissao comissao = new Comissao();
|
||||
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());
|
||||
}
|
||||
}
|
||||
|
||||
comissao = comissaoService.suscribir(comissao);
|
||||
} else if(!ignorarComissaoGerada){
|
||||
throw new ComissaoException("busquedaCalculoComissaoController.registro.exception", null, comissaoCadastrada.getPuntoVenta().getNombpuntoventa());
|
||||
}
|
||||
} else {
|
||||
throw new ComissaoException("busquedaCalculoComissaoController.conferenciaNaoEncerrada.exception", null, puntoVenta.getNombpuntoventa());
|
||||
}
|
||||
|
||||
comissao = comissaoService.suscribir(comissao);
|
||||
} else {
|
||||
throw new ComissaoException("busquedaCalculoComissaoController.registro.exception");
|
||||
throw new ComissaoException("busquedaCalculoComissaoController.competencia.exception");
|
||||
}
|
||||
} else {
|
||||
throw new ComissaoException("busquedaCalculoComissaoController.competencia.exception");
|
||||
|
||||
} catch (ComissaoException e) {
|
||||
throw e;
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
throw new ComissaoException(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -150,9 +184,9 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
|||
BigDecimal recbpr = BigDecimal.ZERO;
|
||||
BigDecimal receitaBPR = bpr.add(gap);
|
||||
if (isAltaTemporada) {
|
||||
recbpr = receitaBPR.multiply(ptovtaComissao.getPassagemAlta().divide(CEM));
|
||||
recbpr = receitaBPR.multiply(ptovtaComissao.getPassagemAlta() != null ? ptovtaComissao.getPassagemAlta().divide(CEM) : BigDecimal.ZERO);
|
||||
} else {
|
||||
recbpr = receitaBPR.multiply(ptovtaComissao.getPassagemBaixa().divide(CEM));
|
||||
recbpr = receitaBPR.multiply(ptovtaComissao.getPassagemBaixa() != null ? ptovtaComissao.getPassagemBaixa().divide(CEM) : BigDecimal.ZERO);
|
||||
}
|
||||
|
||||
return recbpr;
|
||||
|
@ -165,9 +199,9 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
|||
BigDecimal receitaEntrega = gapImpressa.add(internet);
|
||||
if(ptovtaComissao.getValorImpressaoGap() != null) {
|
||||
if (BooleanUtils.toBoolean(ptovtaComissao.getIndimpressaogapporc())) {
|
||||
entregaPassagem = receitaEntrega.multiply(ptovtaComissao.getValorImpressaoGap().divide(CEM));
|
||||
entregaPassagem = receitaEntrega.multiply(ptovtaComissao.getValorImpressaoGap() != null ? ptovtaComissao.getValorImpressaoGap().divide(CEM) : BigDecimal.ZERO);
|
||||
} else {
|
||||
entregaPassagem = ptovtaComissao.getValorImpressaoGap().multiply(new BigDecimal(contImpressa));
|
||||
entregaPassagem = ptovtaComissao.getValorImpressaoGap() != null ? ptovtaComissao.getValorImpressaoGap().multiply(new BigDecimal(contImpressa)) : BigDecimal.ZERO;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -179,9 +213,9 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
|||
// Comissão Excesso = Receita Excesso Bagagem * (% Com. Exc. Bag)
|
||||
BigDecimal excessoBagagem = BigDecimal.ZERO;
|
||||
if (isAltaTemporada) {
|
||||
excessoBagagem = excBag.multiply(ptovtaComissao.getExcessoAlta().divide(CEM));
|
||||
excessoBagagem = excBag.multiply(ptovtaComissao.getExcessoAlta() != null ? ptovtaComissao.getExcessoAlta().divide(CEM) : BigDecimal.ZERO);
|
||||
} else {
|
||||
excessoBagagem = excBag.multiply(ptovtaComissao.getExcessoBaixa().divide(CEM));
|
||||
excessoBagagem = excBag.multiply(ptovtaComissao.getExcessoBaixa() != null ? ptovtaComissao.getExcessoBaixa().divide(CEM) : BigDecimal.ZERO);
|
||||
}
|
||||
|
||||
return excessoBagagem;
|
||||
|
@ -192,9 +226,9 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
|||
// Comissão Seg. Opcional = Receita Seguro Opcional * (% Com. Seg. Pol)
|
||||
BigDecimal recsegOpcional = BigDecimal.ZERO;
|
||||
if (isAltaTemporada) {
|
||||
recsegOpcional = segOpcional.multiply(ptovtaComissao.getSeguroAlta().divide(CEM));
|
||||
recsegOpcional = segOpcional.multiply(ptovtaComissao.getSeguroAlta() != null ? ptovtaComissao.getSeguroAlta().divide(CEM) : BigDecimal.ZERO);
|
||||
} else {
|
||||
recsegOpcional = segOpcional.multiply(ptovtaComissao.getSeguroBaixa().divide(CEM));
|
||||
recsegOpcional = segOpcional.multiply(ptovtaComissao.getSeguroBaixa() != null ? ptovtaComissao.getSeguroBaixa().divide(CEM) : BigDecimal.ZERO);
|
||||
}
|
||||
return recsegOpcional;
|
||||
}
|
||||
|
@ -204,9 +238,9 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
|||
// Comissão Seg. Opcional = Receita Seguro Opcional * (% Com. Seg. Pol)
|
||||
BigDecimal recoutros = BigDecimal.ZERO;
|
||||
if (isAltaTemporada) {
|
||||
recoutros = outros.multiply(ptovtaComissao.getOutrosAlta().divide(CEM));
|
||||
recoutros = outros.multiply(ptovtaComissao.getOutrosAlta() != null ? ptovtaComissao.getOutrosAlta().divide(CEM) : BigDecimal.ZERO);
|
||||
} else {
|
||||
recoutros = outros.multiply(ptovtaComissao.getOutrosBaixa().divide(CEM));
|
||||
recoutros = outros.multiply(ptovtaComissao.getOutrosBaixa() != null ? ptovtaComissao.getOutrosBaixa().divide(CEM) : BigDecimal.ZERO);
|
||||
}
|
||||
return recoutros;
|
||||
}
|
||||
|
@ -262,6 +296,8 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
|||
List<ComissaoReceita> receitas = calculaReceitaComissao(empresaId, ptovtaComissao, receitasBoleto, ultimodia, mes, ano);
|
||||
|
||||
RegistroCalculo rc = new RegistroCalculo();
|
||||
rc.setNombpuntoventa(ptovtaComissao.getPuntoventaId().getNombpuntoventa());
|
||||
rc.setNumPuntoVenta(ptovtaComissao.getPuntoventaId().getNumPuntoVenta());
|
||||
|
||||
BigDecimal comissaoBPR = BigDecimal.ZERO;
|
||||
BigDecimal comissaoExcessoBagagem = BigDecimal.ZERO;
|
||||
|
@ -300,12 +336,16 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
|||
|
||||
// Royaties
|
||||
BigDecimal royaties = BigDecimal.ZERO;
|
||||
royaties = receitaTotal.multiply(ptovtaComissao.getRoyalties().divide(CEM));
|
||||
if(ptovtaComissao.getRoyalties() != null) {
|
||||
royaties = receitaTotal.multiply(ptovtaComissao.getRoyalties().divide(CEM));
|
||||
}
|
||||
rc.setRoyaties(royaties);
|
||||
|
||||
// ISS retido
|
||||
BigDecimal issRetido = BigDecimal.ZERO;
|
||||
issRetido = receitaTotal.multiply(ptovtaComissao.getIssretido().divide(CEM));
|
||||
if(ptovtaComissao.getIssretido() != null) {
|
||||
issRetido = receitaTotal.multiply(ptovtaComissao.getIssretido().divide(CEM));
|
||||
}
|
||||
rc.setRetidoISS(issRetido);
|
||||
|
||||
// Comissão à pagar = Comissão BPR + Comissão Excesso Bagagem + Comissão Seg. Opcional + Bonificação Metas + Internet(EntregaPassagem)
|
||||
|
@ -612,4 +652,125 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService {
|
|||
return aux;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<RegistroCalculo> relatorioCalculoComissao(Integer empresaId, Date periodo) throws ComissaoException {
|
||||
List<RegistroCalculo> registrosCalculo = new ArrayList<RegistroCalculo>();
|
||||
List<PuntoVenta> puntoventas = comissaoDAO.buscaPuntoVentasEmpresaComComissaoParametrizada(empresaId);
|
||||
for (PuntoVenta puntoVenta : puntoventas) {
|
||||
RegistroCalculo registroCalculo = relatorioCalculoComissao(puntoVenta.getPuntoventaId(), empresaId, periodo);
|
||||
totalizarRegistroCalculo(registroCalculo);
|
||||
registrosCalculo.add(registroCalculo);
|
||||
}
|
||||
Collections.sort(registrosCalculo, new Comparator<RegistroCalculo>() {
|
||||
@Override
|
||||
public int compare(RegistroCalculo o1, RegistroCalculo o2) {
|
||||
return o1.getNombpuntoventa().compareToIgnoreCase(o2.getNombpuntoventa());
|
||||
}
|
||||
});
|
||||
return registrosCalculo;
|
||||
}
|
||||
|
||||
private void totalizarRegistroCalculo(RegistroCalculo registroCalculo) {
|
||||
ComissaoReceita comissaoReceitaTotal = new ComissaoReceita();
|
||||
for (ComissaoReceita comissaoReceita : registroCalculo.getLsReceitas()) {
|
||||
comissaoReceitaTotal.setReceitaComissao(comissaoReceitaTotal.getReceitaComissao().add(comissaoReceita.getReceitaComissao()));
|
||||
comissaoReceitaTotal.setReceitaBPR(comissaoReceitaTotal.getReceitaBPR().add(comissaoReceita.getReceitaBPR()));
|
||||
comissaoReceitaTotal.setReceitaGAP(comissaoReceitaTotal.getReceitaGAP().add(comissaoReceita.getReceitaGAP()));
|
||||
comissaoReceitaTotal.setGapImpressa(comissaoReceitaTotal.getGapImpressa().add(comissaoReceita.getGapImpressa()));
|
||||
comissaoReceitaTotal.setInternet(comissaoReceitaTotal.getInternet().add(comissaoReceita.getInternet()));
|
||||
comissaoReceitaTotal.setCancelados(comissaoReceitaTotal.getReceitaGAP().add(comissaoReceita.getCancelados()));
|
||||
comissaoReceitaTotal.setCanceladosGAP(comissaoReceitaTotal.getCanceladosGAP().add(comissaoReceita.getCanceladosGAP()));
|
||||
comissaoReceitaTotal.setDevolvidos(comissaoReceitaTotal.getDevolvidosGAP().add(comissaoReceita.getDevolvidos()));
|
||||
comissaoReceitaTotal.setDevolvidosGAP(comissaoReceitaTotal.getDevolvidosGAP().add(comissaoReceita.getDevolvidosGAP()));
|
||||
comissaoReceitaTotal.setDevolucoesOrigem(comissaoReceitaTotal.getDevolucoesOrigem().add(comissaoReceita.getDevolucoesOrigem()));
|
||||
comissaoReceitaTotal.setDevolucoesOrigemGAP(comissaoReceitaTotal.getDevolucoesOrigemGAP().add(comissaoReceita.getDevolucoesOrigemGAP()));
|
||||
comissaoReceitaTotal.setReceitaExcessoBagagem(comissaoReceitaTotal.getReceitaExcessoBagagem().add(comissaoReceita.getReceitaExcessoBagagem()));
|
||||
comissaoReceitaTotal.setReceitaSeguroOpcional(comissaoReceitaTotal.getReceitaSeguroOpcional().add(comissaoReceita.getReceitaSeguroOpcional()));
|
||||
comissaoReceitaTotal.setReceitaSeguroOutros(comissaoReceitaTotal.getReceitaSeguroOutros().add(comissaoReceita.getReceitaSeguroOutros()));
|
||||
comissaoReceitaTotal.setContImpressa(comissaoReceitaTotal.getContImpressa() + comissaoReceita.getContImpressa());
|
||||
comissaoReceitaTotal.setComissaoBPRDiaria(comissaoReceitaTotal.getComissaoBPRDiaria().add(comissaoReceita.getComissaoBPRDiaria()));
|
||||
comissaoReceitaTotal.setComissaoExcessoBagagemDiaria(comissaoReceitaTotal.getComissaoExcessoBagagemDiaria().add(comissaoReceita.getComissaoExcessoBagagemDiaria()));
|
||||
comissaoReceitaTotal.setComissaoSegOpcionalDiaria(comissaoReceitaTotal.getComissaoSegOpcionalDiaria().add(comissaoReceita.getComissaoSegOpcionalDiaria()));
|
||||
comissaoReceitaTotal.setComissaoEntregaPassagemDiaria(comissaoReceitaTotal.getComissaoEntregaPassagemDiaria().add(comissaoReceita.getComissaoEntregaPassagemDiaria()));
|
||||
comissaoReceitaTotal.setComissaoOutrosDiaria(comissaoReceitaTotal.getComissaoOutrosDiaria().add(comissaoReceita.getComissaoOutrosDiaria()));
|
||||
}
|
||||
registroCalculo.getLsReceitas().clear();
|
||||
registroCalculo.getLsReceitas().add(comissaoReceitaTotal);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registrarCalculoComissao(Empresa empresa, Date periodo, boolean ignorarComissaoGerada) throws ComissaoException {
|
||||
List<PuntoVenta> puntoventas = comissaoDAO.buscaPuntoVentasEmpresaComComissaoParametrizada(empresa.getEmpresaId());
|
||||
for (PuntoVenta puntoVenta : puntoventas) {
|
||||
registrarCalculoComissao(puntoVenta, empresa, periodo, ignorarComissaoGerada);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancelarCalculoComissao(Integer empresaId, Date periodo) throws ComissaoException {
|
||||
List<PuntoVenta> puntoventas = comissaoDAO.buscaPuntoVentasEmpresaComComissaoParametrizada(empresaId);
|
||||
for (PuntoVenta puntoVenta : puntoventas) {
|
||||
cancelarCalculoComissao(puntoVenta.getPuntoventaId(), empresaId, periodo);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<HistoricoComissao> relatorioReciboComissao(Integer puntoVentaId, Integer empresaId, String competencia) throws ComissaoException {
|
||||
try {
|
||||
return comissaoDAO.buscaHistoricoComissao(puntoVentaId, empresaId, DateUtil.getDateFromString(competencia, "MM/yyyy"), DateUtil.getDateFromString(competencia, "MM/yyyy"));
|
||||
} catch (Exception e) {
|
||||
throw new ComissaoException(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enviarEmailReciboComissao(HistoricoComissao historicoComissao, byte[] recibo) {
|
||||
try {
|
||||
if(StringUtils.isNotBlank(historicoComissao.getDescCorreo())) {
|
||||
SendMail mail = new SendMail();
|
||||
mail.setEmailToCO(historicoComissao.getDescCorreo());
|
||||
|
||||
Constante constante = constanteService.buscarPorNomeConstante("SMTP_COMISSAO_EMAIL");
|
||||
if(constante != null) {
|
||||
mail.setEmailFrom(constante.getValorconstante());
|
||||
}
|
||||
|
||||
constante = constanteService.buscarPorNomeConstante("SMTP_COMISSAO_HOST");
|
||||
if(constante != null) {
|
||||
mail.setSmtpHost(constante.getValorconstante());
|
||||
}
|
||||
|
||||
constante = constanteService.buscarPorNomeConstante("SMTP_COMISSAO_PASS");
|
||||
if(constante != null) {
|
||||
mail.setSmtpPassword(constante.getValorconstante());
|
||||
}
|
||||
|
||||
constante = constanteService.buscarPorNomeConstante("SMTP_COMISSAO_PORT");
|
||||
if(constante != null) {
|
||||
mail.setSmtpPort(constante.getValorconstante());
|
||||
}
|
||||
|
||||
constante = constanteService.buscarPorNomeConstante("SMTP_COMISSAO_USER");
|
||||
if(constante != null) {
|
||||
mail.setSmtpUser(constante.getValorconstante());
|
||||
}
|
||||
|
||||
String assunto = Labels.getLabel("busquedaCalculoComissaoController.recibo.email.assunto", historicoComissao.getCompetencia());
|
||||
mail.setSubject(assunto);
|
||||
|
||||
String texto = Labels.getLabel("busquedaCalculoComissaoController.recibo.email.texto", historicoComissao.getCompetencia());
|
||||
mail.setText(texto);
|
||||
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream(recibo.length);
|
||||
baos.write(recibo, 0, recibo.length);
|
||||
mail.addAnexo(Labels.getLabel("busquedaCalculoComissaoController.recibo.email.nomeAnexo", historicoComissao.getCompetencia()), baos, MimeType.PDF);
|
||||
|
||||
mail.send();
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -131,7 +131,7 @@ public class ConferenciaComissaoServiceImpl implements ConferenciaComissaoServic
|
|||
logConferencia.setFecmodif(new Date());
|
||||
conferenciaComissaoDAO.borrarLogConferencia(logConferencia);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public LogConferencia obtenerLogConferenciaID(Long logconferenciaId) {
|
||||
return conferenciaComissaoDAO.obtenerLogConferenciaID(logconferenciaId);
|
||||
|
@ -440,5 +440,10 @@ public class ConferenciaComissaoServiceImpl implements ConferenciaComissaoServic
|
|||
log.error(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isConferenciaCompetenciaEncerrada(String competencia, Empresa empresa, PuntoVenta puntoVenta) throws BusinessException {
|
||||
return conferenciaComissaoDAO.isConferenciaCompetenciaEncerrada(competencia, empresa, puntoVenta);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -609,4 +609,20 @@ public final class DateUtil {
|
|||
return false;
|
||||
}
|
||||
|
||||
public static Date getDataFinalCompetencia(String competencia) throws ParseException {
|
||||
if(isCompetenciaValida(competencia)) {
|
||||
Date dataInicio = getDateFromString("01/"+competencia, "dd/MM/yyyy");
|
||||
Calendar cal = Calendar.getInstance(LocaleUtil.getLocale());
|
||||
cal.setTime(dataInicio);
|
||||
return getDateFromString(cal.getActualMaximum(Calendar.DAY_OF_MONTH)+"/"+competencia, "dd/MM/yyyy");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
public static Date getDataInicialCompetencia(String competencia) throws ParseException {
|
||||
if(isCompetenciaValida(competencia)) {
|
||||
return getDateFromString("01/"+competencia, "dd/MM/yyyy");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,316 @@
|
|||
package com.rjconsultores.ventaboletos.utilerias;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Properties;
|
||||
|
||||
import javax.activation.DataHandler;
|
||||
import javax.activation.DataSource;
|
||||
import javax.activation.FileDataSource;
|
||||
import javax.mail.BodyPart;
|
||||
import javax.mail.Message;
|
||||
import javax.mail.MessagingException;
|
||||
import javax.mail.Multipart;
|
||||
import javax.mail.Session;
|
||||
import javax.mail.Transport;
|
||||
import javax.mail.internet.InternetAddress;
|
||||
import javax.mail.internet.MimeBodyPart;
|
||||
import javax.mail.internet.MimeMessage;
|
||||
import javax.mail.internet.MimeMultipart;
|
||||
import javax.mail.util.ByteArrayDataSource;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.rjconsultores.ventaboletos.enums.MimeType;
|
||||
|
||||
public class SendMail {
|
||||
private static Logger log = LoggerFactory.getLogger(SendMail.class);
|
||||
|
||||
private String smtpHost;
|
||||
private String smtpUser;
|
||||
private String smtpPassword;
|
||||
private String smtpPort;
|
||||
private String emailFrom;
|
||||
private String emailTo;
|
||||
private String emailToCO;
|
||||
private List<String> emailCopy = new ArrayList<String>();
|
||||
private String localhost;
|
||||
private String auth;
|
||||
private String subject;
|
||||
private String text;
|
||||
private Map<String, ByteArrayOutputStream> anexosBytes;
|
||||
private Map<String, String> anexosArquivos;
|
||||
private Map<String, com.rjconsultores.ventaboletos.enums.MimeType> mimeTypes;
|
||||
|
||||
public SendMail(){
|
||||
this.smtpHost = "";
|
||||
this.smtpUser = "";
|
||||
this.smtpPassword = "";
|
||||
this.smtpPort = "";
|
||||
this.emailFrom = "";
|
||||
this.localhost = "";
|
||||
this.auth = "true";
|
||||
this.emailTo = "";
|
||||
this.emailToCO = "";
|
||||
}
|
||||
|
||||
public SendMail(String smtpHost, String smtpUser, String smtpPassword, String smtpPort,
|
||||
String emailFrom, String emailTo, List<String> emailCopy, String localhost,
|
||||
String auth, String subject, String text) {
|
||||
this.smtpHost = smtpHost;
|
||||
this.smtpUser = smtpUser;
|
||||
this.smtpPassword = smtpPassword;
|
||||
this.smtpPort = smtpPort;
|
||||
this.emailFrom = emailFrom;
|
||||
this.emailTo = emailTo;
|
||||
this.emailCopy = emailCopy;
|
||||
this.localhost = localhost;
|
||||
this.auth = auth;
|
||||
this.subject = subject;
|
||||
this.text = text;
|
||||
}
|
||||
|
||||
public String[] removeNull(String[] a) {
|
||||
List<String> removed = new ArrayList<String>();
|
||||
for (String str : a)
|
||||
if (!StringUtils.isBlank(str) && !str.equals("null"))
|
||||
removed.add(str);
|
||||
return removed.toArray(new String[0]);
|
||||
}
|
||||
|
||||
public void send() {
|
||||
try {
|
||||
String[] to = {};
|
||||
String[] bcc = {};
|
||||
|
||||
if (emailTo.contains(";")){
|
||||
to = emailTo.split(";");
|
||||
} else if (!StringUtils.isBlank(emailTo)){
|
||||
to = new String[1];
|
||||
to[0] = emailTo;
|
||||
}
|
||||
|
||||
if (emailToCO.contains(";")){
|
||||
bcc = emailToCO.split(";");
|
||||
} else if (!StringUtils.isBlank(emailToCO)){
|
||||
bcc = new String[1];
|
||||
bcc[0] = emailToCO;
|
||||
}
|
||||
|
||||
to = removeNull(to);
|
||||
bcc = removeNull(bcc);
|
||||
|
||||
Boolean vAuth = (auth == null ? Boolean.TRUE : Boolean.valueOf(auth));
|
||||
|
||||
Properties props = System.getProperties();
|
||||
props.put("mail.smtp.host", smtpHost);
|
||||
|
||||
if (localhost != null) {
|
||||
props.put("mail.smtp.localhost", localhost);
|
||||
}
|
||||
|
||||
if (vAuth) {
|
||||
props.setProperty("mail.smtp.starttls.enable", "true");
|
||||
props.setProperty("mail.smtp.auth", "true");
|
||||
}
|
||||
|
||||
props.setProperty("mail.smtp.port", smtpPort);
|
||||
props.setProperty("mail.smtp.user", smtpUser);
|
||||
|
||||
Session session = Session.getInstance(props, null);
|
||||
|
||||
Message message = new MimeMessage(session);
|
||||
message.setFrom(new InternetAddress(emailFrom));
|
||||
|
||||
InternetAddress[] toAddress = new InternetAddress[to.length];
|
||||
|
||||
for (int i = 0; i < to.length; i++) {
|
||||
toAddress[i] = new InternetAddress(to[i]);
|
||||
}
|
||||
|
||||
message.setRecipients(Message.RecipientType.TO, toAddress);
|
||||
|
||||
InternetAddress[] toBccAddress = new InternetAddress[bcc.length];
|
||||
|
||||
for (int i = 0; i < bcc.length; i++) {
|
||||
toBccAddress[i] = new InternetAddress(bcc[i]);
|
||||
}
|
||||
|
||||
message.setRecipients(Message.RecipientType.BCC, toBccAddress);
|
||||
|
||||
InternetAddress[] copyAddress = new InternetAddress[emailCopy.size()];
|
||||
int i = 0;
|
||||
for (String eCopy : emailCopy) {
|
||||
copyAddress[i] = new InternetAddress(eCopy);
|
||||
i++;
|
||||
}
|
||||
if (copyAddress.length > 0) {
|
||||
message.setRecipients(Message.RecipientType.CC, copyAddress);
|
||||
}
|
||||
|
||||
message.setSubject(subject);
|
||||
|
||||
BodyPart messageBodyPart = new MimeBodyPart();
|
||||
messageBodyPart.setText(text);
|
||||
|
||||
Multipart multipart = new MimeMultipart();
|
||||
multipart.addBodyPart(messageBodyPart);
|
||||
message.setContent(multipart);
|
||||
|
||||
adicionarAnexos(multipart);
|
||||
|
||||
Transport t = session.getTransport("smtp");
|
||||
t.connect(smtpUser, smtpPassword);
|
||||
t.sendMessage(message, message.getAllRecipients());
|
||||
t.close();
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
private void adicionarAnexos(Multipart multipart) throws MessagingException, IOException {
|
||||
anexarArquivosBytes(multipart);
|
||||
anexarArquivos(multipart);
|
||||
}
|
||||
|
||||
private void anexarArquivosBytes(Multipart multipart) throws MessagingException, IOException {
|
||||
if(anexosBytes != null) {
|
||||
for (Entry<String, ByteArrayOutputStream> anexo : anexosBytes.entrySet()) {
|
||||
BodyPart bodyPart = new MimeBodyPart();
|
||||
com.rjconsultores.ventaboletos.enums.MimeType mimeType = mimeTypes.get(anexo.getKey());
|
||||
DataSource bds = new ByteArrayDataSource(new ByteArrayInputStream(anexo.getValue().toByteArray()), mimeType.toString());
|
||||
bodyPart.setDataHandler(new DataHandler(bds));
|
||||
bodyPart.setFileName(anexo.getKey());
|
||||
|
||||
multipart.addBodyPart(bodyPart);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void anexarArquivos(Multipart multipart) throws MessagingException {
|
||||
if(anexosArquivos != null) {
|
||||
for (Entry<String, String> anexo : anexosArquivos.entrySet()) {
|
||||
BodyPart bodyPart = new MimeBodyPart();
|
||||
DataSource bds = new FileDataSource(anexo.getValue());
|
||||
bodyPart.setDataHandler(new DataHandler(bds));
|
||||
bodyPart.setFileName(anexo.getKey());
|
||||
multipart.addBodyPart(bodyPart);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String getSmtpHost() {
|
||||
return smtpHost;
|
||||
}
|
||||
|
||||
public void setSmtpHost(String smtpHost) {
|
||||
this.smtpHost = smtpHost;
|
||||
}
|
||||
|
||||
public String getSmtpUser() {
|
||||
return smtpUser;
|
||||
}
|
||||
|
||||
public void setSmtpUser(String smtpUser) {
|
||||
this.smtpUser = smtpUser;
|
||||
}
|
||||
|
||||
public String getSmtpPassword() {
|
||||
return smtpPassword;
|
||||
}
|
||||
|
||||
public void setSmtpPassword(String smtpPassword) {
|
||||
this.smtpPassword = smtpPassword;
|
||||
}
|
||||
|
||||
public String getSmtpPort() {
|
||||
return smtpPort;
|
||||
}
|
||||
|
||||
public void setSmtpPort(String smtpPort) {
|
||||
this.smtpPort = smtpPort;
|
||||
}
|
||||
|
||||
public String getEmailFrom() {
|
||||
return emailFrom;
|
||||
}
|
||||
|
||||
public void setEmailFrom(String emailFrom) {
|
||||
this.emailFrom = emailFrom;
|
||||
}
|
||||
|
||||
public String getEmailTo() {
|
||||
return emailTo;
|
||||
}
|
||||
|
||||
public void setEmailTo(String emailTo) {
|
||||
this.emailTo = emailTo;
|
||||
}
|
||||
|
||||
public List<String> getEmailCopy() {
|
||||
return emailCopy;
|
||||
}
|
||||
|
||||
public void setEmailCopy(List<String> emailCopy) {
|
||||
this.emailCopy = emailCopy;
|
||||
}
|
||||
|
||||
public String getLocalhost() {
|
||||
return localhost;
|
||||
}
|
||||
|
||||
public void setLocalhost(String localhost) {
|
||||
this.localhost = localhost;
|
||||
}
|
||||
|
||||
public String getSubject() {
|
||||
return subject;
|
||||
}
|
||||
|
||||
public void setSubject(String subject) {
|
||||
this.subject = subject;
|
||||
}
|
||||
|
||||
public String getText() {
|
||||
return text;
|
||||
}
|
||||
|
||||
public void setText(String text) {
|
||||
this.text = text;
|
||||
}
|
||||
|
||||
public String getEmailToCO() {
|
||||
return emailToCO;
|
||||
}
|
||||
|
||||
public void setEmailToCO(String emailToCO) {
|
||||
this.emailToCO = emailToCO;
|
||||
}
|
||||
|
||||
public void addAnexo(String nome, ByteArrayOutputStream anexo, MimeType mimeType) {
|
||||
if(anexosBytes == null) {
|
||||
anexosBytes = new HashMap<String, ByteArrayOutputStream>();
|
||||
}
|
||||
if(mimeTypes == null) {
|
||||
mimeTypes = new HashMap<String, MimeType>();
|
||||
}
|
||||
anexosBytes.put(nome, anexo);
|
||||
mimeTypes.put(nome, mimeType);
|
||||
}
|
||||
|
||||
public void addAnexo(String nome, String anexo) {
|
||||
if(anexosArquivos== null) {
|
||||
anexosArquivos = new HashMap<String, String>();
|
||||
}
|
||||
anexosArquivos.put(nome, anexo);
|
||||
}
|
||||
|
||||
}
|
|
@ -27,6 +27,30 @@ public class ComissaoReceita {
|
|||
private BigDecimal comissaoSegOpcionalDiaria;
|
||||
private BigDecimal comissaoEntregaPassagemDiaria;
|
||||
private BigDecimal comissaoOutrosDiaria;
|
||||
|
||||
public ComissaoReceita() {
|
||||
super();
|
||||
this.receitaComissao = BigDecimal.ZERO;
|
||||
this.receitaBPR = BigDecimal.ZERO;
|
||||
this.receitaGAP = BigDecimal.ZERO;
|
||||
this.gapImpressa = BigDecimal.ZERO;
|
||||
this.internet = BigDecimal.ZERO;
|
||||
this.cancelados = BigDecimal.ZERO;
|
||||
this.canceladosGAP = BigDecimal.ZERO;
|
||||
this.devolvidos = BigDecimal.ZERO;
|
||||
this.devolvidosGAP = BigDecimal.ZERO;
|
||||
this.devolucoesOrigem = BigDecimal.ZERO;
|
||||
this.devolucoesOrigemGAP = BigDecimal.ZERO;
|
||||
this.receitaExcessoBagagem = BigDecimal.ZERO;
|
||||
this.receitaSeguroOpcional = BigDecimal.ZERO;
|
||||
this.receitaSeguroOutros = BigDecimal.ZERO;
|
||||
this.contImpressa = 0;
|
||||
this.comissaoBPRDiaria = BigDecimal.ZERO;
|
||||
this.comissaoExcessoBagagemDiaria = BigDecimal.ZERO;
|
||||
this.comissaoSegOpcionalDiaria = BigDecimal.ZERO;
|
||||
this.comissaoEntregaPassagemDiaria = BigDecimal.ZERO;
|
||||
this.comissaoOutrosDiaria = BigDecimal.ZERO;
|
||||
}
|
||||
|
||||
public Date getData() {
|
||||
return data;
|
||||
|
|
|
@ -18,6 +18,11 @@ public class DiaConferenciaComissaoVO implements Comparable<DiaConferenciaComiss
|
|||
|
||||
public DiaConferenciaComissaoVO() {
|
||||
super();
|
||||
this.indboletogerado = Boolean.FALSE;
|
||||
this.indconferido = Boolean.FALSE;
|
||||
this.indpendencia = Boolean.FALSE;
|
||||
this.indsemmovimento = Boolean.FALSE;
|
||||
this.indmaloterecebido = Boolean.FALSE;
|
||||
}
|
||||
|
||||
public DiaConferenciaComissaoVO(Integer dia) {
|
||||
|
|
|
@ -1,16 +1,55 @@
|
|||
package com.rjconsultores.ventaboletos.vo.comissao;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.text.NumberFormat;
|
||||
import java.text.ParseException;
|
||||
|
||||
import org.brazilutils.text.RealToWords;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.zkoss.util.resource.Labels;
|
||||
|
||||
import com.rjconsultores.ventaboletos.entidad.Comissao;
|
||||
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
|
||||
import com.rjconsultores.ventaboletos.utilerias.LocaleUtil;
|
||||
|
||||
public class HistoricoComissao extends Comissao {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(HistoricoComissao.class);
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private static final NumberFormat NF = NumberFormat.getCurrencyInstance(LocaleUtil.getLocale());
|
||||
|
||||
private String pagamento;
|
||||
private String usuarioPagamento;
|
||||
private String usuarioLancamento;
|
||||
private String nombpuntoventa;
|
||||
private String numpuntoventa;
|
||||
private String sigla;
|
||||
private String nome;
|
||||
private String banco;
|
||||
private String conta;
|
||||
private String agencia;
|
||||
private String cidade;
|
||||
private String nombempresa;
|
||||
private String cnpj;
|
||||
private String descCorreo;
|
||||
|
||||
public HistoricoComissao() {
|
||||
super();
|
||||
setComissaoBpr(BigDecimal.ZERO);
|
||||
setReceitaExcessobagagem(BigDecimal.ZERO);
|
||||
setReceitaSeguroopcional(BigDecimal.ZERO);
|
||||
setReceitaOutros(BigDecimal.ZERO);
|
||||
setDescontosFixos(BigDecimal.ZERO);
|
||||
setDescontosEventuais(BigDecimal.ZERO);
|
||||
setRoyaties(BigDecimal.ZERO);
|
||||
setIssRetido(BigDecimal.ZERO);
|
||||
setBonificacaoMetas(BigDecimal.ZERO);
|
||||
setEntregasPassagem(BigDecimal.ZERO);
|
||||
}
|
||||
|
||||
public String getPagamento() {
|
||||
return pagamento;
|
||||
|
@ -52,4 +91,141 @@ public class HistoricoComissao extends Comissao {
|
|||
this.numpuntoventa = numpuntoventa;
|
||||
}
|
||||
|
||||
public BigDecimal getTotal() {
|
||||
BigDecimal total = BigDecimal.ZERO;
|
||||
total = total.add(getComissaoBpr() != null ? getComissaoBpr() : BigDecimal.ZERO)
|
||||
.add(getReceitaExcessobagagem() != null ? getReceitaExcessobagagem() : BigDecimal.ZERO)
|
||||
.add(getReceitaSeguroopcional() != null ? getReceitaSeguroopcional() : BigDecimal.ZERO)
|
||||
.add(getReceitaOutros() != null ? getReceitaOutros() : BigDecimal.ZERO)
|
||||
.add(getBonificacaoMetas() != null ? getBonificacaoMetas() : BigDecimal.ZERO)
|
||||
.add(getEntregasPassagem() != null ? getEntregasPassagem() : BigDecimal.ZERO);
|
||||
|
||||
total = total.setScale(2, RoundingMode.HALF_UP);
|
||||
|
||||
return total;
|
||||
}
|
||||
|
||||
public BigDecimal getTotalLiquido() {
|
||||
BigDecimal totalLiquido = getTotal();
|
||||
totalLiquido = totalLiquido.subtract(getDescontosEventuais() != null ? getDescontosEventuais() : BigDecimal.ZERO)
|
||||
.subtract(getDescontosFixos() != null ? getDescontosFixos() : BigDecimal.ZERO)
|
||||
.subtract(getIssRetido() != null ? getIssRetido() : BigDecimal.ZERO)
|
||||
.subtract(getRoyaties() != null ? getRoyaties() : BigDecimal.ZERO);
|
||||
|
||||
totalLiquido = totalLiquido.setScale(2, RoundingMode.HALF_UP);
|
||||
|
||||
return totalLiquido;
|
||||
}
|
||||
|
||||
public String getSigla() {
|
||||
return sigla;
|
||||
}
|
||||
|
||||
public void setSigla(String sigla) {
|
||||
this.sigla = sigla;
|
||||
}
|
||||
|
||||
public String getNome() {
|
||||
return nome;
|
||||
}
|
||||
|
||||
public void setNome(String nome) {
|
||||
this.nome = nome;
|
||||
}
|
||||
|
||||
public String getBanco() {
|
||||
return banco;
|
||||
}
|
||||
|
||||
public void setBanco(String banco) {
|
||||
this.banco = banco;
|
||||
}
|
||||
|
||||
public String getConta() {
|
||||
return conta;
|
||||
}
|
||||
|
||||
public void setConta(String conta) {
|
||||
this.conta = conta;
|
||||
}
|
||||
|
||||
public String getAgencia() {
|
||||
return agencia;
|
||||
}
|
||||
|
||||
public void setAgencia(String agencia) {
|
||||
this.agencia = agencia;
|
||||
}
|
||||
|
||||
public String getCidade() {
|
||||
return cidade;
|
||||
}
|
||||
|
||||
public void setCidade(String cidade) {
|
||||
this.cidade = cidade;
|
||||
}
|
||||
|
||||
public String getTexto() {
|
||||
return Labels.getLabel("busquedaCalculoComissaoController.recibo.texto",
|
||||
new String[]{getNombempresa(),
|
||||
getCnpj(),
|
||||
getTextoValor()});
|
||||
}
|
||||
|
||||
public String getTexto1() {
|
||||
try {
|
||||
return Labels.getLabel("busquedaCalculoComissaoController.recibo.texto1",
|
||||
new String[]{DateUtil.getStringDate(DateUtil.getDataInicialCompetencia(getCompetencia()), "dd/MM/yyyy"),
|
||||
DateUtil.getStringDate(DateUtil.getDataFinalCompetencia(getCompetencia()), "dd/MM/yyyy")});
|
||||
} catch (ParseException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getTexto2() {
|
||||
return Labels.getLabel("busquedaCalculoComissaoController.recibo.texto2");
|
||||
}
|
||||
|
||||
private String getTextoValor() {
|
||||
StringBuilder sTextoValor = new StringBuilder();
|
||||
sTextoValor.append(NF.format(getTotalLiquido().doubleValue()))
|
||||
.append(" (")
|
||||
.append(new RealToWords().toWords(getTotalLiquido()))
|
||||
.append(") **********");
|
||||
return sTextoValor.toString();
|
||||
}
|
||||
|
||||
public String getMsg() {
|
||||
return Labels.getLabel("busquedaCalculoComissaoController.recibo.msg", new String[]{getNombempresa()});
|
||||
}
|
||||
|
||||
public String getMsg1() {
|
||||
return Labels.getLabel("busquedaCalculoComissaoController.recibo.msg1", new String[]{getNombempresa()});
|
||||
}
|
||||
|
||||
public String getCnpj() {
|
||||
return cnpj;
|
||||
}
|
||||
|
||||
public void setCnpj(String cnpj) {
|
||||
this.cnpj = cnpj;
|
||||
}
|
||||
|
||||
public String getNombempresa() {
|
||||
return nombempresa;
|
||||
}
|
||||
|
||||
public void setNombempresa(String nombempresa) {
|
||||
this.nombempresa = nombempresa;
|
||||
}
|
||||
|
||||
public String getDescCorreo() {
|
||||
return descCorreo;
|
||||
}
|
||||
|
||||
public void setDescCorreo(String descCorreo) {
|
||||
this.descCorreo = descCorreo;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -19,6 +19,9 @@ public class RegistroCalculo {
|
|||
private BigDecimal descontos;
|
||||
private List<ComissaoDesconto> lsDescontos;
|
||||
private List<ComissaoReceita> lsReceitas;
|
||||
|
||||
private String nombpuntoventa;
|
||||
private String numPuntoVenta;
|
||||
|
||||
public BigDecimal getComissaoPagar() {
|
||||
return comissaoPagar;
|
||||
|
@ -121,4 +124,20 @@ public class RegistroCalculo {
|
|||
return "RegistroCalculo [comissaoPagar=" + comissaoPagar + ", comissaoBPR=" + comissaoBPR + ", comissaoSegOpcional=" + comissaoSegOpcional + ", comissaoExcessoBagagem=" + comissaoExcessoBagagem + ", comissaoEntregaPassagem=" + comissaoEntregaPassagem + ", comissaoBonificaoMetas=" + comissaoBonificaoMetas + ", royaties=" + royaties + ", retidoISS=" + retidoISS + ", descontos=" + descontos + ", lsDescontos=" + lsDescontos + ", lsReceitas=" + lsReceitas + "]";
|
||||
}
|
||||
|
||||
public String getNombpuntoventa() {
|
||||
return nombpuntoventa;
|
||||
}
|
||||
|
||||
public void setNombpuntoventa(String nombpuntoventa) {
|
||||
this.nombpuntoventa = nombpuntoventa;
|
||||
}
|
||||
|
||||
public String getNumPuntoVenta() {
|
||||
return numPuntoVenta;
|
||||
}
|
||||
|
||||
public void setNumPuntoVenta(String numPuntoVenta) {
|
||||
this.numPuntoVenta = numPuntoVenta;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue