julio 2017-08-20 16:13:35 +00:00
parent 1b44ae2c59
commit 6b8f4836bb
9 changed files with 262 additions and 83 deletions

View File

@ -18,6 +18,6 @@ public interface AidfDAO extends GenericDAO<Aidf, Long> {
public List<Aidf> buscaAidfRMD(Integer empresaId, Integer estadoId); public List<Aidf> buscaAidfRMD(Integer empresaId, Integer estadoId);
public String buscaUltimoAidfRMDUtilizado(Long idAidf); public String buscaUltimoAidfRMDUtilizado(Long idAidf, Integer empresaId, Integer estadoId);
} }

View File

@ -60,7 +60,7 @@ public interface FiscalDAO {
public void gravarRMDBoleto(Connection connection, List<ImpressaoRMD> rmds, Aidf aidf, String folio); public void gravarRMDBoleto(Connection connection, List<ImpressaoRMD> rmds, Aidf aidf, String folio);
public void cancelarRMDBoleto(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado, Aidf aidf, String folio); public void cancelarRMDBoleto(Connection connection, Date inicio, Date fim, Integer empresaId, Estado estado, Aidf aidf, String folio, boolean isCancela, boolean isInativa, boolean isECF, boolean isBPR);
public List<FiscalRdi> buscarRelatorioRDI(Connection connection, Date inicio, Date fim, Integer empresaId, List<Estado> estados, boolean isReceitaTerceiros); public List<FiscalRdi> buscarRelatorioRDI(Connection connection, Date inicio, Date fim, Integer empresaId, List<Estado> estados, boolean isReceitaTerceiros);
} }

View File

@ -153,19 +153,22 @@ public class AidfHibernateDAO extends GenericHibernateDAO<Aidf, Long> implements
return (List<Aidf>) query.list(); return (List<Aidf>) query.list();
} }
public String buscaUltimoAidfRMDUtilizado(Long idAidf) { public String buscaUltimoAidfRMDUtilizado(Long idAidf, Integer empresaId, Integer estadoId) {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append(" select max(foliormd) "); sb.append(" select to_char( to_number(max(b.foliormd) + 1 ) ) ");
sb.append(" from boleto "); sb.append(" from boleto b ");
sb.append(" where activo = :activo "); sb.append(" inner join marca m on b.marca_id = m.marca_id ");
sb.append(" and rmd_id = :rmdId "); sb.append(" inner join parada po on po.parada_id = b.origen_id ");
sb.append(" inner join ciudad co on co.ciudad_id = po.ciudad_id ");
sb.append(" where m.empresa_id = :empresaId ");
sb.append(" and b.rmd_id = :rmdId ");
sb.append(" and co.estado_id = :estadoId ");
Query query = getSession().createSQLQuery(sb.toString()); Query query = getSession().createSQLQuery(sb.toString());
query.setBoolean("activo", Boolean.TRUE);
query.setLong("rmdId", idAidf); query.setLong("rmdId", idAidf);
query.setInteger("empresaId", empresaId);
query.setInteger("estadoId", estadoId);
return (String) query.uniqueResult(); return (String) query.uniqueResult();
} }
} }

View File

@ -17,6 +17,7 @@ import java.util.Map;
import javax.sql.DataSource; import javax.sql.DataSource;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.NumberUtils;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.hibernate.Session; import org.hibernate.Session;
import org.hibernate.SessionFactory; import org.hibernate.SessionFactory;
@ -1727,11 +1728,11 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
} }
// TODO: Mudança para o valor tributado (Email no dia 9 de agosto de 2017 08:28) // TODO: Mudança para o valor tributado (Email no dia 9 de agosto de 2017 08:28)
BigDecimal valorTotal = valorTributado; //BigDecimal.valueOf(Double.valueOf(rs.getString("valortotal"))); BigDecimal valorTotal = valorTributado; // BigDecimal.valueOf(Double.valueOf(rs.getString("valortotal")));
BigDecimal red_base_calc_icms = rs.getBigDecimal("red_base_calc_icms"); BigDecimal red_base_calc_icms = rs.getBigDecimal("red_base_calc_icms");
// BigDecimal porc_red_municipal = rs.getBigDecimal("porc_red_municipal"); // BigDecimal porc_red_municipal = rs.getBigDecimal("porc_red_municipal");
// BigDecimal porc_red_estadual = rs.getBigDecimal("porc_red_estadual"); // BigDecimal porc_red_estadual = rs.getBigDecimal("porc_red_estadual");
BigDecimal tributacao_importacao = rs.getBigDecimal("tributacao_importacao"); BigDecimal tributacao_importacao = rs.getBigDecimal("tributacao_importacao");
BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO; BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO;
@ -2155,8 +2156,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
BigDecimal valorTotal = rs.getBigDecimal("valortotal"); BigDecimal valorTotal = rs.getBigDecimal("valortotal");
BigDecimal red_base_calc_icms = MoneyHelper.instanciar(rs.getBigDecimal("red_base_calc_icms")); BigDecimal red_base_calc_icms = MoneyHelper.instanciar(rs.getBigDecimal("red_base_calc_icms"));
// BigDecimal porc_red_municipal = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_municipal")); // BigDecimal porc_red_municipal = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_municipal"));
// BigDecimal porc_red_estadual = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_estadual")); // BigDecimal porc_red_estadual = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_estadual"));
BigDecimal tributacao_importacao = MoneyHelper.instanciar(rs.getBigDecimal("tributacao_importacao")); BigDecimal tributacao_importacao = MoneyHelper.instanciar(rs.getBigDecimal("tributacao_importacao"));
BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO; BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO;
@ -2951,20 +2952,136 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
} }
@Override @Override
public void cancelarRMDBoleto(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado, Aidf aidf, String folio) { public void cancelarRMDBoleto(Connection connection, Date inicio, Date fim, Integer empresaId, Estado estado, Aidf aidf,
String folio, boolean isCancela, boolean isInativa, boolean isECF, boolean isBPR) {
String def = null; List<String> boletos = new ArrayList<String>();
for (DetalhadoRMD brp : buscarRegistroImpressaoBPR(connection, inicio, fim, empresaId, cveestado, aidf.getAidfId(), folio, false, false, true)) { String boletoAgr = null;
int cont = 0;
for (DetalhadoRMD brp : buscarRegistroImpressaoBPR(connection, inicio, fim, empresaId, estado.getCveestado(), aidf.getAidfId(), folio, isBPR, isECF, true)) {
if (cont == 999) {
boletos.add(boletoAgr);
boletoAgr = null;
cont = 0;
}
if (boletoAgr == null)
boletoAgr = brp.getBoletoId().toString();
else
boletoAgr = boletoAgr + " ," + brp.getBoletoId();
cont++;
}
boletos.add(boletoAgr);
PreparedStatement pstmt = null;
try {
StringBuilder sb = new StringBuilder();
sb.append(" insert into FOLIO_CONSUMO_RMD (FOLIOCONSUMORMD_ID, RMD_ID, FOLIO, ");
sb.append(" EMPRESA_ID, ESTADO_ID, INDCANCELACION, INDINACTIVO, FECHORFOLIO, ");
sb.append(" INDECF, INDBPR, ACTIVO, FECMODIF, USUARIO_ID) ");
sb.append(" values (").append("FOLIO_CONSUMO_RMD_SEQ.NEXTVAL").append(",");
sb.append(aidf.getAidfId()).append(",").append(folio).append(",");
sb.append(empresaId).append(",").append(estado.getEstadoId()).append(",");
if (isCancela)
sb.append(1).append(",").append(0).append(",");
else
sb.append(0).append(",").append(1).append(",");
sb.append("?").append(",");
if (isECF)
sb.append(1).append(",").append(0).append(",");
else
sb.append(0).append(",").append(1).append(",");
sb.append(1).append(",").append("SYSDATE").append(",").append(UsuarioLogado.getUsuarioLogado().getUsuarioId()).append(")");
pstmt = connection.prepareStatement(sb.toString());
pstmt.setTimestamp(1, new java.sql.Timestamp(DateUtil.inicioFecha(inicio).getTime()));
pstmt.executeUpdate();
} catch (Exception e) {
log.error("", e);
} finally {
try {
pstmt.close();
} catch (Exception e) {
log.error("", e);
}
}
marcarRMDBoletos(connection, boletos, null, null);
}
@Override
public void gravarRMDBoleto(Connection connection, List<ImpressaoRMD> rmds, Aidf aidf, String folio) {
int cont = 0;
int rmdIterate = Integer.parseInt(folio);
rmdIterate = rmdIterate - 1;
String boletoAgr = null;
List<String> boletos = new ArrayList<String>();
int contBolto = 0;
for (ImpressaoRMD imp : rmds) {
// Numero maximo de itens na folha do RMD
if (cont == 23) {
// add primeiro ou ultimo na lista de insercao dos boletos
boletos.add(boletoAgr);
// incrementa na contagem dos folios na impressao do RMD
rmdIterate++;
cont = 0;
marcarRMDBoletos(connection, boletos, aidf.getAidfId(), rmdIterate);
// limpa a lista de inseções do boleto
boletos = new ArrayList<String>();
boletoAgr = null;
contBolto = 0;
}
for (DetalhadoRMD det : imp.getDetalhada()) {
if (contBolto == 999) {
boletos.add(boletoAgr);
boletoAgr = null;
contBolto = 0;
}
if (boletoAgr == null)
boletoAgr = det.getBoletoId().toString();
else
boletoAgr = boletoAgr + " ," + det.getBoletoId();
contBolto++;
}
cont++;
}
rmdIterate++;
boletos.add(boletoAgr);
marcarRMDBoletos(connection, boletos, aidf.getAidfId(), rmdIterate);
}
private void marcarRMDBoletos(Connection connection, List<String> boletos, Long rmdId, Integer folio) {
for (String bs : boletos) {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
PreparedStatement pstmt = null; PreparedStatement pstmt = null;
try { try {
sb.append(" update boleto set rmd_id = ").append(def).append(", "); sb.append(" update boleto set rmd_id = ").append(rmdId).append(", ");
sb.append(" foliormd = ").append(def).append(", "); sb.append(" foliormd = ").append(folio).append(", ");
sb.append(" fecmodif = SYSDATE, usuario_id = ").append(UsuarioLogado.getUsuarioLogado().getUsuarioId()); sb.append(" fecmodif = SYSDATE, usuario_id = ").append(UsuarioLogado.getUsuarioLogado().getUsuarioId());
sb.append(" where boleto_id = ").append(brp.getBoletoId()); sb.append(" where boleto_id in ( ").append(bs).append(" ) ");
pstmt = connection.prepareStatement(sb.toString()); pstmt = connection.prepareStatement(sb.toString());
pstmt.executeUpdate(); pstmt.executeUpdate();
} catch (Exception e) { } catch (Exception e) {
log.error("", e); log.error("", e);
@ -2978,45 +3095,6 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
} }
} }
@Override
public void gravarRMDBoleto(Connection connection, List<ImpressaoRMD> rmds, Aidf aidf, String folio) {
int cont = 0;
int rmdIterate = Integer.parseInt(folio);
for (ImpressaoRMD imp : rmds) {
if (cont > 28) {
rmdIterate++;
cont = 0;
}
for (DetalhadoRMD det : imp.getDetalhada()) {
StringBuilder sb = new StringBuilder();
PreparedStatement pstmt = null;
try {
sb.append(" update boleto set rmd_id = ").append(aidf.getAidfId()).append(", ");
sb.append(" foliormd = ").append(rmdIterate).append(", ");
sb.append(" fecmodif = SYSDATE, usuario_id = ").append(UsuarioLogado.getUsuarioLogado().getUsuarioId());
sb.append(" where boleto_id = ").append(det.getBoletoId());
pstmt = connection.prepareStatement(sb.toString());
pstmt.executeUpdate();
} catch (Exception e) {
log.error("", e);
} finally {
try {
pstmt.close();
} catch (Exception e) {
log.error("", e);
}
}
}
cont++;
}
}
@Override @Override
public List<ImpressaoRMD> getRegistroImpressaoRMDTipoBPR(Connection connection, Date inicio, Date fim, Integer empresaId, public List<ImpressaoRMD> getRegistroImpressaoRMDTipoBPR(Connection connection, Date inicio, Date fim, Integer empresaId,
String cveestado, String rmd, String folio) { String cveestado, String rmd, String folio) {
@ -3160,14 +3238,14 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
List<DetalhadoRMD> list = new ArrayList<DetalhadoRMD>(); List<DetalhadoRMD> list = new ArrayList<DetalhadoRMD>();
try { try {
String sql = null; String sql = null;
if (isECF) { if (isECF && !isCancelamento) {
sql = getSqlImpressaoRMDTipoECF(); sql = getSqlImpressaoRMDTipoECF();
} else if (isManual) { } else if (isManual && !isCancelamento) {
sql = getSqlImpressaoRMDTipoBPR(); sql = getSqlImpressaoRMDTipoBPR();
} else if (isCancelamento) { } else if (isCancelamento) {
sql = getSqlCancelarRMDTipoECF(); sql = getSqlCancelarRMDTipoECF(isManual, isECF);
} }
PreparedStatement ps = connection.prepareStatement(sql); PreparedStatement ps = connection.prepareStatement(sql);
@ -3185,7 +3263,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
if (isCancelamento) { if (isCancelamento) {
ps.setLong(5, rmdId); ps.setLong(5, rmdId);
ps.setString(6, foliormd); ps.setLong(6, NumberUtils.toLong(foliormd));
} }
ResultSet rs = ps.executeQuery(); ResultSet rs = ps.executeQuery();
@ -3222,7 +3300,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
brp.setNombPuntoVenta(rs.getString("nombPuntoVenta")); brp.setNombPuntoVenta(rs.getString("nombPuntoVenta"));
brp.setNumPuntoVenta(rs.getString("numPuntoVenta")); brp.setNumPuntoVenta(rs.getString("numPuntoVenta"));
if (isECF) { if (isECF && !isCancelamento) {
brp.setEcf(rs.getString("ecf")); brp.setEcf(rs.getString("ecf"));
brp.setDatamov(rs.getString("datamov")); brp.setDatamov(rs.getString("datamov"));
brp.setCoo(rs.getString("cooredz")); brp.setCoo(rs.getString("cooredz"));
@ -3423,7 +3501,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
return sql.toString(); return sql.toString();
} }
private String getSqlCancelarRMDTipoECF() { private String getSqlCancelarRMDTipoECF(boolean isManual, boolean isECF) {
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
sql.append("select "); sql.append("select ");
@ -3466,7 +3544,12 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
sql.append(" coalesce(b.importeseguro, 0) as seguro, "); sql.append(" coalesce(b.importeseguro, 0) as seguro, ");
sql.append(" coalesce(b.importeoutros, 0) as outros "); sql.append(" coalesce(b.importeoutros, 0) as outros ");
sql.append("from boleto b "); sql.append("from boleto b ");
sql.append(" join empresa e on e.empresa_id = b.empresacorrida_id ");
sql.append(isECF ? " join fiscal_r4 r4 on b.boleto_id = r4.boleto_id " : "");
sql.append(isECF ? " join fiscal_r2 r2 on r4.numserie20 = r2.numserie20 and r4.datamov = r2.datamov " : "");
sql.append(" inner join marca m on b.marca_id = m.marca_id ");
sql.append(" inner join empresa e on e.empresa_id = m.empresa_id ");
sql.append(" join punto_venta pv on pv.puntoventa_id = b.puntoventa_id "); sql.append(" join punto_venta pv on pv.puntoventa_id = b.puntoventa_id ");
sql.append(" join ciudad ce on ce.ciudad_id = e.ciudad_id "); sql.append(" join ciudad ce on ce.ciudad_id = e.ciudad_id ");
sql.append(" join estado ee on ee.estado_id = ce.estado_id "); sql.append(" join estado ee on ee.estado_id = ce.estado_id ");
@ -3485,15 +3568,18 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
sql.append(" left join parada pds on pds.parada_id = s.aliasdestino_id "); sql.append(" left join parada pds on pds.parada_id = s.aliasdestino_id ");
sql.append(" left join ciudad cds on cds.ciudad_id = pds.ciudad_id "); sql.append(" left join ciudad cds on cds.ciudad_id = pds.ciudad_id ");
sql.append(" left join estado eds on eds.estado_id = cds.estado_id "); sql.append(" left join estado eds on eds.estado_id = cds.estado_id ");
sql.append(" join inscricao_estadual ie on e.empresa_id = ie.empresa_id "); sql.append(" left join inscricao_estadual ie on e.empresa_id = ie.empresa_id ");
sql.append(" and ie.estado_id = coalesce(eos.estado_id, eo.estado_id) and ie.activo = 1 "); sql.append(" and ie.estado_id = coalesce(eos.estado_id, eo.estado_id) and ie.activo = 1 ");
sql.append(" join empresa_imposto ei on ei.empresa_id = b.empresacorrida_id "); sql.append(" left join empresa_imposto ei on ei.empresa_id = b.empresacorrida_id ");
sql.append(" and ei.estado_id = coalesce(eos.estado_id, eo.estado_id) and ei.activo = 1 "); sql.append(" and ei.estado_id = coalesce(eos.estado_id, eo.estado_id) and ei.activo = 1 ");
sql.append(" left join aidf a on a.serie = substr(b.numseriepreimpresa, 1, 3) "); sql.append(" left join aidf a on a.serie = substr(b.numseriepreimpresa, 1, 3) ");
sql.append(" and a.estado_id = (CASE WHEN s.aliasorigen_id IS NULL "); sql.append(" and a.estado_id = (CASE WHEN s.aliasorigen_id IS NULL ");
sql.append(" THEN eo.estado_id ELSE eos.estado_id END) "); sql.append(" THEN eo.estado_id ELSE eos.estado_id END) ");
sql.append("where e.empresa_id = ? "); sql.append("where e.empresa_id = ? ");
sql.append(" and b.fechorventa between ? and ? ");
sql.append(isECF ? " and r4.datamov between ? and ? " : "");
sql.append(isManual ? " and b.fechorventa between ? and ? " : "");
sql.append(" and coalesce(eos.cveestado, eo.cveestado) = ? "); sql.append(" and coalesce(eos.cveestado, eo.cveestado) = ? ");
sql.append(" and b.rmd_id = ? "); sql.append(" and b.rmd_id = ? ");
sql.append(" and b.foliormd = ? "); sql.append(" and b.foliormd = ? ");

View File

@ -40,5 +40,5 @@ public interface AidfService {
public List<Aidf> buscaAidfRMD(Integer empresaId, Integer estadoId); public List<Aidf> buscaAidfRMD(Integer empresaId, Integer estadoId);
public String buscaUltimoAidfRMDUtilizado(Long idAidf); public String buscaUltimoAidfRMDUtilizado(Long idAidf, Integer empresaId, Integer estadoId);
} }

View File

@ -53,7 +53,7 @@ public interface FiscalService {
public void gravarRMDBoleto(List<ImpressaoRMD> rmds, Aidf aidf, String folio); public void gravarRMDBoleto(List<ImpressaoRMD> rmds, Aidf aidf, String folio);
public void cancelarRMDBoleto(Date inicio, Date fim, Empresa empresa, Estado estado, Aidf aidf, String folio); public void cancelarRMDBoleto(Date inicio, Date fim, Empresa empresa, Estado estado, Aidf aidf, String folio, boolean isCancela, boolean isInativa, boolean isECF, boolean isBPR);
public List<FiscalRdi> buscarRelatorioRDI(Date inicio, Date fim, Empresa empresa, List<Estado> estados, boolean isReceitaTerceiros); public List<FiscalRdi> buscarRelatorioRDI(Date inicio, Date fim, Empresa empresa, List<Estado> estados, boolean isReceitaTerceiros);
} }

View File

@ -139,8 +139,8 @@ public class AidfServiceImpl implements AidfService {
} }
@Override @Override
public String buscaUltimoAidfRMDUtilizado(Long idAidf) { public String buscaUltimoAidfRMDUtilizado(Long idAidf, Integer empresaId, Integer estadoId) {
return aidfDAO.buscaUltimoAidfRMDUtilizado(idAidf); return aidfDAO.buscaUltimoAidfRMDUtilizado(idAidf, empresaId, estadoId);
} }
} }

View File

@ -113,11 +113,12 @@ public class FiscalServiceImpl implements FiscalService {
} }
@Override @Override
public void cancelarRMDBoleto(Date inicio, Date fim, Empresa empresa, Estado estado, Aidf aidf, String folio) { public void cancelarRMDBoleto(Date inicio, Date fim, Empresa empresa, Estado estado, Aidf aidf, String folio, boolean isCancela, boolean isInativa, boolean isECF, boolean isBPR) {
Connection connection = null; Connection connection = null;
try { try {
connection = getConnection(); connection = getConnection();
fiscalDAO.cancelarRMDBoleto(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado(), aidf, folio); fiscalDAO.cancelarRMDBoleto(connection, inicio, fim, empresa.getEmpresaId(), estado, aidf, folio, isCancela,
isInativa, isECF, isBPR);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
} finally { } finally {

View File

@ -0,0 +1,89 @@
package com.rjconsultores.ventaboletos.utilerias.impressaormd.vo;
import java.util.Date;
public class FolioRMD {
private String foliormd;
private String status;
private String fechorfolio;
private String empresa;
private String uf;
private String estado;
private String tipo;
private Date fechorfolioDate;
private String doc;
public String getFoliormd() {
return foliormd;
}
public void setFoliormd(String foliormd) {
this.foliormd = foliormd;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getFechorfolio() {
return fechorfolio;
}
public void setFechorfolio(String fechorfolio) {
this.fechorfolio = fechorfolio;
}
public String getEmpresa() {
return empresa;
}
public void setEmpresa(String empresa) {
this.empresa = empresa;
}
public String getUf() {
return uf;
}
public void setUf(String uf) {
this.uf = uf;
}
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
public Date getFechorfolioDate() {
return fechorfolioDate;
}
public void setFechorfolioDate(Date fechorfolioDate) {
this.fechorfolioDate = fechorfolioDate;
}
public String getDoc() {
return doc;
}
public void setDoc(String doc) {
this.doc = doc;
}
}