diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java index 7dba53ce2..fe08ec7df 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java @@ -22,7 +22,6 @@ import com.rjconsultores.ventaboletos.utilerias.DateUtil; import com.rjconsultores.ventaboletos.vo.impressaofiscal.ImportacionFiscalReducaoZVO; import com.rjconsultores.ventaboletos.vo.impressaofiscal.ImportacionManualFiscalVO; import com.rjconsultores.ventaboletos.vo.impressaofiscal.ImportacionNaoFiscalVO; -import com.rjconsultores.ventaboletos.vo.impressaofiscal.ItemRelatorioFinanceiro; import com.rjconsultores.ventaboletos.vo.impressaofiscal.SituacaoTributaria; @Repository("fiscalDAO") @@ -321,9 +320,9 @@ public class FiscalHibernateDAO extends GenericHibernateDAO impl sql.append(" r5.codproduto as codProduto, "); sql.append(" fi.modelo as modeloImpressora, "); sql.append(" r4.usuario_id as numCaixa, "); - sql.append(" max(ml2.valortarifa) as valorTarifa, "); - sql.append(" max(ml2.pedagio) as valorPedagio, "); - sql.append(" max(ml2.taxaembarque) as valorEmbarque, "); + sql.append(" b.preciopagado as importetarifa, "); + sql.append(" b.importetaxaembarque as importetaxaembarque, "); + sql.append(" b.importepedagio as importepedagio, "); sql.append(" 'C' as status, "); sql.append(" b.motivocancelacion_id as motivocancelacion, "); sql.append(" ee.impingreso as valorMulta "); @@ -332,7 +331,6 @@ public class FiscalHibernateDAO extends GenericHibernateDAO impl 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_ml2 ml2 ON ml2.boleto_id = r4.boleto_id "); sql.append(" INNER JOIN boleto b ON b.boleto_id = r4.boleto_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 alias_servico ase ON ase.origen_id = b.origen_id "); @@ -368,7 +366,10 @@ public class FiscalHibernateDAO extends GenericHibernateDAO impl sql.append(" eo.cveestado, "); sql.append(" ed.cveestado, "); sql.append(" b.motivocancelacion_id, "); - sql.append(" ee.impingreso "); + sql.append(" ee.impingreso, "); + sql.append(" b.preciopagado, "); + sql.append(" b.importetaxaembarque, "); + sql.append(" b.importepedagio "); sql.append(" ORDER BY r4.datainicialemissao, "); sql.append(" r4.numserie20, "); sql.append(" r4.coo "); @@ -400,16 +401,15 @@ public class FiscalHibernateDAO extends GenericHibernateDAO impl sql.append(" r5.codproduto as codProduto, "); sql.append(" fi.modelo as modeloImpressora, "); sql.append(" r4.usuario_id as numCaixa, "); - sql.append(" max(ml2.valortarifa) as valorTarifa, "); - sql.append(" max(ml2.pedagio) as valorPedagio, "); - sql.append(" max(ml2.taxaembarque) as valorEmbarque, "); + sql.append(" b.preciopagado as importetarifa, "); + sql.append(" b.importetaxaembarque as importetaxaembarque, "); + sql.append(" b.importepedagio as importepedagio, "); 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(" 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_ml2 ml2 ON ml2.boleto_id = r4.boleto_id "); sql.append(" INNER JOIN boleto b ON b.boleto_id = r4.boleto_id "); sql.append(" LEFT JOIN alias_servico ase ON ase.origen_id = b.origen_id "); sql.append(" and ase.destino_id = b.destino_id and ase.ruta_id = b.ruta_id and ase.activo = 1 and ase.corrida_id is null "); @@ -441,7 +441,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(" b.preciopagado, "); + sql.append(" b.importetaxaembarque, "); + sql.append(" b.importepedagio "); sql.append(" ORDER BY r4.datainicialemissao, "); sql.append(" r4.numserie20, "); sql.append(" r4.coo "); diff --git a/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java index ce2e2b4ed..5350f108a 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java @@ -484,12 +484,10 @@ public class FiscalServiceImpl implements FiscalService { item.setMotivocancelacion(rset.getInt("motivocancelacion")); item.setValorMulta(rset.getBigDecimal("valorMulta")); - // 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")); + // TODO: Estes atributos foram criados, por motivo de divergencia no valorTotal com o valor unitario na tabela FISCAL_R5 + item.setValorTarifa(rset.getBigDecimal("importetarifa")); + item.setValorPedagio(rset.getBigDecimal("importepedagio")); + item.setValorEmbarque(rset.getBigDecimal("importetaxaembarque")); ImportacionFiscalVO novoFiscal = item; if (!novoFiscal.equals(fiscal) && fiscal != null) { @@ -590,7 +588,7 @@ public class FiscalServiceImpl implements FiscalService { /* * Item da importacion Fiscal ECF */ - String itemDoc = montarItensFiscais(item, seq, true); + String itemDoc = montarItensFiscais(item, seq); itensDocs.add(itemDoc); qtdItens++; @@ -688,13 +686,11 @@ public class FiscalServiceImpl implements FiscalService { item.setModeloImpressora(rset.getString("modeloImpressora")); item.setNumCaixa(rset.getString("numCaixa")); item.setStatus(rset.getString("status")); - - // 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")); + + // TODO: Estes atributos foram criados, por motivo de divergencia no valorTotal com o valor unitario na tabela FISCAL_R5 + item.setValorTarifa(rset.getBigDecimal("importetarifa")); + item.setValorPedagio(rset.getBigDecimal("importepedagio")); + item.setValorEmbarque(rset.getBigDecimal("importetaxaembarque")); ImportacionFiscalVO novoFiscal = item; if (!novoFiscal.equals(fiscal) && fiscal != null) { @@ -791,7 +787,7 @@ public class FiscalServiceImpl implements FiscalService { /* * Item da importacion Fiscal ECF */ - String itemDoc = montarItensFiscais(item, seq, false); + String itemDoc = montarItensFiscais(item, seq); itensDocs.add(itemDoc); qtdItens++; @@ -847,7 +843,7 @@ public class FiscalServiceImpl implements FiscalService { } } - private String montarItensFiscais(ItemFiscalVO item, Integer seq, boolean isCancelados) { + private String montarItensFiscais(ItemFiscalVO item, Integer seq) { String tipoPassagem = null; if (item.getRepTributado().length() == 7 && item.getRepTributado().substring(2, 3).equals(SituacaoTributaria.TRIBUTADO.getValue())) { @@ -894,8 +890,9 @@ public class FiscalServiceImpl implements FiscalService { } - String valorUnitario = StringHelper.preencherZeroEsquerda(valorItem.toString(), 15); - String valorTotal = StringHelper.preencherZeroEsquerda(valorItem.toString(), 15); + valorItem = UtileriasFiscal.arredondar(valorItem); + String valorUnitario = UtileriasFiscal.formataZeroDecimal(valorItem, 15); + String valorTotal = valorUnitario; String aliquotaItem = StringHelper.preencherZeroEsquerda(null, 7); String impostoItem = StringHelper.preencherZeroEsquerda(null, 15); @@ -955,21 +952,18 @@ public class FiscalServiceImpl implements FiscalService { String coo = null; String serie = null; - String brancos = StringHelper.preencherStringEspacoEsquerda(null, 111); - if (isCancelados) { - coo = StringHelper.preencherStringEspacoDireita(item.getCoo(), 9); - serie = item.getNumImpressora(); - if (serie.length() >= 20) { - serie = serie.substring(17); - serie = StringHelper.preencherStringEspacoEsquerda(serie, 3); - } else { - serie = StringHelper.preencherStringEspacoEsquerda(null, 3); - } - - brancos = StringHelper.preencherStringEspacoEsquerda(null, 99); + coo = StringHelper.preencherStringEspacoDireita(item.getCoo(), 9); + serie = item.getNumImpressora(); + if (serie.length() >= 20) { + serie = serie.substring(17); + serie = StringHelper.preencherStringEspacoEsquerda(serie, 3); + } else { + serie = StringHelper.preencherStringEspacoEsquerda(null, 3); } + String brancos99 = StringHelper.preencherStringEspacoEsquerda(null, 99); + seq++; String sequencial = StringHelper.preencherZeroEsquerda(seq.toString(), 6); @@ -978,7 +972,7 @@ public class FiscalServiceImpl implements FiscalService { aliquotaPIS, valorPIS, aliquotaCofins, valorCofins, aliquotaCSLL, valorCSLL, aliquotaISS, valorISS, totalICMSIsentoItem, totalICMSNaotributadoItem, numeroPDV, numeroSeriePDV, modeloImpressora, numCaixa, status, coo, serie, - brancos, sequencial); + brancos99, sequencial); return itemDoc; } diff --git a/src/com/rjconsultores/ventaboletos/vo/impressaofiscal/ItemRelatorioVoucher.java b/src/com/rjconsultores/ventaboletos/vo/impressaofiscal/ItemRelatorioVoucher.java new file mode 100644 index 000000000..65394c1bf --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/vo/impressaofiscal/ItemRelatorioVoucher.java @@ -0,0 +1,116 @@ +package com.rjconsultores.ventaboletos.vo.impressaofiscal; + +import java.math.BigDecimal; + +public class ItemRelatorioVoucher { + + private String dataVendaVoucher; + private String dataEmissao; + private String empresa; + private String numDocFiscal; + private String bilhete; + private Long boletoVoucher; + private Long boletoImpresso; + private String tipoVenda; + private BigDecimal tarifa; + private BigDecimal pedagio; + private BigDecimal embarque; + private String status; + + public String getDataVendaVoucher() { + return dataVendaVoucher; + } + + public void setDataVendaVoucher(String dataVendaVoucher) { + this.dataVendaVoucher = dataVendaVoucher; + } + + public String getDataEmissao() { + return dataEmissao; + } + + public void setDataEmissao(String dataEmissao) { + this.dataEmissao = dataEmissao; + } + + public String getEmpresa() { + return empresa; + } + + public void setEmpresa(String empresa) { + this.empresa = empresa; + } + + public String getNumDocFiscal() { + return numDocFiscal; + } + + public void setNumDocFiscal(String numDocFiscal) { + this.numDocFiscal = numDocFiscal; + } + + public String getBilhete() { + return bilhete; + } + + public void setBilhete(String bilhete) { + this.bilhete = bilhete; + } + + public Long getBoletoVoucher() { + return boletoVoucher; + } + + public void setBoletoVoucher(Long boletoVoucher) { + this.boletoVoucher = boletoVoucher; + } + + public Long getBoletoImpresso() { + return boletoImpresso; + } + + public void setBoletoImpresso(Long boletoImpresso) { + this.boletoImpresso = boletoImpresso; + } + + public String getTipoVenda() { + return tipoVenda; + } + + public void setTipoVenda(String tipoVenda) { + this.tipoVenda = tipoVenda; + } + + public BigDecimal getTarifa() { + return tarifa; + } + + public void setTarifa(BigDecimal tarifa) { + this.tarifa = tarifa; + } + + public BigDecimal getPedagio() { + return pedagio; + } + + public void setPedagio(BigDecimal pedagio) { + this.pedagio = pedagio; + } + + public BigDecimal getEmbarque() { + return embarque; + } + + public void setEmbarque(BigDecimal embarque) { + this.embarque = embarque; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + +}