|
|
|
@ -21,9 +21,11 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.stereotype.Repository;
|
|
|
|
|
|
|
|
|
|
import com.rjconsultores.ventaboletos.dao.FiscalDAO;
|
|
|
|
|
import com.rjconsultores.ventaboletos.entidad.Aidf;
|
|
|
|
|
import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida;
|
|
|
|
|
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
|
|
|
|
|
import com.rjconsultores.ventaboletos.utilerias.StringHelper;
|
|
|
|
|
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
|
|
|
|
|
import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoECFTipoCCF;
|
|
|
|
|
import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoECFTipoCFC;
|
|
|
|
|
import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoECFTipoICF;
|
|
|
|
@ -32,7 +34,7 @@ import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoRM
|
|
|
|
|
import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoRMDTipoDBP;
|
|
|
|
|
import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoRMDTipoPAR;
|
|
|
|
|
import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoRMDTipoRMD;
|
|
|
|
|
import com.rjconsultores.ventaboletos.utilerias.impressaormd.vo.DetalhadoRMDTipoDVB;
|
|
|
|
|
import com.rjconsultores.ventaboletos.utilerias.impressaormd.vo.DetalhadoRMD;
|
|
|
|
|
import com.rjconsultores.ventaboletos.utilerias.impressaormd.vo.ImpressaoRMD;
|
|
|
|
|
import com.rjconsultores.ventaboletos.vo.impressaofiscal.ImportacionFiscalReducaoZVO;
|
|
|
|
|
import com.rjconsultores.ventaboletos.vo.impressaofiscal.ImportacionFiscalVO;
|
|
|
|
@ -1077,12 +1079,12 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|
|
|
|
sb.append(" and c.feccorrida between :datIni and :datFim ");
|
|
|
|
|
sb.append(" and c.corrida_id in (:corridaId) ");
|
|
|
|
|
sb.append(" and CODPRODUTO(t.origen_id , t.destino_id , rc.ruta_id) not in (select codproduto from fiscal_p2) ");
|
|
|
|
|
//sb.append(" and ROWNUM < 50 ");
|
|
|
|
|
// sb.append(" and ROWNUM < 50 ");
|
|
|
|
|
|
|
|
|
|
int qtd = 0;
|
|
|
|
|
|
|
|
|
|
Connection connection = null;
|
|
|
|
|
try{
|
|
|
|
|
try {
|
|
|
|
|
connection = dataSource.getConnection();
|
|
|
|
|
|
|
|
|
|
connection.setAutoCommit(false);
|
|
|
|
@ -1091,22 +1093,20 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|
|
|
|
|
|
|
|
|
ps.setDate(1, new java.sql.Date(dataDe.getTime()));
|
|
|
|
|
ps.setDate(2, new java.sql.Date(dataAte.getTime()));
|
|
|
|
|
ps.setString(3,StringUtils.join(idsCorrida, ","));
|
|
|
|
|
ps.setString(3, StringUtils.join(idsCorrida, ","));
|
|
|
|
|
|
|
|
|
|
qtd = ps.executeUpdate();
|
|
|
|
|
qtd = ps.executeUpdate();
|
|
|
|
|
|
|
|
|
|
connection.commit();
|
|
|
|
|
}catch(Throwable t){
|
|
|
|
|
} catch (Throwable t) {
|
|
|
|
|
connection.rollback();
|
|
|
|
|
}finally{
|
|
|
|
|
if (connection != null){
|
|
|
|
|
} finally {
|
|
|
|
|
if (connection != null) {
|
|
|
|
|
connection.close();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return qtd;
|
|
|
|
|
return qtd;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1144,14 +1144,14 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|
|
|
|
sb.append(" and cto.fechorsalida between vt.feciniciovigencia and vt.fecfinvigencia ");
|
|
|
|
|
sb.append(" and c.feccorrida between :datIni and :datFim ");
|
|
|
|
|
sb.append(" and c.corrida_id in (:corridaId) ");
|
|
|
|
|
//sb.append(" and ROWNUM < 2 ");
|
|
|
|
|
// sb.append(" and ROWNUM < 2 ");
|
|
|
|
|
|
|
|
|
|
Integer[] idsCorrida = getIdsCorrida(lsEsquemaCorrida);
|
|
|
|
|
Connection connection = null;
|
|
|
|
|
|
|
|
|
|
int qtd = 0;
|
|
|
|
|
|
|
|
|
|
try{
|
|
|
|
|
try {
|
|
|
|
|
connection = dataSource.getConnection();
|
|
|
|
|
|
|
|
|
|
connection.setAutoCommit(false);
|
|
|
|
@ -1160,21 +1160,20 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|
|
|
|
|
|
|
|
|
ps.setDate(1, new java.sql.Date(dataDe.getTime()));
|
|
|
|
|
ps.setDate(2, new java.sql.Date(dataAte.getTime()));
|
|
|
|
|
ps.setString(3,StringUtils.join(idsCorrida, ","));
|
|
|
|
|
ps.setString(3, StringUtils.join(idsCorrida, ","));
|
|
|
|
|
|
|
|
|
|
qtd = ps.executeUpdate();
|
|
|
|
|
qtd = ps.executeUpdate();
|
|
|
|
|
|
|
|
|
|
connection.commit();
|
|
|
|
|
|
|
|
|
|
}catch(Throwable t){
|
|
|
|
|
} catch (Throwable t) {
|
|
|
|
|
connection.rollback();
|
|
|
|
|
}finally{
|
|
|
|
|
if (connection != null){
|
|
|
|
|
} finally {
|
|
|
|
|
if (connection != null) {
|
|
|
|
|
connection.close();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return qtd;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1611,7 +1610,7 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (Map.Entry<String, ExportacaoECFTipoICF> entry : group.entrySet()) {
|
|
|
|
|
retorno.add(entry.getValue());
|
|
|
|
|
retorno.add(entry.getValue());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
rs.close();
|
|
|
|
@ -1995,13 +1994,13 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (Map.Entry<String, ExportacaoRMDTipoBPS> entry : group.entrySet()) {
|
|
|
|
|
registro = entry.getValue();
|
|
|
|
|
registro = entry.getValue();
|
|
|
|
|
|
|
|
|
|
if (registro.getQuantidadeTotal().intValue() == registro.getQuantidadeCancelados().intValue()) {
|
|
|
|
|
registro.setValorTotal(null);
|
|
|
|
|
} else {
|
|
|
|
|
registro.setResumoMovimentoDiario(Boolean.TRUE);
|
|
|
|
|
}
|
|
|
|
|
if (registro.getQuantidadeTotal().intValue() == registro.getQuantidadeCancelados().intValue()) {
|
|
|
|
|
registro.setValorTotal(null);
|
|
|
|
|
} else {
|
|
|
|
|
registro.setResumoMovimentoDiario(Boolean.TRUE);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
retorno.add(registro);
|
|
|
|
|
}
|
|
|
|
@ -2171,7 +2170,7 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (Map.Entry<String, ExportacaoRMDTipoDBP> entry : group.entrySet()) {
|
|
|
|
|
retorno.add(entry.getValue());
|
|
|
|
|
retorno.add(entry.getValue());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
rs.close();
|
|
|
|
@ -2184,12 +2183,41 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|
|
|
|
return retorno;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<ImpressaoRMD> getRegistroImpressaoRMDTipoDVB(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado, String rmd) {
|
|
|
|
|
@Override
|
|
|
|
|
public void gravarRMDBoleto(Connection connection, List<ImpressaoRMD> rmds, Aidf aidf) {
|
|
|
|
|
|
|
|
|
|
for (ImpressaoRMD imp : rmds) {
|
|
|
|
|
for (DetalhadoRMD det : imp.getDetalhada()) {
|
|
|
|
|
|
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
|
PreparedStatement pstmt = null;
|
|
|
|
|
try {
|
|
|
|
|
sb.append(" update boleto set rmd_id = ").append(aidf.getAidfId()).append(", ");
|
|
|
|
|
sb.append(" fecmodif = SYSDATE, usuario_id = ").append(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
|
|
|
|
sb.append(" where boleto_id = ").append(det.getBoletoId());
|
|
|
|
|
pstmt = connection.prepareStatement(sb.toString());
|
|
|
|
|
|
|
|
|
|
pstmt.executeUpdate();
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
log.error("", e);
|
|
|
|
|
} finally {
|
|
|
|
|
try {
|
|
|
|
|
pstmt.close();
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
log.error("", e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<ImpressaoRMD> getRegistroImpressaoRMDTipoDVB(Connection connection, Date inicio, Date fim, Integer empresaId,
|
|
|
|
|
String cveestado, String rmd) {
|
|
|
|
|
|
|
|
|
|
List<ImpressaoRMD> list = new ArrayList<ImpressaoRMD>();
|
|
|
|
|
|
|
|
|
|
// IMPRESSAO RMD MANUAL
|
|
|
|
|
|
|
|
|
|
String serie = null;
|
|
|
|
|
Date data = null;
|
|
|
|
|
// int primeiroFolio = 0;
|
|
|
|
@ -2197,7 +2225,7 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|
|
|
|
|
|
|
|
|
ImpressaoRMD impRmd = null;
|
|
|
|
|
|
|
|
|
|
for (DetalhadoRMDTipoDVB brp : buscarRegistroImpressaoRMDTipoDVB(connection, inicio, fim, empresaId, cveestado)) {
|
|
|
|
|
for (DetalhadoRMD brp : buscarRegistroImpressaoRMD(connection, inicio, fim, empresaId, cveestado, false)) {
|
|
|
|
|
|
|
|
|
|
if (serie == null) {
|
|
|
|
|
impRmd = new ImpressaoRMD(brp.getEmpresa(), brp.getEnderecoEmpresa(), brp.getCnpjEmpresa(), brp.getIeEmpresa(),
|
|
|
|
@ -2257,7 +2285,83 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|
|
|
|
return list;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private BigDecimal somarTotalBilhete(DetalhadoRMDTipoDVB brp) {
|
|
|
|
|
@Override
|
|
|
|
|
public List<ImpressaoRMD> getRegistroImpressaoRMDTipoECF(Connection connection, Date inicio, Date fim, Integer empresaId,
|
|
|
|
|
String cveestado, String rmd) {
|
|
|
|
|
|
|
|
|
|
List<ImpressaoRMD> list = new ArrayList<ImpressaoRMD>();
|
|
|
|
|
|
|
|
|
|
// IMPRESSAO RMD ECF
|
|
|
|
|
String serie = null;
|
|
|
|
|
Date data = null;
|
|
|
|
|
int anteriorFolio = 0;
|
|
|
|
|
|
|
|
|
|
ImpressaoRMD impRmd = null;
|
|
|
|
|
|
|
|
|
|
for (DetalhadoRMD brp : buscarRegistroImpressaoRMD(connection, inicio, fim, empresaId, cveestado, true)) {
|
|
|
|
|
|
|
|
|
|
if (serie == null) {
|
|
|
|
|
impRmd = new ImpressaoRMD(brp.getEmpresa(), brp.getEnderecoEmpresa(), brp.getCnpjEmpresa(), brp.getIeEmpresa(),
|
|
|
|
|
brp.getFechorVenta(), rmd, "SERVIÇO DE TRANSPORTE", "ECF", brp.getEcf(), brp.getEstadoOrigem());
|
|
|
|
|
serie = brp.getEcf();
|
|
|
|
|
data = brp.getFechorVenta();
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
if (serie.equals(brp.getEcf()) && data.equals(brp.getFechorVenta())) {
|
|
|
|
|
int coo = Integer.parseInt(brp.getCoo());
|
|
|
|
|
if (anteriorFolio + 1 == coo) {
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
impRmd.setNumero(brp.getCoo());
|
|
|
|
|
list.add(impRmd);
|
|
|
|
|
|
|
|
|
|
impRmd = new ImpressaoRMD(brp.getEmpresa(), brp.getEnderecoEmpresa(), brp.getCnpjEmpresa(), brp.getIeEmpresa(),
|
|
|
|
|
brp.getFechorVenta(), rmd, "SERVIÇO DE TRANSPORTE", "ECF", brp.getEcf(), brp.getEstadoOrigem());
|
|
|
|
|
serie = brp.getEcf();
|
|
|
|
|
data = brp.getFechorVenta();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
impRmd.setNumero(brp.getCoo());
|
|
|
|
|
list.add(impRmd);
|
|
|
|
|
|
|
|
|
|
impRmd = new ImpressaoRMD(brp.getEmpresa(), brp.getEnderecoEmpresa(), brp.getCnpjEmpresa(), brp.getIeEmpresa(),
|
|
|
|
|
brp.getFechorVenta(), rmd, "SERVIÇO DE TRANSPORTE", "ECF", brp.getEcf(), brp.getEstadoOrigem());
|
|
|
|
|
serie = brp.getEcf();
|
|
|
|
|
data = brp.getFechorVenta();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BigDecimal valorContabil = impRmd.getValorContabil() == null ? BigDecimal.ZERO : impRmd.getValorContabil().add(somarTotalBilhete(brp));
|
|
|
|
|
BigDecimal baseCalculo = impRmd.getBaseCalculo() == null ? BigDecimal.ZERO : impRmd.getBaseCalculo().add(
|
|
|
|
|
brp.getTarifa() == null ? BigDecimal.ZERO : brp.getTarifa());
|
|
|
|
|
|
|
|
|
|
BigDecimal aliquota = brp.getIcmsInterestadual();
|
|
|
|
|
BigDecimal icms = baseCalculo.multiply(aliquota.divide(BigDecimal.TEN.multiply(BigDecimal.TEN)));
|
|
|
|
|
|
|
|
|
|
BigDecimal isentos = BigDecimal.ZERO;
|
|
|
|
|
BigDecimal outros = valorContabil.subtract(baseCalculo);
|
|
|
|
|
|
|
|
|
|
impRmd.setValorContabil(valorContabil);
|
|
|
|
|
impRmd.setBaseCalculo(baseCalculo);
|
|
|
|
|
impRmd.setAliquota(aliquota);
|
|
|
|
|
impRmd.setIcms(icms);
|
|
|
|
|
impRmd.setIsentos(isentos);
|
|
|
|
|
impRmd.setOutros(outros);
|
|
|
|
|
|
|
|
|
|
impRmd.getDetalhada().add(brp);
|
|
|
|
|
anteriorFolio = brp.getFolio();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return list;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private BigDecimal somarTotalBilhete(DetalhadoRMD brp) {
|
|
|
|
|
|
|
|
|
|
BigDecimal total = BigDecimal.ZERO;
|
|
|
|
|
total = total.add(brp.getTarifa() == null ? BigDecimal.ZERO : brp.getTarifa());
|
|
|
|
@ -2268,84 +2372,19 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|
|
|
|
return total;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<DetalhadoRMDTipoDVB> buscarRegistroImpressaoRMDTipoDVB(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) {
|
|
|
|
|
public List<DetalhadoRMD> buscarRegistroImpressaoRMD(Connection connection, Date inicio, Date fim,
|
|
|
|
|
Integer empresaId, String cveestado, boolean isECF) {
|
|
|
|
|
|
|
|
|
|
List<DetalhadoRMDTipoDVB> list = new ArrayList<DetalhadoRMDTipoDVB>();
|
|
|
|
|
List<DetalhadoRMD> list = new ArrayList<DetalhadoRMD>();
|
|
|
|
|
try {
|
|
|
|
|
StringBuilder sql = new StringBuilder();
|
|
|
|
|
sql.append("select ");
|
|
|
|
|
sql.append(" b.boleto_id as boletoId, ");
|
|
|
|
|
sql.append(" b.numoperacion as numoperacion, ");
|
|
|
|
|
sql.append(" b.numseriepreimpresa as serieCompl, ");
|
|
|
|
|
sql.append(" b.numfoliopreimpreso as folio, ");
|
|
|
|
|
sql.append(" a.acfiscal as numAidf, ");
|
|
|
|
|
sql.append(" a.serie as serieAidf, ");
|
|
|
|
|
sql.append(" a.subserie as subSerieAidf, ");
|
|
|
|
|
sql.append(" trunc(b.fechorventa) as fechorVenta, ");
|
|
|
|
|
sql.append(" e.nombempresa as empresa, ");
|
|
|
|
|
sql.append(" e.cnpj as cnpjEmpresa, ");
|
|
|
|
|
sql.append(" e.logradouro || ', ' || e.numero || ' - ' || e.bairro || ', ' || ce.nombciudad ");
|
|
|
|
|
sql.append(" || ' - ' || ee.cveestado || ', ' || e.cep ");
|
|
|
|
|
sql.append(" as enderecoEmpresa, ");
|
|
|
|
|
sql.append(" ie.numinscricaoestadual as ieEmpresa, ");
|
|
|
|
|
sql.append(" coalesce(eos.estado_id, eo.estado_id) as estadoId, ");
|
|
|
|
|
sql.append(" coalesce(ei.icms, eo.icms) as icmsInterestadual, ");
|
|
|
|
|
sql.append(" ei.icmsim as icmsIntermunicipal, ");
|
|
|
|
|
sql.append(" coalesce(eos.cveestado, eo.cveestado) as estadoOrigem, ");
|
|
|
|
|
sql.append(" coalesce(eds.cveestado, ed.cveestado) as estadoDestino, ");
|
|
|
|
|
sql.append(" coalesce(cos.codibge, co.codibge) as municipioOrigem, ");
|
|
|
|
|
sql.append(" case when((coalesce(eos.cveestado, eo.cveestado)) = ");
|
|
|
|
|
sql.append(" (coalesce(eds.cveestado, ed.cveestado))) ");
|
|
|
|
|
sql.append(" then 0 else 1 ");
|
|
|
|
|
sql.append(" end as isInterEstadual, ");
|
|
|
|
|
sql.append(" ei.porcredbaseicms as redBaseCalcIcms, ");
|
|
|
|
|
sql.append(" ei.porcredmunicipal as porcRedMunicipal, ");
|
|
|
|
|
sql.append(" ei.porcredestadual as porcRedEstadual, ");
|
|
|
|
|
sql.append(" ei.tributacaoimportacao as tributacaoImportacao, ");
|
|
|
|
|
sql.append(" case when (coalesce(pos.regionmetropolitana_id, po.regionmetropolitana_id, -1) = ");
|
|
|
|
|
sql.append(" coalesce(pds.regionmetropolitana_id, pd.regionmetropolitana_id, -2)) ");
|
|
|
|
|
sql.append(" 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("from boleto b ");
|
|
|
|
|
sql.append(" join empresa e on e.empresa_id = b.empresacorrida_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 = b.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 = b.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 = b.origen_id ");
|
|
|
|
|
sql.append(" and s.destino_id = b.destino_id and s.corrida_id = b.corrida_id ");
|
|
|
|
|
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(" join inscricao_estadual ie on e.empresa_id = ie.empresa_id ");
|
|
|
|
|
sql.append(" and ie.estado_id = coalesce(eos.estado_id, eo.estado_id) and ie.activo = 1 ");
|
|
|
|
|
sql.append(" join empresa_imposto ei on ei.empresa_id = b.empresacorrida_id ");
|
|
|
|
|
sql.append(" and ei.estado_id = coalesce(eos.estado_id, eo.estado_id) and ei.activo = 1 ");
|
|
|
|
|
sql.append(" left join aidf a on a.serie = substr(b.numseriepreimpresa, 1, 3) ");
|
|
|
|
|
sql.append(" and a.estado_id = (CASE WHEN s.aliasorigen_id IS NULL ");
|
|
|
|
|
sql.append(" THEN eo.estado_id ELSE eos.estado_id END) ");
|
|
|
|
|
sql.append("where ");
|
|
|
|
|
sql.append(" b.activo = 1 ");
|
|
|
|
|
sql.append(" and b.tipoventa_id = 3 ");
|
|
|
|
|
sql.append(" and b.indstatusboleto like 'V' ");
|
|
|
|
|
sql.append(" and b.empresacorrida_id = ? ");
|
|
|
|
|
sql.append(" and b.fechorventa between ? and ? ");
|
|
|
|
|
sql.append(" and coalesce(eos.cveestado, eo.cveestado) = ? ");
|
|
|
|
|
sql.append("order by estadoId, fechorVenta ");
|
|
|
|
|
String sql = null;
|
|
|
|
|
if (isECF) {
|
|
|
|
|
sql = getSqlImpressaoRMDTipoECF();
|
|
|
|
|
} else {
|
|
|
|
|
sql = getSqlImpressaoRMDTipoDVB();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
PreparedStatement ps = connection.prepareStatement(sql.toString());
|
|
|
|
|
PreparedStatement ps = connection.prepareStatement(sql);
|
|
|
|
|
ps.setLong(1, Long.valueOf(empresaId));
|
|
|
|
|
ps.setDate(2, new java.sql.Date(inicio.getTime()));
|
|
|
|
|
ps.setDate(3, new java.sql.Date(fim.getTime()));
|
|
|
|
@ -2354,7 +2393,7 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|
|
|
|
ResultSet rs = ps.executeQuery();
|
|
|
|
|
while (rs.next()) {
|
|
|
|
|
|
|
|
|
|
DetalhadoRMDTipoDVB brp = new DetalhadoRMDTipoDVB();
|
|
|
|
|
DetalhadoRMD brp = new DetalhadoRMD();
|
|
|
|
|
brp.setBoletoId(rs.getLong("boletoId"));
|
|
|
|
|
brp.setNumoperacion(rs.getString("numoperacion"));
|
|
|
|
|
brp.setSerie(rs.getString("serieCompl"));
|
|
|
|
@ -2383,6 +2422,13 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|
|
|
|
brp.setSeguro(rs.getBigDecimal("seguro"));
|
|
|
|
|
brp.setOutros(rs.getBigDecimal("outros"));
|
|
|
|
|
|
|
|
|
|
if (isECF) {
|
|
|
|
|
brp.setEcf(rs.getString("ecf"));
|
|
|
|
|
brp.setDatamov(rs.getString("datamov"));
|
|
|
|
|
brp.setCoo(rs.getString("coo"));
|
|
|
|
|
brp.setTotalFiscal(rs.getString("totalFiscal"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
list.add(brp);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -2395,4 +2441,166 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|
|
|
|
|
|
|
|
|
return list;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public String getSqlImpressaoRMDTipoDVB() {
|
|
|
|
|
StringBuilder sql = new StringBuilder();
|
|
|
|
|
sql.append("select ");
|
|
|
|
|
sql.append(" b.boleto_id as boletoId, ");
|
|
|
|
|
sql.append(" b.numoperacion as numoperacion, ");
|
|
|
|
|
sql.append(" b.numseriepreimpresa as serieCompl, ");
|
|
|
|
|
sql.append(" b.numfoliopreimpreso as folio, ");
|
|
|
|
|
sql.append(" a.acfiscal as numAidf, ");
|
|
|
|
|
sql.append(" a.serie as serieAidf, ");
|
|
|
|
|
sql.append(" a.subserie as subSerieAidf, ");
|
|
|
|
|
sql.append(" trunc(b.fechorventa) as fechorVenta, ");
|
|
|
|
|
sql.append(" e.nombempresa as empresa, ");
|
|
|
|
|
sql.append(" e.cnpj as cnpjEmpresa, ");
|
|
|
|
|
sql.append(" e.logradouro || ', ' || e.numero || ' - ' || e.bairro || ', ' || ce.nombciudad ");
|
|
|
|
|
sql.append(" || ' - ' || ee.cveestado || ', ' || e.cep ");
|
|
|
|
|
sql.append(" as enderecoEmpresa, ");
|
|
|
|
|
sql.append(" ie.numinscricaoestadual as ieEmpresa, ");
|
|
|
|
|
sql.append(" coalesce(eos.estado_id, eo.estado_id) as estadoId, ");
|
|
|
|
|
sql.append(" coalesce(ei.icms, eo.icms) as icmsInterestadual, ");
|
|
|
|
|
sql.append(" ei.icmsim as icmsIntermunicipal, ");
|
|
|
|
|
sql.append(" coalesce(eos.cveestado, eo.cveestado) as estadoOrigem, ");
|
|
|
|
|
sql.append(" coalesce(eds.cveestado, ed.cveestado) as estadoDestino, ");
|
|
|
|
|
sql.append(" coalesce(cos.codibge, co.codibge) as municipioOrigem, ");
|
|
|
|
|
sql.append(" case when((coalesce(eos.cveestado, eo.cveestado)) = ");
|
|
|
|
|
sql.append(" (coalesce(eds.cveestado, ed.cveestado))) ");
|
|
|
|
|
sql.append(" then 0 else 1 ");
|
|
|
|
|
sql.append(" end as isInterEstadual, ");
|
|
|
|
|
sql.append(" ei.porcredbaseicms as redBaseCalcIcms, ");
|
|
|
|
|
sql.append(" ei.porcredmunicipal as porcRedMunicipal, ");
|
|
|
|
|
sql.append(" ei.porcredestadual as porcRedEstadual, ");
|
|
|
|
|
sql.append(" ei.tributacaoimportacao as tributacaoImportacao, ");
|
|
|
|
|
sql.append(" case when (coalesce(pos.regionmetropolitana_id, po.regionmetropolitana_id, -1) = ");
|
|
|
|
|
sql.append(" coalesce(pds.regionmetropolitana_id, pd.regionmetropolitana_id, -2)) ");
|
|
|
|
|
sql.append(" 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("from boleto b ");
|
|
|
|
|
sql.append(" join empresa e on e.empresa_id = b.empresacorrida_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 = b.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 = b.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 = b.origen_id ");
|
|
|
|
|
sql.append(" and s.destino_id = b.destino_id and s.corrida_id = b.corrida_id ");
|
|
|
|
|
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(" join inscricao_estadual ie on e.empresa_id = ie.empresa_id ");
|
|
|
|
|
sql.append(" and ie.estado_id = coalesce(eos.estado_id, eo.estado_id) and ie.activo = 1 ");
|
|
|
|
|
sql.append(" join empresa_imposto ei on ei.empresa_id = b.empresacorrida_id ");
|
|
|
|
|
sql.append(" and ei.estado_id = coalesce(eos.estado_id, eo.estado_id) and ei.activo = 1 ");
|
|
|
|
|
sql.append(" left join aidf a on a.serie = substr(b.numseriepreimpresa, 1, 3) ");
|
|
|
|
|
sql.append(" and a.estado_id = (CASE WHEN s.aliasorigen_id IS NULL ");
|
|
|
|
|
sql.append(" THEN eo.estado_id ELSE eos.estado_id END) ");
|
|
|
|
|
sql.append("where ");
|
|
|
|
|
sql.append(" b.activo = 1 ");
|
|
|
|
|
sql.append(" and b.tipoventa_id = 3 ");
|
|
|
|
|
sql.append(" and b.rmd_id is null ");
|
|
|
|
|
sql.append(" and b.indstatusboleto = 'V' ");
|
|
|
|
|
sql.append(" and b.empresacorrida_id = ? ");
|
|
|
|
|
sql.append(" and b.fechorventa between ? and ? ");
|
|
|
|
|
sql.append(" and coalesce(eos.cveestado, eo.cveestado) = ? ");
|
|
|
|
|
sql.append("order by estadoId, serieCompl, folio, fechorVenta ");
|
|
|
|
|
|
|
|
|
|
return sql.toString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public String getSqlImpressaoRMDTipoECF() {
|
|
|
|
|
|
|
|
|
|
StringBuilder sql = new StringBuilder();
|
|
|
|
|
sql.append("select ");
|
|
|
|
|
sql.append(" b.boleto_id as boletoId, ");
|
|
|
|
|
sql.append(" b.numoperacion as numoperacion, ");
|
|
|
|
|
sql.append(" b.numseriepreimpresa as serieCompl, ");
|
|
|
|
|
sql.append(" b.numfoliopreimpreso as folio, ");
|
|
|
|
|
sql.append(" a.acfiscal as numAidf, ");
|
|
|
|
|
sql.append(" a.serie as serieAidf, ");
|
|
|
|
|
sql.append(" a.subserie as subSerieAidf, ");
|
|
|
|
|
sql.append(" trunc(b.fechorventa) as fechorVenta, ");
|
|
|
|
|
sql.append(" e.nombempresa as empresa, ");
|
|
|
|
|
sql.append(" e.cnpj as cnpjEmpresa, ");
|
|
|
|
|
sql.append(" e.logradouro || ', ' || e.numero || ' - ' || e.bairro || ', ' || ce.nombciudad ");
|
|
|
|
|
sql.append(" || ' - ' || ee.cveestado || ', ' || e.cep ");
|
|
|
|
|
sql.append(" as enderecoEmpresa, ");
|
|
|
|
|
sql.append(" ie.numinscricaoestadual as ieEmpresa, ");
|
|
|
|
|
sql.append(" coalesce(eos.estado_id, eo.estado_id) as estadoId, ");
|
|
|
|
|
sql.append(" coalesce(ei.icms, eo.icms) as icmsInterestadual, ");
|
|
|
|
|
sql.append(" ei.icmsim as icmsIntermunicipal, ");
|
|
|
|
|
sql.append(" coalesce(eos.cveestado, eo.cveestado) as estadoOrigem, ");
|
|
|
|
|
sql.append(" coalesce(eds.cveestado, ed.cveestado) as estadoDestino, ");
|
|
|
|
|
sql.append(" coalesce(cos.codibge, co.codibge) as municipioOrigem, ");
|
|
|
|
|
sql.append(" case when((coalesce(eos.cveestado, eo.cveestado)) = ");
|
|
|
|
|
sql.append(" (coalesce(eds.cveestado, ed.cveestado))) ");
|
|
|
|
|
sql.append(" then 0 else 1 ");
|
|
|
|
|
sql.append(" end as isInterEstadual, ");
|
|
|
|
|
sql.append(" ei.porcredbaseicms as redBaseCalcIcms, ");
|
|
|
|
|
sql.append(" ei.porcredmunicipal as porcRedMunicipal, ");
|
|
|
|
|
sql.append(" ei.porcredestadual as porcRedEstadual, ");
|
|
|
|
|
sql.append(" ei.tributacaoimportacao as tributacaoImportacao, ");
|
|
|
|
|
sql.append(" case when (coalesce(pos.regionmetropolitana_id, po.regionmetropolitana_id, -1) = ");
|
|
|
|
|
sql.append(" coalesce(pds.regionmetropolitana_id, pd.regionmetropolitana_id, -2)) ");
|
|
|
|
|
sql.append(" 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(" r4.numserie20 as ecf, ");
|
|
|
|
|
sql.append(" r4.datamov as datamov, ");
|
|
|
|
|
sql.append(" r4.coo as coo, ");
|
|
|
|
|
sql.append(" r4.impsubtotal as totalFiscal ");
|
|
|
|
|
sql.append("from fiscal_r4 r4 ");
|
|
|
|
|
sql.append(" join boleto b on b.boleto_id = r4.boleto_id ");
|
|
|
|
|
sql.append(" join empresa e on e.empresa_id = b.empresacorrida_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 = b.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 = b.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 = b.origen_id ");
|
|
|
|
|
sql.append(" and s.destino_id = b.destino_id and s.corrida_id = b.corrida_id ");
|
|
|
|
|
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(" join inscricao_estadual ie on e.empresa_id = ie.empresa_id ");
|
|
|
|
|
sql.append(" and ie.estado_id = coalesce(eos.estado_id, eo.estado_id) and ie.activo = 1 ");
|
|
|
|
|
sql.append(" join empresa_imposto ei on ei.empresa_id = b.empresacorrida_id ");
|
|
|
|
|
sql.append(" and ei.estado_id = coalesce(eos.estado_id, eo.estado_id) and ei.activo = 1 ");
|
|
|
|
|
sql.append(" left join aidf a on a.serie = substr(b.numseriepreimpresa, 1, 3) ");
|
|
|
|
|
sql.append(" and a.estado_id = (CASE WHEN s.aliasorigen_id IS NULL ");
|
|
|
|
|
sql.append(" THEN eo.estado_id ELSE eos.estado_id END) ");
|
|
|
|
|
sql.append("where ");
|
|
|
|
|
sql.append(" b.activo = 1 ");
|
|
|
|
|
sql.append(" and b.tipoventa_id <> 3 ");
|
|
|
|
|
sql.append(" and b.rmd_id is null ");
|
|
|
|
|
sql.append(" and b.indstatusboleto = 'V' ");
|
|
|
|
|
sql.append(" and b.empresacorrida_id = ? ");
|
|
|
|
|
sql.append(" and b.fechorventa between ? and ? ");
|
|
|
|
|
sql.append(" and coalesce(eos.cveestado, eo.cveestado) = ? ");
|
|
|
|
|
sql.append("order by estadoId, ecf, coo, fechorVenta ");
|
|
|
|
|
|
|
|
|
|
return sql.toString();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|