From aca5cfc8e794933df1bf4519c3a44913e27c15a5 Mon Sep 17 00:00:00 2001 From: julio Date: Thu, 7 Jan 2016 13:42:14 +0000 Subject: [PATCH] fixes bug #6817 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@51784 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../dao/hibernate/FiscalHibernateDAO.java | 11 +++- .../service/impl/FiscalServiceImpl.java | 59 +++++++++++-------- 2 files changed, 45 insertions(+), 25 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java index 86c64ae90..34a21997c 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java @@ -275,12 +275,16 @@ public class FiscalHibernateDAO extends GenericHibernateDAO impl sql.append(" r5.numitem as numItem, "); sql.append(" r5.codproduto as codProduto, "); sql.append(" fi.modelo as modeloImpressora, "); - sql.append(" r4.usuario_id as numCaixa "); + sql.append(" r4.usuario_id as numCaixa, "); + sql.append(" ml2.valortarifa as valorTarifa, "); + sql.append(" ml2.pedagio as valorPedagio, "); + sql.append(" ml2.taxaembarque as valorEmbarque "); 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(" 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 fiscal_ml2 ml2 ON ml2.boleto_id = r4.boleto_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 AND r4.empresa_id = b.marca_id "); sql.append(" LEFT JOIN alias_servico ase ON ase.origen_id = b.origen_id "); @@ -313,7 +317,10 @@ public class FiscalHibernateDAO extends GenericHibernateDAO impl sql.append(" fi.modelo, "); sql.append(" r4.usuario_id, "); sql.append(" eo.cveestado, "); - sql.append(" ed.cveestado "); + sql.append(" ed.cveestado, "); + sql.append(" ml2.valortarifa, "); + sql.append(" ml2.pedagio, "); + sql.append(" ml2.taxaembarque "); sql.append(" ORDER BY r4.numserie20, "); sql.append(" r4.coo, "); sql.append(" r4.datainicialemissao "); diff --git a/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java index bbfd4686e..4c90127aa 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java @@ -44,6 +44,7 @@ public class FiscalServiceImpl implements FiscalService { private static Logger log = Logger.getLogger(FiscalServiceImpl.class); public static final String DATE_FORMAT_FISCAL = "yyyyMMdd"; public static final BigDecimal CEM = BigDecimal.valueOf(100); + public static final String QUEBRA_LINHA = "\r\n"; @Autowired private FiscalDAO fiscalDAO; @@ -71,8 +72,7 @@ public class FiscalServiceImpl implements FiscalService { String sequencial = StringHelper.preencherZeroEsquerda(seq.toString(), 6); String abertura = aberturaDeArquivo("0", dataAgora, cnpjFilial, brancos371, sequencial); - // gravarArq.println(abertura); - gravarArq.print(abertura + "\r\n"); + gravarArq.print(abertura + QUEBRA_LINHA); Integer qtdDoc = 0; Integer qtdItens = 0; @@ -140,14 +140,12 @@ public class FiscalServiceImpl implements FiscalService { valorPIS, valorCofins, valorCSLL, totalICMSIsento, totalICMSNaotributado, origenUf, origen, destinoUf, destino, subSerie, aidf, brancos171, sequencial); - // gravarArq.println(header); - gravarArq.print(header + "\r\n"); + gravarArq.print(header + QUEBRA_LINHA); for (String itemDoc : montarItensFiscaisManual(imf, imf.getSubItens(), seq)) { qtdItens++; - // gravarArq.println(itemDoc); - gravarArq.print(itemDoc + "\r\n"); + gravarArq.print(itemDoc + QUEBRA_LINHA); seq++; } } @@ -160,8 +158,7 @@ public class FiscalServiceImpl implements FiscalService { sequencial = StringHelper.preencherZeroEsquerda(seq.toString(), 6); String fechamento = fechamentoDeArquivo("3", qtdeDocGerados, qtdeItensDocGerados, brancos381, sequencial); - // gravarArq.println(fechamento); - gravarArq.print(fechamento + "\r\n"); + gravarArq.print(fechamento + QUEBRA_LINHA); gravarArq.close(); return arquivo; @@ -299,8 +296,7 @@ public class FiscalServiceImpl implements FiscalService { String sequencial = StringHelper.preencherZeroEsquerda(seq.toString(), 6); String abertura = aberturaDeArquivo("0", dataAgora, cnpjFilial, brancos371, sequencial); - // gravarArq.println(abertura); - gravarArq.print(abertura + "\r\n"); + gravarArq.print(abertura + QUEBRA_LINHA); List list = agruparReducaoZ(fiscalDAO.buscaDatosFiscaisReducaoZ(inicio, fim, empresa.getEmpresaId())); @@ -368,9 +364,7 @@ public class FiscalServiceImpl implements FiscalService { gtInicial, gtFinal, docFiscalInic, docFiscalFinal, valorCancel, valorContabil, subtributaria, descontos, isento, naoTributado, aliquota, aliquota2, aliquota3, aliquota4, coo, outrosRecebimentos, impostoDebitado, dataReducaoZ, horaReducaoZ, valorDocFiscal, brancos82, sequencial); - - // gravarArq.println(redZ); - gravarArq.print(redZ + "\r\n"); + gravarArq.print(redZ + QUEBRA_LINHA); } Integer qtdeDoc = seq - 1; @@ -381,8 +375,7 @@ public class FiscalServiceImpl implements FiscalService { sequencial = StringHelper.preencherZeroEsquerda(seq.toString(), 6); String fechamento = fechamentoDeArquivo("3", qtdeDocGerados, null, brancos387, sequencial); - // gravarArq.println(fechamento); - gravarArq.print(fechamento + "\r\n"); + gravarArq.print(fechamento + QUEBRA_LINHA); gravarArq.close(); return arquivo; @@ -428,8 +421,7 @@ public class FiscalServiceImpl implements FiscalService { String seqAbertura = StringHelper.preencherZeroEsquerda(seq.toString(), 6); String abertura = aberturaDeArquivo("0", dataAgora, cnpjFilial, brancos371, seqAbertura); - // gravarArq.println(abertura); - gravarArq.print(abertura + "\r\n"); + gravarArq.print(abertura + QUEBRA_LINHA); String sql = fiscalDAO.sqlFiscaisECF(inicio, fim, empresa.getEmpresaId()); @@ -476,6 +468,13 @@ public class FiscalServiceImpl implements FiscalService { item.setModeloImpressora(rset.getString("modeloImpressora")); item.setNumCaixa(rset.getString("numCaixa")); + // TODO: Estes atributos foram criados para corrigir o valorItem que esta sendo gravado errado na tabela FISCAL_R5 + // estes dados sao extraidos da tabela FISCAL_ML2, que esta registrando corretamento o valor da tarifa paga + // e nao o valor do preco base da tarifa, como esta sendo feita na FISCAL_R5 + item.setValorTarifa(rset.getBigDecimal("valorTarifa")); + item.setValorPedagio(rset.getBigDecimal("valorPedagio")); + item.setValorEmbarque(rset.getBigDecimal("valorEmbarque")); + ImportacionFiscalVO novoFiscal = item; if (!novoFiscal.equals(fiscal) && fiscal != null) { @@ -580,8 +579,7 @@ public class FiscalServiceImpl implements FiscalService { String seqFechamento = StringHelper.preencherZeroEsquerda(seq.toString(), 6); String fechamento = fechamentoDeArquivo("3", qtdeDocGerados, qtdeItensDocGerados, brancos381, seqFechamento); - // gravarArq.println(fechamento); - gravarArq.print(fechamento + "\r\n"); + gravarArq.print(fechamento + QUEBRA_LINHA); gravarArq.close(); return arquivo; @@ -595,12 +593,10 @@ public class FiscalServiceImpl implements FiscalService { } private void grabarHeaderItens(PrintWriter gravarArq, String header, List itensDocs) { - // gravarArq.println(header); - gravarArq.print(header + "\r\n"); + gravarArq.print(header + QUEBRA_LINHA); for (String doc : itensDocs) { - // gravarArq.println(doc); - gravarArq.print(doc + "\r\n"); + gravarArq.print(doc + QUEBRA_LINHA); } } @@ -631,7 +627,24 @@ public class FiscalServiceImpl implements FiscalService { String unidade = "UN"; String quantidade = "001"; + // TODO: A forma de enviar o valor do item é baseada no codProduto, pelo fato da FISCAL_R5 + // estar gravando os registros de tarifa errado BigDecimal valorItem = item.getValorItem() == null ? BigDecimal.ZERO : item.getValorItem(); + + // VALIDA TARIFA + if (codProduto.indexOf("TA") >= 0) { + valorItem = item.getValorTarifa() == null ? valorItem : item.getValorTarifa(); + + // TAXA DE EMBARQUE + } else if (codProduto.indexOf("TX") >= 0) { + valorItem = item.getValorEmbarque() == null ? valorItem : item.getValorEmbarque(); + + // PEDAGIO + } else if (codProduto.indexOf("PE") >= 0) { + valorItem = item.getValorPedagio() == null ? valorItem : item.getValorPedagio(); + + } + String valorUnitario = StringHelper.preencherZeroEsquerda(valorItem.toString(), 15); String valorTotal = StringHelper.preencherZeroEsquerda(valorItem.toString(), 15);