fixes bug#11035
dev:julio qua:julio git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@82304 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
f90bdf1d1f
commit
dafd5ccf09
|
@ -0,0 +1,16 @@
|
||||||
|
package com.rjconsultores.ventaboletos.dao;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Estado;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.exportacao.bpe.ExportacaoBPEVo;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.fiscal.vo.FiscalRdi;
|
||||||
|
|
||||||
|
public interface BpeDAO {
|
||||||
|
|
||||||
|
public List<FiscalRdi> buscarBpeRDI(Connection connection, Date inicio, Date fim, Integer empresaId, List<Estado> estados, boolean isReceitaTerceiros);
|
||||||
|
|
||||||
|
public ExportacaoBPEVo buscarRegistroExportacaoBpe(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado);
|
||||||
|
}
|
|
@ -0,0 +1,671 @@
|
||||||
|
package com.rjconsultores.ventaboletos.dao.hibernate;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
import org.hibernate.SessionFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
|
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.dao.BpeDAO;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Estado;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.UtiliteriasFiscal;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.exportacao.bpe.ExportacaoBPEBase;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.exportacao.bpe.ExportacaoBPEVo;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.fiscal.vo.DetalhadoFiscal;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.fiscal.vo.FiscalRdi;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.fiscal.vo.RdiValidacion;
|
||||||
|
import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement;
|
||||||
|
|
||||||
|
@Repository("bpeDAO")
|
||||||
|
public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
|
||||||
|
private static Logger log = Logger.getLogger(BpeHibernateDAO.class);
|
||||||
|
|
||||||
|
private static final String DATE_FORMAT_DMY = "dd/MM/yyyy";
|
||||||
|
private static final BigDecimal ZERO = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public BpeHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
|
||||||
|
setSessionFactory(factory);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ExportacaoBPEVo buscarRegistroExportacaoBpe(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) {
|
||||||
|
ExportacaoBPEVo exportacaoBPEVo = new ExportacaoBPEVo();
|
||||||
|
|
||||||
|
StringBuilder sql = new StringBuilder();
|
||||||
|
sql.append(" select distinct ");
|
||||||
|
sql.append(" c.caja_id, ");
|
||||||
|
sql.append(" c.numfoliosistema as numfoliosistema, ");
|
||||||
|
sql.append(" coalesce(c.preciopagado,0) + coalesce(c.importetaxaembarque,0) + coalesce(c.importeseguro,0) + coalesce(c.importepedagio,0) + coalesce(c.importeoutros,0) as valortotal, ");
|
||||||
|
sql.append(" bpe.codstat as codstatus, ");
|
||||||
|
// sql.append(" coalesce(bpe.xmlcontingencia, bpe.xmlregular) as xml_bpe, ");
|
||||||
|
// sql.append(" DBMS_LOB.substr(coalesce(bpe.xmlcontingencia, bpe.xmlregular) , 3000) as xml_bpe, ");
|
||||||
|
sql.append(" DBMS_LOB.substr(coalesce(bpe.xmlcontingencia, bpe.xmlregular) , 4000) as xml_bpe, ");
|
||||||
|
sql.append(" DBMS_LOB.substr(coalesce(bpe.xmlcontingencia, bpe.xmlregular) , 4000, 4001) as xml_bpe_2, ");
|
||||||
|
sql.append(" DBMS_LOB.substr(coalesce(bpe.xmlcontingencia, bpe.xmlregular) , 4000, 8001) as xml_bpe_3, ");
|
||||||
|
sql.append(" bpe.tipoevento as tipoevento, ");
|
||||||
|
sql.append(" bpe.desconto as v_desconto, ");
|
||||||
|
sql.append(" bpe.chbpe, ");
|
||||||
|
sql.append(" coalesce(chbpe_substituicao, ' ') as chbpe_sub, ");
|
||||||
|
sql.append(" bpe.dhrecbto, ");
|
||||||
|
sql.append(" to_char(c.feccreacion, 'yyyymmdd') as dh_emisao, ");
|
||||||
|
sql.append(" coalesce(bpe.tiposubstituicao, '0') as tp_bpe, ");
|
||||||
|
sql.append(" bpe.retorno_id as retorno, ");
|
||||||
|
sql.append(" bpe.nprot, ");
|
||||||
|
sql.append(" coalesce(c.num_bpe, c.numfoliosistema) as num_bpe, ");
|
||||||
|
sql.append(" coalesce(c.numserie_bpe, '1') as numserie_bpe, ");
|
||||||
|
sql.append(" c.categoria_id, ");
|
||||||
|
sql.append(" e.codestabelecimento as cod_estabelecimento, ");
|
||||||
|
sql.append(" ep.crtbpe as crt, ");
|
||||||
|
sql.append(" (case when (coalesce(case when s.aliasorigen_id is null then po.regionmetropolitana_id else pos.regionmetropolitana_id end, -1) = coalesce(case when s.aliasorigen_id is null then pd.regionmetropolitana_id else pds.regionmetropolitana_id end, -2)) then 1 else 0 end) as isenta, ");
|
||||||
|
sql.append(" ((case when coalesce(r.indtribtarifa,0) = 1 then c.preciopagado else 0 end) + (case when coalesce(r.indtribtaxaembarque,0) = 1 then c.importetaxaembarque else 0 end) + (case when coalesce(r.indtribpedagio,0) = 1 then c.importepedagio else 0 end)) as valortributado, ");
|
||||||
|
sql.append(" (case when s.aliasorigen_id is null then co.codibge else cos.codibge end) as municipio_origem, ");
|
||||||
|
sql.append(" (case when s.aliasorigen_id is null then eo.cveestado else eos.cveestado end) as estado_origem, ");
|
||||||
|
sql.append(" (case when s.aliasdestino_id is null then cd.codibge else cds.codibge end) as municipio_destino, ");
|
||||||
|
sql.append(" (case when s.aliasdestino_id is null then ed.cveestado else eds.cveestado end) as estado_destino, ");
|
||||||
|
sql.append(" (case when s.aliasorigen_id is null then ei.porcredbaseicms else eis.porcredbaseicms end) as red_base_calc_estadual, ");
|
||||||
|
sql.append(" (case when s.aliasorigen_id is null then ei.porcredbaseicmsim else eis.porcredbaseicmsim end) as red_base_calc_municipal, ");
|
||||||
|
sql.append(" (case when s.aliasorigen_id is null then ei.porcredmunicipal else eis.porcredmunicipal end) as porc_red_municipal, ");
|
||||||
|
sql.append(" (case when s.aliasorigen_id is null then ei.porcredestadual else eis.porcredestadual end) as porc_red_estadual, ");
|
||||||
|
sql.append(" (case when s.aliasorigen_id is null then ei.tributacaoimportacao else eis.tributacaoimportacao end) as tributacao_importacao, ");
|
||||||
|
sql.append(" (case when s.aliasorigen_id is null then ei.codigocontabilestadual else eis.codigocontabilestadual end) as codigocontabil_estadual, ");
|
||||||
|
sql.append(" (case when s.aliasorigen_id is null then ei.codigocontabilmunicipal else eis.codigocontabilmunicipal end) as codigocontabil_municipal, ");
|
||||||
|
sql.append(" pag.pagamentos ");
|
||||||
|
sql.append(" from caja c ");
|
||||||
|
sql.append(" join bpe bpe on c.transacao_id = bpe.boleto_id ");
|
||||||
|
sql.append(" join estado e_bpe on e_bpe.codibge = bpe.uf ");
|
||||||
|
sql.append(" join empresa ep on c.empresacorrida_id = ep.empresa_id ");
|
||||||
|
sql.append(" join ruta r on r.ruta_id = c.ruta_id ");
|
||||||
|
sql.append(" join parada po on po.parada_id = c.origen_id ");
|
||||||
|
sql.append(" join ciudad co on co.ciudad_id = po.ciudad_id ");
|
||||||
|
sql.append(" join estado eo on eo.estado_id = co.estado_id ");
|
||||||
|
sql.append(" join parada pd on pd.parada_id = c.destino_id ");
|
||||||
|
sql.append(" join ciudad cd on cd.ciudad_id = pd.ciudad_id ");
|
||||||
|
sql.append(" join estado ed on ed.estado_id = cd.estado_id ");
|
||||||
|
sql.append(" join empresa_imposto ei on ei.empresa_id = c.empresacorrida_id and ei.estado_id = eo.estado_id ");
|
||||||
|
sql.append(" left join estado e on e.estado_id = e_bpe.estado_id ");
|
||||||
|
sql.append(" left join alias_servico s on s.origen_id = c.origen_id and s.destino_id = c.destino_id and (s.corrida_id = c.corrida_id or s.corrida_id is null) and s.ruta_id = c.ruta_id ");
|
||||||
|
sql.append(" left join parada pos on pos.parada_id = s.aliasorigen_id ");
|
||||||
|
sql.append(" left join ciudad cos on cos.ciudad_id = pos.ciudad_id ");
|
||||||
|
sql.append(" left join estado eos on eos.estado_id = cos.estado_id ");
|
||||||
|
sql.append(" left join parada pds on pds.parada_id = s.aliasdestino_id ");
|
||||||
|
sql.append(" left join ciudad cds on cds.ciudad_id = pds.ciudad_id ");
|
||||||
|
sql.append(" left join estado eds on eds.estado_id = cds.estado_id ");
|
||||||
|
sql.append(" left join empresa_imposto eis on eis.empresa_id = c.empresacorrida_id and eis.estado_id = eos.estado_id ");
|
||||||
|
sql.append(" left join (select c.caja_id, ");
|
||||||
|
sql.append(" listagg (fp.descpago || '|' || cf.importe , ';') within group (order by cf.formapago_id) as pagamentos ");
|
||||||
|
sql.append(" from caja c ");
|
||||||
|
sql.append(" inner join caja_formapago cf on cf.caja_id = c.caja_id ");
|
||||||
|
sql.append(" inner join forma_pago fp on cf.formapago_id = fp.formapago_id ");
|
||||||
|
sql.append(" where c.activo = 1 and cf.activo = 1 ");
|
||||||
|
sql.append(" group by c.caja_id) pag on pag.caja_id = c.caja_id ");
|
||||||
|
sql.append(" where c.activo = 1 and po.activo = 1 and co.activo = 1 and eo.activo = 1 and ei.activo = 1 ");
|
||||||
|
sql.append(" and coalesce(case when s.aliasorigen_id is null then ei.activo else eis.activo end, 0) = 1 ");
|
||||||
|
sql.append(" and bpe.tipoamb = 1 ");
|
||||||
|
sql.append(" and ((c.indreimpresion = 0 and c.motivocancelacion_id is null and c.numfoliosistema is not null) or (c.indstatusboleto = 'E' and c.indreimpresion = 1)) ");
|
||||||
|
sql.append(" and ((case when coalesce(r.indtribtarifa,0) = 1 then c.preciopagado else 0 end) + (case when coalesce(r.indtribtaxaembarque,0) = 1 then c.importetaxaembarque else 0 end) + (case when coalesce(r.indtribpedagio,0) = 1 then c.importepedagio else 0 end)) > 0 ");
|
||||||
|
sql.append(" and c.feccreacion >= to_date(?,'DD/MM/YYYY HH24:MI:SS') and c.feccreacion <= to_date(?,'DD/MM/YYYY HH24:MI:SS') ");
|
||||||
|
sql.append(" and c.empresacorrida_id = ? ");
|
||||||
|
sql.append(" and ((case when s.aliasorigen_id is null then eo.cveestado else eos.cveestado end) = ?) ");
|
||||||
|
|
||||||
|
try {
|
||||||
|
PreparedStatement ps = connection.prepareStatement(sql.toString());
|
||||||
|
ps.setString(1, DateUtil.getStringDate(inicio, DATE_FORMAT_DMY) + " 00:00:00");
|
||||||
|
ps.setString(2, DateUtil.getStringDate(fim, DATE_FORMAT_DMY) + " 23:59:59");
|
||||||
|
ps.setLong(3, Long.valueOf(empresaId));
|
||||||
|
ps.setString(4, cveestado);
|
||||||
|
|
||||||
|
ResultSet rs = ps.executeQuery();
|
||||||
|
|
||||||
|
ExportacaoBPEBase registro = null;
|
||||||
|
|
||||||
|
while (rs.next()) {
|
||||||
|
BigDecimal valortributado = BigDecimal.ZERO;
|
||||||
|
BigDecimal valortotal = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
if (rs.getBigDecimal("valortributado") != null) {
|
||||||
|
valortributado = rs.getBigDecimal("valortributado");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rs.getBigDecimal("valortotal") != null) {
|
||||||
|
valortotal = rs.getBigDecimal("valortotal");
|
||||||
|
}
|
||||||
|
|
||||||
|
registro = new ExportacaoBPEBase();
|
||||||
|
|
||||||
|
registro.setCajaId(rs.getLong("caja_id"));
|
||||||
|
registro.setNumfoliosistema(rs.getString("numfoliosistema"));
|
||||||
|
registro.setvDesconto(rs.getBigDecimal("v_desconto"));
|
||||||
|
registro.setChbpe(rs.getString("chbpe"));
|
||||||
|
registro.setChbpeSub(rs.getString("chbpe_sub"));
|
||||||
|
registro.setDhrecbto(rs.getString("dhrecbto"));
|
||||||
|
registro.setDhEmisao(rs.getString("dh_emisao"));
|
||||||
|
registro.setTpBpe(rs.getString("tp_bpe"));
|
||||||
|
registro.setRetorno(rs.getString("retorno"));
|
||||||
|
registro.setNprot(rs.getString("nprot"));
|
||||||
|
registro.setNumBpe(rs.getString("num_bpe"));
|
||||||
|
registro.setNumSerieBpe(rs.getString("numserie_bpe"));
|
||||||
|
registro.setCodEstabelecimento(rs.getString("cod_estabelecimento"));
|
||||||
|
registro.setIsenta(rs.getBoolean("isenta"));
|
||||||
|
registro.setMunicipioOrigem(rs.getString("municipio_origem"));
|
||||||
|
registro.setEstadoOrigem(rs.getString("estado_origem"));
|
||||||
|
registro.setMunicipioDestino(rs.getString("municipio_destino"));
|
||||||
|
registro.setEstadoDestino(rs.getString("estado_destino"));
|
||||||
|
registro.setRedBaseCalcEstadual(rs.getBigDecimal("red_base_calc_estadual"));
|
||||||
|
registro.setRedBaseCalcMunicipal(rs.getBigDecimal("red_base_calc_municipal"));
|
||||||
|
registro.setPorcRedMunicipal(rs.getBigDecimal("porc_red_municipal"));
|
||||||
|
registro.setPorcRedEstadual(rs.getBigDecimal("porc_red_estadual"));
|
||||||
|
registro.setTributacaoImportacao(rs.getBigDecimal("tributacao_importacao"));
|
||||||
|
registro.setPagamentos(rs.getString("pagamentos"));
|
||||||
|
registro.setCodstatus(rs.getString("codstatus"));
|
||||||
|
registro.setTipoevento(rs.getString("tipoevento"));
|
||||||
|
registro.setCodigoContabilEstadual(rs.getString("codigocontabil_estadual"));
|
||||||
|
registro.setCodigocontabilMunicipal(rs.getString("codigocontabil_municipal"));
|
||||||
|
registro.setCrt(rs.getInt("crt"));
|
||||||
|
registro.setValortributado(valortributado);
|
||||||
|
registro.setValortotal(valortotal);
|
||||||
|
|
||||||
|
String xml_bpe = rs.getNString("xml_bpe");
|
||||||
|
String xml_bpe_2 = rs.getNString("xml_bpe_2");
|
||||||
|
String xml_bpe_3 = rs.getNString("xml_bpe_3");
|
||||||
|
String[] array = new String[3];
|
||||||
|
array[0] = xml_bpe;
|
||||||
|
array[1] = xml_bpe_2;
|
||||||
|
array[2] = xml_bpe_3;
|
||||||
|
String xmlBpe = StringUtils.join(array);
|
||||||
|
registro.setXml(xmlBpe);
|
||||||
|
|
||||||
|
exportacaoBPEVo.gerarListas(registro);
|
||||||
|
}
|
||||||
|
|
||||||
|
rs.close();
|
||||||
|
ps.close();
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e.getMessage(), e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return exportacaoBPEVo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<FiscalRdi> buscarBpeRDI(Connection connection, Date inicio, Date fim, Integer empresaId, List<Estado> estados, boolean isReceitaTerceiros) {
|
||||||
|
|
||||||
|
String ufs = null;
|
||||||
|
for (Estado estado : estados) {
|
||||||
|
if (ufs == null)
|
||||||
|
ufs = "'" + estado.getCveestado() + "'";
|
||||||
|
else
|
||||||
|
ufs = ufs + ",'" + estado.getCveestado() + "'";
|
||||||
|
}
|
||||||
|
|
||||||
|
List<DetalhadoFiscal> list = montaRelatorioRDI(connection, inicio, fim, empresaId, ufs);
|
||||||
|
List<FiscalRdi> rdis = calcularRelatorioRDI(list, isReceitaTerceiros);
|
||||||
|
return agrupaRdi(rdis);
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<FiscalRdi> agrupaRdi(List<FiscalRdi> list) {
|
||||||
|
List<FiscalRdi> aux = new ArrayList<FiscalRdi>();
|
||||||
|
|
||||||
|
FiscalRdi rdi = null;
|
||||||
|
for (FiscalRdi detail : list) {
|
||||||
|
|
||||||
|
FiscalRdi atual = new FiscalRdi(detail.getEstado(), detail.getTipoViagem(), detail.getTipoReceita());
|
||||||
|
if (!aux.contains(atual)) {
|
||||||
|
rdi = new FiscalRdi(detail.getEstado(), detail.getTipoViagem(), detail.getTipoReceita());
|
||||||
|
aux.add(rdi);
|
||||||
|
}
|
||||||
|
|
||||||
|
int index = aux.indexOf(atual);
|
||||||
|
FiscalRdi agr = aux.get(index);
|
||||||
|
montarParametros(agr, detail);
|
||||||
|
aux.set(index, agr);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<RdiValidacion> validacion = new ArrayList<RdiValidacion>();
|
||||||
|
for (FiscalRdi detail : aux) {
|
||||||
|
|
||||||
|
RdiValidacion rv = new RdiValidacion(detail.getEstado());
|
||||||
|
if (!validacion.contains(rv)) {
|
||||||
|
rv = new RdiValidacion(detail.getEstado());
|
||||||
|
validacion.add(rv);
|
||||||
|
}
|
||||||
|
|
||||||
|
int indice = validacion.indexOf(rv);
|
||||||
|
RdiValidacion rvAux = validacion.get(indice);
|
||||||
|
|
||||||
|
if (detail.getTipoReceita().equals("REC") && detail.getTipoViagem().equals("IM"))
|
||||||
|
rvAux.setTemIMRec(true);
|
||||||
|
|
||||||
|
if (detail.getTipoReceita().equals("DEV") && detail.getTipoViagem().equals("IM"))
|
||||||
|
rvAux.setTemIMDev(true);
|
||||||
|
|
||||||
|
if (detail.getTipoReceita().equals("REC") && detail.getTipoViagem().equals("IE"))
|
||||||
|
rvAux.setTemIERec(true);
|
||||||
|
|
||||||
|
if (detail.getTipoReceita().equals("DEV") && detail.getTipoViagem().equals("IE"))
|
||||||
|
rvAux.setTemIEDev(true);
|
||||||
|
|
||||||
|
validacion.set(indice, rvAux);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (RdiValidacion val : validacion) {
|
||||||
|
|
||||||
|
if (!val.isTemIMRec()) {
|
||||||
|
FiscalRdi rdiAux = new FiscalRdi(val.getEstado(), "IM", "REC");
|
||||||
|
aux.add(montarParametros(rdiAux, new FiscalRdi()));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!val.isTemIMDev()) {
|
||||||
|
FiscalRdi rdiAux = new FiscalRdi(val.getEstado(), "IM", "DEV");
|
||||||
|
aux.add(montarParametros(rdiAux, new FiscalRdi()));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!val.isTemIERec()) {
|
||||||
|
FiscalRdi rdiAux = new FiscalRdi(val.getEstado(), "IE", "REC");
|
||||||
|
aux.add(montarParametros(rdiAux, new FiscalRdi()));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!val.isTemIEDev()) {
|
||||||
|
FiscalRdi rdiAux = new FiscalRdi(val.getEstado(), "IE", "DEV");
|
||||||
|
aux.add(montarParametros(rdiAux, new FiscalRdi()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Collections.sort(aux);
|
||||||
|
return aux;
|
||||||
|
}
|
||||||
|
|
||||||
|
private FiscalRdi montarParametros(FiscalRdi agr, FiscalRdi detail) {
|
||||||
|
agr.setQuantBilhetes(agr.getQuantBilhetes().add(detail.getTarifa() == null ? BigDecimal.ZERO : BigDecimal.ONE));
|
||||||
|
agr.setTarifa(agr.getTarifa().add(detail.getTarifa() == null ? BigDecimal.ZERO : detail.getTarifa()));
|
||||||
|
agr.setSeguro(agr.getSeguro().add(detail.getSeguro() == null ? BigDecimal.ZERO : detail.getSeguro()));
|
||||||
|
agr.setTxEmbarque(agr.getTxEmbarque().add(detail.getTxEmbarque() == null ? BigDecimal.ZERO : detail.getTxEmbarque()));
|
||||||
|
agr.setPedagio(agr.getPedagio().add(detail.getPedagio() == null ? BigDecimal.ZERO : detail.getPedagio()));
|
||||||
|
agr.setPassagem(agr.getPassagem().add(detail.getPassagem() == null ? BigDecimal.ZERO : detail.getPassagem()));
|
||||||
|
agr.setIsentos(agr.getIsentos().add(detail.getIsentos() == null ? BigDecimal.ZERO : detail.getIsentos()));
|
||||||
|
agr.setOutros(agr.getOutros().add(detail.getOutros() == null ? BigDecimal.ZERO : detail.getOutros()));
|
||||||
|
agr.setRbc(detail.getRbc() == null ? BigDecimal.ZERO : detail.getRbc());
|
||||||
|
agr.setBaseCalculo(agr.getBaseCalculo().add(detail.getBaseCalculo() == null ? BigDecimal.ZERO : detail.getBaseCalculo()));
|
||||||
|
agr.setAliquota(detail.getAliquota() == null ? BigDecimal.ZERO : detail.getAliquota());
|
||||||
|
agr.setIcms(agr.getIcms().add(detail.getIcms() == null ? BigDecimal.ZERO : detail.getIcms()));
|
||||||
|
agr.setCp(detail.getCp() == null ? BigDecimal.ZERO : detail.getCp());
|
||||||
|
agr.setCredPres(agr.getCredPres().add(detail.getCredPres() == null ? BigDecimal.ZERO : detail.getCredPres()));
|
||||||
|
agr.setIcmsRec(agr.getIcmsRec().add(detail.getIcmsRec() == null ? BigDecimal.ZERO : detail.getIcmsRec()));
|
||||||
|
return agr;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<FiscalRdi> calcularRelatorioRDI(List<DetalhadoFiscal> list, boolean isReceitaTerceiros) {
|
||||||
|
|
||||||
|
List<FiscalRdi> rdis = new ArrayList<FiscalRdi>();
|
||||||
|
|
||||||
|
for (DetalhadoFiscal det : list) {
|
||||||
|
|
||||||
|
BigDecimal passagem = BigDecimal.ZERO;
|
||||||
|
BigDecimal isentos = BigDecimal.ZERO;
|
||||||
|
BigDecimal outros = BigDecimal.ZERO;
|
||||||
|
BigDecimal rbc = BigDecimal.ZERO;
|
||||||
|
BigDecimal baseCalculo = BigDecimal.ZERO;
|
||||||
|
BigDecimal aliquota = BigDecimal.ZERO;
|
||||||
|
BigDecimal icms = BigDecimal.ZERO;
|
||||||
|
BigDecimal cp = BigDecimal.ZERO;
|
||||||
|
BigDecimal credPres = BigDecimal.ZERO;
|
||||||
|
BigDecimal icmsRec = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
if (det.getIsenta()) {
|
||||||
|
isentos = somarTotalBilhete(det, isReceitaTerceiros);
|
||||||
|
} else {
|
||||||
|
passagem = somarTotalBilhete(det, isReceitaTerceiros);
|
||||||
|
|
||||||
|
if (det.isInterEstadual()) {
|
||||||
|
aliquota = det.getTributacaoImportacao() != null ? det.getTributacaoImportacao() : det.getIcmsInterestadual();
|
||||||
|
} else {
|
||||||
|
aliquota = det.getTributacaoImportacao() != null ? det.getTributacaoImportacao() : det.getIcmsIntermunicipal();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (det.isInterEstadual()) {
|
||||||
|
cp = det.getPorcRedEstadual() == null ? BigDecimal.ZERO : det.getPorcRedEstadual();
|
||||||
|
} else {
|
||||||
|
cp = det.getPorcRedMunicipal() == null ? BigDecimal.ZERO : det.getPorcRedMunicipal();
|
||||||
|
}
|
||||||
|
|
||||||
|
rbc = det.getRedBaseCalcIcms() == null ? BigDecimal.ZERO : det.getRedBaseCalcIcms().divide(UtiliteriasFiscal.CEM);
|
||||||
|
BigDecimal redutor = passagem.multiply(rbc);
|
||||||
|
baseCalculo = passagem.subtract(redutor);
|
||||||
|
icms = baseCalculo.multiply(aliquota.divide(BigDecimal.TEN.multiply(BigDecimal.TEN)));
|
||||||
|
credPres = icms.multiply(cp.divide(BigDecimal.TEN.multiply(BigDecimal.TEN)));
|
||||||
|
icmsRec = icms.subtract(credPres);
|
||||||
|
}
|
||||||
|
outros = isentos.equals(BigDecimal.ZERO) ? BigDecimal.ZERO : passagem.subtract(isentos).subtract(baseCalculo);
|
||||||
|
|
||||||
|
String tipoViagem = null;
|
||||||
|
if (det.isInterEstadual()) {
|
||||||
|
tipoViagem = "IE";
|
||||||
|
} else {
|
||||||
|
tipoViagem = "IM";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isReceitaTerceiros) {
|
||||||
|
rdis.add(new FiscalRdi(det.getEstadoOrigem(), tipoViagem, det.getTipoReceita(), det.getTarifa(),
|
||||||
|
det.getSeguro(), det.getTaxaEmbarque(), det.getPedagio(), passagem, isentos, outros, det.getRedBaseCalcIcms(),
|
||||||
|
baseCalculo, aliquota, icms, cp, credPres, icmsRec));
|
||||||
|
} else {
|
||||||
|
rdis.add(new FiscalRdi(det.getEstadoOrigem(), tipoViagem, det.getTipoReceita(), det.getTarifa(),
|
||||||
|
ZERO, ZERO, ZERO, passagem, isentos, outros, det.getRedBaseCalcIcms(),
|
||||||
|
baseCalculo, aliquota, icms, cp, credPres, icmsRec));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return rdis;
|
||||||
|
}
|
||||||
|
|
||||||
|
private BigDecimal somarTotalBilhete(DetalhadoFiscal det, boolean isReceitaTerceiros) {
|
||||||
|
|
||||||
|
BigDecimal total = BigDecimal.ZERO;
|
||||||
|
total = total.add(det.getTarifa() == null ? BigDecimal.ZERO : det.getTarifa());
|
||||||
|
|
||||||
|
if (isReceitaTerceiros && (det.isInterEstadual() && det.getIndTxembarqueEstadual() || !det.isInterEstadual() && det.getIndTxembarqueMunicipal()))
|
||||||
|
total = total.add(det.getTaxaEmbarque() == null ? BigDecimal.ZERO : det.getTaxaEmbarque());
|
||||||
|
|
||||||
|
if (isReceitaTerceiros && (det.isInterEstadual() && det.getIndPedagioEstdual() || !det.isInterEstadual() && det.getIndPedagioMunicipal()))
|
||||||
|
total = total.add(det.getPedagio() == null ? BigDecimal.ZERO : det.getPedagio());
|
||||||
|
|
||||||
|
if (isReceitaTerceiros && (det.isInterEstadual() && det.getIndSeguroEstadual() || !det.isInterEstadual() && det.getIndSeguroMunicipal()))
|
||||||
|
total = total.add(det.getSeguro() == null ? BigDecimal.ZERO : det.getSeguro());
|
||||||
|
|
||||||
|
return total;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<DetalhadoFiscal> montaRelatorioRDI(Connection connection, Date inicio, Date fim, Integer empresaId, String ufs) {
|
||||||
|
|
||||||
|
List<DetalhadoFiscal> list = new ArrayList<DetalhadoFiscal>();
|
||||||
|
try {
|
||||||
|
|
||||||
|
StringBuilder sql = new StringBuilder();
|
||||||
|
sql.append(sqlRelatorioRDIVendidos(ufs));
|
||||||
|
sql.append(" union all ");
|
||||||
|
sql.append(sqlRelatorioRDICancelados(ufs));
|
||||||
|
|
||||||
|
NamedParameterStatement ps = new NamedParameterStatement(connection, sql.toString());
|
||||||
|
ps.setLong("EMPRESA_ID", Long.valueOf(empresaId));
|
||||||
|
|
||||||
|
ps.setTimestamp("DATE_INICIO", new java.sql.Timestamp(DateUtil.inicioFecha(inicio).getTime()));
|
||||||
|
ps.setTimestamp("DATE_FIM", new java.sql.Timestamp(DateUtil.fimFecha(fim).getTime()));
|
||||||
|
|
||||||
|
ResultSet rs = ps.executeQuery();
|
||||||
|
while (rs.next()) {
|
||||||
|
|
||||||
|
DetalhadoFiscal df = new DetalhadoFiscal();
|
||||||
|
df.setCajaId(rs.getLong("cajaId"));
|
||||||
|
df.setTipoReceita(rs.getString("tipoReceita"));
|
||||||
|
df.setNumoperacion(rs.getString("numoperacion"));
|
||||||
|
df.setEstadoId(rs.getInt("estadoId"));
|
||||||
|
df.setFechorVenta(rs.getDate("fechorVenta"));
|
||||||
|
df.setIcmsInterestadual(rs.getBigDecimal("icmsInterestadual"));
|
||||||
|
df.setIcmsIntermunicipal(rs.getBigDecimal("icmsIntermunicipal"));
|
||||||
|
df.setEstadoOrigem(rs.getString("estadoOrigem"));
|
||||||
|
df.setEstadoDestino(rs.getString("estadoDestino"));
|
||||||
|
df.setMunicipioOrigem(rs.getString("municipioOrigem"));
|
||||||
|
df.setInterEstadual(rs.getBoolean("isInterEstadual"));
|
||||||
|
df.setIcmsInterestadual(rs.getBigDecimal("icmsInterestadual"));
|
||||||
|
df.setRedBaseCalcIcms(rs.getBigDecimal("redBaseCalcIcms"));
|
||||||
|
df.setPorcRedMunicipal(rs.getBigDecimal("porcRedMunicipal"));
|
||||||
|
df.setPorcRedEstadual(rs.getBigDecimal("porcRedEstadual"));
|
||||||
|
df.setTributacaoImportacao(rs.getBigDecimal("tributacaoImportacao"));
|
||||||
|
df.setIndTarifaMunicipal(rs.getBoolean("indtarifamunicipal"));
|
||||||
|
df.setIndSeguroMunicipal(rs.getBoolean("indseguromunicipal"));
|
||||||
|
df.setIndTxembarqueMunicipal(rs.getBoolean("indtxembarquemunicipal"));
|
||||||
|
df.setIndPedagioMunicipal(rs.getBoolean("indpedagiomunicipal"));
|
||||||
|
df.setIndTarifaEstadual(rs.getBoolean("indtarifaestadual"));
|
||||||
|
df.setIndSeguroEstadual(rs.getBoolean("indseguroestadual"));
|
||||||
|
df.setIndTxembarqueEstadual(rs.getBoolean("indtxembarqueestadual"));
|
||||||
|
df.setIndPedagioEstdual(rs.getBoolean("indpedagioestdual"));
|
||||||
|
df.setIsenta(rs.getBoolean("isenta"));
|
||||||
|
df.setTarifa(rs.getBigDecimal("tarifa"));
|
||||||
|
df.setTaxaEmbarque(rs.getBigDecimal("taxaEmbarque"));
|
||||||
|
df.setPedagio(rs.getBigDecimal("pedagio"));
|
||||||
|
df.setSeguro(rs.getBigDecimal("seguro"));
|
||||||
|
df.setOutros(rs.getBigDecimal("outros"));
|
||||||
|
df.setDatamov(rs.getString("datamov"));
|
||||||
|
list.add(df);
|
||||||
|
}
|
||||||
|
|
||||||
|
rs.close();
|
||||||
|
ps.close();
|
||||||
|
|
||||||
|
} catch (SQLException e) {
|
||||||
|
log.error("", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String sqlRelatorioRDIVendidos(String ufs) {
|
||||||
|
|
||||||
|
StringBuilder sql = new StringBuilder();
|
||||||
|
sql.append("select distinct ");
|
||||||
|
sql.append(" c.boleto_id as cajaId, ");
|
||||||
|
sql.append(" 'REC' as tipoReceita, ");
|
||||||
|
sql.append(" c.numoperacion as numoperacion, ");
|
||||||
|
sql.append(" trunc(c.feccreacion) as fechorVenta, ");
|
||||||
|
sql.append(" e_bpe.estado_id as estadoId, ");
|
||||||
|
sql.append(" ei.icms as icmsInterestadual, ");
|
||||||
|
sql.append(" ei.icmsim as icmsIntermunicipal, ");
|
||||||
|
sql.append(" e_bpe.cveestado as estadoOrigem, ");
|
||||||
|
sql.append(" ed.cveestado as estadoDestino, ");
|
||||||
|
sql.append(" co.codibge as municipioOrigem, ");
|
||||||
|
sql.append(" case when (e_bpe.cveestado = ed.cveestado) then 0 else 1 end as isInterEstadual, ");
|
||||||
|
sql.append(" ei.porcredbaseicms as redBaseCalcIcms, ");
|
||||||
|
sql.append(" ei.porcredmunicipal as porcRedMunicipal, ");
|
||||||
|
sql.append(" ei.porcredestadual as porcRedEstadual, ");
|
||||||
|
sql.append(" ei.indtarifamunicipal as indtarifamunicipal, ");
|
||||||
|
sql.append(" ei.indseguromunicipal as indseguromunicipal, ");
|
||||||
|
sql.append(" ei.indtxembarquemunicipal as indtxembarquemunicipal, ");
|
||||||
|
sql.append(" ei.indpedagiomunicipal as indpedagiomunicipal, ");
|
||||||
|
sql.append(" ei.indtarifaestadual as indtarifaestadual, ");
|
||||||
|
sql.append(" ei.indseguroestadual as indseguroestadual, ");
|
||||||
|
sql.append(" ei.indtxembarqueestadual as indtxembarqueestadual, ");
|
||||||
|
sql.append(" ei.indpedagioestdual as indpedagioestdual, ");
|
||||||
|
sql.append(" ei.tributacaoImportacao as tributacaoImportacao, ");
|
||||||
|
sql.append(" (case when (coalesce(po.regionmetropolitana_id, -1) = coalesce(pd.regionmetropolitana_id, -2)) then 1 else 0 end) as isenta, ");
|
||||||
|
sql.append(" coalesce(c.preciopagado, 0) as tarifa, ");
|
||||||
|
sql.append(" coalesce(c.importetaxaembarque, 0) as taxaEmbarque, ");
|
||||||
|
sql.append(" coalesce(c.importepedagio, 0) as pedagio, ");
|
||||||
|
sql.append(" coalesce(c.importeseguro, 0) as seguro, ");
|
||||||
|
sql.append(" coalesce(c.importeoutros, 0) as outros, ");
|
||||||
|
sql.append(" to_char(trunc(c.feccreacion), 'yyyymmdd') as datamov ");
|
||||||
|
sql.append("from boleto c ");
|
||||||
|
sql.append(" join bpe bpe on bpe.boleto_id = c.boleto_id ");
|
||||||
|
sql.append(" join estado e_bpe on e_bpe.codibge = bpe.uf ");
|
||||||
|
sql.append(" join ruta r on r.ruta_id = c.ruta_id ");
|
||||||
|
sql.append(" join parada po on po.parada_id = c.origen_id ");
|
||||||
|
sql.append(" join ciudad co on co.ciudad_id = po.ciudad_id ");
|
||||||
|
sql.append(" join estado eo on eo.estado_id = co.estado_id ");
|
||||||
|
sql.append(" join parada pd on pd.parada_id = c.destino_id ");
|
||||||
|
sql.append(" join ciudad cd on cd.ciudad_id = pd.ciudad_id ");
|
||||||
|
sql.append(" join estado ed on ed.estado_id = cd.estado_id ");
|
||||||
|
sql.append(" join empresa_imposto ei on ei.empresa_id = c.empresacorrida_id and ei.estado_id = e_bpe.estado_id ");
|
||||||
|
sql.append(" join fiscal_impressora imp on imp.numserie = c.serieimpfiscal ");
|
||||||
|
sql.append(" left join estado e on e.estado_id = imp.estadolocal_id ");
|
||||||
|
sql.append(" join inscricao_estadual ie on c.empresacorrida_id = ie.empresa_id ");
|
||||||
|
sql.append(" and ie.estado_id = e_bpe.estado_id and ie.activo = 1 ");
|
||||||
|
sql.append(" join ciudad cie on cie.ciudad_id = ie.ciudad_id ");
|
||||||
|
sql.append(" join estado eie on eie.estado_id = cie.estado_id ");
|
||||||
|
sql.append(" join marca ma on c.marca_id = ma.marca_id ");
|
||||||
|
sql.append(" join empresa ep on ep.empresa_id = ma.empresa_id ");
|
||||||
|
sql.append(" join punto_venta pv on pv.puntoventa_id = c.puntoventa_id ");
|
||||||
|
sql.append(" left join parada ppv on ppv.parada_id = pv.parada_id ");
|
||||||
|
sql.append(" left join ciudad cpv on cpv.ciudad_id = ppv.ciudad_id ");
|
||||||
|
sql.append(" left join estado epv on epv.estado_id = cpv.estado_id ");
|
||||||
|
sql.append("where c.activo = 1 ");
|
||||||
|
sql.append(" and po.activo = 1 and co.activo = 1 and eo.activo = 1 and ei.activo = 1 ");
|
||||||
|
sql.append(" and coalesce(ei.activo, 0) = 1 ");
|
||||||
|
sql.append(" and ((c.indreimpresion = 0 and c.motivocancelacion_id is null and c.numfoliosistema is not null) or (c.indstatusboleto = 'E' and c.indreimpresion = 1)) ");
|
||||||
|
sql.append(" and (coalesce(c.preciopagado,0) + coalesce(c.importetaxaembarque,0) + coalesce(c.importeseguro,0) + coalesce(c.importepedagio,0) + coalesce(c.importeoutros,0)) > 0 ");
|
||||||
|
sql.append(" and c.empresacorrida_id = :EMPRESA_ID ");
|
||||||
|
sql.append(" and c.feccreacion >= :DATE_INICIO and c.feccreacion <= :DATE_FIM ");
|
||||||
|
sql.append(" and e_bpe.cveestado in ( ").append(ufs).append(" ) ");
|
||||||
|
sql.append(" ");
|
||||||
|
sql.append("union all ");
|
||||||
|
sql.append(" ");
|
||||||
|
sql.append("select distinct ");
|
||||||
|
sql.append(" c.caja_id as cajaId, ");
|
||||||
|
sql.append(" 'REC' as tipoReceita, ");
|
||||||
|
sql.append(" c.numoperacion as numoperacion, ");
|
||||||
|
sql.append(" trunc(c.feccreacion) as fechorVenta, ");
|
||||||
|
sql.append(" coalesce(ae.estado_id, (case when s.aliasorigen_id is null then eo.estado_id else eos.estado_id end)) as estadoId,");
|
||||||
|
sql.append(" coalesce(ei.icms, eos.icms) as icmsInterestadual, ");
|
||||||
|
sql.append(" ei.icmsim as icmsIntermunicipal, ");
|
||||||
|
sql.append(" coalesce(ae.cveestado,(case when s.aliasorigen_id is null then eo.cveestado else eos.cveestado end)) as estadoOrigem,");
|
||||||
|
sql.append(" (case when s.aliasdestino_id is null then ed.cveestado else eds.cveestado end) as estadoDestino,");
|
||||||
|
sql.append(" (case when s.aliasorigen_id is null then co.codibge else cos.codibge end) as municipioOrigem,");
|
||||||
|
sql.append(" case when(coalesce(ae.cveestado,(case when s.aliasorigen_id is null then eo.cveestado else eos.cveestado end)) = ");
|
||||||
|
sql.append(" (case when s.aliasdestino_id is null then ed.cveestado else eds.cveestado end) ) then 0 else 1 end as isInterEstadual, ");
|
||||||
|
sql.append(" ei.porcredbaseicms as redBaseCalcIcms, ");
|
||||||
|
sql.append(" ei.porcredmunicipal as porcRedMunicipal, ");
|
||||||
|
sql.append(" ei.porcredestadual as porcRedEstadual, ");
|
||||||
|
sql.append(" ei.indtarifamunicipal as indtarifamunicipal, ");
|
||||||
|
sql.append(" coalesce(ei.indseguromunicipal, 0) as indseguromunicipal, ");
|
||||||
|
sql.append(" coalesce(ei.indtxembarquemunicipal, 0) as indtxembarquemunicipal, ");
|
||||||
|
sql.append(" coalesce(ei.indpedagiomunicipal, 0) as indpedagiomunicipal, ");
|
||||||
|
sql.append(" coalesce(ei.indtarifaestadual, 0) as indtarifaestadual, ");
|
||||||
|
sql.append(" coalesce(ei.indseguroestadual, 0) as indseguroestadual, ");
|
||||||
|
sql.append(" coalesce(ei.indtxembarqueestadual, 0) as indtxembarqueestadual, ");
|
||||||
|
sql.append(" coalesce(ei.indpedagioestdual, 0) as indpedagioestdual, ");
|
||||||
|
sql.append(" ei.tributacaoimportacao as tributacaoImportacao, ");
|
||||||
|
sql.append(" (case when (coalesce(case when s.aliasorigen_id is null then po.regionmetropolitana_id ");
|
||||||
|
sql.append(" else pos.regionmetropolitana_id end, -1) = coalesce(case when s.aliasorigen_id is null ");
|
||||||
|
sql.append(" then pd.regionmetropolitana_id else pds.regionmetropolitana_id end, -2)) then 1 else 0 end) as isenta, ");
|
||||||
|
sql.append(" coalesce(c.preciopagado, 0) as tarifa, ");
|
||||||
|
sql.append(" coalesce(c.importetaxaembarque, 0) as taxaEmbarque, ");
|
||||||
|
sql.append(" coalesce(c.importepedagio, 0) as pedagio, ");
|
||||||
|
sql.append(" coalesce(c.importeseguro, 0) as seguro, ");
|
||||||
|
sql.append(" coalesce(c.importeoutros, 0) as outros, ");
|
||||||
|
sql.append(" to_char(trunc(c.feccreacion), 'yyyymmdd') as datamov ");
|
||||||
|
sql.append("from caja c ");
|
||||||
|
sql.append(" join marca m on c.marca_id = m.marca_id ");
|
||||||
|
sql.append(" join empresa e on e.empresa_id = m.empresa_id ");
|
||||||
|
sql.append(" join aidf a on a.aidf_id = c.aidf_id ");
|
||||||
|
sql.append(" join punto_venta pv on pv.puntoventa_id = c.puntoventa_id ");
|
||||||
|
sql.append(" join ciudad ce on ce.ciudad_id = e.ciudad_id ");
|
||||||
|
sql.append(" join estado ee on ee.estado_id = ce.estado_id ");
|
||||||
|
sql.append(" join parada po on po.parada_id = c.origen_id ");
|
||||||
|
sql.append(" join ciudad co on co.ciudad_id = po.ciudad_id ");
|
||||||
|
sql.append(" join estado eo on eo.estado_id = co.estado_id ");
|
||||||
|
sql.append(" join parada pd on pd.parada_id = c.destino_id ");
|
||||||
|
sql.append(" join ciudad cd on cd.ciudad_id = pd.ciudad_id ");
|
||||||
|
sql.append(" join estado ed on ed.estado_id = cd.estado_id ");
|
||||||
|
sql.append(" left join alias_servico s on s.origen_id = c.origen_id ");
|
||||||
|
sql.append(" and s.destino_id = c.destino_id and (s.corrida_id = c.corrida_id or s.corrida_id is null) ");
|
||||||
|
sql.append(" and s.ruta_id = c.ruta_id ");
|
||||||
|
sql.append(" left join parada pos on pos.parada_id = s.aliasorigen_id ");
|
||||||
|
sql.append(" left join ciudad cos on cos.ciudad_id = pos.ciudad_id ");
|
||||||
|
sql.append(" left join estado eos on eos.estado_id = cos.estado_id ");
|
||||||
|
sql.append(" left join parada pds on pds.parada_id = s.aliasdestino_id ");
|
||||||
|
sql.append(" left join ciudad cds on cds.ciudad_id = pds.ciudad_id ");
|
||||||
|
sql.append(" left join estado eds on eds.estado_id = cds.estado_id ");
|
||||||
|
sql.append(" left join estado ae on ae.estado_id = a.estado_id ");
|
||||||
|
sql.append(" join inscricao_estadual ie on e.empresa_id = ie.empresa_id ");
|
||||||
|
sql.append(" and ie.estado_id = coalesce(ae.estado_id, eos.estado_id) and ie.activo = 1 ");
|
||||||
|
sql.append(" join ciudad cie on cie.ciudad_id = ie.ciudad_id ");
|
||||||
|
sql.append(" join estado eie on eie.estado_id = cie.estado_id ");
|
||||||
|
sql.append(" join empresa_imposto ei on ei.empresa_id = c.empresacorrida_id ");
|
||||||
|
sql.append(" and ei.estado_id = coalesce(ae.estado_id, eos.estado_id) and ei.activo = 1 ");
|
||||||
|
sql.append("where ((c.tipoventa_id = 3 and c.indstatusboleto = 'V' and c.indreimpresion = 0) ");
|
||||||
|
sql.append(" or (c.tipoventa_id in (12,18) and c.indstatusboleto = 'E' and c.numfoliosistema = c.numfoliopreimpreso)) ");
|
||||||
|
sql.append(" and (c.motivocancelacion_id is null or c.motivocancelacion_id <> 35) ");
|
||||||
|
sql.append(" and c.indcancelacion = 0 ");
|
||||||
|
sql.append(" and c.empresacorrida_id = :EMPRESA_ID ");
|
||||||
|
sql.append(" and c.feccreacion between :DATE_INICIO and :DATE_FIM ");
|
||||||
|
sql.append(" and coalesce(ae.cveestado, eos.cveestado) in ( ").append(ufs).append(" ) ");
|
||||||
|
return sql.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private String sqlRelatorioRDICancelados(String ufs) {
|
||||||
|
|
||||||
|
StringBuilder sql = new StringBuilder();
|
||||||
|
sql.append("select distinct ");
|
||||||
|
sql.append(" b.boleto_id as cajaId, ");
|
||||||
|
sql.append(" 'DEV' as tipoReceita, ");
|
||||||
|
sql.append(" b.numoperacion as numoperacion, ");
|
||||||
|
sql.append(" trunc(b.feccreacion) as fechorVenta, ");
|
||||||
|
sql.append(" coalesce(esaidf.estado_id, eos.estado_id, est.estado_id) as estadoId, ");
|
||||||
|
sql.append(" ei.icms as icmsInterestadual, ");
|
||||||
|
sql.append(" ei.icmsim as icmsIntermunicipal, ");
|
||||||
|
sql.append(" coalesce(esaidf.cveestado, eos.cveestado, est.cveestado) as estadoOrigem, ");
|
||||||
|
sql.append(" coalesce(eds.cveestado, est.cveestado) as estadoDestino, ");
|
||||||
|
sql.append(" 0 as municipioOrigem, ");
|
||||||
|
sql.append(" case when (coalesce(cos.estado_id,co.estado_id) <> coalesce(cds.estado_id,cd.estado_id)) then 1 else 0 end as isInterEstadual, ");
|
||||||
|
sql.append(" ei.porcredbaseicms as redBaseCalcIcms, ");
|
||||||
|
sql.append(" ei.porcredmunicipal as porcRedMunicipal, ");
|
||||||
|
sql.append(" ei.porcredestadual as porcRedEstadual, ");
|
||||||
|
sql.append(" coalesce(ei.indtarifamunicipal, 0) as indtarifamunicipal, ");
|
||||||
|
sql.append(" coalesce(ei.indseguromunicipal, 0) as indseguromunicipal, ");
|
||||||
|
sql.append(" coalesce(ei.indtxembarquemunicipal, 0) as indtxembarquemunicipal, ");
|
||||||
|
sql.append(" coalesce(ei.indpedagiomunicipal, 0) as indpedagiomunicipal, ");
|
||||||
|
sql.append(" coalesce(ei.indtarifaestadual, 0) as indtarifaestadual, ");
|
||||||
|
sql.append(" coalesce(ei.indseguroestadual, 0) as indseguroestadual, ");
|
||||||
|
sql.append(" coalesce(ei.indtxembarqueestadual, 0) as indtxembarqueestadual, ");
|
||||||
|
sql.append(" coalesce(ei.indpedagioestdual, 0) as indpedagioestdual, ");
|
||||||
|
sql.append(" ei.tributacaoimportacao as tributacaoImportacao, ");
|
||||||
|
sql.append(" case when (coalesce(pos.regionmetropolitana_id, ori.regionmetropolitana_id, -1) = ");
|
||||||
|
sql.append(" coalesce(pds.regionmetropolitana_id, des.regionmetropolitana_id, -2)) then 1 else 0 end as isenta, ");
|
||||||
|
sql.append(" coalesce(b.preciopagado, 0) as tarifa, ");
|
||||||
|
sql.append(" coalesce(b.importetaxaembarque, 0) as taxaEmbarque, ");
|
||||||
|
sql.append(" coalesce(b.importepedagio, 0) as pedagio, ");
|
||||||
|
sql.append(" coalesce(b.importeseguro, 0) as seguro, ");
|
||||||
|
sql.append(" coalesce(b.importeoutros, 0) as outros, ");
|
||||||
|
sql.append(" to_char(trunc(b.feccreacion), 'yyyymmdd') as datamov ");
|
||||||
|
sql.append(" ");
|
||||||
|
sql.append("from boleto b ");
|
||||||
|
sql.append("inner join marca m on m.marca_id = b.marca_id and m.activo = 1 ");
|
||||||
|
sql.append("inner join empresa e on e.empresa_id = m.empresa_id ");
|
||||||
|
sql.append("inner join punto_venta ptv on ptv.puntoventa_id = b.puntoventa_id ");
|
||||||
|
sql.append("inner join parada ori on (b.origen_id = ori.parada_id ) ");
|
||||||
|
sql.append("inner join parada des on (b.destino_id = des.parada_id ) ");
|
||||||
|
sql.append("inner join ciudad co on (co.ciudad_id = ori.ciudad_id ) ");
|
||||||
|
sql.append("inner join ciudad cd on (cd.ciudad_id = des.ciudad_id ) ");
|
||||||
|
sql.append("inner join estado est on est.estado_id = co.estado_id ");
|
||||||
|
sql.append("left join punto_venta ptvo on ptvo.puntoventa_id = b.ptovtaventa_id ");
|
||||||
|
sql.append("left join alias_servico s on s.origen_id = b.origen_id ");
|
||||||
|
sql.append(" and s.destino_id = b.destino_id and (s.corrida_id = b.corrida_id or s.corrida_id is null) ");
|
||||||
|
sql.append(" and s.ruta_id = b.ruta_id ");
|
||||||
|
sql.append("left join parada pos on pos.parada_id = s.aliasorigen_id ");
|
||||||
|
sql.append("left join ciudad cos on cos.ciudad_id = pos.ciudad_id ");
|
||||||
|
sql.append("left join estado eos on eos.estado_id = cos.estado_id ");
|
||||||
|
sql.append("left join parada pds on pds.parada_id = s.aliasdestino_id ");
|
||||||
|
sql.append("left join ciudad cds on cds.ciudad_id = pds.ciudad_id ");
|
||||||
|
sql.append("left join estado eds on eds.estado_id = cds.estado_id ");
|
||||||
|
sql.append("left join aidf aidf on aidf.aidf_id = b.aidf_id and b.tipoventa_id = 3 ");
|
||||||
|
sql.append("left join estado esaidf on esaidf.estado_id = aidf.estado_id ");
|
||||||
|
sql.append("join inscricao_estadual ie on e.empresa_id = ie.empresa_id ");
|
||||||
|
sql.append(" and ie.estado_id = coalesce(aidf.estado_id, eos.estado_id, est.estado_id) and ie.activo = 1 ");
|
||||||
|
sql.append("join empresa_imposto ei on ei.empresa_id = e.empresa_id ");
|
||||||
|
sql.append(" and ei.estado_id = coalesce(aidf.estado_id, eos.estado_id, est.estado_id) and ei.activo = 1 ");
|
||||||
|
sql.append("where b.motivocancelacion_id in (31,32,10,37,99,36) ");
|
||||||
|
sql.append(" and b.indstatusboleto = 'C' and b.indcancelacion = 1 ");
|
||||||
|
sql.append(" and b.numfoliopreimpreso is not null ");
|
||||||
|
sql.append(" and e.empresa_id = :EMPRESA_ID ");
|
||||||
|
sql.append(" and b.fechorventa >= :DATE_INICIO ");
|
||||||
|
sql.append(" and b.fechorventa <= :DATE_FIM ");
|
||||||
|
sql.append(" and b.categoria_id not in (select valorconstante from constante where nombconstante = 'GRATUIDADE_CRIANCA') ");
|
||||||
|
sql.append(" and coalesce(esaidf.cveestado, eos.cveestado, est.cveestado) in ( ").append(ufs).append(" ) ");
|
||||||
|
sql.append("order by estadoId, isInterEstadual ");
|
||||||
|
|
||||||
|
return sql.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
package com.rjconsultores.ventaboletos.service;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Empresa;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Estado;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.fiscal.vo.FiscalRdi;
|
||||||
|
|
||||||
|
public interface BpeService {
|
||||||
|
|
||||||
|
List<FiscalRdi> buscarBpeRDI(Date inicio, Date fim, Empresa empresa, List<Estado> estados, boolean isReceitaTerceiros);
|
||||||
|
|
||||||
|
public File buscarArquivoExportacaoBPE(Date inicio, Date fim, Empresa empresa, Estado estado, String nomeArquivo);
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,94 @@
|
||||||
|
package com.rjconsultores.ventaboletos.service.impl;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.sql.DataSource;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.jdbc.datasource.DataSourceUtils;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.dao.BpeDAO;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Empresa;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Estado;
|
||||||
|
import com.rjconsultores.ventaboletos.service.BpeService;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.exportacao.ExportacaoBpe;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.exportacao.bpe.ExportacaoBPEVo;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.fiscal.vo.FiscalRdi;
|
||||||
|
|
||||||
|
@Service("bpeServiceImpl")
|
||||||
|
public class BpeServiceImpl implements BpeService {
|
||||||
|
private static Logger log = Logger.getLogger(BpeServiceImpl.class);
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private BpeDAO bpeDAO;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ExportacaoBpe exportacaoBpe;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DataSource dataSourceRead;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<FiscalRdi> buscarBpeRDI(Date inicio, Date fim, Empresa empresa, List<Estado> estados, boolean isReceitaTerceiros) {
|
||||||
|
Connection connection = null;
|
||||||
|
try {
|
||||||
|
connection = getConnectionRead();
|
||||||
|
return bpeDAO.buscarBpeRDI(connection, inicio, fim, empresa.getEmpresaId(), estados, isReceitaTerceiros);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("", e);
|
||||||
|
} finally {
|
||||||
|
try {
|
||||||
|
if (connection != null && !connection.isClosed()) {
|
||||||
|
connection.close();
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
log.error("error fechar conexão", e);
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public File buscarArquivoExportacaoBPE(Date inicio, Date fim, Empresa empresa, Estado estado, String nomeArquivo) {
|
||||||
|
Connection connection = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
connection = getConnectionRead();
|
||||||
|
ExportacaoBPEVo registro = bpeDAO.buscarRegistroExportacaoBpe(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado());
|
||||||
|
|
||||||
|
return exportacaoBpe.gerarArquivoBPE(inicio, fim, nomeArquivo, empresa.getNombempresa(), registro);
|
||||||
|
|
||||||
|
} finally {
|
||||||
|
try {
|
||||||
|
if (connection != null && !connection.isClosed()) {
|
||||||
|
connection.close();
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
log.error("error fechar conexão", e);
|
||||||
|
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// private String infoTempo(final String descricao, final Long inicio) {
|
||||||
|
// final Long termino = Calendar.getInstance().getTimeInMillis();
|
||||||
|
// final Long tempo = termino - inicio;
|
||||||
|
//
|
||||||
|
// return descricao + ": " + String.format("%dm %ds", TimeUnit.MILLISECONDS.toMinutes(tempo), TimeUnit.MILLISECONDS.toSeconds(tempo) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(tempo)));
|
||||||
|
// }
|
||||||
|
|
||||||
|
private Connection getConnectionRead() {
|
||||||
|
return DataSourceUtils.getConnection(dataSourceRead);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,243 @@
|
||||||
|
package com.rjconsultores.ventaboletos.utilerias.exportacao;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.OutputStreamWriter;
|
||||||
|
import java.io.PrintWriter;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.constantes.Constantes;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.UtiliteriasFiscal;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.exportacao.bpe.ExportacaoBPEBase;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.exportacao.bpe.ExportacaoBPETipoBPE;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.exportacao.bpe.ExportacaoBPETipoDPE;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.exportacao.bpe.ExportacaoBPETipoOBE;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.exportacao.bpe.ExportacaoBPETipoPRC;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.exportacao.bpe.ExportacaoBPEVo;
|
||||||
|
|
||||||
|
@Service("exportacaoBpe")
|
||||||
|
public class ExportacaoBpe {
|
||||||
|
private static Logger log = Logger.getLogger(ExportacaoBpe.class);
|
||||||
|
|
||||||
|
private static String VAZIO = "";
|
||||||
|
private static String SEPARADOR = "|";
|
||||||
|
|
||||||
|
public ExportacaoBpe() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public File gerarArquivoBPE(final Date dataInicial, final Date dataFinal, String nomeArquivo, final String nomeEmpresa, ExportacaoBPEVo registro) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
File arquivo = File.createTempFile(nomeArquivo + "-", ".fs");
|
||||||
|
PrintWriter writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(arquivo), Constantes.UTF_8));
|
||||||
|
|
||||||
|
adicionarRegistroBPETipoCAB(writer, dataInicial, dataFinal, nomeEmpresa, nomeArquivo);
|
||||||
|
|
||||||
|
int linhas = 1;
|
||||||
|
|
||||||
|
for (ExportacaoBPEBase ee : registro.getListaRegistroBaseBPE()) {
|
||||||
|
|
||||||
|
for (ExportacaoBPETipoBPE tipoBPE : ee.getListaRegistroBPE()) {
|
||||||
|
adicionarRegistroBPETipoBEP(writer, tipoBPE);
|
||||||
|
linhas++;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (ExportacaoBPETipoDPE tipoDPE : ee.getListaRegistroDPE()) {
|
||||||
|
adicionarRegistroBPETipoDPE(writer, tipoDPE);
|
||||||
|
linhas++;
|
||||||
|
}
|
||||||
|
for (ExportacaoBPETipoOBE tipoOBE : ee.getListaRegistroOBE()) {
|
||||||
|
adicionarRegistroBPETipoOBE(writer, tipoOBE);
|
||||||
|
linhas++;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (ExportacaoBPETipoPRC tipoPRC : ee.getListaRegistroPRC()) {
|
||||||
|
adicionarRegistroBPETipoRPC(writer, tipoPRC);
|
||||||
|
linhas++;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
writer.print("TRA|" + linhas + UtiliteriasFiscal.QUEBRA_LINHA);
|
||||||
|
|
||||||
|
writer.close();
|
||||||
|
|
||||||
|
return arquivo;
|
||||||
|
} catch (
|
||||||
|
|
||||||
|
IOException e) {
|
||||||
|
log.error(e.getMessage(), e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void adicionarRegistroBPETipoCAB(final PrintWriter writer, final Date dataInicial, final Date dataFinal, final String nomeEmpresa, final String arquivo) {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append("CAB").append(SEPARADOR);
|
||||||
|
sb.append("116").append(SEPARADOR);
|
||||||
|
sb.append("TotalBus").append(SEPARADOR);
|
||||||
|
sb.append(new SimpleDateFormat("yyyyMMdd").format(new Date())).append(SEPARADOR);
|
||||||
|
sb.append(formataCaracter(nomeEmpresa, false, 15)).append(SEPARADOR);
|
||||||
|
sb.append(new SimpleDateFormat("yyyyMMdd").format(dataInicial)).append(SEPARADOR);
|
||||||
|
sb.append(new SimpleDateFormat("yyyyMMdd").format(dataFinal)).append(SEPARADOR);
|
||||||
|
sb.append(arquivo).append(SEPARADOR);
|
||||||
|
sb.append("N");
|
||||||
|
|
||||||
|
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void adicionarRegistroBPETipoBEP(final PrintWriter writer, ExportacaoBPETipoBPE tipoBPE) {
|
||||||
|
|
||||||
|
String tipoRegistro = "BPE";
|
||||||
|
String estabelecimento = tipoBPE.getEstabelecimento();
|
||||||
|
String chaveEletrônica = tipoBPE.getChaveEletronica();
|
||||||
|
String serie = tipoBPE.getSerie();
|
||||||
|
String numero = tipoBPE.getNumero();
|
||||||
|
String dataEmissao = tipoBPE.getDataEmissao();
|
||||||
|
String situacaoDocumento = tipoBPE.getSituacaoDoc();
|
||||||
|
String dataPrestacao = tipoBPE.getDataEmissao();
|
||||||
|
String valorBruto = formataValor(tipoBPE.getValorBruto(), 15);
|
||||||
|
String valorDesconto = formataValor(tipoBPE.getValorDesconto(), 15);
|
||||||
|
String UFOrigem = tipoBPE.getUFOrigem();
|
||||||
|
String muniOrigem = tipoBPE.getMunicipioOrigem();
|
||||||
|
String UFDestino = tipoBPE.getUFDestino();
|
||||||
|
String muniDestino = tipoBPE.getMunicipioDestino();
|
||||||
|
String CSTCOFINS = tipoBPE.getCstCofins();
|
||||||
|
String receitaTributavelCOFINS = formataValor(tipoBPE.getReceitaTriCofins(), 15);
|
||||||
|
String naturezaReceitaCOFINS = VAZIO;
|
||||||
|
String CSTPIS = "01";
|
||||||
|
String receitaTributávelPIS = formataValor(tipoBPE.getReceitaTributávelPis(), 15);
|
||||||
|
String naturezaReceitaPIS = VAZIO;
|
||||||
|
String receitaCSL1 = VAZIO;
|
||||||
|
String receitaCSL2 = VAZIO;
|
||||||
|
String receitaIRPJ1 = VAZIO;
|
||||||
|
String receitaIRPJ2 = VAZIO;
|
||||||
|
String receitaIRPJ3 = VAZIO;
|
||||||
|
String receitaIRPJ4 = VAZIO;
|
||||||
|
String tipoBPe = tipoBPE.getTipoBPe();
|
||||||
|
String chaveEletRef = tipoBPE.getChaveEletronicaReferencia();
|
||||||
|
String codigoContabil = tipoBPE.getCodigoContabil();
|
||||||
|
String codigoPrevidenciaria = "00000060";
|
||||||
|
String codigoComplementar = VAZIO;
|
||||||
|
String observacao = tipoBPE.getTpDesconto();
|
||||||
|
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append(tipoRegistro).append(SEPARADOR);
|
||||||
|
sb.append(estabelecimento).append(SEPARADOR);
|
||||||
|
sb.append(chaveEletrônica).append(SEPARADOR);
|
||||||
|
sb.append(serie).append(SEPARADOR);
|
||||||
|
sb.append(numero).append(SEPARADOR);
|
||||||
|
sb.append(dataEmissao).append(SEPARADOR);
|
||||||
|
sb.append(situacaoDocumento).append(SEPARADOR);
|
||||||
|
sb.append(dataPrestacao).append(SEPARADOR);
|
||||||
|
sb.append(valorBruto).append(SEPARADOR);
|
||||||
|
sb.append(valorDesconto).append(SEPARADOR);
|
||||||
|
sb.append(UFOrigem).append(SEPARADOR);
|
||||||
|
sb.append(muniOrigem).append(SEPARADOR);
|
||||||
|
sb.append(UFDestino).append(SEPARADOR);
|
||||||
|
sb.append(muniDestino).append(SEPARADOR);
|
||||||
|
sb.append(CSTCOFINS).append(SEPARADOR);
|
||||||
|
sb.append(receitaTributavelCOFINS).append(SEPARADOR);
|
||||||
|
sb.append(naturezaReceitaCOFINS).append(SEPARADOR);
|
||||||
|
sb.append(CSTPIS).append(SEPARADOR);
|
||||||
|
sb.append(receitaTributávelPIS).append(SEPARADOR);
|
||||||
|
sb.append(naturezaReceitaPIS).append(SEPARADOR);
|
||||||
|
sb.append(receitaCSL1).append(SEPARADOR);
|
||||||
|
sb.append(receitaCSL2).append(SEPARADOR);
|
||||||
|
sb.append(receitaIRPJ1).append(SEPARADOR);
|
||||||
|
sb.append(receitaIRPJ2).append(SEPARADOR);
|
||||||
|
sb.append(receitaIRPJ3).append(SEPARADOR);
|
||||||
|
sb.append(receitaIRPJ4).append(SEPARADOR);
|
||||||
|
sb.append(tipoBPe).append(SEPARADOR);
|
||||||
|
sb.append(chaveEletRef).append(SEPARADOR);
|
||||||
|
sb.append(codigoContabil).append(SEPARADOR);
|
||||||
|
sb.append(codigoPrevidenciaria).append(SEPARADOR);
|
||||||
|
sb.append(codigoComplementar).append(SEPARADOR);
|
||||||
|
sb.append(observacao).append(SEPARADOR);
|
||||||
|
|
||||||
|
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void adicionarRegistroBPETipoDPE(final PrintWriter writer, ExportacaoBPETipoDPE tipoDPE) {
|
||||||
|
String tipoRegistro = "DPE";
|
||||||
|
String valor = formataValor(tipoDPE.getValor(), 15);
|
||||||
|
String CFOP = tipoDPE.getCfop();
|
||||||
|
String CSTB = tipoDPE.getCstb();
|
||||||
|
String CSOSNB = tipoDPE.getCsosnb();
|
||||||
|
String baseCalculoICMS = formataValor(tipoDPE.getBaseCalculoICMS(), 15);
|
||||||
|
String aliquotaICMS = formataValor(tipoDPE.getAliquotaICMS(), 15);
|
||||||
|
String ICMS = formataValor(tipoDPE.getIcms(), 15);
|
||||||
|
String isentas = formataValor(tipoDPE.getIsentas(), 15);
|
||||||
|
String outras = formataValor(tipoDPE.getOutras(), 15);
|
||||||
|
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append(tipoRegistro).append(SEPARADOR);
|
||||||
|
sb.append(valor).append(SEPARADOR);
|
||||||
|
sb.append(CFOP).append(SEPARADOR);
|
||||||
|
sb.append(CSTB).append(SEPARADOR);
|
||||||
|
sb.append(CSOSNB).append(SEPARADOR);
|
||||||
|
sb.append(baseCalculoICMS).append(SEPARADOR);
|
||||||
|
sb.append(aliquotaICMS).append(SEPARADOR);
|
||||||
|
sb.append(ICMS).append(SEPARADOR);
|
||||||
|
sb.append(isentas).append(SEPARADOR);
|
||||||
|
sb.append(outras).append(SEPARADOR);
|
||||||
|
|
||||||
|
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void adicionarRegistroBPETipoOBE(final PrintWriter writer, ExportacaoBPETipoOBE tipoOBE) {
|
||||||
|
String tipoRegistro = "OBE";
|
||||||
|
String codigo = tipoOBE.getCodigo();
|
||||||
|
String valor = formataValor(tipoOBE.getValor(), 15);
|
||||||
|
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append(tipoRegistro).append(SEPARADOR);
|
||||||
|
sb.append(codigo).append(SEPARADOR);
|
||||||
|
sb.append(valor).append(SEPARADOR);
|
||||||
|
|
||||||
|
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void adicionarRegistroBPETipoRPC(final PrintWriter writer, ExportacaoBPETipoPRC tipoPRC) {
|
||||||
|
String tipoRegistro = "RPC";
|
||||||
|
String UF = tipoPRC.getUf();
|
||||||
|
String municipio = tipoPRC.getMunicipio();
|
||||||
|
String valor = formataValor(tipoPRC.getValor(), 15);
|
||||||
|
String baseCalculoICMS = formataValor(tipoPRC.getBaseCalculoICMS(), 15);
|
||||||
|
String ICMS = formataValor(tipoPRC.getIcms(), 15);
|
||||||
|
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append(tipoRegistro).append(SEPARADOR);
|
||||||
|
sb.append(UF).append(SEPARADOR);
|
||||||
|
sb.append(municipio).append(SEPARADOR);
|
||||||
|
sb.append(valor).append(SEPARADOR);
|
||||||
|
sb.append(baseCalculoICMS).append(SEPARADOR);
|
||||||
|
sb.append(ICMS).append(SEPARADOR);
|
||||||
|
|
||||||
|
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String formataValor(final BigDecimal valor, final int tamanho) {
|
||||||
|
if (valor == null) {
|
||||||
|
return "0";
|
||||||
|
} else {
|
||||||
|
return valor.setScale(2, BigDecimal.ROUND_HALF_EVEN).toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String formataCaracter(String valor, boolean removeMascara, int tamanho) {
|
||||||
|
if (valor == null) {
|
||||||
|
valor = VAZIO;
|
||||||
|
}
|
||||||
|
return valor;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,342 @@
|
||||||
|
package com.rjconsultores.ventaboletos.utilerias.exportacao.bpe;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ExportacaoBPEBase {
|
||||||
|
|
||||||
|
private Long cajaId;
|
||||||
|
private String numfoliosistema;
|
||||||
|
private BigDecimal valortotal;
|
||||||
|
private BigDecimal vDesconto;
|
||||||
|
private String chbpe;
|
||||||
|
private String chbpeSub;
|
||||||
|
private String dhrecbto;
|
||||||
|
private String dhEmisao;
|
||||||
|
private String tpBpe;
|
||||||
|
private String retorno;
|
||||||
|
private String nprot;
|
||||||
|
private String numBpe;
|
||||||
|
private String numSerieBpe;
|
||||||
|
private String codEstabelecimento;
|
||||||
|
private boolean isenta;
|
||||||
|
private BigDecimal valortributado;
|
||||||
|
private String municipioOrigem;
|
||||||
|
private String estadoOrigem;
|
||||||
|
private String municipioDestino;
|
||||||
|
private String estadoDestino;
|
||||||
|
private BigDecimal redBaseCalcEstadual;
|
||||||
|
private BigDecimal redBaseCalcMunicipal;
|
||||||
|
private BigDecimal porcRedMunicipal;
|
||||||
|
private BigDecimal porcRedEstadual;
|
||||||
|
private BigDecimal tributacaoImportacao;
|
||||||
|
private String pagamentos;
|
||||||
|
private String codstatus;
|
||||||
|
private String tipoevento;
|
||||||
|
private String codigoContabilEstadual;
|
||||||
|
private String codigocontabilMunicipal;
|
||||||
|
private Integer crt;
|
||||||
|
private String xml;
|
||||||
|
|
||||||
|
private List<ExportacaoBPETipoBPE> listaRegistroBPE;
|
||||||
|
private List<ExportacaoBPETipoDPE> listaRegistroDPE;
|
||||||
|
private List<ExportacaoBPETipoOBE> listaRegistroOBE;
|
||||||
|
private List<ExportacaoBPETipoPRC> listaRegistroPRC;
|
||||||
|
|
||||||
|
public ExportacaoBPEBase() {
|
||||||
|
listaRegistroBPE = new ArrayList<ExportacaoBPETipoBPE>(0);
|
||||||
|
listaRegistroDPE = new ArrayList<ExportacaoBPETipoDPE>(0);
|
||||||
|
listaRegistroOBE = new ArrayList<ExportacaoBPETipoOBE>(0);
|
||||||
|
listaRegistroPRC = new ArrayList<ExportacaoBPETipoPRC>(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getCajaId() {
|
||||||
|
return cajaId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCajaId(Long cajaId) {
|
||||||
|
this.cajaId = cajaId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNumfoliosistema() {
|
||||||
|
return numfoliosistema;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNumfoliosistema(String numfoliosistema) {
|
||||||
|
this.numfoliosistema = numfoliosistema;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getValortotal() {
|
||||||
|
return valortotal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValortotal(BigDecimal valortotal) {
|
||||||
|
this.valortotal = valortotal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getvDesconto() {
|
||||||
|
return vDesconto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setvDesconto(BigDecimal vDesconto) {
|
||||||
|
this.vDesconto = vDesconto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getChbpe() {
|
||||||
|
return chbpe;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setChbpe(String chbpe) {
|
||||||
|
this.chbpe = chbpe;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getChbpeSub() {
|
||||||
|
return chbpeSub;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setChbpeSub(String chbpeSub) {
|
||||||
|
this.chbpeSub = chbpeSub;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDhrecbto() {
|
||||||
|
return dhrecbto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDhrecbto(String dhrecbto) {
|
||||||
|
this.dhrecbto = dhrecbto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDhEmisao() {
|
||||||
|
return dhEmisao;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDhEmisao(String dhEmisao) {
|
||||||
|
this.dhEmisao = dhEmisao;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTpBpe() {
|
||||||
|
return tpBpe;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTpBpe(String tpBpe) {
|
||||||
|
this.tpBpe = tpBpe;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRetorno() {
|
||||||
|
return retorno;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRetorno(String retorno) {
|
||||||
|
this.retorno = retorno;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNprot() {
|
||||||
|
return nprot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNprot(String nprot) {
|
||||||
|
this.nprot = nprot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNumBpe() {
|
||||||
|
return numBpe;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNumBpe(String numBpe) {
|
||||||
|
this.numBpe = numBpe;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNumSerieBpe() {
|
||||||
|
return numSerieBpe;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNumSerieBpe(String numSerieBpe) {
|
||||||
|
this.numSerieBpe = numSerieBpe;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodEstabelecimento() {
|
||||||
|
return codEstabelecimento;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCodEstabelecimento(String codEstabelecimento) {
|
||||||
|
this.codEstabelecimento = codEstabelecimento;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isIsenta() {
|
||||||
|
return isenta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIsenta(boolean isenta) {
|
||||||
|
this.isenta = isenta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getValortributado() {
|
||||||
|
return valortributado;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValortributado(BigDecimal valortributado) {
|
||||||
|
this.valortributado = valortributado;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMunicipioOrigem() {
|
||||||
|
return municipioOrigem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMunicipioOrigem(String municipioOrigem) {
|
||||||
|
this.municipioOrigem = municipioOrigem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEstadoOrigem() {
|
||||||
|
return estadoOrigem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEstadoOrigem(String estadoOrigem) {
|
||||||
|
this.estadoOrigem = estadoOrigem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMunicipioDestino() {
|
||||||
|
return municipioDestino;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMunicipioDestino(String municipioDestino) {
|
||||||
|
this.municipioDestino = municipioDestino;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEstadoDestino() {
|
||||||
|
return estadoDestino;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEstadoDestino(String estadoDestino) {
|
||||||
|
this.estadoDestino = estadoDestino;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getRedBaseCalcEstadual() {
|
||||||
|
return redBaseCalcEstadual;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRedBaseCalcEstadual(BigDecimal redBaseCalcEstadual) {
|
||||||
|
this.redBaseCalcEstadual = redBaseCalcEstadual;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getRedBaseCalcMunicipal() {
|
||||||
|
return redBaseCalcMunicipal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRedBaseCalcMunicipal(BigDecimal redBaseCalcMunicipal) {
|
||||||
|
this.redBaseCalcMunicipal = redBaseCalcMunicipal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getPorcRedMunicipal() {
|
||||||
|
return porcRedMunicipal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPorcRedMunicipal(BigDecimal porcRedMunicipal) {
|
||||||
|
this.porcRedMunicipal = porcRedMunicipal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getPorcRedEstadual() {
|
||||||
|
return porcRedEstadual;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPorcRedEstadual(BigDecimal porcRedEstadual) {
|
||||||
|
this.porcRedEstadual = porcRedEstadual;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getTributacaoImportacao() {
|
||||||
|
return tributacaoImportacao;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTributacaoImportacao(BigDecimal tributacaoImportacao) {
|
||||||
|
this.tributacaoImportacao = tributacaoImportacao;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPagamentos() {
|
||||||
|
return pagamentos;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPagamentos(String pagamentos) {
|
||||||
|
this.pagamentos = pagamentos;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodstatus() {
|
||||||
|
return codstatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCodstatus(String codstatus) {
|
||||||
|
this.codstatus = codstatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTipoevento() {
|
||||||
|
return tipoevento;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTipoevento(String tipoevento) {
|
||||||
|
this.tipoevento = tipoevento;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodigoContabilEstadual() {
|
||||||
|
return codigoContabilEstadual;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCodigoContabilEstadual(String codigoContabilEstadual) {
|
||||||
|
this.codigoContabilEstadual = codigoContabilEstadual;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodigocontabilMunicipal() {
|
||||||
|
return codigocontabilMunicipal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCodigocontabilMunicipal(String codigocontabilMunicipal) {
|
||||||
|
this.codigocontabilMunicipal = codigocontabilMunicipal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getCrt() {
|
||||||
|
return crt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCrt(Integer crt) {
|
||||||
|
this.crt = crt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getXml() {
|
||||||
|
return xml;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setXml(String xml) {
|
||||||
|
this.xml = xml;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ExportacaoBPETipoBPE> getListaRegistroBPE() {
|
||||||
|
return listaRegistroBPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setListaRegistroBPE(List<ExportacaoBPETipoBPE> listaRegistroBPE) {
|
||||||
|
this.listaRegistroBPE = listaRegistroBPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ExportacaoBPETipoDPE> getListaRegistroDPE() {
|
||||||
|
return listaRegistroDPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setListaRegistroDPE(List<ExportacaoBPETipoDPE> listaRegistroDPE) {
|
||||||
|
this.listaRegistroDPE = listaRegistroDPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ExportacaoBPETipoOBE> getListaRegistroOBE() {
|
||||||
|
return listaRegistroOBE;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setListaRegistroOBE(List<ExportacaoBPETipoOBE> listaRegistroOBE) {
|
||||||
|
this.listaRegistroOBE = listaRegistroOBE;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ExportacaoBPETipoPRC> getListaRegistroPRC() {
|
||||||
|
return listaRegistroPRC;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setListaRegistroPRC(List<ExportacaoBPETipoPRC> listaRegistroPRC) {
|
||||||
|
this.listaRegistroPRC = listaRegistroPRC;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,233 @@
|
||||||
|
package com.rjconsultores.ventaboletos.utilerias.exportacao.bpe;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
public class ExportacaoBPETipoBPE {
|
||||||
|
|
||||||
|
private String estabelecimento;
|
||||||
|
private String chaveEletronica;
|
||||||
|
private String serie;
|
||||||
|
private String numero;
|
||||||
|
private String dataEmissao;
|
||||||
|
private String situacaoDoc;
|
||||||
|
private String dataPrestacao;
|
||||||
|
private BigDecimal valorBruto;
|
||||||
|
private BigDecimal valorDesconto;
|
||||||
|
private String UFOrigem;
|
||||||
|
private String municipioOrigem;
|
||||||
|
private String UFDestino;
|
||||||
|
private String municipioDestino;
|
||||||
|
private String cstCofins;
|
||||||
|
private BigDecimal receitaTriCofins;
|
||||||
|
private BigDecimal cstPis;
|
||||||
|
private BigDecimal receitaTributávelPis;
|
||||||
|
private String tipoBPe;
|
||||||
|
private String chaveEletronicaReferencia;
|
||||||
|
private String codigoContabil;
|
||||||
|
private String indContribuicaoPrevidenciaria;
|
||||||
|
private String tpDesconto;
|
||||||
|
|
||||||
|
public ExportacaoBPETipoBPE() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public ExportacaoBPETipoBPE(String estabelecimento, String chaveEletronica, String serie, String numero, String dataEmissao, String situacaoDoc, String dataPrestacao, BigDecimal valorBruto, BigDecimal valorDesconto, String uFOrigem, String municipioOrigem, String uFDestino, String municipioDestino, String cstCofins, BigDecimal receitaTriCofins, String tipoBPe, String chaveEletronicaReferencia, String codigoContabil, String indContribuicaoPrevidenciaria, String tpDesconto) {
|
||||||
|
super();
|
||||||
|
this.estabelecimento = estabelecimento;
|
||||||
|
this.chaveEletronica = chaveEletronica;
|
||||||
|
this.serie = serie;
|
||||||
|
this.numero = numero;
|
||||||
|
this.dataEmissao = dataEmissao;
|
||||||
|
this.situacaoDoc = situacaoDoc;
|
||||||
|
this.dataPrestacao = dataPrestacao;
|
||||||
|
this.valorBruto = valorBruto;
|
||||||
|
this.valorDesconto = valorDesconto;
|
||||||
|
this.UFOrigem = uFOrigem;
|
||||||
|
this.municipioOrigem = municipioOrigem;
|
||||||
|
this.UFDestino = uFDestino;
|
||||||
|
this.municipioDestino = municipioDestino;
|
||||||
|
this.cstCofins = cstCofins;
|
||||||
|
this.receitaTriCofins = receitaTriCofins;
|
||||||
|
this.tipoBPe = tipoBPe;
|
||||||
|
this.chaveEletronicaReferencia = chaveEletronicaReferencia;
|
||||||
|
this.codigoContabil = codigoContabil;
|
||||||
|
this.indContribuicaoPrevidenciaria = indContribuicaoPrevidenciaria;
|
||||||
|
this.tpDesconto = tpDesconto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEstabelecimento() {
|
||||||
|
return estabelecimento;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEstabelecimento(String estabelecimento) {
|
||||||
|
this.estabelecimento = estabelecimento;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getChaveEletronica() {
|
||||||
|
return chaveEletronica;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setChaveEletronica(String chaveEletronica) {
|
||||||
|
this.chaveEletronica = chaveEletronica;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSerie() {
|
||||||
|
return serie;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSerie(String serie) {
|
||||||
|
this.serie = serie;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNumero() {
|
||||||
|
return numero;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNumero(String numero) {
|
||||||
|
this.numero = numero;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDataEmissao() {
|
||||||
|
return dataEmissao;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDataEmissao(String dataEmissao) {
|
||||||
|
this.dataEmissao = dataEmissao;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSituacaoDoc() {
|
||||||
|
return situacaoDoc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSituacaoDoc(String situacaoDoc) {
|
||||||
|
this.situacaoDoc = situacaoDoc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDataPrestacao() {
|
||||||
|
return dataPrestacao;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDataPrestacao(String dataPrestacao) {
|
||||||
|
this.dataPrestacao = dataPrestacao;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getValorBruto() {
|
||||||
|
return valorBruto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValorBruto(BigDecimal valorBruto) {
|
||||||
|
this.valorBruto = valorBruto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getValorDesconto() {
|
||||||
|
return valorDesconto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValorDesconto(BigDecimal valorDesconto) {
|
||||||
|
this.valorDesconto = valorDesconto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUFOrigem() {
|
||||||
|
return UFOrigem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUFOrigem(String uFOrigem) {
|
||||||
|
this.UFOrigem = uFOrigem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMunicipioOrigem() {
|
||||||
|
return municipioOrigem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMunicipioOrigem(String municipioOrigem) {
|
||||||
|
this.municipioOrigem = municipioOrigem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUFDestino() {
|
||||||
|
return UFDestino;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUFDestino(String uFDestino) {
|
||||||
|
this.UFDestino = uFDestino;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMunicipioDestino() {
|
||||||
|
return municipioDestino;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMunicipioDestino(String municipioDestino) {
|
||||||
|
this.municipioDestino = municipioDestino;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCstCofins() {
|
||||||
|
return cstCofins;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCstCofins(String cstCofins) {
|
||||||
|
this.cstCofins = cstCofins;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getReceitaTriCofins() {
|
||||||
|
return receitaTriCofins;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setReceitaTriCofins(BigDecimal receitaTriCofins) {
|
||||||
|
this.receitaTriCofins = receitaTriCofins;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getCstPis() {
|
||||||
|
return cstPis;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCstPis(BigDecimal cstPis) {
|
||||||
|
this.cstPis = cstPis;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getReceitaTributávelPis() {
|
||||||
|
return receitaTributávelPis;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setReceitaTributávelPis(BigDecimal receitaTributávelPis) {
|
||||||
|
this.receitaTributávelPis = receitaTributávelPis;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTipoBPe() {
|
||||||
|
return tipoBPe;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTipoBPe(String tipoBPe) {
|
||||||
|
this.tipoBPe = tipoBPe;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getChaveEletronicaReferencia() {
|
||||||
|
return chaveEletronicaReferencia;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setChaveEletronicaReferencia(String chaveEletronicaReferencia) {
|
||||||
|
this.chaveEletronicaReferencia = chaveEletronicaReferencia;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodigoContabil() {
|
||||||
|
return codigoContabil;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCodigoContabil(String codigoContabil) {
|
||||||
|
this.codigoContabil = codigoContabil;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getIndContribuicaoPrevidenciaria() {
|
||||||
|
return indContribuicaoPrevidenciaria;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIndContribuicaoPrevidenciaria(String indContribuicaoPrevidenciaria) {
|
||||||
|
this.indContribuicaoPrevidenciaria = indContribuicaoPrevidenciaria;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTpDesconto() {
|
||||||
|
return tpDesconto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTpDesconto(String tpDesconto) {
|
||||||
|
this.tpDesconto = tpDesconto;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,105 @@
|
||||||
|
package com.rjconsultores.ventaboletos.utilerias.exportacao.bpe;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
public class ExportacaoBPETipoDPE {
|
||||||
|
|
||||||
|
private BigDecimal valor;
|
||||||
|
private String cfop;
|
||||||
|
private String cstb;
|
||||||
|
private String csosnb;
|
||||||
|
private BigDecimal baseCalculoICMS;
|
||||||
|
private BigDecimal aliquotaICMS;
|
||||||
|
private BigDecimal icms;
|
||||||
|
private BigDecimal isentas;
|
||||||
|
private BigDecimal outras;
|
||||||
|
|
||||||
|
public ExportacaoBPETipoDPE() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public ExportacaoBPETipoDPE(BigDecimal valor, String cfop, String cstb, String csosnb, BigDecimal baseCalculoICMS, BigDecimal aliquotaICMS, BigDecimal icms, BigDecimal isentas, BigDecimal outras) {
|
||||||
|
super();
|
||||||
|
this.valor = valor;
|
||||||
|
this.cfop = cfop;
|
||||||
|
this.cstb = cstb;
|
||||||
|
this.csosnb = csosnb;
|
||||||
|
this.baseCalculoICMS = baseCalculoICMS;
|
||||||
|
this.aliquotaICMS = aliquotaICMS;
|
||||||
|
this.icms = icms;
|
||||||
|
this.isentas = isentas;
|
||||||
|
this.outras = outras;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getValor() {
|
||||||
|
return valor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValor(BigDecimal valor) {
|
||||||
|
this.valor = valor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCfop() {
|
||||||
|
return cfop;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCfop(String cfop) {
|
||||||
|
this.cfop = cfop;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCstb() {
|
||||||
|
return cstb;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCstb(String cstb) {
|
||||||
|
this.cstb = cstb;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCsosnb() {
|
||||||
|
return csosnb;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCsosnb(String csosnb) {
|
||||||
|
this.csosnb = csosnb;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getBaseCalculoICMS() {
|
||||||
|
return baseCalculoICMS;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBaseCalculoICMS(BigDecimal baseCalculoICMS) {
|
||||||
|
this.baseCalculoICMS = baseCalculoICMS;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getAliquotaICMS() {
|
||||||
|
return aliquotaICMS;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAliquotaICMS(BigDecimal aliquotaICMS) {
|
||||||
|
this.aliquotaICMS = aliquotaICMS;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getIcms() {
|
||||||
|
return icms;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIcms(BigDecimal icms) {
|
||||||
|
this.icms = icms;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getIsentas() {
|
||||||
|
return isentas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIsentas(BigDecimal isentas) {
|
||||||
|
this.isentas = isentas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getOutras() {
|
||||||
|
return outras;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOutras(BigDecimal outras) {
|
||||||
|
this.outras = outras;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
package com.rjconsultores.ventaboletos.utilerias.exportacao.bpe;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
public class ExportacaoBPETipoOBE {
|
||||||
|
|
||||||
|
private String codigo;
|
||||||
|
private BigDecimal valor;
|
||||||
|
|
||||||
|
public ExportacaoBPETipoOBE() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public ExportacaoBPETipoOBE(String codigo, BigDecimal valor) {
|
||||||
|
super();
|
||||||
|
this.codigo = codigo;
|
||||||
|
this.valor = valor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodigo() {
|
||||||
|
return codigo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCodigo(String codigo) {
|
||||||
|
this.codigo = codigo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getValor() {
|
||||||
|
return valor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValor(BigDecimal valor) {
|
||||||
|
this.valor = valor;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,65 @@
|
||||||
|
package com.rjconsultores.ventaboletos.utilerias.exportacao.bpe;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
public class ExportacaoBPETipoPRC {
|
||||||
|
|
||||||
|
private String uf;
|
||||||
|
private String municipio;
|
||||||
|
private BigDecimal valor;
|
||||||
|
private BigDecimal baseCalculoICMS;
|
||||||
|
private BigDecimal icms;
|
||||||
|
|
||||||
|
public ExportacaoBPETipoPRC() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public ExportacaoBPETipoPRC(String uf, String municipio, BigDecimal valor, BigDecimal baseCalculoICMS, BigDecimal icms) {
|
||||||
|
super();
|
||||||
|
this.uf = uf;
|
||||||
|
this.municipio = municipio;
|
||||||
|
this.valor = valor;
|
||||||
|
this.baseCalculoICMS = baseCalculoICMS;
|
||||||
|
this.icms = icms;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUf() {
|
||||||
|
return uf;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUf(String uf) {
|
||||||
|
this.uf = uf;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMunicipio() {
|
||||||
|
return municipio;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMunicipio(String municipio) {
|
||||||
|
this.municipio = municipio;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getValor() {
|
||||||
|
return valor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValor(BigDecimal valor) {
|
||||||
|
this.valor = valor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getBaseCalculoICMS() {
|
||||||
|
return baseCalculoICMS;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBaseCalculoICMS(BigDecimal baseCalculoICMS) {
|
||||||
|
this.baseCalculoICMS = baseCalculoICMS;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getIcms() {
|
||||||
|
return icms;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIcms(BigDecimal icms) {
|
||||||
|
this.icms = icms;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,116 @@
|
||||||
|
package com.rjconsultores.ventaboletos.utilerias.exportacao.bpe;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.UtiliteriasFiscal;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.exportacao.bpe.xml.BpeBuscaCamposXml;
|
||||||
|
|
||||||
|
public class ExportacaoBPEVo {
|
||||||
|
|
||||||
|
static final BigDecimal ZERO = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
public class StatusBpe {
|
||||||
|
static final String VENDA = "100";
|
||||||
|
static final String VENDA_CONTIGENCIA = "150";
|
||||||
|
static final String EVENTOS = "135";
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EventosBpe {
|
||||||
|
static final String CANCELAMENTO = "110111";
|
||||||
|
static final String NAO_EMBARQUE = "110115";
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class CrtBpe {
|
||||||
|
static final Integer SIMPLES_NACIONAL = 1;
|
||||||
|
static final Integer SIMPLES_NACIONAL_EXCESSO_RECEITA_BRUTA = 2;
|
||||||
|
static final Integer REGIME_NORMAL = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<ExportacaoBPEBase> listaRegistroBaseBPE;
|
||||||
|
|
||||||
|
public ExportacaoBPEVo() {
|
||||||
|
listaRegistroBaseBPE = new ArrayList<ExportacaoBPEBase>(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ExportacaoBPEBase> getListaRegistroBaseBPE() {
|
||||||
|
return listaRegistroBaseBPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void gerarListas(ExportacaoBPEBase registro) {
|
||||||
|
|
||||||
|
boolean isCancelamento = (registro.getCodstatus() == null ? false : (registro.getCodstatus().equals(StatusBpe.EVENTOS)));
|
||||||
|
String cstCofins = isCancelamento ? "" : "01";
|
||||||
|
BigDecimal receitaTriCofins = isCancelamento ? null : registro.getValortotal();
|
||||||
|
|
||||||
|
boolean isInterEstadual = registro.getEstadoOrigem().equals(registro.getEstadoDestino());
|
||||||
|
String codigoContabil = isInterEstadual ? registro.getCodigoContabilEstadual() : registro.getCodigocontabilMunicipal();
|
||||||
|
String indContribuicaoPrevidenciaria = "00000060";
|
||||||
|
|
||||||
|
ExportacaoBPETipoBPE tipoBPE = new ExportacaoBPETipoBPE(registro.getCodEstabelecimento(), registro.getChbpe(), registro.getNumSerieBpe(),
|
||||||
|
registro.getNumBpe(), registro.getDhEmisao(), registro.getTpBpe(), registro.getDhrecbto(), registro.getValortotal(),
|
||||||
|
registro.getvDesconto(), registro.getEstadoOrigem(), registro.getMunicipioOrigem(), registro.getEstadoDestino(), registro.getMunicipioDestino(),
|
||||||
|
cstCofins, receitaTriCofins, registro.getRetorno(), registro.getChbpeSub(), codigoContabil,
|
||||||
|
indContribuicaoPrevidenciaria, registro.getRetorno());
|
||||||
|
|
||||||
|
registro.getListaRegistroBPE().add(tipoBPE);
|
||||||
|
|
||||||
|
String cfop = isInterEstadual ? "6357" : "5357";
|
||||||
|
String cstb = isInterEstadual ? (registro.getRedBaseCalcEstadual() == null || registro.getRedBaseCalcEstadual().equals(ZERO)) ? "00" : "20"
|
||||||
|
: (registro.getRedBaseCalcMunicipal() == null || registro.getRedBaseCalcMunicipal().equals(ZERO)) ? "00" : "20";
|
||||||
|
|
||||||
|
String csosnb = null;
|
||||||
|
if (registro.getCrt().equals(CrtBpe.SIMPLES_NACIONAL)) {
|
||||||
|
csosnb = CrtBpe.SIMPLES_NACIONAL.toString();
|
||||||
|
csosnb = UtiliteriasFiscal.formataNumerico(csosnb, 3);
|
||||||
|
} else if (registro.getCrt().equals(CrtBpe.SIMPLES_NACIONAL_EXCESSO_RECEITA_BRUTA)) {
|
||||||
|
csosnb = CrtBpe.SIMPLES_NACIONAL_EXCESSO_RECEITA_BRUTA.toString();
|
||||||
|
csosnb = UtiliteriasFiscal.formataNumerico(csosnb, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
BpeBuscaCamposXml buscaCamposXml = BpeBuscaCamposXml.getInstance(registro.getXml());
|
||||||
|
|
||||||
|
String vBC = buscaCamposXml.buscaCamposXml("vBC");
|
||||||
|
String pICMS = buscaCamposXml.buscaCamposXml("pICMS");
|
||||||
|
String vICMS = buscaCamposXml.buscaCamposXml("vICMS");
|
||||||
|
|
||||||
|
BigDecimal baseCalculoICMS = new BigDecimal(vBC == null ? "0.0" : vBC);
|
||||||
|
BigDecimal aliquotaICMS = new BigDecimal(pICMS == null ? "0.0" : pICMS);
|
||||||
|
BigDecimal icms = new BigDecimal(vICMS == null ? "0.0" : vICMS);
|
||||||
|
|
||||||
|
BigDecimal isentas = ZERO;
|
||||||
|
if (registro.isIsenta()) {
|
||||||
|
isentas = ZERO;
|
||||||
|
} else {
|
||||||
|
isentas = registro.getValortotal();
|
||||||
|
}
|
||||||
|
|
||||||
|
BigDecimal outras = registro.getValortotal().subtract(baseCalculoICMS);
|
||||||
|
|
||||||
|
ExportacaoBPETipoDPE tipoDPE = new ExportacaoBPETipoDPE(registro.getValortotal(), cfop, cstb, csosnb,
|
||||||
|
baseCalculoICMS, aliquotaICMS, icms, isentas, outras);
|
||||||
|
registro.getListaRegistroDPE().add(tipoDPE);
|
||||||
|
|
||||||
|
String[] atpComp = buscaCamposXml.buscaCamposXmlArray("tpComp");
|
||||||
|
String[] avComp = buscaCamposXml.buscaCamposXmlArray("vComp");
|
||||||
|
|
||||||
|
for (int i = 0; i < avComp.length; i++) {
|
||||||
|
String tpComp = atpComp[i];
|
||||||
|
String vComp = avComp[i];
|
||||||
|
BigDecimal valor = new BigDecimal(vComp == null ? "0.0" : vComp);
|
||||||
|
|
||||||
|
ExportacaoBPETipoOBE tipoOBE = new ExportacaoBPETipoOBE(tpComp, valor);
|
||||||
|
registro.getListaRegistroOBE().add(tipoOBE);
|
||||||
|
}
|
||||||
|
|
||||||
|
String vBP = buscaCamposXml.buscaCamposXml("vBP");
|
||||||
|
BigDecimal valorBP = new BigDecimal(vBP == null ? "0.0" : vBP);
|
||||||
|
|
||||||
|
ExportacaoBPETipoPRC tipoPRC = new ExportacaoBPETipoPRC(registro.getEstadoOrigem(), registro.getMunicipioOrigem(), valorBP, baseCalculoICMS, icms);
|
||||||
|
registro.getListaRegistroPRC().add(tipoPRC);
|
||||||
|
|
||||||
|
this.getListaRegistroBaseBPE().add(registro);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,105 @@
|
||||||
|
package com.rjconsultores.ventaboletos.utilerias.exportacao.bpe.xml;
|
||||||
|
|
||||||
|
import org.json.JSONObject;
|
||||||
|
import org.json.XML;
|
||||||
|
|
||||||
|
import com.google.gson.JsonArray;
|
||||||
|
import com.google.gson.JsonElement;
|
||||||
|
import com.google.gson.JsonParser;
|
||||||
|
|
||||||
|
public class BpeBuscaCamposXml {
|
||||||
|
|
||||||
|
private static BpeBuscaCamposXml instance = null;
|
||||||
|
private String json;
|
||||||
|
|
||||||
|
protected BpeBuscaCamposXml(String xml) {
|
||||||
|
controiJson(xml);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BpeBuscaCamposXml getInstance(String xml) {
|
||||||
|
if (instance == null) {
|
||||||
|
instance = new BpeBuscaCamposXml(xml);
|
||||||
|
}
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void controiJson(String xml) {
|
||||||
|
if (xml != null) {
|
||||||
|
try {
|
||||||
|
JSONObject xmlJSONObj = XML.toJSONObject(xml);
|
||||||
|
this.json = xmlJSONObj.toString(4);
|
||||||
|
} catch (Exception je) {
|
||||||
|
je.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String buscaCamposXml(String campo) {
|
||||||
|
try {
|
||||||
|
|
||||||
|
JsonElement root = new JsonParser().parse(json);
|
||||||
|
String resp = null;
|
||||||
|
if (campo.equals("CST"))
|
||||||
|
resp = root.getAsJsonObject().get("BPe").getAsJsonObject().get("infBPe").getAsJsonObject().get("imp")
|
||||||
|
.getAsJsonObject().get("ICMS").getAsJsonObject().get("ICMS00").getAsJsonObject().get("CST").toString();
|
||||||
|
if (campo.equals("pICMS"))
|
||||||
|
resp = root.getAsJsonObject().get("BPe").getAsJsonObject().get("infBPe").getAsJsonObject().get("imp")
|
||||||
|
.getAsJsonObject().get("ICMS").getAsJsonObject().get("ICMS00").getAsJsonObject().get("pICMS").toString();
|
||||||
|
if (campo.equals("vICMS"))
|
||||||
|
resp = root.getAsJsonObject().get("BPe").getAsJsonObject().get("infBPe").getAsJsonObject().get("imp")
|
||||||
|
.getAsJsonObject().get("ICMS").getAsJsonObject().get("ICMS00").getAsJsonObject().get("vICMS").toString();
|
||||||
|
if (campo.equals("vBC"))
|
||||||
|
resp = root.getAsJsonObject().get("BPe").getAsJsonObject().get("infBPe").getAsJsonObject().get("imp")
|
||||||
|
.getAsJsonObject().get("ICMS").getAsJsonObject().get("ICMS00").getAsJsonObject().get("vBC").toString();
|
||||||
|
if (campo.equals("UFIni"))
|
||||||
|
resp = root.getAsJsonObject().get("BPe").getAsJsonObject().get("infBPe").getAsJsonObject().get("ide")
|
||||||
|
.getAsJsonObject().get("UFIni").toString();
|
||||||
|
if (campo.equals("vBP"))
|
||||||
|
resp = root.getAsJsonObject().get("BPe").getAsJsonObject().get("infBPe").getAsJsonObject().get("infValorBPe")
|
||||||
|
.getAsJsonObject().get("vBP").toString();
|
||||||
|
|
||||||
|
resp = resp.replace("\"", "");
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String[] buscaCamposXmlArray(String campo) {
|
||||||
|
try {
|
||||||
|
JsonElement root = new JsonParser().parse(json);
|
||||||
|
JsonArray array = null;
|
||||||
|
|
||||||
|
array = root.getAsJsonObject().get("BPe").getAsJsonObject().get("infBPe").getAsJsonObject().get("infValorBPe")
|
||||||
|
.getAsJsonObject().get("Comp").getAsJsonArray();
|
||||||
|
|
||||||
|
if (campo.equals("tpComp")) {
|
||||||
|
String[] a = new String[array.size()];
|
||||||
|
int cont = 0;
|
||||||
|
for (JsonElement jsonElement : array) {
|
||||||
|
String aux = jsonElement.getAsJsonObject().get("tpComp").toString();
|
||||||
|
aux = aux.replace("\"", "");
|
||||||
|
a[cont] = aux;
|
||||||
|
cont++;
|
||||||
|
}
|
||||||
|
return a;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (campo.equals("vComp")) {
|
||||||
|
String[] a = new String[array.size()];
|
||||||
|
int cont = 0;
|
||||||
|
for (JsonElement jsonElement : array) {
|
||||||
|
String aux = jsonElement.getAsJsonObject().get("vComp").toString();
|
||||||
|
aux = aux.replace("\"", "");
|
||||||
|
a[cont] = aux;
|
||||||
|
cont++;
|
||||||
|
}
|
||||||
|
return a;
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue