julio 2016-05-30 20:24:14 +00:00
parent 020adf0561
commit 30843a50e6
3 changed files with 132 additions and 94 deletions

View File

@ -9,7 +9,6 @@ import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import com.rjconsultores.ventaboletos.dao.FiscalDAO; import com.rjconsultores.ventaboletos.dao.FiscalDAO;
@ -26,7 +25,7 @@ import com.rjconsultores.ventaboletos.vo.impressaofiscal.SituacaoTributaria;
@Repository("fiscalDAO") @Repository("fiscalDAO")
public class FiscalHibernateDAO implements FiscalDAO { public class FiscalHibernateDAO implements FiscalDAO {
private static Logger log = Logger.getLogger(FiscalHibernateDAO.class); // private static Logger log = Logger.getLogger(FiscalHibernateDAO.class);
public static final String DATE_FORMAT_FISCAL = "yyyyMMdd"; public static final String DATE_FORMAT_FISCAL = "yyyyMMdd";
@ -35,7 +34,7 @@ public class FiscalHibernateDAO implements FiscalDAO {
} }
@Override @Override
public List<ImportacionManualFiscalVO> buscaDatosFiscaisECFManual(Date inicio, Date fim, Integer empresaId,Connection connection) throws SQLException { public List<ImportacionManualFiscalVO> buscaDatosFiscaisECFManual(Date inicio, Date fim, Integer empresaId, Connection connection) throws SQLException {
PreparedStatement stmt = null; PreparedStatement stmt = null;
ResultSet rset = null; ResultSet rset = null;
@ -189,7 +188,6 @@ public class FiscalHibernateDAO implements FiscalDAO {
return listManuais; return listManuais;
} }
@Override @Override
@ -197,7 +195,6 @@ public class FiscalHibernateDAO implements FiscalDAO {
PreparedStatement stmt = null; PreparedStatement stmt = null;
ResultSet rset = null; ResultSet rset = null;
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
sql.append("SELECT r2.datamov AS datamov, "); sql.append("SELECT r2.datamov AS datamov, ");
sql.append(" r2.numreducoes AS numreducoes, "); sql.append(" r2.numreducoes AS numreducoes, ");
@ -294,7 +291,6 @@ public class FiscalHibernateDAO implements FiscalDAO {
return listRedZ; return listRedZ;
} }
public String sqlFiscaisECFCancelados() { public String sqlFiscaisECFCancelados() {
@ -330,10 +326,9 @@ public class FiscalHibernateDAO implements FiscalDAO {
sql.append(" cs.descclase as claseServicio, "); sql.append(" cs.descclase as claseServicio, ");
sql.append(" translate(fi.numcnpj, ' / - . ', ' ') as cnpjEcf "); sql.append(" translate(fi.numcnpj, ' / - . ', ' ') as cnpjEcf ");
sql.append(" FROM fiscal_r4 r4 "); sql.append(" FROM fiscal_r4 r4 ");
sql.append(" INNER JOIN fiscal_r5 r5 ON r4.numserie20 = r5.numserie20 AND r4.coo = r5.coo "); sql.append(" LEFT JOIN fiscal_r5 r5 ON r4.numserie20 = r5.numserie20 AND r4.coo = r5.coo ");
sql.append(" AND r4.datamov = r5.datamov AND r4.contador = r5.contador "); sql.append(" AND r4.datamov = r5.datamov AND r4.contador = r5.contador ");
sql.append(" INNER JOIN fiscal_impressora fi ON fi.numserie20 = r4.numserie20 "); sql.append(" INNER JOIN fiscal_impressora fi ON fi.numserie20 = r4.numserie20 ");
sql.append(" AND fi.fiscalimpressora_id = r5.fiscalimpressora_id ");
sql.append(" INNER JOIN boleto b ON b.boleto_id = r4.boleto_id "); sql.append(" INNER JOIN boleto b ON b.boleto_id = r4.boleto_id ");
sql.append(" INNER JOIN clase_servicio cs ON cs.claseservicio_id = b.claseservicio_id "); sql.append(" INNER JOIN clase_servicio cs ON cs.claseservicio_id = b.claseservicio_id ");
sql.append(" LEFT JOIN evento_extra ee on ee.boleto_id = b.boleto_id and ee.tipoeventoextra_id in (42) "); sql.append(" LEFT JOIN evento_extra ee on ee.boleto_id = b.boleto_id and ee.tipoeventoextra_id in (42) ");
@ -417,10 +412,9 @@ public class FiscalHibernateDAO implements FiscalDAO {
sql.append(" translate(fi.numcnpj, ' / - . ', ' ') as cnpjEcf, "); sql.append(" translate(fi.numcnpj, ' / - . ', ' ') as cnpjEcf, ");
sql.append(" 'N' as status "); sql.append(" 'N' as status ");
sql.append(" FROM fiscal_r4 r4 "); sql.append(" FROM fiscal_r4 r4 ");
sql.append(" INNER JOIN fiscal_r5 r5 ON r4.numserie20 = r5.numserie20 AND r4.coo = r5.coo "); sql.append(" LEFT JOIN fiscal_r5 r5 ON r4.numserie20 = r5.numserie20 AND r4.coo = r5.coo ");
sql.append(" AND r4.datamov = r5.datamov AND r4.contador = r5.contador "); sql.append(" AND r4.datamov = r5.datamov AND r4.contador = r5.contador ");
sql.append(" INNER JOIN fiscal_impressora fi ON fi.numserie20 = r4.numserie20 "); sql.append(" LEFT JOIN fiscal_impressora fi ON fi.numserie20 = r4.numserie20 ");
sql.append(" AND fi.fiscalimpressora_id = r5.fiscalimpressora_id ");
sql.append(" INNER JOIN boleto b ON b.boleto_id = r4.boleto_id "); sql.append(" INNER JOIN boleto b ON b.boleto_id = r4.boleto_id ");
sql.append(" INNER JOIN clase_servicio cs ON cs.claseservicio_id = b.claseservicio_id "); sql.append(" INNER JOIN clase_servicio cs ON cs.claseservicio_id = b.claseservicio_id ");
sql.append(" LEFT JOIN alias_servico ase ON ase.origen_id = b.origen_id "); sql.append(" LEFT JOIN alias_servico ase ON ase.origen_id = b.origen_id ");
@ -433,7 +427,10 @@ public class FiscalHibernateDAO implements FiscalDAO {
sql.append(" INNER JOIN estado ed ON ed.estado_id = cd.estado_id "); sql.append(" INNER JOIN estado ed ON ed.estado_id = cd.estado_id ");
sql.append(" WHERE r4.datamov BETWEEN ? AND ? "); sql.append(" WHERE r4.datamov BETWEEN ? AND ? ");
sql.append(" AND b.marca_id = ? "); sql.append(" AND b.marca_id = ? ");
sql.append(" AND r4.indcancelamento = 'N' "); sql.append(" AND (r4.indcancelamento = 'N' OR (r4.indcancelamento = 'S' AND ");
sql.append(" (SELECT r3.numserie20 FROM fiscal_r3 r3 ");
sql.append(" WHERE r3.numserie20 = r4.numserie20 AND r3.datamov = r4.datamov ");
sql.append(" AND r3.totparcial = 'Can-T') IS NULL) ) ");
sql.append(" GROUP BY r4.numserie20, "); sql.append(" GROUP BY r4.numserie20, ");
sql.append(" r4.coo, "); sql.append(" r4.coo, ");
sql.append(" r4.datainicialemissao, "); sql.append(" r4.datainicialemissao, ");
@ -469,12 +466,10 @@ public class FiscalHibernateDAO implements FiscalDAO {
} }
@Override @Override
public List<ImportacionFiscalVO> buscaDatosFiscaisECF(Date inicio, Date fim, Integer empresaId, boolean isCancelados,Connection connection) throws SQLException { public List<ImportacionFiscalVO> buscaDatosFiscaisECF(Date inicio, Date fim, Integer empresaId, boolean isCancelados, Connection connection) throws SQLException {
PreparedStatement stmt = null; PreparedStatement stmt = null;
ResultSet rset = null; ResultSet rset = null;
String sql = isCancelados ? sqlFiscaisECFCancelados() : sqlFiscaisECF(); String sql = isCancelados ? sqlFiscaisECFCancelados() : sqlFiscaisECF();
stmt = connection.prepareStatement(sql); stmt = connection.prepareStatement(sql);
stmt.setFetchSize(100); stmt.setFetchSize(100);
@ -528,7 +523,12 @@ public class FiscalHibernateDAO implements FiscalDAO {
ImportacionFiscalVO novoFiscal = item; ImportacionFiscalVO novoFiscal = item;
codProduto = item.getCodProduto(); codProduto = item.getCodProduto();
if (codProduto != null) {
codProduto = codProduto.toString().replace("-", "").replace("TA", "").replace("TX", "").replace("PE", "").replace("SE", ""); codProduto = codProduto.toString().replace("-", "").replace("TA", "").replace("TX", "").replace("PE", "").replace("SE", "");
} else {
String boleto = item.getBoletoId().toString();
codProduto = boleto.substring(boleto.length() - 8) + "F" + boleto.substring(boleto.length() - 2);
}
if (fiscal == null) { if (fiscal == null) {
fiscal = item; fiscal = item;
@ -573,11 +573,14 @@ public class FiscalHibernateDAO implements FiscalDAO {
boolean pedagioCriada = false; boolean pedagioCriada = false;
boolean embarqueCriada = false; boolean embarqueCriada = false;
boolean seguroCriada = false; boolean seguroCriada = false;
boolean inconsistencia = false;
List<ItemFiscalVO> itensFiscais = new ArrayList<ItemFiscalVO>(); List<ItemFiscalVO> itensFiscais = new ArrayList<ItemFiscalVO>();
for (ItemFiscalVO item : fiscal.getItensFiscais()) { for (ItemFiscalVO item : fiscal.getItensFiscais()) {
String codigoProduto = item.getCodProduto(); String codigoProduto = item.getCodProduto();
if (codigoProduto != null) {
if (codigoProduto.indexOf("TA") >= 0) if (codigoProduto.indexOf("TA") >= 0)
tarifaCriada = true; tarifaCriada = true;
@ -589,10 +592,29 @@ public class FiscalHibernateDAO implements FiscalDAO {
if (codigoProduto.indexOf("SE") >= 0) if (codigoProduto.indexOf("SE") >= 0)
seguroCriada = true; seguroCriada = true;
} else {
inconsistencia = true;
break;
}
itensFiscais.add(item); itensFiscais.add(item);
} }
if (inconsistencia) {
ItemFiscalVO novaInconsistencia = new ItemFiscalVO(fiscal);
novaInconsistencia.setInconsistencia(inconsistencia);
novaInconsistencia.setCodProduto(codProduto + "-TX");
novaInconsistencia.setTipoPassagem("E");
BigDecimal total = fiscal.getValorTarifa().add(fiscal.getValorPedagio()).add(fiscal.getValorEmbarque()).add(fiscal.getValorSeguro());
novaInconsistencia.setValorItem(total);
novaInconsistencia.setRepTributado("N1");
novaInconsistencia.setNumItem(StringHelper.preencherZeroEsquerda((1) + "", 3));
itensFiscais.add(novaInconsistencia);
} else {
int numeroItem = 1; int numeroItem = 1;
if (temTarifa && !tarifaCriada) { if (temTarifa && !tarifaCriada) {
ItemFiscalVO novoTarifa = new ItemFiscalVO(fiscal); ItemFiscalVO novoTarifa = new ItemFiscalVO(fiscal);
@ -635,6 +657,7 @@ public class FiscalHibernateDAO implements FiscalDAO {
itensFiscais.add(novoSeguro); itensFiscais.add(novoSeguro);
} }
}
return itensFiscais; return itensFiscais;
} }
@ -685,15 +708,13 @@ public class FiscalHibernateDAO implements FiscalDAO {
sb.append(" and c.corrida_id in (:corridaId) "); sb.append(" and c.corrida_id in (:corridaId) ");
sb.append(" and ROWNUM < 2 "); sb.append(" and ROWNUM < 2 ");
//FIXME - Implementar a inserção na base de dados. Atenção para checar se tem q ficar em transação ou não // FIXME - Implementar a inserção na base de dados. Atenção para checar se tem q ficar em transação ou não
// Query query = getSession().createSQLQuery(sb.toString()); // Query query = getSession().createSQLQuery(sb.toString());
// query.setParameterList("corridaId", idsCorrida); // query.setParameterList("corridaId", idsCorrida);
// query.setDate("datIni", new java.sql.Date(dataDe.getTime())); // query.setDate("datIni", new java.sql.Date(dataDe.getTime()));
// query.setDate("datFim", new java.sql.Date(dataAte.getTime())); // query.setDate("datFim", new java.sql.Date(dataAte.getTime()));
// return query.executeUpdate();
// return query.executeUpdate();
return 0; return 0;
} }
@ -735,13 +756,13 @@ public class FiscalHibernateDAO implements FiscalDAO {
sb.append(" and ROWNUM < 2 "); sb.append(" and ROWNUM < 2 ");
Integer[] idsCorrida = getIdsCorrida(lsEsquemaCorrida); Integer[] idsCorrida = getIdsCorrida(lsEsquemaCorrida);
//FIXME - Implementar a inserção na base de dados. Atenção para checar se tem q ficar em transação ou não // FIXME - Implementar a inserção na base de dados. Atenção para checar se tem q ficar em transação ou não
// Query query = getSession().createSQLQuery(sb.toString()); // Query query = getSession().createSQLQuery(sb.toString());
// query.setParameterList("corridaId", idsCorrida); // query.setParameterList("corridaId", idsCorrida);
// query.setDate("datIni", new java.sql.Date(dataDe.getTime())); // query.setDate("datIni", new java.sql.Date(dataDe.getTime()));
// query.setDate("datFim", new java.sql.Date(dataAte.getTime())); // query.setDate("datFim", new java.sql.Date(dataAte.getTime()));
// //
// return query.executeUpdate(); // return query.executeUpdate();
return 0; return 0;
} }
@ -754,12 +775,10 @@ public class FiscalHibernateDAO implements FiscalDAO {
} }
@Override @Override
public List<ImportacionNaoFiscalVO> buscaDatosNaoFiscais(Date inicio, Date fim, Integer empresaId,Connection connection) throws SQLException { public List<ImportacionNaoFiscalVO> buscaDatosNaoFiscais(Date inicio, Date fim, Integer empresaId, Connection connection) throws SQLException {
PreparedStatement stmt = null; PreparedStatement stmt = null;
ResultSet rset = null; ResultSet rset = null;
StringBuilder sQuery = new StringBuilder(); StringBuilder sQuery = new StringBuilder();
sQuery.append("SELECT TEE.TIPOEVENTOEXTRA_ID AS TIPOEVENTOEXTRAID, TEE.DESCTIPOEVENTO AS DESCTIPOEVENTO, ") sQuery.append("SELECT TEE.TIPOEVENTOEXTRA_ID AS TIPOEVENTOEXTRAID, TEE.DESCTIPOEVENTO AS DESCTIPOEVENTO, ")
.append(" TRUNC(CD.FECHORVTA) AS FECHORVTA, SUM(CD.PRECIO) AS TOTAL ") .append(" TRUNC(CD.FECHORVTA) AS FECHORVTA, SUM(CD.PRECIO) AS TOTAL ")
@ -791,6 +810,5 @@ public class FiscalHibernateDAO implements FiscalDAO {
return importacionNaoFiscalVOs; return importacionNaoFiscalVOs;
} }
} }

View File

@ -680,7 +680,9 @@ public class FiscalServiceImpl implements FiscalService {
private String montarItensFiscais(ItemFiscalVO item, Integer seq, Integer seqItem) { private String montarItensFiscais(ItemFiscalVO item, Integer seq, Integer seqItem) {
String tipoPassagem = null; String tipoPassagem = null;
if (item.getRepTributado().length() == 7 && item.getRepTributado().substring(2, 3).equals(SituacaoTributaria.TRIBUTADO.getValue())) {
String repTributado = item.getRepTributado() == null ? SituacaoTributaria.NAO_TRIBUTADO.getValue() : item.getRepTributado();
if (repTributado.length() == 7 && repTributado.substring(2, 3).equals(SituacaoTributaria.TRIBUTADO.getValue())) {
tipoPassagem = item.getTipoPassagem(); tipoPassagem = item.getTipoPassagem();
if (tipoPassagem == null) if (tipoPassagem == null)
@ -725,6 +727,11 @@ public class FiscalServiceImpl implements FiscalService {
valorItem = item.getValorSeguro() == null ? valorItem : item.getValorSeguro(); valorItem = item.getValorSeguro() == null ? valorItem : item.getValorSeguro();
} }
boolean inconsistente = item.getInconsistencia() == null ? false : item.getInconsistencia();
if (inconsistente) {
valorItem = item.getValorTarifa().add(item.getValorPedagio()).add(item.getValorEmbarque()).add(item.getValorSeguro());
}
valorItem = UtileriasFiscal.arredondar(valorItem); valorItem = UtileriasFiscal.arredondar(valorItem);
String valorUnitario = UtileriasFiscal.formataZeroDecimal(valorItem, 15); String valorUnitario = UtileriasFiscal.formataZeroDecimal(valorItem, 15);
item.setValorItem(new BigDecimal(valorUnitario)); item.setValorItem(new BigDecimal(valorUnitario));
@ -738,7 +745,7 @@ public class FiscalServiceImpl implements FiscalService {
HashMap<String, BigDecimal> aliquotaItens = new HashMap<String, BigDecimal>(0); HashMap<String, BigDecimal> aliquotaItens = new HashMap<String, BigDecimal>(0);
// Verificando se é um produto tributável. Formato: XXTYYYY (XX - Posicao / YYYY - Aliquota) // Verificando se é um produto tributável. Formato: XXTYYYY (XX - Posicao / YYYY - Aliquota)
if (item.getRepTributado().length() == 7 && item.getRepTributado().substring(2, 3).equals(SituacaoTributaria.TRIBUTADO.getValue())) { if (repTributado.length() == 7 && repTributado.substring(2, 3).equals(SituacaoTributaria.TRIBUTADO.getValue())) {
String key = tipoPassagem + item.getRepTributado().substring(3, 7); String key = tipoPassagem + item.getRepTributado().substring(3, 7);
@ -749,7 +756,7 @@ public class FiscalServiceImpl implements FiscalService {
BigDecimal soma = item.getValorItem().divide(BigDecimal.TEN.multiply(BigDecimal.TEN)); BigDecimal soma = item.getValorItem().divide(BigDecimal.TEN.multiply(BigDecimal.TEN));
aliquotaItens.put(key, soma.add(aliquotaItens.get(key))); aliquotaItens.put(key, soma.add(aliquotaItens.get(key)));
} else if (item.getRepTributado().equals(SituacaoTributaria.NAO_TRIBUTADO.getValue())) { } else if (repTributado.equals(SituacaoTributaria.NAO_TRIBUTADO.getValue())) {
BigDecimal soma = item.getValorItem(); BigDecimal soma = item.getValorItem();
totalICMSNaotributadoItem = StringHelper.preencherZeroEsquerda(soma.toString(), 15); totalICMSNaotributadoItem = StringHelper.preencherZeroEsquerda(soma.toString(), 15);
@ -851,7 +858,8 @@ public class FiscalServiceImpl implements FiscalService {
HashMap<String, BigDecimal> aliquotaBaseCalculo = new HashMap<String, BigDecimal>(0); HashMap<String, BigDecimal> aliquotaBaseCalculo = new HashMap<String, BigDecimal>(0);
// Verificando se é um produto tributável. Formato: XXTYYYY (XX - Posicao / YYYY - Aliquota) // Verificando se é um produto tributável. Formato: XXTYYYY (XX - Posicao / YYYY - Aliquota)
if (item.getRepTributado().length() == 7 && item.getRepTributado().substring(2, 3).equals(SituacaoTributaria.TRIBUTADO.getValue())) { String repTributado = item.getRepTributado() == null ? SituacaoTributaria.NAO_TRIBUTADO.getValue() : item.getRepTributado();
if (repTributado.length() == 7 && repTributado.substring(2, 3).equals(SituacaoTributaria.TRIBUTADO.getValue())) {
String tipoPassagem = item.getTipoPassagem(); String tipoPassagem = item.getTipoPassagem();
@ -868,7 +876,7 @@ public class FiscalServiceImpl implements FiscalService {
BigDecimal soma = item.getValorItem().divide(BigDecimal.TEN.multiply(BigDecimal.TEN)); BigDecimal soma = item.getValorItem().divide(BigDecimal.TEN.multiply(BigDecimal.TEN));
aliquotaBaseCalculo.put(key, soma.add(aliquotaBaseCalculo.get(key))); aliquotaBaseCalculo.put(key, soma.add(aliquotaBaseCalculo.get(key)));
} else if (item.getRepTributado().equals(SituacaoTributaria.NAO_TRIBUTADO.getValue())) { } else if (repTributado.equals(SituacaoTributaria.NAO_TRIBUTADO.getValue())) {
BigDecimal soma = item.getValorItem(); BigDecimal soma = item.getValorItem();
totalICMSNaotributado = soma.toString(); totalICMSNaotributado = soma.toString();

View File

@ -9,6 +9,7 @@ public class ItemFiscalVO extends ImportacionFiscalVO {
private String repTributado; private String repTributado;
private BigDecimal valorItem; private BigDecimal valorItem;
private String tipoPassagem; private String tipoPassagem;
private Boolean inconsistencia;
public ItemFiscalVO() { public ItemFiscalVO() {
super(); super();
@ -104,4 +105,15 @@ public class ItemFiscalVO extends ImportacionFiscalVO {
return "ItemFiscalVO [numItem=" + numItem + ", codProduto=" + codProduto + ", repTributado=" + repTributado + ", valorItem=" + valorItem + ", tipoPassagem=" + tipoPassagem + ", getNumImpressora()=" + getNumImpressora() + ", getCoo()=" + getCoo() + ", getBoletoId()=" + getBoletoId() + ", getEmpresaId()=" + getEmpresaId() + ", getDataEmissao()=" + getDataEmissao() + ", getCnpjCliente()=" + getCnpjCliente() + ", getCnpjImpressora()=" + getCnpjImpressora() + ", getOrigenId()=" + getOrigenId() + ", getItensFiscais()=" + getItensFiscais() + ", getNumpdv()=" + getNumpdv() + "]"; return "ItemFiscalVO [numItem=" + numItem + ", codProduto=" + codProduto + ", repTributado=" + repTributado + ", valorItem=" + valorItem + ", tipoPassagem=" + tipoPassagem + ", getNumImpressora()=" + getNumImpressora() + ", getCoo()=" + getCoo() + ", getBoletoId()=" + getBoletoId() + ", getEmpresaId()=" + getEmpresaId() + ", getDataEmissao()=" + getDataEmissao() + ", getCnpjCliente()=" + getCnpjCliente() + ", getCnpjImpressora()=" + getCnpjImpressora() + ", getOrigenId()=" + getOrigenId() + ", getItensFiscais()=" + getItensFiscais() + ", getNumpdv()=" + getNumpdv() + "]";
} }
public Boolean getInconsistencia() {
return inconsistencia;
}
public void setInconsistencia(Boolean inconsistencia) {
if (inconsistencia == null)
this.inconsistencia = Boolean.FALSE;
else
this.inconsistencia = inconsistencia;
}
} }