Conflictos al hacer el merge con master

master
Luis Angel Espina Hernandez 2024-09-02 16:43:43 -04:00
commit b7e4a636e1
7 changed files with 177 additions and 93 deletions

View File

@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>br.com.rjconsultores</groupId>
<artifactId>ModelWeb</artifactId>
<version>1.101.0</version>
<version>1.102.1</version>
<distributionManagement>
<repository>

View File

@ -8,5 +8,6 @@ public interface FechamentoParamgeralDAO extends GenericDAO<FechamentoParamgeral
public List<FechamentoParamgeral> buscaParametrosPorEmpresas(List<Integer> empresasId);
public List<FechamentoParamgeral> buscaParametrosPorEmpresa(Integer empresasId);
public FechamentoParamgeral buscaParametrosPorEmpresasBanco(Integer empresaId, String boletoBancoCod);
}

View File

@ -12,6 +12,7 @@ import org.springframework.stereotype.Repository;
import com.rjconsultores.ventaboletos.dao.FechamentoParamgeralDAO;
import com.rjconsultores.ventaboletos.entidad.FechamentoParamgeral;
import com.rjconsultores.ventaboletos.entidad.FechamentoParamptovta;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
@Repository("fechamentoParamgeralDAO")
@ -60,4 +61,15 @@ public class FechamentoParamgeralHibernateDAO extends GenericHibernateDAO<Fecham
actualizacion(entity);
}
@Override
public FechamentoParamgeral buscaParametrosPorEmpresasBanco(Integer empresaId, String boletoBancoCod) {
Criteria query = getSession().createCriteria(getPersistentClass());
query.createAlias("empresa", "emp");
query.add(Restrictions.eq("emp.empresaId", empresaId));
query.add(Restrictions.eq("boletoBancoCod", boletoBancoCod));
query.add(Restrictions.eq(ACTIVO, Boolean.TRUE));
return (FechamentoParamgeral) query.uniqueResult();
}
}

View File

@ -130,6 +130,10 @@ public class TipoEventoExtra implements Serializable {
@JoinColumn(name = "IMPRESIONLAYOUTCONFIG_ID")
private ImpresionLayoutConfig impresionLayoutConfig;
@OneToOne
@JoinColumn(name = "IMPRESIONLAYOUTEMAILCONFIG_ID")
private ImpresionLayoutConfig impresionLayoutEmailConfig;
public TipoEventoExtraEmpresa addEmpresa(Empresa e) {
TipoEventoExtraEmpresa t = new TipoEventoExtraEmpresa();
t.setEmpresa(e);
@ -458,6 +462,13 @@ public class TipoEventoExtra implements Serializable {
this.indQuantViasImp = indQuantViasImp;
}
public ImpresionLayoutConfig getImpresionLayoutEmailConfig() {
return impresionLayoutEmailConfig;
}
public void setImpresionLayoutEmailConfig(ImpresionLayoutConfig impresionLayoutEmailConfig) {
this.impresionLayoutEmailConfig = impresionLayoutEmailConfig;
}
@Override
public int hashCode() {

View File

@ -9,5 +9,5 @@ public interface FechamentoParamgeralService extends GenericService<FechamentoPa
public List<FechamentoParamgeral> buscaParametrosPorEmpresas(List<Integer> empresasId);
public List<FechamentoParamgeral> buscaParametrosPorEmpresa(Integer empresasId);
public FechamentoParamgeral suscribirOrActualizacion(FechamentoParamgeral fechamentoParamgeral);
public FechamentoParamgeral buscaParametrosPorEmpresasBanco(Integer empresasId, String boletoBancoCod);
}

View File

@ -69,4 +69,14 @@ public class FechamentoParamgeralServiceImpl implements FechamentoParamgeralServ
}
return null;
}
@Override
public FechamentoParamgeral buscaParametrosPorEmpresasBanco(Integer empresaId, String boletoBancoCod) {
return fechamentoParamgeralDAO.buscaParametrosPorEmpresasBanco(empresaId, boletoBancoCod);
}
}

View File

@ -5,6 +5,7 @@ import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.sql.SQLException;
import org.apache.logging.log4j.LogManager;
@ -20,9 +21,12 @@ import com.rjconsultores.ventaboletos.blocos.safra.DetalheRetornoSafra;
import com.rjconsultores.ventaboletos.dao.RemessaCNABBancosDAO;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.FechamentoBoleto;
import com.rjconsultores.ventaboletos.entidad.FechamentoParamgeral;
import com.rjconsultores.ventaboletos.enuns.BancoLayout;
import com.rjconsultores.ventaboletos.service.FechamentoParamgeralService;
import com.rjconsultores.ventaboletos.service.ImportacaoRetornoBancarioService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
import com.rjconsultores.ventaboletos.utils.NossoNumeroUtils;
@Service("importacaoRetornoBancarioService")
public class ImportacaoRetornoBancarioServiceImpl implements ImportacaoRetornoBancarioService {
@ -33,10 +37,14 @@ public class ImportacaoRetornoBancarioServiceImpl implements ImportacaoRetornoBa
@Autowired
private RemessaCNABBancosDAO remessaCNABBancosDAO;
@Autowired
private FechamentoParamgeralService fechamentoParamgeralService;
private static final Logger log = LogManager.getLogger(ImportacaoRetornoBancarioServiceImpl.class);
@Override
public String lerArquivo(ByteArrayInputStream bais, Empresa empresa){
public String lerArquivo(ByteArrayInputStream bais, Empresa empresa) {
StringBuilder resultado = new StringBuilder();
StringBuilder detalhado = new StringBuilder();
@ -48,12 +56,12 @@ public class ImportacaoRetornoBancarioServiceImpl implements ImportacaoRetornoBa
BancoLayout banco = BancoLayout.getInstanceByCodBanco(remessaCNABBancosDAO.findBanco(empresa));
ArquivoRetornoItem retornoBancario = processaRetornoBancario(bais, banco);
if( retornoBancario == null ) {
if (retornoBancario == null) {
resultado.append("O banco cadastrado para a empresa não tem Implementação de retorno bancário");
return resultado.toString();
}
if(!banco.getCodBanco().equals(retornoBancario.getCabecalhoRetorno().getCodigoBanco())) {
if (!banco.getCodBanco().equals(retornoBancario.getCabecalhoRetorno().getCodigoBanco())) {
resultado.append("O banco cadastrado para a empresa não é o mesmo do arquivo selecionado");
return resultado.toString();
}
@ -62,20 +70,22 @@ public class ImportacaoRetornoBancarioServiceImpl implements ImportacaoRetornoBa
Integer usuarioId = UsuarioLogado.getUsuarioLogado().getUsuarioId();
try {
if( !detalhe.getCodigoOcorrencia().equals(LIQUIDACAO_NORMAL)
&& !detalhe.getCodigoOcorrencia().equals(LIQUIDACAO_EM_CARTORIO) ) {
if (!detalhe.getCodigoOcorrencia().equals(LIQUIDACAO_NORMAL)
&& !detalhe.getCodigoOcorrencia().equals(LIQUIDACAO_EM_CARTORIO)) {
erros++;
detalhado.append("Registro sem ocorrencia de quitação: ").append(detalhe.getNossoNumero()).append(".\n");
}else
if( salvarRetornoBancario( detalhe, empresa.getEmpresaId(), usuarioId )) {
detalhado.append("Registro sem ocorrencia de quitação: ").append(detalhe.getNossoNumero())
.append(".\n");
} else
atualizados++;
if (salvarRetornoBancario(detalhe, empresa.getEmpresaId(), usuarioId)) {
detalhado.append("Quitado:").append(detalhe.getNossoNumero()).append(".\n");
}else {
} else {
erros++;
detalhado.append("Nao Quitado: ").append(detalhe.getNossoNumero()).append(".\n");
}
} catch (SQLException se) {
detalhado.append("Ocorreu um erro no banco de dados: ").append(detalhe.getNossoNumero()).append(".\n");
detalhado.append("Ocorreu um erro no banco de dados: ").append(detalhe.getNossoNumero())
.append(".\n");
log.error(se);
erros++;
} catch (RuntimeException re) {
@ -86,9 +96,9 @@ public class ImportacaoRetornoBancarioServiceImpl implements ImportacaoRetornoBa
}
resultado.append("Arquivo Processado ");
if(erros > 0) {
if (erros > 0) {
resultado.append("com ressalvas.\n");
}else {
} else {
resultado.append("com sucesso. \n");
}
resultado.append("Quitados ").append(atualizados).append(".\n");
@ -101,7 +111,7 @@ public class ImportacaoRetornoBancarioServiceImpl implements ImportacaoRetornoBa
log.error(ioe);
return resultado.toString();
} catch (RuntimeException re) {
resultado.append( re.getMessage() );
resultado.append(re.getMessage());
log.error(re);
return resultado.toString();
} catch (Exception e) {
@ -111,18 +121,20 @@ public class ImportacaoRetornoBancarioServiceImpl implements ImportacaoRetornoBa
}
}
private ArquivoRetornoItem processaRetornoBancario(ByteArrayInputStream bais, BancoLayout banco) throws IOException{
private ArquivoRetornoItem processaRetornoBancario(ByteArrayInputStream bais, BancoLayout banco)
throws IOException {
if(BancoLayout.ITAU_400_Envio.equals(banco)){
if (BancoLayout.ITAU_400_Envio.equals(banco)) {
return geraRetornoBancarioItau(bais, banco);
}else if(BancoLayout.SAFRA_400_Envio.equals(banco)){
} else if (BancoLayout.SAFRA_400_Envio.equals(banco)) {
return geraRetornoBancarioSafra(bais);
}else {
} else {
return null;
}
}
private ArquivoRetornoItem geraRetornoBancarioItau(ByteArrayInputStream bais, BancoLayout banco) throws IOException {
private ArquivoRetornoItem geraRetornoBancarioItau(ByteArrayInputStream bais, BancoLayout banco)
throws IOException {
String linha = null;
ArquivoRetornoItem arquivo = new ArquivoRetornoItem();
CabecalhoRetorno cabecalho = new CabecalhoRetorno();
@ -131,22 +143,22 @@ public class ImportacaoRetornoBancarioServiceImpl implements ImportacaoRetornoBa
while ((linha = leitor.readLine()) != null) {
if( linha.startsWith("0")) { //cabecalho
if (linha.startsWith("0")) { // cabecalho
cabecalho.setCodigoBanco(linha.substring(76, 79));
continue;
}
if(linha.startsWith("1")) { //detalhe
if (linha.startsWith("1")) { // detalhe
DetalheRetornoItau detalhe = new DetalheRetornoItau();
detalhe.setCodigoOcorrencia(linha.substring(108, 110));
detalhe.setValorJuros( new BigDecimal(linha.substring(266, 279)).divide(new BigDecimal(100)) );
detalhe.setNossoNumero(linha.substring(85, 93)+"-"+linha.substring(93, 94));
detalhe.setValorJuros(new BigDecimal(linha.substring(266, 279)).divide(new BigDecimal(100)));
detalhe.setNossoNumero(linha.substring(85, 93) + "-" + linha.substring(93, 94));
detalhe.setDataBaixa(linha.substring(110, 116));
arquivo.addTitulo(detalhe);
continue;
}
if(linha.startsWith("9")) { //rodape
if (linha.startsWith("9")) { // rodape
}
}
@ -167,23 +179,23 @@ public class ImportacaoRetornoBancarioServiceImpl implements ImportacaoRetornoBa
while ((linha = leitor.readLine()) != null) {
if( linha.startsWith("0")) { //cabecalho
if (linha.startsWith("0")) { // cabecalho
cabecalho.setCodigoBanco(linha.substring(76, 79));
continue;
}
if(linha.startsWith("1")) { //detalhe
if (linha.startsWith("1")) { // detalhe
DetalheRetornoSafra detalhe = new DetalheRetornoSafra();
detalhe.setIdBoletoFechamento(Integer.valueOf(linha.substring(116, 126)));
detalhe.setCodigoOcorrencia(linha.substring(108, 110));
detalhe.setValorJuros( new BigDecimal(linha.substring(267, 279)).divide(new BigDecimal(100)) );
detalhe.setNossoNumero(linha.substring(61, 70)+"-"+linha.substring(70, 71));
detalhe.setValorJuros(new BigDecimal(linha.substring(267, 279)).divide(new BigDecimal(100)));
detalhe.setNossoNumero(linha.substring(61, 70) + "-" + linha.substring(70, 71));
detalhe.setDataBaixa(linha.substring(295, 301));
arquivo.addTitulo(detalhe);
continue;
}
if(linha.startsWith("9")) { //rodape
if (linha.startsWith("9")) { // rodape
}
}
@ -196,44 +208,82 @@ public class ImportacaoRetornoBancarioServiceImpl implements ImportacaoRetornoBa
}
@Override
public boolean salvarRetornoBancario(DetalheRetorno detalhe, Integer empresaId, Integer usuarioId) throws SQLException {
public boolean salvarRetornoBancario(DetalheRetorno detalhe, Integer empresaId, Integer usuarioId)
throws SQLException {
if(detalhe instanceof DetalheRetornoSafra ) {
if (detalhe instanceof DetalheRetornoSafra) {
return salvarRetornoBancario(detalhe, usuarioId);
}
FechamentoBoleto boleto = remessaCNABBancosDAO.obtenerFechamentoBoletoPorNossoNumero( detalhe.getNossoNumero(), empresaId );
FechamentoBoleto boleto = remessaCNABBancosDAO.obtenerFechamentoBoletoPorNossoNumero(detalhe.getNossoNumero(),
empresaId);
if(boleto == null) {
throw new RuntimeException("Fechamento não encontrado para a empresa com o nosso numero: "+detalhe.getNossoNumero());
if (boleto == null) {
if (detalhe instanceof DetalheRetornoItau) {
return validaDacItau(detalhe, empresaId, usuarioId);
} else {
throw new RuntimeException(
"Fechamento não encontrado para a empresa com o nosso numero: " + detalhe.getNossoNumero());
}
}
if( boleto.getIndBoletoQuitado() !=null && boleto.getIndBoletoQuitado()) {
throw new RuntimeException("Boleto já quitado para a empresa com o nosso numero: "+detalhe.getNossoNumero());
if (boleto.getIndBoletoQuitado() != null && boleto.getIndBoletoQuitado()) {
throw new RuntimeException(
"Boleto já quitado para a empresa com o nosso numero: " + detalhe.getNossoNumero());
}
return remessaCNABBancosDAO.quitarFechamentoBoleto( boleto.getFechamentoboletoId(), usuarioId, detalhe );
return remessaCNABBancosDAO.quitarFechamentoBoleto(boleto.getFechamentoboletoId(), usuarioId, detalhe);
}
@Override
public boolean salvarRetornoBancario(DetalheRetorno detalhe, Integer usuarioId) throws SQLException {
FechamentoBoleto boleto = remessaCNABBancosDAO.obtenerFechamentoBoletoPorId( detalhe.getIdBoletoFechamento() );
FechamentoBoleto boleto = remessaCNABBancosDAO.obtenerFechamentoBoletoPorId(detalhe.getIdBoletoFechamento());
if(boleto == null) {
throw new RuntimeException("Fechamento não encontrado com o ID: "+detalhe.getIdBoletoFechamento());
if (boleto == null) {
throw new RuntimeException("Fechamento não encontrado com o ID: " + detalhe.getIdBoletoFechamento());
}
if(boleto.getNossonumero() !=null && !boleto.getNossonumero().equals(detalhe.getNossoNumero())) {
throw new RuntimeException("Fechamento encontrado o nosso numero inconsistente: "+detalhe.getNossoNumero());
if (boleto.getNossonumero() != null && !boleto.getNossonumero().equals(detalhe.getNossoNumero())) {
throw new RuntimeException(
"Fechamento encontrado o nosso numero inconsistente: " + detalhe.getNossoNumero());
}
if( boleto.getIndBoletoQuitado() !=null && boleto.getIndBoletoQuitado()) {
throw new RuntimeException("Boleto já quitado para a empresa com o nosso numero: "+detalhe.getNossoNumero());
if (boleto.getIndBoletoQuitado() != null && boleto.getIndBoletoQuitado()) {
throw new RuntimeException(
"Boleto já quitado para a empresa com o nosso numero: " + detalhe.getNossoNumero());
}
return remessaCNABBancosDAO.quitarFechamentoBoleto( detalhe, usuarioId );
return remessaCNABBancosDAO.quitarFechamentoBoleto(detalhe, usuarioId);
}
public boolean validaDacItau(DetalheRetorno detalhe, Integer empresaId, Integer usuarioId) throws SQLException {
FechamentoParamgeral dadosContaItau = fechamentoParamgeralService.buscaParametrosPorEmpresasBanco(empresaId, "341");
BigInteger nossoNumero = new BigInteger(detalhe.getNossoNumero().substring(0, 7));
if (dadosContaItau != null) {
String dacItau = NossoNumeroUtils.dacItau(
Integer.valueOf(dadosContaItau.getBoletoBancoAgencia()),
Integer.valueOf(dadosContaItau.getBoletoBancoConta()),
Integer.valueOf(dadosContaItau.getBoletoBancoCarteira()),
nossoNumero);
detalhe.setNossoNumero(detalhe.getNossoNumero().substring(0, 7) + "-" + dacItau);
FechamentoBoleto boleto = remessaCNABBancosDAO.obtenerFechamentoBoletoPorNossoNumero(detalhe.getNossoNumero(),
empresaId);
if (boleto == null) {
throw new RuntimeException("Fechamento não encontrado para a empresa com o nosso numero: " + detalhe.getNossoNumero());
}
if (boleto.getIndBoletoQuitado() != null && boleto.getIndBoletoQuitado()) {
throw new RuntimeException(
"Boleto já quitado para a empresa com o nosso numero: " + detalhe.getNossoNumero());
}
return remessaCNABBancosDAO.quitarFechamentoBoleto(boleto.getFechamentoboletoId(), usuarioId, detalhe);
}else
throw new RuntimeException("Dados da conta não encontrados : " + detalhe.getIdBoletoFechamento());
}
}