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;
@ -26,7 +25,7 @@ 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";
@ -189,7 +188,6 @@ public class FiscalHibernateDAO implements FiscalDAO {
return listManuais;
}
@Override
@ -197,7 +195,6 @@ public class FiscalHibernateDAO implements FiscalDAO {
PreparedStatement stmt = null;
ResultSet rset = null;
StringBuilder sql = new StringBuilder();
sql.append("SELECT r2.datamov AS datamov, ");
sql.append(" r2.numreducoes AS numreducoes, ");
@ -294,7 +291,6 @@ 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, ");
@ -473,8 +470,6 @@ public class FiscalHibernateDAO implements FiscalDAO {
PreparedStatement stmt = null;
ResultSet rset = null;
String sql = isCancelados ? sqlFiscaisECFCancelados() : sqlFiscaisECF();
stmt = connection.prepareStatement(sql);
stmt.setFetchSize(100);
@ -528,7 +523,12 @@ public class FiscalHibernateDAO implements FiscalDAO {
ImportacionFiscalVO novoFiscal = item;
codProduto = item.getCodProduto();
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,11 +573,14 @@ 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;
@ -589,10 +592,29 @@ public class FiscalHibernateDAO implements FiscalDAO {
if (codigoProduto.indexOf("SE") >= 0)
seguroCriada = true;
} else {
inconsistencia = true;
break;
}
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;
if (temTarifa && !tarifaCriada) {
ItemFiscalVO novoTarifa = new ItemFiscalVO(fiscal);
@ -635,6 +657,7 @@ public class FiscalHibernateDAO implements FiscalDAO {
itensFiscais.add(novoSeguro);
}
}
return itensFiscais;
}
@ -693,8 +716,6 @@ public class FiscalHibernateDAO implements FiscalDAO {
// return query.executeUpdate();
return 0;
}
@ -758,8 +779,6 @@ public class FiscalHibernateDAO implements FiscalDAO {
PreparedStatement stmt = null;
ResultSet rset = null;
StringBuilder sQuery = new StringBuilder();
sQuery.append("SELECT TEE.TIPOEVENTOEXTRA_ID AS TIPOEVENTOEXTRAID, TEE.DESCTIPOEVENTO AS DESCTIPOEVENTO, ")
.append(" TRUNC(CD.FECHORVTA) AS FECHORVTA, SUM(CD.PRECIO) AS TOTAL ")
@ -791,6 +810,5 @@ 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;
}
}