bug #8977
git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@69361 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
a6598ff990
commit
a4a01bdc51
|
@ -53,5 +53,8 @@ public interface FiscalDAO {
|
|||
|
||||
public List<ImpressaoRMD> getRegistroImpressaoRMDTipoECF(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado, String rmd, String folio);
|
||||
|
||||
public void gravarRMDBoleto(Connection connection, List<ImpressaoRMD> rmds, Aidf aidf);
|
||||
public void gravarRMDBoleto(Connection connection, List<ImpressaoRMD> rmds, Aidf aidf, String folio);
|
||||
|
||||
public void cancelarRMDBoleto(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado, Aidf aidf, String folio);
|
||||
|
||||
}
|
||||
|
|
|
@ -2363,15 +2363,52 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
|
|||
}
|
||||
|
||||
@Override
|
||||
public void gravarRMDBoleto(Connection connection, List<ImpressaoRMD> rmds, Aidf aidf) {
|
||||
public void cancelarRMDBoleto(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado, Aidf aidf, String folio) {
|
||||
|
||||
String def = null;
|
||||
for (DetalhadoRMD brp : buscarRegistroImpressaoRMD(connection, inicio, fim, empresaId, cveestado, aidf.getAidfId(), folio, false, false, true)) {
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
PreparedStatement pstmt = null;
|
||||
try {
|
||||
sb.append(" update boleto set rmd_id = ").append(def).append(", ");
|
||||
sb.append(" foliormd = ").append(def).append(", ");
|
||||
sb.append(" fecmodif = SYSDATE, usuario_id = ").append(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||
sb.append(" where boleto_id = ").append(brp.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 void gravarRMDBoleto(Connection connection, List<ImpressaoRMD> rmds, Aidf aidf, String folio) {
|
||||
|
||||
int cont = 0;
|
||||
int rmdIterate = Integer.parseInt(folio);
|
||||
|
||||
for (ImpressaoRMD imp : rmds) {
|
||||
if (cont > 28) {
|
||||
rmdIterate++;
|
||||
cont = 0;
|
||||
}
|
||||
|
||||
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(" foliormd = ").append(rmdIterate).append(", ");
|
||||
sb.append(" fecmodif = SYSDATE, usuario_id = ").append(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||
sb.append(" where boleto_id = ").append(det.getBoletoId());
|
||||
pstmt = connection.prepareStatement(sb.toString());
|
||||
|
@ -2387,6 +2424,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
cont++;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2404,7 +2443,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
|
|||
|
||||
ImpressaoRMD impRmd = null;
|
||||
|
||||
for (DetalhadoRMD brp : buscarRegistroImpressaoRMD(connection, inicio, fim, empresaId, cveestado, false)) {
|
||||
for (DetalhadoRMD brp : buscarRegistroImpressaoRMD(connection, inicio, fim, empresaId, cveestado, null, null, true, false, false)) {
|
||||
|
||||
if (serie == null) {
|
||||
impRmd = new ImpressaoRMD(brp.getEmpresa(), brp.getEnderecoEmpresa(), brp.getCnpjEmpresa(), brp.getIeEmpresa(),
|
||||
|
@ -2439,7 +2478,6 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
|
|||
BigDecimal baseCalculo = impRmd.getBaseCalculo() == null ? BigDecimal.ZERO : impRmd.getBaseCalculo().add(
|
||||
brp.getTarifa() == null ? BigDecimal.ZERO : brp.getTarifa());
|
||||
|
||||
// BigDecimal aliquota = brp.getIcmsInterestadual();
|
||||
BigDecimal aliquota = brp.getTributacaoImportacao();
|
||||
|
||||
BigDecimal icms = baseCalculo.multiply(aliquota.divide(BigDecimal.TEN.multiply(BigDecimal.TEN)));
|
||||
|
@ -2473,54 +2511,33 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
|
|||
|
||||
// IMPRESSAO RMD ECF
|
||||
String serie = null;
|
||||
Date data = null;
|
||||
int anteriorFolio = 0;
|
||||
|
||||
String datamov = null;
|
||||
ImpressaoRMD impRmd = null;
|
||||
|
||||
for (DetalhadoRMD brp : buscarRegistroImpressaoRMD(connection, inicio, fim, empresaId, cveestado, true)) {
|
||||
for (DetalhadoRMD brp : buscarRegistroImpressaoRMD(connection, inicio, fim, empresaId, cveestado, null, null, false, true, false)) {
|
||||
|
||||
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(), folio);
|
||||
serie = brp.getEcf();
|
||||
data = brp.getFechorVenta();
|
||||
datamov = brp.getDatamov();
|
||||
|
||||
} else {
|
||||
} else if (!(serie.equals(brp.getEcf()) && datamov.equals(brp.getDatamov()))) {
|
||||
impRmd.setNumero(brp.getCcf());
|
||||
list.add(impRmd);
|
||||
|
||||
if (serie.equals(brp.getEcf()) && data.equals(brp.getFechorVenta())) {
|
||||
int coo = Integer.parseInt(brp.getCcf());
|
||||
if (anteriorFolio + 1 == coo) {
|
||||
|
||||
} else {
|
||||
|
||||
impRmd.setNumero(brp.getCcf());
|
||||
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(), folio);
|
||||
serie = brp.getEcf();
|
||||
data = brp.getFechorVenta();
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
impRmd.setNumero(brp.getCcf());
|
||||
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(), folio);
|
||||
serie = brp.getEcf();
|
||||
data = brp.getFechorVenta();
|
||||
|
||||
}
|
||||
impRmd = new ImpressaoRMD(brp.getEmpresa(), brp.getEnderecoEmpresa(), brp.getCnpjEmpresa(), brp.getIeEmpresa(),
|
||||
brp.getFechorVenta(), rmd, "SERVIÇO DE TRANSPORTE", "ECF", brp.getEcf(), brp.getEstadoOrigem(), folio);
|
||||
serie = brp.getEcf();
|
||||
datamov = brp.getDatamov();
|
||||
}
|
||||
|
||||
impRmd.getDetalhada().add(brp);
|
||||
anteriorFolio = Integer.parseInt(brp.getCcf());
|
||||
}
|
||||
|
||||
list.add(impRmd);
|
||||
if (impRmd != null)
|
||||
list.add(impRmd);
|
||||
|
||||
agruparImpressaoRMD(list);
|
||||
|
||||
return list;
|
||||
|
@ -2572,24 +2589,34 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
|
|||
return total;
|
||||
}
|
||||
|
||||
public List<DetalhadoRMD> buscarRegistroImpressaoRMD(Connection connection, Date inicio, Date fim,
|
||||
Integer empresaId, String cveestado, boolean isECF) {
|
||||
public List<DetalhadoRMD> buscarRegistroImpressaoRMD(Connection connection, Date inicio, Date fim, Integer empresaId,
|
||||
String cveestado, Long rmdId, String foliormd, boolean isManual, boolean isECF, boolean isCancelamento) {
|
||||
|
||||
List<DetalhadoRMD> list = new ArrayList<DetalhadoRMD>();
|
||||
try {
|
||||
String sql = null;
|
||||
if (isECF) {
|
||||
sql = getSqlImpressaoRMDTipoECF();
|
||||
} else {
|
||||
|
||||
} else if (isManual) {
|
||||
sql = getSqlImpressaoRMDTipoDVB();
|
||||
|
||||
} else if (isCancelamento) {
|
||||
sql = getSqlCancelarRMDTipoECF();
|
||||
}
|
||||
|
||||
PreparedStatement ps = connection.prepareStatement(sql);
|
||||
|
||||
ps.setLong(1, Long.valueOf(empresaId));
|
||||
ps.setTimestamp(2, new java.sql.Timestamp(DateUtil.inicioFecha(inicio).getTime()));
|
||||
ps.setTimestamp(3, new java.sql.Timestamp(DateUtil.fimFecha(fim).getTime()));
|
||||
ps.setString(4, cveestado);
|
||||
|
||||
if (isCancelamento) {
|
||||
ps.setLong(5, rmdId);
|
||||
ps.setString(6, foliormd);
|
||||
}
|
||||
|
||||
ResultSet rs = ps.executeQuery();
|
||||
while (rs.next()) {
|
||||
|
||||
|
@ -2645,7 +2672,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
|
|||
return list;
|
||||
}
|
||||
|
||||
public String getSqlImpressaoRMDTipoDVB() {
|
||||
private String getSqlImpressaoRMDTipoDVB() {
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.append("select ");
|
||||
sql.append(" b.boleto_id as boletoId, ");
|
||||
|
@ -2726,7 +2753,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
|
|||
return sql.toString();
|
||||
}
|
||||
|
||||
public String getSqlImpressaoRMDTipoECF() {
|
||||
private String getSqlImpressaoRMDTipoECF() {
|
||||
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.append("select ");
|
||||
|
@ -2808,7 +2835,85 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
|
|||
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, ecf, coo ");
|
||||
sql.append("order by estadoId, datamov, ecf, coo ");
|
||||
|
||||
return sql.toString();
|
||||
}
|
||||
|
||||
private String getSqlCancelarRMDTipoECF() {
|
||||
|
||||
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(" pv.nombpuntoventa as nombPuntoVenta, ");
|
||||
sql.append(" pv.numpuntoventa as numPuntoVenta, ");
|
||||
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 punto_venta pv on pv.puntoventa_id = b.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 = 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 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(" 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 b.empresacorrida_id = ? ");
|
||||
sql.append(" and b.fechorventa between ? and ? ");
|
||||
sql.append(" and coalesce(eos.cveestado, eo.cveestado) = ? ");
|
||||
sql.append(" and b.rmd_id = ? ");
|
||||
sql.append(" and b.foliormd = ? ");
|
||||
|
||||
return sql.toString();
|
||||
}
|
||||
|
|
|
@ -51,5 +51,8 @@ public interface FiscalService {
|
|||
|
||||
public List<ImpressaoRMD> getRegistroImpressaoRMDTipoECF(Connection connection, Date inicio, Date fim, Empresa empresa, Estado estado, String rmd, String folio);
|
||||
|
||||
public void gravarRMDBoleto(Connection connection, List<ImpressaoRMD> rmds, Aidf aidf);
|
||||
public void gravarRMDBoleto(Connection connection, List<ImpressaoRMD> rmds, Aidf aidf, String folio);
|
||||
|
||||
public void cancelarRMDBoleto(Connection connection, Date inicio, Date fim, Empresa empresa, Estado estado, Aidf aidf, String folio);
|
||||
|
||||
}
|
||||
|
|
|
@ -91,8 +91,13 @@ public class FiscalServiceImpl implements FiscalService {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void gravarRMDBoleto(Connection connection, List<ImpressaoRMD> rmds, Aidf aidf) {
|
||||
fiscalDAO.gravarRMDBoleto(connection, rmds, aidf);
|
||||
public void gravarRMDBoleto(Connection connection, List<ImpressaoRMD> rmds, Aidf aidf, String folio) {
|
||||
fiscalDAO.gravarRMDBoleto(connection, rmds, aidf, folio);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancelarRMDBoleto(Connection connection, Date inicio, Date fim, Empresa empresa, Estado estado, Aidf aidf, String folio) {
|
||||
fiscalDAO.cancelarRMDBoleto(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado(), aidf, folio);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in New Issue