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 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 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);
}

View File

@ -130,7 +130,7 @@ public class AidfHibernateDAO extends GenericHibernateDAO<Aidf, Long> implements
if (especieId != null) {
c.add(Restrictions.eq("aidfEspecie.aidfespId", especieId));
}
return c.list().isEmpty();
}
@ -153,19 +153,22 @@ public class AidfHibernateDAO extends GenericHibernateDAO<Aidf, Long> implements
return (List<Aidf>) query.list();
}
public String buscaUltimoAidfRMDUtilizado(Long idAidf) {
public String buscaUltimoAidfRMDUtilizado(Long idAidf, Integer empresaId, Integer estadoId) {
StringBuilder sb = new StringBuilder();
sb.append(" select max(foliormd) ");
sb.append(" from boleto ");
sb.append(" where activo = :activo ");
sb.append(" and rmd_id = :rmdId ");
sb.append(" select to_char( to_number(max(b.foliormd) + 1 ) ) ");
sb.append(" from boleto b ");
sb.append(" inner join marca m on b.marca_id = m.marca_id ");
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.setBoolean("activo", Boolean.TRUE);
query.setLong("rmdId", idAidf);
query.setInteger("empresaId", empresaId);
query.setInteger("estadoId", estadoId);
return (String) query.uniqueResult();
}
}

View File

@ -17,6 +17,7 @@ import java.util.Map;
import javax.sql.DataSource;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.NumberUtils;
import org.apache.log4j.Logger;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
@ -1507,7 +1508,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
sb.append(" having sum(totalvenda) > 0");
sb.append(" group by ecf, numserie, datamov, cooinicial, coofinal, crz, cro, coo, codestabelecimento, codestabelecimentoimpressora, numeroidentificacao, estadoorigem");
sb.append(" order by datamov");
try {
PreparedStatement ps = connection.prepareStatement(sb.toString());
ps.setString(1, DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL));
@ -1534,7 +1535,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
if (rs.getBigDecimal("totalvenda") != null) {
totalvenda = rs.getBigDecimal("totalvenda");
}
registro = new ExportacaoECFTipoCFC();
registro.setEstabelecimento(rs.getString("codestabelecimento"));
registro.setDataEmissao(rs.getString("datamov"));
@ -1683,7 +1684,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
while (rs.next()) {
BigDecimal valorTributado = BigDecimal.ZERO;
if (rs.getString("valortarifa") != null) {
valorTributado = BigDecimal.valueOf(Double.valueOf(rs.getString("valortarifa")));
} else {
@ -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)
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 porc_red_municipal = rs.getBigDecimal("porc_red_municipal");
// BigDecimal porc_red_estadual = rs.getBigDecimal("porc_red_estadual");
// BigDecimal porc_red_municipal = rs.getBigDecimal("porc_red_municipal");
// BigDecimal porc_red_estadual = rs.getBigDecimal("porc_red_estadual");
BigDecimal tributacao_importacao = rs.getBigDecimal("tributacao_importacao");
BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO;
@ -2153,10 +2154,10 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
while (rs.next()) {
BigDecimal valorTotal = rs.getBigDecimal("valortotal");
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_estadual = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_estadual"));
// BigDecimal porc_red_municipal = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_municipal"));
// BigDecimal porc_red_estadual = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_estadual"));
BigDecimal tributacao_importacao = MoneyHelper.instanciar(rs.getBigDecimal("tributacao_importacao"));
BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO;
@ -2951,20 +2952,136 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
}
@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;
for (DetalhadoRMD brp : buscarRegistroImpressaoBPR(connection, inicio, fim, empresaId, cveestado, aidf.getAidfId(), folio, false, false, true)) {
List<String> boletos = new ArrayList<String>();
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();
PreparedStatement pstmt = null;
try {
sb.append(" update boleto set rmd_id = ").append(def).append(", ");
sb.append(" foliormd = ").append(def).append(", ");
sb.append(" update boleto set rmd_id = ").append(rmdId).append(", ");
sb.append(" foliormd = ").append(folio).append(", ");
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.executeUpdate();
} catch (Exception 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
public List<ImpressaoRMD> getRegistroImpressaoRMDTipoBPR(Connection connection, Date inicio, Date fim, Integer empresaId,
String cveestado, String rmd, String folio) {
@ -3160,14 +3238,14 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
List<DetalhadoRMD> list = new ArrayList<DetalhadoRMD>();
try {
String sql = null;
if (isECF) {
if (isECF && !isCancelamento) {
sql = getSqlImpressaoRMDTipoECF();
} else if (isManual) {
} else if (isManual && !isCancelamento) {
sql = getSqlImpressaoRMDTipoBPR();
} else if (isCancelamento) {
sql = getSqlCancelarRMDTipoECF();
sql = getSqlCancelarRMDTipoECF(isManual, isECF);
}
PreparedStatement ps = connection.prepareStatement(sql);
@ -3185,7 +3263,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
if (isCancelamento) {
ps.setLong(5, rmdId);
ps.setString(6, foliormd);
ps.setLong(6, NumberUtils.toLong(foliormd));
}
ResultSet rs = ps.executeQuery();
@ -3222,7 +3300,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
brp.setNombPuntoVenta(rs.getString("nombPuntoVenta"));
brp.setNumPuntoVenta(rs.getString("numPuntoVenta"));
if (isECF) {
if (isECF && !isCancelamento) {
brp.setEcf(rs.getString("ecf"));
brp.setDatamov(rs.getString("datamov"));
brp.setCoo(rs.getString("cooredz"));
@ -3423,7 +3501,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
return sql.toString();
}
private String getSqlCancelarRMDTipoECF() {
private String getSqlCancelarRMDTipoECF(boolean isManual, boolean isECF) {
StringBuilder sql = new StringBuilder();
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.importeoutros, 0) as outros ");
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 ciudad ce on ce.ciudad_id = e.ciudad_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 ciudad cds on cds.ciudad_id = pds.ciudad_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(" 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(" 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(" THEN eo.estado_id ELSE eos.estado_id END) ");
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 b.rmd_id = ? ");
sql.append(" and b.foliormd = ? ");

View File

@ -40,5 +40,5 @@ public interface AidfService {
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 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);
}

View File

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

View File

@ -113,11 +113,12 @@ public class FiscalServiceImpl implements FiscalService {
}
@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;
try {
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) {
log.error(e.getMessage(), e);
} finally {
@ -978,7 +979,7 @@ public class FiscalServiceImpl implements FiscalService {
String tempo = null;
Long begin = 0L;
begin = Calendar.getInstance().getTimeInMillis();
log.info("Buscando os registros PAR");
List<ExportacaoRMDTipoPAR> listaRegistroRMDTipoPAR = fiscalDAO.buscarRegistroRMDTipoPAR(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado());

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;
}
}