julio 2016-05-31 17:38:42 +00:00
parent e274d8d8c0
commit 10083c58f2
4 changed files with 130 additions and 95 deletions

View File

@ -410,6 +410,7 @@ public class FiscalHibernateDAO implements FiscalDAO {
sql.append(" b.importeseguro as importeseguro, ");
sql.append(" cs.descclase as claseServicio, ");
sql.append(" translate(fi.numcnpj, ' / - . ', ' ') as cnpjEcf, ");
sql.append(" ei.icms as impostoEstado, ");
sql.append(" 'N' as status ");
sql.append(" FROM fiscal_r4 r4 ");
sql.append(" LEFT JOIN fiscal_r5 r5 ON r4.numserie20 = r5.numserie20 AND r4.coo = r5.coo ");
@ -422,6 +423,7 @@ public class FiscalHibernateDAO implements FiscalDAO {
sql.append(" INNER JOIN parada o ON coalesce(ase.aliasorigen_id, b.origen_id) = o.parada_id ");
sql.append(" INNER JOIN ciudad co ON o.ciudad_id = co.ciudad_id ");
sql.append(" INNER JOIN estado eo ON eo.estado_id = co.estado_id ");
sql.append(" LEFT JOIN empresa_imposto ei ON ei.estado_id = eo.estado_id AND b.marca_id = ei.empresa_id ");
sql.append(" INNER JOIN parada d ON coalesce(ase.aliasdestino_id, b.destino_id) = d.parada_id ");
sql.append(" INNER JOIN ciudad cd ON d.ciudad_id = cd.ciudad_id ");
sql.append(" INNER JOIN estado ed ON ed.estado_id = cd.estado_id ");
@ -457,7 +459,8 @@ public class FiscalHibernateDAO implements FiscalDAO {
sql.append(" b.importepedagio, ");
sql.append(" b.importeseguro, ");
sql.append(" cs.descclase, ");
sql.append(" fi.numcnpj ");
sql.append(" fi.numcnpj, ");
sql.append(" ei.icms ");
sql.append(" ORDER BY r4.datainicialemissao, ");
sql.append(" r4.numserie20, ");
sql.append(" r4.coo, ");
@ -512,6 +515,8 @@ public class FiscalHibernateDAO implements FiscalDAO {
if (isCancelados) {
item.setMotivocancelacion(rset.getInt("motivocancelacion"));
item.setValorMulta(rset.getBigDecimal("valorMulta"));
} else {
item.setImpostoEstado(rset.getBigDecimal("impostoEstado"));
}
// TODO: Estes atributos foram criados, por motivo de divergencia no valorTotal com o valor unitario na tabela FISCAL_R5
@ -520,6 +525,8 @@ public class FiscalHibernateDAO implements FiscalDAO {
item.setValorEmbarque(rset.getBigDecimal("importetaxaembarque"));
item.setValorSeguro(rset.getBigDecimal("importeseguro"));
ImportacionFiscalVO novoFiscal = item;
codProduto = item.getCodProduto();
@ -600,63 +607,49 @@ public class FiscalHibernateDAO implements FiscalDAO {
itensFiscais.add(item);
}
if (inconsistencia) {
ItemFiscalVO novaInconsistencia = new ItemFiscalVO(fiscal);
novaInconsistencia.setInconsistencia(inconsistencia);
novaInconsistencia.setCodProduto(codProduto + "-TX");
novaInconsistencia.setTipoPassagem("E");
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));
novoTarifa.setInconsistencia(inconsistencia);
itensFiscais.add(novoTarifa);
}
BigDecimal total = fiscal.getValorTarifa().add(fiscal.getValorPedagio()).add(fiscal.getValorEmbarque()).add(fiscal.getValorSeguro());
novaInconsistencia.setValorItem(total);
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));
novoEmbarque.setInconsistencia(inconsistencia);
itensFiscais.add(novoEmbarque);
}
novaInconsistencia.setRepTributado("N1");
novaInconsistencia.setNumItem(StringHelper.preencherZeroEsquerda((1) + "", 3));
itensFiscais.add(novaInconsistencia);
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));
novoPedagio.setInconsistencia(inconsistencia);
itensFiscais.add(novoPedagio);
}
} else {
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 (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);
}
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));
novoSeguro.setInconsistencia(inconsistencia);
itensFiscais.add(novoSeguro);
}
return itensFiscais;

View File

@ -106,9 +106,9 @@ public class FiscalServiceImpl implements FiscalService {
inicio = DateUtil.inicioFecha(inicio);
fim = DateUtil.fimFecha(fim);
connection = DataSourceUtils.getConnection(dataSourceRead);
connection = DataSourceUtils.getConnection(dataSourceRead);
List<ImportacionManualFiscalVO> list = agruparItensFiscaisManual(fiscalDAO.buscaDatosFiscaisECFManual(inicio, fim, empresa.getEmpresaId(),connection));
List<ImportacionManualFiscalVO> list = agruparItensFiscaisManual(fiscalDAO.buscaDatosFiscaisECFManual(inicio, fim, empresa.getEmpresaId(), connection));
for (ImportacionManualFiscalVO imf : list) {
qtdDoc++;
@ -200,13 +200,13 @@ public class FiscalServiceImpl implements FiscalService {
log.error("", e);
} catch (SQLException e) {
log.error("", e);
}finally{
} finally {
try {
if (connection != null && !connection.isClosed()){
if (connection != null && !connection.isClosed()) {
connection.close();
}
} catch (SQLException e) {
log.error("error fechar conexão",e);
log.error("error fechar conexão", e);
throw new RuntimeException(e);
}
}
@ -350,9 +350,9 @@ public class FiscalServiceImpl implements FiscalService {
String abertura = aberturaDeArquivo("0", dataAgora, cnpjFilial, brancos371, sequencial);
gravarArq.print(abertura + QUEBRA_LINHA);
connection = DataSourceUtils.getConnection(dataSourceRead);
connection = DataSourceUtils.getConnection(dataSourceRead);
List<ImportacionFiscalReducaoZVO> list = agruparReducaoZ(fiscalDAO.buscaDatosFiscaisReducaoZ(inicio, fim, empresa.getEmpresaId(),connection));
List<ImportacionFiscalReducaoZVO> list = agruparReducaoZ(fiscalDAO.buscaDatosFiscaisReducaoZ(inicio, fim, empresa.getEmpresaId(), connection));
for (ImportacionFiscalReducaoZVO ifrZ : list) {
@ -438,13 +438,13 @@ public class FiscalServiceImpl implements FiscalService {
log.error("", e);
} catch (SQLException e) {
log.error("", e);
}finally{
} finally {
try {
if (connection != null && !connection.isClosed()){
if (connection != null && !connection.isClosed()) {
connection.close();
}
} catch (SQLException e) {
log.error("error fechar conexão",e);
log.error("error fechar conexão", e);
throw new RuntimeException(e);
}
}
@ -528,9 +528,9 @@ public class FiscalServiceImpl implements FiscalService {
String header = null;
List<String> itensDocs = new ArrayList<String>();
connection = DataSourceUtils.getConnection(dataSourceRead);
connection = DataSourceUtils.getConnection(dataSourceRead);
List<ImportacionFiscalVO> list = fiscalDAO.buscaDatosFiscaisECF(inicio, fim, empresa.getEmpresaId(), isCancelados,connection);
List<ImportacionFiscalVO> list = fiscalDAO.buscaDatosFiscaisECF(inicio, fim, empresa.getEmpresaId(), isCancelados, connection);
for (ImportacionFiscalVO item : list) {
@ -640,13 +640,13 @@ public class FiscalServiceImpl implements FiscalService {
log.error("", e);
} catch (SQLException e) {
log.error("", e);
}finally{
} finally {
try {
if (connection != null && !connection.isClosed()){
if (connection != null && !connection.isClosed()) {
connection.close();
}
} catch (SQLException e) {
log.error("error fechar conexão",e);
log.error("error fechar conexão", e);
throw new RuntimeException(e);
}
}
@ -727,11 +727,6 @@ 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));
@ -778,6 +773,24 @@ public class FiscalServiceImpl implements FiscalService {
aliquotaItem = UtileriasFiscal.formataZeroDecimal(null, 7);
}
boolean inconsistente = item.getInconsistencia() == null ? false : item.getInconsistencia();
if (inconsistente) {
if (codProduto.indexOf("TA") >= 0) {
BigDecimal aliquotaCalc = item.getImpostoEstado() == null ? BigDecimal.ZERO : item.getImpostoEstado();
aliquotaCalc = UtileriasFiscal.arredondar(aliquotaCalc);
BigDecimal baseCalculo = valorItem;
baseCalculo = UtileriasFiscal.arredondar(baseCalculo);
BigDecimal valorImposto = baseCalculo.multiply(aliquotaCalc.divide(CEM));
valorImposto = UtileriasFiscal.arredondar(valorImposto);
impostoItem = UtileriasFiscal.formataZeroDecimal(valorImposto, 15);
aliquotaItem = UtileriasFiscal.formataZeroDecimal(null, 7);
totalICMSNaotributadoItem = StringHelper.preencherZeroEsquerda(null, 15);
}
}
String aliquotaPIS = StringHelper.preencherZeroEsquerda(null, 7);
String valorPIS = StringHelper.preencherZeroEsquerda(null, 15);
String aliquotaCofins = StringHelper.preencherZeroEsquerda(null, 7);
@ -902,8 +915,27 @@ public class FiscalServiceImpl implements FiscalService {
imposto = UtileriasFiscal.formataZeroDecimal(valorImposto, 14);
aliquota = UtileriasFiscal.formataZeroDecimal(aliquotaCalc, 14);
}
}
boolean inconsistente = item.getInconsistencia() == null ? false : item.getInconsistencia();
if (inconsistente) {
if (codProduto.indexOf("TA") >= 0) {
BigDecimal aliquotaCalc = item.getImpostoEstado() == null ? BigDecimal.ZERO : item.getImpostoEstado();
aliquotaCalc = UtileriasFiscal.arredondar(aliquotaCalc);
BigDecimal baseCalculo = valorItem;
baseCalculo = UtileriasFiscal.arredondar(baseCalculo);
BigDecimal valorImposto = baseCalculo.multiply(aliquotaCalc.divide(CEM));
valorImposto = UtileriasFiscal.arredondar(valorImposto);
imposto = UtileriasFiscal.formataZeroDecimal(valorImposto, 14);
aliquota = UtileriasFiscal.formataZeroDecimal(aliquotaCalc, 14);
totalICMSIsento = null;
totalICMSNaotributado = null;
}
}
}
if (StringUtils.isBlank(aliquota))
aliquota = StringHelper.preencherZeroEsquerda(null, 14);
@ -1081,21 +1113,21 @@ public class FiscalServiceImpl implements FiscalService {
public File importacionNaoFiscal(Date inicio, Date fim, Empresa empresa) {
Connection connection = null;
try {
connection = DataSourceUtils.getConnection(dataSourceRead);
connection = DataSourceUtils.getConnection(dataSourceRead);
List<ImportacionNaoFiscalVO> importacionNaoFiscalVOs = fiscalDAO.buscaDatosNaoFiscais(inicio, fim, empresa.getEmpresaId(),connection);
List<ImportacionNaoFiscalVO> importacionNaoFiscalVOs = fiscalDAO.buscaDatosNaoFiscais(inicio, fim, empresa.getEmpresaId(), connection);
return new ArchivoIntegracionNaoFiscal().gerarArquivo(empresa.getCnpj(), importacionNaoFiscalVOs);
} catch (Exception e) {
log.error(e.getMessage(), e);
}finally{
} finally {
try {
if (connection != null && !connection.isClosed()){
if (connection != null && !connection.isClosed()) {
connection.close();
}
} catch (SQLException e) {
log.error("error fechar conexão",e);
log.error("error fechar conexão", e);
throw new RuntimeException(e);
}
}

View File

@ -30,6 +30,7 @@ public class ImportacionFiscalVO {
private BigDecimal valorEmbarque;
private BigDecimal valorSeguro;
private String cnpjEcf;
private BigDecimal impostoEstado;
private List<ItemFiscalVO> itensFiscais;
@ -303,4 +304,12 @@ public class ImportacionFiscalVO {
this.cnpjEcf = cnpjEcf;
}
public BigDecimal getImpostoEstado() {
return impostoEstado;
}
public void setImpostoEstado(BigDecimal impostoEstado) {
this.impostoEstado = impostoEstado;
}
}

View File

@ -21,6 +21,7 @@ public class ItemFiscalVO extends ImportacionFiscalVO {
item.getDestinoUf(), item.getNumpdv(), item.getModeloImpressora(), item.getNumCaixa(), item.getStatus(),
item.getMotivocancelacion(), item.getValorMulta(), item.getValorTarifa(), item.getValorPedagio(),
item.getValorEmbarque(), item.getValorSeguro(), item.getClaseServicio());
super.setImpostoEstado(item.getImpostoEstado());
}
public String getNumItem() {