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.List;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Repository;
import com.rjconsultores.ventaboletos.dao.FiscalDAO;
@ -25,20 +24,20 @@ import com.rjconsultores.ventaboletos.vo.impressaofiscal.SituacaoTributaria;
@Repository("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 FiscalHibernateDAO() {
}
@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;
ResultSet rset = null;
StringBuilder sql = new StringBuilder();
sql.append("select r4.numserie20 as numImpressora, ");
sql.append(" coalesce(r4.coo, b.numfoliopreimpreso) as coo, ");
@ -188,16 +187,14 @@ public class FiscalHibernateDAO implements FiscalDAO {
}
return listManuais;
}
@Override
public List<ImportacionFiscalReducaoZVO> buscaDatosFiscaisReducaoZ(Date inicio, Date fim, Integer empresaId, Connection connection) throws SQLException {
PreparedStatement stmt = null;
ResultSet rset = null;
StringBuilder sql = new StringBuilder();
sql.append("SELECT r2.datamov AS datamov, ");
sql.append(" r2.numreducoes AS numreducoes, ");
@ -293,8 +290,7 @@ public class FiscalHibernateDAO implements FiscalDAO {
}
return listRedZ;
}
public String sqlFiscaisECFCancelados() {
@ -330,10 +326,9 @@ public class FiscalHibernateDAO implements FiscalDAO {
sql.append(" cs.descclase as claseServicio, ");
sql.append(" translate(fi.numcnpj, ' / - . ', ' ') as cnpjEcf ");
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(" 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 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) ");
@ -417,10 +412,9 @@ public class FiscalHibernateDAO implements FiscalDAO {
sql.append(" translate(fi.numcnpj, ' / - . ', ' ') as cnpjEcf, ");
sql.append(" 'N' as status ");
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(" INNER JOIN fiscal_impressora fi ON fi.numserie20 = r4.numserie20 ");
sql.append(" AND fi.fiscalimpressora_id = r5.fiscalimpressora_id ");
sql.append(" LEFT JOIN fiscal_impressora fi ON fi.numserie20 = r4.numserie20 ");
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(" 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(" WHERE r4.datamov BETWEEN ? AND ? ");
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(" r4.coo, ");
sql.append(" r4.datainicialemissao, ");
@ -469,11 +466,9 @@ public class FiscalHibernateDAO implements FiscalDAO {
}
@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;
ResultSet rset = null;
String sql = isCancelados ? sqlFiscaisECFCancelados() : sqlFiscaisECF();
stmt = connection.prepareStatement(sql);
@ -528,7 +523,12 @@ public class FiscalHibernateDAO implements FiscalDAO {
ImportacionFiscalVO novoFiscal = item;
codProduto = item.getCodProduto();
codProduto = codProduto.toString().replace("-", "").replace("TA", "").replace("TX", "").replace("PE", "").replace("SE", "");
if (codProduto != null) {
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) {
fiscal = item;
@ -573,67 +573,90 @@ public class FiscalHibernateDAO implements FiscalDAO {
boolean pedagioCriada = false;
boolean embarqueCriada = false;
boolean seguroCriada = false;
boolean inconsistencia = false;
List<ItemFiscalVO> itensFiscais = new ArrayList<ItemFiscalVO>();
for (ItemFiscalVO item : fiscal.getItensFiscais()) {
String codigoProduto = item.getCodProduto();
if (codigoProduto != null) {
if (codigoProduto.indexOf("TA") >= 0)
tarifaCriada = true;
if (codigoProduto.indexOf("TA") >= 0)
tarifaCriada = true;
if (codigoProduto.indexOf("TX") >= 0)
embarqueCriada = true;
if (codigoProduto.indexOf("TX") >= 0)
embarqueCriada = true;
if (codigoProduto.indexOf("PE") >= 0)
pedagioCriada = true;
if (codigoProduto.indexOf("PE") >= 0)
pedagioCriada = true;
if (codigoProduto.indexOf("SE") >= 0)
seguroCriada = true;
if (codigoProduto.indexOf("SE") >= 0)
seguroCriada = true;
} else {
inconsistencia = true;
break;
}
itensFiscais.add(item);
}
int numeroItem = 1;
if (temTarifa && !tarifaCriada) {
ItemFiscalVO novoTarifa = new ItemFiscalVO(fiscal);
novoTarifa.setCodProduto(codProduto + "-TA");
novoTarifa.setTipoPassagem("E");
novoTarifa.setValorItem(fiscal.getValorTarifa());
novoTarifa.setRepTributado("N1");
novoTarifa.setNumItem(StringHelper.preencherZeroEsquerda((numeroItem++) + "", 3));
itensFiscais.add(novoTarifa);
}
if (inconsistencia) {
ItemFiscalVO novaInconsistencia = new ItemFiscalVO(fiscal);
novaInconsistencia.setInconsistencia(inconsistencia);
novaInconsistencia.setCodProduto(codProduto + "-TX");
novaInconsistencia.setTipoPassagem("E");
if (temEmbarque && !embarqueCriada) {
ItemFiscalVO novoEmbarque = new ItemFiscalVO(fiscal);
novoEmbarque.setCodProduto(codProduto + "-TX");
novoEmbarque.setTipoPassagem("E");
novoEmbarque.setValorItem(fiscal.getValorEmbarque());
novoEmbarque.setRepTributado("N1");
novoEmbarque.setNumItem(StringHelper.preencherZeroEsquerda((numeroItem++) + "", 3));
itensFiscais.add(novoEmbarque);
}
BigDecimal total = fiscal.getValorTarifa().add(fiscal.getValorPedagio()).add(fiscal.getValorEmbarque()).add(fiscal.getValorSeguro());
novaInconsistencia.setValorItem(total);
if (temPedagio && !pedagioCriada) {
ItemFiscalVO novoPedagio = new ItemFiscalVO(fiscal);
novoPedagio.setCodProduto(codProduto + "-PE");
novoPedagio.setTipoPassagem("E");
novoPedagio.setValorItem(fiscal.getValorPedagio());
novoPedagio.setRepTributado("N1");
novoPedagio.setNumItem(StringHelper.preencherZeroEsquerda((numeroItem++) + "", 3));
novaInconsistencia.setRepTributado("N1");
novaInconsistencia.setNumItem(StringHelper.preencherZeroEsquerda((1) + "", 3));
itensFiscais.add(novaInconsistencia);
itensFiscais.add(novoPedagio);
}
} else {
if (temSeguro && !seguroCriada) {
ItemFiscalVO novoSeguro = new ItemFiscalVO(fiscal);
novoSeguro.setCodProduto(codProduto + "-SE");
novoSeguro.setTipoPassagem("E");
novoSeguro.setValorItem(fiscal.getValorSeguro());
novoSeguro.setRepTributado("N1");
novoSeguro.setNumItem(StringHelper.preencherZeroEsquerda((numeroItem++) + "", 3));
int numeroItem = 1;
if (temTarifa && !tarifaCriada) {
ItemFiscalVO novoTarifa = new ItemFiscalVO(fiscal);
novoTarifa.setCodProduto(codProduto + "-TA");
novoTarifa.setTipoPassagem("E");
novoTarifa.setValorItem(fiscal.getValorTarifa());
novoTarifa.setRepTributado("N1");
novoTarifa.setNumItem(StringHelper.preencherZeroEsquerda((numeroItem++) + "", 3));
itensFiscais.add(novoTarifa);
}
itensFiscais.add(novoSeguro);
if (temEmbarque && !embarqueCriada) {
ItemFiscalVO novoEmbarque = new ItemFiscalVO(fiscal);
novoEmbarque.setCodProduto(codProduto + "-TX");
novoEmbarque.setTipoPassagem("E");
novoEmbarque.setValorItem(fiscal.getValorEmbarque());
novoEmbarque.setRepTributado("N1");
novoEmbarque.setNumItem(StringHelper.preencherZeroEsquerda((numeroItem++) + "", 3));
itensFiscais.add(novoEmbarque);
}
if (temPedagio && !pedagioCriada) {
ItemFiscalVO novoPedagio = new ItemFiscalVO(fiscal);
novoPedagio.setCodProduto(codProduto + "-PE");
novoPedagio.setTipoPassagem("E");
novoPedagio.setValorItem(fiscal.getValorPedagio());
novoPedagio.setRepTributado("N1");
novoPedagio.setNumItem(StringHelper.preencherZeroEsquerda((numeroItem++) + "", 3));
itensFiscais.add(novoPedagio);
}
if (temSeguro && !seguroCriada) {
ItemFiscalVO novoSeguro = new ItemFiscalVO(fiscal);
novoSeguro.setCodProduto(codProduto + "-SE");
novoSeguro.setTipoPassagem("E");
novoSeguro.setValorItem(fiscal.getValorSeguro());
novoSeguro.setRepTributado("N1");
novoSeguro.setNumItem(StringHelper.preencherZeroEsquerda((numeroItem++) + "", 3));
itensFiscais.add(novoSeguro);
}
}
return itensFiscais;
@ -685,16 +708,14 @@ public class FiscalHibernateDAO implements FiscalDAO {
sb.append(" and c.corrida_id in (:corridaId) ");
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
// Query query = getSession().createSQLQuery(sb.toString());
// query.setParameterList("corridaId", idsCorrida);
// query.setDate("datIni", new java.sql.Date(dataDe.getTime()));
// query.setDate("datFim", new java.sql.Date(dataAte.getTime()));
// 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.setParameterList("corridaId", idsCorrida);
// query.setDate("datIni", new java.sql.Date(dataDe.getTime()));
// query.setDate("datFim", new java.sql.Date(dataAte.getTime()));
// return query.executeUpdate();
// return query.executeUpdate();
return 0;
}
@ -735,14 +756,14 @@ public class FiscalHibernateDAO implements FiscalDAO {
sb.append(" and ROWNUM < 2 ");
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
// Query query = getSession().createSQLQuery(sb.toString());
// query.setParameterList("corridaId", idsCorrida);
// query.setDate("datIni", new java.sql.Date(dataDe.getTime()));
// query.setDate("datFim", new java.sql.Date(dataAte.getTime()));
//
// return query.executeUpdate();
// 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.setParameterList("corridaId", idsCorrida);
// query.setDate("datIni", new java.sql.Date(dataDe.getTime()));
// query.setDate("datFim", new java.sql.Date(dataAte.getTime()));
//
// return query.executeUpdate();
return 0;
}
@ -754,11 +775,9 @@ public class FiscalHibernateDAO implements FiscalDAO {
}
@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;
ResultSet rset = null;
StringBuilder sQuery = new StringBuilder();
sQuery.append("SELECT TEE.TIPOEVENTOEXTRA_ID AS TIPOEVENTOEXTRAID, TEE.DESCTIPOEVENTO AS DESCTIPOEVENTO, ")
@ -790,7 +809,6 @@ public class FiscalHibernateDAO implements FiscalDAO {
}
return importacionNaoFiscalVOs;
}
}

View File

@ -680,7 +680,9 @@ public class FiscalServiceImpl implements FiscalService {
private String montarItensFiscais(ItemFiscalVO item, Integer seq, Integer seqItem) {
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();
if (tipoPassagem == null)
@ -725,6 +727,11 @@ public class FiscalServiceImpl implements FiscalService {
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);
String valorUnitario = UtileriasFiscal.formataZeroDecimal(valorItem, 15);
item.setValorItem(new BigDecimal(valorUnitario));
@ -738,7 +745,7 @@ public class FiscalServiceImpl implements FiscalService {
HashMap<String, BigDecimal> aliquotaItens = new HashMap<String, BigDecimal>(0);
// 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);
@ -749,7 +756,7 @@ public class FiscalServiceImpl implements FiscalService {
BigDecimal soma = item.getValorItem().divide(BigDecimal.TEN.multiply(BigDecimal.TEN));
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();
totalICMSNaotributadoItem = StringHelper.preencherZeroEsquerda(soma.toString(), 15);
@ -851,7 +858,8 @@ public class FiscalServiceImpl implements FiscalService {
HashMap<String, BigDecimal> aliquotaBaseCalculo = new HashMap<String, BigDecimal>(0);
// 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();
@ -868,7 +876,7 @@ public class FiscalServiceImpl implements FiscalService {
BigDecimal soma = item.getValorItem().divide(BigDecimal.TEN.multiply(BigDecimal.TEN));
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();
totalICMSNaotributado = soma.toString();

View File

@ -9,6 +9,7 @@ public class ItemFiscalVO extends ImportacionFiscalVO {
private String repTributado;
private BigDecimal valorItem;
private String tipoPassagem;
private Boolean inconsistencia;
public ItemFiscalVO() {
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() + "]";
}
public Boolean getInconsistencia() {
return inconsistencia;
}
public void setInconsistencia(Boolean inconsistencia) {
if (inconsistencia == null)
this.inconsistencia = Boolean.FALSE;
else
this.inconsistencia = inconsistencia;
}
}