ESocialUtils¶
Classe utilitária para manipulações específicas de datas, horas, XML e formatos numéricos utilizados no contexto do eSocial.
Pacote¶
sam.server.samdev.utils
Constantes¶
PATTERN_DDMMYYYY:"ddMMyyyy"PATTERN_YYYYMMDD:"yyyyMMdd"PATTERN_YYYY_MM_DD:"yyyy-MM-dd"PATTERN_MMYYYY:"MMyyyy"PATTERN_YYYY_MM:"yyyy-MM"PATTERN_YYYY:"yyyy"PATTERN_HHMMSS:"HHmmss"PATTERN_HHMM:"HHmm"VERSAO:"v02_04_01"
Geração de ID¶
static String comporIdDoEvento(int ti, String ni)¶
Gera o ID de um evento eSocial com base no tipo de evento (ti), no número identificador (ni), na data e hora atual, e um número sequencial interno.
Formatação de Datas e Horas¶
static String formatarData(LocalDate value)¶
Formata a data no padrão ddMMyyyy.
static String formatarData(LocalDate value, String pattern)¶
Formata a data utilizando o padrão fornecido.
static String formatarHora(LocalTime value)¶
Formata a hora no padrão HHmm.
static String formatarHora(LocalTime value, String pattern)¶
Formata a hora com o padrão personalizado.
static String formatarHora(LocalDate value, String pattern)¶
Formata uma data como se fosse uma hora (uso específico com LocalDate, cuidado ao usar).
XML¶
static String gerarXML(ElementXml eSocial)¶
Converte um objeto ElementXml em uma String XML utilizando Transformer.
static ElementXml criarElementXmlESocial(String namespace)¶
Cria a tag raiz eSocial com o namespace fornecido, usando XMLConverter.
Formatação de Decimais¶
static String formatarDecimal(BigDecimal value, int casasDecimais, boolean vlrZeroRetornaNull)¶
Formata um BigDecimal com o número especificado de casas decimais. Se value for zero e vlrZeroRetornaNull for true, retorna null.
Exemplo de uso¶
String idEvento = ESocialUtils.comporIdDoEvento(1, "12345678901");
String dataFormatada = ESocialUtils.formatarData(LocalDate.now());
String hora = ESocialUtils.formatarHora(LocalTime.now());
ElementXml eSocial = ESocialUtils.criarElementXmlESocial("http://www.esocial.gov.br/schema");
String xml = ESocialUtils.gerarXML(eSocial);
BigDecimal valor = new BigDecimal("123.456");
String valorFormatado = ESocialUtils.formatarDecimal(valor, 2, false);